minecraft-src/net/minecraft/world/entity/ai/behavior/SetRaidStatus.java
2025-07-04 01:41:11 +03:00

31 lines
1 KiB
Java

package net.minecraft.world.entity.ai.behavior;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.Brain;
import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder;
import net.minecraft.world.entity.raid.Raid;
import net.minecraft.world.entity.schedule.Activity;
public class SetRaidStatus {
public static BehaviorControl<LivingEntity> create() {
return BehaviorBuilder.create(instance -> instance.point((serverLevel, livingEntity, l) -> {
if (serverLevel.random.nextInt(20) != 0) {
return false;
} else {
Brain<?> brain = livingEntity.getBrain();
Raid raid = serverLevel.getRaidAt(livingEntity.blockPosition());
if (raid != null) {
if (raid.hasFirstWaveSpawned() && !raid.isBetweenWaves()) {
brain.setDefaultActivity(Activity.RAID);
brain.setActiveActivityIfPossible(Activity.RAID);
} else {
brain.setDefaultActivity(Activity.PRE_RAID);
brain.setActiveActivityIfPossible(Activity.PRE_RAID);
}
}
return true;
}
}));
}
}