Блок-Энтити 1.7.10

Появилось необходимость сделать блок, который будет иметь некоторое кол-во хп, а при минимальном значении этих хп выполнять какое либо действие. Через время выполнения этих действий (спавним партиклы, пока не кончится таймер), восстанавливать хп и прекращать действие. Кто может набросать хотя бы приблизительный код с обозначениями чего чем и куда? Остальным уж займусь. Просто не могу вообще иметь представления о данной конструкции.
 
Sleepless, ты имеешь ввиду Entity с моделью блока или блок с псевдо-жизнями?
 
Эм... Не полностью понимаю, что ты хочешь. То что понял, вот пример:
Код:
    private int cooldown = 0;
    private boolean isA = false;
    
    @Override
    public void updateTick(World v, int x, int y, int z, Random random) {
        if (cooldown > 0) --cooldown;
        if (cooldown >= 0 && isA) {
            //дейстие
            isA = false;
        }
    }

    @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
        List list = world.getEntitiesWithinAABB(EntityArrow.class, AxisAlignedBB.getBoundingBox((double)x + minX, (double)y + minY, (double)z + minZ, (double)x + maxX, (double)y + maxY, (double)z + maxZ));
        boolean flag1 = !list.isEmpty();
        if (flag1) {
            cooldown = 20 * 10;
            isA = true;
        }
    }
 
timaxa007 написал(а):
Эм... Не полностью понимаю, что ты хочешь. То что понял, вот пример
<тутбылкод>

Тогда уж так
Код:
    private int cooldown = 0;
    
    @Override
    public void updateTick(World world, int x, int y, int z, Random random) {
        if (--cooldown == 0) {
            //дейстие
        }
        //world.scheduleBlockUpdate
    }

    @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
        List list = world.getEntitiesWithinAABB(EntityArrow.class, AxisAlignedBB.getBoundingBox((double)x + minX, (double)y + minY, (double)z + minZ, (double)x + maxX, (double)y + maxY, (double)z + maxZ));
       
        if (!list.isEmpty()) {
            cooldown = 20 * 10;
        }
    }
 
Назад
Сверху