Реализация проводов

Версия Minecraft
1.12.2
Мне понадобилось добавить провода в мод. Гуглил много.(возможно хреново) Из этого вынес пару фактов: нужно создать некую "сеть" в которой будут записаны все "поставщики" и "потребители" енергии, дабы найти подключенные устройства можно воспользоваться алгоритмом поиска в глубину(он вроде проще), начав например от провода, который подключен к генератору. Но я могу и ошибаться.
Теперь к вопросу.
Как можно самым оптимальным способом проверить, что все устройства соединены одним проводом.
 
Решение
Поиск в глубину не позволяет измерить расстояние до блоков, я еще емнип он даже медленнее поиска в ширину.
1548184590748.png
Я даже что-то подобное делал, за чистоту кода не ручаюсь. Но работает быстро, это я точно помню
LionBlazer/SurvivalTech
Поиск в глубину не позволяет измерить расстояние до блоков, я еще емнип он даже медленнее поиска в ширину.
1548184590748.png
Я даже что-то подобное делал, за чистоту кода не ручаюсь. Но работает быстро, это я точно помню
LionBlazer/SurvivalTech
 
1,038
57
229
поиск пути по графам (также называемым A звезда или A*)
Введение в алгоритм A*
c2e14aa4059841a08f659ef728a96a50.png

где Граф - это труба
скорость у него 0.002/сек при 100x100 помоему
 
7,099
324
1,509
A* ищет кратчайший путь, если известны исходная и целевая точки(если известен источник и потребитель)
 
1,038
57
229
Так то он должен быть известен и потребитель и получатель, потому что источников всегда меньше чем потребителей, ну ладно... в принципе ты прав, не буду подсказывать)) (запутывать)
 
Говорю же, тут самый оптимальный алгоритм в данном случае - поиск в ширину. Он проходит по всему графу и ищет кратчайшее расстояния до всех вершин и ребер(что необходимо). Если бы надо было конкретно найти расстояние до 1 точки, то да, возможно. А так нет

Сеть из миллиона вершин билдилась за ~75-150 мс, и большая часть из этого, я уверен еще и занимает доставание блока из чанка
 
Сверху