Posts by Sandboxgamer

The next update will be available on Wednesday, December 18, in the early evening (GMT+1).

This update will not yet replace the Java version, instead it is the actual content update. We'll provide more information about the transition together with the update.

    Deutsch / German:


    Die alte Plugin-API hatte 3 Klassen, um benutzerdefinierte Elemente in der Welt zu erstellen: Die World3DModel-Klasse (um ein benutzerdefiniertes 3D-Modell zu erzeugen), die World3DText-Klasse (um einen 3D-Text zu erzeugen) und die WorldArea-Klasse (um einen Bereich zu visualisieren).


    Wir haben diesen Teil nun für die neue API überarbeitet: Es gibt eine Basisklasse GameObject , die ein leeres (unsichtbares) Element in der Welt darstellt. Sie können ihm einen Collider hinzufügen oder auch andere Spielobjekte als Kind anhängen (ähnlich wie die Kind-Eltern-Behandlung für UI-Elemente funktioniert).


    Es gibt eine abgeleitete Model-Klasse, die ein Netz und ein Materialobjekt akzeptiert - dies ist nützlich, wenn Sie grundlegende Elemente (z. B. primitive Elemente wie einen Würfel) oder prozedural generierte Netze erzeugen möchten.

    Es gibt auch eine abgeleitete Prefab-Klasse: Es stellt ein komplexeres 3D-Modell dar. Sie können ein Prefab in Unity erstellen und es dann in die API laden. Das Gute daran ist, dass ein Prefab eine beliebige Anzahl von Meshes / Submeshes, benutzerdefinierten Materialien und Shadern sowie benutzerdefinierten Unity-Komponenten enthalten kann. Auf diese Weise können Sie sogar Partikeleffekte, Animationen, physische Objekte usw. direkt in Unity erstellen, in ein AssetBundle exportieren und über die Plugin-API laden.


    Wenn Sie ein Modell haben, das aus mehreren Texturen und Submeshes besteht, können Sie es jetzt ganz einfach in Unity importieren, in ein AssetBundle exportieren und als Prefab über die API laden - Sie müssen sich also nicht mehr mit "nur 1 Mesh und 1 texture"-Beschränkung der alten Java-API.


    Die Prefab-Klasse ermöglicht Ihnen auch den Zugriff auf jedes Unterelement und jede Komponente, sodass Sie jederzeit einen Material- oder Animatorparameter oder einen visuellen Effekt ändern können.



    Natürlich gibt es auch eine Text3D-Klasse, die ebenfalls von GameObject abgeleitet ist und einfach einen 3D-Text darstellt (ähnlich wie es in der Java-Version funktioniert hat).

    Java Development Kit (JDK)


    Ab 0.6.5 verwendet die neue Plugin-API derzeit JDK 20. Es wird mit dem Spiel ausgeliefert, daher ist es empfehlenswert, es aus dem Spielverzeichnis zu verwenden: Sie finden es im Spielordner unter

    _New Version/Data/Java/JDK


    Alternativ können Sie es hier herunterladen: https://jdk.java.net/20/


    Integrated Development Environment (IDE)


    Obwohl es möglich ist, Plugins mit einem Texteditor zu erstellen, ist es sehr empfehlenswert, eine IDE (integrierte Entwicklungsumgebung) zu verwenden. Es bietet Codevervollständigung, kann Dokumentationen anzeigen und ermöglicht Ihnen auch, die Plugins einfach zu kompilieren.


    Dies ist ein Überblick über einige beliebte IDEs:


    Einstig


    Das Spiel wird bereits mit der API-Bibliothek (jar) und dem dazugehörigen Javadoc ausgeliefert - beides ist im Spieleverzeichnis unter _New Version/Data/SDK zu finden.


    Wenn Sie die API aus dem Spielverzeichnis verwenden, verwendet Ihre IDE immer automatisch die neueste API (bei jeder Aktualisierung des Spiels).


    Dieser Link enthält eine Online-Version des neuesten Javadoc: https://javadoc.rising-world.net


    Original: Getting started von red51

    German Version:


    Und das ganze einmal auf Deutsch: :D


    paulevs hat eine Vorlage für neue API-Plugins erstellt, mit der man schnell ein Projekt einrichten und mit der Erstellung der Plugins beginnen kann: https://github.com/paulevsGitch/RisingWorldPluginTemplate


    Wie man es benutzt:

    1. Du benötigst JDK 20, da Rising World dieselbe Java-Version für Plugins verwendet.
    2. Du benötigst das installierte Rising World (Steam-Version)
    3. Klonen Sie dieses Repo (mit Git Clone oder mit Download als .zip).
    4. Ändern Sie die pathToRisingWorld-Variable in build.gradle in Ihren Rising World-Root-Pfad (Unity-Version)
    5. Ändern Sie bei Bedarf die Gruppenvariable in build.gradle, sie sollte Ihrem Hauptpaketnamen entsprechen.
    6. Ändern Sie in settings.gradle den Namen in Ihr Projektlabel.
    7. Bearbeiten Sie plugin.yml und fügen Sie Ihre Credits hinzu. Sie können den Hauptklassenpfad ändern (vergessen Sie nicht, die Hauptklasse zu erstellen / zu verschieben, wenn Sie dies tun)
    8. Importieren Sie das Projekt in Ihre bevorzugte IDE (IntelliJ Idea, Eclipse, Netbeans usw.) und beginnen Sie mit der Codeerstellung

    Aufbau-Plugin:


    Wenn Sie eine IDE mit Gradle-Integration verwenden, können Sie einfach die Build-Aufgabe starten. Wenn Ihre IDE solche Funktionen nicht hat, öffnen Sie ein Terminal- oder cmd-Dienstprogramm und verwenden Sie den Befehl /gradlew build.

    Ihr Plugin erscheint im Ordner /build/libs mit demselben Namen wie in settings.gradle angegeben.

    Hallo red51 ,


    mein NetBeans zeigt mir auf einemal foglede Warnung:

    "Hauptversion 64 ist neuer als 63, die höchste Hauptversion, die von diesem Compiler unterstützt wird. Es wird empfohlen, das Sie den Compiler upgraden." :dizzy:


    Was muss man da tun?

    Hallo red51 ,


    leider funktioniert getPluginByName nicht.

    • In NetBeans bekomme ich keine Fehler.
    • Beide Plugins sind installiert
    • Beide Plugins werden auch in der Console angezeigt
    • Immer wenn bei getPluginByName ankommt, kommt eine Fehlermeldung

    Log ist dabei

    Hallo alle zusammen,

    ein weiteres Plugin, das auch bereits in Java vorhanden war, ist nun auch in der Unity-Version.


    Das Plugin ProtectedSlots gibt Admins die Chance, einen Slot zu "reservieren".

    So verhindern sie, kann alle Slots von Spielern besetzt werden und der Admin nicht mehr auf den Server kommt.


    In der Config kann man einstellen, wie viele Slots "reserviert" werden sollen.


    Wichtig: Das Plugin benötigt den aktuellen ConfigManager (Unity), um zu funktionieren.


    Download: HERE


    Bei Fragen: Ihr wisst ja wie und wo. ;)


    Viel Spaß damit!

    Hallo red51 ,


    ich versuche in meine Plugins auch eigene Events zu schreiben.


    Ich mach immer public class TestEvent extends Event.

    Das hat früher auch so funktioniert. Nun fragt er mich nach einem "Pointer" :thinking::monocle:.


    Was ist dieser Pointer und was muss ich da angeben?

    Oder muss ich das jetzt anders machen? :drunk:

    Hallo Leute,


    wie bereits angekündigt, habe ich den ConfigManager aus der Java-Version in die Unity Version übernommen.


    Kurze Erklährung:

    Mit dem ConfigManager kann man ganz leicht Configs erstellen.



    Er funktioniert einwandfrei.


    JAVADOC: HERE


    Download: Hier im Forum! (Siehe Unten - Anhang)


    Wichtige Info zur Installation:


    Da der ConfigManager immer von anderen Plugins benötigt wird, muss dieser immer als erstes geladen werden! Rising World lädt die Plugins in der Reihenfolge, wie die Ordner im "Plugins"-Ordner sind. Das Betriebssystem sortiert die Ordner standardmäßig in Alphabetischer Reihenfolge. Es wird empfohlen, Zahlen, hinter die Plugin-Namen zu schreiben, um die Reihenfolge selber zu bestimmen! Beispiel mit ToolsAPI, ConfigManager und AktiveSign:


    Viel Spaß damit!

    Hallo red51 ,


    leider fehlt mir das wichtigste in der API. Das Sign-Object. ;(

    Wann wird dies in der API sein?


    Wird es in der neuen API auf wieder möglich sein mit World.createNewStorage(int slots) eine neue imaginäre Truhe zu stellen?