Files
fabric-carpet/src/main/java/carpet/mixins/World_fillUpdatesMixin.java
T
2020-06-21 22:52:05 -03:00

34 lines
1.3 KiB
Java

package carpet.mixins;
import carpet.CarpetSettings;
import net.minecraft.block.Block;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(World.class)
public abstract class World_fillUpdatesMixin
{
@ModifyConstant(method = "setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;II)Z", //setBlockState main
constant = @Constant(intValue = 16))
private int addFillUpdatesInt(int original) {
if (CarpetSettings.impendingFillSkipUpdates)
return -1;
return original;
}
@Redirect(method = "setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;II)Z", at = @At( //setBlockState main
value = "INVOKE",
target = "Lnet/minecraft/world/World;updateNeighbors(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/Block;)V"
))
private void updateNeighborsMaybe(World world, BlockPos blockPos, Block block)
{
if (!CarpetSettings.impendingFillSkipUpdates) world.updateNeighbors(blockPos, block);
}
}