Как работает дверь? 1.6.4

96
1
Привет, не подскажите как работает дверь Minecraft. Вопрос довольно глупый, хотелось бы понять что с чем связанно. Так как я строю Титаник, двери на нём 2 на 3 блока, хотелось бы сделать такую же дверь, только побольше (с 1 на 2 -> 2 на 3 блока). Подскажите пожалуйста если вы с этим сталкивались, какие файлы отвечают за дверь? Спасибо
 
Если тебе помогут решить проблему, не удаляй тему, как в прошлый раз. Будет гораздо больше пользы, если её после этого занести в решенные вопросы.

По теме:
Обычная мультиблочная структура. Лучше всего при таком размере сделать тайл для двери и отдельный псевдоблок двери.
При постановке двери через метод
Код:
canPlaceBlockAt
проверять можно ли поставить блок - т.е. проверяем область 2х3х1, либо 1х3х2, в зависимости от поворота игрока.

При постановке двери ставить в наведенный блок тайл, а остальное пространство заполнить псевдоблоками, каждому поставить метадату в зависимости от его позиции. Таким образом, мы сможем узнав метадату псевдоблока узнать расположения тайла двери - как бы его главной части. При ПКМ по тайлу - менять псевдоблоки на другие - открытый вариант, либо просто менять AABB, чтобы игрок мог пройти. При ПКМ по псевдоблоку вычислять позицию тайла и имитировать ПКМ у него. То же с разрушением блока.
Модельку можно налепить из течне, сделать её одной целой - размером 2х3х1 блока, рендерить только из главного тайла, который всего 1.

Если не нравятся псевдоблоки с метадатой - замених их "псевдотайлами", которые будут в прямом виде хранить координаты главного блока, что несколько увеличит нагрузку на сервер, но облегчит вычисления для определения позиции главного блока.

Суть понятна, или не очень?
 
Спасибо большое. Это не я удалила, сел мой младший брат и начал проказничать: по-удалял моих src, на форуме тут людям по-отправлял сообщения, в общем пускать его больше ну буду, если что я всё могу заново создать и пояснить уже подробно...
 
FRLoPzW.png

Типа расположение главного блока при двух вариантах поворота.
Из обсуждения в скайпе с парой человек с форума:
Второй вариант легче, в тайл достаточно добавить переменную isMaster и хранить координаты головного блока - меньше головной боли.
 
Назад
Сверху