Plugin-Erstellung/Java/SoundAsset Klasse

Aus Rising World Wiki


SoundAsset Klasse stellt eine benutzerdefinierte Audiodatei dar. Dies kann entweder ein Soundeffekt oder ein Musiktitel sein.
Unterstützte Dateiformate: ogg, mp2, mp3, midi/mid, wav, flac.
Die SoundAsset Klasse erbt von Asset und wird innerhalb der Java Plugin-API verwendet, um eigene Audio-Inhalte in Plugins abzuspielen.
Dieser Artikel dokumentiert einige wichtige Methoden der SoundAsset Klasse und zeigt anhand ausgewählter Java-Beispiele, wie diese zu verwenden sind. Hier sind nicht alle Methoden aufgeführt. Die vollständige API-Dokumentation mit allen Methoden, Feldern und Konstruktoren ist im JavaDoc zu finden.


Dokumentation

Die Klasse SoundAsset ist unter JavaDoc: Class SoundAsset zu finden.
Die vollständige API-Dokumentation mit allen Paketen, Klassen, Methoden, Feldern und Konstruktoren ist im JavaDoc zu finden.

Java Paket

In der Java Plugin-API bezeichnet der Begriff "Package" (Paket) eine Gruppierung von zusammengehörigen Klassen, Interfaces und anderen Paketen. Die SoundAsset Klasse befindet sich im Package net.risingworld.api.assets.

Oberklasse

Die Klasse SoundAsset erbt von der abstrakten Klasse Asset, welche die Basisklasse für sämtliche Asset-Referenzen in der Plugin-API darstellt. Über die Oberklasse stehen allen SoundAssets die folgenden geerbten Methoden zur Verfügung: dispose(), equals(), getChecksum(), getDependency(), getExtension(), getHandle(), getPath(), getSource(), getType(), hashCode() und isDisposed().

Geerbte Nested Classes

Aus der Oberklasse Asset werden die folgenden Nested Classes an SoundAsset vererbt:

  • Asset.Source – Enum-Klasse, die die Quelle eines Assets beschreibt. Die möglichen Werte sind:
    • Game – Asset is loaded from a built-in game file
    • Plugin – Asset is loaded from a plugin
    • PluginAssetBundle – Asset is loaded from a plugin asset bundle
    • Custom – Asset is loaded from a custom source
    • Internal – Asset is internal
  • Asset.Type – Enum-Klasse, die den Typ eines Assets beschreibt (zum Beispiel SOUND, TEXTURE, MODEL, MATERIAL, MESH, PREFAB, STYLE_SHEET).

Geerbtes Feld

Aus der Oberklasse Asset wird das folgende Feld an SoundAsset vererbt:

Methoden

Dieser Abschnitt listet alle direkt in der Klasse SoundAsset definierten Methoden auf. Geerbte Methoden aus Asset und Object sind nicht enthalten; eine vollständige Liste steht im JavaDoc.

Statische Methoden

Instanzmethoden

Beispiel loadFromFile

Lädt die Audiodatei "explosion.ogg" aus dem Unterordner "assets" im Plugin-Verzeichnis. Die Methode loadFromFile erwartet einen absoluten Pfad zur Datei auf der Festplatte und eignet sich besonders, wenn die Audiodatei außerhalb der JAR-Datei liegt.

SoundAsset sound = SoundAsset.loadFromFile(getPath() + "/assets/explosion.ogg");

//Etwas mit dem SoundAsset machen, zum Beispiel abspielen

Die Methode loadFromFile() mit Codeschnipsel ist unter javadoc RW: Class SoundAsset - loadFromFile(String) zu finden.

Wichtige Methoden in diesem Beispiel

  • SoundAsset.loadFromFile() – Erzeugt ein neues SoundAsset, das auf eine Audiodatei auf der Festplatte verweist. Der Pfad wird absolut angegeben; getPath() liefert den Pfad zum Plugin-Ordner.
  • Plugin.getPath() – Liefert den Pfad zum Plugin-Ordner, in dem Regel als Basispfad für eigene Audio- und Asset-Dateien verwendet.


Beispiel Sound nach Beitritt

Erstellt ein SoundAsset und spielt es für jeden Spieler nach dem Beitritt ab. Das SoundAsset wird einmalig beim Laden des Plugins erzeugt und bei jedem Spieler-Spawn-Event wiederverwendet, was Speicher und Ladezeit spart.

import net.risingworld.api.Plugin;
import net.risingworld.api.events.EventMethod;
import net.risingworld.api.events.Listener;
import net.risingworld.api.assets.SoundAsset;
import net.risingworld.api.objects.Player;

public class MyPlugin extends Plugin implements Listener
{
    //Unser wiederverwendbares SoundAsset
    public SoundAsset welcomeSound;

    @Override
    public void onEnable()
    {
        //SoundAsset einmal erstellen und für jeden Spieler wiederverwenden (nicht zwingend erforderlich)
        welcomeSound = SoundAsset.loadFromFile(getPath() + "/welcome.ogg");

        //Nicht vergessen, den Event-Listener zu registrieren
        registerEventListener(this);
    }

    @Override
    public void onDisable()
    {
        //...
    }

    @EventMethod
    public void onPlayerSpawn(PlayerSpawnEvent event)
    {
        Player player = event.getPlayer();
        player.playSound(welcomeSound, player.getPosition());
    }
}

Die Methode loadFromFile() mit Codeschnipsel ist unter javadoc RW: Class SoundAsset - loadFromFile(String) zu finden.

Wichtige Methoden in diesem Beispiel

  • SoundAsset.loadFromFile() – Erzeugt ein neues SoundAsset, das auf eine Audiodatei auf der Festplatte verweist.
  • Plugin.registerEventListener() – Registriert einen Event-Listener, damit die mit @EventMethod annotierten Methoden aufgerufen werden, sobald ein entsprechendes Ereignis eintritt.
  • Player.playSound() – Spielt ein SoundAsset für den Spieler an einer bestimmten Weltposition ab.


Siehe auch

API Dokumentation

Forum

Kategorien

Tutorial Kategorien
Plugin-API(1 K, 11 S)
Tutorial(3 S)
Plugin-Erstellung
Java(2 K, 6 S)
Unity(6 S)