Как лучше всего реализовать энергию/трубы?

Версия Minecraft
1.7.10
608
5
15
Использовать какое-то API или самому делать?

Сейчас у меня такая система:
Ставишь блок провода: идёт алгоритм "по соседям" и и вызывает во всех механизмах метод updateConnects() где опять таки запускает алгоритм "по соседям" и в список добавляются подключенные такйлы.

Так-же updateConnects срабатывает при разрушении блоков в сети или загрузке чанка.

Но поддерживать такую систему сложно, определённой проблемой стала реализация ограничения передаваемых единиц по проводам (к примеру железный может передать 20 ед, а золотой уже 30 ед)

Допустим у меня есть такая схема:
0 - железо
1 - золото
Схема:
1111111000000111111
            11111111

Алгоритм пройдётся по прямой и ограничит до железной пропускаемости, а на то, что есть золотой обход ему наплевать.

Так-же озадачил трансфер жидкости, хоть я его и сделал, но всеравно.

Может проще использовать какое-то API? Есть советы? Желательно что-бы не тормозило расчётами каждый тик, и имело охрененный функционал.
 
svk2140 написал(а):
Использовать какое-то API или самому делать?

Сейчас у меня такая система:
Ставишь блок провода: идёт алгоритм "по соседям" и и вызывает во всех механизмах метод updateConnects() где опять таки запускает алгоритм "по соседям" и в список добавляются подключенные такйлы.

Так-же updateConnects срабатывает при разрушении блоков в сети или загрузке чанка.

Но поддерживать такую систему сложно, определённой проблемой стала реализация ограничения передаваемых единиц по проводам (к примеру железный может передать 20 ед, а золотой уже 30 ед)

Допустим у меня есть такая схема:
0 - железо
1 - золото
Схема:
1111111000000111111
            11111111

Алгоритм пройдётся по прямой и ограничит до железной пропускаемости, а на то, что есть золотой обход ему наплевать.

Так-же озадачил трансфер жидкости, хоть я его и сделал, но всеравно.

Может проще использовать какое-то API? Есть советы? Желательно что-бы не тормозило расчётами каждый тик, и имело охрененный функционал.
Тебе для чего именно нужна энергия? Думаю самый оптимальный вариант это RF, плюс у него есть thermal dynamics. Но если тебе нужна полностью своя механика то этот вариант не подойдёт. Для не сильно замудрённых механизмов (Вращение, высокое напряжение, лазерная материя, магическая, как пример вис.).
 
RF энергия Thermal expansion, её используют такие модификации как:

  • Ender Io
  • big reactors
  • Её принимают: applied energistics и open computer.
  • immersive engineering
Она добавляется не самим Thermal expansion'ом а ядром CoFH Core. Посмотри тут:


P.s В видео уроках на сайте в быстрой навигации есть 3 урока по созданию генератора на RF.
 
Всё-таки решил самому делать)

И проблему с алгоритмом тоже решил.
Сделаю хешмап с координатами блока и id провода.

Допустим 0 - железо, 1 - золото.

Итерация по ветке 1:
*1111111000000000000*

Итерация по ветке 2:
*1111111000000111111*
_______11111111

То-есть в 1 итерации, золотым проводам присвоило id 0, а при 2 итерации, смотрит, можно ли присвоить id 1, и присваивает его.

Кстати весь код, который я наработал по поводу "телепортации" жидкостей и энергии я выложу на форум :)
 
Назад
Сверху