Форма блоков — различия между версиями

(Новая страница: «<div class="mw-parser-output"> = <span style="line-height:107%"><span style="font-size:18.0pt"><span style="line-height:107%">Форма блоков</span></span…»)
 
(нет различий)

Текущая версия на 13:11, 6 мая 2018

Форма блоков[править]

Форма блоков, если отличается от полного куба, обычно является одним параллелепипедом (боксом), однако есть возможность сделать и более сложные варианты.

Простая форма[править]

Простая форма блока является одним боксом и задается 6 координатами, по умолчанию это полный куб (0, 0, 0, 1, 1, 1). Эта форма задает блоку следующие параметры:

  • Если рендер блока не изменен с помощью BlockRenderer и ICRender, то вместо полного куба он будет выглядеть в виде бокса, заданного его формой.
  • Физическая форма блока, если она не изменена (как это делать будет показано далее), будет задана этим самым боксом

Хитбокс блока при наведении на него курсора всегда будет одним боксом, заданным простой формой, вне зависимости от его внешнего вида или физической модели.

Задается простая форма блока методом:

Block.setShape(id, x1, y1, z1, x2, y2, z2) - устанавливает форму блоку с данным id все зависимости от его data

Block.setShape(id, x1, y1, z1, x2, y2, z2, data) - устанавливает форму блоку с данным id и data

Физическая модель[править]

Физическая модель блока может содержать в себе много боксов и зависеть от окружения. Работает она по тому же принципу и используя те же условия, что и визуальная модель ICRender.

Чтобы создать пустую физическую модель используется конструктор:

var model = new ICRender.CollisionShape();

Для добавления в модель набора боксов используется метод addEntry(), отдающий объект позволяющий добавлять в него боксы и устанавливать условие его существования.

var entry = model.addEntry();

Методы объекта entry:

entry.addBox(x1, y1, z1, x2, y2, z2) - добавляет бокс с данными координатами entry.setCondition(condition) - устанавливает условие существования, которые были описаны в визуальной составляющей ICRender, если условие не установлено, существует всегда

Для установки физической модели блоку используется метод:

BlockRenderer.setCustomCollisionShape(id, data, model) - id, data - блок, которому устанавливается форма (если data будет -1, то модель установится для любого значения data при этом id), model - физическая модель.