Перейти к содержимому
  • 0
Fingercomp

Организация фермы на роботе

Вопрос

Здравствуйте, уважаемые форумчане! В процессе создания на сервере InfoTech собственной энергостанции RF на биотопливе, появилась необходимость фермы дерева. Так как мультифермы из Форестри здесь отключены, в срочном порядке спаял роботика, вручил ему электропилу и написал простенький алгоритмик для добычи дерева:


Робот находится в одном блоке за фермой, в правом нижнем её углу:

 

XXXX|
XXXX|
XXXX|
---⌷+

X — саженцы, |, -, + — граница фермы, а — робот.


При каждом цикле сбора робот поднимается на 1 клетку над саженцами, обходит её "змейкой", если ему по пути попадается дерево — он его срубает и садит саженец из первого слота. Дойдя до конца, он выходит за границы фермы и идёт к стартовой позиции.


На таком алгоритме бы всё и закончилось, если бы не одно "но". Спасибо, Майнкрафт: если саженец вырастает и робот находится в месте, где должен быть блок древесины, последний заменяет роботика полностью и безвозвратно. Естественно, меня такой поворот опечалил бы безразмерно, потому на смену этому алгоритму пришёл новый, куда менее эффективный:


Робот находится в той же позиции, что и в прошлый раз, но "обход" фермы совершается иначе. Робот идёт вперёд на уровне фермы, срубая перед ним саженцы и деревья (мы избавляемся от прорастания в робота), затем возвращается через robot.back(), ставя перед собой саженцы. Дойдя до начала ряда, он выходит за границу, ставит саженец и поворачивает налево, проходит блок и снова поворачивается лицом к ферме, затем повторяется описанное. Возвращается так же, как и в прошлом алгоритме.


Долго обдумав, я решил, что это полностью безопасный алгоритм, записал на робота, запустил и вышел из игры.
 
Вернулся я сегодня на сервер на том же месте, где и вышел, поворачиваюсь к ферме, смотрю — робот пропал! Но паниковать рано. Твёрдой рукой ввожу секретное заклинание: /co l a:block u:Fingercomp.robot t:24h r:20, смотрю — 22 часа назад робот ставит саженец, затем перестаёт, что логично, так как ЧЛ в нём не было (ну, не накопил на него тугрей, бывает), а я вышел из игры. Но! 1.03 часа назад... Робот оживает!.. и ставит саженец. Один, второй, третий... Третий. Дальше лог молчит.
Вчера был поставлен сенсор на месте фермы, в котором крутятся игроки, которые были на ферме (ну, мало ли что, угонят там, например :)), бегу туда, ввожу edit /var/log/players/players.log, смотрю — один я был замечен на ферме. Немного поразмыслив, мысль появилась: эй, так ведь 1.03 часа назад был же рестарт!..
 
Ох уж эти Котлы с ненавистью к роботам. Что конкретно случилось — мне понять не дано, но робот исчез бесследно... А ферма нужна позарез, питать машинки биогазовыми движками на воде и лаве — не вариант совершенно. Поэтому создаю тему здесь, дабы опытные лесоводы могли дать совет, как же обустроить ферму дерева на роботах.

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


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

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

Я тестил на дубах, но, вероятно, все деревья так делают. Как всем известно, блоки иметь дробные координаты не умеют. А роботы передвигаются. Как? В момент передвижения, робот заменяется на некую сущность, которая выглядит так же, но функционал никакой не несёт. Если кто-то замечал — робота в процессе передвижения сломать невозможно, только во время пребывания "настоящим", то есть, стоячим. Потому мои предположения, что происходит это тогда, когда саженец вырастает после проверки внутри мода, есть ли блок впереди робота. Робот превращается в эту самую сущность, передвигается в блок, после завершения движения же пытается превратиться в нормального робота, но это у него не получается, и он исчезает. Кстати, опять-таки, как мне кажется, происходит это при загрузке чанков. НО я не уверен в этом всём, повторяюсь, это всего лишь мои предположения.

 

P. S. В сингле такого не было, но я особо не тестил...

Берёзы!Берёзы!Берёзы всегда растут и вырастают одинаково.

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

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


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

