Слой текстуры предмета от NBT

Версия Minecraft
1.18.1
API
Forge
515
58
150
Какими способами можно предметам НЕ из своего мода добавить второй слой в зависимости от нбт булев-тега? С моделями и рендером на новых версиях максимально незнаком. В инете читал про Baked модели, но не особо понял что да как мне нужно. Может кто поподробнее рассказать? Или привести пример каких нибудь модов где это реализовано. Пожалуйста, не тинкерс констракт, закопаюсь в слоях абстракции..
 
Последнее редактирование:
Решение
Самое простое - увеличить все квады по оси Z на маленькое, но достаточное значение и сдвинуть вполовину этого по той же оси.
Проще всего это сделать при помощи Endothermic:
Java:
List<BakedQuad> quads = ...;
List<BakedQuad> fixedQuads = quads.stream()
    .map(LazyUnpackedQuad::apply)
    .map(q->q.scale(1, 1, 1.0015))
    .map(q->q.translate(0, 0, -0.0015/2))
    .map(LazyUnpackedQuad::toBakedQuad)
    .collect(toList());
515
58
150
проблема точно не в этом. даже оставив только сгенерированные через ItemLayerModel#getQuadsForSprite квады эффект тот же. думаю, где-то поставлен кривой тип рендера, пока не знаю куда смотреть

1654368977478.png
 
7,050
319
1,477
Сколько раз вызывается getQuadsForSprite для одного и того же стака?
 
515
58
150
1 раз здесь:
Java:
  private ATMItemModel getModel(BakedModel originalModel, ItemStack stack) {
    ATMItemModel overrideModel = new ATMItemModel(originalModel);
      //на последнем скрине из конструктора ATMItemModel убрал вызов метода, добавляющего квады родительской модели
    if (ATMTagContainer.isAmethyst(stack)) {
      float delta = 0.0015f;
      overrideModel.addQuads(ItemLayerModel.getQuadsForSprite(0, ATLAS.apply(resolveSprite(stack.getItem())), TransformationHelper.toTransformation(new ItemTransform(new Vector3f(), new Vector3f(-delta / 2, -delta / 2, -delta / 2), new Vector3f(1 + delta, 1 + delta, 1 + delta)))));
    }
    return overrideModel;
  }
Java:
public void addQuads(List<BakedQuad> collection) {
    quads.addAll(collection);
  }
 
515
58
150
ещё чуть проверок: Onyx Pickaxe внесён через конфиг в чёрный список и в отличие от Copper Pickaxe имеет ванильную модель. Количество квадов одинаковое: 44. Пока не могу найти в чём проблема, открывал ItemRenderer, смотрел как в нём рисуется foil-эффект, но ничего особого из этого не вынес (0 знаний о MultiBufferSource, нихрена не понял)
1654374969412.png1654374982446.png
 
7,050
319
1,477
Лучше отдельную тему запилить под новый вопрос
 
Сверху