9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-24 01:19:24 +00:00

improve waterlogged

This commit is contained in:
XiaoMoMi
2025-03-24 04:46:51 +08:00
parent 0393b89188
commit d3668b855b
20 changed files with 356 additions and 101 deletions

View File

@@ -15,7 +15,6 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.BonemealableBlock;
import net.minecraft.world.level.block.Fallable;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.momirealms.craftengine.mod.util.NoteBlockUtils;
@@ -23,7 +22,11 @@ import net.momirealms.craftengine.shared.ObjectHolder;
import net.momirealms.craftengine.shared.block.*;
import org.jetbrains.annotations.NotNull;
public class CraftEngineBlock extends Block implements BehaviorHolder, ShapeHolder, NoteBlockIndicator, Fallable, BonemealableBlock {
public class CraftEngineBlock
extends Block
implements BehaviorHolder, ShapeHolder, NoteBlockIndicator, Fallable, BonemealableBlock
//TODO , SimpleWaterloggedBlock
{
private static final StoneBlockShape STONE = new StoneBlockShape(Blocks.STONE.defaultBlockState());
private boolean isNoteBlock;
public ObjectHolder<BlockBehavior> behaviorHolder;
@@ -168,15 +171,15 @@ public class CraftEngineBlock extends Block implements BehaviorHolder, ShapeHold
}
}
@Override
protected @NotNull FluidState getFluidState(@NotNull BlockState state) {
try {
return (FluidState) behaviorHolder.value().getFluidState(this, new Object[]{state}, () -> super.getFluidState(state));
} catch (Exception e) {
e.printStackTrace();
return super.getFluidState(state);
}
}
// @Override
// protected @NotNull FluidState getFluidState(@NotNull BlockState state) {
// try {
// return (FluidState) behaviorHolder.value().getFluidState(this, new Object[]{state}, () -> super.getFluidState(state));
// } catch (Exception e) {
// e.printStackTrace();
// return super.getFluidState(state);
// }
// }
@Override
public boolean isValidBonemealTarget(@NotNull LevelReader levelReader, @NotNull BlockPos blockPos, @NotNull BlockState blockState) {
@@ -215,4 +218,35 @@ public class CraftEngineBlock extends Block implements BehaviorHolder, ShapeHold
e.printStackTrace();
}
}
// @Override
// public boolean canPlaceLiquid(@Nullable Player player, @NotNull BlockGetter level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull Fluid fluid) {
// try {
// return behaviorHolder.value().canPlaceLiquid(this, new Object[]{player, level, pos, state, fluid}, () -> SimpleWaterloggedBlock.super.canPlaceLiquid(player, level, pos, state, fluid));
// } catch (Exception e) {
// e.printStackTrace();
// return SimpleWaterloggedBlock.super.canPlaceLiquid(player, level, pos, state, fluid);
// }
// }
//
// @Override
// public boolean placeLiquid(@NotNull LevelAccessor level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull FluidState fluidState) {
// try {
// return behaviorHolder.value().placeLiquid(this, new Object[]{level, pos, state, fluidState}, () -> SimpleWaterloggedBlock.super.placeLiquid(level, pos, state, fluidState));
// } catch (Exception e) {
// e.printStackTrace();
// return SimpleWaterloggedBlock.super.placeLiquid(level, pos, state, fluidState);
// }
// }
//
// @NotNull
// @Override
// public ItemStack pickupBlock(@Nullable Player player, @NotNull LevelAccessor level, @NotNull BlockPos pos, @NotNull BlockState state) {
// try {
// return (ItemStack) behaviorHolder.value().pickupBlock(this, new Object[]{player, level, pos, state}, () -> SimpleWaterloggedBlock.super.pickupBlock(player, level, pos, state));
// } catch (Exception e) {
// e.printStackTrace();
// return SimpleWaterloggedBlock.super.pickupBlock(player, level, pos, state);
// }
// }
}