Не открывается окошко таблички

Версия Minecraft
1.12.2
5,018
47
783
Здравствуйте. Пилю все таки эту табличку, и тут столкнулся с непреодолимой непонятной ошибкой
В общем то, моя табличка ведет себя как то плохо и неправильно. Во первых табличка ставиться всегда строго на север, а во вторых не ставит подставку. Но это еще полбеды - основное это то, что не открывается меню, где я могу вводить текст. Табличка - полный и абсолютный копипаст ванильной, потому код не кидаю.
Может я что то забыл?
зарегистрировал рендер, зарегистрировал блок, зарегистрировал тайл.
В клиентпрокси: ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySovSign.class, new SovTileEntitySignRender());
В коммонпрокси: GameRegistry.registerTileEntity(TileEntitySovSign.class, "TileEntitySovSign");
Ну и блок. Все как обычно.

Путем опытов было выяснено что в методе executeCommand в тайле Style - null
И честно, я не понимаю почему.
Java:
 for (ITextComponent itextcomponent : this.signText)
        {
            Style style = itextcomponent == null ? null : itextcomponent.getStyle();

            if (style != null && style.getClickEvent() != null)
            {
                ClickEvent clickevent = style.getClickEvent();

                if (clickevent.getAction() == ClickEvent.Action.RUN_COMMAND)
                {
                    playerIn.getServer().getCommandManager().executeCommand(icommandsender, clickevent.getValue());
                }
            }
        }
 
7,099
324
1,509
А как ваниль создает FontRenderer? Сделай также
 
5,018
47
783
А пре ините крашит, с нуллом, якобы текстуры нет. Но на самом деле, потому что мой создается раньше, чем создается ванильный. Хотя как это влияет... странно
но видимо ресурслокейшен нулл
 
5,018
47
783
Мне на форуме форге чувак написал, что мой фонтрендерер надо зарегистрировать путем перезагрузки ресурсов после запуска майна. Я чет не совсем въезжаю что он имел ввиду:
You would also need to register your font renderer as a resource reload listener so it actually reads the glyphs from the texture. You need to do this at an appropriate time though.
 
5,018
47
783
Спасибо, но оно все равно не работает. Мож я довен... написал так:
Java:
        ResourceLocation rl = new ResourceLocation(SovietCore.MODID, "textures/font/soviet_font.png");
        TextureManager tmg = Minecraft.getMinecraft().renderEngine;
        
        fr = new FontRenderer(Minecraft.getMinecraft().gameSettings, rl, tmg, true);
        
        IReloadableResourceManager rs = (IReloadableResourceManager)Minecraft.getMinecraft().getResourceManager();
        rs.registerReloadListener(fr);

Все ведь правильно?
 
7,099
324
1,509
Тема с перезагрузкой интересная. При нажатии на f3+t происходит эта самая перезагрузка
 
5,018
47
783
Только вот это не помогает все равно. Что в коде релоад, что тут.. все равно он подгружает какую то ванильную текстуру.
 
5,018
47
783
Короче говоря, я решил попробовать использовать форджевский SimpleFontRenderer
Сделал такой код, и вроде хорошо, ошибок нет, но текст не рендерится. Либо рендерится, но так что я его не вижу
Java:
ResourceLocation rl = new ResourceLocation(SovietCore.MODID, "textures/font/soviet_font.png");
  TextureManager tmg = Minecraft.getMinecraft().renderEngine;
  Minecraft mc = Minecraft.getMinecraft();
  Matrix4f m = new Matrix4f();
  m.setIdentity();
  fr = new SovFontRenderer(Minecraft.getMinecraft().gameSettings, rl, tmg, false, m, DefaultVertexFormats.BLOCK);
  IReloadableResourceManager rs = (IReloadableResourceManager)Minecraft.getMinecraft().getResourceManager();
 
  rs.registerReloadListener(fr);
 
5,018
47
783
Хорошая мысль! Надо глянуть
На гите только ассетс.. но когда это останавливало декомпилятор?)
 
5,018
47
783
Поглядел.. Там похоже на мой только в одном месте он юзается, в RenderClipBoard. Я сделал поиск слова font по всему проекту, но ничего подходящего не нашел. Везде где юзается, там юзается FontRenderer который ванильный.

Там есть функции типо увеличить\уменьшить текст, но чтобы прям кастомный шрифт, такого нет.
 
5,018
47
783
Такс. Я тут залез в метод, где считывание пнгшки идет. Тут есть считывание каких то глифов iresource = getResource(new ResourceLocation("font/glyph_sizes.bin"));
Это что такое вообще?
 
Сверху