Перейти к содержимому

PowerStones

Пересекающиеся провода Redstone, Bluestone, Greenstone и Yellowstone

FabricNeoForgeForge
Загрузчики
FabricNeoForgeForge
Скачиваний на Modrinth
4 тыс.
Подписчиков на Modrinth
20
версий
59
Обновлён
31 июля 202631 июл.
Опубликован
в 2023

Коротко о моде

Работает на Fabric, NeoForge и Forge
Для Minecraft 1.21.1, 1.21.11 …
Нужен и в игре, и на сервере
Последняя версия — 4.0.0+1.21.11-neoforge от 31 июля 2026
Лицензия MPL-2.0 — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.20.1, 1.21.1, 1.21.11 …
Описание переведено автоматическиПоказать оригинал (EN)

PowerStones

Мод для Minecraft с пересекающимися проводами из Redstone, Bluestone, Greenstone и Yellowstone

Copyright (c) 2023-2026 CalvinMT

Зависимости

Моды, которые нужно установить для корректной работы PowerStones:

Fabric

МодПричина
[Fabric API]Необходим для работы модов на Fabric.
[FerriteCore]Позволяет Minecraft запускаться с обычным объёмом ОЗУ вместо 12 ГБ, для которых нужно добавлять аргумент (-Xmx12G).

Forge

МодПричина
[FerriteCore]Позволяет Minecraft запускаться с обычным объёмом ОЗУ вместо 12 ГБ, для которых нужно добавлять аргумент (-Xmx12G).

Совместимость

PowerStones совместим с другими модами на редстоун, такими как Red Bits или Redstone Bits.

Цель — сделать PowerStones совместимым с как можно большим числом других модов, но на это потребуется время.

Если есть мод, который вам нравится, но он кажется несовместимым с PowerStones, создайте новый issue на GitHub с тегом "Mod compatibility request".

Возможности

Функционал

  • Доступны четыре независимых цвета проводов: Redstone, Bluestone, Greenstone и Yellowstone, каждый передаёт свой отдельный сигнал питания.
  • Провода Powerstone могут пересекаться парами, позволяя двум независимым цветам проводов занимать один и тот же блок без взаимных помех.
  • Каждый цвет провода подключается и получает питание только от проводов, блоков, факелов, повторителей, компараторов и других редстоун-компонентов того же цвета.
  • Redstone Repeaters могут передавать питание с одного цвета провода на другой, позволяя управляемо связывать между собой иначе независимые цепи.
  • Разрушение провода с зажатым предметом-пылью powerstone в руке удаляет только каналы провода, совпадающие по цвету с зажатым предметом, что позволяет легко редактировать пересекающиеся провода, не затрагивая другой канал.

Блоки и предметы

НазваниеИзображениеРецепты крафта
Redstone
Bluestone
Greenstone
Yellowstone
Bluestone Block
Greenstone Block
Yellowstone Block
Bluestone Torch
Greenstone Torch
Yellowstone Torch

Процесс реализации и ограничения

Изначальная идея заключалась в том, чтобы разместить все четыре провода powerstone на одном блоке. Это означало, что блок провода redstone имел бы более 5 308 416 состояний (3x3x3x3x16x16x16x16) по сравнению с его версией без мода в 1 296 состояний (3x3x3x3x16). Поскольку все состояния всех блоков игры вычисляются при запуске, это потребовало бы больше времени на вычисления и памяти, чем может обработать компьютер.

Чтобы сохранить изначальную идею, были предприняты усилия по ограничению силы powerstone двумя состояниями (0-1) вместо шестнадцати (0-15). Это снизило количество состояний для блока провода redstone до его версии без мода в 1 296 состояний (3x3x3x3x2x2x2x2). Однако это количество состояний не было бы окончательным, так как было бы добавлено больше для отображения всех возможных соединений. В конечном итоге реализация оказалась слишком сложной и неразумной для продолжения, так как требовала переработки обновлений силы блока провода redstone и удаляла все ванильные функции redstone, связанные с уровнями силы redstone.

Идея перекрывающихся powerstone всё ещё рассматривалась как цель, была предпринята попытка сначала добавить bluestone поверх redstone, которая увенчалась успехом благодаря добавлению ещё одного свойства силы и увеличению обоих свойств силы на единицу. Таким образом, количество состояний для блока провода redstone составило 23 409 (3x3x3x3x17x17), что добавило всего пару секунд к времени загрузки.

Расширение мода с помощью проводов greenstone и yellowstone не могло быть достигнуто путём добавления ещё двух свойств силы по той же причине, что указана в изначальной идее (слишком много состояний). Тогда был сделан выбор в пользу перекрытия проводов парами. Провода redstone могли бы перекрываться с проводами bluestone, а провода greenstone — с проводами yellowstone. Это было легко достижимо путём добавления одного свойства с двумя состояниями (одно состояние на пару powerstone), что в итоге дало количество состояний для блока провода redstone в 46 818 (3x3x3x3x17x17x2). Добавление этого базового свойства замедлило запуск игры (~1м30с). Однако, что более важно, количество памяти (RAM), необходимой для загрузки игрой каждого состояния, приблизилось к 12GB. Даже если просьба к пользователям добавить простой Java-аргумент в лаунчер Minecraft для расширения максимального объёма выделяемой игре памяти делается для других модов, 12GB памяти — это огромная величина по сравнению с небольшим дополнением, которое этот мод привнёс бы в игру.

