Mihahail, а в фоне делается еще более интересная работа - отрефакторить больше 200к строк кода не нужно было бы чтобы реализовать только вышеупомянутые мелочи.
реализован алгоритм рейтрейсинга, позволяющий выполнять действия сквозь пустоты в микроблоках.
реализация алгоритма рейтрейсинга также позволяет стрелам пролетать сквозь пустоты в микроблоках.
благодаря все тому-же алгоритму теперь установка стамески происходит точно по наведению курсора на микроблок, а не по прямоугольной проекции от стороны, также установка стамески теперь возможна на произвольный микроблок и с произвольной стороны, а не только на крайние микроблоки с каждой стороны блока.
соответственно, рамка выделения блока отображается только при наведении на один из микроблоков блока, а наведение на пустое место равноценно наведению на блок воздуха.
также реализована система использования шаблонов обработки для стамески и несколько шаблонов, каждый из которых совместим с силой удара молотка
[cross] вырезает крестик из 5 микроблоков с центром в точке установки стамески.
[slice] срезает целый слой микроблоков, в соответствии с точкой установки стамески.
[square3][square5][square7] срезает квадрат соответствующего размера с центром в точку установки стамески.
[sphere3][sphere3][sphere3] обрабатывает часть блока соответствующего размера, оставляя в этой области сферу из микроблоков. В связи с низким разрешением результат похож на сферу весьма отдаленно. Используется только с силой удара молотка, в противном случае от каждого обработанного слоя остается только один микроблок в точке установки стамески.
[walls] оставляет только по ряду микроблоков на двух краях слоя, остальное срезается.
[well] оставляет только один ряд микроблоков по краям слоя, остальное срезается.
Новые скриншоты и обновление первого поста будут позже.
SwordOfTruth, а занимается ли кто-то этим (новым инструментарием для моддинга ВоВ)? Давно вышли панды и не за горами следующая версия, а инструменты, если честно, и под лича не доведены до ума - складывается впечатление что это никому не нужно из тех, кто в состоянии это сделать.
[UPD] Выкроил немного времени и довел до ума совместимость с обычным сервером (не forge и, скорее всего, не буккит и его производные).
Из более старого, но не упомянутого в исходном посте:
новые инструменты для работы с микроблоками (два вида по четыре материала). Инструменты из разных материалов на данный момент отличаются только прочностью. На новые инструменты пока нельзя наложить зачарование с помощью стола зачарования, но вполне можно с помощью наковальни и зачарованой книги. Также у новых инструментов временно отсутствуют названия при использовании стандартного ресурспака.
возможность контролировать "силу удара" молота (количество удаляемых микроблоков при использовании) путем переименования его в наковальне.
В планах на ближайшее будущее:
исправить не критические баги с названиями и зачарованием.
добавить возможность копировать структуру микроблоков с одного блока на другой.
доработать алгоритм проверки проходимости микроблоков для стрел и предметов.
исправить отображение рамки выделения блока чтобы она отображалась только при наведении на один из микроблоков в составе блока, а также масштабировать рамку выделения по краям конструкции из микроблоков, а не по краям исходного блока.
автоматически размещать точку приложения стамески сразу после конвертации блока в микроблоки, если соседние блоки являются конструкциями из микроблоков.
несколько "шаблонов" обработки блока, например: "ступеньки"(от блока остаются только микроблоки, соответствующие форме стандартных ступеней), "полублок" (аналогично ступеням, только за основу берется форма стандартного полублока), "гладкие ступени" (блок срезается по диагонали, образуя 8 ступенек высотой в один микроблок, а не 2 ступеньки высотой в 4 микроблока), "срез"(с выбраной стороны блока удаляется один слой микроблоков, можно комбинировать с силой удара, что позволит при силе удара 7 за один удар оставить от блока только один слой микроблоков), "труба" (от блока остается только слой в 1 микроблок с четырех сторон, что позволяет игроку или мобам упасть через отверстие в центре, также можно комбинировать с силой удара, что позволяет контролировать глубину обработки) и так далее - на сколько у меня хватит терпения описывать эти шаблоны в коде. Применяться шаблоны будут, скорее всего, переименованием стамески.
В планах на очень отдаленное будущее
адаптация мода под форж (если к тому времени не выйдет первая версия официального Plugin API)
"фигурные" стамески, позволяющие срезать не только один ряд микроблоков или фиксированный шаблон, но и какую-то предопределенную форму. Не путать с шаблонами - шаблон определяет способ обработки целого блока и результат его применения практически не зависит от точки приложения стамески, в то время как "фигурная" стамеска выполняет удаление микроблоков по своему шаблону, но относительно точки приложения.
"сквозная" конвертация и обработка блоков, что позволит не заботиться конвертацией каждого блока в микроблок - это будет происходить автоматически если область действия "фигурной" стамески будет выходить за рамки текущего блока. Также это значит что вырезаемая фигурной стамеской форма не обрезается по краю текущего блока - та часть что не уместилась на текущем блоке переносится на соседний.
дополнительный инструмент, отличающийся от имеющейся пары тем, что он будет удалять микроблоки сразу, а не по принципу "разместить стамеску, а потом ударить молотком". Т.Е. в один клик вместо двух, но и без страховки от мисклика.
улучшить алгоритм определения микроблока, по которому был произведен клик мышкой. На данный момент это простая прямоугольная проекция от стороны блока, в идеале же это рейтрейс от камеры или вроде того.
Штурман, а у вас там форж? тогда вынужден отказаться - совместимости с форжем добиться можно, но у меня просто нет на это времени - даже на продолжение разработки его с трудом удается найти, но за предложение спасибо.
На всякий случай хочу уточнить что конструкция на скриншотах не является новыми блоками как таковыми - она создавалась в игре путем удаления лишних микроблоков, а не заданием формы каждой разновидности блоков в программном коде.
Fakov, ну почему же, у меня не раз были случаи когда пол сервера были готовы душу продать за возможность ваять статуи в восемь раз меньше чем они были бы при использовании блоков стандартного размера. Кроме того есть как минимум одно практическое применение помимо декораций - компактные конструкции, по которым можно куда-либо подняться. И даже два - расширение внутреннего пространства помещения без потери внешнего вида (выдалбливаем все кроме одного слоя микроблоков в стенах / полу / потолке ), также на основе этого можно делать секретные проходы и всякое такое (пространства внутри блока от которого остались только боковые слои микроблоков хватает чтобы пройти, но с внешней стороны такой блок невозможно отличить от оригинала).
alexprey, и правда, контекст не важен когда код ужасен и просто не должен существовать в том виде, в котором представлен.
Что касается нового примера - тут мне возразить практически нечего, за исключением того, что у меня работа с векторами выглядела как-то так в последний раз (класс вектора был другой):
Vector3 position = Vector3.LEFT.clone(); //получаем копию вектора (-1, 0, 0), это может быть сделано тысячей и одним способом, сейчас мне захотелось именно так
position.mul(3.0f).add(1.0f, 2.0f, 3.0f); // измываемся над ним как нашей душе угодно
//исхожу из предположения что вектор не immutable, в противном случае код был бы немного другой
И да, что это за статическое обращение Vector3.left? а-та-та, попахивает юнити - нечего валить на джаву криворукость разработчиков юнити.
П.С. я знаю что юнити с джавой не работает, речь о другом.
alexprey, а в том, что ты умышленно написал строку, абсолютно вырванную из контекста и представляющую собой образчик весьма низкопробного кода? Так такое абсолютно с любым языком провернуть можно.
Doc, ты не совсем правильно понял мою позицию. Я о том, что есть куда более важные моменты чем удлинители из синтаксического сахара.
reALien, по клавиатуре я, как правило, пишу вещи, сложность которых ощутимо перевешивает десяток "лишних" символов.
alexprey, в процессе написания, как правило, не используются "ручые" циклы для перебора коллекции, как и повторное взятие первого элемента из коллекции при каждом сравнении, а уж поиск и подавно реализуется не последовательным перебором вручную.
Был бы я чуть более опытен я бы понял, что надо было сразу качать х32 версию. Короче док, успокойся. Все мы втупляем над какой либо проблемой и сидим над ней по долгу и не зависимо от языка на котором мы пишем.
if (nodeList.get(idx).getName().equels(nodeList.get(0).getName()) {
//Да не ущербный язык)))
}
if (nodeList[idx].Name == nodeList[0].Name) {
//А этот ппц ущербный XD
}
это все чертов синтаксический сахар, а байткод будет практически идентичен в обоих случаях.
П.С. любой язык, в котором нет множественного присваивания и множественного же ретурна ущербен по моему мнению, но это не мешает мне успешно работать на джаве.
П4ела, в консоли из папки с лаунчером сделай так и скинь результат (подразумевается что путь к джаве уже прописан в PATH)
java -jar имя лаунчера с расширением
не гарантирую что оно поймет exe упаковку лаунчера, но кто знает
Хочу кое-что уточнить. Исходя из имеющейся на сайте информации, я пришел к выводу, что все сервера под брендом xgm объединены общей авторизацией, так ли это или я принимаю желаемое за действительное?
П.С. что администраторы у каждого сервера свои это и ежу понятно.
EfReeZe, отлично, а теперь моя очередь. Уже несколько лет как java-разработчик, свободно ориентируюсь в программном коде любой сложности, по ряду причин взламывал и переделывал лаунчеры майнкрафта еще со времен версии 1.1. Новый лаунчер от mojang отвязывается от родной авторизации путем изменения двух строк, еще десяток строк понадобится чтобы научить его подтягивать обновления одновременно с двух мест - и с mojang и с любого указанного, плюс всякие декоративные изменения - еще пара десятков строк, ну и, конечно изменения на стороне сервера - мне понадобились одни выходные чтобы полностью воссоздать с нуля серверную часть новой системы авторизации и это на PHP, в котором я практически не разбираюсь.
Да, это ужас как много работы, но одна только возможность свободного переключения между версиями с загрузкой и автообновлением всего и вся полностью перекрывает затраты. Не говоря уже о раздельном хранении версий, подключении модов в качестве библиотек и возможности иметь несколько персонажей на аккаунте.
Особо актуальным мне кажется автоматическая загрузка всех необходимых файлов с сервера и переключение между версиями без перемещения файлов с места на место, особенно в свете того, что намечается существование нескольких серверов под общей авторизацией и с разным набором модов.
П.С. разводить холивар на тему языков программирования не намерен.
EfReeZe, прошу прощения, но что ты понимаешь в Java и принципах работы лаунчера minecraft и что знаешь о возможностях нового лаунчера от mojang чтобы говорить мне это?
Последний лаунчер xgm который я видел был основан на старом лаунчере от mojang со всеми вытекающими последствиями.
SwordOfTruth, на счет энкрипта не знаю, но все архивы последней версии ВоВ та версия что с сайта автора открыла (ну или почти все, если я какой-то не заметил).
П.С. автор у плагина то тот-же что и у MPQ Editor-а, если что.
SwordOfTruth, на правах рекламы - есть замечательный файловый менеджер, называется Total Commander, а для него не менее замечательный плагин, позволяющий открывать mpq файлы и вобще работать с ними как с обычными архивами (а работа с архивами в TC практически не отличается от работы с папками). Крайне удобная штука.
П.С. последнюю версию плагина брать надо с сайта автора - на сайте плагинов к TC очень старая версия.
» Minecraft / Snapshot 13w36a|13w36b
» Эксперименты в Пустоте / [WIP] Minecraft, микроблоки
» Minecraft / Snapshot 13w36a|13w36b
» World of Warcraft Modding / World of Warcraft Modding
» World of Warcraft Modding / World of Warcraft Modding
» Эксперименты в Пустоте / [WIP] Minecraft, микроблоки
» Эксперименты в Пустоте / [WIP] Minecraft, микроблоки
» Эксперименты в Пустоте / [WIP] Minecraft, микроблоки
Ред. prog
» Блог им. AlexPrey'я / MySQL C++ или как я прошел через ад
П.С. я знаю что юнити с джавой не работает, речь о другом.
» Блог им. AlexPrey'я / MySQL C++ или как я прошел через ад
» Блог им. AlexPrey'я / MySQL C++ или как я прошел через ад
» Блог им. AlexPrey'я / MySQL C++ или как я прошел через ад
» WarCraft 3 / Spell Contest IV
» lentinant'ов блог / Еще одна идея для паззла
» XGM Vanilla / XGM Vanilla
» XGM Vanilla / XGM Vanilla
» XGM Vanilla / XGM Vanilla
java -jar имя лаунчера с расширением
не гарантирую что оно поймет exe упаковку лаунчера, но кто знает
» XGM MCRPG Обитель легенды / XGM MCRPG Обитель легенды
Ред. ivanbakavan
» XGM Vanilla / XGM Vanilla
» XGM Vanilla / XGM Vanilla
» XGM Vanilla / XGM Vanilla
» XGM Vanilla / XGM Vanilla
» World of Warcraft Modding / World of Warcraft Modmaking
» World of Warcraft Modding / World of Warcraft Modmaking
» World of Warcraft Modding / World of Warcraft Modmaking