Optimize villager bed chunk loads (#719)
This commit is contained in:
parent
03610b4bf6
commit
b038f4d254
@ -0,0 +1,23 @@
|
||||
package io.izzel.arclight.common.mixin.optimization.general.chunkload;
|
||||
|
||||
import net.minecraft.core.GlobalPos;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.ai.Brain;
|
||||
import net.minecraft.world.entity.ai.behavior.SleepInBed;
|
||||
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;
|
||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
@Mixin(SleepInBed.class)
|
||||
public class SleepInBedMixin_Optimize {
|
||||
|
||||
@Inject(method = "checkExtraStartConditions",cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerLevel;getBlockState(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState;"))
|
||||
private void arclight$returnIfNotLoaded(ServerLevel level, LivingEntity entity, CallbackInfoReturnable<Boolean> cir, Brain<?> brain, GlobalPos pos) {
|
||||
if (!level.isLoaded(pos.pos())) {
|
||||
cir.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -22,6 +22,7 @@
|
||||
"activationrange.entity.ItemEntityMixin_ActivationRange",
|
||||
"activationrange.entity.LivingEntityMixin_ActivationRange",
|
||||
"activationrange.entity.VillagerEntityMixin_ActivationRange",
|
||||
"chunkload.SleepInBedMixin_Optimize",
|
||||
"network.ChunkMapMixin_Optimize",
|
||||
"network.ChunkMapMixin_Optimize$TrackedEntityMixin",
|
||||
"network.ConnectionMixin_Optimize",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user