Поскольку свойство пары powerstone казалось хорошей точкой остановки, чтобы приблизить проект к изначальной цели настолько, насколько это было возможно после шести недель обучения и разработки, было принято решение найти мод, который мог бы значительно снизить объём памяти, выделяемой для запуска игры с PowerStones. После быстрого поиска [FerriteCore] показался подходящим и, вопреки всем ожиданиям, сделал возможным запуск игры с PowerStones без изменения максимального объёма выделяемой памяти (<4GB). Хотя PowerStones стал зависимым от мода производительности, пользователи могут извлечь из него пользу, не беспокоясь о потреблении памяти.

PowerStones изначально разрабатывался для использования с Fabric и в значительной степени полагался на mixins. После достаточно успешного старта мода и желания сделать его пригодным для использования с Forge, помощь была запрошена в Discord Forge. Однако вопросы, связанные с mixin, вызвали лишь критику в адрес зависимости PowerStones от [O-So-Cursed-Mixin]. Хотя предложения были полезны по своей глубине, их высокомерная форма и предположения могли бы быть оставлены в стороне. Несмотря на этот неприятный опыт с частью сообщества Forge, время и рациональные рассуждения показали, что использование API каждого загрузчика модов и отдельных классов powerstone вместо чрезмерной опоры на mixins было бы лучшим решением — не только для того, чтобы сделать его доступным через Forge, но также для минимизации багов и максимизации совместимости с модами. Тогда была проведена переработка мода для применения этих необходимых изменений.

Из-за большого количества состояний, введённых реализацией, зависимость от FerriteCore стала необходимым компромиссом, а не опциональной оптимизацией. Однако это также подчеркнуло необходимость более устойчивого архитектурного подхода. Логичным следующим шагом для PowerStones поэтому стал рефакторинг системы MultipleWires в реализацию на основе BlockEntity — подход, который несколько пользователей уже определили как необходимый для снижения сложности состояний при одновременном улучшении общей производительности и расширяемости. В этом контексте участник сообщества [AtronixMH48] предложил ценную помощь, предоставив модифицированную версию мода с решением на основе BlockEntity. Этот вклад был тщательно изучен для полного понимания его механики и частично доработан перед интеграцией в проект, что в конечном итоге устранило зависимость PowerStones от FerriteCore.

После рефакторинга на BlockEntity отрисовка блоков с несколькими проводами оставалась ограниченной ванильной моделью блока, которая не могла корректно отобразить два провода с разными схемами соединений на одном блоке. Поэтому была введена кастомная запечённая модель для независимой отрисовки обоих каналов проводов, используя данные о соединениях, хранящиеся в MultipleWiresBlockEntity. Это серьёзное изменение позволило каждому проводу сохранять свои собственные прямые участки, углы, соединения и вертикальные подключения, не влияя на внешний вид другого. С этой основой для отрисовки реализация нескольких проводов была затем обобщена за пределы исходных пар redstone-bluestone и greenstone-yellowstone для поддержки всех шести возможных парных комбинаций между redstone, bluestone, greenstone и yellowstone. Хотя PowerStones по-прежнему ограничивает перекрывающиеся провода двумя цветами на блок, любые два из четырёх доступных цветов теперь могут делить одно пространство, сохраняя независимость своих уровней энергии и соединений.

Выбор цветов

Цвета синий, зелёный и жёлтый были выбраны примерно в 2012 году, когда этот проект только зародился. Одной из целей было лучшее применение плохо используемых и почти бесполезных, но abundant ресурсов, таких как лазурит, изумруд и светопыль.

Каждый новый цвет пауэрстона получается из комбинации цвета redstone и цвета ресурса, используемого в рецепте пауэрстона. Сначала текстура пауэрстона окрашивалась в цвет ресурса. Затем текстура redstone накладывалась сверху, после чего к слою redstone применялся фильтр смешивания color dodge с прозрачностью ~30% (75/255).

Вклад

Пожалуйста, обсудите существенные функции перед их реализацией.

Непрошеные pull request'ы с функциями могут быть отклонены, даже если они технически корректны.

Исправления багов, небольшие исправления совместимости и хорошо ограниченные улучшения, как правило, с большей вероятностью будут приняты.

Участники

  • [CalvinMT] (Автор)
  • [AtronixMH48] (Рефакторинг MultipleWiresBlock в Block Entity)

Лицензия

PowerStones распространяется под лицензией Mozilla Public License Version 2.0.

Если вы повторно используете или изменяете этот проект, вы должны сохранить необходимые уведомления об авторских правах и лицензии в соответствии с Mozilla Public License 2.0.

Если вы создаёте проект на основе PowerStones, видимое упоминание PowerStones и ссылка на оригинальный репозиторий будут очень признательны.

Частые вопросы

Как установить PowerStones?

Установите Fabric под свою версию Minecraft, скачайте PowerStones под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть PowerStones?

У PowerStones есть сборки для Minecraft 1.18–1.19.4, 1.20.1, 1.21.1, 1.21.11.

Нужен ли PowerStones на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
Mozilla Public License 2.0можно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее