Отрисовка Bounding Box и не только...

Версия Minecraft
1.12.2
48
1
4
У меня две проблемки с Bounding Box.
Мы знаем, что "рамка" блока отрисовывается только тогда, когда игрок смотрит на блок и вот:
1) В общем, мне нужно, чтобы у некоторых блоков Bounding Box отрисовывался даже тогда, когда на них не смотришь.
Я нашёл код этого в классе Render Global
Java:
 /**
* Draws the selection box for the player.
*/
    public void drawSelectionBox(EntityPlayer player, RayTraceResult movingObjectPositionIn, int execute, float partialTicks)
    {
        if (execute == 0 && movingObjectPositionIn.typeOfHit == RayTraceResult.Type.BLOCK)
        {
            GlStateManager.enableBlend();
            GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA,          GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
            GlStateManager.glLineWidth(2.0F);
            GlStateManager.disableTexture2D();
            GlStateManager.depthMask(false);
            BlockPos blockpos = movingObjectPositionIn.getBlockPos();
            IBlockState iblockstate = this.world.getBlockState(blockpos);

            if (iblockstate.getMaterial() != Material.AIR && this.world.getWorldBorder().contains(blockpos))
            {
                double d3 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)partialTicks;
                double d4 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)partialTicks;
                double d5 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)partialTicks;
                drawSelectionBoundingBox(iblockstate.getSelectedBoundingBox(this.world, blockpos).grow(0.0020000000949949026D).offset(-d3, -d4, -d5), 0.0F, 0.0F, 0.0F, 0.4F);
            }

            GlStateManager.depthMask(true);
            GlStateManager.enableTexture2D();
            GlStateManager.disableBlend();
        }
    }
И тут есть интересная строчка
Java:
if (execute == 0 && movingObjectPositionIn.typeOfHit == RayTraceResult.Type.BLOCK)
Как я понимаю, проверяется соприкосновение луча, выпущенного из прицела игрока с блоком (или что-то типо того, не суть важно).
Этот код, я естественно изменять не могу, т.к. это исходники самого майна и убрать проверку никак. Есть ли какой-нибудь способ поменять это? Написать свой "Render Global" для конкретных блоков и (или) подменить его?
Я пробовал ещё через эвенты, например (DrawBlockHighlightEvent), но этот эвент срабатывает уже только тогда, когда игрок навёлся мышкой, а мне же нужно, чтобы отрисовка была без наведения.

2) И ещё одна маленькая проблемка. Я изменил Bounding Box блока, уменьшил его до половины в ширину, визуально он уменьшился, но как будто остался прежним, та часть которая уменьшилась, там хоть и появилось пространство, но ходить я всё-равно не могу, а если уменьшить на половину в высоту, то с блока скидывает, как будто ничего и не уменьшилось, только визуально.

2020-08-14_17.16.27.png
На скриншоте я иду прямо, но он просто не пускает.
Может я тупой, но шо делать и как быть?
 
Решение
чтобы у некоторых блоков Bounding Box отрисовывался даже тогда, когда на них не смотришь
Добавляешь этим блокам тайл, TESR и рисуешь в нем все что угодно
визуально он уменьшился, но как будто остался прежним
Потому что коллизия блока и выделения - разные. Там несколько методов, определяющих их
7,099
324
1,509
чтобы у некоторых блоков Bounding Box отрисовывался даже тогда, когда на них не смотришь
Добавляешь этим блокам тайл, TESR и рисуешь в нем все что угодно
визуально он уменьшился, но как будто остался прежним
Потому что коллизия блока и выделения - разные. Там несколько методов, определяющих их
 
Сверху