Перейти к содержанию
Admin

Заказ №30: "Маршрутизация метро"

Рекомендуемые сообщения

Основное направление разработки на данный момент:

Описание на GitHub | Вспомогательная таблица

 

 


 

 

Добавил новый заказ.
Планируется передать проработку маршрутов и написание конкретных команд - на аутсорс игрокам.

 

Оплата за схему развязок = 6 стеков изумрудных блоков

Оплата за подготовку отдельной развязки = 1 стек изумрудных блоков

 

Список станций тут.

 

В качестве награды, как минимум - CSLf8v7.png

 

Схема линий, станций и развязок:

efkBknA.jpg

 

 

Развязки, маршруты, команды:

Спойлер

 

При текущем подходе [для экономии командных блоков при проверке проезжающего игрока] используется "маршрут по умолчанию = на спаун": это означает, что все стрелки по умолчанию ведут на спаун.

Из-за этого необходимо выполнять сброс стрелки после проезда игрока.

 

 

При подготовке команд:

  • сначала идут команды в командных блоках: последовательность - сверху (от нажимных рельс) вниз
  • в конце должна быть команда сброса конкретной стрелки в исходное положение

 

Коды направлений рельс:

  • 0: Север-Юг (Юг-Север)
  • 1: Запад-Восток (Восток-Запад).
  • 6: Юг-Восток (Восток-Юг).
  • 7: Юг-Запад (Запад-Юг).
  • 8: Север-Запад (Запад-Север).
  • 9: Север-Восток (Восток-Север).

 

Последний вариант с деревом квадрантов

Спойлер

 

Про КБ выдачи названия станции в чат и ассоциации номер -> адрес в отдельную группу КБ  тут

Список развязок и станций с адресами  тут

Схема дерева квадрантов и станций и развязок на нем  тут

 

У нас 61 развязка и 43 станции (не считая новый спаун)

Глубина вложенности дерева - 5 уровней.

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

 

C1Q34ep.png

Описание команд развязки тут

 

 

 

 

Старый вариант

Спойлер

 

 

1b8YBqs.jpg

 

Стрелка 1



/execute @p[r=20,score_MetroSt_min=2,score_MetroSt=2] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=7,score_MetroSt=15] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=24,score_MetroSt=26] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=32,score_MetroSt=42] ~ ~ ~ /setblock 44 33 -100 rail 0

/setblock 44 33 -100 rail 7 

Стрелка 3



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -91 rail 9

/setblock 41 33 -91 rail 0 

 

Стрелка 2



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=1] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=3,score_MetroSt=6] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=16,score_MetroSt=23] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=27,score_MetroSt=31] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=43,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -96 rail 8

/setblock 41 33 -96 rail 0  

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, RedTeapot сказал:

 

@JinenryokuFu, а можно тебя попросить обойти все развязки и для каждой развязки указать, что в каждом из направлений находится?

 

В каком смысле - что в каком из направлений? На карте все написано, на каждой развязке мне пришлось побывать, чтобы переделать, и схема, можно сказать, проверена. И развязки и станции на ней пронумерованы верно, и нарисованы верно. Относительно поверхности могут быть еще косяки небольшие, а сама схема правильная. Я могу приложить схемы, которые использовались для записи команд, пример такой схемы тоже раньше лежит, но так как мы теперь иначе планирует программировать, вряд ли это поможет. 

Пойду на метро покатаюсь))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Давно я не катался на метро да ещё и со звуком - так клёво!

Не верится, что игроки всё это сами прокопали, собрали ресурсов и отделали - и это только 7 станций, а скоро будет супер-круто!! :)

 

Кстати, пока я пишу это сообщение, я еду со станции "Велвет виладж" на станцию - "Виладж Барин Сёга" и совершенно не парюсь, что доеду + время позволяет строчить такие посты :)

 

Из косяков пока только - зависоны чанков (надеюсь, что это проблемы Спигота, а не карты, = есть шанс, что это будет исправлено в будущем). Ещё не сбрасывается переменная станции - хз, нормально ли это и нужно ли сбрасывать. Когда при входе в метро станция всегда ноль - как-то понятно, что делать дальше надо.

 

А не сбрасывается потому, что мы сменили переменную и теперь надо будет переделать все кб по приезду на станцию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На всякий, решил собрать в кучу все, что произошло/происходит.

 

Вчера подключил развзязки номер 1, 3, 5, 6, 10, 12 во временном режиме. Развязка номер 2 была сделана ранее для тестов и продожает работать. Конечно, надо будет все это переделывать, но зато можно кататься между станциями 0 - 6 до окончания работ.

 

