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

Как узнать что за блок перед черапашкой

Вопрос

Хочу чтобы черепашка складывала в сундук вещи, но перед сундуком может быть блок, черепашка должна сломать ее и идти дальше. Но как сдлеать чтобы черепашка поняла что перед ней сундук?

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


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

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

6 минут назад, Anryyyy сказал:

inspect() он возвращает false или true а не id

кроме булевого значения, вторым возвращает таблицу

local success, data = turtle.inspect()

if success then
  print("Block name: ", data.name)
  print("Block metadata: ", data.metadata)
end

 

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


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

Насколько мне известно, однозначно идентифицировать любой блок способен только геосканер, но он доступен только для роботов OpenComputers.

 

Черепашкам же доступны лишь функции turtle.compare/Up/Down/To, позволяющие сравнить блок с имеющимися образцами в инвентаре черепашки.

http://www.computercraft.info/wiki/Turtle.compare

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


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

Всё оказалось гораздо лучше. В каких-то версиях ComputerCraft черепашки обзавелись новыми возможностями:

 

turtle.inspect()

Returns the ID string and metadata of the block in front of the Turtle

 

Да и вообще, рекомендую ознакомиться с актуальным API черепашек:

http://www.computercraft.info/wiki/Turtle_(API)

Здесь перечислено всё, на что черепашки способны.

 

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


Ссылка на сообщение
Поделиться на других сайтах
42 минуты назад, eu_tomat сказал:

Всё оказалось гораздо лучше. В каких-то версиях ComputerCraft черепашки обзавелись новыми возможностями:

 

turtle.inspect()

Returns the ID string and metadata of the block in front of the Turtle

 

Да и вообще, рекомендую ознакомиться с актуальным API черепашек:

http://www.computercraft.info/wiki/Turtle_(API)

Здесь перечислено всё, на что черепашки способны.

 

inspect() он возвращает false или true а не id

 

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


Ссылка на сообщение
Поделиться на других сайтах
32 минуты назад, serafim сказал:

кроме булевого значения, вторым возвращает таблицу


local success, data = turtle.inspect()

if success then
  print("Block name: ", data.name)
  print("Block metadata: ", data.metadata)
end

 

А что это за тип данных ты сделал, local success, data

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Anryyyy сказал:

inspect() он возвращает false или true а не id

 

2 часа назад, Anryyyy сказал:

А что это за тип данных ты сделал, local success, data

local success, data = turtle.inspect()

Это не тип данных,это две локальные переменные "success" и "data",это называется "параллельное присваивание" - когда одновременно нескольким переменным присваиваются значения.

inspect() возвращает 2 значения  - первое значение "успех"(англ - success) выполнения -  false или true

А второе значение это таблица,которую присваиваем переменной "data" - в ней будет строка "name" и "metadata" (я правда не знаю,метадата это таблица,или строка,но судя по тому,что на вики СС в примере её просто выводят через print(data.metadata),то наверное строка).

Ну или если inspect() первым значением возвращает false то вторым значением он возвращает текст ошибки. 

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Anryyyy сказал:

Хочу чтобы черепашка складывала в сундук вещи, но перед сундуком может быть блок, черепашка должна сломать ее и идти дальше. Но как сдлеать чтобы черепашка поняла что перед ней сундук?

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

Это все несколько странная затея - что именно ты делаешь?

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Disc2 сказал:

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

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

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


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

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

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

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

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

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

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

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

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


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