Пакеты данных Minecraft открывают дверь в мир почти безграничных возможностей. Однако полное использование их потенциала может оказаться непростой задачей, а некоторые расширенные функции часто требуют значительных усилий. С Bookshelf эти сложности становятся прозрачными. Простота и эффективность — это не просто обещания, это сама суть Bookshelf.
Действительно, когда мы намереваемся создать что-то новое, зачастую разумнее опираться на то, что уже сделано. В информатике эта реальность даже стала философией, как в языке Python и часто приписываемой ему знаменитой фразе: «никогда не делай что-то дважды». Однако если мы посмотрим на все творения в Майнкрафте, то увидим наоборот, что создатели регулярно создают подобные системы. Культура использования «библиотек» (или библиотек) для облегчения создания не так широко распространена среди сообщества разработчиков данных, хотя сегодня mcfunctions представляют собой настоящий язык разработки, сложность которого постоянно растет. Проект, который мы представляем вам сегодня, представляет собой именно библиотеку, которая пытается инициировать переход, чтобы использовать легион этих инструментов, предлагая что-то настолько полное, насколько оно доступно для неспециалистов.
«Что такое библиотека?»
Если вы никогда не занимались разработкой, это слово может показаться вам непонятным и абстрактным. Однако он очень конкретен и особенно удачно выбран. Действительно, если вы хотите написать статью, прослеживающую определенный период истории, что может быть лучше, чем полагаться на другие работы, найденные в библиотеках (или «библиотеке» по-английски)? В разработке, если вы захотите что-то создать, рефлекс будет тот же: искать в банках готовый код, способный решить часть возникших проблем и тем самым упростить и ускорить создание кода. Эти банки кода или библиотеки обычно имеют форму папок, содержащих множество файлов кода, которые вам просто нужно разместить рядом с вашим проектом, чтобы иметь возможность вызывать указанный код. Как вы уже поняли, Bookshelf — это пакет данных, предлагающий широкий спектр инструментов, которые вам просто нужно разместить рядом с вашим пакетом данных. При этом предоставляется понятная и подробная документация, которая поможет вам использовать каждую из предлагаемых функций.
«Конкретно, чем это может мне помочь?»
Книжная полка содержит множество инструментов, их слишком много, чтобы перечислять здесь. Библиотеку даже пришлось разделить на модули (для читающих нас датапаковщиков это просто пространства имен, посвященные определенной теме), которые можно было бы установить как независимый датапак, чтобы не пришлось устанавливать все инструменты.
Например, вы найдете основные математические функции (sin, cos, log, exp, sqrt и т. д.) через математический модуль . Возможность настройки боковой панели до мельчайших деталей, как если бы у вас был плагин, но при этом оставаясь 100% ванильным. Возможность извлекать и изменять свойства блоков или преобразовывать их в сущности (элемент, отображение блока и т. д.). Рейкаст для определенных мест с очень точным управлением хитбоксами или модулем перемещения , позволяющим полностью контролировать движение объектов (скорость, отскоки и т. д.). И многие другие ! Исчерпывающий список вы можете найти непосредственно в проектной документации .
«Он хорошо оптимизирован?»
Основная цель Bookshelf — доступность, что в первую очередь мотивирует выбор дизайна. Тем не менее, члены библиотеки, опытные картографы, испытавшие появление команд в игре, не испытывают недостатка в идеях или опыте для удовлетворения всех потребностей. Для этого они предлагают, например, функции, которые упрощают использование других высокооптимизированных функций, также доступных опытным упаковщикам данных, за счет влияния на производительность. Опять же, в документации указаны функции, которые могут быть громоздкими, и даны советы по повышению производительности, где это применимо.
«Я предпочитаю писать свой собственный код…»
Создатели Bookshelf прекрасно понимают, что многие упаковщики данных желают сохранить эту форму независимости. Чтобы решить эту проблему, проект призывает создателей узнать, как были созданы функции, и при желании воссоздать их самостоятельно. Это требует особого внимания к написанию кода, чтобы сделать его понятным, а также к лицензии проекта, которая явно разрешает такое использование. Таким образом, каждый создатель может научиться делать то, что предлагает библиотека, имея при этом план, чтобы не изобретать велосипед заново.
Вместе мы идём дальше
Одной из ключевых мотиваций проекта является сотрудничество, объединение навыков каждого для разработки инструмента, который действительно принесет пользу как можно большему количеству людей. Таким образом, проект полностью с открытым исходным кодом, то есть каждый может внести в него свой вклад через репозиторий git , в котором размещен код, и следуя соглашениям . Кроме того, если вы создали инструменты или знаете о них, которыми может быть интересно поделиться, создатели Bookshelf создали в своей документации раздел « Связанное » , чтобы ссылаться на другие инструменты этого жанра, чтобы поощрять сотрудничество, а не конкуренцию. Таким образом, они приглашают всех поделиться своими отзывами, советами и информацией, которые могут быть полезны для улучшения проекта или для его принятия в сообществе авторов.
Целое сообщество позади
Как упоминалось во введении, проект представляет собой не только файлы кода и документацию. На самом деле цель состоит в том, чтобы донести эту философию развития до сообщества упаковщиков данных и картографов. Проект уже почти 7 лет поддерживается членами сообщества Gunivers , целью которого также является содействие взаимопомощи между создателями. Если вы хотите научиться разрабатывать с помощью этого инструмента, эти участники будут рады поддержать вас через свой сервер Discord .