Развязки номер 29, 30, 7, 8, 9, 11, 13, 14, 4 я "закоротил" - тупо обрезал лишние пути. Эти развязки сейчас временно выполняют роль прямого участка пути - ответвлений нет.

 

Сегодня я добавил сброс номера станции при прибытии на вагонетке.

 

И сейчас есть ряд пока не решенных вопросов:

 

  1. Если сейчас новичок попробует без выбора станции поехать в метро, он застрянет на первой попавшейся развязке. Что с этим делать? Если модифицировать систему обработки новичков, то можно им на автомате задавать станцию назначения номер 0 (или не 0, не важно. Как больше нравится) и ставить флаг обработки. Тогда новички по умолчанию будут ехать куда надо.
  2. При прибытии на станцию, конечно номер станции назначения сбрасывается в ноль. Но переменные адреса не меняются. И если захотеть тут же поехать на спаун (не трогая пульт), случится тыква - игрока вернет обратно. Думаю, надо при прибытии кроме сброса номера станции вызывать обновление игрока контроллером. Я прав?
  3. Поскольку контроллер помимо установки переменных адреса пишет в чат название станции, а это не всегда нужно (два предыдущих вопроса как раз рассматривают такие случаи), то нужен режим "тихой" обработки игрока: обновление переменных адреса без отображения названия станции в чат. Думаю, это решается добавлением еще одного тега, который запретит отображение названия станции в чат. Плюс в контроллер в цепочку добавится еще один КБ, удаляющий этот новый флаг.

В общем, все, кроме обработки новичков, я могу сделать сам. Мне сейчас нужно просто одобрение/обсуждение/запрет/etc.

Изменено пользователем RedTeapot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  1. давайте сделаем новичкам ноль по умолчанию - Оцелот, добавишь в ЦНС?
  2. наверное
  3. давай )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что мне нужно сделать? Поменять устанавливаемую в ноль переменную станции метро? Поставить выдачу какого-то флага? Названия их? Я просто не особо за темой слежу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Ок, Чайник, тогда в игре ловишь Оцелота и делаете явное указание переменной новичкам :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала надо осилить выбор игрока по наличию одного тега и отсутствию другого. Пытаюсь как-то сообразить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, RedTeapot сказал:

Сначала надо осилить выбор игрока по наличию одного тега и отсутствию другого. Пытаюсь как-то сообразить.

А может, ну его, второй тег? Может, можно по другому принципу реализовать то, что ты хочешь? Хотя я пока не очень понимаю, что именно ты хочешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

1 минуту назад, OcelotJungle сказал:

А может, ну его, второй тег? Может, можно по другому принципу реализовать то, что ты хочешь? Хотя я пока не очень понимаю, что именно ты хочешь.

 

Я писал, что надо в некоторых случаях обработать игрока в контроллере, но не писать ему в чат название станции. Сейчас эти КБ стоят в одной цепочке. Вот я и хотел бы придумать, как так вывернуться, не особо при этом изменяя то, что есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного подумал, чего же можно сделать.

 

Решил добавить еще один тег. Например, metro_needsInfo. И изменить контроллер в ЦНС: в КБ, который пишет в чат, изменить тег с metro_needsUpdate на metro_needsInfo. В цепочку в конец добавить еще удаление тега metro_needsInfo.

 

Таким образом, в пульт выбора станции добавляется еще один КБ, который лепит на игрока тег metro_needsInfo.

 

А когда мы хотим втихаря обновить игрока, мы лепим только metro_needsUpdate. Контроллер тогда обработает игрока, но не напишет ему ничего в чат.

 

Такой вариант годен? Если да, то могу указать, что добавить в обработку новичков + заняться допиливанием контроллера в ЦНС.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

В 6/5/2016 в 09:07, RedTeapot сказал:

Немного подумал, чего же можно сделать.

 

Решил добавить еще один тег. Например, metro_needsInfo. И изменить контроллер в ЦНС: в КБ, который пишет в чат, изменить тег с metro_needsUpdate на metro_needsInfo. В цепочку в конец добавить еще удаление тега metro_needsInfo.

 

Таким образом, в пульт выбора станции добавляется еще один КБ, который лепит на игрока тег metro_needsInfo.

 

А когда мы хотим втихаря обновить игрока, мы лепим только metro_needsUpdate. Контроллер тогда обработает игрока, но не напишет ему ничего в чат.

 

