Modding von Kaupenjoe: Fabric für Minecraft 1-18-1 | Kaupenjoe (Nico) | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Modding von Kaupenjoe: Fabric für Minecraft 1-18-1

teacher avatar Kaupenjoe (Nico), CS Student, Nerd and Educator

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung in meine Minecraft Modding Kurs

      1:00

    • 2.

      (Java) Installation und Download

      5:52

    • 3.

      (Java) Datatypes

      8:11

    • 4.

      (Java) Java-Syntax

      5:42

    • 5.

      (Java) Ausgabe und Eingabe

      7:28

    • 6.

      (Java) Fehler & wie du damit umgehst

      6:41

    • 7.

      (Java) Ganzzahl, Arithmetik und Math

      6:23

    • 8.

      (Java) Assignment

      4:40

    • 9.

      (Java) Boolesche und Comparison

      7:02

    • 10.

      (Java) Boolesche und logische Operatoren

      3:30

    • 11.

      (Java) Wenn und andere Aussagen

      6:52

    • 12.

      (Java) Änderung

      4:08

    • 13.

      AUFGABE 1: Trivia Spiel

      2:59

    • 14.

      LÖSUNG 1: Trivia Spiel

      2:32

    • 15.

      (Java) Strings und String

      9:41

    • 16.

      (Java) Casting

      3:49

    • 17.

      (Java) Ternary

      4:13

    • 18.

      (Java) Arrays erklärt

      9:09

    • 19.

      (Java) Für und während der Schleife

      8:55

    • 20.

      (Java) Java-Methoden

      10:14

    • 21.

      AUFGABE 2: Trivia Spiel mit Methoden

      2:30

    • 22.

      LÖSUNG 2: Trivia Spiel mit Methoden

      5:13

    • 23.

      (Java) (Java)

      16:43

    • 24.

      (Java) Java Programmierung erklärt

      7:37

    • 25.

      (Java) Java und Objekte

      9:20

    • 26.

      (Java) Zugriffsmodifikatoren

      7:42

    • 27.

      (Java) Erbe und Polymorphismus

      10:50

    • 28.

      (Java) Schnittstellen und Abstrakte Kurse

      5:52

    • 29.

      AUFGABE 3: Trivia aktualisieren

      1:15

    • 30.

      LÖSUNG 3: Trivia aktualisieren

      3:08

    • 31.

      AUFGABE 4: Bank

      1:20

    • 32.

      LÖSUNG 4: Bank

      2:17

    • 33.

      (Java) Anonyme Kurse

      2:44

    • 34.

      (Java) Enums und Fortgeschrittene

      3:00

    • 35.

      (Java) Ausnahmen und Probieren und fangen

      5:14

    • 36.

      (Java) Java Lambda Expressionen

      3:24

    • 37.

      (Java) Java

      3:37

    • 38.

      (Grundlagen) Installation, Einrichtung und GitHub

      23:27

    • 39.

      (Basics) Erstellen eines benutzerdefinierten Artikels

      14:35

    • 40.

      (Basics) einen benutzerdefinierten Block erstellen

      12:55

    • 41.

      (Grundlagen) Hinzufügen von benutzerdefinierten Artikeln

      3:20

    • 42.

      BEWERTUNG 5: Individuelle Blöcke und Gegenstände

      1:04

    • 43.

      LÖSUNG 5: Individuelle Blöcke und Gegenstände

      1:10

    • 44.

      (Basics) Hinzufügen von individuellen Rezepten

      9:39

    • 45.

      (Basics) Custom Block mit Loot

      9:11

    • 46.

      BEWERTUNG 6: Individuelle Rezepte und Loot

      1:23

    • 47.

      LÖSUNG 6: Rezepte und Loot

      1:37

    • 48.

      (Grundlagen) Ein fortgeschrittenes Element erstellen

      16:46

    • 49.

      (Grundlagen) einen erweiterten Block erstellen

      7:46

    • 50.

      (Grundlagen) ein individuelles Lebensmittel erstellen

      4:02

    • 51.

      (Basics) ein individuelles Fuel erstellen

      3:50

    • 52.

      (Basics) Hinzufügen von individuellen Tooltips

      3:17

    • 53.

      (Grundlagen) Alles über Tags

      9:52

    • 54.

      (Basics) Treppen und Platten hinzufügen

      9:13

    • 55.

      (Grundlagen) Hinzufügen von Tasten und Druckplatten

      7:16

    • 56.

      (Basics) Hinzufügen von Zäunen, Fence und Wänden

      6:06

    • 57.

      (Grundlagen) Türen und Fallen hinzufügen

      6:47

    • 58.

      (Tools) ein neues Toolset erstellen

      11:25

    • 59.

      (Tools) ein benutzerdefiniertes Multi-Tool erstellen (Paxel)

      4:54

    • 60.

      (Tools) Waffen herstellen, die Effekte anwenden

      2:30

    • 61.

      (Rüstung) Ein neues Rüstungsset erstellen

      8:53

    • 62.

      (Rüstung) eine volle Rüstung Effekt

      8:23

    • 63.

      (Rüstung) eine individuelle a erstellen

      3:04

    • 64.

      (Rüstung) Hinzufügen einer individuellen Verzauberung

      7:20

    • 65.

      (Intermediate) (Intermediate)

      13:24

    • 66.

      (Intermediate) Wie funktioniert NBT

      10:11

    • 67.

      (Intermediate) Item Vorhersagen

      6:18

    • 68.

      AUFGABE 7: Blockstate und NBT

      1:05

    • 69.

      (Intermediate) Hinzufügen einer individuellen Ernte

      11:17

    • 70.

      (Intermediate) Wie du Artikel zu einem Komponisten hinzufügen

      1:51

    • 71.

      (Intermediate) Mischungen

      9:26

    • 72.

      (Intermediate) Erstellen von benutzerdefinierten Befehlen

      9:12

    • 73.

      (Intermediate) Hinzufügen von benutzerdefinierten Blumen

      2:55

    • 74.

      (Intermediate) Topfblumen

      3:03

    • 75.

      (Intermediate) Hinzufügen von individuellen Sounds

      5:51

    • 76.

      (Intermediate) benutzerdefinierte Block

      5:55

    • 77.

      (Intermediate) Hinzufügen von individuellen Music

      4:09

    • 78.

      (Intermediate) Hinzufügen einer benutzerdefinierten Blockmodelle in Minecraft mit Blockbench

      16:18

    • 79.

      (Intermediate) Hinzufügen von Sondermodellen mit Blockbench

      3:34

    • 80.

      (Intermediate) Hinzufügen einer benutzerdefinierten Buge

      3:19

    • 81.

      (Intermediate) individuelle Flüssigkeiten

      10:59

    • 82.

      (Intermediate) Vanilla ändern

      5:36

    • 83.

      (Intermediate) Fortschritte

      4:33

    • 84.

      (Intermediate) Wie man Partikel spawnen

      2:59

    • 85.

      (Intermediate) maßgeschneiderte Gemälde

      4:25

    • 86.

      (Erweiterte) Individuelle Block-Einheit

      25:23

    • 87.

      (Fortgeschrittene) Individuelle Rezepturen

      23:45

    • 88.

      (Fortgeschrittene) Custom Wood

      8:18

    • 89.

      (Erweiterte) benutzerdefinierte Zeichen

      6:39

    • 90.

      (Fortgeschrittene) Minecraft und Stoff aktualisieren

      4:09

    • 91.

      (World Gen) maßgeschneiderte Bäume

      8:12

    • 92.

      (World Gen) Baumgeneration

      12:51

    • 93.

      (World Gen) Blumenerzeugung

      5:17

    • 94.

      (World Ore

      7:18

    • 95.

      Wie du eine JAR-Datei aus deinem Mod erstellen

      1:56

    • 96.

      (Zusätzliche Themen) Update Stoff (1.18.1)

      3:05

    • 97.

      (Zusätzliche Themen) XP für Blöcke

      3:24

    • 98.

      (Weitere Themen) Hinzufügen transparenter Blöcke

      3:49

    • 99.

      (Weitere Themen) Animierte Artikel hinzufügen

      3:44

    • 100.

      (Zusätzliche Themen) Benutzerdefinierter Menü-Bildschirm

      7:24

    • 101.

      (Zusätzliche Themen) Einfache und einfache Konfigs hinzufügen

      7:23

    • 102.

      (Zusätzliche Themen) Hinzufügen von benutzerdefinierten Effekten

      4:34

    • 103.

      (Zusätzliche Themen) Hinzufügen von benutzerdefinierten Tränen

      6:38

    • 104.

      (Zusätzliche Themen) Hinzufügen von individuellen Einrichtungen mit Geckolib

      19:54

    • 105.

      (Weitere Themen) Fügen Sie Animationen mit Geckolib und BlockBench hinzu

      7:11

    • 106.

      (Zusätzliche Themen) Hinzufügen von Entity

      9:00

    • 107.

      (Zusätzliche Themen) Tameable Personen hinzufügen

      7:41

    • 108.

      (Zusätzliche Themen) Add Einrichtungen hinzufügen

      12:20

    • 109.

      (Zusätzliche Themen) Hinzufügen von Entity World Generation

      3:27

    • 110.

      (Zusätzliche Themen) Hinzufügen von individuellen Trades zu Dorfbewohnern

      5:17

    • 111.

      (1.18.2) Fabric auf 1.18.2

      13:55

    • 112.

      (1.18.2) Benutzerdefinierte Strukturen (Tutorial Beispiel Repo)

      32:10

    • 113.

      (1.18.2) Individuelle Strukturen (Einzelteil)

      8:15

    • 114.

      (1.18.2) Individuelle Strukturen (Jigsaw

      14:22

    • 115.

      (1.18.2) 3D-Rüstungsmodelle

      12:02

    • 116.

      (1.18.2) Kundenspezifische Dorfbewohner

      6:33

    • 117.

      (1.18.2) Baby

      4:22

    • 118.

      (1.18.2) Benutzerdefinierte Geodes

      5:54

    • 119.

      (1.18.2) Block, der mit Redstone interagiert

      4:28

    • 120.

      (1.18.2) Individuelle Block

      9:44

    • 121.

      (1.18.2) Loot in individuellen Strukturen

      3:09

    • 122.

      (1.18.2) AKTUALISIERUNG AUF 1.19

      22:15

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

351

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Minecraft! Es ist das beliebteste Spiel aller Zeiten und Minecraft Modding ist wieder in den Mund aller Menschen! Manche Minecraft Mods sind so beliebt, dass jeder sie kennt. Die Minecraft Modding Community wächst jeden Tag und es ist ein tolles und kreatives Outlet!

Dieser Kurs zeigt dir, wie du deinen eigenen Minecraft Mod erstellen kannst! Lernen Sie nicht nur die Programmiersprache Java sondern auch den effektiven Einsatz des Minecraft Minecraft Modding von Java.

Für absolut Anfänger habe ich eine Java für dich hinzugefügt. Selbst wenn du keine Erfahrung in der Programmierung hast, kannst du Minecraft Mods erstellen, indem du zuerst die Java durchgehst!

In der einfachen Konzepte des Kurses lernst du wie du Elemente und Blöcke, maßgeschneiderte Rezepte und Tool für Minecraft hinzufügen kannst! Die Intermediate Konzepte sind, wo du wirklich einige erstaunliche Fähigkeiten für das richtige Minecraft Modding mit Stoff aufheben kannst! Wir reden über BlockStates und BlockStates fügen benutzerdefinierte Pflanzen hinzu und sehen wie du Minecraft benutzerdefinierte Blockmodelle hinzufügen kannst!

Aber das ist noch nicht alles! Am Ende des Kurses decken wir fortgeschrittene Themen wie Block individuelle Rezepturen und sogar die Ore unter anderem ab.

Mit ein bisschen Kreativität und dem Anwenden der Kurseinheiten aus diesem Kurs kannst du vielleicht den nächsten Minecraft Mod treffen!

Dieser Kurs ist für Anfänger zugänglich. Selbst wenn du noch nie in deinem Leben programmiert hast! Die einzige Voraussetzung ist, dass du Minecraft besitzt und mit dem Spiel und einigen beliebten Minecraft Mods oder sogar Minecraft Modpacks vertraut bist.

Übungsdateien und der gesamte Quellcode sind verfügbar, damit du alles in den Videos folgen kannst.

Wenn du Fragen oder Anregungen hast, kannst du mich auch hier kontaktieren. Ich helfe dir gerne in Java zu programmieren und deinen eigenen Minecraft Mod mit Stoff zu erstellen.

HAFTUNG: KEIN OFFIZIELLES MINECRAFT NICHT GENEHMIGT VON MOJANG ODER IN VERBINDUNG MIT MOJANG.

Triff deine:n Kursleiter:in

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Kursleiter:in

I am Nico - also known as Kaupenjoe - I have a Master's Degree in Computer Science and teach Game Development through many different classes. Mid-2020, when I became a bit disillusioned with my job, I set my sights to something different. Multiple people have previously told me I was good at teaching things.

With some of my prior YouTube Video making knowledge I was able to make my first courses. The Minecraft Courses in particular made a huge impact on students and myself and allowed me to teach full-time with courses and other supplementary methods.

I hope you will also join me and allow me to help you learn Programming, Modding or Game Development. As a hobby, side-hustle or as a promising career, it is an amazing and fulfilling field and I'm so happy to have y... Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung in meine to: Hallo, ich bin Nico Company oder Master-Student für Informatik und ein begeisterter Minecraft-Spieler. Du könntest mich von meinen YouTube-Kanal-Tutorials von Cotton Joe kennen, wo ich Minecraft-Modellierungs-Tutorials erstelle. Aber jetzt werden wir noch größer werden. Dies ist die Mikrowellenmodellierung 118, eine Klasse mit Stoff. Hier erfahren Sie alles, was Sie wissen müssen, um einen fantastischen und erstaunlichen Minecraft-MOD zu erstellen. Selbst absolute Anfänger können damit beginnen, Selbst absolute Anfänger können damit beginnen die Java-Einführung des Anbieters zu durchlaufen, die wirklich hilft Ihnen dabei, einige der Grundlagen zu lernen. Dann lernen wir einige der einfachen Konzepte kennen, wie man meinem Handwerk einen Gegenstand, einen Block, Rezepte und sogar Werkzeuge hinzufügt . Danach werden wir uns weiterhin benutzerdefinierte Blockmodelle, kundenspezifische Kulturen und so viele andere coole und interessante Funktionen ansehen kundenspezifische Kulturen und . Am Ende werden wir uns sogar mit einigen fortgeschrittenen Themen wie Block-Entitäten und Welterzeugung befassen . Worauf wartest du also? Melde dich jetzt für diesen Kurs an, und wer weiß, vielleicht wird dein Model der nächste große Hit sein. Wir sehen uns in der ersten Lektion. 2. (Java) Installation & Download: Willkommen beim Fabric 118 Kurs und hier zur Java-Einführung. Also fangen wir im Grunde mit einer kleinen Java-Einführung an. Wenn Sie Java überhaupt nicht benutzt haben, wird dies für Sie sehr, sehr nützlich sein . Andernfalls, wenn Sie bereits mit einer anderen Programmiersprache oder mit Java selbst gearbeitet haben , ist dies eine sehr kluge Idee, dies hier am Anfang als gute Auffrischung zu haben. Daher empfehle ich dringend die gesamte Java-Einführung durchzugehen. Es wird auch einige Aufgaben auf dem Weg geben, die Sie tun können, um die Konzepte, die wir in dieser Einführung hier diskutieren werden, im Grunde weiter zu festigen Konzepte, die wir in dieser Einführung hier diskutieren werden, im Grunde weiter zu . Und es wird ein paar Voraussetzungen geben, die wir brauchen werden. Der erste wird ein JDK sein. Jdk ist ein Java Development Kit, sozusagen in verschiedenen Geschmacksrichtungen erhältlich ist. Aber was wir benutzen werden, ist derjenige, der ihn hier adoptiert, und wir müssen 16 benutzen. Also wird JDK 16 in diesem Fall Tamarin 16 genannt. Und ich habe das in den Ressourcen im Grunde genommen verknüpft , dass Sie das herunterladen können. Dies stellt sicher, dass Sie Ihr Betriebssystem und Ihre Architektur auswählen . Für mich wäre das also Windows - und 64-Bit-Architektur. Ich empfehle dringend, das MSI hier herunterzuladen , da dies im Grunde nur ein Installationsprogramm ist, der das JDK dann wie im Grunde jedes andere Programm auf Ihrem Computer installiert . Nun, installieren Sie das einfach normal wie bei jedem anderen Programm, und dann können wir fortfahren. Sobald Sie das JDK installiert haben, benötigen wir auch eine IDE. Und IDE ist eine integrierte Entwicklungsumgebung , in der wir in unserem Fall IntelliJ idea verwenden werden. Das ist, ich habe absolut ein großartiges Tool gefunden , das wir dafür verwenden können Wir können die Community-Version verwenden, die kostenlos ist und auf Open Source basiert, die so ziemlich alles beinhaltet , was wir würde es jemals wollen oder brauchen. Stellen Sie also auf jeden Fall sicher, dass Sie die Community-Version hier auswählen. auch noch einmal die EXE herunter, wenn Sie unter Windows sind, und wie Sie es vielleicht hier gesehen haben, können Sie hier auch Trick überprüfen, ob Sie auf Mac oder Linux sind, im Grunde wechseln und sie auch installieren. Und installieren Sie das auch einfach wie bei jedem anderen Programm. Und dann, sobald das installiert ist , können wir fortfahren. Wenn Sie die Intelligenz zum ersten Mal öffnen, erscheint auch ein ähnliches Fenster für Sie. Jetzt wird es ein bisschen anders aussehen, aber es wird diese drei Schaltflächen haben, die Schaltfläche „Neues Projekt“ mit der Schaltfläche „Öffnen“ und die Schaltfläche „Von VCS“. Wenn Sie auf die Schaltfläche Neues Projekt klicken, wird ein neues Fenster angezeigt. Wichtig ist, dass wir genau hier das neue Projekt auswählen möchten . Hier können wir es einfach nennen, was wir wollen. So können Sie zum Beispiel bei der Java-Einführung einen Standort genau hier auswählen, indem die Sprache Java Build System Intelligence verwenden und das JDK 16 für unsere Zwecke hier zur Java-Einführung ist, der Beispielcode muss von ihnen überprüft werden. Wenn dies erledigt ist, können wir auf die Schaltfläche Erstellen klicken und dann erscheint ein neues Fenster. Nun, als erstes, was wir in den neueren Versionen für Intelligenz tun müssen, haben in den neueren Versionen für Intelligenz tun müssen, sie einige Sachen geändert. Ich bin mir nicht sicher, warum das der Fall ist, weil sie tatsächlich dazu neigen, viele Dinge zu ändern , was irgendwie nervig ist. Aber unsere Hauptklasse hier, damit Sie diese Hauptklasse sehen können, wenn ich darauf doppelklicke, öffnet sie sich. Du hast vielleicht schon für dich geöffnet. Das ist auch in Ordnung. Jetzt, in Zukunft, wird es tatsächlich in einigen Paketen enthalten sein. Also müssen wir das tatsächlich manuell für unseren Fall hier in diesem Fall machen, aber das wird gut. Wir klicken jedoch einfach mit der rechten Maustaste auf den Quellordner, damit Sie sehen können , dass Quelle mit der rechten Maustaste auf Und dann werden wir es tun, ich rufe das Netz an. Und dann klicke ich in diesem Netz mit der rechten Maustaste auf neues Paket und rufe diese Hilfe an. Und Joe, jetzt nennst du es einfach wie du heißt. Im Grunde genommen haben Sie Netz und dann Ihren Namen, zum Beispiel werde ich die Hauptklasse hineinziehen, sagen Refactor, und dann wird es uns gut gehen. Dann hast du dieses Paket auch hier oben. Dies ist sehr wichtig, da es bevorstehende Vorträge gibt. Wir werden das auch haben. Wenn dies nun anders angezeigt wird als Sie, könnte es so aussehen. Ich zeige Ihnen nur für eine Sekunde, dass es sich hier irgendwie verdichtet, Nettopunktzahl Joe, alles in einer Zeile. Wenn das der Fall ist, können Sie genau hier zu diesem Gang gehen. Um Darstellung, Höhe, MT, mittlere Pakete zu erstellen, können Sie die Auswahl aufheben und auch abgeflachte Pakete deaktivieren. Und dann wirst du genau das Gleiche haben wie wir genau dort haben. Jetzt werden wir mit Pascal und Joe für den Rest der Vorträge fortfahren . In diesem Fall werden wir also das haben, wir werden hier etwas namens Main haben und hier einen weiteren Hauptteil. Und dann ist das üblich, wo es heißt, schreibe deinen Code hier. Jetzt werden wir in dieser ersten In-Vorlesung hier keinen Code schreiben . Wir beginnen grundsätzlich sofort mit der nächsten Vorlesung. Das ist wirklich nur das Setup. Insgesamt ist dies so ziemlich alles, was wir tun müssen. Der gesamte Code wird immer in jeder Vorlesung verfügbar sein . In jeder Vorlesung finden Sie also einen Ressourcenlink oder Sie werden diesen grundsätzlich irgendwo verlinkt finden , wo Sie entweder das GitHub-Repository haben können . All dies wird also in einem GitHub-Repository gespeichert. Und jede Vorlesung wird ein Individuum sein, im Grunde ein individueller Zweig dort. Oder Sie haben auch einzelne Juristen, bei denen jeder der verschiedenen, jeder Code, alles aus dem Code dieser Vorlesung auch dort verknüpft ist. also keine Sorgen. alles kann zugegriffen werden bevor Sie sich das überhaupt ansehen können , weil manche Leute natürlich lieber den Code vor sich haben und ihn dann ein wenig ändern würden. Manche Leute wollen es einfach programmieren, wie während ich es codiere. Und das ist vollkommen in Ordnung. Beide Ansätze sind in diesem Fall grundsätzlich gültig. Aber vorerst ist es das im Grunde genommen. Der gesamte Code wird also verfügbar sein und hoffentlich haben Sie es bis zu diesem Punkt geschafft. Und dann sehen Sie, ob Sie nach Beginn der nächsten Vorlesung sehen können, ob dort alles funktioniert hat oder nicht. Aber das würde für diese Vorlesung genau hier schlagen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 3. (Java) Dateitypen: Willkommen zurück zur Java-Einführung für eine Minecraft-Modellierung. Und in diesem Vortrag werden wir über Datentypen sprechen. Wir fangen also sehr, sehr langsam an. Die Idee ist, dass wir beim Programmieren Dinge in Variablen speichern können. Was sind diese Dinger, oder? Es gibt verschiedene Arten von Daten. Und im Grunde gehen wir in dieser Vorlesung durch, welche Arten von Daten es sich handelt, im Grunde genommen die Datentypen. Es gibt also ein paar verschiedene Arten von Datentypen , wie zum Beispiel noch weiter zu gehen. Und der erste wären die numerischen Typen, im Grunde genommen, wie man Zahlen speichert. Es gibt eine Reihe verschiedener Datentypen hier. Es gibt also eine ganze Zahl, es gibt einen Float und das Double. Das sind also diejenigen , die hauptsächlich verwendet werden. Ich werde ein bisschen darüber sprechen. Sie können also zuerst sehen, wenn Sie eine Art neue Variable erstellen, das heißt, Sie können sich dies als einen Container vorstellen, der einen bestimmten Wert enthält. Und die Art des Wertes wird durch das erste Wort bestimmt, in dem Sie sehen können, dass es tatsächlich sogar orange markiert ist. Das wird nicht immer der Fall sein. Dies wird nur bei primitiven Datentypen der Fall sein . Aber was das werden wir in einem späteren Vortrag im Grunde ein wenig sehen . Und Sie können sehen, dass dies eine Nummer genannt wird. Dies ist der Name der Variablen und dann ist der Wert 42. Nun ist eine Ganzzahl, wie gesagt, eine bestimmte Art von Datentyp, ein numerischer Datentyp , der eine ganze Zahl ist. Dies kann also nur ganze Zahlen oder ganze Zahlen speichern. Und die tatsächliche Spanne, die es sparen kann, geht von negativen 2 Milliarden auf plus 2 Milliarden, wie Sie sehen können. Dies sind also im Grunde die Zahlen, die Sie speichern können und die in einer Ganzzahl gespeichert werden können. Das ist die Idee. Und dann gibt es Float oder wenn du ein Komma brauchst. Nun, was ist sehr interessant bei Floats und Doubles, die fast dasselbe sind, nicht ganz, aber fast das Gleiche. Es sind beide Fließkommazahlen. Und die Idee ist, dass dies eigentlich nicht so gespeichert wird, tatsächlich wie wissenschaftliche Notation gespeichert wird. Du hast das vielleicht schon mal irgendwo gesehen. Und das ist so etwas wie 1,412 mal zehn bis die vier wären dann 14.120. Und im Grunde werden in dieser Notation hier die Fließkommazahlen gespeichert. Und was bei einem Float wichtig ist, wenn sie diese verwenden, haben sie eine Genauigkeit von sieben Dezimalstellen, was bedeutet, dass Sie sieben Zahlen haben können. Es spielt keine Rolle, ob sie links oder rechts vom Dezimalpunkt sind oder nicht , sondern sieben Zahlen und dann werden sie genau sein, und danach wird es abgerundet. Dies ist auch der Grund, warum Sie normalerweise nicht sehr, sehr, sehr präzise Dinge in Floats speichern möchten . Wenn Sie zum Beispiel zehntausende oder 100 Tausend Bitcoin haben zehntausende oder 100 Tausend , so etwas. Das sollte definitiv nicht in einem Float gespeichert werden , da dies sehr leicht zu Rundungsfehlern kommen könnte. Das sind also Gleitkomma-Rundungsfehler. Diese sind sehr verbreitet. Jetzt ist ein Double ein bisschen besser, da es Genauigkeit von 15 Dezimalstellen hat. Trotzdem könnten sie es sein, es könnte immer noch zu einigen Rundungsproblemen führen. Das ist also etwas, dessen man sich bewusst sein sollte. Normalerweise spielt dies in den meisten Fällen, zum Beispiel in unserem Fall, wirklich keine Rolle. Wenn Sie also einen Float haben, der normalerweise zum Beispiel darstellen kann, haben Sie bestimmte Blockpositionen in der Welt, die etwas zwischen diesen Blockpositionen geschrieben weil ein Block natürlich nicht so ist ein einziger Punkt im Raum wie ein kleiner Farbverlauf dort. Und dann gibt es ein kleines Rundungsding, das völlig gut werden wird. Und das ist wahrscheinlich auch einer der Gründe, warum, wenn man Millionen von Blöcken irgendwann Millionen von Blöcken in eine Richtung geht, die Welt wirklich durcheinander ist, weil Fließkommafehler und ähnliches das. Das ist wahrscheinlich auch einer der Gründe. Jetzt gibt es einige andere numerische Typen , die nicht so oft verwendet werden, zumindest persönlich, ich habe es nicht so oft gesehen. Viele Leute könnten sagen: Nun, ich meine, das stimmt nicht ganz. Natürlich müssen Sie sich dessen bewusst sein, aber normalerweise habe ich diese nicht mehr so oft gesehen . Zu einem Byte gehören acht Bit und es kann Zahlen von negativ 128 bis 127 speichern . Das würde ich also eine winzige Zahl nennen, weil es im Grunde nur eine bestimmte Anzahl von Werten speichern kann . Grundsätzlich ist hier in diesem Fall ein Short eine kleine Zahl, die zwischen negativen 32000 und plus 32000 speichern kann . Und dann hingegen ist eine lange, die, wie Sie sehen können, es von negativen neun Billionen bis zu positiven Billionen neun Billionen Billionen speichern kann , nämlich Bree, das ist ziemlich atemberaubend. Das ist eine sehr große Zahl, die normalerweise sehr selten benutzt wird. Wie gesagt, nach dem, was ich sagen kann, ist eine Ganzzahl die gebräuchlichste Zahl für eine ganze Zahl. Und dann werden Floats oder Doubles für, naja, im Grunde genommen Dezimalzahlen oder ähnliches verwendet naja, im Grunde genommen Dezimalzahlen , oder? Der nächste Datentyp der Klammer werden die Booleans sein. Das ist eine Art Logik. Worüber Sie also nachdenken können, ist, wir einen booleschen Wert, einen booleschen Wert haben und entweder wahr oder falsch sind. Es kann also entweder eins oder 0 sein. Dies kann in einem Bit dargestellt werden, da ein bisschen, wenn Sie es wissen oder nicht wissen, entweder 0 oder eins sein kann, das sind die einzigen zwei möglichen Werte, die es annehmen kann. Das ist also ziemlich das Gleiche. Es kann entweder wahr oder falsch sein. So sind diese tollen Videos, hoffe ich das. Das stimmt also. Und es ist dieses HTML. Nun, das heißt, hoffentlich hast du das nicht gedacht, weil das eigentlich falsch ist. Das ist also irgendwie das boolesche Zeug. Und die Logik ist tatsächlich unglaublich mächtig wie das gesamte Logikfeld. Natürlich basiert die Gesamtheit aller unserer Computer und Betriebssysteme und all das alles auf Binärcode. Und theoretisch sind Booleans nichts anderes als Binärcode, oder? Weil ein Wahr eins ist und eine Kraft eine 0 ist. In diesem Sinne gelten also die gleichen Gesetze. Man kann sich das so vorstellen, aber insgesamt werden die Booleer , ebenso mit Ganzzahlen, wir uns diese in Zukunft ein wenig genauer ansehen . Aber ich wollte dir diese auf jeden Fall vorstellen. In der dritten und letzten Art von großer Klammer hier unsere Charaktere und Strings zu einem Charakter, punkten unsere Charaktere und Strings zu einem Charakter, wie Sie sehen können, ein Zeichen. Und das ist ein einzelnes Zeichen, also ist dies hier mit diesen einzelnen, einfachen Anführungszeichen gekennzeichnet . Und dies kann ein einzelnes Zeichen speichern und Sonderzeichen regulieren den Handel. Also kann ich hier ein Komma reinlegen, das ist in Ordnung. Ich kann hier einen Strich setzen, wie einen Hashtag, der Plus-Symbolstern, das ist alles in Ordnung. Oh, nun, ich kann sogar einen Raum hineinlegen und es funktioniert. Was ich jedoch nicht tun kann, ist, dass ich zwei Zeichen hier hineinsetzen kann , dann wird es nicht funktionieren, da zwei Zeichen oder mehrere Zeichen nebeneinander als String bezeichnet werden. Zu einer Zeichenfolge gehört, wie gesagt, im Grunde nur eine Folge von Zeichen. Und dies ist mit normalen Anführungszeichen gekennzeichnet. Also doppeltes Anführungszeichen hier und doppeltes Anführungszeichen hier. Und wie Sie wahrscheinlich gesehen haben, hat das Ende jeder Zeile immer die Semikolons. Diese sind auch hier sehr wichtig. Und das ist irgendwie die Idee. Sie haben also Zeichen, die Singular sind, Singular-Zeichen und ein, a, eine Zeichenfolge ist eine Zeichenfolge. Das ist also irgendwie die Idee hier. Und am Ende wollte ich etwas erwähnen, das wir auch in Zukunft definitiv sehen werden , nämlich null, das Null-Schlüsselwort. Sie können also sehen, dass dieser String-Test dem Wert von null entspricht. Was nun sehr wichtig ist, ist, dass Null nicht 0 ist. Es ist buchstäblich leer, als hätte es keinen Wert. Obwohl. Dies ist manchmal am Anfang, besonders ein wenig schwer, die Unterscheidung zwischen dem, was ich nicht verstehe, ohne Wert, wirklich die Unterscheidung zwischen dem, was ich nicht verstehe, ohne Wert, zu erkennen. Was heißt das? Nun, es hat einfach keinen Wert, der sozusagen undefiniert ist. Es ist nicht vorhanden. Schreibe diesen Test wie während er hier definiert ist, er ist es nicht, er hat keinen Wert, er ist null. Und das werden wir uns auf jeden Fall ansehen und das auch in einem späteren Vortrag sehen. Es gibt also keine Sorgen, wenn das ein bisschen verwirrend ist, keine Sorge. Der Rest sollte zumindest ziemlich verständlich sein in dem Sinne, dass wir ein paar Eimer haben, darüber nachdenken können, einige Container, in denen wir einige Werte speichern können. Und je nachdem, welche Art von Wert sie sind, müssen wir verschiedene Dinge vor uns schreiben. Das ist also die allgemeine Idee, die ich hier vermitteln wollte, sind die Datentypen. Ansonsten hoffe ich, dass das für Sie nützlich war und Sie etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 4. (Java) Java-Syntax: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft Martin. Und in dieser Vorlesung werden wir uns ansehen, wie man Code liest. Oder ich nenne das auch vielleicht Java-Syntax. Die Idee ist also zuallererst, und das könnte, einige von Ihnen waren vielleicht schon so, als ob Sie eine Sekunde warten. Es hat das alles hier oben ignoriert. Was ist das? Zuallererst werden wir uns beruhigen, da wir anfangen müssen, weitere Fundamentaldaten aufzubauen , bevor wir über alles sprechen , was hier oben passiert. Was ich vorerst empfehle, ist, dass du das einfach ignorierst. Das einzige, was uns wirklich wichtig ist, dass diese frühe Klammer hier ist. Und wenn ich dann tatsächlich meinen Cursor dorthin lege, sieht man, dass dieser alles aufleuchtet. Zunächst einmal, richtig, muss jetzt zwischen diesen beiden geschweiften Klammern geschweifte Klammern geschehen. Das ist alles, was uns wichtig sein wird. uns egal, was das bedeutet. uns egal, was das ist, was all diese öffentlichen, statischen, nichtig, Haupt-, String , all das sind, überhaupt keine Sorgen. All dies werden wir in den zukünftigen Vorträgen herausfinden , die vorerst kommen werden. Das werden wir uns im Grunde genommen hier drin vorstellen. Das ist derzeit unser Hauptvorrecht , obwohl der Code zunächst von oben nach unten gelesen wird. Und das ist interessant. Nun, ja. Deshalb haben wir auch diese Zeilen hier, was sehr nützlich ist und sehr, sehr nützlich sein kann, Pfeile zu bestimmen. Wir können sagen, Hey, du hast dort ein Problem in Zeile 18. Du siehst es dir online an. 18, Da ist es. Okay. Fair genug. Das ist sehr nützlich. Und normalerweise gibt es natürlich Ausnahmen von der Regel. Aber im Allgemeinen liest man von oben nach unten. Wenn Sie jetzt zwei Schrägstriche haben, haben Sie einen einzeiligen Kommentar. Und wenn Sie diesen Schrägstrich, Stern und Stern-Schrägstrich haben , können Sie mehrzeilige Kommentare haben. Das ist also auch etwas , worauf man achten sollte. Und The, Es gibt ein paar verschiedene Dinge , die Sie tun können, wenn Sie eine Variable haben, oder? Also sind wir wieder bei Variablen. Und die haben wir natürlich gesehen, oder? Verschiedene Datentypen. Und die Variable war irgendwie wie ein Bucket oder ein Container, in dem wir einen Wert eines bestimmten Typs speichern konnten , und wir müssen dies angeben. Wenn Sie also eine Variable deklarieren, bedeutet das Deklarieren einer Variablen, dass Sie den Datentyp dieser Variablen und den Namen der Variablen deklarieren den Datentyp dieser Variablen . Und beachte noch einmal, dass alle Zeilen mit einem Semikolon enden. Das ist normal. Jede Zeile, jede Anweisung endet also mit einem Semikolon. Das ist übrigens auch sehr interessant, weil ich es theoretisch könnte, oder? Noch eins. Also in x und ich könnte das einfach machen. Nun, das funktioniert nicht ganz, weil wir alle diesen Tag 0 benutzen. Also y zum Beispiel könnte ich das auch machen. Dies funktioniert auch, weil es sich um eine einzige Anweisung handelt, daher muss es sich nicht unbedingt um jede einzelne Zeile handeln. Und das würde im Grunde auch funktionieren, obwohl es zwei Zeilen gibt. Und das ist übrigens wie eine schreckliche Sache. Das ist wie eine Formatierung , die vom Teufel ist. Mach niemals so etwas. Aber was auch immer der Fall sein mag. Es sind also nicht unbedingt immer Zeilen, aber es ist in einer einzigen Anleitung. Das ist eine Art Idee. Und Sie werden normalerweise sagen , dass jede Zeile mit einem Semikolon enden muss , ein guter Anfang ist. Im Grunde ist das ein guter Anfang. Es ist nicht immer der Fall, aber normalerweise ist es der Fall. Jetzt deklariert dies eine Variable und dann können wir einer Variablen auch einen bestimmten Wert zuweisen. Und das machen wir hier. haben wir bereits erklärt. Wenn ich also jetzt irgendwo im Äther des Programms existiere, sagen wir mal, und jetzt sagen wir, dass ich gleich 30 bin. Also haben wir dieser Variablen jetzt einen Wert zugewiesen, okay? Jetzt können wir beides gleichzeitig tun, einen Wert deklarieren und zuweisen , der dann Index gleich 10 ist. Und dies würde in diesem Fall als Initialisierung oder Initialisierung dieser Variablen bezeichnet werden . Und das ist sehr interessant. Normalerweise werfen die Leute diese Begriffe nicht unbedingt herum. Es ist nur etwas, dessen man sich ein bisschen bewusst sein sollte. Okay, ich habe diese Variable deklariert, jetzt habe ich sie hier initialisiert , ich habe diese Variable zugewiesen, also ist es nur eine Art von Begriffen hier, speichern Sie sie zumindest im Hinterkopf. Das ist der wichtigste Teil hier. Und dann besteht die Möglichkeit, Variablen oder Methoden zuzugreifen. Wir haben noch über Methoden bestimmter Variablen oder Objekte gesprochen . Wir wissen auch noch nicht genau, welche Objekte es sich handelt, aber das werden wir auch in Zukunft herausfinden. Wenn wir zum Beispiel eine Zeichenfolge haben, können wir tatsächlich die Länge der Zeichenfolge ermitteln. Wie viele Zeichen sind in dieser Zeichenfolge, indem Punkt machen und dann etwas danach. Wenn ich das also reinlege, sieht man tatsächlich, dass eine enorme Menge an Sachen auf mich geworfen wird, als Vorschlag, Wissender an der Wand, wir werden uns diese Dinge auch in einem zukünftigen Vortrag ansehen . Vorläufig wissen wir nur, dass der Punktoperator uns auch in der Lage macht , auf bestimmte Variablen oder Methoden einer anderen Variablen zuzugreifen . Das ist es, was wir vorerst aufbewahren sollten. Und dann werden wir die eigentliche Anwendung davon in einem späteren Vortrag weit, weit, für mehr Umfang und viel detaillierter sehen . Aber vorerst ist dies eine Art allgemeiner Kern darüber, wie man hier Code liest. Wie ich schon sagte, das ist natürlich nicht erschöpfend. Das ist nicht alles, aber das sind die wichtigsten Dinge die ich vorerst vermitteln wollte. Sie haben also die Idee eine Variable zu deklarieren, eine Variable zuzuweisen und dann beides gleichzeitig zu tun und dann mit dem Punktoperator auf etwas zuzugreifen. Und am wichtigsten ist, dass die Schule in diesem Jahr ignoriert werden sollte und all dies ignoriert werden sollte und alles, was nur zwischen diesen geschweiften Klammern liegt, für die Zeit wirklich beachtet werden sollte sein. Aber wie gesagt, wir werden uns da rauswagen, diese geschweiften Klammern werden gerächt, aber das wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 5. (Java) Ausgang und Eingabe: In Ordnung, willkommen zurück zur Java-Einführung für die Mikrowellenmodellierung. Und in diesem Vortrag werden wir einen Blick darauf werfen Dinge auszugeben und Dinge einzugeben. Dies bedeutet also, dass sowohl etwas an die Konsole ausgegeben als auch etwas vom Benutzer eingelesen wird. Also lagern wir im Grunde, um unsere Fähigkeit zu verbessern, tatsächlich etwas zu tun. Und das erste, was wir tun werden, ist, dass wir einfach Hello World ausgeben werden, weil dies etwas ist, das jeder Programmierer zum ersten Mal lernt. Und das werden wir tun. Also tippen wir ein System ein. Und Sie können sehen, dass einige Dinge tatsächlich für uns vorgeschlagen werden. Wir schreiben es nur dieses System mit einem großen S aus , sehr wichtig, alles Kleinbuchstaben und dann Zeile drucken, LN drucken. Und dann machen wir eine erste offene Klammer. Die schließenden Klammern sollten automatisch generiert werden. Und dann können wir einfach hierher gehen und ein Semikolon einlegen. Jetzt ist das Oregon. Uns wird es hier gut gehen. Wir wollen jetzt jedoch etwas in die Klammern stecken , und das wird ausgegeben. Jetzt müssen wir das zu einer Zeichenfolge machen. Deshalb geben wir hier die grundsätzlichen Anführungszeichen ein. Und dann sollten auch die zweiten Anführungszeichen automatisch generiert werden. Und dann können wir Hello World eintippen. So einfach ist das. Und um dieses Programm tatsächlich zu starten, gehen wir hier hoch und stellen sicher, dass das alles in Ordnung ist. Das sollte ziemlich genau gleich aussehen. Und wir klicken einfach auf diese Schaltfläche „Ausführen“. Und nach ein paar Augenblicken hast du Halloworld. Wenn dies das erste Mal war, dass Sie jemals ein Programm ausgeführt haben bei dem Sie in diesem Moment zum ersten Mal literarisch anfangen zu programmieren. Und das ist das erste Mal, dass du das durchführst. Und alles hier sagt hallo world und das besagt, dass der Prozess mit Exit-Code 0 abgeschlossen wurde. Herzlichen Glückwunsch. Ich bin nicht einmal so, als wäre ich es nicht, ich möchte hier nicht bevormunden, weil dies tatsächlich ein Schritt ist, den jeder Programmierer durchmacht. Irgendwann werden sie ein Hello World-Programm schreiben ein Hello World-Programm und sie werden so sein, als warte ich eine Sekunde, ich kann die Dinge dieses I1 anzeigen lassen. Also könnte ich zum Beispiel Hallo Studenten sagen. Und du wirst so sein, wie das nicht der Fall sein kann. schaffe ich einfach. Ja, ich kann das einfach ausführen. Wenn ich das tatsächlich richtig führe, los geht's. Lassen Sie uns das ausführen Hallo Studenten. Und jetzt heißt es Hallo Studenten, überhaupt keine Sorgen. Wie Sie sehen können, ist das eigentlich wirklich, wirklich verdammt cool und das wird noch mehr aufgeladen , denn jetzt haben wir eine ganzzahlige Variable x, die gleich 10 ist. Nun, warum geben wir dieses System nicht einfach noch einmal aus und ich kann damit anfangen, das zu schreiben. Und Sie können sehen, dass dies so ist ein ausgewählter Kurs sozusagen irgendwie hervorgehoben ist. Und wenn ich die Tabulatortaste drücke, wird sie tatsächlich automatisch abgeschlossen. Also kann ich das sehr schnell schreiben. So können Sie wie auch schon sehen, im Grunde genommen ist eine hier und dann auch eine Punktdrucklinie vorgeschlagen . Und ich kann das x einfach reinlegen und mir das ansehen. Alles funktioniert und geht manchmal sehr schnell. Du kannst dir das also so ansehen, naja, das ist so viel dafür, oder? So können Sie sehen, wie schnell das manchmal funktioniert. Keine Sorge, ich werde versuchen, dies, besonders am Anfang hier, etwas langsamer zu machen , damit jeder grundsätzlich mithalten kann. Und nun, wir können einfach das x hier einsetzen, also wird die Variable innerhalb dieser Klammern und dann der Wert ausgegeben. Das ist echt cool, oder? Wo Sie tatsächlich etwas ausgeben können , das sich in einer Variablen befindet. Und jetzt werden wir noch verrückter werden. Also noch einmal, System.Out, Zeile drucken. Sobald wir es einfach mit der Tabulatortaste abschließen können. Und jetzt kann ich so etwas sagen, wie einen Wert auszugeben. Und jetzt sieh dir das an. Ich kann über die Saite hinausgehen, oder? Machen Sie ein Plus x. keinerlei Fehler. Alles sieht gut aus. Was wird jetzt passieren? Nun, sieh dir das jetzt an. Ausgabe eines Wertes und dann der Wert der Variablen wird dort ausgegeben. Das ist also ziemlich häufig, krank, wenn ich es selbst sage. Das ist eigentlich echt cool. Eine andere Frage kommt auf, naja, wie können wir etwas vom Benutzer einlesen? Das ist ein bisschen komplizierter. Normalerweise ist das etwas, weißt du, es ist eine Art, würde ich sagen, Halbbegrenzung von Java. Es ist irgendwie ein Mist, dass es kompliziert ist, aber keine Sorge was wir schreiben werden, ist das Folgende. Wir werden Scanner schreiben und dann einfach alles platzieren, wenn hier etwas rot wird, überhaupt keine Sorgen. Wir werden ruhig bleiben. Alles ist in Ordnung. Dann entspricht Scanner in klein einem neuen. Und dann nochmals mit einem großen S mit einem Kapitalisten innerhalb der Klammern einscannt. Also werden wir Klammern System.in erstellen. Und ich beende das mit einem Semikolon. Jetzt sollten sowohl der Scanner hier als auch der Scanner hier bereit sein. Das ist vollkommen in Ordnung. Was müssen Sie tun, ist, dass Sie darauf klicken und Alt und Enter drücken , um dies hier zu importieren. Wie ich schon sagte, normalerweise wollen wir das alles ignorieren, aber wir können hier oben einen kleinen Höhepunkt erreichen. So können Sie den Import Java util Scanner sehen , dass dies im Grunde importiert wird. Das ist also überhaupt keine Sorgen. Sie können, wenn dies wichtig ist, während Sie dies schreiben, denn wenn Sie die Tabulatortaste drücken, wenn Sie den Scanner schreiben, kann dies automatisch wichtig sein , keine Sorge. nur sicher, dass dies der richtige Satz ist, naja, hier sozusagen. Und dass das so geschrieben steht. Wir werden uns keine Sorgen darüber machen, was das bedeutet. Was machen wir hier? Nichts davon, wir werden es nur wissen, okay, wir brauchen das, um etwas zu lesen. Dann werden wir System out sagen, Zeile drucken, deinen Benutzernamen eingeben, ungefähr so. Und was wir dann sagen werden, werden wir eine neue String-Variable namens input erstellen . Und wir werden das gleich dem Scanner machen. Das. Als Nächstes. Da gehst du. Okay, also muss als Nächstes, wie Sie sehen können , so geschrieben werden. Also müssen wir als nächstes einsetzen und dann Klammern öffnen und schließen. Und dann ist das in Ordnung. Das wird jetzt alles speichern, was wir hier in dieser Variablen in der Konsole eingeben werden, und dann können wir etwas damit machen. Zum Beispiel werden wir einfach sofort wieder ausgegeben. Also System out print line, dein Benutzername lautet, und dann sagen wir nur Input. Also nur für das testen wir das im Grunde. Also lasst uns das aufbewahren. Und was wir sehen sollten, ist, dass viele Schüler dazu neigen, einen gewissen Wert zu erzielen. Und Sie können sehen, dass das Programm zunächst nicht automatisch endet , weil es auf unsere Eingabe wartet. Sagen wir das einfach. Nun, mein Benutzername ist Graf Andrew. Ich drücke die Eingabetaste und dann kannst du sehen, wie dein Benutzername lautet. Das ist also ziemlich cool wie wenn man darüber nachdenkt. Und das fängt wirklich auch an, wo man damit ein bisschen herumspielen kann. Weißt du, du hast eine gewisse Unlösbarkeit mit dem PC. Sie können jetzt sozusagen tatsächlich mit dem PC sprechen, was wirklich verdammt cool ist. Dies ist also einer der ersten Schritte. Ich würde dir im Grunde nur raten, würde dir im Grunde nur raten hier ein paar Sachen auszuprobieren, einfach ein paar Sachen einzutippen paar Sachen zu tippen. Es kann wirklich Spaß machen, aber wir werden dies natürlich auch in zukünftigen Vorträgen und den kommenden Aufgaben verwenden , bei denen wir im Grunde genommen Sachen lesen und dann tun Dinge, die davon abhängen , was der Input ist. Das ist also alles ziemlich cool. Aber das ist es vorerst für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 6. (Java) Fehler und wie du sie angehst.: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir uns einige Fehler ansehen und wie Sie um Hilfe bitten können, wenn Sie diese Fehler erhalten. Zunächst einmal beginnen wir hier im Grunde wieder mit etwas vorgefertigtem Code. Aber keine Sorge. Dies steht Ihnen natürlich alles im GitHub Repository oder als Einzelperson genauso gut zur Verfügung. Und das ist sehr interessant. Zunächst einmal können wir im Grunde einige Zeilen auskommentieren, um einige Fehler zu finden. Der erste Fehler, den wir haben werden, ist Java den Symbolfehler nicht finden kann. Und das ist im Grunde genommen, wie werden Sie das sehen hey, etwas ist rot innerhalb des Codes. Zum Beispiel werde ich das Kommentieren einfach aufheben und Sie werden sehen, dass a2 31, im Grunde eine Variable, auf die wir zugreifen oder auf die wir zugreifen möchten, nicht wirklich existiert. Das wird also rot sein. Nun, das könnte etwas sein , das dir nicht aufgefallen ist. Rot wird also auch hier wie unterstrichen sein und in der Hauptklasse erscheinen und Sie werden dort ein Problemsymbol und ein Problem haben. Es wird also viele Zeichen geben, aber Sie merken das vielleicht einfach nicht, was völlig in Ordnung ist. Wenn Sie also Ihr Programm dann immer noch ausführen, werden Sie mit diesem begrüßt. Das erste, was Sie sagen müssen, ist, wenn Sie einen Fehler bekommen, keine Sorge. Ehrlich gesagt mag es sehr entmutigend erscheinen, einen Fehler am Anfang zu bekommen, und Sie werden vielleicht nervös. Sagen wir, sei überhaupt nicht nervös. Fehler zu bekommen ist tatsächlich etwas, was zu erwarten ist, wenn Sie programmieren, dass erwarten ist, wenn Sie beim ersten Mal etwas funktioniert , tatsächlich sehr misstrauisch, weil es sehr selten ist dass wenn Sie an einem Code arbeiten, dass er beim ersten Ausführen funktioniert. Also bitte, zuerst, blieb immer ruhig, wenn du einen Fehler bekommst. Es gibt nichts dergleichen. Keine Schande darüber auch immer. Sie haben nichts falsch gemacht und können es immer reparieren. Dieser Pfeil, in diesem Fall, heißt es, wie gesagt, Java kann kein Symbol finden. Es sagt uns tatsächlich, was die Variable hier ist und wo sie sich befindet. Und wenn man sich hier ganz oben anschaut, sieht man diesen 1128 tatsächlich. Und das bedeutet eigentlich, dass dies in Zeile 28 ist, bei Zeichen oder einer anderen Zeile 11, Zeichen 2008. Das ist also wirklich verdammt cool. So können wir sofort herausfinden wo dieser Pfeil ist und können sagen: Okay, ich habe dort einen Tippfehler gemacht oder ich habe vergessen, eine Variable zu erstellen, so etwas. Das wäre dieser Pfeil genau hier. Die zweite Sache, auf die Sie irgendwann stoßen könnten, ist Ausnahme in Thread main, Java, Lang, NullPointerException. Das bedeutet also, dass etwas null ist, was bedeutet, dass es keinen Wert hat. Zum Beispiel haben wir genau hier eine String-Variable. Und wir setzen den Wert auf null, dem ich Ihnen bereits erzählt , bedeutet, dass er keinen Wert hat. Es existiert nicht so ziemlich. Wenn wir jetzt versuchen würden, die Länge zu nennen, das natürlich keinen Sinn, denn die Länge des Nichts ist auch nichts so, als ob man nicht eine Länge für etwas nennen kann , das nicht existiert was bedeutet, dass wir eine NullPointerException bekommen werden. Das sieht also irgendwie so aus. Und das würde Stack-Trace genannt werden. Also ein Stack-Trace wie Laien, nur im Allgemeinen. Sie wissen also, worum es geht, ist im Grunde genommen, welcher Code bis zu diesem Zeitpunkt aufgerufen wurde, bis der Fehler aufgetreten ist. Und Sie können sehen , dass dies bei Cotton Domain Main und dann 16 passiert ist . Wir können also tatsächlich darauf klicken und es gibt uns die genaue Zeile und manchmal sogar den genauen Code, wo dies passiert ist. Das ist also die NullPointerException. Dies passiert routinemäßig auch bei fortgeschrittenen Entwicklern, dass man manchmal vergisst, etwas zu initialisieren. Manchmal ruft man einfach etwas in der falschen Reihenfolge auf, man vergisst, eine Methode aufzurufen , die allzu oft passiert. Wieder einmal nichts, worüber man sich Sorgen machen müsste, aber das ist die Null-Ausnahme. Sie können dies normalerweise beheben indem Sie eine Variable ordnungsgemäß zuweisen. Und dann das Letzte, was nicht wirklich eine Ausnahme ist, aber das haben wir auch hier gesehen . Dies ist also, dass dieser Prozess mit dem Exitcode eins abgeschlossen wurde, oder manchmal könnte es auch sagen, dass er mit dem Exit-Wert eins ungleich Null abgeschlossen ist, etwa so. Oder es könnte auch etwas anderes sein als 1, 13042, was auch immer. Es könnte also eine Zahl sein, die nicht 0 ist. Das ist das Wichtigste. Das bedeutet, dass es einen Fehler gibt. Du solltest niemals nur das posten. Wenn Sie nur posten, hey, habe ich einen Pfeil bekommen und Sie haben den Post-Prozess mit Exit-Codes 0 abgeschlossen oder mit dem Exit-Wert ungleich Null abgeschlossen. Jeder weiß, dass du Java nicht kennst. Das ist natürlich kein Problem, denn du musst irgendwo anfangen. Aber das nur wenn dir jemand helfen will, oder? Also, wenn du zum Beispiel ins Q und a gehst und du meinst, Hey, mein weißt du, ich habe einen Pfeil und es sagt das. Wenn Sie dies veröffentlichen, werde ich zunächst wissen, dass Sie diese Java-Einführung wahrscheinlich nicht gesehen haben, was natürlich Ihre eigene Entscheidung findet. Was ich aber auch bemerken werde, dass dies nicht der Fall ist, gibt mir das überhaupt keinen Wert. Dies sagt mir nur, dass es einen Fehler gegeben hat. Das war's. Das ist alles, was das sagt. Wenn der Exit-Wert nicht 0 ist , bedeutet das nur, dass irgendwo ein Fehler aufgetreten ist. Ich weiß nicht, was der Fehler ist. Ich weiß nicht, was die Ausnahme war. Ich weiß nichts. Das heißt, dass ich tatsächlich noch einmal fragen muss. Es kann nur ein bisschen frustrierend denn dann musst du noch einmal fragen, Hey, kannst du mir zeigen, dass das Fehlerprotokoll dort etwas ausgegeben wird. Leg den Pfeil auch da rein. Normalerweise, wenn Sie einen Fehler haben, ist es besser, zu viele Informationen zu geben , anstatt zu wenig. Das ist normalerweise der Fall. Es ist nicht immer der Fall. Lassen Sie nicht einfach 80 verschiedene Dateien auf jemanden fallen , der Ihnen helfen möchte oder in den Fragen und Antworten, so etwas. Aber normalerweise solltest du so etwas haben, oder? Eine Ausnahme und ein Fehler, Art Log etwas, das eine bestimmte Sache wie diese Ausnahme aussagt. Du hast vielleicht irgendwo eine Ausnahme , so etwas. Das sollte also wie das sein , worauf du achten willst. Das ist nur etwas, das ich dir geben wollte, was sehr wichtig sein kann. Gummi das ist es schon. Das ist also eine Art, nur ein allgemeiner Überblick über diese Fehler. Und natürlich zögern Sie nicht zu fragen, ob es Pfeile gibt. Wenn du unterwegs Pfeile bekommst und um Hilfe bittest, ist das völlig in Ordnung. Ich wollte nur erwähnen, besonders diesem Jahr, weil es frustrierend sein kann, nicht nur manchmal für mich, weil ich dann eine Folgefrage stellen muss. Und je nachdem, wie lange das funktionieren wird, und vielleicht suchst du einfach danach. Und eine andere Antwort kam nicht in 20 Minuten, also musst du etwas anderes machen und dann dauert es lange. Das kann also manchmal ein bisschen frustrierend sein. Nun, was auch immer der Fall sein mag, das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 7. (Java) Integers, Arithmetische und Mathematische Methoden: Oder ich komme hier zur Java-Einführung für die modernen Minecraft-Kerne zurück. Und in dieser Vorlesung werden wir uns ganze Zahlen ansehen. Wir werden uns mit Mathematik befassen, und wir werden uns arithmetische Operatoren ansehen. Jetzt sind das alles sehr große Worte. Ich bin mir jedoch sicher , dass wir es schaffen werden. Das erste, was wir tun werden, ist, dass wir zwei ganze Zahlen initialisieren werden. Dies wird int x gleich 100 und int y gleich 20 sein. Bis zu diesem Zeitpunkt sollte alles ziemlich klar sein. Insgesamt sind dies nur zwei Variablen, x und y. Sie haben den Wert 120. Sie sind beide Ganzzahlen. Also haben wir mit dem Board angefangen int. Das sollte also ziemlich einfach sein. Und wir werden auch eine ganze Zahl haben, die als Ergebnis bezeichnet wird. Jetzt werden wir diese Variable einfach deklarieren , ohne ihr tatsächlich einen Wert zuzuweisen, da wir dies auf folgende Weise verwenden werden. Das erste , was wir uns ansehen werden, ist der Zusatz. Das sind also im Grunde arithmetische Operatoren, Addition, Subtraktion, Multiplikation , Division , und dann gibt es einen fünften Typ, den wir uns in nur einem Moment ansehen werden . Das Ergebnis hier wird natürlich x plus y sein. Das sollte also nicht zu verrückt sein. Wir werden einfach in x hier drin. Und dieser Operator, x in von links. A, eine Ganzzahl könnte auch ein Float sein. Das würde also auch funktionieren. Also beide, beide, wenn X und Y, wenn beide Floats auch völlig funktionieren würden. Nun müsste das Ergebnis natürlich auch über Wasser sein. Sehr wichtig. Denk darüber nach. Wir werden auch ein Beispiel in einer zukünftigen Vorlesung davon sehen . Als ob du anfängst, diese zu mischen, aber das sollte ziemlich vernünftig sein. Wir setzen einfach das Plus-Symbol ein und dann fügen wir im Grunde x plus y hinzu. Also lasst uns das System ausmachen, Zeile drucken und dann das Ergebnis drucken, so dass wir sehen werden, nun, das sollte ein 120 sein. Mal sehen. Und natürlich ist es eine 120. Alles funktioniert einwandfrei. Wir können natürlich auch eine Subtraktion benutzen, oder? Und was ich tun werde, ist, dass ich das alles in Ordnung lasse? Also ziehe ich einfach meine Maus hierher und drücke dann C, um das alles für meine Maus hier zu kopieren, steuere V, um es einzufügen. Normalerweise mache ich so etwas, nur damit es ein bisschen einfacher ist, weil dies in diesem Fall natürlich sehr dupliziert ist . Jetzt zur Subtraktion hast du es wahrscheinlich erraten. Wir müssen nur ein Minuszeichen hier einsetzen. Und dann subtrahieren wir plötzlich y von x, was bedeutet, dass dies 80 sein sollte. Und natürlich ist es AD völlig in Ordnung. Und lassen Sie uns diese tatsächlich komplett abkopieren. Ich wähle dieses Steuerelement wieder C und dann Control V genau hier. Und dann werfen wir uns auch einen Blick auf Multiplikation und natürlich auch die Vision. Multiplikation wird also genau hier ein Stern sein. Und dann ist Division nur ein Schrägstrich. Das sollte also ziemlich vernünftig sein, nichts um zu verrückt zu sein. Insgesamt. sind nur die normalen Wege, wie Sie Dinge im Grunde gut berechnen würden. Das ist also so ziemlich genau das. Lasst uns einfach das C 2005 durchgehen. Das ist eigentlich alles in Ordnung. Und jetzt stellt sich die Frage, nun, was ist der fünfte Typ? Oder der fünfte Typ ist eigentlich der Rest. Dies wird manchmal auch als Modulo-Operator bezeichnet. Das ist in der tatsächlichen mathematischen Hinsicht. Aber für uns ist es der Restbetreiber und das sieht aus wie ein Prozentzeichen. So könnten wir zum Beispiel sagen, 20 verbleibende zwei, was natürlich 0 wäre. Wenn wir das also noch einmal kopieren wollen, Control C, Control V, Dies wird 0 sein, denn wenn wir 20 durch zwei teilen , ist kein Rest mehr übrig. Dies ist also eine sehr gute Möglichkeit , einen Blick darauf zu werfen ob eine bestimmte Zahl gerade oder ungerade ist oder nicht. Also das ist eigentlich ziemlich cool. Und das sind die fünf arithmetischen Operatoren. Ein ziemlich unkompliziertes alles in Betracht gezogen. Wie oft werden sie benutzt? Nun, ich meine, du wirst etwas Mathematik in der gesamten Programmiersache benutzen . Ob beim Modellieren oder in der Programmierung im Allgemeinen, natürlich ist etwas Mathematik damit verbunden. Diese Dinge sind also definitiv wichtig , die Sie vorher gesehen haben sollten. Und dann wird das Letzte, was wir uns hier ansehen werden, die mathematischen Methoden sein. Zuallererst werden wir uns keine Sorgen um zu viele Probleme machen. Nun, es ist eine Methode. Nun, das kann man sich als eine bestimmte Funktion vorstellen. Also rufen wir zum Beispiel diese Mathematik an. Sie können also sehen, ob ich Mathematik eintippe, Sie können Java Lang sehen und das schlägt es vor. Und wenn ich dann einen Punkt einsetze, habe ich eine ganze Reihe von Dingen vorgeschlagen, die ich anrufen kann. Und es gibt Dinge, zum Beispiel die Max-Methode genau hier, wo absolut, richtig. Also kann ich Max hier anrufen und ich kann x, y sagen. Und dann wird es mir den maximalen Wert von jedem von diesen zurückgeben , was natürlich in diesem Fall eine 100 sein wird. Aber wir sollten am Ende hier bei einem 100 Pop-Out sehen . Eigentlich ziemlich einfach. Und dann lassen Sie uns dies einfach aus Gründen der Argumente oder Control D duplizieren , um dies zu duplizieren. Und lassen Sie uns zum Beispiel den absoluten Wert von minus 500 abrufen, was 500 wäre. In Mathe steht es wie eine Mathematik so geschrieben. Vielleicht hast du sozusagen so etwas schon mal mit diesen wie absoluten Zeilen gesehen . Und das wird dann zu 500, weil uns das Schild davor nicht wirklich wichtig ist. Also werden wir auch 500 sehen. Und wie ich schon sagte, gibt es hier ein paar mehr Sachen, wie Sie sehen können, dieses Siegel. Sie können also im Grunde aufrunden, runden Sie ab. Du kannst den Kosinus kriegen, du bekommst ein paar Exponenten. So können Sie etwas an die Macht von e Logarithmus 10 setzen. Hier gibt es ein paar verrückte Sachen, zufällig runden. Selbst nach dem Zufallsprinzip gibt es sogar Konstanten wie e und Pi. Es gibt also ein Haufen Sachen hier drin. Normalerweise ist es sehr selten , dass Sie es verwenden müssen. Viele von ihnen sind besonders so etwas wie die Max- und die Min-Methode und die absolute Methode manchmal ziemlich nützlich. Und es ist gut, das schon einmal gesehen zu haben, damit es Ihnen nicht gefällt, wenn Sie darauf stoßen, wenn Sie sich einige GitHub-Repositories anderer Modi ansehen oder einfach nur kalt von anderen Leuten sind. Und sie benutzen so etwas, dann wirst du nicht ganz unvorbereitet erwischt, oder? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 8. (Java) Assignment: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir uns mit Zuordnungsoperatoren befassen. Jetzt haben wir den normalen Zuweisungsoperator gesehen, der das gleiche Symbol ist. Und dafür gibt es eigentlich eine sehr interessante Sache, denn das ist eigentlich eine Art seitiger Operator, oder? Also weisen wir den richtigen Wert für die linke Variable zu. Also konnten wir nicht einfach etwas wie zum Beispiel 30 gleich y eingeben . Das funktioniert nicht, oder? müssen wir es tatsächlich in diesem Fall müssen wir es tatsächlich in einer bestimmten Reihenfolge haben. Nun so gut, wird das die Vorlesung sein? Ist es das? Nein, natürlich nicht. Es gibt einige spezifische, sehr interessante Zuweisungsoperatoren, die, naja, Sie wissen, dass die arithmetischen Operatoren irgendwie verstehen müssen . Aber was wir tun können, ist natürlich, dass wir x sagen können, zum Beispiel gleich x plus y, oder? Also fügen wir in diesem Fall nur y zu x hinzu. Und das dann wieder in die Variable x zu schreiben , funktioniert das total. Das wird kein Pfeil sein, das ist völlig in Ordnung. Wir könnten dies jedoch auch auf etwas schönere Weise schreiben , und das wird x plus gleich y sein. Das funktioniert also auch hier. Und das ist eigentlich echt cool. Das ist also, wo das erstaunlich ist. Oh, das ist sehr einfacher als das. Und normalerweise ist es auch ein bisschen einfacher zu verstehen. Wenn dich das wirklich mehr verwirrt als das, ist das völlig in Ordnung. Sie müssen sich jedoch die Zuweisungsoperatoren ansehen, insbesondere wenn Sie sich beispielsweise den Code anderer Personen ansehen, nur diese verwenden und nicht so lange Art, es zu schreiben , damit Sie sich dessen bewusst sein müssen. Auch wenn Sie einige Tools, über die wir hier sprechen, nicht verwenden , handelt es sich im Grunde genommen um Tools, Programmrechte. Du musst immer noch etwas über sie wissen , um Code zu lesen, den andere Leute vielleicht haben, oder? Also lasst uns einfach die Variable x hier ausdrucken die Variable x hier und dann lasst uns auch den Rest durchgehen, oder? Also wählen wir das aus, kopieren es und fügen wir es dann einfach fünfmal ein. Was kann natürlich ein Minuss gleich machen. Natürlich können wir auch mal gleich machen. Wir können natürlich auch wie Ned tun, wie dividieren gleich. Und am Ende können wir sogar Restgleich machen. Und das ich noch nie so gesehen habe, ist wirklich etwas, das wahrscheinlich ein sehr, sehr spezifischer Moment ist, in dem das ist, kalt sein muss. Aber mal sehen, ob das funktioniert. Natürlich funktioniert es völlig gut, mit einem 140 zu beginnen , weil wir hier 20 hinzugefügt haben, oder? Also fangen wir hier mit 120 an. Ein adäquate ist wieder ein 140, und dann subtrahieren ist es 120 und dann mal 20 ist 2400 und dann geteilt durch 20 ist wieder 100120, und dann ist es natürlich 0 weil wir eine teilen können 120 von Wendy perfekt, was natürlich genau genommen werden würde. Das ist sehr gut, sehr gut gemacht. Also wenn ich jetzt nur noch eins hinzufügen wollte, oder? Vielleicht möchte ich einfach so etwas machen. X ist gleich x plus 1, oder? Aber ich möchte es nur um eins hinzufügen. Dies würde als Inkrementieren oder ein Inkrement x um eins bezeichnet werden. Nun, ich meine, natürlich könnten wir das auch einfach schreiben, oder? Wir können das einfach machen. Ja, das würde natürlich auch ganz gut funktionieren. Aber es gibt noch einen einfacheren Weg, dies zu tun. Und das wird x plus plus sein. Sieh dir das an. Das ist ziemlich verrückt. Also gehen wir von hier nach hier, aber so verrückt kann das sein. Und drucken wir das einfach aus. Und dann funktioniert natürlich auch x minus minus. Das würde es erniedrigen. Also das ist, lasst es uns einfach ein bisschen hier behalten. Thrombozyten, also inkrementieren, erhöhen, und dann würde dies auch erniedrigend sein. Im Grunde fügen wir also nur einen hinzu oder subtrahieren einen. Werfen wir einfach einen Blick darauf. Wir fangen bei 0 gleich hier an. Eins hinzufügen, zwei hinzufügen ist zwei oder ein weiteres hinzufügen, rechts ist 23. Und dann drucken wir es aus und dekrementieren es dann, und dann sind wir wieder bei 2. Das ist also eine Art allgemeine Idee hier. Dies sind die Zuweisungsbetreiber und dann auch das Inkrementieren und Dekrementieren von Europa, was auch irgendwie wichtig ist. Aber diese beiden werden viel sehen, besonders diese X plus und x minus minus. sind Dinge, die definitiv sehr oft in bestimmten Kapazitäten verwendet werden , sagen wir innerhalb des Codes. Aber das wäre schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und er hat das Neue gelernt. Und wir sehen uns in der nächsten Vorlesung. Also ja. 9. (Java) Booleschen und Vergleichsoperatoren: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir uns einen Booleaner und Vergleichsoperatoren ansehen . letzte Mal haben wir uns ganze Zahlen angeschaut, und jetzt werden wir uns Booleans ansehen. Die Booleaner im Allgemeinen, wir uns aus der zweiten Vorlesung erinnern können, sind im Grunde ein Datentyp, der entweder einen wahren oder einen falschen speichern kann . Zum Beispiel werden wir hier einen neuen booleschen Wert erstellen. Zum Beispiel mögen die Vorträge, Hauptvorträge, die richtig geschrieben sind, und das stimmt natürlich, Hoffen wir es. Und lassen Sie uns auch einen booleschen Wert machen , der zum Beispiel eine Frage gestellt wird. Und lassen Sie uns das vorerst einfach falsch machen, vielleicht wird das später wahr, aber vorerst ist das falsch. Also erinnern wir uns an Booleans, wie ich schon sagte, ein wahres oder falsches, 1 oder 0, das ist die Idee. Und wir können das sogar ausdrucken, oder? Zum Beispiel können wir sagen, dass Sie diese Vorträge haben oder Ihnen gefallen. Sagen wir, Ihnen gefällt diese Vorträge. Wer mag diese Vorträge? Und dann kann ich Control D drücken, um dies zu duplizieren. Und zum Beispiel können Sie sagen, dass Sie in den Fragen und Antworten eine Frage gestellt haben , also könnte ich dies zum Beispiel sagen. Und anstatt die Vorträge zu mögen, kann ich dann Fragen stellen. Wenn ich das tun würde, dann ist das, was wir sehen werden , einfach wahr und falsch, im Grunde genau wie eine String-Ausgabe, sie sind völlig in Ordnung. Okay, das ist also die Art von Booleans, oder? Wahr oder falsch, Fair genug. Aber was sind jetzt Vergleichsoperatoren? Nun, denken wir über diese Vergleichsoperatoren nach, oder? Nun, es gibt ein paar von ihnen. Und die Idee von Vergleichsoperatoren, dass wir natürlich zwei verschiedene Werte miteinander vergleichen werden. Und das wird einen booleschen Wert zurückgeben, denn wenn wir zum Beispiel etwas vergleichen , könnten wir größer als richtig sagen? Also haben wir etwas, das größer ist als etwas anderes, dann wird es natürlich entweder wahr oder falsch sein, oder? Wenn ich sagen will, hey, habe ich einen Apfel, der so groß ist wie ein Baseball. Okay, fair genug. Und dann habe ich einen Apfel wie ein Football. Nun, offensichtlich ist die Größe eines Fußballs größer, also wird es darunter wie ein wahres geben. Es gibt auch ein größeres oder gleichwertiges. Es gibt auch Gleiche, es gibt keine Gleichen. Sie sind kleiner als und kleiner oder gleich. Das sind also die Vergleichsoperatoren. Wir werden uns nicht jeden einzelnen von ihnen einzeln ansehen . Und wir werden uns ein bisschen anschauen. Das eigentliche Beispiel wir uns ansehen werden, ist zum Beispiel, dass Sie eine Punktzahl haben oder vielleicht eine Prüfung abgelegt haben, oder? Du hast eine Prüfung geschrieben und dein Ergebnis ist 98. Nun, vielen Dank. Das ist eine sehr gute Punktzahl und es ist tatsächlich dein Punkte-Tag, du gehst rein. Dann können Sie sagen, nun, wir könnten in einem Booleschen Wert schreiben , der als vergangene Klasse bezeichnet wird, oder? Und Sie bestehen diese Klasse wann genau. Wir können darüber nachdenken. Nun, natürlich brauchst du mindestens 50 Punkte. Sagen wir einfach, um der Argumentation willen, Sie 50 Punkte benötigen, um diese Klasse zu bestehen. Nun, es ist sehr einfach. Sie können einfach sagen, dass Ihre Punktzahl größer oder gleich sein muss, 50. Ergibt das einen Sinn? Das sollte also intuitiv sinnvoll sein. Alles in Betracht gezogen ist , dass dies in unserem Fall natürlich der Fall wäre , aber wenn sich Ihre Punktzahl ändert, ändert sich die Antwort hier, oder? Denn sobald das kein Bein mehr ist, wenn es 49 ist, besteht man die Klasse nicht mehr, oder? Das sollte also ziemlich selbsterklärend betrachtet werden. Also können wir das sogar einfach ausdrucken. Also einfach System raus, drucke Zeile, sagen wir zum Beispiel, du hast gefragt, lass uns das einfach so einsetzen und dann den Unterricht bestehen, oder? Also werden wir ein True bekommen, wenn es wahr ist und falsch, wenn es nicht der Fall ist. Und wir können sogar so etwas sagen wie mit deinem Punktestand plus Punkten, so etwas. Wir können das sagen. Und wenn ich das jetzt renne und sehe , dass du mit 98 Punkten wahr bleibst. Wenn ich das auf 49 setzen würde, was natürlich in diesem Fall jetzt nicht mehr stimmt. Keine 49 ist also nicht mehr größer oder gleich 50. Nun, das wird jetzt ein Falsch zurückgeben . Du wirst sehen, da gehst du. Sie haben mit 49 Punkten falsch bestanden. Lassen Sie uns das als DOE 1998 beibehalten. Und lasst uns auch darüber nachdenken. Also lasst uns hier eine andere Idee nehmen. Also können wir auch einen booleschen Wert haben, zum Beispiel, der perfekte Punktzahl hat, oder? Und das könnte dann gleich sein, dass Ihre Punktzahl gleich 100 ist. Dies ist der Equals-Operator. Sehr wichtig, dass es sich um zwei Gleichheitszeichen handelt. Und das ist etwas , bei dem Menschen manchmal überhaupt bei Wissenden verwirrt werden. Ein Gleichheitszeichen ist der Zuweisungsoperator, bei dem wir einer Variablen einen Wert zuweisen. Und zwei Gleichheitszeichen der Vergleichsoperator, bei dem wir vergleichen, ob dieser Wert dieser Variablen hier dem Wert dieser Variablen entspricht oder nicht . Und das ist sehr wichtig. Und hier ist das natürlich falsch. Ab natürlich 98 nicht gleich 100. Das sollte insgesamt auch ziemlich einfach sein. Und wir können sogar so etwas tun , das sehr interessant ist. Wir können sogar etwas negieren. Dies ist also im Grunde genommen das Deklamationszeichen hier. Wir können auch etwas sagen wie: hey, wir bestehen die Klasse hier, und dann können wir einen anderen booleschen Wert machen als fehlgeschlagene Klasse bezeichnet wird, uns im Stich gelassen hat. Und das kann gleich sein, naja, nicht der Klasse zu bestehen, oder? Also negieren wir einfach, ob wir die Klasse bestehen oder nicht. Und das ist natürlich sinnvoll. Wenn das also etwas verwirrend ist, schreiben Sie es aus, als ob Sie tatsächlich einen Schreibertext schreiben. Wenn die fehlgeschlagene Klasse wahr ist , ist die Klasse natürlich falsch. Diese müssen also immer gegenübergestellt sein. Also können wir das immer einfach negieren. Dies könnte auch eine Idee sein. Das negierende Jahr ist natürlich, was im Grunde genommen negiert, was bedeutet, dass die beiden das Ausrufezeichen in den Vordergrund stellen, bedeutet, dass wahr zu falsch wird. Und wenn es dann falsch ist, wird es wahr. Es gibt dann wahr zurück, oder? Das ist irgendwie die Idee. Vergleichsoperatoren. kann man sich auch denken. Sie geben einen Vergleichsoperator zurück. Du kannst dir das so vorstellen. Als wir eine Plusbewertung hatten, nahmen wir links eine Ganzzahl plus eine Ganzzahl auf der rechten Seite ein und geben eine ganze Zahl zurück. Auch hier ist es absolut intuitiv sinnvoll. Du denkst nicht einmal darüber nach, wenn du es bist, wenn du an Mathematik arbeitest und Sachen berechnest. Wenn Sie 5 plus 5 machen, wird es natürlich auf 10 zurückgeben, was eine Zahl ist. Nun, der Vergleichsoperator ist ziemlich derselbe. Sie geben hier zum Beispiel einfach eine Ganzzahl und eine Ganzzahl ein und geben einen Booleschen Wert zurück. Das ist alles, was es dazu gibt. Aber das einzige , was sich wirklich ändert , ist sozusagen der Rückgabetyp. Denken Sie darüber nach und das war's, etwas, das Sie hier beachten sollten. Und das wären die Vergleichsoperatoren. Ich empfehle dringend, damit einfach ein bisschen herumzuspielen . Es sollte nicht zu verrückt sein. Es ist wirklich nur zwei verschiedene Werte miteinander zu vergleichen . Und das wird dann als boolescher Wert ausgedrückt, was tatsächlich sinnvoll sein sollte, wenn es in diesem Fall immer nur eine richtige Antwort gibt , oder? Entweder ist die Punktzahl größer oder gleich 150 oder nicht, impliziert das. Aber was auch immer der Fall sein mag, das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Und wir sehen uns in der nächsten Vorlesung. Also ja. 10. (Java) Boolescher und Logical Operatoren: In Ordnung, willkommen zurück zur Java-Einführung für die Mikrowellenmodellierung. Und in dieser Vorlesung werden wir uns logischen Operatoren befassen. Also habe ich hier ein paar Booleaner vorbereitet, Vorträge angeschaut, Fragen gestellt, Aufgaben abgeschlossen und die Überprüfung aufgenommen. Diese hängen natürlich mit einem kursähnlichen Szenario zusammen, sagen wir mal. Und wir werfen jetzt einen Blick auf die logischen Operatoren. Und es gibt drei von ihnen, die wir uns im Grunde ansehen werden. Es gibt das Ende, es gibt das ODER und das nicht. Also haben wir vorher gesehen , wo wir etwas negieren konnten und das UND, und das ODER ist auch sehr interessant. Die logischen Operatoren nehmen also zwei Booleans auf und geben dir einen neuen booleschen Wert. Zum Beispiel, für das Ende der Booleaner muss man es geben, muss wahr sein, und dann kehrt es wahr zurück. Ansonsten gibt es false zurück. Und für das, oder einer von ihnen muss wahr sein und dann gibt es ein wahres zurück. Dies gibt also nur false zurück, wenn beide falsch sind. So könntest du dir das zum Beispiel vorstellen. Also hat Boolean den Kurs beendet, oder? Wenn Sie also den Kurs beenden möchten, müssen Sie sich die Vorträge angeschaut und die Aufgaben abgeschlossen haben . Das sollte Sinn ergeben. Das ist ein gutes konkretes Beispiel hier. Und dann könnte man auch sagen, naja, ein Fan, oder? wir also, dass es Fan ist, oder? Also würde jemand, der ein Fan ist, den Kurs beenden. So fertige Kerne und Eva Review, das sollte auch insgesamt sinnvoll sein. Und jetzt hat sich jemand, der vielleicht lernt, wie vielleicht viel lernt , die Vorlesungen angeschaut oder die Frage gestellt. Das ist also etwas , das lernt, oder? Entweder sehen Sie sich die Vorträge an oder stellen Sie eine Frage. Also könnte jeder von ihnen wahr sein und dann wäre das Lernen auch wahr. Lasst uns eine Art allgemeine Idee hier haben. Und es gibt noch eine Sache, die ich habe und das wird genau hier sein . Dies ist also nur ein allgemeiner Überblick was im Grunde passiert. Sie können dies auch als Spickzettel herunterladen. Dies ist in den Ressourcen verfügbar. Und die Idee hier ist, dass es Ihnen nur zeigt, was die verschiedenen Arten von Ergebnissen sind, das sind im Grunde die Ergebnisse. Sie haben also a und B. Und je nachdem, was sie sind, ist dies die Rückkehr, die gegeben wird, wie ich schon sagte, beide müssen wahr sein, damit die Antworten ein wahres zurückgeben. Und hier, wenn einer von ihnen wahr ist, dann gibt dies ein Wahr zurück. Ansonsten ist es falsch. Man kann sich auch daran denken, ein oder B schreiben, es ist irgendwie wirklich in die Sprache eingebrannt wenn man über die Negation nachdenkt, wie ich schon sagte, wir haben bereits darüber gesprochen, dass das irgendwie allgemein ist passen Sie an, wenn es um die logischen Operatoren geht. Es gibt natürlich auch ein bisschen mehr da darüber, ist das wirklich ein guter Anfang dafür? Und dann ist natürlich das wahre, woran Sie denken können dass Sie, wenn Sie einen von denen haben, die einen booleschen Wert zurückgeben, diese natürlich miteinander verketten können. So können Sie dann zum Beispiel auch End-Frage-Frage sagen , oder? Sie können also sehen, dass wir jetzt den UND-Operator wieder verwenden können, da dies natürlich einen booleschen Wert zurückgibt . Das funktioniert also ziemlich ähnlich wie die arithmetischen Operatoren. Natürlich kannst du auch plus plus plus plus. Sie können 5 plus 8 plus 7 plus 9 plus 15 haben. Das funktioniert vollkommen gut. In ähnlicher Weise können Sie auch die logischen Operatoren miteinander verketten , oder? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues und wir sehen uns in der nächsten Vorlesung. Also ja. 11. (Java) Wenn und andere Anweisungen: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir uns die If- und sonste-Aussagen ansehen. In dieser Vorlesung werden wir im Grunde genommen anfangen, wirklich etwas mit dem Computer zu interagieren. Viele der vorherigen Vorträge waren sehr theoretisch, zeigen irgendwie einige Konzepte. Aber in dieser Vorlesung werden wir sehr gut mit dem Computer interagieren. Fangen wir einfach damit an, zwei ganze Zahlen zu erstellen. Prüfung 1, Sagen wir zum Beispiel 65 und Prüfung 2, die vorerst 51 sein wird. Und wir könnten uns vorstellen , dass wir sagen, dass wir ein Programm schreiben müssen , das diese Werte dieser beiden Prüfungen bewertet. Und im Grunde sagt: Hey, du hast die Prüfung 1 nicht bestanden oder hast die Prüfung 2 bestanden. Und am Ende, vielleicht, wenn Leute beide Prüfungen bestanden haben, wird vielleicht etwas ausgedruckt Wie du die Klasse bestanden hast oder so ähnlich. Wie können wir das machen? Nun, was wir tun können, ist, dass wir eine if-Erklärung abgeben können. Und dafür gefällt uns buchstäblich genau richtig wenn, genau hier. Und dann können wir folgendes tun. Wir können Klammern einsetzen. Und wenn Sie es in eine offene Klammer setzen, sollten die schließenden Klammern automatisch generiert werden. Und innerhalb dieser Klammern müssen wir einen booleschen Wert angeben. Wir erinnern uns also an die beiden vorherigen Vorträge in denen wir Vergleichsoperatoren hatten. Was wir also sagen können, ist, dass wir, wenn Prüfung 1 größer oder gleich 50 ist, wissen wir , dass wir die Prüfung bestanden haben. Und dann legen wir versteckt hier ist nach den schließenden Klammern, wir setzen eine geschweifte Klammer ein. Und wenn ich die offene geschweifte Klammer einlege und die Eingabetaste drücke, die schließende geschweifte Klammer sollte die schließende geschweifte Klammer automatisch für Sie generiert werden. Und was wir jetzt tun können, ist, dass wir etwas anderes schreiben können. Also können wir System out sagen, Zeile drucken. Und dann hast du zum Beispiel eine frühere Prüfung. Obwohl dies der gesamte Code zwischen diesen beiden geschweiften Klammern hier passieren wird, wenn sich alles in den if-Anweisungen befindet . Also innerhalb dieser Klammern, stimmt. Wenn das stimmt, wird dies passieren. Das ist eigentlich ziemlich cool. Und dann können wir das irgendwie aufladen, indem wir hier am Ende ein anderes hinzufügen hier am Ende ein anderes und auch eine geschweifte Klammer einsetzen. Und noch einmal setzen wir die offene geschweifte Klammer bei jedem Drücken ein Enter eine schließende geschweifte Klammer sollte hier automatisch generieren. Und dann können wir zum Beispiel einfach dieses Steuerelement C Control V auswählen , um es einzufügen. Und dann können wir sagen, dass Sie Prüfung 1 nicht bestanden haben. Also in diesem Jahr passiert direkt vom Anderen tatsächlich , wenn das falsch ist. Das funktioniert eigentlich sehr gut für uns. Wir können dies also grundsätzlich nutzen, um einen Blick darauf zu werfen, ob Prüfung 1 bestanden oder fehlgeschlagen wurde oder nicht . Lassen Sie uns das also tatsächlich ausführen und wir sollten eine U nach der Prüfung bekommen. Und natürlich bekommen wir das, da in diesem Fall Prüfung 1 größer als, größer oder gleich als 50 ist . Das heißt also. Das ist also ziemlich cool. Jetzt können wir im Grunde genau das Gleiche für die zweite Prüfung machen. Kopieren wir einfach all das ausgewählte Control C, Control V. Und dann werden wir hier Exam 2 sagen. Hier sagen wir Prüfung 2, und hier werden wir auch Exam 2 sagen. Das ist eigentlich ziemlich cool. Alles in Betracht gezogen. Und dann stellt sich die Frage, nun, ich meine, jetzt wollen wir ausgeben, wenn Sie beide Prüfungen tatsächlich bestanden haben. Wie können wir das machen? Nun, jetzt werden wir ziemlich verrückt. Die letzten beiden Vorträge werden also sozusagen etwas kohärenter erscheinen . Wir werden Prüfung 2 sagen. Prüfung 1 ist größer oder gleich 50, oder? Das besteht also immer noch diese End Exam 2. Also, richtig, diese Prüfung 2 hier ist größer oder gleich 50. Und wenn dies dann, wenn beides stimmt, dann wissen wir, dass Sie die Klasse bestanden haben, damit wir das System hier draußen kopieren können und dann können wir einfach sagen, dass Sie bestanden haben, sagen wir, die Klasse gerade aus Gründen der Argumentation hier. Das ist also echt verdammt cool, oder? Wir haben jetzt if-Aussagen und wenn sonst Aussagen, und was Sie übrigens auch tun können, wenn Sie eine andere Aussage haben, dass Sie hier eine andere if-Aussage abgeben können , oder? Also kannst du das einfach da reinlegen. Grundsätzlich, wenn dies falsch ist, dann sonst und dann eine andere if-Aussage ist, wo Sie im Grunde genommen werden, nur aus Gründen des Arguments, sagen Sie einfach wahr hier. Natürlich würde das auch funktionieren, aber wissen Sie, und dann können wir etwas anderes sagen und diese im Grunde zusammenketten, damit Sie es machen können, wenn sonst, wenn sonst, und der letzte wird immer anders sein oder können auch hier einfach kein anderes haben . Das funktioniert auch. Das wollte ich auch erwähnen. Aber jetzt ist das wirklich Coole, nun, denken wir darüber nach. Nehmen wir an, dies ist eigentlich ein Programm , in dem der Professor hereinkommt und tatsächlich in die Ergebnisse Ihrer Prüfung schreibt. Oh was? Nun, wir erinnern uns, wie wir etwas lesen können , in dem wir in Scanner, Scanner, Scanner schreiben müssen , entspricht einem neuen Scanner. Und dann system.out.print. Und dann funktioniert das einfach für uns. Wir erinnern uns, dass wir uns nicht zu viele Sorgen machen wollen, was das bedeutet. Dann können wir etwas wie Systemausdruckzeile sagen und Ergebnisse oder Prüfung eins sagen. Stimmt's? Und dann lassen Sie uns das einfach duplizieren. Machen Sie Ergebnisse für eine Prüfung 2. Und dann können wir einfach sagen, dass Prüfung 1 tatsächlich gleich dem Scannerpunkt next int ist , oder? Also lesen wir eine ganze Zahl ein und speichern sie dann in der Prüfung eine Variable. Und das Gleiche, was wir tun werden, um zu gehen. Was jetzt passieren wird, ist echt cool. Und wir fangen damit an und jetzt erwartet es tatsächlich , dass wir eine Prüfung ablegen. Nun, leider 32, eigentlich nicht 320, sondern 32. Nun, und dann waren die Ergebnisse für Prüfung zwei tatsächlich sehr viel besser. Leider gab es 68, nur ein bisschen, nicht ganz genug für 69. Und dann können Sie sehen, dass Sie Prüfung 1 und die frühere Prüfung nicht bestanden haben. Jetzt fangen wir wirklich an, auf eine Art Teil dieser Java-Einführung einzugehen , in dem Sie wirklich etwas mit dem Computer machen können. Und Sie werden wirklich sehen, dass dies auch in der ersten Aufgabe für die nächste Vorlesung eine Art alternative Version der if-Aussage sein wird , die auch sehr wichtig sein kann. Und dann die erste Aufgabe, empfehle ich dringend, die Aufgaben hier für die Java-Einführung durchzuführen, besonders wenn Sie nur ein Anfänger sind weil sie wirklich, sehr nützlich sein können. Und damit ist der Kern natürlich in einem Repository oder genauso gut verfügbar. Aber schauen Sie sich die in den Ressourcen an. Und ich empfehle dringend damit ein bisschen herumzuspielen, einfach ein paar Zahlen zu lesen, um sie zu vergleichen, paar if-Aussagen zu machen, nur eine ganze Reihe cooler Sachen wie dieses zu machen, Du kannst schon ziemlich ein wirklich cooles Spiel machen. Also, aber vorerst wäre dies für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 12. (Java) Switch: Oder ich komme hier zur Java-Einführung zur Minecraft-Modellierung zurück . Und in diesem sehr kurzen Vortrag werden wir uns die Switch-Aussage ansehen. Die Switch-Aussage ist sozusagen wie der kleine Cousin der if-Aussage. Es ist also sehr ähnlich. Werfen wir einfach einen Blick darauf. Also werden wir eine Ganzzahl erstellen als Metal-Platzierung bezeichnet wird, die vorerst nur eins ist. Sie könnten sich vorstellen, dass dieser die Platzierung zum Beispiel bei den Olympischen Spielen darstellt , oder? Eine wäre also die Goldmedaille, Silber, Bronze. Zwei ist also Silber und Bronze ist drei. Und dann alles andere als Aufzeichnungen, kein Metall. Und wir könnten dies tun, indem wir nur einige If-Aussagen machen, wer auch immer wir auch eine Switch-Erklärung abgeben könnten. Sie können sehen, ob ich hier Switch eintippe, dann lege ich innerhalb der Klammern die Variable ein, die wir auswerten sollen. Machen Sie dann noch einmal die geschweifte Klammer oder die zweite sollte automatisch generieren. Und jetzt muss ich in jedem, innerhalb dieser geschweiften Klammern, jeden der Fälle angeben , die diese Variable annehmen kann. Also kann ich Fall 1 sagen. Das bedeutet also, dass es den Wert eins, die Systemausdruckzeile und dann zum Beispiel Goldmedaille übernommen hat Systemausdruckzeile und dann . Und dann kann ich Fall zwei sagen. Und dann kann ich System Out Print Line sagen, Silber, Metall. Und dann noch einmal, ganz am Ende kann ich hier Fall drei sagen, System. Die Druckzeile des Systems heraus. Da gehst du. Bronzemedaille. Es ist jedoch formatiert, das ist völlig in Ordnung. Und dann können wir auch Standard sagen, was bedeutet, dass dies genannt wird wenn es nicht der Fall ist, dies wird mehr in diesem Fall. Also haben wir hier Fälle vordefiniert. Und dann wird es im Standardfall tatsächlich heißen, wenn es etwas anderes ist , dass wir kein Metall sagen können. Und das erste , was Sie bemerken werden , ist eine Sekunde zu warten. Wir müssen jeden einzelnen Fall definieren. Ja, hier ist das Problem, dass Sie etwas wie größer oder gleich verwenden können , was es sofort viel einfacher macht , etwas einzugrenzen. Wenn ich die Prüfungsbewertung hier machen wollte, müsste ich tatsächlich jeden Fall durchgehen. Also muss ich die Fälle eins bis 50 oder eins bis 49 durchgehen , um zu sagen, hey, du hast gescheitert und dann sind die anderen für dich erfolgreich oder du hast bestanden. Die Switch-Anweisung ist also nicht immer die beste Wahl. Es kann jedoch manchmal sein. Werfen wir einen Blick auf diese Liste. Sollte natürlich tatsächlich Goldmedaille ausdrucken. Aber das erste, was du sagen wirst, ist eine Sekunde zu warten. Es hat tatsächlich alles genau ausgedruckt. Weil es noch eine Sache , die wir tatsächlich tun müssen. Und das ist, wenn Sie den Fall haben, das Ende, müssen Sie genau hier mit einer Pause enden. Wir müssen diese Pause einlegen. Sonst wird es im Grunde einfach erhalten bleiben. Es wird einfach durch die Switch-Anweisung gehen, wird einfach weitergehen und einfach alle Fälle herausziehen. Und wenn wir hier die Pause haben, werden Sie sehen, dass nur der relevante genommen wird. Lassen Sie uns hier einfach drei einbringen, nur um der Argumentation willen. Wie Sie sehen können, funktioniert das jetzt. Das ist also sehr wichtig, denn das break Schlüsselwort muss hier mit der switch Anweisung verwendet werden. Das kann manchmal ein bisschen nervig sein. Der Schalter sie normalerweise für ganze Zahlen ist in Ordnung, kann verwendet werden. Es wird normalerweise für Enums verwendet, da Enums Werte definiert haben, die sie annehmen können und die normalerweise für die Fälle einfacher , was sehr selten ist oder was im Grunde unmöglich ist. Sie sollten keine Floats in Switch-Anweisungen verwenden da Sie hier natürlich den genauen Fall definieren müssen. Und aufgrund der schwebenden Rundung oder Fehler, die auftreten können, funktioniert dies möglicherweise nie. Verwenden Sie also niemals Floats und Switch-Anweisungen. Im Grunde ist das eine sehr wichtige Sache, an die man sich erinnern sollte. Andernfalls könnte natürlich eine Switch-Anweisung, auch wenn Sie sie nicht selbst verwenden, auch wenn Sie sie nicht selbst verwenden, im Code einer anderen Person erscheinen. Du wirst das wenigstens schon mal gesehen haben müssen, oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und Neuronen und das Neue, wir sehen uns in der nächsten Vorlesung. Oh ja. 13. AUFGABE 1: Trivia: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modding hier mit der ersten Aufgabe. In der ersten Aufgabe wird ein Create, ein einfaches Quizspiel sein. Ich werde in Kürze erklären, was das mit sich bringt. Obwohl die Idee ist , dass Sie mindestens drei Fragen definieren sollten . Ich empfehle, drei Fragen zu stellen , drei Antworten, das wird ausreichen. Andernfalls wird der Code sehr schnell überladen. Und was ich möchte, dass Sie möchten, dass Sie den Benutzer auffordern, seine Antwort einzugeben. Sie können den Scanner dafür verwenden, um im Grunde genommen das zu erhalten, was er eingegeben und dann mit einer if - und else-Anweisung ausgewertet hat, um zu überprüfen, ob die Antwort, die der Benutzer eingegeben hat, korrekt war oder nicht . Daher empfehle ich, die Output-Input-Vorlesung die Output-Input-Vorlesung überprüfen , die in diesem Fall sehr wichtig war. Und die if-else Statement-Vorlesung könnte auch sehr interessant sein, ihn noch einmal zu betrachten. Wenn sie also korrekt waren, geben Sie aus, dass sie waren, und wenn sie falsch lagen, teilen Sie dem Benutzer mit, dass er falsch war, und geben Sie auch die richtige Antwort aus. Eine andere Sache, die Sie tun sollten, ist im Grunde nur eine Punktzahl zu erhöhen, was bedeutet, dass, wenn der Benutzer eine korrekte Antwort hat , die um eins erhöht wird, am Ende nur eine eindeutige Ausgabe für jede der verschiedenen Punktsummen. Also im Grunde drei, im Grunde gesagt: hey, du hast alles richtig gemacht um etwa 0 Minuten, okay, einen Fehler, einen und so weiter und so weiter und so weiter. Im Grunde genommen von 0 bis drei zu beachten, wenn man am Ende einige, wenn sonst if-Aussagen zwei Dinge zu beachten, wenn man am Ende einige, wenn sonst if-Aussagen gibt. sind also einige Tipps, die Sie beachten müssen , wenn Sie eine Zeichenfolge vom Benutzer lesen. Bitte verwenden Sie den Scannerpunkt als nächstes und nicht den Scannerpunkt in Bitte verwenden Sie den Scannerpunkt der nächsten Zeile. Denn wenn Sie den Scanner-Punkt in der nächsten Zeile verwenden, vermasselt das manchmal die Art und Weise, wie dies eingelesen wird. Aber ich empfehle dies nur wärmstens. Und wenn Sie dann eine Antwort davon einlesen, haben wir eine Zeichenfolge und Sie möchten diese mit einer Zeichenfolge vergleichen. Verwenden Sie nicht gleich, gleich, sondern verwenden Sie den Eingabepunkt gleich und geben Sie dann die Antwort, die richtige Antwort in Klammern, hier. Dies wird auch einen booleschen Wert zurückgeben, was dies ein wenig einfacher macht. Also sonst, weil es manchmal nicht funktioniert und das wird definitiv funktionieren. Behalten Sie das also im Hinterkopf. Und das ist so ziemlich der Auftrag genau hier. Dies wird auch hier als Text geschrieben. Und ich vermute, dass dies für einen Anfänger etwa 45 bis 60 Minuten sind. Ich würde auf jeden Fall empfehlen, sich damit Zeit zu nehmen. Wahrscheinlich zurück zu den alten Vorträgen, werfen Sie einen Blick auf die Ausgabe Input-Vorlesung, wenn und sonst Aussagen Vortrag. Und damit solltest du fast vollständig fertig sein. Im Grunde ist es so ziemlich genau das, was du brauchst. Und wenn Sie fertig sind, haben Sie natürlich Zugriff auf die Lösung, und ich werde die Lösung auch in einem anderen Video durchgehen . Das wäre es also. N, viel Glück. 14. LÖSUNG 1: Trivia: In Ordnung, also haben Sie die erste Aufgabe überstanden und hier ist die Schritt-Through-Lösung. Sie haben also wahrscheinlich schon gesehen, wie es aussieht, eine Stunde, die gerade durchlaufen wird. Natürlich werden die Fragen hier in diesem Fall tatsächlich als Strings gemacht. Das ergibt natürlich sehr viel Sinn, oder? Ansonsten können Sie die Fragen wirklich in irgendeiner Weise speichern. Und die eine Antwort ist eigentlich in einer Ganzzahl, die funktioniert. Ich sehe jedoch auch den Sinn darin, dies auch zu einer normalen Zeichenfolge zu machen . Überantworten wären richtig. Also keine Sorgen. Es ist da. Wir haben ganzzahlige Punkte und dann einen Scanner, und dann fangen wir einfach an, wir geben die erste Frage aus. Wir sagen dann die Benutzereingabe Nummer 1. Wir werden das einfach hier reinlegen. Wir werden sehen, ob das der ersten Antwort entspricht. Wenn ja, erhöhen wir die Punkte, geben aus, dass es korrekt war und Sie haben so viele Punkte. Und dann werden wir sonst falsch sagen und die richtige Antwort ausgeben. Danach machen wir so ziemlich genau das Gleiche. Ich stelle die zweite Frage, erhalte die Benutzereingabe erneut und trete sie gleich oder sage: Hey, ist das gleich der Antwort hier, inkrementiere die Punkte, wenn es richtig ist, gebe aus das und dann nein sagen, es ist falsch, das ist eigentlich die richtige Antwort. Und dann wieder das dritte Mal. Und am Ende sieht man hier, dass es hier grundsätzlich eine Art Kaskade durchläuft. Punkte gehen also durch drei bis 0. Dann habe ich auch eine Art Osterei hier. Wenn du weniger als 0 Punkte hast, die du bekommst, wie bekommst du überhaupt negative Punkte? Weil es keine Möglichkeit gibt, die zu kriegen. Man könnte natürlich auch etwas, wo man negative Punkte bekommt , wenn man eine besonders dumme Antwort oder so etwas gibt, das würde auch funktionieren. Aber ich habe hier nichts implementiert. Es war nur ein Beispiel. So könnte das also tatsächlich funktionieren. Dies ist also ein Beispiel. einmal, wenn das eigentliche Programm funktioniert, richtig? Also wenn das für dich funktioniert und du dieses Spiel spielen kannst und es funktioniert, aber es sieht anders aus. Das ist absolut in Ordnung. Wie Überhaupt keine Sorgen. Das ist also das Schöne hier. Es gibt mehrere Möglichkeiten, dies zu tun, und wir werden dies in den kommenden Aufgaben sehen , und wir werden dieses Quizspiel im Grunde auch immer verwenden , eine Art Vorlage. Und wir werden diese nächsten Aufgaben grundsätzlich auf eine andere Weise neu gestalten . Und das ist, ich hoffe, dass Sie sehen können, dass es einfacher und anders wird, sagen wir in den zukünftigen Vorträgen und den zukünftigen Aufgaben. Aber das wird es für diese Lösung genau hier sein. Ich hoffe, du hast diese Aufgabe nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 15. (Java) Strings und String: Oder ich komme hier zur Java-Einführung zur Minecraft-Modellierung zurück . Und in dieser Vorlesung werden wir uns Strings und einige String-Methoden ansehen . Nun, im Grunde sozusagen überall um die Saite herum. Und wir werden zunächst zunächst eine neue Stringvariable erstellen, die als Satz bezeichnet wird. Und das wird gleich sein, es ist eine wunderbare Dava-Einführung. Hoffen wir, dass das auch stimmt. Aber was auch immer der Fall sein mag, dies ist der Wert unserer String-Variablen hier. Und wir werden das einfach ausdrucken. Also Satz genau hier, System Out Line Satz. Und jetzt ist die Frage, was können wir hier sonst noch tun? Nun, das erste, was wir tun werden, ist, dass wir es tatsächlich duplizieren werden. Lasst uns ausrichten. Und was wir dazu sagen werden, wird übrigens von Control D gemacht. Und was wir tun werden, ist zu sagen, dass Länge ist, wir so etwas wie Plus sagen werden. Und dann können wir Satzpunktlänge sagen. Wie Sie sehen können, kann ich die Punktlänge mit den Klammern hier aufrufen , was bedeutet, dass es sich um einen Methodenaufruf handelt. Wir sind uns noch nicht hundertprozentig sicher, was das ist, aber wir haben das schon ein paar Mal gesehen, und das gibt uns im Grunde nur die Länge zurück. Und wenn ich jemals den Mauszeiger darüber fahre, können Sie sehen, dass in einer Ganzzahl die Länge der Zeichenfolge zurückgibt, Länge ist gleich der Anzahl der Zeichen in dieser Zeichenfolge. Das sind also im Grunde Unicode-Einheiten. Machen wir uns darüber keine Sorgen. Es ist im Grunde genommen gleich den Zeichen in dieser Zeichenfolge. Mal sehen. Die Länge beträgt 35. Das ist also interessant hier. Und dann geben wir natürlich auch den eigentlichen String aus. Aber was können wir sonst noch tun? Wir müssen in der Lage sein, ein paar interessante Sachen zu machen. Natürlich können wir das. Lassen Sie uns diese Ausgabe tatsächlich hier bekommen. Lassen Sie es uns einfach dreimal duplizieren und nichts. Und das erste, was wird schreien, nun, das wird bedeuten, dass alles hier in Großbuchstaben verwandelt wird. Wie machen wir das? Nun, wir können hier Satz Dat zu Großbuchstaben machen. Dies hat tatsächlich schon vorgeschlagen. Und dann würde natürlich das Gleiche einfach flüstern, oder? Und dann werden wir das hier in Kleinbuchstaben verurteilen . Das geht also nur zum ersten von alternativen Groß - und Kleinbuchstaben. Und dann lassen Sie uns nur aus Gründen der Argumentation den Satz noch einmal ausgeben. Oh, lasst uns auch einen Kommentar hinzufügen, richtig, also ist dies Groß- und Kleinbuchstaben. So ziemlich einfach. Wir können die gesamte Zeichenfolge einfach in Großbuchstaben umwandeln, eine ganze Zeichenfolge in Kleinbuchstaben. Und was sollten wir dann auch die Kleinbuchstaben-Zeichenfolge bekommen, oder? Wenn wir das einfach herausbringen, können Sie sehen, dass Sie alles in großen Buchstaben schreien, also alles in Großbuchstaben, dann alles in Kleinbuchstaben. Und dann ist es hier, es ist die normale Saite. Das ist merkwürdig, nicht wahr? Nun, hier ist der sehr interessante Teil dazu. Diese Methoden geben tatsächlich eine Kopie dieser Satzvariablen zurück. Sie ändern die Variable nicht an sich. Als wir also Dinge wie x gleich x plus 1 hatten, haben wir tatsächlich Röntgen geändert, EEG plus ist gleich eins. Das hat die x-Variable geändert. In diesem Fall geben wir eine Kopie zurück. Das ist also sehr wichtig und das muss man wirklich im Hinterkopf behalten. Aber zum nächsten, sagen wir, ich sage dir, Hey, in welcher Position Java das Wort Java gefunden hat. Du wirst so sein, ich weiß nicht, es ist genau so. Was wir also tun werden, ist, dass wir einfach wieder über die Druckzeile kopieren. Und wir werden folgendes sagen. Wir werden sagen, dass das Wort Java oder so etwas an Position gefunden wird. Jetzt könnten wir zählen, wir werden noch nicht anrufen. Wir werden in nur einem Moment zählen. Wir werden sagen, dass der Satzpunktindex der sehen kann , dass es hier ein paar verschiedene Arten von Index gibt, aber wir wollen die Zeichenfolge 1. Es spielt übrigens keine Rolle, welche Sie wählen, Sie können sehen, dass, sobald der Cursor innerhalb der Klammern befindet, tatsächlich vorschlagen wird, welche Sie tun möchten. Wir werden im Grunde genommen nehmen und ich sage Java hier. Also Java, Mal sehen, wann ist das? Wie wo passiert es? 17, okay, lass uns einfach zählen. Also fange ich hier an. Mein Cursor befindet sich also immer auf der linken Seite des Charakters , auf den ich zähle, 123456789, 10, 11, 12, 13, 14, 15, 16, 17, 18. Und jeder wird wie Warte eine Sekunde sein. Aber das hieß 70, oder? Ja. Es hieß 17. Warum ist das allerdings 18? Haha, sehen Sie, das ist eine sehr interessante Sache, denn in Java oder in den meisten Programmiersprachen zählen wir tatsächlich ab 0. Jetzt könnte das absolut verrückt für dich sein, besonders wenn du ein Anfänger wärst. Das ist vollkommen in Ordnung. Mach dir darüber keine Sorgen. Die Sache daran ist, dass man sich sehr schnell daran gewöhnt. Und es gibt ein paar andere Orte , an denen wir das benutzen müssen. Aber wenn wir bei 0 zählen, können Sie die 0123456789, 10, 11, 12, 13, 14, 15, 16, 17 sehen. Plötzlich ist das j genau das 17. Zeichen, oder besser gesagt das Zeichen mit Index 17, oder? Weil dies natürlich der Index ist, der Index davon, der Index dieses Wortes. Und wir suchen im Grunde nach dem ersten Charakter hier. Das ist sehr interessant. In der Tat, wenn wir wirklich über dieses Ende nachdenken, was wäre, wenn wir es eigentlich nicht sind, das ist nicht richtig. Wo wir hinzufügen, ist, dass wir tatsächlich etwas ersetzen wollen. Also System out print line und wir möchten einen Satz sagen , der ersetzt, und wir wollen Java durch, sagen wir C Sharp, ersetzen. Aber warum nicht? Stimmt's? Sie können also das Ziel sehen , das wir als Java ersetzen möchten, und womit wir es ersetzen werden, ist C sharp. Also wenn ich das jetzt leiten würde. Wir würden sehen, dass es eine wunderbare C-scharfe Einführung als nicht richtig, das ist nicht okay. Aber in diesem Beispiel ist das natürlich völlig in Ordnung. Das ist also die Ersetzungsmethode und das ist auch sehr interessant. Wieder einmal wird dies im Satz nicht ersetzt. Es hat eine neue Zeichenfolge zurückgegeben, eine Kopie davon, die diese im Grunde ersetzt. Sehr wichtig, oder? Vielleicht wollen wir sehen, ob ein bestimmter Satz mit etwas beginnt oder endet. Das ist eigentlich sehr einfach, wir werden einfach den Ersatz noch einmal durch Control D duplizieren den Ersatz noch einmal . Und was wir einfach sagen können, beginnt damit, du kannst sehen, und ich könnte einfach sagen, hey, ich schreibe und das würde in diesem Fall stimmen. Und dann können wir auch, können Sie es erraten, womit der andere natürlich endet, was, sagen wir ein Großbuchstaben a, was in diesem Fall natürlich falsch ist, wäre stimmt, das sollte falsch sein. Also lasst uns einfach aus Gründen der Argumentation nachsehen. Und dort kann man wahr und falsch sehen. Ganz einfach zu machen. Was ist, wenn wir einen String haben, oder? Und wir werden das vorerst einfach S nennen , und es wird einfach eine leere Zeichenfolge sein, oder? Also eine Schnur mit nichts drin. Wie können wir überprüfen , ob das leer ist? Nun, wir können einen booleschen Wert leer machen. Zum Beispiel sagen wir einfach, S ist leer. Und da gehst du. Das ist so ziemlich alles, was wir brauchen. Und wenn wir das System ausschalten würden, druckende Zeile, die leer ist könnten wir natürlich auch S-Punkt leer in deinen Hintern legen . Warum die Mühe machen? Das ist vollkommen in Ordnung. Und sie gehen, das ist eigentlich wo stimmt es? Es stimmt, natürlich stimmt es. Entschuldigung. Da gehst du, oder? Natürlich stimmt es, weil das leer ist. Und es gibt noch eine Sache , die wirklich interessant ist, wenn es um die booleschen Methoden für die Strings geht. Und das ist das enthält, eins. Das ist sehr interessant. Also System Out Druckzeilensatz , der, sagen wir Java, enthält. Und das stimmt natürlich, oder? Da dies Java enthält, sollten wir auch r2-Jahr sehen. Schön. Was ist mit andersherum? Wenn wir über Indexaufwand nachdenken? Was ist mit einem bestimmten Charakter an einer bestimmten Position? Absolut kein Problem. System out Druckzeile, Satz, Char an welcher Position? Sagen wir 17. Wir wissen also, dass es ein sein wird. Also wissen sie, dass es ein j sein wird. Das wird sehr wichtig sein und es gibt einen J. Einfach genug. Wieder einmal fangen wir an, bei 0 zu zählen. Obwohl dies das 18. Zeichen ist, ist das Zeichen mit Index 70 sehr wichtig. Das ist, es mag schwer sein, aber nach einer Weile habe ich es benutzt, bin ich mir sicher, dass du dich daran gewöhnen wirst. Und lasst uns einfach noch etwas anderes machen. Und das wird die Teilzeichenfolge sein. Interessanter Teilstring. Was ist das? Nun, lasst uns das System aus der Druckzeile machen, und sagen wir einfach Satz-Punkt-Teilzeichenfolge. Und wo fangen wir an? Nun, fangen wir mit Index 17 an. Aber was es jetzt passieren wird, ist dass alles ab 17 dauern wird und danach alles zurückgeben wird. Also das jetzt sollte die Teilzeichenfolge 17-Jahr Java-Einführung, Ausrufezeichen sagen. Und natürlich tut es das auch. Das ist sehr nett. Wenn wir also einen anderen Satz betrachten, den Sie sehen können, dass es natürlich ein paar weitere Methoden gibt , die Sie nicht aufrufen könnten, ist dies keine erschöpfende Liste, die ich gezeigt habe. Ich habe gerade ein paar gezeigt, die hier interessant sein könnten. Ich empfehle immer , es ein bisschen auszuprobieren. Du probierst ein paar Sachen aus. Das Tolle hier ist, dass es wirklich nur ein paar Sachen tippt, auf die Schaltfläche „Ausführen“ klickt und einfach sieht, was passiert. Und wenn etwas passiert, ist das cool, noch besser. Und wenn nicht, wenn es einen Pfeil gibt, aber arbeiten Sie ihn durch und sehen Sie, ob Sie ihn nicht reparieren können. Aber das wäre es so ziemlich für die Saiten. Und diese Strings Methode Vortrag. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen, wenn du es tätest, ich würde mich sehr über eine Rezension von dir freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 16. (Java) Casting: Oder ich begrüße zurück zur Java-Einführung für die Mikrowellenmodellierung. Und in diesem Vortrag werden wir uns mit Casting befassen. Sie können sich das auch vorstellen Datentypen untereinander konvertieren. Was heißt das wirklich? Nun, schauen wir uns mal an. Zum Beispiel möchten wir ein ganzzahliges Darlehen haben, das heißt, sagen wir 750 Euro, was auch immer der Fall sein mag. Und dann haben wir einen Zinssatz , der natürlich im Float ist, oder? Und das wird 0,0525 sein, sagen wir mal. Dies würde also zu diesem Zeitpunkt einem Zinssatz von 5,25% entsprechen , sollte alles sinnvoll sein. Jetzt wollen wir also die Zinsen tatsächlich berechnen. Jetzt die Zinsen sollten wir das vorerst als Float berechnen. Und ich zeige dir in einer Sekunde warum. Zinsen sind also gleich dem Darlehenszins mal des Zinssatzes. Das sollte auch sinnvoll sein. Sie können sehen, dass, obwohl ich eine Ganzzahl mal pro Float nehme , alles funktioniert, weil wir dies in einem Float speichern. Interessant. Okay, lass uns das System rausmachen, Zeile drucken und einfach die Interessen ausdrucken, das Meer. Und es sollte so etwas wie 39 sein, das ist okay. Wenn Sie dann auch hier spüren, ist das natürlich vollkommen in Ordnung. Jetzt ist die Frage, wie können wir einfach eine Ganzzahl und einen Float multiplizieren und einen Float daraus holen. Das ist ziemlich verrückt, nicht wahr? Nun, was passiert, ist im Grunde, dass diese Ganzzahl im Hintergrund in einen Float umgewandelt wird. Wir können dies explizit machen, indem wir den Modus in Klammern vor der tatsächlichen Variablen eingeben. Und dann haben wir das explizit. Dies ist also eine explizite Besetzung bevor es sich um eine implizite Besetzung handelte. Nun, die Sache daran ist, dass wir von einer Ganzzahl zu einem Float hierher gehen. Was passiert, wenn wir die tatsächlichen Interessen an ganzzahliger Zahl machen? Vor allem, was passieren wird ist, dass dies einen Fehler zeigen wird , denn sobald wir hier einen Float in einem mathematischen Ausdruck haben , wird alles in einen Float verwandelt weil Flows mehr Informationen haben, oder? Da alles nach dem Dezimalpunkt mehr Informationen ist, wird daher alles in eine Last umgewandelt. Lassen Sie uns dies jetzt explizit in eine Ganzzahl umwandeln. Lasst uns wissen Mori, der Hintergrund hier gelb bedeutet, dass dies eine Warnung ist. Wir werden uns darüber keine Sorgen machen , denn ich möchte Ihnen im Grunde zeigen, was die Warnung ist, warnen Sie uns, weil es plötzlich eine große fette 0 ist und Sie so sein werden, warte, wie haben sie sich in eine 0 verwandelt? Nun, wenn wir einen Float in eine Ganzzahl umwandeln, wird passieren, dass alles nach dem Dezimalpunkt einfach abgeschnitten ist. Im Grunde ist es also so. Plötzlich wird der Zinssatz also 0 sein, wenn wir ihn in eine Ganzzahl umwandeln, was bedeutet, dass Sie nur sagen werden , dass die Kreditzeiten 0 natürlich 0 sind. Und Sie können sehen, dass dies auch das ist , was die Warnung hier sagt. Deshalb wollen wir gleich hier zurück zum Float. Also gehen sie. Und anstatt dies zu einer Ganzzahl zu machen, werden wir dies einfach auf dem Zinssatz und normal halten . Und das wird allerdings gut werden. Dies ist eine Art Idee, wenn Sie von Integer zu einem Float wechseln. Von einem, im Grunde genommen von weniger Informationen bis zu mehr Informationen, ist das normalerweise in Ordnung. Wechseln Sie von Flows zu Integer. Um mehr Informationen zu weniger Informationen zu erhalten, kann das einige Konsequenzen haben, sagen wir einfach. Das ist also immer das, was man beachten muss. Und das ist auch eine Sache. Im Grunde genommen wird diese Idee, einen anderen Datentyp vor eine Variable zu schreiben , um ihn in einen anderen Datentyp umzuwandeln ihn in einen anderen Datentyp , etwas später auch in einer späteren Vorlesung sehen. Das ist also etwas, das man im Grunde auch im Hinterkopf behalten sollte. Nun, aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 17. (Java) Ternary: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir uns den ternären Operator ansehen. Jetzt klingt der ternäre Operator auf den ersten Blick wie etwas völlig Verrücktes, wirklich Kompliziertes, ist es aber tatsächlich nicht. Also werden wir zwei ganze Zahlen erstellen. Einer von ihnen wird die Prüfung sein. Dies wird hier nur das Prüfungsergebnis als Beispiel sein . Und dann eine ganze Zahl namens Geschenk. Aber das ist, sagen wir, unser Vater möchte uns ein Geschenk von X Betrag machen. Wir werden jedoch angeben, dass wir, wenn wir diese Prüfung tatsächlich bestehen , wie wir dies wie folgt tun könnten. Wir können sagen, ob die Prüfung größer oder gleich 50 ist. Im Grunde bestehen wir die Prüfung, dann werden wir sagen, dass das Geschenk gleich 10 ist und dann sonst das Geschenk gleich 0 ist. Jetzt würden wir das hier nicht unbedingt sonst brauchen, aber ich werde das einfach da drin hinzufügen. Und dann gehen wir einfach zur Systemausdruckzeile. Wenn ja, machen Sie sich keine Sorgen. Das sollte alles Sinn ergeben. Aber was wir jetzt tun können, ist, dass wir das ganze Jahr tatsächlich in einer Zeile schreiben können . Und was wir tun können ist, dass wir sagen können, dass das Geschenk gleich ist. Und dann müssen wir zuerst einen booleschen Ausdruck schreiben. So ist die Prüfung beispielsweise größer oder gleich 50. Dann schreiben wir ein Fragezeichen. Und was wir dann zurückgeben wollen, wenn der boolesche Ausdruck hier wahr ist. Also 10, dann ein Doppelpunkt und was immer wir zurückgeben wollten, wenn der boolesche Ausdruck falsch ist, also war es 0. Und das ist der ternäre Operator, Fragezeichen Doppelpunkt. Und das ist so ziemlich genau das Gleiche wie das. Was wir also tun können, ist, dass wir das im Grunde einfach kopieren können . Lassen Sie uns einfach beide kommentieren , damit dies unabhängig davon, was hier passiert, nicht zugewiesen wird. Wir werden zuerst einen 0-Ausgang und dann eine 10. Mal sehen. Da gehst du. Also ist die 0 natürlich diese 0 genau hier, die wir hier zugewiesen haben. Und dann ist die 10 hier der ternäre Operator. Also das ist eigentlich ziemlich cool. Jetzt wird normalerweise der ternäre Operator verwendet. Ich würde es im Grunde nicht empfehlen, es zu oft zu verwenden, aber manchmal mit ziemlich einfachen Dingen wie diesem. Sie könnten auch daran denken diesen booleschen Ausdruck zu nehmen und einen booleschen Wert daraus zu machen, der wie gefragt Prüfung sagt. Und dann liest sich das gleich nach der Prüfung etwas schöner, ist es 10, sonst ist es 0. Daran kannst du dir also auch denken . Also würde ich es wahrscheinlich nicht so behalten, weil dies so etwas ist, um die Rate nicht zu verdoppeln. Es gibt zu viel Gehirnleistung, die darauf eingeht, die Prüfung gleich zu betrachten, etwas größer ist gleich 50. Okay? Okay. Oh, ich verstehe es. Wenn Sie so etwas haben, besteht die Prüfung oder ähnliches als Boolean, der in diesem Fall sinnvoll ist. Was auch immer der Fall sein mag, dies ist der ternäre Operator und im Grunde dasselbe in if-Anweisungen. Nur weil das alles in einer Zeile ist heißt das nicht, dass es auch unbedingt besser ist. Zeilenanzahl ist überhaupt kein Hinweis auf den Qualitätscode, okay? Und ich möchte, dass du es tust, ich möchte, dass das sehr, sehr klar ist. Es spielt keine Rolle. Ein großartiges Programm kann 1000 Zeilen umfassen. Wenn es 1000 Fuß lang sein muss, muss es 1000 Nächte lang sein. Nur weil man das Programm 800 Zeilen erstellen kann , heißt das nicht unbedingt, dass es besser ist. Das ist sehr wichtig. Denn das Wichtigste beim Schreiben von Code ist, dass Sie ihn lesen können und jemand anderes ihn lesen kann, was Sie in sechs Monaten beinhaltet. Weil Sie in sechs Monaten sind, wird es eine andere Person sein, weil Sie alles vergessen haben , was Sie in Ihrem Code geschrieben haben. Daher müssen Sie Ihren Code lesbar machen oder andere Personen, das ist der wichtigste Teil. Und wenn ein ternärer Operator in diesem Fall sinnvoll ist, ist das großartig. Ich würde es nie tun, ich würde Ihnen auf jeden Fall raten, niemals mehrere Terminalbetreiber in dieselbe Linie zu stellen. Denn natürlich könntest du hier einen anderen ternären Operator auf „Wahr“ oder „Falsch“ setzen . das definitiv nicht, denn dann wird es sehr, sehr kompliziert, sehr schnell. Bleiben Sie bei if-Aussagen. In diesem Fall, was auch immer der Fall sein mag, wäre dies bereits für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 18. (Java) Arrays, erklärt: In Ordnung, willkommen zurück zur Java-Einführung für die Mikrowellenmodellierung. Und in diesem Vortrag werden wir uns Arrays ansehen. Arrays sind definitiv das, sagen wir mal, komplizierteste Thema, mit dem wir uns bis zu diesem Zeitpunkt beschäftigen werden . Was ich Ihnen jedoch zuerst sagen möchte, ist , dass Sie sich keine Sorgen machen, wenn Sie damit zu kämpfen haben . Das ist völlig normal. Ich hatte auch damit zu kämpfen, als wir das erfuhren. Und am Ende der Vorlesung werde ich tatsächlich eine kleine Geschichte darüber erzählen . Aber vorerst, uns daran, dass wir die drei Saiten hatten, oder? Wir sind bei Frage 1, Frage 2, Frage 3, und beantworten eins, antworten auf Antwort drei. Nun, zugegeben, war die erste Antwort tatsächlich eine ganze Zahl, aber in diesem Fall ist es eine Zeichenfolge. Das ist völlig in Ordnung, denn das Demonstrationszwecken. Es ist ein bisschen einfacher zu zeigen. Und was wir hier hatten, war die Idee, dass wir diese Fragen hatten. Sagen wir einfach, ich sage dir, weißt du was, dein Quizspiel, das in der ersten Aufgabe war, du solltest das tatsächlich 150 Fragen haben. Jetzt wirst du da sitzen, um so zu sein, entschuldigen Sie mich. Ja. Eine 150-Frage. Nun, okay. Dann fangen Sie an, dies zu duplizieren und dann jeden einzelnen von ihnen zu ändern. Nun, dann vielleicht, weißt du, ich, ich weiß, dass du alle gedrückt halten kannst und dann mehrere Dinge gleichzeitig ändern kannst, aber dann wechseln sie alle in dieselbe Nummer und es ist alles Mögliche , es einfach zu vermasseln. Es ist nicht sehr gut. Das funktioniert also nicht ganz. Okay. Wie könnten wir das sonst machen? Nun, was wir verwenden können, ist ein Array. Jetzt ein Array, das kannst du dir als Liste vorstellen. Es ist keine 100-prozentige Liste, oder? Es ist ein bisschen anders, weil es tatsächlich etwas gibt , das auch in Java eine Liste genannt wird. Wir werden es jedoch als eine Liste betrachten. Und du wolltest eine Reihe von Fragen erstellen und es ist ein Klingelbereich von Antworten. Und wir werden uns nur einen Blick darauf werfen , was das im Grunde bedeutet. Wie erstellen wir ein Array? Nun, wir geben einfach den Typ ein, den wir wollen. Also der Datentyp, den wir wollen, und dann diese Klammern hier, und das wird Fragen sein und es ist gleich neu. Wir müssen also das neue Keyword nehmen und Sie können sehen, dass uns dies bereits vorgeschlagen wird. Ich tippe diese Zeichenfolge aus und dann noch einmal den Winkel der Klammern hier und endet dann mit einem Semikolon. Jetzt ist dies noch nicht getan, da wir innerhalb dieser Klammern tatsächlich die Länge dieses Arrays angeben müssen. Wie viele Elemente werden da drin sein? Drei, in unserem Fall? Nun, das ist es so ziemlich. Das ist also ziemlich cool. Jetzt. Das war's. Es ist wie ja, das ist es so ziemlich. Und jetzt müssen wir natürlich etwas zuweisen. Was wir also sagen können, sind Fragen. Sie können sehen, dass ich das im Grunde mit der Tabulatortaste automatisch vervollständigt habe, oder? Die Klammern erneut und weisen dann zum Beispiel eins gleich zwei zu. Und dann lass uns das einfach hier nehmen , oder? Also so etwas. Und dann kann ich damit einfach weitermachen, oder? 23. Und dann lasst uns einfach, naja, wie kann ich das richtig ausgeben? Wie, wie ist das möglich? Nun, IT-System-Out-Druckzeile, und dann können wir einfach Fragen sagen, keine Fragen, los geht's. Und dann zum Beispiel ist dreijähriges Wissen bei meinem Mittelwert gleich, oder? Jetzt ändern wir das einfach, kopieren Sie es tatsächlich. Wählen Sie also dieses Steuerelement C Control V aus, wie diese Control C Control V. Und lassen Sie uns einfach die drei hier herausbringen. Das ist nur C und O wissen was hier passiert ist? Nun, was hier passiert ist, ist, dass wir es vielleicht vergessen haben. Jetzt habe ich nicht vergessen, dass ich dir das wirklich zeigen wollte. Aber was hier passiert ist, ist, dass wir bei 0 anfangen müssen zu zählen. Hier kommen wir also zurück, als wir die Saiten sahen, bei denen wir bei 0 Jahr zählen, wir haben auch 0 gezählt. Dies bedeutet jedoch, dass wenn wir drei Elemente in diesem Fragenarray haben , das erste Element von Index 0 ist, das zweite aus Index eins und das dritte aus Index 2 ist, was bedeutet, dass drei existiert hier nicht und dann bekommen wir eine Ausnahme. Wir werden dies am Ende der Vorlesung noch einmal sehen, denn ich möchte, dass Sie die Ausnahme sehen , und ich möchte, dass Sie verstehen, was das bedeutet. dem Array jedoch Weise weisen Sie dem Array jedoch auf diese Weise verschiedene Strings zu, in diesem Fall unterschiedliche Werte. Und du kannst es auch so ziemlich genau vorlesen. Das ist also das , was es braucht. Und lassen Sie uns das auch aus Gründen der Argumentation einfach kopieren und das die Antworten nennen , oder? Und dann werden wir den Schwellen kopieren. Also wähle ich dieses RP hier, hier und hier aus. Und dann ändern wir das einfach in die Antworten hier. Das werden also 50 sein. Das wird natürlich London sein. Und dann wird der letzte Fe sein. Sehr interessant in der Tat. Und was wir dann tun können, ist zum Beispiel, dass wir die Antwort 0 ausgeben können. Also werden wir nur Antworten in Fragen 1 sehen. Und dann sagt es plötzlich so etwas wie, naja, was ist die Hauptstadt des Vereinigten Königreichs? London? Ganz einfach. Und lassen Sie uns das tatsächlich ändern, um dies nicht auf 0 zu ändern. Das ist vollkommen in Ordnung. Alles was wir jetzt tun können ist, nun, okay, dann können wir das einfach neu zuweisen? Also können wir das nehmen, ich nehme das einfach. Eigentlich schreibe ich es nach außen. Fragen, noch einmal, Klammer 0 ist zum Beispiel gleich, wie alt ist Ian? Mick Jagger, genau 2021. Das ist nur, lass uns mit uns ausgehen. Warum nicht? Das ist vollkommen in Ordnung. Und dann geben wir das einfach wieder aus. Nun die 0, sagen wir mal, und die 0 hier. Die Frage. Wir haben uns hier neu zugewiesen, und dann wird die Antwort immer noch korrekt sein. Das habe ich übrigens überprüft. Übrigens, da ich wollte, dass das korrekt ist. Das ist ziemlich cool. Alles in Betracht gezogen. Das wirklich Coole ist, dass hier alles irgendwie in einem Datentyp ist, oder? Fragen haben jetzt alle Fragen. Anstatt drei verschiedene Strings zu haben, haben wir tatsächlich alles in diesem Fragenzeichen-String-Array. Das ist ziemlich cool. Wir können auch die Größe der Länge dieses Arrays, dieser Liste, sozusagen, ermitteln, indem wir Fragen dieser Länge stellen, wie Sie hier sehen können, wir können uns das nur ansehen. Das ist natürlich 3, weil wir das genau hier geliefert haben, oder? Darin mussten wir also die Länge liefern. Deshalb ist das so ziemlich genau das Richtige. Und vielleicht haben Sie hier auch viele Vorschläge gesehen . Wir werden uns derzeit keine Sorgen machen weil all dies sehr, sehr kompliziert ist. Und dann haben wir auch, dass ich hier genau das kleinste Stück kopieren werde. Aber das ist der Array-Index außerhalb der Grenzen Ausnahme genau hier. Es ist so ziemlich genau das, was wir bereits gesehen haben, aber ich werde das noch einmal zeigen. Wenn wir also eine Zahl in die Klammer stecken , existiert sie tatsächlich nicht. Wir werden einen Array-Index außerhalb der Grenzen bekommen . So kannst du dir das also vorstellen. Nun, das ist ein Array und es hat eine gewisse Bindung, okay, fair genug. Wie ein Index. Der Index , den wir weitergeben, ist der Indexkurs drei. Ich will die Frage mit Index drei, okay, fair genug. Aber das ist außerhalb der Grenzen, da dies nur drei Elemente hat und wir anfangen, bei 0 zu zählen. Daher existiert der Index oder das Element mit Index drei nicht. Und wieder einmal erhalten Sie hier den wirklich schönen Stack-Trace, damit Sie den genauen Ort abrufen können , an dem das Problem aufgetreten ist. Das ist also auch etwas, das ich hier erwähnen wollte. Ansonsten wäre das so ziemlich der allgemeine Kern von Arrays. Und jetzt natürlich die Art von Dingen, die ich dir am Anfang gesagt habe. Als ich also Bereiche an der Universität lernte, war das Interessante, dass ich sie nicht vollständig verstanden habe. Also sagte ich: Weißt du was, ich brauche keine Bereiche. Ich werde niemals Bereiche benutzen . Es spielt keine Rolle. Ich bleibe einfach dabei. Ich erstelle einzelne Variablen. Aber natürlich werden Sie auf sehr schwierige Probleme stoßen, sobald jemand sagt, nun, dann mach 20 verschiedene und dann, dann mach 20 verschiedene und dann wenn ich sie raushole, setze sie in eine zufällige Reihenfolge, es wird nicht funktionieren, weil diese Dinge definitiv gelernt werden müssen. Dies ist auch nicht der richtige Ansatz weit. Oh, ich verstehe es nicht. Deshalb muss ich es nicht lernen. Deshalb ist es nicht wichtig, keine. Und natürlich, wenn es existiert, hat es in diesem Sinne einen gewissen Verdienst in der Programmierung hier. Daher empfehle ich auf jeden Fall dringend , sich das noch einmal anzusehen. Bleib einfach ruhig und probiere ein paar Dinge aus, um das irgendwie zu verstehen. Und auch noch einmal, wenn Sie irgendwelche Fehler bekommen, keine Sorgen. Fehler sind bei der Programmierung völlig normal . Es gibt nichts Besseres als es keine Schande gibt, mag es nicht ganz normal, wirklich jeder Programmierer, es bekommt jeden Tag mehrere Pfeile, wenn sie programmieren. Selbst erfahrene Programmierer bekommen immer noch jeden Tag Pfeile. Fühl dich deswegen nie schlecht. Und ja, das ist also die allgemeine Idee von Arrays hier. Ich hoffe, ich konnte irgendwie die Idee vermitteln, dass dies wirklich einer Liste ähnelt, oder? Es ist keine 100-prozentige Ellipse, aber Sie können es sich als Liste vorstellen . Du legst verschiedene Elemente in, im Grunde mit unterschiedlichen Indizes oder Indizes, so etwas ein, oder? Aber sonst wäre das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 19. (Java) für und für Schleifen: In Ordnung, willkommen zurück zur Java-Einführung zur Mikrowellenmodellierung. Und in dieser Vorlesung werden wir über Loops sprechen. Was wir für diese Vorlesung benötigen, sind sowohl die String-Arrays , die wir zuvor für die Fragen erstellt haben , als auch die Antworten. Aber bevor wir irgendetwas mit den Bereichen machen , möchte ich zunächst, dass Sie Folgendes tun. Ausgang. Jede Zahl von 0 bis 99, oder? Sie werden sagen, Okay, System Out, drucken Sie Zeile 0, dann könnten Sie eins duplizieren, zwei duplizieren. Jetzt wirst du die ganze Zeit so da sitzen . Seien wir einfach ehrlich, das wird lange dauern. Nun, und dann komm Loops. Loops sind etwas , bei dem Sie einen Code mehrmals ausführen können . Und die erste Art von Schleife wir uns ansehen werden, ist die for-Schleife. Dafür geben wir vier und dann Klammern ein. Wieder einmal sollten die schließenden Klammern automatisch generiert werden. Und dann geben wir int ein I ist gleich 0 Semikolon Ich bin kleiner als ein 100 Semikolon I plus schließende Klammern und dann eine offene geschweifte Klammer. Dann sollte die schließende geschweifte Klammer generiert werden, sobald Sie die Eingabetaste drücken, wenn Sie das System herausnehmen und es hier in die geschweiften Klammern stecken. Und ich werde die 0 in ein Auge ändern und jetzt die Wunder der Programmierung sehen. Wie Sie deutlich sehen können, wird alles von 0 bis zu 99 ausgegeben. Was passiert hier? Nun, in einer for-Schleife ist die Idee, dass wir definieren, wie Sie sehen können, eine ganze Zahl ich bis 0 initialisieren. Und dann sagen wir, dass wir hier eine Art booleschen Ausdruck haben und dann ein Inkrement. Was passiert ist , dass ich auf 0 eingestellt bin, während ich überprüft werde, ob ich kleiner als 100 bin oder nicht. Wenn das stimmt, fahren wir mit dieser Schleife fort. Wenn das stimmt, passiert alles in dir, dann werden wir I erhöhen und dann wird das noch einmal überprüft. Und dann machen wir das wieder, erhöhen ich, überprüfe mich und so weiter und so weiter. Dies geschieht also grundsätzlich für immer bis zu diesem Jahr. Dieser boolesche Ausdruck ist falsch. Und sobald es falsch ist, was bedeutet, dass ich nicht mehr kleiner als eine 100 bin, was passiert, wenn ich 100 bin, dann wird dies nicht mehr ausgeführt und alles danach, nach der geschweiften Klammer hier fängt an zu passieren. Deshalb stoppt es bei 99 und nicht bei 100, denn wenn ich 99 bin, stimmt das immer noch. 99 ist kleiner als 100. Jeder stimmt zu, ja. Aber sobald es ein 100100 ist, ist es nicht kleiner als 100. Es ist tatsächlich gleich 100. Daher stimmt dies im Grunde nicht mehr. Daher wird dies nicht mehr für gepanzert ausgeführt. Das ist irgendwie die Idee und das ist wirklich cool, oder? Als könnten wir das ganz einfach machen? Und jetzt werde ich dich absolut umhauen. Jetzt werde ich Ihnen sagen, nun, alle Fragen und Antworten ausgeben und Sie werden das System einfach besetzen. Drucken Sie die Zeile Frage 0, antworten Sie 0, genau wie zuvor. Nun, das wird einfacher für int ich gleich 0 ist. Ich bin kleiner als Fragen Punktlänge I plus, plus. Und was ich dann machen werde, ist, dass ich diesen zweimal kopieren werde. Und dann werde ich stattdessen Fragen rufen, die ich oh, das ist interessant, oder? Und antwortet I. Das ist ziemlich cool. Sie können also grundsätzlich die ganze Zahl hier in die Klammern übergeben und auf den gewünschten Index zugreifen und auf welchen Index diese ganze Zahl annehmen kann. Eine andere wirklich verrückte Sache ist, dass wir uns hier tatsächlich die Länge ansehen, oder? Da wir die Länge haben, erspart uns dies sofort vor Fehlern. Der einzige Fehler , der auftreten könnte, ist, wenn wir diese vier plötzlich hier machen, oder? Weil wir die Länge der Fragen nehmen , während die Antworten nicht gleich sind. Dann könnten wir auf einen Fehler stoßen. Erneut ist der Bereich außerhalb der Grenzen Ausnahme oder der Array-Index außerhalb der Grenzen Ausnahme. Aber vorerst, wenn wir den längeren benutzen, wird das völlig in Ordnung sein. Und wenn ich das einfach durchführe, siehst du, dass es alles ausdruckt. Harmony befindet sich in der US-AIR 50 Hauptstadt des Vereinigten Königreichs, London. Und dann ist das chemische Symbol für Eisen Phi. Damit alles funktioniert. Das ist also hübsch, das ist ziemlich verrückt, oder? Das ist ziemlich cool. Oder Schleifen wahnsinnig wertvoll und können für alle möglichen Dinge verwendet werden. Es gibt eine andere Art von Schleife, die der for-Schleife sehr ähnlich ist, die für jede Schleife ist. Jetzt können Sie sehen, ob ich das tatsächlich eingeben kann, und ich könnte die Tabulatortaste drücken, um dies automatisch zu vervollständigen. werde ich jedoch nicht, denn die Formatierung ist für mich ein bisschen komisch. Ich weiß nicht, weiß genau, was das ist. Dafür schreiben wir uns einfach ein. Ich kann String Western, alte Fragen sagen. Und die Art, dies zu lesen, ist, oder jede String-Frage in Fragen, so würde man es lesen. Und dann kannst du einfach ein System ausmachen , Zeile drucken, fragen. Und ich kann hier einfach jede einzelne Frage ausdrucken. Wieder einmal wird das einfach funktionieren. Wie Sie sehen können, haben Sie jetzt im Grunde genommen Zugriff darauf, haben Sie jetzt im Grunde genommen Zugriff darauf was die einzelnen Elemente innerhalb dieser Liste oder dieses Arrays in diesem Fall sind, und ich muss es nicht über den Index hier angeben. Eigentlich verstehe ich sie alle individuell gut. Das ist also die für jede Schleife und das für jeden, den du gehst, das ist eine andere Art von Schleife, die interessant ist. Und dann ist die letzte Art von Schleife, die ich dir zeigen möchte, die While-Schleife. Jetzt habe ich eine persönliche Vorliebe, die While-Schleife sehr selten zu benutzen , nur weil es sein kann, naja, es kann dich in Schwierigkeiten bringen. So können wir so etwas wie während wahr und dann geschweifte Klammern sagen . Was also passiert , ist, dass alles in hier passieren wird, solange das stimmt. Wenn du jetzt eine Sekunde darüber nachdenkst, warte natürlich eine Sekunde. Wenn ich es wahr mache, dann wird das immer genau stimmen. Das ist jetzt eine While-Schleife und eine Weile Schleife und endlos, oder? Dies ist also eine Endlosschleife und dies ist die Gefahr, auf die Sie mit einer While-Schleife stoßen könnten. Man könnte auch theoretisch auf das Problem mit for-Schleifen stoßen , aber es ist sehr selten, dass es tatsächlich passiert. Aber in While-Loops ist es sehr oft der Fall oder es kann der Fall sein, dass Sie eine Endlosschleife haben. Jetzt muss das irgendwann jeder durchmachen. Ich sage nur, dass meine Voreingenommenheit darin besteht , dass ich während Loops nicht wirklich mag. Aber was wir tun können, ist, nun, lasst uns folgendes tun. Lassen Sie uns tatsächlich eine Eingabe für die Person hinzufügen. Scanner hier, Scanner entspricht neuen Scannersystem.in und dann fertig. Und was wir tun werden, ist wir einfach so etwas wie die folgende Systemausdruckzeile sagen werden. Willst du weitermachen? Also werden wir einfach sagen: Hey, will die Person weiter benutzen? Wir werden weitermachen und dann sagen wir einfach: hey, wenn der Scanner als nächstes punktet, oder? Wenn das gleich „Ja“ ist. Was wir dann tun werden, ist, dass wir einfach weitermachen werden, oder? Also fahre mit dem eigentlichen Keyword fort, das wir sonst brechen werden. Dies ist ein Beispiel für das Schlüsselwort Continue und the break, das Continue Schlüsselwort, das im Grunde alles ignoriert, was in der Schleife danach kommt und zurück an den Anfang springt die Schleife, während das Schlüsselwort break aus der Schleife ausbricht. Im Grunde geht es also bis Ende des Jahres und alles danach wird dann wieder ausgeführt. Dies wäre das Gleiche, wenn dies plötzlich falsch wird. In diesem Fall ist es natürlich eine Endlosschleife, oder? Solange ich also eintippe, wird das so weitergehen. Sobald ich etwas anderes eintippe, wird es herausbrechen. Das ist also irgendwie die Idee dieser While-Schleife hier. Schauen wir uns das einfach an, damit ich tippen kann. Ja. Und ich kann tippen, ja. Und ich kann tippen. Ja. Und dann mache ich hier einen Fehler und ein OH nein, Plötzlich nannte er das Stopp. Das ist irgendwie die Idee. Dies könnte also eine Endlosschleife mit einer Art Bremssystem sein. Was nun sehr wichtig ist, ist, dass das Schlüsselwort „continue“ und „break“ wahrscheinlich nur sparsam verwendet werden sollte , da es viele Entwickler gibt , die das nicht mögen. Denn wenn Sie mögen, sagen wir eine längere FOR-Schleife oder eine längere oder while-Schleife. Und du hast eine Menge Continue und Pausen da drin. Manchmal kann es ein bisschen verwirrend sein. lese es gerne, oder? Weil du sozusagen mehr Zweige haben wirst. Sie können also denken, wenn Sie sich vorstellen können, dies auf eine etwas andere Weise zu tun , ist das normalerweise besser. Wie auch immer der Fall sein mag. Das sind die Schleifen, die ich dir zeigen wollte. Wirklich ziemlich cooles Zeug. Und wir fangen wirklich an, ein paar sehr, sehr coole Tools in unsere Toolbox zu bekommen , um wirklich mit Code zu arbeiten und einfach etwas zu programmieren , das wirklich cool ist. Also, aber vorerst ist das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen, wenn du es tätest, ich würde mich sehr über eine Rezension von dir freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 20. Java-Methoden: Willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir uns eine Methode ansehen. Zuallererst benötigen wir hier noch einmal die String-Bereiche. Wir benötigen sie nicht unbedingt, aber wir werden sie in dieser Vorlesung verwenden. Und nun, Methoden. Was sind Methoden? Nun, wir haben dieses Wort schon ein paar Mal mit den String-Methoden gesehen . Und auch so etwas wie System Out Print Line ist auch eine Methode. Und ich habe vielleicht ein - oder zweimal vor der Hauptmethode gesagt. Es ist also etwas dran. Wir haben auch die mathematischen Methoden gesehen, also haben wir dieses Wort definitiv schon einmal gehört. Was ist es wirklich? Nun, theoretisch, eine Methode, Sie können es sich theoretisch als ein paar Codezeilen, eine Codezeile oder 100 Codezeilen vorstellen , die ausgeführt werden, wenn Sie diese Methode aufrufen. Sie rufen also eine Methode auf, wie zum Beispiel, wenn wir ein System eingeben, Systemausdruckzeile, oder? Und ich sage Hallo, lies das. Es ist etwas im Hintergrund, passiert, oder? Also diese Druckzeile, wenn wir dies nennen, diese Methode hier, passiert etwas im Hintergrund. Jetzt wissen wir in diesem Fall nicht unbedingt, was genau passiert. Aber mit diesem Hallo passiert etwas, oder? Sobald ich das ausgeführt habe, passiert in diesem Fall etwas im Hintergrund, dass dieses Hallo jetzt in diesem Run-Fenster angezeigt wird. Wir wissen also nicht wirklich was, aber etwas im Hintergrund passiert, also wird etwas Code ausgeführt. Wenn wir also einen Code haben , den wir vielleicht wiederverwenden möchten, sagen wir 100 Mal in unserem Code. Dann könnte man sagen, nun, wir können einfach eine for-Schleife machen, weißt du, 100 Mal. Nun, aber was ist, wenn ich das an verschiedenen Orten in meinem Code machen möchte , oder? Vielleicht möchte ich in diesem Fall eine Frage stellen, oder? Und eine Ausgabe und Antwort und dann nach der Antwort suchen. Dann möchte ich noch einmal Fragen stellen. Es ist wie, naja, ich meine, du könntest eine for-Schleife machen, aber nun, vielleicht wollen wir dort ein paar If-Aussagen machen. Es wird ein bisschen kompliziert werden. Das funktioniert also nicht immer. Sagen wir zum Beispiel, was ich tun möchte, ist, dass ich einfach nur will , ich würde nicht nur etwas eingeben, das ich hier ein Array geben kann , rot. Das String-Array von Fragen, ein String-Bereich von Antworten und nur die Ausgaben erfüllen alle Antworten und alle Fragen. Also alle Fragen, Antworten nur in der Registrierung. Also könnte ich natürlich so etwas schreiben. Rechtes Auge für Schleife int I ist gleich 0. Ich bin kleiner als Fragen, die verknüpft sind, sagen wir, ich plus. Und dann könnte ich einfach System Out sagen , Zeilenfragen drucken. Ich schreibe so etwas und dupliziere das dann und sage dann Antworten. Das könnte ich machen. Nun, sagen wir noch einmal, ich möchte, dass dies in unserem Code 100 Mal gemacht wird . Nun könnte der aufmerksame von Ihnen sagen, warum setzen wir diese for-Schleife nicht einfach in eine andere for-Schleife. Und du würdest absolut Recht haben. könntest du auch machen. Lasst uns jedoch nicht zu schlau werden. Denken wir einfach darüber nach und machen dies zu einer Methode. Was wir tun werden, ist, dass ich Ihnen vorher gesagt habe , dass wir nur zwischen diesen beiden geschweiften Klammern arbeiten . Wir erweitern jetzt unsere Welt und bewegen uns außerhalb dieser geschweiften Klammern. Denn jetzt sind unsere neuen geschweiften Klammern im Grunde diese beiden. Jetzt ist das unser neues Zuhause. Und das hast du vielleicht irgendwie darüber nachgedacht. Nun, dies ist die Hauptmethode, die im Grunde ausgeführt wird, wenn wir die Schaltfläche Ausführen drücken, dann wird die Hauptmethode ausgeführt. Jetzt fügen wir eine neue Methode hinzu. Und zuerst schreibe ich das auf. Und dann erkläre ich, was hier passiert. Also schreiben wir öffentlich statisch, nichtig. Und ich nenne diese Ausgabe Fragen und Antworten. Dann gebe ich eine Klammer ein, die schließende Klammern automatisch generieren sollten. Und dann mache ich hier ein String-Array. Also das werden die Fragen sein und dann ein, ein anderes String-Array antwortet, oder? Und dann mache ich eine geschweifte Klammer. Und Sie sehen, dass die zweite geschweifte Klammer bereits generiert wurde. Ich kann einfach die Eingabetaste drücken und dann sollte die Formatierung ebenfalls abgeschlossen sein. Und damit wurde eine neuere Methode erstellt. Also werden wir vorerst ignorieren, ist dies öffentlich und statisch. Wir wissen noch nicht genau, was das ist, aber wir sind sehr kurz davor , dies in einem zukünftigen Vortrag herauszufinden. Wir werden tatsächlich herausfinden, was das vorerst bedeutet. Wir wissen nur, dass dies ein Zugriffsmodifikator ist. Wir wissen noch nicht, was es macht. Wir wissen nur, dass wir hier öffentliche Statik schreiben müssen und dann wird alles gut. Es gibt nichtig hier ist tatsächlich der Rückgabetyp dieser Methode. Einige Methoden geben also etwas zurück und wir werden das in einem Moment sehen. Nachdem wir diese Methode durchgeführt haben, werden wir eine weitere Methode erstellen, die tatsächlich eine ganze Zahl zurückgibt. Dann haben wir den Namen der Methode. Das ist etwas, das Sie selbst entscheiden können. Normalerweise sollte das Benennen von Variablen und Benennungsmethoden sehr ausdrucksstark sein. Obwohl dies für Sie sehr lang sein mag, scheuen Sie sich nicht vor langen Methodennamen oder langen Variablennamen. Wenn sie genau beschreiben, was sie tun, wird das das Beste sein. Dann nach dem Namen, komm, die Klammern hier. Und innerhalb der Klammern definieren wir im Grunde auch eine variable Art von Sprechen. Und diese werden Parameter genannt. Wir haben also zwei Parameter hier, und beide sind vom Typ String-Array. Und insgesamt ist das Ganze hier. Also all dies, richtig, die Zugriffsmodifikatoren, der Rückgabetyp , der Name der Methode und die Parameter heißen Methodensignatur. Weil wir das wissen müssen, müssen Methodensignaturen sein. Einzigartig bedeutet, dass ich nicht dasselbe haben kann. Also wähle ich das alles aus. Und dann sage ich Control C und dann Control V. Und Sie können sehen, dass wir sagen, dass wir sagen, dass es hier bereits definiert ist, wenn ich den Mauszeiger darüber bewege. Das ist also genau das Gleiche und es ist bereits definiert. Das funktioniert nicht, oder? Das ist also sehr wichtig. Wenn ich jedoch die Methodensignatur ändere, was zum Beispiel bedeutet, ich einen weniger mache, lege ich hier einen Parameter weniger ein, der funktioniert. Du wirst, sie haben den gleichen Namen, sie haben eine andere Unterschrift. Dies würde in diesem Fall nun als Methodenüberladung bezeichnet werden, würde in diesem Fall nun als Methodenüberladung bezeichnet werden da wir denselben Namen haben, dies mit einer anderen Signatur deaktiviert. So zum Beispiel unterschiedliche Anzahl von Parametern, verschiedene Parametertypen , unterschiedlicher Rückgabetyp. So können Sie das Jahr wechseln, um Methoden mit demselben Namen zu haben. Das wird interessant werden, vielleicht später später werden wir diese löschen und wir werden einfach die eine Methode hier behalten. Und was wir gerade tun werden ist, dass wir dieses Control X tatsächlich zum Ausschneiden nehmen , Control V, um es einzufügen. Und plötzlich sieht man dass alles völlig gut funktioniert, denn natürlich haben wir hier die Parameter, Western und Antworten. Und die Idee ist, dass wir die weitergeben werden. Denn gerade jetzt sind diese Fragen, diese Antworten, natürlich nicht die gleichen wie diese beiden. Ich kann das nennen, sagen wir Q0, Q, Q u, e, nur aus Gründen des Arguments. Und ich nenne das E&S nur damit es kein Missverständnis gibt. Dieses Jahr ist nicht dasselbe wie dieses, da ich dies natürlich mit einer anderen Zeichenfolge von Fragen in einem anderen Zeichenfolgenbereich von Antworten nennen könnte natürlich mit einer anderen Zeichenfolge von Fragen in einem anderen Zeichenfolgenbereich . Das wird also sehr allgemein sein. Das wird das nur für jeden Bereich tun , in den ich einlegen werde. Das ist also das wirklich coole Ding. Was ich dann tun kann, ist, dass ich das nennen kann, ich kann Ausgabe sagen. Und Sie könnten sehen, sobald ich eintippe, wird die eigentliche Methode vom Programm erkannt. Es hat tatsächlich hier vorgeschlagen. Also kann ich einfach die Tabulatortaste einlegen . Ich kann die Tabulatortaste drücken und es generiert automatisch deine und ich kann einfach Q0 und ANS sagen. Jetzt habe ich das Fragenzeichenfolgen-Array als Frage-Perimeter und das Antwortzeichenfolgen-Array als Antwortparameter übergeben. Sie könnten, was Sie vielleicht auch gesehen haben, ist, dass die Methode von grau zu gelb wurde. Dies bedeutet einfach , dass diese Methode tatsächlich verwendet wird, also heißt es. Und das ist auch eine wichtige Idee. Und wenn ich das jetzt durchführe, wirst du sehen, dass es tatsächlich funktioniert. Sie können sehen, wie viele Sets. Die USA haben 50 Hauptstädte, Großbritannien, London, und das chemische Symbol für Eisen ist F, e. Also gibt es dies aus und nennt im Grunde genommen den ganzen Code davon in hier. Und jetzt können Methoden natürlich Methoden aufrufen, und Methoden können andere Methoden aufrufen. Das wird natürlich irgendwann ziemlich kompliziert. Vorläufig ist das jedoch wirklich cool. Jetzt werden wir auch eine Methode erstellen, die sehr kompliziert sein könnte. Was wir also haben werden, wenn man zur öffentlichen statischen Int geht . Also geben wir jetzt eine ganze Zahl zurück und wir werden zwei Zahlen zusammen summieren. Was brauchen wir dafür? Nun, natürlich eine ganze Zahl x und eine ganze Zahl y. Jetzt können die Namen der Parameter übrigens auch sein, was Sie wählen. Normalerweise möchten Sie, dass sie im Allgemeinen auch sehr ausdrucksstark sind. Jetzt haben wir diese Summenmethode genau hier. Und was wir tun werden, ist, dass wir in das Schlüsselwort zurück x plus y eingeben in das Schlüsselwort zurück x plus y . Also werden wir einfach x plus y zurückgeben, denn das ist natürlich die Summe dieser beiden Ganzzahlen in diesem Fall, nichts zu spektakuläres. Was ich Ihnen jedoch zeigen wollte, ist im Grunde das Schlüsselwort return und dass Sie auch verschiedene Typen zurückgeben können . Also die SAM-Methode in diesem Fall können wir uns das einfach ansehen, oder? Also System out print line, und dann werden wir etwa zehn sagen und sagen wir 12. Und wenn ich das mache und es sollte 22 sagen, los geht's. Also keine Sorgen, dass alles funktioniert. Und diese Art der allgemeinen Idee hier, die Sie mit Methoden haben. Es kann also entweder etwas zurückgeben oder es kann etwas zurückgeben, dann muss man in eine Leere schreiben. Aber das ist eine Art vorläufiger Blick auf Methoden. Natürlich muss man das auch noch einmal ein bisschen anwenden, muss man das auch noch einmal ein bisschen anwenden um hier wirklich das Verständnis zu bekommen. Dies ist jedoch ein großartiger Übergang zu dem Auftrag, der als nächstes kommen wird. Ich empfehle dringend, die nächste Aufgabe zu machen , da dies die nächste Aufgabe zu machen , da im Grunde genommen Methoden sein wird. Und selbst wenn du nicht bekommst wird Sue im Grunde alles tun, zumindest wenn du dir die Frage anschaust und dann wird die Lösung hoffentlich auch so beleuchten, wie du kannst verwende Methoden in deinem eigenen Code. Aber vorerst wird dies für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 21. AUFGABE 2: Trivia mit Methoden: Alles klar, Willkommen zur zweiten Aufgabe der Java-Einführung hier. Und in diesem kurzen Video möchte ich die Aufgabe grundsätzlich erklären. Insgesamt ist die Aufgabe also nicht wirklich so kompliziert, ich möchte Sie im Grunde immer noch durch das führen. Die Idee ist also, dass Sie das Quizspiel von der ersten Aufgabe an neu erstellen sollten . Also im Grunde so ziemlich das Gleiche. Aber dieses Mal solltest du fünf Fragen und fünf Antworten haben. Und die Art und Weise, wie Sie diese speichern sollten, liegt in zwei Bereichen. Eine für die Fragen und die Antworten. Und was Sie auch tun sollten, ist, dass Sie mindestens zwei Methoden erstellen sollten , um den Code lesbarer und einfacher zu befolgen. Und im Grunde genommen als Hinweis wirst du es so überlegen . Wenn Sie doppelten Code haben, sollten Sie dies wahrscheinlich zu einer Methode machen. Wir denken darüber nach. Denken Sie darüber nach, wo Sie vielleicht zweimal etwas anrufen , und dann können Sie im Grunde genommen eine Methode daraus machen. Und was Sie auch tun sollten, ist, dass Sie eine Endlosschleife machen sollten und dann einige if-Anweisungen darin in gewisser Funktion. Also etwas Logik, die den Benutzer dazu veranlasst den Benutzer aufzufordern, weiterzuspielen oder nicht, wenn er es nicht mehr möchte. Ich empfehle dringend, sich die Loops-Vorlesung noch einmal anzusehen , da sie tatsächlich einen sehr ähnlichen Anwendungsfall sie wissen , dass wir eine endlose While-Schleife hatten , mit der Sie mit ihnen aufhören können IF-Anweisungen und die Break-und die Continue Keywords. könnten sich also hier als sehr praktisch erweisen. Ansonsten sollte dies insgesamt ziemlich einfach sein. Das Spiel an und für sich sollte eigentlich sehr ähnlich spielen als das erste. Es sollte nur ein bisschen anders aussehen. Insgesamt wäre das also die ganze Idee. Vergessen Sie natürlich auch Dinge wie die Punkte nicht. Auch die, weißt du, fügen diese auch hinzu. Ansonsten ist das so ziemlich alles, was Sie wirklich tun müssen. Ich schlage vor, etwa eine weitere Stunde für diese Aufgabe, je nach Level können Sie es auch in 30 Minuten, 45 Minuten machen , wer weiß? Aber stresse dich nicht selbst. Nehmen Sie sich etwas Zeit , um sich wirklich damit zu befassen. Sehen Sie sich noch einmal ein paar Vorträge an, die Loop-Vorlesung, ich empfehle dringend Methoden Vorlesung war sehr schöne Bereiche, wenn Sie diese nicht ganz verstehen, ich dies nur wärmstens empfehlen. Und ansonsten steht Ihnen die Lösung natürlich auch zur Verfügung. also keine Sorgen. Ansonsten wünsche ich Ihnen allerdings viel Glück für diesen Auftrag. Ja. 22. LÖSUNG 2: Trivia mit Methoden: Oder ich begrüße zurück zur zweiten Aufgabe und zur Lösung der eigentlichen Aufgabe hier. Also ist der Code natürlich wieder für Sie verfügbar. Und als, nun, im Grunde genommen Haftungsausschluss hier, wenn Ihr Code nicht 100 Prozent mit dem Code übereinstimmt, den ich habe, ist das natürlich völlig in Ordnung. Das ist keine Schande, denn es gibt immer mehrere Lösungen dafür. Und ich denke, dass meine Lösung ein paar, zu viele Methoden verwendet. Eigentlich interessanterweise, aber vorerst wir es einfach durchgehen. Natürlich sollten die String-Arrays, Fragen und Antworten hier ziemlich selbsterklärend sein. Dasselbe gilt für den Scanner noch einmal, um Sachen zu lesen, und dann insgesamt Punkte hier, nur Kernpunkte. Das ist also ziemlich einfach. Wir haben eine While-Schleife , die immer stimmt. Sie können also sehen, dass dies im Grunde die gesamte While-Schleife ist . Und lasst uns zuerst einen Blick ganz unten hier werfen. Also dieses Druckspiel wieder, Methode wird ausgedruckt, Hey, willst du wieder spielen? Wenn Sie hier ein y einsetzen, im Grunde genommen zurückgesetzt die Punkte im Grunde genommen zurückgesetzt und dann wieder mit dieser While-Schleife fortgesetzt. Ansonsten bricht es einfach aus der While-Schleife aus. Und dann Prince de Auf Wiedersehen hier. Das ist irgendwie die Idee. Ansonsten kann man dem ganz einfach folgen. die Namen der Methoden fast vollständig Beschreiben die Namen der Methoden fast vollständig, was sie tun, und sehen dann Titel drucken, Fair genug. Und dann werden wir für jede der Fragen hier für diese for-Schleife durchgehen der Fragen hier für diese for-Schleife , auch sehr, ziemlich einfach. Und wir haben hier die Druckfrage für die Frage , die derzeit im Grunde genommen gestellt wird, bis dann in der Benutzerantwort lesen. Und dann haben wir eine if-Anweisung , die hier eine andere Methode aufruft. So ist die richtige Antwort von dieser Benutzerantwort. Und es vergleicht dies im Grunde mit der Antwort, die für diese Frage richtig ist. Wenn dies der Fall ist, wenn diese Methode „true“ zurückgibt, drucken wir dann aus, Sie hatten eine richtige Antwort, wobei dann zunehmend Gesamt zeigt und diese wieder in die Punktevariable zurückschreibt . Und dann drucken wir hier auch im Grunde die aktuellen Punkte aus . Und wenn dies nicht die richtige Antwort war, drucken wir aus, dass Sie eine falsche Antwort hatten und wir drucken auch die eigentliche richtige Antwort aus. Das ist so ziemlich alles , was wir hier wirklich brauchen. Und Sie können dann am Ende hier sehen , dass wir nur die Punktzahl ausdrucken und dann den Spieler fragen , ob er noch einmal spielen möchte oder nicht. Das ist also die gesamte Logik hier. Und wenn wir dann untergehen, können wir sehen, dass es hier viele Methoden gibt . Und alle von ihnen sind sehr, sehr einfach, oder? Fast alle von ihnen nur ein Licht, im Grunde alle nur eine Zeile. Jetzt können Sie einen sehr guten Fall machen, dass, das vielleicht etwas zu gut ist, in diesem Fall auch schlecht sein kann, oder? Oder zu viele Methoden könnten zu viel sein. Dies ist jedoch definitiv sehr einfach hier zu verfolgen. Es gibt auch Punkte zu sagen, vielleicht könnten wir einfach diese gesamte IF-Anweisung nehmen und eine Methode machen. Ist das auch, könnten wir vielleicht die gesamte for-Schleife nehmen, daraus eine ganze Methode machen. Wir können diesen Teil übernehmen und eine andere Methode machen. Es gibt also mehrere Ideen , denen Sie folgen können, und Sie könnten natürlich immer noch mehr Methoden daraus oder weniger machen. Das ist total in Ordnung und das ist total okay. Solange es funktioniert, haben Sie ein paar Methoden, die Sie entwickelt haben, dann wird es absolut in Ordnung sein. Wenn dies nicht genau Ihre Lösung ist, machen Sie sich darüber im geringsten Fall keine Sorgen. Wieder einmal ist das Schöne an der Programmierung, dass es immer, ich meine, es gibt eine Million verschiedene Möglichkeiten, dies zu tun. Natürlich werden einige von ihnen optimierter sein als andere. Aber am Ende des Tages, wenn wir wirklich darüber nachdenken, wird das normalerweise völlig in Ordnung sein. Wenn das also nicht zu 100 Prozent korrekt ist, wie Sie es haben, ist das okay. Wenn es funktioniert, bin ich damit schon sehr zufrieden. Ansonsten ist das so ziemlich meine Lösung. Dieser Code steht Ihnen natürlich auch zur Verfügung. Ansonsten hoffe ich, dass diese Aufgabe Sie nützlich war, um etwas tiefer in die Idee der Methoden und deren Verwendung einzugehen. Ich kann natürlich auch immer vorschlagen, in deiner eigenen Zeit damit herumzuspielen in deiner eigenen Zeit damit herumzuspielen einfach ein paar Sachen auszuprobieren. An dieser Stelle haben Sie viele verschiedene Tools. Sie haben if-Anweisungen, Sie haben Schleifen, Sie haben Methoden, Arrays. Es gibt also eine Menge Sachen, mit denen du herumspielen kannst. Du kannst Sachen vom Benutzer einlesen. Du kannst Sachen auf die Konsole schreiben, was dir an dieser Stelle tatsächlich eine ganze Reihe von Sachen öffnet. Wenn du also so etwas machen willst , wähle dein eigenes Abenteuer, nur ein kleines Ding, oder? Los, richtig, probiere einfach ein paar Sachen aus. Ich empfehle dringend , einfach damit zu experimentell zu sein. Du, du kannst hier nichts kaputt machen, oder? Solange du deinen Code hier drin schreibst, ist es nur für dich, wird alles in Ordnung sein. Wie ich schon in der Vorlesung über die Fehler gesagt habe. Wenn Sie Fehler bekommen, brauchen Sie sich keine Sorgen zu machen, dies ist nicht das Ende der Welt und jeder bekommt Pfeile, richtig. Ich bekomme jederzeit Pfeile, wie wenn ich programmiere, wird es natürlich Pfeile geben und das ist völlig in Ordnung. Solange Sie sie durcharbeiten, versuchen Sie zu verstehen, warum ich diesen Fehler erhalten habe ? Wie ist das passiert? Und irgendwie so etwas. Aber das wäre es für die Lösung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 23. (Java): In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir uns die Sammlungen ansehen. Dies wird eine realistische Karten und Sets beinhalten. Obwohl besonders Sets etwas ist, das in der Minecraft-Modellierung im Allgemeinen ziemlich umfangreich verwendet wird , aber in der Minecraft-Codebasis. Sets sind also sehr interessante Dinge, aber wir beginnen zunächst mit einer ArrayList. Obwohl. Wir werden an das String-Array zurückdenken, das wir so definieren konnten, oder? Fragen zum Beispiel hier, mit einem neuen String-Array, sagen wir von Größe zwei. Und dann konnten wir diese Fragen irgendwie so zuweisen . Wie gibt es Staaten, keine Staaten? Tut es. Die Hälfte der USA geht in etwa so. Und wir könnten diese Zeile duplizieren. Der andere auch. Zum Beispiel, um dies zu einem etwas kürzeren Hauptstadt Großbritanniens zu machen. Das funktioniert also völlig gut. Es werden keinerlei Probleme bewertet. Eines der Dinge, die Sie sich vielleicht stellen, ist richtig, aber was ist, wenn ich die Anzahl der Fragen in diesem Bereich ändern möchte ? Nun, du musst diese Nummer gleich hier ändern. Und das kann ein bisschen nervig sein, oder? Weil Sie dann hier reingehen müssen, dies ändern müssen, sicher, dass Sie, wenn Sie dann einen Bereich mit Antworten haben, auch die Größe ändern müssen und so weiter und so weiter. So irgendwie nicht das Beste. Und dafür werden wir uns jetzt eine Liste ansehen. Also geben wir lst ein, also listen Sie auf. Und Sie können sehen, dass es uns im Grunde genommen schon vorschlägt. Und wir drücken einfach die Tabulatortaste, die jetzt oben etwas importiert. Wenn das nicht passiert, zeige ich Ihnen in einem Moment, wie Sie das beheben können. Und dann steckst du genau hier die Winkelklammer ein. Also sollte auch Winkelklammer und die andere automatisch generieren. Und dann legen wir genau hier eine Schnur ein. Und danach nennen wir dies die Fragenliste. Und das ist gleich einer neuen ArrayList. Sie können sehen, dass uns dies bereits grundsätzlich vorgeschlagen wird. Noch einmal drücke ich die Tabulatortaste, um automatisch zu generieren. Und wir werden das mit einem Semikolon beenden. Und das erste, was Sie sehen werden, ist, dass wir keine Länge für diese Liste definiert haben. Und das ist genau richtig, weil es keine Notwendigkeit gibt, eine Länge für eine Liste zu definieren, da eine Liste irgendwie dynamisch ist , während Lengthen solar sprechen. Im Grunde können wir einfach Dinge hinzufügen, Elemente hinzufügen und die Liste, die wir einfach dynamisch erweitern werden. Das ist also echt cool. Das ist das erste sehr coole Ding. Wir können also Fragenliste, Punkt, Hinzufügen und dann eine Zeichenfolge setzen. Welche Sprache wird zum Beispiel in Deutschland gesprochen? Als Frage hier. Und dann kann ich das einfach duplizieren. Und sagen wir zum Beispiel, was ist die Hauptstadt Kanadas? Und dann am Ende vielleicht etwas wie, weißt du, sagen wir einfach in welcher Hemisphäre? Hemisphäre ist Brasilien. Aber nur aus Gründen der Argumentation. Also diese drei Fragenbeispiele, fügen Sie es einfach zur Liste hinzu, und dies wird jetzt das Element mit Index 0 sein. Dies wird das Element mit Index eins sein, und dies wird das Element mit Index zwei sein. Das ist also echt cool. Und das erste , was wir im Grunde sagen können , sind diese Listen, oder? Sie sind im Grunde genommen Add-Einträge oder Elemente dynamisch. Das ist also echt verdammt cool, oder? So können wir hinzufügen und gut, sogar Sachen entfernen. Wie würdest du Sachen entfernen? Nun, das ist eigentlich auch ziemlich einfach. Wir können einfach sagen, dass der Punkt der Fragenliste entfernt wird, und dann kann ich entweder den Index eingeben , den ich entfernen möchte , oder ich kann das eigentliche Objekt einfügen , das ich entfernen möchte. Also könnte ich auch die eigentliche Zeichenfolge hier übergeben, oder ich könnte einfach eine sagen. Und dann wird es die Frage aufheben, was ist die Hauptstadt Kanadas? Das ist ziemlich cool. Nun, die nächste Frage Sie haben könnten, ist, nun, wie können wir die Länge davon im Grunde erreichen? Nun, wir können den Punkt der Fragenliste sagen. Zuallererst werden Sie hier eine Menge Dinge vorgeschlagen, wie Sie deutlich sehen können. Viele Dinge, von denen uns die meisten im Moment nicht interessieren. Wir müssen die Größenmethode genau hier verwenden. Also Größe mit den Klammern, was natürlich bedeutet, dass dies ein Methodenaufruf ist. Und dies wird als Länge oder Größe dieser Liste zurückgegeben. Und wie bekomme ich ein Element aus dieser Liste? Nun, wir können das System einfach eintippen, Zeile drucken, um das auszudrucken. Und dann können wir eine Fragenliste sagen, die GET hat. Und dann müssen wir hier den Index übergeben. Also in diesem Fall zum Beispiel 0. Und wenn ich das einfach ausführe, wirst du sehen, dass wir zwei für die Größe bekommen werden, weil wir natürlich die erste Frage oder die Zeichenfolge mit Index eins entfernt haben . Und dann wird das Element mit Index 0 immer noch die Sprache sein, die in Deutschland gesprochen wird. Das ist also ziemlich cool. Alles in Betracht gezogen. Werfen wir einen Blick auf etwas anderes. Und das wird zum Beispiel eine Liste von Ganzzahlen sein, oder? Zahlen sind also gleich einer neuen Array-Liste. Und was Sie sehen werden, ist , dass dies ein Problem hier ist. ArrayLists bewertet also so etwas. Und dann sieht man , dass es sich irgendwie verhält, weißt du, es verhält sich nicht ganz richtig. Es gibt wie eine rote Unterstreichung hier. Was ist los? Nun, wenn wir den Mauszeiger darüber bewegen, können Sie sehen, dass Typ-Argument nicht vom primitiven Typ sein kann. Das bedeutet, dass wir in Boolean und ähnlichem nicht verwenden können . Aber vor dir. Das kann und sagen: Oh mein Gott, das ist das Schlimmste aller Zeiten. Keine Sorge. Es gibt Wrapper-Klassen , die Sie verwenden können damit Sie sie tatsächlich durch Java Lang Integer ersetzen können . Nun, ich kann entweder darauf klicken oder ich kann hier einfach eine ganze Zahl eingeben. Also dieses hier in diesem Fall. Und wenn du das benutzt, funktioniert alles gut. also diese Liste und diese Winkelklammern sind Generika. Und die Idee ist, dass Sie jeden Datentyp hier einsetzen können, mit Ausnahme der primitiven. Das ist sehr wichtig für diejenigen, die wir als Wrapper-Klassen brauchen. Es gibt also Wrapper-Klassen, oder? Wir können verwenden, können anstelle des Primitivs ein primitives Datentypen das U verwenden . Daher ist dies sehr wichtig, um sich daran zu erinnern, dass es Daher ist dies sehr wichtig, um sich daran zu Wrapper-Klassen gibt und sie für jeden der Primitiven existieren sollten Datentypen. Es gibt also überhaupt keine Sorgen. Und hier können wir ganz einfach Zahlen sagen, wissen Sie, waren zum Beispiel 20. Und Zahlen fügen etwas wie 42. Überhaupt keine Sorgen. Wie Sie sehen können, können wir diese Zahlen hier einfach hinzufügen und es handelt sich um normale Ganzzahlen, und wir können grundsätzlich o. Das ist völlig in hier einfach hinzufügen und es handelt sich um normale Ganzzahlen und wir können grundsätzlich o. Ordnung. Aber ich wollte dies erwähnen, dass Sie die primitiven Datentypen in diesen Generika nicht so verwenden die primitiven Datentypen in können, wie sie genannt werden. Wie ich schon sagte, Generika sind diese Tour durch diese Winkelklammern, oder? Diese eckigen Klammern. Und alles, was darin ist als Generika bezeichnet, weil es in dem Sinne generisch ist, dass wir jede andere Klasse oder jedes andere Objekt, jeden Datentyp, den wir hier möchten, einfügen können jede andere Klasse oder jedes andere Objekt, jeden Datentyp, . Und es wird einfach funktionieren. Das beinhaltet übrigens auch eine Liste, oder? Wir können also eine Liste mit einer Liste haben. Natürlich, warum nicht? Stimmt's? Wir mehrere Listen , die auch funktionieren würden. Aber vorerst wird es das für die Listen sein. Werfen wir einen Blick auf Karten. Karten sind also sehr interessant. Lesen Sie, eine Map ist das Folgende. Eine Map enthält einen Schlüssel und einen Wert. Und der Schlüssel, der Schlüssel, der tatsächlich abbildet, weist der rechte Schlüssel zu einem bestimmten Wert zu, den alle sinnvoll sein sollten. Dies wird als Schlüssel-Wert-Paar bezeichnet. Okay, fair genug. Was können wir sehen? Geben Sie dies einfach in Map ein, wie Sie sehen können, und diesmal haben wir zwei verschiedene Dinge in den Winkelklammern. Also lasst uns das importieren, oder? Sie können also sehen, dass dies auch hier importiert wird. Wenn diese nicht automatisch wichtig sind, können Sie sehen, dass die Dinge rot und Sie können dies ganz einfach selbst tun. Sie können einfach darauf klicken und Alt und Enter drücken, und es wird diese Klasse importieren. Sie können sehen, dass ich dasselbe auch mit der ArrayList machen musste. Und dann hier unten für die Map, muss das eigentlich noch nicht tun , weil ich noch nicht fertig bin, aber wir werden das in einem Moment sehen. Wir werden eine Map haben, die eine Zeichenfolge einer anderen Zeichenfolge zuordnet . Und wir werden dies die Land-zu-Kapitalkarte nennen, die in diesem Fall einer neuen HashMap entsprechen wird. Und was wir dann tun können, ist, dass wir einfach Alt und Enter drücken können . Und dann wird es auch hier wichtig sein. Aber das sind sehr wichtig, diese Importe im Grunde genommen, damit das Programm weiß , dass wir diese Datentypen verwenden, oder? Also die Liste, die ArrayList, die Map und ähnliches. Und was wir jetzt tun können, ist, dass wir dieses Land auch zum Kapital MAB hinzufügen können . Wir können also einfach „Put“ sagen und das bringt neue Werte ein. So wäre Deutschland zum Beispiel Berlin. Hoffentlich hast du das gewusst. Lass uns noch eins machen. Also lasst uns das einfach ein paar Mal duplizieren . Und wir werden Frankreich sagen. Sie wissen, dass eine, die Paris ist, natürlich früh unkompliziert, Italien, Wu jetzt wird es natürlich interessant Rom. Und dann werden wir eine USA haben, und das wird Washington DC sein. So sehr einfach. Alles, was hier in Betracht gezogen wird, kann ich, wie Sie sehen können, zwei Saiten einsetzen, oder? Weil ich das hier definiert habe. Die müssen nicht gleich sein. Ich könnte ein ganzzahliges Jahr einsetzen, einen Float hier, ich könnte hier eine Zeichenfolge einsetzen, eine Liste hier. Alles würde funktionieren. Dies muss nicht beide gleich sein. Das ist sehr wichtig. wollte ich auch erwähnen. Und wie holen wir jetzt einen Wert aus einer Map heraus? Nun, sagen wir, System Out Print-Zeile. Und dann sagen wir Country to Capital Dot Get. Und du siehst, dass ich eine Zeichenfolge angeben muss. Und was ich rauskriege, ist natürlich eine Schnur hier, aber das muss ich liefern. Und dann bekomme ich das da raus. Der Rückgabetyp und ich setze in Deutschland, und dann wird Berlin ausgegeben, da Deutschland der Schlüssel zum Schlüssel-Wert-Paar ist, Deutschland, Berlin sollte ziemlich einfach sein. Ich kann auch fragen, ob die Map einen bestimmten Schlüssel enthält oder nicht einen bestimmten Wert enthält. Also kann ich System out print line sagen. Und dann, nur damit jeder weiß was wir hier fragen, enthält Schlüsseldeutschland. Und dann werden wir sagen, dass Country to Capital Dot Schlüssel enthält, Deutschland, was natürlich wahr sein wird. Dann werden wir das einfach duplizieren. Dann sagen wir, enthält einen Wert. So können wir auch nach Werten fragen, zum Beispiel London. Und dann können wir die enthält eine Value-Methode genau hier aufrufen , pass und London genau hier. Und wenn wir das einfach ausführen, sollten wir es sehen. Zunächst einmal, genau hier, ist der Berliner Kurs die Hauptstadt Deutschlands und enthält dann den Schlüssel. Deutsch wird wahr sein, weil es diesen Schlüssel enthält und dann Wert enthält. London wird falsch sein, weil wir hier natürlich keinen Londoner Urin als Wert haben. Wir können auch Dinge von einer Karte entfernen. Also noch einmal systemieren, Zeile drucken und verbinden, um zu sagen, Zeile drucken und verbinden, um zu sagen, ich kann sagen, Land zum Großschreibung, Punktentfernung. Und das Coole an dem Remove, das Sie sehen können , ist, dass ich entweder den Schlüssel übergeben kann oder auch sowohl den Schlüssel als auch das Objekt übergeben kann. Und dann wird es einen True zurückgeben , wenn das entfernt wurde, weil diese vielleicht nicht übereinstimmen und Sie hier eine bestimmte Funktionalität wünschen . Sonst kannst du einfach den Schlüssel übergeben und dann bekommst du tatsächlich auch die Rücksendung. So erhalten Sie ein letztes, letztes Wertgeschäft. Das sollte also jetzt Paris sagen. Und danach sind Marken tatsächlich, wie Sie sehen können, und nachdem diese im Grunde genommen von dieser Karte entfernt wurde, ist das eine sehr interessante Idee von Karten. Sie können unglaublich nützlich sein. Es ist jedoch natürlich manchmal schwierig, auf diese abstrakte Art von Weise, wenn ich denen nur zeige wo man sie wirklich benutzen kann. Die Verwendung dieser Datentypen kann manchmal sein, naja, es ist keine exakte Wissenschaft, oder? Manchmal willst du also etwas benutzen. Ich bin mir nicht sicher ob das passt. Probieren Sie es noch einmal aus. Steve arbeitet und dann wird es dir gut gehen. Und dann nicht zuletzt, was wir uns die Sets ansehen werden. Was Sets sind, wie ich bereits erwähnt habe, Dinge, die in der Codebase von Minecraft stark verwendet werden . Und ein Set ist nur eine Sammlung, eine Sammlung, die keine Duplikate enthält. Nun, das ist die einfachste Definition eines Sets. Es ist nur eine Liste oder eine Sammlung, die keine Duplikate enthält. Also eine Reihe von String, wir könnten dies beispielsweise als Benutzernamen haben, bei jedem Problem, das in diesem Fall einem neuen HashSet entspricht, dann können Sie sehen, dass dies auch war importiert und jetzt hat sich das hier in eine Geschichte verwandelt, weil alle diese unter dem Util-Paket enthalten sind . Es gibt also eigentlich nicht zu viele Importe hier. Das macht es irgendwie alleine. Das ist sehr nett. Also jetzt haben wir ein Set und wir können natürlich zu diesen Benutzernamen hinzufügen, zum Beispiel Baumwolljob. Oder wir könnten sagen, Benutzernamen dot add, Nano Tech genau hier. Und dann können wir sagen, naja, okay, fair genug, das ist wirklich cool, aber was macht ein Set sonst noch? Nun, noch einmal, wenn wir jetzt zweimal etwas hinzufügen wollen , können Sie zum Beispiel etwas wie Benutzernamen hinzufügen, sagen wir FV, oder? Und dann dupliziere ich das und möchte es zweimal denselben Namen hinzufügen, oder? Wir werden tatsächlich acht Fehler zurückerhalten. Hier bekommen wir ein wahres, hier bekommen wir eine falsche denn das ist bereits da drin, die Zeichenfolge befindet sich bereits in der Sammlung. Und weil es keine Duplikate enthält, können wir es immer nur einmal haben. Wenn ich das alles tatsächlich habe, wirst du sehen, dass der erste wahr ist, weil F oder V natürlich noch nicht hinzugefügt wurde. Und nachdem es hinzugefügt wurde und wir versuchen, es erneut hinzuzufügen, erhalten wir eine Rückgabe falsch. Das ist also sehr interessant. Bei allen Sets kann man nicht wirklich einzelne Dinge innerhalb des Sets nennen . Das Set ist wirklich eine Sammlung , die irgendwie zusammen verwendet werden sollte. Und ich wollte die Sets nur sanft hier vorstellen , damit du von ihnen gehört hast. Sobald wir sie also im Spiel oder innerhalb des Minecraft-Codes sehen , werden Sie nicht vollständig überrascht sein. Also der letzte Abschnitt hier, Pfeile, auf die du stoßen könntest, oder? Das ist also immer eine wichtige Sache. Du kannst einfach, lass uns das einfach machen. Kommentar abheben waren Pfeile. Ich habe gerade gesehen, wo Fehler bitte, nicht für Terroristen das, das nicht gut wäre. Lassen Sie uns das tatsächlich aus Gründen des Arguments kopieren und wir werden dieses C einfach in ein kleines C ändern und n wird in Ordnung sein. Der erste ist also der Index außerhalb der gebundenen Ausnahme. Also lasst uns einfach folgendes machen. Lassen Sie uns das auskommentieren. Und zuallererst ist dies die Fragenliste. Da gehst du. Überhaupt keine Sorgen. Und wenn wir das tun, werden Sie sehen, dass wir hier eine Ausnahme bekommen, der Index außerhalb der Grenzen Ausnahme. Dies ist also eine sehr, sehr ähnliche Ausnahme vom Array-Index außerhalb der Grenzen Ausnahme ist nur mit einer Liste. Das ist so ziemlich alles, was es gibt. Also haben wir versucht, einen Index in die GetMethod zu übergeben , der für Listen nicht existiert. Wenn wir also nur zwei Elemente haben, ist das erste von Index 0, das zweite von Index eins. So sehr wichtig hier, dass es natürlich nicht funktionieren würde, zwei zu passieren, oder? Das ist also die erste Ausnahme. Und dann, nun, die andere Sache ist keine wirkliche Ausnahme, aber es wird eine Null zurückgeben. Wenn wir also einen Schlüssel in eine Map geben, die nicht existiert, werden wir eine Null zurückgeben, oder? Und das könnte zu einem Pfeil nach unten führen. Also wenn ich das mache, wirst du sehen, dass wenn ich das mache, wir hier unten eine Null bekommen. Und das ist im Grunde genommen richtig, Malta, das haben wir in unserem Land nicht, um Mab zu hauptstadt. Das wird uns tatsächlich eine Null zurückgeben. Daher könnte es sehr wertvoll sein zu sehen, ob er einen Schlüssel enthält, bevor Sie tatsächlich versuchen , ihn zu bekommen, war großartig. Eine Null zurückzugeben ist nicht das Ende der Welt. Natürlich nicht vorbei, wenn Sie dann, wenn Sie nicht erwarten, dass dies null ist oder Sie möglicherweise nicht damit umgehen, dass dies Null ist, dann können Sie auf einige Probleme stoßen. Nun, das sind einige der Fehler, die ich hier unbedingt erwähnen wollte. Das wäre also, naja, die Summe der Sammlungen. Natürlich gibt es noch viel mehr, es gibt noch viel mehr Datentypen , die Sie verwenden könnten. Wissen Sie, es gibt nicht nur die Karten und Sets der Liste , es gibt noch viel anderes, sondern wird vorerst ausreichen, um im Grunde genommen loszulegen. Also das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 24. (Java) Java) Object Programmierung: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir über objektorientierte Programmierung sprechen . Und wie Sie sehen können, sind wir tatsächlich auf PowerPoint. In diesem Fall. Wir werden hier tatsächlich eine kleine PowerPoint-Präsentation haben . Fangen wir also einfach mit der Idee an , was ist diese objektorientierte Programmierung? Nun, in dieser Vorlesung werden wir ein wenig über die Theorie und einige der Begriffe durchgehen ein wenig über die Theorie und einige der , mit denen Sie sich im Grunde genommen vertraut machen müssen vertraut machen müssen, um zu wissen, was vor sich geht und den Sprachgebrauch, wenn Sie mit Leuten sprechen die Programmierung kennen, und wenn ich damit fortfahre, also werden Sie besonders im Minecraft-Teil dieser Vorlesung oder dieses Kurses sehen Sie, dass ich grundsätzlich immer die Begriffe verwenden werde, die verwendet werden müssen. Also Klassen, Methoden, Objekte, solche Sachen, und du solltest wissen, was das sind. Aber das erste , worüber wir nachdenken können, ist, dass alles ein Objekt ist. Okay, lasst uns das als Information speichern, als Information und wir können benutzerdefinierte Objekte mit benutzerdefinierter Funktionalität erstellen . Interessant, Okay, und diese würden Klassen genannt werden. Eine Klasse ist also, wir können ein Objekt aus einer Klasse erstellen, okay, Interessant. Und dann können Klassen vererbbare Funktionen, die Methoden, Variablen aus anderen Klassen sein würden. Wir werden zwei grundsätzlich Theoriebeispiele dafür sehen. Und dann werden wir uns in späteren Vorträgen auch einige Praxisbeispiele ansehen . Aber lasst uns zunächst die sehr wichtigen Begriffe hier durchgehen . Eine Klasse oder Klassen sind also benutzerdefinierte oder benutzerdefinierte Datentypen. Aber jetzt kommen wir tatsächlich an den Punkt, an dem Sie Ihre eigenen Datentypen erstellen können. Und diese Klassen können dann grundsätzlich als Vorlagen zum Erstellen von Objekten verwendet werden . Und diese Klassen enthalten Methoden und Felder, die als Mitglieder bezeichnet werden. Machen wir diesen Schritt nach dem anderen. Eine Klasse ist also ein benutzerdefinierter oder benutzerdefinierter Datentyp , der ziemlich cool ist. Und dazu gehören Methoden und Felder, über die wir genau hier sprechen werden. Dies sind Mitglieder und wie sie zum Erstellen von Objekten verwendet werden können. Was ist jetzt ein Objekt? Ein Objekt ist nichts anderes als eine Instanz einer bestimmten Klasse mit definierten Daten. Wir werden in nur einem Augenblick ein Beispiel dafür sehen. Das wird also viel klarer werden. Aber lasst uns zuerst über die Mitglieder sprechen. Diese sollten ziemlich selbsterklärend oder viel einfacher sein als die Objekte. Mitglieder einer Klasse sind also entweder eine Methode oder ein Feld, und Sie können auch Methodenfunktionen aufrufen. Leute, die sich ein bisschen mehr mit Java beschäftigen , wissen vielleicht, dass dies nicht unbedingt notwendig ist. Funktionen unterscheiden sich also winzig von Methoden. Für unsere Zwecke ist es vollkommen in Ordnung. Manche Leute sagen immer noch Funktionen, obwohl es Methoden gibt , wird es gut und niemand wird damit verrückt werden . Wir müssen dabei nicht zu pedantisch sein, oder? So können Methoden oder Funktionen im Grunde spezifisches Verhalten für ein Objekt definiert werden und Methoden für bestimmte Objekte aufgerufen werden. Ein Beispiel dafür, das wir bereits gesehen haben, ist so etwas wie die Größenmethode für eine bestimmte Liste. Natürlich wird jede Liste die gleiche Größenmethode haben. Was zurückgegeben wird, ist spezifisch für eine bestimmte Liste. Also für dieses Objekt, aber das ist die allgemeine Idee. Eagles oder Attribute, wie sie auch unsere Variablen genannt werden, die in der Klasse definiert sind , die einige Daten in Bezug auf diese Klasse speichert . Wenn wir zum Beispiel eine Personenklasse haben würden, die eine Zeichenfolge namens name speichern könnte, sollte das auch sinnvoll sein und sollte ziemlich selbsterklärend sein , wie dieses Beispiel hier. Und das alles werden wir natürlich auch live und in Aktion sehen, ich glaube, dass wir im nächsten Vortrag sofort anfangen werden , in Klassen und Objekte einzusteigen. Es gibt also überhaupt keine Sorgen. Werfen wir zunächst einen Blick auf die Idee, Dinge zu erben. Also das möchte ich zunächst mit der Idee vorsprechen, dass das absolut in Ordnung ist, wenn Sie das nicht vollständig verstehen. Die Vererbung ist sehr kompliziert. Ich wollte das nur erwähnen , damit du es schon einmal gehört hast. Die Idee ist also, dass wir einen Tierunterricht haben könnten, oder? Und das erbt im Grunde genommen seine gesamte Funktionalität und alle seine Variablen bis zu zwei Klassen. Also das zweibeinige Tier und die vierbeinige Tierklasse, und diese sind auf folgende Weise verwandt. Die Tierklasse ist die Oberklasse des zweibeinigen Tieres und die Superklasse für das Vierbeiner. Während das vierbeinige Tier und die zweibeinigen Tierklassen Unterklassen der Tierklasse sind . Sie können immer nur eine Superklasse haben, aber wie Sie sehen können, können Sie mehrere Unterklassen haben. Und dann können wir hier sogar noch weiter nach unten gehen und noch mehr Sachen erben und mehr Funktionalität hinzufügen. Sie gehen also irgendwie von einem sehr generischen oder sehr abstrakten, sehr spezifischen, oder? Animal ist eine sehr abstrakte Kategorie. Zweibeiniges Tier. Wir fangen an, uns wirklich auf spezifischere Dinge zu befassen, Menschen und einen Strauß. Jetzt sind wir sehr, sehr spezifisch. Das ist also eine Idee, die du dir vorstellen kannst, oder? Denken wir jetzt an einen Hundeunterricht, oder? Wir haben also eine Klasse , die als Hund bezeichnet wird und die einige Attribute oder einige Felder haben könnte , oder? Welches wird ein Bild, ein Name und ein Alter sein. Und wir werden sagen, Okay, das ist in Ordnung. Das ist okay, dass es gut genug ist , um einen bestimmten Hund zu beschreiben. Und nun wollen wir einen neuen Hund erschaffen. Wir möchten also eine neue Instanz der Hundeklasse erstellen. Wir möchten ein neues Objekt erstellen. Nun, lass uns das einfach machen. Da haben wir es. Im Moment haben wir einen neuen Hund geschaffen. Benji war sieben Jahre alt und hier ist ein sehr süßes Bild von ihm. Ist das nicht einfach nett? Ja, wenn ich es selbst sage, denke ich, dass dies hier ein sehr süßes Bild ist, und das ist ein bestimmter Hund, oder? Wir haben hier nichts wirklich geändert. Das einzige, was wir getan haben, ist, dass wir im Grunde eine Objektrate erstellt haben. Wenn wir hierher zurückkehren hat jeder Hund ein Bild, einen Namen und ein Alter, und dies ist eine bestimmte Instanz oder ein bestimmtes Objekt der Hundeklasse. Jetzt erstellen wir einfach ein anderes. Zum Beispiel hier, Gracie fünf Jahre alt und hat auch ein sehr süßes Bild genau dort. Wie Sie sehen können, handelt es sich jedoch zwei verschiedene Objekte oder zwei verschiedene Instanzen der Dog-Klasse. Sie sind jedoch beide Hunde. Dies ist also eine Art Trennung , die ich bei Klassen und Objekten durchgehen möchte , dass die Klasse die Vorlage ist. Und sobald Sie ein bestimmtes Objekt erstellt haben , wird dieses dann zu einer Instanz dieser Klasse. Das kann manchmal etwas seltsam sein , besonders für Anfänger. Aber keine Sorgen auf einmal. Wir werden tatsächlich damit anfangen, mit diesem Unheimlichen zu programmieren oder wenn wir dies tatsächlich in die Praxis umsetzen wird es viel klarer sein. Ich bin mir dessen sicher, oder? Aber das wäre schon das Ende der Vorlesung. Eigentlich. Das Wichtigste an dieser Vorlesung, lass mich einfach schnell hierher zurückkehren ist dieser hier, oder? Diese Folie ist wahrscheinlich die wichtigste. Die Folien stehen Ihnen tatsächlich auch als Ressource zur Verfügung, sodass Sie diese auch herunterladen können . Es gibt also keine Sorgen. Sie haben also auch Zugang zu diesen beiden niedlichen Hundebildern. Das wird also natürlich ein sehr großes Plus sein. Ansonsten wäre dies für diesen Vortrag genau hier, wie gesagt, ein bisschen mehr Theorie und den nächsten Vortrag werden wir all das in die Praxis umsetzen. Das wäre es also für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und Neuronen sind neu, und wir sehen uns in der nächsten Vorlesung. Also ja. 25. (Java) Java und Objekte: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir im Grunde die Theorie anwenden, die wir letztes Mal gelernt haben. In der letzten Vorlesung werden wir über Klassen und Objekte sprechen. Zunächst müssen wir natürlich eine neue Klasse erstellen, jetzt eine benutzerdefinierte Klasse. Und dafür gehen wir in dieses Projektfenster genau hier in unserem Paket. Das ist also das Paket, oder? Net half Monroe war das Paket, das wir erstellt haben oder ein anderes, das ich erstellt habe. Hoffentlich ist das dein Name. dann in Ihrem Names-Paket Sie dann in Ihrem Names-Paket mit der rechten Maustaste auf neue Java-Klasse. Und dann nennen Sie dies die Hundeklasse, stellen Sie sicher, dass die Klasse hier ausgewählt ist , und drücken Sie dann die Eingabetaste. Jetzt erscheint dieses Jahr dieses Fenster nur für mich, weil ich ein GitHub-Repository habe , das mit diesem Projekt verknüpft ist. Wenn du das nicht hast, ist das absolut in Ordnung. Mach dir darüber überhaupt keine Sorgen. Also wollte ich das nur erwähnen. Und jetzt füge statt dieser geschweiften Klammern Mitglieder zu dieser Klasse hinzu. Also könnten wir zum Beispiel einige Felder hinzufügen, oder? Also können wir etwas sagen wie Hinzufügen, Hinzufügen einiger Felder, oder? Und dann denken wir an die PowerPoint-Präsentation zurück , die wir gesehen haben, oder? Wir hatten ein öffentliches String-Bild. Wir haben über ein Bild nachgedacht. Wir werden nur sagen, dass eine Zeichenfolge , die vorerst völlig in Ordnung ist, ein öffentlicher String-Name. Und dann sagen wir eine öffentliche Ganzzahl, die die Altersvariable ist. Das ist vorerst alles in Ordnung . Wir werden die Öffentlichkeit hier wieder ignorieren. Wir müssen dies nur noch einmal in sehr, sehr kurzer Zeit öffentlich machen. Eigentlich werden wir die Zugriffsmodifikatoren sehen. Das ist also buchstäblich auch die nächste Vorlesung. Und dann werden wir verstehen , was das vorerst bedeutet. Wir müssen es öffentlich machen. Und was wir auch tun können, ist zum Beispiel so etwas wie eine öffentliche Leere. Und dann werden wir zum Beispiel, damit wir sowohl Felder als auch Methoden erstellen können, oder? Das ist also eine Methode hier, und das sind natürlich hier Felder. Dann kann ich etwas mit dieser Methode tun, was nur aus Argumenten dient. Das werde ich gerade sagen, zu diesem Zeitpunkt. Okay, jetzt ist das alles eingerichtet. Was machen wir mit seinem Hundeunterricht, oder? Wie machen wir daraus ein neues Objekt? Nun, wir können folgendes tun. Du könntest „Hund“ sagen, oder? Logo Und jetzt können wir zum Beispiel zunächst so etwas sagen. Das könnte zum ersten Mal etwas verwirrend sein. Vielleicht wie warte, aber ich meine, ich sollte das irgendwie erkennen, oder? Dies ist nur eine normale Variable , die wir hier deklariert haben, oder? Ist nur eine Art Hund. Nun, wie ich schon sagte, weil du jetzt anfängst, benutzerdefinierte Klassen zu verwenden. Im Grunde genommen benutzerdefinierte Datentypen. Das mag ein bisschen komisch sein, aber das ist genauso, als würde ich das tun, oder? Wirklich wenn wir darüber nachdenken, ist es nur eine Variable. Dieses Mal vom Typ Hund. Und eine andere Möglichkeit, dies tatsächlich zu initialisieren, ist, dass ich einen neuen Hund sagen kann und du siehst, dass es das tatsächlich automatisch für uns generiert. Und jetzt habe ich einen neuen Hund geschaffen. Dies ist also die allgemeine Vorstellung davon , wie Sie ein neues Objekt erstellen können. Sie müssen also das neue Schlüsselwort verwenden, das wir bereits ein paar Mal gesehen haben. Zum Beispiel mussten wir mit dem Scanner einen neuen Scanner erstellen. Und das ergibt auch Sinn. Scanner ist nur ein anderes Objekt oder eine andere Klasse, mit der wir ein neues Objekt instanziieren können , oder eine neue Instanz eines Zolls kann das im Grunde verwenden. Das ist irgendwie die Idee. Nun, die eigentliche Frage ist jedoch, dass okay als hätte ich diesen Hund hier, aber wie ich die Felder , was sind sie jetzt? Nun, probieren wir es einfach aus. Schreiben Sie System aus, drucken Sie Zeile, Togo, Punktname zum Beispiel. Mal sehen, naja, wie wurde der Hund als Hund genannt? Nein, eigentlich ist der Name null, weil wir keinen dieser Werte zugewiesen haben. Daher sind sie alle null, weil wir hier den Standardkonstruktor verwendet haben . Was heißt das? Nun, der Konstruktor ist ein weiterer Teil einer Klasse, der sehr wichtig ist, und dies wird in diesem Fall eigentlich nicht als Mitglied eingestuft , dies ist etwas anderes. Der Konstruktor ist also, wie der Name schon sagt, etwas, das ein Objekt aus dieser Vorlage aus dieser Klasse konstruiert ein Objekt aus dieser Vorlage , oder? Der Standardkonstruktor, jede Klasse, die Sie erstellen, hat so etwas. Es wird also so mit einem Zugriffsmodifikator geschrieben. Und dann folgte der Name der Klasse unmittelbar danach Klammern, die nichts in sich haben. Und dann im Grunde fast wie eine normale Methode, nur ohne Rückgabetyp oder vielmehr ist der Rückgabetyp der gleiche wie der Name. Du kannst dir das auch so vorstellen . Und dieses Jahr ist der Standardkonstruktor. Und das haben wir hier für dieses Dokument benutzt , oder? Dies ist jetzt der Standardkonstruktor. Und das eigentliche Problem hier ist natürlich , dass man sehen kann, dass darin nichts passiert. Keinem dieser Dinge wurde also ein Wert zugewiesen. Wir können jedoch auch eigene Konstruktoren erstellen. Im Moment können wir einen benutzerdefinierten Konstruktor erstellen. So schreiben Sie zum Beispiel öffentlicher Hund, String, Bild , String-Name und Alter so etwas und dann können wir diese zuweisen. Dieses Bild ist also gleich Bild, this.name entspricht dem Namen, und dieses Punktalter entspricht dem Alter. Und Sie werden plötzlich sehen, alles immer noch völlig gut funktioniert. Nun das erste, was Sie fragen könnten, was ist das, dieses Keyword? Nun, das bezieht sich auf das Objekt , das wir Rate erstellen. das zum Beispiel vorstellen, Sie können sich das zum Beispiel vorstellen, wenn wir diese Wolf-Methode aufrufen. Wenn wir dies nennen würden, müssten wir dies für ein bestimmtes Objekt aufrufen. Jedes Mal, wenn ich dies innerhalb dieser Methode verwende, wird auf dieses bestimmte Objekt im Grunde genommen Bezug genommen. So kannst du dir das also vorstellen. gleiche Weise mit dem Konstruktor. Wenn ich dies verwende, wird auf dieses bestimmte Objekt, das wir gerade erstellen , verwiesen, da der Parametername hier denselben Namen wie das Feld hat . müssen sie nicht unbedingt, aber in diesem Fall tun sie es. Dann möchten wir dieses Tool sehr verwenden, geben Sie an, hey, das ist das Feld und als Parameter. Und jetzt kann ich, anstatt einen mit dem Standardkonstruktor hier zu erstellen, ich kann tatsächlich etwas tun wie zum Beispiel Hund und Benji, sagen wir mal gleich neuen Hund, oder? Und dann kann man sehen, ob ich hier eine Sekunde warte, kann sich das im Grunde ansehen. Da ist es. Jetzt bekommen wir hier tatsächlich einen Vorschlag, entweder keine Parameter oder Zeichenfolge, Bildzeichenfolge, Name, String oder int Age. Also bekommen wir tatsächlich den Vorschlag hier. Sagen wir Benji Dot PNG, oder? Sagen wir Benji für den Namen und dann sieben für das Alter. Und Sie können sehen, dass dies fast das Gleiche ist wie ein normaler Methodenaufruf, aber in diesem Fall erstellt es tatsächlich ein neues Objekt. Und dann können wir System Out Print-Line machen. Jetzt Benji Punktname, und dann sagen wir Benji Punkt h. Und jetzt wird das ausgegeben ist Benji und eine Sieben, wie Sie sehen können. Das ist also wirklich verdammt cool. Es gibt noch eine Sache. Sagen wir einfach aus Gründen des Arguments hier, wenn wir viele Felder haben, oder? Manchmal kann es ein wenig mühsam sein, sie alle hier im Konstruktor zu stecken . Was wir also tun können, ist, dass wir auch mit der rechten Maustaste auf Konstruktor generieren klicken können . Dann können Sie einfach alle Felder auswählen , die Sie initialisieren möchten, die Sie vom Konstruktor sehen würden, und wir sagen, okay, und das erzeugt genau das Gleiche , was wir zuvor gemacht haben. Ich wollte das erwähnen, weil das manchmal sehr nützlich sein kann , oder? Es gibt also viele Dinge , die automatisch generiert werden können. Denken Sie also auch daran. Aber lasst uns auch noch ein dunkles machen. Also nur um das zu veranschaulichen, also ist Hund Gracie einem neuen Hund gleich , oder? Dies ist der fettige Punkt PNG, Gracie, und ich glaube, Gracie war fünf oder fünf ist in Ordnung. Lassen Sie uns das jetzt auch ausgeben. Also wähle ich dieses Control C, Control V aus, um es einzufügen und dann die Variable hier und die Art von Benji in Gracie zu ändern . Und das funktioniert natürlich auch und es wird unterschiedliche Werte haben. sind also wieder beide Hunde, die überfallen sind, aber es sind zwei verschiedene Hunde. Es gibt also zwei verschiedene Objekte. Und ich hoffe, dass die Theorie der letzten Vorlesung sehr leicht zu diesem anschaulichen Beispiel übergeht , sobald wir sie tatsächlich verwenden, wird es hoffentlich sehr klar. Und wir werden auch tun, dass wir einfach diesen Wolf ändern, den du tatsächlich bist zu diesem Punktnamen, einfach waft. Was wir dann sehen können, ist auch dass wir, wenn wir diese Methode erneut aufrufen , insbesondere diese Methode tatsächlich auf ein bestimmtes Objekt aufrufen müssen, oder? Also müssen wir tatsächlich Benji-Punkt oder rassigen Punkt retten , sollte alles sinnvoll sein. Und was jetzt passieren wird, ist, dass es nicht für jeden von ihnen dasselbe sein wird , oder? Also ist Benji einfach umgezogen oder Gracie einfach Swift. Dies bezieht sich also noch einmal auf das eigentliche Objekt, bei dem dies sozusagen aufgerufen wird. Das ist also die Idee. Und dann eine letzte Sache, die vielleicht ein bisschen anders oder ein bisschen seltsam sein könnte. Es ist wie, naja, warte eine Sekunde. Benji Dot Alter, oder? Okay. Kann ich das einfach etwas zuweisen ? Ja, das kann ich. Nun, das ist sehr interessant, oder? Plötzlich, oder? Benji ist 10 Jahre alt geworden und du würdest vielleicht sagen: Warte, das ist nicht, das ergibt keinen Sinn, oder? Es sind nur sieben sie. Das stimmt nicht, ist das ja, das hat jetzt gerettet. Und das werden wir uns in der nächsten Vorlesung ansehen , wenn es um Zugriffsmodifikatoren geht. Weil all dies öffentlich ist, bedeutet im Grunde, dass Sie dies ändern und von überall im Code darauf zugreifen können. Und das ist manchmal nicht das, was wir wollen. Manchmal möchten Sie den Zugriff auf bestimmte Felder, Variablen, Methoden einschränken den Zugriff auf bestimmte Felder, Variablen, , all diesen Jazz im Grunde genommen. Und wie gesagt, wir werden uns das in der nächsten Vorlesung ansehen. Dies wäre jedoch für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 26. (Java) Zugriffsmodifikatoren: Okay, willkommen zurück zur Java-Einführung hier für Minecraft-Morgen und in dieser Vorlesung werden wir uns die Zugriffsmodifikatoren ansehen. Sie benötigen also den gesamten Code aus der letzten Vorlesung. Keine Sorge, dies steht Ihnen natürlich als Ressource zur Verfügung. Also schau dir das auf jeden Fall an und dann gut, wir springen einfach direkt ein. Die Idee war also, dass wir alle unsere Bereiche hier als Öffentlichkeit hatten, oder? Also war alles hier öffentlich. Und wir haben nachgedacht, naja, okay, also wie werden wir das benutzen? Oder wie werden wir in der Lage sein, einige Thiels außerhalb dieser Klasse nicht veränderbar oder modifizierbar zu machen . Nun, lasst uns einfach alle Zugriffsmodifikatoren durchgehen . Es gibt also eine Öffentlichkeit, es ist geschützt und es gibt private. Dann gibt es zwei weitere Dinge , die wir auch sehen werden die statisch sind und das letzte, nun, es sind keine wirklichen Zugriffsmodifikatoren, aber sie sind auch eine Art Modifikatoren, die Sie vor Felder stellen können und, oder Methoden. Wenn es also darum geht, den Namen hier zum Beispiel zu schützen, wird dies tatsächlich nichts bewirken. Der Grund, warum es nichts tut , ist , dass ein geschütztes Feld oder eine geschützte Methode im selben Paket aufgerufen werden kann. Und weil der Hund und die Hauptklasse oder im selben Paket enthalten sind, können wir uns hier immer noch auf dieses Feld beziehen. Und das geschützte Schlüsselwort funktioniert auch oder Klassen, die sich davon erstrecken. Im Grunde könnten Vermögenswerte, die von der Hundeklasse erben , jetzt auch die Namensvariable verwenden. Was ist mit der Altersvariablen? Nun, lasst uns folgendes machen. Machen wir das privat. Und plötzlich können wir verwandte Probleme sehen, oder? Alles wird verrückt. Jeder flippt aus, weil wir plötzlich tatsächlich darauf zugreifen können, weil eine private Variable ist wir plötzlich tatsächlich darauf zugreifen können und nur in derselben Klasse zugegriffen wird, was bedeutet, dass wir nicht direkt darauf zugreifen können. Wir können jedoch etwas tun, das eine Methode sein wird , gibt diesen Wert zurück. Das nennt man also Gitarre. Und was wir tun können, ist, dass wir mit der rechten Maustaste auf Generieren klicken können und Sie sehen, dass wir tatsächlich Getter und Setter generieren können . Setter sind so ziemlich das Gleiche, wo Sie den variablen Zinssatz festlegen. Wo man das also grundsätzlich einstellen kann und einen Getter ist genau das Richtige, wo man das bekommt. Also kann ich die Altersvariable auswählen und sagen, okay, und sehen, dass sie eine Methode für uns generiert öffentliche Ganzzahl, weil das natürlich der Rückgabetyp hier ist, Alter abrufen. Auf diese Weise würden Sie dies formulieren oder der Name davon war normalerweise get und dann nur der Name der Variablen oder des Feldes. Und dann geben wir mit dieser Methode das Alter zurück. Und anstatt es direkt anzurufen, können wir sagen Im Alter, im Alter, wenn Alter. Und jetzt ist hier das Interessante. Natürlich funktioniert das nicht , weil wir einer Methode nichts zuweisen können . Deshalb funktioniert das nicht, oder? Wir können also sagen, dass es nicht funktioniert. Daher können wir dieser Altersvariablen keinen neuen Wert zuweisen. Das ist also wirklich das Coole Ding. Und dann können wir auch ein statisches und ein endgültiges Keyword haben. Okay, was ist das? Nun, Statik wird sehr interessant sein. Wenn ich also ein öffentliches statisches Int habe, nenne ich das den Multiplikator für den Hund zu menschlichem Ohr. Multiplikator, der gleich sieben ist, wenn ich mich hier nicht irre. Und genau das können wir uns so vorstellen. Muss jeder Hund ein bestimmtes Feld haben, das ist dieser Multiplikator. Ich meine, wenn wir wirklich ehrlich sind, nicht wirklich, richtig, wenn wir darüber nachdenken. Der Doktor hier, Dr. Multiplikator für das menschliche Jahr ist wirklich etwas, das für jeden Hund funktioniert. Genau. Deshalb ist es statisch. Ist eine statische Variable oder eine statische Methode und wird tatsächlich für die Klasse aufgerufen und es müssen keine bestimmten Objekte erstellt werden. Was ich also tun kann, ist zum Beispiel, anstatt Benji so zu nennen, dass ER, ich kann Hund, Punkt, Punkt, Mensch, Arzt, Menschliches Jahr Multiplikator sagen . Sie können sehen, dass ich das für die eigentliche Klasse aufrufe und nicht für das Objekt. Das ist also eine sehr interessante Sache. Und das könnte dein Gehirn hier ein bisschen brechen, denn erstens ist es etwas seltsam, in Statik zu kommen und es scheint ersten Blick vielleicht sehr kontraintuitiv zu sein, aber überhaupt keine Sorgen. Wenn wir das wirklich benutzen, wird es gut gehen. Und der allgemeine Kern ist, dass, weißt du, wenn etwas Statisches normalerweise etwas ist, das für alle Objekte gleich ist, oder? Denn Sie, Dr. Human Year Multiplikator , ändert sich wieder nicht von Dr. Dog. Ignorieren wir nun die Tatsache, dass es sich vielleicht ändert, wenn es verschiedene Rassen und ähnliches gibt. Ignorieren wir das einfach. Es ist natürlich nur ein Beispiel hier, oder? Und dann ist die Frage auch, nun, warte eine Sekunde. Das muss sich wirklich nicht ändern, oder? Weil wir jetzt wieder das gleiche Problem haben, oder? Also Hunde, dein Multiplikator und plötzlich gleich zehn, wir können das einfach ändern und es ist, als wäre das nicht wirklich klug, oder? Das muss nicht passieren. Nun, zum Glück gibt es auch das endgültige Keyword. Und das macht es so, wenn ich tatsächlich Control Z drücke, um zurückzukehren, können Sie sehen, dass einer endgültigen Variablen keinen Wert zuweisen kann , da eine eine endgültige Variable ist , die sich der Wert niemals ändern kann nachdem es zugewiesen wurde. Das ist auch sehr interessant. Es gibt jedoch natürlich deutlichen Unterschied zwischen einem privaten und einem endgültigen variablen Zinssatz. Weil eine endgültige Variable wir theoretisch ändern könnten, oder? Wir könnten etwas sagen wie zum Beispiel, lasst uns einfach eine öffentliche, öffentliche Leere machen. Geburtstag der Öffentlichkeit ungültig, oder? Für einen Hund, wo wir Alter plus plus sagen. Aber das funktioniert immer noch, obwohl es privat ist, können wir diese Variable ändern. Wir könnten diese Variable nie ändern, wenn sie endgültig ist. Das ist also der Unterschied dort , der hoffentlich in diesem Sinne verständlich ist, oder? Werfen wir also noch einmal einen Blick auf die folgende Rate. Also können wir dann auch etwas sagen wie: Nun, ich meine, lass uns einfach eine hinzufügen, lass uns einfach noch eine Sache hinzufügen, so etwas wie ein öffentliches Int. Also GetAge in Menschenjahren, richtig, wo wir den Multiplikator hier verwenden können, dass wir die altersvariable Zeiten zurückgeben werden , die der Arzt hier, menschlicher Arzt, Multiplikator für das menschliche Jahr genau dort ist. Jetzt können wir das einfach nennen normalerweise kann man natürlich auch Dog Dot so sagen. müssen wir nicht tun, weil wir in der Hundeklasse sind, also können wir es einfach ohne das nennen. Das ist eine sehr persönliche Präferenz, nur ob Sie das tun möchten oder nicht. Aber was wir dann zum Beispiel sagen können, ist, dass wir dann sagen können, dass Benji Dot in Menschenjahren alt wird, und das wird dann sein, was ist das? 49? Ja, 49. Da gehst du. So einfach genug. Aber das ist irgendwie der allgemeine Kern. Wir haben öffentlich, geschützt und privat für die Zugriffsmodifikatoren. Und dann gibt es auch statisch und endgültig. Und wir werden es auf jeden Fall sein, dass wir all diese in zukünftigen Vorträgen treffen werden, besonders wenn wir uns mit Mikrowellen-Modding befassen, das wird hier sehr relevant sein, besonders so etwas wie das endgültige Schlüsselwort und das statische Schlüsselwort, diese werden oft verwendet. Noch einmal, wenn sie ein bisschen unklar sind , ist das absolut in Ordnung. Überhaupt keine Sorgen. Sobald du anfängst, mit ihnen zu arbeiten , wird es klarer davonkommen. Und noch einmal kann ich Ihnen sehr raten, ein paar Sachen auszuprobieren. Schießen Sie einfach intelligent an, machen Sie eine Reihe von Klassen und probieren Sie einfach ein paar Sachen aus. Mache ein paar Klassen, mache ein paar Felder, ganze Reihe von Sachen. Du kannst nichts kaputt machen. Eigentlich nicht. Es geht also nur darum im Grunde offen für Experimente zu sein. Das ist also ein Rat, den ich dir geben kann. Aber sonst wäre das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 27. (Java) Vererbung und Polymorphismus: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir über Vererbung und Polymorphismus sprechen . Nun, vor allem ein Polymorphismus und Vererbung für sehr große Wörter Rate. Aber insgesamt sind sie Konzepte ziemlich einfach, besonders Polymorphismus ist eigentlich nicht so verrückt nach einem Konzept? Nun, ein weiterer Haftungsausschluss, den ich direkt vor dem Tor sagen möchte , ist, dass die tatsächliche Art von Konzept möglicherweise nicht zu 100 Prozent transparent ist, was absolut in Ordnung ist. Übrigens, das ist etwas, das noch einmal gebaut werden muss, indem gebaut werden muss nur ein paar Sachen ausprobiert, oder? Normalerweise habe ich darüber nachgedacht. Ich höre. Ich vergesse es. Ich verstehe. Ich weiß noch. Das tue ich. Ich verstehe es. Es muss also immer etwas tun, das damit einhergeht. Wie auch immer der Fall sein mag. Sagen wir, aus Gründen der Argumentation sagt jemand: Weißt du was? Ich will auch wirklich einen Katzenunterricht, denn ich bin kein Hundemensch, das ist in Ordnung. Das ist total okay. Nun, lasst uns auch hier eine Katzenklasse hinzufügen. Also eine neue Klasse, Cat. Und da gehst du. Nun, was Sie schnell erkennen werden, ist, dass die Katzenniere auch ein Bild, einen Namen und ein Alter haben sollte. Und vielleicht sagen Sie, nun, ich meine, lassen Sie uns diese Felder einfach kopieren. Und dann könnte man so sein, naja, ich muss auch alt werden, dass der Getter und dann der Wolf, vielleicht das Baby. Ich bin Mimi Chao und du kommst an einen Punkt, an dem du viel Code kopierst und normalerweise eine Menge Code durchsuchst ist ein Zeichen dafür, dass du etwas optimieren kannst. Jetzt ist eine vorzeitige Optimierung der Weg in die Hölle. Das verstehe ich. Manchmal macht dies jedoch einfach einen Sinn, wo Sie so kopiert, das kopiert, kopiert, kopiert wurde, und es ist wie, lasst uns einfach eine Methode oder eine Klasse daraus machen oder etwas anderes. Und das etwas anderes wird eigentlich eine Superklasse für die Katze und einen Hund sein, der die Tierklasse ist. Also werden wir eine neue Klasse namens Animal machen, und das wird diese jetzt speichern. Also werde ich das mit Control X, Control V ausschneiden, um dies genau hier einzufügen. Und jetzt können wir plötzlich die Hundeklasse um die Tierklasse erweitern , was bedeutet, dass wir es einfach richtig machen? Also werden wir hier alles vom Tier erben . Wir werden sagen, erweitert Tier, und das ist jetzt Erbschaft. Die Hundeklasse ist jetzt die Unterklasse des Tieres, und das Tier ist jetzt die Superklasse des Hundes, was bedeutet, dass alles hier vererbt wurde. Jetzt kann ich das buchstäblich löschen. Das einzige, was rot werden wird , ist das Alter, denn ich muss dies hier tatsächlich schützen , damit in der Unterklasse darauf zugegriffen werden kann. Aber wir haben dies in der letzten Vorlesung gesehen, in der ich gesagt habe , dass man, wenn es sich um eine geschützte Variable handelt, auch von der Unterklasse aus darauf zugreifen können . Das ist also irgendwie die Idee. Lassen Sie uns auch hier ein paar dieser Kommentare loswerden . Wir können auch den Standardkonstruktor loswerden , der ebenfalls nicht mehr notwendig ist. Jetzt haben wir diese Tierklasse, oder? Und das ist ziemlich cool. Nun können Sie sehen, dass in dieser Dog Klasse alles hier eingestellt wird. Wir möchten jedoch sicherstellen, dass jeder, dass jede Klasse, die tatsächlich von der Animal Klasse erbt, auch funktioniert. Also werden wir auch einfach einen neuen Konstruktor erstellen. Klicken Sie also mit der rechten Maustaste, generieren Sie einen Kursleiter, stellen Sie sicher, dass hier alles ausgewählt ist , und drücken Sie dann OK. Und dann werden wir gleich hier mit einem Pfeil begrüßt. Denn wenn wir den Mauszeiger darüber bewegen, können Sie sehen, dass in einem Net-Com-Zootier kein Standardkonstruktor verfügbar ist . Was heißt das? Nun, wenn Sie hier tatsächlich einen bestimmten Konstruktor hinzufügen , ist dies nicht der Standardkonstruktor. Der Standardkonstruktor funktioniert nicht mehr. Sobald Sie also einen Konstruktor haben, der nicht der Standardkonstruktor ist , müssen Sie ihn wieder wie manuell hinzufügen. Also könnte ich zum Beispiel öffentliches Tier sagen, richtig, mit nichts drin, oder? Also so etwas. Natürlich ist das nicht der Fall. Nun, weißt du, dass wir das noch einmal nicht wirklich wollen. Dies wird also gelöscht und der Standardkonstruktor funktioniert dann nicht mehr. Und was müssen wir jetzt hier machen? Nun, was wir tun können, ist, dass wir den Superhelden nennen können, und das nennt im Grunde den Konstruktor. So können wir tatsächlich PI einsetzen, wie Sie sehen können, das eigentlich schon vermuten lässt, nehmen wir einfach alle Parameter hier und setzen sie in das Jahr ein. Und jetzt nennt dieser Super jetzt den Animal Constructor genau hier. Das ist in diesem Fall tatsächlich perfekt. Dann etwas anderes, vielleicht zum Beispiel das, sowohl das Alter als auch die Geburt. Sie könnten zum Beispiel auch in der Tierklasse sein. Das würde auch völlig gut funktionieren. Und der Rest hier ist eigentlich total okay. Ich mache das nur ein bisschen anders. Also möchte ich normalerweise die Konstruktoren an der Spitze der Klasse haben, oder? Also kommen zuerst die Felder und dann die Konstruktoren und dann alle Methoden und Sachen wie diese. Obwohl die Reihenfolge natürlich etwas ist , das ganz bei Ihnen liegt, ist dies normalerweise die Konvention 0. Was würde nun passieren, wenn ich jetzt sagen würde, nun, die Katze erweitert jetzt auch die Tierklasse. Wir werden hier einen Fehler bekommen, bei dem kein Standardkonstruktor in animal verfügbar ist . Und dann haben wir diese mögliche Lösung , nämlich der Create Constructor, der super passt was wir oft sehen werden. Denn wenn Sie darauf klicken, erhalten Sie hier einfach einen neuen Konstruktor mit allen erforderlichen Parametern , die Sie benötigen um den Konstruktor Ihrer Superklasse aufzurufen. Und das ist so ziemlich es. Das ist echt verdammt cool. Und jetzt können wir tatsächlich eine neue Klasse erstellen. Man kann sehen, dass alles hier funktioniert. Wir können also sagen, dass die Katzenschnurrhaare eine neue Katze sind, oder? Also neues Konto hier. Und das ist zum Beispiel, dann Whiskers dot PNG. Und dann wird der Name Schnurrhaare sein, oder? Und dann sind sie vielleicht 12 Jahre alt oder so ähnlich. Und dann können wir zum Beispiel einfach anrufen, Whiskers dot ns kann sehen, dass ich alles Alter bekommen nennen kann. Jetzt habe ich hier tatsächlich Zugriff auf die Altersvariable. Dies ist einfach der Fall , weil wir uns im selben Paket befinden. Dies sollte normalerweise nicht der Fall sein. Ich wollte das nur erwähnen, denn normalerweise ist es sehr unwahrscheinlich, dass Sie sich im selben Paket befinden, wenn Sie tatsächlich eine bestimmte Klasse verlängern . Ich wollte das nur erwähnen. Und das ist eine, naja, ich würde keine Einschränkung sagen, es ist im Grunde nur Realität. Aber jetzt die eigentliche Frage, über die jetzt kommuniziert, was ist so interessant daran, dies zu haben? Nun, lass uns darüber nachdenken, oder? Also haben wir die Wolfs-Methode hier, oder? Lassen Sie uns das einfach löschen oder lassen Sie uns sogar noch intelligenter sein. Lass uns das einfach kopieren oder ausschneiden, oder? Und dann füge das dem Tier hinzu. Jetzt wirst du zuerst sagen, warte eine Sekunde, nicht jedes Tier, Wolf hat Recht. Ja, das ist fair genug. Also nennen wir das einfach macht Geräusche. Und dann können wir diesen Namen sagen, einfach, sagen wir gerade ein Geräusch gemacht. Also können wir das nicht machen. Und eine andere wirklich interessante Sache ist dies in der Tierklasse definiert ist. Aber ich kann immer noch etwas wie Schnurrhaare sagen, Dot-Dot-Dot-Dot macht Klang richtig? Da Schnurrhaare eine Katze sind und eine Katze ein Tier ist, kann ich hier noch alle öffentlichen Methoden nennen. Und wenn ich das nenne, sieht man, wie Schnurrhaare gerade ein Geräusch gemacht haben. Das ist also ziemlich cool. Aber jetzt werden wir das aufladen denn während jedes Tier ein Geräusch macht, macht eine Katze ein anderes Geräusch als ein Hund, oder? Was wir also tun können, ist, dass wir die Implementierung dieser Methode in den Unterklassen tatsächlich außer Kraft setzen können . Das ist also ziemlich häufig, cool. Aber was wir tun können, ist, dass wir entweder den tatsächlichen Namen der Methode eingeben können, wie Sie sehen können, oder wir können eine Überschreibung schreiben, oder? Wir können damit anfangen, das zu schreiben. Und dann können Sie alle möglichen Methoden sehen , die wir möglicherweise außer Kraft setzen können. Wir werden natürlich hier die Mikrofon-Sound-Methode auswählen und diese Anmerkung wird hinzugefügt. Dies ist nicht unbedingt notwendig, es ist jedoch sehr wertvoll für Sie, wenn Sie dies haben, und ich empfehle auf jeden Fall, es zu behalten, denn wenn Sie die eigentlichen Kurse durchlaufen, können Sie sehr deutlich sehen, okay, das wurde also von einer seiner Superklassen außer Kraft gesetzt . Das ist also sehr wichtig. Dann nehme ich das einfach. Also werde ich das eigentlich nehmen und einfach ein bisschen modifiziert, oder? Also sage ich das, einfach ich raus. Sagen wir, ich mache das Gleiche. Kopiere das dem Hund hier. Und ich sage diesen Namen, weh einfach mit der Gülle, hab hier etwas anderes. Und was Sie dann sehen werden, wenn ich zum Beispiel Benji tatsächlich nenne , mach keinen Ton. Und ich gehe dann auch nach Gracie, mach keinen Ton. Was passiert jetzt? Nun, sehr interessant genug. Miau, wuff, wuff. Wie Sie sehen können, werden die überschriebenen Methoden jetzt anstelle derjenigen von der eigentlichen Superklasse aufgerufen . Das ist also sehr häufig, cool. Und jetzt ist das irgendwie die Idee der Erbschaft, oder? Wir können hier sowohl Methoden als auch Felder erben , das macht es nur so, alles etwas schöner getrennt ist, und dann haben wir auch keinen doppelten Code. Jetzt ist die eigentliche Frage: Was ist Polymorphismus? Polymorphismus ist ein großes Wort für ein sehr, sehr leicht verständliches Konzept. Eigentlich ist das sehr leicht verständliche Konzept, dass ein Hund gleichzeitig ein Hund ist und ein Tier Sinn ergeben sollte, oder? Sie haben also eine Hundeklasse, die sowohl ein Hund als auch ein Objekt des Typs ist? Hund ist sowohl ein Hund als auch ein Tier. Fair genug. Okay. Was heißt das? Nun, ich kann das bei einem Tier retten, oder? So kann ich Tier retten, Tier ist gleich einem neuen Hund. Sagen wir einfach Jeoneun Punkt PNG. Jenny. Vielleicht ist Guinea etwa 15. Alles dunkel, aber das ist okay. Und was würde jetzt passieren, wenn ich das in einem Maulwurfpunkt mache, um Geräusche zu machen. Was wird jetzt passieren? Nun, ich meine, es ist ein Tier. Offensichtlich sollte es sagen, dass Jenny gerade ein Geräusch gemacht hat, oder? Weil das das Logischste ist. Warte eine Sekunde im Hintergrund, es ist ein Hund. Genau. Dann ist er einfach umgezogen. Denn obwohl wir dies bei einem Tier speichern, macht es Polymorphismus so, dass das Hundeobjekt mehrere Formen annehmen kann oder jedes Objekt wirklich mehrere Formen annehmen kann. Das bedeutet im Grunde Polymorphismus. Mehrere Foren in einer sehr lockeren Übersetzung, sagen wir mal. Und das Tolle, was ich auch tun kann , ist, dass ich eine Liste von Tieren erstellen kann, zum Beispiel Tiere genannt. Und ich kann das nur aus Gründen des Arguments zu einer neuen ArrayList machen. Importieren wir das. Und dann kann ich einfach Tiere sagen, nicht hinzufügen. Und ich muss nicht nur Tiere hinzufügen , denn Benji ist natürlich ein Hund, sondern der Hund ist auch ein Tier. Und dann kann ich auch Gracie hinzufügen, und dann kann ich auch Schnurrhaare hinzufügen. Wie Sie sehen können, obwohl sie alle als Tiere gerettet sind, oder? Wenn ich die zurückbekommen will, bekommen Tiere zum Beispiel einen Ton. Also macht es da draußen, ja. Oh, richtig. Und die Get-Methode hier bringt dir ein Tier zurück. Aber wieder einmal haben wir gesehen, dass das Aufrufen einer Methode dazu tatsächlich die spezifischste Methode verursacht spezifischste hat, die es kann. Obwohl dies als Tier gerettet wird , wird Gracie hier als Tier gerettet, der Mikrofonton wird es so machen, dass Gracie, einfach, also das ziemlich cool ist. Wenn Sie die Bewerbung dafür nicht klar sehen, ist das absolut in Ordnung. Dies ist natürlich eine sehr abstrakte Einleitung dafür. Dies wäre jedoch vorerst für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 28. (Java) Schnittflächen und Abstrakte Kurse: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in dieser Vorlesung werden wir einen vorläufigen Blick auf Interfaces und abstrakte Klassen werfen. Also beginnen wir eigentlich zuerst mit der abstrakten Klasse , denn das ist eigentlich ein sehr anschauliches Beispiel. Worüber wir also nachdenken können, ist folgendes. Was ist ein Hund? Nun, ich meine, du hast gesehen, hast du schon mal einen Hund gesehen? Ja, natürlich. Ich meine, entweder als Bild oder irgendwo auf der Welt hast du vielleicht einen Hund gesehen. Hast du schon mal ein Tier gesehen? Jetzt könnte man sagen, dass es so gut ist, ich meine, ich habe vorher einen Hund gesehen, aber nein, nein. Hast du schon mal ein Tier gesehen? Und du wirst dich treffen und verschmelzen, oder? Weil es so ist, was ist ein Tier im Moment, was wir tun können, ist, dass wir Tier sagen können, sagen wir einfach, dass ein neues Tier gleich ist, oder? Mit zum Beispiel genau wie x, p und g x und das genau 10 Jahre alt oder so ähnlich. Und dann könnte man sagen, wie ist ein Tier? Was das wirklich Rate bei Tieren darstellt , ist ein sehr, sehr abstraktes Konzept. Und abstrakte Klassen, oder? Siehst du die Kongruenz dort, oder? Wir sollten also wirklich nicht in der Lage sein, neue Objekte aus der Animal Klasse zu erstellen neue Objekte aus der Animal Klasse denn wie ist ein Tier wirklich? Dinge können als Tier eingestuft werden, aber das Objekt Tier existiert nicht, oder? Was wir also tun werden, ist, dass wir daraus eine öffentliche abstrakte Klasse machen werden . Und Sie werden sofort sehen, dass wir ein verwandtes Problem haben, das natürlich genau hier ist, weil wir kein neues Tier erschaffen können, wenn es abstrakt ist, können Sie sehen, dass Tier abstrakt ist, kann nicht instanziiert werden, was bedeutet, dass wir keine Objekte aus der abstrakten Klasse in der Katze und dem Hund erstellen können Objekte aus der abstrakten Klasse in der Katze und dem Hund erstellen . Buchstäblich hat sich nichts geändert, weil das Tier natürlich immer noch bei allem hier ist, also funktioniert. Was wir jetzt auch tun können und das ist wirklich cool für eine abstrakte Klasse, dass wir bestimmte Methoden abstrakt gestalten können . Zum Beispiel die Mikrofon-Sound-Methode genau hier. Also können wir im Grunde einfach einfach löschen. Und was dann passieren wird , ist , dass wir öffentlich, abstrakt, ungültig, Ton machen können , oder? Und jetzt sieh dir das an, wir sind gerade beendet. Wir müssen also immer noch ein normales Methodensignaturjahr haben. Die eigentliche Implementierung bleibt jedoch den Unterklassen überlassen. Und wenn wir dies nicht außer Kraft setzen würden, können Sie auch feststellen, dass Klassenhund entweder abstrakt erklärt haben muss. Entweder muss dies auch eine abstrakte Klasse sein oder wir müssen die abstrakten Methoden von Tieren implementieren , die einfach darüber schweben können, in die Implementierungsmethoden und dann wird dies auch hinzugefügt. Also gehe ich einfach mit Control Z zurück und dann funktioniert alles gut. Das ist also irgendwie die Idee einer abstrakten Klasse. Und eine Schnittstelle ist Amine, etwas, das auch sehr damit zusammenhängt. Was wir also einfach tun werden, ist, dass wir einfach ein Interface hinzufügen, also eine neue Klasse hier, und dann können wir die Schnittstelle auswählen. Wir nennen dies die Blütenblatt-Schnittstelle und die IP-essbare Schnittstelle. Du bist in Schnittstellen. Wir definieren auch einfach eine Methodensignaturen. Also nichtig, Haustier Zum Beispiel, Symbolraten wie dieses, und das war's. Also kein Zugriffsmodifikator, nur das. Und wenn diese Schnittstelle jetzt zum Beispiel in den Cat-Richt-Implementierungen implementiert ist , haben wir das Recht, dann schmackhaft als was Sie sehen werden, ist ein sehr ähnlicher Fehler als zuvor. Implementiere Methoden, die Methode und das Ego. Und jetzt muss ich eine Art Implementierung in dieser Cat-Klasse haben. Warum haben wir Interfaces und Klassen, weißt du, könnte ich nicht einfach eine andere Klasse machen? Essbares Tier und solche Sachen? Ja, natürlich funktioniert das auch. Die Einschränkung ist jedoch, dass Sie immer nur von einer Klasse ausgehen können. Sie können jedoch nicht mehrere verschiedene Schnittstellen implementieren . Das ist also wirklich das Interessante hier. Und dann ist auch das Interface im Grunde das, was der Name nahelegt. Es ermöglicht Ihnen, auf eine bestimmte Weise mit etwas zu interagieren. Wenn also etwas eine Schnittstelle implementiert, haben Sie eine Art, ich meine, man könnte es sich als einen ungeschriebenen Vertrag vorstellen , dass alles in dieser Schnittstelle definitiv eine gewisse hat umsetzung. Also könnte ich zum Beispiel etwas sagen wie, weißt du, nur dieser Name war Haustier, so etwas, oder? Und dann kann ich das einfach nur aus Gründen des Arguments kopieren . Ich setze das auch hier im Hund um. Also fahre ich in die Pedale und füge das einfach hinzu und dann werden wir sagen, dass etwas zerkratzt und hinter den Ohren zerkratzt wurde , oder? Und jetzt kann ich, anstatt zum Beispiel eine Liste von Tieren zu erstellen, jetzt könnte ich zum Beispiel auch eine Liste von iptable erstellen, oder? Also jetzt haben wir diese Haustiere neue ArrayList davon bewerten, und wir können diese auch hinzufügen, oder? Haustiere Dot addieren. Und dann sagen wir einfach Benji, und dann sagen wir einfach Schnurrhaare, oder? Und jetzt können wir einen Streichelzoo bauen, wenn wir wollten. Das ist echt cool. Und es spielt keine Rolle. Wieder einmal spielt es beim Polymorphismus keine Rolle, ob sie gerettet werden, während ich Blütenblätter habe. Wieder einmal heißt ihre tatsächliche Implementierung als wir anrufen sollten, zum Beispiel bekommen Pets dot eins. Was dann passieren würde, ist, dass die eigentliche Implementierung natürlich Schnurrhaare genannt wird , statt dass Schnurrhaare hinter den Ohren zerkratzt wurden. Das ist eine Art allgemeine Idee hier. einmal abstrakte Schnittstellen Klassen. In der gleichen Weise wie die Vererbung und der Polymorphismus im Allgemeinen. Wo es vielleicht ein bisschen seltsam sein könnte , denn in diesen Beispielen ist es manchmal schwer, die Idee wirklich zu vermitteln. Wieder einmal kann das Ausprobieren einer Reihe von Sachen wirklich helfen oder den Aufgaben folgen, auch ein lohnenswertes Unterfangen. Aber ansonsten wird dies vorerst für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Und wir sehen uns in der nächsten Vorlesung. Also ja. 29. AUFGABE 3: Update von Trivia: Alles klar, Willkommen zur dritten Aufgabe hier zur Java-Einführung. Und das ist eigentlich eine ziemlich einfache Aufgabe. Wie Sie sehen können, ist es nicht so lang. Wieder einmal, die Zeit, die es braucht , und dies könnte etwa eine Stunde dauern, wie normalerweise auch eine sehr konservative Schätzung. Es gibt also ein bisschen Spielraum Sie es vielleicht in 30 Minuten schaffen können, oder? Überhaupt keine Sorgen. Aber vorerst gehen wir einfach hier durch. Also Quizspiel mit Klassen und Objekten. Also wollten wir wieder das gleiche Quizspiel, das wir auch in den letzten beiden Aufgaben gemacht haben . Ich möchte im Grunde, dass du die Trivia-Spiele modifizierst , die auch Klassen verwendet werden. Jetzt kann dies in irgendeiner Weise, Form oder Form sein, die der Fall sein könnte. Denken Sie darüber nach, wie Sie benutzerdefinierte Klassen erstellen könnten , die, wie Sie wissen, dass die Antworten gespeichert und die Fragen zusammen sein können. Vielleicht kannst du eine Liste benutzen, so etwas. Es liegt wirklich an dir, wie du das strukturieren willst. Aber denken Sie einfach darüber nach, wie Sie dies mit Klassen und Objekten einfacher machen können , und probieren Sie es dann einfach aus. Natürlich wird Ihnen die Lösung wieder einmal zur Verfügung stehen, sobald Sie fertig sind. Ich schlage dringend vor, wirklich einen Riss zu machen und das wirklich auszuprobieren. Und ich schätze, wir sehen uns in der Lösung. 30. LÖSUNG 3: Update von Trivia: Alles klar, Willkommen bei der Lösung für den dritten Auftrag genau hier. Und nun, ich meine, ich schätze, schauen wir uns einfach mal an. Du siehst, dass ich eigentlich nur zwei Klassen habe, eine Quizspielklasse und eine Quizklasse. Und die Quizspielklasse enthält im Grunde die gesamte Logik und die Spielschleife. Und der Trivia-Kurs enthält die Fragen und Antworten. Werfen wir einen Blick auf die triviale Klasse. Lassen Sie mich zunächst ein wenig hereinzoomen, damit wir sehen können, dass ich eine String-Frage, eine String-Antwort und nur einen Konstruktor habe , der diese beiden Shrink-Variablen hier übergibt . Und dann habe ich eine Reihe von Methoden hier, richtig ist die richtige Antwort würde im Grunde einen booleschen Wert herausgeben und auch sicherstellen , dass alles in Kleinbuchstaben ist. Die Eingabe wird jedoch tatsächlich in Kleinbuchstaben gesetzt, dass Sie grundsätzlich Großbuchstaben eingeben können und es gilt immer noch als die richtige Antwort. Hier haben wir die Print-Frage, die Print-Antwort. Wir haben auch eine Antwort validiert, die dann eine, Hey, das war eine richtige Antwort, oder das war auch eine falsche Antwort. Und das ist so ziemlich die Quizklasse. Wieder einmal, wenn das nicht genau wie deins aussieht , ist das absolut in Ordnung. Dies ist nur ein Beispiel dafür. Und dann genauso mit dem Quizspiel, oder? Wir haben hier eine Liste von Trivialitäten. sind also alle Fragen, die im Grunde genommen genau hier bevölkert werden. Also heißt das tatsächlich in der Startspiel-Methode, oder? Das ist also das erste, was passiert, bevölkerte Quizliste. Und das geschieht genau hier, wo wir nur eine neue ArrayList haben und dann einen Haufen dieser Trivialen genau dort zur eigentlichen Liste hinzufügen . Und das ist wirklich cool, denn dies könnte jetzt auch über ein Einlesen, aus einer Datei oder, wissen Sie, über das Herunterladen von Sachen aus dem Internet erfolgen aus einer Datei oder, wissen Sie, . So könnte diese Methode hier sehr leicht durch etwas anderes ersetzt werden. Und das ist wirklich die Macht, wenn Sie dies in diesen Klassen trennen, kurz bevor wir diese einzelnen String-Variablen hatten, konnten wir dies auf keinen Fall sehr leicht ändern. In diesem Fall könnten wir diese hölzerne Datenbank darauf ändern . Du könntest, wie ich schon sagte, etwas ins Internet stellen. Du könntest fast alles machen, es aus einer Datei lesen. Und das ist wirklich das , was du mit dem Unterricht machen willst. Sie möchten diese Art von Generika in dem Sinne machen , dass Sie ganz einfach Dinge hinzufügen und davon subtrahieren können. Normalerweise fügen Sie natürlich hinzu, oder? Und dann gibt es auch ein paar andere Sachen hier, oder? Die Spielschleife ist also die Hauptsache, bei der wir diese unendliche While-Schleife genau hier haben , wo wir einfach jede der Fragen durchgehen und die Antworten validieren, indem wir die Benutzereingabe erhalten und dann der Punktzahl, wenn die Antwort tatsächlich korrekt ist. Und dann drucken wir einfach die Partitur nach jeder der Fragen aus. Dann haben wir am Ende hier gefragt: Hey, sollen wir das Spiel abbrechen? Und wenn der Benutzer ja sagt , brechen wir einfach aus und drucken das Endergebnis auch am Ende des Spiels aus. Das ist ziemlich cool. Alles in allem, das ist so ziemlich alles, was Sie wirklich brauchen. Noch einmal, wenn Ihre Antwort unterschiedlich ist, überhaupt keine Sorgen. Aber hoffentlich hast du diese Antwort, die du durchgehen kannst und versuchen zu verstehen, okay, naja, wie würde ich das machen? Warum wurde das erledigt? Weißt du, Methoden, okay, das sind sehr interessante Klassen. Das ist also irgendwie die Idee hier. Aber für diese Lösung wäre es das. Und ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 31. AUFGABE 4: 4: System: Alles klar, Willkommen zur vierten Aufgabe hier zur Java-Einführung. Und in dieser Aufgabe sollen Sie ein Bankverwaltungssystem erstellen. Insgesamt mag das in erster Linie sehr kompliziert klingen, aber keine Sorgen. Ich führe dich durch die Idee, die ich hier hatte. Das Bankverwaltungssystem sollte also so etwas wie diese Komponenten haben, eine Person, eine Bank und ein Girokonto. Und um dann ein Girokonto zu eröffnen, sollten Sie über eine Bank gehen, da hier möglicherweise eine gewisse Ersteinzahlung erforderlich ist. Und die einzelnen Komponenten oder Klassen, bei denen Sie Rechte haben , dass eine Person einen Vor-, Mittel- und Nachnamen und ein Alter haben könnte . Vielleicht ist es so etwas wie eine Sozialversicherungsnummer ist nicht unbedingt erforderlich, aber wissen Sie, so etwas. Eine Bank könnte eine Liste von Kunden haben. Ihre Girokonten können ein maximales Overdraw Mount sein, etwa so. Und dann könnte ein Girokonto den aktuellen Wert und die Methoden zum Abnehmen und Einzahlen von Geld insgesamt haben. Das ist irgendwie die allgemeine Idee. Es gibt eine Reihe von Möglichkeiten , wie Sie dies angehen können. Ich bin also sehr daran interessiert zu sehen, was Sie sich einfallen lassen. Und natürlich steht Ihnen die Lösung wieder zur Verfügung. Ich denke, das ist wahrscheinlich ein bisschen schwieriger. Ich könnte mir vorstellen, dass etwas wie 1,5 Stunden wahrscheinlich am besten dafür vorgesehen ist , damit Sie sich wirklich eingraben und versuchen können , etwas zu verstehen und zu machen , das ziemlich cool ist. Also viel Glück. 32. LÖSUNG 4: Bank: Alles klar, Willkommen bei der Lösung für den vierten Auftrag. Und wie Sie sehen können, haben wir drei verschiedene Klassen, so ziemlich wie ich in der eigentlichen Aufgabe gesagt habe. Und nun, lasst uns einfach durchgehen. Wir haben also eine Personenklasse die ziemlich einfach ist, Vor-, Mittel - und Nachname und diesmal ein Alter oder privat gelesen und diesmal ein Alter oder privat und hier grundsätzlich über Ghettos erreichbar ist. Und dann haben wir hier auch einen booleschen Wert , der im Grunde nur zurückgibt, ob eine Person älter ist als das, was hier geliefert wurde, was sehr interessant ist. Und der Account hier ist auch interessant, oder? Wir haben einen ausgeglichenen, wir haben Konto-ID. An dieser Stelle wird nicht wirklich so viel genutzt, aber es ist sehr möglich , dass Sie damit auch etwas machen können und dann auch einen Kontoinhaber. Und das wird in der Bank verwendet, um hier grundsätzlich ein bestimmtes Konto zu erhalten. Wir können also sehen, dass wir jemals eine Liste von Konten haben, oder? Und die Art und Weise, wie wir ein Konto erhalten können besteht darin, Konto für Person zu erhalten. Aber so bekomme ich jetzt persönlich die Konten hier. Und der Rest ist so ziemlich das Bankkonto, oder? Wenn Sie dieses Konto eröffnen können, ist das also der Fall? Und es bestätigt im Grunde, ob jemand 16 oder älter als 16 ist , ob jemand 16 oder älter als 16 oder nicht und ob die Mindesteinzahlung tatsächlich erreicht wurde oder nicht. Es gibt eigentlich einen kleinen Bug hier drin, oder? Bei dieser Methode ist das sehr interessant. Du kannst versuchen, das selbst zu finden. Nur ein bisschen eine interessante Übung. Aber ansonsten, wissen Sie, ist dies insgesamt einmal ein Beispiel dafür. Wir können uns das einfach ansehen, oder? Was wir also haben werden, ist, dass ich hier einen Code habe, also ist die Nanotechnologie nicht alt genug, um ein Bankkonto zu eröffnen, und dann zehn, sagen, dass Euro oder Dollar nicht genug sind. Wir brauchen mindestens 150 und dann erhalten wir tatsächlich das Guthaben von Marias Konto, das ist 2000. Dann funktioniert der Versuch, 3000 abzuheben, nicht, da der Auszahlungsbetrag tatsächlich 500 beträgt oder die Überziehung im Grunde genommen ist. Und deswegen funktioniert das nicht. Das ist also eine Art allgemeine Idee hier. Es gibt viele Möglichkeiten, dies zu tun, wenn es völlig anders aussieht als Ihres, aber Sie sind immer noch funktioniert, das ist völlig in Ordnung. Unabhängig davon hoffe ich, dass dies eine nützliche Übung oder eine nützliche Aufgabe zwei war , beenden Sie und wir sehen uns in der nächsten Vorlesung. Also ja. 33. (Java) Anonyme Kurse: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir uns den anonymen Kurs ansehen. Was ist also ein anonymer Kurs? Nun, wenn wir von etwas erben, denken wir also an die Hundeklasse zurück, oder? Das hatte einen Namen, richtig und wurde von der Tierklasse geerbt. Und was wir jetzt tun können, ist zum Beispiel, wir hier eine Person machen können, oder? Also habe ich immer noch die Personenklasse von der letzten Aufgabe. So ist das Personal zum Beispiel einer neuen Person gleich, aber es ist so Nanoangriff und acht Jahre alt, sagen wir nur aus Gründen der Argumentation hier. Nun, das ist alles in Ordnung. Wenn ich jetzt eine Klasse wollte, die diese Personenklasse erweitert, die ein Manager ist. Das einzige, was wir tun werden, ist es einfach so zu machen, dass Sie, wenn Sie den vollständigen Namen erhalten, auch den Namen wie Manager ausgedruckt bekommen. Okay, also, wie würden wir das machen? Wir machen einen neuen Kurs, oder? Und das alles. Nun, sagen wir einfach, dass wir diesen wirklich nur wirklich brauchen. Was wir also tun können, ist, dass wir einen anonymen Kurs machen können. Wir können also sagen, dass Personenmanager einer neuen Person gleich ist. Aber sagen wir einfach John Smith, oder? Sagen wir 42. Und dann beenden wir das. Was wir jetzt tun könnten, anstatt dies mit einem Semikolon zu beenden , nachdem wir fertig sind, werden wir tatsächlich eine heilige Klammer machen und die abschließende geschweifte Klammer mit einem Semikolon beenden. Man sieht, dass es hier keine Pfeile gibt. Weil wir jetzt in hier diese anonyme Klasse erstellt haben , weil es sich um eine Klasse handelt , die die Personenklasse erweitert. Es hat jedoch keinen Namen und ist daher anonym. Und wenn wir das tun können, können Sie sehen, ob ich hier eine Überschreibung schreibe, ich kann tatsächlich alles außer Kraft setzen, was sich innerhalb der Personenklasse befindet , die überschreibbar ist. Bevorzugt Beispiel, ich kann fullname sagen und dann kann ich etwas wie Manager und dann den vollständigen Namen bekommen. Dies ist jetzt das, was diese spezielle anonyme Klasse tut. Und dann kann ich, wenn ich zum Beispiel die Druckzeile ausstelle , Nano-Punkt den vollständigen Namen bekommen. Und dann kann ich das auch für den Manager dot getName machen . Sie werden sehen, dass Nano nur ein Nanoangriff sein wird. Und dann wird es Manager John Smith sein weil wir diesen Manager genau hier hinzugefügt haben. Dieses Beispiel ist möglicherweise nicht das anschaulichste. Es fällt mir sehr schwer, Ihnen wirklich ein sehr anschauliches Beispiel für anonyme Klassen zu zeigen . Es ist normalerweise je weiter in dir gehst, weißt du, mit Schnittstellen und Vererbung und ähnlichem, es wird sehr schwer, wenn du nicht in einer sehr, in einer tatsächlichen Umgebung bist , in der du tatsächlich welche hast Klassen und einige Funktionen. Aber das ist definitiv etwas, das wir auch im Modellierungsbereich des Kurses sehen werden . Weil es hier viele Sachen gibt, die dafür benötigt werden. Aber was auch immer der Fall sein mag, zumindest haben Sie das gesehen, auch wenn wir hier nicht zu viel detaillierter eingehen, ich hoffe, Sie haben das nützlich gefunden und Sie lernen etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 34. (Java) Enums und erweiterte Entries: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem kurzen Vortrag werden wir einen Blick auf Enums und auch erweiterte Enums werfen, insgesamt, Enums, Sie können sich diese als bestimmte Datentypen vorstellen , die vordefinierte Werte haben, und Sie kann diese Werte nur dieser tatsächlichen Variablen zuweisen. Lassen Sie uns zum Beispiel einfach eine Schwierigkeitsstufe erstellen , oder? Also können wir es zu einer Klasse machen und diese dann einfach ändern , um genau hier aufzuzählen. Und dann ist die Art und Weise, wie eine Enum im Grunde strukturiert ist die tatsächlichen Werte hat , dass sie die tatsächlichen Werte hat, die sie direkt darin aufnehmen kann. So zum Beispiel einfach, mittel und schwer, wie die Schwierigkeiten eines Spiels sein könnten. Und um eine neue Variable dafür zu erstellen, ist es so ziemlich nur noch einmal schwierig. Dann nennen wir das den Schwierigkeitsgrad des Spiels, oder? Unter so. Und dann ist das gleich 2. Weisen Sie dies zu, Sie können den Schwierigkeitsgrad sehen, und dann haben wir nur diese drei Werte als mögliche Optionen. Sagen wir hier einfach Schwierigkeitsgrad. Und wir können das dann normalerweise einfach neu zuweisen, richtig? Auch hier ist der Schwierigkeitsgrad gleich 2. Schwierigkeitsgrad, Schwierigkeiten schwer zum Beispiel. Und dann zwei. Zum Beispiel können wir auch IF-Aussagen aus einem Retro-Spiel machen , der Schwierigkeitsgrad gleich ist. Jetzt ist das gleich etwas, zum Beispiel Schwierigkeit einfach. Und dann machen wir hier etwas. Das ist also so ziemlich alles, was es wirklich für normale Aufzählungen ist. Und es gibt etwas Interessantes für das, was ich Advanced Enums nenne. Dafür werden wir eine neue Java-Klasse erstellen. Auch hier ist das die Tool-Stufe, und das wird hier auch in eine Aufzählung umbenannt, ich werde hier tatsächlich einige Sachen vom anderen Monitor kopieren . Das steht Ihnen natürlich auch zur Verfügung, ein GitHub-Repository oder Adjustment. Sie können sehen, dass dies zwar eine Aufzählung ist, aber hier einen Konstruktor hat und wir eine gewisse Felderrate haben. Das ist sehr merkwürdig. Ja. Die Idee ist also, dass Sie Enums definieren lassen können. Natürlich ist das eine Diamant-Enum. Und nur für allgemeine Beispiele hier. Und das Coole ist, dass diese genauso funktionieren wie die anderen. Ich kann also sagen, dass eine zweistufige Stufe beispielsweise dem Tooltip-Diamant entspricht , oder? Und was ich dann sehr einfach tun kann, ist, dass ich System Out Print-Zeilenebene sagen kann , zum Beispiel Git-Tag-Multiplikator , der mir dann den Angriffsmultiplikator von allem bringt der mir dann den Angriffsmultiplikator von allem der die Stufe zugewiesen wurde. Also kann ich im Grunde eine haben, ich möchte es nicht unbedingt eine Liste nennen weil eine Liste etwas anderes ist, aber Sie können hier in dieser Aufzählung vordefinierte Werte in dieser Aufzählung haben , in dieser Aufzählung. Das ist also die Aufzählung und Sie können dann auch auf diese zugreifen. Das ist also wirklich enden wird, kann wirklich nützlich sein. Und wir werden dieses Beispiel auf jeden Fall sehen , wenn wir Werkzeuge, benutzerdefinierte Tools oder Minecraft herstellen . Das ist definitiv etwas , das wir sehen werden. Aber ansonsten ist das so ziemlich genau das für die Enums. Ich wollte dir das nur zeigen und erwähnen , dass du das wenigstens schon mal gesehen hast. Sonst wäre das für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies in Neuronen des Neuen nützlich, und wir sehen uns in der nächsten Vorlesung. Also ja. 35. (Java) Exceptions und Probiere: In Ordnung, willkommen zurück zur Java-Einführung für die Mikrowellenmodellierung. Und in diesem Vortrag werden wir einen Blick auf Ausnahmen und die Versuch- und Auffangaussage werfen. Insgesamt ist dies also nicht das interessanteste oder was würdest du sagen, das aufregendste Thema? Es ist jedoch, es kann ziemlich wichtig sein. Nichtsdestotrotz. Obwohl wir Ausnahmen haben wir ein paar davon gesehen. Zum Beispiel das etwas wie die IndexoutOfBoundsException und die NullPointerException. Es gab also ein paar Ausnahmen, die wir zuvor gesehen haben , die durch den eigentlichen Code ausgelöst wurden. Und was wir tun werden, ist, dass wir jetzt unsere eigene benutzerdefinierte Ausnahme auslösen werden. In unserem Paket erstellen wir also eine neue Klasse, die die Testausnahme ist, weil wir hier nur eine Testausnahme haben müssen. Wir werden einfach die Exception-Klasse hier erweitern . Und ich werde tatsächlich die beiden Konstruktoren kopieren , die wir dafür brauchen werden. Das steht Ihnen natürlich entweder im GitHub-Repository zur Verfügung oder auch energiegeladen. Wir werden es haben, dass wir einen Scanner haben , bei dem wir einfach ein paar Sachen System hier drin scannen können . Und dann speichern wir einfach folgendes. Also werden wir nächstes int sagen, und wir werden hier im Grunde etwas in einer Ganzzahl speichern. Und nur aus Gründen des Arguments werden wir diese Ausnahme werfen, werden wir diese Ausnahme werfen wenn wir hier eine Zahl 0 in eine bestimmte Methode übergeben . Also privat, statisch, ungültig prüfen auf 0. Das ist sehr einfach in der Nummer. Und was wir einfach tun werden, ist dass wir sagen, wenn die Nummer, wenn die Zahl irgendwelche Restwerte überschreitet, dann werden wir eine neue Ausnahme machen . Wie machen wir das? Wir werden schreiben neue Testausnahmen werfen, und dann werden wir einfach sagen , dass Zahl 0 ist. Zum Beispiel so etwas. Und das ist so ziemlich alles, was wir hier wirklich tun müssen. Was Sie sehen, ist, dass dies hier tatsächlich einen Fehler auslöst , da Ausnahme zur Methodensignatur hinzugefügt wird. Also müssen wir das tatsächlich bei dieser Methode hier haben. Also müssen wir die Throws-Test-Ausnahme zur Methodensignatur hinzufügen , sonst funktioniert es nicht. Und wenn ich das jetzt nenne, oder? Wenn ich also nach 0 suche, dann werden Sie sehen, dass dies auch zur Hauptmethode hinzugefügt werden muss Hauptmethode da dies nicht richtig gehandhabt wird, also behandeln wir diese Ausnahme nicht. Was Sie also tun können, ist, dass wir das einfach ausführen werden. Und wenn ich zum Beispiel hier einen eintippe, passiert nichts. Das Programm endet normalerweise vorbei, wenn ich eine 0 einfüge, Sie können Ausnahme und Hauptthread-Anzahl und Ihre Testausnahme sehen , sehr interessante Zahlen 0. Und dann kann man sogar sehen, wo das heißt, oder? Also hier zuerst und dann hier war die Ausnahme , die geworfen wurde. Das ist also sehr interessant. Lassen Sie uns zunächst einen Kommentar dazu herausnehmen und den künstlerischen Bereich dort oben loswerden. Und was wir jetzt tun können, ist, dass wir zum Beispiel sagen können, sagen wir einfach, z ist gleich dem Scannerpunkt next int. Oder überspringen Sie es einfach, da ich dafür hier bin. Das ist in Ordnung. Wir können jetzt eine Versuchserklärung abgeben. Das wird also ein Versuch mit den geschweiften Klammern sein. Und dann wird es hier einen Fang haben , mit einer Ausnahme e darin. Und das geht im Grunde genommen um einen Fehler, oder? Die try and catch-Anweisung dient also dazu, einen Fehler zu behandeln. Also werden wir das gleich hier versuchen. Schreib einen Scheck für 0 I. Und wenn eine Ausnahme abgefangen oder ausgelöst wird, oder? Und wir können es hier erwischen. Und dann können wir etwas damit anfangen. Zum Beispiel können wir im Grunde einfach so etwas machen. Also GET Nachricht dann nur vorerst, im Grunde einfach ausdrucken was hier tatsächlich passiert, oder? Die eigentliche Ausnahme ist, dass es natürlich andere Dinge gibt, die Sie tun oder tun müssen , wenn eine Ausnahme abgefangen wird. Und dann hast du das auch endlich hier, was wir einfach folgendes machen werden. Wir werden im Grunde einfach endlich ausdrucken, nur um zu sehen, dass dies gedruckt wird, und dann werden wir es tatsächlich kopieren. Und das wird sein, das passiert immer. Aber jetzt ist das Interessante, wenn Sie Ausnahmen tatsächlich mit einer try and catch-Anweisung richtig behandeln , dann passiert das Programm nicht einfach kaputt geht dann passiert das Programm nicht oder es nicht einfach endet, es geht tatsächlich weiter. Was Sie also sehen können, ist das zuerst, wenn ich anrufe, wenn ich zum Beispiel eine 1 einlege, oder? Eines Tages gehst du endlich, und das passiert immer. So ist das endlich, wie Sie sehen können, immer kalt und dann heißt das immer auch, oder? Und dann ist das Interessante , dass Sie sehen können, dass wir die Nachricht ausdrucken, wenn die Ausnahme ausgelöst wird. Aber endlich passiert es immer noch. Und das, weißt du, das passiert immer noch, passiert auch immer noch. Der Rest des Programms geht also weiter. Was sehr wichtig ist, ist, dass Ihr Code im Allgemeinen so laut wie möglich fehlschlägt nur weil Sie möchten, dass Fehler sehr, sehr früh angezeigt werden. Deshalb kann das Werfen von Ausnahmen nützlich sein. Jetzt, bei der Mikrowellenmodellierung, ist es sehr unwahrscheinlich, dass Sie, besonders am Anfang, richtig? Ich meine, das meiste davon nehme ich für Anfänger an, oder? Dies wird für Anfänger nicht sehr wichtig sein. Dies ist etwas viel mehr für Fortgeschrittene. Wenn du wirklich da sitzt, meinst du: Okay, ich werde jetzt wie ein Riesenmodus machen, oder? Ich möchte es wie die nächste Wärmeausdehnung machen, sagen wir auf dieser Ebene so etwas und machen dann einige benutzerdefinierte Ausnahmen. Auf jeden Fall sehr kluge Idee. Aber was auch immer der Fall sein mag, das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 36. (Java) Java) Lambda: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir einen vorläufigen Blick auf einen Lambda-Ausdruck werfen. Lambda-Ausdrücke können also sehr kompliziert sein. Ich möchte Ihnen nur einen sehr kurzen Überblick über die geben einen sehr kurzen Überblick über , die wir haben und welche Lamda-Ausdrücke sind. Also im Allgemeinen, und die Veteranen gehen zu drei Methoden. Sie sind im Grunde Funktionen oder Methoden als Variablen. Das ist ziemlich cool, wenn du darüber nachdenkst. Und wir werden uns diese fünf nur in sehr, sehr spärlichen Details ansehen . Also werden wir überhaupt nicht ins Detail gehen. Ich möchte nur, dass du diese gesehen hast , um das in Zukunft im Grunde zu speichern. Denn gerade bei der 4D-Modellierung ist dies etwas, das in Stoff sehr wichtig ist , nicht so sehr, naja, was auch immer der Fall sein mag. Ein Lieferant zum Beispiel hier, richtig, hat keine Parameter, sondern einen Rückgabewert. Und es könnte so etwas geschrieben werden, oder? Also keine Parameter in den Klammern und ein Pfeil und dann könnte das x sein, was zurückgegeben wird. Sie können sehen, dass Lieferant vom Typ Integer bedeutet, dass eine Ganzzahl zurückgegeben wird. Und dann sieht es so aus. Das Coole daran ist, dass dies auch bedeutet, denn wenn wir eine Variable daraus machen können, könnten wir sie auch in eine Methode weitergeben, was bedeutet, dass wir diese Lieferanten dort hineinbringen könnten , die möglicherweise unterschiedliche Funktionen haben. Das ist also ziemlich cool, dies wird auch verwendet viel zu programmieren oder zu modellieren, vor allem denn wenn der Lieferant, wenn man etwas drin hat, ist dies wird nur aufgerufen, wenn die getMethod hier aufgerufen wird. So können Sie das Laden bestimmter Variablen und ähnliches irgendwie verzögern . Das ist so ziemlich auch das Ausmaß meines Wissens in diesem Bereich. Also werden wir nicht zu viel darauf eingehen. Und nachdem wir diesen Fehler hier pro Meter behoben haben , richtig? Die Verbraucherart im Namen verbraucht also wirklich einen Parameter, gibt aber keinen Wert zurück. Hier ist ein Beispiel für den Verbraucher für eine Zeichenfolge , an der Sie im Grunde genommen eine Zeichenfolge übergeben und dann etwas mit dieser Zeichenfolge macht. Ein Callable ist kein Umfang und kein Rückgabewert. So sehr ähnlich wie bei einem Lieferanten, löst es jedoch eine Ausnahme aus, so dass es möglich ist, einen Sturz auch als Ausnahme zu bezeichnen. Das ist die allgemeine Idee. Sie können auch immer den Mauszeiger darüber bewegen und Sie können tatsächlich eine sehr schöne Zusammenfassung dessen finden , was sie tatsächlich sind, oder? Also hier rufen wir in diesem Fall das Callable auf, dann ist ein Runnable etwas, das keine Parameter und keinen Rückgabewert hat . Dann ist eine Funktion im Grunde buchstäblich wie eine Funktion, die eine bestimmte Eingabe einer bestimmten Ausgabe zuordnet eine bestimmte Eingabe einer bestimmten Ausgabe zuordnet ist nur die Funktion für den Kreis, im Grunde habe ich nur den Pi hier. Aber das ist so ziemlich alles , was es wirklich gibt. Insgesamt wollte ich, wie gesagt, wirklich nur, dass du das durchgehst , wenn ich das schon einmal gesehen habe, wenn ich sage: Hey, wir werden einen Lieferanten machen , den du nicht da sitzt und du meinst: oh, ich habe keine Ahnung was das ist. Nein. Ein Lieferant ist im Grunde ein Datentyp , der mehr oder weniger in einer Funktion oder einer Methode speichert . Es ist nicht ganz so, aber es ist sehr nah dran, so dass es, besonders für Anfänger, ausreicht , so darüber nachzudenken. Wie auch immer der Fall sein mag, das ist es eigentlich für diese Vorlesung genau hier. Ich weiß, dass dies sehr kurz war, aber wie gesagt, es ist wirklich nur ein sehr kurzer Überblick anstatt wirklich jedes Detail davon zu erklären. Aber ich hoffe immer noch , dass Sie das nützlich fanden und etwas Neues gelernt haben. Wir sehen uns in der nächsten Vorlesung. Also ja. 37. Java): In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung und für diese letzte Vorlesung des Java-Einführungsabschnitts werden wir einen vorläufigen Blick auf Generika werfen. Generika, die haben wir natürlich schon mal gesehen, oder? Eine Liste war zum Beispiel ein Generikum, bei dem wir im Grunde eine ganze Zahl wie jede Klasse eingeben konnten Grunde eine ganze Zahl wie jede Klasse und im Grunde die Zahlen haben, zum Beispiel mit einer neuen ArrayList hier. Das hat also alles sehr einfach und sehr gut geklappt. Das war gut, ziemlich einfach. Aber was ist, wenn wir Generika haben , die wir selbst verwenden möchten , werden wir hier tatsächlich eine neue Klasse schaffen. Wir werden einfach die Paarklasse sein. Und Sie können zwei verschiedene Werte darin speichern. Also machen wir einfach diese Winkelklammern und dann x, y. Und die Idee ist, dass X und Y jetzt Platzhalter für bestimmte Datentypen sind . Also werden wir zuerst ein privates x Quadrat und eine private Lüge namens Second haben , oder? Und das ist, die Idee ist dass Sie jetzt darüber nachdenken müssen, okay, das sind Generika, was bedeutet, dass dies sind Generika, was bedeutet, dass nur Platzhalter sind, wie ich sagte, oder? Und generieren wir dafür einfach einen Konstruktor. Rechtsklick also Konstruktor generieren. Und dann werden wir für beide einfach den Konstruktor lesen. Und dann werden wir auch rechten Maustaste klicken, Getter und Setter für beide generieren . Und da gehst du. Das ist im Grunde die gesamte Klasse bereits erledigt. Und Sie können sehen, dass es immer das x und das y verwendet , weil dies im Grunde nur Platzhalter für die tatsächlichen Datenwerte oder Datentypen sind, die verwendet werden. Was nun sehr interessant ist, was Sie auch tun können, ist, dass sich ein bestimmter Datentyp von einem anderen erstreckt. So können wir zum Beispiel „extenses float“ sagen, was bedeutet, dass das y jetzt den Float erweitern muss, was bedeutet, dass es sich was bedeutet, dass das y jetzt den Float erweitern muss, was bedeutet, entweder um einen Float oder eine andere Unterklasse dieser Klasse handeln kann , die hier definiert wurde. Das ist auch sehr interessant. Es ist etwas, das Sie tun können und das wird in Minecraft-Modellierung ausführlich gemacht. Und was du auch tun kannst, lass uns hier einfach ein neues Paar machen, oder? Also Paar, Nehmen wir an, sind wie Integer, Integer Float vorerst, wie dieser Begriff gleich einem neuen Paar von ihnen. Wir werden einige wie 2250,55 sagen. Klar, das ist okay. Stellen Sie sicher, dass dies hier ein f ist, dann sollte es funktionieren. Da gehst du. Das funktioniert jetzt vollkommen gut. Und was Sie auch tun können, anstatt einen bestimmten tatsächlichen Wert oder einen bestimmten Datentyp zu übergeben , können Sie dies auch zu einem Fragezeichen machen. Und dann wird das Generikum es einfach herausfinden. Das nennt man ein Wildcard-Generikum. Wir werden darüber nicht zu sehr ins Detail gehen. Dies ist etwas, das Sie auch in Minecraft-Modellierung ein wenig sehen werden. Dies bedeutet jedoch, dass es keinen wirklichen Grund gibt , dies zu verstehen. Es liegt ganz daran, dass Generika definitiv etwas sind, das weit fortgeschritten ist, wie ein sehr fortgeschrittenes Thema, das selbst wie erfahrene Programmierer nicht viele von ihnen mögen erfahrene Programmierer nicht viele von ihnen mögen, das nicht einmal verstehen. Als würde ich mich übrigens nicht in diese Beschreibung aufnehmen , kenne ich Generika gut genug, kenne ich Generika gut genug damit ich im Grunde damit umgehen kann. Aber wenn ich selbst wie eine echte generische Klasse mache, werde ich ehrlich sein, das ist sehr, sehr schwer, oder? Das ist also ein sehr kompliziertes Thema, also gibt es überhaupt keine Sorgen. Ich wollte das nur erwähnen und wollte, dass Sie sehen, dass dies existiert und dass Sie auch Ihre eigenen Generika herstellen können. Aber das wäre es für die Java-Einführung in diesem Abschnitt des Kurses. Ich hoffe, Sie fanden das nützlich und lernen etwas Neues, wenn Sie ein Anfänger sind. Ich hoffe, dass Sie jetzt die Java-Grundlage haben , die Sie benötigen, um mit der Mikrowelle fortzufahren modellieren. Also viel Glück für Sie, und ich hoffe, dass Sie den mikrobiotischen Teil dieses Kurses genießen werden . 38. Installation, Einsetzung und GitHub: Alles klar, Willkommen beim Minecraft-Stoffkurs hier für 118. Und in dieser ersten Vorlesung werden wir einige Voraussetzungen durchgehen, werden wir einige Voraussetzungen durchgehen die Sie benötigen, um mit der Modellierung von Minecraft zu beginnen. Jetzt gehen wir alles durch, laden alles herunter, was Sie brauchen, die Programme, richten das Fabric-Projekt und richten dann sogar ein GitHub-Repository ein, damit Sie entweder Ihr mit jemandem, der dir helfen könnte. Wenn Sie beispielsweise auf ein Problem stoßen, können Sie Ihren gesamten Code hochladen und ihn dann an eine andere Person senden. Zum Beispiel ich in den Fragen und Antworten. Und dann kann ich ganz einfach versuchen , den Fehler zu finden , der nur viel Zeit zwischen der Frage und der Antwort spart . Aber zuerst, wenn Sie ein absoluter Anfänger sind, empfehle ich dringend, wenn Sie es nicht gesehen haben, die Java-Einführung ansehen, ich kann das einfach nicht genug empfehlen. Es wird dir immens helfen. Denn wenn Sie das nicht haben, besonders wenn Sie den Minecraft-Modellierungsteil dieses Kurses durchlaufen , werden Sie sich sehr schnell sehr verloren fühlen. Denn an dieser Stelle gehe ich davon aus, dass Sie zumindest alles in der Java-Einführung gesehen haben und Sie mit den Konzepten, die wir dort besprochen haben , einigermaßen vertraut sind . Aber was auch immer der Fall sein mag, Beginnen wir mit dem Herunterladen des JDK. Wir brauchen also ein Java Development Kit, und das wird Javas 17. Eigentlich ist dieser Link in den Ressourcen verknüpft. Obwohl wir Java 16 für die Java-Einführung verwendet haben, müssen wir jetzt Java 17 herunterladen. Das ist übrigens überhaupt kein Problem. Dies ist also verknüpft und dies sollte theoretisch erkennen, was Ihr Betriebssystem ist. Wenn das falsch ist, können Sie auf andere Plattformen gehen. Sie stellen sicher, dass Sie Tamarin 17 auswählen, und dann können Sie im Grunde einfach Ihr Betriebssystem und die Architektur hier auswählen die Architektur hier und dann einfach das MSI-Jahr herunterladen und herunterladen. Und wenn Sie dies herunterladen, ist dies nur eine normale Isolierung, sodass Sie diese wie jedes andere Programm auf Ihrem PC installieren können. Und sobald Sie dies getan haben, können Sie den nächsten Teil fortsetzen, wenn wir eine IDE benötigen, die eine integrierte Entwicklungsumgebung ist . Und für uns entscheiden wir uns für Intelligente Idee. Wenn Sie wieder ein Anfänger sind, empfehle ich dringend, einfach dabei zu bleiben, denn sonst wird es ein paar Dinge geben, die für Sie anders aussehen könnten. Wenn Sie zum Beispiel Eclipse oder VS Code verwenden wollten , ist es auch völlig in Ordnung. Denken Sie jedoch daran, dass ich, wenn Sie dort auf Probleme stoßen, möglicherweise nicht so gut helfen kann, wie ich mit intelligenten Ideen kann weil ich alle Beine kenne, sagen wir mal Verknüpfungen und alle Tasten, die Sie drücken müssen, wenn etwas in der Idee schief geht, ich bin nicht 100% mit Eclipse oder VS-Code vertraut, also denken Sie daran und laden Sie die Community-Version herunter . Sehr wichtig. Das ist kostenlos, sodass Sie nichts bezahlen müssen. Die Community-Version auf der rechten Seite hier. Laden Sie das einfach noch einmal und installieren Sie es dann wie jedes andere Programm auf Ihrem PC . Jetzt kommen wir zum nächsten Ding und das wird mehr das Stoffbeispiel sein. Jetzt können Sie sehen, dass dies eine öffentliche Vorlage ist, also gibt es ein paar Dinge , die Sie tun können. Sie können diese Vorlage entweder verwenden und einfach ein neues GitHub-Repository erstellen. Das werden wir nicht tun. Wir werden tun, wenn wir hier zum Code gehen und auf eine Postleitzahl herunterladen klicken. Dies wird eine Zip-Datei mit allen erforderlichen Dateien herunterladen , die wir im Grunde benötigen. Und ich habe hier bereits einen Halter vorbereitet , in den ich das eingehen möchte. Ich klicke einfach hier, extrahiere hier. Das ist nur dafür verwende ich Wind Rawr. Sie können auch sieben zip oder ein anderes ZIP-Programm verwenden , um dies im Grunde zu öffnen. Nun, jetzt ist alles hier drin. Ich gehe tatsächlich zu Control X dies, um das rauszuholen und Control V, um es hier einzufügen. Also möchte ich nur, dass alles in diesem Ordner ist. Und jetzt zwei Dinge, die wir sofort tun können. Wir können die Lizenz und die README-Datei löschen , damit wir hier nicht dieselbe Lizenz erhalten, da dies im Grunde die Public Domain-Lizenz ist . Und das ist eigentlich nicht etwas, was ich persönlich will. Natürlich kannst du dabei bleiben, wie du möchtest. Und dann empfehle ich auch dringend den GitHub-Ordner hier, den Dot-GitHub-Ordner, zu löschen , da dieser im Grunde einige Workflows enthält. Hier können Sie im Grunde automatische Rechnungen des Projekts sehen und beliebige Konfigurationstests dafür ausführen. Du musst das nicht unbedingt tun. Du kannst es behalten. Aber das ist etwas, das manchmal etwas verwirrend sein könnte, besonders für Anfänger. Daher empfehle ich dringend, das einfach zu löschen und sich vorerst keine Sorgen darüber zu machen. Jetzt haben wir den Stoffbeispielmod hier drin, und das ist eigentlich alles, was wir brauchen. Wir können zum ersten Mal mit Intelligenz beginnen. Jetzt wird es für dich wahrscheinlich nicht genau so aussehen . Es wird jedoch drei Komponenten haben, die wir benötigen. Und das ist das neue Projekt, das Open. Und sie bekommen von VCS für diese drei Tasten, im Grunde Arthur, Dinge, die Sie brauchen werden. Und wir möchten auf die Schaltfläche Öffnen klicken und dann im Grunde zu diesem Verzeichnis navigieren. Also werden wir einfach dieses Verzeichnis hier hineinlegen und Sie können das Stoffpferd 118 sehen, und es hat tatsächlich dieses Symbol hier und wir werden Okay treffen und dann das Projekt durchqueren und dann ein neues Fenster öffnet sich hier und Sie können sehen dass einige Dinge hier schon angefangen haben. Das ist vollkommen in Ordnung. Lass es einfach weiter gehen. Wenn du hier wie rot wirst, Pfeile, keine Sorgen. Wir werden alle in nur einer Minute reparieren. Das erste, was Sie sich wahrscheinlich einfallen lassen werden , wenn Sie zum Beispiel eine andere Version von Java haben, können Sie sehen, dass Sie eine veraltete Version von Java verwenden . Das ist richtig für mich, da ich mehrere Versionen von Java installiert habe . Nun, wie repariert man das? Ganz einfach. Sie gehen zur Dateiprojektstruktur, und Sie können hier im Projekt-SDK sehen, dass Sie Java 17 auswählen müssen. Und dann hier in der Sprache auf Projektebene oder so 17 drücken Sie Anwenden und Okay, und es gibt eine zweite Sache, die Sie tun müssen, und gehen wir zu Dateieinstellungen zu den erstellten Tools für die Ausführungsbereitstellung Gradle, und stellen Sie sicher, dass dieses Jahr SDK projiziert wird. Das ist auch sehr wichtig. Es gilt, wenn das nicht der Fall ist, okay? Dann kannst du diesen kleinen Elefanten hier wieder schlagen und uns wieder durchlaufen lassen. Und jetzt solltest du in diesem Fall keine Pfeile bekommen, aber es sollte einfach richtig durchlaufen. Aber du kannst sehen, dass ich hier einen Build erfolgreich habe, also ist das wirklich gut. Und was Sie dann auch sehen werden, ist, dass Sie drei dieser orangefarbenen Ordner generieren lassen werden . Und wenn wir zum Beispiel den Quellordner öffnen , den Quellordner öffnen , steht SRC für source. Wenn wir das öffnen, können Sie sehen, dass wir hier auch ein paar Farben bekommen. Das nächste ist, dass man beim Öffnen dieses Java-Ordners sehen kann, dass hier alles erweitert wird. Wenn Sie zum ersten Mal intelligent verwenden, ist dies möglicherweise nicht der Fall für Sie. Gehen Sie hier oben zu diesem Gang und stellen Sie sicher, dass sowohl abgeflachte Pakete kompakte mittlere Pakete ausgeschaltet sind. Das könnte also der Fall sein, wie es für dich aussieht. Stellen Sie einfach sicher, dass sowohl Fly- als auch Pakete sowie kompakte Middle-Pakete ausgeschaltet sind und dann für Sie alles genauso aussieht wie für mich gerade, wir müssen ein paar Dinge ändern innerhalb der Gradle-Punkt-Eigenschaftendatei. Sie können also sehen, dass einige Eigenschaften definiert sind, also gibt es einige Fabric-Eigenschaften, es gibt einige weitere Eigenschaften, und dann gibt es hier auch einige Abhängigkeiten oder ein kleines Zwischenspiel . Was also sehr wichtig ist, ist, dass es zwei Möglichkeiten gibt , dies zu tun. Zahl. Erstens können Sie entweder den bloßen Beispiel-Mod nehmen und dann sind Sie im 19. Jahrhundert. Bitte beachten Sie, dass ein paar Dinge nicht genau wie in 101 funktionieren. Dieser Name, Sie werden also die Tags sein, der erweiterte Artikel, der im Grunde Steuern und die Weltgeneration verwendet . Am Ende werden Sie am Ende des Kurses Probleme haben . Es wird also ein Update-Video geben, in dem wir die Dinge aus dem 19. Jahrhundert auf ein 1800er Jahre aktualisieren werden. Wenn Sie jedoch den Kurs in seiner Gesamtheit verfolgen möchten , hauptsächlich Wörter oder Iteration, empfehle ich dringend, darüber nachzudenken möglicherweise einen 1800er zu wählen. Hier. Ich werde wahrscheinlich am Ende des Kurses für 1800er Jahre einen Abschnitt hinzufügen. Und nicht nur die Änderungen, sondern wahrscheinlich auch verschiedene Vorträge , die das ersetzen, nicht ersetzt werden. Aber es wird Folgen für die Vorträge aus dem 19. Jahrhundert geben. Entweder können Sie die Gradle-Eigenschaftendatei hier in diese Werte ändern , oder wenn das nicht Ihre ist, wenn Sie dies nicht möchten, wenn Sie das 19. Jahrhundert verwenden möchten, können Sie dies natürlich gerne tun. Aber bitte bedenken Sie, dass es einige Unterschiede geben wird , verglichen mit dem, was Sie in den Vorträgen sehen werden. Sie also einfach daran und ich schätze zurück zur Vorlesung. Insgesamt können Sie also sehen, dass wir hier tatsächlich einen Link haben und wir werden uns diese Seite in nur einem Moment ansehen . Und wir geben im Grunde nur an , was ist die Minecraft-Version, welche Version der Mappings verwenden wir? Dies dient im Grunde darum, den Code so zu übersetzen, dass wir die Methodennamen und solche Dinge tatsächlich lesen können . Und dann ist die Loader-Version Grunde nur die Version des Fabric Loaders. Dann haben wir noch ein paar Immobilien, die wir selbst definieren können und das werden wir in einem Moment tun. Und dann haben wir hier auch die Stoffversion , die wir verwenden, ganz unten. Wenn wir die Link Fabric MC Net Slash-Versionen öffnen, werden Sie sehen, dass wir hier tatsächlich einige Updates haben. Was wir also tun können, ist, dass wir einfach dieses Steuerelement C übernehmen oder mit der rechten Maustaste auf kopieren klicken und dann hierher zurückkehren und es dann im Grunde einfach einfügen. Also lasst es uns einfach einfügen. Wir kriegen ein paar Pfeile, weil es mehrere gibt. Aber was wir tun können, ist, dass wir dies hier unten einfach ersetzen können. Also drücke ich Control X, um es auszuschneiden , und dann Control V , um es wieder einzufügen. Jetzt haben wir, wir werden auf 0.44 aktualisieren. Dies könnte tatsächlich eine andere Version für Sie sein, was völlig in Ordnung ist. Während es einige Unterschiede in den Versionen gibt, sollte es normalerweise keine verrückten Unterschiede geben. Und wenn ja, werde ich versuchen, mit dem Besten Schritt zu halten , was ich kann, und wahrscheinlich eine weitere Vorlesung danach oder irgendwo zwischen den Änderungen hinzufügen eine weitere Vorlesung danach . Und dann wird es im Grunde auch damit eingeholt werden, oder? Und hier löschen wir einfach all diese und stellen dann auch sicher, dass sie richtig geschrieben sind. Drücken Sie also im Grunde die Tabulatortaste, um sie zu verschieben. Und jetzt haben Sie gesehen, dass wir im Grunde genommen den Gewinn von sechs auf 12,8 aktualisiert haben und von 431, denke ich auf 440, das ist völlig in Ordnung. Noch einmal können wir den kleinen Elefanten hier oben in der Ecke anklicken . Und wenn wir dieses Build-Fenster erweitern, können Sie sehen, dass es Dinge wie verrückt herunterlädt , aber keine Sorgen. Auch dies könnte ein paar Sekunden dauern. Noch einmal, vielleicht eine Minute oder so. Ich habe gesehen, dass es für manche Leute viel länger gedauert hat, aber das hängt von Ihrer Internetverbindung ab und wie gut Ihre PCS sind. Manchmal kann es also 20 Minuten dauern, das habe ich schon mal gesehen, aber das ist sehr selten. Sehr selten. Also los gehst du. 21 Sekunden, eigentlich schon fertig. Und jetzt können wir anfangen, nun, weiter zu sehen, was wir für unseren eigenen MOD ändern können. Grundsätzlich werden alle unsere Änderungen in der Gradle-Punkt-Eigenschaftendatei geschehen. Das ist im Grunde sehr einfach für uns. Und die allgemeine Idee ist, dass wir hier unsere Modelleigenschaften ändern und dann auch ein paar Dinge in unserer Ordnerstruktur oder Paketstruktur ändern müssen. Der allgemeine Kern ist, dass wir gerade diesen Beispiel-MOD verwenden, wo es natürlich nicht ganz das gibt , was wir haben. Wir haben eine bestimmte Mathematik, die wir wollen. Wenn ich also auf diese Beispiel-Mock-Klasse doppelklicke, kann man sehen, dass es Beispielmod heißt. Es hat sogar ein paar Kommentare hier drin. Das ist sehr nett. Aber insgesamt müssen wir hier ein paar Dinge ändern. Das erste ist, dass ich möchte, dass dies in meinem eigenen Paket enthalten ist. Was ich mache, ist, dass ich hier rauf gehe und das einfach auf Nettokonto und Rho Not Mc-Kurs ändern werde, das ist das Paket. Ich möchte, dass dies sehr empfehlenswert ist, diesen Baumwolljob nicht anzurufen weil Sie in einem Coulomb Joule sind. Und zweitens, benutze einfach net deinen Namen. Und dann kann ich zum Beispiel MC natürlich nur empfehlen, dies zu tun, weil es einfach sehr seltsam ist, den Namen einer anderen Person zu verwenden, wenn Sie Ihren eigenen Code erstellen, weil es einfach verwirrend wird Leute, die wie du sind, haben das nicht geschrieben, das war von Cotton Row und es ist, naja, was ich hier tun kann, ist das, natürlich wird jetzt eine rote Unterstreichung haben. Ich werde nur den Mauszeiger darüber bewegen und Sie können sehen, wie Sie zum Paketnetz Cotton Joe MC Kurs wechseln. Ich klicke einfach darauf und du siehst ein neues Paket erstellt wurde. Und das ist jetzt im Grunde gut gemacht. Was ich dann tun werde, ist, dass ich dieses Mixed and Package nehme und es einfach direkt in den EMI EMC Kurspaketrefaktor verschiebe. Und da gehst du. Jetzt kann ich den Fabric MC hier tatsächlich löschen, einfach die Löschtaste drücken und dann bestätigen. Und was ich dann tun kann, ist, dass ich jetzt mit der rechten Maustaste darauf klicken kann. Das ist sehr wichtig. Ändere diesen Namen nicht einfach hier. Rechtsklick Refactor Umbenennen. Und dann wird dies die MC-Kurse-Mod-Klasse sein. Darauf werde ich mich in den kommenden Vorträgen und in den Antworten auf einige Fragen als Hauptklasse beziehen den kommenden Vorträgen und in den Antworten auf . Das ist also die Hauptklasse. Die Hauptklassen, die die mehr Initialisierungsschnittstelle implementiert , sind sehr wichtig. Dies werde ich bezeichnen, da Ihre Hauptmod-Klasse hier auch alle Kommentare löscht alle Kommentare löscht, da sie nicht benötigt werden. Und dann werde ich hier ein neues Feld vorstellen. Und das ist eine öffentliche statische endgültige Zeichenfolge namens Mod-Unterstrich-ID. Und es wird gleich einer neuen Zeichenfolge sein, die MC-Kurs genannt wird, weil dies unsere Modell-ID sein wird . Jetzt ist je mehr Ausweis sehr wichtig. Hören Sie also hier noch einmal genau zu, je mehr ID nur Kleinbuchstaben, Unterstriche und Zahlen enthalten kann , sonst nichts, keine Leerzeichen und keine Großbuchstaben. Das ist also sehr wichtig. Keine Großbuchstaben. Ich habe das mehrmals für Ihre Modell-ID gesehen, Sie können keine Großbuchstaben enthalten. Und anstatt die Model-ID hier aufzurufen, werden wir einfach mehr ID sagen. Jetzt ist alles in Ordnung und Dandy. Das ist also alles, was wir im Mathematikunterricht des RMC-Kurses tun müssen . Gehen wir nun auf das Beispielmischen ein, weil wir hier einen Fehler bekommen, da dies immer noch versucht, den Beispielmodus zu verwenden. Keine Sorge, wir sagen einfach MC Course. Sie können sehen, sobald ich es eintippe, wird es uns tatsächlich vorgeschlagen. Also kann ich das mit der Registerkarte automatisch vervollständigen, und dann lass uns den Import hier öffnen und du kannst sehen, dass sie auch hier einen Fehler bekommen. Wir können diesen Import einfach löschen und dann sollten alle Pfeile hier verschwinden. Nun, dann lasst uns wieder zur besten Immobilie navigieren. Und hier haben wir die Mod-Version. Ich empfehle dringend, was Sie tun sollten, ist, dass Sie die Micro-Version entweder vorne oder hinten platzieren sollten . So können Sie zum Beispiel sagen, dass so etwas Version von 0.01 dash 118 ist . Also dann ist der Benutzer, weiß, okay, das ist Version 0.01 für deinen MOD. Und dann für Micro-Version 118 können sie sogar eine Gruppe sein, natürlich nur net.com Zeilenpunkt IMC Force und dann der Archivbasisname. Ich bin mir eigentlich nicht sicher, wie wichtig das ist, aber das wird einfach für uns sein, Fabric Vers 2018, oder? Und jetzt wurde das geändert. Das ist in Ordnung. Und jetzt müssen wir etwas anderes ändern, und das befindet sich im Ressourcenordner genau hier. Öffnen Sie das also und Sie können sehen, dass es sich tatsächlich um ein Modell-ID-Symbol handelt. Wir können das tatsächlich löschen. Das brauchen wir im Moment nicht. Und es gibt eine Fabric-More JS-Datei und eine gemischte Modell-ID. Zuallererst gehen wir auf die Fabric-Moderation ein. Und hier müssen wir tatsächlich eine Menge Dinge angeben. Das erste, was wir tun müssen, ist, dass wir die Modus-Idee hier natürlich auf MC-Kurs ändern müssen . Das ist das Modell, das wir genau hier gewählt haben, oder? Das muss also überall genau gleich sein. Und dann der Name Ahmad, ich werde mich nur für MC Course Fabric Mod entscheiden . Das ist in Ordnung. Wir können hier auch eine Beschreibung hinzufügen. So können wir zum Beispiel Mod sagen, andere unterrichten. Stoff Morgen, Stoff, mikrophonisch Klar, heidnische Autoren sind Homeroom Course. Gib noch einmal deinen eigenen Namen ein. Jetzt bin ich nicht der Autor Ihres Modells, und dann haben Sie einen Kontakt, zum Beispiel kann ich dies ändern, um ins Netz zu kommen und dann Quellen. Ich werde das wahrscheinlich ein wenig ändern , weil wir jetzt natürlich noch kein GitHub-Repository haben, aber das werden wir natürlich auch in dieser Vorlesung machen. Die Lizenz, die ich wählen werde, die MIT-Lizenz, von der ich persönlich denke, ist die beste Formate, die normalerweise nur, wissen Sie, sie ist immer noch Open Source als der Einstiegspunkt hier. Wir müssen dies so gut ändern, wie Sie sehen können, das ist Nettozahl und Rho Not Mc-Kurs und dann kein Beispiel mehr über MC Course Mod. Noch einmal sehr wichtig, dass du das geändert hast. Genau wie du es hier hast. Sie können Net Out und Row MC Kurs, MC-Kursmodell sehen. Das ist sehr wichtig. Gleiche gilt für die Mixins. Wir haben die Modell-ID hier auf MC-Kurs geändert. Und jetzt funktioniert alles hier auf der Icahn im Moment nicht. Natürlich könnten wir hier auch ein neues Icon hinzufügen. werden wir vorerst nicht machen. Dann lasst uns öffnen, je mehr ich die Mixins, Jason. Und was Sie sehen können, ist die Nummer eins, was wir wollen, ist mit der rechten Maustaste auf Refactor Umbenennen und dann die Modell-ID hier in MC-Kurs zu ändern. Und dann muss das Paket hier, das Sie sehen können , auch geändert werden. Der Nettobuchhalter Joe beim MC Kurs mischt, das ist in Ordnung. Dann ist auch das Beispielmischen hier in Ordnung. Dies ist nur ein Beispiel für die eigentlichen Mixins. Wir werden uns das in der Art und Weise später ansehen, denn Mix-Ins können ziemlich kompliziert sein. Vorerst werden wir hier einfach das Ganze ignorieren . Das Gleiche gilt für diesen. Wir werden es einfach ignorieren und sagen, dass das in Ordnung ist. Aber jetzt sind tatsächlich alle Änderungen , die wir vornehmen müssen, vorgenommen worden. Wir haben die RMC-Kurs-MOD-ID angegeben, den Namen hier ausgetauscht, wir haben die Dinge im Fabric-Mod Jason geändert, sehr wichtig, Sie ändern den Namen dieses Jason nicht. Man ändert nur den Namen dieser Jason hat auch eine sehr wichtige Sache. Und jetzt haben wir immer noch die Elefanten. Klicken wir einfach noch einmal darauf und sehen wir uns alles an, was in 940 Millisekunden erledigt wurde. Das ist sehr schnell. Und wie können wir in Minecraft beginnen, gehen Sie rechts oben zum Gradle, erweitern die Tasks Fabric und führen Sie dann den Client aus, es sei denn, Sie sehen einen Doppelklick darauf. Und dann wirst du das in Zukunft hier oben haben. Und dann haben Sie auch eine Art, nur einen Play-Button, auf den Sie grundsätzlich klicken können. Und das wird dann auch funktionieren. Aber vorerst werden wir nur ein paar Dinge warten. Dieser Pfeil hier ist absolut normal weil wir uns in einer Entwicklungsumgebung befinden, wir haben uns nicht bei Minecraft angemeldet, daher werden wir diesen Fehler bekommen. Das ist vollkommen in Ordnung. Und Minecraft wird hoffentlich schon angefangen haben und man kann es tatsächlich hören. Ich werde die Musik tatsächlich ablehnen , weil das manchmal ein wenig ablenken kann. Und da gehst du. So ist Stoff tatsächlich drin, wir können sehen, dass Stoffmodell auch völlig gut funktioniert. Wenn dies passiert, sind Sie tatsächlich fertig, wir haben die Entwicklungsumgebung eingerichtet. Beenden wir das Spiel tatsächlich. Und lasst uns noch zwei Dinge machen. Nummer eins, was ich möchte , dass du hier auch auf diese Jen-Quellen klickst. Doppelklicken Sie einfach darauf. Dies wird die Quelldateien für Minecraft und Fabric generieren , damit wir uns diese genauer ansehen können. Grundsätzlich werde ich Ihnen zeigen, was das in den zukünftigen Vorträgen im Grunde genommen sehr wichtig sein wird , dass wir Zugriff auf die Quelldateien für Minecraft und für Fabric haben . Weil es viele großartige Beispiele gibt , wie man dort auch Dinge macht. Jetzt wird das eigentlich etwas länger dauern, aber keine Sorge, sei einfach geduldig, warte darauf und dann werden wir sehen nachdem alles erledigt ist, los geht's. Also fast eine Minute und dann sind Jen-Quellen fertig. Sie können auch auf Assets herunterladen klicken Nur für den Fall, dass Sie das manchmal tun müssen. Manchmal tut man das nicht. Manchmal sollten die Assets normalerweise bereits heruntergeladen werden, aber es könnte einige Probleme geben. Und sobald Sie dies getan haben, können Sie es schließen und dann sicherstellen, dass Sie hier den Run-Client auswählen. Sie können hier auch den Minecraft-Client auswählen. Sie können eine von ihnen auswählen oder normalerweise wählen Sie diese aus. Und dann können Sie Mikrofone mit diesem Run-Button direkt hier im Grunde wieder starten . Im Moment wurde alles eingerichtet. Lassen Sie uns nun fortfahren, wie Sie das GitHub-Repository hinzufügen können. Schlagen Sie dringend vor, diesen Schritt nicht zu überspringen ein GitHub-Repository erstellen, denn wenn Sie ein GitHub-Repository erstellen, denn wenn Sie in Zukunft auf ein Problem stoßen, stelle ich mir Ihr GitHub-Repository zum Beispiel ein Fehlerprotokoll zur Verfügung und sagen Hey, das hat nicht funktioniert, wird mein Leben und dein Leben viel einfacher machen , weil ich in der Lage sein werde, schneller auf ein Problem oder eine Frage zu antworten , die du vielleicht hast. Wie machen wir das? Nun, zuerst müssen Sie ein GitHub-Konto haben. Ich empfehle dringend , einen auf GitHub zu machen. Es ist völlig kostenlos. Es ist sehr gut. Es ist eine Website, die von fast jedem benutzt wird, der codiert. Es gibt noch ein paar andere, aber ich empfehle dringend , einfach ein GitHub-Konto zu erstellen. Sobald dies erledigt ist, können Sie hier in die Intelligenz gehen und zu VCS gehen und dann Projekt auf GitHub teilen sagen , dass wir einen Namen auswählen müssen. Ich bin mit dem Stoff Dash Kurs Monat 18 einverstanden, das ist in Ordnung. Ich entscheide mich dafür, das privat zu machen. Das musst du nicht unbedingt. Remote-Ursprung ist auch in Ordnung. Ich füge momentan keine Beschreibung hinzu. Ich sage „Teilen“. Jetzt können Sie sehen, dass das Konto nicht leer sein kann, fair genug. Also füge ich eine Zählung hinzu und du kannst dich über GitHub anmelden. Ich drücke einfach darauf und es wird dann dieses JetBrains-Konto eröffnen. Ich werde sagen, autorisiert in GitHub und dann kannst du sehen, dass es erfolgreich autorisiert wurde weil ich hier bereits eingesperrt bin. Jetzt gehe ich hier hin und du kannst github.com Slash Cotton Row sehen und dann teilen sagen. Jetzt unten sehen Sie , dass es anfängt Sachen zu machen. Und dann deutet es hier im Grunde auf Hass hin. Was willst du pushen? Wie? Die Idee ist, dass wir zwei verschiedene Dinge haben. Du hast ein Commit und einen Push, und viele Sachen werden rot. Die Dateien werden also rot und wir sagen „Initial Commit“. Wir werden Add sagen. Und dann wird es hier unten rechts weiter Sachen machen. Und Sie konnten erfolgreich das Projekt auf GitHub teilen sehen. Ich glaube, ich kann einfach darauf klicken und los geht's. So wurde jetzt tatsächlich der Pferdekurs ein Repository unter Spalten erstellt Zeilenschrägstrich Fabric Kurs 118. Und das steht Ihnen auch zur Verfügung. In jeder Vorlesung finden Sie also grundsätzlich einen Link zur Filiale für diese spezielle Vorlesung, damit Sie sich den Code immer ansehen und sicherstellen können , dass alles was du getan hast, ist richtig, genau wie wir es hier haben. Ich kann es auch wärmstens empfehlen, besonders wenn wir uns mit den komplexeren Themen befassen, werde ich viel mehr Code kopieren , weil es nicht Spaß macht, jemandem beim Schreiben von 300 Codezeilen zuzusehen. Und dann im Grunde nur schauen, jemanden beobachten, richtig, dass es eigentlich nicht sehr interessant ist. Es ist viel besser für mich, ein paar Sachen zu kopieren und dann zu erklären, was geschrieben steht. So einfach ist das Setup für das GitHub-Repository hier. Sobald das erledigt ist, können Sie unten hier sehen , dass ich jetzt den Master Branch habe und ob ich etwas ändern würde , also füge ich zum Beispiel einfach einen Hammond hinzu, die Kommentare, oder? Sie können sehen, dass die Datei blau wird. Dies bedeutet, dass eine Änderung stattgefunden hat. Wie kann ich das jetzt markieren? Nun, ich kann genau hier zu diesem Commit-Tablet gehen und einfach sagen, ja, jede alte Änderung, oder? Ich wollte es, ich wollte sie markieren. Und dann sage ich, dass er einen Kommentar hinzugefügt hat. Was ich dann machen möchte, ist, dass ich mich verpflichte. Jetzt wurde diese Änderung begangen. Wenn ich zurück zum Projektfenster gehe, kannst du sehen, dass es nicht mehr blau ist, aber es ist noch nicht online. Denn was ich tun muss, ist, dass ich hier zu diesem Druckknopf gehen muss , zu dem Pfeil, der auf den oberen rechten Push zeigt. Und dann heißt es Master Origin Master Master. Dies bedeutet im Grunde, dass Sie die Änderungen, die Sie auf Ihrem lokalen Computer vorgenommen haben, vorantreiben werden. Dass der Ursprung und der Ursprung im Grunde online und dort zum Master-Zweig sind, schieben Sie. Und Sie können hoffentlich sehen, was passieren kann wird ein Commit zum Origin Master gedrängt. Und wenn ich jetzt wieder hierher gehe und das neu lade, können Sie sehen, dass ein Kommentar hinzugefügt wurde, der gerade abgegeben wurde. Wenn ich nicht zu sehr darauf eingehen möchte wie Git funktioniert und all das. Es ist jedoch sehr wichtig, dass Sie dies im Grunde genommen einrichten. Ich kann das wärmstens empfehlen. Ich kann das nicht mehr empfehlen. Hilfe von mir oder anderen Leuten zu erhalten , wird es so viel einfacher machen, wenn Sie ein GitHub-Repository haben , das Sie teilen können. Also bitte tun Sie dies und auch sehr wichtig, dass alle diese Dateien dort sind. Sie müssen die Gradle w-Datei haben, Sie müssen die Builder-Gradle-Datei haben, die Grail-Eigenschaften, all diese Dinge müssen da sein. Sehr, sehr wichtig, oder? Aber was auch immer der Fall sein mag, das ist es bereits für diese Vorlesung. Ich verstehe, dass dies ziemlich umfangreich ist. Wir haben eine Menge Dinge getan, aber wenn Minecraft jetzt arbeitet, herzlichen Glückwunsch, Sie haben begonnen, sich der Trauer zu widmen. Es wird eine verrückte und coole Reise auf dem Weg. Und ich bin mir sicher, dass du viel lernen wirst. Wenn Sie zu irgendeinem Zeitpunkt auf Probleme stoßen, können Sie natürlich die Fragen und Antworten verwenden, um eine Frage zu stellen. Ansonsten empfehle ich auch dringend , alles noch einmal auf Rechtschreibfehler zu überprüfen und sicherzustellen , dass Sie alles so gemacht haben wie ich. Und dann könnte hoffentlich alles funktionieren. Aber das war's für diesen Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wir sehen uns in der nächsten Vorlesung. 39. (Grundlagen) Erstelle ein benutzerdefiniertes Element: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir unseren eigenen benutzerdefinierten Artikel hinzufügen. Das ist also sehr aufregend. Wir beginnen mit dem Hinzufügen von Elementen, da sie ein bisschen einfacher sind als das Hinzufügen von Blöcken. Aber lass uns einfach anfangen. Was müssen wir tun? Nun, innerhalb unseres MC-Kurspakets wir mit der rechten Maustaste auf ein neues Paket. Welcher Artikel, damit die Paketstruktur im Allgemeinen sehr subjektiv ist und sich ändern kann. Es ist im Grunde eine individuelle Organisation. Wie Sie dies organisieren möchten, können Sie das grundsätzlich nach Belieben auswählen. Ich empfehle dringend, bei etwas zu bleiben, das dir gefällt. Grundsätzlich du und wenn du ein Team hast, dein Team, solange du alles findest, ist das in Ordnung. Ich bleibe im Grunde dabei, wie ich es mache, um das Artikelpaket einzulegen. Wir klicken mit der rechten Maustaste auf eine neue Java-Klasse mehr Elemente genannt wird. Dies ist also eine neue Klasse hier und dieses Fenster wird angezeigt, wenn Sie das GitHub-Repository initialisiert haben. Im Grunde genommen befindet sich dies in der Datei GitHub und normalerweise möchten Sie Ja sagen, Add, und dann wird es grün. Dies ist also im Grunde eine neue Datei wurde hinzugefügt. Wenn Sie kein GitHub-Repository eingerichtet haben, wird dies nicht angezeigt und alles ist auch in Ordnung. Um einen neuen Artikel hinzuzufügen, müssen wir ihn registrieren. Es gibt zwei Dinge , die wir tun müssen. Wir müssen einen öffentlichen statischen Boyd haben oder eine Methode für mehr Elemente registrieren. Und das wird nur Systemausdruckzeile sagen. Und es wird etwas wie das Registrieren, Registrieren von Elementen für Mod-Items, Mod-Items oder plus MC-Kurs sagen Registrieren von Elementen für Mod-Items, Mod-Items , die Melodie mod. Dies wird also INSEAD-Seite unserer nicht initialisierten Methode genannt , um die statischen Elemente , die wir in dieser Klasse haben, zu initialisieren. Dies ist eigentlich unbedingt erforderlich, da die Artikel sonst grundsätzlich nicht ordnungsgemäß registriert werden. Und dann haben wir ein privates statisches Element oder ein Registerelement, registrieren ein Element mit einem Zeichenfolgennamen und einem Element, Item. Jetzt werden Sie sehen , dass dieser Artikel hier rot ist , keine Sorgen. Was Sie tun können, ist, dass Sie darauf klicken, Alt und Enter drücken, um das Netto-Minecraft-Element, die Artikelklasse, zu importieren. Wie Sie sehen können, erhalten wir hier immer noch einen Fehler, da wir natürlich einen Artikel zurückgeben müssen , der überhaupt keine Sorgen macht. Was wir tun werden, ist, dass wir die Registrierung zurückgeben, nicht bei dem Registry-Punkt-Element registrieren alles in Großbuchstaben AMA, neue Kennung von net Minecraft util, MC-Kurs-MOD, dass Name der Modell-ID. Und dann nach dem Kommaelement der ersten Klammern. Wieder einmal wird die Registry Kras noch nicht importiert, also klicken Sie auf alles in zwei wichtige Minecraft UTI Registry, Registry. Und dieser Aufruf registriert im Grunde das Element unter unserem Namespace , der sich unter unserer Modell-ID befindet, mit dem hier angegebenen Namen als erster Parameter. Und es wird dieser Gegenstand sein. Dies ist also im Grunde eine Hilfsmethode , um uns bei der Registrierung unserer Artikel zu helfen. Und welche Art von Gegenständen werden wir herstellen? Nun, wir werden sie machen oder neu alken. Nun, das ist schon Kalzium in Waren und Nuggets und roh oder neu alc sie. Und später kann Oracle blockieren und all diesen Jazz. Wie stellen wir einen Artikel her? Also werden wir öffentliches statisches Finale sagen. Das ist also wieder nur ein grundlegendes Zeug, oder? Das ist also statisch, damit wir keine neue Klasse mehr Items erstellen müssen. Und dann endgültig, damit wir es danach nicht ändern können. Und das wird der neue Einkommensunterstrich Englisch sein. Und das wird gleich dem Registerelement sein. Du kannst sehen, dass ich das schon bekomme und dann ist der erste eine Zeichenfolge. Dieser Name hier wird tatsächlich automatisch generiert. Du musst das nicht tippen. Zoomen Sie ein bisschen hinein. Sie können sehen, dass dies ein bisschen anders aussieht als das, was ich geschrieben habe. Dies wird also automatisch generiert, Sie müssen dies nicht eingeben. Und das ist ein Orakel kommen unterstrichen Barren und dann Komma und dann ein neues Element. So erhalten Sie tatsächlich schon einige Vorschläge c, Wir wollen hier ein normales Element, neues Element mit den neuen Fabric-Elementen, Einstellungen, dieser Gruppe, Objekt, Gruppe, die Misc, schreiben Sie diesen. Und dann am Ende hier ein Semikolon. Dies ist das Ganze , um hier einen neuen Gegenstand zu machen. In diesem Fall machen wir im Grunde einen neuen Gegenstand, den Namen oder das Kalzium-Englisch. Das Orakel komm rein, komm her. Dies ist natürlich der Name der Variablen, und dies muss immer in der Feststelltaste geschrieben werden und unterstreicht im Grunde auch getrennte Grenzwerte. Und das alles muss ein Kleinbuchstaben sein, genau wie die Modell-ID. Also der Name hier, die Zeichenfolge hier, immer ganz Kleinbuchstaben. Und normalerweise empfehle ich dringend sich an eine Möglichkeit zu halten, dies zu schreiben. Grundsätzlich ist es in Ordnung, den Unterstrich hier zu haben, oder? In New Item sind Artikeleinstellungen erforderlich , und Sie können sehen, dass wir es einfach die Gruppenmethode nennen und sie an den Punkt der Elementgruppe Sonstiges übergeben haben, so dass dieses Element tatsächlich so dass dieses Element tatsächlich dem verschiedene Gruppe. Und ich kann auch danach auch hier einen Punkt hineinlegen. Und es hat mehr Sachen dazu gebracht. Du hast ein bisschen mehr Java-Wissen. Dies ist ein Builder-Muster und Sie können sehen, dass ich hier tatsächlich ein paar Dinge tun kann, eine Veränderung, ein paar Dinge vorerst. Wir werden nur daran bleiben , die Gruppe im Grunde genommen als Gruppe Verschiedenes auszuwählen . Und das ist so ziemlich genau das. Wir werden vorerst dabei bleiben. Aber gegen Ende der Vorlesung werden wir tatsächlich einen weiteren Punkt erstellen , damit Sie sehen, wie das funktioniert. Dass manche Leute ein bisschen verwechselt wurden. Wie füge ich ein zweites Element hinzu, um eine neue Modus-Artikelklasse erstellen zu müssen , Nein, Keine Sorge. Wir werden es im Grunde nur in unserer MC-Kurse-Mod-Klasse in der initialisierten Methode durchhalten , wo wir jetzt mehr Elemente aufrufen werden , die Moduselemente registrieren. Und wir können die Logger-Info löschen. Das wird gut werden. Und jetzt müssen wir uns in den Assets-Ordner wagen und im Grunde die JSON-Dateien erstellen. Nun, JSON-Dateien sind etwas, das, ich meine, ich würde nicht unbedingt nervig sagen, aber es kann sehr nervig werden, denn für jeden Block und für jeden Artikel, den Sie hinzufügen, müssen Sie diese hinzufügen JSON-Dateien. Wir werden die JSON-Akten des Artikels genau hier durchgehen. Und dann der nächste Vortrag, wenn wir über Blöcke sprechen , werden wir diese auch durchgehen, also keine Sorgen. Sie im Ordner „Assets“ rechten Maustaste auf das neue Verzeichnis namens MC-Kurs. Das muss also deine MOD-ID sein. Bitte vergewissern Sie sich, dass dies korrekt geschrieben ist. Alles, was ich gerade mache , muss richtig geschrieben werden. Sonst wird es nicht funktionieren. Sag das noch einmal. Bitte stellen Sie sicher , dass Ihre Ordnerstruktur korrekt geschrieben ist. Überprüfen Sie das acht Mal, wirklich, ich meine es MC-Kurs, klicken Sie mit der rechten Maustaste auf neues Verzeichnis namens lang. Dies ist also das erste Verzeichnis , das wir brauchen werden. Und dann gibt es noch ein anderes namens Models. Und dann gibt es noch eine , die wir brauchen werden, nämlich die Texturen. Aber sehr wichtig, Lang Modelle mit einem S am Ende und Texturen mit einer Säure am Ende. Der Models-Ordner wird auch zwei Verzeichnisse haben, eines namens broke. Das ist Singular. Und was ich dann tun kann, ist, dass ich diesen Ordner nehmen kann und wenn ich die Strg-Taste drücke und ihn in denselben Ordner ziehe, kann ich eine Kopie davon erstellen und nur dieses Element meinen. Jetzt nehmen wir beide und erstellen tatsächlich eine Kopie davon in den Texturordner, da wir einen Block benötigen, auch einen Elementordner. Aber so sollte das im Moment aussehen. Stellen Sie sicher, dass sich alles an der richtigen Stelle befindet, damit nichts Vergleichbares im Ordner „Modelle“ innerhalb des Assets-Ordners befindet. Alles muss so sein. Ressourcen, Assets, MC-Kursmodelle, M, C Corps Texturen, MCQs, Lang. Jetzt innerhalb des leg-Ordners wir mit der rechten Maustaste auf Neue Datei und unterstreichen uns dot-dot-dot Grayson it Enter und fügen Sie dies natürlich noch einmal dem GitHub-Repository hinzu, falls Sie eines haben. Und jetzt ist dies die Übersetzungsdatei. Dies wird also den Namen von Elementen in verschiedene Sprachen übersetzen . Jetzt werden wir für unsere Zwecke nur e verwenden und uns unterstreichen, Jason, weil wir dies nur in die englische Version übersetzen wollen . Sie können jedoch sehr einfach die anderen unterstützten Sprachen herausfinden die anderen unterstützten Sprachen und dann auch in diese übersetzen. Wir müssen es tun, dass wir geschweifte Klammern hier und dann eine Zeichenfolge einsetzen müssen . Dies wird also ein Punkt jener MC-Kurs sein, Neukalk-Unterstrich Barren und dann ein Doppelpunkt- oder Calcium-Score, ein Leerzeichen ohne Nullunterstrich darin. Da gehst du. Dieses Jahr ist also der nicht übersetzte Name. Im Grunde ist dies der Übersetzungsschlüssel. Sie können sich das wie diesen Artikel vorstellen da dies ein Artikel ist, weil MC-Kurs, weil dies unsere Modell-ID ist. Und dann ist der Siliziumbarren hier der Name in der Mod-Items Klasse genau hier. Aber das ist die allgemeine Idee. Und dieses Ding wird im Grunde auch fast jeder anderen Sache folgen , den Blöcken, verschiedenen Dingen. Also ja, das ist dann der übersetzte Name. Dies ist also der Name, den Sie sehen werden, wenn Sie den Mauszeiger über den tatsächlichen Artikel im Inventar bewegen, rechts dann unter Modellartikel, mit der rechten Maustaste, neue Datei oder Vorkalk, unterstreichen Sie den Barren Jason ist so wichtig und stellt auch sicher, dass dies richtig geschrieben ist. Jetzt kann die Malcom ein hartes Wort sein, also überprüfe einfach, ob es richtig geschrieben ist. Es tritt ein und ich werde es tatsächlich einmal zeigen, im Grunde schreibe ich das auf. Normalerweise schreibe ich das nicht auf , weil es nicht nötig ist. Die meisten JSON-Dateien werden auf der ganzen Linie gleich sein. Grundsätzlich, was Sie haben müssen geschweifte Klammern und dann einen übergeordneten Doppelpunkt, Element-Schrägstrich generierte Komma-Texturen, Doppelpunkt, frühe Klammer, Layer 0, Olin, MC Kerne. Ihr Motto De all a item, flash oder malcolm oder recalc m unterstreicht Englisch. Was passiert? Nun, der Elternteil stellt einfach sicher, dass dies als normaler Artikel in Ihrem Inventar angezeigt wird. Dann stellen Texturen später einfach Texturen für dieses bestimmte Element bereit , 0 bedeutet einfach, hey, wir werden nur eine Ebene verwenden. Wir müssen uns darüber nicht zu viele Sorgen machen, aber so muss das im Grunde genommen geschrieben werden. Und dann gibt dies den Speicherort in Ihrem Texturordner an. Wir werden auch nach der Blockvorlesung einen tiefen Einblick in JSON-Dateien erleben . Manchmal habe ich das Gefühl, dass es gut ist, zuerst die allgemeinen Grundlagen zu legen . Machen Sie also im Grunde genommen das Ende der Blöcke und sprechen Sie dann auch in einer späteren Vorlesung über jede der einzelnen JSON-Dateien . Das wird auch passieren, oder? Da es sich also um einen Artikelschlamm handelt, Siliziumbarren, muss das gehen, die Textur ist nicht zu den Texturen von MC im Artikelordner gegangen und muss Henri Calciumbarren Punkt PNG genannt werden . Also habe ich das natürlich schon vorbereitet. Ich kopiere das einfach über oder ein PNG, okay? Und natürlich zum GitHub-Repository hinzugefügt. Und natürlich steht dir das alles im Handgelenk zur Verfügung. Das GitHub-Repository und die Extras stehen Ihnen ebenfalls als Zip-Datei zum Herunterladen zur Verfügung. Wenn es mehrere gibt und wenn es sich nur um einzelne handelt, werden sie wahrscheinlich auch als einzelne Texturen sein. Im Moment ist das alles, was wir brauchen, um den Artikel ordnungsgemäß zu unserem MOD hinzuzufügen. Jetzt können wir das Spiel tatsächlich starten und sehen, ob es funktioniert. Stellen Sie sicher, dass Sie Run-Client ausgewählt haben , bei dem der Minecraft-Client hier ist, entweder in Ordnung ist. Und dann drücken Sie dort die Schaltfläche Ausführen, Ausführen. Und dann geht es nur darum zu warten, bis es anfängt. Alles klar, also befinden wir uns hier in Minecraft. Stellen Sie einfach sicher, dass Ihr eigenes kreatives natürlich, dass wir im Grunde leicht sehen können , ob es funktioniert oder nicht. Und lass uns einfach sehen, wenn wir dafür im Spiel sind. Also hier sind wir im Spiel und lass uns einfach sehen. Gehen wir also zum Tab „ Verschiedenes“ und gehen wir ganz unten. Da ist es. Das schon Kalzium ist gut, absolut erstaunlich. Und ich liebe die Textur auch. Für alle Transparenz, übrigens, die Texturen, können Sie sie tatsächlich verwenden, sie stehen jedoch unter einer bestimmten Lizenz. Ich werde es Ihnen in nur einer Sekunde zeigen, aber das ist wirklich cool, dass Sie gehen, der Artikel wurde erfolgreich hinzugefügt, aber hier sind wir die Credits Notice, also ist das sehr wichtig. Alle Texturen wurden durch Nanoangriff erstellt und werden unter der internationalen Vier-Punkte-Null-Lizenz CC BY SA verteilt . Vergewissern Sie sich, dass Sie dem folgen. Wenn Sie sie in Ihrem eigenen Repository verwenden möchten, fügen Sie einfach diese Datei hinzu. Ich bin mir sicher, dass das in Ordnung sein wird, aber stellen Sie sicher, dass dies erledigt ist. Andernfalls verletzen Sie tatsächlich das Urheberrecht. Ich möchte also nur sicherstellen, dass dies der Fall ist. Ansonsten sind die Texturen hier eigentlich alle großartig und du kannst sie benutzen. Überhaupt keine Sorgen. Um Ihnen sofort zu zeigen, wie Sie hier ein zweites Element hinzufügen können, werden wir dies im Grunde kopieren, also wähle ich all dies aus und drücke Strg D, um es zu duplizieren. Und was wir dann tun werden, ist, dass Sie sehen können , dass Sie das nur ein bisschen ändern müssen. Wir müssen den Namen hier natürlich in orales Calciumnugget ändern . Und dann auch hier drunter Nugget. Und jetzt ist der zweite Gegenstand eigentlich schon im Spiel von dir Kurs muss auch ein neues Artikelmodell haben. Was wir also tun werden, ist, dass wir diesen kopieren , indem wir ihn einfach in denselben Ordner ziehen , während wir die Kontrolle gedrückt halten, oder? Also so etwas. Und dann können wir dies sofort in Oracle com nugget umbenennen. Okay? Und dann auch hier drinnen, für ein Calcium-Kugget, nehmen wir das Kalziumnugget, auch hier drin extra robust ist. Alles klar. Und dann werden wir in der EN unterstreichen Jason-Akte das kopieren. Im Grunde genommen habe ich einfach, weißt du, Control C, Control C, Control V, Control V, Control V gedrückt habe weißt du, Control C, Control C, Control V, Control V, Control V gedrückt Control V, Control V, , um es mehrmals einzufügen , damit alles hier funktioniert und das Nugget und dann hier natürlich auch Nugget. Und jetzt ist das alles, was wir tun müssen, um einen zweiten Artikel hinzuzufügen , und jeder neue Artikel ist im Grunde gleich. Es ist nur ein weiterer öffentlicher statischer endgültiger Punkt mit einem neuen Namen. Das ist also sehr wichtig, dass dies immer einen eindeutigen Namen hat. Wenn es Namen gibt , die im Grunde mehrmals verwendet werden, wird das nicht funktionieren. Lassen Sie uns also nur um der Vollendung willen sehen, ob es funktioniert. Alles klar, Freunde haben Schwarz in Minecraft. Gehen wir also zum Tab Verschiedenes und mal sehen, da ist es, das Orakel kommt und klopft an. Es wurde auch dem Spiel hinzugefügt. Also hat alles einwandfrei funktioniert. Ist das nicht großartig, oder? Und das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Der gesamte Code für Sie ist natürlich im GitHub-Repository oder auch in Einzelpersonen verfügbar , LinkedIn und Ressourcen. Wir sehen uns also in der nächsten Vorlesung. Also ja. 40. (Grundlagen) Einen benutzerdefinierten Block erstellen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir versuchen, Minecraft benutzerdefinierte Blöcke hinzuzufügen . Oder benutzerdefinierte Blöcke ähneln dem Hinzufügen der benutzerdefinierten Elemente, benötigen jedoch ein paar weitere JSON-Dateien. Aber zuerst müssen wir sie natürlich einprogrammieren. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens block. Und dann erstellen wir drinnen eine neue Java-Klasse namens MOD-Blöcke. Jetzt erfordert dies erneut die öffentliche statische Void namens Register-Modus-Blöcke Methode , die im Grunde etwas wie das Registrieren von Monologen oder MC-Kurs-Mod, Mod-ID ausgeben wird Registrieren von Monologen oder MC-Kurs-Mod, Mod-ID , die wir sind in der MC-Kurse Mock-Kurs anrufen. Aber das wird auch erfordern, dass ich hier zwei verschiedene Hilfsmethoden erstellen werde. Das erste ist das private statische Element namens Registerblock Item. Der Grund, warum ich dies tun werde, ist wenn wir einen Block in Item erstellen , nicht dafür erstellt wird und wir tatsächlich ein Element dafür erstellen müssen. Der erste Parameter ist also der Zeichenfolgenname, dann Block, Block und dann Elementgruppe, Gruppe. Und dann werden wir auch alles hier rot, total in Ordnung. Klicken Sie darauf und geben Sie ein, um es zu importieren, geändert und geben Sie die wichtige, sehr wichtige ein, dass wir die richtige Blockklasse importieren. Sie können Net Minecraft Block sehen, sehr wichtig. Und dann die Elementgruppe, das Gleiche, einfach Alt und Enter. Und dann wird es wichtig sein. Und dann geben wir hier das Registry Dot Register zurück , Registry Dot Item mit einem neuen Bezeichner, MC-Kurs-MOD diesen Mod-ID-Namen. Und dann noch einmal nach dem ersten Komma neuer Blockelement in Klammern , dieses Zeitblockelement. Rechts kann die Tabulatortaste drücken um dies grundsätzlich automatisch zu vervollständigen, indem der Blockparameter hier übergeben wird. Und dann noch einmal neue Fabric-Items Einstellungen. einmal, auch einfach mit Tab automatisch vervollständigen. Es gibt eine Gruppe und übergeben dann den Gruppenparameter. Und dann die drei Klammern und dann ein Semikolon, um die Zeile zu beenden , und sie gehen die Registerblock-Item-Methode vollständig fertig. Und dann haben wir eine Methode , die dies im Grunde nennt. Für den Block müssen wir also ein Blockelement und natürlich auch den Block registrieren . Wir haben also einen privaten statischen Block oder die Registerblock-Methode, bei der es sich um einen String-Namensblock, einen Block und dann natürlich eine Elementgruppe handelt. Und das erste , was es tun wird, ist , dass das Register eine Block-Item-Methode mit dem Namensblock und der Gruppe aufruft . Und dann wird die zweite Zeile hier nur noch einmal zurückgegeben , Registrierung, die sich registriert. Diesmal registriere diese Blockierung. Der Block hier mit einem neuen Bezeichner. Identifikator MC, Kurs-Mod, Mod-ID-Name. Und dann nach den ersten Klammern wieder blockieren. Genau so steht Ihnen der Code hier natürlich auch zur Verfügung. Sie können sich das GitHub-Repository oder das genauso gut ansehen. In der Idee hier ist, dass wir für jeden Block die Registerblock-Methode im Grunde aufrufen werden , damit wir dann sofort ein Element haben können dann sofort ein Element haben , das auch dafür registriert ist. Und was wir dann tun werden, ist, dass wir hier einen neuen Block bauen, alles durchgehen uns ansehen, ob es funktioniert oder nicht. Und dann, nachdem der erste Block hinzugefügt wurde , wird auch ein zweiter Block hinzugefügt. Also öffentlicher statischer, finaler Block oder 40k Malcolm Unterstrichenblock, gleich dem Registerblock mit dem Namen ist , natürlich kommt Neukalk Unterstrich Block oder in Kleinbuchstaben geschrieben. Und dieser Name wird hier wieder automatisch generiert. Und wir werden einen neuen Block bauen. Du bist nur ein normaler Block. Mit dieser Zeit Fabric-Rock-Einstellungen sieht man das davon. Das kopiert also im Grunde ein Material hier. Das wird materiell sein, eigentlich Material, das bekannt ist. Und dann werden wir sagen , dass eigentlich der Block, jetzt wird der Block tatsächlich Metall für mein nicht so aus Material Metall haben . Und dann nochmals punkten und Sie können alle verschiedenen Einstellungen sehen , die wir einstellen können. Es gibt viele von ihnen, wie Sie deutlich sehen können, einige von ihnen müssen durchschlagen. Also zum Beispiel, weißt du, breche das BI-Tool. Sie können das sehen, wenn ich das Tool-Tag hier tatsächlich hinzufügen würde , und Sie können sehen, dass dies tatsächlich auch ein roter Durchschlag ist . können wir also nicht benutzen. Diejenigen, die Durchbrüche haben, sollten also nicht die anderen verwenden, die wir verwenden können. Keine Sorge. So kann zum Beispiel so etwas wie diese Stärke verwendet werden, was im Grunde die Härte und Beständigkeit ist. Im Grunde wie lange dauert es, diesen Block zu brechen. Wir möchten immer die Requid-Tool-Methode für jeden Block aufrufen . Im Grunde ist es sehr wichtig. Nachdem wir den Block haben, müssen wir auch die Artikelgruppe übergeben . Also Artikelgruppe Verschiedenes hier in diesem Fall. Aber im Grunde in der nächsten Vorlesung werden wir auch sehen, wie wir unsere eigene benutzerdefinierte Artikelgruppe hinzufügen können. Deshalb ist dies sehr wichtig, dass wir dies als möglicher Umfang hier haben als möglicher Umfang hier um unser Leben ein bisschen einfacher zu machen. Im Moment ist dies tatsächlich der definierte Block. Gehen wir zu unserem MC-Kurs und gehen wir hier hin. Dies werden also die Blöcke im Punktregistermodus sein. Stellen Sie sicher, dass dies nach den Items aufgerufen wird. Dies ist nur die Reihenfolge , in der ich es gerne mache. Ich glaube nicht ausdrücklich , dass dies immer notwendig ist, aber es macht einfach Sinn. Manchmal ist die Reihenfolge hier vorerst sehr wichtig. Wir bleiben einfach dabei. Und lasst uns zuerst D öffnen , um uns JSON-Datei zu unterstreichen. Und mal sehen. Also was wäre der Block? Nun, das ist eigentlich ziemlich einfach. Blockpunkt-AMC-Kurs, der den Unterstrich neu bereinigt. Und dann natürlich noch einmal der übersetzte Name oder Malcolm block genau hier. Das beginnt also natürlich jetzt mit einem Block und das ist Oracle kann blockieren hier ist wieder nur der Name, der in den Schlammblöcken angegeben wird. Jetzt sind die JSON-Dateien ein bisschen anders, weil wir tatsächlich einen neuen Ordner benötigen. Also innerhalb der Vermögenswerte und einer Armada D, in unserem Fall MC-Kurs, in unserem Fall MC-Kurs, klicken Sie mit der rechten Maustaste auf ein neues Verzeichnis namens Bloc States. auch sehr wichtig, dass dies richtig geschrieben ist. Und so brauchen wir dort eine neue Datei namens recalc underscore block, die angrenzende das Ego. Und ich mache das noch einmal manuell und erkläre es dann. Also brauchen wir geschweifte Klammern und dann brauchen wir eine Varianz. Stellen Sie sicher, dass dies korrekt geschrieben ist, alles wieder in geschweiften Klammern. Und dann leere Anführungszeichen, geschweifte Klammern, Modell, Olin, MC-Kurs, gefallener Block oder eine Kuh kommen Unterstrichenblock, oder? Genau so. Jetzt ist das eine sehr interessante Blocksituation. Wie ich schon sagte, das werden wir in einem zukünftigen Vortrag sehen. Ich werde durchmachen, was jeder dieser JSON tatsächlich bedeutet. Die allgemeine Idee ist, dass es verschiedene Varianten gibt, die wir definieren können. Derzeit haben wir nichts zu finden, da unser Block keine Blockstatus-Eigenschaften hat. Es gibt also verschiedene Eigenschaften die wir später definieren können, was wir im Zwischenabschnitt des Kurses sehen werden . Und dann können wir auf verschiedene Modelle verweisen. Für unseren Fall brauchen wir tatsächlich ein Modell unter dem Block älterer Anruf oder einen Kalziumblock. also im Modellordner Block rechten Maustaste auf neue Datei für einen Calcium-Unterstrich blog.js, JSON. Und das Blockmodell sieht wie folgt aus. Dies wird dem Artikelmodell ähnlich aussehen. So unterstreichen geschweifte Klammern und dann der übergeordnete Block-Schrägstrich all das einfach, dieser Elternteil sagt im Grunde nur, hey, die Texturen werden rundum gleich sein. Dann werden wir noch einmal die Texturen hier haben. Doppelpunkt-Rekord. Und dann alle gefallenen MC Kurs Dickdarm Block oder ein Kalzium-Unterstrichenblock. Sie können also noch einmal sehen, wir eine Textur haben und dies wird die Textur für alle sechs Seiten des Würfels sein, aber deshalb ist es Würfel alles. Und dann ist dies unter MC Kurs blockieren oder entsperren. Dies ist wieder der Name der Datei, die wir haben müssen. Das ist also so ziemlich alles, was es dazu gibt. Und das werden wir tatsächlich auch kopieren. Das habe ich schon vorbereitet. Sie können das natürlich auch als Download erhalten, aber bitte achten Sie auch darauf, dass Sie die Lizenz in den Credits genau hier befolgen . Alle Texturen sind also tatsächlich unter einer bestimmten Lizenz lizenziert. Stellen Sie also sicher, dass Sie dem auch folgen, wenn Sie dies in einer öffentlichen Umgebung verwenden, oder? Und wir brauchen eigentlich auch ein Artikelmodell. Das ist die Sache mit den Blöcken. Es benötigt tatsächlich drei verschiedene JSON-Dateien, im Grunde alle gleich benannt. Jason eines Blocks 6, ein Blockmodell Jason und ein Artikelmodell Jason. Ich werde das eigentlich nicht kopieren. Ich werde tatsächlich ein neues machen. also im Ordner Elementmodelle mit der rechten Maustaste oder neu alc come unterstrich loc Jason. Und das sieht tatsächlich anders aus als die anderen Artikelmodelle, da ein Blockelementmodell tatsächlich anders ist. Das wird also geschweifte Klammern haben. Und dann wird es Eltern-Dolon, MC-Kursblock oder Schrägstrich oder einen Kalzium-Unterstrich haben MC-Kursblock oder Schrägstrich . Dies bezieht sich hier auf das Blockmodell und macht es so, dass der Artikel anstelle des Inventars auf diese 3D-Weise angezeigt wird , dass Blöcke normalerweise im Inventar angezeigt werden. Aber noch einmal werden wir dies in einem späteren Vortrag etwas genauer sehen in einem späteren Vortrag etwas genauer wenn wir alle JSON-Dateien durchgehen. Aber jetzt haben wir die drei JSON-Akten. Wir haben die Textur und die Übersetzung erledigt und welche Blöcke die mobile UX-Methode registrieren, wird auch genannt. Also mal sehen, ob es funktioniert. Alles klar, wir sind in Minecraft, also lass uns hierher gehen. Das früheste kann das Orakel blockieren, und wenn ich es dort unten setze, ist es das auch. Also funktioniert alles völlig gut. Also wollte ich eine kurze Kleinigkeit erwähnen. Es gibt im Grunde zwei Abschnitte , in denen Sie ein Problem haben können. Entweder funktioniert die Textur innerhalb der Welt nicht. Sobald ich den Block eingestellt habe, könnte er ein schwarzes Ende rosa Texturjahr haben, oder die Textur im Inventar funktioniert nicht. Es gibt zwei verschiedene Dinge , die vor sich gehen könnten. Wenn die Textur der Welt nicht funktioniert, bleibt der Block höchstwahrscheinlich die JSON-Datei. Das ist zu lahm. Wenn die Textur im Inventar nicht funktioniert, ist es das Artikelmodell Jason, das schuld ist. Und wenn beide nicht gut funktionieren, kann es dann einen dieser Gründe haben. So sehr wichtig. Das ist im Grunde die allgemeine Idee, oder? Und nur damit gezeigt wird, wie Sie einen neuen Block hinzufügen können , wähle ich diesen im Grunde aus und drücke Strg C und dann Control V, um ihn einzufügen. Und dann werden wir das in Oracle oder hier ändern, und noch einmal hier , oder? Der Name ist auch sehr wichtig. Der Rest, wenn Sie die Dinge ändern möchten , die Sie können, ändern Sie sie natürlich. Sagen wir zum Beispiel die Lautstärke oder es ist eigentlich nicht stark. Und es ist eigentlich kein Metall oder es ist wirklich Metall. Es ist eher wie Stein. Das ist auch total in Ordnung. Und damit bin ich eigentlich sehr zufrieden. Jetzt ist der Block im Spiel, aber er hat noch keine Textur und all diesen Jazz. Aber wir müssen im Grunde auch einen Block C Jason dafür hinzufügen, ein Blockmodell JSON und Item Milk Jason. Was ich normalerweise mache, ist, dass ich einfach einen der bereits existierenden Jasons nehme und ihn einfach so kopiere, oder? Ziehen Sie es hinein, während Sie die Strg gedrückt halten, und dann können Sie den Namen hier ändern. Also Oracle oder, und dann auch hier drin. Recalc ODER, und dann auch das Gleiche für das Blockmodell , oder? Anstatt dass Oracle blockieren kann, werden wir Pre-Calc oder ein Jahr haben. Und dann wird dies auf den Rückruf oder die Textur anstelle der Blocktextur hinweisen . Und dann wird das Letzte sein, dass das Artikelmodell auch umbenannt wird oder hier. Und dann auch hier drüben. So füge ich normalerweise neue Blöcke hinzu, oder? Ich kopiere nur einen. Das grundlegende Beispiel dafür, dann das Gleiche hier in der Sprache, indem Sie dies einfach duplizieren, das Komma hier hinzufügen und dann sicherstellen, dass dies oder oder alles gut funktioniert. Dann füge ich auch die Textur hinzu, die Ihnen natürlich zur Verfügung steht oder auch herunterladen kann. Das Ego und jetzt das Kalzium oder der Block werden dem Spiel ebenfalls hinzugefügt. also nur um der Vollendung willen sehen, Lassen Sie uns also nur um der Vollendung willen sehen, ob es funktioniert. Richtig, wir sind wieder in Minecraft, also gehen wir einfach zum Tab „Verschiedenes “ und mal sehen, dass es schon Kalzium ist oder jetzt auch im Spiel ist, lass es uns einfach ablegen, alles funktioniert völlig gut. Das ist auch einer der Vorteile. Wenn Sie einen bereits funktionierenden Block haben und die JSON-Dateien kopieren, funktioniert es normalerweise auch, wenn es für einen Block funktioniert, auch für den anderen Block. Das ist also wieder, ziemlich cool, oder? Aber das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Der gesamte Code steht Ihnen in den Ressourcen zur Verfügung, und wir sehen uns in der nächsten Vorlesung. Also ja. 41. (Grundlagen) Hinzufügen von benutzerdefinierten Elementargruppe: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft unsere eigene benutzerdefinierte Artikelgruppe hinzufügen . Dies ist eigentlich eine sehr einfache Übung und erfordert nicht viel, naja, im Grunde genommen Codewechsel. Innerhalb unseres Artikelpakets wir mit der rechten Maustaste auf eine neue Java-Klasse die als Modus-Elementgruppen bezeichnet wird. Und dann werden wir drinnen eine neue öffentliche statische endgültige Item-Gruppe erstellen . Alles natürlich. Dies ist also nur der Name der Variablen hier, und dies entspricht dem Stoffelement. Group Builder erstellte einen neuen Bezeichner, MC Course Mod, der ID AMA Pferd als Name von like als String modelliert . Und nach den ersten Klammern werden wir einen Lieferanten einrichten, um Klammern zu öffnen und zu schließen, gefolgt von diesem Pfeil hier mit einem neuen Artikelstapel. Und dann geben wir mehr Gegenstände oder einen Kalziumbarren ein und enden dann mit einem Semikolon. Das ist jetzt also eine Artikelgruppe. Wenn wir eine zweite hinzufügen wollten, könnten wir das einfach kopieren. Ich bin nur ein Kurs 2, ich schätze so etwas. Dann ändere natürlich auch hier den Namen, oder? Das ist sehr wichtig, aber so würden Sie eine zweite hinzufügen und dann können Sie sich auch darauf beziehen. Aber für unsere Zwecke werden wir einfach einen hinzufügen. Und wie nennen wir das natürlich? Nun, statt der Klasse „ mehr Blöcke können wir hier einfach den Gegenstand Verschiedenes durch mehr Artikelgruppen ersetzen . Und dann geht das Gleiche genau hier. Also kopiere ich einfach dieses Control C, Control V. Und dann gilt das Gleiche für je mehr Gegenstände hier das Diverses genannt werden. Wir werden einfach hier in der Kursgruppe vorbeigehen. Und das wird gut werden. Entfernen Sie das auch einfach. Da gehst du. Jetzt ist alles schön und ordentlich. Und natürlich, der Item-Stack hier, bezieht sich auf das eigentliche Ding, das auf der eigentlichen Registerkarte angezeigt wird , oder? Jetzt wird es Willkommensartikel oder ein Baumwoll-England sein , das ausgestellt wird. Man könnte zum Beispiel auch sagen, wenn Sie möchten ein Er- oder ein Baumwollblock ausgestellt wird, könnten Sie das auch einsetzen und das würde auch funktionieren. Aber wir bleiben beim Barren, das wird gut werden. Und dann ist dieser Kurs hier eigentlich sehr wichtig , weil wir auch die Übersetzung dafür hinzufügen möchten. Also im Ohr und unterstreicht uns JSON-Datei, wir werden einfach ganz unten gehen. Das wird dieser Gegenstand sehr interessant sein und dann das Gate g. das tatsächlich in Großbuchstaben geschriebene Gate gruppieren . Sehr interessant mit Ihrem MOD ID MC Kurs in unserem Fall. Und dann ist natürlich der Name , den wir dort gegeben haben. Und das wird nur die Registerkarte „Kurs“ sein. Das wird gut werden. Dies ist jetzt der Name, der angezeigt wird, wenn wir den Mauszeiger über den Tab bewegen. Und noch einmal, dieser Kurs hier, genau das hier. Nachdem wir das hinzugefügt und in den Blöcken weitere Elemente , Klassen hinzugefügt haben, Mal sehen, ob es funktioniert oder ob es wieder in Minecraft antwortet und mal sehen. Das ist also ein sehr guter Hinweis darauf, ob wir hier eine zweite Seite haben und los geht's. Die Registerkarte „Kurs“, die Registerkarte „ Kurs“ und alle unsere Artikel oder unsere Box sind da drin. Aber das ist wirklich großartig und wir können sie herausnehmen und verwenden, wie wir es gerne hätten. Das ist also wirklich echt cool. Aber in Zukunft werden wir natürlich die Registerkarte „Kurs“ verwenden. Daher empfehle ich dringend, auch einen eigenen Tab zu erstellen. Dies ist also im Grunde genommen ein Missbrauch in allen zukünftigen Vorträgen. Aber vorerst ist das für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und er erfährt von dem Neuen, und wir sehen uns in der nächsten Vorlesung. Also ja. 42. ASSINGMENT 5: Benutzerdefinierte Blöcke und Gegenstände: Willkommen zur ersten Aufgabe hier im Fabric-Kurs für 118. Und Ihre Aufgabe besteht darin, den Moduselementen eine Zeile oder einen Kalziumgegenstand hinzuzufügen. Und natürlich alle notwendigen JSON-Dateien sowie die Texturen. Die Texturen werden Ihnen zur Verfügung gestellt. Bitte beachten Sie, dass sie unter internationalen Flügen von CC BY SA 4 lizenziert sind . Wenn Sie sie also in Ihrem Projekt und in einem offenen Projekt verwenden möchten, stellen Sie sicher, dass Sie dort einen angemessenen Kredit gewähren. Und dann solltest du auch zwei Blöcke machen, einen tiefen Schlitz oder ein Kalzium oder, und den Raub Kalzium oder Block. Die Texturen dort werden also wieder unter derselben Lizenz bereitgestellt. Die Texturen werden ebenfalls bereitgestellt und alles ist auch auf dieser Seite geschrieben, Sie sollten die irgendwo geschriebene Aufgabe als tatsächliche Aufgabe sehen . Ich musste vermuten, dass das nicht länger als eine Runde dauern sollte , ungefähr 20 Minuten. Vielleicht musst du zurückgehen und dir die vorherigen Vorträge noch einmal ansehen. Wir werden das im Grunde wirklich festigen. Aber sonst sollte das nicht allzu lange dauern. Und ich würde sagen, viel Glück und wir sehen uns in der Lösung. 43. LÖSUNG 5: Benutzerdefinierte Blöcke und Elemente: In Ordnung, also schauen wir uns die Lösung an , um die beiden Schlösser hinzuzufügen, das Tröpfchen oder Kalzium oder in der Gesteinsrekord kann blockieren. Natürlich ist es im Grunde nur eine Übung, diese zu kopieren, die Namen hier zu ändern und sicherzustellen, dass wir hier natürlich die Artikelgruppe auswählen. Und dann fügen Sie in den Modellgegenständen das Rory-Kalzium hinzu , kopieren Sie es einfach und ändern Sie den Namen hier. Und dann sind natürlich nur die JSON-Dateien alle ziemlich einfach. Sie sind im Grunde genau die gleichen wie die anderen weisen in diesem Fall nur auf ein anderes Modell hin. All diese stehen Ihnen natürlich wieder in gewisser Funktion im GitHub-Repository zur Verfügung gewisser Funktion im GitHub-Repository und auch in einer nur, damit Sie jeden von ihnen einzeln ansehen können. Und ich glaube, ich werde sie auch zum Download haben. Insgesamt sollte das also nicht zu verrückt sein. Dies sollte eigentlich eine ziemlich einfache Übung sein, die Sie befolgen können. Und ich hoffe, dass du das geschafft hast. Wenn auf dem Weg Fragen auftreten oder auf dem Weg entstanden sind, zögern Sie nicht, Fragen über das Diskussionsfrage-und-Antwortsystem zu stellen. Ich hoffe, du lernst mit dieser Aufgabe etwas und wir sehen uns in der nächsten Vorlesung. Also ja. 44. (Grundlagen) Hinzufügen benutzerdefinierte Rezepte: Oder ich begrüße zurück zum Stoffkurs für 118. In diesem Vortrag werden wir uns ein individuelles Rezept ansehen. Für benutzerdefinierte Rezepte insgesamt könnte man sagen: Nun, sie werden wahrscheinlich sehr kompliziert sein. ist jedoch eigentlich nicht der Fall. Einige Leute von Ihnen haben in der Vergangenheit möglicherweise bereits mit Datenakten herumgespielt . Und es ist ziemlich dasselbe. Also gehen wir zu unserem Ressourcenordner. Und anstatt dies in den Assets-Ordner zu legen, müssen wir tatsächlich einen neuen anstelle des Ressourcenordners namens data erstellen . Und dann erstellen wir dort einen neuen Ordner mit unserem Modell. In unserem Fall natürlich MC-Kurs. Und dann möchten wir drinnen den Ordner „Rezepte“ erstellen. Jetzt ist es wieder sehr wichtig, dass hier alles genau so geschrieben wird, wie es ist, also muss das genau mit Ihrer Modell-ID übereinstimmen und Rezepte müssen auch wie diese oder Kleinbuchstaben geschrieben werden. Ich wollte das nur noch einmal erwähnen. Und jetzt drinnen werden alle unsere Rezepte gehen. Wie sehen sie aus? Nun, ich schreibe ein Rezept aus. Sie sind jedoch nur aus Gründen des Arguments, ich klicke mit der rechten Maustaste auf Neue Datei und wir nennen dies den Oracle-Einkommensunterstrich Block, Unterstrich von index.js. Und was manchmal passieren kann ist, dass unten rechts hier das Jason Minecraft-Rezept Jason sehen kann , dass das Schema im Grunde genommen automatisch erkannt wird, aber Sie können auch hier reingehen, oder? Für einige JSON-Dateien öffne ich diese einfach. Zum Beispiel sehen Sie kein JSON-Schema. Du kannst immer mit Rot reingehen und darauf klicken und dann grundsätzlich nach einem Rezept und Setups suchen. Sie haben Mikrowellen-Datenrezept. Es gibt also ein paar Sachen hier. Du brauchst es nicht unbedingt. Der einzige Vorteil, den du bekommen wirst, ist, wenn du anfängst Sachen in C zu tippen, dass du hier einige Vorschläge bekommst. Aber in einem Moment zeige ich Ihnen, wie Sie Vanille-Rezepte tatsächlich kopieren können, was unser ganzes Leben viel einfacher machen wird . also keine Sorgen. Also fangen wir mit den geschweiften Klammern und dann mit einem Typ an. Jetzt ist der Typ im Grunde genommen welche Art von Handwerk das ist. Und Sie können sehen, dass es eine Reihe von Sachen für diesen geformten, formlosen, dauerhaften Kampfer gibt, das Kochen, Schmelzen, Schmieden, Rauchen und Steinschneiden. Insgesamt werden wir uns im Grunde genommen ansehen, dass die Form, formlos, das Schmelzen und das Sprengen über den Rest ziemlich gleich sind. Es gibt keinen großen Unterschied in allen von ihnen. Zuallererst werden wir einen Blick auf ein Shape-Rezept werfen. Das ist also ein Formrezept. Wir müssen hier tatsächlich ein Muster definieren, aber dies ist das Muster, das im Grunde eine Liste ist und normalerweise drei Strings enthält. Und normalerweise haben diese drei Saiten die Länge von drei. Diese Ringe repräsentieren also den Basteltisch. Also wenn ich das mache, richtig, also fülle ich alle, alle mit Asche-Extras aus Gründen der Argumentation hier, dann sollten Sie bemerken, dass das ein Drei-mal drei ist . Das ist buchstäblich die Handwerksbank. Und das stimmt genau. Das Muster hier repräsentiert also die Handwerksbank. Wenn ich das zum Beispiel machen würde, muss ich die Außenseite füllen und den mittleren Slot grundsätzlich leer lassen . Und dann, weißt du, könntest du dasselbe mit so etwas machen. Das ist also eine allgemeine Idee, wie Sie dieses Muster machen können. Jetzt müssen Sie nicht unbedingt drei Saiten haben, und sie müssen auch nicht unbedingt drei lang sein. So etwas, das wäre zum Beispiel die Tür. Weil Sie die Tür entweder auf der linken Seite des Basteltisches auf der rechten Seite des Basteltisches grafieren entweder auf der linken Seite des Basteltisches können. Und das würde sich im Grunde darum kümmern. Auch hier ist ein bisschen Experimentieren natürlich sehr klug. Und auch gegen Ende der Vorlesung werden wir uns die Vanille-Rezepte ansehen , damit Sie dann auch von diesen kopieren können. Dann müssen wir einen Schlüssel definieren. Jetzt ist der Schlüssel hier sehr interessant, denn das muss irgendwie etwas zusammenhängen, oder? Was bedeutet der Hashtag-Alarm? Ich weiß es nicht genau. Also müssen wir das definieren. Wir machen Hashtag Doppelpunkt und dann noch einmal geschweifte Klammern. Und drinnen definieren wir einen Gegenstand. Dies wird natürlich MC-Kerne oder ein Kalziumunterstrich sein. Und das bedeutet jetzt, dass der Hashtag hier dieser bestimmte Gegenstand sein soll. Aber sei auch nicht zu verrückt, dann können wir hier am Ende ein Ergebnis machen. Und das wird MC-Kurs sein. Oder ein Kalzium-Unterstrichen-Block. Denn nichts zu Verrücktes sollte hier drin sein. Dies sollte alles ziemlich vernünftig sein, wie wir die OriC-Begrüßung Ingrid hier als Schlüssel stellen werden. Und dann wird dies im Grunde genommen erkannt. Hey, wir müssen neun oder Kalzium-Ingles einsetzen , um einen oder einen Kalziumblocker als Ergebnis zu bekommen. Jetzt wird die Frage kommen. Was ist mit andersherum? Wenn ich also ein Orakel in die Handwerksbank stecken kann , wie bekomme ich neun oder einen Calciumbarren daraus? Nun, das kopiere ich einfach. Alle aktuellen Dateien Ihnen natürlich zur Verfügung. Also werden wir uns das in C ansehen. Dies ist jetzt ein formloser Typ. Anstelle eines Musters haben wir jetzt Zutaten. Und Sie können sehen, dass wir haben, haben hier nur eine Zutat. Das Orakel kann blockieren und es würde für Calcium England zu neun werden. So können Sie hier auch eine Zählung angeben, die übrigens auch für das geformte Rezept funktioniert. Das ist überhaupt kein Problem. Das funktioniert also auch. Das sind also zwei Beispiele dafür die im formlosen Rezept geformt sind. Werfen wir einen Blick auf das Schmelzen und das Sprengen. Ich kopiere die auch. Genau hier sind wir. Sie können also sehen, dass der Typ hier nur springt und dann schmelzt hier einfach. Und noch einmal muss man eine Zutat definieren. In diesem Fall können Sie nur eine Zutat definieren. Haben Sie natürlich nur einen Eingangsschlitz im Hochofen oder im normalen Ofen. Dann kannst du sagen, hey, was ist das Ergebnis hier? Sie können sogar definieren, wie viel Erfahrung Sie von jedem einzelnen Stinken bekommen, und dann auch die Kochzeit. Wie lange in Zecken wird das im Grunde dauern. Man sieht, dass das Sprengen natürlich schneller ist als das eigentliche Schmelzen. Eins. Eine weitere Sache, die ich Ihnen auch zeigen wollte, ist zum Beispiel, dass ich diese Stapeldiamanten von einem anderen Sternenrezept habe . Und Sie können sehen, dass ich sowohl meine eigenen Gegenstände als auch Minecraft-Artikel verwende . Und Sie können sehen, dass es damit überhaupt kein Problem gibt. Sie müssen nur den Minecraft-Namespace hier und dann den Namen des Elements angeben . Das ist also so ziemlich alles, was es zum Basteln von Gegenständen gibt , die nicht Ihre eigenen sind. Sie können Minecraft-Gegenstände herstellen, die völlig gut funktionieren, obwohl dies auch ein Beispiel dafür ist. Und jetzt, bevor wir uns das ansehen, gehen wir tatsächlich runter, damit wir uns alle Daten und Asset-Dateien von Minecraft ansehen können alle Daten und Asset-Dateien von Minecraft ansehen und Asset-Dateien von , indem wir im Projektfenster nach unten gehen, das externe Bibliotheken, die das öffnen und dann runter gehen. Und das sieht man im Grunde genau hier, genau hier. Also haben wir das Netz Minecraft, Minecraft-Projekt abgebildet und so weiter und so weiter. Diese vor der schwarzen großen Liste , von denen alle gleich aussehen, genau oben haben wir diese. Wir werden das öffnen und Sie können sehen, dass es einen Assets-Ordner gibt, einen Datenordner und es gibt sogar einen Netzordner. Im net-Ordner ist der gesamte Code in dem geschrieben , was wir im Grunde auch den gesamten Code ansehen können . Aber das werden wir vorerst nicht machen. Wir interessieren den Datenordner Minecraft, dann Rezepte. Und du siehst, ich könnte mir jetzt jedes dieser Rezepte ansehen , das die Beine hier nicht einmal wichtig wären, oder? Also könnte ich mir alles ansehen. Aber zum Beispiel, Oh, wie funktioniert das Schmelzen von Kohle oder oh, so funktioniert es. Okay. Fair genug. Wir können zum Komposter gehen. Wie stellt man das her? Oh, ja, natürlich hast du das so gestaltet. Sie können sehen, dass Sie hier Zugriff auf alles haben , was Sie möchten. Sie sollten also wirklich in der Lage sein, fast alles in Bezug auf die Rezepte zu tun alles in Bezug auf , die Sie gerne hätten, mit diesem ausgestattet, Sie haben im Grunde Zugriff auf alles. Ich kann es nur wärmstens empfehlen , wenn Sie dann im Grunde eine davon nehmen möchten . Sagen wir zum Beispiel, der Kochlachs hier, du meinst, okay, ich möchte das nehmen. Was Sie tun, ist, dass Sie gerade Strg drücken C wählen. Dann können Sie zurück zu Ihrem eigenen Rezeptordner Control V wechseln , um ihn einzufügen. Und dann hast du es da drin. Und dann kannst du es grundsätzlich ändern , wie du möchtest. Aber das ist die allgemeine Idee, wie es geht. Ich lösche es einfach noch einmal , weil wir das nicht brauchen werden . Das wird sowieso in Ordnung sein, nachdem wir all diese hinzugefügt haben, Mal sehen, ob es funktioniert oder ob wir selbst in Minecraft sind. Lasst uns zuerst sehen, ob wir den Block mit dem Orakel in kommenden Minuten herstellen können oder nicht den Block mit dem und los geht's. Wir können es sehr einfach machen. Und was Sie auch feststellen werden, ist, dass, sobald Sie die Rezepte einmal gemacht haben, sehen, dass sie auch hier in den eigentlichen Rezeptbüchern erhältlich sind . Das ist also ziemlich cool. Mal sehen, ob ich den Raub riechen kann, zähle sie auch hier. Und natürlich kann ich das, und es sollte entweder im normalen Ofen oder im Hochofen funktionieren . Nun, ja, dieser ist definitiv schneller, also gehen sie leicht genug. Und du hast gesehen, dass ich es auch umgekehrt kann. So funktioniert das auch. Das ist ziemlich cool, wenn ich es selbst sage. Natürlich, alle Blöcke, die wir haben, könnten noch einige Rezepte fehlen. Wir werden diese tatsächlich in der nächsten Aufgabe haben , die nach der nächsten Vorlesung tatsächlich stattfinden wird, wo Sie im Grunde genommen den Rest der Rezepte hier hinzufügen müssen . Und diese werden dann natürlich auch verfügbar sein. also keine Sorgen. Und natürlich haben Sie immer Zugang zu den Rezepten genau hier. Theoretisch sollte dies eine sehr, ziemlich einfache Übung sein. Aber vorerst ist das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt, wenn er es getan hätte. Und wir sehen uns in der nächsten Vorlesung. Also ja. 45. (Grundlagen) Benutzerdefinierte Block mit Loot Tabellen: Oder ich begrüße zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns benutzerdefinierte Verlusttabellen ansehen , obwohl unsere benutzerdefinierten Routentabellen im Grunde genommen die Dinge definieren, die aus einem Block fallen, wenn Sie sie minen. Also haben wir in unseren Blöcken das Orakel blockieren und das Orbital OK. Und wenn Sie hoffentlich die erste Zuweisung erledigt haben, haben Sie auch die tiefe Schiefer oder mehr und die Zeile oder eine Spalte oder einen Block. Jetzt werden wir jetzt Drops für den Block implementieren und das oder, oder ist natürlich etwas Besonderes hier weil es einige Unterschiede geben wird ob Sie ein Tool haben , das tatsächlich hat eine Zellberührung drauf. Und wenn das der Fall ist, fällt natürlich der tatsächliche oder der Block ab. Sonst sinkt das rohe oder ein Kalzium. Obwohl es ein paar Dinge gibt, die wir brauchen. erneut in unserem Datenordner im MC-Kursordner mit der rechten Maustaste auf ein neues Verzeichnis namens Loot Underscore-Tabellen. Wieder einmal sehr wichtig, dass dies genau so geschrieben wird . Dann drinnen von dort in einem neuen Verzeichnis namens Blöcke. Aber ich werde hier eine neue Datei namens Oracle Come Unterstrich Block Dot-Dot-Dot-Dot-Dot-Dot-JSON erstellen . Was nun sehr wichtig ist, ist, dass dieser Name genau hier mit dem hier angegebenen Namen übereinstimmen muss. Aber das unterscheidet sich von den Rezepten, weil wir auf die Rezepte nicht wirklich von einer bestimmten Sache angewiesen sind. Wir konnten das Ergebnis an der Seite definieren, während diesmal in den Rodeltabellen der Name der Datei erneut dem hier angegebenen Namen übereinstimmen muss. Sehr wichtig, oder? Wir werden es einfach durchmachen, also werden wir einen Typ haben. Und das wird Minecraft-Doppelpunktblock sein denn natürlich ist dies ein Blockbeuteltisch. Dann werden wir einen Testament haben. Und das ist eine Liste. Und dann im Grunde genommen eine geschweifte Klammer hier wieder, Rollen, Rollen eins. Und dann haben wir hier ein paar Einträge, was eine andere Liste ist. Und da drinnen werden wir einen Typ haben, der Minecraft-Gegenstände ist. Also möchten wir einen Artikel hier fallen lassen. Der Name dieses Elements ist MC Course Colon oder ein Malcolm-Unterstrichenblock, oder? Das könnte also ziemlich verrückt für dich aussehen und das ist absolut in Ordnung. Denn insgesamt besteht der allgemeine Kern der Rodeltabellen darin, dass sie ziemlich kompliziert sein können. Dies ist definitiv ein Beispiel für ein sehr, sagen wir einfach oder ein Symbol 1. Allerdings können sie definitiv viel komplizierter werden. Zum Beispiel, der alte, ich werde das tatsächlich hier kopieren. Also eine Zusammenfassung oder, und Sie können sehen, dass dies etwas komplizierter ist , wie Sie deutlich sehen können, dass Sie sehen können, dass wir zwar nur einen Eintrag haben, dies jetzt vom Typ Alternativen ist, was bedeutet, dass im Grunde gibt es zwei Alternativen. Wir haben entweder einen Artikel , bei dem wir, wenn eine bestimmte Bedingung erfüllt ist , diese auswählen werden. Und ansonsten haben wir hier nur einen Artikel mit einem bestimmten Betrag. Diese unzüchtigen Tabellen können sehr kompliziert und sehr schnell werden , wie Sie deutlich sehen können. Und die allgemeine Idee ist, dass eine gute Ressource gibt. Es gab tatsächlich zwei gute Ressourcen, die ich wärmstens empfehlen kann. Eine der Ressourcen ist der Wiki-Eintrag hier. Das ist also der Minecraft-Wiki-Beutetabellen-Eintrag. Ich empfehle dringend, einen Blick darauf zu werfen, da man sich im Grunde all die verschiedenen Dinge ansehen kann sich im Grunde all die verschiedenen Dinge ansehen , die da drin sind. So wird das im Grunde genommen beschrieben. Insgesamt ist dies zum ersten Mal etwas kompliziert zu lesen, aber ich empfehle dringend, wenn Sie wirklich absolut benutzerdefinierte Routentabellen wünschen, müssen Sie sich das ansehen und es einfach nur tun müssen Werfen Sie einen Blick darauf und gehen Sie das im Grunde durch, dann gibt es noch eine andere Sache und das ist der Beutetisch-Generator von einer Rakete GitHub IO. Das ist unglaublich nützlich und Sie können im Grunde einfach alles auswählen , was Sie wollen, oder? Man kann also sagen, ich wollte nur dann steinen , wenn es bestimmte Dinge gibt. Zum Beispiel können Sie hier eine zufällige Chance haben. einmal, Standortüberprüfung, sogar Match-Tool. Es gibt eine Menge Dinge, die Sie hier machen können, und ich kann es nur wärmstens empfehlen, wenn Sie sich diesen Link ansehen , einige Dinge generieren und sicherstellen, dass Sie 11, 18 Jahre alt sind hier, weil es manchmal Unterschiede zwischen der Version gibt. Wenn Sie nun nichts benötigen, was, sagen wir, aus dem Reich der Vanille herauskommt, dann können Sie natürlich auch hier unten zu den externen Bibliotheken gehen , zu diesem hier, net Minecraft, minecraft-Projekt um und so weiter und so weiter in den Datenordner Minecraft-Loottabellen. Und dann schauen Sie sich im Grunde alle Rodeltabellen an , die auch die normalen Blöcke haben. Zum Beispiel meine ich, was könnte es sein? Die Truhe ist eigentlich nicht interessant, weil das Fallenlassen der Brust in diesem Fall anders gehandhabt wurde. Aber wo haben wir sonst noch? Ich meine, was könnte interessant sein? Du könntest, Gras könnte interessant sein, oder? Der Grasblock eigentlich genau hier. Wieder einmal haben wir Alternativen, oder? Wenn du Seidenberührung hast, bekommst du den Grasblock, sonst bekommst du Dreck. Daher kann ich es noch einmal empfehlen, wenn es etwas gibt, das in Vanille bereits existiert, ein Blick auf die externen Bibliotheken wird ein Blick auf die externen Bibliotheken Ihnen das Leben erleichtern. Aber nur diejenigen hinzuzufügen , um Tabellen zu verlieren, ist eigentlich nicht alles , was wir jetzt tun müssen . Dies ist sehr wichtig. Überspringen Sie diesen Schritt unter keinen Umständen. Sonst wird es nicht funktionieren, oder? Also müssen wir tatsächlich auch ein paar Tags hinzufügen. Wir haben noch nicht über Tags gesprochen, aber wir werden es sehr bald tun. Vorläufig können wir sie jedoch einfach als eine Art Liste von Elementen, Blöcken oder was auch immer wir denken können, die einen gemeinsamen Zweck haben oder in irgendeiner Weise gruppiert sind. Innerhalb unseres Datenordners wir mit der rechten Maustaste auf ein neues Verzeichnis namens Minecraft. Jetzt haben Sie vielleicht schon einmal davon gehört. Jetzt erstellen wir dort ein neues Verzeichnis mit dem Namen Tags. Und dann erstellen wir drinnen ein neues Verzeichnis namens blocks. Und dann brauchen wir nicht zuletzt in Bezug auf ihre auch ein neues Verzeichnis namens mineable. Eigentlich abbaubar sie vor und jetzt werde ich tatsächlich die oder abbaubaren Tags hier kopieren . Und ich werde es in einem Moment erklären, wir brauchen auch drei Tags oder die Blöcke. Dies steht Ihnen natürlich alles im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Und das ist auch genau hier wieder in den externen Bibliotheken zu finden, direkt im Datenordner gehen wir zu Tags Blöcken, man als minable sehen kann. Es gibt auch genau diese vier JSON-Dateien. Und dann im Box-Ordner hier sind die anderen vier, die anderen drei sind tatsächlich auch verfügbar. Was heißt das also? Nun, wir müssen in der Lage sein, die Unfähigkeit oder unsere Blöcke festzulegen. Das heißt, wenn Sie sich diese Rate ansehen können, habe ich bereits den Orakel-Komorbiditätsblock, die rohe Neukalk und Block und die tiefe Schiefer oder eine Telekommunikation oder zur angrenzenden Spitzhacke hinzugefügt die rohe Neukalk und Block und die tiefe Schiefer oder . Dies bedeutet, dass diese Blöcke mit einem Schwein abbaubar sind. Das sollte sinnvoll sein, das sollte hier ziemlich vernünftig sein. Nichts zu verrückt. Jetzt gilt das Gleiche für die Bedürfnisse Diamond braucht Eisenerz, braucht Steinwerkzeug. Wir können im Grunde definieren, welche Werkzeug-Ebene es benötigt, um dies abzubauen. Also das Eisenwerkzeug hier habe ich es im Grunde genommen so definiert, dass Eisenwerkzeuge benötigt werden. Zumindest wäre jeder dieser Blöcke nicht nur mit einem Steinwerkzeug abbaubar. Das ist also eigentlich sehr interessant. Es braucht also Eisenerz, und das ist im Grunde genommen das , was Sie hier hinzufügen müssen . Du kannst hier buchstäblich einfach ein neues hinzufügen, oder? Also kenne ich den MC-Kurstest nicht. Und dann stellen Sie im Grunde einfach sicher, dass wir auch hier ein Komma haben. Und das ist so ziemlich genau das. Das ist also alles, was du tun musst. Stellen Sie sicher, dass alle Blöcke, die Sie in diesen Tag-Dateien definieren , tatsächlich gültig sind. Du kannst also nicht einfach so wie ich den Test gemacht habe. Wenn das nicht existiert, tritt möglicherweise ein Fehler auf. Das ist also sehr wichtig, aber Sie benötigen diese Tags und Sie müssen alles in Ihrem Inneren definieren , damit sie ihre Beute im Grunde fallen lassen Das ist eine sehr wichtige Sache. Ich kann Ihnen wärmstens empfehlen, dies zu tun. Und das steht Ihnen natürlich noch einmal zur Verfügung. Ansonsten ist es nicht so kompliziert, diese Dateien zu erstellen , wie Sie deutlich sehen können, sie sind nicht so verrückt. Aber mal sehen wir vorerst, ob es in Minecraft funktioniert oder schneller funktioniert. Also lasst uns einfach versuchen, das mit der Steinspitzhacke abzubauen , und du kannst sehen, dass es schon lange dauert. Und es, es ist, das sollte kein Ergebnis liefern. Und natürlich tut es das nicht. Wenn du die Eisen-Spitzhacke benutzt, funktioniert sie und sie fällt auch genau hier ab. Aber lasst uns das Gleiche versuchen. Und Sie können sehen, dass unsere rohe oder eine Telekommunikation sinkt. Und wir können das auch mit dem Nether schreiben X zum Beispiel versuchen . Ich meine, das dauert eigentlich so lange. Dies ist natürlich ein sehr guter Hinweis darauf, dass dies nicht funktioniert, oder? Und dann funktioniert Diamant natürlich auch, weil es funktioniert, naja, im Grunde Eisen oder darüber, das ist die allgemeine Idee hier. Das ist also ziemlich cool. Und dann nur zur Vollendung willen eine Diamant-Pickaxe mit Seiden-Touch. Und Sie können sehen, dass es jetzt tatsächlich das Oracle CRM fallen lässt oder auch hier, oder? Eine weitere Sache, die ich erwähnen wollte, ist, dass nicht so gut funktioniert, wenn Sie das Requirets-Tool hier nicht aufgerufen haben dies möglicherweise auch nicht so gut funktioniert, wenn Sie das Requirets-Tool hier nicht aufgerufen haben. Dies ist also eine weitere Voraussetzung , die sehr wichtig ist. Ich wollte das nur erwähnen, weil ich mir nicht hundertprozentig sicher bin, ob ich das auch im Block-Tutorial erwähnt habe oder nicht, aber dies wird definitiv auch für jeden Ihrer Blöcke benötigt . Das ist also sehr wichtig. Aber sonst wäre dies für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 46. ASSINGMENT 6: Benutzerdefinierte Rezepte und Loot: Alles klar, Willkommen zur zweiten Aufgabe hier für den Minecraft-Teil dieses Kurses. Und in dieser Aufgabe sollten Sie die folgenden Dinge tun. Jetzt haben Sie natürlich die eigentlichen Aufgaben hoffentlich auch vor sich. Die Idee ist jedoch , dass Sie Beutetabellen sowohl für den Block, die tiefe Schiefer oder einen Falken oder für die Zeile oder eine Spalte oder einen Block hinzufügen sollten Beutetabellen sowohl für den Block, die tiefe Schiefer oder einen Falken oder . Diese sollten ziemlich einfach sein, da wir zwei Beispiele gesehen haben , die fast genau gleich sind. Nun, das sollte, denke ich, ziemlich einfach sein. Und wenn es um die Rezepte geht, möchte ich eigentlich, dass du ein paar Dinge machst. Ich möchte, dass du das Sprengungs- und das Schmelzrezept für die oder Blöcke hinzufügst . Das ist die Nummer eins. Und Nummer zwei, ich möchte, dass du es kannst, ich möchte, dass du in der Lage bist, Nuggets von einem Barren zu bekommen und dann auch Nuggets wieder in einen Barren zu bauen. Und dann nicht zuletzt für die Rezepte möchte ich, dass du nur ein Rezept mit ein paar Vanilleartikeln verwendest. Es kann alles sein , wovon dein Verstand im Grunde träumen kann, weißt du 64 Diamanten für etwa 2 dritte Blöcke oder so etwas zu bekommen etwa 2 dritte Blöcke oder , könnte alles sein, solange es zumindest dauert Minecraft-Artikel im Rezept einverstanden, damit geht's mir gut. Das wäre im Grunde genommen das. Wenn irgendetwas unklar ist, sollten Sie natürlich die Aufgaben zur Verfügung haben, um im Grunde noch einmal zu überprüfen, aber viel Glück und Spaß bei der Aufgabe zu haben. 47. LÖSUNG 6: Rezepte und Loot: In Ordnung, schauen wir uns die Lösung für die Aufgabe hier an. Natürlich war der Raubkalziumblock ziemlich einfach. Hoffentlich ist es so ziemlich das Gleiche wie das Normal oder Recalc. Entsperren. Das hier. Das Fallenlassen des Rock-Rekords kann das hoffentlich blockieren, wenn es hier sehr einfach ist. Und dann ist das Div Schiefer oder ein Kalzium oder fast das gleiche wie das normale. Wir sind hier unten, es lässt das Rory-Kalzium hier oben fallen. Es lässt tatsächlich die tiefe Schiefer oder einen Kaliko fallen oder das ist nur eine winzige Veränderung, die Sie im Orakel- oder Beutetisch machen müssten , Jason. Hoffentlich waren die nicht allzu verrückt. Aber schauen wir uns die beiden Sprengrezepte an. Natürlich sind Sie nur die Zutat, die wirklich ändern muss. Das Ergebnis wird natürlich immer noch Barren sein. Und dann ist Amin für das Schmelzen fast das Gleiche. Das einzige, was hier die Änderungen für das Strahlen zum Schmelzen ist, ist die Kochzeit. Und dann noch einmal hier, die Gegenstände Das ist so ziemlich alles, was es gibt, die Nuggets könnten etwas interessanter sein , weil natürlich einer von ihnen ein Formrezept ist und der andere ein formloses Rezept, das auch eine Zahl neun zurückgibt. Das könnte hier also sehr interessant gewesen sein. Und dann gibt es natürlich keine Lösung für Ihre individuelle Lösung. Solange es funktioniert, ist es in Ordnung. Sie können natürlich immer einen Blick auf die Stapeldiamanten von Netherstern werfen, was eine Idee oder ein Beispiel für eine mögliche Sache ist, Beispiel die Sie auch tun könnten, aber das wird sein es für diese Lösung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 48. (Grundlagen) Ein fortgeschrittenes Element erstellen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns einen erweiterten Artikel ansehen. Was ist ein Advanced Item? Wo würde ich Advanced Items nennen, sind Artikel, die ihre eigene Artikelklasse haben. Wenn wir also in unsere Adams-Klasse gehen, können wir tatsächlich sehen, dass weder der Barren Northern Nugget noch die Reihe oder ein Kalzium ihre eigenen Klassen haben weil sie hier alles neue Gegenstände sind. Jetzt wird sich das ändern. Anstelle unseres Artikelpakets wir mit der rechten Maustaste auf ein neues Paket namens custom. Und dann klicken wir mit der rechten Maustaste auf eine neue Java-Klasse, und dies wird der Gegenstand der Dowsing Rod sein. Jetzt ein paar Dinge zu erwähnen hier. Normalerweise möchten Sie dies mit dem Namenselement hier beenden, unabhängig vom Namen Ihres Artikels, und enden dann mit einem Artikel, nur damit Sie leicht sehen können , dass es sich tatsächlich um einen Artikel handelt. Dies erweitert nun die Item-Klasse. Also werden wir uns genau hier aussuchen . Und dann werden wir den Mauszeiger über diesen Creed-Konstruktor bewegen, der super passt. Und jetzt sind wir eigentlich sehr zufrieden damit, wie die SR und raus ist. Wir können diese Klasse jetzt schon benutzen. Natürlich möchten wir jedoch einige benutzerdefinierte Funktionen hinzufügen . Wenn ich mit diesem Element mit der rechten Maustaste klicke, möchte ich grundsätzlich jeden Block unter einem Block überprüfen , auf den ich gerade geklickt habe, und sehen ob es Wertsachen gibt. Wie werden wir das machen? Nun, lasst uns zuerst mittlere Maustaste auf die Item-Klasse klicken, und hier finden Sie eine Reihe von Dingen, die Sie überschreiben können. Dies ist also die Nummer eins in Berufung. Noch einmal, wenn Sie mit Java nicht vertraut sind, um sich die Java-Einführung noch einmal anzusehen, empfehle ich es sehr, denn jetzt da wir in immer fortgeschritteneres Gebiet kommen, werde ich grundsätzlich davon ausgehen mehr und mehr, dass Sie einfach wissen, was Vererbung ist, zumindest bei einem Grundkonzept und einer Überschreibung einer Methode. Du sitzt einfach nicht da und du meinst, ich weiß nicht was das bedeutet, aber du hast wenigstens eine allgemeine Vorstellung davon. Aber wir können Methoden überschreiben und im Grunde unsere eigene Funktionalität für sie erstellen. Wie Sie sehen können, gibt es viele Methoden, die wir theoretisch überschreiben könnten. Und das ist auch eines der coolen Dinge. Was ich also tun kann, ist, dass ich mit dem Tippen von Override beginnen kann. Und Sie erhalten im Grunde auch alle Vorschläge, die uns überschreiben können. Jetzt gibt es einen Haufen von ihnen. So sind die USA beispielsweise die Rechtsklick-Methode, ohne mit der rechten Maustaste auf den Block zu klicken. Es gibt so etwas wie den Append-Tooltip , der als Tooltip, den wir auch in einer zukünftigen Vorlesung sehen werden, das Inventar-Tick, das bei jedem Häkchen ausgeführt wird, Dieser Artikel befindet sich in Ihrem Inventar benutzungs-Tick. Ich bin mir eigentlich nicht hundertprozentig sicher, aber ich denke, dass dies jedes Mal ausgeführt wird, wenn Sie dies in Ihrer Haupthand haben dies in Ihrer Haupthand und Sie mit der rechten Maustaste auf so etwas klicken. Obwohl auch wenn wir das einfach importieren würden und ich mit der mittleren Maustaste darauf klicke hier auf den Super One. Manchmal haben sie einige Hinweise darüber, also einige Kommentare. Das ist nicht immer der Fall, aber, oh, naja, aber was wir verwenden werden, ist, dass wir die USA für eine Blockmethode verwenden werden. Wie Sie sehen können, geben wir das einfach und doppelklicken darauf, dann wird dies generiert. Die Add-Override hier ist eine Anmerkung und dies ist nicht unbedingt erforderlich. Es gibt Ihnen jedoch auf einer normalen Drüsen durch diese Klasse die Idee, dass, oh, okay, also das ist eine überschriebene Methode. Deswegen ist das hier. Das ist also eigentlich sehr wichtig. Und jetzt kommt der benutzerdefinierte Code , den wir im Grunde schreiben werden. Und das hat im Grunde wieder viel mit Java-Wissen zu tun. Und wir werden zunächst zunächst prüfen, ob wir auf dem Client oder dem Server sind oder nicht . Denn in diesem eigentlichen Fall wollen wir eigentlich nur etwas hier auf dem Kunden machen. Dies ist nicht immer der Fall. Normalerweise wollen wir anfangen, auf dem Server zu passieren, aber das ist manchmal das Richtige. Wir werden jedoch nicht zu sehr auf das Detail eingehen . also vorerst haben, Was wir also vorerst haben, ist, dass wir diesen Kontext hier haben, eine ganze Menge Sachen haben. So zum Beispiel die Welt, die genau das ist, was wir brauchen, die automatische Vervollständigung mit Tab. Und dann werden wir sagen, dass es Kunde ist. Und normalerweise übernehme ich die Methode. Dies spielt keine Rolle, ob Sie die Methode oder das Feld verwenden oder nicht , völlig in Ordnung ist. Und jetzt wissen wir, dass wir, wenn wir in dieser if-Aussage sind, definitiv auf dem Kunden sind, also ist das ziemlich gut. Was wir wollen, ist, dass wir die Position des Blocks wollen , auf den geklickt wurde, und wir bekommen das als Block Pause. Und das ist nur der Positionslift. Und das ist gleich dem Kontextpunkt , der blockiert wird, wie Sie sehen können. Und dann wollen wir, dass der Spieler, diese Spieler-Entitätsschicht, die gleich dem Kontextpunkt ist, den Spieler genau hier bekommen. Und dann können wir auch nur einen booleschen Wert haben , der der gefundene Block sein wird. Dieser prüft nur , ob wir den Block gefunden haben oder nicht. Das machen wir in einem Moment. Aber die Idee ist noch einmal, wenn ich mit der rechten Maustaste auf einen Block klicke, wollte ich jeden Block unter diesem Block überprüfen bis zum Fundament hinuntergehen. Und im Grunde überprüft, hey, hat das einen wertvollen Gegenstand gefunden? Diese wertvollen Gegenstände, die wir natürlich in einem Moment definieren werden. Aber vorerst machen wir einfach eine for-Schleife. Für int ist ich also gleich 0, ich bin kleiner oder gleich als die geklickte Position. Das kriegt, warum kriegt ihr eigentlich y? Und dann habe ich plus plus. Und was wir dann tun wollen, ist dass wir etwas sehr Interessantes machen wollen. Wir wollen den Block unten bekommen. Blockieren Sie also, den Block, blockieren Sie unten. Und das wird die Kontext-Punkt-Dot-Dot-Welt sein. Aber um den Blockstatus an der Position zu erhalten, klickte das nach unten und ging dann ins Auge. Und dann kriegen wir hier den Block. Also, und dann natürlich auch Import dieser Klasse. Also jetzt könnte das ziemlich verrückt sein. Nun, denken wir einfach darüber nach. Zuallererst bekommen wir nur die Welt, die zu verrückt sein sollte. Und dann bekommen wir einen bestimmten Blockstatus. Jetzt haben wir noch nicht über Blöcke und versus Blockzustände gesprochen . Der allgemeine Kern ist jedoch, dass Blockstaaten die Darstellung von Blöcken innerhalb der Welt darstellen. Während ein Block eine Art perfekte Vorstellung von einem Block ist, ist der Blockzustand das, was tatsächlich innerhalb der Welt existiert und beispielsweise Koordinaten hat und unterschiedliche Eigenschaften hat. Dadurch wird der Blockstatus an dieser bestimmten Position angezeigt. Und dann, wenn wir die Position haben , auf die wir geklickt haben, gehen wir einfach zu mir vorbei, was zum ersten Mal nichts ist. Und wenn wir dann zunehmen, gehen wir, während die for-Schleife weitergeht, immer während die for-Schleife weitergeht, immer weiter nach unten. Das ist also im Grunde immer der untenstehende Block. Und was wir dann tun können, ist, dass wir überprüfen können, hey, ist das ein wertvolles Buch? Und dafür werden wir dafür tatsächlich eine neue Methode entwickeln. Denn das macht es tatsächlich, denn das macht es tatsächlich ein bisschen einfacher. Wir werden also sagen, dass privater boolescher Wert ist. Und dann werden wir hier einfach in den Block gehen. Und dann können wir im Grunde einen Booleschen Wert zurückgeben. Und was wir tun werden, ist, dass Block gleich Blöcke Punkt Col ist, oder zum Beispiel Kohle oder, oder LOC gleich Sperren Punktkupfer, oder lassen Sie uns einfach ein paar weitere hinzufügen. Block ist also gleich Langston-Diamanten oder einem Letzten aber nicht zuletzt, oder einem Letzten aber nicht zuletzt, fügen wir auch das Eisenerz hinzu. Blockiert also das Eisen oder das Ego. Und jetzt diese Methode hier, wenn das kalt ist und ein Block übergeben wird, wenn es einer dieser vier Blöcke ist, dann wird sie wahr zurückkehren. Und was wir tun werden, ist, dass wir sagen, ob hier ein wertvoller Block ist, und gehen dann den Block unten ein, oder? Was wir dann tun wollen, ist, sagen wir einfach, was wir tun wollen, ist, dass wir die tatsächlichen Koordinaten dieses Blocks ausgeben wollen. Wir wollen den gefundenen Block auch auf wahr verwandeln. Und dann wollen wir tatsächlich aus dieser for-Schleife ausbrechen weil wir den ersten wertvollen Block gefunden haben und das im Grunde genommen dann erledigt wird. Das ist also die allgemeine Idee. Das erste , was wir hier machen wollen, wie gesagt, ist die Ausgabe der Koordinaten. Dafür werden wir auch eine neue Methode entwickeln. Die Idee ist also, dass wir das zuerst aufschreiben und dann das geschriebene Ding nehmen und eine Methode daraus machen. Also können wir Player SendMessage sagen. Dies ist eigentlich eine sehr interessante Art, dies zu tun. Dann werden wir „Neuer wörtlicher Text“ sagen. Obwohl hier ein wörtlicher Text. Dies ist im Grunde eine Zeichenfolge. Wir können herausfinden, wo wir Sachen hineinlegen können. Wir können so etwas wie gefunden sagen. Und dann können wir sagen block, block darunter als Element , das den Namen erhält, der String erhält. Das ist also ziemlich verrückt, aber das bekommt im Grunde den tatsächlichen Namen des Blocks. Und dann können wir bei und dann an der jeweiligen Position sagen . Für die besondere Position wird etwas See sein. Öffnen Sie Klammern und gehen Sie dann an die Position, auf den Punkt getX geklickt hat. Plus Komma. Position geklickt. Warum? Dann plus noch einmal Komma, dann plus Position geklickt Punkt erhalten z oder z. Und dann schließt die Klammer in der Zeichenfolge hier. Und dann nach der literalen String-Komponente wollen wir eine false hier sind die ActionBar. Jetzt können Sie sehen, dass das sehr unhandlich ist Rayleigh. Das ist also, als würde es zuallererst nicht gut aussehen. Es ist sehr unhandlich. Was wir also tun können, ist, dass wir alle diese Rechtsklick auswählen können Refactor Extract Method. Und das werden wir machen. Und Sie können sehen, dass wir das alles jetzt tatsächlich extrahiert haben . Und es hat, im Grunde genommen nur die ganze Arbeit für uns erledigt. Jetzt müssen wir nur noch einen Namen setzen. Wir werden diesen Namen festlegen, um hier wertvolle Ordinaten auszugeben . Und dann möchte ich innerhalb der eigentlichen Methode einfach die Namen hier ändern, möchte ich innerhalb der eigentlichen Methode einfach die Namen hier ändern, damit ich auf Control und Shift fx klicken kann, etwa wie zum Beispiel die Blockpfade hier. Und dann ist der Rest, glaube ich, definiert. Das könnten wir das natürlich noch mehr ändern, oder? Aber vorerst denke ich, dass das gut werden wird. Dies wird einfach die Koordinaten von allem ausgeben , was wir ihm geben. Das sieht ziemlich gut aus. Was wir hier bekommen werden, ist dass wir eine Weile einen Streit bekommen werden, denn hey, Spieler könnte null sein. Sie können also sehen, dass der Argumentspieler möglicherweise null ist, um beide zu behaupten. Wir können uns auch um ein paar Sachen ändern . Die Zeit ist. würde ich mir eigentlich keine Sorgen machen. Und es gibt eine weitere Sache , die wir natürlich machen wollen, und das ist, wenn der Block nicht gefunden wurde, richtig, dann wollen wir auch etwas ausgeben. Aber zum Beispiel etwas wie Spieler Dot-Dot-Dot-Dot-Dot-SendMessage. Und dann werden wir das tun, dass wir diese tatsächlich zur radar übersetzbaren Textkomponente machen werden. Und dann setzen wir das Aktionswort auch falsch. Normalerweise empfehle ich daher dringend, wenn möglich, die Komponenten für lesbare Texte hier zu verwenden die Komponenten für lesbare Texte . Sie könnten also auch hier eine übersetzbare Textkomponente verwenden . Es macht dies jedoch nicht etwas schwieriger, es tatsächlich richtig zu machen, aber Sie könnten es tun. Ich empfehle dringend, dies wann immer möglich zu verwenden, wo wir im Grunde einen Schlüssel definieren, den wir dann in das E einfügen und uns benachbarte Datei unterstreichen können . Also mache ich es für uns wie diesen Artikel, MC-Kurs. Also bleibe ich dabei. Und dann nehmen wir den Namen der Gegenstand-Dowsing Rute, nicht wissen, dass Wertsachen unterstrichen werden. Lässt uns der Name, den wir am Ende definieren werden , uns die benachbarte Datei unterstreichen , aber das wird es sein. Und außerhalb dieser if-Aussage werden wir tatsächlich Kontexte sagen, die gestapelt werden. Dies ist also der tatsächliche Artikelstapel, der Artikel, den wir in unserem Inventar haben, Punktschaden. Wir möchten dies um den ersten Betrag beschädigen. Wir werden Kontexte sagen, Dot Get Player. Und dann wird der letzte Parameter ein Verbraucher sein. Ich glaube, dass dies ein Spieler sein wird genau Spieler von Spielereinheiten konsumiert. Also rufen wir diesen Spieler einfach an. Und dann werden wir sagen, dass Spieler Punkt sind, Werkzeug- und Werkzeugsteine Status mit dem Spielerpunkt aktiv werden. Aber das mag auch ziemlich verrückt für dich sein , aber keine Sorge. Nun, das alles ist einfach zu sagen, hey, der eigentliche Gegenstand, mit dem wir gerade mit der rechten Maustaste geklickt haben, wir werden um den Betrag eins beschädigen. Dies wird also die Haltbarkeit verringern. Und dann geben wir es einfach dem Spieler weiter, das ist total in Ordnung. Dann ist das Letzte, was hier genau ist, welche Art von Werkzeugbruch-Animation es senden sollte wenn die Beschädigung dieses Elementstapels tatsächlich dazu führt , dass das Element kaputt wird. Jetzt. Und das ist im Grunde die gesamte Klasse genau hier. Obwohl es ziemlich verrückt ist. Und wieder, ohne irgendeinen Java-Hintergrund wird es wahrscheinlich sehr komplex sein. Ich empfehle Ihnen, dass Sie dies natürlich alles im GitHub-Repository oder in einer Einzelperson zur Verfügung haben Sie dies natürlich alles im GitHub-Repository oder in einer Einzelperson zur Verfügung , um es sich anzusehen, auszuprobieren, es auszuprobieren, wissen Sie, um es in Ihre eigene Mathematik zu stecken und Probieren Sie es einfach ein bisschen aus. Wechseln Sie einfach ein paar Sachen, sehen Sie, was passieren könnte. Und vergessen wir nicht , dies hier zu unserer E- und Übersetzungsdatei hinzuzufügen . Ich füge das einfach ganz unten hinzu. Das wird eigentlich folgendes sagen. Dies wird einfach sagen, dass keine Wertsachen raus sind. Das ist also alles, was dieser hier sagt. Und jetzt ist das Tolle, wenn wir zum Beispiel eine andere Sprachdatei hätten , könnten wir sie in eine andere Sprache übersetzen. Deshalb ist normalerweise der übersetzbare Text das, was Sie verwenden möchten. Behalte das also im Hinterkopf. Nun, nur diese Klasse hinzugefügt zu haben , reicht natürlich nicht aus. Wir müssen es auch in unserer Mod-Items Klasse registrieren, und das werden wir auch tun. Lassen Sie uns also einfach das Rock-Ergebnis überschreiben. Wie gesagt, ich freue mich normalerweise einfach über alte Gegenstände, weil sie fast immer gleich sind. Das ist die Dowsing Rute. Und dann natürlich auch hier, Dowsing Rute. Und anstelle eines neuen Artikels ist dies sehr wichtig. Dies ist ein neuer Gegenstand der Dowsing Rute. Das ist also die Hauptsache , die wir hier tun müssen. so wichtig , dass du das machst. Wir wollen auch den maximalen Schaden genau hier einstellen. maximale Schaden wird also sein, sagen wir 32. Wir können dies also 32 Mal verwenden bevor die eigentliche Dowsing Rute bricht, weil wir ihn natürlich genau hier in der Methode „Use on Block“ beschädigen . Also sollte das jetzt auch völlig in Ordnung sein, fügen wir dies der un-Unterstrich mit JSON-Datei hinzu. Also dowsing unterstrichen Rod und dann auch hier natürlich , Dowsing Rute ohne Unterstrich. Und nicht zuletzt benötigen wir das Artikelmodell sowie die Artikelstruktur. Lassen Sie uns also einfach die Rolle oder das Kalzium für diesen Dowsing Rute und dann Ihre Dowsing Rute kopieren . Aber das ist wieder die normale Art und Weise, wie ich den Benutzer mache. Normalerweise ist das Hinzufügen von Elementen, wenn ich hier bereits vorhandene Modelle habe wenn ich hier bereits vorhandene Modelle sehr viel einfacher als alles andere. Es auszuschreiben ist absolut verrückt. Und wenn es Tippfehler in Ihrem gibt, können Sie sich natürlich immer das GitHub-Repository oder die Juristen ansehen . Und lasst uns auch über die Werftrute kopieren . Da gehst du. Natürlich auch verfügbar. Bitte beachten Sie jedoch die Gutschrift, dass Sie der dortigen Lizenz folgen. Insgesamt ist das eigentlich völlig in Ordnung. Und ich würde sagen Wir sind jetzt bereit. Werfen Sie einen Blick darauf, ob es funktioniert hat oder nicht , oder findet uns wieder in Minecraft-Fans können sehen, dass die Dowsing Rute erfolgreich zum Spiel hinzugefügt wurde. Und was Sie auch finden werden, ist, dass ich es tatsächlich nicht stapeln kann. Das ist genau richtig, denn natürlich haben wir den maximalen Schaden hinzugefügt. Und wenn Sie maximalen Schaden hinzufügen, funktioniert das Stapeln im Grunde nicht mehr. Jetzt gehen wir einfach hier rüber und lassen Sie uns einfach mit der rechten Maustaste klicken und Sie können oben oder dort eine Stunde für ihre, äh, nein, keine Wertsachen finden Sie hier. Und Sie können sehen, dass die tatsächliche Haltbarkeit abnimmt, wenn ich hier weiter klicke. Mal sehen, vielleicht können wir einen Diamanten finden , bevor er kaputt geht. Wäre das nicht ziemlich verrückt? haben wir leider nicht. Aber da gehst du. Jetzt bei Einbruch und jetzt haben wir natürlich auch die anderen Routen zur Verfügung. Also können wir das einfach durchgehen und sehen, ob wir unten etwas finden können. Aber das ist so ziemlich die allgemeine Vorstellung von der Dowsing Rute, oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wenn noch Fragen zum erweiterten Artikel bestehen , zögern Sie bitte nicht zu fragen. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 49. (Grundlagen) Einen erweiterten Block erstellen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir einen fortgeschrittenen Block machen. Genau wie wir die letzte Vorlesung mit dem erweiterten Element gesehen haben , werden wir jetzt einen erweiterten Block für in unserem Blockpaket für in unserem Blockpaket rechten Maustaste auf ein neues Paket namens Custom klicken. Und dann erstellen wir drinnen eine neue Java-Klasse, die als SPD-Block bezeichnet wird. Jetzt wird dies die Blockklasse erweitern und sicherstellen, dass wir die richtige auswählen , Minecraft-Block, Block und den Mauszeiger über diesen Creed-Konstruktor bewegen, der super übereinstimmt. Und genau wie bevor wir die mittlere Maustaste drücken können, klicken Sie auf die Blockklasse und schauen Sie sich im Grunde alle möglichen Methoden an, die wir in unserer benutzerdefinierten Blockklasse außer Kraft setzen können . Und wie Sie sehen können, gibt es Unmengen von Dingen, die wir hier außer Kraft setzen könnten. Und ich kann auch das Wort Override einsetzen. Jeder wird sehen, dass es hier eine Menge Sachen gibt. Eine Sache, die ich erwähnen wollte , ist, dass Dinge, die diesen Durchbruch haben , die im Grunde veraltet sind, oder? Wenn ich mir das also anschaue, kannst du sehen, dass dieser hier veraltet ist. In der Regel. Was das eigentlich bedeutet, ist, dass Sie diese Methoden einfach außer Kraft setzen können, Sie sollten sie jedoch nicht aufrufen. Das ist also die allgemeine Idee im Block und in der Item-Klasse, Dinge, die veraltet sind. Ich meine nicht, dass sie veraltet sind und in zukünftigen Versionen nicht verfügbar sind. In diesem Fall geht es tatsächlich darum, dass sie nicht erwischt werden. Und das schließt zum Beispiel den Super ein. Aber das werden wir in einem Moment sehen. Was wird der SPD-Block machen? Nun, der SPD-Block wird zwei verschiedene Funktionalitäten haben. Nummer eins, wenn Sie darauf treten, erhalten Sie den Geschwindigkeitseffekt, der Ihrem Charakter hinzugefügt wird. Und dann, nur damit Sie es gesehen haben, die Rechtsklick-Funktion, wenn Sie mit der rechten Maustaste auf den Block klicken, geben wir einfach eine Nachricht in den Chat aus. Das wird es sein. Lassen Sie uns also zunächst die Aufrufste-Methode machen , die aufgerufen wird, auf die eingetreten ist. Und du kannst sehen, dass du gehst. Und was wir hier drin machen werden, ist eigentlich sehr einfach. Wir werden zunächst prüfen, ob die Welt Kunde ist und sehr, sehr wichtig ist. Wir werden ein Ausrufezeichen davor hinzufügen , um zu sagen, dass wir nicht auf dem Client sein wollen, wir wollen auf dem Server sein. Wenn Sie beispielsweise einen Statuseffekt hinzufügen , können Sie dies nur auf dem Server tun. Dann werden wir prüfen, ob das Unternehmen, das darauf getreten ist, ein Beispiel für Lebewesen ist oder nicht das darauf getreten ist, ein Beispiel für Lebewesen ist , da nur Lebewesen Statuseffekte auf sie angewendet werden können. Und dann können wir ohne Probleme das Lebewesen genau hierher bringen und einfach die Entität darauf werfen. Also Entity-Dot-Besetzung. Und dann füllt es sich normalerweise mit Lebewesen schon hier. Und wir können das Lebewesen nehmen und wir können die Methode „Status hinzufügen“ aufrufen. Und was wir dann tun können, ist, eine neue Statuseffekt-Instanz zu erstellen , wie Sie sehen können. Und das nimmt den Statuseffekt auf, das heißt Auswirkungen auf diese Geschwindigkeit und eine Dauer auf 100. Die Dauer ist hier natürlich in Ticks, daher wären dies zehn Sekunden. Das würde dies natürlich auch ändern. Das liegt natürlich ganz bei dir. Aber das ist eigentlich die ganze Methode, die wir für den Schritt zum Geschwindigkeitseffekt hier benötigen. Das ist es buchstäblich. Das ist alles, was wir tun müssen. Werfen wir jetzt aber auch einen Blick auf die Rechtsklick-Funktionalität. Und das ist die Owner-Use-Methode. Und Sie können sehen, dass dies einer von denen ist , die den Durchbruch haben, der veraltet ist. Also werden wir sicherstellen, dass wir den Superhelden nicht anrufen. Und wir werden Aktionsergebnisse sagen. Dieser Erfolg wird gut werden. Genau hier. Da gehst du. Und dann werden wir hier drin sagen, ob die Welt, das Kunde ist, das Ego. Und dann werden wir drinnen sagen, Hand gleich und diese Haupthand. Und dann machen wir hier ein anderes. Also was, was passiert? Warum mache ich das? Nun, wir werden einen kleinen Kommentar kopieren, auf den ich mich bereits vorbereitet habe. Die Idee ist, dass die unbenutzte Methode zeitweise aufgerufen wird. Wenn Sie mit der rechten Maustaste auf den Block klicken, zweimal auf dem Server aufgerufen, eine für jede Hand und dann zweimal auf dem Client für jedes Ende. Das ist das sehr Interessante. Was wir dann tun werden, ist, dass wir einfach ausgeben werden, deshalb nicht das Ego, das wird gut werden. Aber das sind nur noch einmal Spieler und Nachricht mit einem kleinen Text. Das haben wir natürlich schon gesehen. Und das ist so ziemlich nur eine Idee. Ich wollte das auch hier haben, nur für den Fall, dass Sie möglicherweise eine Rotklick-Funktionalität Ihres Blocks haben möchten , verwenden Sie die unbenutzte Methode. Und das ist sehr wichtig, um hier zu beachten, wenn Sie zum Beispiel etwas im Code ändern würden, ist es wirklich sehr wichtig zu wissen, dass es tatsächlich zweimal für jede Hand passiert . Also behalte das bitte im Hinterkopf. Und das ist so ziemlich mit der SPD-Blockklasse erledigt. Wir müssen hier nichts anderes tun. Das nächste, was wir tun müssen, ist, dass wir in unsere Modellblock-Klasse gehen und dann natürlich den eigentlichen Block erstellen und registrieren müssen. Also werden wir einfach den Rohstoff oder einen Kalziumblock kopieren. Und wir werden diesen einfachen schnellen Unterstrich genau hier machen , und dann natürlich auch hier einen schnellen Unterstrich. Und genau hier ist das jetzt der SPD-Block, der neue Speedy Rock hier. Noch einmal sehr wichtig, dass wir sicherstellen, dass dies korrekt ist und nicht nur ein normaler Block. Sehr, sehr wichtig. Und sonst müssen wir nur die JSON-Dateien hinzufügen. Und diese stehen Ihnen natürlich auch im GitHub Repository oder im Einzelnen zur Verfügung. Ich werde diese einfach kopieren, weil diese jeden Tag ganz normal sind . Jason-Akten, oder? Hier ist nichts Interessantes vor sich. Das Blockmodell sieht genau so aus wie bei den Brockman-Regeln, die wir gesehen haben das Artikelmodell so ziemlich genau das gleiche ist wie bei jedem anderen Blockelementmodell hier. Und dann kopieren wir auch die Textur, die Ihnen natürlich auch zur Verfügung steht, bitte nicht die Credits Datei für die spezifische Lizenz für diese Texturen, aber ansonsten ist es das tatsächlich. Fügen wir auch die Übersetzung hinzu. Vergessen wir das natürlich nicht. Lassen Sie uns das einfach kopieren und wir werden nur sagen, dass es der Block ist. Und dann hier das Gleiche. Schneller Block, das Ego. Und jetzt wurde alles eingerichtet. Also mal sehen, ob es funktioniert. Oder Geld zurück und Mikrofinanzierung können sehen, dass der SPD-Block dem Spiel hinzugefügt wurde und ich kann ihn so einstellen, dass die Textur einfach normal ist. So wie ich schon sagte, oder? Obwohl diese Art von etwas einseitig aussieht , wo es die Textur verändern würde. es eigentlich nicht. Das werden wir tatsächlich in einer zukünftigen Vorlesung sehen. Und lassen Sie uns einfach, lassen Sie es uns aus Gründen der Argumentation so niederlegen, dass der Pfeil in die Richtung schaut , in die wir uns bewegen nur damit es ein bisschen schöner wird. Und sobald ich oben auf den Block gehe, kannst du sehen, dass ich den Geschwindigkeitseffekt auf mich ausgeübt habe, und das ist jetzt für zehn Sekunden. Wenn ich jetzt weiter darauf stehe, sehe, dass es die Fakten immer wieder auf mich anwendet und auf 10 Sekunden zurücksetzt. Und dann kann ich im Grunde einfach mit einem Geschwindigkeitseffekt laufen. Und das ist so ziemlich genau das, oder? Eigentlich müssen wir hier zurückkehren ist ein tatsächlicher Ergebnispass. Und dann funktioniert der eigentliche Aufruf für zwei Mal für den Server und den Client tatsächlich. Das ist also nur ein kleiner Unterschied. Also lasst uns einfach sehen, ob das auch funktioniert. In Ordnung, wenn wir jetzt mit der rechten Maustaste klicken, können Sie sehen, dass ich im Chat eine Nachricht sowohl für die Haupthand als auch für die Beleidigung bekomme. Und wir können auch noch Blöcke daneben platzieren. Das ist auch eine sehr interessante Sache. Ich empfehle dringend, mit den tatsächlichen Ergebnissen herumzuspielen , die Sie zurückgeben. Denn je nachdem, was Sie zurückgeben, haben sie eine andere Art von Interaktion, wenn Sie mit der rechten Maustaste klicken. Sie können also sehen, wann ich tatsächlich einen Block nach unten platziere, indem Sie auf diesen Block klicken, können Sie sehen, dass er tatsächlich nur nach der Haupthand aufgerufen wird. Während ich mit nichts in meiner Haupthand klicke, wird es für beides gefordert. Werfen Sie einen Blick darauf, was Sie ändern können indem Sie ändern, was Sie in dieser Methode zurückgeben, oder? Aber das ist es schon für diese Vorlesung genau hier. Ich hoffe, Sie haben das nützlich gefunden und er erfährt, dass das neue, wenn er es täte, ich eine Rezension von Ihnen sehr schätzen würde . Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 50. (Grundlagen) Erstellen eines benutzerdefinierten Food: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Lebensmittelartikel hinzufügen . Das ist eigentlich ein sehr einfacher Prozess und dafür benötigen wir nicht einmal eine benutzerdefinierte Artikelklasse. Wir werden eine neue benutzerdefinierte Klasse erstellen, und das ist in unserem Artikelpaket, und das ist in unserem Artikelpaket, klicken Sie mit der rechten Maustaste auf neue Java-Klasse. Und das ist die Klasse der MOD-Lebensmittelkomponenten. Und dies wird alle unsere Lebensmittelkomponenten enthalten , da wir diese im Grunde genommen in unseren Artikel hinzufügen müssen. vorerst Lassen Sie uns vorerst einfach hier reingehen und fügen wir dies hinzu, sozusagen die öffentliche statische Lebensmittelkomponente namens Rübe. Denn was wir hier eine Rübe hinzufügen werden. Und das entspricht einem neuen Komponenten-Builder. Sie können genau dort sehen, ich drücke die Tabulatortaste, um dies automatisch zu vervollständigen. Und dann können Sie sehen, dass dies wieder ein Builder-Muster ist , sodass es mehrere verschiedene Dinge hinzufügen kann. Das erste, was ich tun möchte, ist, dass ich den Hunger hinzufügen möchte, obwohl dies ein Stück Fleisch in unserer Hungerbar wiederherstellen wird . Und dann ist der Sättigungsmodifikator im Grunde genommen, wie viel Sättigung und Sättigung Sie sozusagen im Hintergrund haben. Dann müssen wir das mit einer Gesetzesvorlage beenden. Und dann wird die Lebensmittelkomponente hier gebaut. Was Sie jetzt auch tun können, ist, dass Sie hier auch einen Statuseffekt hinzufügen können, wie Sie sehen können. Also könnte ich einen Statuseffekt hinzufügen, dass dies genau die gleiche Idee ist genau die gleiche Idee wir zuvor mit dem SPD-Block gesehen haben. Also müssen wir nur eine Statuseffekt-Instanz übergeben. Zum Beispiel wirkt sich der Status von Effekten nicht auf eine Generation oder so etwas wie 200 Takes aus. Und dann müssen wir hier tatsächlich viel einreichen, was die Chance ist diesen Effekt genau hier zu erzielen. Das ist also nur ein Beispiel hier. Wir werden es nicht so behalten, aber du hast es gesehen. Es ist eigentlich sehr, sehr einfach. Oder Vanille-Beispiele, was Sie tun können ist, dass Sie in schneller Folge zweimal die Umschalttaste drücken können und dann dieses Suchfenster hochfahren. Sie können nach der Klasse für Lebensmittelkomponenten suchen, sicherstellen, dass Sie dies überprüfen, Nicht-Projektelemente einschließen und dann hier Artikel. Klicken Sie hier und Sie können alle Lebensmittelkomponenten sehen , die Minecraft bereits hat. Und man kann im Grunde auch all die verschiedenen Dinge sehen , die hier drin sind. Es gibt also tatsächlich alles, was schon vor dir liegt und du könntest einfach einen Blick darauf werfen, wie das alles funktioniert, jetzt haben wir zwei, wir haben die Lebensmittelkomponente hinzugefügt. Wir müssen jetzt den Lebensmittelartikel in unserer Modellartikelklasse hinzufügen . Was ich tun werde, ist, dass ich über die Reihe oder ein Kalzium kopieren werde. Und das wird die Rübe sein. Und gleich hier taucht auch auf. Und das ist ein normales neues Item, ganz normales Jahr. Und dann werden wir einfach nach der Gruppe hinzufügen , wir werden Essen hinzufügen. Und das wird die Art der Lebensmittelkomponenten sein , die Rübe. Und das ist so ziemlich alles, was wir brauchen um das Lebensmittel zu tun. Jetzt sollten wir das grundsätzlich essen können, wenn wir Hunger im Spiel haben. Jetzt müssen wir natürlich immer noch sowohl die Übersetzung hier im Jahr hinzufügen sowohl die Übersetzung hier im , das uns die JSON-Datei unterstreicht, als auch natürlich die Textur und die JSON-Datei des Elementmodells hinzufügen . Die JSON-Datei des Elementmodells ist natürlich wieder nur ein normales Elementmodell Jason, das hier auf eine Textur zeigt. Und die Textur ist genau hier, also keine Sorgen. Und jetzt wurde alles hinzugefügt. Also mal sehen, ob es funktioniert. Oder Farmen, die wieder in der Mikrofinanzierung sind, sehen können, dass der Begriff dem Spiel hinzugefügt wurde, also fangen wir an, ihn zu essen und los geht's. Es füllt genau einen Hungerbalken. Hunger ist also im Grunde ein Treffensymbol genau dort. Das ist also so ziemlich genau das. Und ja, so einfach ist es eigentlich Minecraft einen benutzerdefinierten Lebensmittelartikel hinzuzufügen, oder? Und es gibt es schon für diese Vorlesung genau hier. Ich hoffe, Sie haben das nützlich gefunden und er erfährt von den neuen, allen Ecken, die natürlich auch im GitHub-Repository oder einer Einzelperson verfügbar sind . Und wir sehen uns allerdings in der nächsten Vorlesung. Ja. 51. (Grundlagen) Erstellen eines benutzerdefinierten Fuel: Alles klar, lasst uns mit dem Stoffkurs für 118 fortfahren. Und in dieser Vorlesung werden wir Minecraft einen gewohnten Brennstoffartikel hinzufügen . Dies ist auch ein ziemlich einfacher und unkomplizierter Prozess. Aber wir werden in unsere weitere Gegenstandsklasse gehen und wir werden einfach die Rübe hier kopieren. Und dann wird dies der Kohle-Unterstrich sein. Und natürlich auch hier unterstreicht der Kohle Splitter. Es ist also nur ein Stück Kohle. Und wir werden das Essen natürlich entfernen, denn in diesem Fall sollte der Kausalvers nicht essbar sein. Und was der Artikel noch einmal hinzugefügt wurde. Aber jetzt müssen wir natürlich irgendwie die Funktionalität hinzufügen , dass es ein Treibstoff ist. Und dafür gehen wir in unser MC-Kurspaket rechten Maustaste auf ein neues Paket namens util. Jetzt ist dies nicht unbedingt notwendig, um diese Klasse zu erstellen. Du könntest die Methode auch einfach sofort in unserem MC-Kurs-Mod-Mass aufrufen , aber ich möchte, dass alles getrennt ist. Das ist also die Registeries-Klasse. Und da drinnen werden wir zwei statische Methoden erstellen. Die erste ist eine öffentliche, öffentliche statische Leere, die als Registermodus-Suffs bezeichnet wird. Und dies wird die andere Methode aufrufen , bei der es sich um eine private statische Leere oder Registerkraftstoffe handelt. Und jedes Mal, wenn wir unserem Modell einen Treibstoff hinzufügen, können wir es grundsätzlich genau hier nennen. Und wir werden Brennstoffe in der Methode für den Registermodus registrieren. Und dann schreiben wir in etwas wie Systemausdruckzeile, aber registrieren Sie sich während Sie oder MSE-Kurs plus MC-Kurs RID. Und dann werden wir weniger Registry sagen, genau diese, die Registrierung ist gleich dass Sie diese Instanz registrieren werden. Und dann können wir einfach sagen, Registry Dot add. Und dann punktet ein mehr Items ganzen Splitter, dann ein Wert von 400 Fall. Nun läuft die Berechnung wie folgt aus, richtig, für 400 ist wieder 400 und dauert natürlich, für eine 100 geteilt durch 20, was 20 Sekunden entspricht, genau 1 Viertel einer normalen Kohle. Das ist also im Grunde das. Und dann müssen wir das natürlich auch in der initialisierten Methode aufrufen . Also mehr Register, die Modus-Stoffs registrieren. Und wenn dann etwas anderes eine Registrierung rechtfertigt, können wir dies grundsätzlich auch in den modernen Registern hinzufügen . Das ist also ziemlich cool. Und das ist im Grunde alles, was wir tun müssen , um den Kohlesplitter zu einem neuen Gegenstand zu machen. Jetzt müssen wir die Übersetzung natürlich noch hier hinzufügen. Also lasst uns das kopieren und nennen Sie es, nennen Sie den Unterstrich Splitter. Und dann natürlich hier, cooles Splitter. Und dann kopiere ich für den Gegenstand die Rübe hier. Dies ist die Kohle unterstreicht Leber. Dann hier die Kohle und natürlich auch Leber. Nur eine normale Artikelmodelldatei. Und wir werden auch hier nur die Textur kopieren . Und jetzt wurde eigentlich alles hinzugefügt. Mal sehen, ob es funktioniert oder es ist und wir uns wieder in Mikro-Events befinden , können sehen, dass der Kohlesplitter erfolgreich zum Spiel hinzugefügt wurde . Und lass uns einfach sehen. Da gehst du. Wir können sogar die Umschalttaste hier hineinklicken. Und genau wie angegeben, dauert es 20 Sekunden, um zu brennen und dann eine neue Ursache Leber von hier aus zu konsumieren. Das ist ziemlich gut. Und so einfach ist es eigentlich, Minecraft einen benutzerdefinierten Brennstoffartikel hinzuzufügen Minecraft einen benutzerdefinierten Brennstoffartikel hinzuzufügen , wo auch immer das für diese Vorlesung genau hier ist. Ich hoffe, Sie fanden das nützlich und er erfährt von dem Neuen, ob er eine Rezension von Ihnen getan hat oder sehr geschätzt hat. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 52. (Grundlagen) Hinzufügen von benutzerdefinierten Tooltips: Oder ein Willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir einen benutzerdefinierten Tooltip hinzufügen , der Rutengegenstand wirft. Dies kann also grundsätzlich für jeden Artikel getan werden. Was wir also tun werden, ist, dass wir hier eine andere Methode außer Kraft setzen . Dies wird also die Append-Tooltip-Methode sein. Und das wird eigentlich sehr einfach gemacht werden. Das einzige, was wir wirklich tun müssen, ist, dass wir es so machen möchten, dass Sie beim Mauszeiger über den Gegenstand etwas wie den Effekt erhalten, wenn Sie die Umschalttaste drücken, um weitere Informationen anzuzeigen. Und wenn Sie dann die Umschalttaste drücken, erhalten Sie weitere Informationen zu diesem Element. Was wir tun werden, ist, dass wir eine if-Erklärung abgeben und einen Bildschirm aufrufen, Schuss hat sich nach unten verschoben und dann auch dafür eine andere Erklärung abgeben. Und wie fügen wir dann eine neue, etwas Neues zum Tooltip hinzu, werden wir einfach Tool zum Hinzufügen machen und dann eine neue übersetzbare Textkomponente oder einen neuen übersetzbaren Text erstellen. Und dann werden wir in einem e passieren. In diesem Fall wird dies Item MC Kurs Dowsing Rod Gehäuse Unterstrich Stange sein , diese Tooltip, diese Verschiebung. Jetzt können Sie Ihre Schlüssel natürlich so lange oder so kurz machen , wie Sie möchten. Ich bleibe dabei. Ich denke tatsächlich, dass das vollkommen in Ordnung ist. Wir werden den Tooltip auch hier ablegen. Und was wir tun werden, ist, dass wir das ändern werden. Sie würden die Verschiebung hier nicht einbeziehen. Kopieren wir das noch einmal und lassen Sie uns ans Ohr gehen und uns benachbarte Dateien unterstreichen. Und lasst uns das einfach ganz unten setzen. Da ich das Gefühl habe, dass das ein guter Ort dafür ist. Und wenn wir dann tatsächlich die Umschalttaste drücken, können wir sagen, dass wir rechten Maustaste klicken, um Wertsachen zu finden. Wertsachen sie gehen. Und dann die andere, wir müssen die Verschiebung hier einfach entfernen. Und dann wird das einfach Ruhe sein. Und jetzt werden wir etwas sehr Interessantes ausprobieren. Dies ist also ein Absatzsymbol E, Diebstahl, Absatzsymbol R oder weitere Informationen. Und es gibt zwei Möglichkeiten , wie das gehen kann. Das ist also etwas, das ich erklären möchte. Das Absatzsymbol beginnt mit der Erstellung eines, wodurch der Text in eine andere Farbe verwandelt wird. Jetzt sollte normalerweise das Absatzsymbol e funktionieren, aber manchmal sind einige Fehler damit verbunden. Und ich wollte dir nur beide Versionen davon zeigen. Manchmal funktioniert das also. Das E fängt also im Grunde an, dies gelb zu machen , und dann sind die Absätze so, dass alles wieder zurückgesetzt wird. Aber das ist eigentlich alles, was wir für den Tooltip brauchen. Mal sehen, ob es funktioniert oder es ein Deck und Minecraft hat. Und wenn ich den Mauszeiger darüber fahre, können Sie Umschalttaste drücken, um weitere Informationen zu erhalten. Und wenn ich die Umschalttaste oder eine ganze Verschiebung nach unten drücke, klicke mit der rechten Maustaste auf Wertsachen. Also alles, was absolut perfekt dafür funktioniert , ist genau das, was wir wollen. Und selbst bei der Färbung funktioniert hier einwandfrei. Das ist also erstaunlich, oder? Ich werde auch einen Wiki-Artikel über die Formatierungscodes für Minecraft verlinken . Ich empfehle dringend, einen Blick darauf zu werfen, aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns allerdings in der nächsten Vorlesung. Ja. 53. (Grundlagen) Alles über Tags: Zum Fabric-Kurs für 118. Und in dieser Vorlesung werden wir uns die Tags ansehen. Was unsere Tags wollen, spreche ich nicht von Tags, die du auf Tiere wie das Namensschild legst . Ich spreche von Tags, wie wir es zuvor für die kleinen Bälle gesehen haben . Und wir werden im Grunde genommen welche Tools Sie benötigen oder Ihre Blöcke. Und was wir tun werden, ist, dass wir eine neue Klasse hinzufügen , die es uns im Grunde ermöglicht, auch Tags zu verwenden. Dadurch wird unser MOD grundsätzlich mit anderen Mathematik kompatibler machen . In unserem util-Paket wir mit der rechten Maustaste auf eine neue Java-Klasse, und dies ist das Schreiben von Modus-Tags-Klassen. Wir müssen hier zu statischen Klassen kommen. Die erste ist eine öffentliche statische Klasse, vier Blöcke. Und dann ist die zweite eine öffentliche statische Klasse namens Items. Und in der Block-Klasse gehen natürlich die Block-Tags und dann die Items Klasse, das Element Texaco. Dafür brauchen wir hier eine private statische Methode. privater statischer Tag-Punkt-Identifikator des Typs Block in diesem Fall ein Tag erstellen, um sicherzustellen, dass wir hier einen Net-Mikrowellenblock auswählen würde in diesem Fall ein Tag erstellen, um sicherzustellen, dass wir hier einen Net-Mikrowellenblock auswählen. Und das wird genau hier einen String-Name-Parameter haben . Und das wird die Tag-Fabrik zurückgeben , die diese Erstellung kaputt gemacht hat. Und dann eine neue Kennung mit EMC Kursmod, Mod ID und dem Namen des Parameters. Dann können wir dieses einfach über n kopieren. Dies ist jetzt ein Create Harmon-Tag wie dieses. Und anstatt unsere alte Modell-ID zu übergeben, werden wir nur ein Kleinbuchstaben c übergeben, da dies ein Namespace ist, unter dem die gemeinsamen Tags im Grunde gesetzt werden. Und was wir dann tun können, ist, dass wir diese beiden Methoden einfach in die Items-Klasse aufnehmen können . Und im Grunde genommen ersetzen Sie dies einfach durch den Artikel aus dem nettoitem hier. Und dann natürlich eine Reihe von Blöcken, das ist Item. Und statt zu blockieren ist dies auch ein Gegenstand. Dieser Artikel auch. Und dann ist der Rest tatsächlich völlig in Ordnung. Wie Sie sehen können, ist das alles, was wir hier tun müssen. Und jetzt können wir diese Steuer definieren. Es gibt also im Grunde zwei Dinge, die Sie tun können. Sie können, Nummer eins, Ihre Tags in dieser Klasse definieren, und das ist in Ordnung. Und Sie könnten sie auch in Ihrem Testament definieren , in Ihren Daten für. Und was sehr wichtig ist , ist , dass wir im Grunde ein benutzerdefiniertes Tag erstellen werden, das für uns spezifisch ist. Und dann werden wir auch vier gemeinsame Tags haben , die wir verwenden werden. Wir brauchen eigentlich immer die Tags hier drin. Die Daten JSON-Dateien brauchen wir immer, aber wir müssen diese Klasse nicht unbedingt hier haben. Dies ist nur so , dass wir auf unsere benutzerdefinierten Tags innerhalb des Codes zugreifen können . Das erste Beispiel dafür ist ein öffentlicher statischer finaler Tag-Punkt-Identifikator des Blocktyps , den wir als unterstrichener Unterstrich als nachweisbar bezeichnen den wir als unterstrichener Unterstrich werden unterstrichen Blöcke. Dies wird im Grunde die boolesche Methode innerhalb der Dowsing Rute ersetzen , bei der wir derzeit genau hier einen wertvollen Gegenstand fest codiert haben . Und wir werden dies mit dem Tag erweiterbar machen, das es beispielsweise anderen Modi oder mehr Packmachern ermöglicht, anderen Modi oder mehr Packmachern ermöglicht diesem Tag auch verschiedene Dinge hinzuzufügen. Und das ist das Schöne daran. Wir werden also sagen, dass Sie in Kleinbuchstaben ein Tag mit genau dem gleichen Namen erstellen . Also dowsing, Rutenunterstrich, die Tech-Blase, schützbare Unterstreichblöcke. Und lasst uns das eigentlich ein bisschen anders formatieren. Also vor einem Tag. Und was wir dann tun werden, ist dass wir hier auch zwei weitere Block-Tags hinzufügen werden. Einer von ihnen wird die OriC-Ergebnis-Unterstrich-Blöcke sein. Und der andere wird der Oracle-Unterstrich sein . Und was Sie erraten hätten, ist sich tatsächlich um Aman-Tags handelt. Nun, lass es uns einfach so machen. Und das werden die Orakel-come-Unterstrich-Blöcke sein. Und dann lassen Sie uns das einfach zum Schlimmen kopieren . Nun, der Grund, warum wir diese haben ist, wenn auch ein anderer MOD, Anzeigen oder ein Kalzium, dann könnten sie das teilen, dass sie dies teilen können. Und wir werden das in nur einem Moment mit den Gegenständen sehen , weil die Gegenstände tatsächlich sehr häufig, nützlich und cool sind. Was wir also haben werden , ist eine öffentliche statische endgültige Tag-ID. Noch einmal vom Typ Item hier in diesem Fall, und dies ist Neukalk-Unterstriche, die einem neuen gemeinsamen Tag oder Ergebnis entsprechen. Unterstreiche Englands. Lassen Sie uns das einfach mit Control D duplizieren , und das sind die Nuggets. Und dann auch hier drin. Erinnern Sie sich, kommen Nuggets. Und wir werden es benutzen, dass wir diese Barren auch hier benutzen werden. Jetzt noch einmal. Dies in dieser Klasse macht einfach alle diese Tags innerhalb des Codes zugänglich, ist nicht unbedingt erforderlich. Wo es notwendig ist, ist nur in einem Moment , denn jetzt in der Dowsing Rute Item werden wir eigentlich tun , anstatt diese fest codiert zu haben, wir werden Folgendes zurückgeben. Wir werden Mod-Tags sagen, die blockiert werden. Und dann importieren Sie dies mit alten Enter Dowsing Rod detektierbare Blöcke die Block enthalten, Block enthalten. Da gehst du. Und das wird wahr zurückgeben, wenn sich der hier übergebene Block innerhalb dieses Tags befindet. Jetzt unser eigenes Tag. Wir müssen im MC-Kurs hinzufügen, mit der rechten Maustaste auf neues Verzeichnis namens Tags und dann mit der rechten Maustaste auf neues Verzeichnis namens Blöcke klicken. Dann drinnen da drin. Oder ich werde es tun, dass ich tatsächlich hierher gehe und den Namen hier kopiere. Steuern Sie also C oder klicken Sie mit der rechten Maustaste auf neue Datei, Control V, um sie in Punkt JSON einzufügen. Und dann haben wir das, ich werde tatsächlich den Inhalt kopieren weil es tatsächlich ziemlich viel drin ist. Dies steht Ihnen natürlich im GitHub Repository oder in einem genauso gut zur Verfügung. Das ist also im Grunde alles, was ich dort hineingelegt habe, einschließlich meiner eigenen Oracle Com oder natürlich. Und was wir danach oder als nächstes tun können , ist, dass wir jetzt auch die Harmon-Tags hinzufügen können. Und wir werden das tun, indem wir zu Daten gehen, mit der rechten Maustaste auf ein neues Verzeichnis namens C klicken, nur Kleinbuchstaben c sehen, sonst nichts. Und ich kopiere tatsächlich den gesamten Ordner hier. Das sind also wieder nur Tags, Blöcke, Items. Also alles normal und die Namen hier müssen eigentlich auch nur mit den Namen übereinstimmen. Und was wir tun werden, ist, dass wir tatsächlich eines dieser Tags verwenden werden. Genau genommen die Orakelbarren markieren innen. Und das wird verrückt sein. Unser Rezept, das ist genau etwas , das wirklich cool ist. Denn was passieren kann, ist, dass wir dies tatsächlich zu einem Tag machen können, wenn wir zum Beispiel etwas wie das Orakel von Barren blockieren können, anstatt einen Artikel hier zu haben. Und dann wird das natürlich c sein, denn dies ist ein anderer Namensraum und anstelle von England sind es Barren. So können wir ein Tag angeben und dann normalerweise nur das Tag, wo es sich befindet, auf See und es ist ein Gegenstand. Das ist übrigens sehr wichtig, dass dies hier nur Artikel-Tags enthält. Es sucht also im Grunde nur nach einem Artikel-Tag oder Neukalk-Ingots. Und dann wäre alles, was hier drin ist als mögliches Rafting-Rezept praktikabel. Das Coole ist also, dass, wenn es drei verschiedene Massen gibt , die Oracle vermischt , theoretisch unser Block mit einem von ihnen hergestellt werden könnte . Das ist also eine Art allgemeine Idee dort. Und ermöglicht es auch mehr Herzschrittmachern, unser Modell nur ein wenig kompatibler mit anderen Mathematik zu machen . Das ist also sehr wichtig. Und natürlich dieses Jahr, oder? Dies ermöglicht es uns nur, dies viel einfacher und erweiterbarer zu machen und uns auch mehr Friedensstiftern zu ermöglichen, dieses Ausmaß auch erweiterbar zu machen. Weil wir in unserem Fall natürlich etwas wie 10 oder Titan oder oder ähnliches nicht hinzugefügt haben . Wenn ein anderes Modell hinzufügen würde, dass ein mehr Pack-Maker oder sogar dieser Mod einfach sagen könnte, hey, wenn das, wenn die MC-Kursmodelle, fügen sie das auch einfach hinzu. Das ist also echt verdammt cool. Aber das ist eigentlich alles, was wir für unsere Panzer tun müssen. Also Nummer eins, mal sehen, ob die Rute mit der neuen ist wertvolle Blockmethode funktioniert. Und mal sehen, ob wir in Minecraft noch Kalziumblöcke aus Barren oder Schlussfolgerungen herstellen können . Mal sehen, klicken Sie mit der rechten Maustaste. Und da haben wir es. Dort haben wir etwas Kupfererz. Und lass uns einfach weitermachen. Vielleicht werden wir auch etwas tiefe Schiefer finden, Kupfer oder Eisen oder ich bin sicher, dass wir irgendwann etwas finden werden, natürlich sinkt die Haltbarkeit nicht. Oh, Lapislazuli, damit wir das vorher definitiv nicht hatten. Mal sehen, ob wir hier irgendwo etwas anderes finden könnten , keine Wertsachen gefunden. Die Haltbarkeit sinkt nicht , da wir uns derzeit im Kreativmodus befinden. Das berücksichtigt auch andere Bereiche. Tiefschlaf, Lapis, Lazuli Rate oder ist es da? Da ist es. Also los geht's. Das ist eigentlich echt verdammt genial. Und lass uns einfach sehen. Erinnern Sie sich also daran, dass sie gut geworden sind und sie gehen, wir können immer noch bauen, dass der RCA blockieren kann, wäre hier nichts passiert. Das ist also ziemlich häufig, cool, seriös oder EBIT für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und es lernt das Neue. Der gesamte Code steht Ihnen im GitHub-Repository oder im Einzelnen genauso zur Verfügung. Und wir sehen uns in der nächsten Vorlesung. Also ja. 54. (Grundlagen) Hinzufügen von Treppen und Platten: Oder ich begrüße zurück beim Stoffpferd für eine 118. Und in dieser Vorlesung beginnen wir unsere oder Vortragsreihe über das, was ich normalerweise als Nicht-Block bezeichnete . Blöcke. Natürlich ergibt das nicht viel Sinn. Was wir jedoch im Grunde hinzufügen möchten, sind Treppen, Platten, Knöpfe, Druckplatten, Zäune, Zäune, Tore, Wände, Türen und Falltüren. Und das werden wir in den nächsten vier Vorträgen machen. Sie haben alle einige Ähnlichkeiten, aber es gibt einige wichtige, wichtige Schritte, die Sie bei einigen von ihnen unternehmen müssen . Also lasst uns einfach anfangen. Und die Nummer eins, die ich anfangs geben möchte, ist, dass ich auf jeden Fall alle JSON-Dateien hier kopieren werde. Sie müssen also definitiv das GitHub-Repository oder die Juristen öffnen das GitHub-Repository oder und diese auch kopieren. Ich habe dringend empfohlen, diese auszuschreiben. Sie werden sehen, dass es in einem Moment nicht wirklich möglich ist. Nun, es ist möglich, aber du könntest eine halbe Stunde damit verbringen, etwas Besseres zu machen. Also werden wir das sehen, überhaupt keine Sorgen. Und was wir tun werden, ist, dass wir den SPD-Block zweimal kopieren werden. Und die erste wird die OriC-Kalzium-Unterstrichen-Treppe sein . Und das wird die 40.000 Ergebnisstufen sein. Und das wird das Oracle-Einkommensunterstrichen-Labor sein. Und das wird auch die Orakel-Come-Unterstrich-Platte sein. Jetzt sind natürlich keines davon schnelle Blöcke. So steuert die Orakel com-Treppe Block und die Platte soll Platte sein. Jetzt werden Sie sehen , dass das Plattenschloss absolut gut funktioniert. Keine Roy's überhaupt schon oben mit dem neuen Treppenblock neu zu alken funktioniert nicht weil er einen geschützten Zugang hat. Was heißt das? Nun, wenn wir mit der mittleren Maustaste darauf klicken, können wir sehen, dass der Beweis dafür, dass der Konstruktor hier tatsächlich geschützt ist. Was wir also tun müssen, ist, dass wir daraus eine benutzerdefinierte Klasse erstellen müssen , was irgendwie seltsam ist. Ich persönlich bin mir nicht hundertprozentig sicher. Breiter das ist der Fall. Es ist jedoch, was es ist, also müssen wir es tun. Lassen Sie uns dieses Material auch hier in Metall umwandeln , denn am Ende des Tages ist dies ein Kalzium. Und nachdem wir das getan haben, gehen Sie zum benutzerdefinierten Paket und klicken Sie mit der rechten Maustaste auf neue Java-Klasse. Dies ist der Mustertreppenblock. Und wir werden das vom Treppenblock aus erweitern . Lassen Sie uns den Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super passt. Und dann ändern wir dies von geschützt zu öffentlich. Und jetzt sind wir fertig. Und wir werden uns im Grunde nie wieder die mehr Treppenblockklasse ansehen müssen. Aber jedes Mal, wenn wir einen neuen Block bauen, das ist ein Treppenblock, werden wir diesen stattdessen benutzen. Und Sie können sehen, dass der erste Parameter tatsächlich ein Blockstatus ist. Was wir hier also übergeben müssen, sind nur die Modusblöcke oder -block. Dies ist also im Grunde genommen Punkt-Git-Standardstatus. Was wir also hier reingehen müssen, ist der Block, aus dem die Treppe besteht. Aber das ist die allgemeine Idee. Aber dafür sind Ihre Bücher registriert und wären bereit zu gehen. Natürlich kann es nie so einfach sein. Denn wirklich wie die Kicker-Sache für alle Nicht-Block-Blöcke werden die JSON-Dateien sein. Nun, wie ich schon sagte, ich werde sie alle für immer kopieren und werde es natürlich auch erklären. Wir werden die Platte kopieren und den Block lenken sagt Jason, und bitte fallen Sie nicht von Ihrem Sitz, wenn Sie das sehen, denn das ist ziemlich viel. Fangen wir also tatsächlich mit einer Platte an , denn das ist überhaupt nicht so schlimm. Was Sie also sehen können, ist, dass wir jetzt tatsächlich eine andere Varianz haben, oder? Wir haben drei verschiedene Arten von Platten, unten, doppelt und oben. Und jeder von ihnen zeigt auf eine andere Jason-Datei. Dies deutet auf die Platte Jason hin, dies deutet darauf hin, dass das Orakel blockieren kann , denn wenn Sie zwei Platten haben, sieht es natürlich wie ein normaler Block aus. Und dann zeigt dieser auf die Platte, aber auf den oberen Teil oder die obere Hälfte des eigentlichen Blocks. Das ist die allgemeine Idee. Dieser Typ wird hier als Blockstatuseigenschaft bezeichnet . Wir werden uns diese in einer zukünftigen Vorlesung vorerst viel genauer ansehen , wir können uns diese Variablen nur so vorstellen, dass sie eine Art von Werten haben , die sie annehmen können. Und abhängig von ihrem Wert ändern wir das Modell, auf das der Block Punkte auswählt. Das ist so ziemlich alles, was es dazu gibt. Jetzt für die Treppe haben wir tatsächlich mehrere verschiedene Blöcke und Eigenschaften. Und deswegen sieht es so aus. Und ich werde weiter scrollen und du wirst sagen, das ist Wahnsinn. Ja, das hat 209 Zeilen. Das ist der Grund, warum Sie dies zu 100% kopieren sollten, unter keinen Umständen sollten Sie dies aufschreiben, denn das ist absoluter Wahnsinn. Ein schneller Trick, den ich mit dir teilen möchte, ist, dass du hier eine andere Modus-ID verwenden würdest. Sie können dies auswählen und Strg R drücken, um dies zu ersetzen und diese dann durch Ihre MOD-ID zu ersetzen. Im Grunde genommen hat dieser Treffer Alle ersetzen. Und Sie können sehen, dass es plötzlich überall das eigentliche Ding durch die Melodie ersetzt hat , die wir hier hineingelegt haben. Das ist Control Z , um hierher zurückzukehren. Und das Gleiche gilt natürlich für das Kalzium. Wenn Sie zum Beispiel Arnold Titan verwenden, könnten Sie sie einfach alle ersetzen und dann würde das auch funktionieren. Wo vergessen Sie nicht, die JSON-Dateien auch umzubenennen. Aber das macht tatsächlich alles viel einfacher. Und das können Sie übrigens auch tun, wenn Sie den Ordner hier auswählen und Control Shift R drücken, dann erscheint die, diese Ersetzungsdatei und Sie können sehen, dass ich jetzt ein Kalzium ersetzen könnte oder ein Kalzium in allen diese Akten hier. Gleiches und ersetzen Sie es dann grundsätzlich durch Titan, sagen Sie Alle ersetzen. Und das würde auch funktionieren. Aber das ist ein sehr wichtiger Tipp und ich empfehle dies dringend, wenn es benötigt wird. Jetzt müssen wir die Blockmodelldateien kopieren und hier wird es ziemlich verrückt. Und das ist auch, Sie werden jetzt sehen, warum ich sage: Nun, wir werden alles kopieren, weil es fünf verschiedene Dateien sein werden. Das ist eigentlich immer noch nicht so schlimm Alles in Betracht gezogen, aber es sind immer noch einige. Öffnen wir einfach zuerst die Platten , damit Sie sehen können, dass das, was hier drin geschrieben ist, eigentlich nicht zu verrückt ist. Wir haben im Grunde nur drei verschiedene Texturen, auf die wir hinweisen, wo auch immer, sowohl für den Laptop als auch für die Platte, die dieselben Texturen sein werden, was auch immer der Fall sein mag, weil wir immer wollen, dass dies wie der Orakelblock aussieht. Und der einzige Unterschied zwischen den beiden, die auf Dateien basieren, ist das übergeordnete Element hier. Entweder ist ein Slab Horse Laptop, das ist es wirklich. Und wenn es um die Treppe geht, während sie ein bisschen anders, aber auch sehr ähnlich aussehen , haben wir drei verschiedene Texturen, auf die wir hingewiesen haben. Und das einzige, sich hier ändert, sind Blicke, Innentreppen und Außentreppen, oder der Elternteil sind so ziemlich alle Änderungen oder alle Unterschiede im Artikelmodell Jason? Nun, das sind glücklicherweise eigentlich nur ein normales Gegenstandsmodell Jasons vier Blöcke. Dies deutet hier auf die normale Platte hin und dies deutet auf die normale oder eine Telekommunikationstreppe JSON-Datei genau hier hin. Es gibt also überhaupt keine Sorgen. Und das Verrückte ist, dass wir keine Texturen hinzufügen müssen , weil die Treppen und der Brammen Wolf einfach die Orakelblock-Textur verwenden. Das ist also echt cool. Das einzige, was wir hinzufügen müssen, ist eine Übersetzung. Was wir natürlich tun werden, ist, dass wir das einfach hier kopieren werden. Ich sage, oder ein Kuheinkommen. Unterstrichentreppen werden das Orakel Malcolm sein. Es gibt und dann wird das die neu alc sie Platte sein. Bramme. Bitte beachten Sie auch, dass diese Treppen mit einem S, also Plural und Slab Singular, das auch hier sehr wichtig ist. Aber eigentlich weiß ich, du mir nicht glauben wirst, aber das war's. Das Verrückte wird definitiv hier sein. Die JSON-Akten für den Block States Jason. Und das wird im Grunde für alle unsere verschiedenen Nicht-Block-Blöcke fortgesetzt unsere verschiedenen Nicht-Block-Blöcke , die wir hinzufügen werden. Daher empfehle ich dringend, sich die im GitHub-Repository anzusehen und zu kopieren die sind vorbei. Und dann wird es viel einfacher. Aber jetzt schauen wir mal, ob es funktioniert. Oder ich funktioniere wieder in Mikrofinanzierung, kann sehen, wie das Orakel starrt und die Sklaven zum Spiel hinzugefügt wurden. Und wir können sie aufstellen und einfach ein nettes machen, Nun, ich meine, im Grunde was wir mit ihnen wollen, wir können sie einfach aufstellen und alles hier funktioniert auch, oder? Wir können die innere und die äußere Treppe sehen oder arbeiten. Sie können dies oben und auch unten hier abstellen und zusammenfügen , um einen normalen Block zu bilden. Wie Sie sehen können, funktioniert hier alles. Das ist also ziemlich cool, oder? Aber das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt, und wir sehen uns in der nächsten Vorlesung. Also ja. 55. (Grundlagen) Hinzufügen von Buttons und Druckplatten: Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir benutzerdefinierte Schaltflächen und Druckplatten hinzufügen und mit den Nicht-Block-Blöcken fortfahren. Gehen wir also in unsere Mort Blöcke Klasse und kopieren wir einfach zweimal die OriC-Telekommunikationsplatte. Und fangen wir einfach sofort an. Das wird also der Oracle-Kommen-Button sein. Und das ist natürlich wieder hier der Fall. Und dann der andere, das wird die unterstrichene Platte des Telekommunikationsunterstrichs sein . Und noch einmal das Gleiche in Kleinbuchstaben genau hier. Druck unterstreicht spät. Jetzt wird der Calc-Button hier natürlich ein Button-Block sein , der uns auch einen Fehler gibt. Und die Platte ein Block wird ein Druck sein oder vielmehr das Vergnügen gespielt Brock wird ein Druckplattenblock sein , der natürlich auch einen Fehler haben wird. Dies bedeutet, dass wir hier zwei neue benutzerdefinierte Klassen erstellen müssen . Also in unserem benutzerdefinierten Paket der Modus-Tastenblock, der die Stone-Button-Block-Klasse erweitern wird. Wir werden den Mauszeiger über diesen Creed-Konstruktor super passt. Möchtest du das hier in öffentlich ändern. also keine Sorgen. Und dann müssen wir uns diesen Kurs nie wieder ansehen. Und dann noch einmal im benutzerdefinierten Paket. Der Modus-Druckplattenblock genau hier. Man erweitert dies durch den Druckplattenblock. Und wir werden den Mauszeiger noch einmal darüber bewegen und dies auch öffentlich machen. Jetzt benutzt es die normalen Vanille-Klassen. Wir benutzen den Mod Stone Button Block genau hier. Und dann werden wir hier den Mod des Drucks gespielt Block benutzen . Jetzt wird der erste Parameter davon tatsächlich eine Aktivierungsregel sein. Das wird der Akt sein. Sie meiden alles. Im Grunde genommen wird alles, was über diese Druckplatte geht , es aktivieren. Lassen Sie uns tatsächlich die mittlere Maustaste darauf klicken und der mittleren Maustaste auf den Druckplattenblock klicken . Und Sie können sehen, dass wir die Redstone-Ausgabe haben. Dies ist im Grunde die Methode, die verantwortlich ist oder prüft, um welchen tatsächlichen Typ es sich handelt. Sie können also sehen, dass dies.tab hier gewechselt wird. Also als Switch-Anweisung und Sie haben alles oder Mütter, wenn Sie Ihren eigenen benutzerdefinierten Aktivierungstyp erstellen möchten, empfehlen Sie es jedoch noch einmal. Sie benötigen etwas Java-Wissen, um dies tatsächlich zu tun. Aber es ist nicht zu verrückt. Was Sie tun können, ist, dass Sie machen können, im Grunde müssen Sie nicht einmal Ihre eigene Aktivierung machen, da die Aktivierung von allem, was Sie sehen können, eine Aufzählung ist. Du musst das nicht mal tun. Was Sie tun können, ist, dass Sie diese Methode einfach in Ihrer benutzerdefinierten Druckplattenblockklasse überschreiben können Ihrer benutzerdefinierten Druckplattenblockklasse und dann hier Folgendes haben. Aber Sie können sehen, dass die nicht zuschauenden Entitäten, und Sie bestehen im Grunde eine bestimmte Klasse hier. Was ist die Klasse dessen , was wir bekommen werden? Und das ist eine Liste bestimmter Tiere oder bestimmter Mobs , die wir dann durchmachen. Und das ist die allgemeine Idee. Also in diesem Fall alles, was ein Lebewesen ist, oder? Also mobs alles , was ein Lebewesen ist, dann werden wir 15 zurückgeben. Wenn die Entität, die über dieser Lebewesen liegt, können wir sonst auch hier etwas anderes eingeben. Das ist also etwas , das Sie beachten sollten, wenn Sie das nicht wollen, das ist völlig in Ordnung. Aber ich empfehle definitiv etwas Java-Wissen dafür. Sonst wirst du wahrscheinlich ziemlich viel damit zu kämpfen haben . Nun, die Blöcke sind jetzt registriert. Aber natürlich sind die Drazen-Akten leider wieder die Sache , die das verrückte Zeug sein wird. Und in diesem Fall die Button-JSON-Datei wird die Button-JSON-Datei für den Blockstatus tatsächlich das Verrückte sein. Du siehst es. Die Druckplatte hat nur eine Powered entweder falsch oder wahr. Und dann haben wir entweder die Druckplatte oder die Druckplatte unten. Das ist ziemlich einfach. Der Knopf ist, wie Sie sehen können, verrückt. Noch einmal, da wir es entweder auf den Boden oder die Wand stützen können. Wir können es nach Osten, Westen, Süden oder Norden richten. Und es kann entweder ein- oder ausgeschaltet sein. Das ist also im Grunde das, was all diese Verrücktheit bewirkt, ist es tatsächlich ziemlich verrückt. Insgesamt dreht sich dieses Jahr im Grunde nur den Block und dieses Jahr macht es so, dass sich die Textur auch mit dem Block dreht , so dass sie sich nicht unabhängig dreht. Das ist der allgemeine Kern von all dem. Aber wieder einmal ist es ziemlich verrückt. Tippe das nicht aus. Dies steht Ihnen im GitHub Repository oder im Einzelnen genauso gut zur Verfügung. Dies wird natürlich auch in den externen Bibliotheken hier unten verfügbar sein , die wir bereits zuvor gesehen haben. Daher empfehle ich dringend, dies bei Bedarf einfach zu kopieren. Und Sie können natürlich immer den Trick verwenden, um dies auszuwählen , und drücken Sie Control R, um etwas zu ersetzen. Und dann können Sie beispielsweise das MOD-ID-Jahr ersetzen . Und du musst es nicht oft einzeln machen. Aber lasst uns tatsächlich sofort zur EN Unterstrich uns JSON-Datei gehen , weil ich das manchmal vergesse. Machen wir es uns also nicht zur Gewohnheit. Wir sagen den Oracle-Komma-Button und das Orakel kann Druck auf den Teller setzen. Und das wird die Neukalk und der Knopf sein und das Perikard des Drucks auf nicht unterstreichen, sondern eine normale Platte, das Ego und dann die Blockmodelle, die wir gesehen haben, natürlich gibt es wieder ein weniger, mehr, aber zum Glück für den Knopf und die Retro-Platte gibt es wieder fünf. Werfen wir einen kurzen Blick auf die, denn wieder einmal sind sie eigentlich nicht so interessant. Alles in Betracht gezogen. Sie können sehen, dass der Button hier jedes Mal einen anderen Elternteil hat und die Textur immer auf den bereits Kalikimaka-Block zeigt. Das ist also so ziemlich alles, was es dazu gibt. Gleiche gilt dafür. Punkte auf das Orakel können die Textur blockieren. Und es hat im Grunde nur die Druckplatte nach oben oder Druckplatte unten als Elternteil. Das ist wirklich der einzige Unterschied hier. Und für die Artikelmodelle gibt es etwas ganz Besonderes für den Button. Aber das ist auch nicht allzu verrückt, weil wir ein bestimmtes Button-Inventarblockmodell haben , auf das dies hinweist, aber auch nichts zu beenden ist. Aber insgesamt ist das eigentlich nicht allzu verrückt. Und noch einmal müssen wir hier keine Texturen hinzufügen, da die Texturen immer sein werden, das Oracle kann für einen dieser Blöcke blockieren. Aber jetzt mal sehen, ob es funktioniert. Oder Apotheker zurück in Mikrofinanzierung kann beides sehen. Die Druckplatte sowie der Knopf wurden hinzugefügt. Und klicken wir einfach auf den Button. Natürlich funktioniert es und hier genau das Gleiche. Und weil wir alles, sogar die Item-Entitäten, hier abgelegt haben sogar die Item-Entitäten, hier , wird es immer noch funktionieren. Das ist also ziemlich häufig, cool. Und so einfach ist es eigentlich einen dieser Blöcke hinzuzufügen, wo ich, aber das wird es für diese Vorlesung schon hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Denken Sie natürlich daran, dass der gesamte Code im GitHub-Repository oder einer Einzelperson genauso gut verfügbar ist . Und wir sehen uns aber in der nächsten Vorlesung. Ja. 56. (Grundlagen) Hinzufügen von Adding Zäunen und Mauern: Fabric-Kurs für 118. Und in diesem Vortrag werden wir benutzerdefinierte Zäune, Zäune, Tore und benutzerdefinierte Mauern hinzufügen , Minecraft. Das wird also im Grunde mit den Nicht-Block-Blöcken fortgesetzt , wie ich sie gerne nenne. Nun, lasst uns in unsere Klasse „ Mehr Blöcke“ gehen und lassen dreimal die benutzerdefinierte Platte hier kopieren. Also werden wir natürlich ein orales Kalzium-Ende haben. Und das wird auch ein Orakel sein , das sich hier biegt. Und dann werden wir ein Zaun-Unterstrich-Gate haben. Und hier natürlich auch, oder ein CalcSum unterstrich Flossen UND Gate. Und genau hier haben wir eine orale Kalziumwand hier eine orale Kalziumwand und auch eine Kaliko-männliche Wand. Da gehst du. Das wird also der Block eines Freundes sein und es funktioniert tatsächlich. Und das wird ein guter Zaunblock sein. Und es funktioniert tatsächlich. Trauer oder drei beenden? Ja, ein Mauerblock. Und es funktioniert auch tatsächlich. Das ist also wirklich gut. müssen wir hier keine benutzerdefinierten Klassen In diesem Fall müssen wir hier keine benutzerdefinierten Klassen erstellen. Also können wir im Grunde einfach mit den JSON-Dateien fortfahren, die wieder ziemlich häufig verrückt werden, aber überhaupt keine Sorgen machen werden. Wir werden das durchstehen. Also drei Blöcke States, JSON-Dateien, und Sie können bereits sehen dass die Dinge absolut verrückt werden. Zuallererst hat das Zauntor, wie Sie sehen können, hier drei verschiedene Blockzustandseigenschaften, in die Wand gerichtet und offen sind. Und abhängig davon wir uns im Grunde wieder für ein anderes Glücksmodell entscheiden . Und dann drehen wir es natürlich und der UV sperrt es auch. Nichts zu Verrücktes hier. Wieder einmal ist ein sehr guter Tipp, die Steuerverschiebung zu drücken, oder wenn Sie ein anderes oder ein Kalzium haben , wenn Sie keine Zusammenfassung verwenden , sondern Titan, oder wenn Sie eine andere Modus-ID haben, können Sie einfach die mara DMC Kurs hier und tippe deine eigene Melodie ein und ersetze sie so. Noch einmal, Control Shift und sind, wenn Sie sich in einem Ordner befinden. Und natürlich stehen Ihnen alle Dateien im GitHub-Repository oder im Einzelnen genauso zum Download zur Verfügung. Und die Mauer und der Zaun hier sind eigentlich ein bisschen anders. Diese sind mehrteilig , wie Sie sehen können. Und da ist die Idee, dass Sie einen bestimmten Teil des Modells anwenden , wenn etwas passiert. Sie können also sehen, dass wir, wenn es hier etwas gibt , eine Seite in einer bestimmten Richtung hinzufügen. Dann fügen wir auch das zusätzliche Modell hinzu. Lassen Sie uns also in die UN-Unterstriche uns JSON-Datei eingehen und lassen Sie uns einfach alle sofort hinzufügen. Also wird es den Zaun geben. Und dann werden wir den Oracle-Einkommensunterstrich, den Unterstrich, den Unterstrich, das Tor zu diesem Zaun hier und das Tor hier haben. Dies wird auch die Malcolm-Mauer sein. Willkommen Wand. Da gehst du. Jetzt haben wir all das hinzugefügt. Das wird also auch gut werden. Und fügen wir jetzt die JSON-Dateien des Modells hinzu, die reichlich sein werden. Eigentlich haben wir vier für das Tor, wir haben drei für den Zaun, und dann haben wir noch vier oder die Mauer. Wie ich schon sagte, viele Akten, davon insgesamt 11. Insgesamt sehen sie alle ziemlich genau gleich aus. Wir haben auf eine Textur hingewiesen, nämlich auf die Blocktextur. Und nur die Eltern sind anders. Man sieht also, dass hier wirklich nichts Verrücktes vor sich geht. Es geht nur darum, den richtigen Elternteil zu haben und dann auf die richtige Textur zu verweisen. Das ist alles, was es dazu gibt. Ich glaube nicht, dass es wirklich notwendig ist, jeden von ihnen durchzugehen. Es sieht alles gleich aus. Manchmal ist der Name, das Jahr der Textur ein bisschen anders. Aber insgesamt ist das die meiste Zeit der Unterschied. Und Sie können natürlich auch immer zu den externen Bibliotheken gehen, rot zu dieser hier in Minecraft, Minecraft-Projekt. Im Ordner „Assets“ blockiert Minecraft States. Wir haben die Modelle, die Modelle und dann auch hier auch alle Modelle oder auch. Sie können zum Beispiel die Enscape-Wand hier sehen. Und das ist auch verfügbar, also gibt es überhaupt keine Sorgen. Sie können sich das immer ansehen und diese auch benutzen. Und kopiere sie im Grunde. Lassen Sie uns nun auch über die Mauer, das Zauntor und die Zaunelementmodelle kopieren . Um diese Punkte dem Wandinventarmodell zuzugeben, deutet dies auf das Zauninventar hin, und dies zeigt auf das Endtor. Also nichts zu verrückt. In einer weiteren Zeit müssen wir keine Textur hinzufügen was wir zum Hinzufügen unserer Tags benötigen. In unserem Datenordner, Minecraft-Tags Blöcke, klicken Sie mit der rechten Maustaste auf eine neue Datei namens Zäune Daten JSON. Und dann werden wir den Inhalt dieses Jahres nur für einen Moment kopieren den Inhalt dieses Jahres nur für , damit wir die richtige Formatierung für die Tags haben . Und dann werden dies MC-Kerne für den Neukalk-Unterstrich-Zaun sein. Und dann ziehen wir das einfach in denselben Ordner, während wir die Kontrolle halten, um es zu duplizieren. Und wir nennen das das „walls-Tag“. Und dann wird das die Neukalk-Wand sein. Dies wird benötigt, damit die Verteidigung tatsächlich miteinander verbunden ist. Das ist sehr wichtig, oder? Und nachdem wir all das hinzugefügt haben, schauen wir mal, ob es funktioniert. In Ordnung, wir haben festgestellt dass verhindert werden können, dass alle drei Blöcke hinzugefügt wurden und sie alle völlig in Ordnung sind. Das ist also genau das, was Sie hier sehen möchten. Lassen Sie uns das auch einfach aufstellen. Da gehst du. Also funktioniert alles völlig gut. Und nun, ich meine, sie sind alle hinzugefügt und so einfach ist es eigentlich, die Zauntore, die Zäune und die Wände zum Spiel hinzuzufügen . Kautschuk Das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 57. (Grundlagen) Türen und Türen hinzufügen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Tür und eine benutzerdefinierte Falltür hinzufügen . Diese werden tatsächlich sehr interessant sein. Lasst uns einfach in unsere Mottoblock-Klasse eingehen. Und damit schließen Sie im Grunde die Nicht-Block-Blöcke ab. Was hier interessant sein wird, ist, dass diese eigentlich nicht aus Kalzium bestehen , sondern aus Kirschblüten bestehen werden. Jetzt ist Kirschblüte natürlich das eigentliche Holz. Also werden wir in einem späteren Vortrag einen Brauch haben, aber wir werden schon die Tür sehen. Kirschblüten unterstreichen die Tür genau hier. Und dann gilt das Gleiche für die Sheri-Unterstrich-Blüte, unterstrichen Falltür. Kopieren Sie das einfach hier drüben, machen Sie es ein bisschen einfacher für die Ego-Falltür. Und jetzt müssen wir tatsächlich einen Motortürblock und einen Mod-Falltürblock bauen. Nun, lassen Sie uns einfach diesen Türblock erstellen , der den Türblock erweitert. Lassen Sie uns den Mauszeiger über diesen Creed-Konstruktor bewegen, der super passt, und machen Sie dies auch öffentlich. Und jetzt müssen wir uns die Klasse nie ansehen. Schon wieder. Das Gleiche gilt für das Modell Falltürblock. Wir werden natürlich nur den Falltürblock erweitern . auch den Mauszeiger über den Ratenkonstruktor, der super passt und den Konstruktor hier öffentlich macht. Und dann geht's uns gut. Die Tür wird natürlich ein Motto-Türblock sein. Und das wird ein Modell-Falltürblock sein. Und wir müssen tatsächlich einen anderen nennen, naja, ich denke, die Fabric-Einstellungen und das wird hier nicht undurchsichtig sein. Da dies tatsächlich der ist, sowohl die Tür als auch die Falltür enthalten sowohl die Tür als auch die Falltür Alpha-Werte in ihrer Textur. Das bedeutet, dass Sie im Grunde ein Portal haben , das im eigentlichen Buch durchsichtig ist. Und wenn Sie das haben, müssen Sie dieses nicht undurchsichtige hier hinzufügen. Das ist sehr wichtig. Und es gibt noch eine andere Sache , die wir dafür tun müssen. Und das wird sein, wir werden eine neue Klasse im MC-Kurspaket machen . Klicken Sie also mit der rechten Maustaste auf die neue Java-Klasse namens MC-Kursclient , die den Client-Mod-Initialisierer genau hier implementieren wird . Wir bewegen den Mauszeiger darüber und implementieren die Methode, die nicht initialisierte Client-Methode. Und dies wird nicht enthalten, wo wir den Renderer-Layer festlegen. Wir sagen also Block-Render-Layer-Map. Diese Instanz. Instanz-Dotplot-Block. Welche Blöcke? Punkttür, genau die Kirschblüten-Tür mit dem späteren Renderpunkt wird ausgeschnitten. Dann werden wir das einfach duplizieren und die Falltür hier reinlegen. Und was wir auch tun müssen, und das ist sehr, sehr wichtig, dass Sie dem folgen, wir müssen in unseren Stoff eingehen. Punkt neben hier und unter dem Haupteinstiegspunkt genau hier, oder? Das ist sehr wichtig. Wir müssen dies im Grunde kopieren. Nun, der CIA-Klient. Dann müssen wir den MC-Kurs sagen und dann sicherstellen , dass dies so geschrieben wird. Also MC-Kurs, Kunde, das ist sehr wichtig und das muss definitiv anders passieren, der Kunde wird letztes Jahr nicht erkannt und wir werden einen Brunnen haben, einen Pfeil, wie das ist wird angezeigt. Aber nachdem das hinzugefügt wurde, war das in Ordnung und der Code ist fertig. Jetzt müssen wir einfach mit den JSON-Dateien fortfahren . Natürlich stehen Ihnen alle JSON-Dateien wieder entweder im GitHub-Repository oder als einzelne Gists zur Verfügung. Nachdem wir all diese blockfreien Blöcke gemacht haben, haben wir gesehen, dass diese mehrfache Rate einfach auf verschiedene Modelle genau hier in der Falltür oder auch in der Tür hinweist verschiedene Modelle genau hier in . Nichts zu spektakuläres um ehrlich zu sein. Lassen Sie uns also auch die Übersetzung hier hinzufügen. Das ist also nicht schon Kalzium, aber das ist Sherry Unterstrich Blüte unterstrichen Tür. Und dann machen wir die Kirschblüten-Tür. Und das Gleiche gilt hier für die Falltür. Wir werden einfach die Falle an der Grenze hinzufügen. Und dann gilt das Gleiche für diese eine Falltür, oder? Das Ziel, und was wir dann tun können , ist, dass wir die Modelldateien hinzufügen können. Jetzt gibt es tatsächlich einige davon. Lassen Sie uns die kopieren. Man sieht, dass es sieben von ihnen gibt. Aber obwohl es insgesamt sieben gibt, sind sie ziemlich einfach. Du kannst sehen, dass es wieder einmal nur der Elternteil ist, der hier anders ist. Und das Gleiche gilt im Grunde für die Falltür. Das einzige andere Interessante ist, dass wir, weil die Tür aus zwei Blöcken besteht, im Grunde eine obere und eine untere Textur haben, die darauf hinweist weil die Tür aus zwei Blöcken besteht, im Grunde eine obere und eine untere Textur haben, die darauf hinweist, was so ziemlich das einzig , was so ziemlich das Interessante ist Sache. Jetzt ist das Artikelmodell, insbesondere für die Tür, eigentlich sehr interessant. Denn wenn Sie das sehen werden, ist dies tatsächlich ein normales Artikelmodell. Oder a, für einen Artikel kein Block. Das liegt daran, dass die Tür tatsächlich hat, nicht im Inventar als Block angezeigt wird, sondern als tatsächlicher Gegenstand. Die Falltür jedoch, dieser Punkt belastet hier normale Falltür. Für diesen müssen wir es also tatsächlich zu verschiedenen Texturen hinzufügen. Wird tatsächlich drei verschiedene Blocktexturen und eine Elementstruktur sein. Diese stehen Ihnen natürlich auch zur Verfügung. Sie haben den Türboden, wir haben die Tür oben und die Falltür. Dann haben wir im Artikel auch die Tür genau hier, also werden wir das auch einfach kopieren. Also das Ego, die Ribosomentür für den Gegenstand. Und jetzt wurde alles hinzugefügt. Nachdem wir all dies hinzugefügt haben, Mal sehen, ob es funktioniert oder wenn ja, wir befinden uns in der Mikrolinse können sehen, dass sowohl die Tür als auch die Falltür erfolgreich zum Spiel hinzugefügt wurden . Wenn ich jetzt mit der rechten Maustaste auf dich klicke und sehe, dass es tatsächlich nicht funktioniert, diese zu öffnen. Das ist sehr neugierig und ich kann sie tatsächlich öffnen. Nun, ich meine, machen wir es einfach richtig. Hier. Da gehst du. Ich kann sie tatsächlich mit einem Redstone öffnen, wenn ich vor allem richtig geleitet habe. Das ist also etwas, das wir noch ändern müssen. Und ich zeige Ihnen, wie Sie grundsätzlich feststellen können , ob es nur mit Redstone geöffnet oder auch mit der Hand zu öffnen ist oder nicht. Aber es ist eigentlich eine sehr, sehr einfache Lösung. Anstatt das Material Metall einzulegen, legen wir einfach Material Holz ein. Und das ist alles, was wir tun müssen, um sie hier zu ändern , um sie jetzt mit dem Ende zu öffnen. Es gibt also überhaupt keine Sorgen. Dies schließt jedoch ziemlich den blockfreien Teil der Vortragsreihe ab, und dies würde auch den ersten Abschnitt hier abschließen. Hoffentlich fanden Sie das nützlich und lernen etwas Neues. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 58. (Tools) Erstellen eines neuen Werkzeugsatzes: Oder ein Willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir ein benutzerdefiniertes Toolset erstellen. Und was ich meine, ich schätze, lasst uns einfach anfangen hier in unsere Modell-Items Klasse zu gehen. Und wir werden eine Pick Axt und Axt als Ganzes machen, eine Schaufel und ein Schwert. Und es wird tatsächlich in dieser Reihenfolge sein. Erstens, was wir finden werden , ist, wenn ich einfach den ganzen Splitter hier kopiere, wir werden einfach anfangen, das zu machen, es ist eigentlich auch cool, hier benennen zu können weil ich nicht tippen muss raus oder es kann jedes Mal kommen, wenn der Code Ihnen im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung steht . Aber wenn ich anfange , ein Bohrloch zu machen, kann x hier wählen und wir werden es zu einem neuen Spitzhacke machen. Natürlich werden wir wieder finden, Nun, harte Liebe, es wird noch einmal geschützter Zugang sein. In unserem benutzerdefinierten Artikelpaket hier werden wir einen Mod Big Acts Item erstellen , der den Höhepunkt des nächsten Artikels erweitern wird. Lesen Sie den Konstruktor, der super passt. Und ich werde das in die Öffentlichkeit umwandeln. Und dann werden wir sofort dasselbe für den Mod Acts Item tun , der X item erweitert. auch den Mauszeiger über Periodenkonstruktor, der super passt, und machen Sie dies auch öffentlich Und dann brauchen wir auch den ganzen Mod-Gegenstand. Verlängert das ganze Objekt. erneut den Mauszeiger über einen Schnelllese-Konstruktor, der super passt und dies öffentlich macht. Und dann müssen wir diese Klassen nie wieder sehen. Das ist sehr sinnvoll, was auch immer der Fall sein mag. Und Sie werden sehen, dass es tatsächlich vier Parameter aufnimmt. Das erste, das ein Werkzeugmaterial ist, das ist eigentlich etwas, das wir auch erstellen müssen. Das mache ich in unserem Artikelpaket. Klicken Sie also mit der rechten Maustaste darauf, eine neue Java-Klasse oder ein neues Mod-Werkzeugmaterial. Und dies wird die Werkzeugmaterial-Schnittstelle von net Minecraft item implementieren . Und wir werden eigentlich nicht darüber schweben. Das erste, was wir tun werden, ist, dass wir dies in eine Enum ändern werden. Das ist sehr wichtig. Wir werden tatsächlich tun, wenn wir darauf klicken und dann Strg H drücken , um die Hierarchie aufzurufen. Und du wirst sehen, dass wir hier Werkzeugmaterialien haben . Doppelklicken wir darauf. Und Sie können jetzt sehen, dass dies die beiden Materialien aus Vanille sind . Und es gibt einen sehr lustigen oder es gibt eigentlich einen sehr einfachen Trick. Und das wird sein, wir werden hier ganz unten gehen , nicht davor, die nicht davor letzte geschweifte Klammer, sondern die vorletzte geschweifte Klammer. Dann halten wir die Umschalttaste gedrückt und klicken hier. Und dann drücken wir zum Kopieren Control C und dann Control V zum Einfügen. Und dann gibt es eine Sache , die wir ändern müssen, und das ist der Name hier. Also werden wir einfach diesen Namen kopieren, ihn hier einfügen und dann sollten wir keine weiteren Fehler mehr bekommen. Der Grund, warum wir das tun, liegt darin das eigentliche Werkzeugmaterial so ziemlich genau das Gleiche sein wird , egal was Sie tun. Deshalb kopiere ich es normalerweise einfach aus der Werkzeugmaterialklasse. Das ergibt einfach viel Sinn. Und dann ist der zusätzliche Vorteil hier auch, dass Sie sofortigen Zugriff auf all die verschiedenen Werte haben , die die Materialien hier zur Hälfte haben. Das ist also auch richtig cool. Sie können also einfach sofort sehen , was los ist. Das ist ziemlich gut. Was wir also tun werden, ist, dass wir nur ein paar Dinge loswerden. Also machen wir einfach so etwas und dann so etwas. Also geben wir hier einen Namen für dieses Rot, natürlich werden sie alle in diesem Fall neu berechnet. Und dann können wir das sogar auf andere Weise tun. Bergbauniveau oder Bergbauniveaus, die sie vor Eisen haben , die gerade die Röhre zurückgegeben hatten, aber hier ist es ein bisschen einfacher zu lesen. Dann ändern wir die Haltbarkeit auf 450. Natürlich sollte die Haltbarkeit ziemlich selbsterklärend sein . Das ist nur die Grundhaltbarkeit der tatsächlichen Gegenstände, dann die Bergbaugeschwindigkeit. Du siehst also, dass das 64. Dafür werden wir einfach so etwas wie 4.5 machen. Und vielleicht wird der Schaden tatsächlich 3,5 betragen und dann ist die Unfassbarkeit noch mehr. Vielleicht ist es so etwas wie 25. Und hier brauchen wir eigentlich nicht all diesen Jazz nur einen Lieferanten von Zutaten brauchen. Also machen wir es einfach damit. Und dann sagen wir Zutat des Artikels. Ich werde Mod-Items sagen, mehr Gegenstände, die Kalziumbarren sind , und schließe diese dann richtig. Da gehst du. Wenn wir jetzt noch einen hinzufügen würden, könnte ich das einfach kopieren und Sie werden sehen, dass dies nicht ganz funktioniert, da das letzte immer mit einem Semikolon enden muss, während jedes einzeln muss durch ein Komma getrennt werden. Das ist also sehr wichtig hier zu beachten. Dies ist im Grunde nur eine erweiterte Enum. Wenn Sie sich die Java-Einführung angesehen haben und erkennen sollten , dass das Problem hier mit den Faulen eigentlich nicht so schlimm sein sollte. Das wird also immer noch von Minecraft an sich selbst benutzt. Also bin ich eigentlich. Okay. Wenn ich es auch benutze, glaube ich, dass die Abwertung dort völlig in Ordnung sein sollte , wie diese zu verwenden. Und wenn sich hier irgendwann etwas ändert, können wir, wissen Sie, immer noch einen Blick auf die Modusmaterialklasse werfen und wie das funktioniert. So vollkommen in Ordnung. Aber das ist so ziemlich so, als müssten wir hier nichts tun. Wir definieren einfach diese Felder. Und diese Felder sind sozusagen grundsätzlich für jede der verschiedenen Materialebenen definiert . Wenn du also etwas ändern willst, änderst du es im Grunde einfach hier drin. Und dann überträgt sich das auf all die verschiedenen Tools, die Sie möglicherweise in Ihrem Modell haben, oder? Und dann können wir folgendes tun. Wir können sagen mod tool material.org Calcium. Und der zweite Parameter wird der Angriffsschaden sein. Ich glaube, das ist eine ganze Zahl. Und dann ist der dritte Parameter die Angriffsgeschwindigkeit, die ein Schwimmer ist. Und dann noch einmal nur die normalen Stoffartikeleinstellungen. Da es sich hier um einen MOD-Gegenstand handelt, müssen wir in diesem Fall das Risiko, die Zahlen ein wenig zu ändern, das Risiko, die Zahlen ein wenig zu ändern, die Zahlen hier, auf irgendeine Weise optimieren. Wenn Sie Ihren tatsächlichen Modus haben, werden Sie wahrscheinlich die Zahlen ziemlich optimieren , weil es natürlich nicht so einfach ist, alles auszugleichen, wie Sie vielleicht denken. Aber sonst müssen wir eigentlich nichts anderes hinzufügen. Was wir also einfach tun können, ist, dass wir das hier einfach fünfmal einfügen und dann einfach anfangen, Sachen zu ändern. Also handelt es sich hier, handelt auch. Also wird die XP wahrscheinlich so etwas wie 1 sein. Dies ist eine zusätzliche Geschwindigkeit, das ist übrigens nicht die tatsächliche Geschwindigkeit, hinzugefügt wird, sondern hier mehr Schaden für den Gegenstand mehr Acts. Und dann werden wir den ganzen Unterstrich WHO haben und dann auch hier ein Loch unterstreichen. Dies ist der Modus alle Item. Wieder einmal bin ich eigentlich nicht, es sei denn natürlich Nullen oder ich bin mir nicht hundertprozentig sicher warum. Einige von ihnen benötigen Sie das Modus-Element und einige von ihnen nicht. Es scheint sehr inkonsistent zu sein, aber es ist was es ist. Dies ist ein Schaufelartikel mit dem Namen oder einer Katkoschaufel. Und natürlich auch hier oder eine Telekommunikationsschaufel. Sehr wichtig, dass Sie hier überall die Namen ändern, seien Sie sich dessen bewusst. Und dann das Schwert hier. Und nicht zuletzt kommt das Orakel Schwert. Und hier ist das ein Sortierelement. Und vielleicht ist dieser Angriffsschaden ein bisschen mehr. Und die Geschwindigkeit ist auch drei, das wird gut sein. Jetzt sind die Artikel ordnungsgemäß registriert, aber jetzt brauchen wir natürlich die JSON-Dateien, die eine winzige Sache haben, die sich bei ihnen unterscheidet, aber jetzt sollte es nicht zu verrückt sein. Lassen Sie uns also die Modelldateien kopieren. Und insgesamt ist das alles ziemlich Standard. Das einzige, worum Sie sich kümmern müssen, und das ist hier sehr wichtig, ist, dass der Elternteil tatsächlich Item Slash Handheld ist. Und der Grund dafür ist, dass Sie einen 3D-Look erhalten , wenn Sie in einer dritten Person sind. Wenn du also das Schwert in der Hand hast und jemand anderes es auf einem Server anschaut, dann sieht es natürlich so aus, als wäre es 3D. Das ist es, was du dort brauchst, das ist hier sehr wichtig. Und dann lasst uns auch zur Unterstrich uns JSON-Datei gehen. Und ich werde hier nur noch einmal die Übersetzungen kopieren , natürlich alles, was Ihnen im GitHub Repository zur Verfügung steht oder auch eine Einzelperson passt sich an. Gleiche natürlich mit den Texturen hier. Das sind also die fünf Artikeltexturen, die wir benötigen werden. Wirkt insgesamt, Das Schwein wirkt, die Schaufel und das Schwert. Lassen Sie uns diese einfach vor über einem Jahr kopieren. Und das sollte so ziemlich alles sein, was wir tun müssen. Es gibt tatsächlich noch eine Sache , die sehr wichtig ist hinzuzufügen, und das werden die Tool-Tags sein. Unter Daten erstellen wir also ein neues Verzeichnis namens Hambrick. Und dann erstellen wir dort ein neues Verzeichnis namens Tags. Und dann erstellen wir dort neue Verzeichnis-Port-Elemente. Und dann brauchen wir grundsätzlich Zugang zu Jason. Und lassen Sie uns das einfach auf diese angrenzende Gamete-große Achse kopieren . Und wir werden nur ein Jahr kopieren. Wir werden das in einem Moment ausfüllen. Wir haben diese große Achse. Das werden Schaufeln sein. Und dann werden wir OS haben und dann sortieren. An dieser Stelle in 118 glaube ich, dass diese nicht mehr unbedingt erforderlich oder jemals erforderlich sind . Ich glaube, dass es immer noch eine kluge Idee ist, es hinzuzufügen. Fügen Sie im Grunde nur die bestimmte Achse, Schaufeln und all das hinzu. Mit diesen Markierungen. Es gibt wirklich keinen Grund , es am Ende des Tages nicht zu tun. Dies ist ein ziemlich einfacher Prozess. Sobald Sie es getan haben, ist ein einziges Ihrer beiden Materialien, als es für die anderen Materialien hinzuzufügen Ihrer beiden Materialien, als es für die anderen Materialien hinzuzufügen, ziemlich auch nur ein sehr einfacher Prozess und es wird dringend empfohlen, nur diese hinzuzufügen. Also im Stoff, Namensraum, Tags, Items und dann im Grunde genommen auf Löcher zugreifen, Achsen, Schaufeln und Sortierungen wählen. Das ist also eine sehr kluge Idee, das im Grunde zu tun und dort hinzuzufügen. Aber das ist so ziemlich alles, was wir tun müssen. Also mal sehen, ob es funktioniert. Oder Francis zurück und Mikrofon. Wie Sie sehen können, wurden alle Tools dem Spiel hinzugefügt. Aber mal sehen, das funktioniert alles, also ist das sehr gut. Mal sehen, ob ich damit überhaupt mit der rechten Maustaste klicken kann. Und das kann ich tatsächlich. Das ist also auch hier ein großartiges Zeichen. Und überspringe das auch. Das funktioniert auch alles. Ich kann damit auch mit der rechten Maustaste klicken, ich gehe davon aus, dass ich es natürlich kann. Und dann haben wir eigentlich kein Holz raus. Man schaut sich das an, so schnell würde es erscheinen. Ich klicke mit der rechten Maustaste darauf und ich kann es auch richtig abbauen. Also sollte alles hier einwandfrei funktionieren. Und alles war erfolgreich. Das meine ich übrigens mit dem Handheld. Damit es im Grunde so aussieht, als würdest du das Werkzeug tatsächlich in der Hand halten das Werkzeug tatsächlich in der Hand , anstatt den Gegenstand nur so zu haben. Und deshalb brauchen Sie den Handheld-Elternteil oder einen Bot, der bereits für diese Vorlesung hier wäre . Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 59. (Tools) Erstellen eines benutzerdefinierten Multi-Tools (Paxel): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir dem Spiel einen benutzerdefinierten Paxil-Gegenstand hinzufügen. Das ist natürlich etwas, das völlig benutzerdefiniert ist und tatsächlich nur ein bisschen zusätzliche Arbeit erfordert, aber es ist eigentlich ziemlich einfach, alles in Betracht gezogen. Was wir also tun werden, ist, dass wir eine neue Klasse in unserem benutzerdefinierten Artikelpaket namens Mod Packs oder Item erstellen. Und das wird sich tatsächlich ausdehnen, weil es natürlich kein Paxil-Gegenstand gibt. Dies wird den Gegenstand des Mining-Tools erweitern. Und wir werden einfach den Mauszeiger über diesen Create-Konstruktor bewegen, der super passt. Und wir werden das öffentlich machen, wir werden hier nicht die effektiven Blöcke brauchen, der Parameter und wir werden auch entscheiden, den Werkzeugmaterialparameter zu nehmen den Werkzeugmaterialparameter und ihn nach vorne zu verschieben hier. Und dann die Wirkung von Blöcken, oder? Wenn wir zum Beispiel hier Strg H drücken und uns zum Beispiel den Spitzhacke ansehen, können Sie sehen, uns zum Beispiel den Spitzhacke ansehen, können Sie sehen, dass dies die abbaubaren Block-Tags der Spitzhacke enthält, was genau das ist, was wir waren genau hier, oder? Also haben wir im Grunde unsere Blöcke hinzugefügt, um dies zu beenden. Jetzt, Paxil, wollten wir in der Lage sein, bei Travel Acts effektiv zu sein und X-Blöcke auszuwählen. Wie würden wir das machen? Nun, wir werden ein benutzerdefiniertes Tag erstellen. In unserer Modellsteuerklasse werden wir also hier oben ein neues Tag erstellen . Das wird also eigentlich eine eigene Steuer sein. Ein normales erstellt also ein Tag hier. Und das wird der Paxil-Unterstrich abbaubar sein. Und dann packt hier tatsächlich abbaubar, Paxil, Paxil. Und dann wird dieses eigentliche Tag genau hier kalt. Wir werden also moderate Tags sagen, Punktblöcke, nicht Paxil Unterkiefer. Und jetzt können wir diese Klasse grundsätzlich benutzen und es sollte völlig gut funktionieren. müssen wir natürlich immer noch zu unseren MC-Kurs-Tags hinzufügen . also in unserem Ordner „Blöcke“ im Ordner „Tanks“ rechten Maustaste auf ein neues Verzeichnis namens mineable. Dann drinnen klicken Sie mit der rechten Maustaste auf neue Datei, Paxil dark trace. Lassen Sie mich das einfach schnell hier drüben kopieren. Also von der Pick X1 und dann wird das sehr interessant sein , weil wir hier sogar verschiedene Tags einsetzen können , also müssen wir nicht alles auflisten also müssen wir nicht alles auflisten, was in den abbaubaren Tags enthalten ist. Oder wir können es einfach tun, dass wir Hashtag sagen können. Und das bedeutet, dass dies tatsächlich ein anderes Tag ist, das wir hier einsetzen möchten. Dann sagen wir Minecraft, minable, lash x. Und das, kopiere das einfach und sag danke und kaufe ein. Was das Packungs-Element nicht haben wird , ist die Rechtsklickfunktionalität. Das ist jedoch etwas, wenn du das wirklich willst, dass er sich natürlich auch hinzufügen könnte . verrückt sollte es nicht sein. Im Grunde sehen Sie sich den Schaufelartikel hier an, sehen Sie, dass es hier ein paar Sachen gibt. Und auch der Gegenstand, es gibt einige Dinge , die nicht zu verrückt sind. Wir werden jedoch dabei bleiben. Vorerst. Wir werden nur über das Orakel kommt Schwert kopieren und wir werden es in das Orakel komm Paxil umbenennen. Dann auch hier auch hier. Paxil, der Schaden und die Geschwindigkeit werden nur ein wenig reduziert. Und dann wird das ein Mod Packs-Gegenstand sein. Wie Sie sehen können, funktioniert alles. Sehr wichtig ist , dass Sie die Parameter hier so ändern , dass sie genau so sind, dann sollte es völlig gut funktionieren. Und dann brauchen wir nur die JSON-Datei, auch eine Übersetzung. Lassen Sie uns also zuerst die Übersetzung machen. Das wird sehr einfach sein. Da gehst du. So stehen Ihnen natürlich auch die Übersetzung und alle Dateien zur Verfügung, individuelle Interessen oder das GitHub-Repository. Und lassen Sie uns den kompakten Boden des Orakels rüberholen. Und die Textur auch. Dann haben wir so ziemlich alles, was wir brauchen. Also sie vor, jetzt wurde alles hinzugefügt 0. Mal sehen, ob es funktioniert. Oder ich habe das wieder in Minecraft gefunden und wie Sie sehen können, ist es da. Der Paxil wurde dem Spiel hinzugefügt und es sieht nicht gut aus. So können wir hier grundsätzlich sehen, ich kann das leicht abbauen und das kann ich auch leicht abbauen. Und wir haben noch etwas Stimmung, und das kann ich auch leicht abbauen. Jetzt, wieder einmal mit der rechten Maustaste klickend, arbeitet er eigentlich weder für den Weg noch für das Abziehen des Holzes. Wenn du das wirklich willst, dann sollte das eigentlich nicht zu verrückt sein, um es hinzuzufügen. Wenn Sie etwas Java-Wissen haben, bin ich mir sicher, dass Sie es schaffen werden. Und wenn es wirklich sehr gefragt ist, füge ich vielleicht auch eine Folgevorlesung hinzu, ob es tatsächlich so einfach sein kann, dem Spiel einen Paxil-Gegenstand hinzuzufügen . Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns allerdings in der nächsten Vorlesung. Ja. 60. (Tools) Weapons die Effekte anwenden: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie einer Entität einen Effekt hinzufügen können , wenn Sie ihn mit einem bestimmten Element treffen. Und das ist eine sehr wortreue Art zu sagen, dass Sie einer Entität einen Fusionseffekt hinzufügen werden. Und die Art und Weise, wie wir das machen werden, ist, dass wir hier eine neue Klasse schaffen werden. Und das wird der Mod-Lowing-gespeicherte Gegenstand sein. Als Beispiel hier werden wir nur die Sortierelementklasse erweitern. Ich werde nur den Mauszeiger über dieses Erstellen bewegen, Konstruktor passt super. Und dann können wir alles hier drin lassen. Und genau wie bei einem normalen Gegenstand gibt es Methoden zum Überschreiben, oder? Also kann ich eine Überschreibung setzen und man konnte sehen, dass er auf Block war, benutze als Glitzern einen Stift-Werkzeugspitze. Es gibt eine Menge Sachen, die ich überschreiben kann , und es gibt keine Sorgen. Und es gibt eine bestimmte Methode, die wir überschreiben werden , und die ist cool wie die Post-Hit-Methode, die aufgerufen wird, nachdem wir einen Feind getroffen haben oder besser gesagt nachdem der Schaden hinzugefügt wurde zu einem Feind. Und was wir tun können, ist, dass der Zielpunktstatus neue Statuseffektinstanz beeinflusst. Nehmen wir an, der Status beeinflusst diese Langsamkeit. Sagen wir vier Sekunden auf Stufe zwei. Und dann geben wir auch den Angreifer weiter Das wird im Grunde die Quelle sein, weil wir der Angreifer sind und das Ziel natürlich das ist, was wie die Entität getroffen wird, die es ist hier getroffen zu werden. Und jetzt können wir einfach zur More Items Klasse gehen und dies einfach hier in das verlangsamende Sortierelement des MOD ändern. Zum Beispiel müssen Sie dies nicht unbedingt tun. Sie können auch einen neuen Gegenstand herstellen, aber wir werden nur die Kalziumquelle in diese umwandeln . Und ich meine, das ist so ziemlich genau das. Das ist alles, was wir tun müssen. Wir müssen die Betriebssystem-Treff-Methode überschreiben und dann im Grunde diese, den Statuseffekt, dem Ziel hinzufügen . Und so einfach ist es, einen Effekt auf Treffer zu erzielen. Also nur um der Vollendung willen, Mal sehen, ob es in Minecraft funktioniert oder schließt. Also mal sehen, ob ich ein Schaf getroffen habe. Da gehst du. Das Schaf, das tatsächlich versteckt war , hat jetzt Sloan wie es angewendet wurde. Und derjenige, der im Grunde im Kreuzfeuer gefangen wurde , hat es tatsächlich nicht angewendet, weil es nur auf die direkte Entität angewendet wird , die Sie treffen, die einen Fisch einschließen würde. Ich glaube, dass sie wahrscheinlich nach 100 sterben würden ja. Slt sie werden sterben. Aber du hast tatsächlich gesehen, dass es auch die Langsamkeit gab. Obwohl. Das ist ziemlich cool, oder? Und das ist es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und er erfährt von dem Neuen. Wir sehen uns in der nächsten Vorlesung. Also ja. 61. (Armor) Ein neues Rüstungsset: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Rüstung hinzufügen. Dies ist eine Übung, die dem Hinzufügen der Werkzeuge zu Minecraft sehr, sehr ähnlich sein wird Hinzufügen der Werkzeuge zu Minecraft sehr, sehr ähnlich da wir in diesem Fall anstelle eines Werkzeugmaterials ein Rüstungsmaterial benötigen in diesem Fall anstelle eines Werkzeugmaterials ein Rüstungsmaterial . Das wird das erste sein, was wir anstelle des Artikelpakets tun werden. Klicken Sie mit der rechten Maustaste auf eine neue Java-Klasse namens Mod, Mod-Rüstungsmaterialien eine 0. Und das wird genau hier die Schnittstelle für Rüstungsmaterial implementieren . Und noch einmal werden wir nicht den Mauszeiger über die Methode bewegen und implementieren, aber wir klicken mit der mittleren Maustaste darauf oder klicken Sie einfach darauf und drücken Sie Strg H, oder klicken Sie einfach darauf und drücken Sie Strg H um in den Arm zu gelangen Materialien einer anderen Klasse. Und dann werden wir hier noch einmal ganz unten auswählen. Halten Sie dann die Umschalttaste gedrückt und klicken Sie ganz oben, und dann steuern Sie einfach C und Control V, um sie einzufügen. Und das wird es sein. Das einzige, was wir hier ändern müssen, ist die Klasse zu einer Aufzählung. Und dann nehmen wir den Namen dieser Klasse an. Und es hat es auch hier geändert, damit der Konstruktor tatsächlich richtig funktioniert. Und wir werden das nur ein bisschen anders formatieren mit den Parametern hier. Und dann wird das gut werden. Sie können dies auch ein bisschen anders formatieren , damit wir dort geschriebene Wörter lesen können. Und hier. Wieder einmal werden wir einfach alles löschen außer dem Bügeleisen genau hier. Und wir werden das natürlich das ORE-Kalzium nennen. Und dann der Name auch Malcolm. Und dann können wir noch einmal damit ein bisschen herumspielen. Wir können natürlich die Nullwerte genau hier sehen . Das ist also die allgemeine Idee. Der Haltbarkeitsmultiplikator sollte ziemlich selbsterklärend sein. Es ist nur der Multiplikator für die Haltbarkeit. So können Sie zum Beispiel sehen, dass die Kette 15 ist, Eisen 15 ist, Diamant 33, insgesamt 25 und 37. Also denke ich, dass das irgendwie eine 18 für jedes Kalzium gut sein wird. Dann ist dies hier ein sehr interessantes Int-Array. Dies sind die Schutzbeträge für jedes Rüstungsstück. Jedes Rüstungsstück hat also eine andere Menge , die Sie beschützt. Und das geht übrigens von unten nach oben. Das ist sehr wichtig. Aber das sind Stiefel, Leggings, Brustplatte. Aber das ist sehr wichtig. Also könnten wir zum Beispiel so etwas wie drei sagen, wir werden bei der Fünf-Jahres-7 bleiben und wem geht es tatsächlich gut , damit wir es nur ein bisschen anders machen als die anderen. Zum Beispiel ist Goal auch ein bisschen ein Ausreißer. So können Sie sich das natürlich vorstellen, wie Sie es wollen in der Agenda-Fähigkeit ist, wie unveränderlich das ist. Ich werde das bis zu D5 ankurbeln, was sogar mehr als Gold ist. Weil, weißt du, oder ein Kalzium, Es ist eine sehr Fantasie wie oder so denke ich, dass das Sinn ergibt. Und dann das Sound-Event, wir werden hier tatsächlich die Gold-Ausrüstung benutzen. Also Artikel Rüstung, Gold genau hier. Ist das in meinem Kopf etwas sinnvoller, werden wir die Zähigkeit beibehalten und den BEC-Widerstand gleich schlagen. Sie können dies einfach ändern und dann fügen Sie Ihrer Rüstung Zähigkeit hinzu und wählen keinen Widerstand für Ihre Rüstung, die einfach funktionieren sollte und Sie nichts anderes tun müssen. Und dann wollen wir hier natürlich, anstatt all das hier zu haben, anstatt all das hier zu haben, nur mehr items.org, Kalziumbarren. Und wir werden es nur ein bisschen einfacher zu lesen machen . Keine Sorge hier. Also machen wir das einfach. Und dann keine Rückkehr. Also los gehst du. Und jetzt sieht es sehr nett aus. Und wenn Sie mehrere Rüstungsmaterialien haben möchten, müssen diese natürlich wenn Sie mehrere Rüstungsmaterialien haben möchten, durch Kommas getrennt werden. Und dann natürlich auch anders benannt und enden dann mit einer Semikolonbreite. Der letzte, das ist nur eine allgemeine Idee hier. Und wenn wir uns das nur kurz ansehen, werden Sie sehen, dass wir dieses Untersuchungsjahr haben , die Basishaltbarkeit. Dies ist die Grundhaltbarkeit jedes der verschiedenen Rüstungsteile. Und dann wird dies mit dem Haltbarkeitsmultiplikator multipliziert . Das siehst du genau hier. Wir haben also den Haltbarkeitsmultiplikator hier. Und wenn Sie die Haltbarkeit erhalten, erhalten Sie nur die Haltbarkeit der Basis, basierend auf dem Schlitz und dann mal mit dem Haltbarkeitsmultiplikator. Das ist die allgemeine Idee hier. Diese Zahlen könntest du natürlich auch optimieren, wenn du es wirklich wolltest. Wir werden vorerst dabei bleiben. Das wird vollkommen in Ordnung sein. Im Moment die eigentliche Klasse Ihr Ehemann eingerichtet hat, damit wir zur Klasse mehr Gegenstände wechseln können und jetzt im Grunde genommen unsere Rüstung erstellen können. Also werden wir ein Orakel zuerst dazu bringen, Element zu kommen. Und dann auch hier oder ein Kalziumhelm sind sie natürlich schon her. Und das wird ein Rüstungsgegenstand sein. Und du wirst sehen, dass der erste Slot hier der Mod Armor materials.org Kalzium sein wird. Und dann hat es eigentlich nur drei Parameter. Der zweite ist der Punktkopf des Gerätesteckplatzes, und die Einstellungen hier sind in Ordnung. Kopieren wir das also viermal. Und dann werden wir das, eigentlich das Schulschachschild haben . Diese Platte und das ist Ihr Ausrüstungsschlitz Truhe. Sehr wichtig, dass wir das auch ändern. Andernfalls könnten wir das natürlich dem falschen Slot hinzufügen, was wir nicht wollen. Wir werden auch hier Leggings machen. Und wieder hier Beine. Vor und dann nicht zuletzt sind die Stiefel. Und dann auch die Stiefel hier. Und das sind natürlich die Füße. Sie gehst du. Und jetzt wurden alle vier Rüstungsstücke korrekt mit unserem mehr Material an Kalzium registriert . Und jetzt müssen wir nur noch das Artikelmodell hinzufügen, Jason's und natürlich hier die Übersetzung sehr wichtig. Da ist es. Dies steht Ihnen natürlich auch alles im GitHub-Repository zur Verfügung oder auch eine einzelne Anpassung, sodass Sie nicht alles eingeben müssen. Sie können das auch tatsächlich kopieren. Wieder einmal können Sie die meisten Dinge, wenn Sie es einmal gemacht haben, eine Menge davon auch in Ihr eigenes Projekt kopieren , ich empfehle dringend, dies zu tun. Die meisten dieser Artikelmodelle werden sich sehr, sehr ähnlich sein. Also zwischen diesen sind sie alle zu einer Steuer orange , die buchstäblich alles ist, was es dazu gibt. Wir werden auch die Texturdateien hinzufügen. Da gehst du. Und dann noch eine Sache, die sehr wichtig ist, ist, dass wir tatsächlich das 3D-Look der Textur benötigen. Und das geschieht tatsächlich im Minecraft-Ordner. Wir müssen einen neuen Ordner in unserem Assets-Ordner erstellen einen neuen Ordner in unserem Assets-Ordner rechten Maustaste auf ein neues Verzeichnis für das Minecraft. So kleines Spiel, vielleicht hast du schon mal davon gehört. Das habe ich schon getan , was auch immer fallen lassen. Rechtsklicken Sie auf die Texturen des Mikrowell Und dann drinnen klicken Sie wieder mit der rechten Maustaste auf neues Verzeichnis namens models. Und dann noch einmal mit der rechten Maustaste auf das Verzeichnis namens armor. Dies wird nur mit einem OH geschrieben, also ist es die amerikanische Rechtschreibung. Und dann werden wir hier zwei Akten einlegen, aber das sind die Rüstungsakten. So sehen wir die eigentliche Rüstung in 3D aus und wir sollten uns das ansehen können , wenn wir zu den externen Bibliotheken gehen, um hier in die Assets, Minecraft, Texturen in den Modellen zu gehen , Rüstung. Und dann sieht man, wie es so aussieht. Dies ist also die Schicht für Eisen, zum Beispiel Schicht eins und Schicht zwei. Sie könnten diese übrigens auch kopieren, ein bisschen gelandet sind und dann auch diese haben. Was für diese sehr wichtig ist, ist, dass der Name hier genau das Richtige sein muss. Das ist sehr wichtig. Wenn Sie also den Namen haben , der hier in Ihren Rüstungsmaterialien angegeben ist , muss dieser genau mit diesem Namen übereinstimmen. Unterstrichenebene unterstrichen einen und dann die andere, unterstrichen Ebene zwei, sehr wichtig, das kann keine Leerzeichen dazwischen sein. Es kann keine Klammern 1 weil Sie es kopiert haben und wir den gleichen Namen haben und nichts davon. Genau das muss es unter dem Minecraft sein, Texturen, Modelle, Rüstungsverzeichnis, sehr wichtig. Stellen Sie sicher, dass dies korrekt ist. Aber nachdem Sie sichergestellt haben , dass alles in Ordnung ist, Mal sehen, ob es funktioniert oder sich in erstklassigen Backend-Microgreens befindet. Du kannst sehen, dass die Rüstung hinzugefügt wurde und sie sieht toll aus. Also lasst uns einfach sehen, wie es aussieht, wenn ich es anziehe. Und los geht's, bereit zum Kampf zu gehen. Und so einfach ist es eigentlich, Minecraft die Rüstung hinzuzufügen , wo auch immer es für diese Vorlesung genau hier sein wird . Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Alles natürlich steht Ihnen im GitHub-Repository oder einer Einzelperson nur einschließlich der Texturen zur Verfügung, bitte beachten Sie übrigens die Gläubigerdatei, Sie sehen unter welcher Lizenz bzw. Texturen wurden verteilt. Vielen Dank, aber wie auch immer der Fall sein mag, wir sehen uns in der nächsten Vorlesung. Also ja. 62. (Armor) Einen vollständigen Effekt von Armor erstellen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie einen vollständigen Rüstungseffekt oder Ihre Map implementieren können . Was bedeutet das, dass der volle Rüstungseffekt im Grunde genommen bedeutet, dass Sie einen Statuseffekt erhalten, der auf Ihren Charakter angewendet wird einen Statuseffekt erhalten, der auf Ihren Charakter angewendet wenn Sie einen vollen Anzug aus einem bestimmten Rüstungsmaterial tragen. Und so wie dies funktioniert, ist im benutzerdefinierten Paket genau hier. Ich klicke mit der rechten Maustaste auf eine neue Java-Klasse. Und das wird Mod-Rüstungsobjekt genannt. Und dies wird den Rüstungsgegenstand plus verlängern. Und ich werde tatsächlich den gesamten Kurs kopieren . Dies steht Ihnen wieder im GitHub-Repository oder im Gerechten zur Verfügung. Und wir werden das durchstehen, würde ich alles erklären, während wir das im Grunde durchmachen. Dann haben wir einfach die mehr Rüstungsmaterialien, Ihre.org, Kalzium sie vor, und das sollte funktionieren, oder? Was passiert hier? Nun, das erste, was Sie sehen können, ist, dass wir ein Feld, ein privates statisches Endfeld oder das Material haben , das sich auf die Map auswirkt. Jetzt ordnet diese Map ein Rüstungsmaterial einem bestimmten Statuseffekt zu. Okay, das ist fair genug. Das bedeutet also, dass dieser Effekt auf Sie angewendet wird, wenn Sie diesen bestimmten Rüstungssatz haben dieser Effekt auf Sie angewendet wird, wenn Sie diesen bestimmten Rüstungssatz , der dieses Material enthält . Der Grund, warum wir eine Statuseffektinstanz verwenden , liegt darin, dass die Instanz oder auch die Dauer und den Verstärker speichert. Und das können wir grundsätzlich individuell ändern. Diese spezielle Instanz werden wir eigentlich nie verwenden. Hier unten erstellen wir eine neue Instanz mit den gleichen Werten dieser Instanz, da sie sonst nicht wirklich funktionieren würde. Denn sobald eine Instanz hier aufgebraucht ist, können Sie sie nicht mehr verwenden. Aber das ist nur für die Leute, die schon gesprungen wären und so gewesen wären, warte, das funktioniert nicht. Das ist vollkommen in Ordnung. Es wird tatsächlich funktionieren. Sie werden sehen, und dieses Jahr hat natürlich nur ein Rüstungselement drin, aber eigentlich sehr einfach , einen weiteren hinzuzufügen. Wir werden diesen Fuß einfach hier nehmen und ihn einfach noch einmal einlegen. Sie können also sehen, dass es so einfach ist. Es Statuseffekt-Instanz Ich empfehle dringend, hier immer über 200 oder die Tick-Dauer zu gehen . Denn wenn Sie bei zehn Sekunden sind Ihr Satzeffekt zu erschöpfen beginnt, wird er anfangen zu blinken. Und das bedeutet im Grunde, weil dies jedes Mal immer und immer wieder angewendet wird , dass es ständig in der oberen rechten Ecke blinkt und das sehr nervig sein kann. Es gibt auch einen Punkt zu sagen, vielleicht sollte jeder Effekt oder dieser besondere Effekt weggenommen werden, sobald die Rüstung jeder Effekt oder dieser besondere Effekt abgezogen wurde. Es gibt einen Sinn, das zu tun. In diesem Beispiel werden wir das nicht tun. Als ob es in diesem Beispiel eine kleine Einschränkung gibt, aber ich bin mir sicher, dass das gut werden wird. Was passiert dann? Nun, wir überschreiben die Inventar-Tick-Methode, die jedes Häkchen genannt wird. Wenn sich dieser bestimmte Artikel oder einer dieser Artikel im Inventar befindet, prüfen wir zunächst, ob wir auf dem Server sind oder nicht , weil wir dafür auf dem Server sein wollten. Und wir stellen sicher , dass jede Entität das in seinem Inventar hat, tatsächlich ein Spieler ist. Das ist der Fall, dann können wir sicher sein, dass wir die Entität an einen Spieler werfen können . Und dann werden wir nachsehen, hey, hat dieser Spieler eine volle Rüstung an? Dies ist also eine Methode , die ich genau hier gemacht habe , wo wir im Grunde nur alle verschiedenen Rüstungsstapel bekommen alle verschiedenen Rüstungsstapel und sicherstellen, dass keiner von ihnen leer ist. Also im Grunde gesagt: Hey, wenn der Spieler eine volle Rüstung hat, in diesem Moment suchen wir in diesem Moment nicht nach dem Material, sondern nur, dass jeder der Rüstungsschlitze tatsächlich gefüllt ist. Und wenn das der Fall ist, werden wir mit der Methode „ Rüstungseffekte bewerten“ fortfahren . Und im Inneren von hier gehen wir im Grunde das gesamte Material durch, um die Map zu beeinflussen und erhalten im Grunde nur Instanz des Rüstungsmaterial-Entitätsstatus-Effekts , die sich innerhalb der Map befindet. Und dann werden wir prüfen, hey, ob der Spieler tatsächlich den Rüstungseffekt hat, das heißt, jetzt, nach dem wir im Grunde suchen. Es gibt natürlich eine for-Schleife , die durchlaufen wird. Wenn wir ungefähr acht von ihnen hatten, dann werden wir es durchmachen und es wird so sein, wie: Hey, hat der Spieler dieses Rüstungsmaterial Besitzer dieses Material an, haben sie hast du dieses Rüstungsmaterial? Und nur wenn das Material für jeden Helmbrustpanzer, der in Boots zurückbleibt, tatsächlich übereinstimmt. Erst dann werden wir den Statuseffekt für die jeweilige Rüstung genau hier hinzufügen ? Und nur damit wir es haben, suchen wir tatsächlich danach. Auch dies ist hier nicht unbedingt notwendig. Was jedoch unbedingt erforderlich ist , um dies zu empfehlen, ist der Boolean Spielereffekt , den ich im Grunde genau hier einsetze. Und die Idee hier ist , dass dies grundsätzlich nur hinzugefügt wird, wenn der Spieler nicht wieder den Effekt hat. Andernfalls würde dies jedes Häkchen 20 Mal pro Sekunde hinzugefügt . Und das alles 20 Mal pro Sekunde zu durchlaufen , könnte das Spiel tatsächlich erheblich verlangsamen . Daher ist es eine sehr kluge Idee, wer das im Grunde nicht tut und das hier absolut stoppt. Fügen Sie den Effekt auch mehrmals hinzu. Es ist einfach keine gute Idee. Und Sie können hier sehen, dass wir tatsächlich eine neue Effektinstanz mit dem Effekttyp, der Dauer und dem Verstärker der tatsächlichen Statuseffektinstanz erstellen eine neue Effektinstanz mit dem Effekttyp, der Dauer und dem Verstärker der tatsächlichen Statuseffektinstanz , die wir hier definiert haben. Das sage ich also. Wir werden diese Instanz eigentlich niemals an und für sich verwenden . Wir bekommen im Grunde nur den Dauerverstärker und den Effekt dort. Und dann gibt es etwas, das möglich ist , das Sie nicht unbedingt implementieren müssen. Und das ist hier. Ich habe es, so dass es eine 40-prozentige Chance gibt , die Rüstung jedes Mal zu beschädigen, wenn ein Effekt im Grunde genommen angewendet wird. Jetzt musst du das nicht tun. Also kann ich auch alle drei dieser Zeilen einfach auskommentieren und dann wird es uns auch gut gehen. Ich wollte das auch nur hinzufügen, nur wenn sich einige Leute das wundern, als sie können. Woher haben wir diesen Code her? Nun, das meiste davon ist so ziemlich nur Java-Wissen mit ein bisschen modernem Wissen. Und das ist etwas , das Sie tun können , wenn Sie Java und Modellierung intuitiver verstanden haben und dann beide kombinieren und dann etwas Benutzerdefiniertes wie dieses erstellen. Ich würde es nicht ganz einfach sagen, aber ohne zu viel Ärger. Das läuft also wirklich darauf hinaus, Java zu kennen. Das ist also ein weiterer Appell für Sie, dass wir, wissen Sie, besonders in den kommenden Vorträgen, besonders wenn wir grundsätzlich vom Bereich Werkzeuge und Rüstungen zu den Zwischenkonzepten übergehen , wissen Sie, besonders in den kommenden Vorträgen, besonders wenn wir grundsätzlich vom Bereich Werkzeuge und Rüstungen zu den Zwischenkonzepten übergehen, wird wirklich mit dem inhärenten Verständnis aufgreifen, das Sie für Java benötigen werden. Aber lasst uns nicht zu verrückt werden mit dieser Präambel hier. Lasst uns diese beiden Importe tatsächlich loswerden . Und was ich dann tun werde, ist, dass ich zur Klasse für mehr Gegenstände gehe . Und normalerweise mache ich nur den Helm, den Modus-Rüstungsgegenstand. Sie müssen nicht alles in mehr Rüstungsgegenstand in einem Mod-Ehren-Material-Set stecken. Du musst nur einen setzen. Ich persönlich wähle den Helm weil ich denke, dass der Helm am sinnvollsten ist, um im Grunde auf den Rest der Brust aufzupassen. Aber es mag auch sinnvoll sein, aber was auch immer Sie bevorzugen, aber nur eine für jedes Materialset. Sehr wichtig, oder? Und das ist eigentlich alles, was wir tun müssen. Mal sehen, ob es funktioniert oder als Minecraft bezeichnet wird . Und wie Sie sehen können, habe ich schon den Dunstflug zu mir, weil ich natürlich die volle Rüstung trage. Und das ist ziemlich cool. Das ist also auch Haze, weil wir den Verstärker auf einen setzen. Lassen Sie mich einfach schnell den Helm aufstellen, damit wir sehen können , dass dies im Grunde genommen weg sein wird. Vor ihnen ist es weg. Und dieser Dunst, denn der Verstärker ist im Grunde ein, ein Additivverstärker, oder? Wenn ich also nichts drin hätte , wäre es Eile eins, Verstärker von eins, Phase zwei und ein Arbeitgeberfeuer der heutigen drei, ziemlich einfach. Und du siehst, obwohl ich den Rest hier habe, solange ich den Helm nicht anhabe, solange ich den Helm nicht anhabe, funktioniert es nicht und sobald ich ihn auf das Ego setze, passiert es natürlich, sobald ich den Rüstung aus, die Eile bleibt bestehen. Dies ist etwas , das Sie zum Beispiel hinzufügen könnten , wenn Sie möchten. Dies ist eine Funktionalität , die Sie tun könnten, oder? Eine schnelle Sache, die sehr wichtig ist. Dieses Ziel hier wird eigentlich nicht funktionieren, aber das ist eine weitere Einschränkung ist, dass dies natürlich nicht funktioniert, weil wir in diesem Moment kein MOD-Rüstungsmaterial drin haben . Das wird also eigentlich nicht funktionieren. Das funktioniert also vorerst nur mit Rüstungsmaterialien im benutzerdefinierten Modus, wer auch immer, vielleicht werde ich diese Klasse in Zukunft aktualisieren und dann könnte es auch diese Funktionalität haben . Wer weiß es, oder? Aber was auch immer der Fall sein mag, das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 63. (Armor) Erstellen einer benutzerdefinierten a: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir benutzerdefinierte Pferderüstungen hinzufügen , Minecraft haben. Jetzt ist eine benutzerdefinierte Pferderüstung eine sehr interessante Sache denn es gibt eine kleine Wendung , die wir im Hinterkopf behalten müssen. Lasst uns also die Klasse „ Mehr Items“ öffnen und lassen Sie uns einfach die Oracle-Gum-Stiefel kopieren. Und das wird umbenannt werden, um Cal come horse, unterstreicht Rüstung. Und dann das Gleiche im Namen hier oder unterstreicht Rüstung, und das ist ein Pferde-Rüstungsgegenstand. Jetzt nimmt dies auch drei Parameter an. Der erste ist der Bonus, also ist dies der arabische Bonus , den das Pferd erhält. Und die zweite ist eine Schnur. Das ist der Name der eigentlichen Pferderüstung, die wichtig sein wird, da dieser Name mit dem Namen der Datei übereinstimmen muss. Wenn wir also tatsächlich die mittlere Maustaste drücken, klicken Sie darauf. Sie können sehen, dass dies nach der Textur unter Texturen sucht Entity, Pferderüstungen, Unterstriche, Rüstungsunterstriche, Rüstungsunterstrich, unabhängig vom Namen, den wir hier als Parameter angegeben haben. Jetzt muss das noch einmal unter den Minecraft-Namespace gestellt werden , aber keine Sorge, wir werden das tun. Wir werden das in nur einem Moment sehen. Und wenn ich mit der mittleren Maustaste darauf klicke, rechts. Das ist also die allgemeine Idee hier. Und das ist so ziemlich alles , was Sie wirklich wissen müssen. Was also sehr wichtig ist, ist der Bonus hier. Nur damit Sie einige Vergleichswerte haben, das Eisen hat fünf Bonus, die Goldene Pferde-Rüstung hat sieben Bonus und die Diamant-Pferde-Rüstung hat 11 Brett mit 15. Die Calcium-Pferde-Rüstung ist eigentlich sehr, sehr stark. Aber natürlich können die Zahlen wieder auf beliebige Weise optimiert werden. Gehen wir zunächst in das E ein und unterstreichen uns die angrenzende Datei und fügen die Übersetzung hinzu. Da gehst du. Alle JSON-Dateien und all das stehen Ihnen natürlich auch im GitHub-Repository oder einzelnen Interessen zur Verfügung. Da wir das Elementmodell noch einmal kopieren werden, zeigt es natürlich einfach auf eine normale Textur im Texturordner. Also nichts verrücktes Jahr, das ist der eigentliche Gegenstand. Es wird im Inventar angezeigt. Und dann muss die 3D-Rüstung wieder in den Minecraft-Ordner gehen, aber überhaupt keine Sorgen. Im Texturen-Ordner erstellen wir einen neuen Ordner oder ein neues Verzeichnis mit dem Namen Entität. Und dann drin klicken Sie mit der rechten Maustaste auf neues Verzeichnis für Pferd. Im Inneren klicken Sie mit der rechten Maustaste auf ein neues Verzeichnis namens armor, noch einmal nur mit einem O, also die amerikanische Schreibweise. Und dann kopieren wir die Akte hier, oder es ist eine Unterstreichungsrüstung unter Schraube oder Kalzium. Wieder einmal muss der Name hier mit diesem Namen übereinstimmen, und dann wird er richtig angezeigt 0. Nun, mal sehen Für Arbeiten oder ich habe festgestellt, wie ein Mikrotrends sehen kann, wurde die Pferderüstung erfolgreich in das Spiel aufgenommen, wie es der Zufall wollte. Wir haben ein gezähmtes Pferd direkt neben uns. Also lasst uns sehen. Und da ist es, die Pferderüstung in ihrer ganzen Schönheit, das Orakel kommt Pferderüstung. Das ist also ziemlich genial, wenn ich es selbst sage. Rubber, das ist es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues, und wir sehen uns in der nächsten Vorlesung. Also ja. 64. (Armor) Hinzufügen einer benutzerdefinierten Verzauberung: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir uns ansehen, wie Sie benutzerdefinierte Verzauberungen hinzufügen können , wer Minecraft. Dafür gehen wir also in unser MC-Kurspaket ein. Rechtsklick auf ein neues Paket namens Verzauberung. Und da drin brauchen wir zwei verschiedene Klassen. Der erste wird die Modus-Verzauberungen sein. Und der zweite wird die Verzauberung des Blitzstürmers sein . Dies ist die eigentliche Verzauberung , die wir umsetzen werden. Und der andere besteht im Grunde darin , die Verzauberungen zu registrieren. Aber was wir tun werden, ist, dass wir dies hier um die Chen-Klasse erweitern , Rekonstruktor passt Supra. Und wir werden das in die Öffentlichkeit umwandeln. Und dann sehr wichtig , dass wir das Array genau hier ändern , die drei Punkte. Dies ermöglicht es uns einfach, am Ende mehrere Ausrüstungsschlitze einzugeben am Ende mehrere Ausrüstungsschlitze und sie werden dann im Grunde automatisch in Bereiche umgewandelt . Jetzt hat die Verzauberungsklasse tatsächlich einige Methoden, mit denen Sie jeden für uns überschreiben können Die Nummer eins ist vor allem die GetMax-Level-Methode, die sehr wichtig ist, weil wir muss tatsächlich wieder hierher zurückkehren. Die GetMax Level Methode gibt also zurück, wie viele Bücher generiert werden und wie viele Ebenen dieser Verzauberung existieren. Dies ist also sehr wichtig, um die Bücher übrigens zu überschreiben, Sie werden automatisch generiert, sodass Sie nichts dafür tun müssen. Diese Stufe bedeutet im Grunde, dass diese Stufe im Grunde definiert, wie viele generiert werden. Und was wird diese Verzauberung jetzt bewirken? Nun, wenn wir diese Verzauberung bei uns haben, an einer Waffe. Was wir dann tun werden, ist, dass wir einen Blitz spawnen, wenn es sich um einen Blitz spawnen, wenn es Blitze der Stufe 1 und 2 handelt, wenn es Level 2 ist. Die Methode zum Überschreiben dafür ist also die beschädigte Zielmethode. Und was wir zuerst sagen werden ist, dass wir sagen werden, wenn User Dot World Kunde ist, sehr wichtig hier mit einem Ausrufezeichen in der Front, dass wir auf dem Server sein wollten . Dann können wir Serverwelt sagen. Die Welt ist gleich der User-Punkt-Welt, die besetzt ist. Und normalerweise, wenn Sie für die Serverwelt abgeschlossen bestellen , dies normalerweise darauf hin, dass Sie das im Grunde auch haben, deutet dies normalerweise darauf hin, dass Sie das im Grunde auch haben, dass N bereits drin ist. Und dann können wir auch sagen Spieler-Entitätsschicht der Benutzerpunkt-Besetzung entspricht. erneut die Tabulatortaste, um sie automatisch zu vervollständigen, und setzen Sie dann die Spieler-Entität genau hier ein. Und dann ist das in Ordnung. Wir werden auch die Blockpfade erhalten, die Position entspricht dem Zielpunkt, blockierte Position oder Blogposts. Klicken wir darauf und drücken Alt und Enter, um es zu importieren. Und dann müssen wir das Level überprüfen. Sie können sehen, dass die Ebene hier als Parameter angegeben wird. Dies ist also das Niveau der eigentlichen Verzauberung. Und eine andere große Frage ist, wie spawnt man eine Aufhellung? Es ist eigentlich ziemlich einfach. Wir werden sagen, Punktblitze vom Typ Entity , die mit der Welt spawnen. Null hier und null für den Namen, den Spielerparameter, die Position, dann spawnen Grund, der Regel und wahr ausgelöst hat. Und das ist so ziemlich alles, was wir hier tun müssen , um eine Aufhellung zu erzeugen. Dies funktioniert übrigens für jeden Entitätstyp. Sie könnten diesen Blitz also grundsätzlich durch ein Schwein ersetzen , und es sollte in diesem Moment noch spawnen. Das wäre natürlich sehr interessant. Das wäre die Verzauberung des Schweinestürmers. Aber das werden wir jetzt natürlich umsetzen. Wir wollten den Blitzeinschlag oder die Verzauberung. Dann werden wir nur sagen, ob Level gleich zwei ist und wir werden nur auf Auskleidungen spawnen. Das ist also so ziemlich alles, was wir hier wirklich tun müssen. Und das ist im Grunde genommen die Verzauberungsklasse. Lasst uns nun zur modernen Champions-Klasse übergehen. Und drinnen von hier werden wir zwei Methoden haben , die wir definieren müssen. Einer von ihnen ist die öffentliche statische Leere, die als Registermodus Shetlands bezeichnet wird . Und dies wird später in der MC-Kurse-Mod-Klasse aufgerufen. Dies wird wieder einmal einfach die Druckzeile heraus die Mod-Verzauberungen, Mod-Verzauberungen registriert. Für MC-Kerne mod, Mod ID. Dann brauchen wir eine private statische Verzauberung, die sich mit einem String-Namen und einer Verzauberung in Shetland registrieren wird sich mit einem String-Namen und einer Verzauberung in Shetland registrieren . Und dies wird einfach die Registrierungsdaten zurückgeben, registrieren, Registry Dot Pentland mit einer neuen Kennung der MC-Kurs-Mod-ID, einen Namen. Und dann nach den ersten Klammern, wie in den Verzauberungen, Umfang und dem Ego, wird dies die Verzauberung registrieren. Dies ist sehr ähnlich wie wir es im Grunde in den More Items oder der Motorblöcke Klasse gemacht haben. Und dann machen wir die Verzauberungen. Dies ist also ein öffentlicher statischer Verzauberungs - oder Aufhellungsunterstrichen-Stürmer , der der Registermethode entspricht. Der Name hier ist eine aufhellende Unterstrich-Stürmer-Munition und dann ein neuer Blitzschlag oder Verzauberung. Also dieser hier. Und dann können wir in der Verzauberung diese Seltenheit, die ungewöhnlich ist, weitergeben . Zum Beispiel wird das Komma-Verzauberungsziel genau diese Waffe sein. Und dann wird der Ausrüstungsschlitz Haupthand sein. Und dann beenden Sie das und da ist es. Das ist also alles, was es dazu gibt. Eine der Ecken, die Ihnen natürlich im GitHub-Repository oder in einzelnen Anpassungen zur Verfügung stehen . Und das ist eigentlich die Verzauberung bereits gemacht. Wir müssen uns jetzt nur noch im MC-Kurs Multi-Class anrufen . Also genau hier noch mehr Verzauberungen , die moderne Sendungen registrieren. Das ist eigentlich sehr wichtig, wenn dies nicht hinzugefügt wird , es funktioniert nicht. Das ist sehr, sehr wichtig. Und dann gibt es noch eine Sache im Ohr und unterstreicht uns JSON-Datei. Wir werden hier auch ganz unten die Übersetzung hinzufügen . Das ist also Verzauberung und MC-Kurse Blitz unterstreichen Stryker. Und das ist natürlich ein Blitzbrecher, sehr wichtig. Wir brauchen hier nur eine dieser Übersetzungen. Sie könnten also sehen, dass dies und das für jede der Levels, wir müssen dies eigentlich nur einmal übersetzen. Und dann wird es für jedes Level der Verzauberungen übersetzt . Aber nachdem wir all das hinzugefügt haben , Mal sehen, ob es funktioniert. Oder sind wir Fans wieder in der Mikrofinanzierung, Sie können sehen, dass der Blitzeinschlag oder der Vorsitzende erfolgreich hinzugefügt wurde. Fügen wir es einfach dem Orakel oder hier hinzu. Eine für den ersten und dann für den zweiten. Richtig, also probieren wir es an diesen Schafen aus. Also lass uns sehen. Und da gehst du. Es hat tatsächlich funktioniert. Und lass uns das andere machen. Aber das wird im Grunde auf Blitze weitergehen. Es ist nicht allzu auffällig, aber es funktioniert. Du kannst sehen, dass du hineingehst und das andere machst, es schadet ein bisschen mehr. Aber zum Beispiel werden sie für die Schafe in fast einem Schlag sterben. So auffällt es also nicht. Nun, ja, die Behandlung funktioniert. Das ist also ziemlich cool, oder? Und das ist schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wenn er es täte, würde ich mich sehr über eine Bewertung von Ihnen freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 65. (Zwischenlagen) Blockstate: Oder ich begrüße zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns die Eigenschaften von Blockzuständen ansehen . Will Block State Properties sind etwas das wir bereits zuvor gesehen haben. Und das war in der Tür, der Treppe und all diesen Blockblockblöcken, nämlich in den JSON-Akten für die Blockzustände hier. Wenn wir uns zum Beispiel die Tür ansehen, waren dies hier die Blockzustands-Eigenschaften in. Jetzt schauen wir uns ein Beispiel an. Aber zuallererst werden wir ein bisschen von der Theorie durchgehen . Und dafür brechen wir aus den PowerPoint-Folien aus. Natürlich. Der erste Unterschied, den wir machen müssen, ist zwischen einem Block - und einem Blockstatus. Dies ist sehr wichtig, da Block tatsächlich eine Art Singleton-Muster ist. Das bedeutet also, dass in unserer Postfachklasse oder für Vanille in der Block-Klasse jedes Blockfeld einmal für jeden der Blöcke erstellt wird. Daher ist dies eine Art Singleton-Muster. Ihre Frage ergibt sich, wie wir zum Beispiel einen Block innerhalb der Welt retten? Nun, das machen wir mit Bloc-Staaten. Und dies sind im Grunde Fälle eines bestimmten Blocks innerhalb der Welt. Sie sagen beispielsweise die Blockposition, die Blockeigenschaft. Das wäre also das Verhalten, das wir in den Block, den wir erstellt haben, und auch in die Blockstatuseigenschaften übergehen Block, den wir erstellt haben, und . Aber das ist die Hauptsache, die wir uns in den folgenden Folien ansehen werden. Und die Idee ist, dass Blockstaaten im Grunde von der Welt gerettet werden und sie auch nur von der Welt verändert werden können. Und das geschieht beispielsweise, indem man den Weltpunkt-Punkt-Punkt-Punkt-Block-Status durchführt und dann einige Parameter übergibt . Gehen wir jetzt zur Idee des Blocks, beispielsweise Eigenschaften oder zum Speichern von Daten in Blöcken über. Nun ist eine Art zweite Überschrift hier nicht ganz richtig, aber es ist richtig genug. Also haben wir hier ein Beispiel für die öffentliche Klasse, Redstone oder Block. Und Sie können sehen, dass es eine boolesche Eigenschaft namens lit hat . Und dieses Jahr ist genau der Block, sagen wir Eigentum. Das definieren wir in der Blockklasse. Also könntest du zuerst so sein, das ist irgendwie komisch, oder? Dies ist jedoch eine spezifische Rendite hier. diesem Grund können wir nicht nur einen booleschen Wert innerhalb der Blockklasse verwenden . Existiert die Blockklasse nur einmal? Das boolesche Feld, wenn Sie dort nur ein boolesches Feld haben, würde es tatsächlich für jeden Blockstatus innerhalb der Welt für diesen Block geändert . Und natürlich ist das nicht ganz richtig, denn ob ein bestimmter Block oder ein Block innerhalb der Welt beleuchtet ist oder nicht , ist unabhängig von jedem anderen oder Block, außer wenn sie nebeneinander sind. Das ist eine ganz andere Sache. Sie können also sehen, dass wir die Methode append properties aufrufen müssen und diese grundsätzlich überschreiben und alle unsere Eigenschaften dem Builder direkt hier hinzufügen müssen. Und das macht dann im Grunde das ganze schwere Heben für uns. Die Immobilie hat immer einen Wert, der sehr wichtig ist. Es kann also nicht null sein. Block kann mehrere verschiedene Eigenschaften haben. Das haben wir zum Beispiel auch in der Tür gesehen. Dann hat die Blockstaateneigenschaft, mit der ich mich auf verschiedene Modelle innerhalb des Blocks bezogen habe, States Jason oder einen Block, wie der Treppenblock Jason bleibt oder wie wir auch die Tür Brock Situation gesehen haben . Und dann ist das der Unterschied hier. Wenn LET also falsch ist, dann sieht es so aus und ich habe angezündet ist wahr, dann sieht es so aus. Und wir ändern den Blockstatus. Nun, wir können einfach das nennen, naja, wir müssen hier einfach irgendwo die Weltvariable haben. Und dann setzen wir den Blockstatus an einer bestimmten Position mit dem neuen Staat. Und dann ist dieses Jahr nur eine Flagge, die im Grunde alle Nachbarn auf alle Arten benachrichtigt , dass sie für n. benachrichtigt werden müssen. Ja, das ist so ziemlich die Idee, dass wir eine Box ändern passiert auf der Welt, oder? Und das passiert auch auf dem Server. Das ist also auch sehr wichtig. Und wir übergeben die Position, dies ist die Position des tatsächlichen Blockstatus und Socket-Parameters ist der neue Status oder diese Blockposition. Und dann ist der dritte Parameter, wie gesagt, nur das verzögerte Verhalten, das im Grunde genommen die Nachbarn und so aktualisiert. Diese Präsentation und der Spickzettel stehen Ihnen natürlich auch zum Download zur Verfügung. Aber jetzt gehen wir zweimal zur Intelligenz und zur Druckverschiebung zurück und fangen an, einen Redstone oder Block einzutippen . Und wenn Sie das haben, können wir dieses Jahr und dann in den eigentlichen Block selbst gehen und Sie werden sehen , dass es so ziemlich genau hier ist, oder? Also öffentliche statische, endgültige boolesche Eigenschaft namens lit. Und das ist genau richtig. Und wenn wir hierher gehen, können wir sehen, dass die Welt in diesem Jahr Blockstaatspfade festgelegt hat und dann im Grunde genommen der Staat beleuchtet ist. Und jetzt wird wahr. Diese drei hier sind ziemlich genau das Gleiche, was wir über das Verhalten informieren, das wir gesehen haben. Du kannst entweder drei oder etwas anderes machen. Wir werden uns für unsere Zwecke keine Sorgen um das Aktualisierungsverhalten machen. 3, wir werden immer drei benutzen, oder? Daher empfehle ich dringend, einen Blick auf den Redstone oder die Klasse zu werfen, da dies wahrscheinlich eines der einfachsten Beispiele ist wahrscheinlich eines der einfachsten Beispiele , die man sich tatsächlich ansehen sollte. Aber vorerst werden wir jetzt tatsächlich unseren eigenen benutzerdefinierten Block erstellen. Also mit einem Kunden blockieren Staatseigentum. Und dafür gehen wir in unser benutzerdefiniertes Paket rechten Maustaste auf neue Java-Klasse. Und es wird der Oracle-com-Lampenblock sein, dass wir eine Lampe machen werden . Und das wird die Blockklasse erweitern. Natürlich meine ich, lassen Sie uns den Mauszeiger über create bewegen, Konstruktor passt super. Und dann werden wir ganz oben eine öffentliche statische endgültige boolesche Eigenschaft aus Nettomikrostatteigenschaft hinzufügen eine öffentliche statische endgültige boolesche Eigenschaft . Und wir werden das angeklickt aufrufen, was der booleschen Eigenschaft entspricht. Und dann klickte ein und dann auf einen String-Parameter. Also nenne ich das geklickt. Dies ist nicht das Gleiche wie LET. Wir könnten natürlich auch den Schlitz oder On oder so ähnlich nennen . Aber geklickt wird gut. Denn was wir tun können, ist, dass wir mit der rechten Maustaste auf diesen Block klicken und ihn dann im Grunde ein- und ausschalten können . Das ist also die allgemeine Idee hier. Und natürlich müssen wir zuerst die append properties-Methode aufrufen oder diese überschreiben. Und das ist eigentlich so einfach wie das Hinzufügen von Builder-Dot-Add und das Hinzufügen der Click-Eigenschaft dazu. Wenn Sie mehrere Eigenschaften haben, können Sie sie einfach durch Kommas trennen und dann auch hinzufügen. Das ergibt also natürlich keinen Sinn, da das zweifache Hinzufügen derselben Eigenschaft keinen Sinn macht. Aber wenn du noch einen hättest, dann könntest du das auch dort hinzufügen. Eine andere Sache, die wir tun werden, ist, dass wir diesen Punktsatz-Standardblockstatus sagen werden , dieser Punkt erhält den Standardblockstatus mit geleckten Löchern. Und das, was dies bedeutet, ist, dass unabhängig vom Standardblockstatus dieses tatsächlichen Blocks wir, sobald wir ihn zum ersten Mal festgelegt haben, sicherstellen, dass die Clip-Eigenschaft bei immer falsch ist dieses Mal. Das ist also nur die allgemeine Idee. Und dann überschreiben wir die eigene Verwendungsmethode genau hier. Wir werden den tatsächlichen Ergebnispass als einen mit diesem etwas schöner zurückgeben . Und dann prüfen wir zuerst , ob wir nicht beim Kunden sind. Dies stellt also wieder sicher, dass die Formationsmarke hier so oder nicht auf dem Kunden ist. Und wir wollen, dass die Hand und die Haupthänder sind. Das heißt also nur einmal. Lassen Sie uns einen Booleschen Wert in New York anklicken lassen. Und das wird State Dot Get sein und dann so geklickt. Und hier sieht man natürlich , dass wir den Status bereits bekommen. Dies ist also der tatsächliche Blockstatus, auf den wir mit der rechten Maustaste geklickt haben, und wir erhalten nur den Wert der booleschen Eigenschaft , auf den wir gerade mit der rechten Maustaste klicken. Aber das ist die allgemeine Idee. Und dann sagen wir den World Set Blockstatus an der Position, auf die wir geklickt haben, wobei die Statuspunktbreite geleckt wurde. Und dann machen wir im Grunde einfach einen VAP. Also dann ein Komma-Helden-Kurs , der eigentlich sehr wichtig ist. Also los gehst du. Stellen Sie also erneut den Sperrstatus an dieser an einer bestimmten Position ein. Dann mit dem Status, wobei die angeklickte Variable das Gegenteil von dem ist, was sie vorher war. Und dann aktualisieren wir auch alle Nachbarn. Und das heißt, ich weiß eigentlich ziemlich verrückt, alles was wir hier tun müssen. Wenn Sie Blöcke und Blöcke komplizierter haben, wollten Sie dies natürlich Blöcke und Blöcke komplizierter haben, implementieren. Nun, es geht auf jeden Fall nur darum , ein paar Sachen auszuprobieren. Und dann hilft hier auch ein Haufen Java-Wissen definitiv. Wenn wir also tatsächlich die mittlere Maustaste klicken, klicken Sie auf die Boolesche Eigenschaft und gehen Sie dann hier zur Eigenschaft, drücken Sie Control H. Wir können sehen, dass es boolesche Eigenschaften in den Eigenschaften gibt boolesche Eigenschaften in den Eigenschaften und auch Eigenschaften aufzeichnen. Dies sind also im Grunde die drei Eigenschaftswerte oder Typen des großen Blockstaates , die Sie in einen Block einfügen können. Ich empfehle dringend, auch einen Blick auf andere Vanilleblöcke zu werfen und wie sie es machen. Aber lasst uns fortfahren und den Block tatsächlich dafür registrieren lassen. Nehmen wir einfach den Stock im Zaun auf. Und das wird natürlich die Calciumlampe sein. Und, oder Kalkaneus Lampe auch hier. Und das ist ein neuer oder ein Lampenblock. Das Ego. Und der Rest davon kann tatsächlich bleiben. Aber ich wollte noch eine Sache hinzufügen. Und das wird im Grunde nach den erforderlichen Werkzeugen hier sein, ich möchte hier die Leuchtdichte hinzufügen. Und das ist im Grunde eine und C, eine to Int-Funktion mit einem Blockstatus. Was ist das jetzt? Das klingt sehr kompliziert. ist es eigentlich nicht. Also werden wir das einfach nehmen und ich werde es so formatieren. Und die allgemeine Idee ist, dass dies nur ein Hype von ist, man kann es sich als Lieferanten vorstellen, oder? Denken Sie also daran, das Angebot war dies und geben Sie dann etwas zurück. In diesem Fall schreiben wir jedoch tatsächlich etwas in die Klammern und das ist nur der Staat hier. Und dann können wir State Dot machen, das Ergebnis bekommen, Ergebnis Lampe Block. Und wir haben tatsächlich einen Tippfehler hier drin, keine Sorge. Wenn Sie also jemals einen Tippfehler haben, können Sie im Grunde einfach die Umschalttaste F6 drücken und dann ändern. Und dann ändern wir das einfach in schon Kalziumlampe. Glück, da gehst du. Und dann können wir es auch hier weitergeben, oder es kann blockiert landen. Und dann sagen wir Fragezeichen 15, Polen 0. Was macht das jetzt? Was ist hier los? Einige von euch könnten sagen , dass das absolut verrückt ist. Das ist eigentlich nicht so verrückt. Luminanz nimmt also eine Int-Funktion des Blockstatus an, wie Sie sehen können. Und die allgemeine Idee hier ist , dass die zwei int Funktion, oder? Genau hier kriegen wir nichts. Also was ist das? Nun, es ist einfach ein, es erfordert, dass eine Ganzzahl zurückgegeben wird , und wir übergeben hier einen Blockstatus. Das ist so ziemlich alles, was wir wirklich ein Jahr wissen müssen. Wir haben also einen Blockstatus, den wir verwenden können, und dann müssen wir irgendwie eine ganze Zahl zurückgeben. Es ist also ziemlich dasselbe wenn ich so etwas schreiben würde, oder? Also, und dann sage ich Blockzustand, das ist so ziemlich dasselbe. Wir geben eine ganze Zahl zurück und wir übergeben einen Block Sit. Nun, das ist einfach viel einfacher, alles in einer Zeile. In der Idee hier ist, dass also mit der eigentlichen Funktion, die wir hier schreiben, nur ein ist, wir erhalten den Wert von Clicked dieses Zustands. Und wenn es stimmt, werden wir 15 zurückgeben. Also schalten wir im Grunde die Leuchtdichte ein, also versuchen wir es hell zu sein. Und dann geben wir sonst eine 0 zurück. Das ist also alles, was wir hier machen. Wenn du nur etwas ausprobieren willst und du kannst das auch einfach tun und 15 zurückgeben, und dann wird der Block im Moment immer ein Licht abgeben die anderen interessanten Dinge werden natürlich die blockiere States Jason. Also werde ich das noch einmal kopieren, aber das steht Ihnen natürlich im GitHub-Repository oder in einzelnen GIS zur Verfügung. Und du wirst sehen, dass es eigentlich nicht so verrückt ist. Wir haben einfach gleich false geklickt oder gleich true angeklickt. Und je nachdem, deutet es auf zwei verschiedene Glücksmodelle hin. Das ist also so ziemlich genau das. Die Längendatei. Ich meine, das wird auch sehr einfach sein. Es ist nur ein Block-Recalc unter eine Lampe kommen und dann hier sitzen oder einen Unterstrich, keine Unterstrichlampe. Das passiert manchmal dort, Ihre Oracle VM-Lampe, noch ist es. Und dann lassen Sie uns die Blockmodelldateien kopieren, ebenso wie die Lampe an und für die Lampe ausgeschaltet ist. Und beide bezeichneten nur zwei verschiedene Texturen, wie Sie sehen können, entweder Lampe an oder Lampe aus. Also nichts zu verrückt. Und dann lasst uns das Modell des Lampen-Items auch holen. Nichts zu verrückt, bezieht sich nur auf die Lampe hier aus. Und dann holen wir uns die Blocktexturen. Und dann, und dann sind wir damit ziemlich fertig. Und jetzt schauen wir mal, ob es funktioniert. Oder offensiver Angriff und Mikrovesikel sehen das Orakel landen kann, dem Spiel hinzugefügt wurde. Und wenn ich mit der rechten Maustaste darauf klicke, gehen sie, es schaltet sich ein und es schaltet sich aus, denn das ist ziemlich cool. Der Grund, warum wir keine bekommen, wie die Rechtsklick-Funktionalität, im Grunde darin, dass wir den Rechtsklick-Pass einsetzen. Und das ist natürlich, damit wir mehr, im Grunde besser platzierte Blöcke hinzugefügt werden können . Denn wenn wir den Pass nicht da drin haben, dann ist das ein bisschen komisch. Sie können also natürlich auch das tatsächliche Ergebnis ändern , das Sie in der unbenutzten Methode zurückgeben. Das ist auch immer etwas, das Sie einfach ausprobieren und sehen können , was die verschiedenen Funktionalitäten sind. Aber wie Sie sehen können, funktioniert es völlig gut. Und ich kann das Extra einfach ändern und natürlich einschalten. Also wenn ich einfach mal nachts mache , damit wir das haben und bumm sehen, bumm , bumm, da ist es. Ich kann das Licht einfach einschalten oder ausschalten. Das ist also ziemlich cool. Rubber, das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 66. (Intermediate) Wie funktioniert NBT: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir einen vorläufigen Blick auf NB TY-Daten werfen. Genau wie die Blockstatuseigenschaften im Grunde Daten sind, die Sie in einem Blockstatus speichern können. In BT sind Daten, die Sie auf Artikelstapeln speichern können. Item-Stacks sind also zwei Elemente da Bloc-Status zwei Blöcke sind. Der Artikel stapelt also den eigentlichen Snack , den Sie in Ihrem Inventar haben, während ein Artikel die allgemeine Idee dieses Artikels ist. Aber wieder einmal ein einziges Muster in gewisser Weise. Und die Art und Weise, wie wir uns das ansehen werden, ist wir einen neuen Artikel namens Datentablet erstellen werden. Und das wird das letzte Ergebnis der Werbetruten sparen . Das ist die allgemeine Idee dafür, dass wir eine Reihe von Code kopieren werden. Dies steht Ihnen im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Werfen Sie einen Blick auf die Ressourcen. Ich empfehle dringend, sie sich anzusehen und ihnen bei mir zu helfen, während wir weitermachen. Und zuallererst brauchen wir dafür den neuen Artikel. also mit der rechten Maustaste in das benutzerdefinierte Paket und dies ist das Datentablet-Element. Dies wird die Item-Klasse erweitern. Natürlich war dies der Mauszeiger über diesen Create-Konstruktor, der hier super passt. Und dieser ist eigentlich ziemlich einfach. Die Dinge, die wir tun wollen, ist, dass wir diesen Blick pro Woche werfen wollen, im Grunde genommen einen zu diesem glänzenden Effekt wenn dies tatsächlich in VT-Daten enthalten ist. So können wir die has-glint-Methode überschreiben. Und was wir dann hierher zurückkehren werden, können Sie sehen, dass wir den Stapel hier tatsächlich bekommen. Und das ist großartig, denn was wir tun können, ist, dass wir einfach Stack Dot hat MBT zurückgeben können , genau richtig? Jedes Mal, wenn auf einem Datentablet NVT-Daten hinzugefügt werden, werden wir dies zum Leuchten bringen. Was ich dann auch tun möchte, ist, dass ich mit der rechten Maustaste auf diesen Staub in die Luft klicken und die angebotenen Daten gelöscht habe. Wie Sie sehen können, werden wir hier die US-Methode verwenden. Und was wir nur überprüfen werden , ist, dass wir sagen werden, hey, wenn user.name mit der Hand, auf die gerade geklickt wurde, gestapelt wird, oder? Wenn dieser Stack als NVT ist als das, was wir gerade tun werden , werden wir ihn im Grunde nur zurücksetzen. Was wir sagen werden, ist, dass wir User dot, Stack und End mit der Hand sagen werden. Wir sagen einfach „Set in VT“. Wir wussten es in BT-Verbindung. Und das ist so ziemlich die allgemeine Idee. Der hat NVT im Set und VT. Und dann werden wir in nur einer Sekunde auch das sehen, im Grunde bekommen sie NVT. Dies sind die drei großen Methoden, die Sie im Grunde beachten müssen. Also werden wir hier auch einen Tooltip erstellen, und dieser wird angezeigt wenn der eigentliche Stack MVT-Daten enthält. Stapeln Sie also nochmal Punkt als MVT. Und erst dann möchten wir eine Zeichenfolge hinzufügen. Sagen wir einfach, nenne das die aktuelle oder hier. Und wir werden sagen Stack Dot-Dot-Dot-Dot-Dot, diesmal NVT. Und so wie wir hier verschiedene Werte erhalten , können Sie sehen , um in C zu kommen, kann ich hier ein paar verschiedene Arten von Daten bekommen, und ich muss immer einen Schlüssel bekommen. Ich benutze nur den MC Course Dot. Oder so nenne ich diesen Schlüssel. Was ich sehr empfehle, ist, immer mit Ihrer Marr-ID zu beginnen und dann mit einem Punkt und dann was auch immer der tatsächliche Name dieser gespeicherten Variablen sein soll. Und dann können wir einfach einen QuickInfo-Punkt hinzufügen. Und dann sagen wir neuen Literaltext, in diesem Fall wörtlicher Text mit dem aktuellen oder als String und sie gehen, und das ist so ziemlich die Datentablet-Artikelklasse. Lasst uns dieses Jahr sofort lesen , denn das wird dies ein bisschen einfacher machen , damit die neue Pferderüstung entkommen kann. Und das wird das Datenunterstrichen-Tablet sein. Und hier unterstreicht das gleiche Daten-Tablet. Und dann ist hier das Datentablet-Element genau richtig. Und wir brauchen hier natürlich nur die normalen Einstellungen, die sie vor sich haben. Und wir werden hier auch die maximale Anzahl hinzufügen , damit wir diesen Stapel nur zu einem haben können. Dies wird also die Max Stack-Größe von eins sein. Das ist sehr wichtig. Und jetzt müssen wir natürlich irgendwie definieren, was etwas Zeug ist, die NVT-Daten zu unserem Dowsing Rod Artikel hinzufügen. Und dafür werden wir tatsächlich eine Util-Klasse erstellen , weil das unser Leben in einem Util-Paket ein wenig einfacher macht . Wir klicken mit der rechten Maustaste auf eine neue Java-Klasse. Und das wird das Inventar Util sein. Und ich kopiere beide Methoden hier drüben. Und das ist nur, um im Grunde Zeit zu sparen, denn diese werden wahrscheinlich einige Male wiederverwendet, die Sie als Spielerstapel und Inventar sehen können. Dies prüft, ob dieser bestimmte Spieler oder nicht hat diesen bestimmten Artikel in seinem Inventar. Und dann erhalten sie erste Inventarindexprüfungen durch das Inventar dieses Spielers den ersten Index innerhalb des Inventars , in dem dieser Gegenstand vorhanden ist. Das ist die allgemeine Idee hier. Und wir werden beide tatsächlich benutzen. Also lasst uns hier zur Dowsing Rute Item Masse gehen. Und was wir tun werden, ist, dass wir eine bestimmte Sache hinzufügen werden. Und das ist im Grunde innerhalb der USA auf einer Blockmethode, oder? Was wir tun wollen, ist, dass wir sagen wollen: Hey, wenn der Layer das Datentablet im Inventar hat, dann möchten wir im Grunde NVT-Daten hinzufügen. Also werden wir sagen ob. Und dann können wir Inventar sagen, util dot als Spieler im Inventar stapeln, wir können Spieler sagen, und dann ist der Gegenstand nur mehr Gegenstände, Punkt-Datentablet. Wenn sich das also im Inventar befindet, möchten wir die NVT-Daten hinzufügen. Nun, denken wir einfach darüber nach. Ich werde die Methode dafür kopieren , weil ich dafür tatsächlich eine Methode habe. Und das ist eine private Methode namens Add vt to datentablet. Du siehst es. Und was das bewirkt, ist eigentlich ziemlich einfach. Es ist eigentlich nicht zu verrückt. Zunächst einmal holen Sie sich den Datentablet-Stack hier. Indem Sie den Stapel abrufen und den ersten Inventarindex der David-Tabelle erhalten. Also erhalten wir das erste Datentablet, das sich im Inventar befindet , als sehr wichtig. Wenn wir also zwei Daten im Inventar mitteilen würden, würden wir die ersten in VT-Daten überschreiben. Das ist sehr wichtig. Wie legen wir nun die NVT-Daten fest? Sie können genau hier sehen, dass wir neue Verbindungen schaffen werden. NVT-Verbindung ist also das, was wir schaffen müssen. Ich lege dort eine Schnur mit dem Schlüssel rein. einmal unterstrichen MC-Kurspunkt-Unterstrich bzw. Und dann ist hier die Zeichenfolge. Das ist also so ziemlich genau die gleiche Zeichenfolge , die wir hier in der Ausgabe hatten. Und dann sagen wir Datentablet bei festgelegten NVT-Daten. Und wenn wir diese NVT-Verbindung übergeben hätten, hätten wir einfach eine Schnur angezogen. Und dann werden wir innerhalb der if-Anweisung einfach NVT-Daten hinzufügen mit dem Player auf das Datentablet aufrufen . Und ich werde sagen, dass die Position geklickt auf Punkt 0 minus 0 hinzufügt. Und dann ist der Block unten sehr ähnlich dem, was wir in den Ausgabekoordinaten hatten. Aber vorerst wird das gut werden. Und das ist so ziemlich alles, was wir tun müssen. Das ist also im Grunde alles, was es dazu gibt. Bei dieser speziellen Methode ist das privat, bei der wir diese Daten und dann das Inventar hinzufügen , indem wir auch in einem anderen Bereich nützlich werden. Das ist also auch eine sehr häufige Coolness. Und ja, das ist so ziemlich die Idee. Wiederum sind NVT-Daten im Gegensatz zu diesen die wichtigsten Methoden die Set- und VT-Daten auf dem Stack. Sie erhalten NVT-Daten auf dem Stack, und der hat NVT-Daten auf dem Stack. Das sind also die drei Hauptmethoden. Und dann kann man in der NVT-Verbindung selbst im Grunde sehen, dass ich auch andere Sachen wie einsetzen kann und das sind im Grunde alle Datentypen, die ich dort speichern kann. Und die sind normalerweise viel mehr als genug. Oh, das ist so ziemlich alles, was wir dort wirklich wissen müssen. Und dann, und wir werden es tun, ist, dass wir zuerst die Lang hier hinzufügen werden. Nun, lassen Sie uns einfach den Gegenstand kopieren oder nehmen wir diesen. Das Datenunterstrichen-Tablet ist natürlich das Datentablet. Und dann brauchen wir ein Artikelmodell. Und das ist natürlich nur ein normales Artikelmodell hier. Datentablet zeigt also einfach auf das Datentablet auf. Das ist also eine sehr interessante Sache hier, warum ist das so? Nun, gibt es auch ein Off? Ja. Etwas, das wir uns in der nächsten Vorlesung tatsächlich ansehen werden, weil sie alle die tatsächliche Textur ändern werden je nachdem, ob es MVT-Daten hat oder nicht und tatsächlich nicht darüber erfordert ein interessantes Setup. Sagen wir mal. Jetzt wurde das Datentablet dem Spiel hinzugefügt. Mal sehen, ob es funktioniert oder ob Rückprallungen in Mikrofinanzierung sehen können, dass das Datentablet erfolgreich zum Spiel hinzugefügt wurde. Und lass uns einfach einen einzigen nehmen. Das stimmt. 67. (Fortgeschrittene) Item: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir einen Blick auf einen Modalprädikatanbieter werfen. Wenn das also etwas ist, von dem Sie einfach keine Ahnung haben, was das bedeutet, keine Sorge. Wir werden das im Detail durchgehen. Also drücken wir zweimal die Umschalttaste und wir werden eine modelladäquate Anbieterregistrierung einführen, genau diese. Klicken wir einfach darauf und Sie können sehen, dass dies einige interessante Dinge hat. Nämlich zum Beispiel für den Bot, den Pol und das Ziehen nach innen, was sehr interessant ist, da dies zwei Prädikate sind , die der Bot benötigt um die Artikeltextur zu ändern innerhalb des Inventars. Und das stimmt genau. Wir müssen also unser eigenes benutzerdefiniertes registrieren, damit unser Datentablet die Textur verändern kann. Wir möchten grundsätzlich eine tabellarische Daten, die ausgeschaltet werden, wenn keine NVT-Daten vorhanden sind, und sie einschalten, wenn BT-Daten darauf enthalten sind. Das ist die allgemeine Idee. Und was ich auch sagen kann, ist, dass wir die Umschalttaste erneut drücken und einen Bowl-Unterstrich eintippen lassen. Sie werden sehen, dass einige JSON-Dateien damit verknüpft sind . Und dies können Sie beispielsweise sehen, dass sich auf den Artikel zurückbezieht. Dieser Bowl-Unterstrich, der 0 zieht wird in der Bot-Daten-JSON-Datei referenziert, die von der sein wird, die fett gedruckte JSON-Datei genau hier ist. Aber Sie können auch immer zu den externen Bibliotheken in Assets gehen zu den externen Bibliotheken in als unter Models Item, und dann einfach zum Bug gehen, genau hier. Da gehst du. Das ist also das Boot, das genau das angrenzt, das wir geöffnet haben. Und Sie können hier unten sehen, Überschreibungen gibt und ob ein bestimmtes Prädikat ist, also sind das die Modalprodukte, die wir gerade gesehen haben. Wenn sie einen bestimmten Wert haben, schauen wir uns tatsächlich ein anderes Modell als dieses an . Dieser zeigt nur die normale Schüssel. Wenn das Ziehen jedoch eins ist , werden wir dieses Modell zeigen. Wenn das Ziehen seines einen Endes der Stange bei 65 Prozent liegt , wird dies zeigen. Und wenn wir ziehen und ziehen, ist es bei 0,9, dann zeigen wir diese. Das ist die allgemeine Idee, Jahr. Und deshalb können wir die Texturen grundsätzlich verändern. Und das ist eigentlich alles ziemlich einfach. Was ich tun werde, ist, dass ich eine neue Util-Klasse erstellen werde, die ich den Modmodell-Prädikatanbieter nenne . Und da drinnen werden wir eine öffentliche Leere machen. Registrieren Sie Modelle, Modelle, Kühler, ja, Mod-Modelle. Und dies wird die Registry des Fabric-Modal-Prädikat-Anbieters aufrufen Registry des Fabric-Modal-Prädikat-Anbieters , die sich beim Mod-Items Dot-Datentablet im neuen Bezeichner-MC-Kursmod, Mod ID, registriert. Und dann rufen wir das an. Und dann nach der ersten Klammer ein Komma. Und was wir dann wollen, ist eine Meile in nicht beanspruchten Modellanbietern. Sie können sehen, ob ich hier anfangen zu schreiben und zu stapeln, wir können das einfach machen. Also werden wir es so automatisch vervollständigen. Und was wir dann sagen werden ist, dass Stack Dot MBT hat. Noch einmal eine Frage, markieren Sie eins, f Doppelpunkt 0, f. Die Idee ist also, dass wir eine 1 4 zurückgeben werden, wenn die Aktie MVT-Daten hat und wir eine 0 zurückgeben, wenn sie keine MET-Daten hat. Und das ist so ziemlich alles, was wir tun müssen. Jetzt. Wir müssen auch das Ego richtig registrieren, und dann erinnern wir uns, dass dies hier im Kunden ist. Das ist also sehr wichtig, dass wir dies im Kunden nennen, dass wir Mod sagen wollen, Modalprädikatanbieter , die Modelle registrieren. Und das ist, ich meine, das ist es so ziemlich. Das ist alles, was wir tun müssen, damit dieses Modell registriert wird, oder nehmen wir an, dass das Prädikat hier registriert ist. Natürlich müssen wir jetzt die Modelldateien im Datentablet ändern , richtig, also genau hier. Also habe ich das tatsächlich vorbereitet. Ich werde das kopieren und ich werde es erklären und ich werde es natürlich auch tun, Ihnen das alles im Repository oder einer Einzelperson genauso gut zur Verfügung steht . Und die Idee ist, dass dieser hier jetzt auf ein anderes Modell hinweist. Was wir also einfach tun werden, ist, dass wir einfach das andere Modell hier nehmen werden. Wir brauchen also zwei Modelle. Einer von ihnen ist das normale Datentablet und ich bin einer von ihnen ist das Datentablet auf diesem. Und tut mir leid, das wird so aussehen, also okay, keine Sorge. Lasst uns das einfach durchgehen. Das normale Datenziel wird ausgeschaltet sein, wenn es keine NVT-Daten enthält. Wenn MC-Kerne einer sind , schalten wir die Datentablets ein. Also werden wir uns dieses Modell jetzt genau hier ansehen, bei dieses Modell jetzt genau hier ansehen, dem das Datentablet eingeschaltet ist. Aber jetzt müssen wir nur noch das Off für den Artikel extra hier abgeben . Lassen Sie uns das auch einfach kopieren. Das Ego, weil es standardmäßig so aussehen wird, als wäre es aus. Und wenn das Prädikat aktiviert ist, werden wir dieses Prädikat verwenden, das sich auf die On-Textur bezieht. Das ist die allgemeine Idee hier. Das ist es auch nicht. Das ist etwas verwirrend. verrückt sollte es eigentlich nicht sein. Wir weisen im Grunde nur auf eine andere Textur hin. Wenn etwas anders ist, so ziemlich genau das Gleiche wie ein Blockstatus nur im Artikelmodell die Zeit angibt. Und das ist eigentlich so ziemlich alles, was wir tun müssen, um die Artikelstruktur eines Artikels zu ändern die Artikelstruktur eines Artikels , je nachdem, ob etwas passiert. Also mal sehen, ob es funktioniert. Oder ich, also wenn ich SoftBank bin und microRNAS sehen kann, dass das normale Datentablet jetzt ausgeschaltet ist. Und wenn ich etwas finde, das du sehen kannst , ist es jetzt eingeschaltet. Das ist eigentlich ein wirklich cooler Effekt. Und wenn ich mit der rechten Maustaste darauf klicke und es lösche , werden die NVT-Daten auch angezeigt . Das ist also etwas , das ziemlich häufig ist, cool wenn ich es selbst sage, das gefällt mir wirklich. Dies ist etwas, das im Grunde genommen einfacher ist, als Sie vielleicht denken. Natürlich könnten die besonderen Details für dich etwas verrückt aussehen. Aber wieder einmal sollte es mit etwas Java-Wissen nicht zu verrückt aussehen. Aber das ist eigentlich sehr, sehr cool. Denken Sie daran, dass es für diese Vorlesung schon hier wäre. Ich hoffe, du hast das nützlich gefunden und er erfährt von dem Neuen. Wie immer ist der gesamte Code im GitHub-Repository und in einer Einzelperson genauso verfügbar . Wir sehen uns aber in der nächsten Vorlesung. Ja. 68. AUFGABE 7: Blockstate und NBT: Diese Übung für den Stoffkurs für 118. Und nun, ich werde dir nur eine allgemeine Vorstellung oder Erklärung geben eine allgemeine Vorstellung oder , was du tun solltest. Diesmal gibt es also wirklich keine Lösung, denn im Grunde genommen wird Ihre Kreativität gefragt und Sie sollten einfach nur wild damit laufen. Sollten Sie das tun, ist, dass sie einen neuen Block und ein neues Element erstellen sollen , das irgendwie beide Blockstatus-Eigenschaften enthält. Also ein bestimmter Block, Block sagen Eigenschaft und dann ein NVT-Datenbeispiel. Es kann wirklich alles sein, was du willst. Es kann so einfach oder so kompliziert sein, wie Sie möchten. Du musst das nicht unbedingt tun. Das ist etwas, das du nur ausprobieren kannst. Das ist also wirklich nur eine optionale Aufgabe, aber ich empfehle dringend, das immer noch durchzuziehen und einfach etwas zu machen , das Symbol ist und nicht zu kompliziert , denke nicht, hey, ich gehe einfach eine verrückte Anlage wie eine Schaffenkonstruktion zu machen. Werde nicht zu verrückt. Machen Sie etwas sehr Einfaches, das funktioniert und sich wie immer nach oben arbeitet, eine großartige Idee. Also viel Glück bei der Aufgabe. 69. (Fortgeschrittene) Hinzufügen eines benutzerdefinierten Schnittes: Oder ich komme für 118 zurück zum Stoffkurs. Und in diesem Vortrag werden wir Minecraft unsere eigene benutzerdefinierte Ernte hinzufügen . Das Hinzufügen einer benutzerdefinierten Ernte ist also eine sehr interessante Sache. Glücklicherweise haben wir natürlich die Walk-State-Eigenschaften durchgegangen , weil wir das in unserem benutzerdefinierten Blockpaket benötigen werden . Wir klicken mit der rechten Maustaste auf eine neue Java-Klasse die als Modus-Rübenblock bezeichnet wird. Jetzt starten Sie unsere Blockklassen einfach mit dem Namensmodus. Nicht immer, aber es ist in Ordnung. Und dies wird die Crop-Block-Klasse erweitern. Und wir werden einfach den Mauszeiger darüber bewegen, um Konstruktor zu erstellen, der genau hier super passt. Und was ich tun werde, ist, dass ich auf das Zuschneideprotokoll klicke und dann auf Control H drücke Und Sie können im Grunde alle Blöcke sehen , von denen sich dies erstreckt. Und wir werden nur den Inhalt, den gesamten Inhalt aus den Rübenwurzeln blockieren, genau hier nehmen den gesamten Inhalt aus den . Aber das ist so ziemlich alles , was wir tun werden. Und dann werden wir den Namen hier ändern. Wir brauchen dieses erste Feld nicht. Und was wir dann auch ändern wollen, ist, dass es beides hier kann. Und anstatt sie unten in einem statischen Block zu haben, wollen wir dies sofort tun. Und dann das Gleiche für die Form hier. Machen wir das einfach und kopieren es dann genau hier. H ist gleich h. Nun, nicht ganz das Ego. Dann werde ich das auch ein bisschen anders machen, damit wir tatsächlich lesen können , was hier vor sich geht. Weil die Voxel-Form etwas ist , das sehr interessant und sehr besonders ist. Das ist also etwas, worüber wir reden müssen. Ansonsten wird der ganze Rest einfach so bleiben wie er ist. Ich meine, diese zum Beispiel müssen wir eigentlich nicht. Wir können das H auch einfach so addieren. Und dann wird es für diesen Zustand auch so gut gehen. Der gesamte richtige Code steht Ihnen natürlich auch zur Verfügung. Hier müssen wir natürlich bei der tatsächlich einen anderen Gegenstand zurückgeben, aber das werden wir auch in einem Moment tun. Und obwohl wir hier nicht wirklich die Add-Override zu allem hinzugefügt die Add-Override zu allem hinzugefügt haben, damit wir wissen, dass hier alles außer Kraft gesetzt wurde. Und insgesamt ist dies so ziemlich alles, was wir in dieser Klasse brauchen, außer natürlich dem Samen, den wir zurückgeben müssen. Und Sie können sehen, dass die tatsächlichen Altersschutzrechte, dass wir hier in Alterseigentum eine H-Armut haben , das ist h3. Wir können darauf eingehen und wir können das Altersobjekt hier sehen. Die allgemeinen Ideen, dass dies von 0 auf drei geht, aber es gibt vier Phasen dieses speziellen Blocks. Und deshalb gibt es auch vier Quaderformen. Die Voxel-Form, wenn Sie den Mauszeiger über einen Block , wird das als die Umrisse des Blocks angezeigt . Und das ist sehr wichtig. Und das wird hier grundsätzlich nur je nach Alter geändert. Obwohl Sie sehen können, dass eine gute Umrissform das Alter zum Shape-Array zurückgibt. Und dann bekommt es im Grunde nur eine andere Form, abhängig von der Alterseigenschaft davon. Das ist die allgemeine Idee hier. Wenn Sie also eine andere Ernte mit unterschiedlichem Alter haben , können Sie entweder das jedes Jahr ändern. Manchmal gibt es hier einige Agenten. Wie Sie sehen können, gibt es 123571520. Habe ich auch. Oder Sie können auch, wie wir es im Orakel getan haben, Ihre neue, eigene neue Immobilie diskret landen . Das funktioniert auch völlig gut. Aber lassen Sie uns auch den Block in der Schlammblock-Klasse erstellen. Und dafür brauchen wir tatsächlich eine völlig neue Methode. Also werden wir die Registerblock-Methode kopieren, oder? Ausgewählt Control C, Control V. Ich lösche die Gruppe hier und den Aufruf des Registerblock-Elements. Wir werden dies den Registerblock ohne Block-Item-Methode nennen , da wir genau das tun wollen. Lass uns einfach über die Kirschblüten-Falltür kopieren. Dies wird die Rübenunterstrich-Ernte sein. Normalerweise rufe ich meine Requisiten gerne gut an, mit der Endernte, der Rübe und der Unterstrichenernte. Und das ist kein Registerblock, aber dies ist ein Registerblock ohne Blockelement, sehr wichtig. So können wir den Kurs-Tab hier ganz hinten löschen . Und dann werden wir es auch tun, dass wir uns mit all dem befassen werden. Anstatt es zu erledigen, werden wir tatsächlich einen bestimmten Block kopieren. Und das sind die Blöcke, die die Rübenwurzeln natürlich haben. Und kein Schlammfall-Türblock, sondern eine Mod-Rübe, OK, direkt am Satz. Warum registrieren wir damit kein Blockelement? Nun, die allgemeine Idee ist, dass die Rübenernte nicht wirklich einen Gegenstand hat. Wir brauchen einen Samen für diesen platzlosen Block Down, und das ist genau richtig. Aber wir müssen tatsächlich in zwei oder mehr Gegenständen gehen zwei oder mehr Gegenständen und dann auch einen Rübensamen herstellen. Also werden wir einfach über das Datentablet kopieren und dies wird ein Rübenunterstrich sein. Dafür nennen wir es unter Unterstrichensamen verbrannt. Und das ist ein neues Alias-Blockelement. Das könnte also sein, was ist das? Nun, zuerst werden wir die weiteren Blöcke einsetzen, die den Zuschnitt auftauchen , und dann den maximalen Zähler löschen. Eigentlich sehr wichtig. Ice Block Item ist ein Blockelement mit einem anderen Namen als der Block, den es hat, oder? Das Rübensamen oder das Saatgut ist also natürlich ein anderer Name als die Rübenernte hier. Und was auch sehr wichtig ist, Gehen wir zurück zur mütterlichen Blockklasse und geben dann Mod-Items dot zurück, drehen Sie es genau hier. Das ist sehr wichtig, sonst stimmen die Samen nicht. Das ist also sehr wichtig, dass wir dies tun und der Code im Grunde genommen gemacht wird. Was wir auch tun müssen, ist , dass wir auch hierfür die Render-Layer-Map aufrufen müssen . Das ist auf der Rübenernte genau hier, auch ausgeschnitten. Und dann wird der Code tatsächlich vollständig gemacht, was wir jetzt nur noch tun müssen, ist, die Übersetzung und dann die Blockzustände und die Blockmodelldateien hinzuzufügen . Fügen wir einfach die Rübenernte hier hinzu. Sie können also sehen, dass wir im Grunde nach verschiedenen suchen, die beispielsweise Eigenschaftswerte von 0 bis drei blockieren Eigenschaftswerte von 0 bis drei und dann einfach auf verschiedene Modelldateien zeigen. Alle Dinge, die wir bereits gesehen haben, sollten also keine allzu große Überraschung sein, oder? Fügen wir den Artikel hier hinzu. Sagen wir einfach so etwas wie der Rübenunterstrich Samen werden natürlich das Auftauchen sein, nicht die Samen unterstreichen, noch einmal mit dem Unterstrich. Und dann sehr wichtig, um die Rübenernte auch hier hinzuzufügen, tauchen Sie die Unterstrichenernte auf. Und dann sind wir auch hier in einem engen, es gibt einen MOD, bei dem Sie den Mauszeiger über Blöcke bewegen können und es wird tatsächlich den eigentlichen Block hier anzeigen. Und dies wird auf eine Weise angezeigt, die nicht übersetzt wird. Also übersetze das auch. Ich empfehle dies nur wärmstens. Es ist nur eine Zeile, wirklich keine große Sache, oder? Lassen Sie uns zunächst die vier verschiedenen Blockmodelle hier für die Rübenernte addieren , Sie können sehen, dass sie nur die Unterstriche Stufe 0 oder 2, 1 auftauchen . Stellen Sie sicher, dass hier alles richtig geschrieben ist. Wenn du an den Jason zurückdenkst, die Idee, wie sind sie verwandt? Dies ist der Name dieser Datei hier, und dann ist dies der Name der Textur, die auf die Blockmodelle verweist , sind alle die übergeordneten Blockzuschneidungen. Und dann ist die Textur hier auch eine Ernte, die sehr wichtig ist. Und dass wir das Artikelmodell eigentlich nicht brauchen würden. Wir brauchen nur ein Artikelmodell für die Rüben Aedes, und das ist nur ein normales Artikelmodell, wie Sie sehen können. Und dann lassen Sie uns die vier Blocktexturen der Rübe kopieren . Diese, alles hier steht Ihnen natürlich zur Verfügung. Also lassen Sie uns diese auch einfach kopieren. Und C 0 bis drei, und dann der Gegenstand, die Samen auch hier. Also Term Seeds im Ordner „Objekte“. Nun, im Item-Ordner, los geht's, und das ist so ziemlich alles, was wir tun müssen. Nun ist eine der wichtigsten Dinge, was fällt dieser Block ab? Weil die Klo Tische, die wir bisher gesehen haben, sind wir alle sehr einfach. Der einzig verrückte Lu Tisch war wirklich die Umlaufbahn, auch wenn es nicht zu verrückt war. Aber was ist mit den eigentlichen Kulturen? Müssen sie nicht spezifisch sein ? Ja. Wir können noch einmal zu den externen Bibliotheken hier unten zu Microsoft Project gehen , und dann die ganze Reihe von Sachen hier. Und dann ging Minecraft anstelle des Assets-Ordners in den Datenordner, plünderte Minecraft Tabellen, Blöcke. Und dann werfen wir uns nur einen Blick auf Rübenwurzeln. Und Sie können sehen, dass die Rübenwurzeltabelle so aussieht und tragen Sie diese einfach vorbei oder wir können auch einfach die eigentliche Datei hier kopieren. Also gehen wir einfach zu Control C, diese Datei, und gehen dann in unseren eigenen MC-Kurs-Routentabellen, Blockordner. Ist es hier drin? Dies ist natürlich der Wrapper der Rübe unterstrichen. Und dann gibt es einige Änderungen, die wir vornehmen müssen. Das ist sehr wichtig. Überspringe das nicht. Sieh dir das mal an. Also Nummer 1, r maximales Alter Eigenschaft ist genau hier definiert. Wenn wir einen Stein haben würden, der das Höchstalter von fünf Jahren hat, müssten wir fünf Jahre einbauen, weil die tatsächlichen Dinge nur gesunken sind, wenn dieses Alter erreicht wurde. Das ist also sehr wichtig. Und das ist das Gleiche , was hier unten geht. Jetzt in diesem Jahr, wo der Block hier der Block ist. Das muss also MC-Kurs Doppelpunkt, Rübe, Unterstrichenernte sein. Dies bezieht sich auf den Block, wir in unserer Mod-Block-Klasse erstellt haben , der in diesem Jahr grundsätzlich überprüft wird, das eigentliche Produkt ist. Das wird also die MC-Kurs-Rübe sein. Das heißt, das wäre der Weizen, wenn es Weizen wäre und so weiter. Und dann sind das hier die Samen. Das ist also MC Course Colon, unterstrichen Sie Sitze. Das ist also sehr wichtig. Diese drei Dinge müssen geändert werden. Stellen Sie also sicher, dass Sie sie hier und dann auch hier ändern . Weil wir hier unten im Grunde genommen zusätzliche Plätze fallen lassen, oder? Das ist also sehr wichtig, dass Sie dies richtig ändern. Bitte stellen Sie sicher, dass die Modell-ID immer korrekt ist , da dies im Grunde sehr leicht zu überwachen ist. Das ist also etwas, das man sehr leicht einfach nicht erkennt, besonders, weißt du, Armada D beginnt mit einem M. Minecraft auch mit einem M. Manchmal kann es etwas sein, das du vielleicht vermissen aber das ist so ziemlich alles, was wir hinzufügen müssen. Also mal sehen, ob es funktioniert. Oder Francis zurück in der Mikrofinanzierung kann sehen, dass die Rübensitze hinzugefügt wurden, also schauen wir mal, ob ich sie niederlegen kann. Und natürlich kann ich sie niederlegen. Genau das möchte ich sehen. Und lassen Sie es uns einfach so machen, dass die Spielregel, Zufalls-Tics Geschwindigkeit, um 100 erhöht wird. Und dann gehen sie dorthin, sie wachsen. Und das ist eigentlich das alte Wachstum hier. Lass uns das einfach zurücksetzen. Wenden wir uns dem Überlebensmodus zu. Sehr wichtig. Wenn du sie einbrechst, musst du sie im Überlebensmodus und im Ego brechen , sie lassen sogar Rüben fallen, aber nur auf der vollen Größe. Sie können sehen, ob sie nicht in voller Größe sind und nur auf einen Samen fallen gelassen werden, ist so ziemlich alles, was sie tun müssen. Und natürlich können Sie in der eigentlichen Lu-Tabelle auch die Zahlen ändern, oder? Wenn Sie also wie Nein sind, sind das nicht genug Rüben, die fallen, das ist auch völlig in Ordnung. Das kann man immer in den Klo Table Js ändern, richtig, aber das ist so ziemlich für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wieder einmal ist der gesamte Code in den letzten Dateien natürlich im GitHub-Repository oder einer Einzelperson verfügbar auch im GitHub-Repository oder einer Einzelperson verfügbar. Und wir sehen uns in der nächsten Vorlesung. Also ja. 70. (Intermediate) Wie du Objekte zu einem Composter hinzufügst.: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem kurzen Vortrag werden wir sehen, wie Sie dem Komposterblock benutzerdefinierte Elemente hinzufügen können . Aber das bedeutet im Grunde, dass wenn Sie mit der rechten Maustaste auf den Komposterblock klicken, eine Chance, das Niveau zu erhöhen , auf dem sich der Komposter befindet. Das ist eigentlich alles sehr einfach. In unserer Klasse mehr Registers werden wir also einen neuen privaten statischen Void-Register-MOD-Komposter erstellen , Chancen-Klasse. Und das wird hier kurz nach dem Register der Brennstoffe, Registermodus Verbrennungschancen genannt kurz nach dem Register der Brennstoffe, . Und die Art und Weise, wie wir diese hinzufügen, ist ziemlich verrückt. Wir werden sagen, Komposterblock, DOD Item zwei Level hat die Chance erhöht , dass PUT und dann einfach die mehr Gegenstände, Punkt-Punkt-Rüben, Sitze, zum Beispiel durch eine Chance von 35 Prozent eingelegt Punkt-Punkt-Rüben, Sitze, zum Beispiel werden. Und wir werden das einfach mit Control D duplizieren und ich werde auch die Rübe einsetzen , damit Sie nur an der Reihe essen können. Und das wird eine Chance von 65 Prozent sein. Wenn wir mit der mittleren Maustaste darauf klicken. Wir können auch sehen, dass die Trends genau hier sind. Sie können also im Grunde alle Chancen sehen , dass es einige Samen gibt, die Setzlinge und Blätter und im Grunde die Chancen , die mit uns verbunden sind, oder? Ich meine, das ist so ziemlich alles, was Sie tun müssen, wenn Sie nicht die Modus-Register-Klasse haben, Sie können diese auch nehmen und diese einfach in der initialisierten Methode aufrufen. Da wir jedoch hier die modernen Register erstellt haben , macht dies alles ein bisschen einfacher und ein bisschen getrennter und ein bisschen schöner zu lesen. Und nur um der Vollendung willen, lass uns sehen, ob es funktioniert oder ob es wieder in Minecraft war und lass uns einfach sehen, da gehst du. Ich kann mit der rechten Maustaste darauf klicken und es funktioniert tatsächlich. Und die Samen funktionieren auch. Sie haben eine Chance von 35 Prozent, während die Rüben eine Chance von 65 Prozent haben. Und da gehst du. Jetzt hab ich ein bisschen Blase. Nun, aber das ist schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 71. (Fortgeschrittene) Mischungen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir uns Mixin ansehen. Mixin ist ein Thema, das mit großer Sorgfalt behandelt werden muss. Deshalb bitte ich dich irgendwie , damit nicht absolut verrückt zu werden. Selbst wenn Sie dies nach dieser Vorlesung verstehen, sollten Mixins sparsam verwendet werden und nicht nur für alles, wo es einfacher ist, Mixin zu verwenden. Mixin, die allgemeine Idee ist, dass Sie die Klassen von Minecraft im Grunde ändern können die Klassen von Minecraft , um sie auf alles zu setzen , was Sie wollen. Im Grunde könnten wir zum Beispiel Methoden ändern. Sie könnten, Sie könnten die Zugriffsebene, bestimmte Methoden oder bestimmte Felder ändern , und wir könnten sie dann einfach aus einer Laune heraus ändern. Und das wird normalerweise als ein sehr kompliziertes und komplexes, komplexes Thema angesehen als ein sehr kompliziertes und komplexes, komplexes , wo es eigentlich nicht so verrückt ist. Also wenn du zu diesem Zeitpunkt nur Sachen kopiert hast und nicht wirklich mit dem Java folgst. Du verstehst also nicht wirklich viel von dem Java-Zeug dahinter. Ich empfehle es nur sehr, noch einmal einen Blick auf die Java-Einführung zu werfen, denn Mixin ist ein Tool , bei dem Sie Java nicht verstehen, völlig verloren gehen werden. Ich werde nicht allzu sehr darauf eingehen, wie es tatsächlich funktioniert. Ich werde nur eine Sache erwähnen und das ist das GitHub-Repository hier von Sponge powered Mixin, dem Wiki dort speziell. Und dies war ein unglaublich nützliches Tool, um im Grunde genommen einen Blick darauf zu werfen und einfach die Mixin-Architektur zu verstehen. Und wenn ich hier runter gehe, sieht man, dass es im Grunde alles sehr detailliert erklärt sehr detailliert wie es funktioniert, wie wir das nutzen können, wie man dann auf etwas zugreifen kann und wie man kann grundsätzlich etwas auf eine bestimmte Schnittstelle umwandeln und dann grundsätzlich auch die Felder und Methoden darin verwenden. Das ist also wirklich cool und sehr nützlich und ich empfehle nur wärmstens, das durchzugehen. Also noch einmal, wenn du Java nicht kennst, dann weiß ich nicht, wie ich dir dabei helfen soll weil du definitiv etwas wissen musst, würde ich sagen, zumindest fortgeschrittenes Wissen in Java zu verstehe das wirklich. Der allgemeine Kern hier ist genau das, naja, es ist ein ziemlich verrücktes Werkzeug und benutze es wieder mit Vorsicht. Was wir also tun werden, ist in unserem Mixin-Paket, wir klicken mit der rechten Maustaste auf neue Java-Klasse und nennen dies die Modus-Entität Data Saver. Dies ist nur der Name , den ich gebe. Das wird hier völlig in Ordnung sein. Und das erste, was ich tun möchte, ist, dass ich das abstrakt machen möchte. Und der Grund, warum ich diese Abstracts machen werde , denn jede Klasse, die wir in diesem Mixin haben , die wir wirklich nicht verwenden sollten oder zumindest diese Klasse, sollten wir wirklich nirgendwo im Code verwenden. Und jetzt, wie machen wir das zu einem Mixin, ist eigentlich ziemlich einfach. Wir bei Mixin genau hier. Und dann in die Klasse legen, wollen wir uns ändern, und dies wird die Entity, Entitätspunktklasse sein. Was jetzt sehr wichtig ist, ist, dass wir nur die Klasse importieren und sicherstellen, dass wir uns eine Netto-Mikrowellen-Entität entscheiden. Was wir tun werden, ist, dass wir der Entitätsklasse einen MVT hinzufügen . Jeder Entität wird dann auch ein MVT-Feld zugeordnet, damit wir MBT-Daten darauf speichern können. Und die allgemeine Idee ist, dass wir das in der nächsten Vorlesung verwenden werden, um benutzerdefinierte Befehle hinzuzufügen. Aber was hier sehr wichtig ist, dass dies zwar eine Voraussetzung für die nächste Vorlesung ist, aber die spezifischen Befehle, die wir in der nächsten Vorlesung machen werden , im Wesentlichen verlangen, dass wir dies tun. Und deshalb empfehle ich dringend, beides gleichzeitig zu beobachten . Also Rücken an Rücken, nun, das wird tun, ist , dass dies eine private BT-Verbindung haben wird , die als persistente Daten bezeichnet wird. Und dann wollen wir dies im Grunde mit einer guten persistenten Datenmethode gleich hier öffnen . Und was wir tun werden, ist, dass wir nur persistente Daten zurückgeben werden, aber es könnte auch null sein. Und wenn das der Fall ist, wenn persistente Daten also null sind, wollen wir diese persistenten Daten nur auf eine neue NVT-Verbindung setzen. Im Grunde genommen, dass wir in dieser Methode keine leeren, gut persistenten Daten zurückgeben in dieser Methode keine leeren, gut persistenten Daten und dieses Feld zu dieser Klasse hinzugefügt wird. Also zur Entitätsklasse genau hier. Das wird also einfach hinzugefügt, aber irgendwo wissen wir nicht wo, aber das ist völlig in Ordnung. Wir arbeiten damit. Diese beiden werden einfach hinzugefügt. Und dann möchten wir auch bestimmte Funktionen in zwei Methoden eingreifen. Öffnen wir also die Entitätsklasse erneut und lassen Sie uns suchen. Also kontrolliere F, und dann können wir genau hier nach der richtigen NVT-Methode suchen . Und was wir tun wollen, ist, dass wir hier injizieren möchten, dass wir im Grunde alle Daten in diese NVT stecken, denn dieser ist diejenige, die gespeichert wird nachdem die Welt im Grunde genommen gespeichert hat. Wir möchten also, dass dies auch unsere benutzerdefinierten Daten enthält. Und dann gilt das Gleiche für die Lese- und BT-Methode genau hier, wo wir das tatsächlich rausbringen wollen. Das ist also der allgemeine Kern hier. Was wir also wollen, ist eine geschützte Lücke und das wird einfach injiziert werden, richtig? Methode. Der erste Umfang davon ist Umfang der tatsächlichen Methode, die wir wollen. Die richtige MDT-Methode hatte eine nb t-Verbindung als Parameter. Wir werden sagen, dass MVT diesen MBT tatsächlich auch nennt. Wir können uns das noch einmal anschauen, oder? Also richtig, MET, MET Verbindung. Und weil es auch eine MVT-Verbindung zurückgibt. Was wir verwenden müssen, ist, dass wir die Rückrufinformationen zurückgeben müssen , diese Informationen unterstreichen, das ist in Ordnung. Wir werden diesen sowieso überhaupt nicht benutzen. Und dann werden wir es tun, wir werden nur sagen ob die persistenten Daten sind, also verweist dies noch einmal auf das Feld hier. Wenn das nicht null ist, aber wenn Daten vorhanden sind, werden wir einfach die tatsächlichen Daten dort hineinlegen. Also nicht als String, sondern nur als Daten. Und wir nennen das nur die MCQ, MC gröbere Baumwollunterstrich-Daten. Das wird gut werden. Und dann wollen wir hier tiefere Systemdaten einbringen. Wenn also etwas in den persistenten Daten enthalten ist, werden wir dies hier in dieser NDT-Verbindung speichern, was es dann im Grunde so macht , dass dies auch in der Welt gespeichert wird. Jetzt müssen wir hier ein Attribut oben auf der Methode hinzufügen , und es gibt das Objektattribut mit dem Methodennamen. Das ist also richtig NVT. Dann müssen wir angeben, an welcher Position wir das machen werden, und wir werden das bei, bei und dann bei allen Obergrenzen tun . Dies bedeutet also, dass dieses Jahr zu Beginn ausgeführt wird, nachdem die Methode begonnen hat auszuführen , sozusagen in der ersten Zeile ausgeführt wird. Das heißt, das ist die allgemeine Idee. Und dann den anderen werde ich tatsächlich kopieren. Das ist nichts zu verrückt. Die Inject-Lese-Methode hat hier nur die Read- und B-Tier auch den Kopf, auch NVT, da dies der Parameter der Methode ist. Und anstatt einen Rückruf für die Rückgabe zu haben , hat dies eine normale Rückrufinformationen und dann ändern Sie tatsächlich auch das Schlüsseljahr. Das ist also eigentlich sehr wichtig. Und im Grunde nur sagen: Hey, wenn dieser Schlüssel existiert, dann werden wir die persistenten Daten auf das setzen , was wir unter dem Schlüssel finden. Da gehst du. Das ist also eigentlich alles , was wir hier wirklich tun müssen. Und es gibt noch eine wichtige Sache, die wichtig ist. Und das ist, dass wir eine Schnittstelle implementieren müssen . Denn im Moment können wir, weil es sich um eine abstrakte Klasse handelt, weil es sich um eine abstrakte Klasse handelt, nichts an diese Klasse bitten. Was wir wollen, ist, dass wir ein Interface wollen, da jede Klasse in Java auf jede Schnittstelle umgewandelt werden kann. Also werden wir sagen, dass ich Entity Data Saver habe. Und das wird buchstäblich nur eine einfache Sache haben. Und das ist eine NBC-Verbindung, die persistente Datenmethode erhält. Das ist es, was die Schnittstelle hat. Und dann werden wir nur sagen, dass Implementierungen I Entity Data Saver hier auch die Add-Override hinzufügen wird , nur damit wir wissen, dass wir diese Methode überschrieben haben, aber das ist so ziemlich alles, was wir brauchen zu tun. Also diesen hier brauchen wir, damit wir dies tatsächlich auf eine bestimmte Entität bezeichnen können . Denn wenn wir während der Entwicklung nur eine Entitätsklasse haben, hat dies natürlich während der Entwicklung nur eine Entitätsklasse haben, nicht die persistenten Daten, so dass das nicht funktionieren würde. Jetzt gibt es noch einen weiteren Schritt, den wir tun müssen, und das heißt, wir müssen in den Ordner „Assets sind Resources“ genau hier gehen , tatsächlich in den McQs Mixin Jason, und den Namen der Klasse hier hinzufügen in den Mixins. Dies ist jedoch der Modus-Entitäts-Datensparer. Und das ist so ziemlich alles , was wir hier wirklich tun müssen um in diesem Fall einen Ein-Mixin herzustellen. Also ändern wir im Grunde die Klasse, die wir hier definiert haben, und fügen all diesen Jazz hinzu. Nun werden wir noch nichts sehen , obwohl das, was passiert, im Grunde in der nächsten Vorlesung gezeigt wird. Ich wollte dies jedoch trennen, weil es manchmal, weißt du, so ist es speziell Mixin. Und dann wird der nächste Befehle geben und es wird Dinge geben , die spezifisch für Befehle sind. Wir müssen dies auch nutzen. Im Grunde genommen wird die Demonstration in der nächsten Vorlesung gezeigt. Also sollte das Mischen auf jeden Fall vorsichtig gehandhabt werden, besonders wenn Sie Anfänger oder Fortgeschrittene in einem Java sind , empfehle ich dringend, es langsam zu nehmen. Geh nicht in den Verrückten damit. Es gibt immer Beispiele auf GitHub und ich kann das Wiki auch wirklich nur wärmstens empfehlen. Es ist eigentlich richtig gut. Du musst dir nur Zeit nehmen, es durchlesen. Nehmen Sie sich im Grunde einfach Zeit. Das ist die beste Idee hier. Und mach auch nicht verrückt damit weil es ein sehr mächtiges Werkzeug ist, aber es könnte auch theoretisch, ich meine, ziemlich die Gesamtheit von Minecraft brechen ziemlich die Gesamtheit , wenn du deinen Mod hinzufügst. Sei also auf jeden Fall vorsichtig damit, oder? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wenn etwas unklar ist, zögern Sie bitte nicht, in den Fragen und Antworten zu fragen , sonst sehe ich Sie in der nächsten Vorlesung. Also ja. 72. (Zwischen) Erstellen Benutzerdefinierte Befehle: Alles klar, willkommen zurück beim Stoffpferd für 118. In dieser Vorlesung werden wir Minecraft benutzerdefinierte Befehle hinzufügen . Das ist sehr wichtig. Die letzte Vorlesung, in der wir über Mixins sprechen ist eigentlich Voraussetzung für diese Vorlesung. Wenn Sie es also nicht gesehen haben, schauen Sie es sich bitte an und legen Sie grundsätzlich alles in ihre Kohle, das natürlich auch im GitHub-Repository oder einer Einzelperson verfügbar ist . Oder Sie müssen das Mixin im Grunde auch Ihrem Modell hinzufügen. Andernfalls können Sie dieser Vorlesung nicht folgen. Um also benutzerdefinierte Befehle hinzuzufügen. Wenn wir in unser IMC-Kurspaket gehen, klicken Sie zunächst mit der rechten Maustaste auf ein neues Paket namens Befehl. Und drinnen werden wir zwei neue Klassen erstellen, die als Return Home-Befehl bezeichnet werden. Und dann auch das auf Kommando. Jetzt siehst du vielleicht schon, wo das hinführt. Wir werden im Grunde zwei Befehle machen. Eine für Sie, um Ihr Zuhause einzurichten und eine für Sie , um im Grunde zu dieser Heimatposition zurückzukehren. Jetzt werde ich tatsächlich den Inhalt beider Klassen kopieren , weil dies dies ein bisschen einfacher machen wird und ich es erklären werde , während wir weitermachen. Nun, lasst uns zuerst den Befehl set home ausführen. Und ich kopiere das einfach hier rein. Und der gesamte Code ist natürlich wieder nur wieder verfügbar und GitHub Repository. Und so haben wir eine Registermethode, eine öffentliche statische Void-Register-Methode und ein öffentliches statisches int, eine Run-Methode. Diese Run-Methode wird genau hier in dieser Ausführung aufgerufen. Und dann sieht man, dass wir hier zwei Literale haben. Das ist also im Grunde das , was glücklich ist, was hier passiert. Also muss man im Grunde genommen einen Schrägstrich eingeben und dann den ersten hier zu Hause. Dann fügen wir ein hinzu , dann müssen wir das hier als zweites Wort hinzufügen. Dies ist also im Grunde der Befehl, den wir in Ohm Slash Home Set setzen müssen. Und dann wird es das alles genau hier ausführen. Das ist der allgemeine Kern von diesem und der Befehl run. Sie können sehen, dass der Spieler aus dem Kontext bekommen hat . Der Quellplayer wird in einen Entitätsdatensparer umgewandelt. Aber das ist die Schnittstelle, die wir in der letzten Vorlesung erstellt haben. Und das ermöglicht es uns im Grunde, die Methode get persistente Daten aufzurufen , die Methode get persistente Daten dann ein int-Array mit dem Namen home pass dort zu platzieren. Und es wird im Grunde nur in die Heimposition des Spielers bringen . Und am Ende wird hier auch sagen, Feedback mit literarischen Texten zu Hause an dieser speziellen Position zu senden Feedback mit literarischen Texten . Das ist so ziemlich alles , was es wirklich tut. Der Befehl set home ist wirklich nicht so kompliziert. Alles in Betracht gezogen. Sicher, wir haben diese Befehlssyntaxausnahme ausgelöst. Dies ist nur der Fall. Wir brauchen das nur im Grunde, da dies ein Befehl ausführen für einen well Befehl ist . Ich schlage auch dringend vor, Ich schlage auch dringend vor einen Blick auf den Command Manager genau hier zu werfen. Wenn ich also mit der mittleren Maustaste darauf klicke, siehst du hier alle Vanilla-Befehle . Wie Sie sehen können, gibt es viele von ihnen. Und wenn Sie eine bestimmte Sache haben , die Sie mit Befehlen machen möchten. Wenn Sie also einen benutzerdefinierten Befehl haben möchten, können Sie sich diese im Grunde ansehen. Und schauen Sie sich zuerst an, wie sie es machen. Also im Grunde, okay, wie funktioniert der Schleifenbefehl eigentlich? Nun, das ist es, was ausgeführt wird. Sie können also ausführen, einfügen, einfügen, block ausführen sehen , dass es eine Menge Dinge gibt die Sie im Grunde sehen können, wie es funktioniert. Eigentlich gibt es eine Menge Sachen. Und das hier ist die Registrierung dafür. Und das wird natürlich die Sache sein, bei der die meisten Menschen so sind, oh mein Lord, dass das eigentlich verrückt ist . Und das ist der Fall. Wenn Sie wirklich, sehr komplexe Befehle haben möchten , wird es sehr komplex sein. Es wird einfach der Fall sein. Eine Sache, die ich sagen werde , ist, dass ich nur unter bestimmten Umständen helfe , wenn Sie einen benutzerdefinierten Befehl haben und im Q und a fragen, weil sie so kompliziert werden, es sehr, sehr schwer ist, wirklich zu graben. Es ist einfach das, was es ist. Aber lassen Sie uns einfach mit unserem Beispiel hier fortfahren. Die Command Manager-Klasse kann ich also wärmstens empfehlen. Und dann gehen wir auch zum Return Home-Befehl. Und lassen Sie uns das auch einfach kopieren. Also lasst uns einfach den Inhalt hier holen. Und wieder einmal ist das auch nicht allzu verrückt. Es ist nur so, dass Sie in diesem Fall nach Hause schneiden und dann zurückkehren. Und dann läuft es wieder. Es führt den Befehl run genau hier aus, der den Spieler erneut auf das Auge podcastt Entity Data Saver erhält hier die Home-Position und die Länge hier ist ungleich null. Dann wissen wir, hey, das bedeutet, dass das etwas anderes enthält. Wir werden nur sagen, dass keine Heimatposition festgelegt wurde , dies oder jenes war absolut sicher. Dann kriegen wir hier die Heimatposition und sagen, dass wir den Teleport zu genau dieser Position bitten. Und ich sage, dass der Spieler nach Hause zurückgekehrt ist. Das ist alles, was wir hier wirklich machen, ist nichts zu verrückt. Und jetzt gibt es zwei Dinge , die wir brauchen, nämlich Ereignisse. Jetzt wird eines der Ereignisse wirklich sehr einfach sein. Also werden wir in unsere weiteren Register gehen. Dies hier ist spezifisch für jeden Befehl, also müssen Sie dies für jeden Befehl tun , den Sie hinzufügen. Wir wollen im Grunde eine neue private statische Lücke machen, eine Registerbefehlsmethode ausfüllen. Und so wie wir das tun, sagen wir Befehlsregistrierung, Rückruf, dieses sagen wir Befehlsregistrierung, Rückruf, Ereignisregister, sagte Home, Befehl Doppelpunkt, Doppelpunkt Register. Und wir werden das einfach mit Control D duplizieren. Ich sage zurück nach Hause Befehl, registriere dich. Und dann rufen wir das hier auf. Also registriere Befehle, und dann ist alles in Ordnung, aber das muss grundsätzlich für jeden Befehl getan werden. Und jetzt werden wir auch ein bestimmtes Ereignis hinzufügen, nämlich die Serverplayer-Event-Kopie von, denn die Idee ist, dass wir, wenn der Spieler stirbt, tatsächlich die NVT-Daten vom toten Spieler kopieren müssen , sozusagen an die neue Entität. Das ist jedoch die allgemeine Idee. Dies ist auch ein sehr lockerer Einblick in Ereignisse. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens event. Und dann werden wir innerhalb der Erde eine neue Java-Klasse machen. Und wann könnte dies die Mod-Layer-Ereigniskopie von einem langen Namen nennen, aber das wird in Ordnung sein. Und dann funktioniert das im Grunde genommen eine bestimmte Schnittstelle. In diesem Fall das Server-Player-Ereignis , das von genau diesem kopiert wird. Und dann werden wir die Methode hier einfach implementieren. Und jetzt wird diese Methode jetzt aufgerufen oder sie wird aufgerufen, sobald wir sie registriert haben, wenn dieses Ereignis ausgelöst wird. Das ist also das Wichtigste. Und du kannst sehen, dass es einen alten Spieler, einen neuen Spieler und einen Lebenden gibt, wir eigentlich nicht brauchen werden. Ich kopiere das einfach vorbei. Wieder einmal gibt es wirklich nur drei Zeilen, aber wir werden nur den alten Spieler bekommen und der neue Spieler wirft beide in den Datensparer der Entität. Und dann erhalten wir den neuen Spielern nur dauerhafte Daten, indem wir die alten Ebenen oder die ursprünglichen Spieler im Vergleich zu neuen Daten einfügen. Das ist buchstäblich alles, was wir hier machen. Und wie wir uns wieder in den Mod-Registern registriert haben . Und so registrieren Sie sich im Grunde genommen alle Ereignisse, privat, statisch, nichtig, registrieren Ereignisse. Und das ist ziemlich genau das Gleiche, da das Callback-Ereignis zur Befehlsregistrierung sozusagen auch ein Ereignis ist. Wir werden sagen, Server-Spieler-Events Punktkopie aus dieser Zeit, das Ereignis hier, das sehr wichtig ist, nicht die Klasse was das Ereignis oder die Schnittstelle, das Ereignis Registrieren, Neuer Modus Spielerereignisse kopieren von, und das war's. Wir könnten das auch alles in der Reihe machen. Ich empfehle einfach , es so zu machen. Ich denke, das ist ein bisschen sauberer. Es wird gut werden. Ich denke, dass es Ihnen völlig gut gehen wird, aber das ist eigentlich so ziemlich alles, was Sie tun müssen. Natürlich muss man das auch genau hier nennen. Also registriere dich, registriere jetzt Befehle, aber Registry Fence sie vor nur genug, das ist eigentlich alles davon. Jetzt ist dies definitiv ein engagierterer Prozess, insbesondere das zu schreiben, oder? Also das noch einmal, viel Java-Wissen, nur über diese Summe nachdenkst, okay, wo bekommst du die Spielerposition? Wie kann man es richtig speichern, in einem int-Array? Solche Sachen sind definitiv komplizierter. Und wenn Sie kompliziertere Ideen für benutzerdefinierte Befehle haben , es zwar nicht einfacher, aber es wird in Ordnung sein. Ich bin mir dessen sicher. Aber mal sehen wir vorerst, ob es funktioniert oder ob es in Minecraft wieder aufprallt. Also lasst uns zuerst Slash Home sehen und wir bekommen, dass es darauf hindeutet , dass das wirklich gut ist. Rufen wir zuerst zurück. wurde keine Heimposition gesagt Das ist sehr gut, dass wir keine Fehler oder irgendetwas bekommen , das grundsätzlich kaputt geht. Und lasst es uns genau hier einstellen. Oppositionshaus bei dieser Gelegenheit scheint in Ordnung zu sein. Lasst uns einfach von dort weggehen. Und sagen wir einfach nach Hause, zurück und wir sind zurückgekehrt, das ist ziemlich gut. Lasst uns eigentlich den Spieler hier haben. Lass uns einfach aufspielen und sie gehen. Das ist Antwort. Jetzt sind wir im Grunde weit davon entfernt und dann können wir Home Return sagen, und es funktioniert immer noch. Und jetzt nicht zuletzt fliegen wir einfach ein bisschen den ganzen Ozean. Lasst uns schließen und das speichern. Lasst uns wieder in die Welt eintreten. Und mal sehen , ob das auch mit dem Slash Home Return nach Hause funktioniert, ist dem Slash Home Return nach Hause im Grunde wieder auf der Welt zurück. Und das tut es, alles funktioniert gut, oder? Aber das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und erfährt vom Neuen. Wenn Fragen bestehen bleiben, können Sie natürlich gerne in den Fragen und Antworten stellen. Ich werde wahrscheinlich nicht zu sehr detailliert helfen, wenn Sie einen bestimmten Befehl haben , den Sie implementieren möchten, Sie müssen einfach eine Menge Sachen ausprobieren und hoffentlich können Sie es verstehen, richtig, aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und er erfährt von dem Neuen. Und wir sehen uns in der nächsten Vorlesung. Also ja. 73. (Fortgeschrittene) Hinzufügen benutzerdefinierte Blumen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Blume hinzufügen , oder? Also navigieren wir zu unserer Modell-OCS-Klasse. Und da drinnen werden wir einfach über die Rübenernte kopieren. Nun sehr wichtig, da dies den Registerblock ohne Blockelement verwendet hat . Wir müssen das ändern. Das ist sehr wichtig. Sonst werden wir auf ein Problem stoßen und das wird hier die rosa Rose mit einem Namen sein . Denken Sie an Zeilen und unterstrichen Sie Zeilen. Und dann müssen wir natürlich auch die Modusgruppe hinzufügen, mehr Artikelgruppe Startpferd, damit wir dies in der richtigen Artikelgruppe haben. Dann ist dies kein mütterlicher Block, sondern ein Blumenblock. Und der Blumenblock nimmt drei verschiedene Parameter auf. Der erste ist ein Statuseffekt. Wir werden also sagen, dass dies Auswirkungen , die sagen wir glühend und eine Defekt-Ration. Interessanterweise ist dies in Sekunden. Wir müssen tatsächlich etwas angeben, das nicht zu groß ist, nichts wie 200 oder ähnliches. Und dann werden wir die rosa Tulpe kopieren . Warum nicht? Richtig, und das ist eigentlich der Block erledigt. Lasst uns nun zu den JSON-Dateien übergehen. sind also interessant. Die eigentliche Blocksituation ist damit nicht allzu verrückt. Kopieren Sie das übrigens auch irgendwie haha, lassen Sie uns dies auch der initialisierten Methode hier im MOOC-Kurs-Client hinzufügen . Dies wird die rosa Rose sein, sehr wichtig, die wir auch dazu hinzufügen. Man sieht, dass der Block sagt, dass Jason nicht so verrückt ist. Und dann natürlich wird die Übersetzung hier nur rosa Unterstrich-Zeilen sein. Und dann hier rosa Rose ohne Unterstrich, rosa Rose, los geht's. Aber das Blockmodell ist hier ein bisschen anders. Das wird also das Interessante in diesem Tutorial sein , Sie können sehen, dass dies hier das Elternkreuz hat, und dann sind die Texturen auch kreuzt, und dann zeigt es auf die rosa Rose außergewöhnlicher Blockordner. Und das ist auch sehr interessant, weil das Artikelmodell hier genau die gleiche Textur erreicht. Anstatt ein normales Elementmodell zu haben , das mit einem Block verknüpft ist, in dem es kurz ist, zeigt den Block irgendwie in 3D an. Dieses Mal nehmen wir eigentlich einfach die gleiche Textur an, verwenden sie aber als Artikeltextur. Und dann werden wir das auch kopieren, wird dem Ordner „ Block-Extras“ hinzugefügt. Und das ist so ziemlich alles , was wir wirklich tun müssen. Also mal sehen, ob es funktioniert oder ob es zurückspringt und Minecraft-Dichte sehen kann, dass die rosa Rose dem Spiel hinzugefügt wurde, und ich denke nach unten. Und es sieht echt, echt verdammt cool aus. Das ist also wirklich erstaunlich. Nun, aber das war es schon für diesen sehr kurzen Vortrag hier. In der nächsten Vorlesung werden wir uns tatsächlich ansehen, wie Sie die rosa Rose oder den Blumenblock auch zu einem Topf hinzufügen können die rosa Rose oder . Und ich schätze, wir sehen uns in der nächsten Vorlesung. Oh, ja. 74. (Fortgeschrittene) Blumen: Alles klar, willkommen zurück beim Stoffpferd für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Minecraft eine benutzerdefinierte Palette hinzufügen können . Das ist eigentlich sehr einfach und was wir tun werden, ist, dass wir die ewige Ernte hier tatsächlich kopieren werden, weil wir den Block ohne kaputten Gegenstand wieder verwenden müssen. Und das werden die rosa Unterstrich-Reihen der Töpfer sein. Und dann der gleiche Name hier, getopfter Unterstrich, pink, unterstrichen Zeilen. Und das wird ein Blumentopfblock sein. Jetzt wird der erste Parameter hier tatsächlich mehr Blöcke sein , die das Ego wachsen und wachsen lassen. Und dann werden die Einstellungen von dem Teil übernommen , dass Allium die Sets unser Leben in diesem Fall ein wenig einfacher machen werden . Was dann im Kunden hier sehr wichtig ist, müssen wir diesen Render später auch für das Produkt Pink Rose nennen . Und das ist so ziemlich der gesamte Code, den wir brauchen. Jetzt müssen wir nur noch einen Block hinzufügen, bleibt Jason zuerst, um das zu kopieren. Eigentlich nicht zu verrückt. Dies deutet einfach auf ein Blockmodell hin. Lassen Sie uns auch den Teil hinzufügen , der grob ist. Jetzt sollte dieser nur noch nötig sein. Die eigentliche Übersetzung hier, wenn Sie auch ein modernes ins Stocken geraten haben , prüft im Grunde genommen die Namen und zeigt sie oben an. Das ist also nicht immer notwendig. Und dann ist das Blockmodell eigentlich das wirklich Interessante für den Audit-Landblock. Und das wird das sein, denn zuerst ist der Elternteil ein Blumentopfkreuz. Und dann deutet es auf eine Pflanzentextur hin. Und das deutet einfach auf die tatsächliche Textur in Ihrem Block hin, die Ihre Pflanze oder Ihr Mehl in diesem Fall verwendet , damit diese hier genau hier ist. Und das ist natürlich sehr interessant, weil wir es nicht tun, wir brauchen hier kein Artikelmodell, weil , nun, damit kein Gegenstand verbunden ist, damit kein Gegenstand verbunden weil wir es bekommen werden diesen Block indem rechten Maustaste auf den Blumentopf mit diesen bestimmten Reihen klicken. Und was auch wichtig ist, Werfen wir auch einen Blick auf den Beutentisch. Also werde ich das über alles kopieren , was dir hier natürlich im GitHub Repository oder einer Einzelperson zur Verfügung steht dir hier natürlich im GitHub Repository . Und Sie können sehen, dass wir hier im Grunde nur eine rosa Rose fallen lassen sowie den Blumenblock, eine Blumenteile. Das ist also sehr wichtig. habe ich im Grunde gerade über die Rennrodeltische hier gesammelt . Oder wir können einfach hier reingehen und wir können das IT-Zeug genau hier sehen . Und es ist im Grunde genau das Gleiche. Also keine Sorge, es ist eigentlich ziemlich einfach, oder? Und jetzt, um der Fertigstellung willen, schauen wir mal, ob es in Minecraft funktioniert oder finanziert , und ich habe bereits ein paar Pots aufgestellt und mal sehen. Da gehst du. Ich kann die Reihen dort hineinlegen und es sieht absolut atemberaubend aus. Und lass uns einfach sehen, ob ich wieder zu unserem Überleben wechsle. Dass du beide Topfende des eigentlichen Blumentropfens gehst. Das ist sehr, sehr nett. Rep, das ist es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns allerdings in der nächsten Vorlesung. Ja. 75. (Fortgeschrittene) Hinzufügen benutzerdefinierte Sounds: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir Minecraft benutzerdefinierte Sounds hinzufügen. Hinzufügen benutzerdefinierter Sounds ist also ein ziemlich einfacher Prozess an und für sich. Dieses Geräusch zu verlegen ist auch sehr einfach. Denken Sie jedoch, dass das Schwierigste oder Herausforderndste das Erhalten der richtigen Sounddateien sein könnte. Zuallererst brauchen wir dafür ein paar JSON-Dateien. Was wir brauchen werden, ist eine JSON-Datei im MC-Kurs. Älter genau hier. Klicken Sie also mit der rechten Maustaste auf eine neue Datei namens Sounds dot-dot-dot Jason. Und dann erstellen wir im selben Ordner einen neuen Ordner namens Sounds. So sehr wichtig, dass beide Sounds und Sounds genannt werden. Das ist also sehr wichtig. Und ich werde tatsächlich schon einen dieser Sounds kopieren . Dies wird die Sounddatei sein. Wie Sie sehen können, fand der Unterstrich der Dowsing Rute einen Unterstrich oder das OGG. Es ist sehr wichtig ist, dass alle Ihre Sounddateien OGG sein müssen und sicherstellen, dass sie alle auf Mono eingestellt sind. Aber sie können nur den Mono-Beispieltyp oder den Modalkanal haben , sonst werden sie Ihnen Probleme damit nicht mögen, denken Sie daran. Und sie müssen OGG-Dateien sein und nicht nur MP3-Dateien nehmen und umbenennen. Sie müssen einen Konverter besorgen , um sie richtig zu konvertieren. Denken Sie also daran und in den Klängen Jason müssen wir sie definieren. Lasst uns also einfach geschweifte Klammern einsetzen und dann schreiben wir im Grunde in den Namen. Das ist also eigentlich der Name. Wir werden dies unter dem Unterstrich der Dowsing Rod registrieren , Unterstrich gefunden. Oder jetzt nehme ich diesen Namen normalerweise gerne an und lasse ihn genauso wie die Datei sein. Es macht es einfach viel einfacher. Dann fügen wir hier einen Untertitel hinzu. Dies wird der Untertitel Doppelpunkt und ein MC-Kurs-Doppelpunkt oder Dowsing sein, wir werden denselben Namen annehmen. So streng werden sie vermarkten, kopieren, C steuern und dann V steuern und dann Komma. Dann haben wir eine Liste von Sounds. Also das wird eine Liste sein, also Klammern hier. Und dann werden wir von hier drinnen den MC Coors Colon Dowsing Rod finden lassen . Und das muss der Name dieser Datei sein. Dies ist natürlich nur Ihre Modell-ID. Abhängig von Ihrer Melodie ändert sich dies, dann ist der Untertitel tatsächlich etwas , das Sie in den Lang-Ordner legen können, wie jede JSON-Datei, die angezeigt wird, wenn Sie Untertitel haben und dieser Klangort , dann wird dieser angezeigt. Das ist also etwas , das Sie jetzt auch hinzufügen können , um die Sounds grundsätzlich zu registrieren. Was brauchen wir? Nun, in unserem MC-Kurspaket hier klicken Sie mit der rechten Maustaste auf ein neues Paket namens sound. Und dann werden wir drinnen eine neue Java-Klasse namens Modus Sounds erstellen . Und das wird eigentlich ziemlich einfach sein. Wir benötigen nur ein privates statisches Sound-Ereignis, altes Register-Sound-Ereignis mit einem String-Parameter namens name. Und dann machen wir einfach folgendes. Wir werden nur eine Kennung, eine Board-ID, erstellen, die eine neue Kennung mit dem MOOC-Kursmod meine ID und den Namen ist. Und dann geben wir die Registrierung zurück, die sich mit einem Registry-Punkt-Sound-Ereignis die sich mit einem Registry-Punkt-Sound-Ereignis mit der ID und dem neuen Sound-Event registriert. Du tötest Ereignis und gibst die ID ein. Auch hier erstellen wir eine ID, weil wir sie zweimal weitergeben müssen, einmal zur Registrierung und einmal für das eigentliche Sound-Event. Und wie sieht das aus? Nun, öffentliches statisches Sound-Ereignis namens Dowsing, Rod-Unterstrich, gefundener Unterstrich oder gleich einem Registerlösungsmittel. Jetzt unter Unterstrich, fand der Stab Unterstrich einen Unterstrich. Und dann stellt sicher , dass dies genau hier, was hier drin geschrieben ist, genau das Gleiche ist wie dieses. Und das ist es. Und dann sollte es in Ordnung sein. Und das ist so ziemlich alles, was wir tun müssen, um den Sound zu registrieren. Jetzt müssen wir es natürlich irgendwie spielen. Und was wir tun werden, ist, wenn wir eine oder in der Dowsing Rute finden, dann werden wir diesen Sound spielen. Oh, lass uns einfach hier reingehen. Wir wissen also, dass dies gefunden wird, Block wahr. Wir wissen also, dass dies der Moment ist, in dem dies passiert. Und was wir brauchen, ist die Welt, wie die Welt hier. Und wir können einfach sagen, Ton abspielen und es dem Spieler übergeben, eine geklickte Position, in der wir uns befinden. Das Geräusch von ihm klingt etwas, Dowsing Rod gefunden hat oder die Sound-Kategorie, wir werden einfach Blöcke nehmen Das ist in Ordnung. Volume 1 und Pitch eins auch. Es gibt auch eine andere Möglichkeit , wie das zu platzieren, das ist über den Spieler. Das sollte also auch funktionieren, damit Sie den Spieler sehen können, um Sounds abzuspielen. Es gibt verschiedene Möglichkeiten, aber das ist auch in Ordnung. Das sollte hier in diesem Fall völlig in Ordnung sein. Und das sollte dann im Grunde diesen Sound hier spielen. Also schätze ich, um der Vollendung willen, mal sehen, ob es funktioniert. Alles klar, Francis zurück in Minecraft, lass uns einfach sehen und versuchen, ob wir ein ODER finden können. Und sie ließen mich einfach schnell das Geräusch ein wenig mehr aufheben. Da ist es. Und ich kann es natürlich spammen. Ich kann es einfach gedrückt halten. Und irgendwann wird es nervig. Und das wirklich Coole ist das, weil wir es unter die Kategorie „Blöcke“ stellen. Jetzt spielt es nicht mehr, weil wir die Blocksounds ausgeschaltet haben, also ist das wirklich cool. Das ist etwas, worüber man grundsätzlich nachdenken sollte. Und so einfach ist es eigentlich, Minecraft einen benutzerdefinierten Sound hinzuzufügen , oder? Und ich höre dich schon schreien, nun, was ist mit dem Hinzufügen zu einem Block, oder? Was kann ich das brechende Geräusch eines Blocks und ähnliches nicht ändern ? Natürlich. Und genau das werden wir in der nächsten Vorlesung sehen, in der wir im Grunde genommen das Brechen, Platzieren und Steppen hinzufügen werden. Es gibt noch ein paar mehr, aber das wird im Grunde in der nächsten Vorlesung geschehen. Das wäre also für diesen hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 76. (Fortgeschrittene) Benutzerdefinierte Block: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir dem Spiel eine Bullock-Soundgruppe des Kunden hinzufügen . Und was ist eine Block-Sound-Gruppe? Nun, eine Block-Song-Gruppe besteht aus fünf verschiedenen Städten, und das sind die Pause, der Schritt, der Ort des Hits und der volle Klang. Und das werden wir im Grunde hinzufügen, um einen benutzerdefinierten Sound oder unsere Neuberechnungslampe zu erzeugen. Aber das ist die allgemeine Idee. Zuallererst kopiere ich die fünf verschiedenen OGG-Dateien. Also die Geräusche genau hier, und wir werden diese einfach kopieren. Diese stehen Ihnen natürlich auch zum Download zur Verfügung . Und dann gehen wir auf unsere Sounds ein, Jason und ich werden auch die Inhalte kopieren , die wir brauchen werden. Das ist so ziemlich genau das Gleiche wie das, nur mit anderen Werten hier. Wir haben gerade die Telekommunikationslampe kaputt. Dann für die Untertitel so ziemlich die gleiche Rate oder MOD-ID und punkten Sie dann , wie immer der Name hier ist, wenn der Sound genau wie der Sound genau hier benannt wird . Das ist so ziemlich alles, was es dazu gibt. Das sollte also insgesamt nicht zu verrückt sein. Und was wir dann in unserem Modus tun müssen , klingt genau hier. Wir werden das nur duplizieren und wir werden dies die Nachzählung kommen Unterstrichenlampe nennen , Unterstrich Pause. Das ist also die erste, Ergebnis, Unterstrichenlampe, Unterstrich Pause. Und dann können wir das fünfmal duplizieren. Der zweite wird dann das Schrittgeräusch sein. Extra, ändere den Namen auch hier und vergewissere dich, dass er richtig geschrieben ist. Das ist auch sehr wichtig. Und das wird der Ort sein, an dem hier klingt, an diesem Ort, dieser Serie klingt und auch dort getroffen wird. Letzt haben wir dann den vollen Sound. Und dann hier, ALLES auch. Richtig, das sind also die fünf Sound-Events, die wir brauchen werden. Sie könnten auch darüber nachdenken, sie auf andere Weise zu retten, besonders wenn Sie viele verschiedene haben, aber das wird in Ordnung sein. Das ist eigentlich in Ordnung. Und jetzt brauchen wir natürlich auch eine Block-Sound-Gruppe. Nun, weißt du, wir könnten das entweder in einer separaten Klasse machen oder wir können es einfach in diese Klasse schreiben. Das wird auch klappen. Es wird also eine öffentliche statische, letzte Block-Soundgruppe oder ein Cout Come-Unterstrichen-Sounds sein letzte Block-Soundgruppe . Und das ist gleich einer neuen Sound-Gruppe mit einem F1, F. Das ist also nur die Tonhöhe und die Lautstärke. Und dann haben wir im Grunde alle fünf dieser Sounds Modus-Sounds, DOT, Bremse. Modus-Sounds, Punkt, Schritt, Modus-Sounds, Punkt, Lays. Der Modus klingt Holländisch. Alles. Eigentlich glaube ich, dass es zuerst getroffen wird und dann klingt sein Modus dot o, ja, in dieser Reihenfolge. Aber lasst uns einfach mal nachsehen. also mit der mittleren Maustaste auf die S-Block-Soundgruppe. Und doch ist ein voller Sound der letzte. Das sollte hier stimmen. Und dann wird diese Soundblock-Gruppe, wie werden wir sie benutzen? Wir gehen einfach in die Schlammblock-Klasse. Und dann können wir für unsere Telekommunikationslampe genau hier einfach einen weiteren Parameter zu den Blockeinstellungen hinzufügen einen weiteren Parameter zu , und das werden diese Geräusche sein. Und dann sagen wir hier einfach, Modus klingt das oder ein Kalzium klingt. Formatieren wir das einfach ein bisschen anders, das Ego, und das wäre es. Das ist so ziemlich alles , was wir tun müssen. Natürlich brauchen wir die Geräusche, Jason. Definiere alles hier drin, mache die Sounds genau hier, die Dateien in unserem Sounds Ordner nochmal bewerten, korrekte OGG ist korrekt formatiert oder konvertiert. Und auch in Mono, sehr wichtig. Und dann füge einfach die weiteren Sounds hinzu. vorerst sehen, ob es funktioniert, um der Fertigstellung willen Lassen Sie uns vorerst sehen, ob es funktioniert, um der Fertigstellung willen. Ich habe bereits Verdächtige in Minecraft gefunden. Und lasst uns zuerst die Lautstärke nur ein bisschen nach oben verschieben , damit wir das tatsächlich haben. Mal sehen wir das Set, den eigentlichen Platzierungston. Das stimmt genau. Das ist vollkommen Brauch. Lass uns das brechende Geräusch sehen. Das ist erstaunlich. Das funktioniert also auch. Das setzt sich aus, setze ein paar hier unten und lasst uns darauf gehen. Sie gehen. Und das sollte auch funktionieren, wenn ich der folgenden Folie gefolgt bin, ich bin mir eigentlich nicht hundertprozentig sicher, warum das nicht funktioniert. Das ist sehr wütend. Ich glaube, dass es so funktionieren sollte. Und dann wäre der Hit-Sound das. Ich glaube. Abgesehen von dem Hit im vollen Sound scheint hier alles völlig gut zu funktionieren. Also bin ich mir auch nicht hundertprozentig sicher, wo diese genannt werden, um ehrlich zu sein, denn normalerweise sollte es die Kraft dafür sein. Stimmt das? Also wenn du drauf fällst, aber es ist definitiv nichts da. Und dann scheint es auch nicht ganz zu funktionieren. Also lasst uns einfach herausnehmen wie ein Pick x, y. Also mal sehen, was das, okay, das Breaking definitiv funktioniert. Aber es scheint nur das Herbstgeräusch zu sein , das nicht funktioniert. Aber manchmal passieren diese Dinge. Also los gehst du. Alles klar. Nachdem ich es mir noch einmal angesehen habe, bin ich mir immer noch nicht hundertprozentig sicher, warum sie hier fallen, aus irgendeinem Grund nicht funktioniert , das heißt einfach nie. Aber was auch immer der Fall sein mag, der volle Klang ist wirklich nicht etwas , das zu verrückt oder zu wichtig ist. Ich würde sagen, Oh, das wird wahrscheinlich völlig in Ordnung sein. Wie auch immer der Fall sein mag. Die anderen arbeiten natürlich, die in diesem Fall viel wichtiger sind . Also sollte alles in Ordnung sein und das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und er hat etwas Neues gelernt. Wir sehen uns aber in der nächsten Vorlesung. Ja. 77. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Music: Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Musikdiskette hinzufügen . Eine benutzerdefinierte Musikdiskette, schlimmer noch, erfordert auch ein benutzerdefiniertes Sound-Event. Was wir tun werden, ist, dass wir das noch einmal kopieren werden . Es wird tatsächlich sehr einfach zu verstehen sein. Du siehst, dass wir hier einfach den Namen haben. Dies ist wieder der Name , den wir in nur einem Moment in der Modell-Sound-Klasse geben werden. Und dann bezieht sich der Name hier natürlich auf eine Sounddatei, wieder auf eine OGG-Datei. Und in diesem Fall ist es umso wichtiger, dass dies in Mono ist, denn wenn es in Stereo ist, dann werden Sie dies im Grunde auf der ganzen Welt hören , dem gesamten Server. Ansonsten muss es Mono sein, sehr wichtig, in diesem Fall sehr, sehr wichtig. Und lass uns gleich hier zum Modell Sounds gehen. Und lassen Sie uns das einfach kopieren und diese D-Leisten-Unterstrich-Schlägerei nennen. Und natürlich auch hier, Bar Brawl, um sicherzustellen, dass alles richtig geschrieben ist. Sehr wichtig. Und dann werden wir in der Klasse „Mehr Items “ einen neuen Gegenstand erstellen. Was wir jedoch brauchen, ist vor allem ein MOD-Musik-Disk-Element , denn der Konstruktor hier ist für uns wieder einmal nicht zugänglich. Also bewegen Sie den Mauszeiger über, erstellen Sie den Konstruktor, der super passt. Und dann werden wir einfach die Öffentlichkeit kopieren, die sie sind. Und dann müssen wir uns das nie wieder ansehen, im Grunde genommen. Und dann werden wir einfach die Rübensamen hier kopieren. Und wir werden das nur zum Barunterstrich machen Berle, unterstreichen Musik, Unterstrich Disk. Dann auch im selben Jahr unterstrichen Taktunterstrich Rollmusik Disk. Und das ist natürlich ein MOD-Musik-Disk-Element. Der erste Parameter ist die Komparatorausgabe. Was wird ausgegeben, wenn Sie einen Komparator daneben stellen? Und dann werden wir sagen, klingt nicht Barbara. Jetzt ist eine weitere sehr wichtige Sache hier, da Sie sehen können, dass dies Stream wahr ist. Das muss also stimmen, denn die Rolle des Widerhakens ist natürlich ein Strom. Deshalb liebst du, dass die Musikdiskette ein Stream ist, also ist das sehr wichtig. Und dann werden wir auch die maximale Anzahl von eins angeben, damit wir nur eine davon stapeln können. Und was dann auch sehr wichtig ist, ist die Übersetzung der E und unterstreichen uns JSON-Datei. Ich werde beide tatsächlich kopieren, weil es tatsächlich zwei gibt. Es gibt die Barb Roll Musikdiskette, die nur der Name der Diskette ist. Und dann ist die Beschreibung im Grunde das, was passiert. Weißt du, wenn du den Mauszeiger darüber fährst. Und das sagt normalerweise nur von wem Das Lied stammt und dann der Name des Liedes. Und ich habe die Lizenz auch hier hinzugefügt. Dies ist also knapp unter CC 0 oder gemeinfrei. Theoretisch könntest du diese Widerhakenrolle auch in deinem alten Modell benutzen , könnte damit im Grunde alles machen, was du willst. Aber deswegen habe ich das auch hinzugefügt. Stimmt's? Das ist so ziemlich alles, was wir brauchen, außer natürlich für ein Artikelmodell und eine Textur dafür. Aber das ist etwas, das wir jetzt so oft gesehen haben , dass es diesem Zeitpunkt eigentlich nicht zu verrückt wäre. Dies deutet auf die Textur des Friseurs oder der Musikdiskette im Item-Ordner hin, oder natürlich auch auf das Kopieren, das übergegangen ist. Also Barbaro Musikdiskette. Da gehst du. Und damit sind wir ziemlich bereit zu gehen. Und lass uns einfach hören, ob es funktioniert. Oder ich zum Beispiel zurück in Minecraft und sie können sehen die Musik dort erfolgreich hinzugefügt wurde. Und lass es uns einfach reinziehen. Und da ist es. Es ist ziemlich laut, aber es liegt auch daran, dass ich meine Musik habe. Das ist also in Ordnung. Und dieser Ort fliegt normalerweise nur ein FI davon. Man kann hören, dass es immer weniger wird . Und dann ist es komplett verschwunden. Und wenn wir zurück sind, gehen wir los, es geht weiter. Also absolut großartig. Und wir werden aminieren, es funktioniert alles völlig gut, genau wie wir es erwartet hatten. Gummi Das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 78. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Blockmodellen in Minecraft mit Blockbench: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werfen wir einen Blick auf benutzerdefinierte 3D-Blockmodelle. Und wie werden Sie diese Blockmodelle herstellen? Nun, wir werden sie mit Blockbank machen. Dies ist ein Programm , das verfügbar ist. Ich verbinde es irgendwo in den Ressourcen. Und das ermöglicht es Ihnen im Grunde, sehr cool aussehende 3D-Modelle für Ihre Blöcke zu erstellen , da es eigentlich nicht so schwer ist, hier bereits ein vorbereitetes Blockmodell für mich zu haben hier bereits ein vorbereitetes Blockmodell für , da das Oracle blaster kann. Es wird also im Grunde wie ein Hochofen sein, der speziell aus oder einem Kattun hergestellt wird, in diesem Fall n. Für dieses spezielle Beispiel gibt es zwei Dinge, die wir beachten müssen. Das erste ist also , dass Sie natürlich auch Zugriff auf diese Block Bench-Datei haben werden. Und was Sie dann tun werden, ist, dass Sie zu Dateiexport wechseln und dann Block-Schrägstrich-Elementmodell exportieren. Dies wird eine JSON-Datei exportieren, wie Sie sehen können. Und du kannst das einfach machen. Das kann ich außer Kraft setzen. Und dann wird die JSON-Datei so aussehen. Also öffne es einfach hier und du kannst sehen, wie es aussieht. Du hast die Textur hier und dann eine ganze Reihe von Elementen. sind also im Grunde die 3D-Elemente. Und dann gibt es auch Dinge , die hier im Display sind. Wir können uns auch das Display ansehen, wenn Sie hier in die obere rechte Ecke gehen , anzeigen. Und im Grunde hat sich geändert, wie es aussieht, vielleicht bist du so, Oh, das ist vielleicht ein bisschen zu groß. Du kannst so sein, Yeah, lass uns das einfach verkleinern, bis Mai 2.5 wie 0.25.25.25 oder so ähnlich ist. Vielleicht ist das die Größe, die besser ist. Und dann kannst du es auch auf der anderen Seite ändern . So etwas. Und in der ersten Person wird das vielleicht bei mir in Ordnung sein. Das wird auch gut werden. Wenn du es auf dem Kopf trägst. Es sieht sehr seltsam aus, aber sicher genug. Aber wenn es vor Ort ist, ist das vielleicht auch etwas zu groß. Vielleicht möchten Sie diesen Pilotpunkt für wann, für und wann ändern , damit Sie ihn so im Artikelrahmen haben. Vielleicht willst du das umdrehen, oder? Vielleicht sollte die Rotation so etwas sein und so etwas. Vielleicht ist das ein besserer Weg, dies zu tun. Und dann denke in der GUI tatsächlich, dass die GUI perfekt aussieht. Und hier kann man grundsätzlich eine Menge Sachen in der Blockbank ändern. Dies wird kein rein Block-Bank-Space-Tutorial sein , sondern vielmehr, wie man hier grundsätzlich Sachen aus der Blockbank holen kann . Wenn ich das auch als Modell speichere , ist das Glossar bitte. Und dann wurde es bereits als JSON-Dateien gespeichert. Wir sollten diesen Nachladen haben. Da gehst du. Und dann ändert es sich auch hier drin , damit alles in Ordnung ist. Und das ist im Grunde alles, was Sie brauchen. Also brauchen wir im Grunde diese JSON-Datei. Ich kopiere das als Blockmodell, oder? Also werden wir das als Blockmodell kopieren, in dem das 3D-Zeug schon drin ist. Was wir jetzt brauchen, ist, dass wir natürlich auch die Textur brauchen . Also lege ich das hier in die Brock-Texturen ein. Was ich jedoch tun werde, ist, dass ich auch einen neuen Ordner im Texturen-Ordner namens machines erstellen werde, und das werden wir dort hineinlegen. Dies ist natürlich nicht unbedingt notwendig, denn diese Textur wäre auch eine Blocktextur, aber ich finde es nur ein bisschen schöner. Und was wir dann tun müssen, ist, dass wir natürlich hier MC-Kerne angeben müssen und dann Maschinen den Namen schneiden. Das ist sehr wichtig , dass wir unsere Modell-ID und dann den Namen der älteren Wörter im Grunde hier hinzufügen unsere Modell-ID und dann den Namen der , und dann ist der Rest hier völlig in Ordnung. Natürlich brauchen wir immer noch ein Artikelmodell dafür. Das werden wir auch machen. Lasst uns die einfachen Dinge in erster Linie hier ausschalten , oder? Das Orakel kann also blaster, das ist in Ordnung. Das bezieht sich nur auf das Blockmodell genau hier. Und dann sagt der Block Jason, nun , vorerst werden wir einfach einen normalen machen. Die Explosionstür. Und das bezieht sich nur auf die letzte Zeichenfolge. Das wird gut werden. Und für den Block werden wir hier einfach einen ganz normalen Block machen. Wir werden einfach überschreiben, sagen wir die rosa Rose, denn das ist ein Registerblock und das ist der Orakel Malcolm Unterstrich Blaster. Dann das Gleiche hier oder es kann nicht kommen Unterstrich Blaster. Und im Moment wird es ein normaler Block sein. Aber wir werden uns das in einem Augenblick ansehen. Lassen Sie das wir hier tatsächlich ein paar Dinge ändern müssen. Wir materiellen Metall in der Mod-Item-Gruppe, Pferd, das wird völlig in Ordnung sein. Vollendung willen, fügen wir auch die Übersetzung hier hinzu oder einen Count come unterstrichen Blaster. Natürlich unterstreicht das Ergebnis keine Explosion oder sie vor. Und jetzt, genau wie ein normaler Block, haben wir ihn hinzugefügt. Jetzt fügen wir hier auch das tatsächliche nicht undurchsichtige hinzu. Das ist sehr wichtig. Und dann fügen wir es auch zum Ausschneiden hinzu. Dies sind also alle Schritte , die Sie ausführen müssen , damit diese ebenfalls richtig angezeigt werden können. Und dann werden wir im Grunde zwei Einschränkungen bei der verdienten Art und Weise sehen , wie dies eingerichtet wird , und dann werden wir auch sehen, wie wir diese beheben können. Gehen wir also in Minecraft und sehen wir uns das benutzerdefinierte 3D-Modell zum ersten Mal an. Oder wenn ich sagt, dass eine Mikrofinanzierung die Neukalk sehen kann , wurde eine Blastula zum Spiel hinzugefügt. Und wenn ich es aufstelle, sieht man, dass es zwei Dinge gibt , die sehr interessant sind. Zunächst einmal, nun, es geht nicht wirklich in die richtige Richtung, oder? Wie Sie sehen können, ist es immer in die gleiche Richtung gerichtet, die tatsächlich nach Norden sein wird, wie Sie sehen können. Aber das ist sehr interessant. Und wir haben auch, im Grunde genommen eine sehr seltsame Begrenzungsbox, die definitiv nicht ganz das ist, was Sie wollen. Das ist also, das ist eine andere, die gut ist, irgendwie repariert werden muss. Aber das sind die beiden Einschränkungen vorerst. Aber diese können beide ziemlich einfach behoben werden , oder? Um beide zu reparieren, benötigen wir dafür tatsächlich eine benutzerdefinierte Blockklasse. also in Ihrem benutzerdefinierten Paket rechten Maustaste auf die neue Java-Klasse, die als Recalc bezeichnet wird, nicht unterstrichen, tatsächlich Blasts oder Blockieren, sie gehen. Und dies wird den horizontalen Verblendblock verlängern. Sehr wichtig, dass wir uns für diesen entscheiden. Und wir werden einen Konstruktor erstellen, der super passt. Und der Grund, warum wir uns dafür entscheiden, ist, dass wenn ich nach dem Klicken auf Control H drücke, sehen Sie, dass es einige andere Blöcke gibt , die dies auch von hier aus übernehmen. Zum Beispiel, einige davon wie der Bettblock, wo es ein starkes Tor ist. Das ist sehr interessant. Und normalerweise habe ich tatsächlich erwartet der abstrakte Ernest-Block auch davon erstrecken würde. Nein, eigentlich okay. Das ist mit Entitätsblöcken. Fair genug. Aber es hat auch die gegenüberliegende Immobilie genau hier. Das ist die allgemeine Idee , denn wenn Sie den Ofen abstellen, schaut er immer in Ihre Richtung. Was wir also tun werden, ist, dass ich die Richtung hier schnell kopieren werde . Das ist also nichts zu verrücktes, nur eine große Immobilie, die dem Eigentum entspricht, beginnt zu sehen. Und ich werde noch ein paar Dinge kopieren, die Ihnen natürlich auch im Repository, GitHub Repository oder Einzelpersonen zur Verfügung stehen . Wir benötigen die Methode „Append Properties“. Wir haben das bereits gesehen und wir werden den Spiegel und die Rotate-Methode verwenden. Sie haben diese Drehung im Grunde richtig und dann erhalten sie die Platzierungszustands-Methode im Grunde so , dass die Verkleidung immer in eine Weise verwandelt wird , wie der Block Ihnen zugewandt wird. Jetzt, wenn wir die gegenüberliegenden Blöcke eine Immobilie haben, müssen wir natürlich auch den Block States JSON ändern. Es gibt auch etwas, das ich kopieren werde, aber das ist eigentlich ziemlich einfach. Sie können sehen, dass es nach Norden ausgerichtet ist, ist nur das normale Blockmodell. Und ansonsten haben wir uns einfach um 90, 180 und 270 Grad gedreht. Und Sie können immer auch die externen Bibliotheken unten rechts im Assets-Ordner überprüfen die externen Bibliotheken unten , so Minecraft-Blöcke. Und dann schauen Sie sich zum Beispiel den Hochofen an , es ist sicher. Und das wird ziemlich genau das Gleiche sein. Das einzige, was ist, dass dies auch eine Deckeleigenschaft hat, aber das wird völlig in Ordnung sein. Dies ist also etwas, bei dem man sich das im Grunde noch einmal ansehen kann und wie man es drehen muss. Und da habe ich diese Zahlen im Grunde genommen bekommen. Nun, wir werden nicht sofort wieder in Minecraft springen , denn wie wäre es jetzt mit der Begrenzungsbox? Wird der Begrenzungsrahmen eine sogenannte Voxelform sein? Und das ist die eine Sache, die in der Blockbank wirklich nur nervig ist , besonders bei diesem Modell. Es ist einfach sehr nervig, denn normalerweise würden Sie wollen, den Pivot zentrieren wollen, oder? Zuerst werden Sie sehen, dass wenn ich den Pivot richtig zentriere, es sehr seltsame Werte hat. zu empfehlen, entweder ein bisschen oben, rechts oder ein bisschen unten zu gehen rechts oder ein bisschen unten im Grunde auf oder ab zu runden. Sonst wirst du eine schlechte Zeit mit dem Drehen haben . Denn was wir tun müssen, ist, dass wir dies tatsächlich dreimal drehen müssen dies tatsächlich dreimal drehen müssen , damit wir in jede Richtung eine neue Voxel-Form erhalten. So wird es einfach sein und es ist sehr nervig. Aber das ist der beste Weg, wie ich es bisher gefunden habe zu arbeiten. Wenn es andere Möglichkeiten gibt, wenden Sie sich natürlich immer an das Q und a und erzählen Sie mir davon. also keine Sorgen. Was wir tun werden, ist, dass wir zuerst zu File und dann zu Plugins gehen und das Mod-Utils-Plug-In genau hier holen. Dies ist von JDK zwei zu zwei. Und ob das, das sehr wichtig ist , es ist nur, weißt du, du kannst einfach zur verfügbaren Suche nach Mod-Utils gehen, oder? Ich habe es bereits installiert. Deshalb kommt es nicht hier hoch. Klicken Sie auf die Schaltfläche Installieren und installieren Sie diese auf Ihrer Blockbank. Und was Sie dann haben werden, ist dass Sie alle Würfel und all die Dinge, die Sie haben, nehmen und sie unter eine Gruppe stellen müssen Würfel und all die Dinge, die Sie , Gruppen- oder Voxel-Formen, genau wie geschrieben das. Keine Leerzeichen, nichts genau so geschrieben. Und wenn Sie das haben, können Sie alle auswählen, zu Datei, Export gehen und dann Voxel-Shape exportieren. Jetzt sind wir natürlich in Garn, wir verwenden Rubrik, also wollten wir die Garnzuordnungen exportieren. Wir werden bestätigen sagen, und wir werden dies als Voxel-Form N speichern. Wie Sie sehen können, habe ich das bereits gespeichert und wir können uns das auch ansehen. Also werde ich dieses Inhärent einfach verschieben , damit wir uns das ansehen können . Aber so sieht es aus. Manchmal bekommst du diese verrückten Zahlen, was du tun musst, ist, dass du sie auf die nächste ganze Zahl runden musst. Das wird also nur ein manueller Prozess sein. Also ist diese zum Beispiel eigentlich nur eine 0, oder? Weil es drei negativ auf die Macht von negativen 15 ist, also sind es 15 Nullen. Und dann ist ein Negativ, wie ein 0,3, es ist wie das 0. Also müssen wir das manuell machen. Manchmal ist es einfach die Art und Weise, wie Block Bench manchmal exportiert wird. Es ist sehr seltsam. Das wird also einfach sein, und das ist nur die Voxel-Form. Wenn dies so ist, wie nach Norden zu schauen, müssen wir jetzt tun , wenn Sie dies um 90 Grad drehen müssen . Und das erste , was Sie in diesem Beispiel bemerken werden , ist , dass es ein wenig versetzt ist. So können Sie sehen, dass die Genauigkeit aus irgendwelchen Gründen auch immer versetzt wird, wir müssen sie tatsächlich wieder in die Mitte verschieben. Und dann wird das Norden, Ost, Süden, Westen sein. Das ist jetzt nach Westen ausgerichtet. Jetzt müssen wir wieder exportieren. Das ist wieder nach Westen ausgerichtet, oder? Also wenn ich das W ersetze und dann können wir uns das hier ansehen. Das wird auch sehr interessant sein weil wir das noch einmal machen müssen, also 0. Und dann wird das eine 14 sein und das wird 13 sein. Und was Sie sehen werden, ist, dass sich die Zahlen nur ein wenig verschieben. Und wenn Sie genug Zeit und genug Gehirnleistung haben , können Sie wahrscheinlich selbst herausfinden, wie Sie diese Zahlen ändern können. Aber das ist natürlich Wahnsinn, denn wir haben so viele Dinge hier drin. Und je komplizierter der Block wird, desto komplizierter wird das auch sein. Wir drehen es einfach noch einmal und setzen es dann natürlich noch einmal zurück, damit es gut funktioniert. Also das ist es, worüber Sie wirklich vorsichtig sein müssen , ist nicht die Nummer hier geändert, aber Sie müssen es wie mit den Pfeilen ändern, wenn Sie die Nummer ändern als jeder dieser Würfel funktioniert einfach. Einfach, einfach reinzuziehen und von sich selbst ist ein sehr seltsamer Block, was ein sehr seltsames Programm ist. Aber es ist derzeit zumindest meines Wissens das Beste, was wir haben. Leider wird dies natürlich nach Süden ausgerichtet sein. Und dann lassen Sie uns einfach sofort nach Osten drehen, was dies einfach tun kann und das dann tun. Und da gehst du. Jetzt sollten wir alles hier drin haben. Wir sagen also Exportbox oder -form oder auch den Osten. Das ist großartig. Und was wir jetzt tun werden, ist, dass wir den Norden und den Westen nehmen und ihn sofort benutzen. Also werden wir dieses Steuerelement C übernehmen, um es zu kopieren. Und was wir dann wollen, ist, dass wir eine private statische endgültige Voxel Form oder Shape-Unterstrich n. Dies ist also nach Norden geformt. Und dann importieren wir nur die Stream-Klasse, die Voxel Shapes-Klasse und die Boolean nach Funktionsklasse. Und was ich dann mache, ist, dass ich das nur vier Mal kopieren werde . Darüber haben wir Nord-, Ost-, Süd- und Westjahr. Stellen Sie sicher, dass Sie hier die richtigen Namen kopieren . Das ist sehr, sehr wichtig. Es gab Leute, die, weißt du, einen von ihnen mit dem anderen verwechselt haben. Das ist also sehr wichtig. Und hier müssen wir das noch einmal aufräumen , das ist völlig in Ordnung. Das sind einige Erdungspfeile, Fließkomma-Rundungsfehler. Manchmal kann es passieren. Es ist einfach das, was es ist. Aber das ist nicht zu verrückt. Es wird den Süden geben. Da gehst du. Dann wird das Osten sein. Und dann haben wir alle vier Voxel-Formen hier drin. Wie ich schon sagte, dies ist ein sehr mühsamer Prozess, aber Sie müssen ihn nur einmal einrichten und dann wird es funktionieren. Wenn Sie das Modell natürlich geändert haben, müssen Sie auch die Voxel-Shapes ändern. Ja, das ist also, es ist einfach das, was es ist. Wir können damit wirklich nichts anderes machen. Dann wollen wir die gute Gliederungsform überschreiben, diese genau hier. Und ich kopiere auch den Inhalt. Wie ich schon sagte, alles steht dir zur Verfügung, aber das sollte ziemlich selbsterklärend sein. Wir haben nur eine Switch-Aussage, dass es sich um das zugewandte Grundstück schaut und es wird nur sagen, hey, wenn die Ausrichtung nach Norden ist, dann werden wir die Form nach Norden zurückgeben. Wenn es nach Süden ausgerichtet ist, kehren wir nach Süden zurück und so weiter und so weiter. Das ist also wirklich alles , was diese Methode wirklich kompliziert ist, da die Voxel Formen sind. Und wie gesagt, es gibt leider keine andere Möglichkeit, dies richtig oder einfacher zu tun, diese stehen Ihnen natürlich alle zur Verfügung. Gleiche natürlich mit dem Modell hier. Drehen wir es einfach zurück und dann wirst du sehen, dass es aus welchem Grund auch immer rot ist und da es Mac ist. Das ist also total in Ordnung. Das ist wie gesagt, auch für Sie verfügbar, die JSON-Datei, all das Sie herunterladen können. Und dann müssen wir nur tun , anstatt einen Block zu machen, wollen wir diesen einen oder E Calciumblaster Block machen. Und dann, oh, natürlich müssen wir das auch öffentlich machen und dann funktioniert alles, oder? Das sollte also eigentlich alles sein, was wir brauchen. Wie ich schon sagte, es ist ziemlich mühsam, aber ich bin mir sicher, dass wir es schaffen werden. Oder hängt natürlich auch davon ab wie viele Blöcke mit verschiedenen verrückten Formen du hinzufügen möchtest. Das ist also auch der Fall. Aber vorerst, schauen wir uns For works an oder warum wir uns als Minecraft befinden. Also lasst uns das niederlegen. Das letzte Kalzium kann sehen, wie du gehst. Die Umrisse stimmen perfekt und wenn ich sie in eine andere Richtung setze, steht es mir immer gegenüber. Da gehst du. So funktioniert alles und die Begrenzungsboxen völlig in Ordnung. Was ich jetzt sagen muss, ist, dass wenn Sie wirklich, wirklich komplexe Bounding Bounding Bounds wie diese haben , natürlich alles noch blockig ist, nicht hat, es hat keine diagonalen Sachen und Dinge wie das. Wenn Sie wie diagonale Dinge haben, empfehle ich dringend, Ihr Modell in R2 etwas einfacher zu machen , kompliziert, da sich verrückte, komplizierte Voxel-Formen tatsächlich verlangsamen das Spiel ist ziemlich deutlich ausgefallen. Aber das ist nur etwas , das man beachten sollte. Aber so einfach ist es die benutzerdefinierten Blockmodelle zu Minecraft hinzuzufügen. Für vollständige Transparenz wurde das Oracle letzte Zeile jedoch von Platin G 17 ausgeführt. Durch das einfache Optimieren der Textur ist es ein bisschen, aber ansonsten steht sie im Grunde unter der Creative Commons-Lizenz. Wenn Sie also diesen oder Ihren tatsächlich veröffentlichten MOD verwenden möchten , dann beachten Sie bitte die Lizenz, wenn Sie sie nur gut verwenden, im Grunde genommen werden private Testzwecke sei vollkommen in Ordnung. Aber das wäre für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Oh ja. 79. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Item mit Blockbench: Alles klar, willkommen zurück beim Stoffkurs für 118. Und in dieser Vorlesung werden wir einen Blick auf benutzerdefinierte Artikelmodelle werfen. Wen haben wir das letzte Mal benutzerdefinierte Blockmodelle gesehen? Jetzt ist es jedoch Zeit für die Kundenartikelmodelle. Vorerst werden wir hier nur einen neuen Artikel erstellen hier nur einen neuen Artikel und dann das Artikelmodell hinzufügen. Dies wird also die Mitarbeiter von Oracle Malcolm sein . Und das ist natürlich auch Oracle-Unterstrichen-Pfad , den Sie gehen. Dies wird vorerst nur ein normaler Gegenstand sein. Und die maximale Anzahl von eins ist eigentlich großartig. Wir müssen hier keine benutzerdefinierten Artikelklassen erstellen. Wir brauchen nur das Artikelmodell dafür. Und dann wird es uns tatsächlich gut gehen. Lassen Sie uns also zuerst die Übersetzung hinzufügen, oder ein Kalisko-Unterstrich-Personal. Und dann auch hier, erzähle komm Stab, das Ego. Und jetzt ist das Item-Model das Verrückte. Dafür. Wir werden wieder eine verschlossene Bank öffnen. Und da ist es, die Schönheit des Kalziumstabs. Und wie Sie sehen können, verwenden wir tatsächlich einige der kleinen Texturen und das Oracle kann Textur blockieren. Und insgesamt ist das so ziemlich alles, was Sie brauchen. Es ist also nur ein Beispiel hier. So sieht es im Grunde aus, wenn du es hältst. Alle anderen Display-Sachen sind ebenfalls fertig. Sie können es auch selbst malen, wenn Sie möchten. Aber vorerst geht es mir tatsächlich gut damit. Wir gehen zu Export, Blockartikelmodell exportieren oder zu einem Kalziumstab, den ich dieses Jahr bereits habe. Das wird in Ordnung sein. Und dann kopieren wir einfach die JSON-Datei wie in den Ordner „Elementmodelle“. Und dann sind die einzigen Dinge, die wir hier ändern müssen , im Grunde der Name. Das wird also Minecraft oder Plank sein. Das, nicht wahr? Natürlich mit Blöcken Slash gehen sie hin, denn das sind alles Blocktexturen. Und dann das Gleiche auch für unsere Recalc und Block. Also blockieren MC-Kerne genau dort, und dann wird der Rest hier einfach völlig in Ordnung für uns sein. Und ich weiß, dass du dachtest, du würdest das vielleicht sagen, nun, das kann es noch nicht sein. Das ist eigentlich, das ist alles, was wir tun müssen. Wir brauchen nur diese JSON-Datei zuerst, die Modellierung des tatsächlichen Artikelmodells. Nun, das ist etwas , das Sie einfach selbst ausprobieren müssen , wie ich schon sagte, eine Link-Blogbank. Auch hier ist es wirklich nicht so schwierig. Du kannst hier einfach Würfel hinzufügen, sie bewegen und sie dann so größer oder kleiner machen. Du solltest also nicht zu verrückt sein. Ich denke, dass Sie vielleicht mit einer Stunde, anderthalb Stunden, ein bisschen herumspielen, sehr schnell den Dreh raus haben werden. Es ist ziemlich genau wie Minecraft, aber Modelle mit Blöcken zu machen. Es ist also sehr ähnlich, was auch immer der Fall sein mag, Mal sehen, ob es funktioniert. Oder wir haben Verdächtige und Minecraft gefunden. Und wie Sie sehen können, wurde das Aura-Kalzium-Personal hinzugefügt und es sieht verdammt toll aus, sogar in 3D oder in der dritten Person sieht es wirklich verdammt cool aus. Und ich mag den kleinen Goldblock ganz oben dort sehr. Das ist nur ein anderes Nein, ich mag einfach die Tatsache dass es im Grunde die ganze Blocktextur ist, nur in diesem winzigen kleinen Block dort. Mag ich, das tue ich, ich mag es wirklich. So einfach ist es also, die benutzerdefinierten Artikelmodelle Minecraft hinzuzufügen , oder? Und das ist es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Der gesamte Code und all das steht Ihnen natürlich im GitHub-Repository zur Verfügung , wo eine Person genauso gut ist. Und wenn dir das gefallen würde, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich dich in der nächsten Folie. Also ja. 80. (Fortgeschrittene) Hinzufügen eines benutzerdefinierten Bogens: Alles klar, willkommen zurück beim Stoffpferd für 118. Und in diesem Vortrag werden wir Minecraft einen benutzerdefinierten Bowl hinzufügen. Der Kunde ist tatsächlich ein ziemlich unkomplizierter Prozess. Wir nehmen nur das orale Calcium-Personal und wir werden diesen T - oder Capcom-Bot-Namen mit dem Namen hier natürlich sehr wichtig machen - oder Capcom-Bot-Namen mit dem Namen hier natürlich . Also oder eine Killer-Kombination. Und dann wird dies ein neuer Bot-Item sein. Und die Registrierung ist abgeschlossen. Was wir natürlich tun müssen, ist, dass wir genau hier das Modalprädikat hinzufügen müssen . Das ist die Hauptsache. Und was wir einfach tun werden, ist, dass ich tatsächlich eine Methode kopieren werde , die ich erstellt habe. Und das ist die registrierbare Methode. Sie können sehen, dass es den Bot im Grunde registriert. Der ganze Jazz. Dies ist von wenn ich mit der mittleren Maustaste darauf klicke, und dann klicke ich darauf. Dies wird eher der oder mittlere Maustaste sein . Und das ist das Modell prognostizierte Anbieterregistrierung von Minecraft oder von Vanilla. Und wenn ich hier runter gehe, solltest du in der Lage sein, die Stange und das Ziehen genau hier zu finden . Wir haben diese beiden Register für den Bot, den Bot im Grunde genommen, und ich habe diese im Grunde genommen nur kopiert den Anbieter durch unsere Fabric-Modal-Prädikat-Anbieterregistrierung ersetzt . Aber dies ist eine separate Methode nur weil es ein bisschen einfacher ist, besonders wenn Sie mehrere Bögen wollen, können Sie dies einfach nennen. Und dann mit deinem Bot. Also im Grunde Mod-Items, Dot-Oracle-Combo, und dann ist das so ziemlich genau das. Wenn Sie also eine weitere Schüssel haben, die Sie hinzufügen möchten, fügen Sie diese auch hinzu. Und dann ist das so ziemlich, das ist es so ziemlich, das ist so ziemlich erledigt. Das ist wirklich die Idee hier. Das ist also so ziemlich alles, was du brauchst. Und dann brauchst du natürlich zuerst die Übersetzung, die hier sehr wichtig ist, oder eine Kuh kommt unter Kritzeln, oder? Also, und vergessen wir das oder einen Kaliko nicht. Und dann sind die Artikelmodelle gut der Kicker. Aber wieder einmal sind sie eigentlich nicht so verrückt. Vier von ihnen, ich kopiere sie rüber. Diese stehen Ihnen natürlich alle im GitHub-Repository oder im Einzelnen genauso zur Verfügung. Dieser zeigt hier nur auf den Orakel Gumball. Und dann verweist es unter den Prädikaten auf die verschiedenen Artikelmodelle , die auf dieses, dieses oder dieses hinweisen . Und sie sind alle hier offensichtlich. Sehr wichtig ist eigentlich unsere eigene Recalc, eine Schüssel. Und dann wird die Ebene wieder eine andere Textur haben. Das ist also wirklich alles, was es dazu gibt. Es ist eigentlich nicht so verrückt vor einem Kunden Sie machen müssen oder andere Texturen, eine der normalen Bälle und dann drei von ihnen, die im Grunde ziehen. Aber ich meine, das ist so ziemlich alles, was es dazu gibt. Ich bin eigentlich, wie einfach es sein kann, denn wir haben hier schon die Prädikate für die Modelle gesehen . Es ist nicht nichts zu verrückt Eigentlich sollte es etwas, das zu verrückt für dich sein sollte. Es sind nur ein paar Werte, die wir im Modell grundsätzlich verwenden können , um zu bestimmen , welches Extra für diesen Artikel angezeigt werden soll. Das ist im Grunde genommen alles, was es dazu gibt , um der Vollendung willen. Mal sehen, ob es funktioniert oder wir uns wieder in der Mikrofinanzierung befinden , können sehen, dass die Oracle-Kombination erfolgreich zum Spiel hinzugefügt wurde. Und wenn ich es schieße, dass du gehst, ändert sich auch die Textur. Also funktioniert alles völlig gut, genau wie wir es erwarten würden, oder? Aber das war es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden. Du lernst das Neue und wir sehen uns in der nächsten Vorlesung. Also ja. 81. (Intermediate) Flüssigkeiten: Alles klar, willkommen zurück zum Stoffkurs. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Flüssigkeit hinzufügen . Das Hinzufügen einer benutzerdefinierten Flüssigkeit würde ich also etwas pikelig sagen. Es gibt wie ein bisschen Verrücktheit dort. Aber insgesamt bin ich mir sicher, dass wir es schaffen werden , zunächst im MC-Kurspaket, mit der rechten Maustaste auf ein neues Paket namens Fluid zu klicken. Und da drin brauchen wir zwei neue Klassen, die Modusflüssigkeitsklasse und die Ani-Flüssigkeitsklasse. Und wir beginnen jedoch mit der Honigflüssigkeitsklasse. Dies wird das Fließfähige erweitern, und wir werden die Methoden nicht implementieren. Was wir zuerst machen werden, ist, wo ich diese Zusammenfassung tatsächlich mache. Und dann werde ich folgendes tun. Ich klicke auf fließbare Flüssigkeit, drücke Strg H und doppelklicke hier auf das Wasser. Und dann möchte ich alles hier reinbringen , im Grunde alles außer dem Konstruktor und der Kopie das. Und ich füge es hier ein. Und wir könnten verstehen, dass wir eigentlich keine Fehler bekommen, das ist eigentlich noch besser. Und was wir brauchen ist, dass wir immer noch ganz unten hören. Wir brauchen keinen dieser Konstrukteure, aber wir brauchen es, das muss Honigflüssigkeit sein, und das muss Honigflüssigkeit sein. Es gibt natürlich etwas , das Sie jedes Mal tun müssen, wenn Sie eine neue Flüssigkeit hinzufügen. So können wir dies auch auf eine Weise vereinfachen. Und dann glaube ich insgesamt, dass dies in Ordnung sein sollte. Wir können das einfach ein bisschen anders formatieren , damit wir es tatsächlich richtig lesen können. Dies ist für die Partikel. Und das ist das Geräusch. Ich werde den Ton tatsächlich auf, sagen wir den Block, Honey Block Slide ändern . Weil wir natürlich ein paar Honigblöcke drin haben. Wir haben in diesem Fall einfach keine Honigflüssigkeit. Und dann werden wir diese Flüssigkeiten nur einen Moment ändern. Aber jetzt haben wir die Honigflüssigkeit zusammen mit den stillen und den fließenden Klassen drin und in den Mod-Flüssigkeiten, was wir brauchen werden, sind nur zwei Dinge. Und das wird zuallererst ein privates sein Das ist eine niedrigere BAL-Flüssigkeit wird sich registrieren. Dies ist also die Registermethode, wenn globale Flüssigkeit der Rückgabetyp, ein Zeichenfolgenname und eine fließbare Flüssigkeit oder Flüssigkeit oder Strömungsflüssigkeit ist, ist das in Ordnung. Dies wird das Registerregister zurückgeben. Registrieren Sie diese Flüssigkeit, ein neuer Bezeichner, MC-Kurs-Mod, Mod-ID und ein Name. Und nach den ersten Klammern, globaler Flüssigkeit, wird dies natürlich die Flüssigkeit registrieren. Und dann werden wir sagen, öffentliche statische, endgültige globale Flüssigkeit oder einen Honig-Unterstrich, der immer noch dem Unterstrich des Registers entspricht. Dann ist eine neue Honigflüssigkeit, die immer noch ist. Und dann werde ich das mit Control D duplizieren. Ich werde sagen, dass Honig fließt. Und das Gleiche auch hier im Namen. Wenn es fließt. Und anstatt immer noch fließend zu nennen. Und das ist alles großartig. Das funktioniert nicht. Und was wir hier oben in der Honigflüssigkeitsklasse tun können, werden wir zurückgeben, welche Flüssigkeiten und er fließt. Und hier, wenn ich einen Mod zurückgebe, Flüssigkeiten und Honig noch, müssen wir dafür immer noch einen Eimer machen. Überhaupt keine Sorgen. Eigentlich ziemlich einfach. Und ich gehe in die Item-Klasse und wir erscheinen einfach über dem Regenbogen. Und das wird der Honig-Unterstrich-Eimer sein. Und hier ist das Gleiche, Honig-Unterstrich-Eimer. Dies ist natürlich ein Bucket-Item. Und das erste nehmen wir die Mod-Flüssigkeiten auf , die der Honig noch hat. Aber normalerweise willst du den Honig noch wählen. Wenn nach einer Flüssigkeit gefragt wird, ist das der General, wie ich meine, ich würde sagen, dass es fast Kern davon ist. Wir wollten auch einen Mot-Block brauchen, denn dies wird ein Block ohne Blockgegenstand sein. Das wird der Honigflüssigkeitsblock sein. Das ist etwas, das wir brauchen einen nebligen Honigunterstrich, flüssig. Unterstrich. Ok. Dies wird wieder für jedes Ihrer verschiedenen Flüssigkeiten benötigt . Und das wird eine, eigentlich das, wir werden dafür eine Menge Fluidblock-Klasse brauchen. Dies wird also der BOD Lewis-Block sein , weil wir wieder keinen Zugriff auf den Konstruktor haben. Dies ist ein Fluidblock-Mauszeiger über diese großartigen Konstruktor-Metriken Super. Und dann werden wir das auch öffentlich machen. Und es sei denn, es wird ein Fluidblock sein, und der erste Parameter wird Flüssigkeiten sein, nicht Geld, immer noch sehr wichtig. Und dann werden wir hier tatsächlich Material der Stoffeinstellungen vorüber sagen . Und dann werden wir das von Wasser materiell machen. Nur um sicherzustellen, dass dies funktioniert, werden wir keine Kollision und nicht undurchsichtig sagen , so dass wir nichts haben und fallen lassen, weil, naja, tatsächlich Wasser oder in diesem Fall Honigflüssigkeitstropfen naja, tatsächlich Wasser oder in , Block-Requisiten nichts. Das ist also das. Und dann in der Honigflüssigkeitsklasse, vor allem der Eimer, sehr einfach. Mehr Gegenstände, die auf dem Eimer stehen. Sehr nett. Und dann hier unten können wir zum Beispiel sehen, dass wir hier einige Partikel haben, die wir in diesem Moment nicht ändern werden, aber Sie könnten Ihre eigenen Partikeltypen herstellen und zum Beispiel habe tropfenden Honig dort. So etwas. Habe das hier Übereinstimmungen, die wir durch Mod-Flüssigkeiten, Honig noch und Flüssigkeiten ersetzen müssen . Auf den Schlag. Dann hier der Zwei-Block-Status. Und wichtig, dass die Blöcke Wasser durch mehr Blöcke ersetzt werden, diese Honigflüssigkeit. Das sollte in Ordnung sein, denn dies ist natürlich auch ein Fluidblock. Daher wird es die Block-States-Eigenschaften davon erben. Und ich glaube tatsächlich , dass dies all die Änderungen sind, die wir hier vornehmen müssen. Wir haben auf den Block, die Flüssigkeiten und den Gegenstand verwiesen . Das ist so ziemlich genau das. Und jetzt müssen wir den Fluid Handler und den Fluid-Renderhandler registrieren. Jetzt mache ich das wirklich hier drin. Sie könnten wahrscheinlich machen, wenn Sie mehrere Flüssigkeiten haben, schlage ich dringend vor, eine benutzerdefinierte Klasse zu erstellen , die im Grunde genommen OLS es ist. Und wie wir es tun werden, ist folgendes. Wir werden Fluid oder render Helper Registry sagen, genau diese Instanz bei Register. Und dann wird das noch mehr Flüssigkeit auf ISS sein. Was wir also damit zu tun haben, dass dieses vier noch geweihte Geweih auch weht. Und dann werden wir einen neuen einfachen Fluid-Renderhandler erstellen . Sehr schön, weil dies grundsätzlich von uns oder durch Stoff oder diese tatsächliche oder 118 zur Verfügung gestellt wurde. Und ich sage einfach Fluid Handler und wir werden immer noch Wasser sagen. Und was ich tun werde, ist, dass ich ein Komma mache und das kopiere. Wir müssen drei verschiedene einsetzen, also werden wir hier dreimal Wasser bleiben und dann dieses in fließendes Wasser umstellen. Und dann wird der letzte Wasserüberlagerung sein. Sehr wichtig, dass Sie sich für das Wasser-Overlay entscheiden, da die im Grunde auf die Wasserstruktur hinweisen, aber die Wasserstruktur tatsächlich grau ist. Und dies ermöglicht es uns, hier einen vierten Parameter hinzuzufügen. Und das wird der Farbton sein. Ich nehme das einfach, das ist im Grunde die Tönung des Honigs, den ich gewählt habe, und das ist im Grunde die Farbe , die die eigentliche Flüssigkeit haben wird. Dies ist also nur ein RGB-Wert in Hex. Wäre also nicht zu verrückt. Und ich sage hier dasselbe für den fließenden Honig. Und dann ist das Letzte, was wir brauchen, zuerst die Übersetzung für den Bucket. Also unterstreicht Honig Eimer und den Honigeimer dort. Und dann ein Blockmodell. Jetzt wird das eigentlich so einfach sein. Dann kopiere ich einfach das hier. Ich sage Honey Underscore Bucket. Und das bezieht sich einfach auf eine Honig-Unterstrich-Eimer-Textur, die auch sehr leicht kopiert werden kann. Genau hier. Da gehst du. Dann gibt es noch eine Sache , die sehr wichtig ist, die wir tun müssen, und das unter dem Datenordner oder den Minecraft-Tags müssen Sie ein neues Directory Hold-Fluids erstellen. Und statt dass sie ein neues Tag machen, das als bewässert angrenzend bezeichnet wird. Und wir werden einfach den Inhalt der Wände kopieren , Jason hier. Und wir werden das auf MC-Kurs ändern . Und das muss immer noch beides Honig einschließen , oder? Honig-Unterstrich immer noch, sowie auf dem Unterstrich fließend. Dies stellt also sozusagen im Grunde die Physik der ganzen Tortur dar. Es wird also dieselbe Physik haben wie Wasser. Das ist das Beste, womit ich vorerst anfangen kann. Das ist jedoch alles, was wir dafür brauchen werden, obwohl es ziemlich kompliziert ist. Es gibt viele Dinge und es gibt natürlich auch noch Dinge, die Sie vielleicht ändern möchten. Die Partikeltypen hier zum Beispiel gibt es eine Reihe von Dingen, die man theoretisch noch tun könnte . Aber insgesamt wollte ich Ihnen zunächst nur zeigen, wie Sie es tatsächlich schaffen können. Und das sollte hoffentlich ziemlich einfach sein. Um der Vollendung willen, schauen wir mal, ob es funktioniert. Ordnung, die Finanzen im Hinterkopf, wie Sie sehen können, wurde der Honigeimer dem Spiel hinzugefügt. Mal sehen, ob es funktioniert. Und das tut es, es funktioniert tatsächlich und war sehr interessant , dass ich das vorerst tatsächlich unendlich gemacht habe. Aber wir können das sehr, sehr leicht ändern. Dies ist eigentlich eine sehr einfache Änderung. Und du kannst auch sehen , dass ich es fließe. Zum Beispiel kann man sehen, dass die Partikel hier immer noch die normalen Wasserpartikel sind. Das ist so ziemlich genau das, was ich gesagt habe, dass es vielleicht in einer kleinen Kapazität geändert wird, aber insgesamt wird es in Ordnung sein. Und auch wenn Sie darauf eingehen, können Sie sehen, dass das Overlay hier auch blau ist. Es gibt im Moment wirklich nicht viel , was wir dagegen tun können. Zumindest habe ich nicht herausgefunden, wie man das neu einfärben kann. Aber für die Zeit meine ich, es ist immer noch ein völlig individuelles Fluid-Top , das eigentlich ziemlich cool ist. Und um der Vollendung willen auch. Mal sehen, wie wir das Unendliche hier loswerden können, oder? Es ist eigentlich sehr, sehr einfach. Dieser boolesche Wert hier ist unendlich, ist gleich falsch, und das ist buchstäblich alles, was es daran gibt. Das ist also alles was es gibt. Und es gibt natürlich noch ein paar andere Dinge wie die Git Flussgeschwindigkeit, man muss einen Levelabfall pro Block, ein Häkchen, Tick-Rate und Europa letzten Widerstand erreichen. Das Niveau des noch flüssigen es, es gibt eine Menge Sachen, die du tun kannst und du, ich empfehle es noch einmal wärmstens, spielt ein bisschen mit den Zahlen herum probiert ein paar Sachen aus, weißt du, sei offen für Experimente damit, dann bin ich mir sicher, dass du sozusagen die Flüssigkeit deiner Träume umsetzen kannst . Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 82. (Fortgeschrittene) Bearbeite Vanilla: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Lautentabellen ändern können . Zunächst einmal könnte man sagen, Warte, wir haben bereits zu Beginn des Kurses einen unzüchtigen Tisch gemacht . Wir wissen, wie man LW-Tabellen hinzufügt. Ja. Aber was Sie nicht wissen, ist, wie Sie zwei unzüchtige Blöcke hinzufügen können , die bereits in Vanille existieren. Und genau das werden wir uns in dieser Vorlesung genau hier ansehen . dazu im util-Paket rechten Maustaste auf neue Java-Klasse. Dies wird der Mod, Loot-Tabellen-Modifikatoren sein. Und ich werde tatsächlich den gesamten Inhalt kopieren und wir werden es erklären, während wir weitermachen. Jetzt gibt es natürlich alles im GitHub-Repository oder im Einzelnen genauso gut zur Verfügung . Und die allgemeine Idee hier ist, dass wir zunächst keine Pfeffersamen hinzufügen werden, sondern natürlich Rübensamen genau hier. Und dann ist die allgemeine Idee, dass wir drei Identifikationsserum haben , die auf eine bestimmte Rodeltabelle verweisen. Also die Lu-Tabelle, wenn wir zu den externen Bibliotheken gehen , diese rechts, Net Minecraft-Projekt und so weiter. In Sicht des Datenordners, Rodeltabellen, blockiert es das Glücksspiel von Trust-Entitäten. Und das kannst du im Grunde so sagen, wie du siehst und dann kann ich sehen, okay. Ist da eine Iglu-Truhe drin? Genau das ist hier drin, dass man den Namen grundsätzlich ohne den JSON nimmt. Sehr wichtig. Und man kann es auch hier zum Beispiel in den Häusern haben. Und solche Sachen. Sie können also grundsätzlich jede dieser Tabellen ändern. Theoretisch glaube ich, dass er es wegnehmen könnte. Ich empfehle dringend, das nicht zu tun. Empfehlen Sie dringend, nur Sachen hinzuzufügen. Wie fügst du jetzt Sachen mit diesem Fabric Loop-Pool-Builder hinzu. Das ist die Sache , die am kompliziertesten sein wird . Die Sache daran ist, dass ich hier ein Beispiel dafür habe , wo Sie im Grunde eine besondere Chance haben , dass etwas fällt. Sie können dies auch auf eins setzen und dann haben Sie eine 100% ige Chance, es fallen zu lassen. Und dann hier mit dieser Breitenfunktion, mit der setCount Load Funktion und einem einheitlichen Lastnummer-Anbieter. Wir können im Grunde sagen, dass dies zwischen dieser Zahl und dieser Anzahl von Artikeln sinkt. Aber wie Sie deutlich sehen können, wird über die Werbetrute innerhalb der Iglutruhe sowie die Kohlleber vom Kriechgang die Kohlleber vom Kriechgang immer nur einen fallen lassen, während die Rübensamen aus dem Gras ein oder zwei fallen. Und nur als 35 Prozent Chance tatsächlich zu fallen, wenn wir hier zum Loop-Pool-Builder gehen , können Sie nicht wirklich sehen, was hier vor sich geht. Es ist jedoch sehr kompliziert. Also musst du im Grunde einfach ein paar Sachen ausprobieren. Siehst du zum Beispiel ein bedingt, okay, was steckt irgendwie hier rein? Nun, ich kann den Baumeister hier reinbringen. Okay, fair genug. Wenn wir uns das also ansehen könnten, muss ich diesen Loop-Condition-Builder nehmen. Sie können also sehen, dass dies ein Loop-Condition-Builder ist. Und ich könnte zum Beispiel persönlich sagen, Loop-Bedingung und drücken Sie Control H und sehen Sie alle verschiedenen Lastbedingungen, die es gibt. Das ist also eines dieser Dinge Das ist ziemlich cool, wo die Hierarchie hier unglaublich nützlich ist. Zum Beispiel haben Sie die Zeitprüfschleife, Loop-Bedingung , die wirklich verdammt cool ist. Wir haben die Match-to-Loop-Bedingung. Wir haben die Kilobyte-Spieler-Loop-Bedingung und all diesen Jazz. Es gibt also eine Menge Sachen, die Sie hier im Grunde hineinlegen können. Es geht nur darum dass du ein paar Sachen ausprobieren musst. Und im Grunde ist es irgendwie und ich gebe zu, das irgendwie mit dem Kopf gegen die Wand läuft , bis dass das irgendwie mit dem Kopf gegen die Wand läuft, bis es im Grunde funktioniert. Es gibt also eine Menge Ausprobieren. Aber wenn Sie wollten, wenn Sie etwas wirklich Kompliziertes haben wo Sie es etwas hinzufügen möchten, dann wird es einfach so sein. Aber was auch immer der Fall sein mag. Wie Sie hier sehen können, rufen wir im Grunde das Loot-Table Loading Callback-Ereignis auf. Und dann sagst du: hey, wenn das ID-Jahr der Idee entspricht, die wir hier angegeben haben, wenn die Grasblock-ID hier gleich der ID ist, dann fügen wir sie hinzu, dann werden wir alle hinzufügen davon zum Klo Tisch. Das ist also die allgemeine Idee. Und dann werden wir das Gleiche machen. Und das Iglu und dann auch der Kriecher, wo wir hier den Kohlesplitter hinzufügen, die Dowsing Rute und hier die Rübensamen. Und das einzige, was wir dann tun müssen, ist in unseren MSE-Kurs-Mod As zu gehen und dann einfach die Mod-Beutetabellen-Modifikatoren aufzurufen , die für andere Tabellen wichtig sind. Und das war's. Das ist alles, was es dazu gibt. Und wenn wir etwas hinzufügen wollen, kopieren wir es einfach, erstellen einen neuen Bezeichner, fügen eine weitere if-Anweisung in eine Reihe von Sachen hinzu. Und das war's. Das ist alles, was wir tun müssen. Obwohl. Ich schätze, das hat die Arbeiten erhalten , denn findet uns ein Minecraft. Also lasst uns zuerst einen Creeper NSC töten. Da ist es. Ein Kohlesplitter ist vom Kriechgang gefallen. Und dann lass uns zuerst diesen Kriecher töten, denn sonst werden wir eine schlechte Zeit haben. Lassen Sie uns auch die Lautstärke ein wenig verringern. Es ist ein bisschen laut für mich. Also gehen sie und lassen uns einen Überlebensmodus setzen und lassen uns dort reingehen. Du siehst, dass wir beim ersten Mal schon Glück hatten. Die Rübensitze fallen tatsächlich ab. Und weiß einfach, dass wir es überhaupt haben. Lasst uns auch schnell nach einem Iglu suchen. Nun, würdest du dir das ansehen? Es gibt eine Dowsing Rute. So einfach ist es also, die Anspielten zu bereits vorhandenen Beutentischen hinzuzufügen , oder? Der gesamte Code ist natürlich auch wieder im GitHub-Repository oder einer Einzelperson verfügbar . Und das ist es auch schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich Sie jedoch in der nächsten Vorlesung. Ja. 83. (Fortgeschrittene): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns die Fortschritte ansehen. So werden Fortschritte über JSON-Dateien vorgenommen. Was wir also tun werden, ist, dass wir in unseren Datenordner im MC-Kursordner gehen , mit der rechten Maustaste auf ein neues Verzeichnis und kalte Fortschritte klicken, sicherzustellen, dass wir dies richtig lesen. Die Ziele, die sehr wichtig sind. Und ich werde tatsächlich die beiden grundlegenden Dateien kopieren , die bereits vorbereitet sind , und ich werde es erklären, richtig. So können Sie sehen, dass ich den MC-Kurs JSON-Datei weiterentwickelt und die Dowsing Rute Advancement erweitert habe. Und die beiden sind ein bisschen anders. Aber was hier passiert, ist, dass wir einen Fortschritt haben. sind wir, was im Grunde der Tab ist. Dadurch wird eine neue Registerkarte „Weiterentwicklung“ erstellt. Wenn der Fortschritt keinen Elternteil hat, können Sie sehen, dass dies offensichtlich ist. Mc-Kurs. Mc-Kurs. Okay, Sicher genug. Und dann hat dieser kein Elternteil, sondern dass es einen Hintergrund hat. Und der Hintergrund muss tatsächlich so spezifisch sein. Es ist sehr seltsam, aber es muss sein, dass sie Ihre ID eingeben müssen und dann Texturen blockieren müssen, und dann welchen Block zum Beispiel auch immer Sie nicht im Hintergrund waren, oder Sie könnten natürlich auch setzen es in einem anderen Ordner, in einem anderen Ordner, im Texturen-Ordner, der auch funktionieren würde, aber der Rest sollte ziemlich selbsterklärend sein. Du hast einen Gegenstand, bekommst einen Titel, das ist nur der Titel des eigentlichen Fortschritts. Und dann haben wir hier eine kleine Beschreibung. Was ist der Rahmen bei einer Aufgabe? Jetzt glaube ich, dass du wirklich einfach hier reingehen kannst. Es gibt auch eine Herausforderung und dergleichen. Es gibt also eine andere Sichtweise, verschiedene Dinge. Also Toasters, also wird es sein, ob der Toast oben rechts auf dem Bildschirm angezeigt wird oder nicht der Toast oben rechts auf dem , dann wird geschlossen. Nun, das sollte ziemlich selbsterklärend sein. Und jetzt sind sie wirklich schwierig, sagen wir mal, es sind die Kriterien. Denn hier gehen wir jedoch auf die Anforderungen , die Auslöser und die Bedingungen ein, werden wir uns das im Allgemeinen nur ansehen. Wir werden keine benutzerdefinierten Bedingungen oder Auslöser machen , weil das viel, viel schwieriger sein wird und das ist im Moment viel komplexer. Aber vorerst werden wir uns nur den Auslöser für die Bestandsänderung ansehen . Das heißt, wenn ich ein Orakel hereinkomme, in mein Inventar komme, dann wird es passieren , dass ich diesen Fortschritt bekomme. Und dann das Gleiche mit der Dowsing Rute, oder? Wenn ich eine Dowsing Rute in meinem Inventar bekomme , bekomme ich diesen Fortschritt. Das ist also das allgemeine Ideenjahr. Und wieder einmal habe ich eine großartige Ressource für Sie, die natürlich wieder einmal Miss old GitHub IO ist, wo Sie hier grundsätzlich die JSON-Dateien für die Fortschritte generieren können , das ist eigentlich genau wie wahnsinnig großartig. Wir könnten zum Beispiel Bedingungen sehen. Und dann gibt es ein paar verschiedene Bedingungen. Wir können sagen, was ist die Voraussetzung hier? Und Sie können sehen, dass es mehrere verschiedene Anforderungen gibt. Zum Beispiel, wenn man Gegenstand verwendet, gibt es möglicherweise einige kanalisierte Aufhellung Brottier. Wie Sie sehen können, gibt es eine Menge Sachen, die Sie hier grundsätzlich hineinlegen können. Kreuzen Sie an, nehmen Sie sogar Listen, schauen Sie sich Tics an, oder es gibt viele Dinge , die Sie einer Entität tun können. Ich empfehle wärmstens damit ein bisschen herumzuspielen. Und dann gibt es natürlich auch immer auf GitHub Repositories beliebter Modi, in denen Sie sich auch nur ihre Fortschritte ansehen können . Sehr empfehlenswert, dass man manchmal nur ein bisschen darüber nachdenken muss. Nun, obwohl Fortschritte nicht das Wichtigste sind, können sie immer noch eine ziemlich coole Ergänzung für Ihre Matte sein. Und nur um der Fertigstellung willen, schauen wir mal, ob es funktioniert, aber stellen Sie sicher, dass Sie eine neue Welt zuerst machen, denn wenn Sie jemals einen dieser Artikel in Ihrem Inventar hatten, werden Sie sofort die Fortschritte erzielen. Am besten, um eine neue Welt zu erschaffen. Das ist eine sehr kluge Idee, oder wir befinden uns in Minecraft. Also mal sehen, und lasst uns einfach die Barren hier herausnehmen. Also lass uns einfach gehen und da ist es, damit wir den Fortschritt genau hier bekommen, unsere Lügen in der Telekommunikation. Und wenn wir auf die Fortschritte eingehen, können Sie sehen, dass wir hier bereits den Fortschritt der Werbetrute haben , wie sozusagen auf uns zu warten. Ich bekomme nur einen weiteren Fortschritt. Wenn ich zum Beispiel nur das eiserne England bekomme , bekommen wir einen anderen Tab. Und Sie können die Registerkarte Minecraft sehen und hier, da die Registerkarte MC-Kursmodell für den Namen der Registerkarte immer der Name des ersten Fortschritts sein wird . Aber das ist im Grunde die allgemeine Idee hier. Abgesehen davon nehmen wir auch die Dowsing Rute heraus, und das kriegen wir auch. Aber es funktioniert nicht. Sie sind Autorinnen wie du. Das habe ich wenigstens gehört. Und lass uns einfach sehen, genau hier. Da gehst du. Also alles, was dort drüben völlig gut funktioniert , wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 84. (Fortgeschrittene) Wie du Partikel spawn: Alles klar, willkommen zurück beim Stoffpferd für 118. Und in diesem Vortrag werden wir einen Blick darauf werfen, wie man Partikel in die Welt spawnen kann. Das Besondere, was wir uns ansehen werden, ist im Grunde genommen, die Partikel im SPD-Block zu besitzen. Also im Grunde genommen, wie man Partikel in einem Block spawnen kann. Und dann, zum Beispiel für Entitäten oder Mobs, sollte dies normalerweise für Entitäten oder Mobs, sehr ähnlich sein. Insgesamt brauchen Sie also nur eine World-Variable und Sie müssen auf dem Kunden sein. Und dafür überschreiben wir es die zufällige Anzeige-Tick-Methode. Und dieser wird im Grunde nur an den Kunden berufen und wir haben eine Welt variabler. Das ist also so ziemlich genau das, was wir brauchen. Und was ich tun werde, ist, dass ich tatsächlich den Inhalt davon kopieren werde den Inhalt davon kopieren der Ihnen im GitHub-Repository oder einer Einzelperson zur Verfügung steht , naja. Und du wirst hier sehen, du hast im Grunde eine Chance. Aber wir haben eine Chance von 35 Prozent , dass diese Partikel im Grunde spawnen, und wir machen immer einen neuen Schwimmer. Manchmal haben wir alle vier klein und manchmal haben wir keinen von ihnen spawnen. Das ist irgendwie die allgemeine Idee. Und Sie können sehen, dass der Weg, ein Teilchen zu spawnen , darin besteht, Weltpunkt-Punkt-Punkt-Partikel zu nennen. Und wir müssen einen Partikeltyp liefern. Es benutzt die mittlere Maustaste. Klicken Sie hier an. gibt es eine Reihe von Partikeltypen Hier gibt es eine Reihe von Partikeltypen, Standardpartikeltypen. Theoretisch könntest du auch deine eigenen lesen. Das werden wir uns in dieser Vorlesung nicht ansehen. Wo auch immer wir uns das in einer zukünftigen Vorlesung ansehen mögen , sind sich noch nicht hundertprozentig sicher. Und wir müssen die Position liefern. Also x, y und z positionieren. Sie können sehen, dass ich hier immer ein bisschen Zufälligkeit hinzufüge , damit wir nicht jedes Mal an derselben Position antworten. Und dann ist die Geschwindigkeit, naja, das ist nur die Geschwindigkeit, mit der sich das bewegt. Und ich wollte nach oben gehen. Und man sieht, dass es sich hier im Grunde nach oben bewegt. Aber wir können entweder rauchen, es gibt noch ein paar andere Sachen wie Asche, es gibt Explosion. Es gibt also viele verschiedene Partikeltypen. Aber wir werden vorerst dabei bleiben. Und wenn Sie dies nur viermal nennen , ist es nur so , dass es ein bisschen mehr von diesen Teilchen gibt , überall dort gehören, wo Sie eine Welt-Variable haben Sie können einfach eine if-Aussage abgeben. Wenn Welt Kunde ist und Sie dann das Teilchen aufrufen können , wird das nur auf der Clientseite funktionieren. Das ist sehr wichtig. Das ist etwas im Hinterkopf. Aber ansonsten, um der Fertigstellung willen, schauen wir einfach, ob es funktioniert. Oder Firmen haben wieder in Minecraft angekündigt und mal sehen Da sind sie. Diese kleinen Partikel steigen bereits aus dem SPD-Block auf. Sie können sehen, ob ich es absetze und sehen, dass einige von ihnen aufsteigen. Und es ist definitiv nur ein Zufall, während er im Grunde anruft. Und natürlich könntest du immer mehr oder weniger anrufen , je nachdem, was du willst, aber das ist immer möglich. Aber das ist die allgemeine Idee. Laichen der Partikel, naja, speziell auf Blöcken, aber so ziemlich bei allem anderen nennt man die Welt bei unserer Partikelmethode, oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und lernen im Neuen, und wir sehen uns jedoch in der nächsten Vorlesung. Ja. 85. (Fortgeschrittene): Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir Minecraft benutzerdefinierte Gemälde hinzufügen. Und in benutzerdefinierten Gemälden ist eigentlich ein sehr, sehr einfacher Prozess im MC-Kurspaket, klicken Sie mit der rechten Maustaste auf ein neues Paket namens Malerei. Anstatt dort klicken wir dann mit der rechten Maustaste auf neue Bilder im Java-Klassenmodus. Und dann brauchen wir da drinnen nur ein paar Dinge , um genau zu sein. Ein privates statisches Gemälde, ein Motiv, Registermalung mit einem String-Namensparameter und einem Malmotiv, Endmotiv. Das ist in Ordnung. Lassen Sie uns Registrierungsdatenregister, Registry Dot Painting Motiv mit einem neuen Bezeichner, MC-Kurs Mod n Mod-ID-Namen zurückgeben. Nach den ersten Klammern geben wir dann das Malmotiv beenden es dann mit einem Semikolon. Power ist auch sehr wichtig. Wir brauchen eine öffentliche statische nicht-Register-Malerei-Methode genau hier wird nur die Druckzeile, die Gemälde für ungerade ID registriert. Nur damit wir das haben, weil wir das hier tatsächlich neben der MC-Kurs-Mod-Methode aufrufen müssen . In der on initialisierten Methode wir das einfach direkt nach den modalen Registern tun . Also auf Gemälden, die Gemälde registrieren. Und jetzt werden wir die Bilder tatsächlich hinzufügen. Nun, wie wird das gemacht? Nun, eigentlich ist es auch sehr einfach. Öffentliches statisches finales Malmotiv bei Sonnenuntergang hier. Und wir werden nur sagen , Registermalerei mit dem Namen Sunset. Und dann ist ein neues Malmotiv, das nur zwei ganze Zahlen aufnimmt , die Breite des Bildes und die Höhe dieser Werte hier im Grunde genommen in Pixeln. Ja, solange sie übereinstimmen, sollte alles gut sein. Also lasst uns dieses Mal einfach mit Control D duplizieren und wir werden auch den geplanten und den Wanderer hinzufügen . Und dann stellen Sie sicher, dass wir den Namen ändern , sagt gut geplant und wundert sich. Und dann planten die Größen auch eine 16 mal 16, und diese wird tatsächlich um 32 erweitert. Dies so dass Sie wie ein paar Beispiele haben. Und dann ist die Frage, naja, aber woher bekommen wir die Bilder? Nun, zuallererst werden die Bilder, die ich habe auch von Platin G.711 gemacht. Wenn Sie sie verwenden möchten, beachten Sie bitte die Lizenz. Wenn Sie sie in Ihrem ähnlichen öffentlichen MOD verwenden möchten, beachten Sie diese die Lizenz. Ansonsten kopieren wir die einfach vorbei. Diese werden also genau hier in Ihren Texturordner gehen , oder? Also in den Assets MC grobe Texturen und dann malen. Und dann sind sie da. Die drei Bilder, die Namen hier müssen natürlich mit dem Namen übereinstimmen. Es wird zu diesem Zeitpunkt ziemlich selbsterklärend sein. Und während der Rest sich im Grunde nur um sich selbst kümmern wird. Das ist also alles was du brauchst. Sie brauchen die Bilder in dieser Klasse und sehr wichtig, dass Sie diese Methode hier aufrufen. Sonst wird es nicht funktionieren. Naja. Lass uns einfach nach Arbeiten schauen. Ordnung, wir befinden uns wieder in Minecraft und ich habe die Bilder bereits. Lass es uns einfach ablegen und mal sehen, ob wir Block haben können, um unser Pitting dort zu bekommen. Es gibt den ersten. Aber mal sehen, was das nein ist, das ist nicht. Es wird nicht unser Sonnenuntergang oder wir kriegen es irgendwann. Ich bin mir sehr sicher, wie Sie sehen können, im Grunde sind sie da. Es gibt den nächsten. Und mal sehen wir mal, schauen wir uns an. Nun, das wird nicht funktionieren, aber dieser wird funktionieren. Also lasst uns das einfach machen. Und mal sehen, ob wir auch den kleinen der 16 von 16 bekommen können . Die allgemeine Idee ist also, wie Sie dort deutlich sagen können. So werden die Bilder grundsätzlich zur Rotation des normalen Gemäldes hinzugefügt. Aber das ist eigentlich wirklich cool und gut, du könntest jetzt im Grunde jedes Bild hinzufügen und ja, du kannst sie so groß und so schön machen und wie was auch immer du im Grunde willst 0. Es kann alles sein , was Sie möchten, solange sie sich an die normalen Zentren halten und sich in Ihrem Texturordner eine PNG-Datei befindet. So einfach kann es eigentlich sein, oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Oh, ja. 86. (Fortgeschrittene) Benutzerdefinierte Block-Einheit: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Block-Entität hinzufügen . Nun, da Sie dies wahrscheinlich als einen längeren Vortrag gesehen haben werden, da dies ein sehr komplexes Thema ist. Und was ich eigentlich sehr vorschlage, ist, diese Vorlesung und die nächste zurückgehende Vorlesung gleichzeitig zu sehen diese Vorlesung und . Im Grunde genommen Mac-Tabak, weil die nächste Vorlesung sofort damit zusammenhängt und wir die Blockentität tatsächlich ein bisschen besser funktionieren lassen . Das zweite, was ich erwähnen wollte , ist, dass wenn ich jemals Kachelentität sage, ich Blockentität meine, sie im Grunde in 117 umbenannt wurde. Und so habe ich immer noch, dass ich manchmal immer noch den Namen der Kacheleinheit verwende. Es ist nur das, was es ist, aber dann meine ich Brock Entität. Und ich werde auch einen Großteil des Codes kopieren und dann werden wir im Grunde erklärt , weil es unsinnig ist, all das einfach auszuschreiben. Es ergibt jedoch keinen Sinn. Bitte seien Sie sich dessen bewusst. Es gibt das GitHub-Repository und es gibt einzelne wo Sie im Grunde auch den gesamten Code kopieren können. Sie müssen sich darüber überhaupt keine Sorgen machen. Du hast alles zur Verfügung, also keine Sorgen. Okay, also lass uns einfach anfangen. Das erste, was wir brauchen werden, ist, dass wir tatsächlich ein, etwas im Artikelpaket benötigen , und das wird ein neues Paket sein, altes Inventar. Dann werden wir dort eine neue Schnittstelle erstellen, aber genau hier eine neue Java-Klassenschnittstelle. Dies ist das gesamte implementierte Inventar. Und noch einmal, wie ich schon sagte, unser Kaviar, der ganz davon, der Ihnen natürlich alles zur Verfügung steht, ist in diesem eigentlich nicht so interessant. Die allgemeine Idee ist , dass vor allem der Johannes von Juden und, oder Gerechtigkeit, denke ich. Und das ist Public Domain. Also keine Sorgen, dass wir es benutzen können. Aber immer noch geht alles Kredit nur dafür, es ist eigentlich sehr nützlich das implementierte Inventarjahr. Und die allgemeine Idee ist, dass wir, wenn wir diese Schnittstelle in unserer großartigen Brock-Entität implementieren, grundsätzlich sehr einfach das Inventar verwenden können , das damit verknüpft ist. Aber das ist die allgemeine Idee. Wir werden das einfach brauchen und werden uns das im Grunde nie wieder ansehen , denn das ist fast wie schon perfekt gemacht. Aber wir brauchen dort nichts anderes bevor wir einfach in die Block-Entität eintauchen, ich werde Ihnen ein bisschen von der Theorie hinter der Block-Entität zeigen . Und dafür werden wir natürlich die PowerPoint-Folien ausbrechen. Dies ist die allgemeine Idee einer Block-Entität. Es gibt vier Teile. Es gibt die Blockklasse II, Block-Entitätsklasse, die Screen-Handler-Klasse und die Bildschirmklasse. Was hier sehr wichtig ist, ist, dass die Blockklasse insgesamt wahrscheinlich eine der einfachsten ist. Hier klicken Sie mit der rechten Maustaste und dann passiert etwas in der Brock-Entität, weil die Block-Entität dann den Bildschirm-Handler erstellt. Der Bildschirm-Handler behandelt im Grunde den Bildschirm. Es klingt verrückt, aber die Idee ist, dass hier eine Trennung stattfindet, weil die Bildschirmklasse, Lass uns hier anfangen nur Client ist. Okay, das bedeutet also, dass es buchstäblich nur dieses Bild ist. Es gibt einige Nuancen. Natürlich können wir die Fortschrittspfeile anzeigen. Wir können die Käufer hier zeigen, solche Sachen. Ja. Aber es ist nur dieses Bild. Ich könnte das Bild durch ein Bild meines Gesichts oder ein Bild durch einen Hund oder was auch immer ich will ersetzen . Und der Bildschirmhandler, wie die eigentlichen Slots hier, würden immer noch funktionieren. Sie müssen nicht so aussehen. Das ist eine sehr wichtige Lektion , die Sie sehr brauchen, gut in Ihren Kopf kommen. Es ist sehr wichtig. Dies ist nur der Bildschirm, das ist nur der Kunde, nur dieses Bild. Jetzt hat die Bildschirmklasse hier jedoch einen Verweis auf den Bildschirm-Handler. Und der Handler hat die Slots im Inventar, wie Sie sehen können, indem Sie dies für das Spielerinventar und die Hotbar blau markieren können. Und dann, wie Violett Pink, haben wir die, im Grunde genommen die benutzerdefinierten Slots mit dem Bildschirm Handler auch, dass es Werte von der Block-Entität, dem Server und dem Client synchronisieren kann . Das ist etwas, das sehr wichtig ist und dass dies auch etwas ist, was wir in der nächsten Vorlesung sehen werden, da dies sozusagen etwas mehr Setup erfordert. Und wir werden es nur speichern, indem wir zunächst eine normale Blockeinheit haben, die einige interessante Dinge tun wird . Aber das ist eine sehr, sehr wichtige Sache. Und indem wir diese Werte synchronisieren, können wir sie dann in der Screen-Klasse verwenden. Zeigen Sie beispielsweise den Fortschrittspfeil hier richtig an. Das ist die allgemeine Idee. Jetzt die Block-Entität selbst, was diese enthält Daten und Funktionen für einen Block. Das ist die allgemeine Idee. Und dann kann es auch ein Inventar haben. Denn dieses Inventar wird, wie gesagt, vom Bildschirmhandler behandelt. Es gibt eine sehr enge Verbindung zwischen diesem und diesem. Und dann gibt es keine zu enge Kopplung zwischen diesen beiden ist im Grunde genommen eine Referenz. Dann hat es mit der Blockklasse nur eine Referenz hier. Diese beiden sind also definitiv enger verwandt. Es gibt eine etwas enge Beziehung zwischen dem Bildschirm und dem Bildschirm-Handler, da beide Bildschirme im Namen haben , um ein sehr guter Hinweis darauf zu sein , dass sie etwas miteinander zu tun haben . Aber insgesamt ist das die allgemeine Idee, das ist die allgemeine Theorie dahinter. Es ist nichts zu verrückt, wenn irgendetwas hier ein bisschen verwirrend ist , mach dir keine Sorgen darüber. Ich hoffe, dass ich es klären kann, sobald wir das alles tatsächlich programmieren. Aber wechseln wir einfach zurück zur Intelligenz. Und jetzt machen wir die eigentliche Block-Entität. also in unserem Blockpaket mit der rechten Maustaste auf ein neues Paket namens Entity. Und dann müssen wir drinnen die Klauseln kennen, die Modussperre in dieser Klasse. Und dann auch das freie Kalzium. Gelächter Entität, oder? Und da ist es. Dies wird also die Block-Entität erweitern. Und es wird das mit dem benannte Screen-Handler Factory Komma implementiert Inventar implementiert, das wir bereits gemacht haben. Lassen Sie uns den Mauszeiger darüber bewegen, sagen Sie Methoden implementieren und sagen: Okay, ich werde den Mauszeiger noch einmal über den Mauszeiger erstellen, der super passt. Und jetzt sollten wir damit zufrieden sein. Die GetItems hier können Sie also null sehen. Nun, wir können dies sehr einfach ändern , da wir jetzt eine private, endgültige Standardliste mit Items hinzufügen eine private, endgültige Standardliste mit Items , mit der Inventar genannt wird. Und das entspricht einem Standardwert, einer Liste der Größe vier mit Elementstapelpunkt AMD. Und das wird unser Inventar sein. Das werden unsere vier Slots sein. Es ergibt also Sinn. Und wir können das einfach hier zurückgeben. Also Inventar, gib es einfach zurück. Und das sollte für den Anzeigetext in Ordnung sein. Dies ist der Text, der oben auf der Benutzeroberfläche angezeigt wird. Wir sparen vorerst neuen wörtlichen Text. Oder es kann Blaster kommen, das wird gut werden. Das ist total okay. Im Menü Erstellen müssen wir also tatsächlich einen Screen-Handler bereitstellen , wie Sie sehen können. Nun, was ich tun werde, ist, dass ich das absichtlich zu einem Fehler machen werde, denn sonst werde ich es wahrscheinlich vergessen, denn wie gesagt, es gibt eine Menge Sachen, die wir hier tun müssen. Obwohl. Deshalb mache ich das gezielt und irrtümlich. Wir werden den Kunden sowieso keine ganze Weile betreiben , also Lärm dort. Was wir dann auch tun mussten, ist, dass wir den ersten Parameter hier oder den anderen Konstruktor löschen müssen . Und dann müssen wir den Rest der MOD-Blockentitäten erledigen. Und was wir tun werden, ist, dass wir einen öffentlichen statischen Block, einen Typ des Entitäts oder eine Neukalk und eine Explosionsmiete sagen einen öffentlichen statischen Block, einen Typ des Entitäts oder eine Neukalk und . Wir werden dies den Orakel-Einkommens-Unterstrich-Blaster nennen . Jetzt werden wir das nicht wirklich irgendetwas zuweisen, denn was wir tun werden, ist, dass wir eine öffentliche statische, ungültige Registrierung haben , alle Entitäten wie diese genau. Was ich dann tun werde, ist, dass ich das kopiere und ich bin bereit zu erklären, während wir weitermachen. Also was ist das? Wir rufen also die Registrierung auf, die sich für den Blockentitätstyp registriert. Das sollte alles ziemlich selbsterklärend sein mit einer neuen Kennung von Armada D und das Orakel kann blaster. Okay, und dann werden wir den absoluten Block-Entity-Typ-Builder bei Creat aufrufen den absoluten Block-Entity-Typ-Builder bei , mit dem Oracle kann explodieren oder Entity-Doppelpunkt, der Doppelpunkt wusste, nun, das wird einen neuen oder einen Pelikan erstellen blaster-Entität, und dann wird dies einem bestimmten Block zugewiesen . Dieser Block ist der Block, dass diese Entität ihm zugewiesen wird, wenn Sie mit der rechten Maustaste darauf klicken. Und wir müssen tatsächlich auch etwas in der Blockklasse selbst ändern . So kann das Orakel die Klasse sprengen oder blockieren. Wir müssen auch da drin ein paar Sachen ändern . Aber vorerst werden wir damit einverstanden sein. Und ich werde das eigentlich ein bisschen anders machen . Das ist okay, das ist in Ordnung. Und dann muss diese Register-All-Entitäts-Methode in der Modus MC-Kurse mod-Klasse aufgerufen werden . Aber das ist auch sehr wichtig. Wir werden das einfach hier nennen. Also blockiere Entitäten, ich habe eine Entität registriert, also ist es sehr wichtig, sonst bekommen wir keinen Pfeil, aber es wird nicht in der Lage sein, die Daten richtig zu speichern. Deshalb werden wir das brauchen. Und statt des Typs, den wir nicht haben, können wir mehr Bucheinheiten sehen , die Oracle blastern kann. Und jetzt sind alle Pfeile außer dem , den ich haben möchte, weg. Und wir können im Grunde damit fortfahren, die breite Klasse zu öffnen , die das Orakel explodieren oder blockieren kann. Jetzt haben wir hier bereits Dinge gemacht, die völlig unabhängig von allem sind, was wir haben. Im Grunde genommen ist die Direction-Eigenschaft und all das, wir kümmern uns nicht wirklich darum in dem Sinne, dass Sie auch einen Block haben können , der diese Dinge nicht hat, oder? Diese sind unabhängig voneinander. Aber was wir tun werden, ist, dass wir den Block um die Entitätsklasse erweitern und die Schnittstelle des Block-Entitäts-Anbieters implementieren . wir mit der Maus über diese Implementierungsmethoden. Verwenden Sie die Create Block Entity -Methode, die wir hier implementieren müssen. Und dann wird der Rest völlig in Ordnung sein. Jetzt haben wir das, was wir tatsächlich schon tun können, aber hier werden wir einfach sagen, dass neu oder eine Kuh explodieren oder eine Entität mit einer Position im Staat sprengen kann. Und dann ist das schon genau hier gemacht. So einfach kann das eigentlich sein. Muss auch getan werden , wenn wir eine API über den Rendertyp durchführen müssen . Also kopiere ich einfach diese Methode. Sie müssen die Methode zum gerenderten Typ überschreiben. Denn wenn Sie diese Klasse überschreiben, können Sie sehen, dass sie unsichtbar ist. Ich bin mir nicht sicher, ob es aus irgendeinem Grund der Fall ist, dass wir dies nur außer Kraft setzen müssen. Das ist okay. Was ich dann auch überschreiben werde, ist die On-State-Ersetzungsmethode mit einigen Dingen hier drin, wie ich bereits erwähnt habe, der gesamte Code steht Ihnen im GitHub-Repository oder in zur Verfügung genauso gut individuell. Keine Sorge, das kannst du auch alles kopieren. Und diese Methode ist eigentlich wirklich, wirklich verdammt cool. Es gibt, dies wird einfach alle Erkenntnisse, die das Orakel sprengen oder die Entität nur auf den Boden werfen kann. Das ist also im Grunde das, was das tut, ist wirklich verdammt cool. Und ich empfehle nur dringend, dies auch zu verwenden, denn das lässt sofort das gesamte Inventar fallen , wenn Sie den Block zerstören. Und dann gibt es natürlich noch eine Sache, und das sind die US-Methoden. Also wie die Rechtsklick-Methode , wenn ich das auch hier ablege. Sie können also sehen, dass ich im Grunde genommen sagen werde, hey, wenn ich auf dem Fluss bin, dann werde ich sagen: Hey, erstelle eine neue Bildschirmhandler-Fabrik. Und solange dies nicht null ist, kann ich den behandelten Bildschirm öffnen. Und das bedeutet, dass Dinge in Bewegung den Bildschirm-Handler über die Block-Entität anheben den Bildschirm-Handler über die und so weiter und so weiter. Und dann öffnet es im Grunde den Bildschirm, aber das sind die wichtigsten Methoden , die wir brauchen werden. Dann gibt es noch eine weitere Methode , die wir benötigen, und das ist die Get Ticker-Methode. Aber das ist der Ticker genau hier. Ich werde nur Ticker kriegen. Dann können Sie sehen, was ich tatsächlich zurückgeben werde , ist, dass ich den Prüftyp, den Hype und die nicht markierten Blockentitäten zurückgeben werde, nicht den Neukalk-Blaster. Und dann werde ich sagen oder RCA Complex Entity Colon, Doppelpunkt Häkchen. Nun, das haben wir natürlich noch nicht , weil wir keine Tick-Methode in unserem Oracle haben kann explodieren oder Entität, aber das werde ich auch hinzufügen. Dies ermöglicht also im Grunde die Tick-Fähigkeit für Ihre Block-Entität. Nehmen Sie also, Sie haben wahrscheinlich gehört, dass dies eine 125 Sekunden ist und im Grunde genommen ständig erledigt werden, oder? Also jedes Häkchen, also jede 125 Sekunde, kann etwas passieren. Und genau das wollen wir innerhalb unseres Unternehmens tun. jedem Häkchen können wir jetzt etwas tun. Und so wie wir das machen werden, kopiere ich über 1234 Methoden. Das ist also einmal die öffentliche statische Void-Tick-Methode und dann drei benutzerdefinierte Methoden, die benötigt werden, um zu demonstrieren, wie Sie beispielsweise etwas herstellen können . Dies ist ein grobes Beispiel, denn in der nächsten Vorlesung werden wir benutzerdefinierte Rezepturzivilisation und Kunden zufriedene Typen machen, um und Kunden zufriedene Typen im Grunde zu sagen, dass wir JSON-Dateien für unsere eigenen erstellen können wie Maschine, für unsere eigene Block-Entität, was wirklich cool ist. Aber vorerst werden wir dies nur nutzen, damit wir hier irgendwelche Funktionen haben. Und Sie können jedoch sehen, also hat die Tick-Methode hier vier Parameter, Weltposition, wir haben den Staat und wir haben die Entität selbst. Was wirklich cool ist, ist, dass die Entität im Grunde genommen Zugang dazu haben und damit tun können , was wir wollen. Du kannst sehen, was ich mache ist, dass ich sagen kann, Hey, hat kein Rezept und hat dieses Limit nicht erreicht. Und dann stelle ich hier den Gegenstand her, der irgendwie die allgemeine Idee ist. Und was ich hier machen werde, können Sie sehen, dass ich einfach den ersten Stapel, den Stapel aus dem Slot 0, von Stopps Los eins und von Slot zwei entfernen werde ersten Stapel, den Stapel aus dem Slot 0, von Stopps Los eins und von Slot zwei entfernen aus dem Slot 0, von . Und dann schicke ich den Stapel in Slot 3 an das Oracle kann hier x auswählen und ich bekomme die gleiche Zählung. Also werde ich einfach die Zählung erhöhen. Das ist eine allgemeine Idee. Und dann müssen wir hier eigentlich drei reinlegen. Das ist also genau dort sehr interessant. Was ist dafür erforderlich? Nun, im ersten Slot muss ich Splitter angerufen haben, und den zweiten Slot brauche ich eine goldene Spitzhacke. Und im dritten Slot oder im Slot mit Index zwei muss ich einen Orakelbarren haben. Das ist die allgemeine Idee. Und wenn all das stimmt und der Stapel das Limit nicht erreicht hat, können wir den Gegenstand herstellen und wir werden dann den Sparren herstellen, der Gegenstand wird in Handarbeit hergestellt. Jetzt wird das in der nächsten Vorlesung ähnlich aussehen , aber ein bisschen anders. Denn wieder einmal ist dies nur eine sehr grobe Art, alles hart zu codieren. Und ich verspreche dir, dass du das definitiv nicht machst. Dies ist momentan nur ein Beispiel für diese Vorlesung, damit Sie jede Funktionalität sehen können. nächsten Vorlesung werden wir es richtig machen. Es gibt sehr schön mit der Rezeptserialisierung, die ich wärmstens empfehlen kann. Deshalb sagte ich, schau dir beide Vorträge sofort nacheinander an, denn es wird viel besser sein, oder? Aber größtenteils wird die Block-Entität vom Screen-Handler gemacht , hier ist das Letzte, was wir tun müssen. Dafür brauchen wir tatsächlich den Bildschirmhandler und den Bildschirm. also im MC-Kurspaket mit der rechten Maustaste auf neues Paket namens screen. Und dann werden wir da drinnen eine ganze Reihe von Sachen erschaffen. Nun, die Modus-Bildschirm-Handler, das ist der erste. Und dann wird der zweite der Recalc-Blaster-Bildschirm sein . Und dann wird es den Ergebnisblaster im Handler geben . Und das wird gut werden. Und wir werden uns zuerst den Bildschirm-Handler ansehen . Das wird das wichtigste, eine der interessantesten sein. Noch einmal werde ich tatsächlich die gesamte Klasse kopieren und wir werden es Stück für Stück durchgehen. Keine Sorge da, oder? Da haben wir es also. Und wir werden ein paar Pfeilsatz haben, keine Sorge, denn natürlich müssen wir den Oracle-Bildschirmblaster setzen . Dies ist ziemlich dasselbe, was wir für die Block-Entität tun mussten, genau dort, wo wir jetzt auf diese verweisen, anstatt nur den Typ aus dem Parameter zu erhalten. Und was Sie auch sehen werden, ist dass es hier zwei Slots gibt, die aus irgendeinem Grund gut gelesen werden, sind benutzerdefinierte Slots. Ich werde die auch kopieren. Obwohl. Es sind wirklich, sehr häufige Symbole, wie Sie sehen können, dieses ist sehr einfach. Und dann sind die Ergebnisse dass der wenige Slot auch sehr einfach ist. Und dann können wir diese tatsächlich in das, ins Ego importieren . Und das werde ich auch in einem Moment erklären. Aber was macht der Bildschirm-Handler insgesamt? Nun, im Grunde überprüfen wir die Größe Hayes die Größe, richtig? Nun, es müssen tatsächlich vier sein. Das ist also sehr interessant. Und wir sagen im Grunde: Hey, das hat all das Zeug , das wir tun müssen. Stellen Sie einfach die Felder hier ein, das Inventar, die Welt. Wir brauchen die Welt noch nicht. Vielleicht brauchen wir die Welt in einem späteren Vortrag. Und dann fügen wir unsere eigenen Slots hinzu. Und so fügen wir sie hinzu, diesen Punkt-Punkt-Punkt-Slot, und dann erstellen wir einen neuen Slot. Und Sie können sehen, dass ich hier einen neuen Motorkraftstoffschlitz denn hier möchte ich eigentlich nur , dass Kraftstoff eingelegt wird. Und dann ist es mir in diesen Slots wichtig. Und dann ist dies der Ergebnis-Slot. Ich möchte auch nicht, dass der Spieler Dinge dort platziert, nur die Kacheleinheit oder der Screen-Handler im Grunde genommen. Das ist sehr einfach. Dies überschreibt nur die kanonische bestimmte Methode genau hier und den Mod-Brennstoffschlitz, ich habe eigentlich das meiste davon aus dem Brennstoffschlitz aus dem abstrakten Ofen genommen . Aber du weißt, als Idee oder im Grunde, aber das ist so ziemlich alles, was du tun musst. Die Indizes zählen natürlich einfach auf, oder? 0, 1, 2, 3. Es wird auch ziemlich selbsterklärend sein. Und dann das x und y hier, das wird etwas sein, das sehr interessant ist, denn dies sind die Koordinaten von der oberen linken Ecke 000 bis zum Ort, an dem der Slot befindet wird auf der eigentlichen Benutzeroberfläche sein. Ich kopiere die GUI, die im Texturen-Ordner steht , eine GUI. Und dann ist dies das Orakel kann explodieren oder GUI. Und ich öffne das. Und was ich im Grunde erklären werde, ist , dass es wie folgt funktioniert . Wenn ich das zum Beispiel mache, oder? Das siehst du. Das siehst du, oder? Also hier ist 0, 0, wir zählen runter. Und dann werden wir nach rechts kommen. Und dann ist dieses Pixel genau hier das , was wir für diesen Slot brauchen. Und du siehst, dass es genau 18 nach rechts und 50 nach unten ist. Das ist die allgemeine Idee. Wenn Sie Photoshop haben oder GIMP oder Paint.net haben, können Sie normalerweise das Auswahl-Tool verwenden, um zu sehen, wie weit das entfernt ist, und Sie müssen es einfach zählen. Nur so funktioniert das wirklich, ist sehr nervig. Es kann sehr nervig sein, aber es ist einfach was es ist. Und dann haben wir diese beiden Hilfsmethoden, die auch Inventar und Spieler-Hotbar genannt werden . Nun, die sind einfach schöner zu lesen, als dieses Zeug nur einmal da drin zu haben. weiß nicht, dass ich verstehe, warum das nicht auch in Vanille gemacht wird. Weil in Vanille nur dieses Zeug ist. Genau wie in den Konstruktor gesteckt. Ich bin wie, okay, das ist komisch. Dann ist die transversale Lot-Methode etwas, das wir uns einfach überhaupt nicht ansehen werden. Dies ermöglicht es uns nur, bei gedrückter Umschalttaste auf einen Stapel in diese Blockentität in unsere benutzerdefinierte Entität zu klicken . Wann immer wir uns das nicht ansehen werden, weil das eigentlich verdammt verrückt ist. Dies ist die schlechteste Methode, die ich je gesehen habe. Ich will einfach nichts damit zu tun haben, also spielt es keine Rolle. Wir werden nur sagen, danke, dass das funktioniert und alles gut ist, wir können Methode verwenden, die im Grunde nur sagt: Hey, können wir das benutzen? Das ist so ziemlich genau das. Wenn der Spieler zu weit weg ist, so etwas. Das ist alles, was dies auch tut. Gehen wir nun zu den Bildschirm-Handlern und legen wir das einfach hier rein. Es wird eigentlich ziemlich einfach sein. Es ist nur ein öffentlicher statischer Bildschirmhandler-Typ vom Typ oder ein Blast- oder Screen-Handler. Erzählen Sie den Unterstrich Blast oder Unterstriche Bildschirm Unterstriche Handler. Handler. Da gehst du. Ist gleich mit einer Screen-Handler-Registrierung, grünen Handler, einer Registrierung, einer Registrierung sie vor. Und das wird einfach sein, aber das ist sehr wichtig mit einer neuen Kennung von C Corps Mod, Mod ID. Wieder einmal kommen alle Recalc auf ihren Punkteblaster. Und nach den ersten Klammern werden wir Recalc und Blaster Screen Handler, Doppelpunkt, Doppelpunkt neu sagen und das mit einem Semikolon beenden. Das ist alles, was wir hier brauchen. Wieder einmal ist der Code natürlich auch verfügbar. Sie können dies auch überschreiben. Jetzt um nicht alles auszuschreiben. Hier im Screen-Handler können wir sehen, dass sich die Ära gelöst hat. Jetzt in der Gips-Entität können wir diesen Pfeil auch hier endlich auflösen. Wir können einfach sagen, dass dies ein neuer Rekord sein wird, der mit der Sinken-ID, dem Inventar, sprengen kann . Und dann das als Inventar, denn dies ist natürlich ein implementiertes Inventar. Deshalb können wir es einfach in unserer eigenen Blockeinheit übergeben. Und dann können wir die Block-Entität schließen. Wir können das schließen. Wir können das schließen. Und dann ist nur der Bildschirm übrig und der Bildschirm ist, wie gesagt, so ziemlich genau das Bild. Jetzt ist es natürlich eine kleine Übertreibung. Es ist ein bisschen mehr dran. Ich kopiere das auch und erkläre es dir. Insgesamt können Sie also sehen, dass dies ein Handle-Bildschirm von Oracle ist ein Handle-Bildschirm von , der ihren Bildschirm-Handler gesegnet hat, sehr wichtig, dass dies ein behandelter Bildschirm ist. Es zeigt auch auf die Textur, die Sie sehen können. Dies ist ein Bezeichner, der auf die Textur-GUI oder eine Calciumblaster GUI PNG verweist, die auch übereinstimmen muss. Und dann zeichnen wir im Grunde die Textur genau hier und in den Draw-Hintergrundmethoden. Im Grunde genommen zentriert dies den Titel nur in der Mitte der Block-Entität. Und dann rendert die Render-Methode einfach den Hintergrund, auch die Tooltips. Und diese Draw-Textur-Methode wird sehr interessant sein, besonders in der nächsten Vorlesung, in der wir den Feuerfortschritt hinzufügen und der Pfeilfortschrittsbalken dies tut. Dies ist es, was Sie im Grunde aufrufen müssen um dem Bild mehr Dinge hinzuzufügen, um mehr auf das Bild zu zeichnen. Denn wenn wir uns das ansehen, haben Sie tatsächlich das Feuer hier und den Pfeil genau da. Und das müssen wir darüber überlagern und die Größe davon im Grunde genommen erweitern, sagen wir zum Beispiel den Fortschritt. Das ist also die allgemeine Idee hier. Aber vorerst zieht diese, richtig, die Zeichnungstextur mit x, y, 000 Hintergrundbreite, Hintergrundhöhe im Grunde nur die Zeichnungstextur mit x, y, 000 Hintergrundbreite, Hintergrundhöhe im Grunde nur das gesamte Team des Goo hierher. Das ist die allgemeine Idee. Abgesehen davon müssen wir auch eine Sache im MC-Kurs nennen, konforme Methode oder vielmehr Klasse. Und das wird die Bildschirm-Registry sein, die Registrierung, die sich bei den Modellen als Handler Dot oder Malcom im letzten Jahr registriert Schweden-Handler und der Calciumblaster-Bildschirm Doppelpunkt, Doppelpunkt neu ist sehr wichtig, dass dies der Bildschirm im zweiten Parameter sein wird und die Modusbildschirm-Handler grundsätzlich in der ersten referenzieren. Sehr wichtig kann manchmal wieder etwas verwirrend sein, aber das ist die grundlegende Art und Weise, wie es sein muss. Und dann sollte alles richtig eingerichtet sein. Und sie meinen diesen Punkt, Mal sehen, ob es funktioniert. Oder du findest uns wieder in Minecraft. Und wie Sie sehen können, sehen wir einfach, was passiert. Es gibt das Recalc und Blaster, und Sie können sehen, dass alles immer noch gut funktioniert. Wir können das sogar umschalten, das ist noch besser. Das ist ziemlich cool. Nun, sagen wir einfach das, wenn wir versuchen, etwas anderes hier reinzulegen , funktioniert es nicht. Das Kursniveau funktioniert jedoch, weil es verursacht Leber ein Brennstoff ist, daher funktioniert es. Und dann können wir hier auch nichts einfügen. Lassen Sie uns einfach eine sehr einladende und unten eine Spitzhacke oben setzen. Und dann könnte hier eine Zusammenfassung auswählen x erscheinen. Und da ist es, es hat tatsächlich funktioniert. Ich bin mir nicht hundertprozentig sicher, ob sie immer noch ein Pfeil damit sind. Nein, das gibt es nicht. Das funktioniert alles. Und das funktioniert auch nicht, weil das Stack-Limit hier erreicht wurde. Also können wir noch einen hinzufügen, und sobald ich es entferne, wird der andere hinzugefügt. Obwohl. Das Orakel kann explodieren funktioniert im Grunde schon. Natürlich feuert es hier nicht und es gibt derzeit keinen Fortschrittsbalken. Das ist es, was ich sage. Grundsätzlich ist es definitiv nicht ratsam, alles hart codiert zu machen und solche Sachen zu machen. Es ist nur ein Weg, den man tatsächlich sehen kann, hey, es funktioniert tatsächlich und alles hier ist, naja, tolles Ende funktioniert gut, oder? Eine weitere Sache, die wir der Explosion oder Entität hinzufügen müssen , sind zwei Methoden, die sehr wichtig sind , um das Inventar zu retten wenn die tatsächliche Welt gesund wird, wenn Sie die Welt verlassen und das wird die richtige NVT und eine Read-NVT-Methode sein. Und Sie können sehen, dass an den Vorräten richtig fleischig sind als Vorräte lesen und leer lesen. Da gehst du. Das wäre also tödlich gewesen. Nun, da gehst du. Das ist also im Grunde das Inventar, oder? Mit schreibt hier nur die Standardlisten des Inventars in die NVT-Daten und dann liest die rote sie einfach aus. Das ist also die Grundidee hier. Und das ist sehr wichtig, dass wir das auch nennen, da sonst, wenn wir die Welt schließen, das Inventar nicht spart. Das ist also die allgemeine Idee dort, oder? So habe ich zum Beispiel gerade 62 Anruflibern hier drin. Nun, schließen wir einfach die Welt. Und lass uns einfach wieder da rein gehen. Und mal sehen, ob die Kohlesplitter bleiben und sie immer noch da sind. Und da sind sie 62 Verliebte, Los geht's. Alles wurde gerettet. Wie ich schon sagte, dies ist ein sehr verworrenes Thema und es gibt viele bewegliche Teile hier drin. Der Spickzettel steht Ihnen als Download zur Verfügung, und natürlich haben Sie das GitHub-Repository und genau dort, wo Sie sich im Grunde alles ansehen können , was Sie gehen um hier hinzufügen zu müssen. Und insgesamt wird es einfach so sein, es ist genau so, wie es ist. Die Entität der Blockentitäten ist also einfach sehr kompliziert und Sie müssen nur durchsetzen und einfach versuchen, jeden Teil davon zu verstehen. Hoffentlich konnte ich das grundsätzlich erleichtern, was auch immer der Fall sein mag. Das ist es für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies nützlich in den Erfahrungen des Neuen, wenn Sie es sehr schätzen, bewerten Sie von Ihnen. Ansonsten sehe ich dich in der nächsten Vorlesung. Oh ja. 87. (Fortgeschrittene) Benutzerdefinierte Recipe: Alles klar, willkommen zurück beim Stoffkurs für 118. In dieser Vorlesung werden wir einen Blick darauf werfen, wie Sie einen angenommenen Rezepttyp Minecraft a hinzufügen können. Früher haben wir unsere Recalc und Blaster kaputt gemacht . Und ich habe dir gesagt, dass es eine sehr grobe Art ist, genau hier zu basteln. Denn was wir wollen, ist, dass wir in der Lage sein wollen, normale Rezept-JSON-Dateien oder unsere Blaster-Entität zu verwenden . Dies wird es nicht nur besser machen, weil wir hier nicht alles fest codieren müssen. Und dann auch, und das ist noch besser. Es ermöglicht beispielsweise mehr Pack-Herstellern, benutzerdefinierte Rezepte für unsere Lock-Entität und solche Dinge hinzuzufügen . Also werde ich noch einmal einen Großteil des Codes kopieren. Das steht Ihnen also alles im GitHub-Repository oder auch in den Juristen zur Verfügung. Sie haben also alles zur Verfügung und ich werde es Ihnen erklären, während wir weitermachen. also im MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens Rezept. Und dann brauchen wir drinnen zwei Klassen, unsterbliche Rezepte. Und dann kommt auch die Nachzählung zuletzt oder Rezept. Und wir werden damit beginnen, die Gesamtheit der Blaster-Atemkosten zu kopieren . Jetzt werde ich das noch einmal durchgehen und ich werde erklären, es hier keine Fehler geben sollte. Zuallererst können Sie sehen, dass dies das Rezept des einfachen Inventars implementiert . Dies ist einfach sinnvoll , weil ein einfaches Inventar so ziemlich nur das einfache Inventar ist. Sie können sehen, dass es drei Felder gibt. Es gibt eine Ausgabe, es gibt eine Standardliste von Zutaten, die die Rezepturartikel sind. Dies sind die Eingaben und es gibt auch einen Bezeichner. Dies ist im Grunde der Name, den Sie in Ihrer JSON-Datei haben können, aber das werden wir in einem Moment sehen. Der Oracle kann also rezeptkonstruktor explodieren, nimmt genau die drei verschiedenen Parameter , die Sie als Felder haben. Das ist sehr wichtig. Und dann gibt es eine sehr wichtige Methode und das ist die Match-Methode. Nun nimmt die Match-Methode, wie Sie sehen können, in das Inventar und Sie können auch die Rezeptartikel abrufen. Also die Rezeptelemente, dies ist die Liste, die aus der JSON-Datei eingelesen wurde , was bedeutet, dass Sie in jeder Liste Zutaten oder Elemente in Ihrer JSON-Datei haben . Diese werden hier drin gerettet. Und was das versucht ist, dass es sagen wird, hey, das ist die erste Zutat in unserer Liste, wie aus der JSON-Datei, die mit dem Stapel im Inventar übereinstimmt. Wenn das der Fall ist, werden wir fortfahren wenn dann der nächste mit dem übereinstimmt, mit dem Stapel und dem Inventar des zweiten Slots. Dafür werden wir dies auch zurückgeben, was hoffentlich zutreffen wird , dann bestimmt im Grunde genommen, ob ein Rezept im Inventar vorhanden ist oder nicht . Das ist sehr wichtig. Dies ist also eine der wichtigsten Methoden, die sehr wichtig ist. Aber auch wenn Sie ein größeres Inventar haben, wenn Sie mehr Slots haben, in die Sie Dinge stecken müssen. Dies ist der Teil, in dem Sie die Funktionalität definieren müssen . Im Grunde wird dies die Sache sein , die am Gewohnsten ist. Wenn Sie Ihre benutzerdefinierten Rezepte oder benutzerdefinierten Rock-Entitäten erstellen , wenn sie im Grunde genommen völlig anders aussehen, wenn sie vielleicht 12 verschiedene Slots haben und dann bestimmte Dinge setzen müssen in bestimmte Slots und solche Sachen. Dies ist im Grunde die Methode, bei der das meiste davon das sein wird das die Funktionalität programmiert ist , in das die Funktionalität programmiert ist, wie implementiert. Und es ist sehr, es ist sehr schwer, wirklich durchzustehen, okay, wie man alles auf jede andere Weise machen muss . Wieder einmal, hier, an diesem Punkt, Java-Wissen, wenn Sie es nicht haben, werden Sie wahrscheinlich für immer verloren sein. Ähm, das ist nicht, das ist sehr, sehr komplex und ich bin mir sicher, dass Sie das an dieser Stelle schon herausgefunden haben . Genau dies wird hier sehr interessant sein. der Tat ist der Rest der Methoden eigentlich nicht so interessant. Du für die Handwerksmethode, wir nur, der Output Fitts stimmt einfach. Ausgabe abrufen ist nur eine Kopie der Ausgabe, der Bezeichner. Wir kriegen einfach einen Ausweis, der das Edim dreht. Und dann kommen wir zu interessanten Sachen und das ist der Rezept-Serializer sowie der Rezepttyp. Weil wir sehen können, haben wir hier zwei statische Klassen, die Typenklasse und die Serializer-Klasse. Und das war eigentlich nur ungeheuer zu helfen, weil sie uns einfach das Leben erleichtern. Weil wir hier die Instanz des Typs sowie den Serializer haben. Und wir können diese beiden Methoden hier einfach fragen , wo die Typklasse nicht so interessant ist. Die Serializer-Klasse, die Sie sehen können hat tatsächlich drei Methoden. Das ist die Read -, Lese- und Schreibmethode. Also lasst uns die auch durchgehen. Das erste, was hier ist, diese Zeichenfolge genau hier, der Name, den sie in der JSON-Datei geben muss . Sehr wichtig. Das werden wir in einem Moment sehen. Aber das ist sehr wichtig, dass dies natürlich dort übereinstimmt. Und dann haben wir die Lese-Methode hier. Dies ist die Lese-Methode aus einer JSON-Datei. Das wird also aus einer JSON-Datei eingelesen , und Sie können das sehen. Das liest also zuerst die Ausgabe hier. Und es wird in einem angrenzenden Bereich der Zutaten lesen . Und dann wird es noch einmal eine Standardliste von Größe 2 erstellen. Jetzt könnte man sagen, warte, aber wir haben vier verschiedene Lose. Ja, aber wir haben nur zwei Eingabesteckplätze. Wir haben einen Kraftstoffsteckplatz für Eingangssteckplätze und einen Ausgangsschlitz. Und deshalb gibt es nur zwei Jahre, denn die Eingaben gibt es nur zwei Eingaben. Jeder irgendein, in jedem Rezept. Grundsätzlich werden wir diese Eingaben einfach richtig einstellen. Und dann machen wir gleich hier ein neues Rezept. Und das Gleiche passiert ziemlich mit der anderen Lese- und Schreibmethode, die wir am Paketpuffer verwenden. Das funktioniert also alles über das Jahr des Netzwerks. Was hier sehr wichtig ist , ist , dass wenn wir Sachen schreiben, oder? Sie können sehen, was ich mache ist, dass ich eine ganze Zahl mit der Größe unserer Zutatenliste schreibe . Dann schreibe ich jede der Zutaten und schreibe dann die Ausgabe. Diese Reihenfolge muss hier genau dieselbe sein. Sie können also sehen, dass ich eine ganze Zahl lese , die diese sein wird. Dann lese ich jede der Zutaten und bin fertig. Und dann lese ich die Ausgabe, aber die Reihenfolge, in der Sie sie für den Paketpuffer schreiben , muss der Reihenfolge entsprechen, in der Sie sie gelesen haben. Du machst dort einen Fehler. In der Entwicklungsumgebung werden Sie eigentlich nichts sehen , was mit Ihnen nicht stimmt, werden Sie sehen. Etwas, das nicht stimmt, ist, sobald Sie es auf den Server legen und versuchen, dem Server beizutreten, wird dies nicht mehr funktionieren. Sehr wichtig, sehr wichtig dass man das im Hinterkopf behält, dass hier alles passt. Und das ist so ziemlich der Rezeptbus für Ihr Kundenrezept. Es gibt natürlich eine Menge Dinge, die du ändern könntest, oder? Wenn du sagst, Hey, habe ich tatsächlich mehrere Ausgänge. Natürlich könntest du das ändern. Man kann sagen, Hey, ich habe eigentlich nur eine Eingabe oder habe noch mehr Eingaben, oder du kannst, das ist alles. Es gibt etwas, das wir sind. Wahrscheinlich ist Java das, was dich zurückhält, weil meiste von diesem Zeug so ziemlich nur normales Java-Zeug ist. Es gibt fast nichts hier, was Minecraft sagt. Das einzige, was Minecraft sagt, ist im Grunde Item Stack. Aber das ist etwas, das Leute, die viel Java kennen, aber nicht viel Minecraft wahrscheinlich immer noch sehr, sehr schnell herausfinden könnten . Das ist also etwas, das ich wirklich nach Hause fahren möchte. Im Grunde ist es vorbei, als wäre der Spielplatz zu diesem Zeitpunkt nicht mehr. Wir sind wie Indeed und ja, es ist einfach das, was es sein wird, aber wir werden einfach weitermachen und das wird in der Rezeptklasse sein. Und ich werde das auch kopieren. Das ist eigentlich sehr einfach. Sie haben nur eine Registrierungsmethode und Sie können zuerst sehen, dass wir Schublade sind, wir registrieren den Rezeptserializer mit der ID vom Serializer und dann der Instanz und dann dem Rezepttyp. Es gibt auch die Idee des Typs und dann der Instanz des Typs. Das ist also auch ziemlich einfach. Und diesen müssen wir tatsächlich innerhalb der MC-Kurse MOD-Klasse anrufen . Und wir werden das nennen. Lass es uns gleich hier machen. Mod-Rezepte, nicht registrieren, dass du dafür gehst, dass wir das genannt haben, das ist sehr wichtig. Und dann können wir beide Klassen tatsächlich schließen, weil wir mit ihnen fertig sind. Und wir können dann fortfahren, mit dem Unternehmen fortzufahren. Wir haben das schon hier geöffnet. Und jetzt wird das sehr interessant sein, ob wir die Entität hier hauptsächlich neu schreiben werden. Denn was wir hinzufügen werden, ist, dass wir einen Eigenschaftsdelegaten hinzufügen werden. Also werde ich das noch einmal kopieren, all dies steht Ihnen zur Verfügung und Sie können sehen, dass wir einen geschützten endgültigen Eigentumsdelegierten haben und dieser wird erstellt oder sagen wir ja, erstellt innerhalb von der Konstruktor. Also kopiere ich das auch. Sie können sehen, dass dieser Eigenschaftsdelegat einem neuen Eigenschaftsdelegaten entspricht. Und dann haben wir Switch-Anweisungen die sich auf den Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit und die maximale Kraftstoffzeit beziehen den Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit . Die allgemeine Idee ist, dass wir diese vier Ganzzahlen oder diese vier Datenpunkte haben , die wir an den Screen-Handler weitergeben möchten. Und dann später zum Bildschirm, damit wir den Fortschritt und auch den Treibstoff anzeigen können . Nun, im Grunde genommen in der Menge an Kraftstoff, die noch brennt. Dies wird also noch einmal etwas komplizierter, da wir dies in einem Eigenschaftsdelegaten tun müssen da dies auf dem Server und dem Client gespeichert werden muss . Denn wieder einmal ist der Bildschirm nur Client und der Rest ist im Grunde sowohl Server als auch Client. Und wenn wir es einfach weitergeben, wird es nicht funktionieren. Du erreichst im Grunde die dortigen Barrieren, was du nicht tun solltest. Das ist also sehr wichtig. Und dann sollten wir auch drei Dinge zur Rate der GET-Methode hinzufügen . Das ist der Blaster-Fortschritt, die Kraftstoffzeit und die maximale Brennstoffzeit mit der richtigen Methode, im Grunde genommen genau hier. Also lasst uns das einfach hierher stellen . Das wird gut, wo wir im Grunde den Fortschritt, die Feltzeit und die maximale Feldezeit lesen . Das ist also jetzt auch alles gerettet, die Hauptsache wird die Änderung dieser vier Methoden sein. Noch einmal werde ich alles kopieren, aber ich werde es hoffentlich gut erklären, auf eine Weise, die zufriedenstellend sein wird . Es gibt viele Methoden , die wir tatsächlich kopieren müssen. Also lasst uns sie einfach kopieren und mal sehen, ob hier alles funktioniert. Es gibt also keine Pfeile, was gut ist. Aber du kannst sehen, dass hier eine Menge Sachen drin sind. Lassen Sie uns zuerst die Tick-Methode durchgehen. Wieder einmal die Tick-Methode. Ich habe das auf folgende Weise überarbeitet. Also habe ich hier eine Methode , die heißt, Treibstoff verbraucht. Jetzt bedeutet der Verbrauch von Kraftstoff im Grunde genommen, dass ich einen Treibstoff hineingelegt habe und er brennt immer noch , damit das Feuer immer noch brennt. Das weißt du aus dem normalen Ofen, oder? Die Brände brennen. Und wenn ich zum Beispiel einen Block einsetzen würde, würde es anfangen zu rochen. Das ist die Methode für den Verbrauch von Brennstoffen. Das ist es, was das zurückgibt, oder? Wenn es stimmt, ist immer noch etwas drin. Wenn es falsch ist, dann ist es das nicht. Solange wir also Treibstoff verbrauchen, werden wir nur sagen: Hey, Treibstoffzeit wird jedes Häkchen verringern, oder? Genau das passiert. Okay, fair genug. Das sollte also ziemlich selbsterklärend sein. Dann werden wir sagen , hat Rezept. Jetzt hat sich die Rezeptmethode zu diesem Zweck komplett geändert . Ich werde schnell erklären, was das ist. Zuallererst werden wir einfach kriegen, die Welt nicht zu verrückt sein sollte. Und dann erstellen wir eine einfache Bestandsaufnahme der Größe des Inventars der Entitäten. Und dann setzen wir einfach jeden Stapel, den wir in unserer Entität haben, auf das Inventar. Jetzt ist dies nur eine Kurzschrift, um das Inventar hier grundsätzlich zu bestätigen. Weil unser Unternehmen kein einfaches Inventar ist, aber wir müssen ein einfaches Inventar für unser Rezept haben, aber das ist die allgemeine Idee. Und dann können Sie hier sehen, dass wir dieses optionale Rezept bekommen , richtig, das Match genannt wird, und dann bekommen wir die Welt aber Rezeptmanager beim ersten Spiel, wo wir im Grunde sagen: Hey, wir haben diesen Typ, lesen Sie den Rezepttyp, dieses Inventar und diese Welt, oder? Und dann sagen wir einfach: Hey, gibt es eine Übereinstimmung für diesen Typ? Gibt es ein Rezept, das zu diesem Inventar passt? Im Grunde gesagt: Hey, wenn die Match-Methode im Rezept genau hier wahr zurückgibt. Das ist die allgemeine Idee, das heißt im Grunde, wir sollten das tatsächlich auch sehen können, aber das ist definitiv komplizierter, wie Sie sehen können, dass die allgemeine Idee ist, dass Sie den Typ Punktübereinstimmung sehen können. Die Match-Methode heißt und das hat im Grunde genommen die Matratzenmethode im Rezept verursacht. Und wenn das stimmt , werden wir hier etwas haben. Und die anwesenden Streichhölzer sagen im Grunde nur: Ja, wir haben ein Rezept gefunden , das übereinstimmt oder das mitgelieferte Rezepttyp-Inventar . Das stimmt also. Dann wissen wir, dass wir ein Rezept gefunden haben und dann gibt es noch ein paar Dinge, die wir überprüfen müssen. So kann zum Beispiel Betrag in den Ausgabe-Slot eingefügt werden, nur eine Hilfsmethode, die im Grunde sagt: Hey, wenn die maximale Anzahl größer ist als die tatsächliche Anzahl, die wir bereits erhalten haben. Wir fügen nichts ein. Dies stellt nur sicher, dass zum Beispiel, wenn wir bereits eine Spitzhacke haben, keine weiteren Pick-Acts einfügen können, was es im Grunde zu einem Stapel von Achsen macht, was natürlich keine macht Sinn. Und dann haben wir auch den Dose Item in den Ausgabe-Slot , der im Grunde überprüft, Hey, ist es das gleiche Element oder ist der Stapel leer? Also können wir da einfach etwas eingeben. Aber das sind im Grunde die Methoden, die es auch überprüft. Stellen wir einfach sicher , dass alles in Ordnung ist und nichts im Grunde genommen schlecht außer Kraft gesetzt wird. Nun, das ist die Methode „ hat Rezept“. Sobald das der Fall ist, werden wir sehen, hey, ist es gerade? Hat keinen Treibstoff in einem Kraftstoffschlitz. Das wird also genau hier sein. Es heißt nur, hey, ist der erste Slot im Grunde leer, weil wir wissen, dass in unserem Slot , der den Kraftstoff mit Index 0 hat, dies ein Kraftstoffschlitz ist, also wird tatsächlich nur Kraftstoff hineingelegt. Das ist also sehr interessant. Also können wir im Grunde sagen: Hey, wenn das nicht leer ist, wissen wir, dass Treibstoff drin ist. Und wenn wir momentan keinen Treibstoff verbrauchen, verbrauchen wir einfach Treibstoff. Aber das passiert nur, wenn wir ein Rezept da drin haben , Sachen drin. Und dann die Kegel Zoom-Kraftstoffmethode, eigentlich auch ziemlich einfach. Wir sind nur noch einmal eine Vernunftsprüfung. Hey, um sicherzustellen, dass das nicht leer ist, ist, dass wir uns dessen absolut sicher sind. Dann stellen wir die Brennstoffzeit auf die tatsächliche Zeit des entfernten Stapels ein. Wenn ich mich also erkälte, werde ich einhundert, sechshundert zurückgegeben, für die Zeit, in der es die Zecken braucht. Und wenn es was auch immer die Ursache gibt Leber, bekomme ich 400 und so weiter und so weiter. Dies stellt also nur die Brennstoffzeit und stellt dann die maximale Brennstoffzeit nach der Brennstoffzeit auch selbst ein. Aus diesem Grund müssen wir beide grundsätzlich sicherstellen, dass der Fortschritt richtig angezeigt wird. Wir brauchen das Maximum, du wirst die aktuelle Feldzeit. Die Feldzeit ändert sich. Die maximale Feldzeit bleibt im Grunde gleich , sobald dies eingestellt ist, sobald der Kraftstoff verbraucht wurde, wo im Grunde gefragt wird: Hey, verbraucht er Kraftstoff? Und wenn das der Fall ist, können wir Fortschritte machen. Der Fortschritt hier ist also der Fortschritt der Herstellung des Artikels. Dies wird auch im Fortschrittspfeil angezeigt. Und dann können Sie hier sehen, dass es Zeit ist, was ich eingerichtet habe, dass ich immer einen maximalen Fortschritt von 72 habe. Nun, das ist etwas, das man zum Beispiel auch innerhalb des Rezepts ändern könnte und sagen: Hey, das dauert länger, das dauert kürzer, was auch immer. Vorerst auch möglich , ich habe es hart codiert. Das ist nur etwas , wofür ich mich entschieden habe, nichts, worüber ich mir Sorgen machen müsste. Und dann sagen wir im Grunde: Hey, wenn der Fortschritt größer ist als der maximale Fortschritt, dann werden wir den Gegenstand herstellen. Und dann noch einmal basteln Sie den Gegenstand, nur für ihren Verstand, im Grunde genommen sagen beide durch: Hey, das ist ein Rezept gibt es hier. Wenn es vorhanden ist, entfernen wir die Steckplätze 1 und 2. Also werden wir die Rafting-Gegenstände entfernen, die wichtig sind. Wir werden das Nullsalz nicht entfernen, weil das schon passiert, wenn wir den Treibstoff bekommen. Wenn wir den Treibstoff verbrauchen, können Sie sehen, wir sagen, Stapel von hier entfernen und dann den Artikel aus diesem Stapel holen. Im Grunde genommen macht das Treibstoff. Das ist sehr wichtig. Deshalb entfernen wir nur von 12. Und dann sagen wir: Hey, wir setzen den Dreierstapel mit einem neuen Gegenstand, Stapel dieses Elements, der genau das Element ist, das von der Ausgabe erhält. Das ist also, was in der Ausgabe der JSON-Datei unseres Rezepts oder Kundenrezepts und Kontos gelesen in der Ausgabe der JSON-Datei unseres Rezepts oder Kundenrezepts und Kontos wird, werde ich nur um eins erhöht. Wenn also nichts drin ist, wird es auf eins eingestellt. Wenn da schon etwas drin ist, werden wir es einfach um eins erhöhen. Das ist also die allgemeine Idee hier. Es gibt auch andere Möglichkeiten, dies zu tun. So könnten wir es zum Beispiel so gestalten, dass Sie angeben können, wie viele es gibt. Und anstatt es um eins zu erhöhen, erhöhen Sie es um diese Zählung, so weiter und so weiter. Es gibt eine Menge Dinge, die Sie tun können, aber insgesamt machen wir es vorerst auf diese Weise . All das so ziemlich wie wir weitermachen, ist sehr viel mehr und war variabel, oder man würde sagen anpassbar. So kannst du hier immer mehr Sachen machen. Und dann rufen wir die Methode zum Zurücksetzen der Entity Reset auf, die den Fortschritt nur wieder auf 0 setzt , damit wir wissen, dass alles im Grunde genommen ihr Recht zurückgesetzt wird und leider noch nicht fertig sind. Aber hoffentlich war dies eine gute exemplarische Vorgehensweise und erklärt das alles sehr gut, identisch hoffe, wenn noch Fragen übrig sind, benutze bitte das Q und a, und ich werde es versuchen um die Fragen bestmöglich zu beantworten. Ich empfehle auch dringend einfach offen für Experimente zu sein, ein bisschen damit herumzuspielen einfach ein paar Sachen auszuprobieren. Das ist immer das Beste, was du tun kannst. Denn was wir tun müssen, ist, dass wir in den Bildschirm und die Screen-Handler-Klassen gehen müssen . Wir müssen hier tatsächlich einen neuen Parameter hinzufügen , der die Delegierten der ROM-Partei sein werden, also Immobiliendelegat, alter Delegierter. Und es ist nur ein bisschen anders zu formatieren als innerhalb des anderen hier, wir werden nur jeden Eigenschaftsdelegierten der Größe vier neu sagen . Und dann möchten wir dies auch als Feld hinzufügen. Wenn ich also privat, endgültiger Eigentumsdelegierter oder Eigentumsdelegierter sage. Und dann setzen wir das nur ein, nachdem das Inventar hier ziemlich delegiert ist, Delegierter. Und dann werden wir in der Entität einen Pfeil genau hier bekommen, denn jetzt müssen wir auch diesen Punkt-Eigenschaftsdelegaten übergeben . Und der Fehler hier verschwindet, die Entität sollte getan werden. Jetzt glaube ich, dass ich mir am Ende ziemlich sicher bin, oder wir möchten hinzufügen, dass wir die Add-Eigenschaften hinzufügen und dann einfach den Delegierten hier hinzugefügt haben. Das ist buchstäblich alles, was wir tun. Und dort brauchen wir auch vier verschiedene Methoden , mit denen wir vorbei sein wollen. Und das werde ich natürlich auch erklären. Wir haben die Crafting-Methode. Das heißt nur, Hey, haben wir im Moment Fortschritte? Wenn wir es mit ihnen machen, basteln wir. Du hast irgendeinen Treibstoff. Das bedeutet nur, dass wir, wenn der Treibstoff mehr als 0 ist, wissen wir, dass wir etwas Kraftstoff haben, der verbrannt wird. Und wir brauchen beide den Skalenfortschritt sowie den skalierten Brennstofffortschritt. Jetzt werden Sie sehen, dass diese Methoden ziemlich häufig verrückt sind, oder? Nun, die Idee ist, dass das nur die normalen Dinge sind, die man berechnen muss , um den Fehler zu bekommen. Zum Beispiel, um zu schrumpfen oder den Fortschrittspfeil zu erhöhen, oder? Das ist also Fortschrittspfeil hier ist natürlich nicht ganz richtig, richtig. Dies ist die Größe des Kraftstofffortschritts, sagen wir jemand wie diesen, denn die Größe der wenigen Fortschritte. Wenn ich also die GUI hier eröffne, sind das 14 mal 14 und wir werden im Grunde gehen, oder? Wir wollen also, dass dies 14 ist, wenn der Treibstoff vollständig ist, und dann wollten wir einfach nur mit diesem hinuntergehen. Das ist 26 quer. Deshalb ist dieser Pfeil die Größe 26 groß. Dies ist also immer die Breite der Pixel Ihres Pfeils oder die Höhe, je nachdem, ob Sie von oben nach unten, von unten nach oben oder von rechts nach links nach rechts wechseln möchten . Das ist die allgemeine Idee. Etwas ist hier verwirrend. Keine Sorge. Probieren Sie eine Menge Sachen anhand einiger Werte aus, sehen Sie, was reagiert, was passiert. Empfehlen Sie es immer, oder? Aber insgesamt sollte dies hier immer noch eine grundlegende Mathematik sein. Das sollte jetzt nicht zu verrückt sein, aber wir benutzen das. Nun, wir benutzen das in der grünen Box genau hier. Und ich werde die letzten beiden Dinge kopieren , die wir im Grunde brauchen werden. Und das sind die breiten Texturen genau hier. Das wird also der Pfeil sein und das wird die Brennstoffstruktur sein. Jetzt siehst du schon, dass hier ziemlich verrücktes Zeug drin sind. Ja, das ist die Sache. Denn was passiert ist, dass der Offset hier ist, oder? Der 8422 wird dieser Ausgleich sein. Also zeige ich dir das. Dies ist also die Fehlerrate und der Pfeil beginnt genau hier, und das sind 84 Pixel auf dieser Seite und dann 22 Pixel von oben nach unten. Und da möchte ich diesen Pfeil zeichnen, oder? Hier möchte ich das zeichnen. Und was möchte ich dann zeichnen? Nun, das ist das hier. So stimmen die 176 und die 14 genau hier überein. Dann ist die Frage, nun, wie groß ist die Größe dessen, was ich zeichnen möchte? Die Höhe wird immer 36 Raten betragen, also wird das immer da sein. Aber dann wird der Skalenfortschritt zunehmen. Die Breite dessen, was ich anzeigen möchte, wird also im Grunde angezeigt, wenn der Fortschritt zunimmt. Und so wird der Pfeil gezeichnet. Nun, für den Treibstoff, wie Sie sehen können ist das viel komplizierter denn was ich eigentlich von oben nach unten gehen möchte , und weil die Werte hier mit 0000 beginnen, müssen wir etwas Mathematik machen Verrücktheit genau hier, wo wir das Zeug erhöhen und verringern. Ich würde mir darüber keine Sorgen machen. Dies wird ziemlich immer die gleiche Idee sein, wenn Sie etwas verwenden, das Sie von oben nach unten erhöhen möchten. Insgesamt wird Ihnen das Herumspielen zeigen, wie es funktioniert. Ich hoffe, dass die allgemeine Einführung hier sinnvoll ist, oder? Woher Sie also im Grunde wissen, woher diese Werte kommen, worauf sie zeigen und warum wir im Grunde das nennen, was wir hier nennen. Nun, das ergibt hier einen Sinn. Aber ansonsten sind wir tatsächlich mit einem Code fertig. Es war wieder ein ziemlich verworrenes Ding. Eine Menge Sachen hier drin. Fügen wir jetzt auch ein benutzerdefiniertes Rezept hinzu. Schlimmer noch, weil wir ein Rezept haben müssen. Sonst können wir das nicht. Alles, was dies passiert, wird in unserem Datenordner und im Ordner „Rezepte“ sein. Und das wird der Recalc sein und X von recalc und blaster wählen. Das ist also im MC-Kursrezept das sie gehen und so sieht es aus. Typ ist MC-Kerne oder eine Kuh kann blaster. Und es wird eine Warnung aussprechen , weil es das nicht gibt. Nein. Glaub mir, es existiert. Wir haben es gerade geschafft. Und dann sieht man, dass die oberste eine goldene Spitzhacke sein wird. Der untere wird ein A- oder ein Kalziumbarren sein, und dann wird die Ausgabe ein Orakel sein , das x auswählen kann und Sie können buchstäblich mehrere JSON-Dateien hinzufügen, die so aussehen. Und sie werden alle einfach funktionieren. Das ist das Schöne daran. Das ist der Grund, warum die Zeit. Am Anfang scheint es viel Arbeit zu sein. Sobald Sie diese JSON-Dateien dort hinzufügen können, haben Sie es viel einfacher damit. Also nur um sicherzugehen, mal sehen, ob es funktioniert. Oder was wir finden , ist das in Minecraft. Und das erste, was ich sagen möchte, wenn Sie bereits eine Block-Entität haben die Sie sich setzen, gelöscht haben, z. B. zerstören Sie sie, weil dies einige nachteilige Auswirkungen haben könnte als NVT , die dafür gespeichert wurden, können sehr unterschiedlich sein. Wir müssen das tatsächlich wieder aufstellen und wir können es trotzdem völlig in Ordnung öffnen. Das ist sehr gut. Aber lasst uns auch hier eine goldene Schweinachse holen. Sie können also grundsätzlich sehen, ob das funktionieren wird oder nicht. Also lasst uns die Kohlen Leber hier reinlegen. Lasst uns das Orakel nach unten setzen und dann genau hier, und mal sehen, ob etwas passiert. Und da ist es. Schau dir an, wie der Fortschritt beginnt, das geht runter und bam, in Oracle kann x auswählen, die beiden Elemente sind weg. Mal sehen, ob wir beide da drin könnten. Das hat also nicht so, als würde nichts passieren und den Splitter herausziehen und Sie können jetzt sehen, dass es natürlich immer noch funktioniert, weil dort immer noch Treibstoff drin ist. Und bumm, wir haben einen, der Orca kommt rein, komm her, bleibt. Und dann gibt es ein großes X. Wenn wir keinen Treibstoff haben, passiert nichts, weil wir keinen Treibstoff haben. Und sobald ich Treibstoff reingesteckt habe, wird es verbraucht. Und wir werden damit fortfahren. Obwohl. Da ist es. Alles funktioniert immer noch ziemlich besser als zuvor. Wir haben jetzt Fortschritte. Wir sehen, wie viel Treibstoff noch übrig ist. Und das alles ist absolut großartig. Also meine ich, es könnte nicht besser sein. Alles funktioniert immer noch und das ist großartig, oder? Dies war also wieder einmal ein weiteres Mal komplexere Vorlesung. Aber das wird so ziemlich der Rest des Kurses sein der Rest des Kurses denn jetzt werden wir zu anderen Dingen übergehen. Und dann wird die Weltgeneration hereinkommen, was auch sehr kompliziert sein wird. Es ist also einfach das , was es sein wird. Aber vorerst ist das so ziemlich genau das Richtige für diese Vorlesung hier. Ich hoffe, du hast das nützlich und Urine des Neuen gefunden, und wir sehen uns in der nächsten Vorlesung. Also ja. 88. (Fortgeschrittene) Benutzerdefinierte Holz: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir Minecraft benutzerdefinierte Walded hinzufügen. Wir werden also ein bisschen einfacher machen im Grunde in dieser Vorlesung behandeln, damit wir uns grundsätzlich von den letzten beiden Vorträgen erholen können . Und danach werden wir sofort mit Verrücktheit weitermachen. Vorerst. Logo würde abgenommen, würde Blog und Planken abziehen. All diese werden genau hier hinzugefügt. Nehmen wir einfach die rosa Rose und lassen Sie uns dies zum Unterstrich der Kirschunterstriche machen. Und dann natürlich sehr wichtig, dass wir dies auch im Namen ändern. Also Kirschblüten unterstreichen Log, dann ist dies ein Säulenblock. Für Säulenblock genau hier. Es gibt nur einen Parameter. Und dann ist das so ziemlich alles, was wir tun müssen. Das wird also den Eichenstamm kopieren und dann kopieren wir das fünf Mal dafür, dass wir so etwas haben. Also Gruppierungen von zwei mal zwei und dann eine einsame. Und dann werden wir es einfach durchziehen. Das wird also die Kirschblüte wäre Kirschblütenholz. Und das einzige, was sich hier ändert, ist, dass dies es tatsächlich aus dem Eichenholz nimmt. Das ist jetzt nicht unbedingt notwendig. Ich mache das jedoch gerne. Warum also nicht? Dies wird der gestrippte Unterstrich Cherry Log sein. Und das Gleiche gilt für den Namen. Es fängt mit Stripped an. Und dann wird dies der abgestreifte Eichenholz sein. Dieser ist der gestrippte Unterstrich. Kirschblüte unterstreichen würde. Noch einmal das Gleiche hier. Unterstrich Cherry Blossom würde. Und dann wird es das Gleiche hier abgenommen nehmen. Ok, würden sie schon her? Und dann wird dies der Unterstrich sein. Planken sind wichtig, das ist Plural. Oder Bretter sind normalerweise in Laurel. Und dann wird das ein verrückter Block sein , der normale Block. Und das wird die Bretter hierher bringen. Das wird also der Unterstrich Planks Ego sein. Und das sind alle registrierten Blöcke. Nun, das war ziemlich einfach, nicht wahr? Ja. Was wir hier also jetzt brauchen, ist das, was wir brauchen, um sie überspringbar zu machen. Wie machen wir das? Nun, das ist in der modernen Register-Klasse wirklich verdammt einfach . Wir werden nur eine neue private statische Lücke für die Methode „Register Strip Bubbles“ hinzufügen . Und das wird die Skriptblockregistrierung aufrufen. Dieses Register mit dem Maulwurfblock beginnt ein Ribosomen-Protokoll und blockiert dann punktgestrippten Kirschblütenstamm. Das ist also sehr wichtig. Wir werden dies nur mit Control D duplizieren. Wenn dies auch geändert wird, dann würde dies auch ändern. Da gehst du. Und vergiss nicht, das hier zu nennen. Das ist also sehr wichtig. Registriere Streifenblasen genau dort. Und dann ist sozusagen die Stripmobilität bereits erledigt. N ist schon kalt. Und jetzt gehen wir zum Lieblingsteil von jedermanns Dateien, der angrenzenden Datei. Oder eigentlich würde ich sagen, dass sie definitiv etwas komplizierter sind , als Sie vielleicht erwarten. Wir werden also nur fünf Blöcke sind Js-Dateien haben und wir werden uns sie im Allgemeinen nur ansehen. Sie sehen also, dass ein Säulenblock im Grunde so aussieht. Es hat hier Blockzustandseigenschaften der Achse, der X-Achse , der Y-Achse und die Werte, die es annehmen kann , und zeigt dann einfach auf dasselbe oder würde es auf dasselbe Modell hinweisen, das jedoch nur in der log jedoch können Sie sehen, dass dies auf den horizontalen und auch auf diesen hinweist . Und dieser weist auf den normalen Blog hin. Das ist also so ziemlich der einzige Unterschied zwischen diesen Brettern, die absolut langweilig sind, nur normale Blockstaaten. Basiert auf Datei. Nichts Verrücktes ist da los. Lassen Sie uns auch die Übersetzung hinzufügen , denn das wird sein, und dann vergesse ich es manchmal. Also lasst es uns auch hinzufügen. Stellen wir es einfach hier hin. Das ist also so etwas. Der Baumstamm, das Holz ein Baumstamm die oft abgestreift Versionen und die Bretter. Und natürlich steht Ihnen der gesamte Code, die JSON-Dateien, all das im GitHub-Repository oder einer Einzelperson genauso gut zur Verfügung . Denn gerade wenn wir jetzt zu den JSON-Dateien des Blockmodells kommen , fangen wir an, hier im Grunde zu sagen, naja, weißt du, wahrscheinlich zu kopieren. Ich kann jetzt verstehen, warum das sinnvoll sein könnte. Weil es irgendwann einfach viel ist. Das werden also wieder sieben Akten sein. Oh, lass uns diese einfach hinzufügen, damit wir das haben werden, lass uns einfach ein paar Sachen schließen , die du einloggen willst. Dies hat natürlich ein Schloss oben, rechts, da oben und unten die Enden anders aussehen als die Seiten. Dies ist auch die Cube-Säule. Und dann gilt das Gleiche für die Horizontale, so ziemlich dasselbe. Die Bretter sind normale Bretter. Ich meine, ich weiß nicht, was ich dir sagen soll. Die Bretter sind eigentlich sehr langweilig. Das Ende für das Holz ist das gleiche , weil das Holz im Grunde nur die Rinde ist. Was ist also rundum? Das ist die Idee dort. Und dann haben wir das abgesteckte Oberteil und das Streifenprotokoll. Wieder einmal das Gleiche. Es ist, es bleibt alles gleich, sehr ähnlich wie der Rest nicht so interessant ist. Alles in Betracht gezogen, Es ist so ziemlich alles, was es dazu gibt , oder? Und dann sind die Artikelmodelle so ziemlich auch kaum Standard. Nun, das werden glücklicherweise nur 5 sein. Und auch immer noch alles steht dir zur Verfügung. Sie weisen also nur auf ein bestimmtes Elternteil hin, im Grunde auf ein bestimmtes Blockmodell. Und dann wollen wir natürlich auch alle Extras hier. Lasst uns das auch alles hinter uns bringen. Vor ihnen sind das auch nur fünf lustig genug. Und das sollte so ziemlich genau dafür sein. Und was eine andere Sache, die wir tun wollen, ist , dass wir sozusagen schon etwas hinzufügen oder zukunftssicher machen wollen . Im Datenordner im Minecraft-Ordner fügen wir also im Minecraft-Ordner einige Tags hinzu. Also Nummer eins: Wir fügen die Protokollprotokolle und die Protokolle hinzu, die Tags brennen. So können wir folgendes sehen. Sie können also sehen, dass wir hier Hashtag MC Kurs verwenden, Kirschblütenblöcke. Das ist faszinierend. Was ist das? Nun, wir werden tatsächlich auch ein benutzerdefiniertes Kirschblüten-Log-Tag haben . Also werden wir dieses auch kopieren, ist nur normale Tags, wie Sie sehen können. Das zeigt also nur auf alle Protokolle und dann können wir all diese hier als ein Tag wie dieses referenzieren, was sehr interessant ist. Und dann machen wir in den brennenden Protokollen im Grunde dasselbe. Also machen wir das einfach. Die Protokolle, die brennen. Wenn wir diese drin haben, können wir die Protokolle grundsätzlich wie Artikel verwenden. Dadurch werden sie einfach sofort zum Tanken von Gegenständen hinzugefügt. Dann noch eine Sache, die wir in den Tags tun werden, Minecraft-Tags, Rechtsklick auf neues Verzeichnis für Elemente. Und dann werden wir dort den Plankenstapel hinzufügen, aber wir werden das einfach hinzufügen. Und wir werden die MCQs, Kirschblütenbretter drin haben , weil wir dadurch bestimmte Dinge mit unseren Brettern herstellen können. Also zum Beispiel ein Basteltisch oder ich denke, das ist wahrscheinlich fast so. Ich denke, dass es nur eine begrenzte Anzahl von Dingen gibt, die wir mit Plancks Kolben herstellen können beispielsweise mit Plancks Kolben herstellen können, die auch funktionieren würden. Also so etwas. Und dann ist es auch sehr wichtig , dass wir diese Protokolle bereits zu unserem Log-Tag hinzugefügt haben. Sobald wir Blätter eingeführt haben, werden sie nicht neben unseren Protokollen angezeigt. Das ist also sehr wichtig, aber das ist alles, was wir tun müssen , um unsere Gewohnheit hinzuzufügen. Mal sehen, ob es funktioniert. Alles klar, wir befinden uns wieder in Minecraft. Wie Sie sehen können, wurde alles hinzugefügt und ich kann es aufstellen und es sieht absolut fantastisch aus. 0 noch einmal, alles sieht gut aus. Und wir können es auch mit der rechten Maustaste mit einer Axt entfernen. Du siehst, ich kann den ganzen Jazz ausziehen und alles funktioniert gut. Also ich meine, das ist so ziemlich alles, was es gibt, um Custom hinzuzufügen, wäre Minecraft, oder? Wieder einmal steht Ihnen natürlich der gesamte Code in einer Einzelperson genauso gut zur Verfügung der JSON-Datei im GitHub-Repository oder . Aber das wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns in der nächsten Vorlesung. Also ja. 89. (Fortgeschrittene) Benutzerdefinierte Zeichen: Alles klar, willkommen zurück beim Stoffkurs für 118. In dieser Vorlesung werden wir Minecraft ein benutzerdefiniertes Zeichen hinzufügen. Für das Hinzufügen eines benutzerdefinierten Zeichens, tatsächlich ziemlich einfach gemacht weil wir es verwenden werden, ist dies das Stoffzeichen-Beispiel aus neuen Umfrage ist ein sehr nützliches Ball-Repository. Jetzt möchte ich sicherstellen, dass Sie wissen, dass dies unter der GPL steht, im Grunde der allgemeinen öffentlichen Lizenz. Wenn Sie also genau denselben Code in Ihrem eigenen Modell verwenden möchten , stellen Sie sicher, dass Sie die Lizenz befolgen und sicherstellen, dass dies verstanden wird. Dies wird natürlich auch in den Ressourcen verknüpft sein. Und lass uns einfach hier weitermachen. Also lasst uns einfach mal einen Blick darauf werfen. Wir werden zwei Dinge brauchen. Zuallererst, und das werden zwei Mixin sein. Interessant, nicht wahr? Nun, ich werde diese beiden Akten tatsächlich kopieren . Diese stehen Ihnen natürlich auch alle zur Verfügung. Jetzt sind sie eigentlich sehr, sehr einfach. verrückt sind sie nicht. Sie können also sehen, dass wir den Block-Entitätstyp Mixin haben, wo es im Grunde auch unser eigenes Zeichen unterstützt. Es ist also sehr, es ist eigentlich nicht so verrückt, im Grunde stellt sicher, dass es in Ordnung sein wird, solange ein Wandschild , ein Block oder ein nd , ein Block oder ein nd, ein Entitätszeichen genau hier ist. Und der Sinus-Typ-Accessor macht es im Grunde nur so , dass wir auf den eigentlichen Vorzeichentyp zugreifen können. Da die Zeichentypklasse hier genau hier ist, können Sie sehen, dass sie geschützt ist. Wir können tatsächlich einen neuen Zeichentyp erstellen. Und damit können wir das im Grunde nicht. Was machen wir damit? Nun, zuerst werden wir das tatsächlich dem Stoff hinzufügen , dem eigentlichen MC-Kurs-Mixins Jason, denn, oh Junge, wenn wir das vergessen, wäre das nicht so gut. werden wir gleich hier hinzufügen. Dies ist nur der Name 1 Sekunde dieser Dateien, sehr wichtig, dass sie übereinstimmen. Und dann können wir grundsätzlich fortfahren. Und fahre fort. Werden wir eigentlich in das Indie-Block-Paket gehen, also werden wir die Schilder im Blockpaket essen. Also werden wir ein neues Modellzeichen-Typen erstellen. Sie werden also nur einen öffentlichen statischen Endzeichentyp machen , alte Sherry-Unterstrich blühen. Dies entspricht dem Sinus-Accessor, der einen neuen Zeichentyp-Accessor registriert , einen neuen Zeichentyp-Hold, Sherry-Unterstrich, Blüte. Und das ist alles, was wir tun müssen, um einen neuen Mod-Zeichentyp oder einen neuen Zeichentyp zu erstellen . Und dann können wir in der eigentlichen Klasse mehr Blöcke fortfahren. Oder wir kopieren einfach die Planken genau hier. Und was dann sehr wichtig ist, ist, dass beide tatsächlich ohne Blockelement registriert werden. Weil das Interessante an den Schildern ist, dass wir ein Wandschild und ein normales Zeichen haben. Und das wird sein, dass wir dieselben Gegenstände damit verknüpft haben. Also werden wir einen Gedankenblock haben, und dann werden wir einen normalen Zeichenblock haben. Dann geht das Gleiche hier rein. Alle Unterstreichungszeichen, normale Linie. Und dann ist dies ein Wandzeichenblock , der als zweiter Parameter tatsächlich die Mod-Zeichen-Typen jede Blüte aufnimmt. Und dann braucht es hier keine Artikelgruppe , weil wir natürlich nicht haben, wir haben kein Blockelement als dieses. Derselbe Mod. Schildertypen sind großartig und ändern Sie dies dann in einen Bürgersteig. Da gehst du. Jetzt sind das die beiden Blöcke im Grunde rektal registriert sind. Das ist großartig. Und dann müssen wir in der Klasse „ Mehr Items “ ein neues Element erstellen. Also holen wir uns einfach Honigeimer hier. Kirschunterstrich Blüte Unterstrich Zeichen. Und dann das Gleiche hier. Sehr unterstrichener Blühunterstrich Zeichen. Und das wird ein Zeichen für I und Item sein. Und dann wird der Erste das sein. Die maximale Anzahl wird tatsächlich 16 sein. Und dann werden wir mehr Blöcke Punktzeichen haben. Und je mehr Blöcke punktwandzeichen als zweiter Parameter, das Ego oder der dritte, schätze ich. Dies ist also der Gegenstand, der in Amin gemacht wurde, wurde zu diesem Zeitpunkt fast vollständig gemacht. Es ist eigentlich ziemlich verrückt, wie schnell das geht, aber mit den Mixins wird es unser Leben einfach wahnsinnig einfacher machen. Als wäre das eines der großartigen Dinge , die der Mixin im Grunde für uns bietet. Aber das, was wir jetzt hinzufügen müssen, sind immer noch einige Becken der Blockstaaten. Wir bräuchten immer noch ein Hi in Block C, Jason genau hier. Das wird also das Kirschblütenzeichen sein, das einfach auf das Kirschblütenzeichen zeigt. Und dann brauchen wir auch das Kirschblüten-Wandschild. Wir brauchen diese beiden Beiträge jedoch, die auf dasselbe Blockmodell verweisen. Und dann werden wir in den Gegenständen nur einen Gegenstand haben, der die Kirschblütenbesitzer unterschreiben könnten. Und dann auch hier werden die Kirschblüten sein. Und dann haben wir in den Modellen, die wir eigentlich nur gesagt haben, hier ein Modell. Und das ist das normale Vorzeichenmodell , weil dies nur das Teilchen definiert. Wie Sie sehen können, ist das alles es hier im Grunde braucht. In dem Artikel haben wir natürlich auch nur einen Artikel. Nun, wir haben nur einen Gegenstand. Es gibt also einfach Punkte auf die normale Textur. Das werden hier die Artikeltexturen sein. Ich kopiere das einfach vorbei. Sehr tolles Schild genau dort. Und wie wird es dann in 3D angezeigt? Nun, das ist im Grunde eine interessante Sache, aber wir müssen im Grunde wieder in unseren Minecraft Textures Ordner gehen . Und dann müssen wir im Entitätsordner den Ordner „Schilder“ hinzufügen. Und dann muss der Name hier mit dem Namen übereinstimmen , den wir in der Sinustypenklasse erhalten. Das ist also sehr wichtig. Dies muss im Grunde mit diesem übereinstimmen. Und dann wird es so in 3 D angezeigt, oder? Und nachdem wir all das hinzugefügt haben , schauen wir mal, ob es funktioniert. Alles klar, wir finden uns in Minecraft und schauen uns das an. Nun, es wird tatsächlich ein Block sein. Nun, ich meine, nicht das Schlimmste überhaupt, aber mal sehen, ob das Schild tatsächlich funktioniert und sie gehen, es funktioniert. Das ist großartig. Nun, ich bin schon wieder in einem solchen Anzug und dann lasst es uns auch auf den Boden legen. Es funktioniert auch und alles funktioniert gut. Also bin ich, das einzige, was wir wirklich beheben müssen, ist die Übersetzung hier. Aber das ist natürlich keine einfache Lösung, indem Sie es einfach ändern, um es zu blockieren. Und dann werden wir es auch nach unten verschieben, damit wir es hier etwas besser organisiert haben. Aber das fasst es ziemlich zusammen, oder? Und nachdem wir die Übersetzung hier repariert haben , sind wir im Grunde fertig. Und so können Sie Minecraft ein benutzerdefiniertes Zeichen hinzufügen. Insgesamt mit Hilfe des Repositorys. Wie ich schon sagte, es wird in den Ressourcen verknüpft sein. Es ist eigentlich ziemlich einfach, oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 90. (Fortgeschrittene) Minecraft und Stoff aktualisieren: Oder ich begrüße zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir sowohl Minecraft als auch Fabric auf die neue Version 1181 aktualisieren . Richtig. Das Aktualisieren einer Version kann also normalerweise sein, naja, ich würde nicht unbedingt riskant sagen, aber es könnte viele Änderungen zwischen den Versionen geben und einige Dinge könnten sich ändern. Zum Glück für uns sind die Änderungen hier im Grunde nicht vorhanden. Es gibt also keine Änderungen an allem, was in einem 1800er Jahre mit der neuen Fabric-Version noch funktionieren sollte . Was wir tun werden, ist, dass wir unsere Gradle-Eigenschaftendatei öffnen. Und das sind das genau hier, die Abhängigkeiten und die Fabric-Eigenschaften, andere Dinge, die wir ändern werden. Und genau das ist die Seite, die wir öffnen möchten. Ich habe das schon hier geöffnet und Sie können sicherstellen, dass wir hier die richtige Version haben, 1181. Und dann möchten wir das überschreiben, bevor wir eine Botschaft aus der Zukunft fortsetzen. Da 1 1000th 2 so ziemlich gerade veröffentlicht wurde, empfehle ich wärmstens, dass Sie es auf 100 1800s behalten. Wenn Sie die Vorträge mit 118 verfolgt haben, empfehle ich Ihnen dringend, auf einem 1800er zu bleiben anstatt sofort auf einhundertachthundertzwei zu aktualisieren , denn ein 1800er Jahre für alle bevorstehenden Die Weltgeneration wird am Ende des Kurses nicht mit 172 arbeiten, es wird einen Abschnitt geben, in dem wir zusehen können, wenn Sie durchmachen möchten ein 1800er Jahre durchmachen möchten, um das nur im Hinterkopf zu behalten. Also wärmstens zu empfehlen, bei 181 zu bleiben. Und dann können Sie ganz am Ende des Kurses aktualisieren, mit der rechten Maustaste auf Kopieren klicken, dann möchten wir es im Grunde nur hier einfügen und Sie können sehen, dass nicht wirklich viel geändert hat. Also die Fabric-Version, wir sind tatsächlich auf der neuesten Stoffversion. Das ist großartig. Also können wir das löschen. Wir können sehen, dass die Loader-Version hier tatsächlich neu ist, also werden wir diese einfach durch sie ersetzen. Und dann werden sowohl die Version für das Minecraft als auch das Garn gewechselt. Wir werden auch beide ersetzen. Und dann speichern Sie das im Grunde einfach und laden Sie es dann mit den Load Gradle-Änderungen hier neu, denn jetzt wird das Projekt mit etwa 1.18.1 und der neuen Garnversion neu aufgebaut , genau wie die Lader. Er hätte wahrscheinlich auch die Mod-Version hier ändern können, aber es wird uns gut gehen. Ich denke, dass das okay ist. Und los geht's, bauen erfolgreich. Jetzt wird alles hier kartiert. Und was wir dann tun können, ist, dass wir es können, ich empfehle dringend, den Debug zum ersten Mal durchzuführen. Also, als ich ersten Mal, als ich es zum ersten Mal gekauft habe , startete das Spiel nicht, aber sobald ich es zum zweiten Mal lief, hat es angefangen. Es gibt also wahrscheinlich etwas im Hintergrund, das beim ersten Mal heruntergeladen werden muss . Wenn Sie also einen Fehler für einige bekommen, die es ausführen, führen Sie es einfach erneut aus und sehen Sie, ob es wieder funktioniert, weil das eine sehr seltsame Sache war, aber wir werden nur sehen, ob es funktionieren wird oder nicht. Aber natürlich ist es der erwartete Fehler , dass Minecraft bereits auf einem anderen Bildschirm gestartet hat, weil wir nicht angemeldet sind. Also los gehst du. Einhundertachthundert schön, absolut großartig. Und da gehst du. Wir sind im Spiel, im Grunde funktioniert es. Lasst uns einfach in die Welt gehen, nur um sicherzustellen, dass alles zwischen den Versionen funktioniert. Wenn es sich um die gleiche Version handelt, also wenn es nur die letzten digitalen Änderungen sind, werden die Änderungen wahrscheinlich nicht zu sehr beeinflussen. Manchmal gibt es Dinge, die von einer Fabric-Version zur nächsten veraltet sind . Das könnte der Fall sein. Ich werde versuchen, im Grunde alles so aktuell wie möglich zu halten. Im Grunde füge ich irgendwo einen Vortrag hinzu, wo es so ist, hey, das hat sich geändert. Du musst es jetzt so machen. Aber insgesamt können Sie sehen, dass ich hier immer noch mit der rechten Maustaste klicken kann. Sie sind immer noch, ich bekomme immer noch die Geschwindigkeit hier. Insgesamt funktioniert normalerweise alles hier immer noch gut, oder? Und so einfach ist es zu aktualisieren. Also lasst uns nur zur Vollendung hier willen, machen wir etwas wie Lass uns an dieser Stelle tun, wir sind in einer Version wie 0.1.5 oder so ähnlich. Ich glaube, ich fühle mich wie. Und dann setzen wir dies auf 118 des Archivbasisnamens. Wir werden uns nicht ändern, weil das natürlich immer noch Stoffkurs 118 ist und das wird gut werden. Aber jetzt sind wir auf der Micro-Version 1800s und der neuesten Garnversion der niedrigeren Version. Und so ist es am einfachsten , Fabric zu aktualisieren, bereits für diese Vorlesung hier ist. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 91. (World Gen) Benutzerdefinierte Bäume: Oder ich komme für 118 zurück zum Stoffkurs. Und in diesem Vortrag werden wir Minecraft einen Baum hinzufügen, oder? Das Hinzufügen eines Baumes beinhaltet also auch das Hinzufügen der Blätter und eines Bäumchens. Und dies wird auch beinhalten, die Knochen des Bären der Rollengeneration hinzuzufügen , da das eigentliche Laichen des Baumes irgendwie wie ein bisschen mit der Weltgeneration vermischt ist des Baumes irgendwie wie ein bisschen . Aber vorerst gehen wir zunächst zur Postfachklasse und wir werden die Blätter und die Setzlinge erstellen. Wir werden die Bretter direkt hier über die Kirschblütenbretter kopieren und wir werden hier Blätter sagen und dann gleich hier gehen. Und vielleicht blockieren Elifs. Und das wird die Eichenblätter kopieren. Dann ist das Gleiche hier, Kirschblütenproben und dann auch hier Bäumchen. Und das ist ein neuer Taumelblock. Und dann werden wir das Gleiche haben, was wir zuvor hatten. Die Achse hier ist geschützt. Deshalb müssen wir einen Mod dieser Bausteinklasse erstellen . Wir werden nur die Setzling-Block-Klasse erweitern, über diesen Create Constructor Matching super. Und wir werden das einfach öffentlich machen. Und anstelle des Geschwisterblocks, in dem Sie das Mod-Sublingual verwenden, gibt es jetzt tatsächlich zwei Parameter, die wir benötigen werden. Sie können sehen, dass wir einen Geschwistergenerator brauchen. Dies ist also etwas , das wir innerhalb eines neuen Pakets erstellen werden. Also MC Kurs, Rechtsklick auf neues Paket. alte Welt wird das Weltpaket schaffen. Und dann ein neues Paket cooles Feature. Und drinnen werden wir ein neues Paket namens Tree and Industry Package erstellen . Wir werden eine neue Java-Klasse erstellen, die als Cherry Blossom Tackling Generator bezeichnet wird . Wir müssen grundsätzlich neue für jeden einzelnen Baum erstellen grundsätzlich neue für , den wir hinzufügen möchten. Dies ist gleich dem Schössling, Setzling Generator. Und das implementiert im Grunde nur eine Methode und das ist die Methode get three Feature. Vorläufig werden wir diese Null halten. Wir werden die konfigurierte Funktion hier in nur einem Moment hinzufügen. Dann sagen wir hier nur einen neuen Generator zur Verdoppelung der Blüte. Und das ist im Grunde alles, was wir hier tun müssen. Aber beide sind fertig. Fügen wir sie hier sofort zur richtigen Renderebene hinzu, denn dann müssen wir nicht mehr darüber nachdenken. Also auch die Blätter und die Probenahme. Und dann auch hier stellen Sie sicher , dass dies übrigens den Schössling kopiert, das ist auch vor Tag wichtig. Und dann werden wir sofort alle JSON-Dateien hinzufügen , weil sie dann fertig sind. Und dann können wir danach grundsätzlich mit dem Code fortfahren . Sie sind beide im Grunde nur normale JSON-Dateien. Sie können hier nur die Blätter und den Bäumchen sehen, oder den Block States Jason Lange. Übersetzung wäre zu diesem Zeitpunkt ziemlich selbsterklärend. Hier gehen sie zu den Blättern und Bäumchen als mit den Blockmodelldateien. Das einzig Interessante hier ist, dass die Probenahme hier einen übergreifenden Elternteil und eine Kreuzstruktur hat , aber die Blätter sind rundum ein normaler Block. Dies ist das einzig Interessante hier. Und dann gibt es noch etwas Interessantes in der Artikeltextur oder im Bäumchen. Und das ist, dass der Bäumchen tatsächlich eine normale Textur hat, wie Sie sehen können. Es zeigt also tatsächlich auf eine Blocktextur hier, denn der Bäumchen, der in der Welt angezeigt wird im Kreuzmuster ist das gleiche wie in, als Gegenstand. Im Grunde ist das der Fall. Dann können wir einfach die Bäumchen und die Blatttexturen hinzufügen . Da gehst du. Und dann wurde alles hier ziemlich hinzugefügt , damit wir uns darüber keine Sorgen mehr machen müssen. Und jetzt müssen wir im Grunde nur das und gemusterte Feature hier hinzufügen das und gemusterte Feature , das mit dem Baum spawnt, zum Beispiel wenn wir es knochen. Dies ist also der erste Teil und dann die nächste Vorlesung, wir werden sehen, wie wir den Baum als Weltgeneration spawnen können. Als Teil der Weltgeneration werden wir jedoch im Feature-Paket erstellen, klicken Sie mit der rechten Maustaste auf neue Java-Klasse. Und das ist die im Modus konfigurierte Feature-Klasse. Und dafür werden wir tatsächlich ein paar Dinge brauchen. Nummer 1, los, wir werden brauchen, ich werde diese Methoden kopieren . Der gesamte Code steht Ihnen natürlich im GitHub-Repository oder einer Einzelperson zur Verfügung , Sie können sehen, dass ich die konfigurierte Features-Methode hier registriert habe . Dies ist etwas, das wir ganz oben auf der initialisierten Methode nennen werden, eigentlich ziemlich erschöpft, aber hier müssen wir es als ein schwaches Bedürfnis bezeichnen, es ganz oben zu nennen. Ansonsten funktioniert die Reihenfolge der Initialisierung nicht ganz. Und dann haben wir auch diese Registermethode, die Sie sehen können, dass sie religiös registriert ist, eine Konfigurierfunktion unter dem Namen, der hier angegeben wird. Und das ist so ziemlich alles, was es dazu gibt. Und wir werden das brauchen, weil ich tatsächlich die konfigurierte Funktion für Kirschblüten kopieren werde . Und ich werde erklären, wenn wir grundsätzlich weitermachen, was Sie sehen werden, dass wir es im Grunde mit dem Namen Cherry Blossom registrieren und es ist ein Feature-Baum-Konfiguration. Das ist also die Idee. Wenn wir mit der mittleren Maustaste auf den Baum klicken, können Sie sehen, dass es sich um ein Baum-Feature oder nur um ein Feature handelt. Und sobald Sie konfiguriert aufrufen, wird es zu einer konfigurierten Funktion. Und wir geben einen, b. Feature-Konflikt-Builder weiter , der dann einige Dinge benötigt , damit wir auch mit der mittleren Maustaste darauf klicken können und Sie sehen können, oh, das ist ein Kofferraum-Anbieter, ein Trunk Placer, Laub Anbieter, ein vollständig zu platzieren und dann eine Mindestgröße. Die allgemeine Idee hier ist also , dass wir einen Block Say Provider haben. Dies, der erste ist, gibt an, wie das Protokoll aussehen wird. Das wird also sein, was auch immer der Kofferraum ist. Dann haben wir ein anderes, wir können verschiedene Kofferräume bauen. So kann ich mit der mittleren Maustaste darauf klicken und Strg H über den Placer drücken. Und Sie können sehen, dass es verschiedene Arten von Stamm Placers gibt. Und ja, du kannst auch deine eigenen machen, oder? Sie sind, wahrscheinlich ist viel Java-Wissen erforderlich, weil es tatsächlich ziemlich schwierig ist, sie zu machen. Dann sind der dritte Parameter die Blätter, die Sie haben möchten. Und dann ist der Blob All, jeder Ort oder in diesem Fall die Art und Weise, jeder Ort oder in diesem Fall die Art und Weise, wie die Blätter angezeigt werden. Wieder einmal können Sie hier reingehen und einen Blick auf die Laubplatzierungen werfen Control H. Und Sie können im Grunde sehen, dass es dort auch eine Reihe von Optionen gibt. Ich empfehle also noch einmal nur wärmstens, damit ein bisschen herumzuspielen. Und dann können die beiden Layer Feature wieder zurückgehen. Dies war die Mindestgröße, also bin ich mir immer noch nicht hundertprozentig sicher, was genau das ist. Was ich glaube, die allgemeine Idee ist, dass so viel Platz um den Baum herum sein muss. Wenn ich mich nicht irre, ist das etwas, aber die, insgesamt die Weltgeneration, gibt es so viele bewegliche Teile, dass es verrückt ist. Und dann änderte es sich auch von 1 16., 170 auf 180. Jetzt ändert sich alles ziemlich regelmäßig. Normalerweise allerdings. Manchmal ist es schwer mitzuhalten. Aber das ist, glaube ich, was das ist. Und das müssen wir hier im Setzling Generator zurückgeben . Also müssen wir sagen, mod konfigurierte Funktionen, die Kirschblütenbaum. Dann werden wir das zurückgeben. Alles sollte in Ordnung sein. Dann, jetzt theoretisch, sobald wir den Bäumchen ablegen und wir Knochenmehlausweis oder die Zeit vergeht, wird er zu einem Baum wachsen. Dies ist also im Grunde der erste Teil davon. Also lasst uns einfach sehen, ob es funktioniert oder ob ich in Minecraft zurückgesagt werde, wie Sie sehen können, der Bäumchen und die Blätter wurden hinzugefügt. Siehen sie vorerst nicht gut aus, lassen Sie uns den Bäumchen und weniger Knochenhirse niederlegen und mal sehen, ob wir einen Baum bekommen können und da ist er ein Baum, der mächtig groß und stark ist. Das ist also echt cool. Und lasst uns auch einfach versuchen ein paar von ihnen hier unten zu setzen. Und mal sehen, ob sie tatsächlich wachsen können. Wenn ich die IM-Regel einschalte, zufällige Tics die Geschwindigkeit und Abneigung erhöhen zufällige Tics die Geschwindigkeit und Abneigung durch Verrücktheit. Mal sehen. Da gehen sie hin. Lassen Sie das tatsächlich spawnen , weil es zu nah ist. Es müssen wir uns tatsächlich ein bisschen weglassen und dann wird es wahrscheinlich auch spawnen. Sie gehen dorthin, es ist vollkommen in Ordnung. Also funktioniert alles total gut, genau wie du es erwarten würdest, oder? Um für jeden neuen Baum, den Sie haben möchten , zusammenzufassen, müssen Sie erneut für jeden neuen Baum, den Sie haben möchten , zusammenzufassen, eine neue konfigurierte Funktion des bitteren Konflikts sowie einen benutzerdefinierten Setzling-Generator und dann benötigen ein benutzerdefinierter Bäumchen. Und das sind im Grunde die drei Dinge, die Sie brauchen werden, um im Grunde genommen einen Baum zu erleichtern, der aus einem Bäumchen wächst , entweder wenn er Knochenmehl zu oder im Laufe der Zeit hat. Warum? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und er erfährt, dass das neue, wenn Sie es täten, ich eine Rezension von Ihnen sehr schätzen würde . Ansonsten sehe ich Sie jedoch in der nächsten Vorlesung. Ja. 92. (World Gen) Baumgeneration: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir einen Blick darauf werfen, wie man einen Stängelbäume, die Weltgeneration, hinzufügen kann . Aber wir haben das benutzerdefinierte Tray beim letzten Mal erstellt und jetzt werden wir es der Weltgeneration hinzufügen. Und insbesondere werden wir auch sehen, wie Sie ganz einfach filtern können , zu welchem Biom es geht. Was wir also tun werden, ist, dass wir dafür noch ein paar Kurse brauchen werden. Die erste ist in der Feature-Klasse, Rechtsklick auf neue Java-Klasse, die als Modell platzierte Features bezeichnet wird, ist sehr wichtig. Dies wird wahrscheinlich heute die Hauptklasse sein. Und das wird sehr interessant sein , denn dies hat zwei verschiedene Methoden , die wir brauchen werden. Noch einmal kopiere ich sie. Das Gericht steht Ihnen natürlich im GitHub-Repository oder einer Einzelperson genau dies zur Verfügung, der Methode Register Place Feature und der Registrierungsschlüsselmethode. Nun, beide sind hier sehr wichtig. Und der eine von ihnen erhält im Grunde den Registrierungsschlüssel für einen bestimmten Ort Funktionen. Darauf müssen wir uns also beziehen, wenn wir es tatsächlich spawnen wollen. Und dies registriert tatsächlich die Platzfunktion und den eigentlichen Registrierungsschlüssel, den ich auch kopieren werde , eigentlich ziemlich einfach. Sie können sehen, dass es nur ein Registrierungsschlüssel eines Registrierungsschlüssels von Ort ist, was der Kirschblütenschlüssel platziert hat. Und das entspricht dem Registrierungsschlüssel. Und dann wird der Name hier, im Grunde auch der gleiche Name wie das platzierte Feature erhalten. Das ist also sehr wichtig. Aber bevor wir das platzierte Feature für den Baum erstellen können, müssen wir hier tatsächlich ein weiteres konfiguriertes Feature bekommen , oder? Jetzt gibt es also etwas sehr Interessantes. Um also im Grunde den Vanilla-Code für die Funktionen und Sachen zu sehen , können wir zur Feature-Klasse gehen. Und was Sie vielleicht haben könnten, ist die blaue Linie hier und im Grunde nichts anderes hier drin. Um dies zu beheben, können wir zum Terminal gehen und wir können Dot-, Punkt-Schrägstrich Gradle-, W-, Jan-Quellen einsetzen . Und dann lass das einfach durch und lass das dann durchlaufen. Und dann, nachdem es geschehen ist, werden die Quellen hoffentlich für uns den Weg generieren. Es gibt einen weiteren Trick, den wir grundsätzlich verwenden können, um die realen Quellen tatsächlich zu sehen, im Grunde für Minecraft. Genau da sind wir los. 58 Sekunden Build erfolgreich, das ist sehr gut. Wenn ein Build fehlgeschlagen ist und es heißt: Hey, ich mag diesen. Sieh dir das an. Sie verwenden nicht die richtige Version. Was Sie tun können, ist, dass Sie das Java-Home zu den radialen Eigenschaften hinzufügen können , in denen Sie Ihre Java-Home-Umgebungsvariable ändern müssen, eine davon würde funktionieren. Aber vorerst ist das in Ordnung. Jetzt können wir es tun, können wir die mittlere Maustaste drücken, auf Feature klicken und Sie werden sehen, dass das immer noch nicht gut funktioniert, ich kann zur Auswahl von Quellen gehen. Und dann sage ich, ich benutze die Kartenquellen. Ich sage ja und sehe plötzlich alles hier drin. Und jetzt können wir tatsächlich sehen, wie der eigentliche Quellcode aussieht. Und dafür interessiert uns das zum Beispiel nicht wirklich zu sehr. Aber wenn ich mit der mittleren Maustaste zurück klicke, klicke erneut darauf, du kannst überall sehen, wo das verwendet wurde. Und Sie können sehen , dass es in den baumkonfigurierten Feature-Klassen verwendet wird , wie , oh, das ist sehr interessant, oder? Es ist wie, Yeah, es ist sehr interessant, mal sehen, dass die AUC-Konfigurationsfunktion eine konfigurierte Funktion ist, die AUC-Konfigurationsfunktion eine konfigurierte Funktion die bei der Registrierung mit der Tree-Konfigurationsfunktion mit den Funktionen konfiguriert ist von OK. Das siehst du hier. Im Grunde ist es nur ein bereits erledigter Builder. Sie können Baumkonflikt-Builder sehen. Und dann buchstäblich alles, was wir getan haben, oder? Wir haben eine Sperre StateProvider des Protokolls erstellt. Wir haben einen Trunk Placer und all diesen Jazz gemacht. All das wird also auch hier gemacht. Aber jetzt wird dieses eigentliche Struktur-Feature, config konfigurierte Feature, wieder verwendet. Wenn ich also die mittlere Maustaste klicke, klicke erneut darauf, kannst du sehen, dass dies in den Tree Place Features verwendet wird , oder? Und wenn ich hier reingehe und sehe, dass dies jetzt ein platziertes Feature-Objekt ist und dieses, da die Breite darauf überleben würde. Aber jetzt wird es noch verrückter und bitte ertragen Sie es vorerst mit mir. Sie können sehen, dass dieses Ort-Feature dann in den von Vegetation konfigurierten Features mit einigen anderen zufälligen Dingen verwendet wird den von Vegetation konfigurierten Features . Das ist also wahnsinnig, oder? Damit Sie sehen können, ist dies die Linie, also Zeile 66. Und sehen Sie, dies ist die dunkle Waldvegetation, die wieder ein konfiguriertes Merkmal des zufälligen Features Conflict ist . Dieser wird in einem Ort-Feature verwendet. Auch hier gehen wir im Grunde von der konfigurierten Funktion zum Platzieren von Feature, um Feature zum Platzieren von Feature zu konfigurieren. Das scheint verrückt zu sein. Was ich wärmstens empfehle, ist , alle Feature-Classes hier zu durchlaufen. Im Grunde gibt es eine Menge Sachen hier drin. Es ist eigentlich wahnsinnig. Es gibt so viele Dinge hier drin. Ich empfehle nur wärmstens, durch die zu gehen, im Grunde sind die Merkmale des Baumplatzes überall wahnsinnig interessant. Und im Grunde um zu sehen, naja, wie macht Vanille das? Wie spawnt Vanille Sachen? Und wir werden etwas Ähnliches machen. Sagen wir, Nun, das Ähnliche, was wir tun werden, ist, dass wir wieder in unsere moduskonfigurierte Feature-Klasse gehen . Also genau hier. Und wir werden diese konfigurierte Funktion im Grunde sofort nutzen und eine weitere Konfigurationsfunktion daraus machen. Jetzt kopiere ich das auch. Dies ist in diesem Fall die zufällige Feature-Konfiguration. Und Sie können sehen, dass dies im Grunde genommen den Feature-Zufallsselektor nimmt, einen neuen zufällig konfigurierten zufälligen Feature-Konflikt mischt, dann entweder den Kirschblütenbaum mit würde überleben Filter des Kirsche, Bäumchen oder das Gleiche. Im Grunde genommen ist dies ein bisschen verschlungene Art und Weise. Es gibt wahrscheinlich einen besseren Weg , dies zu tun, aber vorerst ist dies der beste Weg, dass ich es im Grunde genommen gefunden habe , dass es funktionieren könnte und dass es funktionieren sollte. Und das ist eigentlich total in Ordnung und wir werden jetzt arbeiten. Der Grund, warum wir die konfigurierte Funktion genau hier benötigen , ist, dass wir diesen Filter wollen. Jetzt ist das Problem, dass dieser Filter, wenn ich mit der mittleren Maustaste darauf klicke, sehen können Sie sehen, dass dies ein Platz-Feature zurückgibt. Und das Problem ist, dass ich, sobald ich eine Platzfunktion habe, keine anderen Platzierungen darauf machen kann. Also kann ich hier immer nur ein bestimmtes Praktikum machen. Und das war's. Nun, es gibt wahrscheinlich, wie gesagt, eine andere Möglichkeit, dies zu tun Das wird ausgehasht und ein bisschen Amine 1.18 ist sehr neu und die Weltgeneration wird komplett erneuert. Vielleicht wird es irgendwann ein Update dazu geben. Aber vorerst funktioniert das übrigens absolut, es gibt keine Sorge. Also werden wir das jetzt nutzen und daraus eine Platzfunktion erstellen. In den Funktionen des Marktplatzes werde ich dies auch überschreiben. Dies ist die Kirschblüte. Und du siehst, dass ich den Cherry Blossom Tree Random nehme , der genau hier ist. Und ich werde dies mit der Platzierung von pflanzlich platzierten Merkmalen verwenden , die ich habe, auf die ich grundsätzlich eingehen kann. Sie können also sehen, dass dies im Grunde eine bestimmte Liste bereits erstellter Modifikatoren ist . Und dann sage ich: Hey, nimm die Anzahl zusätzliche Modifikatoren. Was ist das? Nun, was das tun sollte, ist dass es einen Baum pro Stamm spawnen sollte. Es hat eine Chance von 10 Prozent , auf Extra zu reagieren. Glauben Sie, dass das die allgemeine Idee ist in der Sie sich befinden, könnte sogar ein bisschen mehr spawnen. Aber insgesamt ist dies die allgemeine Idee. Wenn du zum Beispiel einen Baum willst, der super selten ist, aber du kannst es tun, kannst du einfach nein zählen 0 sagen. Und dann wie eine Chance von 0,1%, dass ein zusätzlicher Sponsor zum Beispiel, oder aber für unsere Zwecke hier, wollen wir es natürlich sehen. Wir wollen den eigentlichen Baum sehen. Also lasst es uns so machen. Dies bestimmt im Grunde genommen, wie das geht, wie der Baum tatsächlich spawnt. Was sehr wichtig ist, ist, dass dieser Schlüssel hier und in diesen Schlüsseljahren dieser Bücher, Buch, diese beiden Namen gleich sein müssen. Das ist sehr wichtig. Und was wir dann tun werden, ist, dass wir zwei neue Klassen brauchen. Eigentlich ist das in der Weltklasse. zunächst im Arbeitspaket mit der rechten Maustaste auf ein neues Paket namens Jen. Und dann werden wir dort zwei neue Klassen haben, die Mod-Drei-Generationenklasse und dann auch die Mod-Weltgen-Klasse. In der Modellbaum-Generatorklasse fügen wir also eine öffentliche statische Leere hinzu, generieren einen Baum. tut Res tatsächlich. Vielleicht wollen wir mehrere erstellen. Und hier hat die willige WHO die Modifikationen des Maulwurfs genannt , die Feature-Selektoren hinzufügen. Und dann können wir hier grundsätzlich verschiedene Biome auswählen. Wir können sagen, Hey, nimm einfach alle Biome, oben, nimm alle in der Überarbeitung. Wir können hier sogar nach Tag gehen. Sie können also sehen, dass es viele verschiedene Möglichkeiten gibt, dies zu nutzen. Wir werden, wir werden die Kategorien machen und wir werden Kategorie-Punktebenen sagen , damit wir im Grunde nur das Spawnen in Flugzeugen um Ohm sind. Und dann kommt die Generation hier, wir werden Generationsschritt sagen, und das ist die pflanzliche Dekoration. Ich zeige das in einem Moment. Dann bietet der Marktplatz diesen Schlüssel. Wir wollen also, dass der Schlüssel hier weitergegeben wird. Und dann wird dies unser letztes Feature in allen Biomen erzeugen , die die Kategorie Ebenen im Erzeugungsschritt vegetal haben . Also lasst uns das eigentlich eingehen. Sie können sehen, dass es verschiedene Generationsschritte gibt. Und es ist sehr wichtig, diese Bestellung grundsätzlich zu essen. Sobald wir zum Beispiel ein unterirdisches Erz sind, können Sie sehen, wie diese vor der pflanzlichen Dekoration kommen. Deshalb müssen wir die Ruder davor hinzufügen. Das ist also sehr wichtig und Sie müssen hier auch im Grunde immer das Richtige tun. Aber normalerweise ist sehr klar, was der eigentliche Generationsschritt in der modernen Welt ist, jetzt wird es auch eine einfache Methode geben. Das wird die öffentliche statische Leere sein. Wir werden dieses degenerierte Modus einfach Weltgen nennen, was den Radius oder den coolsten Namen stopft, aber es wird definitiv ausreichen. Und dann wird dies die Modellbaum-Generierung nennen , die Bäume erzeugt hat. Und dann wird dieser hier ganz unten in der initialisierten Methode aufgerufen . Obwohl, moderne Weltgen, wieder moderne Welt erzeugen, und das ist es. Lassen Sie uns also noch einmal zusammenfassen. Schließen wir alles , was wir haben, und öffnen wir die , die wir geändert haben. Wir hatten also eine neue konfigurierte Funktion, die wir hinzufügen müssen, um im Grunde sicherzustellen , dass der Kirschblütenbaum nur spawnt, wo ein Bäumchen gültig ist. Deshalb ist das hier so wichtig. Das ist erledigt, dann können wir daraus ein Feature machen, das mit etwas Platzierung im Grunde noch mehr filtern wird . Die spezifische Platzierung , die wir gewählt haben war die Anzahl extra, sehr zu empfehlen. zum Beispiel hier hineingehen, können Sie Platzierungsmodifikatoren für die mittlere Maustaste sehen Platzierungsmodifikatoren , und ich glaube, ich kann erneut darauf klicken. Dann können Sie beispielsweise sehen, wo all diese Funktionen verwendet wurden. So gibt es zum Beispiel einige, die bereits vorbereitet sind, sobald Sie in der Place-Feature-Klasse sind , die Sie verwenden können. Es ist also eine Menge Sachen drin. Ich glaube, dass diese auch mit Control H verwendet werden Sicherlich kann man sehen, dass es einige quadratische Platzierungsmerkmale gibt , zufälligen Offset. Hier ist eine Menge Sachen drin. Ich kann nur noch einmal empfehlen , damit herumzuspielen. Sei offen für Experimente dafür. Vor allem, wenn es um World Gen geht. Es ist sehr kompliziert. Und wenn Sie also etwas im Sinn haben , das Sie genau so wollen, wie Sie es wollen , wen, müssen damit eine Menge Sachen ausprobieren. Aber dieses Ort-Feature hat dann im Grunde genommen den gleichen Schlüssel wie der Schlüssel. Dieser Schlüssel hat also denselben Namen wie das Platz-Feature und dies muss übereinstimmen. Und dann können wir es in der Modellbaum-Generierung mit diesen Bio-Modifikationen nennen , ist etwas, das uns Fabric schenkt, jetzt ist dies ein experimentelles Merkmal, das entfernt oder geändert werden kann , ohne weitere Mitteilung. Das ist vorerst sehr wichtig. Es funktioniert immer noch. Wir können es immer noch benutzen, wenn es sich jemals ändert. Ich werde natürlich irgendwo einen Vortrag halten und aktualisieren, damit irgendwo einen Vortrag halten und aktualisieren, damit Sie wissen, wie Sie es grundsätzlich ohne diesen Kurs schaffen können. Aber vorerst werden wir es benutzen, weil es sehr einfach zu bedienen ist und einwandfrei funktioniert. Und dann ist das im Grunde nur in der modernen Weltgeneration oder mehr Weltgen-Klasse gefangen . Und dass der Standard im Literalismus genannt wird. Das ist also so ziemlich alles, was es vorerst gibt. Mal sehen ob es funktioniert, oder? Vergiss nicht, dafür auch eine neue Welt zu schaffen. Da wir uns natürlich mit der ländlichen Generation anlegen wo ich jedes Mal, wenn Sie das tun, empfehle ich dringend, eine neue Welt zu schaffen nur um sicher zu sein, dass alles richtig spawnt. Also mal sehen, oder wir befinden uns in Minecraft. Also lasst uns einfach hier in Flugzeugen vorbeischauen. Und mal sehen, ob die Kirschblütenbäume dort laichen. Und mal sehen, da sind sie so, als wäre es hier kein großes Biom, aber sie laichen. Und das ist einfach großartig. Wie Sie sehen können , ist dies der General ein Reh pro Jahr, wie sehr sie klein sind, wenn die Biome ein bisschen größer sind, Sie können es natürlich ein bisschen klarer sehen. Aber vorerst ist das total großartig. Und wie ich immer sage, wenn es um die Zahlen geht, müssen Sie die Zahlen auf die eine oder andere Weise optimieren. Das ist also sowieso ein wichtiger Teil davon. Das ist also etwas, das Sie definitiv beachten müssen, oder? Aber alles funktioniert und dies ist so ziemlich der erste Vortrag für die Generation des Weltkriegs. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Oh ja. 93. (World Gen) Flower: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir uns ansehen, wie Sie Ihrem MOD grundsätzlich Mehlgenerierung hinzufügen können. Jetzt wird wieder eine Menge Sachen kopiert, aber diesmal wird es nicht so viel sein. Der Kern ist natürlich für Sie im GitHub-Repository oder einer Einzelperson genauso gut verfügbar . Die allgemeine Idee hier ist, dass wenn es um die Erzeugung der Blumen geht, eine der Dinge, die die Leute fragen könnten, ist, naja, wie haben Sie das herausgefunden? Es ist eigentlich nicht so verrückt. Es ist so ziemlich dasselbe, was wir zuvor gemacht haben. Klicken Sie mit der mittleren Maustaste auf die Feature-Class und dann haben Sie zum Beispiel das Flower Feature, richtig? Und dann kann ich mit der mittleren Maustaste darauf klicken und sehe, wo es verwendet wurde. So wurde es zum Beispiel in der Blumen-Standardeinstellung verwendet. Was ich dann mache, ist, dass ich buchstäblich über den Blumen-Standard kopiere . Du kannst sehen, dass ich einfach die gesamte Zeile auswähle , Control C, Control V drücke und dann einfach alles anschaue, was ich brauche. Und dann siehst du das, hey, das braucht einen Dandy-Löwen und ich denke, okay, also kann ich das im Grunde durch meine eigene Blume ersetzen, solche Sachen und so weiter und so weiter. Und so macht man das so ziemlich, oder? Du stammst einfach ständig und dann einfach damit machst du es im Grunde genommen, du konstruierst es zurück und dann weißt du, wie es funktioniert. Zuallererst werden wir die konfigurierte Funktion hier kopieren , und wir werden sehen, dass eine der Dinge hier rot ist, und genau der Featurekonflikt „ Zufälliges Patch erstellen “ ist, I glaube, es ist entweder hier drin oder tatsächlich in der pflanzlichen Dekoration, ich denke, das wird hier verwendet. Dies ist nicht der, den wir wollen. Wir wollen uns einen Blick darauf werfen. Das glaube ich. Nein, nicht der Fall. Sie können also sehen, dass es hier tatsächlich viele verschiedene gibt. Und eigentlich ist derjenige, den wir wollen, das Folgende. Ich kopiere es tatsächlich. Das ist dieser hier. So ist der zufällige Patch-Feature-Konflikt von einem Blocksit-Provider und eine Reihe von Versuchen hier, dass dies diese Methode im Grunde nur hier aufruft. also keine Sorgen. Und die allgemeine Idee hier ist, dass dies jetzt im Grunde alles erfüllt im Grunde alles den zufälligen Patch-Feature-Konflikt erzeugt. Wir können uns das auch mal ansehen. Aber das wird für uns nicht wirklich so interessant sein, solche wie Featurekonfliktklassen in der Regel sind solche wie Featurekonfliktklassen in der Regel gut, manchmal irgendwie kompliziert. Ich meine, all das ist ziemlich kompliziert, wie Sie wahrscheinlich an dieser Stelle vermutet und erkannt haben werden. Insgesamt ist dies jedoch die konfigurierte Funktion. Und wenn wir jetzt zurückdenken, okay, wir haben eine konfigurierte Funktion, aber was wir auch brauchen, ist, dass wir auch eine platzierte Funktion benötigen, die genau richtig ist. Also in unserer Modell platzierten Feature-Klasse werde ich das jetzt kopieren. Nun, dieser ist eigentlich ziemlich einfach, weil Sie sehen können die rosa Rose platziert ist und dies einige Register sein wird, ein Ort-Feature. Wir werden die konfigurierte Funktion aus unserer im Modus konfigurierten Feature-Klasse verwenden, wenn beispielsweise mit einer bestimmten Platzierung arbeiten. Und in diesem Fall fügen wir des Seltenheitsfilters von vier und eine quadratische Platzierung hinzu, nur ein normaler Modifikator mit der Höhenzuordnung und dann dem Modifikator für die Bio-Platzierung. Das ist also ziemlich verrückt, wie woher kommt das? Nun, wieder einmal spielt es Merkmale einiger der eigentlichen Blumen. Wenn wir uns nur diese richtige vegetale Konfigurationsfunktion ansehen . Wir nehmen diese einfach und dann können wir zum Beispiel Merkmale der Vegetation und Vegetation sehen. Unsere warme, das ist Linie 73. Und wir können hier einfach eine Seltenheit sehen, auch quadratisch. Es nimmt auch die Bewegungsblock-Höhen-Map und den Modifikator zur Biom-Platzierung. Das ist im Grunde genommen, woher all diese kommen. Ich habe das alles im Grunde genommen von Vanille genommen und es funktioniert wunderbar. Das ist also so ziemlich die allgemeine Idee. Was wir jetzt auch brauchen werden, ist ein neuer Registrierungsschlüssel dafür. Dies wird also der rosa Rosen-Unterstrich-Schlüssel der Polizei sein . Dies wird wieder den gleichen Namen haben wie dieser, da diese übereinstimmen müssen. Und dann ist das so ziemlich alles, was wir jetzt tun müssen, wir müssen das natürlich noch spawnen. Dafür brauchen wir im Gen-Paket im neuen Modus einen Bus der niedrigeren Generation. Und ich werde die Methode hier einfach kopieren. Es ist nichts zu verrückt. Oh, schau dir dieses Modell an platzierte Features, sie gehen und dann sollte alles Jahr in Ordnung sein. Diese werden also noch einmal nur in den Flugzeugen spawnen, nur damit wir es grundsätzlich im selben Biom haben. Und dann muss das einfach hier gekühlt werden. Dies kann also entweder oben oder darunter aufgerufen werden. Das spielt eine Rolle, denn beide sind pflanzliche Dekoration. Alles hier heißt Engineering, wurde richtig hinzugefügt. Mal sehen, ob es funktioniert. Vergessen Sie noch einmal nicht, eine neue Welt zu erschaffen, da wir uns erneut mit der Weltgeneration beschäftigen. Mal sehen, was wir sehen können. Und wie es der Zufall will, sind wir schon neben einem Flugzeug und da sind sie, die rosa Rosen Morgen in kleinen Flecken hier. Und du kannst sehen, dass es noch einen Patch gibt. Und dann gibt es genau hier einen ziemlich großen Patch. Das ist also ziemlich cool. Und Sie können natürlich wieder sehen, dass es die Hauptsache ist, sich mit den Zahlen zu beschäftigen, um Ihre Generation zu bekommen. Schreib einfach, wenn du ein bisschen anders wolltest. Natürlich gibt es überhaupt keine Sorgen. kannst du immer ausprobieren. Aber vorerst ist das wirklich großartig und sie spawnen alle, naja, das ist ziemlich verdammt cool, oder? Aber das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, Sie haben diese nützliche und Unwissenheit des Neuen gefunden. Wieder einmal steht Ihnen natürlich der gesamte Code im GitHub-Repository oder einer Einzelperson genauso gut zur Verfügung. Und wir sehen uns in der nächsten Vorlesung. Also ja. 94. (World Gen) Ore: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir das machen, worauf Sie alle gewartet haben. Mal sehen, wie man Minecraft hinzufügt oder generieren kann, wenn es normalerweise um die Generation geht, oder die Generation ist so ziemlich die eine Sache, bei der jeder so ist : Oh mein Gott, ich muss wissen, wie oder Generation funktioniert. Dies ist das Wichtigste aller Zeiten. Sie wollen ihren Sport auf der Welt. Und genau das werden wir jetzt tun. Aber beeil dich noch einmal, finde das raus. Wir klicken mit der mittleren Maustaste auf das Feature. Und was Sie finden werden , ist, dass genau hier oder dies oder ja, es ist in der Tat ein oder Feature. Und wenn ich einfach darauf klicke, siehst du, dass es einige konfigurierte Funktionen gibt. So sind zum Beispiel einige Diamanten, kleiner Diamant, großer Diamant vergraben. Werfen wir jedoch einen Blick auf die kleine konfigurierte Diamantenfunktion. Sie können sehen, dass dies ein oder Feature Conflict Diamond oder hat . Also was ist das? Ist es eine Liste aller zukünftigen Konflikte, unser Ziel, müssen wir das auch selbst erstellen. Aber keine Sorge. Das ist nicht so schwer, das ist eigentlich nicht so schwer. Jetzt werde ich noch einmal alles kopieren, aber alles hier ist natürlich, auch im GitHub Repository oder einer Einzelperson verfügbar . Und für eine oder, wie ich schon sagte, benötigen wir hier eine Liste dieser Ziele sowie eine konfigurierte Funktion. Das ist so ziemlich alles, was wir brauchen. Und Sie können sehen, dass es hier im Grunde genommen zwei Zielsätze gibt. Also wenn ich das im Grunde nur ein bisschen anders mache , so dass es hier ein bisschen anders liest. Also los gehst du. Jetzt können Sie sowohl Ziele als auch beide Blöcke, die damit verbunden sind, deutlich sehen . Ein Ziel hat eine Regeltests , die es folgt, oder? Der Regeltest, den Sie hier sehen können , prüft im Grunde nur, Hey, stimmt das mit diesem speziellen Block hier überein? In diesem Fall sagen wir eigentlich: Hey, alles, was im Grunde durch einen Stein ersetzt werden kann, den Stein oder dann gibt es auch tiefe Schiefer oder austauschbar. Das ist also die allgemeine Idee hier. Weil natürlich unser normaler oder ersetzen kann oder sollte in der Lage sein, normalen Stein zu ersetzen und dann Tiefschlaf zu ersetzen oder sollte in der Lage sein, tiefe Schiefer zu ersetzen. Jetzt ist das nicht nur das Speichern, dies kann zum Beispiel auch direkt und ähnliches spawnen. Und das Gleiche mit Tiefschlaf. Es gibt wie andere Dinge, andere Arten von Blöcken , die auch im tiefen Zustand spawnen können und daher wird dies benötigt. Nun wird die Größe hier sehr interessant sein, denn die Größe, wenn wir tatsächlich hier reingehen, kann man sehen, dass es nur Größe und die Größe dort bedeutet, dass dies die durchschnittliche Größe einer Vene sein sollte. Das sollte also eigentlich die Venengröße sein. Und wie es dann in der tatsächlichen Welt spawnt, können Sie mit dem platzierten Feature wieder konfigurieren, dass wir tatsächlich eine sehr interessante Sache brauchen und das ist eine neue Klasse und die Funktionen verpackt. Das ist also der Modus oder Esser und wir kopieren einfach zwei Methoden. Jetzt kommen diese Methoden vom oder Feature selbst. Aus der Vanille oder den Funktionen habe ich sie im Grunde genommen genommen und hier veröffentlicht, damit wir auf sie zugreifen können , damit wir sehr einfach über die Place-Funktion hier, nämlich das Orakel beschwert sich, wie Sie sehen können, weil das Orakel eine bestimmte Platzierung hat oder dann die Modifikatoren mit count hat. Die Zählung bei den verschiedenen, die du bist, sagt also im Grunde , wie viele Adern pro Stamm laichen sollten. Dies ist zumindest mein derzeitiges Verständnis davon, dass der Zählmodifikator darin besteht wie viele Adern pro Stamm spawnen. Und dann haben wir einen Höhenbereich Platzierungsmodifikator von Trapez. Vielleicht haben Sie dieses Bild davon gesehen , wie die Erze jetzt spawnen. Und es gibt im Grunde verschiedene Arten von Funktionen, oder verschiedene Arten von Modifikatoren haben sie spawnt? Es gibt das Trapez, es gibt Uniform und Sie können sogar benutzerdefinierte Höhenanbieter herstellen. Wir können sehen, dass es eine einheitliche Trapezkonstante gibt, sehr voreingenommen, gewichtet, voreingenommen zu ihnen. Das ist also sehr interessant. Es gibt also verschiedene Höhenanbieter , die Sie grundsätzlich dort einsetzen können. Wenn Sie zum Beispiel so sind, nein, möchte ich, dass dies wie sehr, sehr langweilig, sehr voreingenommen zu unterer Höhe Anbieter gemacht werden kann. Sie können sehen, dass Sie diese ganz einfach erstellen können. , experimentieren, experimentieren, experimentieren, experimentieren, seien Sie offen für Experimente, besonders wenn Sie damit visuell herumspielen. Dies ist ein Beispiel dafür, wie es geht, oder? Wir werden im Grunde sagen: Hey, das kann überall von negativen 80 bis plus 80 spawnen. Dies dient vorerst nur zu Testzwecken. Wenn ich diesen Rückruf wirklich von unserem machen wollte verwende wahrscheinlich sogar den sehr voreingenommenen wie in Richtung der unteren acht Platzierungsmodifikator, weil ich das Gefühl habe , dass das die Kühler wären und würde vermutlich auch die Zählung verringern. Aber wir wollen nur zeigen, dass es hier grundsätzlich funktioniert. Und dann ist der Schlüssel wieder sehr einfach, aber es ist nur der Schlüssel zum Neukalken, Unterstreichen oder Abschrauben. Dann ist das Gleiche hier. Dies muss der gleiche Name sein wie dieser, natürlich spielt sie wieder gleiche Funktion mit dem Registrierungsschlüssel. Und dann brauchen wir hier nur einen neuen Modellursprung. Also kopieren Mod oder Generation das auch schnell. Es sieht ziemlich genauso aus wie die anderen. Dies sind nur abgestufte platzierte Funktionen, die sie vor ihnen haben. Und dann ist das so ziemlich auf der ganzen Welt zu finden. Dies ist also eine andere und dies ist im unterirdischen Erzeugungsschritt. Was sehr wichtig ist, ist, dass dies vor der pflanzlichen Dekoration genannt wird . So erzeugen MAR oder Generation Türen. Das ist sehr wichtig. Sonst funktioniert es nicht richtig. Aber das ist wieder einmal alles, was wir brauchen. Wir brauchen also nur eine Konfigurationsfunktion, die tatsächlich eine Liste von Zielen aufnimmt, was sehr wichtig ist, weil Sie natürlich möchten, dass sowohl der Store als auch der tiefe Zustand oder nur die kleine Größe der Größe der Venen, im Grunde die Venengröße hier. Und dann platziere Feature. Wir können sagen, wie viele Adern pro Transkripte geboren wurden und auf welche Art von Weise sie spawnen sollten. Aber in diesem Fall Trapez und dann ein Y-Offset. Sagen Sie im Grunde genommen: Hey, von welchem Y-Level bis zu welchem Level sollen sie spawnen? Das ist die allgemeine Idee. einmal empfehle ich dringend, einfach damit herumzuspielen. Sie können mit der mittleren Maustaste klicken und sehen, was Sie ändern können. Verschiedene HIE-Anbieter, all das. Ich kann es sehr empfehlen. Spiel einfach damit herum. Wenn Sie unterschiedliche Werte oder unterschiedliche Funktionen haben , wo Ihr Pferd auf unterschiedliche Weise spawnen soll. Aber vorerst mal sehen, ob es funktioniert. Und natürlich, wie so oft, weil wir uns mit der Weltgeneration angelegt haben. Lassen Sie uns eine neue Welt schaffen, oder ein Apotheker in Minecraft gibt es tatsächlich einen sehr guten Befehl , den wir verwenden können , der im Grunde genommen alle Dinge unten mit Luft füllt . Und wir können dann im Grunde genommen, ich werfe mir das alles an. Mal sehen, ob etwas, das wir wollen, hier drin hervorgebracht hat. Und dafür sieht es eigentlich nicht so aus. Nun, dann lasst uns nicht überleben, sondern es tatsächlich in den Diktatormodus. Und lasst uns einfach durchgehen und sehen, ob wir finden können, dass das, ODER genau hier drin, wir haben es. Also hat etwas davon hervorgebracht. Du siehst hier noch etwas mehr. Das sind eigentlich alte Männer, noch größere Ader hier. Wie Sie sehen können, hat es vollkommen in Ordnung hervorgebracht. Und es gibt wahrscheinlich noch mehr davon um uns herum. Da gibt es einige, einige mehr davon sogar. So ziemlich cool ist es also. Und das ist natürlich Tiefschlaf. Jetzt spawnt es natürlich auch und steinig. Also sieh dir das dort an, wir haben es sofort gefunden. So einfach ist das also so ziemlich einfach, oder? Ich denke, ich betone das genug, dass du einfach ein bisschen damit experimentieren und es ausprobieren solltest . Ich werde mich also nicht wiederholen, aber ich werde sagen, dass dies für diese Vorlesung genau hier ist . Ich hoffe, du hast diese nützlichen und einjährigen des Neuen gefunden. Und wir sehen uns in der nächsten Vorlesung. Also ja. 95. So machst du eine JAR Datei aus deinem Mod: Alles klar, willkommen zurück beim Stoffkurs für 118. In diesem kurzen Vortrag werden wir sehen, wie Sie eine JAR-Datei aus Ihrem Modell erstellen können. Und so wie Sie dies tun, öffnen Sie das Terminal und setzen den Punktschrägstrich Gradle w built ein. Jetzt lässt du das im Grunde einfach durchlaufen. Dies sollte nicht sehr lange dauern. Es wird ungefähr 10 Sekunden dauern. Da gehst du. Eigentlich fünf Sekunden, vielleicht ein bisschen länger, wenn Ihr PC etwas langsamer ist, aber überhaupt keine Sorge. Wenn Sie hier eine Fehlermeldung erhalten, verwenden Sie möglicherweise nicht die richtige Version von Java. Sie können die Java-Home-Variable genau hier angeben , damit sie den richtigen JDK benötigt. Abgesehen davon finden Sie Ihre JAR-Datei jetzt in Ihren Ordnern. Im Build-Ordner wir gerade hier mit der rechten Maustaste auf diesen Open-End-Explorer. Wir werden Ordnerlibs erstellen, und dann diese hier. Die mit dem kürzesten Namen ist also Ihre JAR-Datei. Und du kannst das jetzt hinzufügen und versuchen und wir werden damit spielen, dass es einem Server hinzugefügt wird, Sachen wie diese. Das alles funktioniert im Grunde wie jede andere JAR-Datei, die Sie zum Beispiel von Arbeitern oder ähnlichem herunterladen könnten zum Beispiel von Arbeitern , oder? Aber das ist es für diese Vorlesung genau hier. Und das ist es auch für den, sagen wir, geplanten Inhalt für den ersten Content-Batch dieses Kurses. Jetzt werden in Zukunft weitere Themen hinzugefügt. Nach dieser Vorlesung wird also im Grunde genommen ein Abschnitt sein , der einige zusätzliche Themen oder ähnliches genannt wird, in dem in Zukunft weitere Themen hinzugefügt werden. Wenn du dir diesen Kurs ansiehst , gleich nachdem er rausgekommen ist, wird das vielleicht nichts da sein. Aber in Zukunft könnte etwas da draußen sein. Das ist ziemlich häufig, cool. Hoffentlich werden dort auch einige fortgeschrittenere Themen behandelt. Wie vielleicht einige nicht so fortgeschrittene Themen , die immer noch nützlich sein könnten und die möglicherweise ziemlich viel verlangt wurden, oder? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, Sie fanden diese Nützlichkeit und Unkenntnis des Neuen. Wir sehen uns hoffentlich in der nächsten Vorlesung. Also ja. 96. (zusätzliche Themen) Update (1.18): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir unsere Fabric auf die neueste Version aktualisieren. Zumindest für mich. Ich meine, ich schätze, es wird wahrscheinlich selbst für dich eine etwas neuere Version sein . Aber dafür gehen wir natürlich zur Gradle-Eigenschaftendatei und können dann genau hier dorthin navigieren. Also zwei Fabric EMC Net Versions, HTML und ich haben das bereits geöffnet. Dies sind also die neuen Versionen der Garnmappings, des Laders und der Stoffversion , denn wir setzen eine Botschaft aus der Zukunft fort , da 118 zu zwei so ziemlich gerade veröffentlicht wurden. Ich empfehle nur wärmstens, dass Sie es auf einhundert, achthunderteinhundert und eins behalten. Wenn Sie die Vorträge mit 118 verfolgt haben, empfehle ich Ihnen dringend, auf einem 19. Jahrhundert zu bleiben , anstatt sofort auf 172 zu aktualisieren da ein 1800er und die gesamte kommende Weltgeneration ich werde nicht mit 1800er Jahren arbeiten. Am Ende des Kurses wird es einen Abschnitt geben, in dem wir zusehen können, wenn Sie durchmachen möchten ein 1800er Jahre durchmachen möchten, um das nur im Hinterkopf zu behalten. Also wärmstens zu empfehlen, bei 181 zu bleiben. Und dann können Sie ganz am Ende des Kurses aktualisieren, wir werden es tun, dass ich das tatsächlich auf den anderen Monitor legen werde und ich werde es einfach so kopieren. Und dann haben wir die anderen drei genau hier. Das sind also die drei, die sie vor und dann werden wir sie einfach überziehen. Und das ist so ziemlich genau das. Und dann klicken wir einfach auf den kleinen Elefanten hier ist der nicht erscheint. Sie können jederzeit die Registerkarte Gradle öffnen und dann auch auf diese Schaltfläche klicken. Und wenn es gebaut wird, kann es wieder eine Weile dauern. Es kann ein oder zwei Minuten dauern, oder es kann auch nur etwa dreißig Sekunden dauern, hängt von Ihrer Geschwindigkeit auf der Internetverbindung ab, unabhängig davon, ob Sie in der Vergangenheit aktualisiert haben oder nicht . Aber sobald das im Grunde durchgegangen ist, werden wir im Grunde genommen geduldig warten, bis dieser durchgeht, und dann werden wir sehen, ob Fehler auftreten können oder nicht. Alles klar, damit du für mich sehen kannst, dass es 50 Sekunden gedauert hat, also nicht zu lange, eigentlich total in Ordnung. Und insgesamt bekomme ich im Moment keine Fehler oder was wir tun können, ist, dass wir einfach die Client-Task ausführen können und einfach sehen, ob dort einige Fehler auftreten können oder nicht. Natürlich könnte es hier wieder etwas Rot sein , zumindest einige andere Warnungen, die völlig in Ordnung sein sollten, solange die tatsächlichen Kunden beginnen, es wird uns gut gehen. In dieser Ära ist es natürlich wie immer nur ein normaler Fehler, den wir im Grunde jedes Mal gesehen haben , wenn wir den Kunden gestartet haben. Es gibt also überhaupt keine Sorgen. Und da gehst du. Das Fenster ist also schon geladen. Und mal sehen. Da sind wir. Also funktioniert alles völlig gut und so einfach ist es zu aktualisieren. Wenn ich jetzt natürlich schon ein Update gesehen habe, wollte ich es im Grunde noch einmal machen , bevor wir an die Wand gehen, die zusätzlichen Themen, die wir in der, in den kommenden Vorträgen. Die werden also wirklich interessant sein, ein paar wirklich fortgeschrittene Sachen. Aber ich bin mir sicher, dass wir es schaffen werden, das durchzustehen und es wird wirklich verdammt interessant sein. Aber das ist für diese Vorlesung genau hier schon da. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wir sehen uns in der nächsten Vorlesung. 97. (Zusätzliche Themen): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir einen Blick darauf werfen, wie Sie Ihren Blöcken erfahrene Drops hinzufügen können . Nun, das ist etwas das in der Vergangenheit nur wenige Menschen rätselt, aber es ist tatsächlich ziemlich einfach, wenn man weiß, wo man suchen muss. Und das bedeutet, dass wir die Umschalttaste zweimal drücken und dann einen Blick auf die mündliche Blockklasse werfen in der ich sicherstellen werde , dass Nicht-Projekte enthalten sind. Und dann werden wir uns genau hier entscheiden . Und dann lasst uns das machen, lasst uns tatsächlich hier ins Terminal gehen. Und sagen wir Gradle w Sources nur für den Fall nach den Updates. Manchmal muss man, wenn das, wenn viele Sachen aktualisiert werden, tatsächlich die Genquellen genau hier machen müssen. Und lassen Sie uns das einfach durchlaufen und dann können wir sehen, was die eigentliche Klasse für uns zu bieten hat. Da gehst du. hat ungefähr eine Minute gedauert und dann war es fertig. Und jetzt können wir theoretisch suchen und sicherstellen, dass wir dies noch einmal auswählen und dann hier immer noch den blauen Balken auswählen, aber jetzt können wir genau hier Quellen auswählen. Wer sind die zugeordneten Quellen sagen, okay, und nachdem es neu geladen wurde, sollten wir die richtige Klasse bekommen. Normalerweise ist der Unterschied kein Storch, aber es kann manchmal ein Unterschied sein. Stellen Sie sicher, dass wir hier die richtigen Quellen haben hier die richtigen Quellen anstatt nur die dekompilierten Quellen. Nun gibt uns die orangefarbene Blockklasse hier die Möglichkeit, auch eine Uniform im Provider einzugeben, was die Erfahrung ist, die tatsächlich sinkt, während wir diesen Block zerstören. Das ist eigentlich alles , was wir tun müssen. Also in unserem Modus blockiert Klasse, Nehmen wir zum Beispiel das Orakel-Ergebnis oder den Fall von mehr, wir möchten wahrscheinlich nicht, dass zusätzliche Erfahrung sinkt. Aber wir werden es einfach hier machen weil es sinnvoll ist, dies als Beispiel zu tun, normalerweise sind wir natürlich, weil unser Ori Calcium oder Block Rory Calcium fällt, normalerweise möchten Sie die Erfahrung nicht hinzufügen hier. Aber nur für ein Beispiel werden wir das nach den Fabricblock-Einstellungen tun. Wir werden hier nur einen weiteren Parameter hinzufügen und das wird die Uniform in Provider Dot Create sein. Wir sagen einfach so etwas wie eine Drei zu Sieben. Mal sehen, was wir uns tatsächlich auch im oder Block ansehen können , wir schauen uns an, wo das verwendet wurde. Klicken Sie also mit der mittleren Maustaste darauf und sehen wir zum Beispiel den Smaragd oder nur als Beispiel den Anbieter. Hier sind genau 37. Das ist ungefähr die Größe, die Sie wollen. Dies sollte meiner Meinung nach all die verschiedenen oder Blöcke sein , in denen dies verwendet wurde. Aber natürlich kannst du das ändern. Vielleicht haben Sie eine Reihenfolge , die unglaublich selten ist und vielleicht möchten Sie, dass diese viel höher ist, aber natürlich auch der Fall ist. Das ist eigentlich alles , was Sie brauchen, um auch Ihre Blöcke Drop Erfahrung zu haben. Um der Vollendung willen, schauen wir mal, ob es funktioniert oder ob Francis wieder in Minecraft ist. Also lasst uns einfach ein bisschen davon und los geht's. Sehen Sie, dass es auch die Erfahrung einlässt. Und wie gesagt, Sie können einfach die ganzen Zahlen ändern, die sie sind, und dann im Grunde versuchen, zu verdünnen , wie viele Erfahrungen sie fallen lassen möchten. Und wir können einfach sehen, ich kann hier weitermachen und h arbeitet kontinuierlich. So einfach ist es tatsächlich, ein paar Kundenerlebnisse hinzuzufügen . Das ist schon bei, für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. 98. (weitere Themen) Transparente Blöcke hinzufügen: Oder ich begrüße zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten transparenten Block hinzufügen . Dies ist tatsächlich noch einmal eines dieser Dinge, die eigentlich ziemlich einfach sind, wenn Sie wissen, was zu tun ist, das ist normalerweise der Trick davon. Aber lasst uns einfach reingehen und lassen Sie uns einfach die Kirschblütenblätter direkt hier kopieren. Und das wird das Winterunterstrichenfenster sein, obwohl der Winter langsam aber sicher verblasst. Aber das ist natürlich in Ordnung. Es gibt natürlich, dass es irgendwann zurückkommen wird. Der Winter kommt. Natürlich. Wir werden das vor einem neuen Glasblock machen und das wird einfach hier über das Blockglas kopiert. Das ist so ziemlich alles, was wir brauchen. Jetzt fügen wir auch hinzu, dass es nicht undurchsichtig war. Das ist eigentlich sehr wichtig und lassen Sie uns auch hier etwas Stärke hinzufügen. Warum nicht eine gewisse kundenspezifische Stärke? Und das wird gut werden. Und für den Block ist das eigentlich alles, was wir brauchen. Der Grund, warum wir die Glasblockklasse brauchen , ist, wenn wir darauf eingehen am mittleren Punkt, darauf klicken und dann die mittlere Maustaste auf den abstrakten Klassenblock klicken, können Sie sehen, dass es Zuallererst die Kamerakollisionsform leer. Dann haben wir den Lichtpegel der Umgebungsokklusion. Es wird benötigt, damit Licht durchkommt. Und dann haben wir auch die transluzente Methode, hier im Grunde genommen wahr wird. Deshalb benutzen wir den Glasblock, der einfach Sinn macht. Was wir jetzt auch tun müssen , damit das Winterfenster in der MC-Kurs-Client-Klasse richtig hinzugefügt wird, kopieren wir die Probenahme hier. Ich werde das nicht zum Winterfenster machen , und wir werden diese Renderschicht durchscheinend machen. Werde also durchscheinend. Sehr wichtig, dass wir dies auch hinzufügen. Und dann ist die tatsächliche Transparenz erledigt. Jetzt müssen wir natürlich immer noch die normalen JSON-Dateien hinzufügen die normalen JSON-Dateien , die wir hier über alles kopieren werden, natürlich, die Ihnen im GitHub-Repository zur Verfügung stehen, einer Person genauso gut. Das Meer, das Block States Rennen ist ein ganz normaler Alltag, eigentlich langweilig. Block sagt JSON-Datei. Und dann lassen Sie uns auch die Übersetzung direkt hier kopieren. Das ist nichts, nichts zu verrückt. Nichts, was dich in irgendeiner Weise, Form oder Form beunruhigen sollte. Es ist einfach normales Zeug, wie wir es schon ziemlich oft gesehen haben . Gleiche gilt für die JSON-Datei des Blockmodells. Sie können völlig normal sehen, welche Militarismus-Datei vorliegt, und wir werden 33 gehen. Ja, wir werden eine drei ebenfalls völlig normale modale JSON-Datei durchlaufen . Und dann lasst uns tatsächlich auch die Textur bekommen , über die Sie vorbei sind , und das wäre es so ziemlich. Das ist alles, was wir brauchen. Zwei sehr wichtige Dinge, die es zu einem neuen Klassenblock machen, der nicht undurchsichtig ist. Und dann stellen Sie auch sicher, dass dies als „Get the transluzente Render-Layer“ bezeichnet wird . Und nachdem wir all das hinzugefügt haben, Mal sehen, ob es funktioniert oder ob es in Minecraft z antwortet, wurde das Winterfenster erfolgreich zum Spiel hinzugefügt. Also lass es uns einfach abstellen und du siehst, da gehst du. Wir können es uns ansehen und es sieht ziemlich toll aus. So funktioniert es so ziemlich genau wie normales Glas, wie man es erwarten würde. Und wir werden noch eine Sache haben und wir werden uns die Texte von einer weiteren Zeit ansehen, um Ihnen im Grunde eine andere Sache zu zeigen , die für benutzerdefinierte transparente Blöcke sehr wichtig ist. Wir haben das Winterfenster PNG genau hier geöffnet. Und einmal ist hier natürlich sehr wichtig, dass diese Pixel hier natürlich transparent sind. Sie haben einen Alpha-Wert , der weniger als einer ist. Das ist sehr wichtig , dass der Alpha-Wert hier für einige der Pixel natürlich weniger als eins ist. Sonst wird es nicht transparent angezeigt. Das ist also so ziemlich alles, was es dazu gibt. Sie können dies in GIMP tun, in Paint on Net oder zwei großartigen Programmen. Ich persönlich benutze Photoshop, aber diese beiden würden auch funktionieren. Aber was auch immer der Fall sein mag, das ist es eigentlich schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 99. (weitere Themen) Animierte Elemente hinzufügen: Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir Minecraft ein benutzerdefiniertes animiertes Element hinzufügen . Jetzt ist das Hinzufügen eines animierten Elements tatsächlich ein ziemlich einfacher Vorgang. Jetzt wird dies eine Textur sein, die sich im Laufe der Zeit animiert und verändert. Dafür brauchen wir natürlich einen neuen Artikel. Lassen Sie uns also in unsere Klasse „ Weitere Gegenstände“ gehen, es sei denn , das wird wahrscheinlich am einfachsten sein. Und unter unserem Ruf ist der magische Unterstrich neu alc unterstrichen Staub. Und dann das Gleiche hier. Magischer Unterstrich oder ein Kalzium-Unterstrich Staub. Jetzt wird das ein normaler Gegenstand sein. Neugierig, nicht wahr? Ja, der eigentliche Artikel selbst ist sehr, sehr einfach zu erledigen. Das Interessante ist tatsächlich die Textur selbst sowie die zugehörige MAC-Metadatei. Interessant, was bedeutet das, was wir sehen werden. Aber zuerst fügen wir die Übersetzung gleich hier hinzu, damit wir sie haben. Und dann fügen wir auch die Modelldatei hinzu. Nun, die Modelldatei könnte sagen, Nun, die Modelldatei muss wie verrückt kompliziert sein , nicht wahr? Es wird wahrscheinlich wirklich verdammt genial werden. Und nein, es ist eigentlich nur eine normale Modelldatei, wie Sie deutlich sehen können, die nur auf eine Textur zeigt. Und die Textur ist die Sache, die der interessante, naja, interessante Teil von all dem sein wird. Also werden wir das überschreiben, einschließlich der MC Mehta-Datei. Jetzt steht Ihnen das natürlich alles im GitHub Repository genauso gut im Einzelnen zur Verfügung. Und du siehst genau hier, das ist der eigentliche Staub selbst. Und Sie können sehen, dass es sich um mehrere Texturen handelt. Und dies sind die Frames, die in der MC-Metadatei referenziert werden . Man sieht 012345, es ist ziemlich 012345. Sie werden gehen, sie werden im Grunde in einem französischen Begriff von 16 animiert sein. Ich empfehle dringend, dies zu ändern und ein bisschen damit herumzuspielen, seien Sie hier offen für Experimente. Interpolation bedeutet einfach, dass sie von einem Frame zum anderen ein- und ausblendet , anstatt sich diskret zu ändern. Das ist die allgemeine Idee der Interpolation in diesem Fall, und das ist die Idee hier. Das ist also eigentlich alles, was es dazu gibt. Jetzt ist es sehr wichtig , dass die MC-Metadatei denselben Namen wie die hat, wie die Textur einschließlich des Punktes PNG. Das ist unglaublich wichtig. Bitte vergewissern Sie sich, dass dies korrekt geschrieben ist. Wieder einmal eines dieser Dinge, bei denen es am besten ist, die Rechtschreibung zu überprüfen oder zu verdreifachen. Und für einige Beispiele für Blöcke. Zum Beispiel können Sie zu den externen Bibliotheken hier unten gehen den externen Bibliotheken hier unten , um Netz-Mikroben-Projektkarten, so weiter und so weiter. Und wir gehen in den Assets-Ordner, Minecraft-Texturen blockieren. Und wir werden uns den Magma-Block ansehen , weil dieser auch animiert ist. Sie können sehen, dass die Magma-Textur tatsächlich frei ist, verschiedene Texturen. Und hier ist die MAC-Metadatei. Wieder einmal fast genau das Gleiche wie bei der tatsächlichen Metadatei , die wir hier haben. Sie können sehen, dass es nur eine andere Rahmenzeit für das Magma ist und das ist so ziemlich alles, was es zu empfehlen gibt, wie gesagt, ein bisschen damit herumspielen. Probieren Sie es aus und sehen Sie, was Sie sich im Grunde einfallen lassen können. Aber ansonsten sehen wir tatsächlich ob die animierte Textur richtig funktioniert. Oder ein Minecraft. Wie Sie sehen können, wurde der magische Staub erfolgreich hinzugefügt und Sie können sehen, dass er verdammt und erstaunlich aussieht. Es generiert oder animiert vielmehr automatisch. Man sieht, dass es einfach, es sieht wirklich cool aus, weil es einen funkelnden Effekt hat . Und wie gesagt, dies ist vollständig anpassbar. Du kannst einfach die MC-Metadatei wechseln, damit ein bisschen herumspielen und dann kannst du einfach damit, nur mit solchen Grundstücken kannst du schon ein paar ziemlich coole häufige Dinge hinzufügen in dein Modell hinein. Das war schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. 100. (weitere Themen): Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung erstellen wir einen benutzerdefinierten Menübildschirm. Jetzt wird das in der Tat sehr interessant sein, denn ein benutzerdefinierter Menübildschirm ist etwas, das Sie Ihrem MOD hinzufügen können. Eines der Dinge, die ich hier sofort erwähnen möchte , ist , dass wir, wenn wir den Menübildschirm in dieser Vorlesung erstellen, es so machen werden, dass er immer angezeigt wird. Und dann in der nächsten Vorlesung, in der wir über Configs sprechen werden, werden wir es schaffen, damit Sie herausfinden können ob das Ding angezeigt wird oder nicht. Das ist sehr wichtig , dass du das hinzufügst. Denn sonst wird dein MOD niemals zu einem Mod-Pack hinzugefügt. Sie müssen dies konfigurierbar machen. Aber das werden wir in der nächsten Vorlesung sehen. In diesem erstellen wir benutzerdefinierten Titelbildschirm der Wand. Was wirklich interessant sein wird, ist, dass ich viele Möglichkeiten gesehen habe , wie dies zuvor gemacht wurde, aber im Grunde immer die Titelbild-Klasse verwende. Das wird also der Titelbildschirm sein. Dort gehst du unter diesen hier und Microbe-Client-GUI-Bildschirm. Und es war sehr merkwürdig, weil sie im Grunde immer nur den gesamten Titel gemacht haben. Screen Maker hat ein Mixin erstellt und sich gerade geändert. Ich meine, eine Menge Sachen hier drin. Und ich dachte, ich kann mir nicht vorstellen, dass das der einzige Weg sein wird, dies zu tun. Und tatsächlich ist es nicht der einzige Weg, dies zu tun. Ich habe einen viel, viel einfacheren und besseren Weg gefunden . Also werden wir immer noch einen Mixin brauchen, aber es wird sehr einfach sein. Zunächst einmal werden wir eine neue Klasse nachahmen und qualitativ hochwertige Bildschirmmischungen herstellen . Geh und es wird irgendwie so aussehen. Ich kopiere es rüber. Ich werde sagen, Oh mein Gott, genau das ist viel zu viel. Es ist fast nichts. Du wirst das zu einer Schnittstelle machen . Dies wird die Bildschirmklasse mischen. Und es muss nur einen Accessor haben oder die Liste der Drawables. Das ist alles, was wir hier brauchen werden. Das ist buchstäblich alles, was wir brauchen. Dann müssen wir natürlich für das Mischen auch hinzufügen, dass diese gerade hier gemischt sind, sehr wichtig, dies ist unter dem Kunden. Das ist sehr wichtig, da sich dies nur auf den Kunden auswirken wird. Deshalb müssen wir das genau hier haben. Wir können dies auch in der Bildschirmumgebung, Wert, Umgebungstyp sehen hier ist Client. Dies ist nur im Client passiert. Deshalb müssen wir das Mischen in den Kunden in das Mischen von JSON einbringen. Nachdem wir das getan haben, sind wir jetzt Logbuch. Okay, wie werden wir jetzt vorgehen? Wir erstellen einen neuen Titelbildschirm. Lass uns einfach im Util-Paket sein. rechten Maustaste auf die neue Java-Klasse, die heißt, ich nenne das den Seetang- und Titelbildschirm im Leerlauf. Da gehst du. Dies wird die Titelbild-Klasse erweitern. Sie können sehen, dass wir eigentlich nicht darüber schweben und wir müssen hier nichts tun. Aber was ich tun werde, ist, dass ich den Inhalt davon kopieren werde. All dies steht Ihnen wieder im GitHub-Repository und auch individuell zur Verfügung. Ich werde erklären, was der FREC ist. Hubbard hier. Wir können diesen Spritzer sehen. Dies ist der eigentliche Bezeichner, der auf mein Bild verweist , dass ich die normale Bildbreite ersetzen wollte. Und dann haben wir auch die Minecraft-Titelbildschirme Textur. Dies ist nur das Minecraft, das im Grunde oben, in der Mitte und oben auf dem eigentlichen Titelbildschirm geschrieben ist , oben auf dem eigentlichen Titelbildschirm weil wir das tatsächlich hinzufügen mussten. Schon wieder. So wie dies funktioniert, nennen wir diese Render-Methode. Das erste , was es tut, ist, dass es den normalen Titelbildschirm rendert. Wie Sie sehen können, habe ich dies hier in vier verschiedene Methoden aufgeteilt . Dann zeichnen wir unseren benutzerdefinierten Titelbildschirm. Dann zeichnen wir das Microsoft-Logo mit Ich werde die Copyright-Hinweise zeichnen, und dann zeichnen wir den Titelbildschirm und die Schaltflächen. Ich war sehr wichtig , dass ich definitiv immer die Urheberrechtshinweise dort aufbewahren und nicht 100% sicher bin. Aber ich denke, wenn Sie sie nicht haben , können Sie Urheberrechtsbetrug oder so etwas begehen . Also behalte sie da drin. Behalte es einfach so. Dies ist ziemlich genau derselbe Code , der sich auch im Titelbildschirm befindet. meiste von diesem Zeug wurde vom Titelbildschirm übernommen. Das eigentliche Logo hier komplett vom Titelbildschirm aus. Die Bildschirmschaltflächen, die vom Titelbildschirm und dann vom Bildschirm für benutzerdefinierten Titel zeichnen entnommen wurden. Dieser hier ist ein bisschen ich würde nicht unbedingt maximale Kundensachen sagen, aber das meiste davon als Kunden kann man sehen, dass das meiste Teil dem auch sehr ähnlich ist. Wir zeichnen hier im Grunde nur eine andere Textur. Und das ist so ziemlich alles, was wir tun. Jetzt. Was machen wir mit diesem Titelbildschirm? Nun, wir werden eine neue Veranstaltung interessant machen. Im RV-Ereignispaket klicken wir mit der rechten Maustaste auf neue Java-Klasse, wir mit der rechten Maustaste auf neue und dies wird das Ersetzungstitel-Bildschirmereignis sein . Lass uns einfach so nennen, wie ich es nenne. Dies wird den Bildschirm Ereignispunkt zuvor implementiert, und wir müssen diesen genau hier nehmen. Dieses Ereignis ist ein zentraler Bestandteil, bevor ein bestimmtes Ereignis initialisiert wird. Wir werden dann die Vor-Init-Methode genau hier implementieren . Und dann kopiere ich den Inhalt, was auch sehr einfach sein wird. Aber was wir gerade sagen werden, ist hey, wenn der Bildschirm, der gerade initialisiert wird ein Titelbildschirm ist und es nicht unser Titelbildschirm ist. Wir werden diesen Bildschirm nur in Richtung Titelbildschirm einstellen. Das ist hier leicht genug zu übertreiben. Das ist buchstäblich übertrieben. Und jetzt müssen wir nur dieses Register machen, dieses eigentliche Ereignis hier. Und das wird in der Client-Klasse geschehen. Also MC-Kurskunde, sehr wichtig. Und dann werden wir hier nur Screen-Events sagen bevor wir diese Zeit der Event-Fabrik hier drin sind. Und dann sagen wir nur ein Register, ein neues Ersetzereignis, Ersetzen des Titelbildschirms. Das ist es. Jetzt wird der Titelbildschirm hier durch diese Textur ersetzt. Wir haben natürlich, ich muss diese Textur immer noch hinzufügen. Sonst werden wir einfach eine schwarze und rosa Textur bekommen, was wir nicht wollen, um in die GUI und dann im Hintergrund zu gehen , also neues Verzeichnis, ihren Hintergrund sie vor. Und dann kopieren wir das. Dies steht Ihnen auch zur Verfügung. Bitte beachten Sie jedoch, dass damit ein Copyright-Hinweis verbunden ist. Wieder einmal kann hier aus der Credits Datei entnommen werden. Du siehst welche am Knie. Dies ist also wieder dieselbe Creative Commons-Lizenz. Und dann musst du einfach die Fiverr-Seite direkt dort verlinken . Das wird auch im Hinterkopf behalten, wenn Sie es verwenden möchten. Ich empfehle dringend, es nicht zu verwenden , da es keinen Sinn ergibt denn wenn Sie die tatsächliche Textur hier sehen, ich es einfach nicht, Sie müssen sie nicht verwenden. Nun, was auch immer der Fall sein mag, das ist alles, was wir brauchen. Also mal sehen, ob es funktioniert oder es hier zu laden beginnt und wir sollten es natürlich sofort sehen. Und da sind wir. Der benutzerdefinierte Titelbildschirm funktioniert genau so, wie Sie es erwarten würden. Die Knöpfe funktionieren immer noch. Ich kann meine, das ist ein sehr schlechtes Beispiel, aber los geht's. Also kann ich im Grunde alles anklicken und alles funktioniert immer noch. Und wir haben Milo-Mikrobencharakter hier ein Zeichen halten Tutorials nach Spalte und Zeile. Hier auf der linken Seite haben wir hier einen kleinen Spoiler. Wer weiß also, was das kombiniert bedeutet? Wer weiß es? Aber insgesamt mag ich es wirklich cool und alles funktioniert. Und so können Sie sogar hier auf das Copyright eingehen. Sie können immer noch darauf klicken und alles funktioniert immer noch gut. So einfach ist es eigentlich, meinem Handwerk einen benutzerdefinierten Titelbildschirm hinzuzufügen , oder? Und wie gesagt, empfehlen wir dringend, sich auch die nächste Vorlesung anzusehen , in der wir auch einen Konflikt hinzufügen werden. Denn wenn Sie den Konflikt nicht haben, müssen Sie dies konfigurierbar machen. Ich werde das nur sagen, aber vorerst ist dies für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 101. (Zusätzliche Themen) Einfache und einfache: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir Minecraft einen einfachen Konflikt hinzufügen . Was heißt das also? Wie funktionieren Konflikte? Nun, zuerst werden wir einen bereits gemachten Kurs benutzen. Und das ist genau hier aus dem Stoff, einfache Lippen genau hier. Das ist von einem Magistrat Vmax. Und seien Sie vorsichtig oder seien Sie sicher, dass dies unter dem Urheberrecht steht. Und das wird also die MIT-Lizenz sein , damit Sie sich dessen bewusst sind. also sicher, dass Sie wissen, dass dies der Fall ist. Der einfache Konflikt hier ist eigentlich, ich meine, er ist ziemlich einfach. Es ist eigentlich nicht zu kompliziert, aber wir werden das benutzen. Und das steht Ihnen natürlich auch im GitHub Repository auch im Einzelnen zur Verfügung. Und ich kopiere tatsächlich alle drei Klassen , die im MC-Kurspaket erstellt wurden , klicke mit der rechten Maustaste auf neues Paket namens config. Dann kopiere ich da drin die drei Klassen. Wie gesagt, sie stehen Ihnen alle auch zum Download zur Verfügung. Aber mal sehen. Da gehst du. Da sind sie ja. Wir haben die einfache Konfliktklasse, die im Allgemeinen nur eine normale Java-Klasse ist. Drinnen hier drin ist nichts im Grunde genommen für Minecraft oder Stoff. Das ist alles normaler Java-Code. Hier hatte ich, ich habe genau hier eine winzige Änderung vorgenommen, dass es einen gemeinsamen Wert erkennt , der alles ist, was ich hier im Grunde genommen hinzugefügt habe. Lasst uns einfach, weil ich es ein bisschen schöner fand , weil ich es so eingerichtet habe, dass wir diesen Konfliktanbieter genau hier haben. Wir können sehen, dass dies nur eine Standardkonfiguration ist. Was macht das jetzt? Wirklich ist nur eine Liste von Paaren. Wir werden also ein Schlüssel-Wert-Paar haben ein Konflikt ziemlich vernünftig ist, wo es eine Zeichenfolge gibt, die der Schlüssel sein wird, dann eine Art von Wert. Wir wissen nicht welchen Wert, weil wir im Grunde Dinge in verschiedenen Werten speichern können und das ist in der Mod-Konflikt-Klasse ist im Grunde alles gut gemacht, wir haben diese Methode für Registerkonflikte, die wir in einem Moment anrufen werden . Aber was macht das? Nun, es ist ein neuer Konfliktanbieter. Es erzeugt dann die Konflikte. Dies ist die eigentliche Entstehung der Konflikte. Sie können sehen, dass wir diesem modernen Konfliktanbieter gerade Schlüssel-Wert-Paare hinzufügen diesem modernen Konfliktanbieter gerade Schlüssel-Wert-Paare . Die Idee ist, dass dies der Schlüssel ist. Du siehst also, dass ich hier gerade ein paar Beispiele hatte. T-Testwert, wir haben einen anderen Testwert. Ein weiterer Testwert ist eine doppelte Zeichenfolge, oder diese Kommentare hier haben, damit es für den Spieler oder den tatsächlichen Benutzer etwas einfacher ist, diesen Konflikt zu ändern , damit er weiß, welchen Typ er möchte dies ändern zu. Sie können auch noch ein paar andere Sachen hinzufügen. Wie mögliche Dinge, die Sie hier einsetzen können, wäre so etwas auch der Fall. Und Sie können sehen, dass Sie hier den Ersatztitelbildschirm haben , der der wichtigste ist und welcher ist der, und welcher ist der wir uns im Grunde genommen in nur einem Moment ansehen werden vorerst werden wir hierher gehen und ganz oben auf den Uninitialisierten wollen wir Mod-Konflikte sagen, keine registrierten Konflikte. Das ist so ziemlich alles , was wir hier tun müssen. Wie ich schon sagte, natürlich ist der gesamte Code verfügbar. Das Wichtigste ist, dass Sie Ihre konfigurierten Werte hier nicht überall verwenden können. Und das ist etwas, das hier sehr wichtig ist. Denn einige, das, was wir im Grunde tun werden, ist, dass wir nur einen Moment lang einen Kunden leiten werden. Und ich werde erklären, warum es hier einige Probleme geben könnte. Also haben wir zwei verschiedene Threads, oder? Es gibt also den Server-Thread und der Client dafür ist natürlich auch der Grund, warum wir den MC-Kerne Mod genau hier und die MC-Kurs-Client-Klasse haben den MC-Kerne Mod . Weil dies nur der Kunde ist, ist dies für beide. Dies sollte vier üblich sein. Grundsätzlich. Unsere Konfiguration wird jetzt interessant sein, denn auf dem, wenn wir auf dem Server sind, wird tatsächlich geladen. Und wenn wir dann auf dem Kunden sind, wird er auch geladen. Jetzt habe ich mein Mikrofon, es hat angefangen und dann kann ich aufhören. Und jetzt sollte ich in der Lage sein, meinen Konflikt unter dem R1-Ordner in Konflikten zu finden . Und los geht's, MC-Kurskonflikt oder Eigenschaften. Und du kannst sehen, dass sie es sind. Sie haben also den eigentlichen Schlüssel hier und dann was auch immer dieser Wert ist, und dann können Sie auch den Standardwert sowie den Kommentar sehen , den ich hier im Grunde hinzugefügt habe. Das ist die allgemeine Idee, und so wird sie angezeigt. Das Interessante ist hier wieder einmal, dass diese Datei für den Server und den Client tatsächlich gleich sein wird . Wenn wir zum Beispiel etwas im Was auch immer ändern würden, zum etwas im Was auch immer ändern würden Beispiel in den weiteren Gegenständen, und sagen, dass es hier eine andere maximale Anzahl gibt. Das wird eine Diskrepanz zwischen dem Server und dem Client sein. Sei sehr vorsichtig, wo du das benutzt. Ich habe festgestellt, dass Konflikte in Fabric viel schwieriger richtig zu machen sind. Dann weiß ich in Forge nicht, dass es keine wirklich gute Lösung gibt , die ich gefunden habe. Alle Config-APIs sind alle unglaublich verworren und nicht sehr einfach zu befolgen. Ich bin mir nicht hundertprozentig sicher. Dieser einfache Konflikt hier wird für definitiv einige oder einige Client-Sachen ausreichen , 100% für die Server-Sachen. Nun, wir werden es sehen. Und du könntest dies auch trennen, um eine, diese drei Klassen im Grunde genommen, oder vielmehr diese beiden Klassen machen dies zu einem Mod. Clientkonflikte rufen dies nur auf dem Client auf, dann sollte es nicht einmal ein Krater auf dem Server sein , da natürlich der gekachelte Bildschirm ersetzen in diesem Moment, in diesem Fall hier, tatsächlich etwas, das nur im tatsächlichen, tatsächlichen Kunden passiert . Nichtsdestotrotz sollte es vollkommen in Ordnung sein. Also gehen wir in das Ersetz-Titelbildschirm-Ereignis ein. Und dann werden wir hier sagen, dass wir Mod, Mod Client, keine Konflikte mehr sagen werden. Sie führen zu mehr Konflikten , die den Titelbildschirm ersetzen. Und wir werden nur ein Ende hinzufügen und das wird es sein. Es wird im Grunde genommen nur überprüft , ob das stimmt oder nicht. Und wenn wir das zum Beispiel hier in „false“ ändern und dann von vorne anfangen würden. Nachdem dies grundsätzlich einmal erstellt wurde, sollte es nun den tatsächlichen Wert einlesen. Und es wird sagen, hey, Titelbildschirm ersetzen ist falsch und ersetzt dann nicht den Titelbildschirm. Aber wie gesagt, es gibt noch einige Hürden an der Konfliktfront. Dies ist also definitiv nicht die beste, momentan beste Lösung. Da gehst du. Es funktioniert. Dies ist derzeit die beste Lösung, aber es ist wahrscheinlich nicht die beste Lösung für immer. Ich habe noch keine sehr gute Implementierung von Dingen gefunden sehr gute Implementierung von Dingen , die eine gute Konflikt-API für Fabric sind, aber es ist was es ist. Nichtsdestotrotz haben wir jetzt zumindest als Konfliktjahr für den Bildschirm hinzugefügt, was hier im Grunde das Wichtigste ist. Sie haben auch etwas für Konflikte, so dass sie zumindest in die richtige Richtung gehen. Das Fabric MC-Wiki hat übrigens eine Liste von ein paar verschiedenen Konflikten. Wie gesagt, ich habe nicht festgestellt, dass einer der anderen so interessant oder so gut gemacht ist. Zumindest habe ich das nicht wirklich getan, ich habe ein bisschen Zeit mit jedem von ihnen verbracht. Und der einfache Konflikt ist wirklich leicht für den Anwendungsfall zu verwenden, den wir haben. Ich werde das auch verknüpfen, damit Sie sich im Grunde auch einige der anderen ansehen können. Aber vorerst denke ich, dass es uns gut geht. Das ist schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und Neu, und wir sehen uns in der nächsten Vorlesung. 102. (zusätzliche Themen): Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Effekt hinzufügen . Dies ist eine sehr interessante Sache, da der tatsächliche Effekt von einem anderen Schüler stammt, diesen Effekt tatsächlich in ihren Mob importiert hatte, aber ein Problem hatte. Und ich konnte es reparieren. Und ich dachte: Das ist ein wirklich cooler Effekt. Ich möchte im Grunde zeigen, wie das funktioniert, und das ist tatsächlich viel einfacher, als Sie vielleicht denken. In unserem MC-Kurspaket. Wir werden mit der rechten Maustaste auf ein neues Paket klicken. Und statt dort werden wir zwei neue Klassen machen. Einer von ihnen wird die Mode Effects-Klasse sein. Dann wird der andere der Freeze-Effekt sein. Der Effekt, wie es funktionieren wird, ist im Grunde, dass es eine Entität einfriert oder dass sie sich nicht mehr bewegen können. Weißt du, ein bisschen von mir würde ich hier nicht unbedingt irgendwelche Probleme sagen, aber es wird interessant sein zu sehen, weil es eine Art interessante, sagen wir mal, wie das funktioniert, aber wir werden nur sehen, wie das funktioniert. Ich kopiere den Inhalt der eigentlichen Klasse, erweitert den Status Affekt-Klasse, den du sehen kannst. Und dann haben sie im Grunde nur einen normalen Konstruktor hier. Wir überschreiben die Methode „Update-Effekt anwenden“. Dies wird also die Ticking-Methode sein , die im Grunde jedes Häkchen hält, auf das eine Entität diesen Statuseffekt angewendet hat. Und dann müssen wir auch sehr wichtig die Methode „kann aktualisieren “ überschreiben und hier einen True zurückgeben , damit diese Methode sogar Coat ist , denn wenn dies falsch ist, dann ist dies nicht mal beschichten. Sie können sehen, dass wir im Grunde nur die aktuellen Koordinaten der tatsächlichen Entitäten nehmen aktuellen Koordinaten der tatsächlichen Entitäten und sie dann einstellen, wodurch die tatsächliche Entität wieder auf diese Koordinaten zurückgelassen wird. Es könnte einige Probleme damit geben, insbesondere beim Fliegen. Für den eigentlichen Spieler ist diese aufgerufene Methode jedoch sehr wichtig. Und für alle anderen, also alles, was eine Entität hat , die auf der Welt herumläuft, dann ist die eingestellte Geschwindigkeit wichtig, weil dies es im Grunde so macht , dass die Tiere oder ein Zombie oder was auch immer sich vielleicht nicht mehr bewegen kann. Beide sind also wichtig, und das ist so ziemlich alles, was Sie hier in der Mode Effects-Klasse tun müssen . Wir werden das noch einmal einfach kopieren, denn warum nicht? Das ist eigentlich nicht so viel. Und natürlich auch alles, was Ihnen in der Vergangenheit oder einer Einzelperson genauso gut zur Verfügung steht . Man sieht im Grunde nichts zu Verrücktes. Wir haben den Statuseffekt als wir ihn hier registrieren. Und wir registrieren es tatsächlich innerhalb der Registereffekte Kohle, was natürlich etwas ist, das wir anstelle des MC-Kurses Ahmad Class hier anrufen müssen des MC-Kurses Ahmad Class hier . hier. Wir werden mehr Effekte sagen, keine Registereffekte. Da gehst du. Und das ist alles, was wir tun müssen, jetzt müssen wir noch eine weitere Sache hinzufügen, und das wird im Ordner „Assets MC Course Textures“ sein. Sie möchten ein neues Verzeichnis namens mob underscore-Effekt erstellen. Effekt. Da gehst du, Effect. Und dann möchten wir das Freeze PNG hinzufügen, um das eigentliche PNG oder das eigentliche Bild zu sein , das angezeigt wird, wenn Sie diesen Effekt haben. Das ist eigentlich alles, was es dazu gibt. Es ist wirklich nicht so kompliziert, besonders der Statuseffekt an und für sich. Die Kategorie hier sollte ziemlich selbsterklärend sein. Dies ist nur die Farbe, die Sie sehen können, das ist nur die tatsächliche Farbe dieses Statuseffekts , der verwendet wird, ich glaube an Ozeane und Perser, wir werden im Grunde die nächste Vorlesung sehen auch. Vorerst werden wir diesen Effekt einfach ohne Teil haben . Und nachdem wir all das hinzugefügt haben, schauen wir mal, ob es funktioniert oder ob es wieder in Minecraft war. Also lasst uns einfach hinzufügen und sehen, ob ich mir den Effekt hier geben kann . So wird der Spieler da sein und Sie können sehen, dass der MC-Kurs-Freeze-Effekt vorhanden ist. Also lass es uns einfach geben und du kannst sehen, ich kann nicht bewegen, wenn ich versuche, die Tasten zu drücken, dh es funktioniert nicht, oder? Und Sie können sehen, dass wir momentan keine tatsächliche Übersetzung haben momentan keine tatsächliche Übersetzung , aber das wird gut. Und du siehst, dass ich es nicht kann, ich kann nicht mal die Maus bewegen. Ich kann immer noch Blöcke treffen, wenn ich glücklich bin. Aber du kannst sehen, dass das sehr viel ist , ich bin im Grunde eingefroren. Es gibt wahrscheinlich etwas , das Sie auch tun können , damit Sie diesen Shake nicht bekommen, wenn Sie versuchen, die Maus hierher zu bewegen. Aber insgesamt funktioniert es. Und sobald der Effekt nachlässt, geht's los. Jetzt kann man wieder ausziehen und alles funktioniert gut. Das ist also echt verdammt cool. Wie gesagt, der Rest wird in der nächsten Vorlesung hinzugefügt, einschließlich eines Teils, und die gesamte Übersetzung wird ebenfalls vorhanden sein. Aber das wird es für diese Vorlesung genau hier sein. Ich hoffe, Sie fanden das nützlich und Millionen auf dem Neuen, und wir sehen uns in der nächsten Vorlesung. 103. (zusätzliche Topen): Alles klar, willkommen zurück beim Stoffkurs für 118. In diesem Vortrag werden wir Minecraft benutzerdefinierte Tränke hinzufügen . Jetzt sind benutzerdefinierte Portionen sehr interessant, und dies wird natürlich den Fries, den wir in der letzten Vorlesung hinzugefügt haben, huckepack . Was wir tun werden, ist, dass wir gleich hier ein neues Paket erstellen , dass wir gleich hier ein neues Paket und das als Zaubertrankpaket bezeichnen. Da gehst du. Anstatt dort werden wir dann eine neue Java-Klasse namens Mod-Ozeane erstellen. Sie sind schon her. Noch einmal werde ich den Inhalt hier tatsächlich kopieren. Aber bevor wir den Inhalt kopieren können, wollen wir das eigentlich hier kopieren. Wenn wir den Fries der Portion bekommen und dann die Trankmethode registrieren wollen , oder dies steht Ihnen natürlich auch im GitHub-Repository und individuellen Interessen zur Verfügung. Also keine Sorgen. Dann füge ich die Methode für modifizierte Registertränke genau hier hinzu, da wir in der Lage sein werden, die Rezepte für das Register-Trank in nur einem Moment hinzuzufügen Rezepte für das Register-Trank in nur einem Moment denn für die Rezepte, die wir hinzugefügt haben, wir brauchen eigentlich eine Mischung hier, aber überhaupt keine Sorgen. Es wird eigentlich auch nicht kompliziert sein. Aber diese Methode für Registertränke wird genau hier aufrufen. Also unter den motorischen Effekten, mehr Trank, fangen Sie an, Trank zu registrieren. Also los gehst du. Das sollte das sein. Nun ist das eigentlich wichtig, dass wir dieses Feld innerhalb der Methode für die Registertränke zuweisen. Ich bin mir nicht 100% sicher. Es ist nur ein bisschen eine Eigenart hier, aber ich habe festgestellt, dass das funktioniert. Und wenn wir es sofort hier zuweisen, wenn wir das Feld initialisieren und es nicht funktioniert. Aber was auch immer der Fall sein mag, wir brauchen jetzt eine Mischung. Wenn wir uns also gerade das Braurezeptregister ansehen , befinden sie sich in einem Rezept für Netzmikroben. Dies ist eine großartige Klasse , die alle verschiedenen Rezepte für Tränke registriert . Und du meinst vielleicht: Das ist großartig, aber leider ist die Rezeptmethode für das Registertrank privat. Das ist natürlich ein Problem hier, denn das bedeutet, dass wir es nicht einfach hinzufügen können. Wenn das öffentlich wäre, wird es viel einfacher sein. Aber zum Glück können wir einfach einen Mixed benutzen. Und dafür werden wir eine neue Java-Klasse machen, und das wird das Braurezept sein. Du registrierst Mixin. Da gehst du. Dann wird das so sein, ich werde tatsächlich kopiert und das ist wieder sehr einfach und natürlich alles für Sie verfügbar. Ich werde das in ein Interface umwandeln. Dies wird natürlich die Registrierungsklasse für Braurezepte mischen . Dann werden wir im Grunde diese statische Methode namens „nur Register Portion rezept aufrufen“ haben, um diese statische Methode namens „nur sicherzustellen, dass dieser Name genau hier der gleiche ist wie, lassen Sie mich hier als diesen Namen hier zurückgehen. Dieser Name muss also mit diesem Namen im Volcker übereinstimmen. Und dann fügen wir diese Behauptung nur hinzu, weil das niemals kalt sein sollte. Wenn das gemischt und richtig funktioniert, dann sollte diese Methode als Kerbe bezeichnet werden, was auch immer hier drin geschrieben ist, das ist nur eine andere Sache. Und dann müssen wir es auch im EMT-Kurs, gemischtes Rennen, hinzufügen. Und sehr wichtig, du willst das hinzufügen, aber lass uns das einfach hier unter dem Mixin hinzufügen. Das ist also sehr wichtig beim Mischen, nicht Client hier, um sicherzustellen, dass dies korrekt geschrieben ist. Wir können also einfach überprüfen, dies zu kopieren und dies und alles richtig geschrieben zu hüpfen. Das ist großartig. Was wir dann tun wollen, ist, dass wir noch einmal zur MOD-Portionsklasse gehen wollen. Und wir werden nur eine private Schulden ankreuzen lassen. Nein, da gehst du. Statische Leere. Wir werden das die Rezepte für das Registertrank nennen. Und dann drin werden wir das Braurezept-Registry-Mixing nennen , das Registerrezept aufrufen. Und dann sage ich einfach, dass wir die Portionen benutzen werden. Peinlich, peinlich. Sie sind schon her. Und dann möchte ich, dass die Mod-Items beginnen oder Kalziumbarren, wir müssen hinzugefügt werden und dann den mehr Trank bekommen der hier erhöht wird. Und das ist so ziemlich alles, was wir brauchen, jetzt muss dieser hier kalt sein. Also nennen wir das ganz unten genau hier. Nachdem alle Perser für unsere benutzerdefinierten Portionen registriert wurden , werden wir auch die Portionsrezepte registrieren. Und das wird es übrigens registrieren, für alle drei verschiedenen Portionen mal kein Trank. Trank, sowie die anhaltende Portion. Das ist so ziemlich alles, was wir hier brauchen. Und dann brauchen wir immer noch die Übersetzung, was sehr wichtig ist. Und wir werden auch die Übersetzung hinzufügen. Aber die Übersetzung ist sehr interessant weil die Elemente hier, also die Teile tatsächlich unter dem Minecraft-Namespace liegen . nicht 100% sicher , warum das der Fall ist. Ich denke, ich meine, es ist offensichtlich der Fall denn wenn wir einen Trank registrieren, wird der tatsächliche Teil unter Minecraft registriert. Es ist einfach das, was es ist, aber das ist in Ordnung. Und dann brauchen wir auch einen für den Effekt hier. ich einfach hinzu. Das werden wir einfach ganz unten rechts hinzufügen . Also effekt MC Kurs einfrieren, und das ist einfach kostenlos. Das sind also auch die vier Übersetzungen , die wir brauchen. Und das ist eigentlich alles , was wir hinzufügen mussten, die Portion einschließlich des Trankrezepts. Also schätze ich mal sehen, ob es in Minecraft funktioniert oder Fossilien ist. Versuchen wir also einfach zu sehen, ob ich meine benutzerdefinierte Portion herstellen kann oder nicht . Wenn ich also das Orakel einsetze, fangen wir hier schon an, Fortschritte zu erzielen. Das ist natürlich schon sehr gut, denn das bedeutet, dass es zumindest das Rezept funktioniert. Hoffentlich bekommen wir auch hier die richtigen tatsächlichen Portionen denn sonst bekommt man manchmal den unbequemen Trank , wenn etwas schief gelaufen ist, aber wir haben keinen Trank eingefriert, splash Portion Frost und das anhaltende Meer auch. Aber im Moment können wir auch sehen , wie es für Mütter funktioniert. Lasst uns einfach das Schafjahr töten. Und mal sehen, was wir sehen können. Wenn ich hier ein paar Schafe hinzufüge , sind das tatsächlich ein paar davon raus. Aber wenn ich das einfach kaputt gemacht habe, siehst du jetzt, dass sie alle eingefroren sind. Und was ich tatsächlich tun kann ist, dass man sehen kann , dass wenn ich ihn treffe , das wirklich interessant sein wird weil sie tatsächlich in der Luft schweben werden und das Y von natürlich auch ein eingefrorenes dort. Mal sehen, lasst uns folgendes machen. Lassen Sie uns tatsächlich noch einen weiteren Freeze-Teil hier. Bringen wir ein paar Zombies rein. Und mal sehen. Ich werde zurück zu Überlebenden wechseln , dass sie mir folgen und sie dann einfrieren. Und dann konnte man sehen, dass sie alle eingefroren sind. Sehr, sehr witzig, funktioniert aber tatsächlich. Und dann werden sie manchmal wieder aufgetaut. Geh zurück, da gehst du. Und so einfach ist es eigentlich. Und wie Sie sehen können, wurde all dieses Zeug korrekt hinzugefügt, die Portionen wurden hinzugefügt, alles funktioniert auch. Gehen wir einfach zurück und sehen uns auch alle Portionen und die Trankrezepte an. Das ist also ziemlich verdammt cool. Das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 104. (zusätzliche Themen) Personengruppen mit Geckolib hinzufügen: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Entität hinzufügen . Der lang erwartete Vortrag darüber, wie Sie Minecraft einen benutzerdefinierten Mob oder eine benutzerdefinierte Entität hinzufügen können einen benutzerdefinierten Mob oder , ist endlich da. Und insgesamt wird es ziemlich einfach sein. Ich denke, alles in Betracht zieht, gibt es viele Schritte , die wir durchlaufen müssen, aber jeder der verschiedenen Schritte ist an und für sich selbst nicht so schwierig . Das erste, was ich sagen möchte , ist , dass alle Entitäten , die wir hier herstellen werden , Gecko-Lippenentitäten sein werden. Also werden wir keine Vanille-Entitäten machen. Wir beginnen sofort mit den eigentlichen Gecko-Lippenentitäten. Und ich werde hier tatsächlich etwas verknüpfen. Das wird also die Gecko-Lippe sein, im Grunde das GitHub-Repository genau hier. So ist Gecko-Lippe, die Sie sehen können eine Animationsbibliothek oder Mikrobenmathematik. Und im Moment werden wir damit im Grunde genommen damit machen, dass wir dies verwenden werden, um die tatsächlichen Entitäten tatsächlich zu implementieren. Und das wird es uns auch ermöglichen, eine etwas schönere Art zu finden, sie zu animieren. Daher empfehle ich sehr, dies auch zu tun. Ich meine auch die Vorlesung hier und die kommenden Vorträge über die Entitäten werden immer die Gecko-Lippenbibliothek erfordern, da dies nicht umgeht. Und das ist auch nicht so etwas. Manche Leute sagen, Oh, ich möchte nicht, dass andere Leute auch einen weiteren März herunterladen müssen, solche Sachen. Mach dir darüber überhaupt keine Sorgen. Ich empfehle dringend, dafür offen zu sein, da für den Benutzer normalerweise sowieso viel Zeug in Mod-Packs passiert. Und dann ist so etwas wie die Gecko-Lippe wahrscheinlich auf die eine oder andere Weise da drin. Was auch immer der Fall sein mag, Sie können die Verwendung von Stoff sehen. Wir haben verschiedene Dinge , die wir kopieren müssen. Was ich tun werde ist, dass ich das auf meinem anderen Monitor schon hier für mich habe. Was ich tun werde, ist, dass ich Sachen kopiere damit du sehen kannst, dass wir zuerst eine Maven-URL hier in den Repositorys hinzufügen müssen . Das wird also dieser sein , der immer derselbe sein wird . Und dann können wir uns das tatsächlich ansehen. Das werden also 32 sein, die eigentlich dieselbe Version sind , die ich auch hier habe. Und das wird unter Abhängigkeiten stehen. Also werden wir das hier reinlegen. Die meisten Implementierungen Software brennen Gecko Lib, Equilibrium, gestrichelte Datei, Fabric Dash 118 und dann 3032. Und das ist eigentlich all das Zeug, das wir brauchen. Sie können sehen, dass dies für gefälscht ist, also brauchen wir das nicht. Und dann gibt es hier ein paar Initialisierungssachen, im Grunde genommen werden wir damit einwandfrei sein. Also lasst uns tatsächlich wieder hierher gehen und lasst uns das neu laden. Also werden wir das noch einmal neu laden , richtig, um mir vielleicht ein paar Minuten zu nehmen , so etwas. Es kann auch nur 20 Sekunden dauern. Natürlich hängt viel von Ihrer Internetverbindung ab und auch von Ihrer Wand im Allgemeinen von der Geschwindigkeit Ihres PCs, während sie 13 Sekunden dauern. Das ist irgendwie nett. Werfen wir einen Blick darauf, was wir jetzt sehen können. Es gibt einige Dinge, die wir in unserem MC-Kurspaket hinzufügen müssen . Klicken Sie mit der rechten Maustaste auf ein neues Paket namens Entities oder Entity, machen wir das. Da gehst du. Und statt dort werden wir ein neues Paket namens Custom erstellen. Und dann klicken wir zunächst , im Entitätspaket mit der rechten Maustaste auf eine neue Java-Klasse die Mod-Entitäten genannt wird. Da gehst du. Und je mehr Entitäten-Klasse tatsächlich in einem Moment gefüllt werden. Wir brauchen zunächst die tatsächlichen Entitäten. also in unserem benutzerdefinierten Paket mit der rechten Maustaste auf die neue Java-Klasse, und dies wird die Waschbär-Entität sein. Da gehst du. Und dann haben wir das erledigt. Jetzt werde ich hier eine ziemlich vernünftige Menge an Sachen kopieren , was, du wirst sagen, okay, das ist ziemlich viel Zeug hier. Mach dir darüber keine Sorgen. Die allgemeine Idee hier ist, dass es zwar einige Dinge gibt , die ich im Grunde kopieren möchte und ich kopiere. Zuallererst steht Ihnen das alles natürlich auch im GitHub Repository im Einzelnen zur Verfügung. Daher empfehle ich Ihnen dringend, dass Sie sich das auf die eine oder andere Weise ansehen müssen. Und dann gibt es auch eine Menge Sachen, die ich versuchen werde und erkläre ein Bestes, was ich tun kann. Zuallererst wird dies die tierische Entität genau hier erweitern . Und dann wird es auch die KI animierbar implementieren. Sie können sehen, dass das von Ecolab stammt. Wir werden den Mauszeiger darüber bewegen und Methoden implementieren. Und dann werden wir sagen, okay, nachdem das erledigt ist, sehen Sie, dass die Create-Testmethode darin besteht, dass wir diese für die tierische Entität vorerst null behalten werden. Wir werden uns gerade nicht das Laichen von Stammeseinheiten ansehen . In den kommenden Vorträgen werden wir sehen, dass es in Zukunft vielleicht einen weiteren Vortrag darüber geben wird. Aber vorerst nichts wie geplant. Wie auch immer der Fall sein mag, haben auch die Register-Controller und die Animationsfabrik hier. Diese sind von der animierbaren Oberfläche des Auges. Und dann bewegen wir den Mauszeiger noch einmal darüber. Im Grunde erstellen Sie dann Konstruktor passend super. Und da gehst du. Lassen Sie uns diesen Konstruktor jetzt sofort öffentlich machen , damit wir dies haben. Und dann werden wir tun, dass ich den Animationsfaktor hier hinzufügen werde . Also werden wir in der Animationsfabrik animieren, Sie können ziemlich einfach neue private Informationsfabrik, Fabrik, neue Animationsfabrik sehen neue private Informationsfabrik, Fabrik, . Und dann geben wir das ein, dann werden wir das einfach hier zurückgeben. Wir werden dazu keine Animationen hinzufügen. Eigentlich Vortrag, was auch immer, es hier einzurichten ist überhaupt keine Sorgen. Das wird also völlig in Ordnung sein. Dann gibt es noch zwei andere Dinge, die wir definitiv treffen. Das erste, was wir tatsächlich brauchen, ist, dass wir sagen wollen, dass diese Punkt-Ignorier-Kamera für Ostrom gleich wahr ist. Ich bin mir ehrlich gesagt nicht 100% sicher, was das bedeutet. Ich weiß einfach, dass wir es nennen sollten. Das ist also die allgemeine Idee. Manchmal ist das bei Entitäten der Fall, auch ziemlich komplexes Thema, also keine Sorgen. Aber was auch immer der Fall sein mag, das ist die einfachste Sache. Dann möchten wir einige Attribute hinzufügen. Wir werden die Methode set attribute kopieren. Sie können sehen, dass wir hier im Grunde einige Attribute erstellen. Du kannst es maximal, Gesundheit, Schadensgeschwindigkeit und ähnliches sehen . Also richten wir dies im Grunde in dieser bestimmten Entität ein, diese Zahlen können Sie natürlich ändern, wie Sie möchten, aber sie müssen da sein. Das ist sehr wichtig. Und dann brauchen wir auch ein paar Ziele. Dies ist die KI Ihrer Gesamtmarke. Grundsätzlich. Jetzt habe ich zwei Dinge hier, die im Grunde genommen schon löschen kann. werden wir ein bisschen brauchen . Lassen Sie uns im Grunde in zukünftigen Vorträgen, wenn wir diese Waschbär-Entität machen, auch T-Mobile. Das ist etwas für die zukünftigen Vorträge. Wie gesagt, wir können sehen, dass es hier einige verschiedene Ziele gibt hier einige verschiedene Ziele und sie unterschiedliche Prioritäten haben. Je niedriger die Prioritätszahl, desto höher ist das tatsächliche Ziel in seiner Priorität. Priorität 0 wäre das erste, was passiert. Und wenn es einen Konflikt zwischen dem im Grunde gibt, wenn zwei Ziele ausgeführt werden könnten, als das mit der niedrigeren Priorität und ins Gesicht ausgeführt werden könnten, weil es genau so funktioniert. Und das sind eigentlich all die verschiedenen Dinge, die wir hinzufügen müssen. Es gibt nichts anderes, was wir in dieser Entität selbst hinzufügen müssen . Der ganze Rest kommt, naja, ich meine etwas später, wenn wir mit der Tabellen-Entität beginnen werden . In den zukünftigen Vorträgen ist die Aufzeichnungseinheit fertig. Gehen wir also in die Mod-Entitäts-Klasse. Und noch einmal werde ich es tatsächlich kopieren, aber überhaupt keine Sorgen. Denn das steht Ihnen wieder zur Verfügung und wir werden dies durchgehen, Ihnen wieder zur Verfügung und wir werden damit wir sehen können, dass wir gehen, werde ich hier einen neuen Entitätstyp unserer Kundenakteneinheit erstellen ? Und dann rufen wir einfach Register, Registry auf, die einen neuen Entitätstyp registriert. Wir werden sagen, das heißt Waschbär. Und dann rufen wir den Fabric-Entitätstyp von Builder auf und erstellen einen neuen Entitätstyp. Ich werde sagen, dass dies eine geschworene Kreatur ist , die natürlich verschiedene Arten von Brücken sind , wie Sie sehen können. Man kann auch sehen, wo es heißt wie friedlich, ja, und dann wird das gut. Dann stellt die Gründung einer neuen Waschbär-Entität sicher, dass Sie es sind, dass Sie Ihren Ausbilder zur Republik gemacht haben. Sonst bekommst du hier natürlich einen Fehler. Und die Dimensionen hier sind die Dimensionen für die Hüftbox dieser Entität. Und dann rufen wir einfach das Gebäude an und das wird es sein. Das ist jedoch natürlich nicht alles, denn so einfach kann nichts sein. Im Entitätspaket klicken wir mit der rechten Maustaste auf neues Paket namens Client. Und drinnen machen wir das Modell und den Renderer. Das werden zwei Klassen sein, also wird es das Waschbärmodell sein. Und wir werden auch den Waschbären bauen. Wenn Sie den Java-Klassen-Waschbär-Renderer gehen, gehen Sie los. Das sind die beiden Klassen , die wir noch einmal brauchen werden , um hier ein paar Sachen zu kopieren . Also mache ich zuerst das Modell. Genau da. Dies wird das animierte GO-Modell tatsächlich erweitern. Sie können vom Typ Waschbärentität absehen. Da gehst du. Und wenn ich dann den Mauszeiger darüber fahre, sehe ich tatsächlich drei Methoden , die wir implementieren müssen. Dies sind die drei , die modale Position erhalten, wie Texturposition modelliert werden und nach Ort animiert werden. Und noch einmal, wie gesagt, werde ich über die Fülle kopieren , aber nichts zu verrückt. Wir erstellen nur neue Bezeichner unter unserer Modell-ID und fügen dann die andere ein. Nun, hier ist es die Texturposition, Animationsort und die Modellposition. Wir werden diese in nur einem Moment hinzufügen. Zunächst müssen wir den Code im Grunde beenden oder ich möchte den Code fertigstellen und dann werden wir auch auf die Blockbank wechseln, um unser benutzerdefiniertes Waschbärmodell tatsächlich zu sehen. Und lasst uns zuerst hierher zum eigentlichen Renderer gehen. Wir werden also sagen, dass dies den Geo-Entitäts-Renderer vom Typ Raccoon Entity erweitert . Und sie gehen. Und dann werden wir den Mauszeiger über diesen schnellen Konstruktor bewegen, der super passt. Und dann müssen wir das erste Modell wegnehmen. Der zweite Parameter hier eigentlich, denn hier wollen wir ein neues Waschbärmodell einreichen . Das wollen wir. Und dann, nur um sicher zu sein, wir auch die Methode get texture location überschreiben . Ich werde das einfach im Grunde hobby machen. Sie können also sehen, dass dies auf dieselbe Textur hinweist. Dieser deutet darauf hin. Das sollte so ziemlich alles sein, was wir brauchen. Und das sind eigentlich diese beiden Klassen, die gemacht wurden. Jetzt müssen wir den Renderer immer noch mit den Entitäten kombinieren . Wie machen wir das? Nun, wir werden in unseren MC-Kurs gehen , Client-Methode. Und dann ganz unten, wo wir sagen werden, sagen wir die Entität, rendern eine Registrierung, diese hier, Register-Modus-Entitäten , diesen Waschbären. Dann sagen wir dem Record-Renderer-Doppelpunkt, Doppelpunkt wusste, dass wir keine Fehler bekommen sollten , wenn alles richtig eingerichtet wurde. Also die tatsächlichen Entitäten, die Klasse CRF und richtig eingerichtet, die umfangreichen wurden ordnungsgemäß eingerichtet, dann sollten wir keinen Fehler bekommen. Und jetzt funktioniert das Ding tatsächlich. Aber jetzt brauchen wir natürlich immer noch eine Entität. Woher holen wir eine Entität? Nun, die Entität, die Sie von einer Blockbank bekommen. Jetzt haben wir das schon ziemlich schon gesehen, aber wir werden wieder darauf eingehen. Und hier sieht man den Waschbären. Sieht es nicht einfach verdammt toll aus? tue ich, ich mag es wirklich, aber das wird durch Euro gemacht , das wird natürlich die Gläubiger einreichen. Das wird auch dort eine Verbindung sein. Aber ich mag es wirklich. Man sieht, dass dies im Grunde ein Gecko-Lippenmodell ist. Was Sie tatsächlich benötigen, ist unter Datei-Plugins. Nein, das ist nicht erforderlich, oder? Wir werden Plugins machen. Dies sind die Gecko-Lippenanimationen util. Du brauchst dieses Plugin hier. Sonst wird es nicht funktionieren. Und dann kannst du machen, wenn du ein neues machst, kannst du ein Gecko-Lippe animiertes Modell erstellen. Das ist also eine Gecko-Lippe animiere das Modell. Und was ist das Besondere daran? Nun, Sie haben diesen animierten Tab genau hier und Sie können sehen, dass es verschiedene Animationen dafür gibt. Aber diese Animationen sind in diesem Fall bereits erledigt, aber natürlich keine Sorgen. Wir werden sie in einem späteren Vortrag sehen, wenn wir die Animationen vorerst durchgehen. Was wir nur wollen ist, dass wir im Grunde nur das Gecko-Modell exportieren wollten , ist dies nicht erscheinen Ihnen übrigens, gehen Sie zu konvertieren, konvertieren Sie das Projekt und stellen Sie dann sicher, dass Sie das animierte Gecko-Live-Modell auswählen. Wenn dies darin erscheint, sollten Sie das richtig tun können. So kann ich sparen, ich kann einfach sagen exportieren glykolytisches Modell. Und dann werden wir es im Grunde exportieren. Jetzt kopiere ich es auch. Also werden wir wieder hierher gehen. Das Modell ist also eine Geodatei, Geo-Punkt JSON, und die unter Ihren Assets-Ordner gehen muss . Und dann erstellen wir genau hier einen neuen Ordner, Verzeichnis GO, und dann geht es da rein. Also werden wir das einfach kopieren. Da gehst du. Und Sie können sehen, dass dies die Geometrie des Waschbären ist. Manchmal hatte ich tatsächlich einen Tippfehler drin, aber überhaupt keine Sorgen. Das sollte immer noch funktionieren, denn das, was tatsächlich sucht, ist hier dieser Name. Und solange dieser Name mit dem hier angegebenen Namen funktioniert, können Sie die GO-Marderhunde-Geode nebeneinander sehen. Das ist was, dieser zeigt auf den mittleren Standort. Wir brauchen natürlich immer noch die Texturposition , die unter Texturen liegen wird. Dann unter einem neuen Ordner namens Entity. Anstatt da werden wir einen neuen Ordner namens Raccoon erstellen. Dann wird dies der Waschbär Punkt PNG sein. Also werden wir das auch kopieren. Da gehst du. Und jetzt ist alles eingerichtet. Die Dauer der Animation können wir vorerst einfach ignorieren. Wie ich schon sagte, wir werden diesen Schritt nach dem anderen machen, und das ist so ziemlich alles, was wir tun mussten , um den eigentlichen Waschbären hinzuzufügen. Natürlich wird es, wie gesagt, in der Blockbank in der Blockbank eine Menge Sachen geben , die du hier machen musst. Diese Blockbench-Datei steht Ihnen ebenfalls zur Verfügung. also keine Sorgen. Sie können das im Grunde genommen nehmen und ausprobieren und dann sehen, was Sie damit verwenden können. Ansonsten ist es einfach sehr wichtig, dass wir den Gecko ab diesem Zeitpunkt grundsätzlich live nutzen werden. Und insgesamt sollten die anderen Dinge hier so ziemlich getan werden, wir haben das in diesem Fluss den Waschbär und den Renderer registriert. Und nur um es für eine benutzerdefinierte Entität zu durchgehen, benötigen Sie die Entitätsklasse. Sie benötigen keinen Renderer und kein Modell. Das ist tatsächlich das Gleiche, wenn Sie Ecolab nicht verwenden. Aber die Ausdehnung hier wird es natürlich anders sein, denn dies wird hier ein animiertes GO-Modell für Gecko-Lippe sein. Und das wird es nicht für eine normale oder Vanille-Art von Entität sein, oder? Es gibt also noch eine Sache , die wir tun müssen , und das ist die Einstellung der Attribute. Jetzt machen wir das in unseren Registern, genau hier, den Modus-Registern, wir werden nur eine neue Klasse private statische Lücke machen . Und das werden die Registerattribute sein, aber dies wird eine Kühlung der Fabric-Entität sein, nennen wir es tatsächlich eine Fabric-Standardattributregistrierung . Sie haben vor Mod-Entitäten registriert, diesen Waschbär. Und dann werden wir nur die Datensatzattribute der Waschbäreneinheit nennen , die sie vor ihnen haben. Und das sollte sein, dass der Fehler hier sein sollte oder die Warnung hier in Ordnung sein sollte. Und dann werden wir das natürlich genau hier nennen, Attribute registrieren, die sie als Ziel haben. Und dann noch eine Sache, die natürlich ganz wichtig ist . Alles, was in Betracht gezogen wird, werden die Laicheier sein. Also brauchen wir ein Spawn-Ei für den Waschbären. Gehen wir in unsere Mode Items Klasse und fügen wir das auch hinzu. Wir werden das einfach kopieren. Das wird das Spawn-Unterstrich-Ei des Waschbär-Unterstrichs sein. Jetzt wird dies das Spawn-Unterstrich-Ei des Waschbär-Unterstrichs genannt . Dies wird genau hier ein neuer Gegenstand sein. Der erste Parameter werden die Entitätstypen von Mod-Entitäten sein , die Waschbär und unter ihnen eine Primärfarben haben werden. Also werde ich diese tatsächlich kopieren, weil das im Grunde genommen nur sind, das sind im Grunde genommen die Farben des tatsächlichen Spermas und Eies. Und ich habe mich schon eingelebt , damit wir das nicht noch einmal hinzufügen müssen . Was wir jetzt tun müssen, und das ist sehr seltsam, aber ich meine, es ist was es ist. Wir müssen tatsächlich eine Spawn AG Jason-Dateien hinzufügen , während wir uns in der angrenzenden Datei des Elementmodells befinden. Also im Modell-Elementordner und kopiere diesen. Jetzt wird das sehr, sehr einfach sein. Sie können sehen, dass es nur das übergeordnete Element der Artikelvorlage spawnen Ei hat , und dann antworten sie, wenn sie eingefärbt werden. Es gibt auch die Übersetzung hinzugefügt , denn dann haben wir das auch gemacht. Dies ist ein Artikel hier. Stellen wir es gleich hier hin. Da gehst du. So hat der Waschbär nun auch erfolgreich Ei hervorgebracht und es sollte sofort während der Arbeit sein. Ich meine, so sollte das so einfach sein. Und jetzt bin ich mir ziemlich sicher , dass hier alles hinzugefügt wurde. Wir können sehen, dass es hier einige Schritte gibt. Sobald Sie sie jedoch immer wieder durchlaufen haben , ist dies ziemlich vernünftig bei den Zielen hier. Ich möchte sagen, dass es viele Ziele gibt. Wenn wir also hier mit der mittleren Maustaste auf das Ziel klicken, können Sie die Torklasse sehen. Und wenn ich darauf klicke und dann Strg H drücke, können Sie alle verschiedenen Ziele sehen, die in Vanille liegen, und ich kann sie sogar erweitern. Es gibt noch mehr Ziele hier. Du kannst es auch, du kannst dir die ansehen. Sie können entweder sogar Ihre eigenen Ziele erreichen. Theoretisch ist dies sehr kompliziert. Wir werden in absehbarer Zeit nicht darauf eingehen. Die Ziele sind sehr, sehr kompliziert und die besten Möglichkeiten dies als definitiv vor allem die Vanille-Ziele zu betrachten . Und zweitens können Sie sich immer einige GitHub-Repositories anderer Mods ansehen , in denen es einige Entitäten mit interessanten Zielen gibt , die Sie gesehen haben. Und Sie können sich dann ansehen, wie sie gemacht werden, und daraus lernen, dass die Ziele sehr kompliziert sind. Es ist KI, es ist was es ist. Aber vorerst ist das alles, was wir brauchen. Also schätze ich mal sehen, ob es funktioniert oder ob Antworten in der Mikrophysik sehen das Laichen von Waschbären hinzugefügt wurde. Also mal sehen, ob wir es spawnen können. Und da ist es, der Waschbär spawnt tatsächlich und da gehen sie , natürlich in diesem Moment herumlaufen, überhaupt nicht wirklich animiert. Und sie haben auch einige von ihnen. Aber wenn sie tatsächlich wie zwei Treffer überlebt haben, drei Treffer mit einer anderen Lichtquelle. Das ist also ziemlich verrückt, weil sie helfen , natürlich ziemlich hoch gesetzt wurde. Aber das ist etwas, das man immer ändern kann. Dies ist etwas, das hier immer experimentierfreudig ist, aber Sie können die tatsächlichen Tierlaichen sehen. Das ist also ein echt verdammter Coolness. Und nun, ich meine, mal sehen wohin die Zukunft von mit ihnen führt. Und schauen wir uns die Entitätsklasse noch einmal an , denn es gibt noch ein paar Dinge, die wir hinzufügen können, was für Sie interessant sein könnte, wo wir uns wieder in der Entitätsklasse und nur damit Sie es gesehen haben, weil dies wahrscheinlich etwas sein wird, das die Leute fragen werden. Denn ich meine, natürlich können Sie hier immer in die Tierklasse gehen und sich all die Methoden ansehen , die Sie möglicherweise außer Kraft setzen können. Das Gleiche übrigens mit der passiven Entität und der pfadbewussten Entität und so weiter und so fort. Wir können sehen, dass die Entitäten bis zum Lebewesen zurückgehen , dem im Grunde genommen der ganze Rest hier im Grunde genommen in der Hierarchie abstammt . Ein wärmstens empfehlenswert auch diese auszuchecken. Es gibt so viel zu gewinnen, wenn die Vanille-Entitäten ansieht. Sie können immer interessante Dinge so finden, wie sie funktionieren. Aber eine Sache, die auch gefragt werden könnte, wie füge ich meiner Entität benutzerdefinierte Sounds hinzu? Und dafür haben wir hier vier verschiedene Methoden , bei denen ich den Umgebungssound, den Hertz-Sound auf den tauben Klang und den Step-Sound kopieren werde . diesen vier Methoden können Sie einfach ein Sound-Event zurückgeben. Dies beinhaltet dann natürlich die benutzerdefinierten Sound-Events, die wir bereits in früheren Vorträgen gesehen haben . Das würde dann also auch funktionieren. Also sehr zu empfehlen, dass Sie das im Grunde tun können und dann wird es diese Sounds unter bestimmten Umständen abspielen. Ich wollte das auf jeden Fall auch zeigen. Das könnte etwas sein, das für dich sehr interessant ist. Ansonsten empfehlen alle anderen wirklich , einen Blick auf einige der Vanille-Beispiele zu werfen. Und dann auch im Grunde, naja, einen Blick darauf werfen, wie wir das in den kommenden Vorträgen machen können . Denn wie gesagt, wir werden ein paar verschiedene Vorträge darüber halten, wie unterschiedlich, wie die tatsächlichen Entitäten funktionieren. Also werden wir im Grunde die eigentlichen Animationen einrichten. Nächstes Mal. Wir werden uns etwas von der Varianz und dann auch ein paar andere Dinge ansehen , was wirklich interessant ist. Also empfehle ich, diese auch auszuchecken. Aber vorerst wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen, wenn du es tätest, ich würde mich sehr über eine Rezension von dir freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. 105. (zusätzliche Themen) Füge die Entitäten mit Geckolib und BlockBench: Oder ich begrüße zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir unserer benutzerdefinierten Entität benutzerdefinierte Animationen hinzufügen . Dafür. Zuallererst gehen wir zurück in die kaputte Bank. Und wie natürlich in der letzten Vorlesung haben wir in der letzten Vorlesung die Waschbär-Entität hinzugefügt. Dieses Blockbankmodell steht Ihnen zum Download zur Verfügung. Und wenn Sie das haben, ist es sehr wichtig, dass dies hier ein Gecko-Lippenmodell ist . Wenn dies nicht ganz richtig formatiert ist, können Sie das Projekt in ein animiertes Gecko-Lippenmodell konvertieren . Und dann solltest du diesen Animate-Tab direkt hier haben. Und auf der Registerkarte Animate können Sie sehen, ob Sie jemals mit etwas gearbeitet haben, das ein Bearbeitungsprogramm ist , bei dem Sie bestimmte Schlüssel und Ihre Keyframes haben , mit denen Sie festlegen können. Dies ist auch Animation zum Beispiel in Einheit, so etwas ist hier im Grunde das Gleiche. Und was wir tun können, ist, dass wir auf die Inselanimation klicken können . Und zum Beispiel kann ich auf den Schwanz klicken und du siehst, dass ich hier etwas in die Rotation gesetzt habe. Was ich tun kann ist, dass ich die Animation einfach abspielen kann. Man kann sehen, dass über dem Kopf und der Körper langsam auf und ab gehen. Und der Schwanz hier wackelt nur ein bisschen hin und her. Was Sie sehen können, wenn ich auf diesen Keyframe klicke , den wir sogar bestimmte Methoden eingeben können Funktionsaufrufe direkt hier, Sie können Abfrage Anime Time Math Sin sehen, das ist nur die Sinuswelle, die wir sind dann setzen Sie die eigentliche Animationszeit in ein. Und das tut im Grunde nur, gut das in der Y-Achse. Es wird das also in der Y-Achse drehen . Das ist die allgemeine Idee hier. Sie können hier viele verschiedene Dinge einsetzen. Sie können die Keyframes natürlich auch manuell platzieren. Sie können also ein Keyframe erstellen, etwas dagegen tun und dann die Zeit erweitern, ein anderes Keyframe erstellen, die Zeit ein anderes Keyframe erweitern und so weiter und so weiter. Und natürlich kannst du das manuell über das machen , was ich gesagt habe, hier im Körper. Ich habe die Sinuswelle im Kopf gemacht. Ich habe auch eine Sinuswelle auf und ab gemacht. Und dann habe ich für den Schwanz auch eine Sinuswelle gemacht. Sie können also sehen, dass diese Sinuswelle ist und dann ist die Position hier auch in einer Sinuswelle nur ein bisschen von einem anderen oder anderen Wert hier, dass es ein bisschen anders aussieht, aber insgesamt sieht es sehr gut aus. Es ist also nur sehr einfach, aber es reicht aus, einen Eindruck von einem Leben zu vermitteln , das sie sind, anstatt nur eine Statik zu haben. Und wir können uns auch die Walk-Animation ansehen. Du siehst da du gehst, die Walk-Animation. Und dann können wir auch einen Blick auf die Sitzanimation , die in diesem Fall tatsächlich völlig statisch ist, würde dort auch etwas hinzugefügt werden. Aber vorerst bin ich eigentlich ziemlich zufrieden mit dem, was das ist. Es ist auch nur ein Beispiel hier, in denen es keine Sorgen gibt. Was machen wir damit? Mit all diesen Animationen? Wie speichern wir diese Animationen während wir zur Animation gehen? Und dann speichern wir alle Animationen. Zuallererst können Sie sehen, wo ich das in der Age Tracer-Datei Waschbär Animation speichern möchte, diese Spur. Also hebe ich das auf. Und dann können wir diese JSON-Datei grundsätzlich für unser Projekt verwenden . Wir gehen zurück zu einem Stoff. Und wenn wir uns im Modell daran erinnern, müssen wir den Ort für die Animationen angeben. Das wird noch einmal gehen, Assets MC Kursordner genau hier. Und dann erstellen wir genau hier ein neues Verzeichnis namens Animationen. Und dann werden wir da drinnen die Waschbär-Animation, die angrenzende Akte, die Einschränkung ist hier drin. Und dann muss ich einfach schnell den Namen CR2 Waschbär ändern. Dies ist etwas, das für Sie repariert werden sollte. Es war nur ein Tippfehler da drin, und dann sollten wir Eisen sein. Jetzt haben wir diese Animationen, die wir im Grunde genommen genau hier gemacht haben. Nun, wie werden wir sie benutzen? Wie können sie benutzt werden? Nun, sie können in der Entitätsklasse verwendet werden. Wir erinnern uns also daran, dass wir die Register-Controller und die Fabrik direkt hier hinzugefügt haben . Und jetzt müssen wir zwei weitere Dinge hinzufügen. Zunächst werden wir das Prädikat hinzufügen. Das Prädikat ist eine Methode, also werde ich das hier ganz unten hinzufügen . Wir werden einfach so etwas wie Animation machen. Dies sind die Animationen, in denen Sie sehen können , dass dies der Name der Animation ist, die diesen Namen im Grunde genommen genau hier verwenden wird, mit diesen Namen übereinstimmen muss, oder? Sie können also sehen, dass dies die Sitzanimation ist , die wir nicht in diesem Tutorial Orange als in dieser Vorlesung verwenden werden. Wir werden dies in der späteren Vorlesung verwenden. Und dann ist diese Animation der Walking-Animation hier eigentlich etwas , das wir hier verwenden. Und dann die Leerlauf-Animation genau hier, diese Namen müssen sehr wichtig übereinstimmen. Und dann ist die Frage, wann passiert das? Nun, Sie können sehen, dass die Walk-Animation stattfindet , wenn sich ein Ereignis bewegt, Sie können sich das Animationsereignis ansehen und hier einige Beispiele sehen. Normalerweise gibt es nicht so viele Beispiele. Ein paar andere Dinge, die wir sehen werden, besonders beim Setting Event. Wir werden in ein wenig sehen, wie wir in einem zukünftigen Vortrag grundsätzlich umsetzen können, wenn wir auch die Sitzanimation haben. Aber vorerst wollen wir dies und was wir dann dem registrierten Controller-Ereignis hinzufügen möchten , folgt. Das alles steht Ihnen natürlich auch im GitHub Repository zur Verfügung und auch individuell. Nehmen wir das tatsächlich. Das sind also Animationsdaten am Animationscontroller. Wir werden hier einen neuen Animation Controller nur mit einem Animations-Controller erstellen. Und dann gehen wir einfach in dieses Punkt-Produkt-Kit oder dieses Doppelpunkt-Doppelpunkt-Produkt ein. Und dieses Produkt hier wird gefragt, und jetzt sollten diese Animationen im Grunde schon funktionell sein. Das ist eigentlich alles , was wir für diese speziellen Animationen hier brauchen , denn wir haben hier bereits alles mit dem Modell eingerichtet . Dies verweist auf die eigentliche JSON-Datei. Wir haben es aktualisiert und alles von der Blockbank aus exportiert. Schlimmer noch, wenn du ein paar verrückte coole Animationen haben willst, gibt es immer, es gibt eine Menge , die du dagegen tun kannst. Aber wie gesagt, insgesamt geht es nur darum , es auszuprobieren. Ich bin hier noch einmal offen für Experimente , oder? Ich meine, wir werden nicht jede einzelne Sache durchmachen und du musst einfach auch ein paar Dinge selbst ausprobieren . Aber insgesamt ist es so ziemlich genau so, wie man es macht. Ja. Mal sehen, ob es funktioniert. Oder was wir gefunden haben, war zurück in Minecraft. Und wie Sie sehen können, wurden die eigentlichen Animationen erfolgreich zum Spiel hinzugefügt. So können Sie sehen, dass Sie wissen, auch die Walking-Animation. Beide funktionieren übrigens, die Sounds funktionieren auch aus der letzten Vorlesung, die wir hören können. Die funktionieren auch. Lasst uns tatsächlich das taube Geräusch bekommen, von dem ich glaube, dass er von einem Schwein stammt. Lasst uns das auch hören. Ja. Das ist irgendwie seltsam, aber okay. Und dann passen die tatsächlichen Umgebungsgeräusche oder vom Delphin, ich meine, es passt nicht ganz, aber es ist irgendwie witzig, dass es tatsächlich funktioniert. Aber am wichtigsten ist, die Animationen, wie Sie sehen können, dass das wirklich cool ist und ziemlich einfach war , alle Dinge zu implementieren, ich kann Ihnen sagen, was definitiv einfacher implementieren Sie einige dieser benutzerdefinierten Animationen. In diesem Fall, anstatt sie mit dem Vanille-Modell zu machen, ist das viel schwieriger, das kann ich dir sagen, aber ziemlich cool. Nichtsdestotrotz. Das ist schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 106. (Zusätzliche Themen) Einheitliche Varianten: Oder ich begrüße zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Mob hinzufügen , Varianz . Was das bedeutet, ist im Grunde, Sie wahrscheinlich alle die Pferdeeinheit, den Pferdemob in Minecraft gesehen haben, und es kann verschiedene, unterschiedliche Farben oder verschiedene Codes haben. Und genau das werden wir für den Waschbären tun. Jetzt ist dies überraschend eine sehr einfache Sache. Jetzt gibt es einige Orte, an denen wir tatsächlich einige Dinge hinzufügen müssen. Aber hauptsächlich natürlich in der Entitätsklasse und auch im Renderer, wenn ich mich nicht irre, ja, es ist im Renderer und im Modell gibt es tatsächlich einige Stellen, an denen wir uns ändern müssen einige Dinge, aber keine Sorgen da. Wenn Sie tatsächlich verstehen, was wir hier machen, ist es eigentlich ziemlich einfach. Aber das erste , was wir tun werden ist im Entitätspaket, wir klicken mit der rechten Maustaste auf ein neues Paket, das als Varianz bezeichnet wird. Anstatt dort machen wir dann eine neue Java-Klasse. Wir werden Enum auswählen, und dies wird der Waschbär eine Variante sein. Jetzt kopiere ich den Inhalt davon. Es wird jedoch im Grunde jedes Mal dasselbe sein , wenn Sie eine neue Variante erstellen. So sieht es aus. Das einzige, was Sie ändern müssen, sind im Grunde die tatsächlichen Verweise auf den Namen dieser Klasse. Ansonsten ist es in Ordnung. Und dann hier, genau wie jede andere Aufzählung, die wir zuvor gesehen haben, listen Sie einfach alle verschiedenen während Enums hier auf und erinnern sich dann einfach an sie. Ich meine, hier ist das wahrscheinlich wie grün und diese ID, die hier in diesem Fall wahrscheinlich etwas vernünftiger ist hier in diesem Fall wahrscheinlich etwas vernünftiger , was auch immer der Fall sein mag. Wir werden also eine Standardinvariante, eine dunkle Variante und eine rote Variante haben. Nun, wie wählen wir diese aus? Woher wissen wir, was hier passieren wird? Nun, was passieren wird , ist in der Raccoon Renderer-Klasse hier, wir werden eine Map hinzufügen. Noch einmal werde ich das tatsächlich kopieren. Es ist jedoch sehr einfach, wenn man tatsächlich sieht, wie es aussieht und dann sieht es vielleicht ein bisschen verrückt aus und beim ersten Zeichen, aber dann wirst du sagen: Okay, das ist eigentlich nicht zu verrückt. Das einzige, was wir hier tun, ist dass wir Location bivariant sagen, eine neue Karte von Raccoon-Variante bis ID. Was nur bedeutet, dass wenn der, wenn wir in diese Variante übergehen, der Standardwaschbär genau hier variiert. Wir werden nur auf diese Textur hinweisen. Wenn es die dunkle Variante ist, weisen wir auf diese Textur hin. Wenn es die rote Variante ist, weisen wir auf diese Textur hin. Das ist buchstäblich alles, was es dazu gibt. Wenn Sie mehrere haben, fügen Sie hier einfach mehr hinzu, zugeordnete Ausgabe und dann mit einer neuen Variante und so weiter und so weiter. Das war's. Die tatsächliche Texturposition hier und jetzt muss geändert werden. Also müssen wir sagen, Standort bivariant dot get. Jetzt ist die Frage, nun, wie bekommen wir die Varianz? Nun, wir müssen die Variante irgendwie in die Entität bringen. Das werden wir als Nächstes tun. Wir werden diesen Bereich vorerst hier verlassen, und wir werden ein paar Sachen in der Entität ändern. Das ist etwas komplizierter, sagen wir mal, wo es mehr Teile gibt. Aber ich bin mir wieder, ich bin mir sicher, dass das gut gehen wird. Ich werde all die verschiedenen Methoden kopieren, jetzt werden das einige von die verschiedenen Methoden kopieren, jetzt werden das ihnen sein , aber lasst uns es mit mir ertragen und lasst uns das durchmachen. Ich werde dann all die verschiedenen Methoden erklären , dass wir hier einen Fehler haben werden, das sind die Datenpfeile. Also brauchen wir tatsächlich etwas, das als Trakt-Daten vom Typ Integer bezeichnet wird . Und ich werde das hier tatsächlich ganz oben hinzufügen , denn normalerweise mag ich, dass die tatsächlichen Übungsdaten hier ganz oben stehen und dann keine Fehler mehr in der Entitätsklasse vorhanden sein sollten. Und dann werden wir tatsächlich durchgehen und erklären, was der FREC hier vor sich geht. Aber was haben wir? Wir haben zuallererst diesen Data Tracker, das ist interessant, oder? Die Trackdaten, die Sie hier sehen können, sind also eine Möglichkeit, Daten in einer Entität zu speichern , die sowohl über den Client als auch über den Server verfolgt wird . Das ist natürlich sehr wichtig , dass diese gleich sind. Und wir können hier ein Beispiel sehen, wenn ich auf die tierische Entität klicke , drücke Control H und gehe zum Beispiel in die ODER-Space-Entität. Wir können sehen, dass es hier einige Praxisdaten gibt. Du siehst, dass es einige Flaggen gibt. Es liegen die Daten der Eigentümer-UUID vor. Und ich denke, dass wir in der vielleicht in der Pferde-Entität sogar noch weiter gehen können . Da gehst du. Wir haben auch hier eine Rüstungsknochenlos-ID-Variante. Und das ist so ziemlich genau die gleiche Welt funktioniert. Hier habe ich also so ziemlich genau davon bekommen, wie das von der Pferdeeinheit funktioniert. Also noch einmal wird es dir nur noch einmal zeigen. Es ist auch alles in den Vanille-Klassen. Du kannst sie dir ansehen und du kannst dort fast alles finden. Sie sind das West-Tool und die beste Ressource, die Sie zur Hand haben. Was haben wir sonst noch in der Klasse, in der wir das benutzen, oder? Also werden wir das benutzen. Sie können zunächst hier im Init-Daten-Tracker sehen, das ist unglaublich wichtig. Sie müssen dieses Jahr hinzufügen, sonst wird es nicht funktionieren. Wir müssen diese Daten initialisieren. Die Verfolgung dieser tatsächlichen Art von Daten. Und dann können wir sehen, dass wir eine festgelegte Variantenmethode haben , die tatsächlich nur in dieser bestimmten Klasse verwendet wird und nur in der initialisierten Methode verwendet wird. Während die initialisierte Methode, naja, wird dies aufgerufen, wenn eine dieser Entitäten spawnt und insbesondere wenn es sich um Anleihen handelt, zum Beispiel durch ein Laichen. Was es auf Ei reagieren soll, was wir natürlich wollen, ist, dass wir hier eine zufällige Variante wollen. Wir werden diese Variante einstellen und dann wird es uns gut gehen. Lassen Sie uns was hier passiert. Dann haben wir auch ein Recht und eine Lese-Methode für NVT-Daten. Dies sollte ziemlich selbsterklärend sein. Wir speichern die Variante gerade hier und lesen sie dann genau hier vor. So ziemlich alles, was Sie wissen müssen, um es noch einmal zu senden, auch ziemlich selbsterklärend. Das ist das einzige, was hier mit diesem Zweck irgendwie seltsam ist. Und im 255 ist dies nur etwas , das benötigt wird. Ich werde nicht zu sehr ins Detail gehen. Es sind nur ein paar Java-Spielereien im Grunde mit der ID. Denn in der Variante hier können Sie sehen, dass sie auf diese Weise gespeichert wird. Also werden wir es im Grunde einfach so behalten und damit einverstanden sein. Und wir werden einfach sagen, okay, es ist was es ist. So muss es gemacht werden, aber alles funktioniert gut. Das ist so ziemlich genau das. Das sind die verschiedenen Methoden. Und was wir hier natürlich tun können, ist, dass wir Entity und den T. sagen können Sie los, richtig? Entity Dot wird kovariant. Und dann geht's los. Und dann müssen wir das Gleiche im Modell genau hier machen , wo wir natürlich auch die Textur haben. Aber wir können buchstäblich dasselbe nehmen, dieses. Und wir müssen nur genau hier sagen dann der Waschbär-Renderer, ist es, was wir diesen Ort bivariant nehmen wollen, aber Entität bekommen, Varianz bekommen. Und das war's. Jetzt brauchen wir natürlich immer noch die Textur, also vergessen wir nicht, beide Texturen zu kopieren . Sonst wäre das definitiv ein bisschen eine Aufsicht. Also lass uns Waschbär gehen, los geht's. Und dann haben wir Waschbär dunkel und auch den roten Waschbär. Da gehst du. Und das sollte so ziemlich alles sein, was wir brauchen. wir einfach sicher, dass all dies auch richtig geschrieben ist. Waschbär dunkel sollte in Ordnung sein, rote Waschbären auch gut. Das sollte funktionieren. Das sollte funktionieren und funktional sein, also ist das ziemlich gut. Und so einfach ist es, etwas Abweichung hinzuzufügen. Jetzt gibt es natürlich wieder viele verschiedene winzige Dinge. Sagen wir, die Karte hier sollte nicht zu verrückt sein. Das sollte nicht zu verrückt sein. Das sollte nicht zu verrückt sein. Gleiches gilt für die tatsächliche Entität Die Anzahl der Methoden ist eigentlich nicht so viel, wenn man darüber nachdenkt, ist nicht so viele Methoden. Es ist nur eine Menge, um den Kopf zu wickeln , wenn man darüber nachdenkt. Diese Daten, Daten-ID Tie Variante, okay, Es ist ein bisschen seltsam, aber insgesamt sollte es nichts zu verrückt sein. Wissen Sie, an dieser Stelle hoffe ich, dass die meisten von Ihnen über ausreichendes Java-Wissen verfügen , damit Sie dies einfach durchgehen und es aus Java-Perspektive verstehen können. Und natürlich, wie gesagt, bieten die Vanille-Klassen natürlich alle verschiedenen Beispiele. Es gibt erstaunlich und eigentlich wirklich gut und man kann sie auch durcharbeiten. Aber vorerst, weil wir alles hinzugefügt haben, Mal sehen, ob es funktioniert. Oder Fettzellen zurück in Minecraft. Lasst uns also ein paar Waschbären spawnen und los geht's. Wir haben hier bereits alle anderen Varianzen laichen glücklich. Hier aus dem Laichei sieht man es, alles funktioniert einwandfrei. Und das ist einfach, das ist einfach verdammt erstaunlich, oder? In diesem Fall ist die Variante natürlich ein bisschen von einer anderen Wandstruktur in Bezug auf die Färbung. Aber ich meine, das ist immer noch echt echt cool, echt verdammt genial. Und ich meine, es funktioniert einfach sehr, sehr gut. Und ich meine, es ist insgesamt, denke ich und ich hoffe, dass Sie damit einverstanden sind, ist eigentlich ziemlich einfach und nicht allzu schwierig. Das ist also echt verdammt cool, oder? Wie immer steht Ihnen natürlich der gesamte Code im GitHub Repository genauso gut individuell zur Verfügung. Aber sonst wäre das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 107. (weitere Themen) Fühlbare: Oder ich begrüße zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir unsere Waschbäreneinheit um die Funktionsfähigkeit erweitern. Und dafür werden wir in erster Linie die tatsächliche Superklasse in erreichbare, erreichbare Einheit umstellen erreichbare, erreichbare . Erreichbare Einheit. Und dann müssen wir dies nur hier auf den Entitätstyp kopieren . Und dann werden wir genau hier dasselbe mit den Attributen tun. Und was wir dann tun werden ist, dass wir wieder ein paar Dinge hinzufügen werden, jetzt werde ich sie noch einmal kopieren , aber keine Sorge. All dies steht Ihnen im GitHub Repository ebenso individuell zur Verfügung. Und wir sollten theoretisch keine Fehler bekommen. Dies wird wieder einmal in irgendeinem Trakt eine Daten hier einschließen , diesen Typ, dieses Mal des Booleschen Typs. Wie Sie sehen können, ein boolescher Wert. Dies ist der sitzende Boolean. Dies ist sehr wichtig , weil dies die Frage, ob dieser Waschbär sitzt, retten wird oder nicht . Jetzt gibt es schon eine Einstellung. Sagen wir, was würdest du sagen eine sitzende Variable in der Tabellen-Entität, ich glaube, das sollte hier sein, genau da gehst du. Privates boolesches Sitzen. Dies ist jedoch genau hier glaube ich nur auf dem Server. Was bedeutet, dass dies eine interessante Sache ist, denn dies ist nur auf dem Server, wenn wir jetzt auch folgendes hinzufügen, eine Animation, um hier in diese zu sitzen. Also werden wir das auch hinzufügen. Sie können sehen, ob das sitzt, also ist das mein benutzerdefinierter boolescher Wert hier , der den Data Tracker tatsächlich zum Sitzen bringt. Wenn das alt ist, funktioniert es nicht, denn genau hier ist das alles, was Gecko-Labor so ziemlich gut macht , nur auf dem Kunden. Die Animationen werden auf dem Kunden stattfinden. Daher muss die sitzende Variable irgendwie trakt sein. diesem Grund müssen wir eine benutzerdefinierte Sitzvariable hinzufügen. Deshalb gibt es dieses hier. Und deswegen gibt es dieses. Und das nennt diese Set-Sitzung. Diese wird hier eigentlich die Super-Methode genannt , die dies auf gleich setzt , aber wir können sie nicht verwenden. Die normale Methode ist in diesem Fall zu sitzen, weil das einfach nicht funktioniert. Auch eine sehr wichtige Sache. Bitte beachten Sie, dass wir hinzufügen müssen, dass die sitzende Variable zum Daten-Tracker genau hier ist. Das ist unglaublich wichtig. Bitte vergiss das nicht, sonst wird dein Spiel abstürzen, wenn du in unsere Welt gehst. Das ist derzeit sehr wichtig die wahrscheinlich große Methode hier, und das ist die mobile Interact Methode. So können wir sehen, dass wir eine Set haben, eine sitzende Methode setzen. Die Anzeigetafel wird für das eigentliche Team benötigt. Dies ist also nur so, dass das eigentliche Ding des zentralen Teams der Entitäten und dann ausgelaugt werden kann. Wir werden dies nur falsch machen, weil es ein kleines Problem mit Gecko Live war und im Grunde genommen Entitäten die Führung zu geben , die nicht ganz funktionieren. Wie auch immer der Fall sein mag, sie interagieren Mob-Methode. Was ist das? Nun, das ist natürlich Code, wenn Sie mit der rechten Maustaste auf einen Mob klicken. Wenn wir jetzt mit der rechten Maustaste auf diesen Mob klicken, wollen wir natürlich erreichen. Möglicherweise. Was ich hier zum Beispiel habe, ist der Gegenstand zum Zähmen. Ich habe hier gerade eine kleine Variable gemacht. Ich habe das gerade auf einen Apfel gesetzt. Wenn du das also ändern willst, kannst du es einfach hier ändern. Und dann können wir sehen, ob der Gegenstand tatsächlich der Gegenstand für gezähmt ist , mit dem wir mit der rechten Maustaste klicken. Und es ist, die eigentliche Entität ist noch nicht gezähmt, was wir dann tun werden, solange wir auf dem eigentlichen Server sind. Das passiert also auf dem Server. Was wir dann tun werden, ist im Grunde Hey, setze einfach den Besitzer auf Spieler, der mit der rechten Maustaste darauf geklickt hat. Wir werden ein paar grundlegende Neuberechnungssachen machen. Wir senden den Entitätsstatus hier und setzen ihn dann sofort auf das Festlegen des fest, nachdem wir eine Entität tatsächlich gezähmt haben, werden wir sie so einstellen, dass sie sitzt. Interessant. Wenn es jetzt schon gezähmt ist, auf dem Server war und die Haupthand genau dann ist und wir mit der rechten Maustaste darauf klicken, schalten wir diese Einstellung einfach um. Es ist sehr wichtig, dass wir diese Hand auch hier haben , denn dies ist ein echtes Problem. Das ist kalt für beide Hände. Deshalb wird es vielleicht nicht funktionieren , wenn du das nicht hast. Ich habe diesen Fehler oder Fehler schon ein paar Mal gesehen. Wenn wir das so ausführen würden, hätten wir tatsächlich ein kleines Problem und das heißt, dass die eigentliche Entität nicht sitzt. Warum ist das der Fall? Nun, weil wir hier tatsächlich zwei weitere Ziele hinzufügen müssen . Und das wird die Nummer eins sein, das gesetzte Ziel mit Priorität eins, es ist unglaublich wichtig , dass dieses Ziel vor allen anderen Wunderzielen liegt . Und sie sehen sich um Ziele und all das. Denn wie Sie sehen können, ist, wo es wichtig ist , dass sie das Ziel sitzen, höher als das Wunderziel. Ansonsten wird es passieren, dass der Waschbär hinsetzt und dann wird es sich fragen, und dann wird er sich wieder hinsetzen und dann wird es sich wundern, und das kann sich wieder hinsetzen. Deshalb muss die Priorität hier sein, naja, ich meine in diesem Fall niedriger, aber ein höheres Recht? In diesem Fall muss es also nur eine niedrigere Zahl sein. Und dann greift der LKW-Besitzer an oder ein Tor. Ich glaube nur nicht einmal , dass wir das unbedingt brauchen, weil ich eigentlich nicht glaube, dass der Waschbär überhaupt einen Angriff angreifen würde , der den Besitzer entdeckt. Aber darüber bin ich mir eigentlich nicht sicher, weil ein Teil davon auch dem Wolf genommen wurde . können wir uns natürlich auch mal ansehen. Suche einfach nach Wolf mit Entität. Da gehst du. Und dann können wir uns im Grunde alle Ziele ansehen, die Sie sehen können, dass sie tatsächlich ziemlich umfangreich sind, wie viele verschiedene Dinge. Hauptsächlich wird Angreifer das Besitzerziel fallen. Und man sieht noch einmal, dass das gesetzte Ziel hier ganz oben steht. Priorität zwei, sehr, sehr wichtig, dass dies der Fall ist. Andernfalls könnten einige Probleme auftreten. Behalte das also im Hinterkopf. Das ist unglaublich wichtig. Abgesehen davon wird die Fähigkeit tatsächlich so gemacht. Ist es steuerpflichtiges Unternehmen und hat dann die Möglichkeit, es auch hier mit genau der sitzenden Variablen zu zähmen. Jetzt die sitzende Variable, wenn Sie etwas haben , das Sie nicht wirklich haben möchten, dass es sitzt, völlig in Ordnung, dann müssen Sie dies nicht hinzufügen. Sie müssen den sitzenden nicht hinzufügen. Sie müssen dies nicht hinzufügen, brauchen Sie grundsätzlich nur die Interaktionsmob-Methode. Das ist so ziemlich alles, was es dazu gibt. Aber im Moment würde ich eigentlich sagen weil wir alles zur Vollendung hinzugefügt haben, mal sehen, ob es funktioniert oder ob der Rat wieder in Minecraft ist. Eine wichtigste Sache hier ist übrigens auch zu sagen, wenn Sie dies in Stoff verwenden, haben Sie im Grunde jedes Mal, wenn Sie in die Welt gehen, Grunde jedes Mal, wenn Sie in die Welt gehen, einen anderen Spieler, aber es ist sehr wichtig oder ein anderer Name. Es ist also sehr wichtig , dass es manchmal sehr schwierig ist, dies zu testen, wenn man manchmal sehr schwierig ist, dies hat. Was ist der Fall vielleicht? Versuchen wir es tatsächlich mit der rechten Maustaste zu klicken. Und los geht's, beste Freunde für immer. Wie Sie sehen können, sitzt es richtig. Also sitzt es normalerweise, was ich tue, ist es einfach hier in ein paar Blocks einzuschließen, nur um sicherzustellen, dass es wirklich sagt, es heißt nicht, dass Sitzen die eigentliche Entität ist. Bleib da, aber es sieht echt gut aus, oder? Ich kann auch einfach ein bisschen wegziehen. Es sollte dort bleiben. Und noch einmal kann ich mit der rechten Maustaste darauf klicken und jetzt sitzt es nicht mehr. Jetzt hat sich die Animation geändert, und jetzt sollte sie sich auch selbst bewegen oder ich, ich habe nicht wirklich in eine Mulde gesteckt, dem Besitzerziel folgen, also sollte es es einfach alleine machen. Da gehst du. Jetzt zoomt es auf und ich kann einfach wieder mit der rechten Maustaste klicken und dann sitzt es wieder und es sollte völlig gut funktionieren. Aber so einfach ist es, auch die Teamfähigkeit hinzuzufügen. Das ist also echt verdammt cool. Sie können sehen, dass es so einfach sein kann. Und ich meine, es ist, weißt du, es ist einfach echt echt cool. Ich meine, das ist auch bei den Kundenanimationen , oder? Sie können eine benutzerdefinierte Sitzanimation erstellen. Du kannst alle möglichen Sachen machen. Ich meine, das ist einfach erstaunlich. Das war's schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 108. (zusätzliche Themen) Fügen hinzufügen: Alles klar, willkommen zurück zum Stoffkurs für 118. In dieser Vorlesung werden wir eine Entität hinzufügen , die sowohl tabellarisch als auch beschreibbar ist. Das ist eine sehr interessante Sache, weil es dem Pferd natürlich wieder sehr ähnlich ist. Aber in diesem Fall wollen wir tatsächlich eine beschreibbare Entität. Und ich würde sagen, weißt du, ein paar Dinge, die du im Grunde beachten musst. Und dafür werden wir im Grunde Tiger machen. Jetzt ist das auch richtig cool. Fangen wir einfach an und wie würden wir das machen? Nun, zuerst würden wir natürlich vorgehen und es genau hier zur Tiger-Entitätsklasse machen . Dann werde ich natürlich wieder einmal, als würde ich so oft eine Menge Sachen hier kopieren . Jetzt für den eigentlichen Tiger werde ich so ziemlich die gesamte Klasse kopieren. Wichtig ist, dass hier natürlich alles wie immer im GitHub Repository verfügbar ist, auch in individueller Anpassung. Weil das auch ziemlich viel ist, ertrage mich hier da ich im Grunde alles kopiere , einschließlich des erweiterbaren Zeugs. Wir werden also sehen, dass Sie 270 Zeilen sehen können und dann glaube ich, dass ich dort eine schließende Klammer haben muss . Da gehst du. Und jetzt sollte hier alles funktionieren, also sollten wir keine Fehler bekommen. Jetzt ist das erste, was es tatsächlich die Typ-ID gibt, eigentlich brauchen wir nicht, dass das wirklich sehr interessant ist, war wahrscheinlich nur noch da drin. Aber es gibt keine Sorgen. Wir haben den Rest hier. Ziemlich vernünftige Tabellen-Entität. haben wir schon mal gesehen. Attribute, die das Produkt für die verschiedenen Animationen erhält , sollten ziemlich sinnvoll sein. Die Ziele hier registrieren dies, oder das ist ziemlich verständlich. Das T-Mobile ist ein bisschen anders, hauptsächlich die Interact Mob-Methode genau hier. Hier zum Beispiel ist der T-Mobile-Artikel natürlich der Begriff, denn der Tiger macht nicht wirklich viel Sinn, aber es ist hier natürlich nur ein Beispiel. Sie können sehen, dass das Ganze hier ein bisschen anders eingerichtet ist. Sie können also sehen, dass wenn ein Spieler schleicht, wir es tatsächlich zum Sitzen bringen können. Und wenn der eigentliche Spieler nicht schleicht, fangen wir an zu schreiben. Sie können sehen, wie Sie später anfangen, dies zu schreiben. Das ist also sehr interessant. Das ist also auch etwas zu beachten, dass es hier im Grunde genommen einen kleinen Unterschied gibt. Wenn wir sie schleichen, machen wir es Lage, die Entität zu sitzen. Und wenn wir dann einfach mit der rechten Maustaste klicken, dann fangen wir an, es zu schreiben, wenn es gezähmt wird. Und Sie können auch sehen, dass wir das genau hier haben. Wir haben also die Möglichkeit es tatsächlich den Eigentümern zufällig zuweisen zu lassen. Es gibt also, was wir sagen, es gibt eine Chance von fünfundzwanzig Prozent, in diesem Fall tatsächlich hier gezähmt zu werden. Und dann würden diese Entitäten, Status, das die Herzen hervorbringen und das würde klein ausgeben und ich möchte nicht dein Freund sein. Grundsätzlich. Verschiedene Teilchen hier. Wieder einmal das Sitzen hier, sowohl mit der SETT-Einstellung als auch mit der sitzenden Abschreibungsvariablen genau hier. Dies ist auch das gleiche Wort das die Gesundheit genau dort ändert, das eigentliche Team und dies und dann das Init. Und dann kommt der fahrbare Teil. Der fahrbare Teil, so ziemlich all dies, wurde sowohl der Pferderaumeinheit als auch der Pferdeeinheit entnommen . Das ist so ziemlich alles, was es dazu gibt. Ich kann dir noch einmal sagen, dass du vielleicht so Wie hast du das herausgefunden? Wie im wahrsten Sinne des Wortes habe ich mir nur die PS angesehen, die Pferdebasis, die Pferdeeinheit, die über alles kopiert wurde. Ich habe die Methode nach Methode kopiert, bis es funktioniert hat. Das ist so ziemlich alles, was es gibt und sich dann ein bisschen geändert hat, ich glaube an die Reisemethode, es gab ein paar Dinge mit der Sprunggeschwindigkeit, die ich hier eigentlich nicht habe. Die Tiger-Entität, die Sie tatsächlich nicht springen können , ist hier nur ein Beispiel. einmal sehr empfehlenswert. Schauen Sie sich einfach die Horse Space Entity und die Pferdeeinheit wenn Sie hier etwas mehr Funktionalität wünschen. Und dann haben wir nur zwei interessante Methoden, nämlich der Update-Passagier für den Abstieg und die Locates haben diese Montageposition gespeichert, die wirklich nur daran gewöhnt sind, Hey, wo kann der Spieler jetzt nach dem Festplatten-Mounting gehen? Das ist alles, was es dazu gibt. Diese sehen also sehr kompliziert aus, komplett kopiert. Wir müssen nicht zu sehr auf sie eingehen weil der Name so ziemlich schon sagt, was tut, und wir müssen nicht jedes einzelne Detail am meisten verstehen , sagen wir am meisten, die höchstmögliche Auflösung. Das ist nicht unbedingt das , was du immer haben willst. Es ist wie okay, gespeicherte Position lokalisieren, Position demontieren, weißt du was das macht? Es ist wie, okay, es findet nur eine Position in der Welt , in der wir den Spieler nach diesem Aufsteigen von dieser beschreibbaren Entität spawnen können . Das ist alles, was es dazu gibt. Normalerweise sollte das ziemlich gut sein. Und insgesamt kann man sich, wie gesagt, immer ein paar andere Reittiere hier ansehen . Wenn ich also hier Control H drücke , können Sie die Pferdestärken-Entität, eine Pferdeeinheit, sehr empfehlen. Sieh dir das mal an. Ich meine, alles ist hier drin. Ich weiß nicht, was ich dir sonst noch sagen soll. Grundsätzlich ist zu diesem Zeitpunkt das eigentliche Vanillezeug. Es ist sehr verbreitet und einfach eine sehr gute Sache, einen Blick darauf zu werfen. Fügen wir nun auch den Renderer und das Modell hinzu. Also wird es das Tiger-Model geben. Natürlich auch der Tiger-Renderer. Geh. Und noch einmal werden Dinge hier kopiert, aber es ist ziemlich einfach. Alles in allem sieht man nur ein animiertes Videomodell der Tiger-Entität und zeigt dann noch einmal auf die drei Methoden hier. Lasst uns das auch hinzufügen. Da gehst du. Und dann wird das für den Renderer noch lustiger. Grundsätzlich. Das ist noch weniger, wie Sie sehen können. Es ist nur noch einmal der Kontext hier, der tatsächliche Ort für die Textur. Und das ist es so ziemlich. Dieses Mal haben wir hier keine anderen Varianten. Aber natürlich könnte man das auch hinzufügen. Wir benutzen gesehen es, wie es mit den Waschbären funktioniert , also keine Sorgen. Dann erstellen wir genau hier einen neuen Entitätstyp. Wieder einmal, so ziemlich das Gleiche wie der Waschbär, tigere einfach jede Stufe, die hier angestrebt ist. In diesem Fall habe ich es auch eine Kreatur, es hier natürlich nur zu einem anderen Namen mache. Und dann habe ich auch hier nur ein bisschen eine andere Dimension. Und das ist so ziemlich alles, was Autoren sagen. Das ist eigentlich fast alles, was wir jetzt im Kunden hier tun müssen. Lassen Sie uns einfach dieses Control D duplizieren und dann Tiger sagen. Und dann wird das der Tiger oder Renderer sein. Das wäre so ziemlich was? Ich meine, das ist so ziemlich alles, was es gibt. Jetzt müssen wir auch die JSON-Dateien hinzufügen. Wir haben natürlich auch das eigentliche Tigermodell. Also wird es genau hier sein. Wir haben auch dieses Tiger-Modell, das Ihnen natürlich wieder mit einigen der verschiedenen Animationen zur Verfügung steht . Dies steht Ihnen also auch alles zur Verfügung, einschließlich der JSON-Dateien. Wir kriegen einfach die Tiger-Animation hier rüber. Geh. Und dann brauchen wir natürlich auch den Bohrer und dann die Textur. Letzten Moment, lass uns den Geo hier holen. Da gehst du. Dann sollte die Textur unter Entität und dann ein neues Verzeichnis namens Tiger sein. Und dann werden wir da drinnen den Tiger-PNG hinzufügen. Interessanterweise ist das eigentlich alles, was es dazu gibt. Jetzt wurde hier natürlich wieder viel kopiert. All dies ist im GitHub-Repository verfügbar und genauso gut, in der Regel eine Menge Dinge, das meiste davon ist ziemlich einfach, alles in Betracht gezogen. Ich denke, dass das meiste davon dasselbe ist wie der Waschbär mit einer Fähigkeit, besonders. Und dann auch wenn es um die richtige Fähigkeit geht, wie ich schon sagte, Vanille-Kurse, ist das das Beste, was man sich ansehen kann. Vergessen wir jetzt nicht, auch die Register hier hinzuzufügen. Das werden also genau hier die Attribute sein. Das ist also gut zu Tiger. Und dann wird dies die Tiger-Entität sein. Sie sind schon her. Und das sollte so ziemlich alles sein , was wir für die Tiger-Entität brauchen. Wie ich schon sagte, ich meine, ich weiß nicht, wie oft ich es sagen muss, aber das Vanillezeug ist alles für dich da, was du dir ansehen kannst. Wenn es irgendwie schwer zu verstehen ist. Wieder einmal braucht man nur ein bisschen mehr Java und Panne, die Jobeinführung, ein paar Sachen ausprobiert und offen für Experimente sein. Probieren Sie es einfach aus. Sieh dir an, wie weit du kommen kannst, ohne einfach nur Sachen auszuprobieren. Ich meine, am Ende des Tages hast du immer die Kontrolle Z. Du kannst immer einfach zurückgehen. Wenn Sie ein GitHub-Repository-Setup haben, sicher, dass Sie und Ihre Änderungen häufig verschieben, können Sie jederzeit zurücksetzen, wenn etwas vollständig kaputt geht, das ist auch etwas, das Sie im Grunde beachten sollten. Aber vorerst ist das eigentlich alles, was wir brauchen. Also schätze ich mal sehen, ob es funktioniert oder wo wir uns wieder in Minecraft befinden. Also gab es natürlich eine Sache, die ich tatsächlich vergessen habe, und das ist das Hinzufügen des eigentlichen Laichs, das Laichei. Aber keine Sorge, wir können nur einen Teil des Tiger wie diesen vor und dann mal sehen, also funktioniert es. Die Animationen funktionieren auch sofort. Mal sehen, klicken Sie mit der rechten Maustaste. Ich hatte hier wirklich großes Glück. Jetzt kann ich mit der rechten Maustaste darauf klicken und sie gehen, jetzt schreibe ich drauf und es ist sehr schnell. Was hier sehr wichtig ist, ist, dass ich eigentlich nicht die Treppe hinaufgehen kann, wie Sie sehen können, denn das Problem dort ist, dass ich nicht wirklich mit dem Tiger springen kann. Das habe ich gesagt, wo es gerade so eingerichtet wird . Und wenn ich dann einfach nach rechts verschiebe oder Kraut, und es funktioniert. Und wenn ich dann grundsätzlich mit der rechten Maustaste wechseln kann, dann sitzt es nicht mehr. Und jetzt sollte es sich auch einfach darum bewegen , wie es normalerweise geht. Mal sehen, lass mich nur eine Sekunde warten und es wird wahrscheinlich gehen, ich denke, dass der Schwanz tatsächlich ein bisschen wackelt. Es ist sehr merkwürdig. Aber da gehst du. Jetzt fängt es an zu laufen. Und vor ihnen gibt es natürlich ein bisschen Verrücktheit. Und schreibe wie immer mit den Entitäten. Ich meine, es geht nur um Raffinieren. Die tatsächliche Geschwindigkeit hier, mit der Sie fahren, ist, dass sie vielleicht etwas zu hoch ist. Ich denke, das könnte man auch ändern. Aber insgesamt ist es ziemlich cool und so einfach ist es eigentlich, Minecraft-Schreiben eine beschreibbare Entität hinzuzufügen , nur um der Fertigstellung willen, fügen wir tatsächlich auch den anderen Spawn EKG hier denn das ergibt einfach viel Sinn. Da gehst du. Das Wichtigste sind die, die beiden Farben hier. Sonst wird es der Tiger sein, Tiger Spawnenei. Und natürlich auch hier, der Tiger spawnt z.B. von Tiger, sie vor. Und dann brauchen wir nur die JSON-Datei, aber wir können einfach über die andere JSON-Datei kopieren Denn natürlich, wie ich heute Morgen sagte, ist Jason Hall die einfachste Sache aller Zeiten. Es wird nur der hochgrobe Baunach sein. Und wir können das tatsächlich so behalten, wie es ist. Wir brauchen nur die Übersetzung. Der Tiger laichen, dann auch hier , der Tiger laichen. Aber jetzt haben wir auch alles hier eingerichtet. Aber das wird vollkommen in Ordnung sein. Aber ja, das ist so ziemlich alles, was es dazu gibt. Wie ich schon sagte, bei allen Änderungen steht es Ihnen frei, hier Änderungen vorzunehmen, probieren Sie einfach ein paar Sachen aus. Die Bewegungsgeschwindigkeit, wie Sie hier sehen können, ist hier ziemlich weit fortgeschritten. Es ist also, wenn es gezähmt wird, tatsächlich eine ziemlich hohe Bewegungsgeschwindigkeit haben. Sie können sich auch einige der anderen Ziele ansehen. Wieder einmal steht Ihnen alles hier im GitHub Repository in einzelnen Exemplaren von Over zur Verfügung, probieren Sie eine Reihe von Sachen aus, schauen Sie sich ein paar Vanille-Beispiele an, und dann bin ich mir sicher, dass du wirst hoffentlich zur Entität deiner Träume kommen. Ich kann natürlich auch immer einige der GitHub-Repositories anderer beliebter Modi empfehlen der GitHub-Repositories anderer beliebter Modi in denen Sie sich auch ihren Code ansehen können, und das ist auch immer sehr, sehr wertvoll. In der Regel benötigen Sie jetzt ziemlich viel Java-Wissen, zumindest zwischen fortgeschritten. Andernfalls werden Sie es manchmal nicht durchstehen, weil andere Leute verschiedene Möglichkeiten haben, sagen wir, in Java zu programmieren und Dann müssen Sie sich manchmal zu programmieren. Dann müssen Sie sich manchmal daran gewöhnen den Code anderer Leute lesen. Es ist anders, als definitiv dein eigenes zu lesen. Aber ich meine, was auch immer der Fall sein mag, das ist es für diese Vorlesung genau hier. Und dies schließt auch die Art von Entity-Exkursion ab, die wir hier für die Vorträge gemacht haben. Trotzdem hoffe ich, dass Sie das nützlich fanden und etwas Neues gelernt haben. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. 109. (zusätzliche Themen): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir uns Generation der Entitätswelt befassen. Was heißt das? Nun, im Grunde wollen wir unsere benutzerdefinierten Entitäten der Welterzeugung hinzufügen, damit sie insbesondere Biome spawnen. Jetzt ist das unglaublich einfach zu machen, wie echt. In unserem Gen-Paket erstellen wir nur eine neue Java-Klasse mit dem Mod-Entitäten-Formular. Genau hier werden wir eine öffentliche statische Lücke namens Add Entities phone machen . Je mehr ich tun werde, ist, dass ich tatsächlich die beiden Dinge kopieren werde , die wir brauchen, aber es ist unglaublich einfach, weil Sie durch Änderungen, die das Telefon hinzufügen, wirklich einfach sehen können . Lassen Sie mich nur noch einmal ein paar Biom-Selektoren brauchen . In diesem Fall werden wir nur die Waschbären dazu bringen , im Biom der Ebenen zu laichen und die Tiger im Dschungelbiom zu laichen. Sonst noch was hier? Die Spawn-Gruppe muss hier nur mit der tatsächlichen Gruppe der Entität übereinstimmen , das Gewicht bestimmt, wie oft sie spawnen. Wenn Sie dies erhöhen, werden sie öfter spawnen. Aber sei dir bewusst, dass andere Mobs dann weniger spawnen. Und minimale Gruppengröße, maximale Gruppengröße sollte ziemlich selbsterklärend sein. Nun, wo nennen wir das? Nun, in unserer modernen Welt und Jen, Matheklasse hier in der Generate-Modus World Gen-Methode, werden wir einfach mehr Entitäten auf Add, Entity, Spawn sagen. Das war's. Wir sind fertig. Das ist buchstäblich alles, was wir tun müssen. Jetzt werden die tatsächlichen Entitäten dem Spiel in die Handflächen hinzugefügt. Ich meine, lasst uns einfach sehen, ob es funktioniert. Ich bin tatsächlich bei ihm zu einem Flugzeug gegangen, um hier ein paar Waschbären zu finden, wie Sie sehen können, weil sie etwas leichter zu finden waren , wie die Tiger im Dschungel tatsächlich waren. Nun, ich meine, sehr spärlich. Es könnte wegen der großen Bäume und der Dichte der Bäume liegen, wo es für sie schwer zu laichen ist. Aber egal, wir werden uns tatsächlich noch eine Sache im Code ansehen . Es ist gerade jetzt aber das, was auch irgendwie wichtig ist oder IDE. Also noch eine Sache, die wir grundsätzlich sowohl für den Waschbär als auch für den Tiger oder die Spawn-Beschränkungen hinzufügen wollen . Obwohl ich dir die tatsächlich zeigen kann. Lasst uns das auch dem Tiger hinzufügen. Da gehst du. Die allgemeine Idee ist, warum sollten wir diese hinzufügen wollen? Nun, wenn wir uns diese Antwortbeschränkungen hier tatsächlich ansehen, können Sie sehen, dass es einige Orte gibt , die wir im Grunde sagen wollten: Hey, wo können diese Tiere oder diese Entitäten spawnt werden. Und Sie können sehen, dass die meisten von ihnen nur auf dem Boden sehen können, was eigentlich wichtig ist. Wenn du zum Beispiel einen hinzufügen würdest, sagen wir mal einen benutzerdefinierten Zombie zum Spiel. Und Sie würden diese Spawn-Beschränkung nicht direkt hier hinzufügen. Es könnte auch in der Luft spawnen und dann einfach runterfallen, wer taub ist und dann wäre es das. Es ist also ziemlich wichtig, dies hinzuzufügen. Sie können sehen, dass dies tatsächlich das Tier ist gültiges natürliches Spawn. Es gibt jedoch auch verschiedene, die Sie sehen würden. Husk Entität genannt Entität, feindliche Entität kann spawnen und dunkel. Es gibt also einige Dinge hier, die dringend empfohlen werden, die Spawn-Einschränkungsklasse hier in einer Netzmikrofoneinheit oder einige weitere Informationen dazu zu überprüfen die Spawn-Einschränkungsklasse hier in einer Netzmikrofoneinheit . Aber ansonsten ist das so ziemlich alles, was Sie für die Entitäten brauchen, die hier spawnen. Wie ich schon sagte, das Gewicht ist manchmal ein bisschen wackelig, muss man. Grundsätzlich möchten Sie, je nach Biom hier, dies vielleicht ziemlich hoch oder ziemlich niedrig machen. Spiel einfach wie immer mit den Zahlen herum. Aber sonst wäre das für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und die Herrscher des Neuen. Wir sehen uns in der nächsten Vorlesung. Ja. 110. (zusätzliche Themen) Benutzerdefinierte Traden für: Alles klar, willkommen zurück zum Stoffkurs für 118. In diesem Vortrag werden wir den Dorfbewohnern individuelle Trades hinzufügen . Dies ist wieder eines sehr interessanten Dinge, die tatsächlich viel einfacher sind , als Sie vielleicht erwarten. Bitte beachten Sie also, dass wir keine benutzerdefinierten Dorfbewohner hinzufügen werden. Dies ist nicht diese Vorlesung. Dies könnte in Zukunft jedoch keine Versprechen im Moment passieren , denn das ist definitiv etwas komplizierter als das, was wir jetzt tun werden. Wir werden im Grunde nur Sondergeschäfte zu bereits bestehenden Berufen hinzufügen . Und dafür gehen wir in unser Util-Paket, moderne Register und schreiben es hier auf, wir werden eine private Lücke machen, eine statische Lücke. Eigentlich benutzen sie statische Leere. Dies ist die Methode des Kundenhandels für das Register. Sie werden tatsächlich erstaunt sein, wie einfach diese gesamte Methode aussieht. Ich werde natürlich noch einmal kopiert, aber all dies steht Ihnen in der Vergangenheit oder einer Einzelperson genauso gut zur Verfügung. Und das war's. Dies sind zwei verschiedene Handelsangebote, die hinzugefügt werden. Rufen wir das sofort gleich hier an, bevor wir es vergessen. Und dann lasst uns durchgehen , was hier passiert. Wir haben diesen geraden Angebotshelfer, bei dem wir Angebote eines Dorfbewohners registrieren. Sie können die Angebote von Dorfbewohnern registrieren sehen. Und dann kannst du sehen, wenn du einen Beruf auswählst. Sie können also sehen, dass dies die Profis sind, die Sie nur in Vanille haben. Und wir werden den Landwirt hier wählen. Sie wählen die Ebene der die besonderen Dinge, die Sie hinzufügen werden, im Grunde nur Blade in sein sollten. Das ist also Stufe eins. Der normale Landwirt auf Stufe eins hat diese Einstellung. Sie können sehen, dass es Fabriken gibt und dann haben Sie diese geschweiften Klammern hier. Sie können mehrere Kompromisse oder ernsthafte Kompromisse hinzufügen, Sie können sehen, ich kann auch jemand anderen wie eine Rübensamen hinzufügen. Plötzlich, weißt du, vielleicht für sechs oder 24 oder so ähnlich. Und du könntest mehrere für das gleiche Level hinzufügen. Wenn Sie eine andere Ebene wünschen, müssen Sie das gesamte Buch nur noch einmal addieren. Insgesamt sollte dies jedoch ziemlich selbsterklärend sein. Der erste Artikelstapel hier ist genau das, was Sie bezahlen müssen. Sie müssen also nicht unbedingt Smaragde einsetzen, Sie könnten alles andere hineinstecken. Der zweite hier ist im Grunde das, was man daraus macht. Ich glaube an den Kompromiss oder Sie können auch hinzufügen, wenn Sie hier drei verschiedene Artikeltexte hinzufügen, die Sie sehen können, dann haben Sie tatsächlich zwei Artikel, mit denen Sie bezahlen müssen, die auch funktionieren. Dies ist natürlich etwas, das zum Beispiel in Channeling-Sachen implementiert wird, wo man eine Art nachgibt , und dann weiß ich es nicht, wie 60 Meilen oder ich bin bereit für und dann weiß ich es nicht, wie 60 Meilen oder ich bin bereit Smaragde und dann bekommst du ein verzaubertes Schwert. Das funktioniert auch. Sie können also einen dritten Elementstapel hinzufügen und das würde dann auch funktionieren. Die nächste Verwendung ist, wie oft Sie dies im Grunde machbar verwenden können , die Händlererfahrung sollte ziemlich selbsterklärend sein. So viel Erfahrung bekommt der Händler wenn Sie dieses Angebot tatsächlich handeln. Oder ein paar Beispiele, von denen ich glaube, dass Sie sich einen Blick darauf werfen können, ja, Sie können sich die aktuellen Angebote hier ansehen. Also die Erfahrung genau hier, Mal sehen. Dies ist also die eigentliche verdächtige Eintopffabrik. Das ist etwas anderes. Mal sehen, vielleicht finden wir hier jemand anderen. Ich bin mir nicht 100% sicher, wo die tatsächlichen normalen Handelsangebote sind, ob sie sind oder nicht, sie sind andere in diesem schaffen genau hier, diese Erfahrung. Mal sehen. Los geht's, okay, da sind sie. Es kann sehen, dass es etwas von der Erfahrung gibt. Da gehst du. Sie sind in diesem Jahr tatsächlich in der Klasse für Handelsangebote. Und das benutzen sie tatsächlich für Smaragd. Und Sie können hier Erfahrung zu zwei sehen. Das ist also eine ziemlich geringe Erfahrung. River hat eine Erfahrung, fünf Erfahrung und Erfahrung mit 6120 ist vielleicht ein bisschen zu hoch, aber man kann natürlich auch damit herumspielen. Der Preismultiplikator ist nur die Multiplikation des Preises. Und das ist so ziemlich alles, was es zur normalen Artikelsteuer gibt , hier können Sie die Zählung angeben und das ist so ziemlich alles, was es dazu gibt. Hier haben wir einen für den Tools-Mythos, wo es sechs Smaragde für das Orakel sind, kommen Paxil. Auf Stufe drei. Das ist buchstäblich alles, was es gibt zwei ist sehr empfehlenswert , einfach damit herumzuspielen, wie immer offen für Experimente. Werfen Sie einen Blick auf das Handelsangebot im Trade bietet Klassen, um einige Vanille-Beispiele zu sehen. Und um der Vollendung willen, lassen Sie uns sehen, ob es funktioniert. Oder Influencer zurück in Minecraft und ich habe bereits einige Dorfbewohner vorbereitet, sagen wir nein, aber hier können Sie sehen der Landwirt bereits die Rüben hier hat, also können wir einfach mit ihm handeln. Und du siehst, da gehst du. Das ist echt verdammt cool. Und dann tauschen wir hier einfach für ein paar Tools ein. Und lasst uns dort auch etwas Doppelpunkt besorgen. Und mal sehen, dass wir mit ihm handeln können bis er Stufe drei erreicht hat. Im Grunde holen sie sich ein paar Glocken, bringen ein bisschen davon in Gang. Vielleicht auch ein bisschen Eisen. Bringen Sie sie auch auf. Geh ein bisschen davon, hol dir mehr davon. Das ist ein bisschen mehr Kohle und dann sollten wir sie auf Stufe drei bringen können. Da ist es, da ist der Orakel-Kompaktboden, naja, los geht's. Das ist echt verdammt cool, echt verdammt genial. Und nun, so einfach ist es, wie Sie auch sehen können. Nun, fügen Sie den Dorfbewohnern im Grunde einige benutzerdefinierte Eigenschaften hinzu. Das war schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 111. (1.18.2) Fabric für 1.18.2: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir dazu unseren MOD oder ein Projekt auf 118 aktualisieren . Oder natürlich müssen wir Dinge in der Gradle-Eigenschaftsdatei ändern . Wir werden diese bestimmte Website nicht wirklich überprüfen. Was wir überprüfen werden, ist eigentlich die Fabric Net Develop-Website , da dies auch die neuesten Dinge hier hat. Kopiere das einfach und füge es im Grunde einfach hier ein. Und dann mache ich es einfach so , dass alles richtig formatiert ist. Aber es gibt keine Sorgen. Sie sind schon her. Also werden wir das alles einfach ändern. Und dann trifft natürlich noch eine Sache, die wir ändern möchten , zuerst die Mod-Version. Lassen Sie uns einige Begriffe wie 19 oder vielleicht sogar alle einführen Lass uns 21 machen. Ja, das ist erstaunlich. Dann möchten wir auch in der Build- oder Gradle-Datei die Looom-Version von zehn auf 11 ändern. Und nachdem wir dies geändert haben, können wir die Gradle-Änderungen laden. Das sollte so ziemlich alles sein, was wir brauchen. Lass das einfach wie immer durchlaufen, sei geduldig, bis das erledigt ist. Und los geht's, 22 Sekunden. kann es etwas länger dauern Abhängig von Ihrer Internetverbindung und ähnlichem kann es etwas länger dauern. Was wir auch für den Fall tun wollen, wird hier auf die neueste Version für Gecko Lippe aktualisiert . Das ist also genau hier, 035 nur für den Fall, denn obwohl die anderen Versionen funktionieren sollten, fühle ich mich einfach ein bisschen besser, wenn wir auch die neueste Version haben. Aber Sie können das tatsächlich tun, bevor Sie die Änderungen neu laden und dann alle gleichzeitig neu laden können . Lasst uns das einfach noch einmal durchlaufen. Und dann geht's los. Eigentlich nur sieben Sekunden. Das ist noch besser, aber das sollte so ziemlich alles sein, was wir hier tun müssen. Jetzt werden wir jedoch auf einige Probleme stoßen. Was sich geändert hat, sind die Weltgeneration und die Tags. Wenn wir also in die Mörsersteuerklasse gehen, können Sie alle Arten von Rot sehen, aber keine Sorge, das werden wir beheben. Was sich also geändert hat, ist, dass wir die TAC nicht mehr identifiziert haben. Dies wird jetzt Tabulatortaste genannt. Also werde ich einfach klebrig einsetzen und wir drücken Alt und Enter, um es zu ändern. Und was wir im Grunde tun wollen, ist, alle identifizierten Tags in diesen Tack zu ändern . Was ich tun werde, ist, dass ich Drücken von Control R wählen werde, und dann werden wir sie alle durch TAC-Schlüssel ersetzen. Lassen Sie uns die Importe auch hier loswerden , denn wir brauchen sie nicht mehr. Weil das hier jetzt tatsächlich Tag E dot o f. sein wird , und dann müssen wir den ersten Parameter, den Unterstrichenschlüssel des Registrierungsdatenblocks, übergeben . Und das müssen wir auch für diesen Lauf genau hier machen. Wir werden das Gleiche machen. Und dann werden wir es hier unten einfach für den Moment kopieren. Und dann werden wir das natürlich ändern. Und dann ändern wir das in den Artikelschlüssel. Sie vor, das Gleiche hier, Artikel behalten. Und dann sollte es uns gut gehen. Das sollte so ziemlich alles sein, was wir hier tun müssen. Das müssen wir jetzt natürlich auch in der Custom Dowsing Rod Artikelklasse gleich hier ändern . Es gibt also ein paar Möglichkeiten, wie wir das tun können. Es gibt einen, es gibt einen Weg, der sehr kompliziert ist und es nur erfordert, dass wir dies ändern. Und dann gibt es einen etwas komplizierteren Weg, wie wir den Blockstatus hier tatsächlich verwenden. Und ich werde den Blockstaat machen weil ich denke , dass das besser ist. Wir können also einfach sagen, dass der Blockpunkt in ist, und dann greift Mod Punktblöcke , die Rute oder nachweisbare Blöcke werfen. Natürlich ist das Problem hier, dass wir tatsächlich den tatsächlichen Block und den Blockstatus übergeben, was natürlich nicht ganz richtig ist. Was wir also tun müssen, ist, dass wir dies duplizieren werden, indem wir Control D drücken . Und das wird jetzt der Zustand unten sein. Und wir werden das aus einem Block ändern , dem Blockstatus. Und dann rufe einfach nicht den Get-Block hier an. Sie können sehen, dass wir jetzt den Zustand haben, wir jetzt tun können, anstatt all das abzukühlen, können wir den Zustand verwenden, um die Blöcke zu bekommen. Wir können also sagen, dass wir unten einen Staat sagen können , der blockiert wird , um den Block zu bekommen. Und dann haben wir hier den Zustand unten und gehen dann in den Blockzustand statt nur in den Block über. Das ist so ziemlich all das Zeug, das wir hier ändern müssen. Und das wird jetzt immer noch alle Dinge für die Tags erkennen. Der Paxil-Artikel sollte einfach funktionieren. Wir müssen hier eigentlich nichts tun, weil es tatsächlich einen Tag-Schlüssel erwartet. Wie du siehst, gehst du hin. Auch sehr wichtig, weil ich gerade als Quellen gesehen habe. Was wir tun werden, ist wieder zum Terminal zu gehen, Punktschrägstrich, Gradle w, Jen-Quellen einzulegen und dies auch durchlaufen zu lassen. Es kann ein oder zwei Minuten dauern , um diese Quellen zu erzeugen. Wieder einmal, abhängig von Ihrem PC und auch abhängig von Ihrer Internetverbindung. Oder sei einfach geduldig und warte bis du hier einen Build erfolgreich hast. Da gehst du genau eine Minute. Und jetzt sollten wir in der Lage sein wenn wir die blaue Linie genau hier bekommen, können wir Quellen auswählen und die zusammengeführte Namensquelle genau hier auswählen, sagen Sie Okay. Und nachdem dies neu geladen wurde, sollte es uns nun die richtige Klasse mit den richtigen Quellen zeigen . Aber das ist auch eine Sache, die wir tun sollten. Und jetzt wird der echte Doozy die Weltgeneration sein , weil sich das ziemlich stark verändert hat. Nun, was hat sich geändert, ist die Syntax wirklich? Was wir tun werden, ist, dass wir einfach in die moduskonfigurierte Feature-Klasse gehen die moduskonfigurierte Feature-Klasse und Sie können hier viel Rot sehen. Natürlich stehen Ihnen alle Änderungen, all das Zeug im GitHub-Repository zur Verfügung , im Einzelnen, äh, genauso gut. Ich empfehle dringend, das zu überprüfen da sich viele Dinge geändert haben. Und wir werden die Grundlagen durchgehen , wie ich das im Grunde ändern kann. Zunächst einmal haben wir jetzt einen Registrierungseintrag direkt hier anstatt nur eine konfigurierte Funktion. Und was wir tun werden, ist, dass dies jetzt sein wird, anstatt das hier in diesem Baum konfigurierte Feature aufzurufen . Was wir tun, ist, dass wir den konfigurierten und den Punkt löschen möchten , ersetze es durch ein Komma und lösche dann die Klammern hier. Anstatt die Register-Methode zu verwenden, verwenden wir die folgende Methode. Wir werden die konfigurierten Funktionen verwenden. Dies ist auf konfigurierte Funktionen, die Methode registrieren. Werde all das los und jetzt funktioniert alles noch. Wie Sie gesehen haben, müssen wir dies in den Registrierungseintrag für den Feature-Punkt-Trich-Punkt ändern dies in den Registrierungseintrag für den , der nur für den Feature-Baum konfiguriert ist. Und dann im Grunde genommen den Rest genauso normal weitergeben. Anstatt nun von der konfigurierten Funktion zur Konfiguration von Feature zum Platzieren von Feature zu wechseln, müssen wir jetzt tatsächlich ein Platz-Feature dazwischen platzieren. Was ich jetzt tun werde, ist, dass ich einfach die Platzfunktion und die konfigurierte Funktion kopieren werde. Jetzt mache ich das und behalte das bereits existierende Zeug hier. Sie können sehen, dass dies dem, was wir bereits gehört haben, sehr ähnlich ist, halb. Sie können also sehen, dass dies der zufällige zukünftige Konflikt ist. Das ist das Gleiche. Und dann sind hier die Wälder überlebt. Jetzt ist nur der eigentliche Scheck hier. Also die Wälder überleben jetzt passiert an diesem Ort Feature genau hier. Und man sieht, dass der Rest ziemlich genau derselbe ist. Es ist ein bisschen anders, aber insgesamt ist es nicht so verrückt. Ich empfehle noch einmal, genau wie in der normalen Weltgenschaft, Vorträge, die wir gemacht haben, schauen Sie sich zum Beispiel den Zufallsselektor oder das kurze Feature genau hier an, Mitte klicken Sie auf diese minimalistische Maustaste, klicken Sie hier. Und du kannst im Grunde all die Sachen sehen , die sie machen. Man sieht zum Beispiel, dass es Sumpf alt ist. Sie können das Ortsmerkmal des Sumpfes sehen, OK und so weiter und so weiter. Genau wie wir es in den ursprünglichen World-Gen-Vorträgen durchgemacht haben . Ich kann das nur wärmstens empfehlen. Wenn es um die rosa Rose geht, mache ich das Gleiche. Also werde ich das einfach kopieren und sehen, dass wir die Funktion „Konfigurieren“ verwenden , diese Registrierungsmethode hin und wieder, indem wir die Blume hier übergeben, die Blume hier übergeben, zufälliger Patch-Feature-Konflikt ist ziemlich genauso, weil wir das Gleiche hier unten benutzen . Was wir tatsächlich tun können, ist diese beiden Methoden zu löschen , weil wir sie nicht mehr verwenden werden. Und sehen Sie, dass wir die konfigurierte Feature-Register-Methode und den Create Patch genau hier verwenden die konfigurierte Feature-Register-Methode . Wir werden das einfach in der Schlange machen, also wird das auch gut. Dann kann die eigentliche Liste der Auren gleich bleiben. Und dann ist dieser am einfachsten zu ändern. Was wir tun, ist, das hier konfigurierte und die schließende und öffnende Klammer wieder loszuwerden . Wir möchten dies direkt hier in einen Registrierungseintrag ändern, sie vor und dann ist dieser tatsächlich von konfigurierten Funktionen , die sie vor registriert haben. Und jetzt gibt es noch eine Sache, die wir tun müssen , und das ist, diesen oder zukünftigen Konflikt zu nehmen und das erste Fragezeichen in diesen oder Feature-Konflikt zu ändern . Jetzt hat dieser Kurs tatsächlich die Probleme erledigt , die wir in einem Moment beheben werden. Das sind natürlich Probleme mit ersetzten Funktionen und ähnlichem und auch mit dem Baum. Wenn wir also in den Setzling Generator und C gehen, Dies ist auch keine gültige Rhetorik mehr hier nur um die eigentliche Methode zu löschen, den Mauszeiger über diese Implementierungsmethoden zu bewegen, dann ist alles hier geschrieben richtig. Und dann können wir einfach sagen, mod konfigurierte Funktionen, die der Kirschblütenbaum. Da gehst du. Und dann sollte sofort funktionieren. sind keine weiteren Änderungen erforderlich. Gehen wir zum MOD oder den Funktionen über. Jetzt siehst du hier viel Rot. Dies liegt nur daran, dass sich die eigentliche Klasse bewegt hat. Was wir also tun wollen, ist sie einfach noch einmal zu importieren. Klicken Sie also auf sie Alt und Enter, um dies zu importieren. Du kannst dort sehen, dass du auf den Platzierungsmodifikator gehst, mein Vater auch. Da gehst du. Das sollte so ziemlich alles sein, was wir hier tun müssen. Jetzt ist der Rest in den Marktplatz-Merkmalen. Das erste, was wirklich cool ist, ist, dass wir die Registrierungsschlüssel nicht mehr benötigen. Das wird also einfach hier rausholen. Diese Methoden brauchen wir auch nicht mehr. Wir können das tun, dass wir einfach die platzierte Feature-Datenregister-Methode verwenden die platzierte Feature-Datenregister-Methode , die wir tatsächlich bereits hier verwendet haben Bitte Feature Dot Register, also kopiere ich das einfach auf das neue Liste, genau hier, genau hier und genau hier und dann hier. Wieder einmal möchten wir die Platzierung auf dem tatsächlichen, für das tatsächlich konfigurierte Feature nicht aufrufen . Was wir tun wollen, ist, dass wir die konfigurierten Funktionen weitergeben möchten. Das sollte also ein Komma sein und dann sollte dies der Spawn sein. Und dann lasst uns das und das loswerden , und dies ist kein Platz-Feature über einen Registrierungseintrag eines Orts-Features, und dann sollte es völlig gut funktionieren. Sie können also sehen, dass sie vor völlig gut funktioniert haben. Fügen wir einfach den Registrierungseintrag hier auch für beide hinzu. Und dann noch einmal ändern, um die Breitenplatzierung und den Punkt zu führen . Da gehst du. müssen wir importieren. Sie haben sich gerade geändert. Da gehst du. Arbeitet schon. Und dann wird das Gleiche hier mit Placement gelöscht hier durch ein Komma ersetzt. Und dann wird es auch einfach wieder importiert. Und dann werden wir alle anderen Eingaben, die nicht mehr gültig sind, einfach los. Und vor, das ist buchstäblich so ziemlich alles, was wir tun müssen. Es ist fast ziemlich verrückt, aber es ist nicht so viel, wenn man wirklich darüber nachdenkt. Wie wenn man sich alles hier , ist es ziemlich einfach. Alles in Betracht gezogen. Noch ein paar Dinge in der Generation, aber das ist eigentlich auch ziemlich trivial. Es ist also nur die Art und Weise, wie Sie es im Grunde schreiben, die die zugrunde liegende Funktionalität geändert hat , in den Generationsklassen, die wir hier in den Schlüssel eingefügt haben, ziemlich gleich bleibt . Was wir jetzt tun können, ist, dass wir einfach die Blumengeneration nehmen können . Also wollen wir diesen Punkt, Punkt, Punkt, Punkt, und dann war's das. Also wollen wir das nur durch den Punkt ersetzen, all die verschiedenen Dinge hier bekommen. Das wird also der Oracle-Beschwerdepunkt sein, Dot get. Und dann genauso mit einem Baum hier. Dies ist die Kirschblüte platziert, aber hol ky.gov. Und das ist es, das so ziemlich alles sollte , was wir ändern müssen. Das könnte irgendwo wie ein paar andere Dinge sein. Aber ich glaube, dass es das ist. Was auch wirklich lustig ist, ist, dass die Tags und die Welt wie die großen Dinge sind, die sich ändern würden, auch welchem verdammten Grund der tatsächliche ist. Während ich im Util auf dem Titelbildschirm nicht weiß warum, aber der Titelbildschirm funktioniert nicht mehr richtig. Das ist, ich bin eigentlich, ich meine, ich würde nicht wütend sagen, aber ich bin ein bisschen wütend darüber weil ich diese Art von fast völlig benutzerdefinierter Klasse hatte , die ich ein bisschen aus Futter genommen habe und hat es ein bisschen neu gemacht, und dann hat es völlig gut funktioniert. Und jetzt aus irgendeinem Grund haben sie sich geändert, um den Titelbildschirm erneut zu ändern, und ich weiß nicht warum, aber es ist was es ist. Manchmal passieren diese Dinge jedoch. Wir müssen uns nur damit auseinandersetzen und du wirst mehr sehen. Ich meine, in nur einem Moment, in dem wir das tatsächlich machen, lassen Sie mich den Konflikt tatsächlich überprüfen. Und wir haben das ausgeschaltet. Ja, wir haben das ausgeschaltet, also schalten wir das einfach ein, damit wir tatsächlich sehen können , was der Unterschied für den Titelbildschirm ist. Sie werden sehen, dass das derzeit nicht wirklich funktioniert. Dies ist also auch einer der anderen Gründe, warum so etwas wie ein Konflikt um den Titelbildschirm tatsächlich wichtig ist. Lasst uns damit anfangen und sehen ob wir irgendwelche Fehler bekommen. Ich bin mir nicht hundertprozentig sicher, dass wir nichts kriegen sollten. Es mag so sein, als würden ein oder zwei Dinge fehlen, die vielleicht ein Import waren, aber es sieht aus, sieht im Moment irgendwie gut aus. Also mal sehen, lass es einfach durch diesen gehen, natürlich unseren normalen Pfeil, den wir immer bekommen, wenn wir mit Minecraft starten. Und ich glaube, dass es in Ordnung sein sollte. Es beginnt auf dem anderen Monitor. wir es einfach hier rüber. Und dann können wir auch sehen, dass das Problem hier natürlich ist, dass es hier keinen Splash-Titel gibt und dann auch links, unten links, die eigentliche Version und das Zeug ist auch fehlt. Ich weiß nicht, warum das der Fall ist. Sie haben es irgendwie im Backend auf ihrem Code geändert. Aber was auch immer der Fall sein mag, es ist 1, 1000. 2. Und was wir tun können, ist, dass wir einfach eine neue Welt erschaffen können und einfach eine neue Welt schaffen und tatsächlich alles sollte immer noch völlig gut funktionieren. Das geht also von den Entitäten bis zu den Block-Entitäten bis hin zum Nichtlaichen von Bäumen und alles dazwischen sollte immer noch völlig gut funktionieren. Das ist also echt cool und schauen wir es uns an. Der Spawn macht ziemlich genau. Ich meine, das ist großartig. Das ist auch ein wirklich interessanter Ort genau hier. Aber ja, die Bäume trauern immer noch, die eigentlichen Blumen laichen auch immer noch. Das wird echt cool. Und schauen wir uns einfach alle unsere Kurssachen an. Lasst uns das einfach hinter uns bringen und sehen, wie der Tiger immer noch arbeitet, da die Waschbären auch immer noch Varianz arbeiten. Also ist alles immer noch völlig in Ordnung. Und lasst uns tatsächlich auch die Dowsing Records testen. Das hat sich geändert. Und wir werden sehen, sobald wir etwas gefunden haben , das sie vor Eisenerz gefunden haben, also alles völlig in Ordnung, funktioniert immer noch. Mach dir keine Sorgen. Ja, so einfach ist es von 1820er Jahren zu aktualisieren. Es gibt einige Dinge , die man beachten muss, aber insgesamt ist es nicht so schlimm, oder? Offensichtlich werden alle zusätzlichen Themen, die danach kommen werden , alle für 182 sein. Es wird natürlich dringend empfohlen, jetzt darauf zu aktualisieren, Sie sollten wahrscheinlich an dieser Stelle fertig sein. Und dann können wir mit einigen zusätzlichen Themen in 118 bis fortfahren , aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 112. (1.18.2) Benutzerdefinierte Strukturen (Tutorial Beispiel Repo): Oder ich begrüße zurück beim Stoffpferd für 118. In diesem Vortrag werden wir Minecraft benutzerdefinierte Strukturen hinzufügen . Nun wird dies funktionieren, dieser Vortrag und die folgenden beiden Vorträge werden über Strukturen sein. In dieser ersten Vorlesung empfehle ich Ihnen dringend, dass Sie diese Vorlesung mit mir durchlaufen , denn nachdem wir Strukturen im Grunde genommen einmal implementiert haben , ist es unglaublich einfach, weitere Strukturen hinzuzufügen. Sie müssen nur einige JSON-Dateien kopieren und im Grunde Ihre Struktur erstellen, speichern, und dann war's das. Es ist sehr, sehr einfach. Aber dieser Vortrag ist, wie Sie wahrscheinlich feststellen können, ziemlich lang. Und der Grund dafür ist , dass wir dieses Repository genau hier durchgehen werden. Dies ist das strukturierte Tutorial-Mod-Repository durch ein telepathisches Grunzen. Es ist wahrscheinlich die Nummer eins für benutzerdefinierte Strukturen. Es ist unglaublich toll darin, ist wirklich gut. Es hat viele verschiedene Kommentare in jeder Datei. Und es ist nur, es macht das sehr, sehr einfach. Jetzt führt 1, 1000th 2 tatsächlich eine Möglichkeit ein, Strukturen zu erstellen , die buchstäblich keinen Code erfordern. Das ist wirklich verdammt großartig, aber wir werden auch eine bestimmte Struktur sehen , die tatsächlich mit Code existieren wird. Und wir werden das im Grunde durchmachen. Also werde ich erklären, wie ich dieses spezielle Repository durchgehe . Wir werden es in seiner Gesamtheit durchmachen. Wir werden beide Strukturen implementieren , die uns hier im Grunde genommen gegeben werden. Und so wie wir dies durchgehen, wenn wir hier im Quellordner gehen, öffnen wir den Code und die Ressourcen separat. Zunächst einmal wollen wir uns im Grunde all die verschiedenen Klassen ansehen , die wir haben. Wir werden sehen, dass es eine Mischung in der Klasse gibt, es gibt eine Strukturklasse, es gab die St-Strukturen und die Hauptklasse. Wir haben also vier verschiedene Klassen. Und Sie können insgesamt sehen, dass sie ziemlich lang sind, aber Sie können sehen, dass es hier auch viele verschiedene Kommentare gibt. In Ihrer Freizeit wärmstens zu empfehlen. Gehen Sie die Kommentare durch, sehen Sie, was jeder Teil bedeutet, denn einige Dinge sind sehr einfach, andere sind nicht so einfach. Ich kann das nur wärmstens empfehlen. So kann man den Nasdaq insgesamt verrückt sehen , wenn man darüber nachdenkt. Aber im Grunde fangen wir hier an. Also fangen wir mit dem Code an. Zuallererst wird dies der Struktur-Feature-Accessor sein . Ich kopiere das einfach und wir fangen sofort hier im Mischpaket an. Jetzt können Sie natürlich auch den gesamten Code und die JSON-Dateien im GitHub-Repository des Kurses und die Risiken abrufen die JSON-Dateien im GitHub-Repository des . Aber ich empfehle dringend, dies einmal durchzugehen im Grunde mit dem eigentlichen Tutorial-Code der telepathischen Grunts, dem Tutorial-GitHub-Repository zu arbeiten dem eigentlichen Tutorial-Code der telepathischen Grunts, , das ich dringend empfohlen habe oder was auch immer der Fall vielleicht im gemischten Paket sein, wir werden ein V-Struktur-Feature übermäßig machen oder mit Dienstag vor. Und wir sollten in der Lage sein, dies einfach einzufügen und dann alle wichtigen Dinge genau hier zu importieren. Der Generationsschritt auch. Da gehst du. Und das sollte sein, dass ich jetzt natürlich zum MC-Kurs Mixin Jason gehe und dies auch hier als Mixed hinzufüge. Das sollte so ziemlich genau das sein, was wir hier tun müssen. Und dann wechseln wir zurück zum Tutorial GitHub hier werden wir, wir werden den Tab schließen und dann gehen wir mit dem nächsten fort. Das werden die Himmelsstrukturen sein. Ich kopiere einfach alles einschließlich der Importe hier. Und das wird in das Weltpaket eingehen, in ein neues Paket namens „ruptures“. Und statt dort werden wir eine neue Klasse erstellen, die als Modul bezeichnet wird. Dies sind die Himmelsstrukturen. Da gehst du. Und dann fügen wir das von unterwegs ein. Wir müssen es dieses Jahr auf MC Core Smart, einen Logger, umstellen , und dann ist dies kein heruntergekommenes Haus, aber das ist der Himmelsbruch. Und dann hier oben müssen wir uns nur ändern. Und dann sollten hier keine Fehler mehr vorhanden sein. Also sollte alles funktionieren. Insgesamt, wie Sie sehen können, es zwar nach viel, sind es zwar nach viel, aber tatsächlich nur eine Menge verschiedener allgemeiner Sphäre. Und alles wird grundsätzlich in diesen Kommentaren erklärt, die ich empfehlen kann, wie gesagt, dies in Ihrer eigenen Zeit durchzugehen. Sie können beispielsweise sehen, dass diese hier die Y-Position bestimmt. Das sind solche Sachen platziert. Ich empfehle dringend, sich das anzusehen und nur sicherzustellen, dass Sie ein bisschen davon verstehen. Sie müssen hier nicht alles verstehen, besonders wenn Sie einfach nur eine normale Struktur spawnen wollen , dann wird das völlig in Ordnung sein. Wenn Sie etwas Umfangreicheres wie eine benutzerdefinierte Festung wünschen. Ich meine, an diesem Punkt wird es sehr, sehr schwierig sein , das tatsächlich zu tun. Das wird viel mehr Arbeit erfordern. Dies ist sehr nur für einige, sagen wir grundlegende bis Zwischenstrukturen. Wir haben jetzt diese Typen Strukturen Klasse. Also lasst uns das auch einfach schließen. Und dann können wir sehen, dass wir diese St-Strukturen hier haben müssen . Jetzt benenne ich dies in Mod-Strukturen um , denn das ist die Nomenklatur, mit der ich gehe. Und wir werden uns einfach mit modalen Strukturen beschäftigen. Da gehst du. Und ich füge das einfach ein, ändere das zurück in Mod-Ruptures und du solltest nicht, dass wir das wirklich richtig schreiben. Da gehst du. Importieren der Strukturfunktion hier, Retro Future Accessor. Das wird MSC Course Mod dieser Modell-ID sein. Dann ist dies wieder der Generationsschritt wie zuvor. Und dann sieht man noch einmal , dass das alles ist , was es dazu gibt. Wir müssen diese Methode jetzt nur hier in unserem MC-Kurs aufrufen , mehr Klasse und den Konstruktor genau hier. Modale Strukturen registrieren also keine Strukturmerkmale und das war's. Und dann gibt es auch das Letzte genau hier. Du kannst sehen, da gehst du, Nicole, das, und das ist fertig und fertig. Jetzt ist der gesamte Code tatsächlich bereits erstellt. Und jetzt passiert der Rest im Ordner Resources und nämlich im Datenordner. Hier ist eine Menge Sachen hier drin. Wir werden feststellen, dass es eigentlich nur eine Menge Dinge gibt, die Sie zuerst sehen können, ein Tag. werde ich in einem Moment erklären. Und dann haben wir den Datenordner für dieses Tutorial hier können Sie sehen, dass wir Strukturen haben, wir haben noch ein paar Tags und dann auch die Welt wieder. Dieses Tag ist eigentlich etwas, das wir ein bisschen ignorieren werden. Aber das sind die auf Ocean Explorer Karten. Dies ist etwas , das Sie hinzufügen können. Sie können sehen, dass microbe einige konfigurierte Struktur-Feature-Tags hat einige konfigurierte Struktur-Feature-Tags , die ein bestimmtes Verhalten hinzufügen können. Und in diesem Fall können Sie die Struktur tatsächlich den Kartographen, Dorfbewohnern, Ozeankarten und Denkmalkarten hinzufügen . Und im Grunde ist es das, was ein bestimmtes Tag macht. Das musst du nicht hinzufügen. Ich füge es nicht hinzu. Dies ist nur ein zusätzliches Feature hinzuzufügen, das wirklich cool sein könnte. Das ist also etwas, das wir im Grunde auch ziemlich ignorieren können . Wir werden dies auch schließen und jetzt haben wir nur den Datenordner für das Struktur-Tutorial. Dies ist natürlich die Modell-ID. Für uns wäre dies also der Data MC Kursordner. Und Sie können sehen, dass es hier einige Ordner gibt. Lasst uns also die ersten beiden öffnen , denn dieser wird tatsächlich umfangreicher sein. So falten sich die Strukturen weiter, haben nur die NVT-Daten für die zusätzlichen Strukturen. Die Idee ist also, dass du Strukturen in der Welt baust und dann bestimmte Blöcke benutzen kannst. Diese werden als Strukturblock bezeichnet, um dieses bestimmte Gebäude in NVT-Daten zu speichern . Und wir werden auch in dieser Vorlesung sehen, wie das geht, denn wir müssen auch einige dieser Dinge in diesen NVT-Dateien ändern . Und dann werden wir dies auch in der nächsten Vorlesung und der Vorlesung danach mit einer einzigen benutzerdefinierten Struktur sehen der nächsten Vorlesung und der Vorlesung . Und dann werden wir auch die Puzzle-Strukturen in der letzten Vorlesung dieser Art von drei Vortragsreihen für Strukturen sehen die Puzzle-Strukturen in der letzten Vorlesung dieser Art von . Aber vorerst werden wir nur diese Strukturen übernehmen, die ich wärmstens empfehle, noch einmal dieses Tutorial-Programm zu durchlaufen, ändern sich nicht zu sehr. Stellen Sie sicher, dass das alles funktioniert. Wenn du das alles getan hast und alles hier funktioniert, bekommst du das heruntergekommene Haus, du hast den Sky Fan. Das Hinzufügen einer neuen Struktur ist maximal fünf Minuten. Es ist sehr, sehr einfach. Und dann musste man es natürlich noch bauen. Aber der eigentliche Code oder die JSON-Dateien, die ihn dort ändern, sind sehr einfach. Lassen Sie das also einmal mit einem strukturierten Tutorial-Mod laufen. Dann können Sie Ihre eigenen Strukturen wirklich sehr empfehlenswert hinzufügen . Es ist einfach der beste Weg, es zu tun. All dies möchten wir grundsätzlich in VT-Dateien herunterladen. Jetzt habe ich eigentlich schon getan, was Sie tun können, ist, dass Sie es einfach öffnen und dann hier herunterladen können und sie sind weg. Dann hast du diese NVT-Datei. Sie können tatsächlich vier sehen, die ich schon ein paar Mal heruntergeladen habe . Man sieht also, dass das so ziemlich da ist. Laden Sie also einfach alle vier und Sie können sie natürlich auch im GitHub-Repository holen, das ich habe. Was wir tun werden, ist, dass wir in den Daten-Ordner-MC-Kurs gehen und ein neues Verzeichnis namens Structures erstellen . Und dann brauchen wir da drinnen die folgenden NVT-Dateien. Alle vier davon. Da gehst du. Also brauchen wir das heruntergekommene Haus, linke, rechte Seite, Golden und die Himmelsfans. Also diese vier, die wir in diesem Strukturordner benötigen, Datenordner in Ihrer Modell-ID hier. Und das wäre in Ordnung. Nachdem wir das getan haben, können wir das auch schließen. Und dann könntest du sehen, dass wir die Tags genau hier haben. Das wird also noch einmal unter Ihren Daten sein, Tags belgische Biome haben Struktur. Diese Tags sind sehr interessant, da sie tatsächlich bestimmen, in welchen Biomen Ihre benutzerdefinierte Struktur spawnen kann. Sehr einfach zu verstehen, was das tut und was wir tun werden, ist dass wir sie einfach beide öffnen werden. Und ich werde nur zuerst die eigentliche Struktur hier erstellen. In den Tags, die älter sind, werden wir unter Ihrer Model-ID ein neues Verzeichnis namens World Jen erstellen . Und dann wollen wir drinnen ein neues Verzeichnis namens Biom erstellen . Und dann werden wir da drinnen ein neues Verzeichnis namens hat Unterstrichenstruktur erstellen , um sicherzustellen, dass wir das richtig schreiben. Und dann brauchen wir drinnen zwei neue Dateien. Also werde ich eigentlich tun weil das sehr lange Namen sind. Ich kopiere diesen Namen genau hier. Und ich klicke einfach mit der rechten Maustaste auf eine neue Datei füge diesen Namen ein. Da gehst du. Und dann gehe ich zurück, füge den Inhalt dieses Punktes hier noch einmal ein, und wir werden uns das in einem Moment ansehen. Wir werden tatsächlich auch die andere Datei erstellen. Das sind also die angrenzenden einzigen Hausbiome. Dieses einzige G Jason Haus , für das wir eine Struktur hervorbringen werden, die wir erstellt haben, die Himmelsstruktur, für die wir den Code erstellt haben, und das Haus wird komplett nur mit JSON-Dateien spawnen , ist echt verdammt genial. Und ich bin eigentlich, ich bin eigentlich sehr, ich bin überrascht, wie einfach es tatsächlich ist, wenn man sieht, besonders in den nächsten Vorträgen, nachdem wir das einmal durchgemacht haben, bist du es einmal Ich werde sehen, wie einfach es ist , mehrere neue Strukturen hinzuzufügen Es ist wirklich einfach, wenn Sie dies durchlaufen haben, kann ich das nicht genug empfehlen, während es ein bisschen Zeit ist, es einzustellen hoch und alles zu erklären. Es wird sich sehr, sehr lohnen, oder? Dann haben wir die Himmelbiome. Biome für den Himmel-Fan, man kann sehen, dass Berge Meer und tiefe Ozeane sind. Sie können sehen, dass dies Tags sind, wie Sie sehen können. Und dann fügen wir dies auch dem Sumpf oder dem einzigen Haus hinzu, das Sie sehen können. Wir fügen es all dem Zeug hinzu , dass es ein Tiger, Dschungel, Wald und dann auch Wüsten, Ebenen und ein anderes ist Biome auch. Hier kannst du also einfach die Biome benutzen. In einem Wort ein Biome angeben, wird Ihre benutzerdefinierte Struktur einspawnen. Das ist also echt cool. Damit wir das schließen können, schließen wir das alles. Da gehst du. Und dann können wir noch einmal fortfahren. Wir können das schließen, schließen und schließen. Und jetzt sind wir wieder hier, dass wir die Strukturen gemacht haben und wir haben das Tag Strukturen hat und jetzt in die Welt geht. Und so kann ich das tatsächlich auf dieser Registerkarte öffnen und Sie können sehen, dass es hier vier weitere verschiedene Verzeichnisse gibt. Und wir können im Grunde vier von ihnen öffnen. Und du wirst sehen, lass uns tatsächlich die ersten drei öffnen, denn das wird ein besonderes sein. Und Sie können sehen, dass der erste gerade noch einmal JSON-Dateien darin enthält. Dies sind neu konfigurierte Strukturfunktionen. Was ich also tun werde, ist, dass ich den Namen hier kopiere , damit ich nichts vermisse, etwas zu tippen. Und das geht, und das ist unglaublich wichtig. Bitte beachten Sie hier. Jetzt geht dies in den World-Gen-Ordner, nicht in diesen World-Gen-Ordner. In Ihrem Data MC-Kurs oder Ihrem MOD-ID-Foto müssen Sie einen neuen World-Gen-Ordner erstellen. Sieh dir das an. Sieh mal. Dieser World-Gen-Ordner unterscheidet sich von diesem. Das hier ist statt der Steuermappe, Sie sehen können, los geht's. Wenn ich das öffne, kannst du sehen, dass es sich um verschiedene Ordner handelt. Das ist unglaublich wichtig. Bitte machen Sie nicht den Fehler, alles in Ihre Steuermappe zu legen . Bitte seien Sie sich dessen bewusst. Dies ist ein anderer Ordner. Ich halte das offen und du kannst MC-Kerne sehen, ländliche Jen, du gehst dorthin, alles geht rein und wir werden hier ein neues Verzeichnis haben , das als konfiguriert bezeichnet wird Unterstrichen-Struktur-Unterstrichen-Funktion. Lassen Sie uns tatsächlich auch den Rest erschaffen. Die andere ist die Unterstrichenliste des Prozessors. Und dann ziehen wir das in denselben Ordner, der die Kontrolle hat , um dies zu duplizieren. Und das ist der Unterstrich der Struktur. Und dann wird der letzte der Vorlagenunterstrichen-Pool sein . Da gehst du. sind die vier verschiedenen Verzeichnisse oder Ordner, die wir in den Welten benötigen und noch einmal folgen, um sicherzustellen, dass sich dies im richtigen Ordner befindet, Data MC-Kerne Welt. Jen, das sind nicht die Tag-Welten und voller sehr, sehr wichtig, dass Sie diese innere richtige Reihenfolge haben , oder? Nachdem Sie sichergestellt haben, dass dies der richtige Ordner ist, werden Sie hierher gehen und wir werden diese beiden Strahlen und Dateien öffnen. Also nochmal, ich werde einfach den Namen hier kopieren, es mir nur ein bisschen einfacher macht , damit ich das nicht tippen muss. Also was wir mit der rechten Maustaste auf neue Datei klicken, natürlich vor sie, und dann werden wir den Inhalt hier abrufen. Also lasst uns das einfach überschreiben. Da gehst du. Und dann gehen wir hier rein. Da ist es. Wir werden dieses Zeug in einem Moment ändern. Lassen Sie uns die andere benachbarte Datei sowie das angrenzende einzige Haus noch einmal erstellen . Und wir werden mit der rechten Maustaste auf neue Datei klicken, nur Haus einfügen. Und dann werden wir gehen und dann gehen wir her. Da gehst du. Wieder einmal, dessen Inhalt es über N gibt, haben wir es. Aber zuerst können Sie die Pfeile genau hier für die eigentlichen Kommentare ignorieren . Die werden gut gehen, also keine Sorgen da. Und jetzt können Sie sehen, dass diese bestimmte JSON-Datei im Grunde das Strukturmerkmal oder das Feature ist , das wir hinzufügen werden, die Konfiguration davon. Was heißt das? Nun, zuerst können Sie sehen, dass dies tatsächlich zurückgeht und auf Ihr Tag verweist, das wir genau hier erstellt haben. Sie können also sehen, dass dies die Struktur ist. Hat Struktur, ja. Und dann Codestruktur Sky Fan von Biomen , genau dieser Jason of Alright, hier müssen wir diese Modell-ID in unser Modell ändern. Sehr wichtig. Wir möchten es auch diese intelligente ID in unsere Mod-ID ändern. Und um absolut sicher zu gehen, dass alles funktioniert, möchten wir auch diese Modell-ID ändern. Überall dort, wo die Struktur-Tutorial-Modalität steht , wollen wir grundsätzlich zu unserer Modell-ID wechseln. Jetzt sollte dies ziemlich selbsterklärend sein. Wie gesagt, deutet dies auf diese spezielle JSON-Firewall hier hin, das Biome-Tag, das im Grunde dafür verantwortlich ist , dieses spezielle Strukturmerkmal oder dieses spezielle zu erzählen dieses spezielle Strukturmerkmal -Struktur kann nur in den Biomen hervorgebracht werden , die sich innerhalb dieses Tags befinden, sollte ziemlich selbsterklärend sein. Nichts Verrücktes ist da drin los. Sie beginnen Pool ist etwas, das wir in einem Moment hinzufügen werden. Dies wird in den Vorlagenpool-Ordner hinzugefügt. Und das werden wir in einem Moment sehen . Dies ist im Grunde die Tiefe, eines der zentralen Teile der Erzeugung davon. Und dann können wir sehen, dass wir hier auch einige Spawn-Überschreibungen haben , bei denen einige Volckers und Phantome genau hier spawnen könnten. Sie können also sehen, dass Mops in dieser Struktur Überstunden hervorbringen können . Das ist also etwas , das Sie auch mit sehr beraten können. Abgesehen davon ist das angrenzende einzige Haus sehr ähnlich. Sie können sehen, dass die Basisstruktur hier tatsächlich völlig anders ist. Dies ist eigentlich ein Dorf oder nicht 100% sicher, wo das sinnvoll ist. Sie können sehen, dass dies im Grunde einige zusätzliche Geländeprüfungen durchführt. Ich denke also, dass dies nur bedeutet, dass dies im Grunde ähnlich wie ein Dorf spawnt. Also wird es nach einem flachen Boden suchen , solche Sachen. Und es wird so einige Dinge tun. Ich bin mir nicht 100% sicher, aber das scheint der Fall zu sein. Jetzt noch einmal das Struktur-Tutorial, dies in unsere Modell-ID ändert. einmal MC-Kurs, MC-Kurs. Und das ist der heruntergekommene Haus-Sort-Pool. Und das deutet noch einmal auf die angrenzenden einzigen Biome hin. Also diese Datei genau hier, um ziemlich selbsterklärend zu sein, der Erwachsenenlärm, kann man sehen, dass es hier einen großartigen Kommentar gibt , was das im Grunde tut, wenn das wahre Land um ihn herum sein wird untere Seite der Struktur. Dies wird also nur die tatsächliche Struktur des Landes um seine eigentliche Struktur herum verändern die tatsächliche Struktur des . Und wenn es sich um Überschreibungen erstrecken kann, können wir auch einige Kreaturen hinzufügen, die Geräusche von Eltern hören , die auch hier drin spawnen könnten. Also los gehst du. Jetzt ist das konfigurierte Struktur-Feature fertig und dann können wir weitermachen, damit wir es können. , dieser, dieser und dieser. Und dann sehen wir die Prozessorliste. Jetzt ist dies eine spezielle Jason-Datei , die eigentlich nicht benötigt wird. Das ist etwas Gewohntes. Das ist der randomisierte Steinbruch und ist wirklich genial. Und ich erkläre auch , was das macht. Wir werden dies in unserem Prozess erstellen, unsere Liste ist hier älter und meinen Steinziegel. Und dann lass uns zurück hierher gehen und lass uns einfach all diese Verrücktheit hier reinbringen. Und das ist im Grunde genommen im allgemeinen Kern hier ist c Prozessliste wird einen Prozessor für jeden Block ausführen , den ich die NVT-Datei bearbeite. Wenn wir unsere benutzerdefinierten Strukturen erstellen. Dies wird natürlich alles in der NBA in einer MVT-Datei gespeichert. Und dann läuft im Grunde genommen für jeden Block, der diesem Prozessor platziert wird , durch ihn. Und du siehst, das ist echt cool. Sie können hier grundsätzlich bestimmte Regeln angeben. Und die Regel hier ist, dass, wenn wir zum Beispiel einen Steinziegel finden , eine Chance von 50% hat einen befallenen Steinziegel ersetzt zu werden. Das ist wirklich großartig und das ist echt cool. Sie können hier sehen, einige Steinsteine könnten auch durch Smaragd oder etwas Kobalt ersetzt werden . Tiefer Schiefer könnte durch einen tiefen staatlichen Restaurantkrieg ersetzt werden . Das ist wirklich cool und das könnte sein, Sie können Ihren benutzerdefinierten Strukturen im Grunde genommen etwas mehr Variabilität hinzufügen , mit diesen Regeln hier. Ich bin mir also nicht hundertprozentig sicher aller existierenden Regeln. Dies ist natürlich nur ein Beispiel, in dem Sie grundsätzlich einen Block in acht anderen Block ändern können . Aber es ist wirklich cool und das könnte einfach eine sehr coole Sache sein eine sehr coole Sache , um einige Ihrer Strukturen zu ergänzen. Dies ist jedoch noch einmal nicht notwendig. Dies ist völlig optional. Sie werden also sehen , dass dies in der Himmelsstruktur genau hier verwendet wird, aber nicht im Haus. Das Haus wird das eigentlich nicht benutzen. Das sage ich also. Dies muss nicht hinzugefügt werden, aber es ist immer noch nett. Und ich empfehle für die Zwecke dieser Vorlesung und des strukturierten Tutorials wärmstens, dies auch hinzuzufügen. Alles klar, damit wir das auch schließen können. Und dann sind wir in der Welt Transstruktur festgelegt. Aber wieder können wir diese beiden Jason-Akten öffnen und ich mache das Gleiche. Ich kopiere den Namen hier drüben und wir werden eine neue Datei erstellen. Da gehst du. Dann werden wir noch einmal hierher gehen und einfach den Inhalt holen , von dem Sie eigentlich nicht so lange sehen können. Und noch einmal werden wir zuerst beide Dateien erstellen und dann werden wir den Inhalt durchgehen und was diese tatsächlich bedeuten. verrückt sind sie nicht. Insgesamt ist jeder einzelne Teil hier nicht so kompliziert, alles berücksichtigt. Es ist nur so, dass es manchmal ein bisschen entmutigend sein kann, weil es so viel gibt, aber wenn man es sich tatsächlich anschaut, die einzelnen Teile oder nicht so verrückt. Also zuerst, natürlich noch einmal, die Struktur hier, das ist nicht 100% sicher, aber ich glaube, dies deutet auf das konfigurierte Struktur-Feature genau hier hin. Also dieses, wir können dies einfach in den MC-Kurs ändern und dann wird es auf diese JSON-Datei genau hier hinweisen. Und dann ist die Platzierung sehr wichtig. Die Platzierung hier, Sie möchten grundsätzlich sicherstellen, dass Ihr Salz genau hier, das Sie sehen können, uns einzigartig macht und sicherstellt , dass es zu keinem anderen Salz passt. Der Grund dafür liegt darin, dass sonst die tatsächlichen Strukturen am selben Ort platziert werden, was natürlich etwas ist, was Sie definitiv nicht tun möchten, denn das wäre einfach sehr seltsam. Manchmal passiert es immer noch, dass sie sich schneiden werden, aber das ist nur die Zufälligkeit. Es sollte normalerweise nicht passieren, besonders wenn Sie hier die Trennung machen. Der Abstand ist also der durchschnittliche Abstand auseinander und dies ist der Mindestabstand auseinander. Und dann muss das natürlich immer kleiner sein . Es ergibt Sinn, oder? Wenn die durchschnittliche Entfernung kleiner als der Mindestabstand ist kleiner als der Mindestabstand macht es überhaupt keinen Sinn. Also los geht's, vergewissern Sie sich einfach. Und ich glaube, dass dies definitiv debuggte Werte sein würde definitiv debuggte Werte sein denn 166 werden Sie sehen wenn wir tatsächlich in die Welt gehen, dass dies unglaublich nicht selten ist. Dies ist in dieser Mischung unglaublich üblich, unsere verschiedenen Strukturen wahnsinnig üblich. Denken Sie also daran, aber ich empfehle, diese Zahlen vorerst zu behalten. Gleiche hier mit dem Jason-Haus. Wir werden es ändern, das hier, MC-Kurs. Dann können wir auch sehen, dass dieses hier wieder auf diese Struktur hinweist. Was Sie nun feststellen werden, ist , dass dies natürlich eine Liste ist. Theoretisch könnten wir hier eine weitere Struktur hinzufügen. So können Sie auch theoretisch an der Struktur Skype und wo immer Sie hier die verschiedenen Tarife vergeben können. Wir können in diesem Kommentar sehen, dass es im Grunde versucht, eine dieser Strukturen auszuwählen. Wenn zwei oder mehr Strukturanalysten in einem Biom an einer Stelle spawnen können, wird basierend auf den Gewichten ein zufälliges ausgewählt. Dies ist die allgemeine Idee hier. Sie können also auch eine Liste mit vielen Strukturen erstellen und im Grunde eine davon an einem bestimmten Ort spawnen lassen. Das würde also auch funktionieren. Dies ist also die Struktur , die im Grunde auf das konfigurierte Strukturmerkmal, das Problem, das Strukturmerkmal hier hinweist, natürlich auf die Steuer genau hier hinweist und dann auch auf die Steuer hinweist zum Vorlagenpool, was das Letzte ist , was wir jetzt hinzufügen müssen. Also gehen wir gleich hier zum GitHub-Repository zurück , und wir werden das alles schließen und dann den Vorlagenpool öffnen , weil dies wie gesagt, etwas komplizierter ist . Ich hole den Sky Fan und dann auch das heruntergekommene Haus. Also werden wir es so schaffen. Wir kriegen zuerst den Sky Fan. Eigentlich wird das ein bisschen einfacher. Das ist also nur die Fangemeinde und die Datei des Himmels . Also machen wir eine neue Akte. Da gehst du. Und dann noch einmal, wenn Sie den Inhalt davon auch nicht so lange kopieren , wie Sie sehen können , ist dies in diesem Fall, was wir hier ändern wollen , die tatsächliche mehr ID. Ich glaube nicht, dass das absolut notwendig ist. Sie können auch sehen, dass dies tatsächlich auf den Side Pool genau hier zeigt. Es ergibt wirklich keinen Sinn weil dies nicht der Fall sein sollte. Dies sollte eigentlich sein eigener Name sein. Das sollte also Skype sein. Und ich glaube, dass dies für den tatsächlichen Namen hier eigentlich nicht so wichtig ist. Und dann kann man natürlich auch diesen sehen , MC-Kurs. Und Sie können diesen sehen, da Sie hier den endgültigen Pfad sehen können, mit der die Ressourcendatenstruktur ausgeführt werden soll. Dies wäre MC-Kursstrukturen laufen auf dem Haus links beachten Sie dies zeigt auf den Himmel und schwor Fan und VT. Dieser Name hier muss also denselben Namen haben wie dieser. Der Speicherort hier verweist in diesem Fall auf die MDT-Datei im Strukturordner innerhalb Ihres MC-Kursordners , da wir dies getan haben. Jetzt können Sie sehen , dass wir auch die Prozessoren randomisiert haben Stein, Ziegel. Es muss auch auf den MC-Kurs wechseln, oder? So genauso hier, MC-Kurs. Dies sucht dann der Prozessorliste, randomisiertem Steinziegel, und dann werden wir einen Steinstein für jeden der verschiedenen randomisieren , wird im Grunde genau diese Regel durchlaufen, die Ich habe es dir im Grunde vor ein paar Minuten gezeigt. Ja, und das ist so ziemlich der Sky Fan fertig. Was wir jetzt tun wollen, ist auch die Seite und der gelagerte Pool für das heruntergekommene Haus. Also erstellen wir hier einen neuen Ordner namens Run underscore down underscore house. Und dann werden wir dort zwei JSON-Dateien machen, werden wir dort zwei JSON-Dateien machen Fool- und Site-Pools gespeichert sind, oder klicken Sie mit der rechten Maustaste auf neue Datei gespeicherte Unterstrich-Pool-Dot-Json. Und dann wollen wir auch den Side Underscore Pool Dot Jason. Und lasst uns den Inhalt überschreiben. Dies ist der Speicherpool. Kopieren wir das einfach über das Ziel und kopieren wir dann nicht zuletzt den Seitennarren und dann haben wir alles kopiert. Dann brauchen wir im Grunde genommen, das ist derjenige, der Pool beginnt. Und vor allem noch einmal die neue Liste zu MC Kurs, der diesen auf MC-Kurs umwandelt. Und das ist alles was wir brauchen. Sie können also noch einmal heruntergekommenes Haus dafür sehen, dieses hier, dieses NVT to File. Und dann haben wir hier den Site-Pool. Das wird sehr interessant sein. Dies wird für den Puzzleblock und das Puzzle-Zeug benötigt. Also werden wir im Grunde sehen was das bedeutet und was das in einem Moment macht. Wir werden einfach alle Standorte hier wechseln. Geh MC-Kurs. Und die allgemeine Idee hier ist, dass Sie einen Lagerpool haben, der die linke Seite des Hauses sein wird. Und dann haben Sie einen Stichsägeblock auf beiden Seiten des Hauses und auf der linken und rechten Seite des Hauses. Und sie sind miteinander verbunden. Und dann nennt es im Grunde genommen den Site-Pool und spawnt dann entweder das rechte Haus, normal oder Gold. Das ist die allgemeine Idee. Aber wir werden das auch in der Puzzle-Vorlesung etwas detaillierter sehen , wo wir tatsächlich eine neue benutzerdefinierte Struktur mit unseren eigenen Puzzle-Blöcken ganz individuell gestalten benutzerdefinierte Struktur mit unseren eigenen Puzzle-Blöcken ganz individuell und so was auch. also keine Sorgen. Wir werden in Zukunft ein bisschen näher darauf eingehen . Aber jetzt ist eigentlich alles hier hinzugefügt worden und sollte funktionieren. Wenn das eine Sache, die nicht funktionieren sollte tatsächlich die linke und die rechte Seite innerhalb dieser MVT-Dateien im Stichsäge-Block ist, ist damit eine falsche Modell-ID verknüpft. Die Modell-ID ist also immer noch der Strukturunterstrich Tutorial und wir müssen dies tatsächlich ändern. Was nun schon laichen sollte, ist unser Sky Fan und die linke Seite des Hauses. Was wir also tun werden, ist, dass wir eine neue Welt erschaffen werden. Und wir werden tun, was wir tun werden, ist tatsächlich in Minecraft zu gehen, eine neue Welt zu schaffen. Und wenn ich dann sehe, dass der Sky Fan tatsächlich besaß, und dann auch das heruntergekommene Haus. Mal sehen, ob es funktioniert. Sehr wichtig zu beachten, dass Sie auf dieser Welt experimentelle Einstellungen nutzen werden. Nachdem Sie Ihre benutzerdefinierten Strukturen hinzugefügt haben, ist es genau das, was es ist. Du kannst das nicht so einfach loswerden. Es gibt, ich denke, es gibt einen Mod , den du vielleicht hinzufügen kannst oder im Grunde genommen um diesen als Mixed in zu bekommen, aber du musst dich einfach damit auseinandersetzen. Klicken Sie einfach auf Fortfahren und lassen Sie die Welt generieren. Und wenn du einer bereits existierenden Welt beitrittst , wird etwas sagen wie : Oh, es benutzt experimentelle Einstellungen. Sag einfach: Ja, ich weiß was ich mache. Betritt die Welt und es wird dir völlig gut gehen. Keine Sorge, dass sie es überhaupt sind. Ordnung, also befinden wir uns in Minecraft und normalerweise sollten die Strukturen ziemlich weit verbreitet sein. Da sind wir los. Eigentlich gibt es bereits 1,5 des Hauses. Also lass uns einfach hier runter gehen und du siehst , dass es nur ein halbes Haus ist, oder? Der eigentliche Stichsägeblock ist also genau hier platziert. Und dann sollte es eine andere Seite des Hauses geben, die wir in einem Moment reparieren werden. Aber du kannst hier auch ein paar sehr schöne und coole Beispiele für ein paar weitere Sachen sehen . Im Grunde genommen TreasureChest, wie Sie auch einige hinzufügen können. Daher empfehle ich dringend, dies auch zu überprüfen. Und dann lasst uns tatsächlich auch den Slash suchen Sie den MC-Kurscode nur Strukturen Chi Fan. Und dann sollten wir das auch finden können, sagen wir meine beiden Phi hoch. Jetzt ist es da. Okay, wir können sehen dass du gehst und wir sollten auch Steinbrüche sehen können , und dann sind einige von ihnen befallene Steinsteine und anstatt durch Smaragde ersetzt worden zu sein. Und dann ist hier etwas davon durch die verschiedenen ORS ersetzt worden . Wirklich cool alles funktioniert genau so, wie man es erwarten würde. Und jetzt müssen wir das Haus reparieren. Wie reparieren wir das Haus? Nun, was wir tun müssen, ist wir einen bestimmten Block bekommen müssen , und das wird der, dieser Block genau hier sein. Lassen Sie uns also einfach das geben, das ist der strukturelle Block. Da gehst du. Wir werden es einfach aufstellen und dann mit der rechten Maustaste darauf klicken. Und was wir tun müssen, ist, dass wir den Strukturnamen bekommen müssen. Es gibt einen MSC Course Doppelpunkt, und dies ist Run unterstrichen unterstrichen House, Unterstrich linke Unterstrich Seite. Ich glaube, das ist es. Lass uns laden und dann würdest du es tatsächlich laden. Lassen Sie uns gehen, wählen wir dieses Steuerelement C aus, um es zu kopieren, und klicken Sie dann erneut auf Laden, um die Struktur zu laden. Und Sie können sehen, dass diese Struktur genau hier einen Felsen in der Breite belastet . Das ist das Getränk so blockiert. Und Sie können sehen, dass dies das Strukturunterstrichen-Tutorial nimmt , ein heruntergekommenes Haus neben Pool. Deshalb funktioniert es nicht und wir wollen das Gleiche hier tun. Gehen wir einfach ein bisschen weiter weg. Und dann klicken wir mit der rechten Maustaste, kopieren Sie dies und fügen Sie es ein. Und dann machen wir eine rechte Seite, genau hier, rechts, laden. Es sollte auch geladen werden. Lasst uns da rauskommen. Los geht's, lade das rein. Und dann lasst uns das Gleiche noch einmal mit den goldenen Seiten machen. Also das wird ein Recht sein, ich unterstreibe golden. Das sind also alle unsere verschiedenen NVT-Dateien. Lasst uns das auch einladen. Da gehst du. Und jetzt haben wir all diese verschiedenen Blöcke. Wie du siehst, fangen wir mit dem linken Haus an. Was wir also brauchen, ist nötig dies natürlich auf MC-Kurs zu ändern. Also MC natürlich, jetzt wird es sich unsere Site-Pool-JSON-Datei ansehen. Was wir dann hier machen werden, ist die richtige Seite. Wir müssen das nicht unbedingt ändern, aber ich möchte dies auch ändern . Dies ist der Zielname. Ich wähle das noch einmal aus, kontrolliere a, kontrolliere C, um es zu kopieren. Und dann sagen wir „Fertig“. Jetzt dieser Name hier, der Zielname muss genau hier mit dem Namen übereinstimmen. Wenn ich also mit der rechten Maustaste darauf klicke, kannst du sehen, dass dies einen bestimmten Namen hat und die übereinstimmen müssen. Das ist eigentlich noch mal überprüfe das. Ja. Das ist Steve. Ich wusste dass ich ein W da drin hatte , weil ich mich etwas zu früh bewege. Und los geht's, das ist auch fertig. Was wir jetzt tun wollen, ist, dass wir diese MVT-Daten erneut speichern möchten. Wie machen wir das? Nun, wieder einmal, in unserem Strukturblock gehen wir in den abgesicherten Modus, und wir werden dies nur unter dem gleichen Namen speichern , sicher. Los geht's, fertig. Und dann das Gleiche hier, gehe zum Speichern Modus abgesichert. Und dann gehe ich hier in den abgesicherten Modus abgesichert. Wenn das also ein bisschen schnell ging, mach dir keine Sorgen, wie ich schon sagte, nächste Vorlesung und vor allem die Vorlesung danach, werden wir die Puzzle-Blöcke etwas ausführlicher besprechen , wenn es darum Erstellen Sie tatsächlich eine eigene benutzerdefinierte Struktur und wie Sie diese einfach speichern können. Wenn das also ein bisschen war, bin ich mir nicht 100% sicher, ob alles funktioniert. Du bist, mach dir darüber keine Sorgen. Das werden wir auch in den nächsten Vorträgen in nur ein bisschen sehen . Aber jetzt wurden diese verschiedenen Strukturen gespeichert, und jetzt müssen wir nur die NVT-Daten austauschen, die wir bereits haben, mit unseren gerade in VT-Daten gespeicherten Daten. Wechseln wir also einfach zur Intelligenz und sehen, wie das funktioniert. Ordnung, also finden wir einen Verdächtigen in der Intelligenz und möchten zum Run-Ordner zu Ihren Safes gehen. Und dann willst du in die Welt gehen, die du gerade geschaffen hast , wo du diese Strukturen tatsächlich hast. sollte es einen generierten Ordner Hier sollte es einen generierten Ordner mit genau diesen NVT-Daten geben. Aber genau das wollten wir. Wir werden das einfach nehmen und wir werden es einfach bis zu den Strukturen hier verlagern. Und wir sagen alles überschreiben. Und das war's. Jetzt wird das heruntergekommene Haus ordnungsgemäß funktionieren, denn jetzt wird es im Grunde nach dem richtigen Standortpool suchen weil wir das im linken Haus angeben mussten und es wird auch arbeite mit der richtigen rechten Seite. Das sollte also so ziemlich alles sein, was wir tun müssen. Lasst uns also eine neue Welt erschaffen und mal sehen, ob das Haus jetzt richtig spawnt. Alles klar, wir haben in Minecraft gefunden und du kannst sehen, da gehst du. Es gibt eigentlich zwei von ihnen. Wie gesagt, sie sind sehr, sehr 113. (1.18.2) Benutzerdefinierte Strukturen (ein Stück): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir eine benutzerdefinierte Struktur erstellen. Wir befinden uns bereits in Minecraft und ich habe hier bereits eine benutzerdefinierte Struktur erstellt. Sie können also entweder die NVT-Datei dafür herunterladen. Ich empfehle jedoch, dass Sie tatsächlich Ihre eigene benutzerdefinierte Struktur erstellen. Es muss nicht groß sein, es muss nicht kompliziert sein. Es muss definitiv unter 48 mal 48 liegen. Ich würde sagen, du kannst das Video einfach anhalten, deine eigene Struktur erstellen, und dann werden wir fortfahren. Hoffentlich haben Sie eine Struktur aufgebaut, die so ist, dass sie dieser oder was auch immer ähnlich sein kann. Aber im Grunde wollen wir jetzt den eigentlichen Strukturblock. Wenn du das nicht hast, kannst du dir einfach selbst geben. Gib einfach deinen eigenen Spieler hier, den Strukturblock, diesen hier. Du siehst, da gehst du. Dies ist der Strukturblock. Und was wir tun wollen, ist, dass wir dies ziemlich außerhalb der gesamten Struktur platzieren wollen. Also wollen wir es hier platzieren , damit alles drin wird, nun, im Grunde hat es sie später gerettet und dann wollen wir den anderen hier. Also wollen wir die in diesen beiden Ecken und dann die anderen beiden Blöcke sollten die anderen beiden Blöcke in die anderen beiden Ecken gehen. Aber sie bilden im Grunde einen, bilden einen Würfel um diesen herum. In diesem Fall werde ich das einfach hierher stellen. Da gehst du. Dann fangen wir hier an. Der Name der Struktur sollte MC Course Colon lauten, und ich nenne das das Teppichunterstrich-Haus. Und ich kopiere diesen Namen. Sobald Sie also steuern können, um alles auszuwählen, steuern Sie C, um es einzufügen. Und dann wechseln wir in den Eckmodus und sagen Fertig, ich gehe hierher, füge es in Kontroll-V-Corner-Modus ein. Hier drüben sitzen sie in Hormonen, die fertig sind. Und dann unser letzter hier, wir wollen tatsächlich in den abgesicherten Modus gehen, diesen einfügen und erkennen sagen, und dann sollte es die gesamte Struktur erkennen, damit Sie sehen und sicherstellen können, dass alles das du willst, befindet sich in den tatsächlichen Zeilen genau hier und alles sieht gut aus. Was wir jetzt tun können, ist, dass wir sicher sagen können. Jetzt wurde die Datei, die NVT-Datei, tatsächlich gespeichert. So einfach ist das für eine Weile, eine einzelne Stückstruktur, die in diesem Fall gespeichert werden muss, natürlich eine einzelne Stückstruktur, die in diesem Fall gespeichert werden muss, um sie zu bauen. Das ist natürlich eine ganz andere Sache. Wenn es um die Puzzle-Blöcke geht, werden wir das in der nächsten Vorlesung sehen. Aber im Moment wechseln wir zurück zu IntelliJ. Und wir werden uns ansehen, was wir im Grunde sehen können. In der Intelligenz gehen wir also in den R1-Ordner, speichert. Das war in der Welt der Strukturen , von der ich glaube, dass es das Kabinenhaus gibt und wir werden das einfach über die Kontrolle kopieren C. Und dann werde ich es in meine Strukturen einfügen. Folgen Sie genau hier. Treibhaus NVT sie vor, das ist jetzt meine Gewohnheit. Wie ist das, was ich gebaut habe? Und jetzt müssen wir natürlich ein paar Sachen hinzufügen , die wir zuvor gemacht haben. Was wir jetzt tun werden, ist, dass wir einfach den Ursprungsordner mit all den verschiedenen Jason Final CR öffnen , genau wie die Steuer. Und jetzt ist die Idee im Grunde genommen, dass, sobald Sie dies durchgemacht haben, der Grund ist, warum ich in der letzten Vorlesung gesagt habe, sobald Sie es durchgemacht haben, ist das Hinzufügen neuer Strukturen unglaublich einfach. Denn was wir tun werden, ist, dass wir das einzige JSON-Haus nehmen werden. Sie werden diese angrenzende einzige Struktur erstellen. In diesem Fall nehmen wir einfach jede dieser Dateien und duplizieren sie einfach. Also ziehen wir es in denselben Ordner , in dem es die Kontrolle über die Galle hält. Das wird es also duplizieren. Wir nennen diese Firma Underscore House. Und ich wähle hier den ganzen Namen aus und kontrolliere C, um ihn zu kopieren, weil wir diesen ein paar Mal mit den anderen JSON-Dateien verwenden werden . Und diese Biome machen eigentlich total Spaß, also werden wir die behalten. Dies ist natürlich wieder nur die JSON-Datei, die angibt, in welchen Biomen unsere benutzerdefinierte Struktur spawnen kann. Und er hat die Strukturfunktion konfiguriert. Wir werden das auch kopieren. Und dann noch einmal, kopiere einfach den Namen hier und füge ihn ein. Hier möchten wir diesen Namen ändern um Unterstriche House, Store Pool abzudecken. Das werden wir in nur einem Moment schaffen . Und dann ist dieses natürlich, das Halbbau-Carbon-Haus Jason, auf das es genau hier hinweist. Also vielleicht wollen wir, was wir eigentlich nicht wollen, keine Monster hier. Also lasst uns das einfach machen. Wir werden nur eine Kreatur spawnen lassen, vielleicht einen Papagei. Das sollte insgesamt in Ordnung sein, der Rest hier ist in Ordnung. Wir brauchen in diesem Fall keine Prozessorliste, ich möchte nicht, dass irgendetwas nach dem Zufallsprinzip ersetzt wird. könntest du natürlich immer noch tun. Wir haben das gesehen, die letzte Vorlesung, die Prozessliste war ziemlich cool, aber wir wollen das nicht. Und dann haben wir noch einmal ein strukturiertes Set auch das Unterstrich-Haus abdecken. Hier verweist es auf das Carbon Underscore House und sehr wichtig, das ist unglaublich wichtig, um die Platzierung hier im Salt einzigartig zu machen . Es muss einmalig sein. Und dann ändern wir auch den Abstand ein wenig. Wir werden nicht wieder zu verrücktes Jahr werden, 166 sind immer noch sehr, sehr klein. Dies sollte auf jeden Fall höher sein, wenn Sie tatsächlich etwas in das Spiel implementieren. Und natürlich haben Sie gesehen, wie die allgemeine Distanz auch für die vorherige Struktur war . In der anderen letzten Sache, die wir brauchen, sind die Template-Pools. Wir kriegen den gesamten heruntergekommenen Hausordner hier. Wir werden das umbenennen, um zu bewältigen und zu Hause. Und dann öffne ich sowohl den Site-Pool als auch den Store-Pool. Sie fangen hier an, Schüler, wir können tatsächlich löschen, das ist sogar noch besser. Also werden wir einfach ja machen, es löschen. Und dann der Lagerpool hier, um sicherzustellen, dass wir dieses Start-Pool-Haus hier haben . Und dann werden wir hier nur sagen statt des heruntergekommenen Hauses, das natürlich auf die NVT-Datei hinweist. Wir werden es auf die NVT-Akte des Common House verweisen. Das ist es. Jetzt wirst du sagen, dass es nicht alles sein kann. Das ist eigentlich alles, was wir brauchen. 1234 JSON-Dateien und unsere NVT-Dateidateien und insgesamt eine davon, je nachdem, wie kompliziert Ihr Build ist, können ziemlich lange dauern, um die NVT-Datei tatsächlich zu speichern, aber das ist ziemlich viel alles, was du tun musst. Jetzt können Sie hier natürlich noch ein paar Dinge ändern, direkt in diesen Jason-Dateien, ein paar verschiedene Elemente dort konfigurieren. Aber insgesamt ist das so ziemlich alles, was Sie brauchen. Vollendung willen werden wir also eine neue Welt erschaffen, reingehen und sehen, ob wir unser Carbon-Haus finden können. Sie sind sehr interessanterweise genau hier, ich habe tatsächlich einen Pfeil genau hier. 114. (1.18.2) Benutzerdefinierte Strukturen (Schilder): Okay, willkommen zurück zum Fabric-Kurs für 100 Tausend in dieser Vorlesung, wir werden eine Puzzle-Struktur erstellen. Du siehst, dass ich diesen Lex schon genau hier vorbereitet habe. Und lasst uns das tatsächlich von Grund auf schaffen . Also habe ich die Struktur schon hier gebaut. Und was wir tun werden, ist, dass wir 1,5 sparen. So ziemlich mit dem, mit der Trennung hier. Einmal NVT-Datei und dann der andere Teil in einer anderen NVT-Datei. Und was ich dann tun werde, ist, dass ich eine drei verschiedene Varianz mache. Einer mit Eisen genau hier, eins mit Smaragden und Diamanten mit einer Breite. In der Welt kann diese Speicherplattform spawnen, wenn Oracle auf der einen Seite kommt, und dann wird die andere Seite nach dem Zufallsprinzip bestimmt. also zuerst tun werden, Was wir also zuerst tun werden, ist, dass wir die strukturellen Blöcke brauchen. Also werden wir noch einmal tun, dass wir uns diesen Block einfach geben werden . Also sagen wir einfach Give und suchen dann genau hier nach dem Strukturblock. Wir werden auch den Puzzleblock brauchen . Also lasst uns das einfach sofort einem Selbst geben , damit wir es haben. Und was wir dann tun werden, ist, dass wir zuerst die Hauptstruktur hier reinbringen werden. Dieser Kurs sollte genau hier sein. Ich denke, das sollte in Ordnung sein. Und dann brauchen wir natürlich auch ganz oben, lasst uns sicherstellen, dass wir hoch genug sind. Das sollte in Ordnung sein. Und dann noch eins oder vor ihnen, das ist okay. Und dann musst du hier drüben unter einem sein. Also genau da. Und dann noch einmal, ging aber den ganzen Weg durch die gleiche Höhe hoch. Ich glaube, das sollte in Ordnung sein. Jetzt war das natürlich genau hier, los geht's. Das sollte okay sein. Aber wir werden es in nur einer Sekunde sehen, dann gehen wir hier rein, gehen in den Eckmodus, und das wird MC-Kurse-Doppelpunkt sein. Nennen wir das die Storage Underscore-Plattform. Da gehst du. Und ich werde es tun, es ist wie alles mit Control a, Control C um es zu kopieren, fertig. Und wir werden mit dieser Fernbedienung V gehen , um den Namen in Control V einzufügen , um den Neyman einzufügen und natürlich auch den Eckmodus zu ändern. Sehr wichtig. Und dann gehen wir genau hier in den abgesicherten Modus, fügen den Namen ein und dann sagen wir „Erkennen“. Und da sind wir los. Wir haben also die gesamte Struktur hier drin, also stimmt das genau. Was wir jetzt auch aufstellen wollen, ist der Stichsägeblock. Wie funktionieren Puzzle-Blöcke? Nun, die allgemeine Idee ist, dass der Pfeil zeigt. Im Grunde wollen wir also, dass zwei Pfeile immer aufeinander zeigen. Was wir also tun werden, ist, dass wir genau hier die Mitte finden werden. Lasst uns einfach das holen. Und dann zeigt der Pfeil in diese Richtung. Und dann wollen wir auch, dass der andere Stichsägeblock in die gleiche Richtung zeigt. Sie sehen also, dass sie sich bilden, sie bilden diese Art von Linie und die Pfeile zeigen aufeinander. So wird der andere platziert. Deshalb habe ich es bereits direkt nebeneinander gebaut . Machen wir das schnell richtig. Da gehst du. Sie können sehen, dass sich diese innerhalb der ersten Struktur befindet, oder? Dieser befindet sich also innerhalb dieser Struktur und die andere wird sich innerhalb der zweiten Struktur befinden, was wir in einer Minute tun werden. Was das bedeutet, ist, dass dieser hier einen Namen definiert hat. Dies wird also zum Beispiel nur eine MC-Kurs-Doppelpunkt-Unterstrichungsplattform sein . Wählen wir dies aus und kopieren Sie diesen Namen hier. Dies ist das einzige, was wir auf dem sekundären Stichsägeblock tun müssen . Auf dem primären Stichsäge-Block möchten wir dies unter den Zielnamen und dann den Zielpool setzen . Und das ist unglaublich wichtig und wir wollen MC-Kurs machen. Und dann werden das diese sein, sagen wir, Speicherunterstrichen-Plattform-Slash-Site-Unterstrichen-Pool . Dies zeigt also genau hier auf die angrenzende Datei in unseren Datenordnern. Wenn ich es einfach schnell öffne, kannst du das für das heruntergekommene Haus sehen, diesen Seitenpool genau hier. Das ist das. Natürlich haben wir die Speicherplattform noch nicht erstellt , aber das ist die Idee. Wir haben also diese Side Pool-JSON-Datei, die verschiedene Varianten dieser bestimmten Site definiert . Und tatsächlich lege die Ironie hier hin, aber das wird gut. Ich werde nur den Eisen-Spawn haben und dann wird das die Seitenplattform sein. Ich meine, es spielt keine Rolle, wie du es machst. Und ja, also im Grunde die Site-Plattform, dieser Name und dieser Name müssen übereinstimmen. Das ist die eine Sache. Und dann für die wichtigsten, also ist dies der primäre. Dies ist die Struktur , die spawnen wird , wenn Sie die Struktur, die Speicherplattform, diese hier verwenden , die die primäre sein wird, in der wir diesen Seitenpool haben. Das ist also die JSON-Datei. Dies ist nur der Name des anderen geborenen Puzzles. Und was wir hier auch definieren können ist, in was sich der Stichsägeblock verwandelt. Wir werden sie einfach löschen und sie in Luft verwandeln lassen. Theoretisch könnte man dies aber auch ändern. Was wir tun werden, ist, dass wir auch den zweiten hier bekommen , nur damit wir es haben. Das wäre also genau hier. Das sollte sein, ich denke nein, ich denke, das sollte in Ordnung sein. Dann sollten wir jemals alles drin haben. Und dann hier drüben werde ich auch den Strukturblock hier runter stellen. Und dann der andere Strukturblock, um deine zu schreiben , denke ich, das sollte es sein. Und das wird jetzt das sein, was wir das nennen werden, nicht die Lageplanform die Oracle-Einkommens-Unterstrich-Speicherunterstrichen-Plattform sein wird . Gehe, ich wähle es aus, drücke Control C, um es zu kopieren, Warner-Modus, steuere V zum Einfügen. Sie haben keinen Eckmodus gemacht. Und dann auch hier drüben sitzen sie im Modus und dann wird dieser natürlich wieder gespeichert, sie sitzen drin, sagen erkennen, und wir sollten das vor ihrer Zeit haben. Jetzt haben wir die orale Kalziumspeicherplattform , zu der auch dieser Stichsägeblock gehört. Was in diesem Fall sehr wichtig ist. Was wir also tun werden, ist, dass die Speicherplattform das gespeichert hätte. Wir nehmen die Oracle-Plattform, speichern dies, und dann werde ich dies ändern, um eine andere Art von Bestellung zu sein , und wir werden auch ein anderes Beispiel dafür speichern. Okay, also habe ich alles in Smaragde geändert, in diesem Fall werde ich jetzt den Namen ändern. Wir werden nur den Namen in Emerald-Speicherplattform ändern . Ich wähle alles aus. Drücken Sie STRG C, um es zu kopieren. Und wir werden hier alle Namen ändern. Das ist sehr wichtig. Es gibt also noch einmal das Steuerelement a2 gesammelt oder V steuern , um den neuen Namen einzufügen. Und das sollte hier ziemlich selbsterklärend sein. Ich mache das Gleiche hier und dann werden wir es noch einmal erkennen. Und du wirst sehen, da gehst du. Dies ist die Smaragd-Speicherplattform in diesem Fall. Stellen Sie sicher, dass Sie auch dann auswählen, wann Sie neue Blöcke anlegen, die Sie sind, nicht außerhalb der Grenzen liegen. Und dann werden wir das auch retten. Jetzt haben wir zwei verschiedene Varianten. Nur aus Gründen des Arguments werden wir eine andere Variante machen. Machen wir auch die Diamantvariante. Machen wir das einfach schnell. Ich habe es mit einem Diamanten gespürt. Lassen Sie uns also noch einmal die Namen hier ändern. Das wird also die Diamant-Speicherplattform sein. Steuern Sie erneut a, um es auszuwählen, steuern Sie C, um es zu kopieren. Und dann machen wir das Gleiche für alle verschiedenen Ecken genau hier. Da gehst du. Und dann auch das hier. Da gehst du. Und dann lasst uns noch einmal hierher gehen, um es zu erkennen. Und wir haben es so erfolgreich erkannt, und jetzt können wir es auch speichern. Da gehst du. Und jetzt haben wir drei verschiedene Varianten dieses Teils der Plattform und im Grunde eine Hauptplattform hier gespeichert verschiedene Varianten dieses Teils der . Diese sind im Grunde durch diesen Stichsägeblock genau hier verbunden . Aber das ist die ganze Idee hier. Wechseln wir zu bis zu einem DJ und sehen, was wir zuerst sehen können Natürlich müssen wir die NVT-Daten dafür bekommen , um den R1-Ordner in den Safes einzugeben. Auf die gleiche Weise speicherst du das im Grunde und das werden alle vier sein. Wir werden diese Speicherplattform und die drei verschiedenen dort benötigen . Kopieren wir sie in unsere Strukturen, folgen Sie genau hier. Und was wir dann noch einmal tun werden, wir werden nur noch einmal JSON-Dateien kopieren . Und du wirst das noch einmal sehen, selbst mit den Puzzle-Blöcken, es ist nicht so verrückt. Wir werden diese kopieren, die die Speicherunterstrichen-Plattform sein wird . Dies wird der Name der allgemeinen Struktur selbst sein allgemeinen Struktur selbst und der Mond wird es tun, sobald Sie ihn konfigurieren können. Strukturfunktion, auch Speicherplattform, aber wir müssen nur den Namen hier in Speicherplattform ändern . Und der Name der Biome hier war nur diese JSON-Datei genau hier, Plattform. Die gleiche Liste in der Struktur, gesetzt. Die Struktur, die zum konfigurierten Struktur-Feature zurückschreckt . Und dann wird dieser einfach so etwas sein. Also noch einmal, ein Salz und der Abstand, ich meine, wir können es so ziemlich einfach so behalten, wie es ist, nur ein bisschen ändern. Da gehst du. Und dann geht es zum Vorlagenhaus, den Template-Pools. Also werden wir hier tatsächlich das heruntergekommene Haus benutzen. Ich möchte dies auf die STORD-Plattform umstellen und wir haben die beiden Jason-Fancier, den Site-Pool und den Store-Pool. Beginnen wir hier mit dem historischen Pool, indem wir diesen auf unsere Speicherplattform, Star Pool Nummer eins und dann auf die Speicherplattform umstellen. Dies wird das wichtigste Zitat in der VT-Datei sein, auf das es verweist. Das wird also auf diese NVT-Datei genau hier hinweisen. Und dann wird der Seitenpool interessant sein. Dies wird natürlich wieder einmal sein, den Namen hier zu ändern und die Wunde ist, den Namen hier zu ändern und die Wunde ist anstatt auf heruntergekommenes Haus rechts zu zeigen, wir wollten tatsächlich auf den zum Beispiel Diamanten zeigen unterstreichen die Speicherplattform. Ja. Und dann wollen wir auch die anderen beiden, die wir hier löschen werden. Wir werden nur die Kommentare aus Gründen des Arguments löschen . Ich mache das und kopiere es dann einfach zweimal. Und wir können das Gewicht auch hier ändern. Nehmen wir zum Beispiel an, wir haben eine Chance von dreiunddreißig Prozent , einen von ihnen zu spawnen, sagen wir einfach. Und dann wird dieser nicht der richtige Zeitpunkt sein, aber der Artikel von Orange County unterstreicht die Speicherplattform und dann wird dies die Emerald Smaragd-Speicherplattform sein. Diese Speicherorte verweisen hier erneut auf die NVT-Dateien. Und es wird eine dieser NVT-Dateien benötigen und diese hier mit unterschiedlichen Gewichten generieren. Wenn wir die Gewichte aller drei haben, dann wird es so ziemlich eins über drei sein. Und wir könnten auch sagen, vielleicht weißt du was, eigentlich ist das doppelt so wahrscheinlich. Dies ist vielleicht ein Fünf-Jahr. Dann wird das 50% der Zeit steigen. Dies wird 20% der Zeit betragen. In diesen 10% der Zeit es im Grunde nur die Gewichte, wie es Spawns ist. Und das ist buchstäblich alles, was Sie tun müssen. Wir sind bereits damit fertig, das einzurichten. Wenn wir die JSON-Dateien bereits vorbereitet haben , nachdem Sie sie kopiert haben, sind Sie fertig, als wäre es sehr, sehr einfach. Und ja, natürlich, wenn Sie verrücktere Ideen haben, wenn Sie sogar mehrere, mehrere Puzzle-Blöcke und ähnliches erweitert haben, dann wird es natürlich immer komplizierter. Aber sagen wir einen guten Start. Und ich empfehle dringend, offen für Experimente zu sein, besonders und einfach Sachen auszuprobieren und zu sehen, was man sich im Grunde einfallen lässt. zum letzten Mal für die Strukturen Lassen Sie uns zum letzten Mal für die Strukturen in Minecraft gehen, eine neue Welt erschaffen und sehen, ob unsere neue Speicherplattform Spots oder eine Fantasie Minecraft und ich hier schon etwas ausspionieren, und dies ist wahrscheinlich das schlimmste Szenario. Man sieht, dass nur die Hälfte des Sports sehr interessant ist. Es wird also wahrscheinlich irgendwo einen Tippfehler geben, was sehr seltsam ist, aber wir werden eine Sekunde warten sehen. Lass uns einfach das Problem sehr witzig sein, denn ich habe gerade einmal die Namen des heruntergekommenen Hauses geändert. So können Sie im heruntergekommenen Haus sehen, dass ich die eigentlichen Dinge auf die Speicherplattform geändert habe. Und die Lagerplattform hat dieses Ding im heruntergekommenen Haus. Das war also nicht ganz das, was ich hier im Sinn hatte. Machen wir es einfach so. Lassen Sie uns das einfach kopieren. Und dann werden wir tun, dass dieser gerade gelöscht wird. Also werden wir den Namen davon abreißen, ist dieser Name zurück ins heruntergekommene Haus. Und dann wird dies die Lagerunterstrichenanlage sein . Aber jetzt sollte das gut funktionieren. Also lass uns sehen. Dies ist die Seite der Speicherplattform Start Pool Storage Platform vorerst, es sollte uns gut gehen. Das Problem hier war also , dass ich versehentlich die heruntergekommenen JSON-Dateien anstelle der Speicherplattform geändert habe. Jason-Akten können jederzeit passieren, also keine Sorgen. Aber er hat tatsächlich gesehen, dass man es manchmal nicht wirklich finden kann. Also müsstest du dann den Satz durchgehen. Du siehst, du kannst tatsächlich etwas im Terminal finden. War nichts hier. Es war nur ein Pfeil genau hier in den Akten, aber überhaupt keine Sorgen. wir nun einen Blick darauf, ob es sich um Spawns richtig handelt oder nicht. Ordnung, wenn Sie noch einmal in Microsoft antworten und mal sehen, weiß ich nicht einmal, ob das in diesem eigentlichen Biom spawnt. Lassen Sie uns also einfach die Speicherplattform MC Course lokalisieren und sehen, ob das funktioniert. N ist da, wo wir gehen. Endlich funktioniert es. Sie können also überhaupt keine Sorgen sehen. Es kann immer passieren, dass es irgendwo einen Tippfehler gibt. Aber insgesamt hast du gesehen, dass es kein verrücktes Jahr war. Es war sehr, sehr einfach zu reparieren. Mal sehen, ob ich nicht herumfliegen kann und tatsächlich eine andere dieser Speicherplattformen finde, vielleicht mit etwas anderem dann sieht Kalzium schon so aus, als wäre es auch ein Kalkül. Eigentlich. Und es ist in der Tat, lasst uns einfach zu einem sehr, sehr entfernten Ort kommen. Lass uns einfach gehen, ich weiß nicht, 20 K. Und mal sehen, ob ich einen anderen finden kann. Suchen wir einfach seine Schwertplattform und sehen, ob diese etwas anderes hat als das, was wir berechnen. Natürlich nicht, denn das wäre zu einfach. Lass uns das letzte Mal P1 sehen und mal sehen, vielleicht können wir etwas finden. Gehen wir zu negativ 20, K zu K, das ist okay. Und dann lasst uns den MC-Kurs in Richtung Plattform suchen noch einmal. Mal sehen, ob das funktionieren wird. Ich glaube, wir sind tatsächlich darunter. Da ist es. Und wir haben tatsächlich einen Unterschied gefunden. Hier können wir also auch den mit den Smaragden sehen. Also funktioniert alles so wie man es erwarten würde. Und echt verdammt genial. Also funktioniert alles gut und ja, so einfach ist es, einige Puzzle-Strukturen zu Minecraft hinzuzufügen. Aber das wäre so ziemlich genau das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Alle JSON-Dateien in den NVT-Schriften stehen Ihnen natürlich auch im GitHub-Repository zum Download bereit, einer Person genauso gut. Aber sonst sehe ich dich in der nächsten Vorlesung. 115. (1.18.2) Benutzerdefinierte 3D-Armor: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft ein benutzerdefiniertes 3D-Rüstungsmodell hinzufügen . Wir werden unsere Oracle-come-Rüstung in ein benutzerdefiniertes 3D-Rüstungsmodell verwandeln . Und dafür werden wir wieder eine Blockbank benutzen. Wie Sie sehen können, habe ich die Orakel-com-Rüstung bereits hier vorbereitet . Aber das ist eigentlich ziemlich einfach. Also werden wir noch einmal Echo Lippe benutzen. Und so funktioniert das, wenn Sie ein neues Geckos Live-Animationsmodell erstellen, können wir hier einfach eine Testrüstung machen. Was Sie dann tun können, ist, dass Sie unter Einstellungen für das Gecko Lip Modell Datei gehen können . Du kannst das einfach in Rüstung verwandeln und dann wird es den Minecraft-Spieler hier generieren. Du siehst, dass du das nicht anfasst. Im Grunde sollten diese verschiedenen Blöcke also nicht berührt werden. Dann alles andere, was du unter dem Rüstungskopf, dem Rüstungskörper und so weiter und so weiter hinzufügen unter dem Rüstungskopf, willst. Klicken Sie zum Beispiel auf diesen Würfel hinzufügen und dann können Sie Ihre benutzerdefinierte Rüstung direkt hier hinzufügen, Z, einfach vergrößern. Und aber du warst im Grunde wie deine Rüstung zu sehen. Du kannst es duplizieren, Control D. Los geht's. Und dann kannst du einfach Sachen hinzufügen und du kannst es natürlich so gestalten, wie du möchtest. Was ich nun gefunden habe, ist, dass es eigentlich ziemlich schwierig ist, die Rüstung herzustellen. Es ist nicht so einfach, es gut aussehen zu lassen. Das ist also, es sieht eigentlich nicht so gut aus, besonders wenn man zum Beispiel den Arm hier aus Gründen des Arguments nimmt den Arm hier aus Gründen des , wir können ihn drehen. Man kann tatsächlich sehen, ob ich es ein bisschen drehe, dass es hier tatsächlich fehlt und solche Sachen. Also ist es nicht, es ist nicht so interessant, es ist nicht so verrückt. Es ist nur ein Beispiel für ein Rüstungsteil. Und was Sie hier tun könnten, ist auch folgendes. Wenn Sie alles erstellt haben, können Sie diese Textur für den Moment einfach löschen. Und dann hast du vielleicht so etwas. Was Sie tun können, ist, dass Sie Strg a drücken können, und dann wird jedes Stück von dem anderen Ding ausgewählt , das Sie hier haben. Und wir können es dann tun, dass Sie daraus eine neue Textur machen können . Also behalten wir diese Textur einfach bei und dann kannst du sehen dass sie im Grunde alles auf dieser Textur ersetzt. Wenn du diese Textur speicherst, mache ich das einfach. Du hast hier schon ein paar Sachen vorbereitet. Schlimmer als das, was ich tun kann, ist, dass ich in der Lage sein werde, naja, so sieht es aus, oder? Wenn ich es einfach öffne, kannst du sehen, dass es dir im Grunde genommen eine These der Rüstung gibt eine These der Rüstung , in der du das tatsächlich zeichnen willst. Was wir also tun können, ist, dies hier direkt zur Textur hinzuzufügen . Wir werden es einfach öffnen. Was Sie dann tun können, ist, dass wir hier reingehen und dann einfach ein paar Sachen ändern können . Zum Beispiel glaube ich hier, dass es wie der Hinterkopf oder so ähnlich sein sollte . Wir können einfach alles darüber zeichnen und es dann speichern. Und wenn ich wieder in die Blockbank gehe, klicke mit der rechten Maustaste auf Aktualisieren, dann kannst du sehen, dass sich das geändert hat und am Hinterkopf siehst du dort, und ich werde diese Farbe haben, sie färben und die Textur erstellen ziemlich schwierig, als wäre es eigentlich nicht so einfach zu machen. Sie können auch auf die einzelnen Phasen klicken und sehen, wo das ist. Sie können also sehen, dass die Bar oben auf dem Kopf tatsächlich das ist. Dann kann ich sagen: Okay, das hier, glaube ich, oder irre mich nicht. Also kann ich sagen, oh, mach das blau und speichere es dann wieder auf. Noch einmal, geh hier rein, aktualisiere. Und du siehst jetzt oben auf dem Kopf blau. Das ist also definitiv eine Sache, die eine ganze Weile dauern wird . Ich möchte dir nur zeigen, wie du grundsätzlich hinzufügen kannst. Also habe ich die Textur bereits vorbereitet. Nehmen wir einfach die Orakel-Ergebnistextur genau hier. Und dann habe ich auch dieses Schwarz hier hinzugefügt , denn was ich tun wollte, ist auf dem Kopf und so, ich wollte diese nach unten bewegen , damit es ein bisschen einfacher sehe im Grunde die Unterscheidung zwischen meiner eigentlichen Rüstung und dem Spieler. Also kann ich das auch hier machen. Da gehst du. Und dann auch das andere Bein. Also im Grunde genommen alle Berühren Sie nicht einmal. Ich bin gerade hier zum schwarzen Rüstungsstück gegangen, nur damit ich dort grundsätzlich einen geringeren Kontrast haben kann, damit ich sehen kann, okay, während das, was mache ich hier? Dieses Block-Pinch-Modell wird natürlich auch zum Download verfügbar sein. Und was Sie dann tun, ist, dass Sie einfach zu Dateiexport, Export, Gecko-Lippenmodell gehen können. Dies wird ein Geo-Modell nicht wieder sein, ich habe das natürlich schon, also werden wir das einfach ersetzen. Und was Sie dann tun können, ist genau hier in den Stoff zu gehen und dann in einem intelligenten fortzufahren, lasst uns weitermachen und das tatsächlich hinzufügen. Was werden wir brauchen? Was wir brauchen werden drei verschiedene Dinge. Einer von ihnen ist ein benutzerdefiniertes Element. Im benutzerdefinierten Artikelpaket werden wir das Konto zum Rüstungsgegenstand bringen. Und das wird das tun. Wir werden das Mod-Rüstungselement erweitern, tatsächlich dass es die gleiche Funktionalität hat. Wir werden einen Konstruktor erstellen, der super übereinstimmt. Und dann werden wir es auch tun, was sehr wichtig ist, ist, dass es tatsächlich ein Problem im OriC-Ergebnis-Rüstungsgegenstand oder im mehr Rüstungsgegenstand gab. In dieser hat Rüstungsmethode genau hier, normalerweise habe ich die richtige Methode genau hier. Sie können sehen, dass wir im Grunde nur prüfen wir dies auf den Rüstungsgegenstand werfen, ob es sich hier tatsächlich um einen Rüstungsgegenstand handelt oder nicht Der Grund dafür ist anders, wenn Sie ein Elektron haben und der Rest der Rüstungen füllte sich, und einer von ihnen ist der mehr Rüstungsgegenstand, dann wird das Spiel tatsächlich abstürzen, weil man das Elektron nicht auf ein Rüstungsgegenstand werfen kann. Denken Sie also daran, aber das ist ziemlich alles, was wir hier tun müssen. Und für den Artikel der Calcium-Rüstung wollen wir eigentlich ein paar Dinge. Also wollten wir tatsächlich auch die von mir animierbaren Implemente hinzufügen . den Mauszeiger über diese Implementierungsmethoden, um die Register-Controller-Methode sowie die GET Factory-Methode zu implementieren. Sie können es aber auch tun, dass Sie zweimal die Umschalttaste drücken und sich den Gegenstand der Kartoffelrüstung anschauen können . Dies ist ein Beispiel. Das ist also auch großartig. Theoretisch kann man grundsätzlich einfach alles überschreiben. Der Kartoffel-Rüstungsgegenstand ist also so ziemlich das Beispiel von Gecko-Lippe hier. kannst du dir also auch mal ansehen. Wir werden einfach weitermachen. Also brauchen wir natürlich für die Ich animiere die ganze Animationsfabrik. Dies ist etwas , das wir auch bei den benutzerdefinierten Entitäten gesehen haben . Wir werden die Fabrik im Grunde hier zurückgeben. Und dann werden wir für das Prädikat so ziemlich genau das tun, was Sie theoretisch tun können , wie ich schon sagte, nehmen Sie buchstäblich diese ganze Methode hier, das Prädikat, denn das ist das was wir brauchen werden. Und wir können es einfach übernehmen und kopieren weil es so ziemlich immer dasselbe sein wird. Das einzige, was wir ändern werden , die Animation hier wird in diesem Fall einfach als untätig bezeichnet. Und dann wollen wir hier unten tatsächlich, dass das ein bisschen anders wird. Also gibt es nicht, ich bin Register. Das werden Mod-Items sein, Startkabinen, und dann werden wir einfach immer mehr Gegenstände durchgehen , Leggings beginnen. Wir werden uns dafür entscheiden, je mehr Gegenstände gerade gespielt werden, und dann nicht zuletzt starten Helme, desto mehr Gegenstände beginnen Helme sie vor. Und das sollte so ziemlich alles sein, was wir hier brauchen. Dann werden wir das Prädikat, das hier ziemlich selbsterklärend ist, natürlich hier in der Register-Methode verwenden . Okay, benennen wir das einfach in data um. Da gehst du. Das sollte es sein. Der gesamte Code steht Ihnen natürlich auch im GitHub-Repository zur Verfügung, eine Einzelperson, aber das sollte so ziemlich alles sein, was wir brauchen. Sie haben auch hier ein paar nette Kommentare, was sehr nützlich ist. Das ist auch ziemlich cool, gleich nachdem wir diesen Rüstungsgegenstand hinzugefügt haben, müssen wir jetzt alle vier Rüstungsteile dazu ändern, oder es kann zu einem Rüstungsgegenstand werden , das hier eigentlich sehr notwendig ist. Und dann können wir das im Modell und im Renderer verwenden. Diese werden also in mein Entitäts-Client-Paket direkt hier unter einem neuen Paket namens armor fließen. Sie könnten sie auch an eine beliebige Stelle im Artikel, Client oder was auch immer verschieben . Sie müssen also nicht hierher gehen, aber ich werde sie einfach dorthin bringen. Und es wird den Oracle-Come-Arm oder das Modell geben. Und der andere wird der Render des Oracle-Ergebnis-Renders sein , Sind sie her? Das Modal wird das animierte reale Modell des Typs oder eines Kalziumpanzerungsgegenstandes erweitern . Und dann werden wir einfach den Mauszeiger darüber bewegen , die Methoden implementieren. werden also die drei Methoden sein , die Identifikatoren zurückgeben. Jetzt habe ich das schon vorbereitet. Ich werde das einfach kopieren, sollte aber ziemlich selbsterklärend sein. Dies zeigt auf die Modell-JSON-Datei, die wir aus der Block Bench exportiert haben. Dies ist nur unsere Texturdatei und das sind die Animationen. Und ich habe die Animationen vorbereitet. Es ist nur fast eine leere Jason-Akte. Nicht ganz, aber es ist ziemlich selbsterklärend. Fügen wir einfach die JSON-Dateien hier hinzu. Die Animation ist natürlich auch verfügbar. Und das habe ich so ziemlich nur für all die verschiedenen Texturen benutzt , für all die verschiedenen Rüstungen. Wenn Ihnen keine bestimmten Animationen zugeordnet sind. Und du kannst einfach so ziemlich diese Animation machen , in der nichts drin ist. Und was wir dann tun werden, ist, dass wir die Rüstung GO nehmen und das auch hier rein kriegen. Natürlich das tatsächliche Modell in diesem Fall. Und dann sollte die Textur, die Sie sehen können , unter Texturen, Modellrüstung oder Kalzium-Rüstungsstruktur gehen . Es wird also einen neuen Ordner geben, Modelle und dann ein neues Verzeichnis namens armor. Und dann lasst uns auch die Textur überholen. Das wird genau hier sein. Da gehst du. Natürlich nur zu Testzwecken oder Einkommen Armor Texture. Das ist richtig. Da gehst du. Das sollte also in Ordnung sein. Und dann ist das Modell fertig. Wir können dann fortfahren, Sachen zum Renderer hinzuzufügen. Renderer wird den Geo-Renderer erneut erweitern den Geo-Renderer , vom Typ zähle sie bereits Rüstungselement. Wir werden einfach den Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super passt. Und wir wollen eigentlich nicht, dass hier und hier etwas reinkommt , wollen wir das neue Oracle Cloud Armor-Modell. Das ist ziemlich selbsterklärend. Und was wir dann tun werden, ist, dass wir das setzen wollen, also wollen wir den Kopfknochen, den Partyknochen usw. auf die Namen setzen . Und diese Namen werden genau hier die Namen sein. Wir können sehen, dass dies der Rüstungskopf ist. Wir setzen den Kopfknochen auf Rüstungskopf. Dies muss der Fall sein. Wir können uns auch noch einmal einen Blick auf den Kartoffel-Renderer werfen. Ich glaube, wenn ich mir das tatsächlich ansehe, der Renderer genau hier, sehen Sie, dass sie auch dasselbe tun. Das ist nur, du musst das nur einstellen. Und es war sehr interessant und ich weiß nicht warum das der Fall ist, aber du musst den linken Beinknochen auf die Rüstung rechtes Bein legen , den rechten Beinknochen zur Rüstung links. Als wüsste ich nicht warum das der Fall ist. Zumindest habe ich das gefunden. Ich weiß nicht, warum es hier umgeschaltet ist. Ich kann dir nicht sagen warum, aber es ist genau das, was ich gefunden habe. Es ist sehr einfach zu beheben. Das ist also kein Tippfehler, das ist eigentlich so, wie man es tun muss, zumindest war es für mich. Und nachdem Sie dies jetzt hinzugefügt haben, können wir dies tatsächlich in unserer MC-Kurs-Client-Klasse verwenden . Also wird es gleich hier sein. Wir wollen das tun, was wir natürlich in der nicht initialisierten Client-Methode tun wollen, wollen wir sagen, GU armor renderer.org, registrieren Rüstung rendern uns mit einem neuen oder dem Calcium-Renderer. Und dann wollen wir alle unsere Artikel, die wir haben, weitergeben . Noch einmal wollen wir die Stiefel und dann Mode-Elemente weitergeben . Nicht. Das werden die Leggings sein. Und dann haben wir Mod-Items, starte geteilt. Nein, das definitiv nicht. Es gibt Kirschblütenzeichen und dann haben wir mehr Gegenstände, dieses Element. Da gehst du. Und das sollte in Ordnung sein. Keine Fehler. Sollte genau hier Präsident sein. Und ich glaube, dass alles in Betracht gezogen wird, das so ziemlich alles sein sollte, was wir brauchen. Es gibt noch eine Sache , die ich nur hinzufügen möchte, nur damit wir es hier haben. Fügen wir es einfach auch hinzu. Wir können Gecko LEP dot initialize nennen. Ich bin mir nicht 100% sicher, ob dies notwendig ist oder nicht. Es ist jedoch wahnsinnig nur eine gute Idee , dies hinzuzufügen, damit wir es in unserer eigenen initialisierten Methode haben . Ich bin mir nicht 100% sicher, dass ich es getestet habe. Ob es den Mod im Grunde bricht oder nicht, tut es nicht, wenn du ihn nicht hinzufügst, lass uns das auch hinzufügen. Und ansonsten denke ich, dass dies so ziemlich alles sein sollte, was wir brauchen. Ich meine, wenn etwas nicht funktioniert, dann kann man das natürlich auch im Spiel sofort sehen. Lass uns einfach Minecraft betreten und sehen, ob es funktioniert. Räte in Minecraft. Und lass uns einfach die Rüstung hier holen und mal sehen, ob es funktioniert. Und in der Tat tut es das. Und natürlich erhalten wir immer noch unseren Kunden-Rüstungseffekt genau hier. Und es sieht verdammt toll aus. Das Ding funktioniert auch, wie ich schon sagte, und lässt die Rüstung wirklich, richtig cool aussehen. Das ist eine sehr schwierige Sache wie das Hinzufügen der ARMA, wie Sie gesehen haben, oder? Es sind nur ein paar Klassen, die die Dinge ein wenig verändern. Und dann hast du die Rüstung, das Exportieren, die JSON-Dateien und ähnliches. Es ist ziemlich einfach, aber dann sieht es wirklich cool aus, hat eine coole, coole Textur, ein cooles Modell, das definitiv sehr hart ist, aber ich meine, so einfach ist es füge die Rüstung zu Minecraft hinzu, oder? Das schließt diese Vorlesung genau hier ab. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. Ja. 116. (1.18.2) Benutzerdefinierte: Oder ich begrüße zurück beim Stoffpferd für 118. Und in diesem Vortrag werden wir Minecraft einen individuellen Dorfbewohner hinzufügen . Ja, das wird jetzt ein benutzerdefinierter Dorfbewohner sein. Anstatt bereits bestehenden Dorfbewohnern nur einige Trades hinzuzufügen , werden wir einen Kundendorfbewohner hinzufügen, aber das ist tatsächlich viel einfacher, als ich im MC-Kurspaket dachte. Wir machen ein neues Paket namens Dorfbewohner. Anstatt dort werden wir eine neue Java-Klasse namens Modus-Dorfbewohner erstellen . Jetzt wird dies sowohl den Punkt des Interesses als auch den Fachmann oder den Inhalt dieser Klasse enthalten als auch den Fachmann oder , die ich kopieren werde, aber ich werde alles erklären, während wir weitermachen. Und natürlich steht Ihnen in der GitHub Vergangenheit alles zur Verfügung oder im Einzelnen genauso gut. Sie können sehen, ob Sie einen Interessenpunkt und einen Dorfbewohner haben , die natürlich miteinander verwandt sind. Ein Punkt von Interesse ist, wo ein Dorfbewohner seinen Beruf vom Profi bekommt. Dann ist es natürlich nur der Profi. Werfen wir zunächst einen Blick auf den tatsächlichen Punkt von Interesse. Sie können sehen, was wir hier tun, indem Sie im Grunde einen Point-of-Stelltyp direkt unter der Modell-ID registrieren . Und unser Name sollte ziemlich selbsterklärend sein. Und Sie können sehen, was wir hier tun, ist, dass wir diesen Accessor nennen , weil wir sonst diese Schnittstelle nennen müssen, diese Mischung. Sonst wird es nicht funktionieren. Die allgemeine Idee ist jedoch, dass wir im Grunde genommen einen Punkt von Interesse mit dem Namen schaffen , den wir hier erhalten. Und dann ein Block eines bestimmten Staates. Obwohl die Idee ist, dass wenn ein Block, den wir hier einsetzen, wenn wir diese Register-Punkt-Methode nennen , das Orakel kommt Blaster und alle seine verschiedenen Zustände im Grunde sind wird als Point of Interest registriert. Das ist der Blastopore, das ist die Idee. Und nachdem wir den Punkt registriert haben, registrieren wir den Beruf. Und Sie können hier noch einmal mit einem gegebenen Namen und dann den altersspezifischen Point-of-Interest-Typ sehen einem gegebenen Namen und dann den altersspezifischen Point-of-Interest-Typ , den wir genau hier und bei der Schaffung des eigentlichen Berufs in den Explosionsbericht weitergeben genau hier und bei der Schaffung des eigentlichen Berufs in den Explosionsbericht . Das ist also der Name, dies ist der Typ „Point of Interest “ jeweils zwei unveränderliche Sätze hier. Wir können tatsächlich tun, wenn wir die mittlere Maus machen können, hier auf die professionelle Seite klicken, und wir sollten das sehen können. Dies sind also die Sammlergegenstände und die sekundären Baustellen. Ich habe sie gerade nur dazu gebracht , unveränderliche Sets zu leeren , weil das vorerst einfacher wird. Sie können sich immer sowohl das Dorf oder den Beruf als auch andere, die benutzt werden, ansehen . Also können wir uns das hier genau ansehen. Ich denke die Registermethode, zum Beispiel der Landwirt genau hier. Sie können sehen, dass es Gras hat, Unkrautsamen, Rote-Bete-Sitze ausgezeichnet, kann tatsächlich aufnehmen. Und dann gibt es sozusagen auch ein Ackerland als Arbeitsplatz. Aber wir werden es einfach so behalten. Ich möchte nicht, dass das zu kompliziert ist. Sie haben immer alle Vanille-Kurse zur Verfügung , um einen Blick darauf zu werfen, wie diese funktionieren. Und das sollte hoffentlich das sein , was Sie brauchen werden. Also dann diese Setup-Boys Methode genau hier, wir müssen das Setup für jeden Punkt aufrufen. Wenn Sie also einen anderen Punkt haben, fügen Sie diesen auch hinzu. Füge deine Umfrage hier hinzu und dann wird es gut. Und das muss in Ihrem MC-Kurs kalt sein , wenn Sie initialisiert werden, nennen wir es einfach hier. Dies werden die MOD-Dorfbewohner , die Jungs vor ihnen eingerichtet haben, und das sollte so ziemlich der gesamte Code sein, den wir brauchen. Jetzt werden wir tatsächlich zwei weitere Dinge tun. Eine weitere Sache im Code, oder wir werden es tun, ist, dass wir tatsächlich oder mindestens ein oder zwei verschiedene, verschiedene Trades hinzufügen werden, weil die Eigenschaften wir tatsächlich auf die gleiche Weise hinzufügen dass wir diese Eigenschaften mit etwas wie Duplikaten hinzugefügt haben. Und anstatt uns für ein Dorf oder Berufe zu entscheiden, entscheiden wir uns für Motordorfbewohner, keinen Explosionsmeister. Und dann füge einfach eins hinzu. Und sagen wir einfach so etwas, wie neun Smaragde. Und dann fügen wir einfach eine zweite hinzu. Vielleicht kann das Konto Axt wählen. Da gehst du. Und dann füge einfach eine dritte hinzu, die Stufe zwei sein wird. Und das wird vielleicht die Schaufel oder eine andere Menge Luft sein, die du gehst das werden fünf sein, das ist in Ordnung. So fügen Sie dann auch die verschiedenen Handelsangebote hinzu. Es mag einen anderen Weg geben, dies genau hier zu tun, aber ich fand, dass dies absolut, völlig in Ordnung ist. Es gibt auch Arbeiten und dann gibt es eine Sache, die sehr seltsam ist und das wird die Textur oder die Texturen sein. Gehen wir einfach zu den externen Bibliotheken bis genau hier, das Projekt hat den Namen usw. mit dem Assets-Ordner Minecraft-Texturen zusammengeführt . Dies sollte unter der Entität sein, weil sie eine Entität nicht irren und dann bis hin zu einem Dorfbewohner hier und dann zu den Berufen. Also haben wir die Berufe genau hier und den Dorfbewohner genau hier. Also brauchen wir tatsächlich den Dorfbewohner sowie unseren benutzerdefinierten Beruf. Jetzt habe ich gerade den Rüstungsprofi hier genommen, das Bild und es einfach blau gemacht, weil ich ein individuelles Dorfbewohner-Outfit mache , ist eigentlich sehr , sehr, ich meine, es ist nicht so einfach, oder? Es ist also wie, es ist ziemlich viel. Was wir also tun werden, ist, dass wir das überschreiben werden. Die Struktur wird also unter dem EMC Kursnamespace liegen . Das wird also sein, es wird unter Assets MC grobe Texturen sein. Wir haben die Entität schon hier, und dann brauchen wir den Dorfbewohner genau hier. Ein Dorfbewohner geht und dann brauchen wir auch den Beruf. Ich kopiere es tatsächlich hier drüben, damit du sehen kannst , dass wir den Beruf genau hier haben, den Explosionsmeister sowie den Dorfbewohner. Ich weiß nicht, warum wir das Dorf brauchen oder zumindest in meinen Tests brauchte ich den Dorfbewohner, ein PNG. Ich weiß nicht warum das der Fall ist, aber es ist was es ist. Und dann haben wir die Explosionsmasse genau hier, wie Sie sehen können, im Grunde genommen blau gemacht, weil ich einen ganz individuellen Look für einen Dorfbewohner mache. Eigentlich ziemlich schwer. Es ähnelt also der benutzerdefinierten 3D-Rüstung. Also ja, das ist so ziemlich eine Sache. Und dann brauchen wir das Letzte, was wir brauchen , die Übersetzung für den Namen des Berufs. Und das wird in die ENR-Schraube uns angrenzende Akte eingehen . Und das wird das Folgende sein. Also werden wir gleich hier gehen. Und es wird Entity Micro Village oder ein Explosionsmeister sein. Und da gehst du. Der Blastmeister wird das sein, was es sagt, wenn wir das Inventar öffnen , um mit dem Dorfbewohner zu handeln. Und das wird es so ziemlich sein. Jetzt sind das die Schritte. Wieder einmal steht Ihnen natürlich alles in der GitHub-Haltung im Einzelnen zur Verfügung. Und das ist so ziemlich alles, was Sie für einen individuellen Dorfbewohner benötigen. Mal sehen, ob es funktioniert oder ob es uns in Minecraft findet. Lasst uns also einem Dorfbewohner antworten und den Blaster ablegen. Und da gehst du, es funktioniert total gut. Wir haben jetzt einen Explosionsmeister, der genau die Eigenschaften handelt, die wir hier im Grunde genommen gegeben haben. Also lasst uns einfach ein paar Smaragde holen und lassen Sie uns sie einfach auf die nächste Stufe bringen. Mal sehen, sobald das Level auf den buchstäblichen Ebenen gestiegen ist , werden wir es sehen, und los geht's. Und jetzt, wie Sie es sehen können, können wir jetzt auch die Schaufel für diese Stufe zwei bekommen . Und es ist auch ein Lehrling. Das ist echt verdammt genial. Und wie einfach ist es eigentlich, Minecraft einen individuellen Dorfbewohner hinzuzufügen . Und dann wäre das so ziemlich genau das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wie immer ist der gesamte Code im GitHub-Repository verfügbar, eine Einzelperson genauso gut. Und wir sehen uns in der nächsten Vorlesung. 117. (1.18.2) Baby: Willkommen zurück beim Stoffpferd für 118. Und in diesem Vortrag werden wir unserem Tiger eine benutzerdefinierte Baby-Entitäten hinzufügen . Das ist eigentlich viel einfacher, als ich dachte, dass ich Vater werde, das war viel komplizierter, aber es ist eigentlich nicht die einzige Notwendigkeit, Dinge sowohl in der Entität als auch im Renderer zu ändern . Und wir werden in der Entität selbst anfangen, was wir tatsächlich auf ein paar Dinge eingehen. Das erste, was die Tierfleischziele sein werden. Was wir tun werden, ist, dass wir einfach den Track oder das Ziel genau hier duplizieren. Und wir werden das das nennen, das ist das Tierkameradenziel genau hier und dann auch in einem. D wird hier der Trans sein und Priorität drei sollte in Ordnung sein. Normalerweise wird das in Ordnung sein. Dies ist sehr wichtig, dass wir dies hinzufügen , und dann wollten wir auch die Lese-Item-Methode genau hier hinzufügen . Und dann können wir hier grundsätzlich filtern ob ein bestimmter Gegenstand, mit dem wir mit der rechten Maustaste auf diese Entität klicken, es so schaffen wird , dass wir die Zucht sozusagen sortieren. Und für unseren Fall werden wir in diesem Fall Gegenstände dunkles Rindfleisch verwenden , wenn wir mit der rechten Maustaste auf den Tiger mit Rindfleisch klicken, dann kommt es im Grunde in den Meeting-Modus. Das ist die allgemeine Idee, die Sie haben. Und dann ist natürlich das Letzte, was hier ist das Create Child. Aber das erfordert, dass wir Mod-Entitäten machen, nicht Tigerdot erstellen und dann den Weltparameter hier übergeben, und das war's. Theoretisch würden die Babys bereits hervorgebracht. Sie hätten jedoch die gleiche Größe wie der Tiger, was natürlich nicht ganz das ist, was Sie im Sinn hatten, denke ich. Und dafür gehen wir in den Renderer ein und wir werden einfach die Bemühungen zum Render-Typ überschreiben. Das wird also genau hier sein . Und was wir tun wollen, ist, dass wir das einfach in Ruhe halten wollen. Wir werden das nur ein bisschen ändern , da es ein bisschen besser liest. Wir wollen nur eine wenn Aussage für animierbaren Punkt Baby ist und dann etwas anderes tun. Wir werden was anderes machen. Was wir tun wollen, ist, dass wir nur den Stapel nehmen und skalieren wollten . Das wird also das Ausmaß des Tieres sein. 111 wird natürlich den gleichen Maßstab haben wie zuvor. Und dann, wenn wir das hier einfach weitergeben, wollen wir zum Beispiel diesen Kernel 0.4 machen, damit wir das Baby etwa 40% der Größe des normalen Erwachsenen machen . Und das war's. Das ist alles, was wir brauchen. Wieder einmal sehr leicht machbar, veränderbar. Sie können diesen einfach hier für einen anderen Artikel ändern . Wenn du kein Rindfleisch willst, wenn du etwas anderes willst, gibt es ein paar Dinge , die du vielleicht tun möchtest. Sie können darüber nachdenken, aber wenn Sie der rechten Maustaste auf den Tiger mit einem mit dem Rindfleisch klicken, möchten Sie vielleicht einen weiteren Check und Ihre Interact-Mob-Methode machen einen weiteren Check und Ihre Interact-Mob-Methode , damit Sie nicht anfangen, es zu schreiben. Und dann kann es auch sein , dass du kein Baby schreiben kannst , weil wir im Moment tatsächlich ein Baby schreiben können. Das sollten Dinge sein, die ziemlich selbsterklärend sind. An dieser Stelle bin ich wirklich sehr zuversichtlich , dass Sie dies ganz einfach alleine tun können. Aber was auch immer der Fall sein mag, das ist das Kind. Mal sehen, ob wir Minecraft Kinder oder Fossilien in Minecraft hinzugefügt haben . Also lass uns einfach zu Tigern kommen und lass uns etwas Rindfleisch holen. Und mal sehen, mit der rechten Maustaste klicken, mit der rechten Maustaste klicken. Und dann lass uns sehen. Ich bekomme momentan keine Partikel , weil ich tatsächlich Partikel ausgeschaltet habe, aber du kannst schon sehen, dass es funktioniert. Lassen Sie uns also Videoeinstellungen unter Partikeln. Lasst uns einfach alle Teilchen gleich hier holen. Außer du siehst Es gibt noch ein Mal, los geht's. Wir bekommen auch die Teilchen und da ist es. Mal sehen, da ist es das Babytier in einer kleineren Version als die großen. Es funktioniert tatsächlich völlig so, wie man es erwarten würde. Wir können auch mit der rechten Maustaste darauf klicken und dann sollte es auch ein Babytier hervorbringen. Das ist auch eine andere Sache, die du tun kannst. Da gehst du. Sie werden übrigens tatsächlich erwachsen werden, es dauert nur eine ganze Weile. Ich kann dir tatsächlich zeigen, ob es in der Tierklasse ist . Nun, aber so einfach ist es, Mikroben ein paar Babytiere hinzuzufügen . Wenn wir hier den Baum hinuntergehen, gibt es zehn erhalten fähige Entität, tierische Entität in der Tierentitätsklasse. Hier kühlt sich die Zucht ab, vielleicht ist sie drin, irgendwo hier drin. Ich denke, es könnte noch weiter unten sein. Vielleicht h da ist es, in der passiven Entität, negativ 24 Tausend. Das sollte also 24 Tausend Takes sein, glaube ich, bis es im Grunde einen Erwachsenen erschafft. Man könnte dies also theoretisch auch ändern. Vielleicht bin ich mir nicht sicher, ob es sich um eine Akte handelt, also kann das vielleicht nicht geändert werden, aber es gibt im Grunde, wo es sich befindet. Und so einfach ist es auch, Ihrer Entität einige benutzerdefinierte Entitäten hinzuzufügen . Und das würde diese Vorlesung genau hier abschließen. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in den nächsten Vorträgen. 118. (1.18.2): Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Geode hinzufügen . gewohnte Rendite ist also ziemlich einfach, alles in Betracht gezogen. Lassen Sie uns also nur sehen, wie das im World-Paket funktioniert, Feature-Paket in der R konfigurierten Feature-Class, ich werde die eigentliche Geode-Features Config Wahnsinn kopieren . Und es wird nach viel aussehen. Aber keine Sorge, wir werden fast alle Linien durchgehen und sehen, was sie bedeuten. Das ist also der Orakel come-Geode hier. Lassen Sie uns einfach formatieren ist vielleicht ein bisschen anders, damit sie alles sehen können, was sie vor ihnen haben. Und die allgemeine Idee ist, dass wir einen Geode-Feature-Konflikt mit einigen Layer-Konflikten haben . Hier. Die Ebenenkonflikte sind eigentlich das wirklich Interessante, denn hier können wir definieren, man 12345 verschiedene Blöcke und dann auch eine Liste von Blöcken oder Blockzuständen in diesem Fall sehen kann und dann auch eine Liste von , aber ziemlich die gleiche Idee. Wenn wir in den G0-Ebenenkonflikt geraten, können wir tatsächlich sehen, was diese verschiedenen Blockzustände sind. So können wir sehen, dass es eine innere Schicht des Füllanbieters gibt. Es gibt eine alternative vergrößerte Zwischenschicht. Stunde später gibt es eine mittlere Schicht und einen inneren Block, den sie nicht ersetzen kann, und dann auch ein ungültiges Block-Tag. Was bedeuten all diese verrückten Dinge? Nun, lasst uns zuerst über die inneren Blöcke sprechen. Die inneren Blöcke sind im Falle von Vanille grundsätzlich im Falle von Vanille der angehende Amethyst. Wenn wir also die mittlere Maustaste drücken, klicken Sie darauf und wir können die unterirdische konfigurierte Feature-Klasse genau hier sehen und sehen, wie die Amethysten Geoden-Cluster hier hineingehen und sehen, dass Luft der erste ist eins. Dies ist also nur der absolute innerste Block. Und natürlich möchten Sie normalerweise , dass Ihr GOTT mit Luft erfüllt wird. Deshalb ist das in diesem Fall Luft. Und der Emesis-Block ist der, mal sehen, dies sind die inneren Layer-Anbieter. Dies ist also im Grunde die erste innere Schicht. Und dann haben wir einen Blockstatus-Anbieter einer alternativen inneren Schicht. Jetzt sind das der angehende Amethyst. Das sind also die Blöcke, aus denen die Erde tatsächlich hervorgeht. Wir haben auch einen Calcit hier. Dies wäre also der Middle-Layer-Anbieter. Und dann haben wir auch die, lassen Sie mich das hier überprüfen, die glatte Muskulatur und das wäre der äußere Schichtanbieter. Also haben wir eine mittlere Schicht und eine Stunde später werden Sie in unserem Beispiel hier sehen, wenn ich darauf zurückkehre, können wir sehen, dass der Fehler dasselbe ist , was wir haben Deep Slate wie der allgemeines Make-up der inneren Schicht. Das Orakel kommt oder wird sozusagen unser angehender Amethyst sein, sozusagen eine äußere Schmutzschicht. Und dann wird die vollständige unsere Schicht der Smaragdblock sein, während die Neukalk und der Block genau hier, wo diese Liste im Grunde ist, dies unser wachsender Amethyst sein wird. In der Liste hier sehen Sie also, dass dies die MFAS-Buds sind , die spawnen können. Und in unserem Fall werden dies unsere Kalziumblöcke sein , nur um eines Beispiels willen hier, oder? Die Dicke sollte ziemlich selbsterklärend sein. Definiere einfach die Dicke hier. Eine knackende Konfiguration bestimmt im Grunde, wie groß einige Öffnungen in dieser Geode sein könnten. Und dann haben Sie einige Dinge , die Sie im Grunde genommen die Verteilung, den Rauschmultiplikator und den Generationen-Offset ändern können , empfehlen wir, wie immer, mit den Zahlen hier drüben herumzuspielen. Das ist das Beste, was du tun kannst. Spiele auch mit den Blöcken hier drüben herum. Sie werden in nur einem Moment sehen, in dem wir dies tatsächlich in einer neuen Welt hervorgebracht haben, wie das tatsächlich aussieht. Und Sie werden ziemlich leicht verstehen, wie das funktioniert. also keine Sorgen. Und das ist im Grunde die allgemeine Idee. Spiel damit herum. Jetzt steht Ihnen das natürlich alles in einem GitHub-Repository und auch individuell. Es gibt also keine Sorgen. Fahren wir mit der Marketplace-Feature-Klasse fort. Also kopiere ich das auch. Aber das wird auch nicht zu verrückt sein. Mach eigentlich so etwas. Vielleicht kannst du das lesen. Da gehst du. Da ist das Orakel wirklich platziert und Sie können sehen, dass wir hier nur eine Seltenheitsplatzierung von 42 machen, denn warum nicht? Und dann brauchen wir das quadratische Platzierungs-Feature, quadratischen Platzierungsmodifikator aus. Und dann haben wir die einheitliche Höhe von sechs bis 50. Ich habe mich gerade für diese entschieden, weil das einmal gut wird, äh, natürlich, damit rumspielen wird, oder? Wählen Sie, wählen Sie verschiedene Offsets aus, oder? Sie können den festen unter all dem verwenden. Probieren Sie einfach ein paar Sachen aus und sehen Sie dann, was Sie mit den verschiedenen Werten hier finden können. Und um dies zu spawnen, nun, es ist ziemlich einfach. Wir wollen hier einfach nur in unsere Generation gehen. Wir werden dieses einfach duplizieren und wir möchten dies in das Orakel ändern , das zum Orakel kommt oder platziert wird , kommen Sie zu platzieren. außerdem sicher, dass die Funktion Konfigurieren hier der Geode ist. Und dann verweisen wir hier auch auf die Geode und das ist es Das sollte kleine Nische, du bist in einer neuen Welt. Lasst uns eine neue Welt erschaffen und sehen, ob sie funktioniert. Oder Frankreich oder in Minecraft. Und da haben wir schon ein Beispiel. Also haben wir eine gefunden, eine Geode und Sie können natürlich sehen, die innerste Schicht hier im Grunde Luft ist. Und dann sieht man, dass dies die verschiedenen Ebenen sind. Man sieht, dass dies der Dreck hier drüben tief ist. Dann haben wir den angehenden Amethyst Ersatz für R ors. Und dann kann das Orakel bei einigen von ihnen das Spawn blockieren, und das wären die Orte, von denen die eigentlichen Cluster spawnen würden. Der Smaragdblock selbst, man sehen kann, liegt eigentlich sehr außerhalb davon. Sie können also sehen, dass hier die Geode bereits beginnt und es ist ziemlich viel. So können Sie hier sehen, dann ist das alles Dreck und irgendwann fängt man im Grunde auch hier an, einige der verschiedenen Blöcke zu finden . Und irgendwann, nachdem Sie viel gegraben haben, können Sie sehen, dass es ziemlich viel ist. Also hast du tatsächlich wieder das andere draußen erreicht. Wir können diesen Weg gehen müssen. Und dann mal sehen wir mal. Wir werden auch in der Lage sein, das eigentliche GO drinnen zu finden. So einfach kann es also sein, einige benutzerdefinierte Felder hinzuzufügen. Wieder einmal mit den Zahlen herumspielen und mit den Blöcken herumspielen. Das liegt alles an dir. Aber insgesamt ist es sehr einfach, es tatsächlich zu haben, es zu generieren. Und wie immer, wie gesagt, ist der Code genauso gut im GitHub-Repository und individuell verfügbar , aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 119. (1.18.2) Block, der mit Redstone interagiert: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Redstone in Ihren Kundenblock implementieren können. Was heißt das also? Nun, wir werden das Orakel zu einer Lampe machen, ein Block, den wir, anstatt mit der rechten Maustaste darauf zu klicken, um es ein- und auszuschalten rechten Maustaste darauf zu klicken, um es ein- und auszuschalten, es mit Redstone-Erz funktioniert , oder? Wir haben ein Beispiel und das ist der Redstone-Lampenblock. Wie immer ist Microbes Quellcode dein bester Freund. Drücken wir einfach zweimal die Umschalttaste und suchen wir gleich hier nach dem Redstone-Lampenblock. Und Sie können sehen, dass wir die Nachbarn-Update-Methode sowie diese geplant haben die Nachbarn-Update-Methode sowie , um Methoden zu verwenden. Das sind also die beiden Methoden, die wir brauchen. Kopieren wir sie einfach, wählen sie aus und kopieren sie über Control C, steuern V, um es einzufügen. Und dann müssen wir hier nur den Deckel wechseln um überall dort zu sammeln, wo es heißt LET, du willst hier nur dasselbe sagen und auch gefallen. Und dann können wir das etwas leichter lesbar machen. Statt des booleschen Wertes wollten wir das einfach mögen. Und dann auch das Casting hier, es muss gerade nicht passieren die Frage ist, was hier passiert? Nun, die Nachbar-Update-Methode wird aufgerufen , wenn ein Nachbar dieses bestimmten Blockzustands-Updates in der Welt nicht zu verrückt nach den allgemeinen Ideen sein sollte , die wir wissen möchten, ob dies dies ist oder nicht ein bestimmter Block ist aktiviert. Wenn es auf n ist, wird es nicht mit Strom versorgt, wir möchten es ausschalten und andersherum. Wenn ja, wenn es ausgeschaltet ist und Strom erhält, wollen wir es einschalten. Das ist die allgemeine Idee. Jetzt ist das in meinem Kopf etwas komplizierter als es sein muss, aber es wird uns gut gehen, weil Vanille so ziemlich auch so gut macht. Und dann planen wir einen Tick Take im Grunde genommen ist dann genau hier fertig. Sie können also sehen, dass dies aufgerufen wird, wenn ein geplantes Häkchen grundsätzlich gut ausgeführt wird. Und wir setzen im Grunde nur den Status an dieser bestimmten Position auf den Flick-State-Zyklus. Was ist Zyklus-Mittel? Nun, wir invertieren im Grunde nur den tatsächlichen booleschen Wert. Also Zyklus, durchläuft einfach alle Werte. In diesem Fall ist es sehr schwer zu erkennen. Die allgemeine Idee ist jedoch nur , dass es nur alle verschiedenen Werte dieser bestimmten Blockstatuseigenschaft durchläuft verschiedenen Werte dieser bestimmten Blockstatuseigenschaft , da es sich um einen booleschen Wert handelt, es gibt nur zwei mögliche Werte, die es haben kann. Deshalb wird es einfach aus einer Falte ein wahres und ein wahres in ein Falsch verwandeln . Und das ist alles, was wir brauchen. Sie können also sehen, dass der Redstone-Strom an dieser bestimmten Position erhält , und das ist alles, was wir brauchen, oder? Das ist also nur eine boolesche Methode hier, die fragt: Hey, empfängt dieser Block Strom? Und das ist alles, was Sie brauchen, um zu überprüfen, ob dieser Block mit Strom versorgt wird oder nicht. Und dann, nur damit wir es haben, kommentieren Sie das hier draußen. Und lassen Sie uns einfach ein System aus der Druckzeile erstellen und wir werden nur „Powered by“ sagen. Und dann werden wir die Welt das sagen und wir haben ein paar Macht. Nun, Dinge hier drüben können Sie sehen, dass es eine emittierende Macht gibt, etwas Strom lesen und Strom erhalten, emittiert werden. Redstone erhält Redstone und dann am stärksten, wir werden nur die stärkste Leistung ausgeben. Dies wird also in diesem Fall eine ganze Zahl zurückgeben, und es wird alles von 0 bis 15 sein , weil Redstone-Leistung, das Maximum 15 und der niedrigste Wert 0 wäre, was überhaupt keine Stromversorgung wäre. Dies wird dann in der Konsole hier innerhalb der Intelligenz ausgegeben , wenn wir mit der rechten Maustaste auf diesen bestimmten Block klicken. Das ist eigentlich alles, was wir tun müssen, das meiste davon aus Vanille. Jetzt, wie immer, wird Ihnen natürlich der gesamte Code hier in einer Beschreibung im GitHub-Repository und individuell genauso gut zur Verfügung stehen einer Beschreibung im GitHub-Repository . Lasst uns jetzt in eine Welt gehen und mal sehen, ob es funktioniert. Alles klar, wieder Freunde in Minecraft, und ich habe hier schon das Oracle-Icon-Labor eingerichtet. Also lass uns einfach einen Hebel nehmen und mal sehen. Und dann gehen wir los, es schaltet sich ein und dann schaltet es aus, wenn ich, aber der Hebel wieder aus. Und was wir damit so gut wie möglich machen können. Also los gehst du. Und das funktioniert auch. Wenn ich jetzt mit der rechten Maustaste darauf klicke und einen Blick hier in die Steigung schaue, sollten wir die Leistung um 14 sehen. Dies ist natürlich der Fall denn dies wären 15 und dann eine weitere zusammen mit der Redstone-Linie hier, dies wären 14. Wenn ich dann auch den Hebel hier einschalte und wieder mit der rechten Maustaste klicke, dann siehst du, dass wir immer noch 14 bekommen. Interessanterweise sollten dies 15 sein. Meiner Meinung nach ist das sehr interessant. Mal sehen, ob wir es so machen können. Das ist diese Arbeit. Jetzt funktioniert es mit 15. Okay, also der Hebel, es hat eigentlich nicht ganz funktioniert. Ich schätze. Das ist sehr interessant für mich. Eigentlich hätte ich mit dieser Arbeit gerechnet, aber fair genug. So funktioniert dies jetzt im Grunde genommen und so einfach kann es sein, einen Block hinzuzufügen, mit Redstone, Minecraft, funktioniert. Natürlich müssen Sie jede zusätzliche Funktionalität, die Sie dann hinzufügen möchten, wenn das Restaurant angewendet wird, Sie dann hinzufügen möchten, wenn das Restaurant angewendet wird, entweder den Block hinzufügen oder wenn es sich um eine Bucheinheit handelt, können Sie auch natürlich mach das auch und ändere es dann auch dort herum. Aber das ist natürlich etwas, das Sie alleine machen können. Und ich hoffe, dass Sie dies tun und auch einige Funktionen hinzufügen können , aber das wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 120. (1.18.2): Okay, willkommen zurück zum Stoffkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen Kunden-Block-Entitäts-Renderer hinzufügen . Was ist ein Block-Entitäts-Renderer? Nun, im Grunde wird es ein gewisses zusätzliches Rendering sein ein gewisses zusätzliches Rendering , das wir einer Kundenblock-Entität hinzufügen. Und was wird unsere Blockeinheit sein? Nun, wir werden ein benutzerdefiniertes Blockmodell haben , das irgendwie so aussieht, aber es wird ein Sockel sein. Und wenn wir dann mit der rechten Maustaste darauf mit einem Gegenstand klicken, wird der Gegenstand mit der Maus über diesen speziellen Sockel zeigen. Das ist die allgemeine Idee. Nichts zu verrückt, aber immer noch ziemlich cool, um sich diese spezielle Blockbench-Firewall anzusehen , steht natürlich auch zum Download zur Verfügung. Und dann können wir zu Dateiexport, Export, Blockelementmodell, dem angrenzenden Sockel gehen. Jetzt habe ich das schon, also wird es uns gut gehen und wir werden dies in nur einer Weile als angrenzendes Blockmodell hinzufügen . Aber zuerst fangen wir damit an , den Block hinzuzufügen. Sie in unserem Buch in unserem benutzerdefinierten Blockpaket mit der rechten Maustaste auf die neue Java-Klasse, die als Sockel bezeichnet wird. Sieh mal. Jetzt werde ich das meiste davon überstehen, aber keine Sorge. All dies steht Ihnen in einem GitHub-Repository ebenso individuell zur Verfügung. Jetzt kriegen wir hier einen Pfeil und ein paar weitere Pfeile genau hier. Aber keine Sorge, wir können diese in nur einem Moment reparieren , sobald wir auch die Block-Entitätsklasse hinzugefügt haben . Was passiert jetzt hier? Insgesamt ist das Wichtigste hier natürlich, dass der Block um Entitätsklasse erweitert wird und dass wir den gerenderten Typ mit dem Modell überschrieben haben . Dies ist äußerst wichtig. Wenn Sie dies nicht tun, ist Ihr benutzerdefinierter Block unsichtbar, da Sie tatsächlich nach unten gehen. Das sind also drei Hilfsmethoden. Wir haben auch den On-State ersetzt. Dies lässt im Grunde alle Gegenstände fallen, die sich im Inventar befinden. Nichts zu verrückt. Und dann haben wir das Unbenutzte. Diese Methode wird natürlich aufgerufen wenn Sie mit der rechten Maustaste auf diesen bestimmten Block klicken. Und was hier passiert ist , dass, wenn der Gegenstand anstelle des Sockels leer ist und wir tatsächlich einen Gegenstand halten , wir einfach diesen Gegenstand, den der Spieler hält, in diesen stecken diesen Gegenstand, den der Spieler hält, Inventar und Löschen des späteren Artikels in seiner Hand. Wenn sich in diesem speziellen Sockel tatsächlich kein Gegenstand befindet , spawnen wir es nur an den Spieler und löschen dann den Sockelgegenstand genau hier. Das ist also alles, was wir in der unbenutzten Methode wirklich machen. Empfehlen Sie dringend, dies auch zu überprüfen. Es ist nicht so kompliziert, alles in Betracht gezogen. Und einer von uns, wir haben diesen Block. Gehen wir tatsächlich in das Entitätspaket ein und erstellen Sie die benutzerdefinierten Entitäten. Das wird also die Sockelblock-Entität sein und da ist etwas drin geschlichen, und das wird ein Tippfehler sein. Also los gehst du. Entität blockieren. Da sind wir los. Und noch einmal werde ich über die Kontinente kopieren. Das ist eigentlich, ich denke, das ist tatsächlich noch weniger als der eigentliche Block. Lustigerweise genug. Es sind nur 67 Zeilen lang. Nicht so verrückt. Und Sie können dies natürlich sehen, erweitert die Block-Entität und den implementierten Bestand , den wir auch in der Vorlesung der Kundenblock-Entitäten hinzugefügt haben . Wir haben die standardmäßige Liste der Artikelstapel , die nur das Inventar ist, sollte nichts Verrücktes sein. Und dann haben wir auch einen Fehler hier, was die Rotation ist. Aber wir brauchen die Rotationen in diesem Fall, da diese in der Block-Entität selbst gespeichert werden müssen . Weil wir dies nicht wirklich im Block-Entitäts-Renderer speichern können , da sie immer nur einen Block-Entitäts-Renderer während der Buch-Entität selbst vorhanden sind. Wenn wir es dabei speichern, wird es sich nicht stören. Denn wenn Sie es auf dem Block- und D-Renderer speichern, passiert es, dass jedes Mal, wenn Sie eine neue Sockelblock-Entität setzen , das Ding immer schneller wird. Und das ist natürlich nicht ganz etwas, was wir wollen. Deshalb wird die Rotation die Drehung des Gegenstandes sein. Deshalb speichern wir es genau hier. Wir haben auch ein Recht auf eine Lese- und Beauty-Methode sollte nichts Verrücktes sein, oder? Diese dienen nur dazu, das Inventar zu retten , wenn wir die Welt verlassen, oder? Wenn wir die Welt retten. Und dann ist es auch unglaublich wichtig, dass wir die mit der Block-Entität überschriebene Paketmethode aktualisieren, auf Server auf Client aktualisieren möchten mit der Block-Entität überschriebene Paketmethode aktualisieren, , um das Paket zu sehen und es damit zu erstellen und dann auch auf initiale Chunk-Daten und b t. Wir möchten, dass dies so aussieht. Diese beiden sind also unglaublich wichtig. Andernfalls findet eine D-Synchronisierung zwischen dem Server und dem Client statt. Denken Sie also daran, dass diese ebenfalls hinzugefügt werden müssen. Wie ich bereits erwähnt habe. All dies steht Ihnen dabei oder einer Einzelperson genauso gut zur Verfügung. Wir können es von dort aus kopieren, dann gehen wir in die Blockentitäten-Klasse und lassen Sie uns einfach über den Sockel kopieren. Also zuerst werden wir das kopieren. Also werden wir dies duplizieren und dies zur Sockelblock-Entität machen dies zur Sockelblock-Entität , die als Sockel bezeichnet wird. Und dann duplizieren wir das ausgewählte einfach und drücken Control D. Dies wird der Sockel sein. Dies ist natürlich gleich allem dem Namen hier, Sockel. Und dann wollen wir dies hier in eine Sockelblock-Entität umwandeln . Und dann wollen wir hier den Sockel benutzen. Jetzt ist dies natürlich noch nicht umgesetzt , aber überhaupt keine Sorgen. Wir werden das auch einfach hinzufügen. Also die Blue-Modus-Block-Entitäten, können wir jetzt zur Sockelstein-Entität gehen. Der Fehler sollte hier verschwinden und es sollte keine Fehler mehr geben als im Block. Wir können jetzt die Podestalbuch-Entitätsklasse importieren und alle Fehler hier sollten auch verschwinden. Und es ist großartig. Und um diesen Fehler zu beheben, müssen wir nur den eigentlichen Block registrieren. Also machen wir das einfach auch. Lass uns einfach über das Winterfenster kopieren. Das wird gut werden. Und das wird das Sockelpferd sein , mit dem Namen hier bei Angriff. Und das wird der Sockelblock sein. Jetzt werden wir kein Glas kopieren. Lasst uns tatsächlich materiellen Stein machen. Ich denke, dass das am sinnvollsten ist, nicht undurchsichtig. Das brauchen wir eigentlich nicht. Stärke drei, das wird gut werden. Und dann natürlich, in unserer Artikelgruppe, in unserer benutzerdefinierten Artikelgruppe hier. Und das sollte in Ordnung sein. Jetzt sollte dieser Pfeil auch verschwinden, und jetzt sind alle Fehler verschwunden. Jetzt brauchen wir immer noch den benutzerdefinierten Renderer. Also das Entitätspaket, wir klicken mit der rechten Maustaste auf neues Paket namens Client. Und dann werden wir drinnen eine neue Klasse erstellen , die den sockeligen Volokh-Entitäts-Renderer nennt. Sie gehen und das ist eigentlich ziemlich einfach, aber dies wird den Blockentitäts-Renderer implementieren , Renderer genau hier vom Typ. Sockelblock-Entität wird den Mauszeiger über diese Methoden implementieren. Dies ist die Render-Methode genau hier, und das ist so ziemlich alles, was wir tun müssen. Tu es. Dann können wir einen öffentlichen Sockelblock-Entitäts-Renderer machen. Anstatt hier möchten wir die Buch-Entität nennen, unseren Factory-Punkt-Kontext, Kontext und das Ziel rendern . Wir wollen also nur den Standardkonstruktor hier mit diesem speziellen Parameter und der Render-Methode, dem Inhalt der Zufallsmethode, die ich tatsächlich kopieren werde. Sie können sehen, dass wir den Elementrender hier im Grunde bekommen, und dann erhalten wir auch den Artikelstapel. Nun, was wir mit den Matrizen hier machen, der Matrixstapel ist im Grunde, dass wir es sind, das alles bestimmt nur die Übersetzung. Wo sich also unser bestimmter Artikelstapel befindet, bestimmt der Maßstab, wie groß er ist, und multipliziert dann hier, dreht einfach den tatsächlichen Elementausbruch. Das tun diese drei Erkältungen, als das Renderelement des Element-Renderers das Element nur rendert. Dann müssen wir diesen bestimmten Matrixstapel platzen, und dann fügen wir auch die Rotation hinzu. Das ist also so ziemlich alles , was wir hier machen. So ziemlich cool, alles in Betracht gezogen. Und ich empfehle dringend, sich das nur anzusehen und ich versuche es zu verstehen. verrückt sollte es nicht sein. Aber ich werde auch sagen, dass Rendern definitiv nicht meine Stärke ist. Mir gefällt es besonders. Es ist, es kann ziemlich verrückt sein, aber alles in Betracht gezogen wird, sollte es in Ordnung sein, oder? Eine winzige Sache, nennen wir das nicht undurchsichtige hier drüben. Nur damit wir das haben. Es ergibt Sinn, glaube ich weil das, weil es kleiner als ein Block ist. Nennen wir das einfach. Und wie registrieren wir dann diesen bestimmten Block-Entitäts-Renderer? Nun, dieser Block ist, dass Ihr Hendra tatsächlich ziemlich einfach in der MC-Kurs-Client-Klasse registriert ist ziemlich einfach in der MC-Kurs-Client-Klasse , natürlich wird dies Folgendes erfordern. Wir möchten es als Buch-Entitäts-Rendererregistrierung bezeichnen. Dieser hier ist nicht registriert. Mehr Blockentitäten, Punktsockel und dann die Sockelgestein Renoir Doppelpunkt, Doppelpunkt neu. Wir möchten auch die Block-Render-Layer-Map-Punkt-Instanz aufrufen Block-Render-Layer-Map-Punkt-Instanz , die Block- oder Blockpunktsockel setzt. Und dann setze die Renderer-Ebene , dass er ausgeschnitten wird, die du hast. Und das sollten eigentlich all die Dinge sein , die wir brauchen. Jetzt brauchen wir natürlich auch die angrenzenden Dateien, aber diese sollten ziemlich selbsterklärend sein, oder? sollten also nicht zu verrückt sein. Aber noch einmal, im Blockstatus befindet sich Jason im Block States Ordner, rechts, Beginnen wir damit, die Blockstatus-JSON-Datei für den eigentlichen Sockel hinzuzufügen . Sie gehen, das ist nur eine normale Bloc States Jason-Akte. Nichts Verrücktes hier hat auch die Übersetzung hinzugefügt. Wir haben einen Block, obwohl dieser Name Sockel ist. Also werden wir das einfach hinzufügen. An diesem Punkt sollte das ziemlich Routine sein, sollte hier drüben nichts Verrücktes sein. Nun, das wird die exportierte Datei sein, also wird es hier drüben einen Sockel geben. Und hier. Natürlich müssen wir dies noch einmal in Minecraft-Doppelpunktblock-Schrägstrich Glattstein ändern . Denn sonst wird es keinen glatten Stein finden. Das ist also eine der Dinge , die Sie von der exportierten JSON-Datei und dann auch der JSON-Datei des Elements ändern müssen. So ziemlich das Gleiche, was wir schon oft gesehen haben . Dies bezieht sich auf die JSON-Datei des Blockmodells und dann wird keine Textur benötigt. Das sind also eigentlich all die Dinge, die wir brauchen. Sperren Sie Status, Übersetzung, Block, ein Elementmodell, eine JSON-Datei, und das sollte es sein. Das sollte also alles sein , wofür wir brauchen. Jetzt. Lass uns ins Spiel gehen und sehen, ob es funktioniert. Okay, also befinden wir uns in Minecraft und wie Sie sehen können, wurde der Sockel hinzugefügt. Lassen Sie uns es also festlegen und versuchen wir, mit dem rohen Fehler Calcium mit der rechten Maustaste zu klicken. Und da gehst du. Es ist hingesetzt. Und wir können hier auch noch etwas mehr hinzufügen. Und Sie können im Grunde sehen, dass sie alles nur auf und ab sind und sich hier registrieren. Also kann ich mit der rechten Maustaste klicken und sie wieder rausholen. Und ich kann mit der rechten Maustaste klicken und sie hineinlegen. Und du siehst, dass ich im Grunde immer eins oder Kalzium verliere. Und dann kann ich es auch rausholen. So genau wie wir erwarten würden, dass es funktioniert. Es funktioniert tatsächlich und das ist ziemlich cool. Und dies ist ein Beispiel für einen Kunden-Block-Entitäts-Renderer. Aber wie gesagt, ist der Code im GitHub-Repository genauso gut einzeln verfügbar . Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Also ja. 121. (1.18.2) Loot in benutzerdefinierten Strukturen: Alles klar, willkommen zurück beim Stoffkurs für eine ATP. In diesem Vortrag werden wir sehen, wie Sie Ihren benutzerdefinierten Strukturen benutzerdefinierte Beutetruhen hinzufügen können . Das ist also etwas , mit dem einige Leute zu kämpfen hatten, obwohl die benutzerdefinierte Struktur aus telepathischem Grund hier das hier ziemlich gut erklärt hatte. Aber einige Leute brauchten immer noch ein bestimmtes Beispiel, also werden wir sie mit diesem Beispiel anwenden. Mal sehen, was wir tun müssen. Was wir tun müssen, ist, dass wir genau hier eine Truhe spawnen können . Und wieder ist es mit diesem speziellen Befehl geboren. Also setze den Block auf die Position, in der wir stehen, eine Minecraft-Truhe, die sie ignorieren. Es wird also in die gleiche Richtung gehen , in die wir uns befassen. Und dann den Beutentisch, den wir auf einfache Bungees stellen werden. Also werden wir das einfach machen. Und Sie können sehen, dass das Vertrauen entstanden ist. Nun, wenn ich es öffne, richtig, und dann werden wir das speichern. Wenn sie also leben, ist dies der Davidson. Wenn ich jetzt bestellt habe, speichere diese Struktur, dann hätte jede Struktur diesen speziellen Inhalt dieser Truhe. Das ist eines der Probleme , mit denen einige Leute konfrontiert waren denn was Sie tun müssen, ist wenn Sie es tatsächlich spawnen. Also teilen wir es einfach noch einmal auf, genau hier mit dem Beutentisch , dem einfachen Kerker. Sie können auch Ihre eigenen Lu-Tabellen hinzufügen und hier auch verschiedene Routentabellen erstellen, aber achten Sie darauf, dass Sie im Grunde einen Tisch haben, der speziell für Schach gedacht ist. Und sobald du die Brust gezeigt hast, öffne die Brust nicht. Sie können die Truhe öffnen denn sobald Sie die Brust öffnen, verfestigen Sie alles, was sich darin befindet. Sie möchten, dass dies nach dem Schlucken nicht geöffnet wird, und dann möchten Sie Ihre benutzerdefinierte Struktur speichern. Aber jetzt werden wir die Struktur speichern. Und jetzt können wir die NVT-Daten ersetzen , die wir bereits haben. Und dann wird insbesondere diese Truhe immer eine andere Belastung haben , wenn die Struktur auf der Welt spawnt. Gehen wir jetzt zu Intelligent und ändern die MPT-Datei, oder? Die NVT-Datei steht also natürlich wieder unter dem Safe. Nun sollte dies der, an einem anderen Tag, eine andere Struktur sein, wenn ich mich richtig erinnere, los geht's, die Zählmaus. Lassen Sie uns das überschreiben. Gehen wir zum Datenordner, MC-Kursstrukturen, und fügen wir ihn hier ein, Konto mhos MVT, wir werden es außer Kraft setzen. Das ist in Ordnung. Und jetzt ist das alles, was wir tun müssen. Lasst uns jetzt eine neue Welt erschaffen und sehen, ob es funktioniert. Okay, also befinden wir uns wieder in Minecraft. Lasst uns also einfach zur ersten Zählung fliegen, mein Haus hier, das hervorgebracht hat, und ich glaube, es gibt noch ein anderes in diese Richtung. Nun, zuerst werden wir die Truhe hier drinnen finden . Und wenn ich mit der rechten Maustaste darauf klicke, kannst du sehen, dass dies die besondere Belastung ist. Wir haben also Eisenpferde-Rüstung und drei faules Fleisch. Also lasst uns das einfach in unserem Gehirn speichern und mal sehen. Okay, also gab es eine Pferderüstung und drei faules Fleisch, und mal sehen, ob wir eine andere finden können. Ein anderer zählt mein Haus, ob dies auch der Fall ist oder nicht. Okay, dann gehen wir endlich hin, ich habe endlich festgestellt, dass eine andere Account-Maus tatsächlich ziemlich schwierig wäre , diese zu finden. Denken Sie daran, es gab drei, faules Fleisch und eine Pferderüstung, und wir können sehen, dass dies völlig anders ist. Wir haben jetzt eine Musikdiskette. Wir haben immer noch eine Pferderüstung, aber kein faules Fleisch. Aber Sie können sehen, dass jede einzelne Struktur eine andere Schleife hat. So einfach ist es also so ziemlich einfach eine benutzerdefinierte Beutetruhe, Ihre benutzerdefinierten Strukturen hinzuzufügen , oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns alle in der nächsten Vorlesung. Also ja. 122. (1.18.2) UPDATE AUF 1.19: Alles klar, willkommen zurück zum Stoffkurs für 118. Und in diesem Vortrag werden wir unser Projekt auf 119 aktualisieren. Nun, dies wird tatsächlich ein ziemlich einfacher Prozess sein , alles in Betracht gezogen wird. Glücklicherweise sind die Änderungen zwischen 11819 und Stoff nicht so verrückt. Also lasst uns einfach anfangen. Zunächst beginnen wir mit der angrenzenden Fabric-Mod-Datei, wo wir diese ändern müssen, hängt davon ab oder hier. Jetzt wollen wir diese beiden ändern. Fabric Loader ist 14.6. Ich möchte die Minecraft-Version so ändern, dass sie hier die scharfe Linie ist, Tilda 1.19. Natürlich sollte das in Ordnung sein. In unserem MC-Kurs Mixing Tracer-Datei möchten wir die Java, Java 17 ändern, und dann können wir mit der Build-Gradle-Datei fortfahren , wo wir zuerst die Fabric Looom-Version hier auf 12 ändern möchten . Und dann wollten wir natürlich auch die Gecko-Lippenimplementierung hier ändern . Die Gleichgewichtskraft muss aktualisiert werden. Das wäre also Stoff eins bei 22,1. Und dann müssen wir in der größeren Eigenschaftendatei die meisten dieser Dinge ändern. Wir wollen die Micro-Version auf 1 Neuntel, Garnmappings oder 119 ändern , bauen einen Stofflader. Die untere Version hier ist 14.6. Wir können dann natürlich auch unsere eigene Mod-Version hier ändern . Und dann wird das 55.11.19 sein. Und das sollte so ziemlich all die Dinge sein, die wir hier ändern müssen. Und dann können wir die Gradle-Änderungen laden. Jetzt kann dies wiederum zwischen ein paar Sekunden und vielleicht sogar zwei Minuten, drei Minuten dauern , je nachdem, wie schnell Ihr Computer ist, je nachdem, wie schnell Ihre Internetverbindung ist, all das Verrücktheit. Lassen Sie uns das einfach durchlaufen und haben Sie Geduld. Und dann werden wir sehen, sobald dies als Build erfolgreich geworden ist, Ordnung, hier sind wir 32 Sekunden. Wenn Sie dann zum Beispiel in Ihre Mod-Klasse gehen und einige der Klassen rot markiert sind , was Initialisierer zum Beispiel Margaret sein könnte, machen Sie sich keine Sorgen, warten Sie einfach eine Sekunde bis alles aufgebaut ist und sich dann theoretisch reparieren sollte. Das ist also so ziemlich alles, was wir tun müssen. Nun kommen natürlich die Codeänderungen, die, ich würde nicht unbedingt sagen zahlreich sein, aber es gibt einige von ihnen. Beginnen wir zunächst ganz oben in unseren Klassen. Der erste, bei dem wir einige Dinge ändern müssen, ist, ich glaube daran, dass es nicht die Sockelklasse ist, der schnelle Block sein sollte. Interessanterweise ist das, was wir hier tatsächlich ändern müssen was wir hier tatsächlich ändern müssen, der Text hier drüben. Die Klasse für wörtliche Texte existiert also nicht mehr, aber glücklicherweise ist es sehr einfach, dies zu ändern. Wir müssen nur Textpunktliteral nennen. Und das ist so ziemlich alles, was wir hier noch einmal tun müssen, Textpunktliteral, und jetzt haben wir einen Fehler bei den Importen. Sie beheben das, wir können einfach die Kontrolle alt und O drücken. Und das sollte auch das beheben. Jetzt können Sie sehen, dass die Random-Anzeige auch nicht funktioniert. Warum könnte das sein? Nun, der Grund ist dass sich auch die Zufallsklasse geändert hat. Wir verwenden derzeit Java util random. Löschen wir einfach diesen Import. Und wenn wir dann die Zufallsklasse erneut importieren, können Sie sehen, dass sie tatsächlich Net Minecraft importieren will , schöne Mathematik zufällig, zufällig. Wir haben tatsächlich eine neue Zufallsklasse. Dies hat jetzt natürlich eine andere Funktionalität. Also müssen wir tatsächlich im Double folgendes tun . Also hier in unserem nächsten Double werden wir in diesem Fall einfach nichts weitergeben. Und das sollte auch in diesem Fall sein. Da gehst du. Das sollte okay sein. Wenn Sie also eine Methode haben, bei der Zufall ein Parameter ist , ist dies wahrscheinlich der Grund, warum es nicht funktioniert. Wenn es immer noch die Java util-Klasse von Zufall verwendet , ist es ein wenig, es ist hier nicht die beste Namenskonvention, um sie genauso wie die Java util zu benennen, aber das wird in Ordnung sein. Aber das ist die Zufallsklasse dort und das ist der schnelle Block und das sollte in Ordnung sein. Nun wird eine der großen Änderungen in unserem High-End-Zeug liegen. Dieser sollte also tatsächlich in Ordnung sein. Mehr Blockentitäten sollten in Ordnung sein. Du kannst es natürlich durchmachen. Hier. Wir haben nur eine SMS. Wieder einmal werden dies Texte sein, die wörtlich sind und dann Alt, Control und O, und dann sollten keine Fehler mehr vorhanden sein. Das ist also alles großartig. Sie können sehen, dass das meiste von diesem Zeug tatsächlich ziemlich gut werden wird. Die Klasse mehr Blöcke ist ebenfalls korrekt. Das ist großartig. Die Wissenschaft ist auch gut. Die Blöcke sind also alle fertig. Einige Änderungen sind in den Befehlen passiert. Wir werden das in einem Moment sehen. Methode zur Deregistrierung hat sich auch geändert, aber das ist in Ordnung. Wir werden nur die Texte ändern , die vorerst wörtlich sind. Und dann noch einmal kontrolliere Alt O. Und dann für diesen zuhause Befehl das Gleiche. Wir werden sagen, Text wörtlich vor einem Tag und dann wieder Alt O kontrollieren. Und da sind wir los. Die Befehle werden vorerst geändert. Und was hier sehr wichtig ist, ist auch , dass Ihnen natürlich in der Beschreibung unten im GitHub Repository wieder alles zur Verfügung steht und auch individuell ist Ihnen natürlich in der Beschreibung unten im GitHub Repository wieder alles zur Verfügung steht . Jetzt sollten sich die Mod-Konflikte nicht ändern , da diese alle im Grunde neu sind. Wählen Sie benutzerdefinierte Klassen mehr oder weniger die Effekte aus, sie ändern die Verzauberungen nicht, sie ändern die Entitäten nicht. In der Gecko-Lippe hat sich also etwas geändert und das sind die Namen dieser speziellen Methoden. Was wir also tun können, ist, dass wir einfach folgendes tun können. Wir können das einfach auswählen . Also kopiere ich einfach den Namen hier drüben. Ich gehe zu meinem Konto kleines Paket von Drücke Control, Shift R und füge es ein. Und ich möchte dies in allen Brunnen ändern , wo wir im Grunde sind und dieser Name ändert sich hier in die Modellressource. Kurz gesagt, wir schreiben das richtig da Sie mehr Ressourcen erhalten. Wir werden einfach alle ersetzen. Und dann wird dies in allen unseren benutzerdefinierten Modellklassen behoben . Woher weiß ich, dass dies die Veränderung ist? Nun, wenn wir nur die mittlere Maustaste drücken, klicken Sie hier auf die animierte GO-Modalmasse, wir können im Grunde die verschiedenen Dinge sehen, das ist eigentlich im Modellanbieter. Ich glaube, sie gehen Modellressourcen, Texturressourcen. Und das andere sind die Animations-Resorts. Das ist also so ziemlich genau das, was es ändert. Also werden wir wieder dasselbe tun, Control Shift R auf dem Kalenderpaket. Jetzt ändern wir die Texturposition in Texturressource . Das ist alles in Ordnung. Aber ersetzen wir einfach das ganze Ego. Das wird in Ordnung sein. Und dann ist der Speicherort der Animationsdatei auch das Gleiche. Wenn Sie dies durch die Animationsressource ersetzen, legen Sie es ab und ersetzen Sie es. Jetzt sollten keine Fehler mehr in einer unserer Modelldateien vorhanden sein . Das ist auch in Ordnung und Sie können sehen, dass sich das auch alles geändert hat, aber auch alles funktioniert noch. So genau wie Sie es den tatsächlichen Entitäten wünschen würden. Es gibt keine Änderungen an den Entitäten. Es gibt eine Veränderung hier. Was ist das? Dies ist das Ende, von Autoren kontrolliert werden kann. Werfen wir einen Blick darauf, was das ist. Nun, ich bin mir nicht hundertprozentig sicher, warum das beschreibbare hier nicht mehr vom Autor gesteuert werden kann. Aber ehrlich gesagt, entfernen wir einfach die Add-Override und hoffen wir einfach, dass es immer noch funktioniert. Das wird wahrscheinlich die beste Idee hier sein. Und wenn es hier um den Rest geht, sollte alles immer noch ganz gut funktionieren. Entitäten sind also auch fertig. Die Ereignisse sollten in diesem Fall auch in Ordnung sein, das ist großartig. Flüssigkeiten sind auch völlig in Ordnung. Und dann kommen wir zu dem Gegenstand. Der Artikel ist der erste. Wir sind einige Änderungen passiert, aber auch nicht so verrückt. Obwohl die meisten Änderungen an dem Gegenstand im Datentablet und der Dowsing Rute stattfanden . Weil wir wieder einmal einige Texte haben, so leicht genug Texte, die wörtlich hier Alt O steuern, und dann das gleiche im Dowsing Rod Item hier haben wir einen übersetzbaren Text, also das wird Texte übersetzbar sein. Und dann auch hier haben statt neuer übersetzbarer Texte Texte wir statt neuer übersetzbarer Texte Texte übersetzbar und dann gleich hier Texte übersetzbar. Dann haben wir hier noch einmal wörtliche Texte von Texten, Datenliteral Control, Alt O, und dann sollten keine Fehler mehr vorhanden sein. Abgesehen davon sind die restlichen Gegenstände in Ordnung. Es könnte etwas in der Klasse „Mehr Items“ geben. Es gibt nichts in der More Items Klasse. Also alles hier funktioniert auch. Der Mischer sollte in Ordnung sein, abgesehen von diesen strukturellen Merkmalen Mixin, wir können dies genau hier löschen. Und dann auch sehr wichtig, lösche dies auch vom MC-Kurs oder Mixed Race in, das wird nicht mehr benötigt. Jetzt haben die Bilder das Bild seltsam? Ja, die Bilder haben sich tatsächlich geändert. Es ist verrückt, ich weiß, aber jetzt ist es der Fall. Es wird nicht mehr als Malmotiv bezeichnet . Es heißt jetzt das Gemälde, eine Variante. Aber was wir tun können, ist, dass wir im Grunde einfach diese drücken Sie Control R drücken und diese dann in Malvariante ändern und dann einfach Alle ersetzen sagen , und dann sollte es in Ordnung sein. Und dann wollen wir das hier in ein Gemälde, eine Variante umwandeln , und dann sollte es auch funktionieren. Die Tränke haben sich nicht geändert, und ich glaube, die Rezepte haben sich auch nicht geändert. Also funktioniert alles hier noch. Großartig. Die Bildschirme sind in Ordnung, Geräusche sind in Ordnung, und dann gibt es bis jetzt in Utah tatsächlich wer sich ändert. Einer von ihnen ist der Modifikator der Beutetabelle. haben sich also ein bisschen verändert. Jetzt verwenden wir das Callback-Ereignis zum Laden der Loot-Tabelle nicht mehr . Wir verwenden jetzt die Daten zu den Ereignissen der Beutetabelle , ändern dieses Register, aber dies ist die Änderung, die wir hier vornehmen müssen. Und dann ist die Änderung hier, dass wir den Fabric unzüchtigen Pool Builder nicht mehr verwenden. Wir verwenden jetzt den Pool-Beutelpool-Datengenerator. Und dann verwenden wir hier Datengenerator des Loot-Pools und erstellen dann genau hier ein neues Gebäude. Dies wird die Apply-Methode aufrufen und dies wird sie als Pool-Methode aufrufen. Und dann können wir einfach die erste Zeile hier drüben kopieren und dann einfach diesen Diego ersetzen und dann dasselbe hier. Dies ist anwendbar und dann heißt breitenpool einfach Pool. Wieder einmal mit Funktionen namens Apply und diese heißt, nun, das sollte völlig gut funktionieren. Wieder einmal, die Importe, werden wir nur Control Alt O drücken, und das sollte in Ordnung sein. Lassen Sie uns mit der Modellregistrierung fortfahren, wo wir hier tatsächlich ein Problem mit dem Ereignis haben. Jetzt das Ereignis tatsächlich, wir können das nur noch einmal importieren, aber Sie können sehen unsere Registermethoden nicht mehr funktionieren. Die Register-Methode hat sich also ein wenig geändert. Also kopiere ich einfach die neuen Registermethodenparameter. Also haben wir jetzt drei Parameter. Wie Sie sehen können, ist der Dispatcher gerade der Server-Command Source Dispatcher. Das ist also alles, was wir noch einmal tun müssen, natürlich steht Ihnen dies im GitHub-Repository und im Einzelnen genauso zur Verfügung. Sie können also im Grunde genommen, wir können uns das dort ganz einfach ansehen. Kopieren wir die Parameter also noch einmal hier drüben. Du gehst in sie rein. Wir nehmen das und ändern es einfach. Und jetzt sind normale Landebahn anwesend, Control Alt O. Und dann sind die Mod-Register auch in Ordnung. Aber dann gibt es einige verrückte Veränderungen bei den Dorfbewohnern hier drüben. Nun wird die Änderung hier unten darin bestehen, dass wir anstelle eines Accessors vom Typ Punktinteressen nur einen neuen Punkt ansprechen, neue Interessen hier drüben. Sie können also sehen, dass wir das gerade erstellen. Wir müssen auch das Setup der Poise-Methode nicht mehr aufrufen. Und dann hier im Register Berufe, während wir es wollen, wollen wir das Register tatsächlich den Dorfbewohner als Berufsbaumeister bezeichnen , der erstellt. Diese ID mit einem neuen Bezeichner wie in unserem MC-Kurs-Mod-ID und dem Namen zu sehen. Und dann rufen Sie die Workstation auf, die den Typ übergibt. Wir müssen dies auch in einem Moment ändern. Und dann wollen wir auch die Bark Sound-Events nennen , diese Entität arbeitet Amara, die bauen, mit Klammern posieren und sie gehen und das sollte so ziemlich genau das sein, was wir hier tun müssen. Für den Typ „Interessenpunkt möchten wir dies in ein Register E vom Typ „ Interessenpunkt“ ändern . Da gehst du. Und dann möchten wir hier, anstatt dies zu übergeben, einen Registrierungsschlüssel, einen Registrierungsschlüsselpunkt des Interessenpunkts der Registrierungsdaten sehen, Registrierungsschlüsselpunkt des Interessenpunkts der Registrierungsdaten um einen Schlüssel mit einer neuen Kennung einzugeben. Wieder einmal, natürlich MC, natürlich Mod Modell ID. Und dann war die Explosion oder der Punkt dafür wichtig. Der Blastopore hier ist der gleiche wie dieser Name hier oder der Gipspunkt. Jetzt wollen wir auch Control Alt O sagen , um die Importe loszuwerden. Und dann wollten wir in unserer MC-Kurse-Mod-Klasse den Setup-Poise Call entfernen und das sollte in Ordnung sein. Die Dorfbewohner sollten jetzt auch arbeiten. Und jetzt nicht zuletzt natürlich, die Weltgeneration, was hat sich hier geändert? Nun, eigentlich nicht zu verrückt. Im Setzling Generator haben wir wieder die unterschiedliche Zufallsklasse. Wenn wir also einfach den Zufallsimport entfernen und erneut importieren, sollte hier alles gut funktionieren. Das ist also großartig. In den anderen Feature-Classes hat sich nichts geändert. Und dann sind die Änderungen nur in der Gen-Klasse, weil wir jetzt eine andere Art haben, sie auszuwählen. Der Selektor ist also tatsächlich jetzt mit Schlüssel alle anderen in N gefunden . Es gibt also einen kleinen Unterschied hier, aber wir können das einfach sagen und dann ist es zum Beispiel Biomschlüssel Punkt Flugzeuge. Und dann sollten wir hier sagen können, Include by key biom, zum Beispiel Schlüssel Punktdschungel. Das sollte also jetzt auch funktionieren. Das Gleiche passiert hier, oder? Die Flugzeuge, sagen wir Biomschlüssel, Flugzeuge für die Blumen hier drüben und dann für den Baum, das Gleiche, laden hier. Biom-Tasten Punktebenen. Und das sollte in Ordnung sein. Die Ursprungsration änderte sich nicht und auch der weltmoderne Ursprung. Das Gleiche. Jetzt haben sich die Strukturen wieder verändert, weil wir deswegen sozusagen keine netten Dinge haben können. Aber das wird in Ordnung sein, keine Sorgen da. Beginnen wir also tatsächlich mit den Himmelsstrukturen hier drüben. Diese Typen strukturieren, ich werde nur noch einmal den Inhalt davon kopieren und wir werden uns das nur kurz ansehen. Also haben wir jetzt einen Codec. Was bedeutet der Codec? Am einfachsten ist es, dies zu erklären, da es im Grunde genommen eine Art ist, eine Klasse aus einer JSON-Datei zu lesen , die so ziemlich der einfachste Weg ist , dies zu betrachten. Jetzt wird dies wieder verfügbar sein, und dies geschah auch erneut auf telepathischem Boden. Wir können ihnen also grundsätzlich dafür danken dies im Grunde sehr, sehr schnell aktualisiert haben. Und ich empfehle dringend, das allopathische Grunzen zu überprüfen , noch einmal anzuhalten und alle neuen Kommentare zu überprüfen, die dort hinzugefügt werden, die Ihnen wahrscheinlich auch helfen sollten. Jetzt sieht der Mod-Strukturen so aus. Jetzt könnten sie hier tatsächlich noch ein Problem sein. Das sollte alles in Ordnung sein. Und dann intime Strukturen, im Grunde eine der folgenden. Jetzt wollen wir einen Strukturtyp hier drüben. Dann lasst uns das hinzufügen. Also wollen wir das, dies ist eine Register-Methode. Die Register-Methode sieht so aus. Der Kurs MOD oder das ist MC gleich MOD Diego. Und dann löschen Sie einfach alle Eingaben, die nicht mehr funktionieren und das sollte ziemlich gut sein. Sie können sehen, dass die Codeänderungen nicht so verrückt sind, aber es gibt auch Jason-Änderungen, die wir tun können, ich glaube schon weil dies alles sein sollte , was wir hier ändern müssen. Ja. Wir können grundsätzlich in die angrenzenden Akten gehen und uns diese auch ansehen. Dies wird also natürlich die MC-Kursmerkmale und -dateien der Weltgenschaft sein. Das erste, was wir tun, ist, dass wir diesen bestimmten Ordner umbenennen müssen konfigurierte strukturelle Feature wird jetzt nur Struktur genannt. Struktur. Jetzt hat sich der Inhalt auch ein wenig verändert. Werfen wir einen Blick auf das. Aber zuallererst möchten wir den Konflikt hier entfernen , damit er nur den Speicherpool und die Größe inline hat. Und dann möchten wir auch die maximale Entfernung vom Zentrum hinzufügen. Also dieses hier möchten Sie auch drei weitere Dinge hinzufügen. Und das wird sein, dass wir im Grunde das Summgeräusch durch die absolute Höhe der Oberflächenstrukturen ersetzen . Wir können jetzt auch innerhalb der JSON-Datei definieren und beginnen, diese hier in der Höhe abzubilden. Jetzt müssen wir dasselbe für alle angrenzenden Dateien tun. Und was wichtig ist, ist, dass wir für das angrenzende einzige Haus dieses hier oben in Stichsäge umwandeln wollten , das ist sehr wichtig. Dann entferne die Konflikte noch einmal, AMA in dieser Entfernung von Mitte hier unter der Größe. Und jetzt wollen wir vier verschiedene Dinge hinzufügen das geschickte Geräusch verändern. Und das wird auch hier der US-Expansionshack sein. Das ist sehr wichtig , dass dies im Grunde genommen benötigt wird , wenn Sie die Stichsäge genau hier benutzen. Das Gleiche hier. Ich ändere das einfach. Du gehst, vergiss nicht, das Komma hier hinzuzufügen. Das sind sie. Da gehst du. Ersetzen wir das Summgeräusch hier drüben. Und dann natürlich noch einmal die maximale Entfernung vom Zentrum. Und das sollte auch in Ordnung sein. Nicht zuletzt ändert die Speicherplattform oder Plattform den Typ in Stichsäge, beseitigt die Konfiguration hier, Entfernung von der Mitte und platziert dann das Anzeigengeräusch hier . Da gehst du. Und das sollte so ziemlich alles sein, was wir in der strukturierten Spur von uns tun müssen . Lead-Strukturen sollten jetzt völlig gut funktionieren. Und ich glaube, wenn man sich das ansieht, sollte dies alles wie große Veränderungen sein. Es gibt noch eine weitere Änderung, die sehr nervig ist, und zwar mit den aktuellen Dateien genau hier. Es gibt eine Abwechslung für die Tür. Also haben wir hier eine Kirschblüten-Tür und diese hier. Und sie haben sich auch verändert. So haben sich sowohl der Block die JSON-Datei als auch die JSON-Dateien des Blockmodells für die Türen geändert. Wir hatten vier von ihnen, zwei für den unteren, zwei für die Spitze. Und jetzt gibt es tatsächlich vier für jeden. Es gibt also vier untere und für die Top. Was wir also tun können, ist, dass wir den ganzen Weg zu den externen Bibliotheken gehen können den ganzen Weg zu den externen Bibliotheken , um genau hier, Netto-Mikroprojekte, so weiter und so weiter. Unter den Vermögenswerten Minecraft können wir zunächst in die Blockzustände gehen und über die Akazientür kopieren, in diesem Fall R1. Also lass uns das einfach machen. Da gehst du. Gehen wir wieder nach unten und gehen wir zum Modellblock. Und Sie können hier die Akazientür sehen, plötzlich gibt es acht von ihnen. Es ist eigentlich wahnsinnig. Ich weiß nicht, warum sie es geändert haben, aber das ist okay. Also kopiere die auch. Und dann können wir sie eins nach dem anderen ändern. Also diese hier, die Akazientür, im Grunde, alles was wir nur tun müssen, ist, dass wir nur ein Mikrofon in MST-Kurs wechseln hier nur ein Mikrofon in MST-Kurs wechseln, Alle ersetzen und dann Akazie auswählen und diese ändern zur Kirschunterstrich blühen. Ersetze alle. Da gehst du. Und dann können wir die Kirschblüten-Tür hier löschen. Drücken Sie erneut die Umschalttaste F6, um Kirschblütenunterstriche umzubenennen. Und dann gibt der Block an, dass man geändert wird, aber natürlich kommt dann das Richtige und das ist die Modelldatei. Jetzt können wir auf den Blog-Ordner klicken, die Umschalttaste Control R drücken und dann keine Kirschblüte, sondern tatsächlich Akazie in Kirschblüte ändern . Man kann sagen, es hat alles ersetzt. Ja, bitte. Und dann können wir das Gleiche tun. Gehe wieder zu blockieren, Control Shift R, und dann wollen wir einen Minecraft MC-Kurs ändern. Jetzt müssen wir sehr vorsichtig sein, um nicht nur alles zu ersetzen, weil es auch die Eltern ersetzen wird. Und das wollen wir nicht. Wir wollen nur unten und oben ändern . Du siehst unten. Ich kann Top ersetzen. Ersetzen. Jetzt haben wir ein Eltern-Nr. Unten. Ja. Oben. Ja. einmal, Elternteil Nr. Unten. Ja, top. Ja. Bitte stellen Sie sicher, dass Sie dies richtig machen. Andernfalls wird ein Fehler angezeigt oder er wird nicht richtig angezeigt. Aber bitte achten Sie darauf, wenn Sie es so austauschen, oben und dann wieder unten und oben. Und jetzt haben wir nur Eltern, also sind wir jetzt fertig. Und jetzt müssen wir nur die Namen hier ändern. Erneut, Shift F6, um sie umzubenennen und dann immer die Akazie in Kirschblüte zu ändern. Und dann glaube ich, dass es uns hier drüben gut gehen sollte. Nachdem wir das gemacht haben. Wie Sie sehen können, ist eine kleine Schleife mühsam. Hoffentlich haben Sie keine 20 verschiedenen Türen hinzugefügt. Ansonsten. Ich meine, es tut mir leid. Es ist was es ist. Es wird wahrscheinlich nur ein sehr langweiliger Nachmittag für dich sein , dann all das umbenennst, weil mein Gott das ist so nervig, aber es ist was es ist. Türen haben sich geändert und das wird gut werden. Aber jetzt können wir die alten Jason-Akten entfernen. Und damit sind wir endlich fertig. Vorerst. Lass uns das Spiel öffnen und sehen, ob es funktioniert. Oder wir haben ein weiteres zufälliges Häkchen hier drüben. Dies liegt natürlich noch einmal dem Zufall, richtig, entfernen Sie einfach den Import Alt und Enter darauf, und dann sollte alles gut funktionieren. Mal sehen und lass uns weitermachen. Mal sehen, ob es noch andere Pfeile gibt. Es könnte wieder ein weiteres geplantes Häkchen geben, derselbe Fehler hier, überhaupt keine Sorgen. Lasst uns einfach diesen Alton Enter nach dem Zufallsprinzip entfernen, und dann lass uns weitermachen und jetzt denke ich, dass es uns gut gehen sollte. Okay, also hat Stoff angefangen. Lasst uns also einfach reingehen und sehen, ob wir eine neue Welt erschaffen können. Und das sieht gut aus. Wenn wir das erreichen, wird das in Ordnung sein. Und lass uns einfach eine neue Welt erschaffen und mal sehen. Okay, also hier sind wir wieder in Minecraft. Also lasst uns zuerst einen Blick darauf werfen und da haben wir es. Alles ist noch verfügbar. Werfen wir also nur einen Blick darauf, ob einige dieser Dinge immer noch so funktionieren, wie wir es erwarten würden. Lass uns eine Werftrute holen. Holen wir uns ein Datentablet hier drüben. Mal sehen, ob wir noch ein paar Erze finden können. Und da haben wir es. Wir haben einige Erze gefunden und es wurde auf dem Datentablet gespeichert. Das scheint also alles gut zu funktionieren. Lasst uns die Entitäten spawnen. Sie sind auch immer noch in Ordnung. Sie scheinen ziemlich gut zu reagieren. Werfen wir dann einen Blick auf die Recalc und den Blaster. Das ist immer eine Sache, die ein bisschen interessant ist, oder? D-Block-Entitäten wenn sie noch funktionieren. Lass uns etwas cool werden. Lasst uns eine Pick Axt holen. Und dann nicht zuletzt, wir uns Sorgen um Kalziumbarren und mal sehen, ob das auch noch funktioniert. Und tatsächlich funktioniert es immer noch. Ich hab Kaninchen gefunden. Ich denke, du hast ein kleines Problem hier drüben. Okay, los geht's. Das Orakel kann x auswählen, funktioniert auch immer noch. Das funktioniert also auch immer noch gut. Dann schauen wir uns mal an, ob wir ein Link-Biom und y-naught finden können . Und mal sehen, ob das ein paar Dinge für uns bringt. Also sollten wir herausfinden , dass das nicht das Richtige ist. Wir wollen mehr mit dem Zuschauer gehen. Da gehst du. Wir finden ein paar der Bäume hier drüben. Und vielleicht finden wir auch ein paar unserer Blumen. Und in der Tat können wir, da haben wir es. Interessanterweise widerstehen sich also nur ein paar unserer Blumen als Venture-Modell interessant. Eventuell mehr. Da gehst du. Und dann haben wir rosa Rosen. Also scheint alles hier immer noch so zu funktionieren, wie man es erwarten würde. Lassen Sie uns tatsächlich auch eine Struktur ausfindig machen , damit wir diese haben. Das sollte also MC-Kurs sein. Mal sehen, Haus zählen und es gibt einen Grafen Maos zur Verfügung und da haben wir ihn. So funktioniert alles immer noch völlig gut, selbst mit unserer benutzerdefinierten Schleife hier drin, was genau das ist, was Sie sehen möchten. Also ja, so einfach kann es sein, Fabric auf 119 zu aktualisieren. Okay, und das schließt den Kurs ziemlich ab. Vielen Dank fürs Zuschauen. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen, wenn du es tätest, würde dich sehr über eine Rezension von dir freuen. Ansonsten hoffe ich, dass ich Sie jetzt in möglichen zukünftigen Vorträgen sehe , derzeit ist nichts mehr geplant, aber wer weiß, es könnte ein oder zwei zusätzliche Dinge geben , die auftauchen könnten. Ansonsten hoffe ich, Sie irgendwo anders zu sehen, vielleicht auch in zukünftigen Kursen. Also ja.