Files
fabric-carpet/src/main/java/carpet/mixins/FlowingFluid_liquidDamageDisabledMixin.java
T
2023-04-05 20:12:21 +02:00

34 lines
1.2 KiB
Java

package carpet.mixins;
import carpet.CarpetSettings;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FlowingFluid;
import net.minecraft.world.level.material.Fluid;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(FlowingFluid.class)
public class FlowingFluid_liquidDamageDisabledMixin
{
@Inject(
method = "canHoldFluid",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/world/level/material/Material;blocksMotion()Z"
),
cancellable = true
)
private void stopBreakingBlock(BlockGetter world, BlockPos pos, BlockState state, Fluid fluid, CallbackInfoReturnable<Boolean> cir)
{
if (CarpetSettings.liquidDamageDisabled)
{
cir.setReturnValue(state.isAir() || state.is(Blocks.WATER) || state.is(Blocks.LAVA));
}
}
}