Modifikation/ComputerCraft
Autor |
Dan200 |
---|---|
Voraussetzungen | |
Mod-Version |
1.80pr1 |
Minecraft-Version | |
Eigenes Wiki | |
Projektseite |
ComputerCraft ist eine Mod für Minecraft (SSP & SMP), welche mehrere programmierbare Blöcke und Gegenstände hinzufügt. Diese Blöcke sind hauptsächlich Computer, Diskettenlaufwerken und Turtles ("Schildkröten"). Im Spiel kann man auf den Computern und den Turtles mit der Programmiersprache "Lua" Programme schreiben und speichern. ComputerCraft dient dann sozusagen als Interpreter, der das Lua-Programm über die Computer/Turtles in Minecraft mit einbindet.
Inhaltsverzeichnis
Allgemeines[Bearbeiten]
Mit ComputerCraft lassen sich auf einfache Weise kleine Projekte wie Passwort-Schlösser bis hin zu großen Betriebssystemen für Anlagen mit BuildCraft oder RedPower2 realisieren. Das Vorteilhafte an ComputerCraft ist, dass die Programme in Lua geschrieben sind. Lua ist eine ähnliche Programmiersprache wie BASIC, also eine leicht zu erlernende und aus wenig Schlüsselwörter bestehende Programmiersprache. Weiter unten sind die APIs und der Umgang mit der Programmiersprache und den Computern/Turtles erklärt.
http://www.computercraft.info/wiki/Category:APIs
ComputerCraft ist enthalten in folgenden ModPacks:
- Tekkit Lite
- FTB TechWorld2
- FTB Skyfactory 2.5
- FTB Infinity Evolved
- Blightfall
- Tekxit
- und mehr...
Konflikte[Bearbeiten]
Mit älteren Versionen von Computercraft und Optifine gab es Anzeigenprobleme. Die aktuelle Version sollte mit OptiFine 1.12.2 HD U E3 kompatibel sein.
Blöcke und Gegenstände[Bearbeiten]
Computer[Bearbeiten]
Der Computer ist das Haupt-/Grundelement von ComputerCraft. Mit ihm lassen sich Programme schreiben, bearbeiten und ausführen.
Benutzung[Bearbeiten]
Computer lassen sich mit einem Rechtsklick öffnen und bieten einem danach eine Konsole. In diese kann, man wie in der Windows-Eingabeaufforderung (CMD), Befehle eingeben. Eine Übersicht aller Befehle oder Hilfsseiten kann man sich anzeigen lassen, indem man den Befehl "help
" in die Konsole eingibt.
Programme oder Dateien lassen sich mit dem Befehl "edit <DATEINAME>
" erstellen bzw. bearbeiten.
Nach Eingabe des Befehles wird der Programmcode angezeigt, den man nun bearbeiten kann. Nach Abschluss seiner Tätigkeiten kann man die Datei abspeichern oder den Code, ohne zu speichern, verlassen. Dazu drückt man die Strg-Taste und wählt mit den Tasten ← und → die gewünschte Option an und drückt ↵ Eingabe.
Man kann sich alle auf dem Computer vorhandenen Dateien oder Verzeichnisse mit dem Befehl "dir
" oder "ls
" anzeigen lassen und mit dem Befehl "cd <VERZEICHNISNAME>
" kann man sein aktuelles Verzeichnis wechseln.
Programme lassen sich ausführen, indem man ihren Programmnamen in die Konsole eingibt. Sind es aber reine Textdateien, lässt sich das Programm wegen eines Syntax-Fehlers nicht starten.
Den Computer kann man durch Drücken der ESC-Taste jederzeit verlassen. Dabei wird nichts in die Konsole eingegeben, die Bearbeitung einer Datei oder ein laufendes Programm gestoppt, sondern der Computer läuft ganz normal weiter. Zum Herunterfahren muss man den Befehl "shutdown
" eingeben oder die Tastenkombination Strg+S drücken, außerdem kann man den Computer durch den Befehl "restart
" oder durch Drücken von Strg+R neustarten. Zum Beenden eines Programmes kann man, insofern diese Tastenkombination vom Programm nicht unterdrückt wird, Strg+T drücken. Jede der oben genannten Tastenkombinationen muss man mindestens eine Sekunde lang gedrückt bleiben.
Der Advanced Computer[Bearbeiten]
Der Advanced Computer (deutsch: erweitert) kann zusätzlich zum normalen Computer Farben darstellen und unterstützt die Navigation durch Maus, nicht nur durch Tastatur.
Der Command Computer[Bearbeiten]
Der Command Computer kann Minecraft-Befehle ausführen und ist deshalb nur für Spieler mit Operator-Rechten verfügbar.
Rezepte[Bearbeiten]
Name | Zutaten | Eingabe » Ausgabe | Bilder |
---|---|---|---|
Computer | Stein Redstone Glasscheibe |
![]() ![]() | |
Advanced Computer |
Goldbarren Redstone Glasscheibe |
![]() ![]() |
Turtles[Bearbeiten]
Turtles ("Schildkröten") sind Roboter. Turtles haben ein eigenes Inventar, können sich fortbewegen, Blöcke in der Spielwelt mit Gegenstände aus dem Inventar vergleichen, Blöcke "erkennen" und (je nach Turtle-Art) Blöcke abbauen, Blöcke platzieren und Kreaturen oder Spieler schlagen.
Dazu wurden extra für Turtles neue APIs und Programme hinzugefügt. Auch die Ordnerstruktur im ".minecraft\mods\ComputerCraft\lua\rom\programs
" - Ordner wurde in Computer und Turtles gesplittet.
Das ermöglicht, Programme nur für Turtles/nur für Computer zugänglich zu machen. Aber alle Programme, die sich in dem oben genannten Pfad befinden, sind für beide zugänglich. Auch wurden vom Entwickler ein paar Programme für Turtles hinzugefügt.
Die APIs sind unten im Programmier-Abschnitt aufgelistet.
Allgemeine Turtle-Varianten[Bearbeiten]
Es gibt viele Arten von Turtles. Jede der folgenden ist mit den anderen kombinierbar. Für eine vollständige Liste ohne Beschreibung siehe hier.
Name | Bild | Beschreibung |
---|---|---|
Mining Turtle |
Bilder[Bearbeiten]
Rezepte[Bearbeiten]
Diskettenlaufwerke[Bearbeiten]
Das Diskettenlaufwerk wird dazu benutzt, Programme oder Dateien zwischen Computer und einer Diskette auszutauschen.
Disketten[Bearbeiten]
Auf einer Diskette werden Programme oder Dateien gespeichert, um diese auf andere Computer/Turtles zu übertragen. Dazu benötigt man: Ein Diskettenlaufwerk, und eine Diskette
Benutzung[Bearbeiten]
Sobald man per Rechtsklick das Diskettenlaufwerk öffnet, erscheint ein Inventar mit nur einem Slot. In dieses Inventar können Disketten oder Schallplatten gelegt werden. Dies ist allerdings ohne einen nebenstehenden Computer nutzlos. Sobald man ein Diskettenlaufwerk neben einem Computer platziert, kann man schon mehr mit diesen Features anfangen.
- Man kann das Label einer Diskette umbenennen
- Man kann die Diskette mit dem Befehl "
cp <DATEINAME> disk/<DATEINAME>
" mit auf dem Computer abgespeicherten Dateien beschreiben (Dateien von der Diskette auf den PC lassen sich mit "cp disk/<DATEINAME> <DATEINAME>
" Kopieren) - Man kann eingelegte Schallplatten abspielen
Rezepte[Bearbeiten]
Name | Zutaten | Eingabe » Ausgabe | Bilder |
---|---|---|---|
Diskettenlaufwerk | Stein Redstone |
![]() | |
Diskette | Redstone |
Drucker[Bearbeiten]
Der Drucker ermöglicht es Seiten vielfach zu erstellen, nützlich auf Servern für z.B. die Serverbeschreibung.
Zugleich ist es mit dem Drucker möglich in verschieden Farben zu Drucken.
Gedruckte Seiten[Bearbeiten]
Man kann mehrere gedruckte Seiten zu einem Stapel gedruckter Seiten verbinden. Die Reihenfolge der Seiten wird dabei über das Hineinlegen an der Werkbank (Links oben nach rechts unten) festgelegt.
Gedruckte Bücher[Bearbeiten]
Ebenfalls kann man mehrere gedruckte Seiten - auch zusammen mit einem Stapel gedruckter Seiten zu einem gedruckten Buch verbinden. Im Gegensatz zu den gedruckten Seiten hat es einen Rand aus Leder und ist nicht mehr veränderbar.
Rezepte[Bearbeiten]
Name | Zutaten | Eingabe » Ausgabe | Bilder |
---|---|---|---|
Drucker | Stein Redstone Tintensack |
![]() | |
Gedruckte Seiten | Gedruckte Seite Gedruckte Seiten Faden |
||
Gedrucktes Buch | Gedruckte Seite Gedruckte Seiten Faden Leder |
Monitor[Bearbeiten]
Der Monitor zeigt Text für alle Spieler sichtbar außerhalb der Computer-Konsole an. Ein Monitor kann eine beliebige Größe haben. Angesprochen werden kann der Monitor wenn er neben einem Computer platziert wird.
Advanced Monitor[Bearbeiten]
Der Advanced Monitor (deutsch: erweiterter Monitor) kann zusätzlich zum normale Monitor Farben darstellen und unterstützt die Navigation durch das Fadenkreuz, ist also ein Touch-Screen.
Rezepte[Bearbeiten]
Name | Zutaten | Eingabe » Ausgabe | Bilder |
---|---|---|---|
Monitor | Stein Glasscheibe |
![]() | |
Advanced Monitor |
Goldbarren Glasscheibe |
![]() |
Handerks-Rezepte[Bearbeiten]
Name | Zutaten | Eingabe » Ausgabe | Beschreibung |
---|---|---|---|
Wired Modem | Stein Redstone |
Mittels eines Wired Modems können Geräte per Networking Cable kommunizieren. Dazu wird das Modem einfach an der Seite des entsprechenden Gerätes platziert. Beispiel: Computer mit Wired Modem: | |
Networking Cable | Stein Redstone |
Networking Cable werden benötigt, um Wired Modems miteinander zu verbinden. Beispiel: ein Diskettenlaufwerk und ein Computer, an denen jeweils ein Wired Modem befestigt ist, sind über ein Networking Cable verbunden: | |
Wireless Modem | Stein Enderperle |
Mittels eines Wireless Modems können zwei oder mehrere Computer drahtlos kommunizieren. Beispiel: Computer mit Wireless Modem:
| |
Turtle | Eisen Computer Truhe |
Eine Turtle ("Schildkröte") ist ein Roboter. Sie kann sich bewegen, sie hat ein Inventar, sie kann Blöcke bauen und sie kann Blöcke in der Spielwelt mit Items aus ihrem Inventar vergleichen. | |
Wireless Turtle | Wireless-Modem Turtle |
Die Wireless Turtle hat die selben Funktionen wie eine normale Turtle. Zusätzlich verfügt sie aber noch über ein Wireless-Modem. | |
Mining Turtle | Turtle Diamantspitzhacke |
Zusätzlich zu den normalen Funktionen kann eine Mining Turtle auch Blöcke abbauen. | |
Advanced Turtle | Gold Advanced Computer Truhe |
Eine Advanced Turtle (deutsch: erweitert) kann zusätzlich zur normalen Turtle Farben darstellen und 100.000 anstatt 20.000 Treibstoff speichern. | |
Advanced Wireless Turtle | Wireless-Modem Advanced Turtle |
Die Advanced Wireless Turtle hat dieselben Funktionen wie eine Advanced Turtle. Zusätzlich verfügt sie aber noch über ein Wireless-Modem. | |
Advanced Mining Turtle | Advanced Turtle Diamantspitzhacke |
Zusätzlich zu den Funktionen einer Advanced Turtle kann eine Advanced Mining Turtle auch Blöcke abbauen. |
Die Programmierung[Bearbeiten]
Die Programme in ComputerCraft werden in Lua geschrieben.
Lua ist (wie oben genannt) eine ähnliche Programmiersprache wie BASIC, die einfach zu erlernen ist und wenig Schlüsselwörter besitzt. In diesem Abschnitt wird nur die Programmierung mit den Computern/Turtles im Bezug auf die APIs (Englisch: application programming interface (API), Deutsch: „Schnittstelle zur Anwendungsprogrammierung“) erklärt.
Die Grundlagen[Bearbeiten]
Man beginnt zum Beispiel mit einem einfachen Passwort-Schloss, welches eine Eisentür neben dem Computer für eine bestimmte Zeitintervall bei richtiger Passworteingabe öffnen soll.
Noch ein kurzes Vorwort, Computer sind im ablauf sehr penibel. Tippfehler nehmen sie einem sofort übel und melden sich mit einer Error-Meldung beim Benutzer.
1. Zuerst stellt man einen Computer her und platziert ihn neben einer Eisentür, an ein eventuell schon stehendes Haus.
2. Man öffnet den Computer per Rechtsklick und bearbeitet die Datei "startup" mit dem Befehl "edit startup
" (sobald eine Datei auf einem Terminal "startup" heißt, wird sie nach Starten des Computers sofort ausgeführt)
3. Jetzt fängt das Programmieren an. Man schreibt jetzt in die Datei folgenden Code (Die Texte mit den "--" davor sind nur Kommentare! Diese müssen also nicht abgeschrieben werden!):
local passwort = "schinken" -- Hier wird in die Variable "passwort" der String "schinken" eingesetzt (Nach Belieben austauschbar) local door = "right" -- Hier wird in die Variable "door" die Seite vom Computer eingetragen, an der sich die Tür befindet local lamp = "left" -- Hier wird in die Variable "lamp" die Seite vom Computer eingetragen, an der sich die Lampe befindet local warte = 3 -- Hier wird die Tür-Offenhalte-Zeit eingetragen shell.run( "clear" ) -- Der Bildschirm wird gelöscht os.pullEvent = os.pullEventRaw -- STRG + T wird unterdrückt print("") -- eine Leerzeile wird hinzugefügt write(" Passwort: ") -- Hier wird der eingeklammerte Text auf den Bildschirm "Gedruckt" eingabe = read("*") -- Eine Eingabe erfolgt; Eingegebenes wird mit einem "*" Überblendet if eingabe == passwort then -- Eine Abfrage; Es wird geprüft ob Eingabe = (oben festgelegtes) Passwort ist //passwort ohne "" print(" Richtig! ") -- Wieder eine Ausgabe an den Bildschirm rs.setOutput( door, true ) -- Es wird ein Redstone-Impuls an die Tür weitergegeben rs.setOutput( lamp, true ) -- OPTIONAL: Die RedstoneLamp wird "angeschaltet" sleep(warte) -- Es wird solange wie oben festgelegt gewartet rs.setOutput( door, false ) -- Die Tür wird wieder geschlossen rs.setOutput( lamp, false ) -- OPTIONAL: Die RedstoneLamp wird "abgeschaltet" else -- Abfragebedingung was passiert, wenn die Eingabe eine andere ist print(" Falsches Passwort! ") -- Eine Ausgabe an den Bildschirm sleep(2) -- Es wird 2 Sekunden gewartet end -- Abfragekonstruktion- Ende os.shutdown() -- Der Computer schaltet sich ab
4. Man drückt nun Strg, wählt [Save] aus und drückt ↵ Eingabe
5. Man drückt nun Strg, wählt [Exit] aus und drückt ↵ Eingabe. Damit verlässt man das Bearbeitungsinterface.
6. Man gibt in den Computer den Befehl "shutdown
" ein und schließt den Computer.
7. Nun wird sich beim nächsten Mal der Computer mit einer Abfrage auf das Passwort öffnen. Ist dieses richtig, wird die Tür für drei Sekunden geöffnet und der Computer schaltet sich ab.
8. Durch Drücken von Strg + T kann man laufende Programme terminieren (beenden). Dies ist in der Testphase wichtig. Wenn das Programm fertig ist und funktioniert, soll es jedoch nicht mehr an beliebiger Stelle unterbrochen werden können. Um das zu verhindern, fügt man in den Code "os.pullEvent = os.pullEventRaw
" ein. Aber Achtung: Wenn man das macht, kannst man das Programm nicht mehr beenden!
Endlos funktionierende Variante:
os.pullEvent = os.pullEventRaw -- Sorgt dafür, dass man das Programm nicht terminieren kann while true do -- Wiederholt die nachfolgenden Anweisungen endlos term.clear() -- Leert den Bildschirm term.setCursorPos(1, 1) -- Setzt den Cursor in die obere linke Ecke print("Bitte Password eingeben:") -- Gibt Text aus input = read("*") -- Liest die Eingabe und speichert sie in der Variablen "input" if input == "password" then -- Prüft, ob die Eingabe des Passwortes richtig ist (in dem Fall "password") print("Das Passwort ist richtig!") -- Gibt Antwort redstone.setOutput("right", true) -- Öffnet die Tür auf der rechten Seite (gibt Redstone Signal aus) sleep(2) -- Das Programm wartet 2 Sekunden redstone.setOutput("right", false) -- Schließt die Tür auf der rechten Seite (schließt das Redstone Signal) else -- andernfalls, also wenn die Eingabe des Passwortes nicht richtig ist print("Das Password ist falsch!") -- Gibt Antwort sleep(2) -- Das Programm wartet 2 Sekunden end -- Abfragekonstruktion- Ende end -- Schleifenanweisung-Ende und weiter beim "while" (siehe oben)
Der Umgang mit DiskDrives[Bearbeiten]
Mit Disk Drives kann man Floppy Disks Lesen
Der Umgang mit Turtles[Bearbeiten]
Hier wird demnächst etwas folgen
Überblick | |
---|---|
Landschaft und Kreaturen | |
Werkzeug und Maschinen |
|
Magie | |
Spielerleichterung | |
Modpacks | |
Sonstige |