прожектор карты высот в майнкрафт
GregTech Rus Minecraft Сервер
Российский сервер minecraft GregTech
Мод OpenBlocks (АРХИВ 1.6.4)
Мод OpenBlocks (АРХИВ 1.6.4)
Сообщение manger » 05 май 2014, 15:15
Предметы
___________________________________________________________________________________________________________________________________________________
Jaded Лестница: люк Лестница Combo
Свет Блок: Положите его на стену или что-то, то щелкните правой кнопкой мыши и положить созданный карту в блоке и карта показывает на нем.
Цель: Подайте сигнал Редстоун, чтобы активировать пункт, делает Редстоун сигнал разной силы в зависимости от того, где вы снимаете его.
GoldenEye: расширенный глаз Эндер; вместо того, чтобы вас к stonghold это приведет вас к любой структуре.
Могила: Когда вы умираете могила занимает место, куда вы умерли в. Она также имеет свой Minecraft Имя на нем. Когда добыча будет отбрасывать все ваши вопросы, которые у вас, когда вы умерли.
Пункт Кэннон: Щелкните правой кнопкой мыши с указателем и нажмите правую кнопку мыши, где вы хотите детали к земле, а затем положить сундук рядом с пушкой и поставить сигнал Редстоун и он стреляет детали на этих координат.
Вакуумный бункера: Это как бункер, но вместо этого он всасывает все упал пунктов в вокруг него, как на пустом месте. Может использоваться, если бак находится рядом с ней, чтобы собрать опыт в жидкой форме.
Большие кнопки: Похоже на прижимной пластине за исключением того, идет на стенах и действует так же, как кнопки. Shift-правой кнопкой мыши и вы можете положить предметы в нем, и чем больше пунктов, тем больше задержки.
Волшебный карандаш: Когда щелкнув правой кнопкой мыши на любом блоке, это, кажется, обратить хотя вы ничего не видно; все, что вы обратили можно увидеть только то время как ваш носите карандаш очки. Может быть использован для создания лестницы, половина плиты и другие блоки, когда сдвиг правом щелчке.
Магия Crayon: Деяния же, как карандаш, но вы не взаимодействуют с ними, если вы не носите подходящие очки. Поставляется во всех Minecraft Colors.
Веревочная лестница: Лестница, которые должны быть размещены на твердого блока, хотя блоки под ним может быть воздух.
Пустой Карта: Вам нужно это для картограф. Есть 1:1, 1:2, 1:3, 1:4, 1:5, 1:6, 1:07, 1:08 и.
Картограф: Вы должны это для карт Projector. Простенькая машина, которая сканирует окружающую среду вокруг вас, чтобы производить 3D карту для проектора. Просто сдвиг-щелкните правой кнопкой мыши на него с пустой карте, чтобы он мог наметить окрестности.
Рост Карта проектора: Проще говоря карту вы дали картограф в этом блоке, и вы получите 3D вид на окрестности
Краска смеситель: Вы должны Голубая краска, пурпурный краситель, одуванчик желтый и чернила Мешки для использования. Если у вас есть эти пункты, и поместить их в, вы можете просто создать любой цвет вы хотите. Как только вы достигаете нужный цвет, положить молоко в левом верхнем слоте, нажмите сочетание, и ждать.
Paint Brush: Вы должны это для того, чтобы нарисовать Холст блоков.
Неподготовленных Трафареты и готовые трафареты: Проще говоря это в чертежный стол, и вы можете сделать эти трафареты. Если у вас есть трафарет, Вы можете положить их на холст и рисовать их, удалить, а затем у вас есть трафарет, вы также можете комбинировать трафареты.
Ракель: Сброс всех блоков в нормальное состояние. (Удаляет краску и трафареты).
Вентилятор: Удары все объекты и упал пунктов от него, включая вас.
Дельтаплан: Просто щелкните правой кнопкой мыши и прыгать, и теперь вы Дельтапланеризм.
Камера: Они будут следовать за вами и попытаться найти поблизости предметы, чтобы забрать. Просто щелкните правой кнопкой мыши, чтобы они открыли их и они действуют как сундуки. Когда ударила молния увеличит свою нагрузку хранения и свечение в действительно прохладным способом.
Спальный мешок: Просто щелкните правой кнопкой мыши, и вы заснете. Он будет automacally упасть спиной, если дневной.
Соник очки: Сделает ваше видение размыто, но давайте вы обнаружить и увидеть простейшие звуки в игре.
Кранзак Рюк: Кран работает рука об руку с контроллером. Просто сдвиг-щелкните правой кнопкой мыши, чтобы снизить и щелкните правой кнопкой мыши, чтобы поднять его обратно вверх. После того, как это выше блока или юридического лица, щелкните левой кнопкой мыши, чтобы поднять его.
Slimalyzer: Когда вы достигаете слизи кусок получится зеленый и сделать звуковой сигнал, который говорит вы достигли слизи кусок.
Строительство Руководство: Руководство по зданию. Показывает призрак версию структуры, только формирует). Положите Obsidian на верхней части блока и щелкните правой кнопкой мыши с любого блока вы хотите построить из и вы получите сборку мгновенно. (Авто сборки только в Creative)
Лифт: вы просто просто поставить блок на первом этаже, а затем один на втором этаже и встать на него и вы телепортироваться или возведен второй этаж. Перейти идти вверх, переложить спуститься. Диапазон значений по умолчанию равно 20.
Целитель: Используется для исцелить любого игрока, который ходит к нему, творческая только.
Танк: Этот блок может хранить жидкости (вода, Лава, и жидкость XP)
XP Drain: Просто стоять на нем и все XP будет слить в блок
Губка Если положить рядом с любым источником воды, за исключением танков, будет стекать немного этой воды.
XP разливочной: Может использоваться для бутылки свой liqidfied XP
Авто Наковальня: Использует жидкий XP для использования. Используется для автосервис вас инструментов.
Авто Чарблицаы Та: То же, что Auto Anvil но автоматически Энчанты ваши товары. Вы можете использовать ползунок, чтобы установить очарование уровня, который вы хотите.
Block Breaker: сломает блок перед ним, когда он имеет сигнал Редстоун.
Блок Placer: Имеет ли противоположное Block Breaker это место блок зарядные сигнала Редстоун.
Холст: Вы должны это пойти с вы создали краску для некоторой забавы. Место пару эти вниз и покрасить их цвета вы Chosing и вы можете покрасить стороны по-разному. Vanilla блоки также могут быть окрашены.
Рисование Таблица: Используется для рисования трафареты на ваш выбор с краской.
(данный текст был переведён с иностранного языка и может иметь в себе ошибки)
Алгоритм «diamond-square» для построения фрактальных ландшафтов
Думаю, многие знакомы с весьма необычной игрой Minecraft (справа — пример сгенерированной в ней карты), в которой игрок находится на (практически) бесконечной поверхности Земли и может исследовать окружающий мир с минимальными ограничениями.
Как же автору игры, Notch’у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.
Внутри вас ждет несколько схем и красивых картинок, довольно много букв и ссылка на пример реализации алгоритма.
Общий план действий
Способы построения карты высот
Итак, займемся самым важным этапом построения ландшафта — определением того, на какой высоте находится каждая точка поверхности земли. Самая банальная идея — пробежаться по обоим координатам и сделать map[x][y] = random() — как ни странно, не даст приемлемых результатов, поэтому нужно использовать кое-что похитрее.
Создание холмов «вручную»
Довольно простой алгоритм: изначально считаем, что все точки находятся на одном уровне и начинаем добавлять в произвольных местах эдакие «выпуклости» — холмы различной высоты. В результате аккуратного наложения этих холмов друг на друга (и, возможно, добавления небольшого шума, упомянутого выше) уже можно получить нечто похожее на правду. Но куда более реалистичных ландшафтов можно достичь перечисленными ниже алгоритмами, поэтому на методе «холмов» я не буду останавливаться.
Ландшафт на базе диаграммы Вороного
На самом деле, до недавнего времени следующий подход для меня был совершенно неизвестен и я был весьма удивлен тем, что он способен давать весьма впечатляющие результаты.
Начинается всё со случайного бросания точек на карту. Затем по этим точкам строится диаграмма Вороного (и, соответственно, триангуляция Делоне), а на ней выполняется несколько итераций релаксации Ллойда, чтобы избавиться от слишком мелких полигонов.
Если вам оказался непонятен предыдущий абзац — не страшно, его суть сводится к созданию примерно такой сетки, как на рисунке справа. Главное её свойство — это её нерегулярность. Это позволяет построенному на её основе ландшафту не выглядеть слишком «квадратным».
Дальнейшие действия тривиальны — мы случайным образом выбираем полигоны, подлежащие заполнению водой, а высоту точек, принадлежащих остальным полигонам, делаем равной кратчайшему расстоянию до моря-окияна. Осталось добавить всё тот же шум (причем как к собственно высоте, так и к границам полигонов) — и мы получим весьма симпатичный остров (или материк, в зависимости от масштабов).
Реализацией данного алгоритма я не занимался и для упрощения статьи опустил несколько деталей и промежуточных. С подробной статьей (из которой были позаимствованы картинки и большая часть информации), можно ознакомиться по ссылке (на английском), там же есть замечательное swf-демо, крайне наглядно иллюстрирующее все этапы процесса.
Алгоритм diamond-square
Самым же распространенным и дающим одни из самых реалистичных результатов является алгоритм diamond-square (или square-diamond), расширение одномерного алгоритма midpoint displacement на двумерную плоскость. Ландшафты, получающиеся с его помощью, как правило, называют фрактальными, хотя, следует признать, на самом деле они не так уж самоподобными — напротив, как мы увидим ниже, их не очень приятным свойством является то, что в крупном масштабе они становятся относительно гладкими, а в мелком превращаются в подобие наждачной бумаги.
Начнем с более простого алгоритма midpoint displacement. Как уже сказано, он работает не на двумерной плоскости, а на одномерном отрезке (поэтому с его помощью можно, например, создать линию горизонта).
То, что роднит этот алгоритм с фракталами — это его рекурсивное поведение. Изначально мы любым образом задаем высоту на концах отрезка и разбиваем его точкой посередине на два под-отрезка. Эту точку мы смещаем на случайную величину и повторяем разбиение и смещение для каждого из полученных под-отрезков. И так далее — пока отрезки не станут длиной в один пиксель. Вот и весь алгоритм (см. рисунок справа). Ах, да — важное замечание: случайные смещения должны быть пропорциональны длинам отрезков, на которых произведятся разбиения. Например, мы разбиваем отрезок длиной l — тогда точка посередине него должна иметь высоту
h = (hL + hR) / 2 + random(- R * l, R * l)
(hL и hR — высоты на левом и правом конце отрезка, а константа R определяет «шероховатость» (roughness) получающейся ломаной и является главным параметром в данном алгоритме).
Попробуем обобщить этот алгоритм для двумерной карты высот. Начнем с присвоения случайных высот четырем углам всей карты целиком и разобъем её (для удобства я предполагаю, что мы работаем с квадратной картой, причем её сторона является степенью двойки) на четыре равных квадрата. В каждом из них известно значение в одном из углов. Где взять остальные?
Всё той же интерполяцией, как и в одномерном midpoint displacement — точка в центре получается усреднением высот всех 4 угловых точек, а каждая серединная точка на стороне большого квадрата — усреднением пары точек, лежащих на концах соответствующей стороны. Осталось привнести немного шума — сдвинуть случайным образом центральную точку вверх или вниз (в пределах, пропорциональных стороне квадрата) — и можно повторять рекурсивно наши действия для полученных под-квадратиков. Всё? Всё, да не всё.
Это ещё не diamond-square — данный алгоритм, как правило, тоже называют алгоритмом midpoint displacement и несмотря на то, что он дает уже относительно приемлимые результаты, в получившейся картинке без особого труда можно заметить её «прямолинейную» натуру.
Алгоритм diamond-square — тот самый, который позволяет получать «настоящие» фрактальные ландшафты — отличается от двумерного midpoint displacement тем, что состоит из двух шагов. Первый — т. н. «square» — точно так же определяет центральную точку в квадрате путем усреднения угловых и добавлением собственно displacement’а — случайного отклонения. Второй же шаг — «diamond» — призван определить высоту точек, лежащих на серединах сторон. Здесь усредняются не две точки — «сверху» и «снизу» (если говорить о точках на вертикальной стороне), но и пара точек «слева» и «справа» — то есть еще две полученных на шаге «square» центральных точки. Важно заметить, что эти две высоты, которые достались нам на предыдущем шаге, должны быть уже посчитаны — поэтому обсчет нужно вести «слоями», сначала для всех квадратов выполнить шаг «square» — затем для всех ромбов выполнить шаг «diamond» — и перейти к меньшим квадратам.
Объяснения, думаю, могут показаться запутанными, поэтому советую внимательно изучить приложенные схемы — по ним должно стать яснее, высоты каких точек вычисляются на каждом этапе.
Кроме необходимости использовать, скажем так, обход в ширину вместо обхода в глубину, есть ещё одна тонкость — ситуация на краях ландшафта. Дело в том, что на этапе «diamond» алгоритм использует высоту точек, которых находятся за пределами текущего квадрата и, возможно, всей карты. Как быть? Варианта два (хотя вы можете придумать и свой собственный, конечно): либо считать эти высоты равными 0 (или 1, или любой другой константе; это, кстати, удобно для погружения краев нашего ландшафта под воду), либо представить что наша плоскость свернута в тор (тороидальная планета, хм. ) и пытаясь узнать высоту точки, лежащей на 64 пикселя левее левой границы карты, мы узнаем высоту точки, отстоящей на 64 точки от правой границы. Реализуется очень просто (как, впрочем, и первый вариант) — нам поможет взятие координат по модулю, равному размеру карты.
Итак, таковы основные алгоритмы построения карт высот для искусственно генерируемых ландшафтов. На мой взгляд, наиболее реалистичные результат дает последний из них, diamond-square — хотя и он не лишен некоторых недостатков. Например, создав карту, которая хорошая выглядит при сильном приближении — при просмотре целиком вы увидите множество мелких островков (а то и вовсе сплошной шум, с которого мы начинали) вместо нескольких больших материков и океанов. Самоподобия не выходит. Исправить это можно различным комбинированием фрактальных ландшафтов разного масштаба. Их значения можно перемножать, складывать, использовать различные коэффициенты или, например, привнести данные, полученные с помощью диаграммы Вороного — в общем, простор для экспериментов достаточно велик. Кстати, даже используя только один diamond-square, полученные значения (предварительно нормализованные, то есть в диапазоне от 0.0 до 1.0) полезно возвести в квадрат — это сделает равнины более пологими, а склоны гор более крутыми (помните про эрозию?).
Модификация алгоритма diamond-square для больших карт
Ну и напоследок — несколько слов о моей реализации алгоритма diamond-square. Главный вопрос, которым задаешься при генерации ландшафта — как сделать так, чтобы можно было значительно увеличить его размеры? Стандартная реализация обсуждаемого алгоритма позволяет легко увеличивать детализацию (двигаться «вглубь»), но не размеры («вширь»).
Данная проблема была решена мною следующим образом. Не знаю — возможно, это решение окажется общеизвестным или вполне очевидным для кого-то — но до этого я с ним не сталкивался и придумать его получилось не сразу (более того — «на пустом месте» возникла одна неожиданная заминка, которую разрешить «правильно» так и не удалось — об этом ниже).
Итак, подход таков: пусть наш ландшафт изначально задуман гигантских размеров (например, 16777216×16777216 пикселей, хотя это далеко не предел). Важно то, что мы не собираемся узнавать высоту в каждой точке, а вместо этого у нас будет некое значительно меньшее «окно» (например, 128×128 пикселей), которое мы будем по необходимости перемещать над нашей картой высот. Оказывается, исходный алгоритм легко модифицируется так, что нам будет требоваться на просчет «окна» число операций, пропорциональное размеру окна, но мало зависящее от размера ландшафта. Именно поэтому мы можем изначально задать ландшафт почти сколь угодно большим.
На помощь нам придет методика под названием ленивая динамика. Тем, кто знает, о чем речь, думаю, уже стало всё понятно, для несведущих в вопросе поясню. Мы «выворачиваем» весь процесс наизнанку — вместо того, чтобы начинать с больших квадратов и спускаться вниз к каждому пикселю, мы принимаем запрос вида «узнать высоту в точке (x, y)» и дальше поднимаемся вверх: наша точка, как мы знаем, была получена усреднением четырех других точек и случайным сдвигом. Самое сложное — понять, какими были эти 4 точки. После того, как мы это поймем, нам будет достаточно повторить запрос «узнать высоту», но уже для каждой из этих точек. Эти запросы, в свою очередь, поднимутся еще на уровень выше — и так далее, пока не дойдут до самого верха, до угловых точек карты (у меня они, как и точки за пределами карты, равны 0.0). В исходнике всё это выглядит примерно так:
Главное — на ходу запоминать (и складывать в какой-нибудь кэш) все значения высот, которые мы уже вычислили. Это позволит нам не заниматься одним и тем же много раз. Собственно, даже вычислив первую точку в нашем «окне», мы попутно узнаем и ряд других точек, тоже принадлежащих этому «окну». По сути, пробежавшись по всем точкам «окна», мы сделаем не так много лишних операций — хотя их точное количество сильно зависит от того, было ли выравнено «окно» (его верхний левый угол и размер) по степеням двойки.
Как уже было сказано, в алгоритме есть несколько магических строк — вот они:
Здесь определяется, является ли текущая точка центром квадрата или ромба и каков размер этой фигуры. Если честно — данный код был написан просто по наитию, его точное математическое обоснование я дать не могу. Мы просто находим наименее значащий бит, который отличен от нуля хотя бы у одной из координат — он и будет искомым размером. А чтобы определить, была ли фигура квадратом — проверяем, что у обоих координат был выставлен этот бит. Обе координаты здесь нуль-индексированные.
И, наконец, неожиданный подводный камень: генератор псевдослучайных чисел. В моем коде к нему предъявлялись необычные требования: для каждой точки (x, y) всегда хочется получать одно и то же случайное число, и делать это быстро. Многие языки программирования в генераторе случайных чисел имеют возможность указать т.н. «зерно» (seed), от которого будет зависеть вся следующая последовательность генерируемых чисел (в JavaScript этого нет, но для него есть реализация распространенного вихря Мерсенна). Проблема в том, что последовательность нас не устраивает — при сдвиге окна (и очистке кэша) мы подойдем к одной точке совсем с другой стороны и случайный сдвиг станет иным. Мы же хотим статичный ландшафт, при каких бы условиях мы его ни рассматривали. Попытка инициализировать вихрь Мерсенна каждый раз «зерном», зависящим от обоих координат, провалилась: его инициализация длится слишком долго.
После некоторых размышлений я пришел к выводу, что быстрого способа преобразовать две координаты в число, которое было бы мало скоррелировано с ними, в принципе невозможно. В итоге я остановился на такой функции, которая дает приемлимые результаты из-за многократного взятия чисел по простым модулям:
Кроме того, в эту функцию удалось без труда привнести «глобальное зерно», определяющее весь ландшафт целиком, а из-за взятия остатков её возращаемые значения оказались достаточно равномерно распределены по диапазону [0, 1). Впрочем, я уверен, что можно придумать более быстрое элегантное решение — можете считать это «домашним заданием» в данной статье 🙂
Что известно о новой генерации пещер в Minecraft 1.17
В новом снапшоте Minecraft Java Edition 20w06a произошло несколько важных изменений:
Один из разработчиков Minecraft Хенрик Книберг опубликовал картинку, поясняющую произошедшие изменения (полноразмерный файл можно посмотреть здесь), а также вместе с другим разработчиком @kingbdogz ответил на вопросы игроков.
Высота мир выросла, правда, немного необычным образом — область, в пределах которой могут быть установлены блоки, увеличена на 64 блока вверх и на 64 блока вниз — появились отрицательные координаты.
Благодаря этому, после обновления, новые области, генерируемые в мирах, созданных в предыдущих версиях Minecraft, должны успешно стыковаться со старыми — не будет резких перепадов высоты.
Добавлены новые виды пещер. При этом сохраняются и старые виды пещер, т.е. они будут дополнять друг друга.
Подземные биомы пока в генераторы не добавлены, поэтому внешне пещеры кроме размеров ничем не отличаются от всех остальных привычных пещер.
Это новый элемент, определяющий то, как будет распределяться под землёй вода. В области аквиферы все пустые блоки будут заполнены водой.
Пещеры, которые находятся внутри аквиферы, будут полностью залиты водой, пещеры, высота которых будет выше уровня воды в аквифере, будут представлять собой подземные озёра.
Будет улучшена генерация пещер, добавлены подземные биомы, скорректирована генерация руд — сейчас найти алмазы легче лёгкого, появятся подземные лавовые озёра.
Крепости, генерируемые в таких пещерах, выглядят сейчас очень странно.
Это тоже будет переделано.
У этого есть две причины:
Изменение высоты мира не коснётся Энда и Незера. По крайней мере не в Minecraft 1.17.
На текущий момент времени, механизм конвертации старых миров не реализован, но разработчики заверяют, что в будущих версиях такая возможность появится.
Не совсем понятно, будут ли в старых областях «догенерированы» недостающие блоки с отрицательными координатами.
Это что, можно будет из мира выпрыгнуть в месте стыка? Юххууу!
Это срез для наглядности
Нет, я про границу старых и новых чанков
Я так думаю, что эта пустота в старых санках будет заполняться бедроком ред.
Очень крутое обновление будет. Так то я сам не играю (в привычном смысле), но за остальных только порадуюсь. Я даже не против переноса релиза на конец года, главное пусть максимально разнообразят подземелья, незачем переделывать несколько раз.
а я так и не нашел тулзы, чтобы удобно перетащить свои постройки с серверов старых версий в миры, созданные в новых версиях
Вариантов куча, на вскидку вот три:
MCEdit
WorldEdit
Структурные блоки https://minecraft-ru.gamepedia.com/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BD%D1%8B%D0%B9_%D0%B1%D0%BB%D0%BE%D0%BA
Правда, во всех вариантах кроме последнего нужно ждать апдейтов после выхода новой версии Майна
структурный блок можно использовать с сервером (букит)? меня интересует только постройки на сервере
Это на совести разработчиков Bukkit, смогли ли они поддержать эту фичу. На крайний случай, можно использовать WorldEdit или его аналоги, раньше это отлично работало на Bukkit
Интересно, а можно ли будет вывалиться из мира на границе старых и новых чанков? И так же с какой координаты Y теперь будет наноситься урон при выпадении с карты? Ну и наверняка найдется куча багов, связанных с отрицательной координатой Y
Думаю теперь придётся перемещать город на новый биом, главное бы софтины не подкачали. И, конечно, теперь я смогу поправить высоту небоскрёба, а то из-за ограничений высота он смотрелся чутка прижатым.
Или не переносить но новую карту город. Задача потребует сил и много времени. Как правило слетают картины и прочая мишура. Придётся найти подходящее место под необходимые координаты, иначе сотни-сотни команд придётся переписывать. Дно выравнивать под установку города. Скрипты перепроверять. И т.д.