Zum Inhalt springen
Riot-Bits

Riot-Bits

  • Heim
  • Nachricht
  • Führer
  • Videoanleitungen
  • Klebenotizzettel
  • Missbrauch melden
  • Suchformular umschalten
Raumfahrtingenieure

Raumfahrtingenieure – So mod useObjects (Benutzerdefinierte Block -Interaktionen)

Veröffentlicht am 07/29/2021 Von Rechtfertigung Keine Kommentare zu Raumfahrtingenieure – So mod useObjects (Benutzerdefinierte Block -Interaktionen)
  • Titel: Raumfahrtingenieure
  • Veröffentlichungsdatum: Februar 28, 2019
  • Entwickler: Keen Software House
  • Herausgeber: Keen Software House

In diesem Handbuch wird erklärt 1.199.

Einführung

Seit SE -Version 1.199, KEEP FÜSSIERT ZU MODDING -API Die Möglichkeit, benutzerdefinierte UseObjects zu erstellen. Ein UseObject ist ein interaktiver Punkt auf einem Block, wie der Terminalzugriff oder eine Schaltfläche auf einem Tastentafel.

Wenn Sie jemals zuvor einen Block -Mod erstellt haben, Sie haben wahrscheinlich einen Interaktionspunkt gemacht. Das sind Leerereien (Dummies) so etwas wie genannt detector_terminal_1.

Dieser Leitfaden zeigt Ihnen, wie Sie Ihre eigenen Interaktionsdummies erstellen, Mit welchen Sie das gewünschte Verhalten auslösen können, das mit dem Modapi möglich ist.

Modellvorbereitung

Das Modell -Setup ähnelt jedem anderen Interaktionsdummy, den Sie für reguläre Blöcke sorgen würden.
Der einzige Unterschied ist der Name des leeren/dummy.

  • Erstellen (oder ändern) ein Modell
  • Fügen Sie ein neues leer hinzu, Nach dem gleichen Verfahren zur Herstellung von Dummies
  • Nennen Sie das leere gemäß der unten beschriebenen Syntax.

Der Name einer Interaktionsdummy wird in unterteilt in 3 oder mehr Teile: Marker, Typ, Subtyp, Sequenznummer (SEQ Nr); in diesem Format: marker_type_subype_sequencenumber.
Zwei Teile müssen speziell benannt werden: der Marker und die Sequenznummer.
Für die Zwecke dieses Leitfadens, Der Marker ist der Detektor, und seq no ist eine Ganzzahl von beginnend von von 1.

UseObject -Code -Implementierung

Sobald das Modell eingerichtet ist, Die tatsächliche Interaktionsimplementierung erfolgt über ein C# -Skript.

