Форма блоков, если отличается от полного куба, обычно является одним параллелепипедом (боксом), однако есть возможность сделать и более сложные варианты.
Простая форма блока является одним боксом и задается 6 координатами, по умолчанию это полный куб (0, 0, 0, 1, 1, 1). Эта форма задает блоку следующие параметры:
•Хитбокс блока при наведении на него курсора всегда будет одним боксом, заданным простой формой, вне зависимости от его внешнего вида или физической модели.
Задается простая форма блока методом:
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 - физическая модель.