Надеюсь не ошибся разделом. Пользуйтесь наздоровье!
Разрешите представить, дорогие игроки и форумчане, алгоритм роста растений. Некоторым садоводам на заметку понадобится. Кто знает, может и кому другому тоже она принесёт пользу да заинтересует.Каждый тик (1/20 секунды) все чанки в некотором радиусе от игрока обновляются. Этот радиус составляет 7, и получается, что обновляемая область имеет вид квадрата размером 15х15 (чанк) с игроком в центре.
Когда чанк обновляется, он 20 раз выполняет следующее:
- выбирается случайный блок в чанке;
- если этот блок подлежит случайному обновлению - он обновляется.
Все 20 выборок из чанка независимы - один и тот же блок может быть выбран дважды, трижды, получить 2, 3 обновления. Вероятность двойного выбора составляет (20 / (16*16*128)) = 0.061%.
Если выбран блок растения, если оно не выросшее, если выполняются условия для роста - то после этого выполняется рост растения на 1 с некоей вероятностью.
| Пшеница |
| Адский нарост |
| Тростник или Кактус |
| Грибы (цвет неважен) |
Рост возможен только если блок сверху имеет уровень освещённости 9 и выше. Вероятность роста составляет 1/блок (25 /скорость_роста+1)1/ floor(25/growth_rate+1).
Вероятность роста 1/15.
Растёт только при длине менее 3 и пустом блоке сверху.
вероятность роста равна 1! но вместо роста увеличивается на 1 внутренний счётчик блока и только по достижении им 15 тростник/кактус вырастает.
Может расти только при количестве грибов того же цвета менее 5 в блоке 9х3х9 с центром - грибом. Вероятность роста 1/25. Если проверка роста проходит, то гриб пытается расти на соседних блоках.
1. Сначала в качестве текущей позиции устанавливается исходный гриб.
2. С равной вероятностью производится смещение в горизонтальной плоскости по квадрату 3х1х3. После этого производится смещение по вертикали - вверх или вниз с вероятностью 1/4, на той же высоте с вероятностью 1/2
3. Если блок по вычисленной позиции пригоден для размещения гриба - от становится текущим. Иначе текущая позиция остаётся неизменной.
4. Снова вычисляется смещённая позиция, как описано в шаге 2.
5. Шаги 3 и 4 повторяются трижды.
6. Если конечная позиция допустима - гриб растёт в ней.
Допустимой считается позиция при уровне освещённости 12 и ниже и непрозрачном нижнем блоке. Мицелий допустим, независимо от освещённости.
| Арбуз или Тыква |
| Саженцы деревьев |
| Трава |
Растёт при уровен освещённости верхнего блока 9 и выше. Вероятность роста 1/блок (25 /скорость_роста+1)1/ floor(25/growth_rate+1), такая же как и для пшеницы, с поправкой, что учёт влияния соседних растений проводится только по растениям того же типа. Если проверка пройдена - растение растёт на единицу, если оно ещё не взрослое. Взрослое растение пытается произвести ягоду.
Если с севера, востока, юга, запада есть однотипный блок ягоды - новая ягода не продуцируется.
Берётся случайное направление.
Если блок с севера, востока, юга, запада - воздух и под ним - земля/вспаханная земля - на нём располагается новая ягода.
Нужна освещённость блока сверху 9 и выше. Вероятность роста 1/7
При успешной проверке саженцу устанавливается флаг однократной проверки. Второй раз - дерево попытается вырасти.
Требуется освещённость 9 и выше.
Вероятность роста 1.
Выбираются 4 случайных блока в области 3х5х3. На каждом из выбранных блоков трава вырастет, если:
1. Выбран блок земли
2. Освещённость блока сверху 4 и выше.
3. Блок сверху не полупрозрачен. (вспаханная земля, плита, лестница)
Благодарю за внимание! Так как размещение ссылок на сторонние сайты запрещено, я решил скопипастить статью и немного добавить своего.
Приятной игры и надеюсь эта статья принесла вам пользу ;)
В свободное время вы можете поучаствовать в
интересной теме!
BB-code темы для вставки