// Initialisieren Sie das UseObject, Verwenden der Art von "Dhd"
// Dies muss mit dem zweiten Element des leeren/dummy -Namens übereinstimmen, ist aber nicht fallsempfindlich.
[My UseObject("Dhd")]
öffentliche Klasse DhduseObject : MyuseObjectbase
{
    IMYGPS M_SELECTEDBUTTON;
    ImyterminalBlock M_DHD;

    öffentliches dhduseObject(IMYENTITY -Besitzer, String Dummyname, IMYMODELDUM DUMYDATA, Uint -Schlüssel)
    : Base(Eigentümer, Dummydata)
    {
        // Speichern Sie einen Verweis auf den übergeordneten Block, So können wir die Aktion später auf der richtigen Ausführung ausführen.
        M_DHD = Besitzer als Imyterminalblock;
    }

    // Dies ist die Hauptaktion, wie das Drücken eines Knopfes.
    öffentliche Überschreibung UsactionNum PrimaryAction => Useactionenum.manipulat;

    // Dies ist die sekundäre Aktion, wie das Drücken von K, um das Menü Aktionszuweisungen einer Taste zu öffnen. Dies ist optional.
    öffentliche Überschreibung UsactionNum SecondarationAction => Useactionenum.openterminal;

    // Dies sagt dem Spiel mit, welche Aktionen Sie unterstützen möchten. In diesem Fall, Nur der Primär wird verwendet.
    // Sie können mehrere Aktionen angeben, indem Sie diese mit einem bitweisen oder Bediener kombinieren
    // z.B., Primäraktion | SecondaryAction
    public override UseActionEnum SupportedActions => Primäraktion;

    // Dies wird aufgerufen, wenn der Spieler auf den Interaktionsdummy zielt.
    öffentliche Überschreibung myActionDescription getActionInfo(Useactionenum actionNum)
    {
        // Dieses Beispiel kümmert sich nicht um den Subtyp ("Taste" im Modell leerer Name),
        // Sie können dieses Feld jedoch verwenden, Wenn gesetzt, ein Skript mit mehreren Dummy -Aktionen zu teilen.
        // Zum Beispiel, detector_mypower_on_1 könnte verwendet werden, um einen Block einzuschalten, Und
        // detector_mypower_off_1 könnte verwendet werden, um einen Block auszuschalten. Sie könnten sogar eine haben 
        // eine dritte, detector_mypower_toggle_1, der den Blockstatus umschaltet.
        // Sie können das Feld Subtyp schnappen, indem Sie den Dummy -Namen auf '_' aufteilen und das dritte Element greifen (Index 2).
        schalten (actionEnum)
        {
            Fall Usactionenum.manipulat:
                Wenn (m_selectedButton == NULL)
                {
                    // Holen Sie sich die SEQ No of the Dummy (Leerzeichen hinzugefügt, um das Dampf zu vermeiden, um die URL zu kennzeichnen)
                    var button = int.Parse( this.dummy .name.substring( this.dummy .name.lastindexof('_') + 1 ) ) - 1;
                    war button_text = "Taste " + Taste.ToString();

                    // Dies erzeugt einen HUD -Marker für den Interaktionsdummy, Wie Knopftafeln. Dies ist optional.
                    m_selectedButton = myapigateway.session.gps.create(Button_text, "Schamsymbol", ActivationMatrix.translation, WAHR);
                    Myapigateway.session.gps.addLocalGps(M_SELECTEDBUTTON);
                }
                anders
                {
                    m_selectedButton.coords = ActivationMatrix.Translation;
                }

                // Dieser Abschnitt enthält den HUD -Hilfestext, wenn der Spieler auf die Interaktion mit den aktivierenden Kontrollhinweisen abzielt.
                // Notiz, Das Game Control -Schlüsseletikett ist um eingewickelt [], Dies führt dazu, dass es in der Benachrichtigung gelb wird.
                war Hinweis = "Drücken {0} Symbol aktivieren auf {1}";
                Rückgabe neuer MyActionDescription()
                {
                    Text = mystringid.getOrCompute(Hinweis),
                    Formatparams = neu[] { "[" + Myapigateway.input.getGameControl(MyControlsspace.use) + "]", M_DD?.DisplayNameText },
                    ISTextControlHint = true,
                };
            Fall UsactionNeum.openterminal:
                Rückgabe neuer MyActionDescription()
                {
                    Text = mySpacetexte.notificationHintpressToopencontrolpanel,
                    Formatparams = neu [] { "[" + Myapigateway.input.getGameControl(MyControlsspace.terminal) + "]", M_DD?.DefinitionsDisplaynameText },
                    ISTextControlHint = true,
                };
            Standard:
                Rückgabe(MyActionDescription);
        }
    }

    // Dies wird aufgerufen, wenn der Spieler nicht mehr auf den Interaktionsdummy zielt.
    öffentliche Override Void OnSelectionSlost()
    {
        // Remove the HUD marker
        if(M_SELECTEDBUTTON != NULL)
            Myapigateway.session.gps.removelocalgps(M_SELECTEDBUTTON);
        m_selectedButton = null;
    }

    // Dies wird aufgerufen, wenn der Spieler mit dem Objekt interagiert (drückt den zugewiesenen Tastaturbind).
    öffentliche Untersuchung von Leere Verwendung(Useactionenum actionNum, IMYEntity User)
    {
        schalten (actionEnum)
        {
            Fall Usactionenum.manipulat:
                versuchen
                {
                    var button = int.Parse( this.dummy .name.substring( this.dummy .name.lastindexof('_') + 1 ) ) - 1;

                    // Platzieren Sie den Code, den Sie hier möchten, die Aktion, die Sie ausführen möchten.
                    // Dieses Beispiel schaltet den Block Ein/Aus -Aktion um; Beachten Sie, dass dieses Beispiel ein MyFunctionalBlock erfordert,
                    // Aber Sie können einen normalen Myterminalblock verwenden, je nachdem, was Sie tun möchten.
                    M_dd.enableed = !M_DD.Enabled
                }
                fangen(Ausnahme)
                { /* Vermeiden Sie es, das Spiel zu stürzen, Sie sollten jedoch eine Nachricht an das Protokoll schreiben */ }
                brechen;
            Fall UsactionNeum.openterminal:
                // Es gibt noch keine Möglichkeit, das Terminal zu öffnen.
                brechen;
        }
    }
}

Testen

Sobald Sie das Modell haben, und Code einrichten, Sie können es im Spiel laden, Wie du es irgendwelchen modst. Die Schritte zum Erstellen eines Mods, im Allgemeinen, liegt außerhalb des Rahmens dieses Leitfadens.

Nachdem Sie es geladen haben, Sie können den Dummy anzeigen, indem Sie das Debug -Zeichnen im Modapi -Debug -Menü aktivieren (Shift-F11). Ziel, Und Sie sollten Ihren Hilfetext sehen, wenn Sie Kontrollhinweise in den Spieloptionen ermöglicht haben. Drücken Sie Ihren zugewiesenen Schlüsselbind darauf, und sehen Sie zu, wie Sie die gewünschte Aktion ausführen!

Das ist alles, was wir heute dafür teilen Raumfahrtingenieure Führung. Dieser Leitfaden wurde ursprünglich erstellt und geschrieben von Rechtfertigung. Für den Fall, dass wir diesen Leitfaden nicht aktualisieren können, Sie können das neueste Update finden, indem Sie diesem folgen Verknüpfung.

Wenn Sie der Meinung sind, dass der Inhalt dieser Website Ihre Rechte verletzt, einschließlich Ihrer geistigen Eigentumsrechte, Bitte kontaktieren Sie uns umgehend über unser Kontaktformular.
Führer Stichworte:Raumfahrtingenieure

Beitrags-Navigation

Vorherigen Post: Critter Crunch-Erfolgsleitfaden
Nächster Beitrag: Omno Achievement Guide

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  • Titel: Raumfahrtingenieure
  • Veröffentlichungsdatum: Februar 28, 2019
  • Entwickler: Keen Software House
  • Herausgeber: Keen Software House

Haftungsausschluss

Alle zitierten Inhalte stammen aus den jeweiligen Quellen. Wenn Sie der Meinung sind, dass wir Ihre Inhalte ohne Erlaubnis verwendet haben, Stellen Sie sicher, dass Sie uns erreichen, wir werden es ernst nehmen.
  • Über uns
  • Kontaktiere uns
  • Datenschutz-Bestimmungen
  • Nutzungsbedingungen

Urheberrechte © © 2025 Riot-Bits.

Bereitgestellt von PressBook News WordPress-Theme