Admin (обсуждение | вклад) (Created page with " Ресурсы делятся на два больших типа - текстуры интерфейса (gui) и внутриигровые ресурсы (resource). Об...") |
(нет различий)
|
Ресурсы делятся на два больших типа - текстуры интерфейса (gui) и внутриигровые ресурсы (resource). Оба типа ресурсов хранятся в директориях, указанных в файле построения (для шаблонного мода это директории gui и res соответственно). У каждого типа ресурсов есть правила, по которым они загружаются и будут доступны в дальнейшем.
Текстуры интерфейса должны быть в расширении .png и могут находиться как в директории, указанной в файле построения, так и в дочерних ей. Текстура интерфейса будет доступна в коде по имени без расшрения, если она находится в дочерних директориях, то будут указаны и их имена через точку.
Пример:
Структура файлов интерфейса:
close_button_small.png # Будет доступен как close_button_small close_button_large.png # Будет доступен как close_button_large machine energy_bar.png # Будет доступен как machine.energy_bar macerator progress_bar.png # Будет доступен как machine.macerator.progress_bar heat_bar.png # Будет доступен как machine.macerator.heat_bar
В отличие от тектур интерфейса, внутриигровые ресурсы имеют различные типы, каждый из которых определяется и загружается по своему. Определяются эти типы по названию файла или по имени дочерней директории, в которой они находятся.
Во-первых файлы делятся на текстуры и не текстуры, последние определяются как файлы, которые имеют расширения png и tga.
Текстуры в свою очередь делятся на несколько типов: просто текстуры, текстуры блоков, текстуры предметов, анимации текстур блоков.
Текстуры блоков должны находиться в дочерней директории terrain-atlas или же просто иметь ее в своем пути. Кроме этого их названия должны быть в специальном формате: name_index.png, где name - имя, состоящее из латинских букв и подчеркиваний, а index - натуральное число, обозначающее номер текстуры с данным именем name. В коде данная текстура блока будет доступна по комбинации name и index.
Важно то, что для набора текстур с одинаковым именем крайне желательна непрерывная индексация с 0, т.е. если у вас N текстур с одинаковым именем их индексы должны быть от 0 до N - 1 (0, 1, 2, 3 - правильно; 1, 2, 4, 8 - неправильно).
Пример (Через запятую показаны имя и индекс, это не цельное имя, а два отдельных параметра):
terrain-atlas someBlock_0.png # Текстура будет доступна как someBlock, 0 someBlock_1.png # Текстура будет доступна как someBlock, 1 someBlock_2.png # Текстура будет доступна как someBlock, 2 ores oreCopper_0.png # Не важно, что файл находится в дочерней директории, текстура будет доступна как oreCopper, 0 oreTin_0.png # Текстура будет доступна как oreTin, 0
Текстуры предметов абсолютно аналогичны текстурам блоков и формату их названий и местоположения в ресурсах. Однако вместо terrain-atlas ключевое имя директории для текстур предметов - items-opaque.
Анимации текстур блоков могут находиться где угодно в директории ресурсов, однако имеют единый формат названий. Это должен быть файл в формате png, имеющий имя name.anim.png или name.anim.ticksPerFrape.png, где name - имя текстуры блока (именно имя текстуры, а не файла, т.е. для name_index.png это name), anim - ключевое слово, его оставить как есть, а ticksPerFrape - натуральное число, показывающее, сколько тиков (1/20) секунды нужно для смены 1 кадра анимации.
Сама анимация представляет из себя изображение размера (W)x(W*N), где W - разрешение текстуры, которую надо анимировать (обычно 16 или 32), а N - кол-во кадров анимации (обычно 32).
К сожалению, MCPE позволяет анимировать таким образом только текстуры блоков. Текстуры предметов так анимировать нельзя.
Остальные текстуры будут доступны в основном как текстуры моделей. Доступ из кода осуществляется по полному локальному пути в ресурсах, т.е. если текстура находится в <директория ресурсов>/path/to/file.png, то она будет доступна как path/to/file.png
Любые файлы во внутриигровых ресурсах имеют следующее свойство: если в ванильном ресурспаке MCPE есть файл с таким же локальным путем, что и файл в ресурсах мода, он будет заменен на этот самый файл из ресурсов мода, это позволяет для нужд мода заменять конкретные текстуры, шейдеры и т.п., а так же встраивать в моды ресурспаки.