use of com.minecolonies.api.entity.mobs.AbstractEntityMinecoloniesMob in project minecolonies by ldtteam.
the class EntityAIBreakDoor method tick.
@Override
public void tick() {
if (mob.getCommandSenderWorld().getDifficulty().getId() < 2 || !MineColonies.getConfig().getServer().shouldRaidersBreakDoors.get()) {
breakTime = 0;
}
// Only advances breaking time in relation to hardness
if (this.mob.getRandom().nextInt(breakChance) != 0) {
this.breakTime--;
} else {
int fasterBreakPerXNearby = 5;
if (mob instanceof AbstractEntityMinecoloniesMob && !mob.level.isClientSide()) {
final IColony colony = ((AbstractEntityMinecoloniesMob) mob).getColony();
fasterBreakPerXNearby += colony.getResearchManager().getResearchEffects().getEffectStrength(MECHANIC_ENHANCED_GATES);
}
breakChance = Math.max(1, hardness / (1 + (mob.level.getLoadedEntitiesOfClass(AbstractEntityMinecoloniesMob.class, mob.getBoundingBox().inflate(5)).size() / fasterBreakPerXNearby)));
}
if (this.breakTime == this.getDoorBreakTime() - 1) {
final BlockState toBreak = mob.level.getBlockState(doorPos);
if (toBreak.getBlock() instanceof AbstractBlockGate) {
((AbstractBlockGate) toBreak.getBlock()).removeGate(mob.level, doorPos, toBreak.getValue(BlockStateProperties.HORIZONTAL_FACING).getClockWise());
}
}
super.tick();
}
use of com.minecolonies.api.entity.mobs.AbstractEntityMinecoloniesMob in project minecolonies by ldtteam.
the class CommandKillRaider method onExecute.
/**
* What happens when the command is executed
*
* @param context the context of the command execution
*/
@Override
public int onExecute(final CommandContext<CommandSource> context) {
entitiesKilled = 0;
context.getSource().getLevel().getEntities().forEach(entity -> {
if (entity instanceof AbstractEntityMinecoloniesMob) {
final AbstractEntityMinecoloniesMob mob = (AbstractEntityMinecoloniesMob) entity;
mob.die(new DamageSource("despawn"));
mob.remove();
final IColonyEvent event = mob.getColony().getEventManager().getEventByID(mob.getEventID());
if (event != null) {
event.setStatus(EventStatus.DONE);
}
entitiesKilled++;
}
});
context.getSource().sendSuccess(new StringTextComponent(entitiesKilled + " entities killed"), true);
return 1;
}
Aggregations