Такой вариант годен? Если да, то могу указать, что добавить в обработку новичков + заняться допиливанием контроллера в ЦНС.

Ну, наверное да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока ждем Чайника. 

В целом, моя помощь, я так понимаю, уже особо и не нужна, так что можем закончить. У меня на спауне в нижнем сундуке лежит то, что осталось от переделки перекрестков (или можно пару стаков рельс притырить?)))  У меня была мысль о развлекательном парке)) ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Притырь )
Я б даже подзаплатил тебе за помощь, которую ты проделал :)
4 чтека изумрудных блоков норм? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Норм, я торговаться все равно не умею. Особенно, когда можно рельс нахаляву раздобыть). Сколько можно, столько оставь V.V Светокамень просить уже неприлично все равно будет)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Так. Я сейчас строю еще один тестовый макет, дабы потестить работу скрипта.

 

Но в то же время, можно попробовать параллельно запустить перестройку развязок (ибо во-первых, не все они сейчас нормально работают, а во-вторых, были проблемы с размещением КБ и нажимных рельс).

И в довесок к этому каким-то образом собрать в кучу координаты нажимных рельс, выбирающих направление + рельс, меняющих направление + состояние этих рельс в случае, если развязка "зациклена" (не выбрано никакое направление - игрок катается по кругу) и если игроку требуется свернуть с развязки. Но это все можно и не делать заранее, а делать по ходу установки системы маршрутизации, просто если делать заранее, то можно немного ускорить установку КБ.

 

Я не знаю, как это все формализовать, чтобы уменьшить вероятность ошибок и упростить работу ( = свести все до рутинных повторений одних и тех же операций без особых раздумий)

 

Но в любом случае, эти все операции не обязательны и могут выполняться на ходу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чайник, у меня в таблице были координаты развязок, но не просто так, а всегда привязано к тому одинокому каменному полублоку, который в обраце (на картинке) стоит рядом с верхним светокамнем. Отсюда и высчитывались координаты рельс, как нажимных (выбирающих направление), так и поворотных (меняющих направление) для тех команд, которые подготовлены мной. Если тебе нужно именно подобное, то скажи, в каком виде тебе это нужно.

Какие развязки непривильно работают? Конструктивно неправильно или из-за проблем в "адресации"? Состояние рельс для варианта "по умолчанию" мной тоже рассчитывалось по таблице, именно для этого там стоит ориентация развязки. Если надо, я могу расширить таблицу, но опять же - как тебе это будет удобно использовать? Просто тупо перечисление координат каждой рельсины и для трех из шести указание направления по умолчанию? Скрипт сможет брать это из Excel'я? Не слишком ли много столбцов выйдет?

Изменено пользователем JinenryokuFu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

5 минут назад, JinenryokuFu сказал:

Какие развязки непривильно работают? Конструктивно неправильно или из-за проблем в "адресации"?

 

Проблема конструктивная, и сказать конкретно, какие развязки не работают, я не могу. Вот в этом и проблема - какие-то развязки переделать надо, а какие-то нужно оставить как есть. Затыка тут два:

  1. Нажимной рельс сразу после ответвления (сверху на том же образце). В некоторых случаях вагонетка может поехать по часовой, а не против. А это нам не нужно. Зависит от направления.
  2. Некоторые рельсы требуют постоянной запитки (дабы если их сломали, а потом поставили, они были сразу направлены куда надо). И расстояние между нажимными рельсами и любыми Т-образными соединениями в развязке должно быть не меньше одного блока, иначе нажимной рельс влияет на путь движения вагонетки (даже если он стоит после Т-образного соединения, хы).

И вот решение таких затыков требует времени + вагонеток (чтоб проверить, что вышло). И я хотел однозначно определить, что и как переделать. В принципе, думаю, это возможно, но геморненько.

 

11 минуту назад, JinenryokuFu сказал:

Скрипт сможет брать это из Excel'я?

По сути, да: можно экспортировать таблицу в CSV и читать этот самый CSV. Но тогда будет очень геморно обрабатывать всякие объединенные столбцы и прочие приблуды - таблица должна быть простой. Вот эту таблицу я сейчас использую для обработки скриптом, листы "Станции" и "Развязки". Видно, что структура там простейшая.

 

14 минуты назад, JinenryokuFu сказал:

у меня в таблице были координаты развязок

 

