LUA Basics - Minecraft Tekkit Lite

04/19/2013 17:38 Righex#1
Halli Hallo ,
Ich bräuchte Hilfe beim Programmieren in der Codierung LUA.
Undzwar will ich in Minecraft Tekkit Lite eine Mining Trutle dazu bringen mir einen Gang mit mehreren Zweigen abzubauen.
Also in normaler Sprache ungefähr so :
Solange Antrieb(FUEL) über 0 ist soll der Mining Turtle,
Den Block vor sich zerstören
Nach vorne gehen
Den Block über sich zerstören
Und wieder wieder vor sich zerstören (von Anfang an , Block vorne, bewegen Block oben)
Jetzt aber soll der Mining Turtle bei jedem 4.Schritt einen 6 Blöcke langen Zweig machen(in beide Richtungen).
[Only registered and activated users can see links. Click Here To Register...] eine Sammlung von Befehlen :D
Ich habe zwar Java-Kenntnisse , doch keine LUA :)
Daher bräuchte ich hier Hilfe , wenn jemand mit das Programm über PasteBin schicken könnte wäre ich seeehr erfreut darüber.

gz RiG
04/20/2013 03:41 TheLOSER#2
Das kleine Programm macht genau was du willst.
Pack vorm Start einfach irgendnen Treibstoff (Kohle z.B.) in den ersten Slot.
Falls dir der Treibstoff zu schnell ausgehen sollte, kannst du vorher auch manuell mit nen paar Stacks auffüllen.
Als Extra packt der turtle, wenn er fast voll ist alles in eine Kiste, die du direkt hinter seinen Startpunkt platzieren musst.

Code:
function branch()
    for j = 0, 5, 1 do
        turtle.dig()
        turtle.forward()
        turtle.digUp()
    end
    turtle.turnLeft()
    turtle.turnLeft()
    for j = 0, 5, 1 do
        turtle.forward()
    end
end

function full()
    occupied = 0
    for j = 1, 16, 1 do
        if turtle.getItemCount(j) > 0 then
            occupied = occupied + 1
        end
    end
    if occupied == 16 then
        return true
    end
    return false
end

function dropOff(i)
    turtle.turnLeft()
    turtle.turnLeft()
    for j = 1, i, 1 do
       turtle.forward()
    end
    for j = 1, 16, 1 do
       turtle.select(j)
       turtle.drop()
    end
    turtle.turnLeft()
    turtle.turnLeft()
    for j = 1, i, 1 do
       turtle.forward()
    end    
end

turtle.select(1)
turtle.refuel()
i = 0
while turtle.getFuelLevel() > 0 do
    turtle.dig()
    turtle.forward()
    turtle.digUp()
    if i % 4 == 0 then
        turtle.turnLeft()
        branch()
        branch()
        turtle.turnRight()
    end
    i = i + 1
    if full() == true then
       dropOff(i)
    end
end
PS: Mit etwas Kenntnis von den Programmiergrundlagen (egal welche Sprache) lässt sich sowas leicht selber schreiben. ;)