На уровне земли уже обсудили. А при движении под землей куда ты собираешься саженцы втыкать?

 

function suck()
  r.suckUp()
  for i = 1, 4 do
    r.suck()
    r.turnLeft()
  end
end

r.swingUp()
r.up()
if r.detectUp() then
  r.digUp()
  suck()
else
  suck()
  r.down()
end
Изменено пользователем Doob

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


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

Doob, твой код не вносит ясности. Я тебя про высадку саженцев из-под земли спрашиваю.

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


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

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

и кстати, геосканер для фермы это слишком жирно для меня

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


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

Doob, твой код не вносит ясности. Я тебя про высадку саженцев из-под земли спрашиваю.

 

 

...возвращается назад, попутно высаживая саженцы.

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

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


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

Я думаю он передвигается так, как поршень двигает блоки.

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


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

...возвращается назад, попутно высаживая саженцы.

Что вперед, что назад, какая разница? Ты же под землей копаешь. А саженцы высаживаются над землей.

Я думаю он передвигается так, как поршень двигает блоки.

Вообще заинтриговал. Изменено пользователем eu_tomat

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


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

Берёзы!Берёзы!Берёзы всегда растут и вырастают одинаково.

Мне саплинги нужны! Саплинги! Саплинги! А от берёз мало.

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


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

Мне саплинги нужны! Саплинги! Саплинги! А от берёз мало.

Делать робота каждый день менять мало,на можно и тёмный дуб выращивать.

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


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

Что вперед, что назад, какая разница? Ты же под землей копаешь. А саженцы высаживаются над землей.

Вообще заинтриговал.

Что тут непонятного? Копаю под землей, возвращаюсь сверху и сажу сверху.

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


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

Что тут непонятного? Копаю под землей, возвращаюсь сверху и сажу сверху.

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

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


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

Мне саплинги нужны! Саплинги! Саплинги! А от берёз мало.

Кури ель, 2х2. 

Древесины и саженцев - море.

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


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

Кури ель, 2х2. 

Древесины и саженцев - море.

Вот чего мне не надо — так это древесины) Саженец 4х4 джунглей выдаёт 1-5 саплингов (не хватает на поддержание), 4х4 дуб — 3-5 (такая же беда), берёза — 2-4 (маловато будет), дуб — 2-5 (в самый раз и с яблоками).

 

А вообще — на первой агрерке выпала White Willow, понравилась неимоверно своей скоростью роста и кол-вом саплингом. Биомассы в 4 раза больше даёт и выводится легко (относительно).

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


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

Вот чего мне не надо — так это древесины) Саженец 4х4 джунглей выдаёт 1-5 саплингов (не хватает на поддержание), 4х4 дуб — 3-5 (такая же беда), берёза — 2-4 (маловато будет), дуб — 2-5 (в самый раз и с яблоками).

 

А вообще — на первой агрерке выпала White Willow, понравилась неимоверно своей скоростью роста и кол-вом саплингом. Биомассы в 4 раза больше даёт и выводится легко (относительно).

Ель говорю, кури. 2х2. )

 

А излишки древесины в древесный уголь, и в энергию.

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

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


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

Ель говорю, кури. 2х2. )

 

А излишки древесины в древесный уголь, и в энергию.

Решено уже, буду белую иву сажать. А энергии у меня и так вагоны.

Никто же не хочет ставить нормальные провода RF на ИТ, так что только биомассой топить)

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


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

Решено уже, буду белую иву сажать. А энергии у меня и так вагоны.

Никто же не хочет ставить нормальные провода RF на ИТ, так что только биомассой топить)

Вернее провода ставится не хотят:)

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


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

Огромное спасибо ivan52945!

Предоставленная идея о расположении саплингов с одноблоковым удалением друг от друга была реализована в нового робота "ловушка смерти", куда он захватывал сумасшедший доход саплингов и дерева. Пришлось на последний даже мусорку поставить :D

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


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

Предоставленная идея о расположении саплингов с одноблоковым удалением друг от друга

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

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


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

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

Мне саженцев и так хватает)

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...