Знаю, видел. Почему-то кажется, что некоторые развязки там указаны с ошибкой (а некоторые были не указаны). Я строил граф, исходя из значений моей таблицы и для позиционирования узлов развязок как раз использовал твои координаты. Должно было получиться что-то, схожее со схемой метро, но некоторые развязки почему-то оказались не там, где должны быть (речь не о небольшом отклонении, типа, из-за разной ориентации развязок, а о конкретной такой ошибке).
 

21 минуту назад, JinenryokuFu сказал:

Просто тупо перечисление координат каждой рельсины и для трех из шести указание направления по умолчанию?

 

Что-то какая-то жесть выходит. Вообще, нужны координаты, направления по умолчанию (развязка образует кольцо), направления рельсов при активации выбрано данное направление движения). При этом, надо это разбить по направлениям движения: север, юг, запад, восток. Естественно, одного из направлений может не быть.

 

24 минуты назад, JinenryokuFu сказал:

Не слишком ли много столбцов выйдет?

 

Да, выходит просто мегатонна всякой фигни, и меня самого это печалит.

 

Хотел вывернуться через Macro/Keybind mod (В принципе, получить координаты блока под курсором там не проблема), но он печальный:

  1. Нет возможности выколупать из блока NBT-данные (например, подглядеть направление уже стоящей рельсы)
  2. Нет возможности парсить какой-нибудь JSON/XML (если не писать свой парсер, что на самом деле очень сурово) или совершать HTTP-запросы и читать ответ.

И там еще синтаксис тамошнего скриптового языка мне не очень нравится, хы. Но это так, субъективщина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

короче, скажи, что делать)), и я постараюсь сделать. В моей таблице были не прописаны те развязки, которые делались в конце, у меня с ноута не было доступа на дропбокс. Странно, что какие-то координаты оказались левыми, надо проверять. Но если делать, то все равно нужно как-то соориентироваться, какие развязки работают не так, иначе как-то совсем глупо.

Я могу и не объединять ячейки, мне-то что))), я потому и уточняю про возможность дальнейшего использования.

 

Столбец "Адрес" в твоей таблице я совсем не догоняю, а про направления - "с" и "s" это участки? По идее туда бы воткнуть направления рельс, как ты писал, при выбранном направлении. Нам надо только унифицировать "номера" стрелок-нажимных рельс, чтобы в строгом порядке всегда.

 

19 минут назад, RedTeapot сказал:

Что-то какая-то жесть выходит.

у нас шесть "кнопок" +"стрелок". Получается 12 столбцов с координатами х1,z1,.. х6, z6. Потом по четырем направлениям перечисление положения стрелок, можно в виде С1-С3-С5, и столбец направления по умолчанию в том же формате (в смысле - положение стрелки 1, число от 1 до 9, положение стрелки 3, положение стрелки 5). Так подойдет? 17 столбцов на каждую развязку.

Так тебе подойдет? Сделаешь мне еще один лист в твоей таблице, чтобы ничего не портить?

Изменено пользователем JinenryokuFu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

1 час назад, RedTeapot сказал:

Нет возможности выколупать из блока NBT-данные (например, подглядеть направление уже стоящей рельсы)

Возможность получить любые НБТ из блока есть, но для получения направления рельсы не нужно получать НБТ - это метадата блока, и её тоже можно получать.

Скажи мне, если нужно, я напишу получатель любого НБТ из блока и получатель его Метадаты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

33 минуты назад, OcelotJungle сказал:

это метадата блока

 

У меня на рельсине через HITDATA всегда выдавало 0. Хотя для цвета шерсти это работает нормально.

 

И я на Wiki читал, что направление рельсы в метадате решили выпилить, и оно уже почти не используется.

 

34 минуты назад, OcelotJungle сказал:

я напишу получатель любого НБТ из блока

 

Вот это было б интересно хотя бы на уровне "посмотреть, как оно делается". Ибо инфы по Macro/Keybind mod днем с огнем не сыщешь. Не могу найти нормальную внятную подробную доку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, RedTeapot сказал:

У меня на рельсине через HITDATA всегда выдавало 0. Хотя для цвета шерсти это работает нормально.

Это немного разные метадаты. Если кликать колёсиком по цветной шерсти, будет выдаваться цветная шерсть с такой же метадатой, а если кликать по разнонаправленным рельсам, всегда будут выдаваться одни рельсы. Технически, метадату вытащить возможно, но у меня почему-то не получается - не работает ifmatches с определёнными параметрами. Это очень странно.

 

1 час назад, RedTeapot сказал:

