Картина

Версия Minecraft
1.12.2
4,045
63
645
В общем задумал добавить побольше картин. Скопировал все необходимые классы, зарегал энтити и рендер...
Но при размещении картины в мире её не видно... То есть не просто не видно, а и взаимодействовать с ней не удаётся...
Сам ентити создаётся, проверено... Однако, помимо невидимости у него нет и бокса коллизии. При попытке разрушить невидимую картину, разрушается блок за ней... А потом и она вылетает в качестве предмета )
Что могло пойти не так?
Регистрация:
Java:
//Энтити в преините на сервере
EntityRegistry.registerModEntity(new ResourceLocation(Mist.MODID, "painting"), EntityMistPainting.class, "painting", 0, Mist.instance, 0, 1, false);
//Рендер в преините на клиенте
RenderingRegistry.registerEntityRenderingHandler(EntityMistPainting.class, m -> new RenderMistPainting(m));
Все остальные классы идентичны ванильным.
 
3,005
192
592
Попробуй зарегать так..
Код:
//ResourceLocation registryName, Class<? extends Entity> entityClass, String entityName
EntityEntry entry = new EntityEntry(entityClass, entityName).setRegistryName(registryName);
ForgeRegistries.ENTITIES.register(entry);
 
5,018
47
783
Doc тебе какое то не то скинул.
~~~
Я регал так:
рендер
Java:
        RenderingRegistry.registerEntityRenderingHandler(EntityWallTile1.class, new IRenderFactory() {
            @Override
            public Render createRenderFor(RenderManager manager) {
                return new RenderEntityWallTile1(manager);
            }});
и сама энтитя
Java:
    EntityRegistry.registerModEntity(new ResourceLocation(SovietCore.MODID, "entitywallpaper5"), EntityWallpaper5.class, SovietCore.MODID + ":entitywallpaper5", 52, SovietCore.INSTANCE, 64, 20, false);

там где у тебя 0 это айди регистрации. 0 скорее всего занят:)
Попробуй 100 поставь там. Или 52 как у меня
 
Последнее редактирование модератором:
4,045
63
645
Айди я для примера вписал... Естественно, он у меня отслеживается...
Да и с регистрациями всё норм, так как мобы регаются так же и работают нормально... А вот с картиной какая-то фигня...
И ведь ошибок никаких не выдаёт...
 
917
22
332
Когда-то я Maxik'у писал методы которые надо добавлять в картины и рамки... По-моему это тот самый случай.(если рамки не сохраняются после перезахода в мир (/entitydata)) Я сечас не помню всё дословно, но попробуй поиск на фордж форуме, или спроси у самого Maxik'а.
P.S. *Maxik'а* Извиняюсь, теперь BlockState.
 
4,045
63
645
Так в том-то и фигня, что энтити нормально существует и даже сохраняется при перезаходе... Вот только не видим и разрушить его нельзя... Только убрав блок, на котором висит картина.
И что самое странное, поверх него можно повесить ещё картину... Как будто бы игра его не воспринимает как картину, а может быть он где-то в другом месте О_о
Хотя, при разрушении блока, предмет вылетает где надо...
 
4,045
63
645
Неа... Чо-т нифига... Сделал всё, как у Максика...
Такое ощущение, что энтити появляется только на сервере и до клиента инфа тупо не доходит... Поэтому он и картинку не видит и с баундинбоксом взаимодействовать не может...
 
4,045
63
645
СОЛВЕД, так сказать!
Всего-то надо было добавить к картине implements IEntityAdditionalSpawnData...
Короче, у них там какая-то фигня с синхронизацией... Как я понял.
...
Ну да, и последние три параметра при регистрации такие , 70, Integer.MAX_VALUE, false);
 
Последнее редактирование:
Сверху