Случайная моделька блока

Версия Minecraft
1.12.2
API
Forge

ReyMagos

Тег-бомбастер
413
7
131
Добрый день!
Создаю блок, у которого моделька будет отрисовываться случайным образом, но не от каких параметров зависеть рендер не будет. А-ля блок камешков, которые каждый раз при постановке рисовались бы по-разному. Запоминать какой была отрисовка тоже не нужно, если игрок выйдет из чанка и, зайдя в него снова, увидит другой рендер - ничего страшного. Думал сделать это через событие, но брать список положений своего блока и рисовать там текстуру, как то костыльно. Делать тайл тоже лишнее - никакие свойства блок не содержит. Подскажите, что лучше сделать в таком случае?
 
Мне немного не то нужно. Состояний у блока не будет, рендер рандомный и не зависит от состояний. К примеру в 1.16, если я не ошибаюсь, есть черепашьи яйца, которые располагаются каждый раз по-разному.
 
Это можно сделать и на 1.12.2. Просто надо в blockstate указать массив с моделями, а не одну модель. Вот пример с камнем:
stone.blockstate:
{
    "variants": {
        "normal": [
            { "model": "stone" },
            { "model": "stone_mirrored" },
            { "model": "stone", "y": 180 },
            { "model": "stone_mirrored", "y": 180 }
        ]
    }
}
 
Модель рандомная. Абсолютно. Есть код, который генерит каждый раз новую модель. Не будет связано с блокстейтом. Возможных вариантов модели будем гораздо больше, чем можно (в здравом уме) указать через стейт. Цель стоит как раз в большей вариативности. А вопрос, куда пихать это модель или где её каждый раз отрисовывать.
 
Как по мне относительно простой вариант - это генерировать модель прямо в рендере исходя из координат блока и случайного числа, генерируемого при инициализации игры или, например, при переходе в другой мир. Но это только при условии, что генерация модели операция не сильно затратная по ресурсам. В противном случае более оптимальным вариантом будет сгенерировать ограниченное количество моделей при инициализации игры и в зависимости от координат блока выбирать одну из сгенерированных.
 
Хм, тогда закономерный вопрос, где находится рендер блоков. А то придётся держать массив поставленных блоков и в евентах его менять, проверять на наличие таких блоков при загрузке чанков, удалять их оттуда, когда чанк отгружается и многое другое, игра не стоит свеч, мороки слишком много. Но где-то в игре должен быть код, который сам всё это делает и просто, когда нужно отрисовывает модель блока. Туда можно хукнуться и если будет мой блок, то подсовывать туда сгенерированную модель.
За идею предварительного генерирования моделей, спасибо, хотя код не особо сложный, но так будет явно лучше.
 
Назад
Сверху