Как исправить выражение «if с несколькими условиями» в lua - PullRequest
0 голосов
/ 12 мая 2019

Я использую Lua в компьютерной технике для автоматизации майнинга.Но моя черепаха, чья программа работала очень хорошо раньше, останавливается, если она встречает lava/flowing_lava/water/flowing_water source.

Внутри моей программы у меня есть много функций для управления, например, управлением топливом, туннелем,столкновение с гравием, и ... обнаружение, если черепаха встречает "блок".

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

Я пытаюсь исправить эту проблему с мультиусловием в if, но это не работает, черепахадвигается вперед и копает в любом направлении.

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

Какрешить эту проблему?

function blockDetection(position, justDetection)
    success, detectionBlock = nil
    block_name = ""

    if position == "right" then
        turtle.turnRight()
        success, detectionBlock = turtle.inspect()
        turtle.turnLeft()
        if success then
            block_name = detectionBlock.name
            if justDetection == true and detectionBlock.name == "minecraft:air" then
                block_name = true

            elseif justDetection == true and detectionBlock.name ~= "minecraft:air" then
                block_name = false  
            else

            end
        end
    end
end
...