Вот это было б интересно хотя бы на уровне "посмотреть, как оно делается".

Напиши, пожалуйста, из какого блока и какую НБТ нужно вытащить. Хотя, кажется, и это не будет работать по вышеописанной причине. Уверен, на 1.8 это бы работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

39 минут назад, OcelotJungle сказал:

Это немного разные метадаты.

 

У блока из метаданных есть только одно четырехбитное число. И все. Остальное - логика работы игры и NBT.

 

39 минут назад, OcelotJungle сказал:

Напиши, пожалуйста, из какого блока и какую НБТ нужно вытащить.

 

Обычные рельсы, тег shape.

3 часа назад, JinenryokuFu сказал:

Столбец "Адрес" в твоей таблице я совсем не догоняю

 

Адрес - это номера квадрантов разного уровня вложенности, разделенные дефисом. Подробнее было описано тут.

 

3 часа назад, JinenryokuFu сказал:

а про направления - "с" и "s" это участки

 

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

 

4 часа назад, JinenryokuFu сказал:

у нас шесть "кнопок" +"стрелок". Получается 12 столбцов с координатами х1,z1,.. х6, z6. Потом по четырем направлениям перечисление положения стрелок, можно в виде С1-С3-С5, и столбец направления по умолчанию в том же формате (в смысле - положение стрелки 1, число от 1 до 9, положение стрелки 3, положение стрелки 5). Так подойдет? 17 столбцов на каждую развязку.

Так тебе подойдет? Сделаешь мне еще один лист в твоей таблице, чтобы ничего не портить

 

Чирт. Ведь это все можно скриптиком подсчитать, если привести все развязки к одному заранее известному виду + прописать/проверить координаты всех развязок относительно опять же фиксированной точки. Ибо положения стрелок одинаковы для одинаково направленных развязок. Координаты стрелок/нажимных рельсов можно посчитать, зная координаты развязки, точку, где эти координаты измерялись и схему расположения рельсов в этой развязке.

 

И тогда нет смысла долго и мучительно обходить все 60 развязок.

 

Но с этим "одним заранее известным видом" и возникают проблемы. Надо смотреть каждую развязку и переделывать. Но я пока хз, есть ли у тебя возможность это дело провернуть, если я опишу, что, как, зачем и в каких случаях надо делать.

 

4 часа назад, JinenryokuFu сказал:

Отсюда и высчитывались координаты рельс, как нажимных (выбирающих направление), так и поворотных (меняющих направление) для тех команд, которые подготовлены мной.

 

И да, я тормоз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часа назад, RedTeapot сказал:

Чирт. Ведь это все можно скриптиком подсчитать

ну, я в ручную, хотя да, автоматизировать это можно было бы. Но по-хорошему обойти (объехать, с конем быстрее получается, или облететь, если спектатор есть) развязки все равно надо, раз ты говоришь, что координаты где-то лажают. Может, тебе подготовить просто алгоритм, типа - если развязка "север", то к базовой координате для первой стрелки прибавить 3х, вычесть 10z, для второй... Тупо "case" или вложенный "if".

Но тут только та проблема, что развязки должны быть однотипные. Ты говоришь, что одни работают, а другие нет, и вот этого момента я не понимаю. Мы делали по образцу, который вроде как проверен, так что глючить могут (теоретически) максимум две развязки, которые квадратные, а не Т-образные.

 

13 часа назад, RedTeapot сказал:

Но с этим "одним заранее известным видом" и возникают проблемы. Надо смотреть каждую развязку и переделывать. Но я пока хз, есть ли у тебя возможность это дело провернуть, если я опишу, что, как, зачем и в каких случаях надо делать.

Как бы нам придти все же к одному виду-то? В чем проблема? Если в контакте нажимных-поворотных рельс, как ты написал, то это на всех должно глючить о.О

 

Ты опиши, я попробую найти время. Все равно ты сказал, что глобально пока делать ничего не можешь, ибо сидишь в лесу)). Я постепенно буду заполнять таблицу. Если мы считаем координаты скриптом, то у нас остается два столбца координат базовой точки, ориентация, четыре варианта поворотов + умолчание, итого 8. Уже вполовину меньше. Если для переделки не надо будет ломать бедрок, то, по идее, справлюсь. Если надо, буду пытать Вела.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

10 часов назад, JinenryokuFu сказал:

Как бы нам придти все же к одному виду-то? В чем проблема?

 

В общем, суть в том, что каждую развязку нужно перестроить/проверить в зависимости от ее направления.

 

