Search in sources :

Example 6 with AbstractEntityMinecoloniesMob

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();
}
Also used : BlockState(net.minecraft.block.BlockState) AbstractBlockGate(com.minecolonies.api.blocks.decorative.AbstractBlockGate) IColony(com.minecolonies.api.colony.IColony) AbstractEntityMinecoloniesMob(com.minecolonies.api.entity.mobs.AbstractEntityMinecoloniesMob)

Example 7 with AbstractEntityMinecoloniesMob

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;
}
Also used : IColonyEvent(com.minecolonies.api.colony.colonyEvents.IColonyEvent) DamageSource(net.minecraft.util.DamageSource) StringTextComponent(net.minecraft.util.text.StringTextComponent) AbstractEntityMinecoloniesMob(com.minecolonies.api.entity.mobs.AbstractEntityMinecoloniesMob)

Aggregations

AbstractEntityMinecoloniesMob (com.minecolonies.api.entity.mobs.AbstractEntityMinecoloniesMob)7 AbstractBlockGate (com.minecolonies.api.blocks.decorative.AbstractBlockGate)2 ICitizenData (com.minecolonies.api.colony.ICitizenData)2 IColony (com.minecolonies.api.colony.IColony)2 IBuilding (com.minecolonies.api.colony.buildings.IBuilding)2 IColonyEvent (com.minecolonies.api.colony.colonyEvents.IColonyEvent)2 AbstractBuildingGuards (com.minecolonies.coremod.colony.buildings.AbstractBuildingGuards)2 Map (java.util.Map)2 BlockState (net.minecraft.block.BlockState)2 DamageSource (net.minecraft.util.DamageSource)2 BlockPos (net.minecraft.util.math.BlockPos)2 StringTextComponent (net.minecraft.util.text.StringTextComponent)2 JobEntry (com.minecolonies.api.colony.jobs.registry.JobEntry)1 AbstractEntityCitizen (com.minecolonies.api.entity.citizen.AbstractEntityCitizen)1 AbstractJobGuard (com.minecolonies.coremod.colony.jobs.AbstractJobGuard)1 VisitorCitizen (com.minecolonies.coremod.entity.citizen.VisitorCitizen)1 WrappedEntity (journeymap.client.api.model.WrappedEntity)1 LivingEntity (net.minecraft.entity.LivingEntity)1 ResourceLocation (net.minecraft.util.ResourceLocation)1 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)1