PortIO Mod für Minecraft

Aus LaborWiki
Wechseln zu: Navigation, Suche
       
PortIO Mod für Minecraft

Release status: obsolete [box doku]

PortIO Block1.png
Description {{{description}}}
Author(s)  DeadDealer (deaddealer)
Last Version  0.1
License  "Minecraft" Copyright 2009-2011 Mojang AB,
PortIO Mod Copyright 2011 DeadDealer



PortIO Mod[Bearbeiten | Quelltext bearbeiten]

Das Spiel Minecraft hat mittlerweile eine große Anzahl an Modifikationen und Erweiterungen durchlebt. Als Bastler von Mikrocontrollerschaltungen war ich auf der Suche nach einem Mod, der es ermöglicht, reale Aufbauten mit dem Spiel interagieren zu lassen. Bis jetzt fand ich keinen entsprechenden Mod für so etwas (wo es doch für Arduino tonnenweise Sachen gibt).

Dadurch kam ich auf die Idee, meine bescheidenen Java-Kenntnisse etwas aufzufrischen und selbst eine Erweiterung zu machen.

ToDo[Bearbeiten | Quelltext bearbeiten]

Das Ziel soll es sein, in Minecraft eine (virtuelle) serielle Schnittstelle des Computers zu öffnen und über eines unserer Laborboards verschiedene Dinge zu tun. Als Einstieg möchte ich im Spiel einen Schalter betätigen, der über Redstone einen selbst erstellten Block aktiviert. Dieser Block sendet nun über COMx einen Befehl, der eine LED auf dem Laborboard einschaltet.
Als nächstes soll dies auch umgekehrt funktionieren. Ich betätige einen Taster auf dem Board und im Spiel soll ein Kolben angehoben werden (Kontakt über neuen Empfängerblock und Redstone).
Als vorläufiges Abschlussziel soll es möglich sein, über das Spiel bestimmte Dinge in den Laborräumen zu steuern, z.B. Licht. Anders herum soll eine Änderung in den Räumen auch Auswirkungen auf das Spiel haben (wird es im Vortragsraum heller, soll es auch im virtuellen Laborraum heller werden etc.).


Fortschritt[Bearbeiten | Quelltext bearbeiten]

13.09.20011: Ein erster Test ist gelungen. Mittels eines virtuellen Nullmodemkabels (com0com) und der RxTx-Bibliothek für Java ist es mir gelungen, mittels Klick auf meinen speziellen Block eine Nachricht an COM10 zu senden. über COM11 wird ein String empfangen. Wird der Block gelöscht, schließt sich automatisch die Verbindung. Ein setzen des Blocks öffnet die Verbindung erneut.

Erster Test der PortIO-Erweiterung

18.09.2011 Habe den Input-Teil komplett geändert. Die Thread-Methode verursachte eine zu hohe CPU-Last, wodurch auch Minecraft ruckelte und unspielbar wurde. Die neue Methode arbeitet eventbasiert und meldet sich nur, wenn wirklich etwas empfangen wurde.
Jetzt wird es erstmal darum gehen, ein geeignetes System für die Interaktionen im Spiel zu entwickeln. Es müssen neue Items und Blöcke erdacht werden, die die Nutzung der neuen Möglichkeiten intuitiv machen.

25.09.2011 In der letzten Woche habe ich eine Menge über grundlegende Sachen von Minecraft, MCP und ModLoader gelernt. Das Ergebnis ist, dass ich jetzt Blöcke und Items beliebig erzeugen kann mittels (vorläufigen) Rezepten. Ebenso werden bei ein- und ausgehenden Daten Partikel in oder aus dem Block befördert (werden später durch Nullen und Einsen ersetzt).
An der Hauptaufgabe, der seriellen Kommunikation, wurde auch fleißig gearbeitet. Die vorhandenen COM-Ports kann man sich als Liste ausgeben lassen und verbinden - im Moment halt nur COM10, da dieser wie sonst auch direkt zum lokalen COM11 spricht zu Testzwecken.
Der nächste Schritt wird ein ingame-GUI sein, was es ermöglicht, die Portauswahl der Blöcke komfortabler zu machen.

Effekte, Sound und Portliste ergänzt