Скрытый текст

На всех картинках север сверху.

 

Оранжевая шерсть - нажимной рельс активации стрелки.

Желтая шерсть - стрелка.

Красная шерсть - блок, который постоянно запитан (обычно, под ним должен стоять редстоун-факел).

Розовая шерсть - запитка блока сбоку, чтобы не влиять на КБ активации стрелки.

Бирюзовая шерсть - нажимной рельс сброса стрелки.

Адский забор - блок, координаты X и Z которого меня интересуют. Такое расположение не сильно случайно: это пересечение северного рельса пути, направленного с востока на запад и восточного рельса пути, направленного с севера на юг.

 

5KqlV7F.png

7FcPHeS.png

KQnzkO3.png

TmRlxKI.png

 

Вот так расположен адский забор, получается:

lMOTZai.png

 

В условиях сервера шерсть никакая не нужна. Под обычными и ускоряющими рельсами губки, а под нажимными рельсами, активирующими и сбрасывающими стрелку и самой стрелкой - оранжевая жареная глина (или не некрашеная? не помню).

 

В общем, могу расшарить гуглодоку. Только пока не знаю, куда.

 

Писать в лист "Стрелки". Столбцы "X" и "Z", думаю, понятны. В "Направление" писать одну из букв "n", "s", "e", "w" (север, юг, восток, запад соответственно) для направления, куда пути нет. То есть, для развязки номер 6 это будет "w" - запад, так как к ней подведены пути только с севера, юга и востока. Для крестообразных развязок (например, развязка номер 3) в "Направление" ставь один дефис - их буду обрабатывать вручную. Координаты для них пиши аналогично остальным развязкам.

 

Часть развязок (развязки 29, 30, 7, 8, 9, 11, 13, 14, 4) были "закорочены" мной, дабы обеспечить работоспособность станций 0 - 6. Эти развязки пока трогать не нужно. Пускай остаются, как есть.

 

И я не знаю, откуда брать ресурсы для исправления развязок. Может, попинать Вельвета, если нужно.

                                                        

 

Тем временем, я построил тестовый макет, покатался. Вроде, все работает. Могу выложить мир, дабы дать возможность покататься всякому желающему потестить работу чудо-скрипта.

 

Естественно, я собираюсь опубликовать исходники всех скриптов, но перед этим нужно привести их в порядок - говнокод там еще тот.

 

Если считать, что скрипт работает нормально, то остается ждать координат развязок и появления у меня нормального интернета + времени. И кажется, что до конца лета этого ждать не стоит, к сожалению. Или же перевалить работу по перетыкиванию бедрока и КБ на кого-то еще, у кого со временем/интернетом ситуация повеселее. Но чтоб запустить скрипт, надо поставить интерпретатор Python и библиотеку networkx. Я хз, как это делать под виндой, если честно, но можно попробовать разобраться, если таки понадобится.

 

                                                              

 

В 16.06.2016 в 22:04, OcelotJungle сказал:

Это немного разные метадаты.

 

Вот, кстати, почитал доки по Minecraft Forge. Там объясняется, откуда берется этот block state (речь тогда шла о считывании расположения рельсы). Оно, оказывается, хранится в метадате (которая эти 4 бита на блок). А block state - это просто обертка вокруг метадаты. Вот у рельса в block state прописано направление человекопонятным языком, типа north_west. А внутри оно когда надо преобразуется в метаданные или наоборот (из метаданных в направление). А это преобразование зависит от типа блока. И при этом block state может генерироваться "на лету" и не сохраняться на диск. Например, забор. У него в block state хранится четыре булевых переменных, означающих, соединен ли этот блок забора с чем-либо с данной стороны. Эти данные используются для рендера и на диск не пишутся.

 

Но я тогда не могу понять, почему MKB не может считать метаданные рельсы. Хотя для шерсти эта штука таки работает.

Изменено пользователем RedTeapot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложи, наверное, со ссылкой тут, кому интересно, скачают. И все равно я аналитически не понимаю, как отличается работа стрелок с разной ориентацией. По смыслу-то логика одинаковая. Вот и посмотрю. С теоретической подготовкой как могу постараюсь помочь, особенно если скоро выйдет фордж для десятки, ибо задалбывает все время Ф3 жать, писать с него неудобно, то чатом закроет, то еще что. 

Открой, что ли, для remoto.lavoro  на гугле, но лучше скопировать второй лист как третий для меня, чтобы была контрольная копия на всякий).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×