Libraries
Aus EnigmaWiki
Verfügbare Sprachen: Deutsch, English, Русский
Gewisse Aufgaben stellen sich dem Enigma-Levelautoren immer wieder, zum Beispiel das Erstellen von Labyrinthen oder Hügeln. Solche Aufgaben können von einer Lua-Funktion erledigt werden, allerdings macht es wenig Sinn, das Rad in Jedem Level neu zu erfinden, also z.B. für jedes einzelne Labyrinth einen neuen Labyrinthgenerator zu schreiben. Deshalb gibt es die Libraries (Bibliotheken). Libraries sind nichts anderes als eine Sammlung von Funktionen, die oft benötigte Aufgaben erledigen.
Eine mitgelieferte Library verwenden
Angenommen, du möchtest in deinem Level mit fl-gradient einen Grossen Berg (10 x 10 Platten) erstellen. Natürlich kannst du alle 100 Gradients mit set_stone() einzeln setzen. Dann ist der Tag allerdings um. Wenn du den Berg dann noch um ein Feld nach rechts verschieben willst, ist noch mehr mühsame Handarbeit angesagt. Deshalb gibt es die libterrain, mit der Berge und Senken mit einem Einzigen Befehl gesetzt werden können.
Bevor wir aber Berge versetzen, müssen wir der Engine angeben, dass wir die entsprechende Library verwenden möchten. Dazu fügen wir das Element el:dependency in die XML-Metadaten ein.
<el:compatibility el:enigma="0.92"> <el:dependency el:path="lib/libterrain" el:id="lib/libterrain" el:release="1" el:preload="true"/> </el:compatibility>
Jetzt kann der Berg mit der folgenden Funktion gesetzt werden.
draw_full(1,1,10,10,1)
Was die libterrain sonst noch zu bieten hat, erfährst du auf der Seite libterrain.
Mit Enigma 1.00 werden folgende Libraries automatisch mitgeliefert. Sie befinden sich im Unterverzeichnis /lib des Levelordners.
Zu Enigma 1.01 werden mindestens folgende Libraries gehören. Wer Levels schreibt, die in die offiziellen Enigma Levelpacks aufgenommen werden sollen, kann die Libs durchaus schon verwenden.
- Ant
- Andreas_ghosts
- Andreas_itemfreeze
- Libflood
- Libpuzzle (DEPRECATED)
- Libpuzzle_2
- Libterrain
- Natmaze

