Add blood particle effect and CompressedBedrock block functionality and fixed Datagen
Signed-off-by: IM23a-cernik <cernik@bzz.ch>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package net.krituximon.stalinium.block;
|
||||
|
||||
import net.krituximon.stalinium.Stalinium;
|
||||
import net.krituximon.stalinium.block.custom.CompressedBedrock;
|
||||
import net.krituximon.stalinium.item.ModItems;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
@@ -18,7 +19,7 @@ public class ModBlocks {
|
||||
DeferredRegister.createBlocks(Stalinium.MODID);
|
||||
|
||||
public static final DeferredBlock<Block> COMPRESSED_BEDROCK = registerBlock("compressed_bedrock",
|
||||
() -> new NetheriteOnlyBlock(BlockBehaviour.Properties.of()
|
||||
() -> new CompressedBedrock(BlockBehaviour.Properties.of()
|
||||
.strength(120f, 1200f)
|
||||
.requiresCorrectToolForDrops()
|
||||
.sound(SoundType.STONE)));
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package net.krituximon.stalinium.block.custom;
|
||||
|
||||
import net.krituximon.stalinium.block.NetheriteOnlyBlock;
|
||||
import net.krituximon.stalinium.particle.ModParticles;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class CompressedBedrock extends NetheriteOnlyBlock {
|
||||
public CompressedBedrock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) {
|
||||
if (random.nextInt(5) == 0) {
|
||||
Direction direction = Direction.getRandom(random);
|
||||
if (direction != Direction.UP) {
|
||||
BlockPos blockpos = pos.relative(direction);
|
||||
BlockState blockstate = level.getBlockState(blockpos);
|
||||
if (!state.canOcclude() || !blockstate.isFaceSturdy(level, blockpos, direction.getOpposite())) {
|
||||
double d0 = direction.getStepX() == 0 ? random.nextDouble() : (double) 0.5F + (double) direction.getStepX() * 0.6;
|
||||
double d1 = direction.getStepY() == 0 ? random.nextDouble() : (double) 0.5F + (double) direction.getStepY() * 0.6;
|
||||
double d2 = direction.getStepZ() == 0 ? random.nextDouble() : (double) 0.5F + (double) direction.getStepZ() * 0.6;
|
||||
level.addParticle(ModParticles.BLOOD_PARTICLE.get(), (double) pos.getX() + d0, (double) pos.getY() + d1, (double) pos.getZ() + d2, (double) 0.0F, (double) 0.0F, (double) 0.0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user