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

Playback-Geschwindigkeit


1.0x


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

Modding von Kaupenjoe: Forge Modding 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.

      Skillsahre

      0:53

    • 2.

      (Java) Installation und Download

      5:52

    • 3.

      (Java) Java

      8:11

    • 4.

      (Java) Java-Syntax

      5:42

    • 5.

      (Java) Ausgabe und Eingabe

      7:28

    • 6.

      (Java) Fehler & Wie man nicht in Panik einsetzt, wenn man sie bekommt!

      6:41

    • 7.

      (Java) Ganzzahlen und Methoden der Arithmetik und Mathematik

      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) Java

      9:09

    • 19.

      (Java) Loops

      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) objektorientierte 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 Spiel mit Kurs

      1:15

    • 30.

      LÖSUNG 3: Trivia Spiel mit Kurs

      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

      5:14

    • 36.

      (Java) Lambda

      3:24

    • 37.

      (Java) Generika

      3:37

    • 38.

      (Minecraft Basics) Installation und Einrichtung und GitHub

      15:11

    • 39.

      (Minecraft Basics) Using verwenden

      4:05

    • 40.

      (Minecraft Basics) Erstellen eines benutzerdefinierten Artikels

      16:00

    • 41.

      (Minecraft Basics) einen benutzerdefinierten Block erstellen

      13:44

    • 42.

      AUFGABE 5: Block und Artikel

      1:05

    • 43.

      LÖSUNG 5: Block und Artikel

      1:09

    • 44.

      (Grundlagen von Minecraft – Kreative Tab

      2:34

    • 45.

      (Grundlagen von Minecraft

      5:58

    • 46.

      (Minecraft Basics) Blockieren von Tropfen mit Loot

      7:07

    • 47.

      AUFGABE 6: Rezepte und Loot

      1:13

    • 48.

      LÖSUNG 6: Rezept und Wurzel

      1:11

    • 49.

      (Minecraft Basics) Erweitertes Element

      12:02

    • 50.

      (Grundlagen von Minecraft – Erweiterte Blocks

      5:55

    • 51.

      (Minecraft Basics)

      3:12

    • 52.

      (Minecraft Basics) Benutzerdefinierte Lebensmittel

      3:13

    • 53.

      (Minecraft Basics)

      5:39

    • 54.

      (Minecraft Basics) Alles über Tags

      8:16

    • 55.

      (Minecraft Basics) Individuelle Treppen und Platten

      6:32

    • 56.

      (Minecraft Basics) Benutzerdefinierte Buttons und Druckplatten

      3:52

    • 57.

      (Minecraft Basics) Individuelle Zäune und Fence und Wände

      5:20

    • 58.

      (Minecraft Basics) Individuelle Türen und Fallen

      4:45

    • 59.

      (Alles über Tools) ein neues Toolset erstellen

      5:50

    • 60.

      (Alles über Werkzeuge) ein Multi-Tool erstellen (Paxel)

      5:08

    • 61.

      (Alles über Tools) Waffen, die Effekte anwenden

      2:12

    • 62.

      (Alles über Tools) ein neues Rüstungsset erstellen

      7:49

    • 63.

      (Alles über Tools) Full Armor

      4:18

    • 64.

      (Alles über Werkzeuge) Individuelle Horse

      3:04

    • 65.

      (Alles über Tools)

      6:58

    • 66.

      (Intermediate) BlockState Eigenschaften

      14:37

    • 67.

      (Intermediate) Wie funktioniert NBT

      8:59

    • 68.

      (Intermediate) Artikeleigenschaften

      5:28

    • 69.

      AUFGABE 7: BlockStates & NBT

      0:57

    • 70.

      (Intermediate) Sonderanfertigungen

      10:13

    • 71.

      (Intermediate) Hinzufügen von Elementen zum Komponisten

      1:38

    • 72.

      (Intermediate) benutzerdefinierte Blume

      2:51

    • 73.

      (Intermediate) individuelle Blumentöpfe

      3:51

    • 74.

      (Intermediate) individuelle Sounds

      7:06

    • 75.

      (Intermediate) individuelle Sounds für Blöcke

      3:48

    • 76.

      (Intermediate) individuelle Music

      4:08

    • 77.

      (Intermediate) maßgeschneiderte Blockmodelle in Minecraft mit BlockBench

      19:08

    • 78.

      (Intermediate) maßgeschneiderte Item mit BlockBench

      3:08

    • 79.

      (Intermediate) benutzerdefinierte Bögen

      3:34

    • 80.

      (Intermediate) benutzerdefinierte Befehle

      9:05

    • 81.

      (Intermediate) Spawning

      2:34

    • 82.

      (Intermediate) individuelle Fortschritte

      3:45

    • 83.

      (Intermediate) maßgeschneiderte Gemälde

      3:31

    • 84.

      (Intermediate) globale Loot Modifikatoren

      9:52

    • 85.

      (Intermediate) individuelle Flüssigkeiten

      6:24

    • 86.

      (Intermediate) Veranstaltungen

      7:13

    • 87.

      (Intermediate) Aktualisieren von Schmiede- und Parchment

      2:39

    • 88.

      (Erweiterte) Individuelle Block-Einheit

      28:29

    • 89.

      (Fortgeschrittene) Individuelle Rezepturen erstellen

      24:03

    • 90.

      (Fortgeschrittene) Custom Wood

      8:19

    • 91.

      (Fortgeschrittene) benutzerdefinierte Zeichen

      6:58

    • 92.

      (World Gen) einen benutzerdefinierten Baum erstellen

      9:43

    • 93.

      (World Gen) Custom Tree Generation

      11:40

    • 94.

      (World Gen) Individuelle Blumenerzeugung

      5:31

    • 95.

      (World Gen) Individuelle Ore

      7:07

    • 96.

      Exportieren deines Mods

      1:25

    • 97.

      (Zusätzliche Themen) Forge aktualisieren (1.18.1)

      5:33

    • 98.

      (Zusätzliche Themen) Hinzufügen von XP zu Blöcken

      3:26

    • 99.

      (Zusätzliche Themen) Hinzufügen eines benutzerdefinierten Menüs

      6:35

    • 100.

      (Zusätzliche Themen) Hinzufügen von benutzerdefinierten grundlegenden Konfigurationen

      10:50

    • 101.

      (Weitere Themen) Hinzufügen transparenter Blöcke

      3:45

    • 102.

      (Weitere Themen) Animierte Artikel hinzufügen

      5:18

    • 103.

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

      5:43

    • 104.

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

      8:44

    • 105.

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

      25:24

    • 106.

      (Weitere Themen) Hinzufügen von Entity mit Geckolib und Blockbench

      11:05

    • 107.

      (Zusätzliche Themen) Hinzufügen von Entity

      9:50

    • 108.

      (Zusätzliche Themen) Tameable Organisationen

      11:51

    • 109.

      (Zusätzliche Themen) Rideable Organisationen

      8:55

    • 110.

      (Zusätzliche Themen) Hinzufügen eines benutzerdefinierten Bootes

      11:08

    • 111.

      (Zusätzliche Themen) Entity World Generation

      3:20

    • 112.

      (Zusätzliche Themen) Hinzufügen von individuellen Trades für Dorfbewohner

      4:07

    • 113.

      (1.18.2) Forge auf 1.18.2 aktualisieren

      11:02

    • 114.

      (1.18.2) Individuelle Strukturen (Arbeiten durch Tutorial)

      31:56

    • 115.

      (1.18.2) Individuelle Strukturen (Einzelteil)

      8:17

    • 116.

      (1.18.2) Individuelle Strukturen (Jigsaw

      13:14

    • 117.

      (1.18.2) 3D-Rüstungsmodelle

      12:25

    • 118.

      (1.18.2) Kundenspezifische Dorfbewohner

      10:06

    • 119.

      (1.18.2) Baby

      4:37

    • 120.

      (1.18.2) Benutzerdefinierte Geodes

      5:49

    • 121.

      (1.18.2) Block, der mit Redstone interagiert

      5:05

    • 122.

      (1.18.2) Individuelle Block

      13:22

    • 123.

      (1.18.2) Loot in individuellen Strukturen

      4:01

    • 124.

      (1.18.2) Fehler beheben

      3:43

    • 125.

      1.18.2 UPDATE AUF 1.19

      34:03

  • --
  • 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.

647

Teilnehmer:innen

--

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! Du lernst nicht nur die Programmiersprache Java sondern auch die effektive Verwendung der the von Minecraft Modding für 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 den Basiskonzepten des Kurses lernst du wie du Elemente und Blöcke, individuelle Rezepte und Tool Minecraft hinzufügen kannst! Die Intermediate Konzepte sind, wo du wirklich einige erstaunliche Fähigkeiten für das richtige Minecraft Modding mit Forge 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 Forge 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

Skills dieses Kurses

Entwicklung Programmiersprachen Java
Level: All Levels

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. Fertigkeiten: Hallo, ich bin Nico hat mich beim Masterstudenten für Informatik und einem begeisterten Minecraft-Spieler erwischt . Du könntest mich von meinen YouTube-Kanal-Tutorials von Cotton Joe kennen, in denen ich Tutorials zur Mikrowellenmodellierung mache. Nun, jetzt werden wir noch größer werden, denn das ist meine Minecraft-Modeling-Klasse 118 mit Forge. Hier erfahren Sie alles, was Sie tun müssen, um einen fantastischen und erstaunlichen Minecraft-Mod mit der am häufigsten verwendeten Minecraft-Morgen-API, Forge, zu erstellen. Absolute Anfänger können damit beginnen, die Java-Einführung des Anbieters zu durchlaufen , die Ihnen wirklich helfen wird einige der Grundlagen zu verstehen. Am Anfang lernen wir einige einfache Konzepte wie das Hinzufügen eines Elements, das Hinzufügen Blöcken, Rezepten und sogar benutzerdefinierten Tools kennen. Dann werden wir uns fortfahren, indem wir uns benutzerdefinierte Blockmodelle, kundenspezifische Pflanzen und so viele andere coole und interessante Funktionen ansehen kundenspezifische Pflanzen und so viele . Am Ende werden wir uns sogar mit fortgeschrittenen Themen wie Block-Entitäten und Welterzeugung befassen . Worauf wartest du also? Melde dich jetzt für diesen Kurs an, und wer weiß, dass dein MOD vielleicht der nächste große Hit sein wird. 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) (Java): 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. Nun, 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, der bestimmte Datentyp von A, 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 auf der Welt, haben Sie bestimmte Blockpositionen auf der Welt die etwas zwischen diesen Blockpositionen geschrieben haben, weil natürlich ein Block ist nicht wie ein einziger Punkt im Raum, hat dort wie ein bisschen einen Farbverlauf. 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 die verwendeten nicht mehr so oft gesehen. Ein Byte ist also acht Bit und 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 eine kleine Zahl, die zwischen negativen 32000 und plus 32000 speichern kann . Und dann hingegen ist eine lange, die, wie Sie sehen können, von negativen neun Billionen bis zu positiven Billionen neun Billionen Billionen Billionen speichern kann , was hübsch ist, 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 im Grunde genommen Dezimalzahlen oder ähnliches verwendet 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 haben. Ein boolescher Wert kann entweder wahr oder falsch sein, daher kann er 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 eine 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 und Sonderzeichen speichern , reguläres Komma. 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. Und was 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 zu erkennen. Was heißt das? Nun, es hat einfach keinen Wert ist sozusagen undefiniert. 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 ich hier vermitteln wollte, aber die Datentypen, ansonsten hoffe ich, dass dies für Sie nützlich war und Sie etwas Neues lernen und wir sehen uns in der nächste 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 Grundlagen 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 uns tatsächlich einige Dinge 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. Es wird uns 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 Halloworld-Programm schreiben und sie werden so sein, als warte 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. Alles klar, also führe diese Hallo Schüler aus, 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 nicht einfach noch einmal System aus und ich kann anfangen, dies zu schreiben , und Sie können sehen, dass dies so ist, als die gewählte Rate ob die gewählte Rate 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? In einer System-Out-Druckzeile können Sie sehen, wie schnell das manchmal funktioniert. keine Sorgen. 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. Erneut, schließen Sie es einfach automatisch mit der Tabulatortaste ab. Und jetzt kann ich so etwas sagen, wie einen Wert auszugeben. Und jetzt sieh dir das an. Ich kann über die Saite hinausgehen. 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 ist Scanner in gleich einem neuen. Und dann noch einmal scannern Sie mit einem großen S mit einem Kapital S innerhalb der Klammern. Also werden wir Klammersystem.in erstellen und dies mit einem Semikolon beenden. 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 von Java util Scanner sehen. Dies wird im Grunde importiert. 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 sagen wir System Out Dot Print-Zeile, geben Sie Ihren Benutzernamen ein, ungefähr so. Und was wir dann sagen werden, werden wir eine neue String-Variable namens input erstellen . Und das werden wir dem Scanner gleich machen. Als Nächstes. Da gehst du. Okay, also muss als nächstes, wie Sie sehen können , so geschrieben werden, um die nächste und dann Klammer zu öffnen und zu 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, um das im Grunde zu testen, 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, dass dein Benutzername wahr ist. 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 Dinge tun werden und dann Dinge tun , je nachdem, was der Input ist 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 nicht in Panik animierst!: 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 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. 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, das erwartet, wenn Sie programmieren, dass beim ersten Mal etwas funktioniert , tatsächlich sehr misstrauisch wird. Weil es sehr selten ist, dass wenn Sie an irgendeinem Code arbeiten , es beim ersten Ausführen funktioniert. Also bitte, zuerst, blieb immer ruhig, wenn du einen Fehler bekommst. Ist 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, in Zeichen oder einer anderen Zeile 11, Zeichen acht. Das ist also wirklich verdammt cool. So können wir sofort herausfinden , wo sich dieser Pfeil befindet. Kann 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 habe, was 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 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 Fehler bekommen und Sie haben den Post-Prozess mit dem Exit-Code 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? Und Ausnahme und Fehler, irgendeine Art von 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. Lass uns einfach etwas geben, das ich dir geben wollte, was sehr wichtig sein kann, oder? Aber 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 Fehler gibt. Wenn Sie unterwegs Fehler bekommen und um Hilfe bitten, ist das völlig in Ordnung. Ich wollte nur dieses Jahr besonders erwähnen , 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) Integer und Arithmetic und Mathematik: Oder ich komme hier zur Java-Einführung für den Minecraft-Modellierungskurs zurück hier zur Java-Einführung für den . Und in dieser Vorlesung werden wir uns ganze Zahlen ansehen. Wir werden uns Mathematik ansehen, 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 von Addition 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 . Wie wenn du anfängst, diese zu mischen, aber das sollte 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 von n verwenden. Was ich tun werde, ist, dass ich das alles in Ordnung bringen werde ? 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. Wählen Sie dieses Steuerelement wieder aus 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. Gehen wir einfach durch C 2005. Das ist eigentlich alles in Ordnung. Und jetzt stellt sich die Frage, nun, was ist der fünfte Typ? Nun, 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. 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 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. Wir sollten also ganz am Ende hier ein 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 kriegst den Kosinus, du bekommst ein paar Exponenten. So können Sie etwas an die Macht von e Logarithmus 10 setzen. Als ob es hier ein paar verrückte Sachen gibt, zufällig runden. Selbst nach dem Zufallsprinzip gibt es sogar Konstanten wie e und Pi. Es gibt also eine Menge 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. 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 lasst uns einfach 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 lasst uns das einfach ausdrucken. Und dann, weißt du, x minus minus funktioniert natürlich auch. 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 hier für Minecraft-Morgen. 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 . Nun, zum Beispiel werden wir hier einen neuen booleschen Wert erstellen. Zum Beispiel mögen die Vorträge. Vorträge, dafür gesorgt, dass dies richtig geschrieben ist 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. Wem gefällt diese Vorträge? Und dann kann ich Control D drücken, um dies zu duplizieren. Und zum Beispiel können Sie sagen, dass Sie eine Frage im Q und a gestellt haben , also könnte ich das zum Beispiel nehmen. 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 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 wie ein Wahr geben auch größer oder gleich ist. 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, was dies in Betracht gezogen würde dies natürlich in unserem Fall stimmen , aber wenn sich Ihre Punktzahl ändert, ändert sich die Antwort hier, oder? Denn sobald das nicht mehr so ist, als ob es 49 ist, bestehen Sie 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 . Das ist sehr wichtig. Und hier ist das natürlich falsch. Da ist 98 natürlich 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. Das ist also im Grunde das Deklamationszeichen hier. Obwohl. 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 ergibt natürlich Sinn. Wenn das also etwas verwirrend ist, schreiben Sie es aus, als ob Sie tatsächlich einen Schreibertext schreiben. Wenn die fehlgeschlagene Klasse wahr ist, da die Klasse natürlich falsch ist. 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. Wo gibt es 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 gaben 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 heißt, 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? Wenn entweder der Punktestand größer oder gleich 150 ist oder nicht, impliziert dies. 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. 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 werden uns jetzt die logischen Operatoren ansehen . 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 angesehen 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? Jemand, der ein Fan ist, würde den Kurs beenden. So fertige Kerne und Eva Review, das sollte auch insgesamt sinnvoll sein. Und jetzt hat jemand, der vielleicht lernt, wie vielleicht viel lernt , die Vorträge gesehen 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, 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-Morgen. 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 mal sehen, ein Programm schreiben müssen, das diese Werte dieser beiden Prüfungen bewertet. Und im Grunde sagt: Hey, du hast Prüfung 1 versagt oder hast nach Prüfung 2 gescheitert oder hast es hinter der Prüfung gemacht. 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, wenn wir hier versteckt sind ist nach den schließenden Klammern, setzen wir 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 jetzt können wir als etwas anderes schreiben. 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 der if-Anweisung 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 eine LLC oder am Ende hinzufügen 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 dieses Jahr, oder? Denn das andere passiert 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 durchführen und wir sollten eine frühere Prüfung ablegen. Und natürlich bekommen wir das weil 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 dasselbe 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, 0, 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, Sie haben bestanden, 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 das falsch ist, dann sonst und dann eine andere wenn Aussage im Grunde nur aus Gründen der Argumentation ist, sagen Sie einfach wahr hier. Natürlich würde das auch funktionieren, aber weißt du, und dann können wir etwas anderes sagen und diese im Grunde zusammenketten, damit du es sonst machen kannst , wenn sonst, wenn sonst, und dann wird der letzte immer sein sonst oder du kannst 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. Jetzt fangen wir damit an und jetzt erwartet es tatsächlich , dass wir eine Prüfung ablegen. Leider 32, eigentlich nicht 320, sondern 32. Nun, und dann waren die Ergebnisse für Prüfung zwei tatsächlich sehr viel besser. Sie waren leider 68, nur ein bisschen, nicht ganz genug für 69. Und dann können Sie sehen, dass Sie Prüfung 1 und Prüfung 2 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 natürlich der Kern es Up-Repository oder ein 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, einige If-Aussagen zu machen und nur eine ganze Reihe cooler Sachen zu machen. Damit kannst du 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 Rekorde, 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 also 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 also 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 zu tun, 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, sind nächstes gelandet, 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 gibt. 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 Strings: 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 String-Variable namens Satz erstellen. 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. Warum nicht? Und das erste, was schreien wird. Das bedeutet also , dass alles hier, ich werde in Großbuchstaben verwandeln. 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, nur um der Mitte willen, gibt das auch noch einmal den Satz aus. Lasst uns auch einen Kommentar hinzufügen, oder? Das ist also Groß- und Kleinbuchstaben. So ziemlich einfach. Wir können die gesamte Zeichenfolge einfach in Großbuchstaben umwandeln, eine ganze Zeichenfolge in Kleinbuchstaben. Und dann sollten wir hier 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 Satzvariable zurück. Sie ändern die Variable nicht an sich. Wenn wir also Dinge wie x gleich x plus 1 hatten, haben wir tatsächlich x ist 0 oder x plus gleich 1 geändert. 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 Satzpunktindex von, wir können sehen, dass es hier ein paar verschiedene Arten von Index gibt, aber wir wollen diese Zeichenfolge 1. Es spielt übrigens keine Rolle, welche Sie hier wählen, können Sie sehen , dass, sobald sich 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? Aha, 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 hat. Es gibt ein paar andere Orte , an denen wir das benutzen müssen. Aber wenn wir anfangen, bei 0 zu zählen, können Sie sehen, dass es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ist. 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 in der Tat sehr interessant, wenn wir wirklich darüber nachdenken. Und was wäre, wenn wir tatsächlich sind, wir sind, wir sind es nicht, das ist nicht richtig. Wo wir sind, ist, dass wir 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. Vielleicht wollen wir sehen, ob ein bestimmter Satz mit etwas beginnt oder endet. Das ist eigentlich sehr einfach, wir werden nur noch einmal den Ersatz durch Control D duplizieren . 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 erraten, was der andere ist , natürlich endet, was, sagen wir ein Großbuchstaben a, was in diesem Fall natürlich falsch ist, wäre wahr, das sollte falsch sein. Lassen Sie uns also nur aus Argumenten suchen . Und dort kann man wahr und falsch sehen. Ganz einfach zu machen. Was ist, wenn wir einen String haben und das vorerst S nennen werden, 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, leere Druckzeile, könnten wir natürlich auch S-Punkt leer in Ihrem, warum die Mühe machen, das ist völlig 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, denn das ist leer. 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 hier r2 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 bin ich mir sicher, dass Sie sich daran gewöhnen werden. Und lass uns einfach noch was anderes machen. Und das wird die Teilzeichenfolge sein. Interessanter Teilstring. Was bedeutet 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 am gibt, arbeite ihn durch und sieh nach , ob du ihn nicht reparieren kannst. Aber das wäre es so ziemlich für die Strings und diese Strings Methodenvorlesung. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen, wenn du eine Rezension von dir sehr geschätzt hast. Ansonsten sehe ich Sie jedoch in der nächsten Vorlesung. Ja. 16. (Java) Casting: Oder ich begrüße zurück zur Java-Einführung für Minecraft-Modellierung. 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. So möchten wir zum Beispiel 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. Deswegen wollen wir gleich hier zurück zum Float. Also gehen sie hin. 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. also mehr Informationen zu weniger Informationen zu erhalten, kann das einige Konsequenzen haben, sagen wir einfach. Das ist also immer das, was man im Hinterkopf behalten 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 ist eine Ganzzahl, die als Geschenk bezeichnet wird, sagen wir, unser Vater möchte uns ein Geschenk von X Betrag geben. 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 zwei. also 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 als erstes 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, vielleicht 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. Aber 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): In Ordnung, willkommen zurück zur Java-Einführung zur 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 kämpfe auch damit, als wir das gelernt haben. Und am Ende der Vorlesung werde ich tatsächlich eine kleine Geschichte darüber erzählen . Aber vorerst, uns daran, dass wir E3-Strings 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ß, was du alle gedrückt halten kannst und, weißt du mehrere Dinge gleichzeitig ändern, aber dann ändern sie sich alle in dieselbe Nummer und es ist alles Mögliche vermasselt. 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 kein 100 Prozent der 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 Sie wollten eine Reihe von Fragen und einen Zeichenfolgenbereich von Antworten erstellen. 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? 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 ich kann damit einfach weitermachen , oder? 23. Und dann lasst uns einfach, naja, wie kann ich das richtig ausgeben? Wie, wie ist das möglich? Nun, System Out Print-Line, und dann können wir einfach Fragen sagen, keine Fragen, los geht's. Und dann ist zum Beispiel drei Jahre jetzt 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. Ich habe 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. Aber das ist eigentlich alles was man 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 . In der Tat sehr interessant. Und was wir dann tun können, ist zum Beispiel, dass wir die Antworten hier 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 in eine 0 zu ändern. Das ist vollkommen in Ordnung. Alles was wir jetzt tun können ist, naja, okay, dann können wir das einfach so neu zuweisen, damit wir das nehmen können. Ich nehme das einfach. Eigentlich schreibe ich es diese Fragen auf. Wieder einmal entspricht Klammer 0 zum Beispiel wie alt ist Ian? Msc, Gregor, gleich im Jahr 2020. Das ist einfach 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 also 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 sozusagen auch die Größe der Länge dieses Arrays dieser Liste ermitteln, indem wir Fragen so lang stellen, wie Sie hier sehen können. Und wir können uns das einfach 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. Dies ist also 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 legen , die tatsächlich nicht existiert, erhalten wir einen Array-Index außerhalb der Grenzen. 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 dieser Bereich 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 gib mir einfach, hol sie raus, 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, weiß. Oh, ich verstehe es nicht. Deshalb muss ich es nicht lernen. Deshalb ist es nicht wichtig, keine. Und 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 Vorstellung von Bereichen 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 steckst verschiedene Elemente in, im Grunde mit verschiedenen Indizes oder , weißt du, so etwas, oder? Aber sonst wäre das 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. 19. (Java) Loops: In Ordnung, willkommen zurück zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden wir über Loops sprechen. Was wir für diese Vorlesung benötigen sind beide dieser String-Arrays, die wir zuvor für die Fragen und die Antworten gemacht haben . Aber bevor wir etwas 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 also 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. Aber 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 einen booleschen Ausdruck haben und dann ein Inkrement. Was passiert ist , dass ich auf 0 eingestellt bin. Was überprüft wird, ist, 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 für eine 100 nicht mehr ausgeführt. Und das ist irgendwie die Idee. Und das ist echt cool, oder? Als könnten wir das ganz einfach machen? Und jetzt werde ich dich absolut umhauen. Jetzt werde ich Ihnen sagen, nun, geben Sie alle Fragen und Antworten aus und Sie werden nur die Systemausdruckzeile besetzen. Jetzt Frage 0, antworte 0, genau wie wir es zuvor hatten. 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 jeden gewünschten Index zugreifen jeden gewünschten Index und auf welchen Index diese ganze Zahl annimmt. 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 Fe. 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. Wir werden nur dafür schreiben, ich kann String-Fragen in Westpolen sagen . Und die Art, dies zu lesen, ist für jede String-Frage in Fragen, so würden Sie sie 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. Aber was wir tun werden, ist wir einfach so etwas wie die folgende Systemausdruckzeile sagen werden. Willst du weitermachen? Aber also werden wir einfach sagen: Hey, will die Person weiter benutzen? Wir wollen weitermachen. Und dann werden wir einfach sagen, 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 setze das eigentliche Keyword fort, sonst werden wir brechen. Dies ist ein Beispiel für das Schlüsselwort Continue und the break. Das Continue Schlüsselwort ignoriert im Grunde alles, was danach in der Schleife kommt , und springt zurück an den Anfang der Schleife, wo das break-Schlüsselwort 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 dies natürlich eine Endlosschleife, oder? Solange ich also tippe, ja, das wird so weitergehen und sobald ich etwas anderes eintippe, wird es daraus ausbrechen. Das ist also irgendwie die Idee dieser While-Schleife hier. Werfen wir einen Blick darauf, damit ich tippen kann. Ja. Und ich kann tippen, ja. Und ich könnte mich eintippen. Ja. Und dann mache ich hier einen Fehler und ein OH, nein, plötzlich stoppt der Code. 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 While-Schleife und Sie haben eine Menge Continue und Pausen 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 eine etwas andere Weise zu 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. Vorerst 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 gut werden. 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) Objektorientierte Programmierung: Oder ich begrüße 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 ist weitermachen und den Sprachgebrauch verstehen wenn Sie mit Leuten sprechen, die Programmierung kennen und wenn ich damit fortfahre, also besonders im Minecraft-Teil dieser Vorlesung oder dieses Kurses, sind Sie werde sehen, dass ich grundsätzlich immer die Begriffe verwenden werde, die zur Verwendung notwendig sind. Also Klassen, Methoden, Objekte, solche Sachen, und du solltest wissen, was das sind. Das erste, woran wir denken 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 in Klassen kann vererbbare Funktionalität, die Methoden, Variablen aus anderen Klassen sein würden. Und wir werden zwei grundsätzlich Theoriebeispiele dafür sehen . Und dann werden wir uns in späteren Vorträgen auch einige Praxisbeispiele ansehen . Nun, 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 in Ordnung sein und niemand wird damit verrückt werden. Wir müssen dabei nicht zu pedantisch sein, oder? Methoden oder Funktionen definieren also grundsätzlich spezifisches Verhalten für ein Objekt, und Methoden können 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 eine Art allgemeine Idee, Felder oder Attribute, da 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 wieder einmal, all das werden wir natürlich auch live 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. Aber die Idee ist , dass wir vielleicht einen Tierunterricht haben , 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 so sein, 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 ein Objekt 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. Es gibt, Sie können sehen, dass es sich um zwei verschiedene Objekte oder zwei verschiedene Instanzen der Dog-Klasse handelt zwei verschiedene Objekte oder . 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? Was wäre schon das Ende der Vorlesung? Eigentlich ist das Wichtigste an dieser Vorlesung, lass mich einfach schnell zurück hierher gehen genau 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. also keine Sorgen. Sie haben also auch Zugriff auf diese beiden niedlichen Hundebilder. 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 wird es also für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und Neuronen sind das Neue. 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. Zuallererst 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. Zum Beispiel könnten wir 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 jemand wie eine öffentliche Leere. Und dann werden wir zum Beispiel, damit wir Felder und 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 dachte, du solltest 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? Aber 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 etwas 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, WAF oder rassigen Punkt speichern . Sollte alles Sinn ergeben. 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: Ordnung, willkommen zurück zur Java-Einführung hier für Minecraft-Morgen und in dieser Vorlesung werden wir uns mit Zugriffsmodifikatoren befassen. Sie benötigen also den gesamten Code aus der letzten Vorlesung. Keine Sorge, dies steht Ihnen natürlich als Ressource zur Verfügung. Schauen Sie sich das auf jeden Fall an und dann springen wir 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 können wir einige Felder außerhalb dieser Klasse nicht veränderbar oder modifizierbar 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 sind, können wir immer noch auf dieses Feld hier im geschützten Schlüsselwort verweisen dieses Feld hier im geschützten Schlüsselwort oder Klassen , die sich davon erstrecken. Im Grunde könnten Säuren, 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 ziemlich dasselbe, 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, Alter, Alter zu bekommen. Und jetzt ist hier das sehr interessante Ding. Natürlich funktioniert das nicht. Wir können einer Methode nichts zuweisen. 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 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 nur Klasse genannt 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 wieder ändert sich Ihr Dr. Human Year Multiplikator nicht von Hund zu Hund. Lassen Sie uns nun die Tatsache ignorieren, 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. Dies muss es wirklich nicht ändern, denn jetzt haben wir wieder das gleiche Problem, also Hunde, Ihr 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 . Denn wenn es sich um eine endgültige Variable handelt, kann sich der Wert nie ändern, nachdem er 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 das Folgende, oder? 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, oder? Wo wir den Multiplikator hier verwenden können, werden wir die altersvariablen Zeiten zurückgeben, die der Arzt hier, menschlicher Arzt, Multiplikator für das menschliche Jahr genau dort ist. Jetzt können wir das einfach nennen , man kann 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. 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 der Mikrowellenmodellierung 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 viel klarer. Und noch einmal kann ich Ihnen sehr raten, ein paar Sachen auszuprobieren. Feuere einfach Intelligenz an. Machen Sie ein paar Klassen und probieren Sie einfach ein paar Sachen aus. Mache ein paar Klassen, mache ein paar Felder, ganze Menge 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 lernst etwas Neues. 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, zuallererst ein Polymorphismus und Vererbung für sehr große Wörter, oder? 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 ungefähr das Gleiche Hier. 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 des Arguments, dass jemand sagt: Weißt du was, ich will wirklich auch einen Katzenunterricht weil ich kein Hundemensch bin, 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 und Mimi Chao und du kommst an einen Punkt, an dem du viel Code kopierst und normalerweise Eine Menge Code zu überschreiben ist ein Zeichen dafür, dass Sie etwas optimieren können. 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 und 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 die, lass es uns 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 es sich um eine geschützte Variable handelt, und Sie dann 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. Jetzt können Sie sehen, dass b-a, diese Hundeklasse, 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 es tatsächlich schon sehen können , um einfach zu sagen, 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 also in diesem Fall wirklich perfekt. Dann könnte zum Beispiel etwas anderes, vielleicht das, sowohl das Alter als auch der Geburtstag , auch in der Tierklasse sein. Das würde auch völlig gut funktionieren. Und der Rest hier ist eigentlich total okay. Ich werde mich anpassen und das ein bisschen anders machen. Also möchte ich normalerweise die Konstruktoren an der Spitze der Klasse haben, oder? Kommen Sie also 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 übereinstimmt , 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 Katzenschnurrhaare eine neue Katze sind, oder? So neue Katze hier. Und das ist zum Beispiel dann Whiskers Dot PNG. Und dann wird der Name Schnurrhaare sein, oder? Und dann gab es vielleicht etwa 12 Jahre alt oder so ähnlich. Und dann können wir zum Beispiel einfach Whiskers dot nennen und man sieht, dass ich alles altern 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, kommuniziert, aber was ist jetzt so interessant daran, dies zu haben? Nun, lass uns darüber nachdenken, oder? Also haben wir die Wolf-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 haben nur ein Geräusch gemacht, aber wir können das nicht tun. Und eine andere wirklich interessante Sache ist , dass die Tierklasse definiert wird. Aber ich kann immer noch etwas wie Schnurrhaare sagen , Adamic Sound, oder? 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 die Mix-Sound-Methode hier 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 langsam, wir haben hier etwas anderes. Und was Sie dann sehen werden, wenn ich tatsächlich nenne, zum Beispiel Benji dot make sound. 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 sowohl Methoden als auch Felder erben Europa darin macht es nur so, dass zuerst 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 der Hund als auch das Tier reichen. 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. Speichern wir einfach Jenny Dot PNG. Jenny, vielleicht ist Guinea 15, ganz 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 Wut, coole Tiere. 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 diese zurückbekommen will, bekommen Tiere, Dot einen, zum Beispiel einen Ton machen. Es macht sie also zu ihrem Job, oder? Und die Get-Methode hier bringt dir ein Tier zurück. Aber wir haben noch einmal gesehen, dass das Aufrufen einer Methode hierfür tatsächlich die spezifischste Methode verursacht hat , die es kann. Obwohl dies als Tier gerettet wird , wird Gracie hier als Tier gerettet, das Mikrofongeräusch wird es so schaffen, dass Gracie sich gerade bewegt. Das ist also ziemlich cool. 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: Trivia mit Kurse: Alles klar, Willkommen zur dritten Aufgabe hier zur Java-Einführung. Und das ist eigentlich eine ziemlich unkomplizierte 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 noch einmal 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: Trivia mit Kurse: 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. Wenn das nicht genau wie deins aussieht , ist das absolut in Ordnung. Dies ist nur ein Beispiel dafür. Und dann das Gleiche mit der Quizspielrate. 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 ist der Donut genau hier, wo wir nur eine neue ArrayList haben, und dann fügen wir eine Reihe von diesen Trivialen genau dort zu dieser aktuellen Liste hinzu. 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 , genau dort, 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 fragen wir am Ende hier: 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, sich 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 im Grunde 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 wieder nur 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 jede Menge 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. Erstellen wir zum Beispiel einfach eine Schwierigkeitsstufe, 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 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. Schwierigkeit, 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 . So steht Ihnen das 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 wird also wirklich enden, 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: 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, dass es ziemlich wichtig sein kann . 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 das Folgende. 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) 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 lassen Sie uns dafür einfach einen Konstruktor generieren. Klicken Sie also mit der rechten Maustaste auf Konstruktor 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, du hast das nützlich gefunden und du lernst etwas Neues, wenn du ein Anfänger bist. Ich hoffe, dass du jetzt die Java-Foundation hast, die du brauchst, 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. (Minecraft Grundlagen) Installation und Setup und GitHub: Alles klar, Willkommen bei der Mikrobe Portion für den Forge 118 Kurs. Und in diesem Vortrag werden wir alles herunterladen und die Entwicklungsumgebung einrichten die Entwicklungsumgebung einrichten , damit er das Mikrobenmodell starten kann. Unabhängig davon , ob Sie sich die Java-Einführung angesehen haben oder nicht , müssen wir dieses Mal den JDK 17 herunterladen. Denn weil Minecraft 118 und höher wahrscheinlich hier fertige Höhle und Teenager benutzen würde . Also habe ich ihn wieder hier adoptiert. Sie laden einfach die neueste Version herunter und stellen sicher, dass Sie auf Tamarin sind, ist 17 genau hier. Wenn Sie auf einem anderen sind, sollte es theoretisch Ihr Betriebssystem und all das erkennen. Andernfalls können Sie immer noch zu den anderen Releases gehen und dann Ihr Betriebssystem und Ihre Architektur auswählen , und es sollte Ihnen gut gehen. Ich empfehle unter Windows, dass Sie einfach das MSI herunterladen und dann im Grunde genommen auf Ihrem PC installieren wie jedes andere Programm im Grunde genommen auf Ihrem PC installieren. Eine Sache, die ich wärmstens empfehle, ist zu sagen: hey, ja, wir möchten, dass die Java-Home-Variable genau hier eingestellt wird, denn das wird nur viele Probleme weiter unten sparen . Denn wenn die Java-Home-Variable einmal eingestellt ist, macht sie unser Leben im Grunde nur ein bisschen einfacher , nachdem sie installiert wurde, wir brauchen auch eine integrierte Entwicklungsumgebung von IDE und wir werden gehen um IntelliJ idea zu verwenden. Ich empfehle dringend, dies auch zu verwenden , da es sonst einige Unterschiede in den Bändern geben kann einige Unterschiede in den Bändern , die sie wie Tastenkombinationen drücken müssen. Wir sind auch dort, wo Sie bestimmte Dinge in Ihrer Entwicklungsumgebung finden . Sie wählen die Community-Version aus, da sie kostenlos ist und auf Open Source basiert. Es ist also perfekt für uns. musst du nichts bezahlen. Es ist absolut kostenlos. Laden Sie es einfach herunter und installieren Sie noch einmal ein anderes Programm auf Ihrem PC , bevor wir bis heute zum ersten Mal öffnen Jetzt müssen wir Micro Forge herunterladen, in diesem Fall für eine Mikrobe aus dem 19. Jahrhundert. Wenn Sie sich das in Zukunft ansehen, sind wir vielleicht schon bei einhundert, achthundertzweiundzwei oder sogar höher. Wer weiß es? Was definitiv höher sein wird ist diese Version genau hier, Moment sind wir jetzt bei 39.5 , das ist völlig in Ordnung. Was wir tun werden, ist, dass wir den NDK herunterladen werden. Aber bevor wir das tun, ein sehr wichtiger Hinweis hier aus der Zukunft. Bitte benutze einhundertachthundert eins , wenn du den Kurs beginnst. Ich kann das wärmstens empfehlen. Wenn Sie dies nicht tun und 1800s zwei verwenden, funktionieren einige Dinge nicht wie die Tags, das erweiterte Element, das wir im Grunde sowohl mit den Tags als auch für die Weltgeneration verwenden werden. Jetzt, sobald ich dran bin, möchte ich sehr bald dran sein. Aber hoffentlich gab es in Zukunft ganz am Ende des Kurses einen Abschnitt, ganz am Ende des Kurses einen Abschnitt, der 1820er Jahre ist, wenn man das tatsächlich sieht. Werfen Sie also einen Blick auf alle Vorträge. Und wenn Sie am Ende einen Abschnitt sehen Das ist wie 1182 Updates, dann können Sie dort hineingehen und tatsächlich den gesamten Kurs durchlaufen. Und dann jedes Mal, wenn es ein bestimmtes gibt, ein Thema, das nicht wie Tags funktioniert. Es wird die Tags-Vorlesung und alle Vorträge der Weltgeneration sein. Dann kannst du grundsätzlich alles andere überspringen, zum Ende des Kurses gehen, diese machen und dann zurückfahren. Ich empfehle dringend, dass die beste Wahl darin besteht, vorerst bei einem 1800er zu bleiben einem 1800er zu und dann den gesamten Kurs einmal zu durchlaufen, dann wird es auch eine Vorlesung sein, in der ich in 182 wechseln werde die Zukunft ganz am Ende des Kurses. also keine Sorgen. Lasst uns einfach eine sehr kluge Idee machen. Ansonsten steht es Ihnen natürlich frei, es zu wählen, aber bitte beachten Sie, dass einige Dinge im 19. Jahrhundert nicht mehr so funktionieren wie in 181. wollte ich nur sagen. Jetzt lasst uns wieder alles einrichten. In Zukunft. Sie werden wahrscheinlich zwei Fenster haben, eines der neuesten und dann empfohlenen Fenster, wählen Sie immer den empfohlenen Build aus , der noch nicht auf eine ausreichende Version aktualisiert wurde. Damit sie im Grunde sagen: Hey, das ist die empfohlene Version, das wird gut, aber es wird immer der M-Cdk sein, den wir wollen. Und dann müssen wir hier nur fünf Sekunden warten bis wir die ZIP-Datei herunterladen können. Und dann klicken wir oben auf die Schaltfläche Überspringen und dann auf den Zip-Firewall-Download. Ich habe es bereits vorbereitet, also habe ich meine Zip-Datei genau hier. Also klicke ich mit der rechten Maustaste und extrahiere dann, um hier einen verrückten Namen zu fälschen. Und ich werde das natürlich auch umbenennen, einem 1800er Jahren, sie. Dann können wir die Zip-Datei genau hier löschen. Dies ist der Inhalt des Projektordners oder den Sie haben werden. Und was wir tun können, ist, dass wir all diese löschen können, die Credits, die Änderungssperre, die Lizenz und die Redmi, weil es spezifisch zu fälschen gibt , waren tatsächlich oder ich persönlich, ich werde meine eigenen haben Lizenzdatei und all das in nur ein bisschen darüber, nachdem das eingerichtet wurde, können wir jetzt zum ersten Mal Intelligenz starten. Jetzt wird das Fenster, mit dem Sie begrüßt werden wahrscheinlich ein bisschen anders aussehen als Sie. Was Sie jedoch definitiv haben werden, sind drei Schaltflächen, die Schaltfläche „Neues Projekt“, die Schaltfläche „Öffnen“ und sie erhalten von der VCS-Button. Wir möchten auf die Schaltfläche Öffnen klicken und wir möchten zu diesem Verzeichnis navigieren. Also kann ich es auch einfach kopieren, hier hineinlegen und dann genau hier diesen Ordner auswählen, wo die Quellordner in diesem hier okay sagen, wir werden sagen, wir werden sagen, wir vertrauen dem Projekt, dann öffnet sich ein neues Fenster. Jetzt wird es im Hintergrund passieren. Möglicherweise bekommen Sie Fehler, vielleicht bekommen Sie hier etwas Rotes. Mach dir darüber keine Sorgen. Wir werden sie alle Schritt für Schritt beheben, genauso mit einer Warnung hier können Sie rot sehen, diese Warnung genau hier. Das ist alles in Ordnung. Lass das einfach durchlaufen. Entweder werden wir gebaut fehlgeschlagen oder ein Build erfolgreich. Jeder ist im Moment völlig in Ordnung für uns. Alles klar, sieh dir das an. Ich habe hier tatsächlich einen Build erfolgreich gemacht , das ist total in Ordnung. Wie ich schon sagte, wenn eine Rechnung fehlgeschlagen ist, werden wir dies durchgehen und sehen, was wir im Grunde ändern können. Es gibt einige Schritte , die wir grundsätzlich unternehmen müssen , unabhängig davon, was passiert. Was wir also tun wollen, ist die Nummer eins, Sie möchten zu Datei gehen und dann zur Projektstruktur, wir möchten sicherstellen , dass im Projekt-SDK genau hier 17. steht. Deshalb möchten wir im Grunde das JDK auswählen , das wir gerade installiert haben. Gleiche gilt für das Projekt der Sprache. Dies sollte 17 sein. Wir werden auf Übernehmen klicken und sagen: Okay, wir werden auch zu Einstellungen gehen , um die Ausführungsbereitstellung zu erstellen, integrierte Tools Gradle, und stellen sicher, dass hier mit 17 Project SDK steht. Diese Schritte sind äußerst wichtig. Bitte stellen Sie sicher, dass hier alles korrekt ist. Danach müssen wir noch eine Änderung vornehmen . Wenn ich den Java-Ordner hier öffne, kannst du sehen, dass alles hier irgendwie verteilt ist. Wenn die Intelligenz zum ersten Mal offen ist, könnte es für dich etwa so aussehen , hier einfach auf die Ausrüstung zu gehen. Stellt sicher, dass sowohl abgeflachte Pakete als auch kompakte Middle-Pakete ausgeschaltet sind. Und dann wird es hier genauso aussehen wie für mich gerade. Alles hier ist richtig durchgelaufen, das ist großartig. Was wir also tun werden, ist, dass wir hier das Terminal öffnen und einen Punktschrägstrich einsetzen Gradle w Gen Intel J läuft genau dort. Und dann drücken wir Enter und lassen es einfach durchlaufen, da das im Grunde genommen ein paar weitere Sachen herunterlädt und nur sicherstellt , dass alles im Grunde richtig gemacht wird. Und dann bauen wir erfolgreich. Wenn Sie eine erste Pille erfolgreich haben, ist dies möglicherweise nicht immer notwendig. Trotzdem ist es großartig, dies zu tun. Und jetzt wechseln wir noch ein paar Sachen. Aber zuerst werden wir die integrierte DOD Gradle-Datei öffnen. Und dann sehen Sie hier, dass es eine Version der Gruppe und eine Archivnamenbasis gibt. Aber die Version, naja, lasst uns einfach etwas wie 0.01 einsetzen. Und dann ist es normalerweise ratsam, etwas hineinzulegen , das auch die Mikroversion sagt. Also werde ich meine Version von 0.01 sagen und dann 100.801 dash, weil wir jetzt in 181 sind, die Gruppe hier ist die gleiche wie die Namen unserer Paketstruktur. Für mich wird das also Net out und Joe Mc Kurs sein. Für Sie wäre dies netto oder beruhigen Sie Ihren Namen. Und dann könnten Sie zum Beispiel auch einen MC-Kurs wählen, oder wenn Sie ein anderes Modell haben, können Sie natürlich auch eine andere Melodie wählen. Hier nehmen wir auch unsere Modelidee auf, und das fasst ziemlich alles zusammen, was wir hier brauchen. Ich muss wirklich nicht so viel ändern. Was wir hier nicht ändern können , können Sie den Beispielmodus sehen. Hier heißt es, wir können einfach das auswählen , drücken Sie Control R und ändern Sie diesen dann in MC-Kurs. Sie können sehen, dass oben ein neues Fenster erscheint. Und dann können wir hier grundsätzlich Beispiel Mater auf den Top-MC-Kurs setzen und dann einfach sagen , dass alles im Grunde überall ersetzt wird, wo es Beispielmod in dieser Datei sagt , es wird durch EMC Kurs ersetzt. Und was wir dann tun können, ist, dass wir die größten Änderungen laden können , indem den kleinen Elefanten oben rechts drücken, wie Sie gesehen haben. Und dann wird es im Grunde wieder durchlaufen. Das sollte nicht so lange dauern wie das erste Mal, dass sie in neun Sekunden gut erfolgreich sind, das ist großartig. Und dann werden wir noch ein paar Sachen ändern und noch ein paar Sachen ändern , die wir in der Beispiel-Mod-Klasse machen werden. Denn was hier passiert, ist, dass wir im Grunde keinen Beispielmodus haben. Was wir haben ist, dass wir Netz-Baumwollseil, MC Kurs oder netto deinen Namen haben , MC Kurs. Was wir also tun werden, ist ganz oben hier im Paket, wir werden Net Out und Joe Dot MC Kurs sagen. Natürlich ist das mit einer roten Unterstreichung gekennzeichnet und wir werden den Mauszeiger darüber bewegen und sagen Move to Packet Net Cotton Joe MC Kurs Ich werde ja sagen. Und dann sehen Sie hier eine neue Paketstruktur. Jetzt können wir den Rest löschen, der leer ist. Dann möchten wir diese Klasse umbenennen. Was wir also tun können, ist, dass wir darauf klicken, die Umschalttaste F6 drücken und dann werden wir das vor Tag den MC-Kurs-Mod nennen. Nun ist es sehr wichtig , dass diese Klasse, die MC-Kurse-Mock-Klasse, später als eine Art Hauptklasse oder Ihre Hauptmod-Klasse bezeichnet wird . Wenn ich also jemals sage, dass ich das meine, dann kommen wir zur MOD-ID. Die ID ist etwas , das sehr wichtig ist. Also hören Sie bitte genau zu. Die MOD-ID darf nur Kleinbuchstaben enthalten. Format-ID ist im Grunde eine eindeutige Kennung für Ihren MOD. Und es wird in Zukunft oft kommen. Ganz oben hier im AdMob sieht man, dass wir hier eine Zeichenfolge haben. Was wir also tun werden, ist, dass wir die gesamte Zeichenfolge mit den Anführungszeichen auswählen . Wir klicken mit der rechten Maustaste. Wir gehen zum Re-Faktor. Wir werden sagen „ Einführungskonstante“. Ich nenne das die Mod-Unterstrich-ID. Ich werde das eigentlich ganz oben kopieren . Dieser wird in Zukunft oft benutzt werden . Und das ist für den US-MC-Kurs. Ich empfehle dringend, dabei zu bleiben und das Gleiche hier einzubringen. Dies ist ein sehr wichtiger MC-Kurs alle in Kleinbuchstaben geschrieben ist. Dies muss auch im Ressourcenordner übereinstimmen, Meta nth Mode Stato Mo. Und du kannst hier sehen Mod ID, das muss auch übereinstimmen. Das ist unglaublich wichtig, sehr wichtig hier. Anzeigename, sagen wir einfach zum Beispiel den Minecraft Modern Course Mod. So etwas bietet wie wäre es mit Cotton Row? Diese sind alle nicht notwendig, aber das ist nur ein Idealfall, das müssen Sie nicht unbedingt einsetzen. Lassen Sie uns auch die Lizenz für den Fall und das Ego auf DAS MIT ändern . Dies ist also die allgemeine Idee im Grunde alles einzurichten. Sie müssen diese intime Stern-Tom-O-Datei ändern. Und hier oben ist das sehr wichtig. Und normalerweise sollte das fast alles lösen , was Sie haben. erneut sicher, dass Sie die Projektstruktur in den Einstellungen überprüfen. Und nachdem du all das geändert hast, lauf, der Punktschrägstrich Gradle, Jen intelligent läuft. Und nachdem du das getan hast, sind wir ziemlich eingerichtet. Das ist so ziemlich alles, was wir für das Setup tun müssen. Oder wir können jetzt nach oben rechts zur Registerkarte Gradle gehen , die Aufgaben erweitern und die Schmiedeschienenverläufe erweitern und dann darauf doppelklicken, einen Client ausführen. Mal sehen, ob Minecraft zum ersten Mal anfängt. Das ist der wichtigste Schritt. Im Grunde bin ich mir sehr sicher , dass das gut funktionieren wird. Da gehst du. Das Fenster hat sich bereits geöffnet und sehen wir wahrscheinlich, dass wir den Ton sehr bald hören werden. Und da sind wir. Okay, lass mich zuerst die Musik und die Lautstärke sofort ein wenig ausschalten . Sie sind schon her. In unseren Modi sehen Sie das Microbe Modern Kursmodell. Im Moment gibt es eine MC-Kursversion 0, da wir dies in der Mos-Dot-HTML-Datei nicht richtig definiert haben. Aber das ist so ziemlich alles, was du tun musst. Wenn du diesen Punkt erreichst und Minecraft geöffnet hat. Nun, willkommen um morgen zu schmieden. Es wird eine großartige und großartige Reise werden, da bin ich mir sicher. Und das nächste , was wir tun werden, ist, dass wir das GitHub-Repository für dieses Projekt einrichten werden. Ich empfehle dringend, den Schritt nicht zu überspringen, da das GitHub-Repository Ihnen bei den Fragen und Antworten hilft. Wenn Sie mir beispielsweise nur Ihr GitHub-Repository zur Verfügung stellen, kann Ihnen Ihr GitHub-Repository viel schneller helfen als im Grunde wenn du einfach sagst, Hey, ich hab diesen Pfeil. So macht es unser ganzes Leben ein bisschen einfacher. Daher empfehle ich dringend, auch ein GitHub-Repository einzurichten. Wir werden die Schritte sofort durchlaufen. Was Sie dafür benötigen, ist ein GitHub-Konto, aber das ist völlig kostenlos und ich empfehle dies dringend. Dies ist ein Tool, das von fast allen Programmierern verwendet wird . Es gibt einige verschiedene Websites, aber GitHub an sich ist sehr seriös und ich empfehle nur dringend, es auch zu verwenden. Nachdem wir dort ein Konto erstellt haben, können wir intelligent zum VCS gehen und wir können sagen, dass wir das Projekt auf GitHub teilen können. Und dann siehst du, dass ich das am 18. den Schmiedekurs nenne . Das ist in Ordnung. Ich werde das persönlich privat machen. Wenn Sie es teilen möchten, können Sie es natürlich nicht privat machen. Und wenn ich jetzt auf die Schaltfläche Teilen klicke, kannst du sehen, hey, das Konto ist leer. Wir fügen ein neues Konto hinzu. Und was ich sagen werde ist, dass ich mich über GitHub einloggen werde. Ich kann darauf klicken und dann öffnet sich dieses Fenster hier, sagen Sie einfach, GitHub autorisieren. Und weil ich hier bereits bei GitHub angemeldet bin, hat dies jetzt autorisiert und Sie können Chair von github.com slash coulomb joule sehen. Jetzt sagen wir Teilen und dann öffnet sich eine Reihe neuer Dinge hier. Sie können Dateien hinzufügen, Möbel, Commit sehen. Wir werden sagen, das ist natürlich völlig in Ordnung. Und dann können Sie sehen, dass es tatsächlich auf GitHub geteilt wird und das ist eigentlich alles, was Sie tun müssen. Ich kann jetzt darauf klicken und es sollte das GitHub-Repository öffnen. Und da ist es. Dieses GitHub-Repository steht Ihnen ebenfalls zur Verfügung. Das ist übrigens sehr wichtig. Ich werde jede Vorlesung in verschiedene Zweige aufteilen lassen, damit Sie das, im Grunde sehr leicht sehen was Sie geschrieben haben, im Grunde sehr leicht sehen und vergleichen können. Ich habe auch individuelle Gists für jede Vorlesung. Also keine Sorgen. Der gesamte Code wird in einer Form verfügbar sein , die für Sie sehr nützlich sein wird, wenn Sie jetzt hier eine Änderung vornehmen. Zum Beispiel werde ich so etwas wie einen sehr wichtigen Kommentar sagen . Sie werden sehen, dass die Datei, in der die Änderung stattfindet, blau wird. Und was ich dann tun muss, ist, dass ich hier zu diesem Commit-Tab gehen hier zu diesem Commit-Tab muss und alle Änderungen auswählen muss, die ich übernehmen möchte. Ich sage dann, dass ein wichtiges Element hinzugefügt wurde. Dies ist also nur ein Name dessen, was passiert ist. Und ich klicke auf Commit. Normalerweise bekommst du vielleicht auch, hey, ich habe etwa 63 Warnungen bekommen. Bist du sicher, dass du dich verpflichten willst? Normalerweise möchten Sie sich verpflichten. Jetzt ist das gerade durchgegangen, war sehr wichtig, nur weil wir etwas engagiert haben bedeutet das nicht, dass es noch online ist, denn um es online zu machen, müssen wir es tatsächlich pushen. Ganz oben, der grüne Pfeil, der nach oben rechts zeigt, müssen wir darauf klicken. Dann sehen Sie den wichtigen Kommentar hinzugefügt. Wir können die Änderungen im Grunde sehen, wer, wer diese Änderungen vorgenommen hat und all das. Und dann können wir einfach auf den Druckknopf klicken. Und dann heißt es, ein Commit zum Ursprungsmaster gedrängt. Wenn ich das dann erneut öffne und diese Seite neu lade, kannst du einen wichtigen Kommentar sehen. Ich möchte nicht, dass sich das in einen GitHub verwandelt oder hier ein Tutorial bekommt. Aber vorerst ist das so ziemlich genau das. Das ist so ziemlich alles was du brauchst. Und jetzt können Sie sich mit 4241801 auf die verrückte und coole Reise des die verrückte und coole Reise des modernen Minecraft begeben. Aber das ist es für diesen Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 39. (Minecraft Verwendung von Parchment: Alles klar, willkommen zurück zum vierten Kurs für 118. In diesem kurzen Vortrag werden wir unsere Zuordnungen in Pergamentzuordnungen ändern . Nun, hier nur eine kleine Erklärung. Die Idee ist, dass wenn wir die normalen Mappings verwenden, die durch das Zusammenführen des offiziellen Servers bereitgestellt werden , in die RI Build-Up-Gradle-Datei gehen. Sehen Sie, ich habe hier die offiziellen Mappings für 180 eins. Und obwohl das völlig in Ordnung ist, passiert es, dass alle Methoden keine Map-Parameter haben. Dies bedeutet, dass jede Methode , die wir überschreiben könnten oder so ähnlich, der Parametername immer einige sein wird, wie P einige Zahlen unterstreicht und dann eine oder was auch immer unterstreicht. Und das ist wirklich verdammt, nervig, besonders wenn Sie Methoden haben, die möglicherweise 56, 57 Parameter haben. Und sie haben alle diese seltsamen Namen da sie Fremitus sind. Deshalb empfehle ich dringend, mit Pergament zu gehen. Jetzt habe ich zwei Links in den Ressourcen. Eine davon ist das Bibliothekar-GitHub-Repository hier aus Pergament, und eines ist das Pergamentrepository. Und was Sie feststellen werden, ist, dass die 118 X Version derzeit nicht existiert. Es wird also nicht festgestellt, dass es nicht genau stimmt, dass es einen nächtlichen Schnappschuss gibt. Nun bedeutet ein nächtlicher Schnappschuss in diesem Fall, dass es sich definitiv noch nicht um eine vollständige Veröffentlichung handelt. Es ist, äh, es funktioniert und du kannst schon damit arbeiten, aber es ist nicht dringend zu empfehlen, weißt du, es ist sozusagen noch nicht fertig , wir werden es immer noch benutzen. Und was ich sagen werde, ist, dass ich diese Vorlesung aktualisieren werde. Oder wenn wir durch das Pferd gehen, werfe ich vielleicht ein oder zwei Pergamentaktualisierungsanleitungen in ihrer Gesamtwertung ein, normalerweise ändert sich das Aktualisieren ziemlich nur. Eine Sache, die ich dir in einem Moment zeigen werde. Was wir jetzt tun können, ist in der Bibliothekarin hier zu sehen , dass er im Grunde alles sagt, was Sie tun müssen. Es ist also sehr einfach. Das erste, was wir zum Beispiel tun müssen, ist, dass wir dies hier hinzufügen müssen. Also das Pergament aus dem Maven-Pergament-Lager. Lassen Sie mich das kopieren. Geh gleich hier zum Futterkurs. Und ganz oben, darunter, wollen wir das einfügen. Du siehst jetzt, dass wir das Pergament dort haben. Und dann wollen wir den zweiten überprüfen. Und das wird jedoch der Bibliothekar sein , der Satz des Klassenpfades. Also noch einmal Control C kopiert und dann hier unter den Gradle eingefügt. Also genau hier zu den Abhängigkeiten, dann wollen wir das Plug-In genau hier nehmen, und das muss genau darunter liegen. Also genau hier, richtig sehr wichtig. Fügen Sie es nicht hier ein, sondern unter dem Netz Minecraft Gradle, sonst funktioniert es nicht. Ganz wichtig. Und zu guter Letzt müssen Sie die Zuordnungen ändern. Ich kopiere das tatsächlich von dem anderen Bildschirm, den ich hier habe, weil ich die nächtliche Version im Grunde schon fertig habe. Mal sehen wir sie uns vor. Dies wäre also die nächtliche Version des 13. Dezember, nächtliche Momentaufnahme in diesem Fall, wie ich schon sagte, wenn neuere Versionen herauskommen, werde ich sie hier irgendwo verlinken oder zukünftige Vorträge halten oder ändern diese Vorlesung. Und wir werden nur sehen, dass wir das machen werden , überhaupt keine Sorgen. Und insgesamt sollte das jetzt in Ordnung sein, wenn wir diese vier Dinge haben. Also der Maven, die Klassenpfadabhängigkeit hier, dann das Plugin und Ändern des Mapping-Sehers, wird es Ihnen gut gehen. Was wir jetzt tun können, ist, dass wir die Gral-Änderungen laden können. Das sollte eigentlich nicht allzu lange dauern. Wieder einmal hängt es von Ihrem PC ab, es hängt von der Geschwindigkeit der Internetverbindung ab, die Sie haben. Es gibt ein paar Faktoren, die vielleicht, ich stehe darauf, aber wieder sollte es nicht länger als vielleicht ein oder zwei Minuten dauern. Aber lasst uns einfach geduldig sein und das durchlaufen lassen, oder? Wie Sie sehen können, bauen Sie in 55 Sekunden erfolgreich , das ist großartig. Und nun ist es im Grunde genommen erledigt. Wir haben jetzt, dass wir jetzt die Pergamentzuordnungen verwenden. Und das wird großartig werden. Das wird viel besser sein. Ich empfehle dies auch wärmstens. Es ändert wirklich nur die Parameternamen. Also gibt es jetzt abgebildet es ist so ziemlich alles, was es tut, die Methodennamen und die Klassennamen und alles, was völlig gleich bleiben sollte. Aber das ist schon für diese Vorlesung genau hier. Ich hoffe, du hast das im neuen nützlich gefunden, und wir sehen uns in der nächsten Vorlesung. Also ja. 40. (Minecraft Erstelle ein a Element: Oder ich komme zurück zum Futterkurs für 118. In dieser Vorlesung werden wir vorerst unseren ersten Kundenartikel hinzufügen , das wird eine sehr interessante Sache sein , die wir tun werden. Und was wir tun werden, ist, dass wir tatsächlich zwei Artikel hinzufügen. Wir werden einen hinzufügen, wir werden im Grunde jeden Schritt durchlaufen. Und dann zeige ich es dir sofort nachdem wir den Gegenstand im Spiel gesehen haben. Oder du kannst eine zweite hinzufügen, weil es manchmal etwas verwirrend für die Leute ist. Warte, wie füge ich jetzt eine zweite hinzu? Muss ich jeden Schritt noch einmal durchlaufen? Und nein, es gibt einige Abkürzungen, die Sie im Grunde nehmen können. Nun, das erste, was wir tun werden und das ist sehr wichtig, ist in unserem MC-Kurs-MOD oder unserer Hauptmod-Klasse, wir werden dies genau hier auswählen. Also alles, einschließlich des GetMethod-Ereignisbusses mit den Klammern, und wir klicken mit der rechten Maustaste auf diesen Re-Faktor und führen dann eine Variable ein. Und dann werden wir sagen, dass alle drei Vorkommnisse ersetzt werden. Und wir nennen das den Event Bus. Doppelklicken Sie also einfach auf den Event-Bus. Und dann wird es uns gut gehen. Wir werden auch tun, dass wir im Grunde alles löschen werden , außer der Setup-Methode. Wir wollen die Registrierungsereignisse nicht, wir wollen die Serversortierung nicht, nichts davon. Brauchen wir? Und dann müssen wir hier Dinge lesen , damit wir beide auch löschen können, damit unser Konstruktor grundsätzlich nur den Eventbus hat. Sie sind der Listener genau hier, unten im Ereignisbusregister hier und die Setup-Methode, da dies eine Methode ist, die in Zukunft definitiv verwendet werden muss. Es gibt eine andere Methode, die auch in einer zukünftigen Vorlesung hinzugefügt werden muss. Aber wir werden das machen, sobald wir tatsächlich zwei haben. Also jetzt weiter zum Hinzufügen des Artikels. In unserem MC-Kurspaket wir mit der rechten Maustaste auf neues Paket, das als item bezeichnet wird. Anstatt dort klicken wir dann erneut mit der rechten Maustaste auf die neue Java-Klasse, die Mod-Item-Klasse genannt wird. Jetzt folgt die Mode Items Klasse einer Art Schema oder einer bestimmten Vorlage , der viele verschiedene Klassen folgen werden. Und das wird das Folgende sein. Wir werden also ein aufgeschobenes Register haben. Also werde ich das einfach aus ihnen heraustippen und sehen, was das ist. Dies wird ein öffentliches statisches Finale sein, das dritte Register, sehr wichtig, F2, unseres. Aber dieser hier aus Net Microforms Registers überprüft ob Sie dies richtig schreiben, weil es einige Leute gab , die es falsch geschrieben haben, und das führt natürlich dazu, dass es nicht funktioniert Sie es eingeben können und dann einfach Tabulatortaste drücken, um es automatisch zu vervollständigen. Und dann brauchen wir diese Winkelklammern, wenn Sie sie in die erste und die zweite eingeben in die erste und die zweite , die automatisch generiert werden soll. Und dann brauchen wir hier drin einen Gegenstand. Sehr wichtig, dass wir Nettoartikel der Minecraft-Welt haben. Wir nehmen diesen noch einmal, Autocomplete und dann wird es sofort die Klasse hier importieren. Dies wird als Elemente in Großbuchstaben bezeichnet, sehr wichtig und dies ist ein letztes Feld, daher muss es in Großbuchstaben geschrieben werden. Das ist in diesem Fall nur eine Java-Konvention, dies wird einem anderen Register entsprechen. erneut sicherstellen, dass Sie es richtig schreiben, können Sie automatisch mit einer Registerkarte abschließen, wenn Sie dort tatsächlich die Überlastung sehen , die erstellt wird. Und dann noch einmal können wir es einfach in der Klammer automatisch vervollständigen , die dann generiert werden. Dann können wir Schmiederegister , die Elemente in meinem MC-Kursmodell, dieser Modell-ID, speichern , die Elemente in meinem MC-Kursmodell, und dann alles mit einem Semikolon beenden. Sie können also sehen, dass wir die Modell-ID bereits verwenden. Hier sind das andere Register. Im einfachsten ausgedrückt das aufgeschobene Register. Sie können sich dies nur als eine Liste all Ihrer Artikel vorstellen , die Sie mit Ihrem MOD-Atom haben. Deshalb müssen wir die Melodie liefern , damit Forge weiß, okay, alle diese Elemente stammen von dieser Modell-ID aus diesem Modus. Das ist die allgemeine Idee. Natürlich ist es etwas komplizierter als das. Aber nur zu Ihrem allgemeinen Verständnis können Sie sich dies als eine Liste aller Ihrer Artikel vorstellen und wir müssen uns im Grunde dort registrieren , wenn Sie ein aufgeschobenes Register im Grunde für jede Sache haben das hat hier Register gefälscht , ich kann mir das mal ansehen. Für all diese Dinge. Wir können im Grunde eine andere Klasse und ein anderes verzögertes Register haben. Und jedes Mal, wenn wir ein anderes Register haben , werden wir eine öffentliche statische Lücke oder die Registermethode mit einem Ereignisbus haben eine öffentliche statische Lücke oder . Event-Bus als Umfang. Wir sagen Artikel Punktregister-Eventbus. Nun, wenn irgendwann etwas hier rot sein könnte. So ist es beispielsweise möglich, dass der Artikel hier rot wird. Was passiert, ist, dass Sie einfach darauf klicken und Alt und Eingabetaste drücken, um die Klasse zu importieren, um sicherzustellen, dass Sie hier das Nettomikrowellen-Weltelement auswählen , und dann sollte alles funktionieren. Stellen Sie sicher, dass die Importe korrekt sind. Das ist auch sehr wichtig. Und jetzt haben wir die Register-Methode und wir müssen dies in unserer MC-Kurse-Mod-Klasse zurückrufen, unserer Hauptmod-Klasse innerhalb des Konstruktors genau hier, wir müssen mehr Items sagen Punktregister mit dem Event-Bus. Also müssen wir in diesem Eventbus genau hier in die Register-Methode einsteigen. Und dann wird auch das eigentliche andere Register registriert. Wir müssen also sozusagen unsere Listen aller unserer Artikel registrieren sozusagen unsere Listen . Und wie fangen wir an, wie fangen wir an, einen Artikel hinzuzufügen? Nun, wir brauchen ein öffentliches statisches endgültiges Registry-Objekt. Noch einmal mit den Winkelklammern vom Typ item. Und das wird der Kobalt-Unterstreichbarren sein. Jetzt können Sie noch einmal sehen, ich etwas habe, das im roten Registry-Objekt markiert ist . Ich kann einfach drauf klicken. Und geben Sie ein, und es importiert dann die richtige Klasse , die wir benötigen werden. Und das wird gleich zwei Punkte sein Punktregister. Der erste Parameter wird eine Zeichenfolge sein. Und dieser Bus, oder wie Sie bald sehen werden, Name automatisch generiert, Sie müssen dies nicht eingeben. Sehr wichtig für Walt Unterstrich Barren ist der Name. Dies folgt den gleichen Regeln wie die Mod-ID. Nur Kleinbuchstaben, Unterstriche oder Bindestriche und Zahlen, sonst nichts. Und Sie können sehen, nachdem ich das Common hinzugefügt habe , heißt es jetzt Name. Dies wird wieder automatisch generiert, dies geschieht durch die IDE, dies geschieht durch intelligent. Du musst das nicht tippen. Und der zweite Parameter wird ein Lieferant sein. Also haben wir offene und geschlossene Klammern, wird durch diesen Pfeil und dann einen neuen Gegenstand. Also neuer Artikel mit den anderen Sachen hier drin. Also neue Elementeigenschaften, die Sie innerhalb des Elementkonstruktors sehen können , ich werde dies einfach automatisch vervollständigen und dann Punktregisterkarte sagen. Und dann müssen wir auf einem Tab liefern. Das ist also die kreative Sterblichkeit, die es braucht. Und Sie können sehen, wo es nur der Tab Diverses ist. Wir doppelklicken einfach darauf und dann werden wir damit einverstanden sein. Wir können sehen, dass dies jetzt alles ist , was wir brauchen, um den Artikel zu registrieren. Der Gegenstand wäre bereits im Spiel. Natürlich hat es noch keine Textur und hat auch keine Funktionalität. Wir werden in dieser Vorlesung hier keine Funktionalität hinzufügen , aber in den folgenden Vorträgen werden wir natürlich sehen, kann dies grundsätzlich hinzufügen. Nun, eine wichtige Sache ist, dass diese Elementeigenschaften hier tatsächlich ein Builder-Panel sind, sodass Sie es danach auf einen Punkt schlagen können Nach der Registerkarte können Sie sehen, dass ich auch ein paar andere Dinge wie nennen kann Sentinel-Reparatur, Feuerwiderstand, vielleicht Rest, solche Sachen. Es gibt also ein paar coole Dinge , die ich hier im Grunde nennen kann, und es hat den Gegenstand auch auf diese Weise verändert. Wir werden vorerst daran bleiben, nur den Tab zu haben und dafür nur den Tab zu haben und einfach den Tab Verschiedenes zu verwenden , und das werden fünf sein. Jetzt. Nun, was heißt das? Nun, es hat noch keine Textur. Wie definieren wir das? Überhaupt keine Sorgen. Jetzt kommt die Ordnerstruktur, die sehr wichtig ist. Stellen Sie also sicher, dass Sie sich das genau ansehen und schauen Sie sich das genau an. Es gibt hier einen Rechtschreibfehler. Eigentlich wird es geschafft haben , damit etwas nicht funktioniert. Anstelle des Ressourcenordners wir mit der rechten Maustaste auf ein neues Verzeichnis namens Assets. Und dann klicken wir mit der rechten Maustaste auf neues Verzeichnis namens MC course. Das muss genau deine MOD-ID sein. Sehr wichtig. werden wir ein neues Verzeichnis erstellen, alte Modelle. Wir werden auch ein neues Verzeichnis namens lang LNG erstellen. Wir werden auch ein neues Verzeichnis innerhalb des MOOC-Kurses über kalte Texturen erstellen . Bitte beachten Sie noch einmal, dass diese richtig geschrieben werden müssen. Also im Models-Ordner werden wir ein neues Verzeichnis namens item erstellen. Und dann werden wir wieder innerhalb des Models-Ordners ein neues Verzeichnis namens block erstellen. Was ich tun kann, ist, dass wir beide brauchen werden. Ich kann beide auswählen und sie dann in den Texturordner ziehen , während ich die Kontrolle halte, wodurch diese Ordner dupliziert werden. Und weil ich im Grunde auch den Block und den Elementordner innerhalb des Texturordners brauche . Beginnen wir nun oben mit dem Längenordner. Im Längenordner werden sich die Übersetzungen befinden. Wir klicken also mit der rechten Maustaste auf neue Datei. Und das wird der EN unterstrich uns db.json. Sehr wichtig, dass Sie den Punkt Jason hinzufügen, sonst wird er nicht richtig erkannt. Das ist sehr wichtig. Auch E und unterstreichen Sie uns, dass wir auch richtig geschrieben werden, drücken Sie Enter und dann erscheint die Datei. Dieses Fenster wird angezeigt. Wenn Sie ein GitHub-Repository haben das nicht haben, werden Sie dies nicht sehen. Das ist vollkommen in Ordnung. Wenn Sie ein GitHub-Repository haben, möchten Sie grundsätzlich add sagen, weil es es dann im Grunde genommen zum GitHub-Repository für Ihr nächstes Commit hinzufügt , und die EN unterstreicht uns JSON-Datei wird wie folgt gebaut. Ich beginne mit einer geschweiften Klammer, die sofort die zweite geschweifte Klammer für uns generiert. Hier möchten wir das Element übersetzen. Das Problem ist also, dass wir das einfach austippen werden. Item Punkt AMC Kurs Dot o Ball, Unterstrich, Barren, Doppelpunkt und dann Altenglisch. Die allgemeine Idee ist also, dass dies der unbekannte lokalisierte Name des Elements ist der unbekannte lokalisierte Name des , da dieser hier genau hier ist. Der Kobalt-Unterstreichbarren ist der Name, den wir diesem Gegenstand gegeben haben. Es ist ein Gegenstand, und das ist unser Motett. All das sollte logisch sinnvoll sein, oder? Es sollte nicht so sein, warum passiert das hier? Nein, nein, das sollte Sinn ergeben. Dies ist der lokalisierte Name. Warum haben wir das überhaupt? Warum müssen wir das so wie eine JSON-Datei definieren ? Nun, es gibt verschiedene Sprachen. Und wenn Sie für jede dieser Sprachen übersetzen möchten , als den lokalisierten Namen und dann einen lokalisierten Namen hier zu haben lokalisierten Namen und dann einen lokalisierten Namen , macht das sehr sinnvoll. Eigentlich. Deshalb müssen wir es so machen. erneut sicher, dass die Ordnernamen zerstört sind und auch der Name einer Datei hier. Ansonsten sieht das gut aus. Gehen wir dann zur Artikelmodelldatei über. Und das Artikelmodell ist sehr interessant. Ich tippe das aus. Was wir also tun werden, ist im Modell-Elementordner rechten Maustaste auf eine neue Datei namens der rechten Maustaste auf eine neue Datei namens Kobalt-Unterstrich Barren Punkt JSON. Der Name dieser Datei muss genau mit dem hier angegebenen Namen übereinstimmen. Dies ist auch sehr wichtig und endet dann mit dem JSON. Nun, wie ich schon sagte, werde ich das einmal austippen. Wir werden das ziemlich schnell machen und dann erkläre ich jeden Teil davon. Also werden wir hier einen Elternteil haben , Doppelpunkt, Elementschrägstrich, generierte Munitionstexturen, offen gefallen, geschweifte Klammer, Ebene 0. Alles ein MC-Kurs, gefallener Gegenstand, Schrägstrich oder Bolzenunterstrich. Ich sage vielleicht, was der FREC hier passiert. Keine Sorge. Wir werden das durchmachen. Das übergeordnete Element bestimmt hier, wie diese bestimmte Textur in Ihrer Hand angezeigt wird. Und auch dreidimensional. Adam ist im Grunde genommen nur, es wird die Textur ein wenig extrudieren lassen , so dass sie eine Art 3D-Look hat. Und das wird es im Grunde sein. So wird also ein normales Element angezeigt. Wir müssen dann alle Texturen definieren. Und das müssen Texturen sehr wichtig sein. Stellen Sie sicher, dass dies alles richtig geschrieben ist. Layer 0, ebenfalls wichtig. Und dann definiert dies genau hier im Grunde das Verzeichnis, in dem sich die Textur befindet. Das wird sich also den Ordner „MC-Kurs Assets“ ansehen. Also Assets MC Kurs innerhalb des Texturen-Ordners, genau hier unter Artikelschrägstrich Kobalt Englischer Punkt PNG, also item. Und dann haben wir da nichts drin. Ich werde jetzt das Extra kopieren, das in Git Dot PNG sprudelt. Und sie gehen, und das ist im Grunde genommen die Textur, die es im Spiel zeigt. Eins. Ein sehr wichtiges Detail hier für die Texturen ist, dass bitte hier die Credits Datei beachten. Alle Texturen werden also durch Nano-Angriff erstellt und sie werden unter dieser Lizenz direkt hier verteilt. Wenn Sie diese also in einem öffentlichen Repository verwenden möchten , folgen Sie bitte der Lizenz, fügen Sie diese Datei einfach Ihrem Projekt oder Ihrem Repository hinzu, und dann wird es Ihnen gut gehen. Ich wollte nur erwähnen, dass dies ziemlich wichtig ist. Sie können die Texturen verwenden. Denken Sie daran, dass wir den Artikel registriert haben, bei dem tatsächlich alles erledigt den Artikel registriert haben, bei dem tatsächlich alles erledigt ist. Wir haben eine Übersetzung hinzugefügt, wir haben die JSON-Datei des Elementmodells und die Textur hinzugefügt JSON-Datei des Elementmodells und die Textur . Zum ersten Mal können wir übrigens für Arbeiten einen dieser roten Pfeile sehen, einen dieser roten Pfeile die Sie möglicherweise sind bekommen ist vollkommen in Ordnung. Dies kann manchmal passieren, nachdem Sie grundsätzlich zum ersten Mal eine Anordnung hinzugefügt haben , aber das ist völlig in Ordnung. Sie sollten dies ignorieren können, solange es weitergeht und das Minecraft tatsächlich beginnt, das sollte kein Problem sein. Und das geschah auch nur einmal oder vor ihm, Minecraft. Mal sehen, gehen wir zum Tab Verschiedenes und gehen wir ganz nach unten. Und da ist es. Der Kobaltbarren wurde erfolgreich zum Spiel hinzugefügt. Das ist ziemlich cool Alles in Betracht gezogen, oder? Und damit du es gesehen hast, lass uns auch das Nugget hinzufügen. Die Grundidee hier ist also, dass wir keine zweite Items Klasse benötigen. Dies ist manchmal der Ort, an dem die Leute etwas verwirrt werden. Das einzige, was wir tun müssen, ist, dass wir dieses Registrierungsobjekt kopieren müssen . Ich mache Control C, nachdem ich alles ausgewählt und dann Control V, füge es hier ein. Wir müssen dies dann einfach in Nugget umbenennen und dann auch die Synagoge umbenennen. Für jedes Element, das Sie registrieren, wird ein Registrierungsobjekt zugeordnet. Das ist die allgemeine Idee. Und natürlich hat es auch einen Namen. Wir brauchen also ein neues Artikelmodell, JSON, aber lasst uns zuerst ins Ohr gehen und uns hier die JSON-Datei unterstreichen. Und was wir tun werden, ist, dass wir diese Zeile einfach duplizieren, indem wir Control D drücken und dann hier ein Komma hinzufügen. Und dann werden wir das noch einmal in Nugget umbenennen. Dieses Nugget auch. Und jetzt können wir in unseren Artikelmodellen diese JSON-Datei einfach nehmen und sie in denselben Ordner ziehen, während wir die Kontrolle gedrückt halten, und dann duplizieren wir sie. Und dann können wir den Namen hier ändern, auch navigieren. Dann ändert hier natürlich auch dieses Nugget. Und dann kopiere ich noch einmal die Artikeltextur. Und das ist im Grunde der Vorgang des Hinzufügens eines zweiten Artikels. Das ist also im Grunde immer das, was du tun wirst. Es wird einige Unterschiede geben, insbesondere wenn es um die Modelldateien geht. Vielleicht sehen sie ein bisschen anders aus. Aber insgesamt ist dies so ziemlich immer das, was Sie bei einem Registrierungsobjekt bei der Übersetzung in die E durchgehen müssen bei einem Registrierungsobjekt bei der Übersetzung in die E durchgehen und uns JSON-Datei bei einem Artikelmodell JSON unterstreichen. Und dann die Textur, das ist so ziemlich alles, was es dazu gibt. Sie werden nur zur Vollendung willen sehen, ob es funktioniert oder ob ich so ein Minecraft bin. Wie Sie sehen können, wurde auch das Kobalt erfolgreich hinzugefügt. Das Spiel ist jedoch, wie Sie sehen können, ziemlich einfach, wenn Sie wissen, wie es gemacht wird. Und das ist nur eine Sache, Sie sich nur vertraut machen müssen mit der Sie sich nur vertraut machen müssen und im Grunde genommen Elemente hinzufügen müssen. Und es wird im Grunde genommen zur zweiten Natur für dich werden , 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. Der gesamte Code steht Ihnen übrigens im GitHub-Repository oder einer Person genauso gut zur Verfügung, dass Sie grundsätzlich nie alles selbst eingeben müssen . Sie können auch einige Dinge kopieren, wenn dies für das Lernen für Ihre spezielle Idee förderlicher ist . Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 41. (Minecraft Erstelle einen benutzerdefinierten Block: Alles klar, willkommen zurück den vierten Kurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Blöcke hinzufügen. Die benutzerdefinierten Blöcke sind etwas stärker involviert. Aber weil wir im Grunde einen Teil des Hinzufügens von Elementen gesehen haben , sind die Blöcke ähnlich, aber wie gesagt, ein bisschen mehr involviert wie ein kleines bisschen anders, aber nicht zu viel. In unserem MC-Kurspaket wir mit der rechten Maustaste auf ein neues Paket namens book. Und drinnen klicken wir mit der rechten Maustaste auf eine neue Java-Klasse, die als Modus-Sperr-Klasse bezeichnet wird. Jetzt wird diese Klasse ein bisschen anders sein, aber vor allem werden wir das öffentliche statische endgültige verzögerte Register des Blocktyps haben , um sicherzustellen, dass wir Net Minecraft-Weltebene wählen blockieren. Sehr wichtig, nicht die ewig geschworene OpenJDK-Einheit, sondern der Levelblock, der sehr wichtig ist. Und dann sagen wir, dass Blöcke gleich dem dritten Registerpunkt erstellen Register sind, diese Box mit unserem MC-Kursmodell, das MID. Und ob es sich um ein anderes Register handelt, wir benötigen auch ein Publikum, das eine nichtige Anruflistermethode mit dem Ereignisbus ist . Event-Bus. Und das nennen wir Box Dot Register mit dem Event-Bus. Und bevor wir es vergessen, werden wir es sofort in unserer MC-Kurse-Mod-Klasse hier aufrufen , mod blocks dot registrieren sich beim Eventbus. Da gehst du. Jetzt ist das aufgeschobene Register registriert. Und jetzt brauchen wir tatsächlich zwei Hilfsmethoden. Ich werde alles eintippen und dann erkläre ich , nachdem ich das getan habe, der Code für Sie im GitHub-Repository oder einer Einzelperson genauso gut verfügbar ist . Du musst hier nicht alles tippen. Sie können es im Grunde auch kopieren. Wenn ich also eine private statische und dann die Winkelklammer habe, verlängert T den Block void. Eigentlich machen wir diesen Artikel, tut uns leid, lassen Sie uns dieses Registry-Objekt von Elementen erstellen. Dann ist der Name der Methode der Registerblock Atum , der einen String-Name-Parameter und ein Registrierungsobjekt vom Typ T haben ein Registrierungsobjekt wird , das der Block sein wird. Das ist also der zweite Parameter. Und dies wird mehr Artikel zurückgeben, Artikel, die sich mit dem Namen registrieren. Und dann ein Lieferant eines neuen Buchelements mit der Registerkarte Blockpunkt-Punkt-Punkt Eigenschaften für neue Elemente. Und lasst uns vorerst in den kreativen Tab MRTK setzen . Aber wir werden das tatsächlich ändern. Eines der Probleme hier ist , dass wir jetzt im Grunde genommen fest codieren, okay, das wird immer auf der Registerkarte „Verschiedenes“ sein , tatsächlich einen dritten Parameter hinzufügen , der der reaktive Modus sein wird Reiter, Tab. Und dann werden wir das genau hier platzieren , was wir im Grunde bedeuten können, Hey, wir werden den spezifischen kreativen Tab mehr erstellen. Und dann formatiere ich das einfach ein bisschen anders. Da gehst du. Und dann haben wir eine andere Methode , die eine private Statik ist. Wieder einmal verlängert die Winkelklammer T einen Block , der dieses Mal auch ein Registrierungsobjekt vom Typ T, der Registerblock-Methode, zurückgibt dieses Mal auch ein Registrierungsobjekt vom Typ T, der Registerblock-Methode . Und das wird eine Zeichenfolge aufnehmen, wir nennen den Lieferantentyp T und dann einen Block namens Brock, und dann acht und dann ein dritter Parameter , das ist und dann einen Block namens Brock, und dann acht und dann ein dritter Parameter , die Registerkarte „ Kreativmodus“. Tab. Jetzt wird dieser folgendes tun. Es wird zunächst ein Registrierungsobjekt vom Typ T erstellen oder, das dem Blockpunktregister entspricht, den Namen mit dem Block zurückgeben das dem Blockpunktregister entspricht, . Dann wird es bei der Registerblock-Item-Methode mit dem zurückzugebenden Namen und der Registerkarte abkühlen . Und dann kehren wir zurück , um zurückzukehren. Jetzt sehen diese Methoden absolut verrückt aus. Sie sind jedoch nicht wirklich so verrückt. Das sind also nur einige Hilfsmethoden für uns denn wenn wir einen solchen Block registrieren, oder? Wenn wir nur Blöcke aufrufen, die sich registrieren, passiert es, dass der Block erstellt wird, aber kein Element für den Block erstellt wird. Und das ist eine Art Problem, weil wir Blockelemente für jeden unserer Blöcke benötigen . Nun, es so zu machen, macht meiner Meinung nach viel Sinn. Wenn wir jemals auf einen Block stoßen, kein Blockelement benötigt, was wir tun, werden wir einfach eine andere Methode erstellen, die diese Registerblock-Item-Methode nicht aufruft. Und dann wird es uns im Grunde gut gehen. Lieber heißt das zum Beispiel das? Nun, es bedeutet, dass T nur ein Generikum ist und es bedeutet nur, dass alles, was hier in das T steckt, die Blockklasse erweitern muss . Wir werden die Blockklasse sowieso immer benutzen, denn das ist alles , was wir in diesem Fall wirklich brauchen werden. Aber ja, das stellt nur sicher , dass dies der richtige Typ ist. Das Ziehen der Registrierungs-Blog-Item-Methode sollte ebenfalls sinnvoll sein. Dies registriert im Grunde nur das Element, das mit diesem Block verknüpft ist , hier , dass wir im Grunde genommen ein Hat den gleichen Namen erstellen , und das sollte so ziemlich alles sein dass du wissen musst, es das in den Tab steckt, den wir hier übergeben. Also sollte alles in Ordnung sein. Lass uns das einfach in Aktion sehen und mal sehen. Lassen Sie uns also ein öffentliches statisches endgültiges Registry-Objekt vom Typ block erstellen. Wird der Kobalt-Unterstrichenblock, dem Registerblock gleich sein wird, mit dem Namen Kobaltblock noch einmal, war der doppelte Unterstrich Block in diesem Jahr wichtig, generiert automatisch sozusagen das Namensschild 2. Und dann ein Lieferant eines neuen Blocks. Und das wird Blockverhaltenseigenschaften aufnehmen, das Material.me. Und wenn ich dann einen Punkt einlege, kannst du sehen, dass es ein paar weitere Eigenschaften gibt , die wir hier zwei Blöcke hinzufügen können. Was sind die , die ich hinzufügen möchte, die Festigkeitseigenschaften. Dies ist also im Grunde die Zeit benötigt wird, um diesen Block zu brechen. Und dann auch sehr wichtig, dass wir anrufen, erfordert ein korrektes Tool für Drops, das im Grunde genau das tut, was ich wollte. Das ist auch nicht kopiert dieses Zeug. Oh, es tut mir sehr leid. Das Ego. Und dann wird der dritte Parameter der Aktiv-Modus-Tabpunkt sein . Lass uns noch einmal Verschiedenes machen. Aber dieser tut genau das, was auf der Dose steht, erfordert ein auf der Dose steht, erfordert korrektes Werkzeug für Tropfen, da wir später IT-Tools definieren müssen, im Grunde damit sich der Kobaltblock tatsächlich selbst abfällt. Dies ist etwas, was wir in einem späteren Vortrag sehen werden. Eigentlich fällt der Block ab, die werden mit Lou Tischen, Wissenden gemacht. Wir werden das schaffen. Dies ist jedoch wieder der Block und das zugehörige Blockelement, das mit diesem registriert wurde. Ich empfehle dringend, auch nur mit einigen der Eigenschaften herumzuspielen , die Sie hier hinzufügen können. Sie können sehen, dass es hier einige gibt , die Sie im Grunde hinzufügen können. Normalerweise werden wir sehen, wie ein paar von ihnen die Vorträge durchlaufen. Aber schauen wir uns jetzt die JSON-Dateien an, da diese sehr interessant sind , weil wir im MC-Kursordner genau hier ein neues Verzeichnis oder Blockstatus hinzufügen müssen. Es ist auch sehr wichtig , dass richtig geschrieben wird. Und ich werde das noch einmal austippen. Also werden wir hier eine neue Datei namens Kobalt-Unterstrich-Block-Punkt-Punkt-Punkt Jason erstellen, stellen Sie erneut sicher, dass dies korrekt geschrieben ist und das Ende JSON hat. Dies ist also der Name , den es haben muss. Und dann tippe ich das aus. Also geschweifte R1-Sekunden-Klammern, Varianz, Doppelpunkt, frühe Klammer, leere Anführungszeichen, geschweifte Klammer des Doppelpunkts. Und dann Modell Doppelpunkt, MC-Kurs, Doppelpunktblock, Peitsche, Kobalt, Unterstrich Block. Was passiert hier? Nun, der Blockstatus definiert im Grunde verschiedene Varianten desselben Blocks. In unserem Fall haben wir hier keine Abweichung, da dies nur ein normaler Block sein wird. Und das deutet jetzt auf ein Blockmodell JSON hin. Also in unseren Modellen kaputte Datei sucht es nach einem Kobalt-Unterstrich Block-JSON-Datei. Also klicken wir mit der rechten Maustaste auf diese neue Datei, Kobalt unterstrichen blog.js. Und das sieht tatsächlich dem Artikelmodell aus, das wir zuvor gesehen haben. Geschweifte Klammern, Elternteil, gefallen, Block, Slash Cube, alle Komma-Texturen gefallen. Nur Rekord. Alle Doppelpunkt, MC-Kurs, Doppelpunktblock, Kobalt, Unterstrichenblock. Das Blockmodell bestimmt, wie der Block innerhalb der Welt aussieht. Was heißt das? Nun, während die Blockzustände auf Affen mit einem bestimmten Blockmodell verweisen, bestimmt das Blockmodell die Texturen Blocks und bezieht sich dann im Grunde genommen auf diese Textur genau hier. Und wir brauchen auch ein Artikelmodell für unsere Blöcke. Das ist sehr wichtig. Oh, das wird tatsächlich ein neuer Kobalt-Unterstrich blog.js sein . Dies sieht jedoch ein bisschen anders aus. Dies wird geschweifte Klammern und dann übergeordnete gefallene MC-Kurs in Brock Slash Kobalt Unterstrich Block haben. Dies bezieht sich dann auf dieses Blockmodell und lässt es irgendwie in 3D erscheinen , dass Blöcke innerhalb des t0-Inventars erscheinen. Kopieren wir die Kobaltblock-Textur direkt hier in den Buchhalter. Und dann lass auch die Übersetzung hinzufügen. Ebenfalls sehr wichtig. Lassen Sie uns das kopieren. Und dann nennen wir das den Block MC Course Kobaltblock. Und das ist natürlich ein Block, den sie her sind. Nun, das ist alles, was wir noch einmal wiederholen müssen , wir müssen hier das Registrierungsobjekt für diesen bestimmten Block erstellen . Wir benötigen dann eine Block States JSON-Datei, eine JSON-Datei des Massenmodells, eine JSON-Datei des Elementmodells und die Textur. Dies ist eine allgemeine Idee. Und nachdem wir gesehen haben, ob es funktioniert oder nicht, sehen wir auch einen zweiten Block B, der im Grunde genommen hinzugefügt wurde , damit Sie ein anderes Beispiel haben. Aber im Moment sehen wir, ob es funktioniert oder wir uns dafür im Hinterkopf haben. Wie Sie sehen können, wurde der Cobol-Block hinzugefügt, also legen wir ihn ab und sie gehen, es sieht ziemlich toll und alles funktioniert gut. Wenn es also Probleme mit diesem Block gibt, oder? Wenn also Texturen fehlen, können wir grundsätzlich eine Checkliste durchgehen , die Sie überprüfen können. Wenn der Block also nur keine Textur im Inventar hat, ist es das Artikelmodell Jason, das schuld ist. Textur funktioniert auf der Welt nicht, funktioniert aber im Inventar. Es muss der Block States Jason sein, das ist schuld. Und wenn es in keinem von ihnen funktioniert, dann ist es entweder das Blockmodell JSON oder alle von ihnen. Das ist also eine allgemeine Checkliste, die Sie durchgehen und im Grunde überprüfen können . Aber jetzt, nur für, du weißt, dass du ein anderes Beispiel hast, lass uns einen weiteren Block hinzufügen, oder? Dies beinhaltet also noch einmal viel Kopieren hier. Also werden wir das kopieren, ich füge es ein. Dies wird das Kobalt oder der Block sein, und dann wird dies der Kobaltunterstrich sein oder anstelle von Metall wird das nicht sein. Und das wird eher als fünf Stärke sein , nur Kraft, oder? Das wird gut werden. Jetzt ist der Rest hier in Ordnung. Dies hat den Block jetzt registriert. Natürlich brauchen wir jetzt das Buch, das besagt, dass Reason Model Jason und den Artikel alter Jason mitgebracht hat. Kopieren wir dies einfach indem wir es in denselben Ordner ziehen, während wir die Kontrolle halten und den Namen hier ändern, um zu blockieren, Kobalt oder Thema hier. Dies verweist nun auf ein Blockmodell Jason im Ordner genau hier, das Kobaltunterstrich oder Punkt-JSON genannt wird. Wir werden das auch in das Namensjahr für die Textur erstellen , auf die es verweist, die wir in nur einem Moment hinzufügen werden. Fügen wir die Übersetzung auch sofort hinzu. Aber was ODER, und natürlich der Name hier, wer das Ego unterstreichen wird. Kopieren Sie auch das Kobalt- oder Artikelmodell und benennen Sie es um. Oder und dann unterstreichen oder auch hier. Und dann brauchen wir nur die Textur dafür. Ich kopiere das auch. Und da hast du es. Jetzt wird der nächste Block gemacht. Und ja, wieder einmal, das ist einfach die normale Vorgehensweise. musst du nur in der nächsten Vorlesung durchgehen . Grundsätzlich haben Sie eine Aufgabe, zwei eigene Blöcke hinzuzufügen. Das geht im Grunde genommen um Kobaltblock und den Deep State Cobol oder Block zu rocken . Das ist also nur etwas, das man im Grunde beachten sollte. Abgesehen davon sehen wir einfach, ob die Fertigstellung gesucht wird, ob der oder Block ebenfalls hinzugefügt wurde oder nicht. In Ordnung, wir finden diese Rücken und Mikrovesikel. Sehen Sie, dass das Kobalt oder der Block ebenfalls erfolgreich zum Spiel hinzugefügt wurde. Also funktioniert hier alles super. So einfach ist es eigentlich auch, einen zweiten Block hinzuzufügen , oder? Wie ich bereits sagte, wird die nächste Vorlesung einige Aufgaben beinhalten. Ich empfehle Ihnen dringend, dies durchzugehen , da es sehr, sehr positiv sein kann und nur eine sehr gute Idee ist, diese im Grunde zu tun nur damit Sie ein bisschen Gefühl bekommen. Wieder einmal ist der gesamte Code für die Vorträge hier im GitHub-Repository oder einer Einzelperson genauso verfügbar . Aber das wäre es für diesen Vortrag genau hier. Ich hoffe, Sie fanden das nützlich , wenn Sie etwas Neues lernen und wir sehen uns in der nächsten Vorlesung. Oh ja. 42. AUFGABE 5: Block & Artikel: Oder ich komme zum ersten Auftrag für den vierten Kurs in der Minecraft-Sektion. Und wie ich bereits gesagt habe, werden Sie hier im Grunde zwei Blöcke und einen Gegenstand erstellen. Das sollte eigentlich nicht zu verrückt sein. Hoffentlich findest du die Aufgabe irgendwo in einem schriftlichen Ort. Im Grunde genommen haben Sie die Aufgabe auch als schriftliche Frage. Und die Idee ist, dass Sie den Felskobol-Block sowie den tiefen Schieferkobalt oder Block hinzufügen den Felskobol-Block sowie müssen. Jetzt sind die Texturen für diese Blöcke verfügbar. Gleiche gilt für den Artikel. Bitte beachten Sie, dass die Credits- Datei hier für die Texturen einer bestimmten Lizenz folgt. Wenn Sie sie also in einem öffentlichen Repository oder ähnlichem verwenden möchten , beachten Sie bitte, dass die Gläubiger, wie gesagt, einreichen. Und für den Artikel fügen Sie den rohen Kobaltartikel im Grunde hinzu, und das wäre es so ziemlich. Andere sollten alle nicht zu verrückt für dich sein. Hoffentlich, wenn Sie die letzten Vorträge gesehen haben , sollte es ziemlich einfach sein. Nun, viel Glück und viel Spaß bei der Aufgabe. Also ja. 43. LÖSUNG 5: Block und Artikel: In Ordnung, werfen wir einen Blick auf die Lösung für den ersten Auftrag hier. Und natürlich war es hoffentlich ziemlich einfach. Sie haben gerade die beiden Registrierungsobjekte für die beiden Sperren hinzugefügt , die wir hinzufügen wollten. Gleiche gilt für den Artikel hier, das rohe Kobalt. Und dann brauchten wir nur die Blöcke, diese JSON-Dateien, die einfach auf zwei verschiedene Blockmodell-JSON-Dateien verweisen, die wiederum im Grunde auf die Texturen hier zeigen. Und dann wird die Übersetzung , die an dieser Stelle sein sollte , hoffentlich zur Routine. Und dann brauchten wir nur die Becken des Artikelmodells. Und dazu gehört auch das Felskobalt, das dann genau hier auf eine Textur hinweist. Insgesamt war dies hoffentlich leicht zu tun. Und das ist so ziemlich alles, was du tun musst, um das in deinem Spiel zu haben. Und wir werden im Grunde genommen das rohe Kobalt und all die anderen Dinge auch in Zukunft verwenden im Grunde genommen das rohe Kobalt und all . Oh, es ist definitiv eine gute Idee, dies auch in deinem Spiel zu haben. Der gesamte Code ist natürlich auch im GitHub-Repository oder in einer Einzelperson genauso verfügbar . Und wir sehen uns in der nächsten Vorlesung. Also ja. 44. (Minecraft Benutzerdefinierte kreative Tab: Alles klar, willkommen zurück zum Futterkurs für 118. In dieser Vorlesung werden wir dem Spiel unser eigenes Tablett für kreative Modi hinzufügen . Dies ist eigentlich ein ziemlich einfacher und unkomplizierter Prozess. In unserem Artikelpaket wir mit der rechten Maustaste auf eine neue Java-Klasse, die als Modell Creative Mode, Tabs oder Tab bezeichnet wird . Dies wird Folgendes implementieren. Dies wird eine öffentliche statische endgültige Lesung der Registerkarte „Modus“ namens „ Korps-Unterstrich-Registerkarte“ haben , die einem neuen entspricht. Und du kannst Norris nur die Registerkarte „Kreativmodus“ sehen. Und wenn wir die Tabulatortaste drücken, generiert es die, generiert eine anonyme Klasse für uns. Wir müssen das hier tatsächlich mit einem Semikolon betreten . Und anstatt hier null zurückzugeben, und wir werden weiter abwandern, ist ein neuer Item-Stack. Weitere Gegenstände Punkt Kobalt, Barren, Dot bekommen. Und dann fügen wir drinnen eine Zeichenfolge hinzu. Dieses Label wird hier wieder automatisch generiert. Und das wird nur die Registerkarte „Kursmodell“ sein. Welchen Gegenstand Sie auch hier einlegen, auch welcher Block Sie hier einsetzen, wird das Anzeigebild für die eigentliche Registerkarte sein, und dies wird für die Übersetzung benötigt. Also werde ich das tatsächlich kopieren. Und wir gehen zu unserer E und unterstreichen uns die JSON-Datei ganz unten hier. Und wir fügen einfach den Doppelpunkt CourseMatch Tab CourseMatch hinzu, fügen Sie den Doppelpunkt der Elementgruppe hinzu. Und wir nennen das den MC-Kurs. Nicht. Das ist okay. Jetzt ist dies ein Ausreißer in Bezug auf Übersetzung hier haben wir ein großes G für das Großbuchstaben G für die Artikelgruppe. Und dann natürlich Mod Tab mit äußerster Idee. Aber das ist so ziemlich alles , was wir tun müssen, um es hinzuzufügen. Jetzt fügen wir auch unsere Artikel und unsere Blöcke hinzu. Anstatt den Kreativmodus zu sagen, tippen Sie hier auf, wir werden kreativer, mehr Tab und Punkt Course Tab sagen. Kopieren Sie dies einfach über die Auswahl, drücken Sie Strg C und dann Control V, um es hier einzufügen und dasselbe genau hier zu tun. Grundsätzlich überall wo Sie die Registerkarte „Verschiedenes“ haben. Wir werden jetzt den Kurs-Tab eintragen. Und jetzt werden alle unsere Artikel und unsere Blöcke jedoch im Vier-Schritt sein. Mal sehen, ob es funktioniert oder wir befinden uns wieder in Minecraft. Und ein sehr gutes Zeichen ist, dass wir hier eine zweite Seite haben , um MC-Kerne MOD zu sehen und alles ist hier genau so, wie Sie es erwarten würden. Das ist perfekt. Und einfach alles funktioniert genau so, wie man es schreiben möchte, schon für diese Vorlesung genau hier ist. Ich hoffe, Sie fanden dies in Jurten des Neuen nützlich, wenn er unsere sehr geschätzte Rezension von Ihnen gemacht hat. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 45. (Minecraft Neue Rezepte: Alles klar, Willkommen zurück bei dem Futterkurs für 180. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Rezepte hinzufügen, oder benutzerdefinierte Rezepte werden über benachbarte Dateien erstellt. Sie werden nicht im Assets-Ordner, sondern in einem neuen Ordner ausgeführt. also in den Ressourcen mit der rechten Maustaste auf ein neues Verzeichnis namens Daten oder Daten innerhalb ihres MC-Kurses und dann innerhalb ihrer Rezepte. Was nun sehr wichtig ist, ist noch einmal, dieses Verzeichnis vollständig und vollständig korrekt geschrieben sein muss , sonst funktioniert es nicht. Und ich zeige im Grunde ein Beispiel für jedes Rezeptjahr. Wie ich schon sagte, diese sind wieder im JSON-Format. Und was wir tatsächlich tun können , ist, dass wir hier unten in die externen Bibliotheken gehen können . Wir können das erweitern. Und dann wirst du irgendwo unten finden, weißt du, runter. Aber endliche Minecraft neun zusätzliche 180, eine oder was auch immer die aktuelle Version ist. Wenn Sie dies erweitern und in den Datenordner gehen, sehen Sie Minecraft und dann alle JSON-Dateien , die sich in Minecraft befinden. So können wir uns zum Beispiel jede dieser JSON-Dateien ansehen . Dies sind im Grunde alle Vanille-Rezepte wie „Auszahlen“. Wie funktioniert das? Sie können sehen, dass Kohle kühl oder interessant springt, aber Sie können bereits sehen, dass es verschiedene Arten von Rezepten gibt. Wie wird der Komposter, wie wird der Verbrenner hergestellt? Du siehst das. Du siehst O-Tag, interessant. Okay, wir benutzen hier Tags. Kochzeit könnte ausgefranst sein. Wir haben Dinge wie den Keks. So findest du hier grundsätzlich Beispiele für Sachen. Ich empfehle dringend, das durchzugehen und hier rein zu gehen. Wenn Sie jemals ein Rezept haben, das Sie im Grunde neu erstellen möchten, können Sie es einfach finden. Man kann dann zum Beispiel für den Knochenblock hier sagen , oder? Oh, das ist wirklich eine Sache, die ich machen möchte. Sie können grundsätzlich Strg C drücken, um es zu kopieren. Gehe zurück zu deinen Ordnern, geh hier rein und kontrolliere V, um es einzufügen. Und dann könnte ich zum Beispiel sagen Kobaltblock von Barren wo sie hingehen, und dann öffne ich das und dann kannst du jetzt sehen, dass öffne ich das und dann kannst du jetzt sehen ich es natürlich ändern kann. Und die allgemeinen Ideen so gut, du hast verschiedene Arten von hier, oder? In diesem Fall haben wir ein Formrezept. Das Muster ist gefüllt. Was ist das Muster? Ist der Elternteil drei Strings der Länge drei? Dies stellt also das Handwerksraster dar. Dies ist der obere linke Slot und dann der obere rechte Slot und so weiter und so weiter. Das sollte also nicht zu verrückt sein, um es zu verstehen. Wir können hier Schlüssel einlegen. Sie können also sehen, dass dieses Hashtag-Symbol in diesem Fall grundsätzlich einen neuen Artikel der Schüssel darstellt. Nun, wir werden dies in unsere Kundenartikel ändern. Also sagen wir MC Course Colon oder kauften Unterstrichenbarren. Und dann wird das Ergebnis hier natürlich MC-Kurs-Dolon oder fett unterstrichener Block sein . Aber das alles sollte im Moment tatsächlich Sinn ergeben und sollte nicht zu verrückt sein. Aber das ist ein geformtes Rezept, wie gesagt, weil es eine bestimmte Form hat. Was jetzt auch funktionieren würde, ist so etwas. Dann müssten Sie entweder die beiden oberen Reihen oder die unteren zwei Reihen in der Handwerksbank abrechnen die beiden oberen Reihen oder die unteren zwei Reihen . Sie müssen also nicht immer drei oder drei Saiten lang sein . Es gibt auch Arbeiten. So etwas, das zum Beispiel das Boot wäre, würde auch funktionieren, weil man das Boot entweder ganz oben oder auch unten einsetzen kann. Das ist also sehr wichtig. Und ich werde tatsächlich alles kopieren Ihnen im GitHub Repository oder einer Einzelperson zur Verfügung steht . Sie können zuerst sehen, dass es sich um ein formloses Rezept handelt , weil wir die Zutat im Grunde überall in die Bastelbank legen können die Zutat im Grunde überall in die Bastelbank legen . Und das ist im Grunde ein Kobaltblock, oder? Und dann kriegen wir Roboterbarren und dann neun von ihnen. Im Grunde genommen ist dies das Gleiche wie dieser im Gegenzug, oder? Umgekehrt können Sie die neun Barren jedoch aus einem Block zurückholen. Und dann haben wir diese beiden, die die Barren oder das Schmelzen sind . Du kannst also sehen, dass ich das Kobalt oder in einen Barren riechen kann . Gleiche gilt dafür, aber lasst uns einfach schmelzen oder sprengen wird ziemlich selbsterklärend sein , alles in Betracht gezogen. Und dann können Sie nur als Beispiel einfach verwenden, Wir werden mehrere Schlüssel. Auf diese Weise benutzt man sie. Und Sie können Minecraft-Gegenstände auch entweder als Ergebnis oder als Bastelgegenstand verwenden, das völlig gut funktioniert. Als gäbe es überhaupt kein Problem damit. Das ist also eine Art allgemeine Idee, Jahresende, Naja, in nicht ganz der nächsten Vorlesung, aber der Vortrag danach, wenn ich mich nicht irre, werden Sie Ihre eigenen Rezepte machen und im Grunde genommen habe ein paar Ideen von dem, was du machst. Aber sie sind alle ziemlich einfach. Obwohl es insgesamt das war's. Sehr wichtig. Die externen Bibliotheken empfehlen sehr , dies durchzugehen, da es auch den Assets-Ordner in dem alle Sperrzustände, der Lang, die Texturen auch hier enden, Die Texturen sind hier drin. So können Sie sich im Grunde alles ansehen, auch die Modelldateien. Daher empfehle ich dringend, hier die externen Bibliotheken durchzugehen hier die externen Bibliotheken durchzugehen da dies einfach das Beste ist , was Sie sich jemals ansehen können. Wenn du es nicht weißt, Hey, wie kann ich ein Rezept machen , das genau wie x in Vanille ist? Geh einfach hier rein, sieh es dir an. Ganz einfach, überhaupt keine Sorgen. Dies ist jedoch ein sehr einfacher Prozess. Aber mal sehen wir vorerst, ob es funktioniert oder warum wir uns wieder in Minecraft befinden. Also lasst uns zuerst das Kobaltinnere ausprobieren und sie gehen und kobalt blockieren und mal sehen, ich kann die neun Barren auch zurückholen. Und was Sie auch finden werden, ist, dass es automatisch so wird, wie Rezepte auch im Rezeptbuch. Das ist also echt nett. Und mal sehen, ob wir auch das Kobalt riechen können oder, und natürlich können wir, das ist völlig in Ordnung. Das funktioniert auch. Obwohl alles hier gut funktioniert. Und auch nur aus Gründen der Argumentation, warum nicht versuchen, den Diamantenstapel hier zu machen, die Ego 64-Diamanten funktionieren auch. Netter Wrapper, das wäre es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden diese Nützlichkeit und Unkenntnis des Neuen. Wieder einmal sind alle JSON-Dateien im GitHub-Repository oder wo eine Einzelperson genauso gut verfügbar im GitHub-Repository oder wo eine ist. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 46. (Minecraft Drops mit Loot: Alles klar, willkommen zurück zum vierten Kurs für 118. In dieser Vorlesung werden wir einen Blick darauf werfen, Minecraft benutzerdefinierte Routentabellen hinzuzufügen. Oder ein loser Tisch definiert im Grunde genommen , was aus einem Block fällt. Dies ist auch einer der Gründe, warum wir hier die erforderlichen richtigen Tools für Drops hinzugefügt haben , das alles genau dort. Denn wenn wir das nicht haben, im Grunde jedes Werkzeug, mit dem Sie diesen würde im Grunde jedes Werkzeug, mit dem Sie diesen Block blockieren könnten den tatsächlichen Lu-Tisch oder die Rock-Drops fallen lassen sozusagen den tatsächlichen Lu-Tisch oder die Rock-Drops fallen lassen. erneut in unserem Datenordner im MC-Kursordner mit der rechten Maustaste auf ein neues Verzeichnis namens Loot Underscore-Tabellen. erneut sicher, dass es richtig geschrieben ist. Dann drinnen ein neues Verzeichnis namens blocks. Und dann kopiere ich tatsächlich den Beutentisch für den Kobaltblock, um das zu sehen. So sieht es also aus. Es ist vom Typ Block. Es gibt einen Pool und dann haben Sie grundsätzlich andere Einträge in diesem Pool. Wir können diese Rute einmal sehen, da gibt es hier den Eintrag, einen Eintrag vom Typ Item. Und dann lassen wir im Grunde einen Kobaltblock fallen oder all das kann manchmal etwas verwirrend werden, besonders wenn ich jetzt über den Beutentisch für das Kobalt kopiere oder wegen blockiert natürlich funktioniert das ein bisschen anders. Wir werden sehen, dass dies komplizierter ist, als es zunächst merkwürdig wäre. Aber was wir haben, ist, dass wir nur einen Eintrag haben. Was es ist, ist sozusagen ein Alternativeintrag. Und die Idee hier ist, dass es entweder das fallen lässt und es geht, es wird dies fallen lassen, wenn die Bedingung hier erfüllt ist, was bedeutet, dass die Verzauberung an unserem Werkzeug Silk Touch sein muss . Und dann lässt es das Kobalt fallen oder sonst wird es zwischen 25 Ra fallen. Das ist die allgemeine Idee hier. Und Sie können sehen, dass es auch einen Bonus anwendet , wenn es um die Glücksverzauberungen geht. Das ist etwas, das in diesem Fall auch mit einer Funktion gemacht wird . Ich empfehle dringend noch einmal, auf die externe Bibliothekseinheit zu gehen, Microwave Client extra ein 1801, anstelle des Datenordners werden Sie auch feststellen, dass der Ordner für anspielte Tabellen. Und dann kann man sich alle Loops ansehen, Tische aus allen Vanilleblöcken. Ich kann es sehr empfehlen. Ich kann nicht genug empfehlen, hier runter zu gehen und mir das nur anzusehen. Ich gebe Ihnen auch andere Ressourcen, die wirklich wichtig sind. Einer von ihnen ist der Wiki-Eintrag aus dem Micro-Fan und Wiki, denn hier werden Sie tatsächlich all die verschiedenen Dinge sehen , all die verschiedenen Dinge die Sie können im Grunde genommen eingelegt. Sie können sehen, dass hier eine Menge Sachen drin sind. Empfehlen Sie dringend, sich das anzusehen, im Grunde genommen wie es funktioniert. Und dann gibt es noch einen, und das wird falsch ausgerichtet sein Punkt-GitHub IO Beutetisch. Und das ist ein Rodeltabellen-Generator. Stellen Sie einfach sicher, dass Sie hier oben auf 118 sind. Und wenn du das hast, kannst du im Grunde alles ändern. Du kannst sagen, Hey, ich möchte ein paar bestimmte Funktionen. Sie können sehen, dass dies alle Funktionen sind, oder? Sie werden sie nach bestimmten Bedingungen fragen wie eine zufällige Chance. Du kannst so sein, Hey, ich frage mich, ob die Entität von einem Spieler getötet wird, all das, all das, all das, all das. Es gibt also eine wahnsinnige Menge an Sachen, die Sie hier im Grunde hinzufügen können. Ich empfehle dringend, offen für Experimente zu ein paar Sachen auszuprobieren. Dies ist das Beste, was Sie für Loop-Tabellen tun können. Und ich bin mir sicher, dass Sie es zu diesem Zeitpunkt schaffen werden, etwas wirklich Lu-Tisch zu bekommen, das genau das ist, was Sie sich wünschen würden. Aber das ist eigentlich nicht alles, was wir tun müssen , weil wir tatsächlich etwas anderes hinzufügen müssen. Und das ist noch einmal in unserem Datenordner Klicken Sie mit der rechten Maustaste auf das neue Verzeichnis namens Minecraft, das Spiel, das Sie vielleicht davon gehört haben. Und dort müssen wir ein neues Verzeichnis hinzufügen , alte Tags. Und dann müssen wir dort ein neues Verzeichnis namens blocks hinzufügen. Und dann müssen wir dort ein neues Verzeichnis namens mineable hinzufügen. Warum brauchen wir das? Nun, wir müssen definieren, was unsere Blöcke, unsere Gedankenbreite. Und dafür gehen wir tatsächlich in den Datenordner Minecraft, Eier, Blöcke, und dann werden wir die Unterkiefer genau hier sehen. Was ich tun werde, ist, dass ich sie einfach alle auswähle und die Steuerung C drücke, um sie zu kopieren. Dann gehe ich hier rein und drücke Control V, um es einzufügen. Habe all diese JSON-Dateien mit all den Vanilla-Blöcken hier. Was ich tun kann, ist einfach, dass ich alles auch auswähle und es einfach oder all diese JSON-Dateien loswerde. Aber das sind Tags. Jetzt können Sie sich Tags im Moment im Grunde genommen als eine Sammlung verschiedener Blöcke oder Elemente vorstellen verschiedener Blöcke oder Elemente , die eine ähnliche Funktionalität wie sie haben. Wir werden auch in einem späteren Vortrag durchgehen, welche Blöcke es gibt . Aber vorerst werden wir dem Pic X Jason einfach alle Blöcke hinzufügen , die wir haben. Das wäre also MC-Kurs-Doppelpunkt-Kobalt-Unterstrichenblock. Und dann werde ich das nur viermal duplizieren. Dies ist dann eine Felskobol-Blockwand oder dann auch der IEP-Schiefer. Sehr wichtig ist jedoch, dass Sie nur Blöcke definieren können , die in Ihrem MOD vorhanden sind. Wenn ich jedoch nicht das tiefe Kobalt hätte oder ich hier hinzufüge, bekomme ich einen Fehler, wenn ich versuchte, einer Welt beizutreten , die sehr wichtig ist. Und dann gibt es noch drei Dinge, die ich brauche. Und das ist, naja, das Niveau des Werkzeugs, das ich für dieses andere Level brauche. Also kann ich im Grunde danach suchen. So können Sie sehen schöner Diamant 200 Eisen braucht, um Steinwerkzeug zu benötigen. Noch einmal kopiere ich alle drei davon. Ich empfehle dringend, dasselbe zu tun. Diese stehen Ihnen natürlich auch im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Und dann mache ich das einfach und wir sagen das einfach und dann das Steinwerkzeug auch einfach los. Und so sagen wir zum Beispiel, wissen Sie was, ich denke, dass Cobol und es zumindest Eisenwerkzeuge sind. Was wir also tun werden, ist, dass ich MSE Kurs Doppelpunkt o Bolt Unterstrich Block sagen werde. Und dann merkst du, weißt du was? Nehmen wir die einfach, kopieren sie rüber und legen sie hier rein. Das ist ein bisschen einfacher. Sie gehen. Wir können also nur diejenigen mit mindestens einem Eisenwerkzeug abbauen. Und hoch, das ist die Idee. Also Eisen Werkzeug und höher, wir werden diese jetzt abbauen können, jeden neuen Block, den wir hinzufügen, müssen Sie diesen Tags hinzufügen. Ich werde das wahrscheinlich nicht machen , während wir weitermachen. Ich werde es definitiv nicht zeigen, denn an dieser Stelle, weißt du, wenn du es einmal gesehen hast, solltest du sie wahrscheinlich sehr leicht selbst hinzufügen können. Es sollte ziemlich einfach sein, aber das sollte alles sein , was Sie tun müssen. Und nachdem wir die Tags und die Lautentabellen hinzugefügt haben , Mal sehen, ob es funktioniert. Oder wir haben Sagen in Minecraft gefunden. Also mal sehen, ob ich das abbauen kann und sie gehen die Blockabfälle. Und hier sollten wir uns etwas roh für Walt besorgen und das haben wir getan. Damit alles vollkommen gut funktioniert. Versuchen wir es auch einfach mit einer Steinspitzhacke und Sie können schon sehen, dass es ziemlich lange dauert, also funktioniert es wahrscheinlich nicht. Und Sie können sehen, dass es mit dem Diamond aX nicht dasselbe ist. Es dauert so lange, bis einmal wie beginnt zu sehen, dass die brechende Animation nicht einmal einen Versuch wert ist. Natürlich wird es nicht funktionieren, genau da gäbe es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies in Bezug auf das neue nützlich , wieder einmal alle JSON-Dateien sind im GitHub-Repository oder in einer Einzelperson verfügbar . Und wir sehen uns in der nächsten Vorlesung. Also ja. 47. AUFGABE 6: Rezept und Loot: Okay, willkommen zurück zur zweiten Aufgabe hier für den Kurs für 118. Und in dieser Aufgabe solltest du ein paar lose Tische und ein paar Rezepte hinzufügen . Die Rezepte, die Sie hinzufügen sollten, sind die Nummer 1. Das Rezept für die Nuggets. Dafür kann ich einen Barren hineinstecken und neun Nuggets rausholen. Und dann natürlich noch einmal umgekehrt, wo ich grundsätzlich neun Nuggets in die Bastelbank stecken und dann einen Barren rausholen kann . Das ist die Nummer eins. Nummer zwei ist, Sie sollten auch die Rezepte für den tiefen Schieferbrunnen hinzufügen oder geschmolzen werden, sowie das rohe Kobalt oder zum Schmelzen. Und dann auch in der Lage sein, den rohen Kobaltblock dazu und dann im Grunde auch wieder zurück herzustellen . Und dann ist noch eine Sache, dass Sie ein Rezept hinzufügen sollten , das mindestens zwei Vanilleartikel enthält. So ähnlich wie die Stapeldiamanten von einem anderen Stern. Damit haben wir es hier geschafft, müssen hier nur zwei Minecraft-Artikel enthalten. Und dann können Sie den Rest grundsätzlich ausfüllen, wie Sie möchten. Es kann zu allem führen, was Sie gerne kreativ sein möchten, und probieren Sie einfach ein paar Sachen aus, oder? Also viel Glück und viel Spaß mit der Aufgabe. Also ja. 48. LÖSUNG 6: Rezept und Loot: In Ordnung, Willkommen bei dieser Lösung für diese Aufgabe. Und natürlich, wenn wir die Rodeltabellen hinzufügen, beginnen wir damit, wäre ziemlich einfach gewesen. Jahr haben wir im Grunde nur den Cobaltblock-Beutentisch genommen den Cobaltblock-Beutentisch und durch den Cobol-Block der Reihe ersetzt. Dann gilt das Gleiche für den Kobalt- oder Beutentisch aus tiefem Schiefer, wo anstelle von Kobalt oder es fällt das späte Kobalt oder Reihenkobalt hier immer noch normal fallen sollte. Das sind also die Lautentische. Und wenn es um die Rezepte geht, kann man sehen, dass es einige gibt. Insgesamt sollten diese auch ziemlich einfach sein, oder? Das Letzte aus dem tiefen Schieferkobalt oder es wird ziemlich einfach sein, ist das Gleiche wie der normale, nur, weißt du, mit dem tiefen Zustand da drin. Und so ziemlich das Gleiche gilt für den Rest davon. Alles davon sollte ziemlich selbsterklärend sein. Alles in Betracht gezogen. Wenn überhaupt, bleibt unklar oder Sie haben Fragen, können Sie natürlich jederzeit das zur Verfügung gestellte Q und ein verwenden . Und ich werde die Fragen am besten beantworten. Aber sonst wäre das für diesen Auftrag genau hier. Hoffe, du hast das nützlich und Anführer des Neuen gefunden. Wir sehen uns allerdings in der nächsten Vorlesung. Ja. 49. (Minecraft Erweiterter Artikel: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft ein benutzerdefiniertes Advanced Item hinzufügen . Was ich jetzt als erweitertes Element nenne, ist im Grunde ein Element, dem eine eigene Klasse zugeordnet ist. Dies bedeutet nicht immer, dass es notwendigerweise verrückt fortgeschritten ist, aber Sie haben im Grunde die Möglichkeit, diesem Artikel viel mehr Funktionalität hinzuzufügen . Also lasst uns einfach sehen, wie das geht. In unserem Artikelpaket. Wir klicken mit der rechten Maustaste auf ein neues Paket namens Custom. Und dann würde dort keine neue Java-Klasse mit der rechten Maustaste auf die neue Java-Klasse namens „Dowsing Rod Item“ machen . Ich empfehle dringend jeden benutzerdefinierten Artikel mit dem Wort Item zu beenden, damit Sie wissen, was es ist. Dies erweitert die Item-Klasse genau hier, wird den Mauszeiger über diesen Create, Konstruktor passt super. Und dann schauen wir uns im Grunde an, was wir tun können. Wenn wir also mit der mittleren Maustaste auf die Item-Klasse klicken, können wir tatsächlich alle verschiedenen Methoden sehen , die wir möglicherweise überschreiben können. Und Sie können sehen, dass es viele Methoden gibt , die wir hier außer Kraft setzen können, was wirklich cool ist. Und es gibt sogar ganz hinten hier, ich schmiede einen Gegenstand, auf den wir auch mit der mittleren Maustaste klicken können , und es gibt noch mehr Methoden , die wir überschreiben können. Sie können auch die Methoden sehen, die wir überschreiben können , wenn wir hier Override eingeben . Und dann können Sie im Grunde alle verschiedenen Methoden sehen , die zum Überschreiben möglich sind. Und das sind viele Methoden, wie Sie deutlich erkennen können. Es kommt also wirklich darauf an, noch einmal ein paar Sachen auszuprobieren und ein paar Sachen auszuprobieren. Und noch einmal ein paar Sachen ausprobiert, offen für Experimente zu sein, wahrscheinlich das Beste, was ich Ihnen im Grunde sagen kann. Jetzt werden wir einen Gegenstand der Werbetrute herstellen. Und ich möchte damit anfangen, ist das Folgende. Ich möchte mit diesem Element in einem Block mit der rechten Maustaste klicken können . Und dann wird es sich im Grunde in den Boden erstrecken. Schauen Sie sich im Grunde jeden Block an , der sich unter dem Block befindet , auf den wir gerade geklickt haben. Und wenn es einen wertvollen Block findet , werden die Koordinaten ausgedruckt . Das ist alles was ich tun will. Das ist schon eine ziemlich interessante Idee. Alles, was wir sehen, wird die Rechtsklick-Methode sehen, wenn Sie mit der rechten Maustaste auf Blöcke klicken, da es zwei verschiedene Methoden gibt , mit der rechten Maustaste auf Nanoblock und sozusagen mit der rechten Maustaste in die Luft zu klicken. Also können wir es einfach nutzen, und Sie können diese Verwendung genau hier sehen. Dies ist derjenige, der heißen würde. Diese Methode würde aufgerufen, wenn wir einfach mit der rechten Maustaste in die Luft , damit Sie dies wünschen würden. Die Methode US on ist hier die Methode, die aufgerufen wird , wenn Sie mit der rechten Maustaste auf einen bestimmten Block klicken. Aber das ist derjenige, den wir hier außer Kraft setzen und sehen, dass es den Kontext verwendet. Und was wir tun werden, ist, dass wir es einfach tun werden, nun, ich werde die Funktionalität einsetzen und versuchen, es am besten zu erklären, während ich weitermache. Wir werden also eine if-Anweisung haben , bei der wir im Grunde den p-Kontext fragen werden , der ein Level erreicht. Also kriegen wir die Welt. Das Level hier, sagen wir, ist Kundenseite. In diesem seltenen, seltenen Fall wollen wir in diesem Fall eigentlich alles auf dem Kunden machen , weil es uns tatsächlich etwas interessanter ist. Also sagen wir block Pause, Position. Anklicken ist gleich dem Kontext-Punkt, Position abrufen, DIA, geklickt werden, hier pausieren. Und der Modul wird dies durch Drücken von Alt und Enter importieren . Dann wollen wir den Spieler. Der Spieler wird Kontexte sein, Punkt-Dot-Dot-Player, den du gehst. Und dann noch einmal auf Player klicken und diesen dann auch mit Alton importieren. Und dann haben wir nicht zuletzt ein boolesches Buch, das hier gleich falsch ist. Und dann wollen wir eine for-Schleife. Also werde ich einfach diese for-Schleife einsetzen und dann schauen wir uns an , was das im Grunde tut. Aber wir fangen hier an. Ich werde sagen, dass ich mehr gleich Position darauf geklickt habe, hol y i plus plus. Und dann möchte ich im Grunde den Block bekommen, der sich unter dem Block befindet, den ich mir gerade angeschaut habe. Blockieren Sie also unten, was dem p-Kontextpunkt entspricht, wieder Level bekommen, nicht Sperre, Datum an der bestimmten Position, die die Position ist, auf den Punkt unten geklickt, genau wie viel ich aufzähle. Und dann holen wir einfach den Block davon und importieren den Block, indem wir erneut Alt und Enter drücken. Was ich dann will, ist, dass ich die Koordinaten ausgeben möchte und ich muss auch überprüfen, okay, ist dieser Block, weißt du, etwas Wertvolles. Dafür werden wir zwei Hilfsmethoden erstellen. Jetzt kopiere ich tatsächlich die Ausgabe der Koordinaten, oder? Dies ist die Ausgabemethode hier. Wir können also sehen, dass wir nur den Namen des Blocks bekommen und dann die Koordinaten herausgeben. Das ist also alles, was wir hier wirklich machen. Und dann wollen wir auch ein privates boolesches, altes, wertvolles Schloss, das hier nur einen Block einnimmt. Und wir geben dann einfach ein True zurück , wenn dies ein wertvolles Buch ist, was wir tun werden, ist, dass wir Block Equals Blocks Punkt-Umfrage zurückgeben oder zum Beispiel oder LOC gleich, Sperren oder, oder. Und dann lass uns einfach das duplizieren wird hier noch eine Orange haben. Formatiere das ein bisschen anders. Wenden Sie das an. Ja, und dann werden wir auch Diamant oder vielleicht auch Eisenerz hier einsetzen . Und Eisenblock aber Eisen oder sie vor. Dies sind die vier wertvollen Blöcke vorerst. Wenn Sie mehr möchten, können Sie in einer späteren Vorlesung natürlich weitere hinzufügen. Wir werden auch einen robusteren Weg sehen dies mit Tags zu tun. Aber vorerst wird das gut werden. Was wir dann sagen werden , dass wir sagen werden , wenn es wertvoll ist, gehen Sie einen Block unten. Wir werden die Koordinaten jedoch in der Position ausgeben, auf die unten geklickt wurde, mit I hier, da dies die tatsächliche Position ist, auf die wir gerade mit dem Spieler und dem Block unten geklickt haben. Wir setzen dann fest, dass der gefundene Block wahr ist. Und dann brechen wir hier aus der for-Schleife aus, weil wir einen Block gefunden haben. Und wir müssen grundsätzlich keine Überprüfung mehr durchführen , da wir nur den ersten Block ausgeben wollen, den wir finden. Und wenn wir mit der for-Schleife fertig sind, werden wir sagen, wenn nicht noch Blöcke gefunden. Das bedeutet also, dass kein Block gefunden wurde. Wir werden Spielerdaten und Nachrichten mit einer neuen übersetzbaren Textkomponente angeben. Artikel, MC Kurs Dowsing, Rod Dowsing, kein Unterstreichungswert. Und dann nach den Klammern wird der zweite Parameter Player Dot Get UUID vor einem Jahr sein . Dies ist natürlich eine Möglichkeit, eine Nachricht in den Chat auszugeben. Nun, dies ist eine übersetzbare Textkomponenten, also müssen wir dies genau hier nehmen und es der un-unterstrichen uns JSON-Datei hinzufügen . Also werden wir das einfach hinzufügen und einfach keine Wertsachen aussagen. Ich empfehle, übersetzbare Komponenten überall dort zu verwenden , was Sie im Grunde genommen nur ein bisschen robuster machen nur ein bisschen robuster oder auch in anderen sprechenden Ländern. Im Grunde genommen, wenn Sie eine andere Sprache haben , die es gerade ein bisschen schöner macht zu lesen und zu verwenden. Was ist der Rest? Was ist hier los? Nun, zuerst stellen wir sicher, dass wir beim Kunden sind. Dies ist normalerweise nicht der Fall. Normalerweise möchten wir auf dem Server sein, aber in diesem Fall, weil wir nur etwas ausgeben Auf dem Client ist in Ordnung, weil diese Verwendung tatsächlich alles zweimal auf dem Server erfolgt und die client wird dann einfach zwei Variablen hier erstellen. Also die Position, auf die du geklickt hast, und dann der Spieler. Und wir werden dann vom Ende der Welt bis zur tatsächlichen Position gehen , auf die wir geklickt haben. Das wird y sein. Und wir werden anfangen, wenn wir das erreicht haben. Was wir jetzt tatsächlich tun müssen , ist, dass wir dieses winzige Stück hier im Blockzustand tatsächlich ändern müssen . Denn wenn ich hier unten eine negative Zahl einfüge, würden wir natürlich plötzlich über alles hinausgehen. Also kann ich tatsächlich auch darauf eingehen. Mal sehen. Wir werden in dieser Entfernung in die Abwärtsposition gehen. Jetzt ist das eigentliche Problem natürlich, dass die Entfernung hier negativ ist. Und natürlich gehen wir einfach nach oben, anstatt runter zu gehen. Und wir wollen tatsächlich eine 64 hinzufügen , weil es natürlich, anstatt dass 0 die Grenze der Welt ist, jetzt negativ 64 ist. Deshalb müssen wir dies im Grunde auch um ein 64-Jahr erhöhen und dann sollte der Rest völlig gut funktionieren, denn der erste Block, den wir uns buchstäblich ansehen werden , ist der Block selbst , den wir gerade haben geklickt. Und dann, wenn ich eins werde, werden wir eins runtergehen und so weiter und so weiter bis wir bis 0 sind, wenn wir das erreichen. Aber dann ist es die Sache, dass wir dann weitermachen können. Dafür darunter. Deshalb fügen wir hier eine 64 hinzu. Insgesamt sollte dies alles sein, was wir tun müssen. Gehen wir zur Klasse Mehr Items und lassen Sie uns die Elemente erstellen. Wir werden das einfach kopieren und das zur Rute machen. Und dann hier die gleiche Werftrute. Statt eines neuen Gegenstandes ist dies ein neuer Gegenstand der Dowsing Rute. Dies ist äußerst wichtig , dass Sie dies tun. Bitte beachten Sie, dass es sich um einen neuen Dowsing Rute handeln muss. Sonst wird es diese Funktionalität natürlich nicht erhalten. Sehr vorsichtig mit. Fügen wir auch die Übersetzung hinzu. Es gibt also eine Dowsing Rute, und hier ist es eine Dowsing Rute. Lassen Sie uns das englische Artikelmodell hier für die Dowsing Rute kopieren . Und ändere den Namen hier, Dowsing Rod. Und dann kopieren wir auch die Wurfstangen-Textur in den Items Ordner genau hier. Dowsing Rod sie vor. Und jetzt sollte das alles sein , was wir brauchen werden. Obwohl. Mal sehen, ob es funktioniert. Ordnung, wir befinden uns in Minecraft und wie Sie sehen können, das Dowsing oder wurde dem Spiel hinzugefügt. Mal sehen, ob ich mit der rechten Maustaste klicke. Nun, das ist eine großartige Sache zu sehen. Ihr, das ist natürlich nicht ganz das, was wir im Sinn hatten. Sie können keine Wertgegenstände sehen, die völlig gut funktionieren. Dies ist nur die tatsächliche Ausgabe ist natürlich, würde etwas schöner zu lesen gemacht werden, aber keine Sorgen. Wir können die tatsächliche Position davon sehen. Und nun, ich meine, das ist absolut perfekt. Das scheint völlig gut zu funktionieren. Und alles ist gut. Jetzt gibt es tatsächlich zwei Dinge , die wir auch hinzufügen sollten, und das ist in den Artikeleigenschaften, ich sollte auch die Haltbarkeit genau hier hinzufügen. Und das wäre zum Beispiel 16, also können wir es 16 Mal benutzen. Und dann sollten wir auch sicherstellen , dass wir die Gegenstände tatsächlich beschädigen. Dies wird also außerhalb der if-Aussage geschehen. Wir werden P-Kontexte sagen, Punkt-Dot-Dot-Dot, einen Gegenstand in die Hand bekommen, der weh tut und kaputt geht. Nach dem einen. Wir sagen P-Kontexte, Punkt-Dot-Dot-Dot, Spieler holen. Dann werden wir sagen, mach eine Klammer, wo wir den Spieler hier einsetzen, dann einen Pfeil, und dann sagen wir, Spieler-Punkt-Übertragung, Break Event mit dem Ebenenpunkt benutzte Gegenstandshand. Dies wird also im Grunde jedes Mal, wenn wir diesen Artikel verwenden , eine Haltbarkeit erhöhen oder subtrahieren . Und dann stellt das im Grunde nur sicher , dass wir eine gewisse Haltbarkeit haben. Sie sind etwas , das wir auch nicht stapeln können , was natürlich sehr sinnvoll ist. Lassen Sie uns dann auch nur aus Gründen des Arguments in diesem Fall sein, anstatt den GetName zu machen, machen wir einfach als Element und holen Sie dann den Registrierungsnamen und setzen ihn dann in eine Zeichenfolge. Das sollte auch funktionieren. Ich glaube, das sollte dann Minecraft-Doppelpunkt ausgeben, und dann was auch immer der eigentliche Block ist, was auch völlig in Ordnung ist. Das sind nur einige Anpassungen hier. Der gesamte Code steht Ihnen natürlich in einem GitHub-Repository zur Verfügung und auch individuell. Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies in Euro des Neuen nützlich, und wir sehen uns in der nächsten Vorlesung. Also ja. 50. (Minecraft Erweiterter Block: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten erweiterten Block hinzufügen . Ähnlich wie beim erweiterten Artikel. Und Advanced Block benötigt eine eigene separate Klasse. also im Blockpaket rechten Maustaste auf ein neues Paket namens custom. Irgendwie klicken wir mit der rechten Maustaste auf neue Java-Klasse, die als SPD-Block bezeichnet wird. Und der Spirit Block wird die folgende Funktionalität haben. Wenn wir weitermachen, werden wir einen Effekt auf uns anwenden. Und das ist die Bewegungsgeschwindigkeitseffekte werden im Grunde schneller werden. Jetzt erweitert dies die Blockklasse und stellt sicher, dass wir einen Minecraft-Minecraft-Welt-Level-Block wählen . Sehr wichtig. Und dann bewegen wir den Mauszeiger über diesen Creed-Konstruktor, der super passt. Und wenn der Parameter hier nicht zugeordnet ist, können wir einfach darauf klicken, Umschalttaste F6 drücken und dann Eigenschaften wählen, nur damit es ein bisschen schöner aussieht. Und dann ist die Methode , die wir überschreiben möchten , die Schritt-on-Methode. Also geben wir das einfach ein und drücken dann Tab zwei. Schließe das ab. Und wieder können wir mit der rechten Maustaste auf die Blockklasse klicken und wir können viele verschiedene Methoden sehen, die wir überschreiben können, wahrscheinlich sogar mehr als im Element. Und das ist natürlich nicht der Fall, denn es gibt auch eine I4-Block-Schnittstelle , die noch mehr Methoden hat, mit denen Sie dies außer Kraft setzen können. Sie können sehen, dass das verrückt ist und viele Methoden, die ich wärmstens empfehlen kann. Wieder einmal ist es einfach offen für Experimente. Sie können sehen, ob ich hier mit der Eingabe von Override angefangen habe. Es gibt die US-Methode , die zum Rechtsklick oder Blockieren verwendet wird. Es gibt Methoden wie Add Landeeffekt bei Laufeffekten. Das ist verrücktes Zeug. Ernteblock kann Block ernten. Das ist wie bei einem bestimmten Gegenstand, Canvas erntet den Block. Wir haben eine wahnsinnige Menge an Dingen, wie Sie alles klar sagen können. Es gibt die Zerstörungsmethode, Es gibt die Feder-Hover-Text-Methode, und dann einige von ihnen , die hier veraltet sind. Jetzt, normalerweise, wenn Sie eine veraltete Methode wie zum Beispiel die onRemove- oder die US-Methode haben. Die US-Methode ist ein großartiges Beispiel dafür, bedeutet nicht immer, dass Sie sie nicht verwenden sollten. Das bedeutet, dass Sie diese Methode nicht aufrufen sollten , einschließlich der Super Cool. Aber das ist etwas, das man hier im Hinterkopf behalten sollte. Aber für uns interessieren wir uns nur für den Schritt auf die Methode. Und was wir hier überprüfen möchten, ist im Grunde genommen Wir sind nicht auf dem Kunden oder das muss eintippen, ist Ausrufezeichen P Level clientseitig. Jetzt ist dieses Ausrufezeichen hier äußerst wichtig. Okay, mach es nicht ohne das Ausrufezeichen, denn ohne das Ausrufezeichen überprüfen wir ein fremdes, die Clients, die wir auf dem Server sein möchten . Wir müssen dies sehr wichtig annullieren. Dann wollen wir prüfen, ob das Unternehmen, das darauf getreten ist, ein Lebewesen ist oder nicht. Dies bedeutet einfach, dass wir es ohne Probleme umsetzen können. Wir können also Lebewesen sagen. Und Entität ist gleich der E-Entitätspunkt-Besetzung Und dann wird es meistens Lebewesen schon vorschlagen. Das ist also großartig. Und was wir dann tun können, ist, wenn es ein Lebewesen ist, können wir Dot Add-Effekt nennen. Und hier wollten wir im Grunde nur eine neue Mob-Effekt-Instanz aufrufen. Hier geben wir einen Mob-Effekt ein , was immer wir wollen, in diesem Fall ist es Bewegungsgeschwindigkeit. Und dann wird der zweite Parameter hier die Länge sein. Dies ist also die Zeit , die dieser Effekt hat. Wenn wir 200 einsetzen würden, wären das 200 Zecken. Teilen Sie dies also durch 20, um die Zeit in Sekunden einfach zu erhalten. Und Sie können auch einen dritten Parameter hinzufügen, und das wird der Verstärker sein. Das ist also im Grunde ein Additivverstärker, bedeutet, dass, wenn Sie hier nichts haben , es einer sein wird , das wird sp2 sein, das wird sp3 und so weiter und so weiter sein. Das ist also die allgemeine Idee hier. Lasst uns einen machen, nur damit wir das auch sehen können. Und nun, das ist so ziemlich alles, was wir im Bereich der Funktionalität für die schnelle Blockkraft tun müssen im Bereich der . Jetzt müssen wir es immer noch registrieren. Wir werden einfach über das Deep Sleep Cobol oder hier kopieren und wir nennen dies den SPD-Unterstrich. Und dann der Name das Gleiche, schneller Unterstrich Block. Dann sehr wichtig. Dies ist dieses Mal wieder ein schneller Block und kein normaler Block. Die anderen Dinge, mit denen ich tatsächlich zufrieden bin, jetzt kommt es nur noch um die JSON-Dateien , die ich kopieren werde. All diese stehen Ihnen natürlich auch im GitHub-Repository oder einer Einzelperson zur Verfügung. Sehen Sie, dass dies nur ein normales Blockmodell ist. Jason. Dann lassen Sie uns das hier kopieren und sagen ET Unterstrich Block. Und dann wird der Name schnell blockiert als Kopie über das Blockmodell. Wieder einmal auf ein normales Blockmodell, das auf eine Textur hinweist. Und das Artikelmodell besitzt auch nichts Verrücktes oder Spektakuläres. Es ist nur ein normales Artikelmodell, wie wir es bei vielen anderen Blöcken gesehen haben , das einfach auf das Blockmodell zurückweist. guter Letzt fügen wir natürlich auch Textur und Ego hinzu. Jetzt haben wir alles hinzugefügt , was wir hinzufügen müssen. mal sehen, ob es funktioniert. Oder Straftaten zurück und Migräne können sehen, dass die SVD pleite zu den Spielen hinzugefügt wurde. Lass es uns einfach ablegen. Und was sehr wichtig ist, ist, dass dieser Pfeil zwar in diese Richtung zeigt, aber immer in diese Richtung egal wie ich ihn absetze. Das werden wir einfach im Hinterkopf behalten. Weil diese Textur im Grunde immer in die gleiche Richtung zeigen wird. Wir werden in einem späteren Vortrag sehen wie sich das ändern kann. Lass uns hier zur Schule gehen und du kannst sehen, dass ich mich bereits bei mir bewerben kann, während ich dort bin. Ich werde das ständig auf mich zutreffen lassen. Aber sobald ich losgehe, siehst du jetzt, dass ich auch Geschwindigkeit habe. Dies könnte zum Beispiel ein wirklich cooler Block sein, für jede Art von Abenteuerkarte oder wie Parkour-Map, möglicherweise Gummi, für diese Vorlesung genau hier schon wäre. Ich hoffe, Sie fanden dies in Bezug auf die neue Kraft nützlich. Wieder einmal steht Ihnen der gesamte Code im GitHub-Repository oder einer Einzelperson genauso gut zur Verfügung. Wir sehen uns in der nächsten Vorlesung. Also ja. 51. (Minecraft Benutzerdefiniertes Brennelement: Alles klar, willkommen zurück zum Futterkurs für 118. In dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Brennstoffartikel hinzufügen . Das Hinzufügen eines benutzerdefinierten Brennstoffartikels ist eigentlich ziemlich einfach. wir jedoch tatsächlich müssen wir jedoch tatsächlich eine neue Klasse erstellen. also in unserem benutzerdefinierten Paket hier mit der rechten Maustaste auf die neue Java-Klasse, die als Kohlesplitter bezeichnet wird. Und dies wird die Item-Klasse erweitern. Lasst uns den Mauszeiger über dieses Erstellen bewegen, Konstruktor passt super. Und dann müssen wir wirklich nur eine bestimmte Methode außer Kraft setzen. Und das ist D bekomme Brenndauer. Genau hier. Wir doppelklicken einfach darauf und dann kehren wir jeder Zeit zurück, die dieser tatsächliche Artikel zum Brennen benötigt. Jetzt werden wir für unsere Zwecke für eine 100 tun. Wieder einmal ist dies die Zeit, die es braucht, also ist das sehr wichtig. Und zum Beispiel hat Kohle eine Brenndauer von 1600, also ist dies genau 1 Viertel, gut wie Fieberbläschen. Gehen wir nun zu unserer Klasse für mehr Gegenstände und kopieren wir einfach über die Werftrute. Dies wird der Kohle-Unterstrich sein. Und im selben Jahr unterstreicht Kohle Splitter und stellt sicher, dass wir keine Haltbarkeit haben . Das ist sehr wichtig. Und dass wir hier eine neue Kohle einen Splitter-Gegenstand kreieren. Abgesehen davon ist das alles, was wir tun müssen. Natürlich brauchen wir immer noch ein Artikelmodell. Kopieren wir einfach das Artikelmodell des Kobaltbarren und wir nennen das den Kohleunterstrich. Und dann ändere ich mich auch in diesem Jahr. Cool, wir unterstreichen die Leber. Vergessen Sie nicht, auch die Übersetzung hinzuzufügen. Wir werden Splitter unterstreichen. Schlimmer noch, dies die OLS-Leberkraft zu nennen. Und dann nicht zuletzt, sondern auch über den Artikel kopieren. Genau hier in unseren Items Ordner für Intro, den Texturen-Elementordner sie vor. Und das ist eigentlich alles , was wir tun mussten. Mal sehen, ob es in Minecraft funktioniert oder weiterleitet. Und lasst uns einfach die Küste des Ehemannes sehen. Und natürlich funktioniert es vollkommen gut. Und man sieht, dass das Feuer im Grunde gut, ziemlich schnell abnimmt. Alles in allem sollte es im Grunde 20 Sekunden dauern , dass es Verbrennungen gibt, also sollte es für genau zwei Gegenstände reichen. Das Stinken vollständig, im Grunde genau 1 Viertel des tatsächlichen Kerngegenstandes können wir rochen. Also würde ich sagen, das ist ziemlich cool. In Ordnung, und so einfach kann es sein, den benutzerdefinierten Brennstoffartikel zu Minecraft hinzuzufügen . Und ja, leider müssen Sie hier immer eine neue benutzerdefinierte Klasse erstellen, was Sie theoretisch auch tun können, ist, dass Sie eine anonyme Klasse in den weiteren Elementen hier erstellen können . Aber ich schlage nur vor, es so zu tun , weil das einfach viel einfacher ist. Seien wir einfach ehrlich, denn das ist nicht allzu verrückt. Und es sollte auch in Ordnung sein. Sie können immer ein neues Paket erstellen das wie Treibstoffartikel kostümiert ist, und dann einfach alle Ihre Artikel hineinlegen wenn Sie sich wirklich darüber ärgern, mit diesen Klassen, das sollte auch möglich sein. Sonst wäre das 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 allerdings in der nächsten Vorlesung. Ja. 52. (Minecraft Benutzerdefinierte Lebensmittelgegenstand: Alles klar, willkommen zurück im Futter Course Room 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Lebensmittelartikel hinzufügen . Das Hinzufügen eines benutzerdefinierten Lebensmittelartikels ist eigentlich nicht so schwierig. Du brauchst im Grunde nur einen normalen neuen Artikel. Also brauchen wir hier nur einen neuen Artikel. Und das wird eine Rübe sein. Und natürlich gilt das Gleiche hier, Rübe. Und wenn wir es tun müssen, müssen wir die Dot-Food-Methode genau hier nennen die Dot-Food-Methode und einige Lebensmitteleigenschaften weitergeben. Anstatt diese Lebensmitteleigenschaften in Einklang zu bringen, werden wir nun eine neue Klasse erstellen und das Artikelpaket mit der rechten Maustaste auf die neue Java-Klasse namens Mode Woods klicken. Und dann kann man dieses Essen im Grunde kreieren. Das Vanille-Beispiel wäre die Klasse des Essens. Drücken Sie also zweimal die Umschalttaste und legen Sie hier Lebensmittel ein. Stellen Sie sicher, dass Sie hier die Elemente ohne Projekt einschließen ankreuzen . Und dann können wir das öffnen und sie gehen, jetzt haben Sie im Grunde Zugang zu allen Lebensmitteleigenschaften , die Bonilla auch anbietet, damit Sie grundsätzlich wissen können, was Sie dort hinzufügen sollten. Also werden wir hier unser eigenes Lebensmittelobjekt hinzufügen, also machen wir eine öffentliche Statik. Final, gute Eigenschaften werden auftauchen. Und dann ist das gleich einem neuen Essen von Partys, die Baumeister. Und wir werden Nahrung hinzufügen. Aber das ist die Anzahl der AF-Treffen im Grunde genommen, die Sie wiederhergestellt werden. Der Sättigungsmodus ist im Grunde das, was im Hintergrund passiert. Und dann, nur damit Sie es gesehen haben, können Sie hier auch einen Effekt hinzufügen, da Sie sehen können , ob wir hier einfach einen Anbieter einer neuen Mob-Effekt-Instanz verwenden können , zum Beispiel die mobilen Effekte, diese Bewegungsgeschwindigkeit oder sagen wir mal wieder 200 Ticks. Und dann gibt man auch eine Wahrscheinlichkeit ein, wie oft das passiert. Wenn du zum Beispiel sagst, weißt du was? Ich möchte eigentlich nur, dass es 10 Prozent der Zeit passiert. Dann setzt man Punkt 1 f ein. Am Ende musst du immer mit einem hier gebauten Punkt und dem Ego enden. Und das ist im Grunde genommen die Rübe fertig. Und jetzt wird dieses Jahr genau hier angerufen. Wir werden nur Mod von Lebensmitteln sagen, die auftauchen. Und vor ihnen ist das alles, was wir tun müssen, um den benutzerdefinierten Lebensmittelartikel hinzuzufügen. Jetzt brauchen wir natürlich immer noch sowohl die Textur als auch die JSON-Datei ls des Elementmodells. Vergiss jetzt, und die Übersetzung auch hier. Rübe ist natürlich ein Verb. Und dies wird das Rübenartikelmodell sein, das ein normales Artikelmodell ist , wie wir jetzt viel Zeit gesehen haben, das einfach auf diese einzigartige Textur hinweist. Und nun, nachdem wir all das hinzugefügt haben, Mal sehen, ob es in Minecraft funktioniert oder anstößig ist. Also lasst uns einfach die Rübe essen. Wie Sie sehen können, wurde es hinzugefügt und es hat genau einen Hungerriegel aufgefüllt. Die Idee ist also, dass wenn man zwei Hälften einsetzt, das natürlich zwei Hälften füllen würde, was bedeutet, dass ein See, ein Hühnerbein, eine im Grunde genommen die Bar genau dort trifft. Stimmt's? So einfach kann es sein , Minecraft benutzerdefinierte Lebensmittel hinzuzufügen. Stimmt's? Und das würde sich für diese Vorlesung genau hier Sorgen machen. 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. 53. (Minecraft benutzerdefinierte Tooltips: Alles klar, willkommen zurück beim Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Tooltip hinzufügen . Und was ist ein benutzerdefiniertes Tool? Nun, es ist genau das, was Sie sehen, wenn Sie den Mauszeiger über einen bestimmten Gegenstand bewegen. Aber zuerst werden wir es dem Gegenstand der Dowsing Rute hinzufügen , da wir dafür normalerweise eine benutzerdefinierte Artikelklasse benötigen. Wir werden jedoch auch sehen, wie wir es schaffen können und im Grunde auch zu den Blöcken hinzugefügt werden, denn das ist etwas, nach dem viele Leute in der Vergangenheit gefragt haben. Also wollte ich das auch zeigen. Also werden wir damit beginnen, die Methode append Hover Text genau hier zu überschreiben . Also geben wir einfach einen Stift Hover Text ein und vervollständigen ihn dann automatisch mit der Tabulatortaste. Und dann brauchen wir das nicht mehr denn was wir wollen, ist, dass wir den Mauszeiger über die eigentliche Dowsing Rute bewegen wollen und dann etwas wie Redshift für weitere Informationen sagen wird . Und wenn wir dann die Umschalttaste gedrückt halten, können wir im Grunde den eigentlichen Tooltip sehen . Aber wie machen wir das? Nun, wir werden sehen, ob das als Verschiebung nach unten angezeigt wird, dann werden wir noch eine Sache machen. Wir werden noch etwas tun. Und das einzige, was wir tun werden, ist, dass wir Tooltip-Komponenten dot add sagen. Wir werden hier eine neuere übersetzbare Komponente verwenden . Und der Schlüssel wird Tooltip Punkt, Punkt, Dowsing, Unterstrich sein. Über, sag einfach Tooltip, diese Verschiebung. Wieder einmal sehr wichtig. Diese Schlüssel stimmen einfach mit ihm überein. Das ist das Wichtigste. In diesem Fall. Ich denke , das ist in Ordnung. Wir können das einfach kopieren. Und dann sagen wir hier unten einfach ohne die Verschiebung. Nun, wo definieren wir das noch einmal, genau wie wir es hier getan haben, definieren wir dies einfach innerhalb der Yen us JSON-Datei. Genau wie wir es hier oben gemacht haben. Wir definieren dies in der ENR Score us JSON-Datei. Wir werden das hier einfach ganz unten machen . Und dann wird das ungefähr wie folgt aussehen . Die Verschiebung ist also diejenige , die tatsächlich auftaucht, wenn Sie die Umschalttaste gedrückt halten. Und es wird mit der rechten Maustaste klicken, um Wertsachen zu finden. Und wir duplizieren einfach die Zeile, indem wir Strg D drücken und die Verschiebung hier entfernen. Und dann fordert dies den Benutzer grundsätzlich auf, die Umschalttaste zu drücken. Und so können wir das tun, ist, dass wir hier ein Absatzsymbol einfügen können , E, heben und Absatzsymbol r. Und das wird dies zu einer anderen Farbe machen. Ich werde die Ressourcen verlinken, eine großartige Ressource, um diese Farbcodes im Grunde zu sehen. Ich empfehle dringend, sich das anzusehen. Grundsätzlich sind es die Formatierungscodes , mit denen Sie auch alle Minecraft-Bücher verwenden können. Ich empfehle dringend, sie sich anzusehen denn dann kannst du im Grunde alles einfärben , was du willst und du kannst es ziemlich cool machen, alles in Betracht gezogen. Aber ja, das ist eigentlich alles , was wir für den Artikel brauchen. Gehen wir dann zu den Blöcken weiter. Die Blöcke sind ein bisschen anders, aber sie sind auch ziemlich einfach. Also werden wir es nicht für den schnellen Block machen, wir werden es tatsächlich tun. Nun, wir werden diese beiden Methoden außer Kraft setzen , oder? Was heißt das also? Nun, wir werden sie nur zuerst kopieren, und dann werden wir einen Fehler bekommen, weil wir zwei Methoden haben, die mit anderen Methoden übereinstimmen. Aber was wir einfach tun können, ist, dass wir hier einfach einen neuen Parameter hinzufügen. Und das wird nur eine Schnur sein. Und das wird der Tooltip-Schlüssel sein, dann wird das Gleiche passieren. Also kopiere ich das einfach in die Registrierungsblock-Methode. Und dann siehst du alle Arbeiten wieder. Denn was wir dann tun werden, ist, dass wir das auch hier weitergeben werden. Also der Tooltip, er wird hier weitergegeben. Und dann werden wir hier, anstatt nach diesem nur ein normales Blockelement zu erstellen , eine anonyme Klasse erstellen. Und dann können wir hier einfach den Hover-Text anhängen. Was wir dann sagen werden , ist, dass wir Tooltip dot add sagen werden. Und dann sagen wir einfach eine neue übersetzbare Komponente mit dem Tooltip-Schlüssel, den wir dort übergeben haben. Und da gehst du. Jetzt wird dies nur aufgerufen, wenn wir hier tatsächlich einen Tooltip e am Ende des Blocks hinzufügen . Also wenn ich es nicht hinzufüge, dann wird es einfach den Block ohne ihn erstellen. Wenn ich es hinzufüge, kann ich es einfach machen. Lassen Sie uns zum Beispiel den SPD-Block machen, weil das nicht viel Sinn ergibt. Dann können wir zum Beispiel Werkzeug, Tipp, Punkt, Sperren oder Block sagen . Es spielt keine Rolle. Schneller Block, sagen wir zum Beispiel. Und dies fügt dann einen bestimmten Tooltip mit dem SPD-Block hinzu. Wir müssen das jetzt auch hier reinlegen . So etwas wie es beschleunigt sich wirklich so. Und dies wird dann auch angezeigt wenn wir den Mauszeiger über den SPD-Block bewegen. So einfach kann es auch sein, dies hinzuzufügen. Nun, auch bestimmte Blöcke. Jetzt werden wir nicht die besondere Funktionalität der Halteverschiebung haben . Wir könnten natürlich auch auf eine bestimmte Weise hinzufügen , die auch funktioniert. Aber irgendwelche Änderungen hier, wirklich mit ein bisschen Java-Wissen, bin ich mir sicher, dass Sie diese auch verwalten werden, oder? Nachdem wir beide hinzugefügt haben, schauen wir mal, ob sie funktionieren oder wir uns wieder in Minecraft befinden. Also mal sehen, da gehst du. Werfen Sie mehr Drücken Sie Shift aus mehr Informationen. Es funktioniert natürlich entweder im Tab „Kein kreatives“ oder im eigentlichen Inventar. Und wenn ich die Umschalttaste gedrückt halte, klicken Sie mit der rechten Maustaste, um Wertsachen zu finden, genau wie wir es wollen. Und dann ist hier der SVD-Block. Es wird sehr schnell, zeigt das auch. Das ist also wirklich großartig und so einfach ist es, die benutzerdefinierten Tooltips zu Minecraft hinzuzufügen . In Ordnung, und das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. 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. 54. (Minecraft Alles zu Tags: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Tags hinzufügen . Also benutzerdefinierte Tags, das sind nicht die Namensschilder. Dies sind eigentlich Tags, über die wir zuvor mit den abbaubaren Tags und den Nadelwerkzeug-Tags gesprochen haben. Im Grunde genommen werden wir jetzt nicht nur unser eigenes benutzerdefiniertes Tag erstellen, wir werden auch sehen, wie Sie dem Forge-Namespace Tags hinzufügen können . Und das könnte bei der Kompatibilität zwischen Ihrem MOD und anderen Monaten MC-Kurspaket helfen Ihrem MOD und anderen Monaten MC-Kurspaket Wir klicken hier mit der rechten Maustaste auf ein neues Paket namens util-Paket. Und dann werden wir drinnen eine neue Java-Klasse erstellen, die als Veeam-Modell-Tags bezeichnet wird. Jetzt sehen die Motormarken wie folgt aus. Dies ist also im Grunde den Tags von Orange nachempfunden . Sie haben also im Grunde zwei statische Klassen, wenn die Klasse blockiert und wann Items class. Und hier auch sehr interessant, im Grunde einige der optionalen Tags zu betrachten , die sie bereits vordefiniert haben. Im Grunde kann man auch Sachen hinzufügen. Das ist also sehr gut. Ich kann wärmstens empfehlen, einen Blick darauf zu werfen. Was wir also tun werden, ist, dass öffentliche statische Klasse namens „Blöcke“ heißt. Und dann darunter eine öffentliche statische Klasse, coole Items. Sie vor und jetzt in der Blocks-Klasse benötigen wir einen privaten statischen Tag-Punkt optional benanntes Tag vom Typ Block. Wir rufen einfach das Methoden-Tag mit einem String-Name-Parameter auf. Importieren wir die Blockklasse und stellen sicher, dass wir natürlich den richtigen Minecraft-Minecraft-Welt-Level-Block auswählen. Und dann können wir die Block-Tags, die optional gelesen werden, mit einem neuen Ressourcenstandort unseres MC-Kurs-Mods, der Mod-ID und des Namens zurückgeben die Block-Tags, die optional gelesen werden, mit einem neuen Ressourcenstandort unseres MC-Kurs-Mods, . Das ist alles, was wir tun müssen. Und dann werden wir das kopieren. Und wir werden den anderen anrufen, der orangefarbene Tag ist da. Wir erstellen ein gefälschtes Etikett. Anstelle von r mod ID. Wir werden den Namespace Forge übergeben. Und dann können wir beide Methoden nehmen und sie einfach nach unten kopieren und einfach in Element ändern , Gleich mit diesem. Und dann haben wir anstelle von Block-Tags Artikel-Tags. Das Ego und die Klassen sind im Grunde gebaut. Jetzt ist die Frage, naja, was wollen wir hier? Nun, fügen wir zuerst unser eigenes benutzerdefiniertes Tag hinzu, das eine öffentliche Statik sein wird. Final Tags sind optional mit dem Namen Tag des Typs block. Und das wird der Unterstrich der Werbetrute wertvoll sein , gleich einem neuen Tag. Und dann unterstreichende Unterstriche, unterstreiche den Kampf. Nun, was macht das? Nun, im Moment macht es nichts, aber wir können später darauf verweisen und alles, was sich in diesem Tag befindet , wird jedoch in irgendeiner Weise ausgewertet. Um dem Tag Sachen hinzuzufügen, gehen wir zu MC-Kernen und dann erstellen wir hier ein neues Verzeichnis namens Tags. Und dann werden wir da drinnen einfach eine neue Datei erstellen. Es gibt tatsächlich diesen Namen, also dowsing, Rod unterstrichen Wertsachen. Und es ist sehr JSON, sehr wichtig, dass die Namen hier übereinstimmen. Mein Leben ein bisschen einfacher. Ich werde die Art und Weise, wie das Ding strukturiert ist, überschreiben . Und dann werde ich auch tatsächlich den gesamten Inhalt kopieren . Diese stehen Ihnen alle im GitHub Repository zur Verfügung und individuell genauso gut. Das macht es hier ein bisschen einfacher , man kann im Grunde sehen, dass ich das Kobalt oder auch einen Haufen anderer Erze hier drin habe. Und bist du vielleicht immer noch wie Yeah, aber wie macht das, okay, jetzt haben wir ein Tag dafür. Wie können wir etwas damit machen? Nun, im Gegenstück der Dowsing Rute erinnern Sie sich, dass wir diese wertvolle Blockmethode haben , bei der wir sozusagen manuell Blöcke übergeben mussten. Und was wir jetzt tun könnten, ist, dass wir mehr Tags sagen können , die blockieren, die Gaußsche oder Wertsachen , die Block enthalten. Und dies wird nur zurückgeben ob der Block , den wir hier passiert haben, im Wertsachen-Tag der Wertsachen-Tag der Wertschutzstange enthalten ist oder nicht, und das war's. Das ist alles, was wir tun müssen. Und jetzt können wir das ziemlich unendlich erweitern. Andere Modi könnten sich erweitern. Dies macht unseren Mod nur 10 Mal besser in Bezug auf die Kompatibilität. Und während wir in der Kompatibilität der Elemente arbeiten, fügen wir auch auch öffentliche statische Finale, Tags, Punkt-Punkt-Punkt, optionale benannte Tag-, Item - oder Bolt-Unterstrich-Ingots hinzu. Und das ist gleich einem gefälschten Tag. Unter Barren sind mutig. Und dann werden wir das einfach duplizieren. Ich werde im Grunde auch die Nuggets nur zur Show einsetzen , dann wäre das ihr Fahrzeug. Warum sollten wir das jetzt machen wollen? Nun, zuallererst müssen wir zwei Unterschiede machen. Wenn wir hier in diesem Modus ein optionales Tag erstellen , tut die Steuerklasse nicht unbedingt etwas. Dies ermöglicht es uns nur , bestimmte Tags anzugeben oder darauf zu verweisen, die wir in unserem Code wie dieses erstellt haben . Dies ist nicht immer notwendig, kann aber manchmal notwendig sein. Für unsere Zwecke erstellen wir also einen neuen Ordner im Datenordner namens Forge. Und dann erstellen wir drinnen einen neuen Ordner namens Tags. Und dann erstellen wir drinnen einen neuen Ordner mit dem Namen Items. Und dann werden wir drinnen einen weiteren neuen Ordner erstellen, alte Barren. Und dann schließlich drin, klicken Sie mit der rechten Maustaste auf eine neue Datei namens Kobalts JSON. Jetzt werde ich den Inhalt dieses hier noch einmal kopieren , damit wir die grundlegende Steuerstruktur haben. Und dann sage ich nur MC Kurs, Doppelpunkt oder Bolt unterstrichen England. Jetzt habe ich meinen Kobaltbarren hinzugefügt, den gefälschten Kobaltbarren. Was der LSAT so schreiben soll , bringt uns nirgendwohin. Wie, warum sollten wir das machen? Schauen wir uns das an. Wenn ich ein Rezept habe, in dem ich das Kobaltenglisch verwendet habe, vielleicht auch unsere 1D- oder andere Modi, die Kobalt hinzufügen, weißt du, dafür kann auch verwendet werden. Aber jetzt kann ich anstelle von item sagen, ich sage tag, und statt dessen sage ich forge einen neuen Namespace. Wir stehen unter Barren Slash Kobalt. Jetzt kann alles, was zu diesem Tag hinzugefügt wird, direkt hier verwendet werden , um dieses Rezept herzustellen. Und das ist wahnsinnig mächtig, besonders wenn du ein großes Mod-Pack hast, weißt du, du willst es miteinander kompatibler machen. Das ist eine großartige Sache, wie richtig cool. Denk definitiv darüber nach, sieh dir das an. Und ja, das sind so ziemlich die beiden, naja, meine Gründe. Ich würde sagen, du möchtest hier vielleicht Tags hinzufügen, oder? Lass uns hier einfach noch eine einzige Sache hinzufügen. Und das wird eine Öffentlichkeit sein, man vermeiden soll , die Register-Methode genannt wird. Da wir nur beide Klassen registrieren müssen , da es sich um statische Initialisierer handelt. USA gibt es etwas wackeliges. sind sie, wir werden nur ein Register-Block-Tags haben , in dem im Grunde nichts drin sind. Das ist in Ordnung. Und die neue Ausrüstung, und wir nennen das die Horse-Item-Tags. Und hier nennen wir es nur Blöcke, nicht Block-Tags und Elemente, Datenregister Punkt 10. Und dass diese Register-Methode einfach hier aufgerufen wird. Also werden wir einfach mehr Tags dot sagen, was ist das Ego, oder? Und hier ist natürlich ein bisschen Tippfehler. Eigentlich muss dies unter der Kategorie Logs stehen. Da gehst du. Und dann sollte alles gut funktionieren. Jetzt schauen wir uns für Arbeiten oder Finanzen oder Pack und Minecraft an. Mal sehen, ob der Cobol Ingrid funktioniert. Und da gehst du. Natürlich funktioniert das Handwerk immer noch. Das ist großartig. Nehmen wir die Dowsing Rute und lass uns einfach sehen, da gehst du. Ich kann sogar sehr früh Sachen finden und ich kann sogar Dinge finden , die ich vorher nicht finden konnte, wie das Deep State Gold oder den tief ermordeten Redstone-Krieg. Das eigentliche Tag funktioniert also auch. Das ist großartig, oder? Wieder einmal ist der gesamte Code im GitHub-Repository verfügbar und auch individuell. Aber das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 55. (Minecraft Benutzerdefinierte Treppen, Querschnitte: Alles klar, willkommen zurück zum Forstkurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Treppen und Platten hinzufügen . Jetzt beginnt dies sozusagen ein kleiner Abschnitt von nicht blockierten Blöcken, wie ich sie gerne nenne. Dazu gehören, wie gesagt, Treppen und Platten sowie Zäune, Zäune, Wände, Knöpfe, Druckplatten, die Tür und die Falltür. Es wird also im Grunde die nächsten vier Vorträge geben. Und nun, fangen wir einfach an. In der Modocs-Klasse werden wir also einfach überschreiben, sagen wir den Tiefschlaf oder hier, weil das für uns im Moment ein bisschen einfacher ist. Und dann nennen wir das die Kobalt-Unterstrichen-Treppe. Und dann natürlich auch hier, unterstreicht Kobalt, deren. Oh, dann kopiere das rein und mach die Platten daraus. Also Platten, eigentlich Platten, sehr wichtig, aber Treppen, es ist Laurel und mit der Platte ist es einzigartig. Und dann wird das hier ein Treppenblock sein, während dies ein Plattenblock sein wird . Und der Block nimmt tatsächlich einen anderen ersten Parameter auf, der ein Applier von Blockpunkt-Kobalt sein wird , Blockpunkt-Punkt-Punkt erhält den Standard - oder Standardblockstatus. Dies ist im Grunde nur der Block , aus dem die Treppe besteht. Das wird darin gut werden. Lasst uns beide Material Metall machen , nur damit wir das haben. Und abgesehen davon bin ich damit ziemlich zufrieden. Jetzt ist die Sache an allen Nicht-Block-Blöcken, dass die eigentliche Registrierung? Nun, das ist ein ziemlich einfaches Jahr. Was ist wirklich das meiste, was ich sagen würde, nicht unbedingt nervig, aber es wird nervig, wenn wir zu den Türen und ähnlichem kommen , weil es viele JSON-Dateien geben wird. Kopieren wir einfach die JSON-Dateien vor dem IRS und den Platten. Was Sie also zuerst bemerken werden, wenn Sie einfach die Kobalttreppe öffnen, ist hier viel mehr drin als zuvor. Das erste, was ich sagen möchte, ist, dass Ihnen alle JSON-Dateien im GitHub-Repository oder einer Einzelperson zur Verfügung stehen . Tippen Sie das nicht ein. Das ist Wahnsinn, okay, mach dieses Worst-Case-Szenario nicht. Wenn Sie aus irgendeinem Grund nichts für mich herunterladen können, können Sie immer zu den Assets, Minecraft gehen, also im Grunde externe Bibliotheken und es Mikrowellenclient extra 181 und dann zum, zu den Vermögenswerten Microblock-Staaten. Und dann kannst du zum Beispiel einfach die verrückte Keisha-Treppe nehmen . Man sieht, dass sie im Grunde genau gleich sind. Der einzige Unterschied hier ist die MOD-ID und der Name. Und ich zeige dir einen schnellen Trick. Was Sie tun können, ist, dass Sie dies auswählen und dann Strg R drücken. Und hier ändern Sie zum Beispiel einfach das Motto De. Wenn Sie eine andere Modell-ID haben, ist Alle ersetzen und dann werden sie alle ersetzt. Gleich mit dem Namen der eigentlichen Treppe, rechts, ist ausgewählt Drücken Sie Strg R und dann können Sie sie ändern. Du hast Titan, zum Beispiel Twitter zu Titan und das Ego. Das ist also eine sehr gute Sache. Ich empfehle dringend , das zu tun , wenn Sie wirklich etwas ändern möchten, aber das definitiv nicht tippen, das wäre Wahnsinn. Nun, was machen all das, oder? Wir haben hier also bestimmte Varianten, und die Varianz wird durch Blockstatuseigenschaften definiert. Jetzt blockiert sie Eigenschaften, über die wir in einem späteren Vortrag sprechen werden. Denken wir einfach über die Idee nach, dass bestimmte Blöcke auf der Welt unterschiedliche Eigenschaften haben können. Okay, das sollte nicht zu verrückt sein. Und dann, abhängig von diesen Eigenschaften, rechts, wenn die zugewandten Eigenschaften Ost und die Halbeigenschaft unten und die Formeigenschaften in unserer Linken sind, dann zeigen wir eine bestimmte Modell mit einer bestimmten Rotation hier. Und dann sperrt UV Lock im Grunde die Drehung der Textur , damit sie sich nicht mit dem Block dreht. Das ist nur, weißt du, es ist in diesem Fall nicht allzu wichtig. Das sind wirklich die wichtigsten. Und ja, das deutet im Grunde auf ein anderes Modell hin. Und was Sie sehen werden ist, dass wir die Kobalttreppe innen haben und dann haben wir plötzlich die Cobol-Treppe außen und hier haben wir nur die Kobalttreppe. Was Sie vielleicht schon vermutet haben, ist, dass es mehrere Blockmodelldateien für die Treppen und auch die Platten geben wird . Aber bevor wir diese hinzufügen, fügen wir zuerst die Übersetzung hinzu, nur damit wir sie nicht vergessen, weil das manchmal passieren könnte. Ich werde nur kopieren, dass die Bestellung die Cobol-Treppe sein wird. Und die Cobol-Platte wird die Cobol-Platte sein. Und hier ist weiß und dann kann ich die JSON-Dateien des Modells kopieren. So stehen Ihnen die Blockmodell-Jason-Dateien, wie gesagt, alle im GitHub-Repository oder im Einzelnen genauso gut zur Verfügung . Das werden nur fünf sein. Es ist eigentlich nicht so schlimm. Und die Sache daran ist, sie selbst sind eigentlich ziemlich einfach. Wenn man sich das zum Beispiel anschaut , ist es nichts zu verrückt, oder? Also der Elternteil hier das ist anders, das ist Platte. Und dann haben wir drei verschiedene Texturen. Aber eigentlich zeigt der OH auf den Kobaltblock, weil die Cobol-Platte natürlich im Grunde wie die Hälfte eines Cobol-Blocks aussieht. Und wenn sie übereinander stehen, wird das als Block bezeichnet. Also gehen sie und dann gleich mit der obersten. Es sieht genauso aus, außer dem Elternteil. Werfen wir auch einen Blick auf diese Treppen nur um der Fertigstellung willen. Und du wirst schnell sehen, dass es plötzlich nicht wirklich so verrückt ist. Es ist nur der Elternteil ist anders. Und das übergeordnete Element bestimmt im Grunde nur die Form des tatsächlichen Blocks, der angezeigt wird. Möglicherweise haben Sie Treppen , die normale Treppen sind. Wenn Sie Treppen in einem Winkel von 90 Grad hinzufügen, wissen Sie, dass sie eine andere Form erhalten. Das ist im Grunde nur buchstäblich das , was der Elternteil hier macht. Und die Texturen bleiben gleich. Und es geht um die Artikelmodelle. Sie sind eigentlich ziemlich langweilig. Alles in allem sind es nur normale Artikelmodelle. Die Treppe zeigt einfach zurück auf die Treppe und die Platte zeigt einfach zurück auf die normale Platte. Was wirklich cool ist, ist, dass wir keine Texturen hinzufügen müssen , da alle Texturen, die die Treppen und die Platten verwenden, der Cobol-Block sind. Sie müssen also keine Texturen hinzufügen. Und damit ist das eigentlich gut, im Grunde genommen gemacht. Oh, ich schätze, um der Vollendung willen, mal sehen, ob es funktioniert oder sich in der Mikrofinanzierung bezieht, kann sowohl die Treppen sehen , als auch diese Labors wurden erfolgreich zum Spiel hinzugefügt. Und alles hier funktioniert gut. Ich kann sie auf jede Art und Weise gut niederlegen, wie ich möchte. Ist das nicht einfach großartig? So einfach ist es eigentlich, diese zu Minecraft hinzuzufügen oder wo auch immer es für diese Vorlesung schon hier wäre. Ich hoffe, es war nützlich im neuen, wieder einmal der gesamte Code in der JSON-Datei ist im GitHub-Repository verfügbar, in dem ein einzelner Just steht. Und wir sehen uns in der nächsten Vorlesung. Also ja. 56. (Minecraft Benutzerdefinierte Buttons und Druckplatten: Alles klar, willkommen zurück zum Forstkurs für 118. In dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Button und eine Druckplatte hinzufügen , oder? Also sind die Taste und die Druckplatten tatsächlich ziemlich einfach, oder die Registrierung selbst ist nur die JSON-Dateien , die ein verrücktes Jahr sind. Aber fügen wir einfach einen Button und dann den gesamten Speicher-Button. Dies wird ein Steinknopfblock sein, da es in diesem Fall keinen Metallknopfblock gibt. Und dann sehr wichtig, was wir auch einen Anruf brauchen, ist, dass wir hier die No Collision nennen müssen . Aber wir können grundsätzlich ohne Probleme durch den Block gehen. Und dann für den Kobaltdruck zu spät unterstreichen. Und hier, mobiler Unterstrich, Druck unter dem Skript wird natürlich ein Druckplattenblock 0 sein. Und das ist tatsächlich ein weiterer erster Parameter, der die Empfindlichkeit sein wird . Wir werden uns einfach alles aussuchen. Klicken Sie mit der mittleren Maustaste auf den Druckplattenblock. Die Signalstärke-Methode ist hier grundsätzlich für die Empfindlichkeit verantwortlich. Wie Sie sehen können, gibt es hier einen Schalter , alles und Mobs. Und eine allgemeine Idee ist, dass Sie, wenn Sie wirklich eine andere Sensibilität haben möchten, diese Methode im Grunde genommen außer Kraft setzen und dann hier eine Reihe von Dingen ändern können . Empfehlen Sie etwas Java-Wissen, das es definitiv erforderlich ist , um dies zu tun und etwas zu haben, aber es sollte praktikabel sein, oder? Lasst uns jetzt zu den JSON-Dateien übergehen. Dies hat zuerst die Übersetzung hinzugefügt , denn das wird am einfachsten sein, dies schnell zu tragen, damit Sie den Kobaltknopf und die Cobol-Druckplatte sehen können Kobaltknopf und die Cobol-Druckplatte und dann die verrückten JSON-Akten. Jetzt stehen Ihnen alle diese noch einmal im Repository oder einer Einzelperson genauso gut wie immer zur Verfügung. Und das wird verrückt sein. Also ist die Druckplatte eigentlich, ich meine, das ist heilig in Ordnung. Schreiben Sie es entweder falsch, also Strom oder nicht mit Strom versorgt. Und dann zeigen wir entweder den Druckabfall oder die Druckplatte normal, es gibt genug. Was ist mit dem Button? Nun, der Button ist etwas verrückter. Also der Button hier, wie Sie sehen können, wie wieder einmal bei drei verschiedenen Blöcken Datumseigenschaften, und abhängig von ihnen ändern wir im Grunde genommen, welches Modell er zeigt und auch die Rotation hier. Das ist also ziemlich verrückt. Aber glücklicherweise hat der Knopf eigentlich nur drei verschiedene Blockmodelle, während die Druckplatte, wie wir gesehen haben, nur zwei hat. Arbeite also noch einmal um fünf Uhr. Kopieren wir sie einfach rüber und schauen wir uns sie einfach an. Aber insgesamt zeigt die Druckplatte, wie Sie sehen können, wie Sie sehen können, nur auf die Textur des Kobaltblocks nur ein anderes Elternteil. Das Blockmodell Jason ist also hier, nicht wirklich interessant. Das Gleiche gilt für alle Knöpfe. Es ist nichts zu verrückt. Dies ist also etwas, das für die Nicht-Block-Blöcke passiert für die meisten der tatsächlichen JSON-Dateien des Blockmodells . Sie sind eigentlich nicht so interessant. Es gibt nur viele von ihnen, damit Sie im Grunde alles definieren können , was Sie möchten. Und das erstreckt sich ziemlich auch auf die JSON-Dateien des Artikelmodells. Sie können dies auf das Gesamtblockinventar sehen das Gesamtblockinventar und dies deutet nur auf die normale Druckplatte hin. Wieder einmal müssen wir keine Textur hinzufügen, da alle Texturen, auf die es zeigt immer der Kobaltblock sein werden. Deshalb sind wir tatsächlich schon fertig. Wieder einmal alles, was Sie aus dem Wesentlichen kopieren können. Also der GitHub, ich kann das nur wärmstens empfehlen. Und lasst uns einfach sehen, ob es funktioniert oder warum wir Verdacht in Mikro gefunden haben. Wie Sie sehen können, wurde alles hinzugefügt und es funktioniert auch völlig gut. Ist das nicht großartig? Sie können sehen, dass alles genau so funktioniert, wie Sie es erwarten würden. Und 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. 57. (Minecraft Benutzerdefinierte Zäune und Zäune: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in diesem Vortrag werden wir benutzerdefinierte Zäune, Zäune, Tore und Mauern hinzufügen Minecraft benutzerdefinierte Zäune, Zäune, Tore und Mauern hinzufügen. Dies ist also wieder eine ziemlich einfache Übung. Alles in Betracht gezogen. Da ist, gehen wir einfach in die Klasse „mehr Blöcke“ und lassen Sie uns zuerst dreimal hier den Button kopieren. Und das wird der Kobaltzaun sein. Und dann werden das natürlich auch die Promoter-Stifte sein. Das wird ein Zaun sein. Sieh mal, das wird der Zaun auf acht sein. Und das ist dann natürlich auch das Zaun-Unterstreichtor, das ein Zaun Acht Block ist. Und dann wird der letzte eine Football-Wall sein. Wall auch hier. Und das ist natürlich ein Wandbuch. Jetzt nehmen wir hier die „Keine Kollision“ weg. Das wäre gut, nicht das Beste, wenn die Zäune plötzlich keine Kollision hätten , würde den Zweck von ihnen irgendwie besiegen. Und der Rest wird hier völlig gut gehen. Jetzt sind die JSON-Dateien wieder da, wo sie sind. Lassen Sie uns zuerst die Übersetzung nur so dass wir sie haben, dann müssen wir uns darüber keine Sorgen mehr machen. Ich kopiere es einfach, der Kobaltzaun entkoppeln Lüfter hier in die Kobaltwand kommen. Und dann fügen wir den Block hinzu s3 ist nicht weit, da alle diese Ihnen natürlich noch einmal im GitHub-Repository oder einer Einzelperson zur Verfügung stehen . Und Sie werden sehen, dass dies tatsächlich ein bisschen anders ist. Werfen wir zunächst einen Blick auf das Zauntor. Wieder einmal hat es drei verschiedene Blöcke. Es umfasst oder kastenförmige Eigenschaften, und es zeigt nur auf verschiedene Blockmodelle. Nichts Neues, was wir in den letzten beiden Vorträgen noch nicht gesehen haben. Aber der Zaun und die Mauer. Diese sind anders, weil diese mehrteilig sind. Jetzt mehrteilig. Die allgemeine Idee ist, dass, naja, wie Sie das genau hier sehen können, oder? Und das erste Multipart haben wir dieses Modell angewendet. Und dieses Modell wird immer angewendet, wenn dieses gesetzt wird. Wenn nun eine bestimmte Roxy-Eigenschaft wahr ist, in diesem Fall, wenn etwas wahr ist wenden wir in diesem Fall, wenn etwas wahr ist, eine andere Eigenschaft an. Du bist ein anderes Model hier. Und in diesem Fall wird es die Seite sein , von der Sie wissen, dass Sie, wenn Sie den Zaunpfosten selbst niederlegen und dann einen Zaunpfosten im Norden hinzufügen. Wir fügen die Seite danach tatsächlich hinzu. Aber das ist eine sehr häufige coole Sache , dass es so funktioniert. Und das ist eigentlich eine sehr einfache Art, dies zu tun. Obwohl. Das ist definitiv ein bisschen anders. Ich empfehle es mir einfach anzuschauen und einen Blick darauf zu werfen. Es sollte eigentlich nicht zu verrückt sein, alles zu verstehen, was in Betracht gezogen wird. Wir fügen einfach verschiedene Modelle hinzu, je nachdem , ob etwas im Grunde ein Nachbar ist oder nicht. Im Grunde die Idee. Jetzt hat das aber auch die hinzugefügte Sache, dass es jetzt viele Jason-Akten geben wird. Lassen Sie uns also einfach alle kopieren , denn das wird ein Wahnsinn sein. Wir haben diese alle von ihnen. Kopiere sie einfach über 11 von ihnen insgesamt. Jetzt werden wir nur einen kurzen Blick auf sie werfen, weil sie ehrlich gesagt alle sehr langweilig sind. Im Grunde wird es immer der Elternteil sein , der anders ist. Sie können die ganze Zeit deutlich sehen , in der wir genau hier auf dieselbe Textur hinweisen. Du kannst sehen, dass es einfach der Elternteil sein wird , der anders ist. Und im Grunde gilt das Gleiche für alle anderen. Wir haben immer darauf hingewiesen, dass dieselbe Textur nur der Elternteil ist , der anders ist. Ich könnte es nur noch einmal empfehlen, wenn Interesse an anderen JSON-Dateien besteht. Gehen Sie einfach zu den externen Bibliotheken, Einheit, dem Mikrowellen-Client, dem zusätzlichen Geld TIN, und schauen Sie sich einfach die gesamte Verfolgung genau hier im Assets Minecraft-Ordner, Sie können alle Blockieren Sie JSON-Dateien des Modells. Du würdest das alles sehen, der Block sagt JSON-Dateien. Also steht Ihnen grundsätzlich auch hier alles zur Verfügung. Dies wird dringend empfohlen, Sachen zu kopieren und nicht alles zu tippen, besonders wenn Sie mehrere Wände und ähnliches haben . Das wäre einfach Wahnsinn, oder? Lassen Sie uns auch das Drei-Item-Modell Jason über n. Die sind alle nicht allzu verrückt, weil wir ein Inventar für Kobaltzaun und ein cooles Wandinventar haben . Diese werden im Grunde genommen hier referenziert. Und dann ist dieses nur das normale Kobaltzauntor. Und da alle Texturen die Fußraumblock-Textur verwenden, müssen wir keine Texturen hinzufügen. Jetzt gibt es noch eine Sache, die wir hinzufügen müssen damit die Zäune und ein Walzer richtig funktionieren. Und das werden Tags sein. Innerhalb des Minecraft-Tags, Block-Tags oder des Blockordners möchte ich eine neue Datei erstellen, die als Zäunenpunkt JSON bezeichnet wird. Noch einmal kopiere ich einfach die Struktur, bei der du vorbei bist. Und das wird MC-Kurs sein, Boolean, Kobalt unterstrichen Zaun. Dann nehme ich das und ziehe es hier rein, während ich die Kontrolle halte. Und ich nenne das Mauern. Und das wird die Kobaltwand sein. Wenn ich das nicht habe, verbinden sich die Zäune und die Wände nicht miteinander. Aber das ist auch sehr wichtig. Wir brauchen das. Aber wenn wir das und den Rest hinzugefügt haben, dann schauen wir mal, ob es funktioniert. Oder wenn ich bei einem Migranten asic war und sehe, dass alles erfolgreich hinzugefügt wurde und alles verdammt gut aussieht. Sie können es nebeneinander aufstellen. Genau wie wir erwarten würden. Vor ihnen hat alles gut funktioniert, wo auch immer das für diese Vorlesung genau hier sein wird. 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. 58. (Minecraft Benutzerdefinierte Türen und Trapdoors: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Tür und Falltür hinzufügen . Lasst uns also die Briefkastenklasse öffnen und lass uns einfach die Kobaltwand holen. Und statt Kobalt wird dies tatsächlich Sherry Unterstrich Blüte Unterstrich Tür sein . Gleiche natürlich im Namen. In diesem Fall werden wir hier ein anderes, naja, ein anderes Material haben , weil wir keine Türen aus Kobalt machen werden, sondern aus dem Holz, das wir in einem zukünftigen Vortrag hinzufügen werden. Und was hier sehr wichtig ist, ist, dass die Kohle ohne Okklusion hinzugefügt wird und dass wir das Material herstellen würden, denn wenn wir das Material Metall herstellen das Material Metall wird diese Tür wie eine Eisentür funktionieren. Wenn wir das machen würden, können wir es öffnen, indem wir mit der rechten Maustaste klicken. Gleiches gilt für die Falltür des Kirschblütenunterstrichs. Kopiere einfach den Namen hier drüben und füge die Falle hier vorne hinzu. Und das ist dann ein Falltürblock. Ich bin hier und stelle sicher, dass dieses Material das tun würde und dann auch die Keine Okklusion hinzufüge. In Okklusion wird hier Kälte benötigt, da wir Alpha-Werte in der tatsächlichen Textur haben . Und aufgrund dieser Alpha-Werte müssen wir tatsächlich auch in unsere MC-Kurse-Mod-Klasse gehen. Und drinnen müssen wir eine neue Methode erstellen. Wir werden also eine neue private Lücke machen die als Client diese Up-Methode bezeichnet wird, mit einem endgültigen FML-Client-Satz von Ereignissen oder Ereignissen. Und dann werden wir drinnen die Elementblock-Rendertypen aufrufen , die später rendern. Für die Modusblöcke erhalten Punkt, Kirschblüte, dor dot mit dem Rendertyp, der erwachsen ist, duplizieren Sie die Zeile. Und dann stellt hier sicher , dass die Falltüren eingestellt sind. Jetzt heißt das noch nicht, denn was wir tun müssen, ist, dass wir Event Bus sagen, Listener hinzufügen, diesen Doppelpunkt, Doppelpunktzeilen einrichten müssen . Nachdem dies geschehen ist, werden jetzt die tatsächlichen FML-Clients jetzt die tatsächlichen FML-Clients, die Methode haben, hier aufgerufen, die Methode und dann werden diese Renderstämme richtig eingestellt, bevor wir alle verrückten JSON-Dateien hinzufügen lasst uns zuerst die Übersetzung hier hinzufügen. Ziemlich einfach, nichts zu verrückt. Und jetzt gehen wir zu den JSON-Akten weiter. Zuallererst heißt es natürlich der Block, dass Jasons. Das wäre also nur die Tür und die Falltür, die du gehst. Also gibt es natürlich wieder ziemlich verrückt. Die Tür hat tatsächlich vier verschiedene Blockstatuseigenschaften, wie Sie sehen können. So stehen Ihnen alle angrenzenden Dateien und der gesamte Code angrenzenden Dateien und der gesamte Code im GitHub-Repository oder einer Einzelperson genauso gut zur Verfügung . Ich empfehle, diese zu kopieren , wenn es um die Blockmodelle geht. Nun, wir werden uns auf einen Leckerbissen freuen , denn das werden wieder sieben von ihnen sein. Das wird also ziemlich verrückt sein. Jetzt sind diese ein bisschen anders, wie ein kleines bisschen komplizierter, aber auch nicht ganz so schlimm. Sie können also noch einmal sehen, dass sich das als Elternteil am meisten unterscheidet. Da Türen sozusagen zwei Teilblöcke sind , haben wir eine obere und eine untere Textur. Sie können eine Kirschblüten-Türspitze und einen Kirschblüten-Türboden sehen. Und dann sieht man das Scharnier hier , dass es nur ein anderer Elternteil ist. Aber insgesamt werfen Sie sie noch einmal einen Blick auf sie, gehen Sie einfach ein bisschen durch. Weißt du, wie sie aussehen, sie sind insgesamt nicht zu verrückt. Der Artikel und die Modelle sind auch irgendwie interessant. Die Falltür sollte nur ein normales Artikelmodell sein. Aber wir können das sehen. Dies deutet nur auf das Becken des Blockmodells in diesem Jahr zurück , die Tür weist tatsächlich auf eine bestimmte Artikelstruktur hin. Hat die Tür tatsächlich auch eine bestimmte Textur für den Artikel? Also werden wir zunächst eine Kopie der Artikeltextur hier drüben machen. Und dann brauchen wir natürlich auch die drei verschiedenen Kirschblüten-Texturen. Dies könnte also der Türboden, Tür oben und die Texturen der Falltür sein. Nun, das ist eigentlich alles, was wir tun müssen. Sehr wichtig ist dieses Kunden-Setup hier, das wir auch in zukünftigen Vorträgen benötigen werden. Aber jedes Mal, wenn wir einen Block haben , dass er sozusagen nicht den gesamten Raum des Röntgenblockzustands ausfüllt den gesamten Raum des Röntgenblockzustands , müssen wir dies im Grunde auch hinzufügen. Das ist also sehr wichtig. Ansonsten schauen wir mal, ob es funktioniert. Oder wenn ich vermute und microRNAs können sowohl die Kirschtür als auch die Kirschblüte gefangen sehen sowohl die Kirschtür als auch die Kirschblüte gefangen oder dem Spiel hinzugefügt wurden. Und ich kann mit der rechten Maustaste klicken und sie öffnen. Wer sagt, dass ich mit irgendeiner anderen Holztür oder Falltür bin? Das ist also ziemlich cool. Rubber, das wäre es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und alarmiert das Neue. Und wir sehen uns in der nächsten Vorlesung. Also ja. 59. (alles über Tools) Gestalte ein neues Toolset: Alles klar, willkommen zurück zum vierten Kurs für 118. Und in dieser Vorlesung werden wir Minecraft ein benutzerdefiniertes Tool-Set hinzufügen . Dazu gehören also das Schwert, die Spitzhacke, die Schaufel, die Axt und das Ganze. Wir werden tatsächlich eine neue benutzerdefinierte Klasse und das Artikelpaket oder die modernen Stufen erstellen . Denn was wir definieren müssen, ist eine benutzerdefinierte Stufe. Glücklicherweise macht es uns Schmiede sehr einfach. Wir können einfach sagen, dass öffentliches statisches Finale hier namens Kobalt geschmiedet wird, was einem neuen, hier geschmiedeten entspricht. Und dann müssen wir nur viele Parameter übergeben. Das Level reduziert die Geschwindigkeit, den Angriffsbonus und den Tag-Schadensbonus, den Vorsitzenden. Dann müssen wir Block-Tags weitergeben. Dot braucht Eisenwerkzeuge und dann nur einen Anbieter eines Gradienten. Und wir werden Zutat von mehr Gegenständen sagen , Dot, Dot Get. Und ich werde es jetzt erklären. Also was ist hier los? Das ist verrückt, eigentlich ist es nicht so verrückt. Das erste ist natürlich ein Level. Dies ist nur die Ebene, die dieser Artikel hier im Grunde genommen diese Stufe darstellt. Also können wir tatsächlich darauf eingehen und du kannst sehen, dass es hier eine Menge Sachen gibt. Und das Niveau repräsentiert im Grunde genommen, Sie genau hier sehen können, stellt im Grunde die Idee dar, hey ist das Steinwerkzeuge, Eisenwerkzeuge oder Diamantwerkzeuge? Das ist im Grunde das allgemeine Niveau, die allgemeine Vorstellung des Levels hier. Und wir haben die Anzahl der Benutzer. Dies ist also, wie viele Verwendungszwecke dieser Artikel hat. Obwohl die Haltbarkeit im Grunde genommen die Geschwindigkeit ziemlich selbsterklärend sein sollte. Es gibt nur die Geschwindigkeit des tatsächlichen Artikels. Der Angriffsschadenbonus ist nur ein Bonus für den Angriff. Das bekommt, lassen Sie uns das tatsächlich auf 3 setzen und der Chairman Value ist nur Channel. Dies sind die Block-Tags. Ich bin mir nicht hundertprozentig sicher, aber ich glaube, dass dies wieder einmal darauf beschränkt ist, was diese eigentliche geschmiedete Träne oder diese Reihe von Werkzeugen hier grundsätzlich abbauen diese eigentliche geschmiedete Träne oder diese Reihe kann. Und dann ist der letzte, der Lieferant der Zutat hier, der Zutat hier, im Grunde nur die Zutat, mit der Sie die Artikel dieser Stufenbreite reparieren können . Jetzt, da wir dies haben, können wir zur Klasse mehr Items gehen und ich kann anfangen, im Grunde genommen die Reihe zu erscheinen. Nehmen wir einfach das und lassen Sie uns das auch hier zum Kobalt-Unterstreichungsschwert machen. Kobalt-Unterstrich gespeichert. Lasst uns das ganze Jahr loswerden. Das ist irgendwie wichtig. Und das wird ein Boardgegenstand sein. Der erste Parameter wird mehr Tränen Punkt Kobalt sein. zweite Parameter ist der Angriffsschaden-Modifikator. Und der dritte Parameter wird Modifikator für die Angriffsgeschwindigkeit sein. Und dann kommen die tatsächlichen Eigenschaften, die gut werden. Und wir werden das fünfmal duplizieren und dann einfach die anderen holen. Also werden wir auch hier die Wandspitzhacke oder den Bolzen Big X haben. Dies ist ein Spitzhacke. Und wir haben die Reise wird auch hierher reisen. Und das ist ein Schaufelartikel. Es werden die Roboter-Ats sein. Und Kobalt wirkt auch hier. Natürlich, Item. Und dann zuletzt und mit Sicherheit zumindest die Kobalt WHO. Aber natürlich müssen wir das Ganze hier reinbringen, welches ist der Kobalt WER und ein ganzer Gegenstand, oder? Normalerweise kann man diese Zahlen natürlich ändern, oder? Du kannst sie optimieren. So haben zum Beispiel die Hausgemachten hier keine zusätzlichen Modifikatoren. Der ACS könnte dieses haben, wissen Sie, aber daher ist vielleicht ein negativer Modifikator oder einfach nur einen Modifikator 0 hier. Und der Rest wird gut werden. Das ist also etwas, mit dem Sie auf jeden Fall herumspielen müssen , nur zu spielen und offen für das Experimentieren mit den Zahlen hier zu sein. Weil das im Grunde nur das Modell ausbalanciert. Und insgesamt ist das so ziemlich die, weißt du, die Registrierung erledigt. Wir brauchen jetzt nur noch die Übersetzung hier, aber lassen Sie uns einfach die Übersetzung hinzufügen. Ich kopiere das einfach vorbei. Das sollte ziemlich selbsterklärend sein, oder? Genau wie wir es eine Million Mal gesehen haben , könnten wir schon sprechen. Und dann haben die Artikelmodelle eine bestimmte Sache, die bei ihnen ein bisschen anders ist, was ich Ihnen zeigen werde, wenn ich sie noch einmal kopiere, all dies steht Ihnen zur Verfügung in das GitHub Repository oder Einzelperson genauso gut. Sie können sehen, dass das übergeordnete Element hier ein Item-Schrägstrich handgehalten ist. Dies ist sehr wichtig, andernfalls wird das Extra nicht in 3D in Ansichten der dritten Person angezeigt . Das ist also sehr wichtig, dass Sie den übergeordneten Artikel hier handgehalten haben . Und sonst können wir jetzt auch die Texturen kopieren . Alle fünf von ihnen auch, sie gehen. Und das ist so ziemlich alles, was wir tun müssen, um die benutzerdefinierten Tools zu Minecraft hinzuzufügen. Also mal sehen, ob es funktioniert. Ordnung, wir befinden uns wieder in der Mikrofinanzierung und sehen, dass alle Tools erfolgreich hinzugefügt wurden. Also lasst uns einfach sehen, ob ich tatsächlich Sachen damit abbauen kann. Also wird dieses Jahr in diesem Fall natürlich nicht funktionieren, weil wir dies als Stufe eins definiert haben . Das sollte also funktionieren. Lassen Sie uns jedoch einen Versuch sehen. Das funktioniert vollkommen gut. Das ist natürlich ein gutes Zeichen. Der Vogel sollte auch arbeiten. Es gibt definitiv nicht sehr schnell, aber das ist natürlich völlig in Ordnung. Und dann klicken Sie mit der rechten Maustaste hier auch mit diesem Rechtsklick. Das Abziehen der Protokolle sollte genau definiert funktionieren, genauso wie beim Pfading. Alles hier wird natürlich nur fünf durch die Geschwindigkeit sein , ist hier definiert. Das wäre also, du willst die Geschwindigkeit dieses keinen tatsächlichen Riss erhöhen und das Niveau hier, du kannst es so machen. Und was Sie dann auch tun können, ist hier im Geschmiedeten, wenn Sie hier auf die Stufe drücken und dann Control H drücken und die Tränen von Minecraft selbst sehen. Und Sie können sich hier grundsätzlich nur alle Vanille-Werte der Werkzeuge ansehen . Dafür kannst du diese im Grunde ändern und einige davon kopieren, oder? Aber sie wären es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und es lernt vom Neuen und wir sehen uns in der nächsten Vorlesung. Also ja. 60. (alles über Tools) Erstellen eines Multi-Tools (Paxel): Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Paxil-Gegenstand hinzufügen . Das stimmt genau. Wir werden Minecraft eine Art Multi-Tool hinzufügen . Und dafür brauchen wir eine neue Klasse und das benutzerdefinierte Paket, das der Paxil-Artikel sein wird , der den Baggerartikel genau hier erweitern wird. Und dies wird die ehrwürdige Schnittstelle implementieren. Lassen Sie uns einfach den Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super passt. Jetzt müssen wir das tatsächlich ein wenig ändern , weil wir keines davon brauchen. Weil diese beiden Parameter tatsächlich genau hier passen. Wir sollten so etwas machen. Und dann wird das Getaggte für die Blöcke tatsächlich verschwinden , weil wir das jetzt unseren Modell-Tags hinzufügen werden. Die Art und Weise, wie wir das machen, ist wir in unsere Kfz-Steuerklasse gehen. Dann kopieren wir einfach die Wertsachsachen der Wertsachtel der Werstange. Und hier werden wir diesen Paxil-Unterstrich abbaubar machen . Und dann wird der Name davon der abbaubare Schrägstrich Paxil sein . Und dies wird jetzt genau hier referenziert. Also mod-Tags, dunkle Blöcke. Und einfach so sollte alles vollkommen in Ordnung sein, oder? Und jetzt sollte dieser Kurs komplett abgeschlossen sein. Und das Tolle ist, dass wir, weil wir diese Tags hier definiert haben, nun in unseren C-Corps-Datenordner, in die Tags, die Blöcke gehen und dann mit der rechten Maustaste auf neu klicken können in unseren C-Corps-Datenordner, in die Tags, die Blöcke gehen und dann mit der Verzeichnis namens mineable. Und dann werden wir da drinnen eine neue Datei namens Paxil erstellen , diese JSON. Und was wir dann tun werden, ist, dass ich diesen einfach aus Gründen des Arguments kopieren werde diesen einfach aus Gründen des Arguments kopieren nur damit wir die grundlegende Struktur des Tags haben. Und man könnte sagen, wir jetzt in den Spitzhacke gehen müssen und nur all das hinzufügen müssen. Wissen Sie, was wir tun können, ist, dass wir Tags auch Tags hinzufügen können. Aber was wir tun müssen, ist, dass wir den Hashtag Minecraft sagen müssen. Dies ist also der Namespace des Tags, das wir hinzufügen möchten. Und dann abbaubarer Schrägstrich, abbaubarer Schrägstrich, wählen Sie zum Beispiel X. Und dann werden wir das einfach kopieren. Wir machen den ACS, fügen hier Kommas hinzu und legen dann die Schaufel hier ein. Unser Paxil wird also alles abbauen können , was eine Spitzhacke kann, ein Axon und eine Schaufel. Und das Beste daran ist , dass wir es so hinzugefügt haben , dass wir auf die anderen Tags verweisen. Wenn ein anderer Modus diesen Tags Dinge hinzufügt, funktioniert das Paxil-Element auch für diese Blöcke. Das ist also das wirklich coole Ding. Wie erstellen wir jetzt den eigentlichen Paxil-Artikel? Nun, sehr einfach. Wir kopieren nur die Kobalt WHO und wir nennen das auch Kobalt Paxil oder was packt Layer. Und dann wird das nur ein Axl-Gegenstand sein. Und das war's. Da gehst du. Paxil ist fertig. So einfach ist es eigentlich. Es ist eigentlich nicht so verrückt. Natürlich müssen Sie wissen, wie Sie im Grunde genommen verschiedene Tags in Ihren eigenen Tags und ähnlichem verwenden können . Insgesamt ist dies jedoch ziemlich einfach. Es gibt eine bestimmte, naja, das ist eine Einschränkung, die der Paket-Artikel hat und keine Rechtsklick-Funktionalität hat. Jetzt könnten Sie die Rechtsklick-Funktionalität hinzufügen. Wenn wir auf den Bagger-Gegenstand klicken und die Steuerung H drücken , könnten wir zum Beispiel auf den gesamten Gegenstand gehen. Und Sie können hier die USA mit der rechten Maustaste auf Methode verwenden sehen . Und du könntest das außer Kraft und du könntest verschiedene Dinge hineinlegen. Man könnte sagen, hey, lass uns eine Standardaktion machen, so weiter und so weiter. Und dann mach das Gleiche für das, zum Beispiel, wenn du schleichst, dann kannst du mit der rechten Maustaste klicken und dann den Pfad, weißt du, jemanden wie diesen, und dann mit der rechten Maustaste klicken. Und Sie könnten auch den Rechtsklick mit der AKS-Funktionalität hinzufügen . werden wir in diesem Beispiel nicht genau hier machen. Dies wird nur ein Paxil-Gegenstand sein, ein Multi-Tool-Gegenstand, der im Grunde genommen L2 Mine sein wird, mehrere verschiedene Arten von Spaziergängen. Fügen wir die Übersetzung auch hier hinzu. Das sollte natürlich nicht zu verrückt sein. Es ist natürlich nur das Kobalt Paxil. Und dann dasselbe für das Artikelmodell, nichts zu verrückt. Es wird nur der Cobol Paxil sein, der auf das Kobalt Paxil Extra hinweist, das ich natürlich auch habe. Dies ist eine A, B, a, eine coole Textur, die wir in einem Moment im Spiel sehen werden. Und nun, das ist eigentlich alles, was wir brauchen, um den umgekehrten Schrägstrich zum Spiel hinzuzufügen. Also mal sehen, ob es funktioniert. Oder Rückschlüsse zurück und Migranten können sehen, dass der umgekehrte Schrägstrich hinzugefügt wurde und es sieht absolut großartig aus. Also lass uns sehen. Da gehst du. Ich kann es als Schaufel benutzen, genau wie man es erwarten würde. Mal sehen, ob ich diese Blöcke auch abbauen kann. Sie brauchen vielleicht ein bisschen länger, aber insgesamt kann ich sie immer noch vollkommen gut abbauen. Und dann lasst uns tatsächlich etwas finden. Aber dieser sollte jetzt funktionieren, denn wieder ist die Kobaltstufe nicht hoch genug. Aber wenn wir uns nur ein bisschen runtergraben, sollten wir hier Stein finden können . Und dann sollte ich auch Stein meinen können und ich sollte Kopfsteinpflaster bekommen. Da gehst du. Ich hab etwas Kopfsteinpflaster. Wie Sie sehen können, funktioniert hier alles. Völlig in Ordnung. Axl Artikel, absolut. Erstaunlich, 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. Also ja. 61. (Alle Infos zu Tools) Waffen, die Effekte anwenden: Oder ich komme für 180 wieder zum Futterkurs. Und in dieser Vorlesung werden wir ein Werkzeug hinzufügen, das der getroffenen Map einen Effekt verleiht. Was heißt das wirklich? Nun, lasst uns das einfach durchgehen und sehen, was das im benutzerdefinierten Paket wirklich bedeutet. Klicken Sie mit der rechten Maustaste auf neue Java-Klasse, oder dies wird das Schwebeschwert-Objekt sein. Und dies wird erweitert, dass der Schwert-Gegenstand Mauszeiger über diesen Creed-Konstruktor bewegen wird, der super passt. Und was wir dann tun werden, ist, dass wir Methode des verletzten Feindes außer Kraft setzen. Und das einzige, was wir hier tun müssen, ist, dass wir sagen müssen p Angreifer Dot Add-Effekt, neue Mob-Effekt-Instanz, Mob-Effekte, nicht Levitation, sagen wir für 200 Ticks. Und dann der, nach den ersten Klammern P Angreifer als Quelle des Angriffs hier. Und das ist so ziemlich alles, was wir für die Ideen tun müssen, die wir hinzufügen werden, die hier oder vor einem Tag tatsächlich Ziel sein wird , das Ziel bei Effect. Und dann hier P Angreifer. Die Idee ist also, dass wir, wenn wir einen Feind verletzen, die Levitationseffekte hinzufügen werden Feind die Levitationseffekte hinzufügen werden , wenn wir ihn mit dieser bestimmten Art treffen. Das ist etwas, worum viele Leute zuvor gebeten haben . Aber deswegen zeige ich das. Es ist eigentlich sehr, sehr einfach, dies zu tun. Jetzt müssen Sie diese Klasse natürlich genau hier verwenden. Zum Beispiel können wir hier für unsere Cobol-Sortierung hier Levitation Sort Item sagen. Und jetzt sollte es jedes Mal, wenn wir eine Entität oder ein Tier mit dem Kobaltsortiergegenstand treffen , zehn Sekunden lang Levitation erhalten. Das wäre echt witzig, aber mal sehen, ob es funktioniert. Oder dein Apotheker zurück in Minecraft. Also lasst uns einfach sehen, ob ich das Tier traf, das sie gegangen sind, es wird Levitation und es sollte das für zehn Sekunden bekommen. Obwohl sie einfach im Urin schweben werden. Irgendwann werden sie dann wieder auf die Erde fallen. Und das wird tatsächlich auch zum Sterben führen. Das ist also irgendwie witzig. Es ist ein cooler Effekt des Schwebeschwertes, der im Grunde nicht der interessanteste ist, aber es gibt viele Ideen, verschiedene Effekte, die Sie im Grunde bei einem Treffer mit Ihrer benutzerdefinierten Waffe hinzufügen können . richtig? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und lernt von dem Neuen und wir sehen uns in der nächsten Vorlesung. Also ja. 62. (alle alle über Tools) Gestalte ein neues Rüstungsset: Oder ich begrüße wieder zum Futterkurs für 118. In dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Rüstung hinzufügen . Sehr ähnlich den benutzerdefinierten Werkzeugen für das Rüstungsset müssen wir tatsächlich eine neue Klasse erstellen. Dies wird in unserem Artikelpaket enthalten sein. rechten Maustaste auf neue Java-Klasse, die als Modus-Rüst Und dies wird die Schnittstelle für Rüstungsmaterial implementieren die Schnittstelle für Rüstungsmaterial und es wird eine Aufzählung sein. Was wir tun werden, ist, dass wir mit der mittleren Maustaste darauf klicken und dann Strg H drücken , um zu den Rüstungsmaterialien zu gelangen. Und was ich tun werde, ist, dass ich hier ganz oben klicke, direkt in die frühe Klammer, gehe ganz nach unten, halte die Umschalttaste gedrückt und dann unten klicke und dann die Strg C drücke , um kopiere alles und kontrolliere dann V, um es einzufügen. Lasst uns das hier einfach loswerden. Und das einzige, was wir tun müssen, ist, dass wir hier den Namen des Konstruktors ändern müssen . Und das wird gut werden. Das einzige, was wir nicht haben, ist, dass wir die Parameternamen hier nicht abgebildet haben. Jetzt kannst du sie selbst abbilden. Grundsätzlich können Sie auf Umschalttaste F6 klicken und es dann richtig benennen, um es zu benennen. Und dann kann man ständig durchgehen, aber es wird wirklich nicht unbedingt benötigt. Ich werde den Konstruktor tatsächlich kopieren , weil ich das tatsächlich auf die abgebildete Weise vorbereitet habe. Materialien sie vor. Und da gehst du. Das einzige, was nicht funktioniert, ist das, denn anstatt ein faul geladener Wert zu sein, wir das einfach zu einem faulen Jahr machen . Und dann sollte hier alles gut funktionieren , aber der Rest sollte in Ordnung sein. Dies steht Ihnen natürlich alles im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. also keine Sorgen. Und nun, was macht das? Nun, zuallererst können wir alle Vanille-Werte genau hier sehen. Und weil das eine Aufzählung ist, ist es ziemlich cool, weil das nicht fortgeschritten ist. Wissen Sie, sogar wir können hier mehrere verschiedene Werte definieren . Sagen wir einfach, dass unser Kobalt zum Beispiel irgendwie auf dem Niveau von Gold sein wird. Aber sagen wir, Sie wissen was, es wird ein bisschen mehr Haltbarkeit haben ein bisschen mehr Haltbarkeit , sagen wir etwas wie 13. Vielleicht wird die Interoperabilität etwas geringer sein, aber nicht zu weniger, wie vielleicht 21, so etwas. Die Zielfinsternis ist in Ordnung. Vielleicht wird es sogar ein kleines bisschen Zähigkeit haben . Ich weiß nicht, wie 0,5, kein Klopfwiderstand. Und die Zutaten, mit denen Sie es reparieren können, werden mehr Gegenstände sein, Punkt bekommen. Und dann brauchen wir den Rest nicht mehr. Das wird Kobalt sein. Und dann muss der Name hier natürlich auch Kobalt sein. Und diese Werte hier sind interessant weil diese Werte Sie sehen können , dass dies der dritte Parameter ist, ein ganzzahliges Array, das als Slot-Schutz bezeichnet wird. Jetzt sind langsame Schutzmaßnahmen im Grunde genommen der Schutz jedes verschiedenen Rüstungsstücks. Das fängt ganz unten an. Das sind also die Stiefel, Leggings, die Brustplatte und dann der Helm. Das ist sehr wichtig. Und vielleicht wollen wir das ein bisschen ändern, vielleicht so etwas. Vielleicht ist der Talmud tatsächlich ein bisschen stärker. die Brustplatte und das Ego. Aber wenn es um die Zahlen geht, spiele mit ihnen herum, sei offen für Experimente. Wenn du deinen Modus wirklich ausgleichen willst, wird es so sein, dass du auf irgendeine Weise damit herumspielen musst . Es gibt also keine Sorgen, es gibt jedoch eine weitere Änderung, die wir vornehmen müssen, und das ist in der getName-Methode genau hier. Denn was wir hier zurückgeben wollen, ist MC Course Mod, Mod a, D plus Doppelpunkt plus dieser Name. Dies ist sehr wichtig , dass Sie dies tun. Andernfalls funktioniert die Textur nicht so, wie wir sie einrichten werden. Es gibt also keine Sorgen. Aber abgesehen davon, je mehr Rüstungsmaterialien gemacht werden, wenn Sie jemals ein anderes Rüstungsmaterial hinzufügen möchten, müssen Sie im Grunde auch alle diese Gläser haben. Und im Grunde trennen Sie sie dann mit einem Komma. Also nennen wir dieses Kobalt zwei aus Gründen der Argumentation, solange sie anders genannt werden, wird das gut. Sie sind alle durch ein Komma getrennt. Und dann endet das mit einem Semikolon. Das ist sehr wichtig. Ich wollte das auch erwähnen, weil ein paar Leute damit verwechselt wurden. verrückt sollte es eigentlich nicht sein. In diesem Fall ist es nur ein sehr grundlegendes Java-Wissen. Aber was auch immer der Fall sein mag, gehen wir jetzt zur More Items Klasse. Und lasst uns unsere oder Rüstungsgegenstände kreieren. Nehmen wir einfach die Achse hier und lassen Sie uns das einfach zum Kobalthelm machen und dann auch hier Helm. Unterstrich-Element. Und das wird der Rüstungsgegenstand sein, sehr wichtig. Der erste Parameter wird das Modus-Rüstungsmaterial, Kobalt, sein. Und dann hat der Knoten drei Parameter. Genommen. Einer davon ist der Ausrüstungs-Slot. Der Ausrüstungsschlitz hatte in diesem Fall ein Ziel. Und dann erlauben uns die Artikeleigenschaften es uns einfach dreimal zu kopieren und dann lasst uns die Brustplatte hier holen. Dieser Teller. Und dann müssen wir nur den Ausrüstungsschlitz hier ändern. Das ist sehr wichtig , dass wir dies ändern. Andernfalls werden wir auf einige Probleme stoßen. Für welche Leggings? Gamaschen auch hier. Und dann nicht zuletzt die Stiefel. Und dann bootet auch hier. Seltsam diese beiden Beine und dann dieser Ausrüstungsschlitz zu essen. Und damit werden alle vier Gegenstände tatsächlich hinzugefügt. So einfach kann es sein. Was wir jetzt tun wollen, ist natürlich, bevor wir die JSON-Dateien hinzufügen, einfach die Übersetzung hinzufügen. Dies sollte an dieser Stelle trivial sein. Es ist nur, ich habe es einfach kopiert, um ziemlich selbsterklärend zu sein. Und wenn es um die Artikelmodelle geht, werden es sich auch um normale Artikelmodelle handeln. Denn natürlich sehen sie innerhalb des Inventars einfach wie normale Gegenstände aus. Es gibt jedoch eine interessante Sache. Zuallererst sieht man hier nur Punkte auf eine Textur. Und das wird gut werden. Lassen Sie uns alle Texturen kopieren. Aber dann ist die Frage, naja, wie bekommen wir das, die 3D-Rüstung? Nun, innerhalb unseres Textures-Ordners, klicken Sie mit der rechten Maustaste auf ein neues Verzeichnis namens models und anstelle des neuen Verzeichnisses namens armor. Und das ist die amerikanische Schreibweise, die sehr wichtig ist. Also ihr Leute aus Großbritannien, tut mir leid, aber es wird einfach so sein, dann lasst uns diese beiden gut PNGs hier kopieren. Dies wird der Kobalt-Unterstrich Layer 1 und der coole Unterstrich Schicht 2 sein. Das ist sehr wichtig. Bitte achten Sie hier auf. Wenn wir also das mehr Rüstungsmaterial definieren, diesen Namen genau hier, muss Kobalt genau mit diesem Namen übereinstimmen . Und dann unterstrichen Sie Layer, Unterstrich eins wird im Grunde genommen die 3D-Darstellung sein. Es sieht so aus. Du kannst es ein bisschen ändern, aber nicht zu viel. Und das wird sein, du kannst die Brustplatte, den Helm, ein bisschen von dem anderen Zeug sehen . Und dann glaube ich meistens hier, dass die Leggings und die Stiefel genau passen müssen. Es können keine Leerzeichen da drin sein, keine Klammern 1, weil Sie es von irgendwo kopiert haben. Genau so. Beachten Sie dies, dass dies korrekt im richtigen Ordnernamen und sie alle richtigen Namen haben. Sehr wichtig. Wenn Sie sich jemals fragen, wo die anderen Texturen oder Sie können zu externen Bibliotheken gehen , dass Mikroklima extra 118 im Texturen-Ordner und dann in der Models-Rüstung, Sie haben Sie grundsätzlich Zugriff auf alle Vanille-Vanille und Sie können sie theoretisch ändern, wenn Sie möchten. Das ist also echt verdammt cool. Aber das ist eigentlich alles , was wir hinzufügen müssen. Also mal sehen, ob es funktioniert. Ordnung, wir befinden uns wieder in Achtsamkeit. Kann sehen, dass hier alles zum Spiel hinzugefügt wurde und es sieht häufig, erstaunlich aus. Oh, so einfach kann es sein, die Rüstung hinzuzufügen. Man sieht sowohl frühe Rüstungswerte als auch ein bisschen Zähigkeit darin. Das ist echt verdammt cool, so wie wir es in unseren Rüstungsmaterialien definiert haben. Das ist ziemlich verdammt cool. Und es bringt Schweine zum Fliegen, oder? Aber das wird es schon für diese Vorlesung genau hier sein. 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. 63. (Alle alle Tools) Voller Armor: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir einen benutzerdefinierten vollen Rüstungseffekt hinzufügen . Was heißt das jetzt? Nun, die Idee ist, dass wenn wir unsere gesamten Rüstungssets tragen , alle Kobalt-Rüstungsmaterialien hier aufgestellt werden. Was wir dann wollen, ist, dass wir mit dem Spieler einen benutzerdefinierten oder einfach normalen Trankeffekt hinzufügen einen benutzerdefinierten oder einfach normalen möchten. So wie wir das machen, ist, dass ich tatsächlich den Kurs kopieren werde, den wir brauchen werden. Dies steht Ihnen im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Okay, also das ist die ganze Klasse und insgesamt werden wir einfach durchgehen und ich erkläre es mir, während ich weitermache. Das erste, was wir haben, ist natürlich eine Karte. Diese Map wird also im Rüstungsmaterial einer bestimmten Modus-Effektinstanz zugeordnet . Jetzt ist die Nummer eins sehr wichtig, dass diese Instanz, die wir in dieser Map verwenden , eigentlich nie selbst verwendet wird. Wir nehmen nur die Werte daraus. Sie können also sehen, dass ich, wenn ich das Rüstungsmaterial Kobalt anlege , einen Glückseffekt auf mich mit einem Verstärker von einem bekommen werde . Das bedeutet also, dass ich tatsächlich das Schloss 2 und dann natürlich auch 200 Ticks bekomme . Das wäre also für 10 Sekunden. Derzeit funktioniert dies nur mit Mod-Rüstungsmaterialien, also nur mit deinen benutzerdefinierten und nicht mit Vanille. Das ist hier eine sehr wichtige Einschränkung. Nun, wie funktioniert das bei Rüstungszecken gut , nennt man hier diese Methode. Wir überschreiben dies und dies wird jedes Mal aufgerufen , wenn sich ein bestimmtes Rüstungsstück, in diesem Fall das Modus-Rüstungsgegenstand, in deinen Rüstungsschlitzen befindet. Das heißt also, wir werden sicherstellen, dass wir auf dem Server sind, und dann prüfen wir, ob der Spieler eine volle Rüstung hat oder nicht . Dies ist eine benutzerdefinierte Methode, die ich geschrieben habe. Es ist nicht nichts zu Verrücktes hier. Wir bekommen im Grunde nur die Rüstung der Slots 0 bis drei, aber alle Unterarme sind Schlitze und prüfen dann nur , ob sie nicht leer sind oder nicht. Wenn also keiner von ihnen leer ist, werden wir ein wahres Ergebnis bekommen und dann werden wir die Rüstungseffekte weiter bewerten. Dafür gehen wir im Grunde die Gesamtheit der Map des Materials durch , um das Map zu beeinflussen. Und nur sicherstelle, dass hey, hat der Spieler die richtige Rüstung auf vier, im Grunde ein Effekt. Und wir werden sicher gehen , dass wir sichergehen werden. Und das hier. Dieser sagt also nur, hey, ist es das Material all dieser Rüstungen, im Grunde das gleiche Material wie dieses. Und wenn das der Fall ist, dann können wir noch weiter fortfahren, dann können wir noch weiter fortfahren indem wir diese im Grunde zufriedenstellend hinzufügen. Wir stellen sicher , dass der Spieler den Effekt nicht bereits hat. Andernfalls würden Sie im Grunde jedes Häkchen die Tatsache anwenden, was vielleicht ein bisschen zu oft sein könnte. Also habe ich diesen Vernunfaltscheck im Grunde genommen hier hinzugefügt. Dann prüfen wir auch noch einmal, ob die Rüstung eingeschaltet ist und ob das der Fall ist, dann werden wir den Effekt hinzufügen. Also werden wir hier eine neue Effektinstanz der tatsächlichen Effektinstanz machen , Effekt-Iteration kann Verstärker werden, wie gesagt, dieser kleine Effekt genau hier, diese Instanz hat nie benutzt, wenn wir Hier definiert, wird dies nur als Vorlage verwendet, damit wir grundsätzlich auch die Dauer und den Verstärker einsetzen können . Ja, das ist so ziemlich alles, was es dazu gibt. Es sollte nicht zu verrückt sein. Weißt du, wenn die Frage auftaucht, geht dir gut, wie hast du das gemacht? Wie hast du das gemacht? Nun, es ist erst am Ende des Tages in Java-Wissen , das Sie brauchen und wahrscheinlich auch ein bisschen Minecraft-Wissen. Und wie können wir diese Klasse benutzen. Jetzt werden wir in unseren Mod-Gegenständen, ich persönlich bevorzuge es, den Kobalthelm zu benutzen , um hier einen MOD-Rüstungsgegenstand herzustellen. Und was sehr wichtig ist, ist, dass Sie hier nur eines Ihrer Sets erstellen müssen . Also ein Gegenstand in deinem Set, der Modus-Rüstungsobjekt. Wie ich schon sagte, normalerweise bevorzuge ich den Helm. Das Schachspiel mag auch Sinn machen, oder die Stiefel, was immer Sie wollen, aber nur einer von ihnen muss ein Rüstungsgegenstand sein. Und wenn das der Fall ist, können wir bereits sehen, ob es funktioniert oder nicht oder ob Unternehmen wie in Minecraft. Also mal sehen, ich habe schon alles außer dem Helm an und lass es uns anziehen und da ist er. Ich habe jetzt für zehn Sekunden Glück. Und wenn ich eines dieser Rüstungsgegenstände abziehe, sich nicht erneuern, sobald der Effekt nachlässt wird er sich nicht erneuern, sobald der Effekt nachlässt. Wie du siehst, gehst du los. Und dann spielt es im Grunde keine Rolle, was wenn ich weiter bin und was wenn ich nicht gelesen habe. Es ist wirklich im Grunde genommen nach jedem anderen Stück zu suchen und sie haben dir noch einmal Glück, oder? Es gibt sicherlich einige Einschränkungen bei dieser Klasse, aber das sollte hoffentlich eine coole Einführung für Sie sein . Sie können natürlich immer den gesamten Code ändern, der im GitHub-Repository oder in einer Einzelperson verfügbar ist der im GitHub-Repository oder in . Und das wäre es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden. Und was das Neue angeht, sehe ich Sie jedoch in der nächsten Vorlesung. Ja. 64. (alle alle über Tools) Benutzerdefinierte Horse: Oder ich komme für 118 zurück zu den Futterkernen. In diesem Vortrag werden wir Minecraft eine benutzerdefinierte Pferderüstung hinzufügen . Für benutzerdefinierte Pferde-Rüstungen ist eigentlich ein ziemlich einfacher Prozess. Es gibt jedoch eine Kleinigkeit , die Sie beachten müssen. Nun, lassen Sie uns einfach die Kobaltstiefel hier überschreiben. Und lassen Sie uns einfach die Kobalt-Unterstrich-Rüstung des Pferdes unterstreichen. Und das Gleiche hier unterstreicht Kobalt Pferd Rüstung. Und das wird ein Pferde-Rüstungsgegenstand sein, oder? Das hier. Und was wir dann wollen, ist der erste Parameter, sagen wir etwas wie 12. Und der zweite Parameter wird eine Zeichenfolge für Bolt sein . Jetzt ist die Saite hier sehr wichtig, da dies den Namen der Pferderüstungstextur definiert. Lassen Sie uns also zuerst die Übersetzung noch einmal hinzufügen. Wir werden die Rüstung der Pferdeunterstriche unterstreichen. Für Kobaltpferde-Rüstung natürlich. Das Ego und dann ein Gegenstandsmodell. Ich kopiere nur den Barren hier, und ich nenne das einfach die Kobaltpferde-Unterstreichungsrüstung. Und dann werden wir es auch hier ändern. Schlimmer noch, schlimmere Unterstrich-Rüstung. Und dann fügen wir das langweilige Artikelmodell hinzu, wie in, dies ist nur ein normaler Gegenstand. Und fügen wir hier die langweilige Artikelstruktur hinzu. So langweilig, dies jedoch nur die normale Textur ist. Was ist mit der 3D-Textur? Nun, das geht tatsächlich in den Assets-Ordner, aber in Minecraft für einen neuen Ordner im Assets-Ordner namens Minecraft. Und dann brauchen wir da drinnen Texturen. Und dann brauchen wir anstelle der Urne Entity. Und dann brauchen wir da drinnen ein Pferd. Und dann brauchen wir da drinnen eine Rüstung. Wieder einmal die amerikanische Rechtschreibung. Und dann kopiere ich das vorbei. Sie können die Rüstung des Pferdes unterstreichen sehen, Kobalt unterstreichen. Das ist genau der Name , den wir hier geben. Wenn wir also mit der mittleren Maustaste auf den Pferdepanzerungsgegenstand klicken , können Sie sehen, dass es im Grunde genau das hier dauert. Es braucht also Detektoren, Entität, Pferd, Rüstung, Pferdeunterstrich, Unterstriche, wo immer der Identifikator ist, den wir hier einsetzen. Und Punkt PNG, im Grunde ist es das, was es auf 43 verweist, die Rüstung. Und das ist im Grunde alles , was Sie bei der Pferderüstung im Auge behalten müssen . Das eine andere Sache , die interessant sein könnte, ist, dass wenn wir uns das ansehen können, zum Beispiel Eisen als fünf Schutzgold sieben hat und Diamant 11 mit 12 hat. Das wäre eigentlich ein bisschen besser als Diamant-Pferde-Rüstung, aber das ist völlig in Ordnung. Sie können dies natürlich so ändern, wie Sie möchten. Aber mal sehen, ob es funktioniert. Oder ein Öfen in Minecraft und wie es der Zufall will, haben wir hier bereits ein gezähmtes Pferd. Lass uns einfach die kalte Pferde-Rüstung geben. Und da ist es. Es sieht dem Diamanten sehr ähnlich aus, sieht aber immer noch ein bisschen anders aus. Obwohl. Das ist wirklich großartig und so einfach ist es, Minecraft benutzerdefinierte Pferdepanzerungen hinzuzufügen. Das zu schreiben 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. 65. (Alle alle über Tools) Benutzerdefinierte Verzauberung: Alles klar, willkommen zurück zum Kurs für 118. Und in diesem Vortrag werden wir uns ansehen, wie Sie Minecraft individuelle Verzauberungen hinzufügen können . Verzauberungen an und für sich sind also ziemlich einfach hinzuzufügen. Es ist schwer, die eigentliche Funktionalität der Verzauberungen ist. jedoch im MC-Kurspaket mit der rechten Maustaste auf ein neues Paket, das als Verzauberungspaket bezeichnet wird Klicken Sie jedoch im MC-Kurspaket mit der rechten Maustaste auf ein neues Paket, das als Verzauberungspaket bezeichnet wird. Dann brauchen wir da drinnen zwei neue Klassen. Einer von ihnen heißt Mod Enchant Minuten-Klasse. Und der andere wird unser tatsächlicher und Vorsitzender sein , den wir tun werden. Und das wird der Blitzbrecher in Shenzhen sein. Es gibt auch den Kurs, mit dem wir anfangen werden. Dies wird die Verzauberungsklasse genau hier erweitern. Und dann lassen Sie uns einfach den Mauszeiger über den richtigen Konstruktor bewegen, der super passt. Dann ist das sehr wichtig, dass wir die Geräterutsche hier auf drei Punkte umstellen , anstatt hier der tatsächliche Bereich zu sein. Und was ich dann auch wärmstens empfehlen kann , ist, auf diesen und den Vorsitzenden und das drängende Control H zu klicken , um im Grunde alle Vanille-Verzauberungen sehen zu können , die Sie haben. Also gibt es zum Beispiel, ich meine, es gibt so viele verschiedene Dinge, oder? Die Dornen des Vorsitzenden, schauen Sie sich das einfach an. Du siehst, Hey, wie funktioniert das? Aber wie ist das grundsätzlich möglich? Und man kann sich im Grunde einfach alle hier drin ansehen . Ich empfehle dringend, einen Blick darauf zu werfen, da dies wirklich eine großartige Ressource ist um die möglichen Funktionen hier zu sehen. Und für unseren Vorsitzenden werden wir zunächst die GetMax-Levelmethode außer Kraft setzen. Und wir werden a2 zurückgeben, denn hier bestimmt dies im Grunde genommen, wie viele Bücher generiert werden. Weil die Bücher, die Bücher tatsächlich automatisch generiert werden , denn unsere Verzauberung ist wirklich cool. Und das bestimmt im Grunde, wie viele Levels es gibt. Jetzt möchten wir die Methode do post attack überschreiben, die im Grunde nach einer Weile als Angriff auf eine Entität bezeichnet wird . Und wir werden das einfach durchmachen. Also versuche ich es zu erklären. Wir werden also sagen, dass nicht die P-Angreiferebene nicht clientseitig ist. also im Grunde sicher , dass wir auf dem Server sind. Bitte beachten Sie das Ausrufezeichen ganz vorne, das die Clientseite annulliert. Sehr wichtig, dass wir dafür auf dem Server sein wollen , wir möchten sagen, Serverebene, die gleich ist, nennen wir es einfach Welt, das ist in Ordnung. Also ein bisschen daran gewöhnt, die Levelwelt zu nennen. Und ja, er Angreifer Dot Level, aber auf Serverebene geworfen eigentlich nicht auf Client-Level, Serverebene. Sie haben vor und dann so geendet. Und dann erstellen wir eine Serverschicht für Spieler, die dem Punktepunkt des P-Angreifers entspricht, der an den Serverplayer geworfen wird . Genau. Und dann werden wir eine coole Position des Block-Passes haben, die dem Zielpunkt entspricht, bekommen. Eigentlich ist es einfach blockiert. Position. Da gehst du. Genau das ist es. Wir werden auch die Blog-Posts Klasse importieren. Dann können Sie hier drinnen sehen, dass wir das P-Level bekommen, das hier im Grunde genommen ein Level erreicht, oder? Also werden wir das Niveau der Verzauberungen erreichen. Also werden wir sagen, wenn P-Level gleich eins ist, bedeutet das, dass wir keinen Blitz tauschen werden. Aber die Idee ist, dass wir den Entitätstyp Punkt-Punkt-Punkt-Blitzbolt-Spawn in der Welt nennen wollen Entitätstyp Punkt-Punkt-Punkt-Blitzbolt-Spawn in der Welt nennen . Nl Spielerposition, mobiler Spawn-Typ, Typ Punkt ausgelöst. Und dann wahr und dann wahr. Dies ist also im Grunde eine Möglichkeit , einen Blitzbolzen zu spawnen. Sehr einfach. Und das Beste ist, dass dies nicht nur ein Weg zu einem kleinen Blitz ist , Sie werden buchstäblich alles hervorgebracht, was Sie wollen, a, b und Ax , kleine Fledermaus, ein Gebiet, Tatsache Cloud anscheinend ein Rüstungsset, was immer du wirklich willst. Aber vorerst werden wir es so behalten. Jetzt werden wir das einfach kopieren, diese Stufe zwei machen, und dann werden wir nur kleine Auskleidungen machen. Das ist eigentlich alle Funktionen, die wir benötigen. Wenn Sie eine bestimmte Funktionalität für Ihre Verzauberung wünschen , geht es nur darum, Java mehr zu lernen und einfach eine Menge Sachen auszuprobieren. Sei offen für Experimente. Werfen Sie einen Blick auf die, die Lunula-Verzauberungen, sehr zu empfehlen. Man kann im Grunde nichts Besseres machen. Inzwischen müssen wir unserer Mod-Verzauberungsklasse noch Sachen hinzufügen. Und das wird etwas haben , das Sie zuvor gesehen haben, und es ist ein öffentliches statisches, endgültiges verzögertes Register vom Typ Verzauberungen. Dieses Mal werden wir Verzauberungen. Und das ist gleich einem anderen Register, das den MC-Kursmod, die Mod-ID und ob es sich um ein anderes Register handelt, erstellt oder registriert, verzaubert . Es gibt auch eine öffentliche statische Void-Register-Methode mit einem Eye-Ereignisbus oder Ereignisbus als Umfang. Wir rufen einfach die Verzauberungen an, die sich beim Eventbus registrieren. Und seine Registermethode ist natürlich, hier gerade nach dem Gesetz genannt werden, der Mock blockiert Register, wir werden sagen, Mod-Erfolge Punktregister mit dem Eventbus. Da gehst du. Und jetzt ist das registriert. Was wir jetzt brauchen werden, ist, dass wir im Grunde nur tun werden, dass das Folgende tatsächlich sehr einfach sein wird. Wir brauchen natürlich nur ein öffentliches statisches Registry-Objekt vom Typ Verzauberung, das der Blitzunterstrich-Stürmer sein wird , der den Verzauberungen entspricht, beginnen Register Blitz unterstreicht Stürmer. dann in einem Anbieter von neuen Blitzeinschlägen oder Verzauberungen mit der Seltenheit Lassen Sie uns dann in einem Anbieter von neuen Blitzeinschlägen oder Verzauberungen mit der Seltenheit etwas Ungewöhnliches tun? Ungewöhnlich, ja. Für Seltenheit und die Kategorie Verzauberungen ist Waffe, als der Ausrüstungs-Slot nicht gefüttert wird, aber wir werden diese Ausrüstung nur Slashdot über gemeine Hand machen . Ja, da gehst du. Und das ist es eigentlich. Das ist alles, was wir tun müssen, um diese Verzauberung zu registrieren. Dies ist die Funktionalität, dies ist die Registrierung abgeschlossen. Was wir jetzt noch hinzufügen müssen, ist, dass die Übersetzung anstelle der e und uns benachbarte Datei unterstreicht, wir sind es gewohnt, weißt du, ich werde das hier ganz unten setzen. Wir werden das überschreiben. Das ist nichts zu verrückt. Dies ist nur die im Grunde genommen Verzauberung MCQs, Lightning Stryker. Dieser Name muss also natürlich wieder mit diesem Namen übereinstimmen. Und dann ist das nur Verzauberung Vermont ID. Und du wirst nur dieses brauchen, obwohl es mehrere verschiedene Ebenen gibt, wird dies für jede dieser Ebenen übersetzt, oder? Nachdem wir all das hinzugefügt haben, Mal sehen, ob es funktioniert oder warum wir wieder in der Mikrofinanzierung funktionieren, kann den Blitzeinschlag sehen oder erfolgreich zum Spiel hinzugefügt wurden , den Verzauberungen. Fügen wir es in diesem Fall einfach zu unserem Diamantschwert hinzu und verwenden wir einfach diejenigen , die die Nummer eins sind. Wenn wir dann Nummer zwei verwenden, ist es nicht zu bemerken, aber es ist etwas anderes. Also los gehst du. So einfach ist es eigentlich, einen Kunden hinzuzufügen , der zu Minecraft geleitet wurde. Und das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das im Urin nützlich gefunden. Also das Neue, und wir sehen uns in der nächsten Vorlesung. Also ja. 66. (Fortgeschrittene) BlockState: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir über Blockstaatseigentum sprechen. Block sagt also, dass Eigenschaften eine sehr interessante Sache sind. Und im Grunde werden wir zunächst eine Art Theorie behandeln, die dahinter steckt. Und dafür nehmen wir die PowerPoint-Folien heraus. Werfen wir einen Blick auf die Unterscheidung zwischen Blöcken und Blockzuständen. Also block, du kannst dir das als eine Art einziges Muster vorstellen. Die Idee ist, dass wir für uns in unserer Klasse mehr Blöcke oder für die Rindler-Blöcke in der Block-Klasse verschiedene Felder für bestimmte Blöcke haben. Jetzt werden diese erstellt, sobald Sie sich daran erinnern, dass sie öffentlich statisch endgültig sind, also werden sie einmal zugewiesen. Es gibt immer nur ein Feld für einen bestimmten Block. Sie können sie sich also als Singleton-Muster vorstellen. Während Blockzustände die Instanzen sind, die sich innerhalb der Welt oder der Ebene befinden, speichern die Blockzustände eine Blockposition, die Blockeigenschaften, das wären die Stärke des Blocks. Sie wissen wie, wie viel Zeit es braucht, um solche Dinge zu brechen, die wir grundsätzlich in der Postfachklasse und dann auch die Blockstatuseigenschaften zugewiesen haben. Das sind also die drei Großen. Natürlich gibt es viel mehr als das dahinter steckt. Das wären die großen Drei. Und du kannst dir das so vorstellen . Die Blockstaaten werden von der Welt gerettet und können immer nur von der Welt oder dem Level verändert werden. Indem Sie zum Beispiel Level Sunblocker machen, als einige Parameter einzugeben. Das ist die allgemeine Idee. Sie haben einen Block, der ein einzelnes Muster ist sozusagen nur die Idee eines Blocks. Denn wenn ich Redstone oder Block sage, meinst du: Okay, ich weiß wie Redstone oder Block aussieht, aber wenn ich dann drei verschiedene Redstone oder Blöcke auf der Welt habe , sind sie alle anders, aber sie sind alle vom gleichen Typ. Das ist irgendwie die Idee. Sie können sich also einen Block als Klasse vorstellen und der Blockstatus wäre das Objekt, das daraus erstellt wird, sagen wir sozusagen in Bezug auf die Programmiersprache, oder? Was sind jetzt Blocksit-Eigenschaften? Nun, die kleine Überschrift hier oder wie man Daten in Blöcken speichert , ist nicht zu 100 Prozent korrekt, aber es ist irgendwie die Idee der gleichen. In der Kalziumblocker-Klasse könnte in diesem Fall die allgemeine Frage sein, nun, warum lege ich dort nicht einfach einen Booleschen Wert ein und dann wird es gut funktionieren, denken Sie noch einmal darüber nach. Wenn wir einen Block erstellen, schreiben Sie die, diese Klasse wird hier einmal erstellt. Wenn Sie also nur einen Booleschen Wert für alle Blöcke dieses Typs haben würden , wird es dasselbe sein. Und dann macht es natürlich keinen Sinn, denn ob dieser Redstone oder Block beleuchtet ist oder nicht leuchtet, hat nichts mit dem zu tun, wie zwei Blocks davon entfernt. Richtig. Und das ergibt natürlich keinen Sinn. Hier kommt also die Trennung ins Spiel und dort müssen der Block Eigenschaften verwendet werden. Wir können hier sehen, dass wir eine boolesche Eigenschaft namens lit haben. Und was sehr wichtig ist, ist, dass wir dies in der Blockklasse definieren. Und dann müssen wir immer die Methode zur Definition von Blockstatus erstellen hier aufrufen Methode zur Definition von Blockstatus und die Eigenschaften im Grunde dem Builder hinzufügen. Das ist sehr wichtig ist, dass Eigenschaften im Allgemeinen niemals null sein können. Sie haben also immer einen Wert oben, können mehrere verschiedene Eigenschaften haben. Und diese Eigenschaften können später in der Block States JSON-Datei verwiesen werden in der Block States JSON-Datei verwiesen , um sich grundsätzlich auf verschiedene Modelle zu beziehen , die wir bereits gesehen haben, oder? Wir haben die Treppe innerhalb der Türen gesehen, all das. Sie haben im Grunde viele verschiedene Blöcke, die Eigenschaften und dann das Ende je nach ihren Werten, beziehen sie sich dann auf ein anderes Blockmodell. Und er war im Grunde ein Beispiel, oder? Das wäre, LET ist gleich falsch und dies wird beleuchtet, ist gleich wahr. Ändern des Blockstatus. Nun, wie wird das gemacht? Nun, es ist eigentlich sehr einfach gemacht. Wir brauchen hier nur ein Level. Also brauchen wir irgendwo eine Levelvariable, setzen Sie den Block an einer bestimmten Position. Dann bekommen wir den aktuellen Status. Wir legen den Wert von lit genau das fest, was hier drin ist, oder? In diesem Fall stimmt es. Und dann sind die drei nur ein Flag, das das Aktualisierungsverhalten der tatsächlichen Einstellung des Blocks bestimmt . Normalerweise geschieht dies auf dem Server. Wenn Sie das nur auf dem Kunden tun , wird es nicht funktionieren. Stellen Sie grundsätzlich immer sicher, dass Sie sich in einem Server-Thread befinden, wenn Sie den Blockstatus ändern, wenn der Client einfach den Bach-Status ändern könnte, oder das könnte zu einigen interessanten Probleme, die sagen, und ja, das ist so ziemlich die Idee, oder? Es passiert hier an einer bestimmten Position. Der zweite Parameter ist der neue Status an dieser Blockposition. Und dann ändert der dritte Parameter, wie gesagt, das Aktualisierungsverhalten. Wir werden im Grunde 3 4 Amin durchmachen, im Grunde genommen die Gesamtheit dieses Kurses, denn drei aktualisieren im Grunde nur alle Nachbarn und aktualisieren das Aussehen und das läuft um gut zu gehen. Im Moment würde ich mir darüber keine Sorgen machen, wenn Sie wirklich etwas anderes brauchen, dann hoffe ich Ihnen an diesem wenn Sie wirklich etwas anderes brauchen, Punkt, dass Sie fortgeschritten genug sind um dies im Grunde herauszufinden auch dein eigenes, oder? Aber das wäre so ziemlich genau das für die Theorie hier. Gehen wir also in die Intelligenz und drücken wir zweimal die Umschalttaste und legen wir einen roten Stein oder Block ein. Wir werden uns diesen Kurs tatsächlich ansehen. Und wie Sie sehen können, so ziemlich genau das, was wir hier hatten, eine boolesche Eigenschaft namens lit Ganz unten haben wir die Credo-Block-State-Definitionsmethode genau hier, die aufgerufen wird. Beide sind also im Grunde die wichtigen Dinge. Der Grund, warum ich den Redstone oder den Block hier gewählt habe , ist, dass dies das einfachste Beispiel für eine einzelne Blockstatuseigenschaft ist . Und es hat nicht zu viele andere Dinge hier drin. Aber es gibt natürlich noch ein paar andere Dinge. Angriff hier wäre, wenn Sie einfach mit der linken Maustaste auf den Block klicken, dann beginnt er die Interact-Methode zu suchen, die im Grunde genau hier ist. Und das ist sehr interessant. Wenn die Lippeneigenschaft also falsch ist, setzen wir sie auf „true“. Und Sie können sehen, dass dies genau die Einstellung von true ist, die wir auch in der PowerPoint-Präsentation hatten. Wir setzen den Blog an eine bestimmte Position. Der Status, in dem wir den Wert von LET the true festlegen, und dann ist das Flag hier drei. Ich glaube also, wenn wir den Mauszeiger darüber bewegen, können Sie sehen, dass weltweite Flaggen wie folgt sind. Eines ist ein Blockupdate, zwei senden es an den Client, um zu verhindern, dass der Block erneut gerendert wird und solche Sachen. Und du kannst sie im Grunde hinzufügen. Aber wenn wir eine Drei eingeben, dann wird es passieren, dass es sowohl ein Blockupdate verursacht als auch die Änderungen an den Client sendet weil wir 1 plus 2 setzen. Das ist die Grundidee. Wenn Sie etwas anderes brauchen und sie im Grunde genommen sind, schauen Sie sich das vorerst an. Wir werden uns darüber keine Sorgen machen. Nun, das ist alles in Ordnung und gut, wir können uns das alle ansehen, aber seien wir ehrlich, wir wollen selbst etwas machen, und genau das werden wir tun. Wir werden hier eine neue Klasse schaffen. also in unserem benutzerdefinierten Paket mit der rechten Maustaste auf neue Java-Klasse. Und das wird die Kobaltlampe schwarz sein. Und dies wird die Blockklasse erweitern. natürlich genau hier dieses Bild, Importieren Sie natürlich genau hier dieses Bild, das wir ausgewählt haben, dass wir das richtige Bild ausgewählt haben, der super passt. Und wenn uns das rauscht, dann können wir einfach darauf klicken, Umschalttaste F6 drücken und hier einfach Eigenschaften wählen. Da gehst du. Alles klar, jetzt brauchen wir natürlich einen Block, sagen wir Eigentum. Jetzt mache ich dies zu einer öffentlichen statischen endgültigen booleschen Eigenschaft namens clicked, die dem booleschen Eigenschaftenpunkt erstellen entspricht. Und das war's. Und Vorschriften, Sie haben eine benutzerdefinierte Block-ID-Eigenschaft erstellt . Das ist alles, was wir tun müssen. Und natürlich müssen wir die Methode zur Definition von Blocksätzen erstellen immer noch außer Kraft setzen. Und dann nenne es im Grunde P Builder dot add, geklickt. Da gehst du. Wenn Sie mehrere Blöcke haben, die Eigenschaften, können Sie sie einfach hinzufügen, indem sie im Grunde durch ein Komma trennen. Natürlich ist es nicht sinnvoll , hier zweimal geklickt zu haben, aber wenn Sie mehrere haben, können Sie sie einfach durch ein Komma trennen und mit dem Add-Code hier so viele hinzufügen, wie Sie möchten . Jetzt wollen wir in der Lage sein, diesen Block mit der rechten Maustaste zu klicken und dann wird er im Grunde genommen ein- und ausgeschaltet. Wir werden einfach die US-Methode hier nehmen. Das werden wir außer Kraft setzen. Also lass mich das einfach ein bisschen anders machen. Und da dies veraltet ist, können Sie natürlich sehen, dass wir das nicht nennen sollten. Wir werden nur das Interaktionsergebnis dieses Erfolgs zurückgeben , das wird in Ordnung sein. Jetzt ist die Frage: Okay, was werden wir tun? Nun, wir werden sagen, ob P-Level auf Kundenseite ist. Im Grunde genommen sicherzustellen, dass wir das haben, ist das sehr wichtig, dass wir das Ausrufezeichen an der Front haben das Ausrufezeichen an der Front dies im Grunde zunichte machen, oder? Also wollen wir auf dem Server sein, nicht auf dem Client. Und ich sage, p-hat entspricht Interaktion Hand in Hand. Wir werden das nur jemals nennen, das ist die Grundidee. Und das ist sehr wichtig. Also Ausrufezeichen, bitte beachte das, weil ich das mehrmals gesehen habe. Die Leute haben das Ausrufezeichen vergessen dem wir auf dem Server sein wollen, nicht auf dem Client. Und dann werden wir sagen, dass der boolesche aktuelle Status dem Zustand entspricht, in dem wir weitergegeben wurden. Dies wäre also der eigentliche Blockstatus , auf den wir gerade mit der rechten Maustaste geklickt haben. Und ich werde sagen, erhalte einen Wert von geklickt. Und was wir dann tun werden, ist, dass wir einfach Level Set Block sagen , der aussieht, hätten wir an dieser bestimmten Position gesehen, auf die wir mit der rechten Maustaste geklickt haben, mit einem Zustand, auf den wir mit der rechten Maustaste geklickt und eingestellt haben der Wert, der auf den aktuellen Status geklickt wurde, negierte die ersten Klammern, orientierte sich und setzte sich in drei ein, was die Flags sind. Und das ist eigentlich alles, was wir tun müssen, damit sich diese Lampe ändert. Nun, es ist ein blockierter Zustand. Und wir werden sehen, wie wir dies im Grunde darstellen können oder wie wir das in einem Moment sehen können . Aber ja, das ist so ziemlich alles, was wir tun müssen. Du kannst alles sehen hier drin. Das sollte zu diesem Zeitpunkt nicht zu verrückt sein. Ja, also lasst uns den Block auch registrieren. In unserer Klasse mehr Blöcke kopiere ich einfach über die Kirschblüten-Falltür und das wird die Kobalt-Unterstreichungslampe sein die Kobalt-Unterstreichungslampe sein denn es ist das Gleiche hier, Kobaltlampe. Und das ist jetzt ein Kobaltlampenblock , der definitiv kein Holz aufnehmen wird. Nehmen wir uns ein Metall und dann ist auch keine Okklusion nicht der Fall. Was wir jetzt tatsächlich hinzufügen werden , ist etwas sehr Interessantes. Lass es uns nicht unbedingt notwendig sein, aber ich wollte das zeigen. Im Grunde möchte ich, dass wenn die Click-Eigenschaft wahr ist, möchte ich, dass diese dort eingeschaltet wird. Wie machen wir das? Nun, Sie können sehen, dass wir diesen See-Level hier haben , der eine Int-Funktion des Blockstatus ist. Was heißt das? Nun, es nimmt im Grunde einen Zustand hier ein und dann haben wir es ähnlich wie ein. Sie können sehen, dass dies einem Lieferanten ähnlich ist , und dann müssen wir es nur zurückgeben, damit wir zum Beispiel 15 eingeben können. Unabhängig vom Bundesstaat können Sie sehen, dass es nur 15 zurückgeben wird. Das war nicht ganz das, was ich im Sinn hatte. Was ich im Sinn hatte, ist, dass wir State Dot sagen einen Wert von Kobaltlampe Black Dot anklicken. Also bekommen wir im Grunde den Wert und dann werden wir den ternären Operator verwenden. Wenn dies der Fall ist, geben wir 15 zurück, was Max Light Level ist, und sonst geben wir 0 zurück. Das ist die allgemeine Idee hier, ist nur ein, etwas, das man im Grunde hinzufügen kann. Und auch dann du, jetzt weißt du, hey, so kannst du ganz einfach eine Lichtstufe dort zu einem Block hinzufügen , wenn du willst. Und jetzt natürlich weiter zu den JSON-Akten. Also lasst uns zuerst die Übersetzung hinzufügen , nur weil das ein bisschen schneller sein wird. Ich kopiere hier einfach über den Zaun. Die Kobaltlampe. Sie gehen über die Lampe. Und dann kopiere ich auch die Blockzustände. Diese stehen Ihnen natürlich alle im GitHub Repository oder Einzelpersonen genauso gut zur Verfügung. Und los geht's. Klicken Sie also auf diese gleiche falsche Kohortenlampe aus. Also werden wir auf dieses Modell zeigen , sie haben geklickt ist wahr. Dann zeigen wir auf die Kobalt-Unterstreichungslampe des Blockmodells. Lassen Sie uns also diese beiden Blutmodelle auch kopieren. Sollten sie nicht zu verrückt sein, oder? Nein, natürlich nicht. Sie sind eigentlich nicht zu verrückt. Und sehen Sie, wir haben gerade auf die Kobaltlampe gezeigt , und dann auf die andere, können Sie raten? Ja, insgesamt, Lamm an. Eigentlich ist es also sehr einfach. Die Texturen, auf die wir mit dem Artikelmodell verweisen, wissen Sie, es wird nur auf das Off zeigen, Lasst uns tatsächlich auf das Unimodale zeigen. Nun, wissen Sie was, lassen Sie uns diesen Punkt auf das Modell bringen , denn das ist in diesem Fall etwas schöner. Und dann kopieren Sie natürlich einfach die Texturen, wie wir es mehrmals gesehen haben. Jetzt. Sie gehen und gut, das ist so ziemlich alles , was wir tun müssen, oder? Das meiste schwere Heben hier durch das boolesche Eigentum, und der Rest ist, naja, sollte ziemlich selbsterklärend sein. Also mal sehen, ob es funktioniert. Oder wir befinden uns wieder in Minecraft. Wie Sie sehen können, war der Cobol M ein unaufgefordert unten und da ist er. Es fing in der On-Position an. Im Grunde beginnt es damit eine boolesche Eigenschaft nicht wahr ist, das ist völlig in Ordnung. Natürlich gibt es dort keine Sorgen. Und was Sie tatsächlich sehen können, wie lassen Sie uns hier nachts Zeit setzen und sehen, ob ich mit der rechten Maustaste darauf klicke. Jetzt können wir tatsächlich sehen, dass das Licht das ist, was ein- und ausgeschaltet wird. Das ist also sehr häufig, cool. Aber so einfach kann das auch sein. Aber nur damit wir es haben, wenn Sie vielleicht eine andere Standardeigenschaft wünschen, können wir dies im Konstruktor aufrufen, diesen Standardstatus für Punktregister. Und dann können wir diesen Punkt-Standardblockstatus sagen, unser eingestellter Wert von angeklickt wird auf false. Und damit werden wir im Grunde genommen das tun, dass dies falsch ist. Die clip-Eigenschaft ist also standardmäßig falsch. Aber das ist eine Art allgemeine Idee für eine, eine andere interessante Sache ist, dass Sie zum Beispiel, wenn wir in die Boolesche Eigenschaft gehen, also mit der mittleren Maustaste klicken, sehen Sie, dass dies eine Eigenschaft des Typs ist Boolescher Wert. Wenn ich hier Strg H drücke, sehen Sie, dass es sich auch um ganzzahlige Eigenschaften sowie Enum-Eigenschaften handelt. Eine der meisten ist die Direction-Eigenschaft. Sie können also auch ganzzahlige Eigenschaften und alle anderen verwenden . Und wenn wir uns tatsächlich die boolesche Eigenschaft ansehen , die zum Beispiel erstellt , können wir dies tun, aber wir können uns beispielsweise auch den Blockstatus ansehen . Ich glaube, es ist blockiert. Drei Immobilien. Gehen Sie Block, sagen Sie Eigenschaften, dass Klasse im Grunde alle Vanilleblöcke hat, die hier definierten Eigenschaften, wir können zum Beispiel einige ganzzahlige Eigenschaften, Alter, Max, Alter sehen . Wir haben einen ebenen Kesselstand, Low-Level-Kondensator . Im Grunde genommen einige Beispiele empfehle ich dringend, sich dies anzusehen, wenn Sie Ihre eigenen benutzerdefinierten Blöcke zu einer Eigenschaft machen möchten. Sonst wäre das schon für diese Vorlesung genau hier. Ich hoffe, Sie haben das in Bezug auf das Neue nützlich gefunden, und wir sehen uns in der nächsten Vorlesung. Also ja. 67. (Intermediate) Wie funktioniert NBT: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir uns NVT-Daten ansehen oder wie sie jetzt genannt werden, zusammengesetzte Tags, werden im Grunde MVT-Tags sein. Also was sind das? Nun, es ist im Grunde eine Möglichkeit, Daten beispielsweise auf Item-Stacks zu speichern . Die erste Frage, die mir in den Sinn kommt, sind Abwasserartikelstapel. Nun, so wie Block-Staaten die Darstellungen eines Blocks innerhalb einer Welt sind , sind ähnliche Artikelstapel Darstellungen von Gegenständen in Ihrem Inventar. Wenn Sie also zwei verschiedene Diamantschwerter haben, sind sie beide der Gegenstand, Diamantschwert, aber sie sind beide verschiedene Gegenstände, Stapel, das ist eine allgemeine Idee. Und dafür werden wir das Ergebnis speichern, das wir von der letzten Rute hatten. Klicken Sie mit der rechten Maustaste auf ein Bohrloch in NVT-Daten. Und was wir tun werden, ist, dass wir dafür einen neuen Gegenstand machen werden . Sie in unserem benutzerdefinierten Paket mit der rechten Maustaste auf die neue Java-Klasse, die als Datentablet-Element bezeichnet Und das wird natürlich das Element erweitern, über all diese Create Konstruktor passend super. Und was wir dann tun werden, ist , dass wir einfach ein paar Sachen hinzufügen. Zunächst müssen wir also nichts hinzufügen, um NVT-Daten hinzufügen zu können. Wir können NVT-Daten zu jedem gewünschten Artikelstapel hinzufügen . Das ist so ziemlich genau das Richtige. Was wir jedoch tun werden, ist, dass wir die folgenden Dinge haben werden. Also Nummer eins, ich möchte tatsächlich, dass die NVT-Daten als Tooltip angezeigt werden. Wir werden es tun, wenn wir sagen „Hover Text anhängen“. Und was ich tun werde ist, dass ich im Grunde sagen werde, Hey, wenn der eigentliche Stapel hier, richtig, Tags hat. Dies ist also die Methode, die überprüft, ob hier NVT-Daten oder Angriffe vorhanden sind oder nicht. Dann werden wir sagen, Orangen sind nur eine Schnur. Und das werden wir aus dem Stapel lesen. Dot wird markiert, also erhält dies das NVT-Tag oder das zusammengesetzte Tag. Dann können Sie sehen, dass es verschiedene Arten von Methoden gibt , die wir im Grunde genommen ein paar verschiedene Gets bekommen können. Es gibt auch ein paar Puts. Nun, was wir tun werden, ist, dass wir eine Zeichenfolge mit dem folgenden Schlüssel bekommen , MC Course Dot letzten Unterstrich oder. Und dann fügen wir das einfach zum Tooltip hinzu. Also P Tooltip-Komponenten, Punkt-Add-neue Text-Komponente oder eine Alles klar, also haben wir jetzt zwei der drei wichtigen Tag-Methoden gesehen, die im Grunde genommen ein Tag haben und dann getaggt werden. Und dann können Sie im Grunde jedes Tag über ein bestimmtes Schlüsseljahr erhalten . Und wir werden es auch tun, dass wir dieses Glied machen werden. Also werden wir im Grunde das verzauberte Glitzern an diesem Gegenstand haben , wenn es ein Tag-Gefängnis gibt. Wir werden also sagen, dass es Folie ist und wir werden den Stapel einfach zurückgeben, nicht als Tag, aber das ist es so ziemlich. Sobald es eine p-Tag-Komponente auf diesem Stapel hat, wird es anfangen zu glitzern, als wäre es verzaubert. Und dann überschreiben wir auch die US-Methode genau hier. Und was wir tun werden, ist, dass wir folgendes sagen werden. Wir werden sagen, wenn der Spieler keinen Gegenstand in die Hand bekommt, er eine Hand benutzt, die Tags hat. Also noch einmal, wenn wir ein Tag haben, dann werden wir den Spieler GetItems einfach sagen und diesen Tag verwenden. Dies ist also der dritte zu einem neuen Compound-Tag. Denn wenn wir dies nur auf ein neues zusammengesetztes Tag setzen , dem nichts zugeordnet ist, dann wird das Tag im Grunde genommen gelöscht und der Hashtag wird jetzt falsch sein. Wenn wir also einfach mit der rechten Maustaste auf das Datentablet des Artikels D in der Luft klicken, werden alle Daten gelöscht , die sich dort befinden. Das ist die Grundidee hier. Und nun, das ist so ziemlich alles, was es dazu gibt, oder? Wir haben den Hashtag, wir haben das Git-Tag und wir haben den Set-Attack. Das sind so ziemlich alle drei großen Methoden , über die wir nachdenken müssen. Und jetzt werden wir es tatsächlich tun, wenn wir natürlich Änderungen an der Werbetrute machen werden. Dafür benötigen wir einen Util-Helperkurs in unserem YouTube-Paket. Klicken Sie mit der rechten Maustaste auf neue Java-Klasse namens Inventar Ich werde diese beiden Methoden tatsächlich kopieren , weil es das nur ein bisschen einfacher machen wird. Sie können also sehen, dass es nur eine boolesche Methode und eine Integer-Methode ist. Und die boolesche Methode sagt nur: Hey, hat der Spieler, dieser Spieler diesen Gegenstand irgendwo in seinem Inventar? Und dann sagt der andere nur im Grunde: Hey, hat den, wo ist der Index des Gegenstandes, den wir übergeben? Aber das ist im Grunde die allgemeine Idee hier. Und was wir tun werden, ist in unserem Dao Single Item, wir werden das jetzt ändern. Einer der Kernpunkte steht Ihnen natürlich auch im GitHub Repository oder einer Einzelperson zur Verfügung. Aber ich werde hier die Hauptmethode kopieren, die die Anzeige in BT auf das Datentablet sein wird. Wie Sie sehen können, müssen wir tatsächlich auch die Registerkarte „Mehr Artikeldaten“ definieren. also keine Sorgen. Wir werden es einfach tun, ist einfach sofort das zu registrieren. Also Datentablet. Und dann hier unterstreichen Daten Tablet. Und das ist natürlich ein Datentablet-Element, sie vor nur den normalen Eigenschaften haben. Und dann. Alles hier sollte gut funktionieren. Das sollte nicht zu verrückt sein. An dieser Stelle haben wir so viele Artikel registriert. Die Registrierung eines Artikels sollte fast zweitrangig sein. Was machen wir jetzt hier? Nun, wir holen den Gegenstand im Grunde aus dem Inventar des Spielers. Aber indem wir den ersten ganzzahligen Index erhalten, erhalten wir die erste Instanz dieses Artikels im Inventar. Das ist sehr wichtig. So wird es also im Grunde funktionieren. Ich werde es natürlich nur einen Moment in der Demonstration zeigen . Und dann erstellen wir hier ein neues Tag , also NVT-Daten. Und dann setzen wir einfach eine Zeichenfolge mit diesem Schlüssel ein. Sehr wichtig, dass dieser Schlüssel richtig ist, denn dies muss genau derselbe sein, wenn wir dies grundsätzlich vorlesen. Und dann legen wir einfach das gleiche Zeug ein, das wir hier reingebracht haben. Also drucken wir einfach den Namen und im Grunde die Position, an der wir ihn gefunden haben. Und dann setzen wir hier nur das Tag des Datentabletts auf MVT-Daten. Und dann drinnen von hier, im Grunde , kurz nachdem wir es gefunden haben, werden wir im Folgenden sagen, wir werden sagen, ob Inventar util dot Spielerstapel hat und Inventar mit dem Spieler und je mehr Gegenstände der Datentablet-Punkt erhält. Wenn das der Fall ist, möchten wir hier NVT-Daten mit dem Spieler hinzufügen , die Position unter I klicken und dann auch unten sperren. Da gehst du. Das ist so ziemlich genau das. Dies ist natürlich nicht wichtig für die NVT-Daten im Allgemeinen. Dies ist im Grunde genommen die Art und Weise, wie wir es hinzufügen. Das ist also wirklich der Hauptteil der NVT-Daten hier, in diesem Fall wird ein neues zusammengesetztes Tag erstellt und dann den Tack für diesen bestimmten Elementstapel festgelegt. Das ist so ziemlich die Grundidee. Nun, um der Fertigstellung willen, fügen wir die Übersetzung natürlich auch hier hinzu. Dies wird das Datenunterstrichen-Tablet sein. Datentablet hier. Sehr nett. Und dann fügen Sie auch das Artikelmodell genau dort hinzu, damit Sie sehen können, dass es auf den Datenunterstrich des Tablets zeigt , besonders neugierige und abseits Textur. Will gibt es auch eine eigene Textur? Ja, das gibt es. Aber das werden wir in der nächsten Vorlesung sehen . Eigentlich. Wir werden das einfach kopieren. Und das sollte so ziemlich alles sein , was wir tun müssen, um das Datentablet und einige benutzerdefinierte Entitätsdaten gut hinzuzufügen. Also mal sehen, ob es funktioniert. Oder Farces zurück und Mikrovesikel sehen, dass die Datentabelle zum Spiel hinzugefügt wurde. Jetzt müssen wir das maximale Stapeln hier in nur einem Moment ändern , aber das wird natürlich eine sehr einfache Lösung sein. Und mal sehen, ob ich Wertsachen finde. Dann sollten wir das erste Mal ein Tablet sehen. Da gehst du. Jetzt können wir also Found Minecraft Kupfer sehen oder genau an der Position, die wir dort hatten. Also funktioniert alles. Wenn ich jetzt mit der rechten Maustaste damit klicke. Es wurde jetzt gelöscht. Und was sehr wichtig ist , ist, dass wenn ich einen anderen finde, man sehen kann, dass es es für den ersten außer Kraft setzt. Das ist im Grunde das, was ich gesagt habe, aber es wird es außer Kraft setzen und das nächste nicht anbringen. Sie könnten natürlich eine andere gut, inventarübliche Methode erstellen , die wie eine Suche ohne NVT-Daten ist . Und dann fügst du es dem nächsten hinzu. Das würde natürlich auch völlig gut funktionieren. Aber vorerst ist das ziemlich gut. Nun lasst uns das Stapeln tatsächlich reparieren. Jetzt kannst du also sehen, dass sie sich nicht mehr stapeln. Einer von ihnen hatte NVT-Daten drauf. Aber du siehst, ich kann hier einfach neue bekommen und ich kann sie stapeln, was natürlich nicht ganz das ist, was wir wollen. Also lasst uns das einfach schnell beheben. Aber das ist natürlich eine sehr einfache Lösung, oder? In den Artikeleigenschaften fügen wir einfach die Steuer zur Methode hinzu, und wir werden nur eine 1 eingeben. Das sollte also hier ziemlich selbsterklärend sein. Und damit ist im Grunde das gesamte Datentablet fertig. Und das wäre es schon 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 aber in der nächsten Vorlesung. Ja. 68. (Zwischen) Artikeleigenschaften: Oder ich komme zurück zum Futterkurs für 118. In dieser Vorlesung fügen wir unserem Datentablet eine benutzerdefinierte Elementeigenschaft hinzu. Nun könnten einige von Ihnen sagen: Warten Was zur Hölle ist eine benutzerdefinierte Elementmodelleigenschaft oder eine Elementeigenschaft? Davon hab ich noch nie gehört. Nun, es ist im Grunde einem Blockstaatseigentum sehr ähnlich. Es ermöglicht uns jedoch, 0 zu einer anderen JSON-Datei des Elementmodells zu setzen, wenn die Eigenschaft ihren Wert ändert. Was wir also tun können, ist, dass wir die Textur des Datentablet-Elements ändern können , dass wir die Textur des Datentablet-Elements , wenn wir beispielsweise BT-Daten darauf haben . Was wir tun werden, ist, dass wir im util-Paket eine neue Klasse erstellen , die Mod-Item-Eigenschaften bezeichnet wird. Und dann machen wir eine öffentliche statische Lücke namens Add Custom Item Properties Methode. Und dann werden wir folgendes tun. Zunächst drücken wir zweimal die Umschalttaste und fügen die Artikeleigenschaften ein und stellen dann sicher, dass das Häkchen hier im die Artikeleigenschaften ein und stellen dann sicher, dass das Grunde genommen angekreuzt ist, dass das Kästchen Nicht-Produktartikel enthält. Und dann gehen wir in diese Klasse und Sie können sehen, dass dies Klasse und Sie können sehen, dass im Grunde die Item-Eigenschaftenklasse ist. Und wenn wir nach unten gehen, sehen Sie dies zum Beispiel die Schüssel mit der Stange und die Eigenschaften des Ziehgegenstandes, die verwendet werden , um die Textur im Inventar der Schüssel zu verändern . Das ist also echt verdammt cool. Und das ist eines dieser Dinge, bei denen es sehr schwer ist, darüber nachzudenken, wenn man nichts davon weiß . Aber sobald wir es wissen, sobald Sie gesehen haben, wie es funktioniert, wird es tatsächlich ziemlich einfach sein. Wir werden also Elementeigenschaften sagen die die Moduselemente, das Datentablet, das Punkt-Get und dann einen neuen Ressourcenstandort namens MC-Kursmod, Mod-ID und dann weiter registrieren Punkt-Get und dann einen neuen Ressourcenstandort namens MC-Kursmod, . Dies ist also nur der Name des, der Immobilie im Grunde genommen. Und was wir brauchen, ist, dass wir eine verrückte Well-Methode brauchen. Und was wir dann tun werden, ist, dass wir einfach Klammern und dann API einsetzen . Und Sie können sehen, dass es grundsätzlich nur einmal für uns die Item-Eigenschaftsfunktion generiert hat. Also drücken wir einfach die Tabulatortaste und dann ist das in Ordnung. Jetzt gibt diese Elementeigenschaftsfunktion einen Float zurück und dies ist im Grunde genommen der Wert, den die Item-Eigenschaft annimmt. Was wir sehen werden, ist, dass wir P Stack Dot Hashtag, Western Mark eins, f Doppelpunkt 0, F. sagen P Stack Dot Hashtag, Western Mark eins, f Doppelpunkt 0, F. und wir verwenden im Grunde den ternären Operator. Wieder einmal wird es einen zurückgeben, wenn ein Angriff tatsächlich vorhanden ist und 0, wenn kein Angriff vorhanden ist. Nun, dann ist das so ziemlich alles, was wir tun müssen. Ich muss das in unserem Kunden-Setup anrufen. Dies ist sehr wichtig, das heißt die direkte Methode hier Elementeigenschaften, mehr Elementeigenschaften, die benutzerdefinierte Elementeigenschaften hinzufügen . Und das ist so ziemlich genau das. Für jeden weiteren Artikel. Wir fügen hier einfach einen neuen Registeranruf hinzu. Und dann wird das so ziemlich alles sein, was wir tun müssen. Nun, wo benutzen wir das hier? Nun, wir verwenden das innerhalb des Artikelmodells. Was wir also machen werden, ist zuallererst, dass wir im Grunde ein neues Modell haben werden. Also das Datentablet hier, ich werde das tatsächlich kopieren. Also ziehe ich es in denselben Ordner während ich die Kontrolle halte. Ich nenne das das Datentablet auf. Ich werde das einfach hier in ein Datentablet umwandeln , nicht zu früh, sondern auf dem Ego. Und dann kopiere ich das andere Datentablet oder den Inhalt hier. Wir werden das einfach öffnen. Wir haben jetzt einen Datentablet-Unterstrich nur normal basierend auf Datei. Und das kopiere ich den Inhalt und erkläre gut, wie das im Grunde funktioniert. Standardmäßig ist dies die Textur, die es wählt, das Datentablet ausgeschaltet. Jetzt gibt es hier eine Überschreibung. Dies ist im Grunde eine Liste verschiedener Überschreibungen , die ein Prädikat haben. Und das Prädikat ist im Grunde , dass Sie sich das als eine vorstellen können , wenn das stimmt, dann werden wir es einfach mit diesem Modell hier überschreiben. Und das Prädikat ist, hey, MC-Kerne auf der Item-Eigenschaft müssen eins sein. Und dann werden wir es mit diesem hier außer Kraft setzen , dem MOOC-Kurselement Datentablet auf dem wir gerade hier erstellt haben, das dann im Grunde auf den Kontext des Daten-Talent. Das ist so ziemlich alles, was es gibt, ist, dass dies nicht zu verwirrend sein sollte, das sollte nicht zu verrückt sein. Wir machen es im Grunde auf eine sehr ähnliche Weise, da der Block sagt, dass Eigenschaften nur ein bisschen anders sind. Und ja, das ist so ziemlich alles, was es dazu gibt. Also füge ich einfach das andere Datentablet auch zur Textur hinzu. Und was wir dann im Grunde genommen bereit sind, uns das anzuschauen. Wieder einmal empfehle ich dringend, einfach offen für Experimente zu sein und damit ein bisschen herumzuspielen, weil die Eigenschaften des Gegenstands wirklich verdammt cool sind und ich das wirklich liebe. Es ist eigentlich ziemlich einfach, dies zu tun. Daher empfehle ich dringend , einen Blick darauf zu werfen. Aber um der Vollendung willen, schauen wir mal, ob es funktioniert. In Ordnung, wir befinden uns wieder in Minecraft. sehen, lasst uns versuchen, ein paar Wertsachen zu finden. Und sobald wir es gefunden haben, ist es da. Und dann hat sich auch die tatsächliche Textur geändert. Das ist also wirklich verdammt cool, und ich kann mit der rechten Maustaste darauf klicken, wir löschen die Daten erneut und dann ändert sich die Textur zurück. So einfach ist es also, im Grunde genommen die Textur zu ändern und einfach so etwas Kleines, oder? Das Ändern der Textur auf dem Tablet ist ein so cooler Effekt, dass es sicher ist, wird es einen ganzen Mod wissen lassen? Aber wenn du so etwas zu deinem MOD hinzufügst , wird es einfach so viel kühler sein, oder? Und das war's schon für diese Vorlesung genau hier. Der gesamte Code in den JSON-Dateien steht Ihnen natürlich im GitHub-Repository und einer Person genauso gut zur Verfügung. Und wir sehen uns allerdings in der nächsten Vorlesung. Ja. 69. AUFGABE 7: Blockstaaten und NBT: Alles klar, Willkommen zu dieser Übung hier für den Schmiedekurs. Und was Sie hier im Grunde tun sollten , ist, dass wir eine Blockstatuseigenschaft und dann ein Beispiel für NVT-Daten erstellen. Im Grunde ist Ihre Kreativität einfach, Sie können tun, was Sie wollen. Sei im Grunde einfach kreativ. Werde nicht zu verrückt, oder? Denk nicht so, als würde ich ein verdammtes verrücktes Zeug mit sechs verschiedenen NVT-Daten machen . Oh, sehr langsam, sehr einfach, oder? Vielleicht machen Sie eine andere boolesche Eigenschaft, vielleicht machen Sie eine Ganzzahleigenschaft, was auch immer es gibt, dies zu etwas, das wirklich cool, aber auch nicht zu verrückt ist . Geh damit nicht zu weit über Bord. Denken Sie einfach darüber nach und dann werden Sie diese Aufgabe verwalten. Dafür gibt es keine wirkliche Lösung , denn im Grunde können Sie hier tun, was Sie wollen, was vielleicht ein bisschen zu groß ist, aber ich bin mir sicher, dass Sie es schaffen werden, aber ich bin mir sehr daran interessiert sieh mal, was du dir einfallen lassen kannst und ja. 70. (Fortgeschrittene): Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Ernte hinzufügen . Custom Crop ist also tatsächlich ein ziemlich einfacher Prozess. Alles in allem gibt es natürlich einige ganz besondere Dinge, die wir noch nicht gesehen haben, aber insgesamt wird es völlig in Ordnung sein. Zunächst benötigen wir einen benutzerdefinierten Durchgang in unserem benutzerdefinierten Paket, klicken Sie mit der rechten Maustaste auf eine neue Java-Klasse, die als Rübe Rob-Block bezeichnet wird. Und nun, wir haben hier zwei verschiedene Möglichkeiten. Wir können es entweder vom Ernteblock aus erweitern oder, und das wird zuerst einfacher, wir werden dies tatsächlich vom Rübenwurzelblock aus erweitern . Nun wird der Grund dafür in nur einem Moment offensichtlich sein. Zunächst einmal, wenn der Parameter Ihr Rauschen ist, verschieben Sie F6 und benennen es dann in Eigenschaften um und klicken Sie mit der mittleren Maustaste auf die Bead-Straßensperre hier. Jeder wird sehen, dass es eine Integer-Eigenschaft namens Alter hat. Jetzt geht diese ganzzahlige Eigenschaft von 0 auf drei, was genau der gleichen Anzahl von Alters- oder Alterswerten entspricht, die auch unser Block hat. diesem Grund können wir das im Grunde fast vollständig übernehmen . Wir müssen nur die gute Seed-ID-Methode genau hier in unserer eigenen Klasse außer Kraft setzen . Und der Rest kann grundsätzlich genau so bleiben, wie er ist. Wenn Sie nun ein anderes Alter in Ihrer gewohnten Ernte haben, werfen Sie einen Blick auf den Ernteblock. Sie können sehen, dass das Ernteglück in diesem Fall tatsächlich eine Person im Alter von sieben Jahren hat . Wenn Sie dies ändern möchten, können Sie es auch einfach ändern, indem Sie jedes Jahr ein anderes verwenden , oder Sie können Ihr eigenes Alter definieren, wenn Sie wissen, dass 12357 und 15 oder 25 keiner der gewünschten Agenten sind. Sie können einfach Ihre eigene Integer-Eigenschaft erstellen. haben wir schon mal gesehen. Das sollte also nicht zu verrückt sein. Das einzige, was etwas verrückt sein könnte, ist diese Form nach Alter genau hier. Also kann ich tatsächlich ein bisschen herauszoomen und dann einfach scrollen und weiter scrollen und scrollen. Das ist in meinem Kopf einfach sehr schlecht formatiert. Mir gefällt das einfach nicht, dass alles in einer Zeile ist. Die allgemeine Idee ist, dass wir im Grunde nur eine Box im wilden Level dieser Box haben . Die Box ist der schwarze Umriss , den ein Block hat, wenn Sie den Mauszeiger darüber bewegen. Und der Umriss ändert sich hier durch das Alter der tatsächlichen Ernte. Und dann gilt das Gleiche im Grunde für den Rübenwurzelblock. Man sieht im 0ten Alter, es sind 246 und eine Acht. Und Sie können diese im Grunde auch im Willen ändern. Das ist also etwas , das Sie auch tun können. All das sollte nicht zu verrückt sein. Alles in Betracht gezogen. Wissen Sie, wenn Sie eine völlig benutzerdefinierte Ernte haben die Sie mit einem anderen Alter und all dem implementieren möchten , bin ich mir sicher, dass Sie es schaffen werden, weil meiste davon nicht zu verrückt ist. Stellen Sie einfach sicher, dass Sie wissen, Sie die GetMax-Altersmethode überschreiben. Werfen Sie im Grunde nur einen Blick auf die Rübenwurzel. Werfen Sie hier einen Blick auf den Zuschneideblock hier. Werfen Sie einen Blick auf die Änderungen, die sie von einem zum anderen vorgenommen haben , und dann den Rest. Ich bin mir sicher, dass du es schaffen wirst und es herausfinden wirst. Und wir müssen die Seed-ID vorerst überschreiben , was wir tun werden, ist, dass wir das einfach machen und dies zu einem Fehler machen. Also vergesse ich das nicht. Das ist nur ein kurzer kleiner Tipp hier, denn ich möchte vielleicht vergessen, dies zu ändern, und dann musst du es noch einmal durchmachen. Also lasst uns das nicht machen. Und lasst uns dann eine, naja die Ernte hier in unserer Box-Klasse hinzufügen . Das wird also ein bloßes Kopieren der Falltür hier sein. Und wir nennen das die Rübenunterstrich-Ernte. Was jetzt sehr interessant ist, ist, dass dies natürlich auch die Rübenunterstriche sein wird. Jetzt ist dies kein Registerblock, das ist Block-Punktregister. Und der Grund, warum wir Blöcke oder Register aufrufen , anstatt die Registerblock-Methode durchzuführen, liegt darin , dass wir tatsächlich kein Blockelement möchten mit dieser bestimmten Requisite verknüpft ist. Was wir wollen, ist, dass wir später einen Samen machen wollen. Also sagen wir Rüben-Ernteblock. Und dann wird das tatsächlich Material sein, aber wir werden kopieren und mono sagen, sagen Blöcke Dot Weizen, deine Zelle, die wir eigentlich machen, lass uns Rübenwurzel machen, Rübenwurzeln, sie gehen und der Rest ist gut. Ich glaube, das einzige andere, was wir wollen, ist, dass wir auch keine Kollision machen. Also keine Kollision, keine Okklusion. Länge 2 sollten wir hier eigentlich nicht wirklich brauchen. Und dann sollte der Rest sowieso von den Rübenwurzeln kopiert werden, also keine Sorgen. Das ist also der Block tatsächlich erledigt und wir brauchen den Artikel immer noch. Jetzt wird dieser Gegenstand, wie gesagt, nur der Samen sein. Also wählen wir einfach das Datentablet aus und wir werden nur sagen, IP-Unterstrichen-Seeds drehen. Und dann tauchte natürlich auch der Name hier auf Unterstrich Samen. Und das wird ein Element, ein Name, ein Blockelement sein. Das ist interessant, ja. Stellen Sie sicher, dass sich dies tatsächlich auf mehr als nur einen stapelt. Und dann ändern wir auch hier einfach den Namen. Also diese Reihenfolge und dann der erste Parameter wird Blockmodus sein Blöcke Punkt urllib zuschneiden. Aber lassen Sie uns die Formatierung ein wenig ändern. Ich meine, das wird gut werden. Das wird gut lesen. Aber wir müssen dies zu einem Gegenstand mit dem Namen Blockelement machen , da wir tatsächlich den Namen der Samen anstelle des BlockName von Rübenmist an der Reihe nehmen wollen . Was wir jetzt in der Klasse tun können, da wir mehr Gegenstände, Punktrübe, Samen.rb, genau hier zurückgeben können . Und dann hat die Klasse tatsächlich getan, wie gesagt, wenn Sie ein bestimmtes Alter und ähnliches haben , schauen Sie sich die Ernteklasse an schauen Sie sich die Rote-Bete-Blockklasse an. Ich empfehle dringend, dass dies im Grunde alles sein sollte , was Sie wirklich tun müssen. Und im MC-Kurs mod eine Klasse, müssen wir auch die Rübenzucht der spezifischen Renderschicht hinzufügen . Also lasst uns das einfach mit Control D duplizieren und dann gleich hier einen Zuschnitt erstellen. Und das ist auch erledigt. Und dann sind JSON-Dateien alles was übrig geblieben ist. Lassen Sie uns die Übersetzung zuerst machen denn es gibt eine kleine Tendenz, dies zu vergessen. Lassen Sie uns also den Unterstrich-Schnitt auftauchen. Und dann wird dies genau hier die Rübenernte sein. Und was wir dann tun werden, ist dass wir einfach hinzufügen werden, das werden tatsächlich die Samen sein, sie werden Samen werden. Und dann wird die Ernte tatsächlich hier hinzugefügt. Es wird also aufgetaucht, unterstrichen Sie die Ernte. Dreh auf, Rob. Vielleicht möchten Sie diese Übersetzung auch, nur damit Sie sie haben, wenn Sie das haben, was sehe ich mir ein Modell an, das im Grunde den tatsächlichen Namen der Boxen anzeigt , die Sie betrachten. Dies kann manchmal auch dort helfen. Mit dem Übersetzungs-Basic. Lassen Sie uns über den Block kopieren States Jason und ich werden es erklären. Natürlich kann man sehen, dass das nichts zu verrückt ist, nichts, was wir noch nicht gesehen haben. Wir haben im Grunde vier verschiedene Altersgruppen, 0 bis drei, und wir zeigen nur auf verschiedene JSON-Dateien des Blockmodells. Das ist also im Grunde alles, was es dazu gibt. Das sollte nichts ganz Neues sein. Wir werden diese auch einfach kopieren. Diese stehen Ihnen natürlich alle im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Und du wirst sehen, dass das jetzt nur noch hier zugeschnitten ist. Und dann zeigen die Texturen auch auf Zuschneiden. Und dann zeigen wir einfach auf verschiedene Blockmodelle. Wir zeigen nur auf verschiedene Blocktexturen. Das ist also so ziemlich alles, was es dazu gibt. Und lassen Sie uns dann auch die Samen hier kopieren . Zeigt auch nur auf eine Textur. Nichts Verrücktes daran. Nun, das ist eigentlich nicht so verrückt. Alles in Betracht gezogen. Lassen Sie uns die Aedes-Textur holen und lassen Sie uns dann auch eine Lead-Texturen für die Blöcke besorgen. Sie sind nur 0 bis 3 Jahre. Und dann wird noch eine sehr interessante Sache der Beutetisch sein . Wie funktioniert der Lu-Tisch? Nun, dafür gehen wir einfach zu den externen Bibliotheken. Wieder einmal der Datenordner hier, rechts Mikrowellenclient und zusätzliche 1181 zu den Lautentabellen Blöcke. Und dann sagen wir zum Beispiel nur die Rübenwurzeln. Wir werden das einfach öffnen und Sie können sehen, dass dies in diesem Moment etwas komplizierter ist. Aber was wir tun können, ist, dass wir einfach alle Steuerelement C auswählen können, oder wir können auch die JSON-Datei Control C auswählen und dann einfach hier zu unserem MC-Kurs Lou Tabellenblöcke Control V gehen , um sie einzufügen. Und dann werden wir einfach sagen, ob Eve die Unterstrich-Ernte auftaucht, und dann müssen wir nur ein paar Sachen hier drin ändern. Jetzt ist es sehr wichtig, wie Sie sehen können, dass wir tatsächlich nach einem Block suchen, sagen , Eigentum, Alter, und es muss drei sein. Und dann ist dies die Bedingung , unter der der tatsächliche Aufschlag sinkt. Das ist sehr wichtig. Das wird also MC-Kurs-Rübe sein die wir dies ändern werden. Und dann wird das natürlich MC-Kurs sein. Drehen Sie Unterstrichen-Samen auf. Jetzt sehr wichtig, wir müssen diesen Block ebenfalls ändern, oder? Denn das wird jetzt der MC-Kurs Olin Rübenernte sein . Da wir nach der Altersgrundlage suchen und die Rübenernte nicht mehr den Beat haben, blockieren die Wurzeln im Grunde genommen. Und dann geht das Gleiche hier unten und stellt sicher, dass wir dies erneut auf den Begriff Ernte ändern . Und dann sind hier ein paar zusätzliche Samen, wo es fallen könnte. Wir werden das auch einfach kopieren. Stellen Sie sicher, dass sich sowohl die Modus-ID als auch die Namen der Elemente und Blöcke geändert haben. Es ist sehr einfach, sich die MOD-ID hier anzusehen. Also ja, diese Datei steht Ihnen natürlich auch zur Verfügung, also keine Sorgen, aber das ist eigentlich alles, was wir tun müssen, um den benutzerdefinierten Zuschnitt hinzuzufügen. Also mal sehen, ob es funktioniert. Oder wenn Francis zurück und Mikrovesikel sehen wurden die Rübensitze erfolgreich zu den Spielen hinzugefügt. Mal sehen. Ich kann sie auch pflanzen. Das ist ein sehr guter Anfang. Und lasst uns einfach ein paar Knochenmehl verwenden und sie gehen, also bauen sie Milchprodukte an und lassen Sie uns einfach gewalttätig wechseln. Siehst du, ich kriege sogar ein paar Rüben und ein paar Sitze zurück. Genau das wollen wir C, und mal sehen, ob sie auch wachsen, wenn die Zeit hier im Grunde etwas schneller gemacht wird. Zufällige Tics sind also nur zweitausend zu mögen und dort wachsen sie auch. Also funktioniert alles erstaunlich. Natürlich, wenn ich sie kreativ breche, bin ich deshalb zum Überleben gewechselt. Wenn wir also zum Überleben gehen, los geht's, es hat hier ein paar nette Rüben. Und da sind wir los. Und jetzt können wir der Gärtner unserer Träume werden, oder? Und das ist es schon 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. 71. (Fortgeschrittene) Füge dem Composter Elemente hinzu: Alles klar, willkommen zurück zum Futterkurs für 118. In diesem sehr kurzen Vortrag zeige ich Ihnen, wie Sie Ihre Artikel zum Komposter hinzufügen können . Sie können sie also grundsätzlich kompostierbar machen, sehr, sehr einfach in der Setup-Methode, die Sie haben. Hoffentlich sollte dies mit dem gemeinsamen Ereignisparametersatz FML erfolgen. Was Sie tun werden, ist, dass Sie Event Dot und q praktikabel sagen werden. Und dann steckst du Klammern, einen Pfeil und die geschweiften Klammern ein. Und im Inneren möchten wir Komposter loc dot dot dot nennen, mehr Gegenstände setzen, die Rübensamen, die zum Beispiel 0,5 erhalten , glaube ich, die richtige Zahl ist. Dann dupliziere das mit Control D, und dann legen wir es auch hier in eine Rübe. Ich setze 65 ein. Also können wir uns die Compossible Map genau hier ansehen . Und das sind im Grunde die Änderungen, die wir haben. So sieht man diese drei, also sieht der Ligand hier grundsätzlich typische 3.5 Potato VDD. Ich schätze, die Samen sind eigentlich weniger, also gibt es tatsächlich drei. Lasst uns das in drei ändern. Das ist auch vollkommen in Ordnung. 0.3. Da gehst du. Das ist so ziemlich genau das. Das ist alles, was Sie tun mussten, um sie dem Komposter hinzuzufügen, aber um der Fertigstellung willen zu sehen, ob es funktioniert. Oh, wenn Freunde, es gibt ein Minecraft und los geht's. Der Komposter, beide arbeiten genau so, wie man es erwarten würde. Und jetzt haben wir ein Knochenmehl, oder 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. 72. (Fortgeschrittene): Oder ich begrüße zurück zum vierten Kurs für 118. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte Blume hinzufügen . Eine benutzerdefinierte Blume zu verweilen ist eigentlich ziemlich einfach. In unserer Modellblock-Klasse werden wir also nur die Kirschblüte kopieren , eine Falltür. Und das werden die rosafarbenen Unterstrich-Zeilen sein. Und natürlich auch für den Namen rosafarbene Unterstriche Zeilen. Jetzt wird dies ein Blumenblock sein, der tatsächlich drei verschiedene Parameter aufnimmt. Der erste ist ein Mob-Effekt oder -Effekt, die zum Beispiel Blindheit sagen. Und dann ist die Effektdauer, die beliebt ist, um zu kommen und zu verlassen, diesmal tatsächlich in Sekunden anstelle von Ticks. Ich weiß nicht, warum es sehr inkonsistent erscheint, aber es ist was es ist und das eigentliche Mapping, was wir tun werden, ist, dass wir nichts davon brauchen werden. Und dann werden wir diesen Dandy-Löwen hier aus Blöcken kopieren , damit wir im Grunde alle Eigenschaften haben , die wir brauchen werden. Die Eigenschaften, die wir brauchen werden, sind also grundsätzlich keine Kollision im seborrhoischen Ende. Ich glaube auch, dass das Material aus Plan Ihnen im Grunde genommen keine Okklusion bringt. Also diesen hier brauchen wir beides, OK, keine Okklusion und keine Kollision. Aber indem Sie die Eigenschaften der beliebigen Zeile kopieren , in der diese im Grunde schon hier drin sind. Was wir auch für die Blume tun müssen , ist unsere Einrichtungsmethode, wir müssen das für die rosa Rose genau hier nennen. Also müssen wir die Renderer-Ebene richtig einstellen, und dann geht es im Grunde genommen nur an die JSON-Dateien. Diese stehen Ihnen natürlich alle im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Er Bloc sagt, dass Jason nur ein normaler Blockstaat ist. Jason fügt auch die Übersetzung hier hinzu, dies nicht zu vergessen, die rosa Unterstrich-Zeilen. Und dann stieg Pink genau hier auf. Da gehst du. Und dann fügen wir auch das Log-Modell hinzu. Nichts wirklich Interessantes ist los. Diesmal haben wir ein Kreuzmuster und auch eine Kreuzstruktur. Sie können dieses Mal sehen, dass das Elternteil hier das Kreuz ist und dann sind die Texturen auch kreuzt. Das ist wirklich das Interessanteste in diesem Fall. Und das Artikelmodell ist eigentlich auch ziemlich interessant, weil dieses auf eine, naja, dieselbe Blocktextur verweist, auf die der Block zeigt, denn obwohl es im Grunde dasselbe ist , was Sie haben Ihre Hand, dass es im Grunde auch wie auf der Welt aussieht, werden wir das auch einfach kopieren. Also gehen sie und das ist eigentlich alles , was wir für eine benutzerdefinierte Blume brauchen. Jetzt schauen wir mal, ob es funktioniert oder wir finden sie wieder in Micro. Wie Sie sehen können, wurde die rosa Rose erfolgreich dem Spiel hinzugefügt. Und sieht es nicht einfach wunderschön aus? So einfach kann es also sein, Minecraft eine benutzerdefinierte Blume hinzuzufügen , oder? Und dann ist es schon 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 allerdings in der nächsten Vorlesung. Ja. 73. (Fortgeschrittene) Benutzerdefinierte Flower: Alles klar, willkommen zurück zum Futterkurs bis 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Richtlinienplan hinzufügen . Nachdem wir also die benutzerdefinierte Blume hinzugefügt haben, wir jetzt auch einen Teil machen, an dem diese Blume variiert wird. Und so wie wir das machen werden, wir das einfach kopieren und sagen Teil es, Pink Rose. Und das Wichtigste hier ist, dass diese tatsächlich nicht die Registerblock-Methode aufruft, aber dies ruft wieder Blöcke auf, die sich hier registrieren. Was wir also tun werden, ist, dass wir am Ende einfach den Erleichterungshahn wegnehmen werden. Und dann werden wir dies auch zu dem Teil machen , der rosa Rose unterstreicht. Und das ist jetzt nur dafür ein Blumentopfblock. Dies wird tatsächlich auch drei verschiedene Parameter benötigen . Der erste ist ein Null, der zweite ist Mod-Blöcke, dunkelrosa, Rose, dasselbe ohne Get. Und dann wird das nur das Audit Dandy Lion machen , während es die Eigenschaften kopiert . Nun könnte man sagen, nun, das ist es schon, nicht ganz, denn was wir noch tun müssen, ist, dass wir es immer noch mit einer Liste möglicher Brunnenblumen hinzufügen müssen , nur im Wesentlichen. Nach der Setup-Methode werden wir also Blöcke sagen, diesen Blumenteil, diese Besetzung. Und dann werden wir das hier in einen Blumentopfblock werfen . Und dann können wir das tun, dann können wir die Add-Methode aufrufen. Ich sage Blockmodus, blockiert Punkt, Zeilen, dot getID. Dann ist der zweite nur gemappte Blöcke Punkt-Produkt, Rosa, Rose. diese Weise können Sie es im Grunde hinzufügen, dass Sie mit der rechten Maustaste mit Ihren Zeilen hier klicken können und dann diesen Block herausbekommen. Jetzt ist dies immer noch ein normaler Block, also brauchen wir immer noch einen Block States Jason, Blockmodell Jason und eine Übersetzungsdatei für die Piping Rose. Ich kopiere das einfach vorbei. Der Blockstatus ist eigentlich nur ein normaler Block, sagt Jason Jahr, das Modell ist ein bisschen anders, aber nicht zu verrückt. Lasst uns das zuerst tatsächlich machen. Lassen Sie uns also in Gross teilen, sind epische Reihen. Jetzt wird diese Übersetzung nur benötigt, wenn Sie etwas wie haben, was schaue ich mir an? Der Modus, den Sie im Grunde genommen können, wissen Sie, das, was Sie im Grunde betrachten, das ist der Name des tatsächlichen Blocks, den Sie betrachten. In diesem Jahr ist dieses Blockmodell, das Sie sehen können tatsächlich Blumen-Unterstreichungspartner. Und dann geben wir das Vorderteil an. Jetzt ist es auch wichtig, nachdem wir dies hinzugefügt haben, dass wir keine andere Textur benötigen. Was wir brauchen, ist, dass wir auch das öffentliche Rosa hier in der Renderebene ausschneiden lassen müssen das öffentliche Rosa . Ansonsten werden wir auch ein bisschen von einem Display haben , das dort ausgegeben wird. Ansonsten ist das alles, was wir tun müssen, obwohl Sie sehen können, dass es eigentlich ziemlich einfach ist, aber trotzdem gibt es einige interessante Dinge, besonders damit, mit dem Casting der eigentlichen Blume topf. Nachdem wir das hinzugefügt haben, schauen wir mal, ob es funktioniert. Oder Öfen wieder in Mikro. Also lasst uns das Teil einfach abstellen und los geht's. Wir haben die vergossenen Tintenreihen, was völlig gut funktioniert. Aber genau das würdest du wollen. Anstatt nur so schnell hier am Ende, wenn sich jemand fragt, weißt du, oh, wie können wir dafür den LU-Tisch machen? Es kommt wieder, wir haben Vanille-Beispiele dafür die auf die externen Bibliotheken hinausgehen, hin zu Net Microwave Client extra 181. Und dann können Sie in den Loop-Tabellen einfach nach allen Topfpflanzen suchen. Sie können sich das zum Beispiel ansehen und dieses Allium dann im Grunde einfach hier durch Ihr eigenes ersetzen. Also habe ich einfach über Control C, Control V kopiert und dann geändert. So einfach kann das eigentlich sein. Sie haben also immer alle Vanille-Beispiele grundsätzlich griffbereit. Ich empfehle es sehr, diese auch anzusehen . Wenn Sie jemals verwirrt sind oder etwas wollen , das bereits Vanille enthält, wird es im Grunde genommen nur repliziert. Es ist oft sehr einfach zu folgen, aber ansonsten wäre es das 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. 74. (Fortgeschrittene) Benutzerdefinierte Geräusche: Alles klar, willkommen zurück zum Kurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Sounds hinzufügen. Oder benutzerdefinierte Sounds sind eigentlich, naja, ich würde sagen ziemlich einfach, alles in Betracht gezogen. Was wir tun werden, ist, dass wir sie natürlich registrieren müssen . also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens sound. Und dann innerhalb ihrer neuen Java-Klasse für Städte wird diese Mode-Sound-Klasse ein öffentliches statisches endgültiges verzögertes Register des Typs Sound-Event haben ein öffentliches statisches endgültiges verzögertes Register , das als Sound-Underscore-Events bezeichnet wird, das wird gleich sein, um Register aufzuschieben , das erstellte oder registrierte Ereignisse, MC-Kurs-MOD, aber modifiziert. ob es sich um ein anderes Register handelt, gibt es eine öffentliche statische Void-Register-Methode mit einem Ereignisbus, coolen Ereignisbus oder seinem Parameter und dann Sound-Ereignisse, die Übergabe in der Event-Busperimeter. Dann wird diese Methode hier natürlich direkt unter den modernen Behandlungen genannt. Also mod klingt, kein Soundereignis, sondern registriere Ereignisbus. Da gehst du. Wie sahen die Sound-Events aus? Nun, sie sind eigentlich ziemlich einfach. Öffentliches statisches Registry-Objekt vom Typ, Tonereignis, Dowsing, Unterstrich, Stabunterstrich, das unter der Punktzahl gefunden wird oder der Name der Stunden sein wird. Und dafür werden wir tatsächlich eine benutzerdefinierte Methode erstellen. Nun, lass mich das einfach für eine Sekunde machen. Und ich werde eine neue Methode der privaten statischen Registry erstellen. Objekt vom Typ gefundenes Ereignis würde Sound-Ereignisse registrieren. Und hier müssen wir nur einen String-Namen übergeben. Und was wir dann tun werden, ist, dass wir einen Ressourcenstandort erstellen. Welcher Ausweis? Der neue Ressourcenstandort, MC-Kurs MOT, mot ID und der Name als Parametername hier. Und dann geben wir Sound-Events zurück , die sich mit dem Namen registrieren, und dann einen Anbieter eines neuen Sound-Events. Und hier müssen wir ihm nur den Ressourcenstandort übergeben. Dies ist die Hilfsmethode und dies wird unser Leben tatsächlich einfacher machen. Hier werden wir das Dosierungsunterstrich nennen. Unterstrich unter der Punktzahl oder der Name hier wird in nur einem Moment sehr relevant sein. Dieser Name hier wird also tatsächlich der Name von etwas sein, das wir im Grunde in einer separaten JSON-Datei deklarieren. Jetzt wurde der Sound registriert. Zuallererst brauchen wir natürlich eine Art Sounddatei. Jetzt geht dies in die Assets in Ihrem MC-Kursordner oder Ihre ID im Grunde genommen. Aber wir brauchen zwei Dinge. Nummer eins, wir brauchen eine neue Datei namens Sounds data JSON, sehr wichtige Sounds dot JSON. Und es ist so angelegt. Wir haben geschweifte Klammern und dann deklarieren wir grundsätzlich verschiedene Sounds. Also kopiere ich die Deklaration des Sounds. Und was Sie finden werden , ist, dass dieser Name genau der gleiche ist wie dieser Name hier. beiden müssen also übereinstimmen. Die Untertitel sind im Grunde was Sie in all dem sehen werden , was Sie in Ihrem Ohr erklären, und unterstreichen uns JSON-Datei, wenn Sie Untertitel haben. Dies ist also etwas , das Sie einfach zur EMRS-Curios JSON-Datei hinzufügen können. Man kann das auch so etwas wie Sounds Punkt M, C Corps nennen , wo auch immer so etwas. Ich werde die Übersetzung hier nicht hinzufügen weil sie im Moment nicht so relevant ist und auch nur eine Sache ist , die Sie kopieren. Es sollte für eine Weile nicht zu verrückt sein , wenn es um die Übersetzung geht. Das sollte ziemlich einfach sein. Und was sehr interessant ist, ist, dass das hier klingt, das ist eine Liste, oder? Da wir diese Klammern haben, deutet dieses Jahr auf den unterstrichenen Unterstrich hin, einen Unterstrich, der unter der Schule gefunden wurde, oder wir werden es jetzt tun, wo befindet sich diese Akte? Nun, definitiv unter EMT-Kurs-Namespace, aber wo genau gut, im Assets MC Kursordner läuft. erneut mit der rechten Maustaste auf New Directory Akkordsounds. Und dann brauchen wir drinnen eine OGG-Datei mit diesem Namen. Also werde ich das vor ihnen kopieren. Und es ist sehr wichtig , dass dieser Name hier genau mit diesem Namen übereinstimmt. Es ist, es muss eine OGG-Datei sein. Dies ist sehr wichtig und muss unter dem Mono-Sound, dem Klangtyp oder dem Klangraum liegen. Es muss eine Mono-OGG-Datei sein. Andernfalls könnten Sie auf einige Probleme stoßen, die sehr wichtig sind. Und Sie können nicht einfach eine MP3-Datei nehmen und das Ende umbenennen. Mp3 muss ordnungsgemäß in eine OGG-Datei konvertiert werden. Das ist also sehr wichtig. Jetzt werden Sie nur noch finden, weil dies eine Liste ist, in der Sie theoretisch mehrere Einträge hier haben könnten . Sie können also jetzt sehen, dass ich hier noch einen haben könnte und dann würde es im Grunde eines davon wählen. Das ist also sehr wichtig. Wir werden vorerst bei einem bleiben, aber es besteht im Grunde die Möglichkeit , mehrere hinzuzufügen. Nun ist die Frage, wie nennen wir das oder Fenster eigentlich? Wir werden das nennen, naja, wir werden das natürlich im Dowsing Rod Item nennen , im Grunde wenn wir einen wertvollen oder hier gefunden haben , wollen wir das spielen. Und wie spielen wir das? Nun, wir werden die Kontexte auf Punkt-Gate-Ebene sagen. Also brauchen wir den Pegel , wenn ich sage „Ton spielen“. Und dann kriegen wir den Spieler, wir werden die Position anklicken lassen. Wir kriegen Modern Sounds. Diese Dowsing Rod raus oder die Klangquelle bekommt, wird, sagen wir mal Blöcke, das wird in Ordnung sein. Und dann auch Volume 1, f und Pitch eins. Und so einfach kann es sein, einen Sound hinzuzufügen oder einen Sound Rich Play als Sound zu bezeichnen. Du brauchst nur den Pegel und spielst dann gut an. Aber es gibt verschiedene Möglichkeiten , Sounds abzuspielen. Ich glaube, dass Sie diese Rate vielleicht so gesehen haben, als ob ich ein Level hätte, könnte ein Level erreichen. Du siehst, dass ich Sound spielen kann. Ich kann sogar lokalen Sound spielen, was dann ein lokaler Sound wäre. Daher empfehle ich dringend, einfach ein bisschen damit herumzuspielen und zu sehen, welcher davon im Grunde am besten funktioniert. Du kannst es auch für den Spieler selbst machen. So kannst du auch Spielersound machen. Du kannst aber sehen, dass du gehst. Ich empfehle nur wärmstens, damit ein bisschen herumzuspielen und zu sehen, was die beste Idee für Sie sein könnte. Ja, aber das ist eigentlich alles, was wir tun müssen , um benutzerdefinierte Sounds hinzuzufügen. Also mal sehen, ob es funktioniert. Oder ich farme als Mikrowelle und stelle sicher, dass deine Lautstärke aufgedreht ist, damit du sicher bist , dass du es hören kannst. Und mal sehen, da ist es. N Wir haben es gehört. Ring, klingeln, klingeln. Also funktioniert alles völlig gut. Und jetzt können Sie auch sehen, wenn ich die Blöcke ablege , weil wir es zu Soundquellenblöcken gemacht haben. Und C Jetzt können wir es nicht mehr hören, sobald ich die Blöcke wieder auf den Rücken drehe . Aber das ist eigentlich echt cool. Lassen Sie mich die Lautstärke noch einmal etwas verringern. Und es wird sehr ruhig sein. Vielleicht ist es, damit es so leise ist , dass man es nicht einmal hören kann. Aber ja, so einfach kann es sein Minecraft benutzerdefinierte Sounds hinzuzufügen, oder? So einfach ist es wirklich und ich denke , dass es wirklich ziemlich einfach ist. Nun, eine Sache, die dir wahrscheinlich in den Sinn kommt, ja, aber ich möchte, dass mein benutzerdefinierter Block auch benutzerdefinierte Sounds hat. Nun, zum Glück werden wir uns genau das in der nächsten Vorlesung ansehen. Aber 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. 75. (Fortgeschrittene) Benutzerdefinierte Sounds für Blöcke: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir einen benutzerdefinierten Soundtyp hinzufügen. Minecraft. Jetzt enthält der Soundtyp im Grunde fünf verschiedene Sounds und repräsentiert Klang für einen bestimmten Block. Aber es gibt ein brechendes Geräusch, das Trittgeräusch, das Platzieren von Klängen, einem Hit-Sound und einem vollen Klang ist. Und wir werden alle fünf hinzufügen. Jetzt kopiere ich die Basisregistrierung. Ist das definitiv nicht so interessant. Erstens ist das wirklich witzig, dass dies nicht der richtige Name ist, aber das ist natürlich völlig in Ordnung. Sie registrieren in diesem Fall Soundereignisse. Und Sie können sehen , dass wir im Grunde Kobaltlampe brechen Kobaltlampe Schritt haben, Lasst uns schlagen und fallen. Das sind also die Sound-Events, die einzelnen, die wir brauchen und die auch benötigt werden, wenn wir einen benutzerdefinierten Schmiede-Sound-Typ benötigen. Also werde ich das auch kopieren und du kannst sehen, dass es so ziemlich nur die Cobol-Sounds sind. Und das ist dann gleich einer neuen Klangtyp-Metrik , die Lammgeräusche von Kollegen macht, um es zu studieren Es ist etwas klarer, worauf sich das im Grunde bezieht. Und hier drin müssen wir im Grunde genommen die Modus-Sounds passieren und wir müssen es nicht bekommen, weil das Futter hier tatsächlich einmal ein Lieferant klingt. Das wird also völlig in Ordnung sein. Also wollen wir dies grundsätzlich anstelle des Soundtyps verwenden , nur um sicher zu sein, denn das hat etwas mit dem Laden und im Grunde genommen Registrieren von Sachen zu tun . Im Moment dieser fünf Sound-Events müssen wir diese Sounds tatsächlich noch registrieren. Json Akte genau hier. Jetzt werde ich das noch einmal kopieren, aber keine Sorge. All dies steht Ihnen natürlich auch im GitHub Repository oder einer Einzelperson zur Verfügung. Und Sie können sehen, dass wir im Grunde den Bruchschritt der Kobaltlampe haben , bitte drücken und fallen, was im Grunde genommen sobald Sie die Untertitel hier erhalten haben und sich dann auf eine bestimmte Sounddatei beziehen. Wieder einmal müssen sie OGG sein, das ist sehr wichtig und sie müssen auch mono sein. Dies ist noch einmal unglaublich wichtig, sonst könnte es Probleme mit den Dateien geben. Und Sie können eine MP3-Datei auch nicht einfach in eine OGG-Datei umbenennen , sie muss ordnungsgemäß konvertiert werden. Stellen Sie also sicher, dass all diese Dinge der Fall sind. Und natürlich können Sie in unserem Beispiel hier natürlich einfach diejenigen verwenden , die ich bereitstelle. Wir werden die einfach hier drüben kopieren . Sie gehen, fünf von ihnen. Und das sollte so ziemlich sein , also sind die Sounds registriert. Das ist alles in Ordnung, aber wie fügen wir das jetzt zu einem Block hinzu? Nun, wie eigentlich ziemlich einfach, aber in unserem Fall möchten wir dies der Lampe hier hinzufügen. Also werden wir nur eine neue Blockverhaltenseigenschaft hinzufügen , und das wird das Ego klingen und dies schon vermuten lassen. Also das wird Mod Sounds Dot für was klingt, und das war's. Alles was wir tun müssen. Und jetzt sollte die Kobaltlampe alle Geräusche haben , die mit diesem Klangtyp verbunden sind, genau hier, die alle fünf sind. Obwohl ich meine, es klingt wie sehr antiklimaktisch, aber das ist es so ziemlich. Also mal sehen, ob es funktioniert. Oder wir befinden uns wieder in Minecraft und schon hier. Es funktioniert vollkommen gut. Also lasst uns drauf gehen. Das stimmt genau. Und lasst es uns brechen. Das ist genau richtig. Das einzige, was ich gefunden habe und das ist sehr interessant, ist , dass das fallende Geräusch aus irgendeinem Grund nicht ganz funktioniert. Oder es hat dort funktioniert. Mal sehen. Jetzt hat es nicht ganz funktioniert. Ich bin mir nicht hundertprozentig sicher. Das fallende Geräusch scheint manchmal nicht funktionieren zu wollen. Ich bin mir ehrlich gesagt nicht hundertprozentig sicher , warum das der Fall sein könnte. Aber die Großen, das Breaking Sound, der Platzierungsgeräusch, das sind die Großen, das Schlaggeräusch, ich glaube, dass ich auch hier gehen kann und dann hier kann man es genauso hören wie Geräusche treffen und Geräusche platzieren, Sachen wie das. Das sind wirklich die Großen. Obwohl. Das ist ziemlich cool, genau da gäbe es schon 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. 76. (Fortgeschrittene) Benutzerdefinierte Music: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft eine benutzerdefinierte Musikdiskette hinzufügen . Um unser Wagnis in die Sound-Events abzuschließen , fügen wir jetzt auch eine benutzerdefinierte Musikdiskette hinzu. Nun, das ist wieder einmal, so ziemlich nur bei normalem Sound-Event genau hier. Wir werden das einfach kopieren und ich werde das tatsächlich über die tatsächlichen Soundtypen stellen , nur für den Fall. Manchmal kann es ein bisschen getrennt sein. Hier wird die Bar Brawl sein, und dann wird das Sound-Event selbst auch als VAR-Unterstrich-Rolle bezeichnet. Da gehst du. Und dann ist natürlich das Sound-Event erledigt. müssen wir natürlich immer noch zu den Substantiven Punkt-Punkt-Punkt Jason hinzufügen Das müssen wir natürlich immer noch zu den Substantiven Punkt-Punkt-Punkt Jason hinzufügen. Also werde ich das noch einmal kopieren. Dies steht Ihnen natürlich auch zur Verfügung. Und du wirst sehen, dass es nur Barbara ist. Oh, das ist genau der gleiche Name , den wir hier angegeben haben. Und dann deutet dies auf eine Balkenschlägerei gut, Name, benannte Datei im Sounds Ordner genau hier, die wieder seltsam sein muss. Und dieses Mal wird es immer wichtiger, dass es sich Mono handelt, weil es sonst auf dem gesamten Server zu hören ist. Dies ist sehr wichtig und Sie können sehen, dass dieser Stream auch hier wahr ist, weil die Länge der Datei zunächst eine bestimmte Länge hat. Und Nummer zwei ist natürlich ein Stream , der sinnvoll sein sollte. Lassen Sie uns einfach diesen Overbar-Unterstrich-Schlägerei kopieren. Es gibt. Du gehst so ziemlich hin. Jetzt für die eigentliche Diskette, oder? Wir müssen in unsere Klasse für mehr Gegenstände gehen und hier einen neuen Gegenstand erstellen Nehmen wir einfach das Datentablet und kopieren wir das. Und das wird der Rekord des VAR-Unterstrichs der Schlägerei sein . Sagen wir jetzt für den eigentlichen Namen, den ich so tief nennen werde , sind Unterstrichenschlägerei und Musik Unterstrich Disk nur 21 stapeln ist hier in Ordnung, und das ist ein Plattenelement. Jetzt nimmt dies einen ganzzahligen Parameter als ersten Parameter auf. Und dann wird der zweite Parameter ein Modus sein , der Punktbalken klingt, Brawl. Sie können sehen, dass der erste ganzzahlige Parameter der Komparatorwert ist. Im Grunde genommen, was es ausgibt wenn die Stärke des Signals, das es ausgibt, wenn Sie einen Komparator neben die Jukebox legen, wenn Sie diesen Datensatz einsetzen. Jetzt ist dies ein normaler Gegenstand, aber es hat sozusagen eine Spezialität. Und das wird, naja, wenn es um die Übersetzung geht, die wir für die Übersetzung benötigen, eine Folgende Sache ist. Und genau das wird es sein. Barbaro Music Disk greift also auf den Namen zu, oder? Und dann brauchen wir diesen DESC auch zur Beschreibung. Und das enthält normalerweise mit Künstlern, die dies im Grunde genommen gemacht haben, und dann den Namen des Liedes. Ich habe auch CC Zero aufgenommen, um im Grunde zu signalisieren, dass dies gemeinfrei ist, sodass Sie dies nutzen können. Ich empfehle nur wärmstens, dem Künstler dies immer zuzuschreiben , denn das ist genau das Richtige. Aber das ist auch ein normaler Artikel, also brauchen wir immer noch ein Artikelmodell und ich werde es einfach kopieren. Das ist nichts zu verrückt. Es deutet nur auf eine normale Artikeltextur genau hier hin, was natürlich auch einfach nur eine ziemlich einfache Sache sein wird. Also, lasst uns das auch einfach kopieren. Sie gehen und das ist so ziemlich alles, was wir tun müssen. Das ist also so ziemlich es, den benutzerdefinierten Datensatz hier hinzuzufügen. Also schätze ich, lass uns einfach hören, ob es funktioniert. In Ordnung, Wir Farmen als Mikrowelle können die Bar sehen Brahms Musik, das wurde hinzugefügt, also legen wir sie einfach in die Jukebox und da ist es. Und jetzt, was sehr wichtig ist, ist , dass man hören kann, dass man hören kann, dass es leise wird, bis es nicht mehr gehört werden kann. Und wenn ich näher komme, wird es wieder lauter. Das ist also perfekt. Und es ist so ziemlich genau das, was wir wollen. Dies ist einer der Gründe, oder im Grunde müssen Sie in der Lage sein , diese OGG-Datei und Mono zu haben. Sonst wird es tatsächlich auf dem gesamten Server gehört, wenn Sie dies spielen, um sicherzustellen , dass es sterblich ist, ich habe den gleichen Fehler schon einmal gemacht. Im Grunde ist es also im Grunde so einfach , eine benutzerdefinierte Musikdiskette, Minecraft, hinzuzufügen, oder? Das ist schon für diese Vorlesung genau hier. Ich hoffe, du hast das im Urin nützlich gefunden. Also das neue, wenn er es getan hat, schätzen wir eine Bewertung von Ihnen sehr. Ansonsten sehe ich dich in der nächsten Vorlesung. Also ja. 77. (Fortgeschrittene) benutzerdefinierte Blockmodelle in Minecraft mit BlockBench: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte 3D-Blockmodelle hinzufügen . Aber das ist ziemlich aufregend, oder? Hinzufügen eines benutzerdefinierten 3D-Blocks, dem Minecraft, ist im Grunde kein ganzer Block, sondern im Grunde nur eine andere Form. Und es gibt viele bewegliche Teile dazu. Zuallererst benötigen Sie ein Programm namens Block Bench. Jetzt habe ich das schon geöffnet und ich habe auch unseren Custom Block bereits hier vorbereitet. Und du kannst sehen, dass es definitiv so ist, dass es definitiv so ist, als könntest du das definitiv sagen. Und die allgemeine Idee ist, dass wir dies nur als Block exportieren werden. Was Sie also tun können, ist im Grunde wenn Sie hier eine neue Datei erstellen, Sie können einfach ein Java-Block-Dash-Elementmodell erstellen. Sie können sogar die Texturgröße angeben, nur einen neuen Namen, und sie können damit Sachen machen. Jetzt wird dies kein Vortrag über die Blockbank selbst sein . Wenn es viele Interessen dafür gibt, füge ich vielleicht auch hier eins hinzu, aber vorerst wird es keine sein. Grundsätzlich könntest du hier einfach Würfel hinzufügen. Du kannst sie bewegen, oder? Im Grunde bauen Minecraft. Nun, sozusagen nicht in Minecraft. Sie können einfach etwas aus Blöcken bauen und dann fügen wir das als benutzerdefinierten Block hinzu und werden Sie es tun aber wir werden dies im Grunde verwerfen. Das brauchen wir nicht mehr. Genau hier, was wir tun werden, ist, dass wir zu Dateiexport gehen und dann Blockschlamm-Elementmodell exportieren. Und dies wird uns veranlassen, dies grundsätzlich zu exportieren. Wir werden das retten. Also habe ich das schon gerettet, aber das wird gut. Und das wird in einer JSON-Datei gespeichert. Jetzt öffne ich diese JSON-Datei genau hier in Intelligent. Und du kannst sehen, dass es irgendwie so aussieht. Das ist also eine Menge Weichheit, die uns irgendwie verwirrend macht. Ich weiß nicht, was das bedeutet. Nun, die Elemente hier in dieser Liste definieren im Grunde nur die 3D-Objekte, die sich in unserem Block befinden. Und dann wird hier die Textur, die wie das Wichtigste ist, im Grunde genau hier definiert. Jetzt müssen wir das ändern. Normalerweise ist das der Fall, also MC Course Colon und dann werde ich das tatsächlich unter Machines Slash legen , kaufte einen Blaster. Und dann gilt das Gleiche für diesen hier. Und ich gehe dann auch über die tatsächliche Textur API . Lassen Sie mich also zuerst schnell die Textur machen und dann können wir darüber sprechen, was diese JSON-Datei macht. Erstellen Sie hier ein neues Verzeichnis namens machines. Dann werden wir drinnen den Kobalt-Unterstrich Blaster Dot PNG haben , den du gehst. Und wo geht diese JSON-Datei dann hin? Nun, das ist einfach normal. Bmi ist kein Normalfall, aber es ist nur eine Blockmodelldatei. Das ist ein Blockmodell, Jason. Sie sind schon her. Und da hast du es. Und das ist buchstäblich alles, was Sie wirklich brauchen, damit das benutzerdefinierte Blockmodell funktioniert. Nun gibt es einige interessante Dinge, die Sie hier definieren können. So haben Sie zum Beispiel dieses Display und hier können Sie beispielsweise definieren, wie das in 3D aussieht? Wie würde es aussehen, wenn ein Zombie es in der dritten Person hält und du Ego-Atmung machen kannst, Lesters Person direkt auf dem Kopf, was irgendwie witzig ist. Und dann gibt es vor Ort, weißt du, vielleicht ist das zu groß oder vielleicht ist das zu klein, damit du das auch alles ändern kannst. Und das ist alles Teil der eigentlichen JSON-Datei, die Sie hier exportiert haben. Sie können also sehen, dass das genau hier ist, dieses Display, das ist alles definiert, also funktioniert alles absolut großartig. Jetzt brauchen wir auch ein Artikelmodell. Das bezieht sich natürlich nur noch auf das Blockmodell hier. Wir werden einfach Kobaltblaster sagen, genau dort und dann auch hier. Oder verputzt sie vor. Jetzt wird das eigentlich alles schon funktionieren. Jetzt brauchen wir auch einen benutzerdefinierten Blöcke States, Grayson. Jetzt, noch einmal, wählen Sie einfach den Block aus und wir werden diesen kopieren. Und das wird nur auf die JSON-Datei verweisen , die wir gerade erstellt haben und die wir hier exportiert haben. Wir werden uns dieses auf jeden Fall wieder einmal ansehen , denn was wir definitiv ändern müssen , vielleicht ein oder zwei Dinge dort. Aber vorerst werden wir einen neuen Block machen. Wir werden einen neuen Block registrieren. Wir werden die rosa Rose hier nehmen, weil die anderen die Blöcke registrieren. Natürlich wollen wir auch einen Artikel herstellen. Das wird also der Kobalt-Unterstrich-Blaster sein. Dann auch hier, unterstreicht Walt Blaster. Das wird vorerst ein normaler Block sein , weil du das mit einem normalen Block-Nein tun könntest oder was auch immer ist. Und das wird nichts kopieren. Das wird oben sein. Und dann sagen wir etwas wie Material, Metall. Und das ist eigentlich vorerst alles, was wir brauchen. Jetzt werden wir dabei zwei sehr offensichtliche Einschränkungen sehen. Wir gehen im Grunde ins Spiel, aber vorerst brauchen wir das so ziemlich genau. Was wir aber auch brauchen, ist der eigentliche Render-Layer hier. Also lasst uns das sofort für den Cobol-Blaster einstellen , den du gehst, und das sollte in Ordnung sein. Jetzt werden wir dabei immer noch ein paar Einschränkungen sehen . Aber zum Glück werden wir auch sehen, wie wir sie reparieren können. Zum ersten Mal in dieser Vorlesung, Mal sehen, ob es funktioniert. Oder ich finde mich in microRNAS kann sehen, dass der Cobol-Blaster hinzugefügt wurde. Wir haben die Übersetzung nicht hinzugefügt, aber das ist natürlich etwas, das man leicht beheben kann. Wenn ich es jetzt abstelle, kannst du sehen, dass wir zunächst ein Problem mit dem Durchsichtigen haben werden. Das ist also etwas , das wir leicht reparieren können , und dann werden Sie auch feststellen, dass wir zuerst sind, ich habe es niedergelegt, aber es sieht immer in die gleiche Richtung. Das ist also irgendwie nervig. Und dann sind auch die Grenzen hier nicht ganz das, was sie sein sollten. Jetzt sind sie definitiv nicht das, was sie sein sollten. Das ist also definitiv etwas, das man sich ansehen sollte. Nun, zum Glück können wir alle drei dieser Probleme beheben . Also lasst uns sie eins nach dem anderen angehen. Das erste und einfachste ist natürlich, denn die durchsichtigen, naja, wir brauchen nur die Keine Okklusion genau hier auf den Blockeigenschaften, Blockverhaltenseigenschaften. Und wenn das cool ist, wird das sofort behoben. Jetzt auf die anderen beiden. Nun, um die Rotation korrekt zu machen, brauchen wir tatsächlich einen Kunden, der uns dafür blockiert. Also werden wir eine benutzerdefinierte Blockklasse erstellen, die als letzter Block Kobalt bezeichnet wird . Und dies wird im Moment die normale Blockklasse erweitern . Wir werden einfach einen Konstruktor erstellen, der Super Wenn die Eigenschaften hier nein sind, klicken Sie darauf, Shift F6, und ändern es dann in Eigenschaften. Und wir werden eine benutzerdefinierte Eigenschaft benötigen. Jetzt ist dies nicht notwendigerweise eine benutzerdefinierte Eigenschaft, wird eine Eigenschaft sein, die eine öffentliche statische Eigenschaft oder Facing für die endgültige Richtung sein wird, die den Blockstatuseigenschaften entspricht. Diese horizontale Ausrichtung ist hier sehr wichtig. Und dann werden wir es tun, dass wir im Grunde den Standardwert hier registrieren werden. Also das hat getState Definitionspunkt, Punkt, ratlos. Ein Wert von Facing wird Richtung nach Norden sein. Also gehen sie, dies wird die Standardrichtung sein , der sie ausgesetzt sein wird. Und dann wollen wir drei Methoden, die ich eigentlich vier Methoden habe , die ich kopieren werde. Nichts zu verrückt hier. Sie werden also natürlich zunächst eine dekrete Blockstatusdefinitionsmethode sehen, bei der dekrete Blockstatusdefinitionsmethode sehen, wir dies zuvor gesehen haben, wir fügen einfach die Phasing-Eigenschaft dem Builder hinzu. Das sollte nichts Neues für dich sein. Diese drei sind definitiv bekannt, und das hat tatsächlich auch die Überschreibung zu beiden hinzugefügt , nur damit wir sie haben. Obwohl der gute Zustand für Platzierung im Grunde genommen nur noch einmal dafür sorgt, dass gut, die jeweilige Platzierung korrekt ist. Und in diesem Fall wollen wir tatsächlich die entgegengesetzte Platzierung meiner Art und Weise, wie ich aussehe. Ich schaue nach Norden. Ich möchte, dass der Block mir gegenübersteht. Es muss also nach Süden schauen. Das ist also die allgemeine Vorstellung davon, was das alles bewirkt. Und dann wurden diese im Grunde genommen einfach gedreht und gespiegelt, um gut in der richtigen Ausrichtung zu sein. Nun, das ist eigentlich alles, was wir in dieser Klasse brauchen , zumindest hier. Und stellen Sie in unserer Klasse mehr Blöcke sicher, dass Sie jetzt natürlich die neue Kobalt-Explosion oder den neuen Block von Kobalt erstellt Kobalt-Explosion oder den neuen haben und nicht mehr nur einen normalen Block. Das ist sehr wichtig. Das vermissen die Leute manchmal , wenn sie eine neue Blockklasse machen. Sie wissen, dass es nicht so gut funktioniert , wenn Sie es nicht erstellt haben. Das ist also in der Tat sehr wichtig. Natürlich müssen wir auch unsere Blockstaaten ändern. Jason hier und ich haben das schon vorbereitet. Jetzt ist das nichts zu verrückt. Was das im Grunde nur tut, ist, dass es im Grunde nur sagt , hey, wenn wir in eine andere Richtung blicken, drehen wir es einfach auf der Y-Achse um 9080 oder 270 Grad ein. Aber das ist so ziemlich alles, was das wirklich tut, das Modell wird immer noch dasselbe sein. Wir werden einfach den gesamten Block im Grunde drehen . Dies steht Ihnen natürlich auch im GitHub Repository oder einer Einzelperson genauso gut zur Verfügung. Und das hätte jetzt das rotierende Problem beheben sollen. Und natürlich auch das, wissen Sie, im Grunde das durchsichtige Thema, aber zum zweiten Mal, diese Vorlesung, lass uns sehen, ob es funktioniert. Alles klar, also zuerst sieht man noch einmal, der eigentliche Durchblick verschwunden ist. Und wenn ich es dann so ablege, los geht's. Es steht mir jetzt gegenüber, genau wie wir es erwarten würden. Es ist also nur der Begrenzungsrahmen, der jetzt das Problem ist. Und nun, wie das Glück es wollte oder ich schätze, da das Glück es nicht haben würde. Dies ist auch das, würde nicht unbedingt das komplexeste sagen, aber es kann sehr nervig werden. Aber mal sehen, nur damit ich es nicht vergesse, füge ich jetzt die Übersetzung hier hinzu, Cobol 100 Score-Blaster. Weil ich das sonst tatsächlich vergessen werde. Also los geht's, Cobol Blaster, und das sollte gut sein. Jetzt müssen wir die Cobol-Explosion-Straßensperre noch einmal anpassen. Die Klasse, die du bist, aber was wir eigentlich brauchen ist, dass wir wieder Sachen von der Blockbank brauchen werden. Lasst uns den Block punchier wieder öffnen. Und was du siehst ist, dass ich alle meine Würfel unter der Gruppe habe , die Voxel Shapes genannt wird. Das ist sehr wichtig. Ich brauche das tatsächlich unter der Gruppe Voxel Shapes. Sonst wird es hier nicht sehr wichtig funktionieren. Als Nächstes brauche ich ein bestimmtes Plugin 100 Plugins, unter denen Sie verfügbar sein können , und Sie möchten nach weiteren Utils suchen. Jetzt habe ich das schon installiert. Es sieht so aus von JDK 22 und dem Wetter. Dies ist sehr wichtig, da Sie sehen können, Voxel-Formen auszunutzen. Genau das möchte ich hier exportieren. Wir wollen zur Voxelform gehen. Ich möchte das auswählen , damit hier alles ausgewählt wird. Gehen Sie zu Dateiexport, und dann können Sie Voxel-Shape exportieren sehen. Jetzt möchte ich dies als MOOC-Mapping exportieren. Also offizielle Mappings hier in diesem Fall. Und dann möchte ich „bestätigen“ sagen. Jetzt möchte ich das den Voxel Shape Unterstrich n nennen. Jetzt könntest du sagen: Warte, warum ist es n? Nun, wir müssen dies für alle verschiedenen Orientierungen exportieren . Also müssen wir das um 90 Grad drehen. Erneut exportiert, um 90 Grad drehen, erneut exportieren, um 90 Grad drehen , erneut exportieren. Und dann sind wir fertig. Wir brauchen vier verschiedene Voxel, Formen. Ich muss noch einen besseren Weg finden, dies zu tun. Wenn du einen besseren Weg dazu findest, sag es mir bitte. Ich möchte es wirklich wissen, weil es an diesem Punkt sehr gut geworden ist, es ist sehr nervig, weil wir das mehrmals tun müssen . Aber ich zeige dir, wie der Firefox eine Java-Datei sein wird . Und das kannst du im Grunde genommen haben, das wirst du dieses Jahr haben. Das erste , was Sie tun werden, ist, dass Sie dies im Grunde aufräumen werden. Wenn Sie also diese Nullen haben, sind Benutzer oder um sie einfach aufzurunden oder auf die nächste ganze Zahl abzurunden . Dieses Jahr ist im Grunde ein Nullpunkt und dann gefolgt von 14 Nullen. Und dann ist eine Drei wie okay, das wird natürlich eine 0 sein. Also wollen wir das im Grunde aufräumen, damit es schön und ordentlich aussieht, was es nur hier eingeführt hat. Und dann können wir es grundsätzlich benutzen. Und was wir tun werden, ist, dass innerhalb der Klasse im Grunde genommen eine neue private Statik erstellen wird. Private statische endgültige Voxel-Form, halten Shape-Unterstrich n, was genau diesem Jazz genau hier entspricht. Wir kopieren dies und Control V, um es einzufügen. Ich importiere die Voxel-Form. Wir werden den Stream importieren. Importieren Sie die Voxel-Shapes. Eigentlich sind das nur Formen. Da gehst du. Es gibt Formen. Und dann funktioniert das Auge Boolean auch anders. Dies ist eigentlich der boolesche Wert, den sie vor ihnen haben. Jetzt wird das klappen. Also die eigentlichen Mappings wahrscheinlich noch nicht aktualisiert, ganz für die Blockbank, aber das ist in Ordnung, denn das ist im Grunde das, was wir hier brauchen und nun, das ist großartig, aber jetzt haben wir nur die Form für die nach Norden ausgerichtete Richtung, da die Form natürlich anders wäre, wenn sie in eine andere Richtung blicken würden. Aber wir müssen es tun, dass wir im Grunde noch einmal die Voxel-Formen auswählen müssen. Sehr wichtig ist , dass der Drehpunkt an dem Sie ihn zentrieren können, aber Sie können sehen, dass er jetzt nicht ganz zentriert ist, als wäre er zentriert, aber dann hat er diese seltsamen Dezimalwerte. Stellen Sie sicher, dass dies wie für einen Punkt gesetzt ist, der auch Ganzzahlen ist. Denn wenn nicht, werden Sie auf einige Probleme stoßen. Und was wir tun werden, ist, dass wir das um 90 Grad drehen , genau so. Und jetzt wirst du sehen, dass das eigentlich nicht ganz übereinstimmt. Das ist in Ordnung. Was Sie tun müssen, ist, dass Sie diese Pfeile verwenden müssen , um es zu verschieben. Und dann kann man grundsätzlich wieder einsteigen. Jetzt wird das nicht bei C. Nun, was hier passiert ist, ist, dass ich im Grunde genommen versehentlich in die Nummer gegangen bin und dann einfach jeden Würfel bewegen wird. Das ist etwas, das sehr seltsam ist und mit Blockbank zu tun hat. Ich bin mir einfach absolut nicht sicher, ob du sehen kannst, ob ich die Pfeile benutze, dann wird es gut sein, dass es sie im Grunde als Gruppe zusammenbewegt. Wenn ich die Zahlen da drin ändere und es wird sie irgendwie einzeln verschieben. Ich bin mir einfach nicht hundertprozentig sicher, warum das der Fall ist. Das ist nur die Verrücktheit mit Blockbank. Leider gibt es im Moment wirklich kein anderes Programm , mit dem ich vertraut bin, weißt du, tut das so gut? Also müssen wir einfach dabei bleiben. Und dann sieht man, nun, wir haben das jetzt gedreht und jetzt ist der Block nach Westen gerichtet. Jetzt müssen wir also noch einmal Voxel Shape exportieren. Und dann ist das der Vox-Unterstrich W. Und das ist sehr wichtig, oder? Stellen Sie sicher, dass Sie es unter den Teppich exportieren , korrekter Name, richtig. Ich habe viele Leute gesehen. Es ist, als würde es nicht gut funktionieren, wenn man Ost mit West verwechselt hat, kann es unter dem Diamanten im Nordosten, Südwesten passieren , oder? Stellen Sie also sicher, dass Sie dem folgen, es sei denn, drehen Sie es hier einfach noch einmal. Und Sie können sehen, dass wir es noch einmal bewegen müssen, um sicherzustellen, dass wir diese Pfeile hier verwenden. Und es ist eigentlich in die andere Richtung. Da gehst du. Und dann wäre das Süden. Also das ist Export einer Voxel Form Unterstrich S. Und dann noch einmal zum Glück. Und dann sind wir hier im Grunde schon fertig. Also so eins und dann auf diese Weise, nein, ich habe noch einmal versehentlich auf die tatsächliche Nummer geklickt, stelle sicher, dass du es nicht tust. Wenn Sie dies tun, können Sie einfach Control Z drücken, um im Grunde den Schritt zurückzugehen. Keine Sorge da. Und dann exportieren wir das noch einmal, exportieren Voxel Shape Box oder Shape-Unterstrich E Diesmal oder Osten. Und dann nur um es zurück zu haben, die ursprüngliche Position genau hier, 0, und dann wird das 13 sein. Eigentlich. Da gehst du. Ich werde das noch einmal sparen, nur damit ich das wieder an dieser Position habe , damit es Ihnen auch zur Verfügung steht. Und ich habe jetzt auch die vier Java-Dateien. wir sie einfach hierher. Da gehst du. Lasst uns diese Art von Unvollkommenheiten noch einmal da rausholen. Weißt du, diese passieren manchmal nur weil Fließkommafehler, es ist einfach das, was es ist. Aber das ist nicht so schlimm. Es wird im Grunde nur alle diese Rundungsfehler des Ladepunkts entfernt . Und dann wird es uns vollkommen gut gehen. Das wird also wieder eine 0 sein. Lass mich 14 gleich hier und 13 gleich hier. Speichern Sie das, speichern Sie das, und dann werden wir mit E. fortfahren. Aber was ich tun werde, ist, dass das oder mal kopieren werde und ich werde Schafe E, S, Form w haben. und dann werden wir mit E. fortfahren. Aber was ich tun werde, ist, dass ich das oder mal kopieren werde und ich werde Schafe E, S, Form w haben. natürlich, um sicherzustellen, dass wir die richtigen wählen, um dort zu arbeiten. Das war also E, ist E und dann werden wir das einfach in Formen ändern. Und dann sind diese beiden Boolean vor einem Jahr hoch. Und das wird S sein, und das wird auch S sein. Das ist großartig. Wieder einmal sind dies nur Shapes und dann boolean up. Ich kopiere das nur über ein Steuerelement C Control V. Und dann nicht zuletzt die Westseite der Voxelform. Wieder einmal, boolean up, boolescher Tag vor. Wenn Sie vorhaben viele Blöcke mit vielen komplexen Walk-Through-Formen zu haben, oder vielleicht wird dies davon bestimmt sein. Ich habe dringend empfohlen, damit nicht verrückt zu werden. Und wenn du wie verrückt wie verrückte detaillierte Voxel-Formen hast, auf denen du sie nicht wie komplett aufbauen kannst. Normalerweise sind das nur Blöcke, oder? Das sind nur normale Blöcke. Wenn Sie plötzlich so etwas hatten und es dann so drehen, ist dies plötzlich kein echter Block mehr. Ich bin so, als wäre es kein gerader Block. Wenn Sie viele dieser verschiedenen Blockzustände haben die dem Block perfekt gefolgt sind, kann es passieren, dass es im Grunde genommen das Spiel ganz deutlich herunterfahren kann , weil es natürlich Die Voxel-Formen bestimmten grundsätzlich die Kollision mit dem Spieler und den Entitäten. Und das braucht tatsächlich viel Rechenleistung und so. Also empfehle ich dringend, nicht mit verrückten Voxel-Formen von UW zu gehen, oder? Das sollte also einfach gut sein. Aber ich wollte grundsätzlich davor warnen. Und was ich im Grunde genommen tun werde , was wir hier tun werden, ist, dass wir es genau hier mit der Good Shape-Methode außer Kraft setzen werden . Und ich kopiere tatsächlich den gesamten Inhalt. Das ist nichts zu verrückt. Es ist nur eine Switch-Anweisung , die Sie sehen können , die den Wert der Facing-Eigenschaft erhält. Und wenn es südlich ist und wir die Form nach Süden und Norden zurückgeben werden, werden wir die Form nördlich von ihnen zurückgeben, Südwesten, West, Ost, Ost. Nichts zu Verrücktes sollte hier ziemlich selbsterklärend sein. Und das ist so ziemlich alles, was wir tun müssen. Jetzt hast du gesehen, dass das ziemlich kompliziert ist. Wie gesagt, wenn Sie viele verschiedene Blogs mit verschiedenen Voxelformen für Erwachsene haben , ist es genau das, was es ist. Wenn Sie tatsächlich einen besseren Weg haben, dies zu tun, sagen Sie mir bitte in den Fragen und Antworten, ich bin sehr offen eine andere Möglichkeit zu haben, diese hinzuzufügen. Wenn wir jetzt etwas ändern würden, müssten wir alle Voxel-Formen erneut exportieren. So ist es, es kann irgendwie mühsam sein, aber was auch immer der Fall sein mag, wir haben es jetzt endlich getan. Wenn diese Vorlesung das letzte Mal ist, schauen wir mal, ob es funktioniert oder ob es zum Beispiel wieder in Minecraft ist, und setzen wir uns hin und vor ihnen funktionieren die Voxel-Formen perfekt. Mal sehen, es sollte perfekt in jede andere Richtung funktionieren, in die sie gehen, ist auch eines der wichtigen Dinge, warum man die Unvollkommenheiten auf jeden Fall beseitigen sollte Unvollkommenheiten auf jeden Fall beseitigen , weil es sonst könnte einfach nur das kleinste, kleinste bisschen weg sein. Und das ist echt nervig. Und es wird wahrscheinlich besser sein, wenn es eine Ganzzahl ist, obwohl ich glaube, dass sie sowieso wieder in einen Float umgewandelt wird, aber weißt du, es ist einfach, es macht die allgemeinen Berechnungen etwas schneller. Aber ja, so kann man so ziemlich viel ein benutzerdefiniertes 3D-Modell hinzufügen Minecraft. Eine weitere Sache, die ich hier einfach entfernen werde, ist der Elternteil hier, weil wir eigentlich kein Blau haben, diese Eltern aber nicht wirklich brauchen. Wir werden das einfach entfernen. Das sind sie. Das sollte also auch in Ordnung sein. Aber ansonsten können Sie es so ziemlich hinzufügen. Insgesamt. Es ist, naja, es kann sehr komplex sein, besonders wenn man diese verrückten Voxel-Formen hat, aber ansonsten ist es eine ziemlich einfache Sache. Alles in Betracht gezogen, je nachdem, wie viele verschiedene benutzerdefinierte 3D-Blockmodelle Sie möchten. Aber jetzt sind Sie mit dem Wissen ausgestattet , dass wir diese hinzufügen. 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) Benutzerdefinierte Item mit BlockBench: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir ein benutzerdefiniertes Artikelmodell hinzufügen , Minecraft. letzte Mal haben wir ein benutzerdefiniertes Blockmodell gesehen. Jetzt geht es um das Artikelmodell. Zunächst werden wir hier ein neues Element und eine Kopie über das Datentablet erstellen . Und das wird das Kobalt-Unterstrich-Personal sein. Und dann für den Namen natürlich auch, unterstreicht Kobalt Mitarbeiter. Und das wird in diesem Fall ein normaler Gegenstand sein. Und dann wird es in diesem Fall tatsächlich völlig in Ordnung sein. Und lasst uns sofort die Übersetzung hinzufügen. Sonst werde ich es noch einmal vergessen. Also das natürlich, jetzt wollen wir zu Tode. Und dann alle Mitarbeiter genau hier. Und wieder einmal öffnen wir die Blickbank genau hier, um das wirklich coole Kobaltpersonal genau hier zu sehen. Und Sie können sehen, dass ich das gerade mit einigen alten Vanille-Extras sowie einer benutzerdefinierten Textur vorbereitet einigen alten Vanille-Extras sowie habe. Und ich empfehle dringend , hier anzuzeigen, um im Grunde zu sehen wie es in die Hand des Spielers aussehen wird. Dritte Person rechts, dritte Person links. Wir haben die erste Person, erste Person übrig, keinen Kopf. Das ergibt überhaupt keinen Sinn , wie es vor Ort aussieht, eigentlich wirklich so. Und dann ist der Frame auch wirklich cool in der Benutzeroberfläche. Auch richtig nett. Sie können das also definitiv ändern und tun, würde es mögen, welches Display Sie wollen? Ich empfehle dringend, damit herumzuspielen. Und sobald Sie mit Ihrem benutzerdefinierten Element zufrieden sind, gehen Sie im Grunde zum Dateiexport-Block. Jedes Modell wird es als JSON-Datei exportieren. Und nach dem Ersetzen, weil ich schon einen habe. Und dann werden wir die Akte kopieren. Und dann kopieren wir diese Datei für beide Mitarbeiter in den Models-Elementordner. Und es gibt ein paar Dinge , die wir tun müssen. Sie können also sehen, dass die Texturen hier ohne Namespaces kommen, also müssen wir dies hinzufügen. Also Minecraft alles und blockiere Peitsche. Und dann mach das Gleiche für hier, hier und hier. Dann können wir einfach dasselbe für den Cobol-Block hineinlegen , aber das muss natürlich MC-Pferd sein, das ist hier sehr wichtig. Ansonsten war's das. Wenn Sie alle relevanten Texturen hier haben, ist es so ziemlich genau das, was Sie brauchen. Sie benötigen dies nur als Artikelmodell und benötigen überhaupt kein anderes Artikelmodell dafür. Also das ist ich meine, das ist so ziemlich schon. Ich meine, ich denke, lass uns einfach sehen, ob es in Minecraft über Finanzen funktioniert, wie Sie sehen können, wurde das kalte Personal dem Spiel hinzugefügt und es sieht häufig, erstaunlich aus. Sie können es also grundsätzlich hier umschalten. Und es sieht gut aus in Ego-Person und Third-Person. Ich mag besonders die Goldwarteschlange, im Grunde wie der gesamte Block , der in winziger Form vorhanden ist. Ich weiß es nicht. Ich mag das Aussehen wirklich, also ja, so einfach ist es so einfach, Minecraft ein benutzerdefiniertes Artikelmodell hinzuzufügen , oder? Wieder einmal ist die Herstellung des Modells natürlich, was ist schwierig? Man muss nur ein bisschen mit Block Venture herumspielen . Daran wirst du dich ziemlich schnell gewöhnen. Ich habe das Gefühl, dass dies ein sehr einfaches Programm ist , um einen Halt zu bekommen, und ja, Gummi, 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. 79. (Fortgeschrittene): Oder ich komme zurück zum Futterkurs für 118. In diesem Vortrag werden wir ein benutzerdefiniertes Botha Minecraft hinzufügen. Ein Kunde war also eigentlich ziemlich einfach. Gehen wir in unsere Klasse für mehr Gegenstände und lassen Sie uns einfach das Kobaltpersonal überschreiben. Und das wird der alte Unterstrich-Bogen sein. Und dann das Gleiche hier und der Name Kobaltbogen. Und dann wird dies ein 0 Item sein. Jetzt werden unservierte Stapel 2, 1, 0 tun, ist, dass wir tatsächlich die Haltbarkeit setzen , sagen wir 500. Es wird ein bisschen besser sein als der normale Bogen. Und für den Kunden müssen wir die benutzerdefinierten Artikeleigenschaften tatsächlich erneut festlegen. In unserer Item-Eigenschaften-Klasse werden wir einen privaten statischen Void-Aufruf durchführen und alle Methoden durchführen, die einen Elementparameter aufnehmen, genau hier. Lassen Sie uns also auch an der Artikelklasse arbeiten und sicherstellen, dass wir Net Minecraft world item, item auswählen. Und dann klicken wir mit der mittleren Maustaste auf die Item-Eigenschaften-Klasse hier. Du gehst im Grunde rein und wir werden im Grunde diese beiden wählen, nennt das Register, den Bogen und das Register beim Bot im Grunde genommen wenn ein Cabibbo für sie ist. Wählen Sie also STRG C , um Steuerelement V zum Einfügen zu kopieren. Und wir brauchen nur Artikeleigenschaften dot add vor dem Register hier. Und dann werden wir die Gegenstände ändern, die sich vor dem Gegenstand beugen, der hier der Parameter ist. Dann geht's los. Und jetzt können wir im Grunde so viele machen, wie wir wollen. Wir nennen einfach „Bogen machen“ mit mehr Gegenständen für welche Schüssel das bekommt. Und wenn du dann mehrere Bälle hast, rufst du das einfach mehrmals an. Und dann werden sie, wir fügen die spezifischen Artikeleigenschaften und ziehen zu diesem Gegenstand. Und dafür brauchen wir im Grunde ein bestimmtes, naja, spezifisches Artikelmodell. Lasst uns zuerst bei der Übersetzung gleich hier sein, nur damit wir sie haben. Nun, unterstreicht Bogen und Kobaltbogen auch hier. Und wenn es um die Artikelmodelle geht, unsere Kopie über steht Ihnen unsere Kopie über alles hier natürlich im GitHub Repository oder einer Einzelperson zur Verfügung. Du siehst, dass wir tatsächlich vier von ihnen brauchen. Also die Kobaltschale, wir schon einmal mit Artikeleigenschaften gesehen haben ist dies das Standardmodell, das es braucht, oder? Es ist also nur diese eigentliche Textur hier. Und dann, wenn es im Grunde genommen überschreibt, wenn man als eins zieht. Wenn wir also gerade ziehen, fangen wir an, dieses Modell zu bekommen. Ziehen Sie also 0, wenn die Stange etwa 65 Prozent fertig ist, wechseln wir zu einem ziehen. Und wenn es zu 90 Prozent erledigt ist und wir zu bereit wechseln werden. Und ja, das ist, ich meine, das ist so ziemlich die allgemeine Idee. Eine interessante Sache hier ist , dass der Elternteil in der Umfrage tatsächlich der Kobalt-Bot selbst sein wird . Sie können also sehen, dass McQs Item Cobalt Bot das übergeordnete Element ist. Und dann zeigt es wieder nur noch einmal auf eine andere Texturen. Aber das ist wirklich alles, was es dazu gibt. Nichts zu verrückt. So können wir jetzt auch die Texturen hier hinzufügen. Das werden auch vier von ihnen sein. Sie sind schon her, und das ist eigentlich alles, was wir wirklich tun müssen. Das große Ding ist wieder einmal das tatsächliche Hinzufügen der Artikeleigenschaften. Da wir das bereits mit dem Datentablet gesehen haben, sollte dies hoffentlich nicht zu verrückt oder zu verwirrend für Sie sein . Und das ist so ziemlich alles, was wir wirklich tun müssen, um eine benutzerdefinierte Rolle hinzuzufügen. Oh, mal sehen, ob es funktioniert. Oder Phronese zurück und Mikrolinsen. Sieh dir an, dass der Bot erfolgreich zum Spiel hinzugefügt wurde. Und wie Sie sehen können, wenn ich es fotografiere, ändert sich auch die Textur für alles, was perfekt funktioniert, richtig, So einfach kann es sein Minecraft ein benutzerdefiniertes Board hinzuzufügen. Und das ist 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. 80. (Fortgeschrittene) Benutzerdefinierte Befehle: Alles klar, willkommen zurück den vierten Kurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Befehle hinzufügen. Schreiben Sie benutzerdefinierte Befehle oder eine sehr interessante Sache. Jetzt fangen wir an, während wir weitermachen. Dies ist also eine der Vorträge, in denen wir anfangen , den Code zu kopieren. Obwohl wieder einmal alles im Code im GitHub-Repository und einer Einzelperson verfügbar ist . Also keine Sorgen, das solltest du finden können. Keine Sorge. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens Befehl. Und dann erstellen wir sofort ein anderes Ereignis namens Event. Und wir werden uns das Event in nur einem Augenblick ansehen . Zunächst werden wir uns das Kommando 1 ansehen, und wir werden zwei Klassen kopieren. Ich werde die Klassen tatsächlich in ihrer Gesamtheit kopieren . Das ist also der Befehl set home und der Befehl return home, und ich werde es erklären. Der Befehl wird also im Grunde mit diesem Dispatcher erstellt. Also machen wir Dispatcher Dot Register und dann haben wir einige Commander-Literale. Was bedeutet das Home Set, was machen wir hier und führen dann aus? Nun, das bedeutet, dass im Grunde genommen das, was wir in die Konsole stecken müssen , Slash Home Set ist. Dann wird der Befehl ausgeführt. Dies ist also der eigentliche Befehl, 0 dann gesetzt. Das ist die allgemeine Idee. Wenn wir uns Homer Churn anschauen, können wir sein Zuhause sehen und dann zurückkehren. Also für zu Hause, Set, sagte sein Zuhause, ihre Rückkehr nach Hause ist Homer an der Reihe. Das sollte nicht zu verrückt sein. Dies sollte ziemlich einfach sein. In der Tat ist es eine sehr komplexe Sache, Ihre eigenen benutzerdefinierten Befehle zu erstellen . Also würde ich sagen, dass dies etwas ist bei dem Sie, wenn Sie eine ganz bestimmte Sache haben , wenn Sie eine ganz bestimmte Sache , die Sie mit Ihrem Kommando machen möchten , viel versuchen und irren müssen . Was ich dieser Befehlsklasse wärmstens empfehlen kann, klicken Sie mit der mittleren Maustaste darauf und Sie werden alle Vanilla-Befehle sehen , die Ihnen zur Verfügung stehen. Dies ist also die beste Ressource, um zu sehen, welche Arten von Befehlen es gibt. Und ich empfehle dringend , einen Blick darauf zu werfen. Und ich werde dir vorher sagen, dass sie wirklich kompliziert sein werden, oder? Sogar so etwas wie der Kill-Befehl, das ist wahrscheinlich einer der einfachsten , die man sich ansehen kann. Aber wenn du dann auf so etwas wie den Glute-Befehl gehst, meine ich, sieh dir das an, oder? So wie das ist, das sind so viele Dinge, die hier drin sind. Und es ist so kompliziert, dass man auch hier sehen kann, oder? Dies ist übrigens die eigentliche Registrierung des Command Dispatchers. Also kannst du es sehen , also ist es wie Slash-Beute und dann okay, was machst du? Das Fischwerkzeug kann jemanden haben, es gibt so viele verschiedene Dinge obwohl es hier erforderlich ist. Sie können also fragen: Hey, das ist die Person, die zu diskriminieren versucht, das richtige Maß an Erlaubnis zu haben, nicht und so weiter. Sehr zu empfehlen. Werfen Sie einen Blick darauf genauer. Wenn Sie etwas haben, das Sie besonders wollen. In unserem Fall werden wir nur einige Daten in den persistenten Daten des Spielers hier speichern . Wenn wir die Heimatposition einstellen, sagen wir im Grunde nur: Hey, das bringt die drei X -, Y - und Z-Koordinaten in einen Bereich in die persistenten Daten. Die Daten sind nur ein zusammengesetztes Tag hier auf dem Player. Und ich stelle das einfach unter MC Kurs MOD Composite. Das ist so ziemlich genau das. Und dann werden wir einen Erfolg mit Set Home an einer bestimmten Position schicken , auf die wir es gerade eingestellt haben. Wenn es um die Rückkehr nach Hause geht, ist das Kommando etwas komplizierter, aber nicht wirklich. Wir haben eine hat Homepause Boolean, was im Grunde nur sagt, hey ist die Länge dieses GetInt-Arrays hier, nicht 0. Denn wenn es 0 ist, dann wissen wir, okay, wir haben noch keine Position. Es ist nicht 0, dann wissen wir, okay, wir haben eine Heimatposition, die im Grunde genommen festgelegt wird. Und dann teleportieren wir den Spieler einfach hier in diese Position. Und im Grunde gesagt: Hey Spieler, kehre nach Hause zurück. Und hier senden wir einen Fehler ohne dass keine Home-Position festgelegt wurde. Und das ist so ziemlich alles , was wir hier wirklich für die beiden Befehle tun müssen . Sie können sehen, dass ich diesen Befehl im Grunde genau hier mit der Git-Quelle aufrufe . Es nimmt einen Befehlsquellenstapel auf. Und was sehr wichtig ist, ist, dass es eine Befehlssyntaxausnahme auslöst, da Sie Spieler oder Exception bekommen sehen können. Das ist hier also irgendwie wichtig, oder? Das ist also im Grunde alles, was wir in Bezug auf die Befehle benötigen. Was wir jetzt brauchen, ist eine Event-Klasse. Wir klicken also mit der rechten Maustaste auf das Ereignispaket , das wir Mod-Ereignisse erstellt haben. Und wir werden in einem späteren Vortrag etwas detaillierter über Ereignisse sprechen . Aber Ereignisse sind im Grunde etwas, um das man wirklich einen ganzen Kurs erstellen könnte. Das ist auch zehn Stunden lang. Aber wir werden nicht zu sehr ins Detail gehen. Wir werden nur oben sagen, dass der Mod der Klasse hinzugefügt wird, um sicherzustellen, dass dieser ausgewählt ist. Und dann löschen wir die Klammern, diesen Eventbus-Abonnenten . Und dann wollen wir Klammern mit einer MOD-ID einsetzen, was natürlich MC-Kurse MOD ist. Und dann wollten wir Methoden anstreben. Ich werde beide kopieren, aber ich werde auch erklären, dass es sehr wichtig war, dass über sie öffentlich, statisch, nichtig sein müssen , der Name ist eigentlich nicht das, was zählt. Worauf es ankommt, ist der Parameter hier. Dies ist also das Registerbefehl-Ereignis und dies ist das Spielerereignis, Klon öffentlich statisch ungültig sein muss, und sie müssen die Anmerkung beim Abonnierereignis haben. Das ist sehr wichtig. Vergiss das nicht, sonst wird es nicht funktionieren. Es ist sehr wichtig. Die eigenen Befehle registrieren Methode, es wird ziemlich selbsterklärend sein. Ihre Vorführung eines neuen zu Hause kommt heraus und ein neues Rückkehr-Home-Kommando, und registrieren es dann einfach bei diesem Ereignis. Dieses Ereignis wird übrigens auch im internen Handler der Schmiede verwendet. Dies sollte also genau hier sein, wo die Futterbefehle im Grunde gesetzt werden. Sie können sehen, dass dies der Futterbefehl mit all dem Haufen von Sachen ist. Wir können also sehen, dass es im Grunde genommen das TPS, die Track-Entität generiert. Dimensionen und der Befehl Modusliste. Dies sind einige Befehle, die in diesem Fall besonders zu fälschen sind . Und Sie können auch sehen, dass das Register Commands Event hier sehr interessant ist. Zuallererst heißt es, dass die Veranstaltung auf dem Minecraft-Schmiede-Event-Bus abgefeuert wird . Also werde ich nur ganz kurz erklären, was zur Hölle los ist. Nun, wir haben verschiedene Ereignisse. Wenn ich tatsächlich auf dieses Ereignis klicke und dann Strg H drücke, können Sie sehen, dass dies alle Ereignisse sind, die uns in Forge zur Verfügung stehen. Und wir können dies sogar erweitern und dann werden wir noch mehr haben , weil es Ereignisse gibt, die aus Ereignissen stammen, die von Ereignissen abgeleitet sind und so weiter und so weiter. Sie können also sehen, dass dies eine Menge Ereignisse sind. Das, was ich sage, könnten Sie wahrscheinlich einen zehnstündigen Kurs mit allen Ereignissen selbst machen . werden wir nicht machen. Wie ich schon sagte, das war nur, weißt du, zu beachten. Und die Idee ist, dass einige Ereignisse von Minecraft-Schmiede ausgelöst werden, einige Ereignisse werden vom Eventbus abgefeuert. Lassen Sie es uns vorerst einfach dabei behalten. Da ist nichts zu Verrücktes los. Ein Beispiel dafür werden wir auch in einem späteren Vortrag sehen . Vorerst werden wir nur sagen, okay, Ereignisse ziemlich verrückt, aber auch ziemlich cool können sehr interessant sein. Was ist jetzt die zweite Veranstaltung hier? Nun, im Grunde, wenn ein Charakter stirbt, wollen wir die hartnäckigen Daten des gerade verstorbenen Spielers übermitteln und im Grunde an den neuen Spieler kopieren. Dies soll also nur sicherstellen, dass die Daten nach dem Tod dort bleiben und dauerhaft bleiben. Das ist die allgemeine Idee hier. Aber ansonsten ist das so ziemlich alles, was wir in diesem Modus machen Event-Klasse. Jetzt müssen wir es nirgends anrufen hier mehr Eventbus-Abonnenten hinzufügen. Dies wird im Grunde schon als jede Methode bezeichnet, die bei einem Abonnierereignis darüber liegt, im Grunde genommen eindringt und dann auch kalt wird. Also komischerweise ist das alles, was wir wirklich brauchen, um den Befehl hinzuzufügen, wie gesagt, der gesamte Code steht Ihnen in einem GitHub-Repository und einer Einzelperson genauso gut zur Verfügung. Empfehlen Sie dringend, einen Blick darauf zu werfen. Ich empfehle dringend, einfach damit herumzuspielen offen für Experimente zu sein. Und um der Fertigstellung willen, lasst uns erhalten, dass es funktioniert. Ordnung, er findet uns wieder in Minecraft, also fangen wir einfach an, Slash Home zu tippen. Und da gehst du. Wir lassen es uns schon vorschlagen. Versuchen wir zuerst nach Hause zurückzukehren , was nicht funktionieren sollte, oder? wurde keine Home-Position festgelegt. Das ist vollkommen in Ordnung. Jetzt lass uns zu Hause sitzen. Stellen Sie die Position an dieser Stelle ein. Mal sehen, nur um sicherzugehen, ja, das klingt ungefähr richtig, das ist ziemlich gut. Jetzt gehen wir woanders hin. Und wenn wir nicht sagen: Ohm, kehren Sie zurück, sind wir nach Hause zurückgekehrt. Das ist echt gut. Lasst uns jetzt einfach aus einer Höhe fallen. Mal sehen. Das wird mich umbringen und dann werde ich antworten und dann werde ich sagen, Rückkehr funktioniert auch völlig gut. Und dann lass uns auch einfach von dieser Welt verschwinden, retten und kündigen. Und dann lasst uns wieder in die Welt eintreten. Und dann mal sehen, ob das noch funktioniert. Und das sollte natürlich, denn was wir in den persistenten Daten und der Verbindung und BTEs für die Entitäten gespeichert und der Verbindung und BTEs für die Entitäten haben, werden im Grunde darauf gespeichert. Lasst uns einfach noch einmal davonfliegen und dann nach Hause zurückkehren. Und natürlich funktioniert es immer noch. Alle Fälle sind also grundsätzlich erledigt und hier funktioniert alles. Das ist ziemlich cool. So einfach kann es sein, einen Befehl hinzuzufügen. Wenn Sie noch einmal etwas ganz Besonderes im Sinn haben, müssen Sie nur damit herumspielen. Ich helfe nur unter bestimmten Umständen. Wenn du zum Beispiel Hey sagst, möchte ich befehlen, dass das XYZ und einfach verrücktes Zeug macht. Mach wahrscheinlich nicht nur den gesamten Befehl für dich. Du musst nur ein paar Sachen ausprobieren und damit herumspielen. Und ich bin mir sicher, dass Sie es schaffen können, den Befehl zum Laufen zu bringen , wenn Sie wirklich daran arbeiten, oder? Aber das war's für diesen Vortrag 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. 81. (Fortgeschrittene): Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir uns ansehen, wie Sie benutzerdefinierte Partikel auf der Welt spawnen können . Insbesondere werden wir uns das für den schnellen Block ansehen das für den schnellen Block ansehen oder im Grunde eine bestimmte Methode hinzufügen. Und das nennt man hier die Animate-Tick-Methode. Und dann kopiere ich tatsächlich den Inhalt davon. Dies wird jedoch in nur einem Moment ziemlich selbsterklärend sein , wir haben im Grunde eine Chance. Und dann werden wir sagen: Hey, wir wollen einfach jedes Mal den Zufallsfloat. Und es gibt allgemeine Ideen, die wir haben. Wir haben mal die Chance, Partikel zu spawnen , und jedes Mal sollten es hier tatsächlich 65 Prozent betragen. Weil wir im Grunde prüfen, ob der niedrigere als der nächste Float und ein Float zwischen 01 liegen wird oder nicht. Das ist also die allgemeine Idee. Und so kann man im Grunde ein Teilchen spawnen, oder? Sie brauchen also ein Level und das muss diesmal auf dem Kunden sein , das ist sehr wichtig. Und diese feindliche Methode zum Ankreuzen wird nur auf den Kunden aufgerufen. Das ist also perfekt für uns. Und wir sagen einfach Add Partikel, den Partikeltyp, den wir hinzufügen möchten, die Position , rechts, x, y und z und dann die Geschwindigkeit in x-Richtung, die Geschwindigkeit in y-Richtung und die Geschwindigkeit im Z Richtung. Und wenn die Partikeltypen sind, können Sie sehen, dass hier eine Menge Sachen drin sind, die Sie im Grunde spawnen können. In diesem Fall nehmen wir einfach den Rauch. Sieht eigentlich irgendwie cool aus und es wird völlig gut für uns funktionieren. Und Sie können sehen, dass ich auch die Windgeschwindigkeit habe im Grunde genommen, wissen Sie, ein bisschen Zufall drin , damit es irgendwie ungleichmäßig aussieht und es wirklich cool ist, wird tatsächlich aussehen echt verdammt genial. Und ja, so einfach ist es eigentlich ziemlich so einfach. Sie brauchen also nur ein Level und Sie müssen beim Kunden sein. Dies ist wieder einmal nicht für benutzerdefinierte Partikel an und für sich selbst gedacht. So können Sie gerade bestimmte Partikel tatsächlich irgendwo spawnen, wo Sie Zugriff auf eine Levelvariable haben und im Grunde überprüfen , ob Sie auf dem Client sind . um die Partikel auch zu spawnen. So einfach ist es also ziemlich so einfach. Um der Vollendung willen, schauen wir mal, ob es funktioniert. Alles klar, wir fantasieren in Minecraft, also lass uns den SPD-Block runter setzen und los geht's. Der Rauch steigt bereits davon auf. Es funktioniert also alles vollkommen gut. Du siehst es. Und natürlich können Sie das anpassen. Sie können die Geschwindigkeit einstellen , die entsteht, wenn Sie sogar einstellen , wo sie in Bezug auf den Block spawnt. In all dem kann das im Grunde nur geändert werden. Und Sie können natürlich auch den Typ der Partikel ändern . Aber das ist trotzdem ziemlich cool. Ordnung, und das ist schon für diesen kurzen Vortrag 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. 82. (Fortgeschrittene) Benutzerdefinierte Fortschritte: Oder ich komme zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft benutzerdefinierte Fortschritte hinzufügen . Das Hinzufügen von Fortschritten erfolgt also ausschließlich in JSON-Dateien. Also das im Datenordner, im MC-Kursordner. Und ich werde nur meine 20 Fortschritte kopieren , die sich hier bereits vorbereitet haben. Und ich zeige Ihnen eine großartige Ressource, mit der Sie Ihre eigenen Fortschritte grundsätzlich gut lesen können. Und du siehst, also haben wir zwei von ihnen, MC-Kurs Jason und eine Dowsing Rute JSON. Das erste, was Sie bemerken werden, ist, dass es ein Display gibt. Dies ist nur der Gegenstand oder While-Block in diesem , der im Grunde genommen als Symbol dieses Fortschritts angezeigt wird. Jetzt hast du einen Titel, Beschreibung sollte alles sinnvoll sein. Sie können den Rahmen wählen , ob er bei einem Toast angezeigt wird oder nicht. Dies ist also, ob oben rechts auf dem Bildschirm angezeigt oben rechts auf dem wird, ob eine Analyse chatten soll oder nicht. Und dann hat dieser insbesondere einen Hintergrund, der sehr eigenartig ist, weil er tatsächlich auf MC-Kerne Texturen verweist, loc, 0, Ballunterstrich Block PNG, aber auf die gesamte ähnliche Ordnerstruktur hier. Und der Grund dafür dass dieser kein Elternteil hat. Und wenn Sie Fortschritte machen, hat es keinen Elternteil, dann wird im Wesentlichen eine neue Registerkarte im Fortschrittsfenster erstellt . Dies ist sehr wichtig, wenn Sie zuerst in den Dowsing-Modus wechseln, können Sie sehen, dass Eltern hier MC-Kerne, MC-Kerne sind und keinen Hintergrund haben. Das ist also sehr eigenartig, war in diesem Fall sehr interessant. Die Idee ist also, dass Sie, wenn Sie einen Hintergrund wählen, wenn Sie keinen Elternteil haben, einen Hintergrund benötigen, da dies wenn Sie einen Hintergrund wählen, wenn Sie keinen Elternteil haben, im Grunde der Hintergrund Ihrer Registerkarte sein wird, dann sind die Kriterien wirklich interessantes Ding. Jetzt werden wir keine benutzerdefinierten Kriterien erstellen , da dies viel komplizierter ist. Wir werden nur die Bestandsänderung verwenden. Sobald ich also mindestens ein Kobalt-England in meinem Inventar habe , wird mir dieser Fortschritt gegeben. Und dann brauche ich für die Dowsing Rute im Grunde nur eine Dowsing Rute und dann werde ich auch diesen Fortschritt haben. Das ist so ziemlich alles, was es wirklich gibt. Um der Vollendung willen, schauen wir einfach, ob es funktioniert. Oder er findet uns zurück und Minecraft. Also lasst uns einfach sehen, ob ich mir einen Cobol-Barren besorge. Sie gehen MC Course Mod. Und ich kann auch sehen, dass die Macht in den Kobalten liegt. Das ist ziemlich cool. Und jetzt sollte ich das auch hier finden können . Wir können den MC-Kurs-Mod als Fortschritt sehen. Der Name Ihres Aufstiegs hier wird also immer der erste Fortschritt sein , den Sie im Grunde genommen ohne in C erkennbar sind, wir haben auch den Hintergrund, da Kobalt Ihr und dann siehst du die zweite, die Rute der Rute. Wenn es nicht funktioniert, mag die Rute dich nicht. Nun, das ist wenigstens das, was mir gesagt wurde. Und wenn ich das nur kriege und du siehst, bekomme ich auch die Rutenvorwärtsbewegung genau dort. Das ist also ziemlich cool. Alles in Betracht gezogen. Und so einfach ist es eigentlich, sie im Grunde hinzuzufügen. Nun, wie ich bereits erwähnt habe, ist Miss old GitHub IO noch einmal eine großartige Ressource für die Weiterentwicklung des Generators, sehr empfehlenswert. Sie können sich grundsätzlich alle Anforderungen ansehen , die es gibt. Wir können Sie noch einmal sehen, hier sind Bedingungen. Dann können wir dies grundsätzlich in verschiedene Dinge ändern. Sagen wir zum Beispiel, wir haben uns beim Inventar noch einmal geändert. Und dann können Sie grundsätzlich verschiedene Bedingungen hinzufügen. Sie können Spieler-Slots und Gegenstände sehen. Es gibt eine Menge Sachen, die du hinzufügen kannst. Ich empfehle dringend, damit herumzuspielen oder einen Blick auf die Weiterentwicklung von Vanille zu werfen. Auch Möglichkeit auf GitHub zu gehen und nach Weiterentwicklung aus verschiedenen Modi zu suchen. Das funktioniert auch völlig gut. Aber es gibt viele Möglichkeiten , die Sie im Grunde kaufen können, aber das ist es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies nützlich und die Versicherung der neuen JSON-Dateien ist natürlich im GitHub-Repository oder einer Einzelperson verfügbar , naja, und wir sehen uns in der nächsten Vorlesung. Also ja. 83. (Fortgeschrittene): Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft benutzerdefinierte Gemälde hinzufügen. Das Hinzufügen benutzerdefinierter Malmotive ist eigentlich ein ziemlich unkomplizierter Prozess. zunächst im MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens Painting. Und drinnen werden wir eine neue Klasse schaffen, die als moderne Malereiklasse bezeichnet wird. Jetzt wird die Klasse für mehr Gemälde in erster Linie ein öffentliches statisches, endgültig verzögertes Register von Typ-, Motiv- oder Malunterstrich-Motiven haben ein öffentliches statisches, endgültig verzögertes Register von Typ-, , das dem verzögerten Register entspricht , das erstellt oder fügen Sie Register hinzu, diese Maltypen sind mein MC-Kursmodell, diese Modell-ID. Und noch einmal, ob es sich um 80 drittes Register handelt, gibt es auch eine öffentliche statische Leerstellen mit einem Auge Ereignisbus, Ereignisbus-Säureperimeter und dann Malmotiven, die sich registrieren im Eventbus vorbeifahren. Die Register-Methode ist, wenn es kalt ist, Sie befinden sich unter dem Modell, sodass sich mehr Gemälde registrieren und dann direkt dort im Event-Bus vorbeifahren . Das ist großartig. Und jetzt müssen wir nur noch die Bilder registrieren. Und das wird durch ein öffentliches statisches endgültiges Registry-Objekt vom Typ Motiv geschehen . Dies wird Pflanze genannt, und dies entspricht Malmotiven, dunklem Register. Der Name wird geplant sein. Und der zweite Parameter ist ein Lieferant für neues Motiv. Und die Parameter werden 16 sein. 16, und ich werde erklären, was das sind. Also die Motivparameter, ich kann mit der mittleren Maustaste klicken und du siehst, dass dies die Breite ist und das ist die Höhe. Der erste Parameter ist also die Breite, der zweite ist die Höhe. Dies ist im Grunde in Pixeln angegeben, aber so groß ist Ihre Malerei. Und nur um der Vollendung willen werden wir hier tatsächlich drei Bilder machen. Wir werden auch den Wanderer haben, das Wunder sein wird. Und dieser wird Sonnenuntergang sein. Das ist übrigens wahrscheinlich mein Favorit, aber das werden wir in einem Moment sehen. Bei jedem Sonnenuntergang haben sie vor. Und das ist auch Sonnenuntergang. Und dies ist die eine Reihe ist 32 hoch und die Empfindlichkeit ist 32 breit. Nun ist die Frage, nun, wo sind die Bilder in unser MC-Kurspaket eingeschrieben werden sollen, Einfügen des Texturen-Ordners. Wir werden nur eine neue Mappe namens Gemälde haben. Und ich werde das tatsächlich kopieren , weil der Inhalt bereits da drin ist. Das ist die Pflanze, der Sonnenuntergang und das Wunder Sind diese alle verfügbar sind. Ich möchte jedoch, dass Sie die Aufmerksamkeit auf die Credits lenken, da die Bilder auch von Platin G7 gemacht werden. Stellen Sie einfach sicher, dass wenn Sie diese in einem öffentlichen Repository oder was auch immer im Curtis verwenden , auch hier und befolgen Sie die Lizenz , das im Grunde alles ist, was es gibt. Ansonsten steht es Ihnen grundsätzlich frei, sie zu benutzen. Und das ist eigentlich alles, was wir tun müssen, solange die Namen hier mit den Namen des eigentlichen Gemäldes übereinstimmen. Bilder genau hier, die Bilder. Das ist alles, was es dazu gibt. Also schätze ich mal sehen, ob es funktioniert. Oder ein Apotheker in Minecraft. Setzen wir uns einfach beim Gemälde hin und mal sehen, oh, da sind wir. Das ist Sonnenuntergang. Ich mag das wirklich und das ist, ich glaube das Wunder. Und lasst uns einfach sehen, ob wir uns auch planen lassen. Alles klar, los geht's. Wir haben alle drei Bilder , die wir hinzugefügt haben. Und ja, das ist es im Grunde. Im Grunde genommen fügen Sie die Bilder der Gemäldedrehung genau hier hinzu. Das ist also die allgemeine Idee, oder? So einfach ist es eigentlich, Minecraft benutzerdefinierte Gemälde hinzuzufügen . Und 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. 84. (Fortgeschrittene): Alles klar, Willkommen beim Schmiedekurs für 118. Und in diesem Vortrag werden wir einen Blick auf globale Luder-Modifikatoren werfen. Die erste Frage , die sich stellen könnte, ist was unsere globalen Beuten-Modifikatoren? Nun, sie sind eine Möglichkeit für uns zu ändern, Tabellen von beispielsweise Vanille-Lu-Tabellen zu verlieren , Dinge hinzuzufügen oder sogar theoretisch Dinge davon zu subtrahieren. Also könntest du etwas wegnehmen und Sachen hinzufügen. Ich empfehle dringend, nicht zu tief mit dem Subtrahieren von Sachen hineinzugehen. Unterbricht dies den Modus möglicherweise in Kompatibilität. Ihr Model spielt möglicherweise nicht gut mit anderen Mods, und das ist normalerweise nicht etwas, was Sie wollen. Was wir jetzt tun werden, ist in unserem Event-Paket, wir klicken mit der rechten Maustaste auf ein neues Paket namens Glute. Und statt dort werden alle unsere Brunnenmodifikatoren gehen. Das sind im Grunde Klassen. Jetzt werde ich diese kopieren und ich werde es erklären, während wir den Unterricht durchlaufen. Dies ist also die Nummer eins der Rutenstange im Iglu-Additionsmodifikator und der Modifikator Rübensamen aus Gras Addition. Zum Glück sollten die Klassen fast selbsterklärend sein , was sie tun. Aber im Grunde werden wir eine Dowsing Rute in Iglustruktur Truhe und einen Rübensamen im Gras hinzufügen Iglustruktur Truhe und . Wenn wir Blechbläser brechen, haben wir in diesem Fall eine Chance, wir tatsächlich eine 100-prozentige Chance haben, die Rübensitze zur Laute hinzuzufügen , die fallen gelassen wird. Aber was ist diese ganze Tortur, wird zuallererst, beide sehen sehr ähnlich aus. Der einzige Unterschied liegt derzeit in der Methode do apply. Für unsere Zwecke wir uns nur einen Blick auf die Wende der Sitze vom Modifikator der Gras-Edition. Und nun, ich erkläre einfach schnell die allgemeine Idee. Wir sehen, dass die Klasse von der Luteal-Modifikatorklasse ausgeht . Gehen wir einfach mit der mittleren Maustaste darauf ein. Oder Sie können auch die Strg-Taste drücken und mit der linken Maustaste darauf klicken, um im Grunde dorthin zu gehen. Und Sie können im Grunde sehen, dass wir hier eine bestimmte Sache haben , die die Do-Apply Methode ist, die im Grunde die wichtige ist. Glücklicherweise haben wir hier auch ein paar nette Kommentare. Wir können sehen, dass der Modifikator auf die erzeugte Beute anwendet. Und dann kannst du im Grunde Sachen hinzufügen. Das ist also echt cool. Die generierte Laute ist also nur eine Liste der Artikelsteuer. Dies würde fallen, wenn Sie nichts tun würden, und dann geben Sie die geänderten Beutetropfen zurück. Das ist also das wirklich coole Ding, aber deshalb können Sie, wenn wir hierher zurückkehren, in der Methode do apply sehen, aber ich füge einen neuen Item-Stack meiner Edition hinzu. Dies ist also der Artikel , den ich zu dieser Liste hinzufügen möchte und dann die Liste mit meinem hinzugefügten Artikel zurückgeben möchte, und dann wird mein Artikel gerade zu der Beuteliste hinzugefügt , die buchstäblich fallen wird. Das ist also echt verdammt cooles Ding, oder? Wenn wir das einfach tun würden , würden wir nichts ändern und es würde keine zusätzliche Belastung hinzugefügt. Wenn wir das machen würden. Richtig, dann würde mein Zusatz hinzugefügt werden. Was wir jetzt auch tun könnten, und ich empfehle dringend, dies nicht zu tun bedeutet das wirklich. Dann lies es, Lautenspieler. Und dann können wir einfach die gesamte Liste der Dinge löschen , die wir hinzufügen werden, und einfach unsere eigene Beute fallen lassen. Ich empfehle dringend, dies nicht zu tun, besonders nicht zu übertreiben. Denn noch einmal könnten Sie Ihre Kompatibilität mit Ihrem MOD und anderen Modi beeinträchtigen. Wenn sie sich auf bestimmte Blöcke verlassen bestimmte Dinge fallen lassen, dann könnten Sie Ihre Chance ruinieren , dass Ihre Mutter jemals in einen bestimmten mehr Peck gerät, wird sich dessen bewusst sein. Behalten Sie das im Hinterkopf. Lassen Sie mich hier eine Serializer-Klasse haben, was im Grunde eine verrückte Sache ist. Serializer für globale Beute Modifikator. Nun, wir haben nur eine Lese- und Schreibmethode, was im Grunde genommen die allgemeine Idee ist, dass sie Dinge aus einer JSON-Datei liest. Und Sie können sehen, was es im Grunde tut, ist dass es den Wert aus der Artikelregistrierung erhält. Also gehen wir im Grunde unsere Testamente durch und wir werden sagen, okay, wir haben ein, etwas in der JSON-Datei ist unter dem Zusatz definiert. Das werden wir in einem Moment sehen. Wir werden sagen, okay, gib mir das und gib mir dann den Wert davon. Holen Sie sich also im Grunde einfach das Element, das mit dem Zusatz verknüpft ist , den wir in der JSON-Datei definiert haben. Und dann werden wir hier einfach eine neue zusätzliche Änderung vornehmen . Und wir geben es für die Lese-Methode zurück. Und die Schreibmethode ist genau das Gegenteil, im Grunde genommen nur die eigentliche JSON-Datei erstellt. Jetzt ist das nicht wirklich erledigt, aber wir müssen das immer noch tun. Also behalte das einfach im Hinterkopf. Und das ist im Grunde alles, was die zusätzlichen Modifikatoren, das sollte fast immer ziemlich Boilerplate an und für sich sein . Ich meine, wenn du 20 Ergänzungen hast, nun, und du wirst hier 20 verschiedene Artikel haben. Und du wirst wahrscheinlich 20 verschiedene Gegenstände an den Konstruktor weitergeben , solche Sachen. Aber das ist nur normales Java-Wissen , das nicht zu verrückt sein sollte. Alles in Betracht gezogen. Wenn Sie dies jetzt haben, benötigen Sie auch eine andere Klasse im Event-Paket. Klicken Sie also mit der rechten Maustaste auf neue Java-Klasse, die Mod-Ereignisbus-Ereignisse Und da drinnen werde ich dies zunächst in weitere Eventbus-Events umbenennen. Da gehst du. Und dann da drin werden wir zuerst an der Spitze stehen müssen, wir werden genau diese Sache brauchen. Wir brauchen wieder einmal den Event Bus-Abonnenten von ad model.py mit Armada DMC Kursmelodie. Und dann müssen wir jetzt angeben der Bus der Multi-Bus ist, letzten Mal mit den Befehlen sehr wichtig Wir haben gesehen, dass dies im Grunde genommen der Futterbus ist. Jetzt ist dies der Modusbus wird in einer späteren Vorlesung etwas detaillierter in die Ereignisse eingehen in einer späteren Vorlesung etwas detaillierter in die Ereignisse . Aber vorerst werde ich nur die grundlegende Methode kopieren , die wir brauchen. Und das ist die Serialisierer-Methode des Register-Modifikators. Der Name der Methode spielt wirklich keine Rolle. Es ist nur wichtig , dass es statisch und öffentlich ist und hier oben eine Anmerkung zum Abonnieren von Ereignissen hat. Und dann ist das Ereignis hier im Grunde das Register-Ereignis, bei dem ADD globale Beute Modifikatoren, Serialisierer, registriert. Und hier sagen wir einfach: Hey, registriere einfach alle unsere Serialisierer. Und Sie können sehen, dass wir den Serializer registrieren , indem wir den Registrierungsnamen festlegen. Und dieser Name hier wird dann der Name der angrenzenden Datei sein , aus der sie im Grunde liest. Wo gehen unsere JSON-Dateien hin? Wir brauchen einen für jeden der verschiedenen Modifikatoren , die wir haben. Und dann brauchen wir auch eins für Futter, im Grunde weiß diese Schmiede, okay, welche Modifikatoren haben wir eigentlich in unserem Datenordner? Forge, klicke auf neues Verzeichnis namens „ Glute-Unterstrich-Modifikatoren“. Und dann kopiere ich tatsächlich die JSON-Datei. Dies wird als globaler Unterstrich, Unterstrich-Modifikatoren und nebeneinander sehr wichtig bezeichnet. Dies muss richtig geschrieben werden. Und dann müssen wir hier alle unsere Einträge definieren. Aber Sie können sehen, dass MC-Kerne Samen aus Gras und dann MC-Kurs Dowsing Rute und Iglu heißen, die auch die gleichen Namen haben wie hier mit unserer Mod-ID. Das sind also im Grunde die Einträge dort. Und dann in unserem Datenordner, MC-Kursordner, neues Verzeichnis namens Beute Unterstrich-Modifikatoren. Und ich kopiere die beiden JSON-Dateien noch einmal. Diese stehen Ihnen natürlich auch im GitHub Repository einer Einzelperson zur Verfügung. Sie können sehen, dass sie den Namen genau so haben , wie wir es hier definiert haben. Dies wäre ein angrenzendes, das angrenzende Ende im Grunde genommen. Und Sie können sehen, dass es einige Bedingungen gibt. Insgesamt sind die Lautenmodifikatordateien beide, sie sind an sich interessant, oder? Sie müssen also hier eine bestimmte Bedingung definieren. Aber in diesem Fall haben wir einen Beutentischausweis und wir sagen, dass die Lu-Tabellen-ID Minecraft-Truhen, Adlertruhe ist. Im Grunde wird also sozusagen die Iglu-Truhe gerade geladen. Dann nennen wir den Iglu-Thorst-Modifikator. Und wir machen dann die Do-Apple-Methode, zum Beispiel die gleiche Breite, von dem der Brenner genau hier aus Gras geht. Wenn also Gräser kaputt sind, können Sie sehen, dass dies eine andere Bedingung ist , sagen wir Eigentum, und dann prüfen wir nur, hey, ob es sich um einen Griff handelt oder nicht. Ok. Und wenn jetzt ein Grasblock im Grasblock kaputt ist, rufen wir die Methode do apply auf. Kurz bevor wir das generierte Unzüchtige fallen lassen, fügen wir unsere benutzerdefinierte Anspielung hinzu, unsere Ergänzung, die von hier aus eingelesen wird. Und dann geben wir das im Grunde zurück, während diese eine Sache, die wirklich cool ist, dass Sie sehen können, dass ich auch den Kontextpunkt getrandom verwenden kann, um im Grunde sicherzustellen, dass etwas nicht fallen Sie immer ab. Dies. In diesem Fall wird dies grundsätzlich nur 95% der Zeit hinzugefügt , 5% der Zeit. Es wird tatsächlich nicht hinzugefügt. Das ist also auch etwas ziemlich cooles, aber auch sehr einfaches Java-Zeug, einfach, oder? Und das ist eigentlich alles , was man wirklich braucht. Manchmal habe ich das Gefühl, dass die globalen Modifikatoren im Allgemeinen etwas klobig sind, ich würde sagen, als wären sie nicht , dass es viel Verrücktheit gibt. Weißt du, du musst sie hier definieren und du musst sie hier definieren. Und du hast hier ein definiertes und du musst sie hier teilen. Als gäbe es eine Menge Dinge, die du tun musst. Ich weiß es nicht. Es ist manchmal ein bisschen komisch, aber insgesamt bin ich mir sicher, dass er es schaffen wird. Ich werde auch in den Ressourcen verlinken werden die globalen Schleifenmodifikatoren oder die Forge Docs genau hier sein. Im Grunde genommen ist hier auch eine kleine Zusammenfassung, in der Sie sich im Grunde noch einmal ansehen können , wie diese funktionieren könnten. Es kann manchmal nützlich sein, weißt du, ich werde es einfach im Grunde auch verknüpfen, oder Fantasien in Minecraft. Also mal sehen, ob ich hier das Gras zerbreche, es sollte immer einen Rübensamen fallen lassen. Und da sind wir. Grundsätzlich haben wir eine 100-prozentige Chance, dem eigentlichen Beutentisch einen Rübensamen hinzuzufügen . Und nur um der Vollendung willen, schauen wir uns auch den Adler an. Alles klar, hier drin können wir sehen, dass es auch eine Rute im legalen Schach gibt. Das ist ziemlich cool, oder? Eine weitere Sache, die sehr wichtig ist. Wir müssen auch hier einen Typ in die JSON-Dateien hinzufügen, wo es uns zusätzlich zu 118 gibt. Sonst wird es nicht funktionieren. Dies ist einfach der Namespace, also Ihre MOD-ID und dann auch der Name der eigentlichen Datei. Es sollte also hier nichts Verrücktes geben, richtig, das wird es für diesen Vortrag genau hier sein. 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. 85. (Intermediate) Flüssigkeiten: Alles klar, Willkommen zum vierten Kurs für 118. Und in diesem Vortrag werden wir uns kundenspezifische Flüssigkeiten ansehen. Für kundenspezifische Flüssigkeiten haben wir eine große Einschränkung oder sagen wir , dass es eine Einschränkung gibt. Und das wird im Grunde sein, dass die Physik der Flüssigkeit, die Sie herstellen werden, dieselbe Physik sein wird wie Wasser. Und dann auch nicht nur das, sondern auch du wirst im Grunde nur dieselben Artikel wie Wasser haben, wenn du hineintauchst und so was. Aber das ist eine Einschränkung , die derzeit gut ist nicht einfach zu umgehen ist. Also hüte dich davor. Und ich werde auch den größten Teil des Codes kopieren. Wieder einmal steht Ihnen im GitHub Repository oder einer Einzelperson genauso gut alles zur Verfügung. Wir gehen jedoch durch und erklären dann das MC-Kurspaket, klicken Sie mit der rechten Maustaste auf ein neues Paket namens Fluid als sie sind. Ich werde die Modusflüssigkeitsklasse in ihrer Gesamtheit kopieren. Wir sollten einen Pfeil genau hier in den weiteren Gegenständen bekommen, wir müssen noch einen Honigeimer herstellen . Aber mach das ganz einfach. Also in der More Items Klasse jetzt, kopiere einfach den Honig-Unterstrich Eimer über die Schüssel . Und das ist natürlich ein Under, auf dem Unterstrich-Bucket. Und dann ist das ein Bucket Item. Und der erste Parameter wird Fluide modelliert , dass eine IV-Flüssigkeit. Da gehst du. Und das ist im Grunde das, was wir brauchen. Lassen Sie uns tatsächlich sofort die Übersetzung und solche Sachen hinzufügen , nur damit wir sie haben, damit wir sie nicht vergessen. Also ein Honig-Unterstrich-Eimer und der Eimer sie vor und dann ein Artikelmodell, denn das ist natürlich noch in normalem Artikel. Das ändert nichts. Also Honigeimer, sie zeigen nur auf eine normale Textur. Und dann fügen wir einfach auch die Textur hinzu, das Ego. Das ist also ziemlich nett. Werfen wir jetzt noch einmal einen Blick auf die Flüssigkeiten. Das erste, was wir haben , drei Ressourcenstandorte. Das ist also der Standort der Wasserressourcen, der fließende und das Overlay. Warum benutzen wir die? Stimmt's? Warum nutzen wir die Wasser- oder Ressourcenstandorte in Manila? Nun, weil sie grau sind und wir sie im Grunde färben können. Also haben wir diese Punktfarbe genau hier in den Eigenschaften, und dies ermöglicht uns grundsätzlich, unsere Flüssigkeit zu färben. Deshalb benutzen wir diese, weil sie bereits grau sind und total gut aussehen. Habe ein anderes Register sowie eine Registermethode. Wie Sie sehen können, muss diese Register-Methode natürlich aufgerufen werden. Nennen wir das auch. Es wird also genau hier das Punktregister der Modusflüssigkeiten mit dem Event-Bus geben. Dies ist etwas , das wir jetzt schon mehrfach gesehen haben . Und dann haben wir zwei verschiedene Flüssigkeiten. Eine von ihnen ist eine fließende Flüssigkeit, die Quelle hat, und die andere ist eine geschmiedete fließende Flüssigkeit. Diese Flüssigkeit fließt. Das ist unglaublich wichtig. Ich habe das mehrmals gesehen, dass die Leute es gerade kopiert haben und vergessen haben, dies zu ändern. Seien Sie sich bewusst, dass einer von ihnen Quelle sein muss und einer von ihnen fließen muss. Sehr wichtig. Dann brauchen wir eine vierte fließende Fluideigenschaften. Dies sind jedoch im Grunde die Eigenschaften, wie wird dies angezeigt und solche Sachen. Sie werden hier viele der gelben Overlays sehen und es heißt, hey, wir können das hier durch diese ersetzen. Und dann heißt es sogar, dass wir das sogar einfacher machen können indem wir es einfach so nennen. Tu das nicht. Wir müssen die Lieferanten hier richtig einsetzen. Andernfalls wird es nicht in der richtigen Reihenfolge geladen. Also müssen wir die Lieferanten verwenden. Das ist sehr wichtig. Das meiste Zeug, Dichte, Leuchtkraft, Viskosität, Das sind gut, schmieden Sie einfach Werte, die nicht wirklich etwas tun. Steigung, definieren Sie Entfernung und Levelabnahme. Diese tun jedoch etwas. Aber ich empfehle dringend, noch einmal mit den Zahlen herumzuspielen , wenn es um die Farbe geht. Es ist sehr seltsam, denn anstatt so zu gehen, würde man erwarten, dass ein Hexadezimalwert in RGBA fließt. Es ist eigentlich ein RGB, also ist das im Grunde die Farbe. Aber das sollte ziemlich einfach sein. Finden Sie einfach online einen Farbwähler und dann können Sie die Farbe grundsätzlich genau hier definieren. Wir brauchen auch einen Liquid Block genau hier. Also blockiere ich Honig, das ist ein bestimmter Block. In diesem Fall können wir sehen, dass dies ein neuer flüssiger Block ist und wir die Flüssigkeit genau dort hineingeben . Aber das ist die allgemeine Idee hier. Nichts zu verrückt. Ich denke manchmal, dass die Flüssigkeiten und die Schmiede Will sind. Es könnte etwas einfacher sein, weil es noch eine Sache gibt , die wir hinzufügen müssen. Eigentlich das ein paar Dinge, die wir hinzufügen müssen. In unserer MC-Kurse-Mod-Klasse in der Client-Setup-Methode wollten wir in der Client-Setup-Methode tatsächlich die Renderer-Ebene hier einstellen, und das wird für die Modellflüssigkeiten Dad und dann im Grunde den Block sein. Und das wird durchscheinend sein. Eigentlich. Wir wollen das Gleiche für das Klare und für den fließenden Honig tun , dann werden wir dies im Grunde transparent machen , damit wir es durchschauen können. Und das ermöglicht es uns im Grunde , den Alpha-Wert genau hier zu verwenden. Denk also so darüber nach. Und dann müssen wir auch ein Tag hinzufügen. Und dieses Tag ist glaubwürdig wichtig zu verschlüsseln , um zu wissen, dass es sich tatsächlich wie eine Flüssigkeit verhält. also im Minecraft-Datenordner, Tags, mit der rechten Maustaste auf neues Verzeichnis namens Fluids. Und da drin eine neue Datei namens Water dot JSON. Und jetzt wird der Inhalt so aussehen. Wir werden den Honig-Unterstrich fließend haben und da hineinfließen. Das sind die Namen der Welt, entweder die Quelle oder der fließende. Das ist sehr wichtig. Und dann sollten wir im Grunde fertig sein. Und dann lässt du dein benutzerdefiniertes Fluid zu Minecraft hinzugefügt und es wird ordnungsgemäß registriert. Also ja, das ist so ziemlich alles was wir brauchen. Also lasst uns nach Arbeiten schauen oder ob ich zurückgefragt wurde und Micro Tennessee, der Honigeimer wurde dem Spiel hinzugefügt und lasst uns ihn aufstellen. Da sind wir, der Honig ist auch da drin. Und jetzt sieht man, dass die Partikel normale Wasserpartikel sind. Und wenn ich darauf eingehe, sieht man, dass die Art von Overlay auch blau ist denn dies sind nur zwei dieser Einschränkungen , die ich erwähnt habe. Es ist einfach so, wie es sein wird. Manchmal zerbröckelt der Keks einfach so. Dennoch wurde Mikroben mit benutzerdefinierter Flüssigkeit zugesetzt. Das ist also ziemlich cool und 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. 86. (Intermediate): Alles klar, willkommen zurück zum Futterkurs für 118. In diesem Vortrag werden wir uns vorläufig mit Ereignissen befassen , die wir bereits in früheren Vorträgen gesehen haben. Wir haben die Mode-Ereignisbus-Ereignisse, und wir haben auch die Motor-Event-Klasse. Wenn also zwei Klassen, haben wir das Registerbefehl-Ereignis, das Player-Klonereignis sowie das Registrierungsereignis für die Serializer des globalen Anspielers gesehen das Player-Klonereignis sowie das Registrierungsereignis für . Und ich wollte nur kurz zeigen, wie das tatsächlich ist Ereignisse. Also zuallererst, wenn wir kein Ereignis haben oder Sie auch zweimal wechseln können und einfach hier eine Veranstaltung einsetzen. Und fügen Sie dann Nicht-Produktartikel ein. Und dann können wir das hier von Net Microforms Event war EPI. Und ich kann folgendes machen. Ich kann darauf klicken und Strg H. drücken Und ich habe dir diese bereits gezeigt, aber wir zeigen es erneut. Aber wir können alles erweitern, und das sind all die Ereignisse, die Anzeigen schmieden, in die wir uns im Grunde gut einbinden und dann Sachen machen können im Grunde gut einbinden und , wenn dieses Ereignis ausgelöst wird. Es gibt wirklich verdammte coole Dinge hier drin. Das erste, was ich erwähnen möchte , ist , dass Sie nicht sagen sollten, ich dieses Ereignis verwenden möchte, um dies zu tun. So funktioniert es nicht. Was du tun solltest ist, dass du sagen solltest, ich möchte, dass x passiert. Ich möchte in der Lage sein, eine weitere Pause einzulegen und eine versteckte Entität damit zu führen, und es sollte Feuer fangen. Okay, dann denkst du darüber nach. Nun, es kann ich Sachen in der Item-Klasse für den Nether-Block ändern . Das ist wirklich hart codiert, oder? Man muss den Quellcode von Minecraft ändern , funktioniert nicht wirklich. Gibt es eine Veranstaltung dafür? Ich weiß es nicht. Wie es wie ein Schadensereignis gibt, alles lebende Schadensereignis. Sieh dir das an. Das könnte nützlich sein. Sie können, Sie können darauf doppelklicken und dann hat es normalerweise eine sehr gute Beschreibung für die Ereignisse. Wir können sehen, dass das Ereignis lebender Schaden ausgelöst wird , kurz bevor Schäden auf das Unternehmen angewandt wurden. Dieses Ereignis wird also jedes Mal ausgelöst. Kurz vor einer Entität wird eine lebende Hand-Entität verletzt. Das ist die Sache, oder? Dieses Ereignis wird ausgelöst, wenn eine Entität in Lebewesen beschädigt wird tatsächlich verletzt oder in einer Schicht tatsächlich verletzt wird. Obwohl ich dringend vorschlage, einen Blick auf die Ereignisse zu werfen , die sich in der Klassenhierarchie befinden ist es wirklich unglaublich nützlich, nur mit einigen dieser Ereignisse vertraut zu sein, besonders wenn es kommt zu den Entitäten. Es gibt so viele von ihnen, dass Sie Entität-Ereignisse sehen können , und sie können ihnen einfach lebende Events öffnen und sich das dann ansehen. Es gibt Spielerereignisse. Es gibt so viele verschiedene Spielerereignisse, an die man sich anschließen und damit Sachen machen kann. Es ist ziemlich verrückt. Nun, es gibt eine interessante Sache und das ist die Brunnenbus-Klassifizierung. Wenn ich also hier mit der mittleren Maustaste auf diesen Bus klicke, sieht man, dass es einen Schmiedebus gibt und es einen MOD-Bus gibt. Nun, der allgemeine Kern ist das. Es gibt einige Ereignisse , die für Forge gefeuert werden, in einigen Ereignissen, die für einen Mod gefeuert werden. Dies ist die allgemeine Idee, über die Sie nachdenken müssen. Verkompliziere das nicht zu sehr. Ja, es ist natürlich noch viel mehr dran. Sie können sehen, dass wir das schon einmal gesehen haben, wo wir es haben, wir haben das schon einmal gesehen. Nun, das ist genau hier, oder? Sie können sehen, dass dies der MOD-Eventbus ist, aber genau das ist die Idee, oder? Sie haben den Modus-Ereignisbus und den Forge-Ereignisbus. Und je mehr Ereignisbus in diesem Fall zum Beispiel immer für die verschiedenen Register hier verwendet wird. Und Sie können hier sehen, wenn wir Microforms Dot Eventbus machen, dies ist dann der andere Ereignisbus. Dieser ist also der für die Schmiedeereignisse. Ich würde mir darüber keine Sorgen machen. Insgesamt können Sie normalerweise sehen, woher die Ereignisse stammen. Wenn Sie zum Beispiel das Register, das Ereignisregister sagen , wenn ich die mittlere Maustaste drücke, klicken Sie darauf und gehen Sie dann in die Registrierung, wenn Sie beispielsweise sehen können, dass dies jetzt das Busereignis im IE-Modus implementiert. Also kann ich Control H drücken und ich kann tatsächlich alle Ereignisse sehen, die von dort aus kommen. Das sollten also im Grunde alle von ihnen sein. Theoretisch gibt es vielleicht noch ein paar mehr, aber das glaube ich nicht. Ich denke, sie müssen das immer umsetzen. Das ist also so ziemlich alles, was es dazu gibt. Normalerweise sollten Sie also in der Lage sein zu sagen und was wir nur aus Gründen des Arguments tun, was ich tatsächlich kopieren werde ist eine Methode, die Ihnen natürlich alles zur Verfügung steht und das ist das Set Entität in Brand, wenn getroffen wird. Und das wird innerhalb einer weiteren Pause sein. Aber ich wollte dir hier nur in einem Beispiel zeigen, kannst du sehen, dass wir uns für das lebende Schadensereignis entscheiden. Und diese Veranstaltung hat ein paar Soft, oder? haben wir schon gesehen. Nun, wir haben die beschädigte Quelle und wir haben zum Beispiel auch den Betrag und auch das Lebewesen. Im Grunde genommen alle, die wir hier bekommen, und das ist ziemlich cool, weil wir im Grunde die Schadensquelle bekommen können. Wir können sagen, Hey, gib mir einfach die direkte Quelle, also den Spieler. Und dann können wir auch sagen, hol dir das Lebewesen, das getroffen wurde. Und dann setzen wir das einfach in Brand. Aber das ist echt cool. Dies bedeutet also, dass wir beispielsweise Vanilleartikeln zusätzliche Funktionen hinzufügen können zusätzliche Funktionen . Übertreibe es jetzt noch einmal nicht. Sei nicht, mach Cu2 nicht verrückt, oder? Wie ein Okay zu sein. Wenn ich also etwas mit einem anderen Stern treffe, wird die ganze Welt explodieren. Ich meine, wäre ehrlich gesagt ziemlich cool, aber versuche einfach nicht, Ereignisse zu beschuhlen , bei denen sie nicht passen. Zum Beispiel, wenn Sie sagen, oh, also könnte ich dies durch meinen benutzerdefinierten Artikel ersetzen. Und ich sagte: Ja, natürlich, als könntest du es immer noch sagen. Du kannst Mod-Elemente sehen. Zum Beispiel, Dowsing, Rod Dot bekommen. Und das wird auch funktionieren. Wenn ich jetzt etwas mit einer Dowsing Rute treffe , würde ich etwas in Brand setzen. Aber dann würde ich auch sagen : Warum würdest du das tun wollen? Sie müssen dies nicht in Ihren benutzerdefinierten Artikeln tun. Sie haben Zugriff auf den Quellcode. Ich könnte einfach in die Dowsing Rute gehen, oder? Eine Überschreibung einer Methode hier. Es gibt zum Beispiel die Methode des verletzten Feindes. Und ich könnte es einfach hier machen, genau wie wir es bei der Levitation gesehen haben, oder? Wenn wir also mit dem Schwebeschwert fertig sind, haben wir die dritte feindliche Methode außer Kraft gesetzt und einen Effekt hinzugefügt. Oder du könntest das theoretisch auch genau hier machen, oder? Ich könnte einfach sagen: Hey, lass uns das nehmen, weißt du, wenn das ein Schwebe-Sortierungsobjekt ist, dann bumm, lass uns gehen, lass es uns in Brand setzen oder lass es uns dazu bringen das Lebewesen zu schweben, das getroffen wurde. Natürlich kann ich das tun, aber wenn Sie Zugriff auf den Quellcode haben, gibt es keinen Grund, warum Sie es in einem Ereignis tun würden. Ich hoffe, dass ich eine Art allgemeine Einführung in Ereignisse war. Ereignisse können fast unmöglich zu meistern sein, da es so viele von ihnen gibt. Und Sie müssen nur sehen, ob es für Ihre spezielle Sache, die Sie tun möchten, eine Veranstaltung gibt und ob es großartig ist, probieren Sie es aus. Offen für Experimente. Ich kann einfach so ziemlich genau das, was ich für den Rest des Kurses sagen werde, denn es ist sehr wichtig, einfach ein paar Sachen auszuprobieren. Du hast immer die Kontrolle Z. Das ist das Tolle an der Programmierung. Du kannst immer einfach zurückgehen und sagen: Weißt du was? Nein, das war keine gute Idee oder, oh mein Gott, diese Funktionalität ist erstaunlich. Ich habe nicht erwartet, dass das passieren würde. Das ist also echt cool. Aber nur um der Vollendung willen sehen wir tatsächlich, naja, funktioniert das wirklich? Mal sehen, ob es so ist. Oder wenn ich sagt ein Minecraft, also mache ich noch eine Pause und lass uns einfach sehen, ob ich damit eine Entität getroffen habe. Da gehst du. Sie werden in Brand gesetzt und ein anderer Ziegelstein wird hier abgezogen. Das ist also wahnsinnig cool. Wie du siehst. Es funktioniert einfach. Und es ist, weißt du, so cool und interessant können die benutzerdefinierten Ereignisse an der Wand oder benutzerdefinierten Ereignisse an der Wand oder das Anschließen an Events im Grunde stimmen, und das wäre es schon 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. 87. (Fortgeschrittene): Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem kurzen Vortrag werden wir Forge aktualisieren und die Mappings aktualisieren. Im Laufe einiger Zeit, wissen Sie, werden neue gefälschte Versionen herauskommen. Sie können also direkt hier auf der Download-Seite sehen, wir haben an dieser Stelle 39 und 0,8 und wir verwenden, glaube ich, 39.05. Aber wir werden das in einem Moment überprüfen, aber wir können es hier auf die neueste Version aktualisieren. Und dann gilt das Gleiche für Pergament. Wir haben an dieser Stelle tatsächlich eine fertige Version, die 20, 21, 12 und 19 ist. Das ist also echt cool. Was wir tun können, ist, dass wir hier grundsätzlich zur build.gradle-Datei navigieren können . Und du siehst, dass wir 0.5 benutzen. Jetzt können wir also einfach einen 0,8 einsetzen. Wir müssen nichts herunterladen. Auch hier wird es im Grunde automatisch für uns erledigt. Und dann können wir dies in die 2021, 12 und 19 ändern , und dann die C-Version hier und dann 180 natürlich. Und dann für unsere Version meine ich, an diesem Punkt sind wir ziemlich weit Enol, also ist das alles wie 0.1.5, das ist in Ordnung. Und dann lasst uns das aufheben. Und dann können wir einfach die Load Gradle Änderungen hier treffen , und dann lassen wir das einfach für mich durchlaufen. Es hat nur drei Sekunden gedauert, aber das liegt natürlich daran, dass ich es schon gemacht habe und alle Sachen schon zuvor heruntergeladen haben. Für Sie wird es wahrscheinlich etwa ein oder zwei Minuten dauern, um das zu fummeln, und dann sollte alles gut aktualisiert, aktualisiert und in Ordnung sein. Es sollte hier keine Fehler geben. Was passieren könnte ist, wenn Sie das Spiel starten, werden Sie wieder viele Pfeile oder vielmehr viele Warnungen bekommen , die sagen: Hey, das funktioniert nicht, das funktioniert nicht, aber keine Sorgen. Lassen Sie uns das einfach durchgehen, damit Sie sehen können, dass alles funktioniert, solange es Ihnen nicht gut geht, ich meine, Build ist fehlgeschlagen oder solange Sie keine Mikrowelle bekommen, überhaupt nicht funktioniert, sollte es in Ordnung sein. Und Sie können genau hier sehen, dass die Mikrobe bereits anfängt. Und dann sollte es uns gut gehen. Hier sind wir. Da gehen wir mit Mikrofon 3908, alles funktioniert in Großbritannien. Das ist eigentlich alles, was ich Ihnen für diese Vorlesung hier zeigen wollte . Ich kann es wärmstens empfehlen, wenn Sie eine neue Version zur Verfügung haben. Ich meine, wenn Sie das in Zukunft sehen , sind Sie es natürlich, dann wird diese Version hier wahrscheinlich nicht die aktuellste sein. Und dann wird diese Version für Forge definitiv nicht die aktuellste sein. Deshalb habe ich die Seiten für Pergament und die Seiten zum Download noch einmal verlinkt die Seiten für Pergament , nur damit Sie im Grunde diejenigen mitnehmen können, wo die tatsächlichen Versionen, die Sie benötigen, wo auch immer das für diese Vorlesung hier sein würde, ich hoffe, Sie haben das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 88. (Fortgeschrittene) Benutzerdefinierte Block-Einheit: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir uns einen Block ansehen. Entitäten Für Blockentitäten sind im Allgemeinen Blöcke , denen eine bestimmte Funktionalität zugeordnet ist. Also sozusagen zusätzliche Daten. Und das könnte zum Beispiel eine GUI und ähnliches beinhalten. Bevor wir jetzt etwas programmieren, wollte ich eigentlich, naja, im Grunde ein bisschen Theorie durchgehen. Dafür werden wir das Brunnen-Tool ausbrechen , das am häufigsten verwendet wird , und das ist natürlich unser Punkt genau hier. Fangen wir einfach an. Die allgemeine Idee ist also, dass wir ein paar Dinge haben. Nummer 1 ist, dass wir eine Blockklasse haben. Jetzt haben wir das schon gemacht. Wir haben einen Cobol-Blaster für uns. Jetzt wird es für uns ein blauer Knopf sein. Unter blauem Hintergrund. Es sieht nicht so gut aus, also haben wir es, lies es genau hier. Aber die allgemeinen Ideen haben wir eine Blockklasse und das hat Verweis auf eine blockierte Entitätsklasse. Es gibt eine Block-Entitätsklasse, die wir natürlich in nur einem Moment erstellen werden. Und dies enthält Daten und Funktionen für einen bestimmten Block. Das ist die allgemeine Idee. In diesem Block wird Entitätsklasse erstellt. Wir können ein Inventar darin haben, und dass man dann ein Menü erstellen kann. Jetzt ist die Menüklasse sehr interessant, weil die Menüklasse, oder? Du siehst, dass es irgendwie getrennt ist, oder? Wir haben einen Bildschirm und einen Menükurs. Was nun sehr wichtig ist, ist, dass die Menüklasse beispielsweise Werte für die Entität mit einem Server und Client synchronisieren kann Werte für die Entität mit einem Server und Client synchronisieren . Das wird besonders in der nächsten Vorlesung sehr wichtig sein . Daher empfehle ich dringend, einen Blick auf diese Vorlesung und die nächste Vorlesung zu werfen, da wir am Ende dieser Vorlesung eine funktionierende Blockeinheit haben eine funktionierende Blockeinheit werden gut, Wir werden es in der nächsten Vorlesung etwa eine Milliarde Mal besser machen und einfach robuster. Das ist also nur etwas , das man beachten sollte. In der Menüklasse gibt es auch Slots für das Inventar. Sie können also sehen, dass dies dies im Grunde so visualisiert , dass wir diese violetten Rechtecke hier haben, irgendwie mit den Slots hier korrelieren. Und was sehr wichtig ist, ist, dass das Menü, in dem sich diese Slots befinden, völlig unabhängig von diesem Bild ist. Denn was Sie beachten müssen , ist , dass wenn wir uns die Bildschirmklasse ansehen, oder? Nur dieser Kunde, das ist buchstäblich nur dieses Bild. Ich kann das nicht mehr betonen. Im Grunde ist dies die Bildschirmklasse so ziemlich nur dieses Bild. Unabhängig davon, was dieses Bild ist, könnten die Slots überall dort sein, wo wir sie haben möchten. Also definieren wir tatsächlich ihre Position innerhalb der Menüklasse. Obwohl ich statt diesem, wissen Sie, im GUI-Jahr ein Bild von meinem Gesicht haben könnte, könnte ich ein Bild von meinem Hund haben. Du könntest alles hineinlegen, was du willst. Die Funktionalität würde immer noch funktionieren. Das ist also sehr, sehr wichtig. Jetzt zeigt es auch Dinge wie den Fortschritt an. Also dieser Fortschrittspfeil genau hier oder wie viel Kraftstoff noch im Kraftstoffschlitz übrig ist. Grundsätzlich kann das mit den Synchronizer-Werten gemacht werden , die die Menüklasse grundsätzlich für uns synchronisiert. Das ist der allgemeine Überblick darüber. Und manchmal kann das etwas verwirrend sein. Ich werde auch sagen, dass Blockentitäten definitiv ein fortgeschrittenes Thema sind. So haben wir an dieser Stelle die fortgeschrittenen Themen erreicht. Und an dieser Stelle ist es auch so etwas wie wenn man nicht so viel Java weiß, genau zu diesem Zeitpunkt ist es sehr gut. Es wird sehr schwer sein, Ihnen bei irgendetwas zu helfen , gehe ich im Grunde genommen davon aus, dass Sie es wissen, zumindest Zwischenwissen über Java im Grunde genommen. Also werde ich nicht sagen, Hey, das ist eine statische Methode. Du weißt, was eine statische Methode ist, solche Sachen. Ich gehe einfach davon aus , dass du das alles weißt. Seien Sie sich dessen bewusst. Nummer eins. Nummer zwei, ich werde auch einen Großteil des Codes behandeln , der Ihnen zur Verfügung steht, einschließlich dieses Spickzettel steht Ihnen auch im GitHub Repository Individualist und zum Download zur Verfügung. also keine Sorgen. Aber lass uns wieder zu intelligentem Dich wechseln und mal sehen , was wir sehen können. Also Nummer 1, was wir brauchen ist, dass wir eine neue Klasse brauchen. Wir benötigen ein neues Paket in R, Blockpaket, klicken Sie mit der rechten Maustaste auf neues Paket namens Entity. Dies ist jetzt das Block-Entitätspaket. Und da brauchen wir zwei Klassen. Einer von ihnen wird die Kobalt-Blaster-Volokh-Entität sein. Und dann wird die zweite mit der rechten Maustaste auf die Neue JAR-Klasse namens Mud Rock Entities klicken. Da gehst du. Diese beiden Klassen werden also benötigt. Und für die Blockentitäten können wir dies sofort mit mindestens ein wenig füllen , und das wird ein öffentliches statisches Finale sein, das dritte Register. Wir haben diesen natürlich bereits gesehen, Blockentitätstyp und dann wieder Winkelklammern mit einem Fragezeichen darin. Und dann blockieren Sie Unterstrich-Entitäten, die einem anderen Register entsprechen, das Register erstellt, Punktblock-Entitäten. Mc Kursmodell, diese Modell-ID. Und dann natürlich, während es ein Register gibt, gibt es eine öffentliche statische Void-Register-Methode mit einem Ereignisbus oder Ereignisbus, die Blockentitäten kühlt, die sich registrieren und im Event-Bus weitergeben. Und wir können schon sofort in unsere MC-Kurse-Mod-Klasse gehen und sie einfach hier einlegen, damit wir sagen können, Block-Modus, Block-Entitäten sich bei dem Ereignisbus registrieren, den sie vor ihnen haben. Und wir müssen das noch einmal machen bevor die Vorlesung vorbei ist, aber keine Sorgen. Wir werden das tatsächliche noch nicht definieren. Entität, weil wir zuerst diese Klasse erstellen müssen. Ich glaube, dass wir diese Klasse fast in ihrer Gesamtheit machen können , bis eine Sache, aber das wird gut werden. Das hat also mit folgendem zu tun. Dies erweitert die Block-Entität und implementiert den Menüanbieter. Lasst uns den Mauszeiger darüber bewegen, die Methoden implementieren. Dies implementiert also die Methode zum Abrufen des Anzeigenamens und die Create menü-Methode. Also eine Sache, die ich tun werde, ist, dass ich absichtlich einen Pfeil hier habe, weil ich nicht vergessen möchte , das Create-Menü hier hinzuzufügen. Das ist manchmal irgendwie wichtig. Ich meine, ich bin nicht so, dass ich das vergesse, aber es ist einfach sehr wichtig , dass wir das tatsächlich tun weil es viele bewegliche Teile dazu gibt, weißt du, nicht eines dieser Teile zu tun , wird im Grunde genommen mach es so, dass die Block-Entität nicht funktioniert. Und hier können wir einfach eine neue Text-Komponente von vier Volt im letzten Semester zurückgeben . Das wird also im Grunde nur der Anzeigename sein. Sie dann den Mauszeiger über diesen Creed-Konstruktor, der super passt. Und das wird auch gut werden. Was wir hier jedoch tun werden, ist, dass wir den ersten Parameter löschen und dann erhalten Sie hier natürlich einen Fehler, aber überhaupt keine Sorgen. Denn was wir tun können, ist, dass wir dies in unserem Modus Blockentitäten definieren können . Und so wie wir dies definieren , tippe ich das tatsächlich ein, möglicherweise kein öffentliches statisches endgültiges Registry-Objekt. Es wird ziemlich selbsterklärend für den Blockentitätstyp sein, diese Art von Kobalt-Blaster-Buch-Entität. Nun, der Kobalt-Blaster, und das wird gleich sein wie Blockentitäten, die sich mit dem Namen Kobalt-Unterstrich-Blaster registrieren , das wird in Ordnung sein. Und dann ein Lieferant des folgenden Blockentitätstyps Punkt-Dot-Dot-Builder des Kobaltblaster-Block-Entitäts-Doppelpunkts , Doppelpunkt neu. Sie können sehen, dass dann ein Komma, dann müssen wir Blöcke, Punkt, Blaster, Punkt bekommen. Dann nach dem dritten, nach der ersten Klammer Ente abgerechnet, und dann eine Null passieren. So sieht es also ungefähr hier aus. Die Blöcke, die wir hier übergeben , sind also im Grunde die Blöcke, die mit dieser Bucheinheit verbunden sind. Das ist die allgemeine Idee. Anstatt den Parameter hier drin zu haben, können wir dann Block-Entitäten sagen, die den Blockpunkt-Kobalt-Blaster-Punkt bekommen. Jetzt denken Sie vielleicht, ist das nicht eine zirkuläre Referenz? es eigentlich nicht. Das tue ich. Ich bin mir nicht ganz sicher wie es ist. Es ist sehr verrückt. Als gäbe es sozusagen viele kreisförmige Dinge in den Block-Entitäten. Also keine Sorgen. Jetzt werden wir anfangen, Sachen zu kopieren. Das erste, was wir kopieren werden, sind im Grunde die beiden Felder, die wir haben. Und diese Felder sind im Item-Stack-Handler, der Item-Handler der Größe vier genannt wird. Und dies ist auch eine anonyme Klasse Sie sehen können, weil wir den geänderten Inhalt hier platzieren müssen , wo wir uns im Grunde geändert haben. Denn sonst werden wir einige Probleme beim Laden und Speichern des Inventars haben . Und dann haben wir eine faule Optionale davon, und wir brauchen diese wegen der Fähigkeit. Wir werden das auch kopieren. Dies wird also die Git-Fähigkeitsmethode sein. Und ich werde das einfach hier unten legen. Sie erhalten also eine Capability-Methode. Sie können sehen, dass es im Grunde heißt: Hey, wenn Sie wissen, dass jemand oder etwas nach dieser Block-Entität fragt, es hat nicht die Item-Handler-Fähigkeit, dann werden wir einfach den faulen Item-Handler zurückgeben . Also richtig, das hier. Und wir werden einfach sagen: Klar, nimm das. Wie Sie deutlich sehen können, wurde der faule Item-Handler im Moment natürlich der faule Item-Handler im Moment nicht eingestellt. Wie stellen wir es ein? Was wir in der onload-Methode festgelegt haben. Was wir also tun werden, ist, dass ich die Onload- und die Invalidate Caps-Methode über den Stand kopieren werde. Sie könnten sehen, dass Onload ziemlich selbsterklärend sein sollte, oder? Wenn diese Block-Entität geladen wird, setzen wir den Lazy-Item-Handler einfach hier auf eine faule Optionale unseres tatsächlichen Artikelhandlers. Das ist also die allgemeine Idee. Und wenn wir die Obergrenzen ungültig machen, passiert dies, wenn der Server solche Sachen herunterfährt. Dann machen wir nur die faulen Item-Handler ungültig , damit wir keine Ressourcenlecks haben , solche Sachen. Nun dann stellt sich die Frage, wie speichern wir die Daten? Nun, wir speichern die Daten, indem wir zwei Methoden überschreiben. Das ist die zusätzliche Speichermethode und die Lademethode. Sie können also sehen, dass ich im Grunde genommen den Item-Handler NMC das zur NVT merke. Das macht also im Grunde das ganze schwere Heben für uns. Es speichert alle Slots. Was in diesen Slots ist, sind viele Gegenstände in diesen Slots. Das ist also alles wunderbar für uns gemacht und wir brauchen nur diese beiden Methoden genau hier. Was sehr wichtig ist, ist, dass wir dies in der anonymen Klasse erneut außer Kraft setzen müssen . Andernfalls haben wir einige Probleme beim Speichern der Daten, da die zusätzliche Methode zum Speichern aus irgendeinem Grund nicht aufgerufen wird. Jedes Mal, wenn wir die Welt einfach aus irgendeinem Grund verlassen die Welt einfach aus irgendeinem Grund es nur ein Update aufgerufen. Ich bin mir dabei nicht sicher, aber vergewissern Sie sich , dass dies erledigt ist. Und nicht zuletzt für die nicht statischen Methoden werde ich für die nicht statischen Methoden auch die Drops-Methode haben. Und dieser macht hier im Grunde nur einen einfachen Container, hol dir alle Artikel vom Item-Handler und sagt dann einfach: Hey, lass einfach alle deine Inhalte an dieser Position fallen dieses Niveau. Und dann wird es uns gut gehen. Dies wird aufgerufen, wenn wir den eigentlichen Block zerstören. Also fließen alle Inhalte aus diesem eigentlichen Block heraus, oder? Also, wenn Sie zum Beispiel Zerstörer Brust, und natürlich der gesamte Inhalt der Brust wird auf den Boden fallen. Und das ist natürlich das, was wir auch in unserer Rakete wollen , bevor wir hier weiter Sachen machen, wir werden tatsächlich auf das Kobaltglas oder den Block umsteigen , denn jetzt wird der Block hat sich auch geändert. Und das wird sehr interessant sein, denn anstatt sich von der Blockklasse zu erweitern, wird sich dies von der Basis-Entitäts-Block aus erstrecken , die wichtig sind. Und dann können Sie sehen, dass Sie sofort die neue Blockentitätsmethode implementieren müssen . Das ist natürlich überhaupt keine Sorgen, denn wir können dies einfach umsetzen. Und das wird für uns sehr einfach sein, denn was wir tun können, ist, null zurückzugeben, wir werden eine neue Kobalt-Blaster-Blockentität und die EPA hat und den p-Zustand genau hier übergeben. Und das ist so ziemlich alles , was wir dafür tun müssen. Nun, es gibt noch ein paar Dinge, die wir tun müssen, oder? Sie können natürlich sehen, dass das meiste Zeug für die tatsächliche Form des Blocks bestimmt ist. Aber was Sie dann haben, ist, dass wir es tun müssen, und das ist unglaublich wichtig, oder? Wir müssen die Getter-Render-Shape-Methode genau hier überschreiben . Und wir müssen das Render-Shape ein Modell zurückgeben. Denn wenn wir dies nicht tun, wird unser Modell unsichtbar sein, da dies nur der Standardwert des Basis-Entitätsblocks ist. Ich bin mir nicht sicher , warum das der Fall ist. Wahrscheinlich wird es ein Grund dafür sein. Stellen Sie also bitte sicher , dass Sie dies außer Kraft setzen. Andernfalls wird dein Block unsichtbar sein. Und das ist natürlich nicht ganz das, was wir wollen, da ich andere Methoden überschreiben werde und diese tatsächlich kopieren werde. Dies wird die onRemove-Methode sein. das habe ich gesagt, genau wenn wir die Drops-Methode genau hier aufrufen. Nun, das stellt nur sicher, hey, wenn wir diesen Block entfernen, der gesamte Inhalt der fällt der gesamte Inhalt der Block-Entität auf den Boden. Aber das ist großartig und das ist einfach eine wirklich nette Methode und auch nicht zu verrückt. Und die US-Methode ist in dem Sinne ähnlich, dass wir, wenn wir mit der rechten Maustaste auf diese Sperre klicken, einfach möchten, dass die tatsächliche Entität ihr Inventar öffnet oder ihre GUI im Grunde genommen öffnet, oder? Sie können hier Netzwerk-Hooks sehen, die Gui öffnen. Wir möchten also im Grunde nur die GUI öffnen und sicherstellen, dass sie irgendwie über den Server und den Client synchronisiert wird . Deshalb erledigen die Netzwerk-Hooks im Grunde das ganze schwere Heben für uns. Es gibt noch eine Sache, die wir wollen, und das ist, dass wir die Ticker-Methode wollen oder wir möchten, dass auf eine Tick-Methode in der Kobalt-Blaster-Block-Entität zugegriffen werden kann . Und eine Tick-Methode ist im Grunde nur eine Methode, die in diesem Fall jedes Häkchen für eine bestimmte Blockentität genannt wird jedes Häkchen für eine bestimmte Blockentität genannt . Und das ermöglicht es uns, coole Funktionen hinzuzufügen. Und im Grunde genommen werden wir sozusagen kundenspezifisch basteln. Und dafür müssen wir die Getterticker-Methode überschreiben. Ich werde das noch einmal kopieren und wir werden hier einen einfachen Fehler bekommen, aber das können wir sehr einfach beheben. Wir können sehen, dass dies im Grunde die, nun, ich bekomme eine Ticker-Methode und wir rufen dann den Create Ticker-Helfer auf und kehren mit dem Rock-Entity-Typ darauf zurück, wir den globalen Blaster übergeben werden Blockmodus, Entitätsjahr blockieren. Und dann können wir hier sehen, dass wir die Cobol Blaster Block Entity Tick Methode übergeben möchten , die noch nicht erstellt wurde. Aber wir werden das jetzt schaffen. Das werden also all diese statischen Methoden sein. Das sind vier Methoden. Ich kopiere sie einfach, damit wir sehen können , was hier los ist, oder? Das ist Verrücktheit, keine Sorge. Wir werden das durchmachen. Die Tick-Methode ist also die einzige Methode, die nicht benutzerdefiniert ist. Diese drei Methoden sind also völlig benutzerdefiniert. Ich habe sie selbst gemacht. Die Tick-Methode, die es an sich ist, wird für jede Block-Entität gleich sein. Sie haben immer Zugriff auf die Ebene der Position, den Bundesstaat und die Block-Entität selbst. Und Sie können sehen, dass ich gerade ein paar Hilfsmethoden erstellt habe, im Grunde wird das Erstellen des Gegenstandes einfach abstürzen. Die Elemente werden ein Element aus 0 extrahieren. Wir werden es aus Slot 1 extrahieren. Und dann setzen wir einfach einen Gegenstand im Slot drei ein. Sie können also sehen, dass wir auch hier Kobaltbarren einsetzen werden. Wir werden das einfach ununterbrochen tun. Natürlich wird die Craft-Item-Methode nur aufgerufen, wenn wir beide ein Rezept haben und das Stapellimit nicht erreicht haben. Werfen wir einen Blick auf das Stack-Limit , denn das ist ein bisschen einfacher. Wir werden im Grunde nur sagen: hey, wenn die Anzahl der tatsächlichen Stapel hier kleiner ist als die GetMax-Stack-Größe, wird es uns gut gehen. Solange wir nicht 64 Artikel im Ausgabe-Slot erreicht haben , können wir kontinuierlich Gegenstände herstellen , die ziemlich selbsterklärend sein sollten. Die hat Rezeptmethode. Nun, das überprüft nur, ob wir im 0-Slot namens Splitter haben und dass wir im ersten Slot oder in der Steigung mit Index eins haben, wir haben rohes Kobalt. Wenn wir beide da drin haben, dann stimmt das. Das wird hoffentlich wahr sein und dann werden wir den Gegenstand herstellen. Ich werde das sagen, dies ist eine sehr grobe Art, dies zu tun. Das soll dir wirklich nur einmal zeigen , wie wird das eigentliche Handwerk und solche Sachen funktionieren? Ich empfehle dringend, dass Sie dies umsetzen können und Sie können sich das ansehen und Sie können sagen, nun, das ist wirklich verdammt cool und es ist aber sehr zu empfehlen. nächsten Vorlesung werden wir ein individuelles Rezept erstellen, Jason. Und dann können wir im Grunde genommen die Bastelrezepte in JSON-Dateien definieren, was viel besser ist, als sie so fest zu codieren. Definitiv keine gute Idee, dies zu tun, oder? Das ist nur eine sehr schlechte Idee. Es ist sehr klobig, es ist nicht gut, es ist hart codiert. Vieles kann schief gehen. Daher kann ich es nur wärmstens empfehlen, obwohl dies nur einmal hier gezeigt wird , es ist eine sehr grobe Art, Dinge zu tun und wollte das nur klarstellen. Nun ist die Sache, dass dies so ziemlich getan wird , außer natürlich die Create Menu Methode genau hier. Und das Gleiche gilt für den Block. Der Block ist auch fertig, damit wir den Block schließen können, wir können diesen noch näher bringen. Wir werden die Block-Entitätsklasse für ein wenig geöffnet lassen , da wir jetzt natürlich auf dem Bildschirm hinzufügen müssen. Also in unserem MC-Kurspaket. Klicken Sie mit der rechten Maustaste auf neues Paket namens Und drinnen werden wir zwei neue, eigentlich drei neue Klassen machen , Kobalt, Pilaster Menü. Und dann machen wir den Wandpilaster-Bildschirm. Und wir werden auch die Modusmenü-Typen zum Unterricht machen . Und dann jedes Bildschirmpaket, wir brauchen auch ein anderes Paket namens Slot. Und statt dort werde ich tatsächlich auf den letzten Stern kopieren, letzten Stern wird der Modus sein, den Sie einsetzen werden, und der Modus-Ergebnis-Slot. Ich erkläre das in einem Moment , in dem wir sie tatsächlich benutzen werden. Aber ich empfehle dringend, sie auch zu kopieren. All dies steht Ihnen natürlich wieder zur Verfügung, GitHub Repository und eine Einzelperson genauso gut. Keine Sorge da, richtig, wir beginnen mit dem Menü - oder Kobaltblaster-Menü. Und ich werde es tun, das wird das abstrakte Container-Menü erweitern . Sehr wichtig. Da gehst du. Ich werde die hier noch gültigen Methoden implementieren . Und dann erstellen wir auch einen Konstruktor, der super passt. Was ich jetzt tun werde, ist, dass ich den gesamten Inhalt dieser Klasse einfach kopieren werde. Empfehlen Sie dringend, das Gleiche zu tun. Und wir werden es erklären , während wir weitermachen. Also haben wir einen Pfeil genau hier. Wir werden das in einem Moment beheben können , keine Sorgen. Sie können also sehen, dass wir hier zwei verschiedene Konstruktoren haben , was eigentlich sehr wichtig ist, weil einer der Konstruktoren in den Mod-Menüs und der andere Konstruktor aufgerufen wird den Mod-Menüs und wird in der Block-Entität aufgerufen. Jetzt können wir das sofort machen. Wechseln wir also zur Blog-Entität. Und dann erstellen wir hier in der Methode „Menü erstellen“ ein neues oder Bolzenputz-Menü, wenn ein Bestand des Container-ID-Inventars übergeben wird. Und dann ist der Letzte das. Da gehst du. Und das ist so ziemlich alles , was wir weitergeben müssen. Aber jetzt ist die Block-Entity-Klasse vollständig fertig und wir sind damit fertig. Werfen wir einen weiteren Blick auf die Speisekarte hier. Also das Menü, wie ich bereits im Spickzettel in der Theorie erwähnt habe , im Grunde genommen, Dies ist verantwortlich für die Slots, wo sie sind, wo sie angelegt sind, solche Sachen. Und das siehst du genau hier. So können wir haben, wir fügen im Grunde das Inventar hinzu, wir fügen die Spieler-Hotbar hinzu. Das sind also nur zwei Methoden, die ich schnell erstellt habe , weil dies genau hier ist. Die for-Schleifen sind also normalerweise wie innerhalb des eigentlichen Konstruktors. Das ist nur, ich meine, es scheint mir einfach sehr schlecht zu sein, ist im Grunde nicht so gut codiert. Dann gibt es noch etwas , das sehr interessant ist und das ist der Quick Move Stack genau hier. Diese Methode wird von DZ 07 durchgeführt, 08 Kredit geht an sie dafür. Ich möchte das im Grunde sagen, dies ist für das Verschieben von Sachen in diesem Inventar. Mach dir keine Sorgen um diese Methode. Sieh es dir nicht an. Sag einfach so vielen Dank für die 07, dass sie vielleicht wahnsinnig sind. Ich habe nur die Methode, die wir durchmachen konnten , eine halbe Stunde damit verbracht, dies zu erklären. Es ist einfach nicht nötig. Ich mag diese Methode wirklich nicht, aber natürlich muss sie irgendwie gemacht werden. Und so wird es sein. Die statischen Felder müssen auch vorhanden sein. Das ist sehr wichtig. Und hier in der TE, Inventar-Slot-Anzahl, müssen wir im Grunde die tatsächliche Anzahl der Spielautomaten aufstellen. Nun, t0 Inventar ein Archiv jetzt ist es ein B-Inventar. Bevor es also Kachelentität genannt wurde, heißt es jetzt Blockentität. Aber alles hier sollte immer noch ganz gut funktionieren. Und Sie können sehen, dass wir vier Slots hinzufügen, wie Sie sehen können. Also fragen wir im Grunde: Hey, haben wir Item-Handler-Fähigkeit? Und wenn das der Fall ist, fügen wir hier ein paar coole Slots hinzu. Sie können sehen, dass ich einen Kraftstoffschlitz in einem Ergebnis-Slot habe. Ich habe diese Kurse gemacht, weil gut, ich meine, das ergibt einfach viel Sinn. Grundsätzlich haben Sie einen Steckplatz, in den Sie nur Kraftstoff einsetzen können und dann ABR-Ergebnissteckplatz, in dem Sie eigentlich nichts einfügen können . Grundsätzlich kann nur die Maschine selbst Sachen hineinlegen. Und ich habe diese im Grunde genommen aus den eigentlichen Slots genommen. Sie können also eintippen, sie können zweimal in die Verschiebung setzen und dann in den Steckplatz legen. Und wenn ich das mache, können Sie das Slop Net Minecraft-Weltinventar sehen . Und wenn ich Control H drücke, können Sie alle verschiedenen Brunnen sehen, zum Beispiel Slots, die hier verfügbar sind. Und dann haben wir im Grunde den Ofenergebnis-Slot, wie Sie sehen können. Werfen wir einen Blick auf das hier. Und nun, ich meine, ich habe im Grunde genommen die meisten Sachen hier genommen, sind die Ergebnisse, oder? Was ist sehr wichtig? Es ist nur dieser Ort am 1. Mai muss falsch sein. Und dann dasselbe für den Kraftstoffschlitz. Wir fragen im Grunde nur den abstrakten Ofen, Hey, ist dieser Stapel ein Brennstoff? Und wenn ja, dann werden wir einfach sagen, dass Sie es gerade dort hineinlegen werden. So ziemlich alles, was es dazu gab. Ich meine, das ist etwas, das es gibt. Diese beiden Slots empfehlen dringend, sie zu verwenden da sie im Grunde nur ein bisschen schöner zu verwenden sind. Aber abgesehen davon glaube ich, dass der größte Teil des Restes nicht zu verrückt ist . Wir haben nur einen Verweis auf die Block-Entität, einen Verweis auf die Ebene. Die immer noch gültige Methode prüft im Grunde nur , ob der Spieler auf dieses Menü zugreifen kann oder nicht. Das wäre also, wenn Sie sich in einem Minenwagen befinden, rechten Maustaste auf einen Ofen oder ähnliches klicken und Sie sind zu weit weg und plötzlich schließt die tatsächliche GUI. Ich glaube, dass dies dies im Grunde erleichtert. Und lasst uns jetzt in den Kurs „ Mehr Menüs“ gehen und lasst uns auch unsere Sachen dort hinzufügen. Ich werde das jetzt tatsächlich kopieren , weil wir das oft gesehen haben. Dies ist ein verzögertes Register des Menütyps, erneut des Fragezeichens. Und wenn wir dann den Menütyp definieren, benötigen wir hier eine Registrierungsmenü-Typmethode , die hier nur eine Container-Fabrik vom Typ T hat. Und wir registrieren das im Grunde nur. Normalerweise wäre das nicht zu verrückt. Alles was als sehr empfehlenswert angesehen wird. Wieder einmal, alles natürlich verfügbar, müssen Sie das nicht selbst eingeben. Github Repository und Individuum genauso gut. Jetzt werden wir im MC-Kurs-Mod-Konstruktor die modernen Menütypen Punktregister mit dem Ereignisbus aufrufen . Und dann ist hier auch alles registriert. Das ist großartig. Und dann müssen wir uns das im Grunde nicht noch einmal anschauen, zumindest vorerst. Jetzt ist dieser auch keine Fehler mehr gemacht. Also ist alles großartig. Nun, eine Sache, die die Leute fragen könnten, ist, nun, was bedeutet diese Ausstellung, was ist diese y-Position hier? Nun, dafür werde ich tatsächlich die Textur kopieren , die wir in nur einem Moment verwenden werden. Dies wird in Vermögenswerte, MC grobe Texturen und dann unter Gui gehen . Also kopiere ich das vorbei. Wir enden. Dies ist die cobol gesprengte GUI und ich werde das öffnen. Das haben wir natürlich schon gesehen. Eine allgemeine Idee ist das, naja, 850, oder? Also wir 18 und 50. Warum ist dieses Pixel hier 0000. Wenn wir 18 nach rechts gehen, rechts, x 18, also 18 nach rechts und 50 runter, landen wir genau hier. Das ist also die allgemeine Idee. Sie müssen dies in Pixel zählen. Wenn Sie jedoch Photoshop oder paint.net oder GIMP verwenden, haben Sie normalerweise ein Auswahlwerkzeug, das Sie verwenden können. Und dann kannst du das im Grunde wählen und sehen, wie groß das ist. Sie müssen es in Pixel zählen, ist einfach keine andere Möglichkeit. Es ist manchmal ein bisschen klobig, aber so wird es sein. Und der Rest sollte ziemlich selbsterklärend sein. Aber der Rest ist deine 66 und dann 16 runter als der andere ist 50 runter und 66 x und so weiter und so weiter. So ist das im Grunde genommen angelegt, oder? Und dann lasst uns den Bildschirm nicht zuletzt machen. Und noch einmal, ja, wir werden das tatsächlich kopieren. Jetzt. Das ist eigentlich das, ich denke, das ist, naja am wenigsten kompliziert. Dies ist der abstrakte Container-Stream vom Typ, altes Glassdoor-Menü. Das ist also sehr wichtig, dass Sie hier die richtige Klasse, das Kobalt-Master-Menü, einsetzen hier die richtige Klasse, , denn dann haben wir auch in dieser Klasse Zugriff darauf . Das ist also sehr wichtig. Sie können sehen, dass ich den Ressourcenstandort der Textur unter Texturen GUI Kobalt habe, Blaster unterstrichen, GUI PNG unterstrichen, was wir gerade gesehen haben. Und dieses Jahr wird, wie Sie sehen können, im Grunde genau hier gerendert. Und dann verwenden wir diese Doublet-Methode unter dieser Methode kann sehr kompliziert sein. Und wir werden in der nächsten Vorlesung tatsächlich mehr über diese Methode eingehen in der nächsten Vorlesung tatsächlich mehr über diese Methode , wenn wir die Fortschrittsbalken und so hinzufügen , dann müssen wir tatsächlich darüber nachdenken, okay, wie würden wir das einrichten, oder? Was ist das X? Was ist das Warum? Was ist der Offset hier? Wie groß ist die Breite davon? Wir werden diese nächste Vorlesung herausfinden. Wie ich schon sagte, das hier stellt vorerst sicher, dass das gesamte Bild, also all dies, ohne das Zeug rechts hier, grundsätzlich im Player angezeigt wird. Was wir nun noch in der MC-Kurse-Mod-Klasse tun müssen, auch sehr wichtige und abgelehnte Einrichtungsmethode, Menübildschirme, Punktregistermodus, Menütypen, die Cobol-Blaster, Menüpunkt bekommen. Dann ein Kobalt-Blaster-Bildschirm Doppelpunkt, Doppelpunkt neu. Jetzt sollte dies keine Fehler verursachen, da der Kalt-Plasma-Bildschirm vom Typ Kobalt-Blaster-Menü ist, oder? Also der Container-Bildschirm des Typs cobol Blaster Menu. Also alles, was uns hier gut gehen sollte und ob wir es glauben oder nicht, das sollte es sein. Nun, wie ich schon sagte, das ist ein bisschen richtig? Und das ist sozusagen nicht einmal die endgültige Form. Dies ist noch nicht einmal das Ganze, aber vorerst ist dies alles, was wir hinzufügen müssen. Mal sehen, ob es funktioniert oder ob es zurückspringt und Minecraft. Also mal sehen, lass uns den Cobol-Blaster nach unten setzen und klicken wir mit der rechten Maustaste darauf und sehen. Okay, das ist also richtig gut. Man sieht natürlich, dass die GUI jetzt eröffnet wurde. Alle diese Slots hier funktionieren. Jetzt sehen wir einfach, ob ich Rock demütig machen und ihn hier platzieren kann . Ich kann nicht ein Jahr platzieren und ich kann es hier platzieren. Genau das will ich. Ich kann hier drüben platzieren, ich kann meine Kursleber nehmen und sie hier platzieren, weil es ein Treibstoff ist. Und sobald ich hier den Felsgriff an die Spitze lege, sollten wir sehen können , dass Kobaltbarren hergestellt werden. Und los geht's, im Grunde jedes Häkchen. Also werden wir im Grunde jede Sekunde 20 Kobaltbarren herstellen . Und wenn ich hier mehr reinlege, wird es nicht funktionieren. Das Stack-Limit wurde erreicht. Deshalb basteln wir nicht mehr, aber ich nehme die Hälfte davon raus. Man sieht, dass die andere Hälfte grundsätzlich erstellt wird. Eine Sache, die wir im Grunde überprüfen können, wenn ich die Welt rette und wieder darauf zurückgehe, dann hätten wir die Daten speichern sollen. Aber das ist natürlich sehr wichtig, ist eines der Dinge, bei denen wir zusätzliche Daten speichern und die Lese-Methode benötigten . Also lasst uns einfach sehen, ob das funktioniert oder nicht, aber ich bin ziemlich zuversichtlich, dass es das tut. Jetzt werden wir sehen , dass alle unsere Artikel noch hier sind. Und dann gilt das Gleiche, wenn ich das zerstöre, du kannst sehen, wie alle Inhalte hier fallen. Also funktioniert alles genau so, wie wir es wollen. Aber das ist definitiv eine Vorlesung für Fortgeschrittene, wie Sie deutlich erkennen können. Es ist. Zuallererst braucht es viel Zeit und es gibt viele Dinge , die Sie hier finden müssen. Aber insgesamt ist das eine wirklich coole Sache, und Kacheleinheiten sind einfach erstaunliche Dinge, die ich empfehlen kann. Dies ist eines der einzigen Male, in dem der Blick auf den Vanilla-Code nicht ganz so nützlich ist , denn im Futter müssen wir es auf einen kleinen Kreisverkehr tun , um unsere Sachen grundsätzlich zu registrieren. Aber ich kann dringend empfehlen einen Blick auf GitHub-Repositories beliebter Mods zu werfen oder sie machen ihre Blockentitäten, solche Sachen. Es ist sehr empfehlenswert, da es immer, Sie können, Nummer 1, sich davon inspirieren lassen. Und Nummer zwei, wenn du wirklich feststeckst, hast du das normalerweise auch. Sie haben natürlich auch dieses GitHub-Repository. Der gesamte Code hier, wenn Sie alles kopieren, sollte das funktionieren, obwohl es natürlich viele Teile gibt, oder? Wir haben den gesamten Bildschirm, das Menü, der Block muss sich so etwas weich ändern. Es gibt also definitiv viel, aber insgesamt ist es wirklich cool. Daher empfehle ich dringend, nachdem Sie dies beendet haben , sofort zur nächsten Vorlesung zu gehen und sie sozusagen als Doppelvortrag anzusehen, indem Sie dies sehr empfehlenswert sind. Ansonsten sind wir für diese Vorlesung genau hier fertig. Ich hoffe wirklich, dass Sie das nützlich fanden. Wenn irgendetwas unklar ist, können Sie gerne Fragen in den bereitgestellten Fragen stellen. Ich werde versuchen, sie bestmöglich zu beantworten. Ansonsten würde ich mich sehr über eine Rezension für mu freuen und wir sehen uns in der nächsten Vorlesung. Also ja. 89. (Fortgeschritten) Erstellen benutzerdefinierte Rezepturen: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Ihrer Block-Entität eine benutzerdefinierte Rezeptserialisierung hinzufügen können . Die allgemeine Idee ist also , dass wir die Möglichkeit hinzufügen werden, JSON-Dateien zu erstellen, benutzerdefinierte JSON-Dateien, die Sie einlesen können und die im Grunde genommen die Rezepte für Ihre Blockentitäten haben . Also werde ich noch einmal eine Menge Sachen in dieser Vorlesung kopieren , aber keine Sorge, alles steht dir im GitHub Repository zur Verfügung und eine Person genauso gut, empfehle dringend, eine sieh dir die an. Und das erste , was wir tun werden ist, dass wir das Rezept machen werden. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens Rezept. Und dann drin oder kopiere die Kobaltblasten oder Rezeptklasse sowie die Modellrezeptklasse. Und wir schauen uns die an. Also sollte keiner von ihnen einen Fehler in ihnen haben? Ich glaube. Also. Beide sollten sofort funktionieren. Und wir gehen einfach durch, wir fangen mit dem Cold Blast Rezept an. Sie können sehen, dass wir hier drei Felder haben, eine Ressourcenstandortnummer und Artikel werden ausgegeben und ein Nicht-Analyst von Rezepturartikeln. Und Sie können auch sehen , dass es hier die Rezeptschnittstelle mit dem Symbolcontainer implementiert . Jetzt sollte es ziemlich selbsterklärend sein , dass die Ausgabe nur das Ergebnis ist , das Sie aus dem eigentlichen Rezept erhalten werden . Die ID wird nun der Ressourcenspeicherort sein, unter dem sich diese eigentliche Jason-Datei befindet. Die Rezeptartikel werden eine Liste von Zutaten oder Gegenständen sein, die für die Herstellung des jeweiligen Gegenstandes verwendet werden. Jetzt überspringen wir die Match-Methode für eine Sekunde, da dies die wichtigste Methode in dieser gesamten Klasse sein wird . Also werden wir die anderen durchgehen, um ähnlich wie das Get Resultat Item zusammenzustellen , um Ihnen nur die Ausgabe zu geben. Kann Dimensionen herstellen. Wir werden einfach wahr zurückgeben , weil wir keine Dimensionen haben. Wir befinden uns nicht in einem Drei-mal-Drei-Gitter oder so ähnlich. Die Idee ist wieder einmal nur die Ressourcenstandortnummer. Und wir haben einen Serializer und einen Typ. Das sind eigentlich statische Klassen innerhalb des Kobaltplus- oder Rezeptglases. Und Sie können sehen, dass der Typ nur eine Instanz hat und es ist nur eine Idee, die Jacobo springt, und dann ähnlich im Serializer haben wir auch eine Instanz und die ID genau hier. Es ist sehr wichtig, dass dies und dieses, aber im Grunde genommen bestimmt ein Typ hier wie der Name Ihres Typs in Ihrer JSON-Datei sein muss. Aber wir werden das in einem Moment sehen. Nun, die Nullen, es hat noch ein paar Methoden. Wir werden hier zuerst ganz unten gehen. Und das sieht man auch, besonders diese beiden Methoden, die im Grunde die Klasse des Rezeptserialisierers zurückgeben. Und das ist eine verrückte Unterrichtssache. Ähm, ich bin mir nicht hundertprozentig sicher, was das Verrückte hier vor sich geht. Wir werden das einfach brauchen. Sonst können wir die Klasse nicht richtig zurückgeben , wenn wir dieses verrückte Wrapper-Zeug nicht haben. Wie gesagt, ich bin mir nicht hundertprozentig sicher, worum es bei ihnen geht. Wir werden es einfach so lassen, wie es ist, und es wird uns einfach gut gehen, wenn wir hier sind. Jetzt ist die Idee natürlich nur noch einmal, die tatsächliche ID genau hier, der Ressourcenanlass, der Registrierungsname ist nur die Instanz selbst, wo wir die Instanz im Grunde nur selbst zurückgeben. Und dann haben wir die drei Methoden von Jason, vom Netzwerk bis zum Netzwerk. Jetzt sind die unglaublich wichtig. Die from JSON-Methode bestimmt grundsätzlich , wie der Jason grundsätzlich bestellt wird. Wir können also sehen, dass wir ganz am Anfang ein Itemset namens output erstellen. Und das lesen wir im Grunde aus einem Mitglied, das in der JSON-Datei ausgegeben wird. Wieder einmal werden wir die JSON-Datei in einem Moment sehen, aber das ist nur etwas, das wir einlesen werden. Und dann lesen wir in den Zutaten, was eine Liste sein wird. Hier erstellen wir eine Liste ohne Null. Und dann setzen Sie im Grunde alle Zutaten in diese Liste. Und dann erstellen Sie ein neues Cobol-Blast-Rezept aus dem Netzwerk. Und die beiden Netzwerkmethoden sind ebenfalls interessant. Anstatt das JSON-Objekt zu verwenden, haben wir tatsächlich einen freundlichen Bytepuffer oder nach Puffer. Und das ist im Grunde nur so, dass das Netzwerk den Client und den Server kommunizieren kann. Wichtig ist hier , dass wenn wir Dinge in das Netzwerk schreiben und Dinge aus dem Netzwerk lesen, es genau übereinstimmen muss. Was heißt das? Nun, Sie können sehen, dass wir beim Schreiben von Sachen zuerst die Größe der Zutatenliste schreiben. Dann schreiben wir jede Zutat. Und am Ende lesen wir den Artikelstapel des Rezeptergebnisses, okay? Und genau so lesen wir es vor. Zuerst lesen wir die Größe genau hier mit read int vor. Dann lesen wir die Zutaten vor. Und am Ende lesen wir die Ausgabe hier vor. Dies ist sehr wichtig , dass dies übereinstimmen muss. Andernfalls erhalten Sie einen Fehler, nicht in der Entwicklungsumgebung, sondern wenn Sie auf dem Server sind, z. B. wenn Sie versuchen, sich im Grunde mit einer normalen Welt außerhalb der Entwicklung zu verbinden -Umgebung erhalten Sie einen Fehler und es wird nicht funktionieren, um sicherzustellen, dass dies übereinstimmt, wenn Sie sich für ein anderes Zeug entscheiden möchten. Weil wir natürlich wieder angefangen haben herumzuspielen. Jetzt ist es eine Art ernsthafte Java-Wissenszeit. Wenn du das ändern willst, richtig, wenn du zum Beispiel sagen würdest, Hey, ich habe tatsächlich, nicht nur zwei Eingänge haben wie vier Eingänge werden hier die Größe ändern, oder? Um ein paar Sachen zu machen, habe ich tatsächlich verschiedene Arten von Ausgaben, die ich je nach bestimmten Dingen wollte. Nun, entweder machst du ein neues Rezept dafür. Oder wenn Sie das alles in einem Rezept haben möchten, können Sie auch eine Liste von Ausgaben in der Theorie erstellen, aus ihnen nach dem Zufallsprinzip auswählen, solche Sachen. Es geht darum, jetzt wirklich ein sehr solides Verständnis zu haben , denn es wird einfach sehr schwierig sein , sonst wirklich individuelle Sachen herzustellen. Im Moment kommen wir zur Matchs-Methode, die wie gesagt, die wichtigste ist , weil dies im Grunde die Funktionalität oder das die Implementierung Ihres Rezepts bestimmt ausgewertet. Was ist also im Container mit einem bestimmten Rezept übereinstimmen? Wie funktioniert das? Nun, zuerst fragen wir, ob die 0ten Rezeptartikel, also der erste Artikel in unserer Rezeptliste, den wir aus der angrenzenden Datei einlesen, das mit dem Artikel im Container übereinstimmt mit Index 1, y Index 1? Denken Sie daran, denn Index 0 ist tatsächlich eine Stunde, werden Sie setzen. Deshalb müssen wir hier den Index eins nehmen. Und wenn das passt, dann kehren wir einfach zurück ob der andere auch übereinstimmt oder nicht. Und dann würde das natürlich wieder wahr werden. Sonst würde es falsch zurückgeben. Das ist sehr wichtig. Dies ist im Grunde das harte Stück Ihres Rezeptjahres. Und noch einmal, wenn Sie kompliziertere Sachen haben, wenn Sie mehr haben, wenn Sie mehr Zutaten haben, wenn Sie mehr Slots haben, müssen Sie nur Sachen hinzufügen, Dinge darin ändern, im Grunde genommen ändere es ständig nach oben. Wieder einmal Java-Wissen, Wissen, Terminologie. Ich sage das dauernd. Recherchen, insbesondere im Bereich „ Fortgeschritten“, sind wir im Grunde genommen fertig. Das ist also, das muss getan werden und ja, das ist die allgemeine Idee. Also die gesamte Handwerkslogik, die Matching-Logik, geht hier rein, und das ist eigentlich die Kälte- oder Rezeptklasse. Und dann schauen wir uns die Modus-Rezepte an. Wir können sehen, dass wir hier ein anderes Register von Rezeptserialisierern haben. Und dann nur ein Rezept-Serialisierer für den Cobol-Pflaster genau dort. Und dann stellen wir auch sicher, dass wir einen Typ registrieren , wenn wir diese Registermethode aufrufen. Diese Register-Methode muss also natürlich noch einmal in unserer MC-Kurs-Mod-Klasse hier aufgerufen werden, um MC-Kurs-Mod-Klasse hier die Modus-Rezepte punktregister mit dem Event-Bus zu erhalten. Und sobald das erledigt ist, sind diese Klassen tatsächlich in Ordnung und wir konnten bereits die JSON-Dateien einlesen. Aber natürlich haben wir jetzt keine, wir machen nichts, oder? Also müssen wir jetzt tatsächlich das Kobalt plus die Drei-Block-Entität ändern , damit wir dies schließen und in die Entität direkt hier einsteigen können . Und wir werden hier tatsächlich einige wichtige Änderungen vornehmen. Was ich also tun werde, ist, dass ich tatsächlich all die verschiedenen Dinge kopieren all die werde, die wir brauchen werden. Und wir fangen ganz oben an. Denn was wir brauchen, ist, dass wir einige Containerdaten benötigen. Also werde ich das überschreiben. Ich mache so etwas und dann kopieren wir das hier rein. Sie können also sehen, dass wir einige geschützte endgültige Containerdaten haben , die als Daten bezeichnet werden. Und dann haben wir auch für Felder, die Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit und die maximale Brennstoffzeit sind. Und zuerst, lassen Sie uns dies innerhalb des Konstruktors zuweisen, wird dies auch über alles kopieren , was Ihnen natürlich noch einmal im GitHub-Repository oder einem zur Verfügung steht genauso gut individuell. Und Sie können sehen, dass die Containerdaten auch in diesem Fall eine anonyme Methode sind, bei der die GET the set und die getCount -Methode überschrieben werden. Und wir geben immer den Fortschritt, die maximale Fortschritts-Treibstoffzeit und die maximale Kraftstoffzeit genau hier zurück . Weil diese vier verschiedenen Felder wir tatsächlich über das Menü synchronisieren möchten. diesem Grund heißt es Containerdaten. Das Container-Menü synchronisiert diese vier Felder für uns grundsätzlich über den Client und den Server, sodass beide den gleichen Wert haben. Denn natürlich zum Beispiel Southern, so etwas wie der Fortschritt und Ymax Fortschritt. Nun, wenn Sie beide haben, können wir plötzlich einen Fortschrittspfeil zeigen. Wenn wir die Kraftstoffzeit und die maximale Feldzeit haben, können wir plötzlich zeigen, wie viel Treibstoff in Ihrem Inventar noch vorhanden ist , solche Sachen. Und deshalb ist es so unglaublich wichtig , dies zu haben. Und das ist eigentlich ziemlich einfach zu verwenden, sobald man weiß, wie man es benutzt. Was wir also tun werden, ist, dass wir auf die Einnahmen aus Kobaltglas einsteigen werden . Wir werden die Daten einfach hier hinzufügen. Also diese Daten, jetzt wird das natürlich einen Fehler auslösen, oder? Also müssen wir ins Blaster-Menü gehen und wir können einfach sagen: Okay, wir werden hier ein paar Sachen ändern. Und was wir ändern, ist nicht der erste Konstruktor, sondern der zweite. Wir werden die Containerdaten oder Daten hier hinzufügen. Und dann wird dieser einen Fehler auslösen. Und wir werden uns überhaupt keine Sorgen machen. Denn was wir tun können, ist, dass wir neue einfache Containerdaten mit Länge 4 erstellen können . Denn das ist natürlich noch einmal die vierte Länge. Und dann werden wir es einfach tun, dass wir dafür auch ein privates Feld schaffen. Wir werden das später in zwei Methoden verwenden oder tatsächlich denke ich drei Methodendaten, oder? Und dann werden wir einfach unter dieser Ebene sagen, wenn Sie nur sagen werden, dass diese Punktdaten den Daten entsprechen. Nun, wenn wir dies und jetzt die Art und Weise zuweisen , wie wir es schaffen werden, damit dies auch synchronisiert wird, werden wir sagen, Datensteckplatz hinzufügen. Also Steckplätze tatsächlich Datenschlitze. Und dann geben wir die Daten genau hier weiter. Aber das war's buchstäblich. Alles was wir tun müssen. Jetzt wird das synchronisiert. Und dann werden wir vier neue Methoden bekommen, bei denen unsere Er herstellt Methode, die eine Brennstoffmethode hat , die skalierte Fortschritte erzielt, und sie wird skaliert, Sie werden Fortschritte machen. Nun, das ist nur ein Haufen Mathematik im Hintergrund , um sicherzustellen, dass gut, okay, wie viel Fortschritt wir haben, unseren maximalen, maximalen Fortschritt wir haben, was ist die Breite des Pfeils in diesem Fall, richtig, den wir anzeigen wollen. Und dann stellen wir nur sicher, dass das alles richtig berechnet wird. Das ist im Grunde alles , was das tut. Obwohl. Du solltest dir darüber keine Sorgen machen. Ich bin mir sicher, dass Sie das herausfinden können , wenn Sie es sich für eine Weile ansehen , ohne Worte dort zu sagen. Das sind eigentlich all die Dinge, die wir hier im Menü tun müssen . Jetzt müssen wir tatsächlich noch viel mehr Dinge in der Block-Entität 4 tun . Wir gehen weiter zum Bildschirm. Also werde ich noch einmal ein paar Sachen überschreiben. Nummer eins: Wir müssen den Speichern- und Lademethoden Sachen hinzufügen . Denn was wir tun wollen, ist, dass wir den Fortschritt des Minimax-Filters speichern wollen, indem wir ihn auslesen. Also lade es. Jetzt ist das eigentlich, lasst uns nb t dann und VT machen. VT und NVT, es gibt keine Sorgen. Also gehen sie. Das sind also Dinge, die wir auf jeden Fall tun wollen. Denn natürlich, wenn wir von der Welt laden, wie wenn wir eine Welt retten, oder? Und wenn Sie dann wieder mitmachen, wollen wir, dass die Treibstoffzeit gleich ist, der Fortschritt der gleiche ist, so was. Deshalb speichern wir es und lesen es dann noch einmal vor. Das ist also im Grunde die allgemeine Idee hier. Was wir dann tun werden, ist, dass ich im Grunde alles bin , einschließlich der Tick-Methode. Ich werde es tun, naja, ich meine Kopie vorbei. Das wird also eine Menge Code sein, aber wir werden Methode für Methode durchlaufen. Ich glaube nicht, dass wir Pfeile bekommen sollten, jetzt tun wir es nicht. Also Nummer eins, wir haben eine nicht statische Methode und das ist die Methode „ weniger verbrauchen“. Du siehst, dass ich im Grunde überprüfe, hey, habe ich etwas in unserem Kraftstoffschlitz? Denn noch einmal, erinnere dich an Slot 0, oder? Wie ist der Kraftstoffschlitz für uns? Wenn das also nicht leer ist, bekommen wir die Brenndauer davon. Wir extrahieren es. Also werden wir genau einen dieser Gegenstände extrahieren. Wir werden den Rezepttyp Schmelzen verwenden. Denn zum Schmelzen grundsätzlich alle Verbrennungszeiten werden grundsätzlich alle Verbrennungszeiten eingeliefert, was sie hier spart. Und dann sparen wir auch die maximale Brennstoffzeit. Und wenn das geschehen ist, können wir eine Tick-Methode finden. Jetzt ist unsere ganze Logik. Was ist diese ganze Verrücktheit? Nun, zuerst fragen wir, verbraucht diese Bucheinheit nur wenige? Dies ist eine benutzerdefinierte Methode , die ich genau hier erstellt habe. Und das ist im Grunde nur überprüft, ob die Kraftstoffzeit über 0 liegt oder nicht , wenn die Kraftstoffzeit über 0 liegt, dann wissen wir, dass wir noch etwas Zeit haben wo der Treibstoff tickt. Okay, fair genug. Solange das der Fall ist, werden wir dann die Treibstoffzeit verkürzen , die da drin bleibt, oder? Im Grunde genommen werden wir die angezeigte Flamme verringern die angezeigte Flamme und wie viel Zeit sie im Grunde noch übrig hat. Und wieder einmal haben wir die hat Rezeptmethode, die sich jetzt geändert hat. Sie können sehen, dass dieser hier jetzt die Methode hat Rezept ist. Und das funktioniert ein bisschen anders. Also bekommen wir jetzt im Grunde das Rezept oder die Art des Hobo-Blaster-Rezepts mit einem Inventar. Also hier erstellen wir nur Symbolinventar, das wir im Grunde einfach oder einfacher weitergeben können einfach oder einfacher , denn dies ist natürlich vom Typ, einfacher Inventar oder einfacher Container eher oben, wir passieren nur das alles in und wir stellen sicher, hey, tut das, das ist tatsächlich vorhanden ist, ist eine Übereinstimmung mit dem Inventar , das wir übergeben haben. Unser GUI-Sachen, das da drin ist, passt zu jedem Rezept, das vom Typ Kobaltblast-Rezept ist vom Typ Kobaltblast-Rezept im Grunde das ist, was das hier verfolgt. Wenn es anwesend ist, werden wir hier ein wahres bekommen. Und dann suchen wir nach zwei anderen Dingen. Kann den Betrag in den Ausgabesteckplatz einfügen und kann Artikel in den Ausgabesteckplatz einfügen. Das sind nur zwei sehr leicht zu verstehen. Methoden sagen im Grunde nur: Hey, hol dir den dritten Gegenstand. Wenn es das gleiche ist wie das Ausgabeelement, sagen wir , okay, oder wenn es leer ist, wird es uns auch gut gehen, denn dann können wir einfach die Ausgabe eingeben. Und dann auch diese, die wir im Grunde schon gesehen haben, richtig, kann Betrag in den Ausgabe-Slot einfügen, im Grunde nur überprüft, ist die Max Stack-Größe immer noch? Ist das größer als die tatsächliche Zählung? Ist? Wenn die Zählung plötzlich genau auf die Max Stack-Größe erreicht, können wir nicht mehr einfügen. Dann wird dieser ganze, gesamte boolesche Ausdruck falsch geworden. Aber wenn er Rezept hat, ist wahr, werden wir in diese Lochprobe und dieses ganze Audio eingehen . Nun, da viele Dinge, die Sie sehen können hat zuerst Treibstoff und Kraftstoffschlitz gefragt, richtig, also wenn sich Kraftstoff im Kraftstoffschlitz befindet, wird es ziemlich selbsterklärend sein. Und wenn wir dann keinen Treibstoff verbrauchen , müssen wir zuerst Treibstoff verbrauchen. Und wir setzen die Änderung auch genau hier ein. Weil wir noch einmal geändert werden müssen, sonst werden die Daten Sie nicht speichern. Das ist sehr wichtig. Aus diesem Grund haben wir das Set bei dieser Methode dreimal geändert, sonst funktioniert es nicht richtig. Und dann hier, wenn wir Treibstoff verbrauchen, also das noch einmal, überprüft es nur, hey, verbrauchen wir tatsächlich Treibstoff? Wenn wir es sind, gehen wir, dann können wir den Fortschritt des hergestellten Artikels erhöhen . Wieder einmal ändert sich jedes Häkchen, bei dem wir den Fortschritt erhöhen, den wir verkaufen. Denn wieder einmal muss die Kreditvergabe der Änderung der Fall sein, denn jedes Mal wir den Fortschritt steigern, wollten wir den Fortschritt erneut speichern . Das ist also sehr wichtig. Dann. Sobald der Fortschritt genau hier über dem maximalen Fortschritt liegt , werden wir den Gegenstand herstellen. Das ist also sehr ähnlich. Noch einmal prüfen wir gerade, ob der Fortschritt endlich da ist. Und wenn ja, dann werden wir den Gegenstand herstellen. Und Sie können sehen, dass das Basteln des Gegenstandes sehr ähnlich ist. Wir kriegen immer noch das Spiel hier. Wir sehen, ist dieses Geschenk? Wenn ja, desto mehr hat das Folgende zu tun. Wir extrahieren den Artikel von Spot One. Wir werden den Adam aus dem zweiten Slot extrahieren und den Stapel in Slot 3 auf die tatsächlichen Ergebnisse einstellen , die wir aus dem Rezept gelesen haben. Und dann erhöhen Sie es in diesem Fall grundsätzlich um eins. In diesem Fall ist auch derjenige fest codiert. Sie könnten natürlich auch Ihre benutzerdefinierte Rezeptzahlvariable hinzufügen . Und dann könntest du das entweder dorthin bringen oder so ähnlich. Das würde also auch funktionieren. Und dann beachte auch hier, dass kürzlich der Fortschritt genau hier waren, die kürzlich auf 0 gestiegen sind. Denn sonst werden wir natürlich immer wieder immer wieder ununterbrochen werden, was wir natürlich nicht wollen. Und wir sind in letzter Zeit auch der Fortschritt, wenn wir kein Rezept anwesend haben , nur weil , nun, wenn wir das Rezept herausnehmen und dann der ganze Fortschritt dort bleiben würde. Das ist nicht ganz das, was wir wollen. Und auch die Änderung dort einstellen, oder? Es ist also ziemlich viel. Ich empfehle dringend, dies auch in Ihrer eigenen Zeit durchzugehen . Wenn man sich das anschaut, ist die Tick-Methode hier definitiv, ich habe das Gefühl, dass es in diesem Fall eine sehr gut gemachte Methode ist, oder? Es ist sehr, sehr sauberer Code. Ich meine, mindestens so hoch so sauber wie ich es bekommen habe, um fast gelesen zu werden , als ob man eine Textrate lesen kann, ist wie Okay. Als Rezept in diesem Unternehmen hat Brennstoff und Brennstoff Salz und verbraucht keinen Brennstoff. In diesem Fall könnten Sie sogar die Notiz hier ändern und dann haben eine solche Felder nicht konsumieren. Es ist also etwas einfacher zu lesen, aber das ist eine gute Idee und ein gutes Beispiel dafür , wie man im Grunde etwas einrichten kann und das lesen kann, war natürlich all diese Dinge, oder? Ich könnte das alles hier rein anstelle der has-Rezept-Methode, ich könnte diese setzen, ich könnte das hier setzen, diesen booleschen Ausdruck. Das kann ich genau hier reinlegen. Anstatt den Betrag in den Ausgabesteckplatz einfügen zu lassen , könnte ich das dort hineinlegen. Aber das Problem ist, dass wenn du dir das ansiehst, es mindestens gut fünf Sekunden dauern wird, bis du so bist, wie macht das? Okay, wir holen den Artikel aus Steckplatz 3 und stellen sicher , dass es genau das gleiche ist wie der äußere und oder stellen sicher, dass der Artikel leer ist Kanalisation im Grunde prüfen ob wir jetzt einlegen können oder nicht in den Ausgabeschlitz, okay? Aber Sie können sehen, dass es viel sinnvoller ist, es in einer sehr gut benannten Methode zu beschreiben in einer sehr gut benannten Methode anstatt es einfach dort hineinzulegen. Das ist also nur eine kurze Seite für ein bisschen sauberes Programmierzeug, sauberes Code-Zeug , aber das ist so ziemlich die gesamte Block-Entität. Also das würde jetzt funktionieren. Das Letzte , was wir tun müssen, ist, dass wir dem Bildschirm Sachen hinzufügen müssen. Nun, das werde ich auch überschreiben und ich werde erklären, dass das hier mit mir ertragen wird. Sie können also sehen, dass ich im Grunde das Menü frage, Hey, unser Recrafting, das ist die Methode, die wir hier hatten, oder? Und dann hat wenig Methode sollte ziemlich selbsterklärend sein. Dies sind die Methoden, die im Grunde genommen aus den Daten stammen und dann nur sicherstellen, dass hey, der Herstellungsfortschritt zunimmt oder ist es mehr als 0? Und dann ist der Treibstoff auch nicht mehr als 0. Aber das ist die allgemeine Idee hier. Und dann einmal der Qualitätsblitz genau hier, und dann geraten wir auf ein paar verrückte Sachen, denn jetzt haben wir plötzlich ein paar verrückte Well-Werte hier haben wir x plus 8422, den Offset. Was ist, was ist all diese Verrücktheit? Okay, wir werden das Stück für Stück durchstehen. Wir haben also einen X- und einen Y-Wert. Jetzt bestimmen der X- und der Y-Wert , wo Sie anfangen, etwas zu zeichnen. Was heißt das? Was meinst du mit wo wir anfangen etwas zu zeichnen? Nun, x und y sind in diesem Fall im Grunde immer die obere linke Ecke der GUI. Geh genau hier hin. Und wenn wir dann darüber nachdenken, aber 84 nach rechts und 22 nach unten, gehen wir 84 nach rechts und 22 runter und dann landen wir genau hier. Jetzt weiß ich das gerade gerade. Wieder einmal müssen Sie Photoshop, Paint.NET nehmen und sicherstellen, dass Sie sich ausrichten. Dies wird im Grunde die Pixel zählen. Es gibt keinen anderen Weg, aber wir fangen genau hier an zu zeichnen. Okay, was sollen wir zeichnen? Nun, wir sollten diesen Pfeil zeichnen. Okay, das ist interessant. Wie zeichnen wir das? Nun, zuallererst ist der Offset jetzt das, was wir zeichnen wollen? Also wollen wir hier kaum zeichnen, okay? haben wir gemacht. Was ist der Offset? Der Offset, den Sie sehen können, ist 17614 für eine 176 tatsächlich genau hier, und 14 ist jedoch genau hier. Jetzt kommt es irgendwie zusammen, oder? Wir wollen diesen Pfeil beginnend hier zeichnen. Okay, das ergibt Sinn. Was sind die letzten beiden Werte für die letzten beiden Werte, ist die Höhe und die Breite des Bildes, das wir zeichnen möchten. Eine andere wirklich coole Sache kommt rein, weil wir den Skalenfortschritt genau hier machen. Was passiert ist, dass wir, wenn dies die erhöht, die Breite dieses gezeichneten Pfeils erhöhen. Das ist also das wirklich coole Ding. Wenn ich also einfach nur 2006 setzen könnte und dann wäre das gesamte Gebiet immer präsent. Da wir es jedoch mit dem Skalierungsfortschritt synchronisieren , nimmt die angezeigte Breite zu. Das ist die allgemeine Idee. Ich kann es wärmstens empfehlen, hier mit den Zahlen herumzuspielen, denn sonst sind die Blutalten irgendwann sehr kompliziert zu verstehen, ich muss immer noch mit ihnen herumspielen a ein bisschen. Es ist einfach das, was es ist. Und dann für den Brennstoff gebe ich zu, dass ich im Grunde genommen gerade das Brennstoffmaterial aus dem eigentlichen Ofen habe, weil du hier den maximalen Feldfortschritt hinzufügen und dann deine Waage subtrahieren musst dreimal voranschreiten, einmal für die Höhe, was sinnvoll sein sollte, oder? Denn jetzt subtrahieren wir hier im Grunde die Höhe, sagen wir im Grunde, wir fangen hier an und subtrahieren dann dort unten, solche Sachen. Es ist nur Verrücktheit. Ich kann es nur wärmstens empfehlen. hier noch einmal einen Blick darauf werfen, können Sie sich dafür unbedingt Vanille-Beispiele ansehen . Ansonsten geht es nur ums Experimentieren. Also brauchen wir immer noch ein Rezept. In unserem Datenordner, MC-Kursrezepten, kopiere ich die Cobol-Pickaxe vom Kobaltblaster. Und Sie können sehen, was das bedeutet ist dass wir im Grunde zwei Zutaten haben, sind Typ MC Cobol Kunststoff, und wir haben die Goldspitze und das Kobalt in gutem Zustand. Und wir müssen in dieser Reihenfolge einsetzen, und dann wird der Output ein Kobaltschweine sein. Das klingt also ziemlich cool. Und wie gesagt, du kannst jetzt so viele verschiedene Rezepte machen , wie du willst. Eine der Einschränkungen, sagen wir damit, ist, dass es immer die gleiche Zeit dauern wird. Nun, Sie könnten natürlich auch den maximalen Fortschritt zur JSON-Datei hinzufügen . Sie müssen den Serializer nur ein wenig ändern und diesen dann auch im Grunde hinzufügen. Das funktioniert alles. Dies ist im Grunde nur eine Frage, die Dinge ein wenig zu optimieren und ein paar Dinge zu ändern. Aber jetzt schauen wir mal, ob es uns in Minecraft funktioniert oder findet. Also lasst uns zuerst das eigentliche Kobaltglas einstellen oder runter und alles scheint noch zu funktionieren. Wir können immer noch welche reinlegen. Sehen wir nun Gold Pick X oben und dann unten ein Kobalt England. Und da sind wir los. Der Fortschritt hat begonnen. Wir haben jetzt eine Pick-Axt geschaffen, die wirklich cool ist. Und was Sie sehen können , ist , dass wenn ich noch eine einsetze, nichts passieren wird, weil wir natürlich Achsen wählen werden, die nicht stapeln. Deshalb muss ich das herausnehmen und dann werden wir erst dann wieder basteln. Du kannst sehen, dass der Treibstoff ist, wir werden ständig sinken. Es nimmt also ständig den Treibstoff an. Und was Sie auch sehen können , ist, dass wenn ich zum Beispiel jetzt wieder aus der Welt gehe und wieder reingehe, Sie sehen werden, dass der Treibstoff tatsächlich auf dem gleichen Niveau geblieben ist wie bei zum Beispiel ein Block oder ein Ofen oder so ähnlich. Das ist also ziemlich cool. Also kann ich es mir ansehen und los geht's. Ein Brennstoff wird fortschreiten, ist der gleiche. Und noch einmal kann ich das jetzt einfach einsetzen , weil wir noch Treibstoff übrig haben und diese immer noch so lange herstellen können , wie wir wollen. Und die Kurslebern würden übrigens auch noch funktionieren, alles hier funktioniert genau so, wie wir es wollen. Und jetzt musst du zugeben, dass es ziemlich verdammt cool ist, oder? Dies beginnt also wieder sehr weit fortgeschritten zu werden. Daher empfehle ich dringend, noch einmal Zeit damit zu nehmen , die beiden Methoden, richtig, mit der Block-Entität und der Serialisierung des Kundenrezepts sind hier ziemlich viel. Aber auch abgesehen von ein paar anderen Dingen ist dies wahrscheinlich eines der komplexesten Dinge , die wir wirklich tun können. Ich meine, die Weltgeneration, würde ich eigentlich sagen, ist wahrscheinlich etwas komplizierter, nur weil es manchmal so sein kann. Aber insgesamt denke ich, dass das wirklich cool ist. Du hast hier ein wirklich gutes Beispiel. Lesen Sie den gesamten Code, der Ihnen im GitHub-Repository noch einmal zur Verfügung steht , und auch in einer Einzelperson. Also sieh es dir einfach an, kopiert sich selbst, spiele ein bisschen mit den Zahlen herum. Und hoffentlich wirst du dann einfach ein Gefühl dafür bekommen, wie das alles funktioniert, 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. Also ja. 90. (Fortgeschrittene) Benutzerdefinierte Holz: Alles klar, willkommen zurück zum Futterkurs für 118. In diesem Vortrag werden wir Minecraft individuelles Holz hinzufügen . Obwohl dies ein fortgeschrittenes Thema ist, wird es definitiv ein bisschen einfacher sein als die Blockentitäten und die Serialisierung des Kundenrezepts. Also dachte ich, dass wir hier im Grunde ein oder zwei etwas einfachere Vorträge hinzufügen ein oder zwei etwas einfachere Vorträge hinzufügen werden, bevor wir in die Weltgeneration springen , weil das ein ganzes, ein anderes Biest sein wird. Für unsere Gewohnheit benötigen wir tatsächlich eine benutzerdefinierte Blockklasse, also klicken Sie in unserem benutzerdefinierten Paket mit der rechten Maustaste auf die neue Java-Klasse namens Mod Lambda wird Hitler-Block gedreht, ein langer Name, aber das das, was es sein wird, und dies wird die gedrehte Säulenblockklasse erweitern. Und wir werden einfach den Mauszeiger über diesen konkreten Konstruktor , der uns super nervt. Wir können einfach darauf klicken, Umschalttaste F6 drücken und dann deren Eigenschaften hier für den Namen. Und ich kopiere die drei Methoden, die wir überschreiben müssen. Das heißt, die Methode ist entflammbar wird wahr zurückgegeben. Sie bekommen Entflammbarkeit, müssen fünf zurückgeben und sie werden Feuer ausbreiten. Es muss auch fünf zurückgeben. Warum machen wir das jetzt? Nun, weil alle gedrehten Säulenblöcke, die wir haben, werden wir im Grunde das Holz sein, der Streifen wäre der Baumstamm und der Streifenstamm. All das geht es gut, sie sollten brennbar sein. Standardmäßig sind sie dies jedoch nicht. Ich bin mir nicht hundertprozentig sicher, warum das der Fall ist. Und wir könnten auch anonyme Klassen für jeden von ihnen erstellen , aber das wird nur die Gesamtheit unserer Block-Klasse überladen . Für diese entscheide ich mich also im Grunde, nun, was das in eine Blockklasse oder beide Bretter geht. Und später in einem späteren Vortrag, den Blättern, werden wir das tatsächlich in anonymen Klassen machen. Aber wir werden das in einem Moment sehen wenn unser Motor die Klasse blockiert, lasst uns gehen, um den Cobol-Blaster zu kopieren. Und wir werden dies zum Unterstrich der Kirschunterstriche machen . Und dann das Gleiche, lies dein Kirschblüten-Unterstreichungsprotokoll. Und dann ist dies ein MOD gedrehter oder brennbarer gedrehter Säulenblock. Vor ihnen wird dieser tatsächlich kein Material, sondern einen Block kopieren. Also das wird Blöcke Punkt OK sein, unterstrichen Protokolle, also protokollieren Sie, dass Sie gehen. Und dann werden wir hier tatsächlich Okklusion haben und der Rest wird gut. Das ist also so ziemlich genau das, was wir brauchen. Und dann müssen wir das viermal kopieren , damit wir hier fünf verschiedene Instanzen haben. Die zweite wird sein , dass die Kirschblüte gehen würde und dann auch hier im Namen, Es ist sehr wichtig, dass Sie die Namen ändern. Und dann kopieren wir hier einfach nur aus dem Eichenholz statt aus dem Glog. Das sollte nicht wirklich einen großen Unterschied machen , aber ich mache das immer noch gerne. Dann haben wir den Streifen Kirschblütenstamm unterstrichen. Das wird also der Streifen unter der Switcher-Tastensperre sein . Und dann wird das natürlich auch aus dem Drehbuch kopieren. Ok, sollte das Ego applaudieren. Und dann wird dies der strenge Unterstrich Kirschblüte sein , Holz unterstreichen. Und das ist natürlich auch die, entzogene Cherry Blossom, würden sie es vor sich bringen. Und dann kopiert es nicht zuletzt hier aus dem abgestreiften Eichenholz. Jetzt ist dieser hier nur Kirschblütenbretter. Jetzt ist es wichtig, dass es sich um liberale Planken handelt. Und das ist welcher Block kann das sein? Nun, wenn es eigentlich keinen normalen Block gibt. Und was wir dann tun werden, ist, dass wir das einfach ein bisschen anders formatieren werden. Und das wird natürlich die Flugzeugblöcke von Planken nehmen . Und dann, nach dem zweiten Parameter, was Frauen tun, ist, dass wir eine geschweifte Klammer einsetzen und dann einfach Enter drücken. Ich kopiere es einfach noch einmal. sind also nur die drei Methoden , mit denen wir scanbar sind, Entflammbarkeit und Feuerausbreitung benötigen . Und sehen Sie, dass die Zahlen hier ein bisschen anders sind. Dies ist also auch einer der Gründe, warum wir diesen Block nicht verwenden können. Dies war eine andere, die wir in einem Moment sehen werden. Das ist die allgemeine Idee. Und dann sind alle unsere Blöcke tatsächlich registriert. Das ist also ziemlich cool. Alles in allem, richtig, wir werden dem brennbaren, gedrehten Säulenblock der MOD eine weitere Methode hinzufügen . Und das wird genau hier sein . Also übertrage ich das einfach. Dies steht Ihnen natürlich alles im GitHub Repository und einer Einzelperson genauso gut zur Verfügung. Und das ist das gute Werkzeug, modifizierte Zustandsmethode. Im Grunde genommen ist die Idee, dass wir prüfen ob dies mit einer Axt mit der rechten Maustaste geklickt wurde oder nicht. Wenn ja, dann werden wir im Grunde nur sagen: Hey, wenn das ein Kirschblütenprotokoll ist, werden wir das in einen Strip-Blog verwandeln. Andernfalls, wenn es ein Verlust wäre, dann werden wir es in Kirschblütenholz verwandeln. Das ist die allgemeine Idee hier. Und dann stellen wir nur sicher, dass die Achse in diesem Moment gleich bleibt, wir können nicht, wir werden nicht nur den Standardblockstatus machen dann auch den tatsächlichen Zugriff sendet. Das ist der allgemeine Kern hier. Wenn Sie viele verschiedene Protokolle haben, müssen Sie diese if-Anweisungen theoretisch auch immer hinzufügen. Sie können es auch wie im ACS-Artikel machen. Wenn Sie also tatsächlich Millimol pro Klick auf diesen Unfall anklicken, können Sie sehen, dass es hier einen Block gibt, um die Map zu blockieren. Ich empfehle Ihnen dringend, auch so etwas zu tun. Wenn Sie eine wahnsinnige Menge an verschiedenen Blöcken, Logs haben und im Grunde genommen möchten Sie das entfernt haben , ist das sehr sinnvoll. Ansonsten wird dies momentan für jedermanns Lieblingsteil der JSON-Dateien völlig praktikabel sein . Diese stehen Ihnen natürlich wieder alle im Labor-Repository oder einer Einzelperson genauso gut zur Verfügung. Ich kopiere sie einfach rüber. Insgesamt sind sie nicht so interessant. Natürlich haben wir für alle gedrehten Filterblöcke hier eine Achse, wie Sie sehen können. Und dann zeigt es im Grunde nur auf verschiedene Modelle und dreht den Block um den Block. Das ist alles, was es dazu gibt. Es ist eigentlich all das interessante Zeug genau dort. Und lasst uns auch die Übersetzung hinzufügen, denn sonst werde ich sie möglicherweise vergessen, was wir hier natürlich nicht wollen. Wenn du nur diese Protokolle hinzufügst, würden Planks auch die Skriptvarianten. Die Modelle für die Blöcke sind, naja, ein wenig, während es noch ein paar mehr gibt, sie sind nicht so viele. Wir haben das Holz, das normale Wort, die abgestreiften auch. Lassen Sie uns diese also auch in den Blockordner kopieren . Insgesamt sieben von ihnen. Sie haben im Grunde nur verschiedene Eltern, aber sie haben immer die gleichen Texturen. Das Ende ist also nur der obere Teil des eigentlichen Blocks für das Protokoll. Und dann sind die Seiten im Grunde nur die Rinde um sie herum. Für die Artikelmodelle haben wir natürlich nur fünf Artikelmodelle. Sie sind und sind genau wie das grundlegendste Zeug aller Zeiten. Sie sehen also alle so aus wie dieser Zustand alle zeigen nur auf die normale Blockmodelldatei. Und dann natürlich nicht zuletzt auch die Texturen. Da gehst du. Das sind auch fünf Texturen. Und nachdem wir all das hinzugefügt haben, gibt es noch eine weitere interessante Sache, die wir hinzufügen möchten. Und das wird sein, wenn Sie im Minecraft-Ordner, Tags, Blöcke markieren, und dann kopiere ich das einfach. Dies sind die Protokolle und die Protokolle, die brennen. Wir werden tatsächlich sehen , dass wir hier noch einen hinzufügen müssen . Wie Sie sehen können, deutet dies tatsächlich auf den Kurs Kirschblüten-Logs-Tag hin. Und wir möchten auch hier ein benutzerdefiniertes Tag hinzufügen. Das werden also die Kirschblütenblogs sein , die dies auch überschreiben. An dieser Stelle haben wir das oft gesehen. Und ich möchte nur im Grunde alle unsere Logs hinzufügen . Dies ist auch das Wort und die beschreibenden Varianten. Wenn Sie es zu den Protokollen dieser Verbrennung hinzufügen, können Sie diese im Grunde auch in den Brennstoffschlitz des Ofens platzieren Brennstoffschlitz des Ofens , damit sie grundsätzlich brennen können. Und das ist die allgemeine Idee hier. Und in den Protokollen, wenn wir es brauchen, wenn wir später die Blätter hinzufügen, wird der Mietvertrag nicht verfallen wenn sie sich in der Nähe eines dieser Blöcke befinden, und das ist so ziemlich alles, was wir tun müssen. Also mal sehen, ob es funktioniert. Oder in Frankreich als Mikrowelle kann sehen, dass das ganze Holz erfolgreich zum Spiel hinzugefügt wurde und es sieht absolut fantastisch aus. Sie können also sehen, dass ich es aufstellen kann und lass uns diese Varianten auch sehen. Da gehst du. Und, und auch die Stämme, eher die Bretter, schätze ich. Wenn ich dann mit der rechten Maustaste auf diese klicke, dann kannst du sehen, dass ich auch die Streifen-Varianz bekommen kann. Also funktioniert alles genau so, wie du denkst, dass es so enden würde, wie es beabsichtigt ist, oder? Das war's 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. 91. (Fortgeschrittene) Benutzerdefinierte Zeichen: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft benutzerdefinierte Zeichen hinzufügen . Denn das benutzerdefinierte Zeichen ist, naja, es hat einige Besonderheiten darin, aber wir werden im Grunde genommen genommen einen Blick darauf werfen. Also für benutzerdefinierte Zeichen, aber wir werden brauchen, dass wir vor allem eine Zeichenblock-Entität benötigen. Sie in unserem Entitätspaket mit der rechten Maustaste auf die neue Java-Klasse, die als Modus-Sign Und das wird sich erstrecken. Die Zeichenblock-Entität den Mauszeiger über diesen Create-Konstruktor, der super übereinstimmt, und dann überschreiben wir die Getter-Methode. Hier können wir also noch etwas reinlegen. Also mache ich hier einfach einen Fehler , damit wir das haben. Dann werden wir dafür die Blöcke brauchen. Wir brauchen zwei Blocks hier drüben. Außerdem müssen Sie benutzerdefinierte Blockklassen erstellen. Das kann manchmal sehr nervig für das Schild sein. Ich bin mir nicht sicher, warum es so gut ist, komplex zu machen, aber es ist genau so, wie es sein wird. Dies wird ein stehender Zeichenblock sein. stehende Seitenlappen von Mott verlängert diesen. Wir lassen das einfach so wie es ist. Und hier wollen wir eigentlich nur eine Sache außer Kraft setzen, und das wird die neue Block-Entitäts-Methode sein. Was wir also tun werden, ist, dass wir eine neue Modus-Zeichenblock-Entität mit der Position, dem Staat und dem Staat erstellen eine neue Modus-Zeichenblock-Entität , den sie vor ihnen haben. Das wird gut werden. Und dann werden wir eine andere Klasse erstellen, die den MOD ALL IN-Block ist , der den Wandzeichenblock erweitert. Sie haben vor auch Konstruktoren erstellt, die super übereinstimmen. Wir werden diese Methode auch kopieren . Natürlich steht Ihnen der gesamte Code im GitHub-Repository und einer Einzelperson genauso gut zur Verfügung. Denn jetzt werde ich tatsächlich eine Kardinalsünde machen und das Ding kopieren, was wir in der Schlammblock-Klasse brauchen. Und Sie werden sehen, dass wir auch eine Mod-Holztypen-Klasse brauchen werden , denn wie gesagt, ich weiß nicht warum, aber es ist einfach absolut verrückt, aber keine Sorge, dass wir das durchstehen werden. Also würde Mod Typen geben, und das wird ein statisches Feld haben. Also öffentlicher statischer Typ oder Kirschblüte. Und das ist gleich würde Typ. Diese Rate. Sherry unterstrichen blühen. Das Ego. Das ist alles, was wir hier und dann hier einsetzen müssen. Und dann sollte das in den Schlammblöcken auch funktionieren. Jetzt funktionieren die Blöcke. Was wir jetzt in den Modusblock-Entitäten tun können, kann ich das tatsächlich kopieren. Das ist ziemlich genau das Gleiche wie das. Wie Sie sehen können, haben wir nur das Mod-Zeichen Block-Entitätsjahr das der Sunblock-Entität folgt. Wenn Sie mehrere verschiedene Zeichen haben, müssen Sie diese Blöcke nicht ändern. Sie müssen nur hinzufügen, um zwei Blöcke hier in Betracht zu ziehen , und Sie können so viele hinzufügen, wie Sie möchten. Fügen Sie also im Grunde einfach mehr Blöcke und dann sollte es theoretisch gleich mit diesem arbeiten. Also jetzt hier werden wir nur Mod-Block-Entitäten sagen , Entity Dot get. Und dann sollte das auch für einen anderen Kunden in Ordnung sein , der hier im Grunde genommen eine neue Holzart für neue Blöcke signiert . Und was Sie sehen werden , ist, dass diese Blöcke, anstelle der Registrierungsblock-Methode registrieren, weil wir dafür ein separates Element haben müssen , um die Zeichenelemente zu sein. Ich werde das auch noch einmal kopieren , all dies steht Ihnen im GitHub-Repository und einem Interatrial genauso gut zur Verfügung. Das wird genau hier sein. Nehmen wir uns also einfach die Haltbarkeit weg und stapeln wir uns einfach auf 16, wie es jede andere Linie wäre. Sie können auch sehen, dass das Schild hier tatsächlich erfordert, dass Sie auch den Sinus und das Wandschild einsetzen müssen. Das ist also eine andere wichtige Sache genau hier. Und abgesehen davon haben wir auch noch eine Sache, die noch ein paar Dinge innerhalb des MC-Kurses war , Masse. Also ganz unten hier müssen wir aufrufen würde wichtige Klassenpunktregister eingeben, Modus würde Dot Cherry Blossom eingeben. Wir müssen diese geneigte Einrichtungsmethode registrieren. Und dann müssen wir bei der normalen Einrichtungsmethode zwei Dinge tun. Die Nummer eins ist also der Block-Entitäts-Renderer. Rendert sehr wichtige Renderer. Registrierungsmodus, Entitäten sperren. Jetzt signieren Sie Blockentitätspunkt, und dann der Zeichen-Renderer hier, Doppelpunkt, Doppelpunkt neu. Dann unten wollen wir Blätter aufrufen dot add würde type, mod, mod würde star eingeben, kirschblüte, sie gehen. Und das sollte endlich alles sein , was wir in Bezug auf den Code brauchen. Wir brauchen natürlich immer noch die JSON-Akten. Und wenn es um die Tage und für uns geht, brauchten wir tatsächlich auch die JSON-Dateien für die Blockzustände, um sicherzustellen, dass Sie das haben. Und dann gilt das Gleiche für die Übersetzung. Also lasst uns das einfach hinzufügen. Wir haben die Übersetzung für das Zeichen. Und dann fügen wir einfach auch die Blockmodelle hinzu. Abutments sind eigentlich eine Art interessant. Es gibt also tatsächlich nur ein Blockmodell, da beide auf dasselbe zeigen, weil dieses Blockmodell nur Partikel definiert hat, dies sind die Partikel, die wann gesehen werden du zerstörst das eigentliche Zeichen. Während das Kirschblüten-Zeichen-Artikelmodell so aussieht. So zeigt es einfach auf eine Artikeltextur ist natürlich, wieder einmal bei der Artikeltextur, naja gleich und wir haben das gleiche Element für zwei verschiedene Blöcke. In diesem Fall haben wir hier ein normales Kirschblütenzeichen. Das ist die Item-Textur. Da gehst du. Und das sind all die Dinge , die wir brauchen werden. All das steht Ihnen natürlich wieder zur Verfügung, denn es ist wieder eine sehr kreisförmige Übung und kann irgendwie nervig sein. Also stellte ich fest, dass Zeichen in ihrer Komplexität irgendwie rätselhaft waren . Oder was man am Ende im Grunde damit machen kann. Sie werden tatsächlich eine weitere Textur benötigen. Und das wird die eigentliche Kirsch-Textur im Hintergrund sein. Und das muss wieder unter dem Minecraft-Namespace stehen, also Assets, Minecraft-Texturen. Anstelle des Entitätsordners benötigen wir dann den Ordner „Schilder“. Und dann drinnen drin die Kirschblüte PNG. Und nachdem wir all das hinzugefügt haben, Mal sehen, ob es funktioniert. Oder in Frankreich als Mikrolinse sehen wir, dass der Block hinzugefügt wurde. Jetzt haben wir nicht die richtige Übersetzung, aber das ist natürlich sehr leicht zu beheben. Lasst es uns aufstellen und wir können etwas schreiben. Also zum Beispiel richtig gutes Wort, Pferd und fertig und es bleibt dort. Und wir können es auch hier an eine Wand stellen. Wie Sie sehen können, funktioniert alles gut, genau wie Sie es erwarten würden. Und ich habe auch einfach die Übersetzung hier repariert. Jetzt sollte also alles für die Akte funktionieren , die es bereits für diese Vorlesung hat. Ich hoffe, du hast das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 92. (World Gen) Erstellen eines benutzerdefinierten Tree: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir einem mikrogewohnten Baum einen benutzerdefinierten Baum hinzufügen einem mikrogewohnten Baum einen benutzerdefinierten . Nun, warte eine Sekunde. Wir haben bereits benutzerdefinierte Write in unsere Modellblock-Klasse hinzugefügt , wir können sehen, dass einige Planken die Protokolle haben würden, aber fast alles, was wir bereits haben. Nun, was haben wir nicht? Wir haben keinen Bäumchen und wir haben keine Blätter. Alles klar, also was wir tun werden, ist, dass wir einmal eine Planke über die Kirschblüte kopieren. Und dann kopiere ich auch das Skript genau hier. Wir brauchen einen für die Kirschblütenunterstriche Blätter und gehen dann auch hier im Namen. Natürlich wird das vor ihnen ein Blattblock sein. Sie gehen und dann wird das die Eichenblätter kopieren. Und die Entflammbarkeit davon wird tatsächlich 60 betragen und die Ausbreitung des Feuers wird 30 betragen. Weil die Blätter unglaublich brennbar sind. Und jetzt schauen wir uns den Kirschblüten-Schössling unten an. Das ist also Probenahme. Und dann natürlich auch mit dem Namen, der das in Kirschblütenunterstrich Setzling umwandelt. Dies wird ein Bäumchenblock sein, einen Fehler auslöst, weil wir ihm, wie Sie sehen können, einen abstrakten Baumzüchter und die Klasse geben müssen einen abstrakten Baumzüchter , die wir gerade erstellen werden. Und das geht in unser MC-Kurspaket ein, klicken Sie mit der rechten Maustaste auf ein neues Paket namens world. Und wir haben begonnen , uns innerhalb ihres neuen Pakets namens eater in die Weltgeneration zu wagen innerhalb ihres neuen Pakets namens eater in die Weltgeneration . Und dann werden wir da drinnen ein weiteres Paket namens tree erstellen . Und dort werde ich den Baum in diese neue Java-Klasse namens Kirschblütenbaumzüchter wachsen lassen diese neue Java-Klasse namens , die den abstrakten Baum erweitern wird. Grow wird den Mauszeiger über diese Implementierungsmethoden , da wir die Methode „ Get-konfigurierte Feature“ Und ich meine, das ist so ziemlich alles, was wir tun müssen. Jetzt werde ich hier noch einmal gezielt einen Fehler machen, damit ich nicht vergesse, ihn bei dieser Methode zu übergeben da wir die konfigurierte Funktion, die wir benötigen, noch nicht erstellt haben . Aber was wir tun können, ist, dass wir bereits eine neue Kirschblütenbaumreihe erstellen können eine neue Kirschblütenbaumreihe erstellen , damit hier alles Ordnung ist und die Klasse mehr Blöcke so ziemlich fertig ist. Jetzt sowohl für den Bäumchen als auch für die Blätter, die wir innerhalb der MC-Kursklasse in der Client-Methode benötigen , werde ich über die Explosion kopieren oder hier ausschneiden und wir werden Blätter sagen und wir werden auch sagen den Schössling vor ihnen, dass wir beide die Blätter und den Bäumchen auf Renderschicht-Ausschnitt haben, natürlich. Und dann werden wir zuerst mit der Fertigstellung der Blöcke gleich hier fortfahren . Also werden wir einfach über das Blatt und die Bäumchenblockstufe Jason kopieren . Jetzt stehen Ihnen diese natürlich alle im GitHub Repository und einer Einzelperson genauso gut zur Verfügung. Aber man kann tatsächlich die Blockzustände sehen, sehr langweilig, im Grunde nur normale Block-Staaten. Und wenn es um die Alkylierung geht, so ziemlich dasselbe. Blätter und kleine Blätter auch hier. Dann natürlich ansprechend und verwirrend. Da gehst du. Es gibt auch Modell-JSON-Dateien zu blockieren. Natürlich sind die Blätter wieder ziemlich langweilig, während der Bäumchen etwas interessanter ist, einen Kreuz-Elternteil und eine Kreuzstruktur hat, auf die er hinweist. So ziemlich alles was es gibt. Das Artikelmodell ist auch etwas interessanter, zumindest für den Bäumchen. Wieder einmal sucht der Bäumchen, wie Sie sehen können, jetzt nach einem Extra im Blockordner anstelle des Elementordners, aber die Blätter sind nur normale modale JSON-Dateien, wie Sie sie oft gesehen haben jetzt im Grunde für verschiedene Blöcke. Und dann lassen Sie uns die Texturen auch hier kopieren , nehmen Sie sie einfach. Und dann wären dies so ziemlich alle JSON-Dateien, die wir machen müssen, und wir können jetzt unser Weltpaket fortsetzen. Obwohl der Grund, warum wir ein Weltpaket haben , weil Bäume, wenn man sie spawnt, sind sie wie eine sehr seltsame Kreuzung ein bisschen bereits in der Weltgeneration zu sein. Wenn der Baum also aus dem Bäumchen spawnt, ist er ein bisschen Weltgeneration. So wird es sein. Sie diesmal im Feature-Paket rechten Maustaste auf die neue Java-Klasse namens Mod, der sich gegenseitig konfiguriert hat. Und das wird unser Wohl sein, sind sozusagen beste Freunde. Als Inhibitor wird der eigentliche Baum definiert werden. Jetzt werde ich die eigentliche Definition des Baumes kopieren und ich werde es erklären, während wir weitermachen. Du kannst also sehen, dass das eine Menge Sachen ist, oder? Die Nummer eins möchte ich sagen, wenn es um die Weltgeneration geht, kann es sehr kompliziert sein. Okay, es gibt also viele bewegliche Teile in der ganzen Sache der Weltgeneration. Ich versuche alles Beste aus meinen Fähigkeiten zu erklären. Wenn du jedoch etwas willst, das sehr, sehr, sehr Spezielles ist , wie du es willst, weiß ich nicht, wie deine, um genau bei 35 zu spawnen und du willst genau so viele. Es wird eine Menge Sachen , die du anpassen musst, aber keine Sorgen. Ich bin sicher, dass wir das durchstehen werden. Oder jetzt der Kirschblütenbaum genau hier. Sie können sehen, dass wir Feature-Utils Punktregister aufrufen, Register lesen, im Grunde diese konfigurierte Funktion. Und dann übergeben wir einen konfigurierten Feature-Baum. Also ein konfiguriertes Feature vom Typ Tree-Konfiguration. Wir geben hier die Baumkonfiguration mit einem Builder weiter. Und dann stellt sich die Frage, was sind all diese verschiedenen Dinge? Denk darüber nach. Nun, ein Block sagt Anbieter einfach. Der erste ist der Protokollanbieter, was bedeutet, dass wir im Grunde ein bestimmtes Protokoll bereitstellen müssen , das der eigentliche Stamm dieses Baums ist. Wie wird dieser Trumpf platziert? Nun, wir drucken einen neuen Straight Trunk Placer. Wenn ich die mittlere Maustaste klicke, klicke darauf, du kannst sehen, dass dies den Kofferraum erweitert, um ihre Klasse zu platzieren. Und wenn ich Control H drücke, sollten Sie verschiedene Trunk-Placer-Klassen in Betracht ziehen, was bedeutet, dass Sie theoretisch auch Ihre eigenen erstellen können. Dies ist natürlich wieder einmal etwas, das hier definitiv komplizierter und komplexer ist. Also arbeiten natürlich alle. Du könntest es natürlich machen. Allerdings gibt es. Jetzt geht es nur, an diesem Punkt geht es nicht einmal darum, oh, du musst an dieser Stelle Java-Wissen haben. Wir gehen ein bisschen von fortgeschrittenem zu fortgeschrittenem Java. Die Herstellung von Cousin-Trunk-Platzern und kundenspezifischen Laubplatzierungen beinhaltet im Grunde auch viel Mathematik. Behalte das also im Hinterkopf. Dann der zweite Blockzustand, der hier angegeben ist, der dritte Parameter sind die Blätter, und diese werden platziert, aber abhängig von den Laubplatzierungen, klicken Sie erneut mit der mittleren Maustaste auf das Laub Placer und Sie können sehen, dass es verschiedene Arten von Laubplatzierungen gibt. So werden die eigentlichen Brunnen, Blätter abgelegt. Und das ist so ziemlich alles, was es dazu gibt. Und nun, dann ist der letzte hier die Feature-Größe der beiden Layer. Was ist das? Nun, ich bin mir nicht hundertprozentig sicher. Dies schränkt also grundsätzlich ein , wo dies platziert werden kann. Das ist die allgemeine Idee. Aber das Jahr, einige Dinge in der Gesamtheit der, sagen wir mal, Generationen entziehen sich mir immer noch. also keine Sorgen. Was auch immer der Fall sein mag, dies ist jetzt die Funktion, die genau hier im Cherry Blossom Tree zurückgegeben werden muss, die Mod konfigurieren Feature jede Blüte drei, und das sollte so ziemlich sei es. Jetzt so verrückt es klingt, das sollte es sein, das ist erledigt. Und jetzt wurde der Baum schon von einem Bäumchen hervorgebracht. Sie sind wichtig, es wird noch nicht auf der Welt spawnen . Wir werden es in diesem Vortrag nur schaffen , dass es aus dem Schössling spawnt , damit wir Knochenmehlausweis oder ein aus einem Bäumchen wachsen können . Also würde ich sagen, mal sehen Für Arbeiten, oder wir befinden uns in Mikrovesikeln. Sehen Sie, dass die Kirschblüten-Setzlinge gut zum Spiel hinzugefügt wurden . Mal sehen, ob ich sie mit einem Bäumchen spawnen kann. Und da ist es, wenn ich Knochenmehl daran funktioniert. Jetzt die wirklichen Fragen, denke ich, dass dies ein wenig eng platziert ist. Und auch wenn Sie genau hören, müssen Sie das Material tatsächlich für eine Sekunde ändern. Dies benutzt immer noch das Plankenmaterial. Das stimmt also natürlich nicht ganz . Lasst uns folgendes machen. Lassen Sie uns eine Spielregel durchführen, zufällige Tick-Geschwindigkeit, und erhöhen wir sie einfach. Und mal sehen, ob das von selbst wächst. Aber es scheint, als würde der Bäumchen nicht von alleine wachsen. Dies hat wahrscheinlich mit dem eigentlichen Material zu tun , von dem es kopiert wird. Also lasst uns das einfach schnell beheben. Jede Aufsicht genau hier, wie Sie sehen können, blockieren Verhaltenseigenschaften, Kopieren von Blöcken entfernt, OK. Nein, das muss Eichenbäumchen sein. Dann nimmt es alle Eigenschaften vom Eichenbäumchen. Und das einzige, was es braucht ist das hier, zufällige Tics. Sonst wird es nicht zufällig dauern. Also gehen sie und wenn wir das hinzugefügt haben, als nur der Vollendung willen, mal sehen, ob es wächst oder ob es wieder in Minecraft landet. Und mal sehen, ob wir die Tick-Geschwindigkeit loslassen können. Mal sehen, der wächst, lass uns gehen. Also funktioniert alles genau so, wie man es erwarten würde die Setzlinge, die natürlich wachsen, auch laufen. Und was sehr wichtig ist, ist, dass die letzte Vorlesung vor oder zwei Vorträgen, als wir die Protokolle hinzugefügt haben , genau hier, die Kirschblütenstämme, es war sehr wichtig, dass wir hinzugefügt haben auch zu den Block-Tags. Also die Tags für die Protokolle genau hier, und wir verweisen im Grunde auf die Kirschblütenprotokolle, was ein Tag ist, das wir in unserem MC-Kurs Oda haben. Und genau hier die Kirschblütenblöcke, sehr wichtig, dass dies hier drin ist, denn wenn Sie das nicht haben, werden die Blätter automatisch zerfallen. Auch wenn sie sich neben dem Protokoll befinden. Das Protokoll muss sich in diesem Tag befinden. Andernfalls funktioniert es im Logs-Tag nicht. Sehr wichtig. Aber sonst wäre das 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. 93. (World Gen) Benutzerdefinierte Baumgeneration: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft benutzerdefinierte Baumgenerierung hinzufügen . Also haben wir den Baum vom Bäumchen hinzugefügt. Jetzt ist die Frage, wie der FREC, werden wir es in die Welt bringen? Nun, eigentlich nicht so verrückt. Lassen Sie uns zunächst in unsere Mod-konfigurierte Feature-Klasse gehen , die genau hier ist. Wir benötigen eine neue konfigurierte Funktion. Was jetzt sehr wichtig ist, ist folgendes. Wir können uns tatsächlich einige Beispiele für die Regeneration von Vanille ansehen . Ich empfehle dringend, einen Blick darauf zu werfen. Aber was wir zum Beispiel in der Feature-Class tun können, können wir in die Feature-Class einsteigen und uns alle Features ansehen. Und die Funktionen, die du nicht so interessant bist. Interessant ist zum Beispiel, wo das Baum-Feature verwendet wird , das unsere mittlere Maustaste darauf klickt, dann können Sie sehen, dass es in der Tree-Feature-Klasse verwendet wird. Sehr interessant. Und Sie können dort sehen, dass es im Grunde genommen eine Reihe von Orten gibt , an denen dies verwendet wurde. Gehen wir zum Beispiel einfach hier zum OK, und Sie können sehen, dass es sich bei diesem um ein Feature-Utils Register handelt . Es sieht sehr ähnlich aus wie wir hier gemacht haben. Und das ist so ziemlich genau das, was wir getan haben. Diese hat also in diesem Fall eine spezielle Methode oder alle Funktionen, die er verwendet. Aber was, genau das haben wir hier. Können wir das jetzt benutzen? Wo nützt das jetzt? Nun, ich bin, wenn ich noch einmal mit der mittleren Maustaste klicke, kann man sehen, dass dies zum Beispiel in den Baumplatzierungen verwendet wird . Und das ist die AUC überprüft. Genau das müssen wir jetzt grundsätzlich umsetzen. Nun, wenn ich genau hier darauf eingehe, können Sie sehen, dass dies plötzlich ein Feature ist, das faszinierend ist, oder? Was getan wurde, ist, dass die Weltgeneration ein wenig getrennt wurde, Weltgeneration ein wenig getrennt wurde dass Sie jetzt Funktionen platziert und Funktionen konfiguriert haben. Und Sie können sehen, dass dieses Ort-Feature in diesem Fall tatsächlich die Baummerkmale OK verwendet, nach Glück filtern, Überleben und dann den Eichenbäumchen. Aber was heißt das genau? Die allgemeine Idee hier ist, dass die Überprüfung dieses Ortsmerkmals im Grunde nur auf bestimmten Blöcken platziert werden kann auf bestimmten Blöcken platziert werden in denen der Eichenbäumchen auch überleben könnte. Das ist wirklich häufig, cool zu tun. Und wo wird das dann verwendet? Nun, das wird hier wieder in den pflanzlichen Merkmalen verwendet . Das ist also in diesem Fall sehr lang . Aber das ist nur theoretisch. Sie können sehen, dass dies plötzlich ein weiteres konfiguriertes Feature ist. Nehmen wir zum Beispiel einen, der hier nicht zu lang ist . Sie sind alle ziemlich lang. Nehmen wir die Wiesenbäume und dann kann ich mit der mittleren Maustaste darauf klicken und dann haben Sie eine weitere Polizeifunktion. Im Grunde genommen, woher wir gehen , ist, dass wir von den Bäumen in bestimmten Bereichen Wir werden von der konfigurierten Funktion zu einem Place-Feature übergehen , um Feature zu einem platzierten Feature zu konfigurieren. Weil ich Feature platziert habe, muss es auf der Welt sein, oder? Es kann nicht sein, du kannst es nicht haben, nicht auf der Welt zu sein. Im Grunde habe ich das ein bisschen anders gemacht. Ich habe diese Ort-Funktion ausgeschnitten und es im Grunde genommen so gemacht , dass wir von dieser konfigurierten Funktion für ein anderes konfiguriertes Feature wechseln für ein anderes konfiguriertes Feature dann zum Place-Feature gehen, das ist kein 100 Prozent richtig, aber es ist fast richtig. In den MOD konfigurierten Funktionen werde ich das noch einmal kopieren und erklären, was ich im Grunde getan habe. Sie können also sehen, dass dies der überprüfte Kirschblütenbaum ist . Und Sie können sehen, dass es auch nach einem Blocküberleben filtert. Sie können sehen, dass die allgemeine Idee nur ist, dass diese konfigurierte Funktion jetzt, nun, es wird, wissen Sie, es hat eine Chance von 10 Prozent, diesen Ort einzunehmen Feature und Versuch und 90 Die prozentuale Chance, diesen Ort einzunehmen wird offensichtlich immer das gleiche Merkmal sein. Also das nur ein bisschen ein Hack. Es ist wahrscheinlich nicht der sauberste Weg, dies zu tun, aber auf diese Weise habe ich es gefunden, ohne eine weitere Platzfunktion als eine Konfigurationsfunktion und ein anderes Platz-Feature hinzufügen zu müssen weitere Platzfunktion als eine Konfigurationsfunktion und ein anderes Platz-Feature und so weiter und so weiter, weil es tendenziell sehr kompliziert wird. Sie können jedoch immer der Vanille-Vorlage folgen , die auch sehr zu empfehlen ist. Man muss einen Blick in die Weltgeneration werfen. Du musst dir die Kurse ansehen, oder? Sie können auch in die mittlere Maus des Pakets gehen, klicken Sie darauf und Sie können alle Funktionen hier sehen . Wir können zur Platzierung gehen, wir können in das Platzierungspaket gehen. Sie können alle Platzierungen genau hier sehen. Wir können in die Generation zu den pflanzlichen Merkmalen gehen. In den Funktionen können wir wieder zu den Platzierungen gehen. Es gibt das sollte auch in der Platzierung richtig sein. All dies haben wir Ihnen zur Verfügung. Sie müssen einen Blick darauf werfen, dass die Generation der Welt an bestimmten Stellen wirklich kompliziert wird . Und man muss sich nur die Vanille-Beispiele ansehen. Dies ist wahrscheinlich eine der besten Ressourcen, die Sie haben, und es ist in Ordnung, was auch immer der Fall sein mag, wir haben jetzt die konfigurierte Funktion. Wir brauchen jedoch immer noch ein Place-Feature, das das Feature-Paket überlappt rechten Maustaste auf eine neue Java-Klasse, die als modale kleinste Eater bezeichnet wird der rechten Maustaste auf eine neue Java-Klasse, die als modale kleinste Eater bezeichnet wird, und fügen Wir werden ein neues erstellen, uns für eine Weile genau das platzieren, was wir haben und das wird noch einmal folgen, wir kopieren den gesamten Code, der Ihnen im GitHub-Repository zur Verfügung steht und eine Einzelperson genauso gut. Oder das ist nicht so kompliziert. Sie können sehen, dass wir ein Placement Utils Punktregister nennen und dann die Kirschblüte platziert werden, und dann nehmen wir den Baum überprüft. Dies ist also die konfigurierte Funktion, die entweder dieses Ort-Feature oder dieses Ort-Feature zurückgibt , oder? Also der Filter nach Blocküberleben. Das stimmt genau. Genau das wollen wir. Wir werden also nur Bäume haben, die laichen, wo der Kirschblütenbäumchen platziert werden könnte. Das ist die allgemeine Idee hier. Und dann machen wir dies zu einem Ort, indem wir die pflanzliche Dekoration Baum Platzierung hinzufügen. Und dann fügen wir nur Count extra hinzu. So viele Bäume werden also spawnen. Aber wenn ich mich nicht irre, bedeutet das, dass dies bedeutet, dass im Durchschnitt ein Baum pro Stück mit einer 10-prozentigen Chance spawnen sollte , zwei weitere Sport zu haben. Ich glaube, so funktioniert es. Ich bin mir nicht hundertprozentig sicher, aber Sie können sich auch die Baumplatzierungsmethode genau hier ansehen und sehen , dass dies im Platzierungsmodifikator eine Stelle ändert oder diesen Fall. Wir können dann in den Platzierungsmodifikator gehen und wir können sehen, naja, okay, das verrät nichts. Nun, drücken wir Control H. Und plötzlich können wir eine Reihe verschiedener Platzierungsmodifikatoren sehen. Es gibt sogar Platzierungsfilter, die ich wirklich cool finde. Sie können also Dinge wie Seltenheitsfilter haben, die im Grunde genommen alle so viele Brocken, ich glaube, dass es so funktioniert. Und dann kannst du die wiederholte Platzierung haben. Einige geräuschbasierte Zählungen. Unglaublich cool, einfach absolut häufig, erstaunlich. Es gibt eine Menge Sachen hier. Wieder einmal versucht das Experimentierfreudige , ohne einen Blick auf den Vanilla-Code zu werfen, wie Klassen verwendet werden, das nur wärmstens zu empfehlen. Jetzt wurde das platzierte Feature erstellt, aber irgendwie müssen wir es genau generieren. also in unserem Weltpaket rechten Maustaste auf ein neues Paket namens Jen. Dies bildet dann das Weltpaket. Ich weiß wirklich klug gesprochen. Und dann werden wir da drin eine neue Java-Klasse erstellen , die als moderne Baumgeneration bezeichnet wird . Und dann wird das wie folgt aussehen. 1 Sekunde, ich werde die ganze Methode hier kopieren, aber ich werde alles erklären. Dies ist also das Biom-Ladeereignis. Nun, wir werden das in einem Moment nennen. Aber was Sie sehen können ist, dass es eigentlich nicht so kompliziert ist, oder? Das spawnt also den eigentlichen Baum. Okay? Was wir tun werden, ist, dass wir einfach den Ressourcenschlüssel aus diesem speziellen Biom beziehen, das wir gerade laden, oder? Und dann werden wir nur sichergehen, hey, ist dieses Biom das tut, enthalten die Typen dieses Bioms Platten, aber im Grunde genommen in allen verschiedenen Arten von Ebenen Biom, ich denke, Ja, lass uns das Kirschblüte platziert Feature genau dort. Diese beiden Anrufe also, oder? Daher ist es der erste Schritt, die Basis der Listen zu erhalten Merkmale des Lieferanten für , die Merkmale des Lieferanten für die pflanzliche Dekoration hier, und dann besteht der zweite Schritt darin unsere platzierte Funktion hinzuzufügen. Dieses Recht, das, diese beiden Löcher hier, diese fügen dem jeweiligen Biom tatsächlich das Platzmerkmal hinzu. Dieses Jahr filtert natürlich nur. An diesem Punkt sollte das nicht zu verrückt für dich sein. Wenn ja, meinst du, nun, ich möchte eigentlich, dass mein Baum in einem anderen Biom spawnt. Man muss einfach anders filtern, oder? Sie können diese if-Aussage also einfach wegnehmen. Du könntest es einfach ein bisschen ändern. Sollte nicht zu verrückt sein. Alles in Betracht gezogen. Und was wir tun werden, ist, dass es in unserem Beispiel nur im Flachbiom oder in verschiedenen Ebenen Biomen im Grunde genommen hervorgebracht wird . Aber wo nennen wir das jetzt? Nun, im Weltpaket klicken Sie mit der rechten Maustaste auf neue Java-Klasse, die als moderne Weltereignisse bezeichnet wird Und da drinnen werden wir zuerst den Add-Modus hinzufügen. Und dann sagen wir, dass die ID des Punkt-Ereignisbus-Abonnenten entspricht der MC Core Smart Touch ID. Dann werden wir eine öffentliche statische Lücke haben. Würde Biom-Lade-Ereignis mit einem letzten Biom-Ladeereignis, cooles Ereignis. Und das wird hier für diese Anmerkung ein Abonnement-Event ganz oben haben . Und dann werden wir Modellbaum-Generation an unseren Januar-Bäumen sagen und wir werden bei der Veranstaltung vorbeigehen. Und jetzt könnte man sagen, das kann es nicht sein. Es ist jedoch alles , was wir tun müssen. Nun, natürlich, die ganz besonderen Dinge ziemlich kompliziert, oder? Sie haben also verschiedene Platzierungs-Utils, verschiedene Baumplatzierungssachen mit einer anderen konfigurierten Funktion. Obwohl es viel zu tun hat. Wenn man jedoch wirklich darüber nachdenkt, ist es eigentlich nicht so verrückt. Alles in Betracht gezogen. Wie gesagt, wenn Sie grundsätzlich eine andere Filterung wünschen oder möchten, dass Ihre Bäume andere Biome spawnen, müssen Sie hier einfach anders filtern. Ich meine, im Grunde haben Sie das Biom-Load-Ereignis. Sie sollten also, wissen Sie, Sie den Ressourcenstandort des Iamb grundsätzlich zur Verfügung haben . Theoretisch sollten Sie also in der Lage sein die Filterung hier einfach zu ändern. Wenn wir also in nur einer Sekunde nach Minecraft gehen, denken Sie daran, eine neue Welt zu erschaffen, denn wir haben uns mit der Weltgeneration durcheinander gesetzt , nur für den Fall, dass es in der alten Welt immer noch funktionieren sollte , wenn wir teleportiere weit genug weg, aber trotzdem nur für den Fall, lass uns eine neue Welt erschaffen und mal sehen, ob der Baum erzeugt wird. Oder ein Apotheker, ein Minecraft, und da ist er los, wir laichen bereits in einem Sonnenblumenflugzeug-Biom. Also los gehst du. Die Bäume laichen und gut, dass es ihnen so ziemlich zeigt. Ja, es funktioniert ziemlich genau so, wie man es erwarten würde. Sie laichen also nur in Flugzeugtypen, Biome fliegen tatsächlich dorthin weil die Platzierung ein bisschen komisch aussah, aber eigentlich sollte es nicht sein. Sie können also sehen, oder sie wachsen einfach glücklich an den Orten, an denen sie können, sie können wachsen. sind vielleicht ein bisschen zu nahe beieinander, aber wer weiß? Ich meine, an diesem Punkt ist es ziemlich cool. Und noch einmal eine sehr wichtige Sache. Sie müssen immer mit den Zahlen herumspielen , wenn es um die Weltgeneration geht. Weil du vielleicht nein bist , nein, das viel zu viele Bäume. Weißt du, du musst nur mit der Zählung herumspielen , aber insgesamt laichen die Bäume. Also eine besondere Sache, mit der ich sagen kann, wenn es um die Generation hier geht, was du tun könntest, wenn du zum Beispiel willst, dass dein Baum unglaublich selten ist, du könntest es 0 machen und dann haben so etwas wie eine Wahrscheinlichkeit von 0,1%, dass ein anderer Baum so etwas spawnt. Aber natürlich, weißt du, du kannst einfach herumspielen, ist auch sehr zu empfehlen. noch einmal einen Blick auf die verschiedenen drei Generationen von Vanille, oder? Das ist immer etwas , das Sie sich einfach ansehen können. Ich kann das nicht genug betonen. Du hast dir das ganze Vanillezeug zur Verfügung. Schau dir das an und du wirst hoffentlich in der Lage sein die Baumgeneration deiner Träume zu erschaffen. Aber das wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast diese nützlichen Neuronen des Neuen gefunden. 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. 94. (World Gen) Benutzerdefinierte Flower: Alles klar, willkommen zurück zum Futterkurs für 118. In diesem Vortrag werden wir einen Blick auf die Blütengeneration der Mehlgeneration werfen, nun, ein anderer Teil der Weltgeneration wird sehr interessant sein. Gehen wir also in unsere konfigurierte Feature-Class ein. Und hier werde ich noch einmal kopieren, aber alles wie immer steht Ihnen im Repository zur Verfügung und auch eine Einzelperson passt sich an. also keine Sorgen. Aber was wir tun werden, ist, dass wir einfach die Tintenzeilen kopieren . Jede Reihe genau hier. Man sieht, dass es tatsächlich ziemlich lang ist. Mal sehen, ob ich so etwas machen könnte. Jetzt. Nun, da gehst du. Also so etwas. Sehen Sie, wir verwenden die Feature-Flower noch einmal, um eine Konfigurieren-Funktion zu erstellen, diesmal der zufälligen Patch-Konfiguration mit ein paar Versuchen, einige verbreiten sich genau hier. Was Sie also sehen können, ist im Grunde, wenn ich einfach in die Blume gehe, also Millimol pro Klick darauf und dann noch einmal mit der mittleren Maustaste klicken. Wir können zum Beispiel sehen, dass wir hier einen gewissen Mehlwert haben. Wir können sehen, was ist das? Dies wäre also eine zufällige gewichtete Liste für Gras-Patch. Nun, lasst uns, wir können nicht wirklich sehen, was hier los ist, aber wir können sehen, was hier los ist. Eine zufällige Patch-Konfiguration, 96 Spread 6, 2. Und dann haben wir diesen wahnsinnig verrückten einfachen Block hier konfiguriert und sehen, dass wir eine einfache Blockkonfiguration erstellen . Und dann drinnen hier, ein Lärmanbieter und sieh dir diese Verrücktheit an, oder? Sieh dir das Verrückte an. Also haben wir im Grunde nur verschiedene Blöcke , die wir dort spawnen. Die Idee der zufälligen Patch-Konfiguration besteht in der Regel darin, dass Sie mehrere verschiedene Blumen hinzufügen. Nun, in unserem Fall füge ich tatsächlich nur eine Blume hinzu. Also weißt du was, ich werde die Versuche hier tatsächlich reduzieren , um 32 zu sagen, nur für den Fall. Und nicht so viele von ihnen werden im Grunde besitzen. Lass uns so etwas machen. Das wird gut werden. Jetzt ist dies immer noch eine konfigurierte Funktion, und natürlich müssen wir daraus eine Polizeifunktion erstellen. Wir gehen also wieder in die Feature-Class zurück und schauen uns die Blume an. Gehen wir einfach zur Standardeinstellung. Wo heißt das jetzt natürlich in der pflanzlichen Platzierung. Nehmen wir also einfach das, unser Warm hier und dann können wir im Grunde sehen, dass dies eine Zeile wie 71. Eigentlich sind es eigentlich 70. Da gehst du. Und dann können wir im Grunde sehen, dass wir hier einmal alle x in quadratische Platzierung, Ausbreitung, Höhenkarte und dann Biomfilter in die Schwerkraft hier einmal alle x in quadratische Platzierung, Ausbreitung, setzen. Was ich normalerweise mache, um das im Grunde vorzubereiten, kopiere ich einfach alles und sehe dann einfach, was ich da hineinlegen muss. Nun, was ich habe, ist, dass ich die folgenden Funktionen in unserem Modus habe, wir können das hier grundsätzlich hinzufügen. Also wird die rosa Rose platziert. Sie können also sehen, dass ich das auch habe und das einzige, was ich von der Platzierung nicht habe, ist der Seltenheitsfilter. Nun, lasst uns nur aus Gründen der Argumentation auch dies tun. Fügen wir also einfach den Ableitungsfilter hinzu. Ich kopiere das noch mal. Ich lege das hier rein. Weil das Coole an den Platzierten ist, dass man diesen Punktpunkt an der Stelle sieht. Das bedeutet, dass wir hier so viele Platzierungsmodifikatoren einsetzen können so viele Platzierungsmodifikatoren , wie wir es gerne hätten, das ist das wirklich Coole an dem Ort. Aber wenn Sie eine konfigurierte Funktion haben und einen Punkt platzieren, können Sie so viele verschiedene Platzierungsmodifikatoren eingeben , wie Sie möchten, was wirklich verdammt cool ist. Und jetzt haben wir diese platzierte Funktion für die Blume, aber wie werden wir es in unserem Jenna-Paket spawnen , klicken Sie mit der rechten Maustaste auf eine neue Klasse namens Modusblume, Blumengeneration. Dann werde ich das noch einmal kopieren, ich werde die Methode genau hier kopieren. Aber das ist ziemlich genau das Gleiche wie die Baumgeneration. Denn natürlich sind Blumen auch pflanzliche Dekoration und wir fügen nur noch einmal an der rosa Rosenstelle genau dort hinzu. Das sollte ziemlich selbsterklärend sein. Alle Dinge, die in Betracht gezogen wurden, waren wieder einmal, nur in Flugzeugen. Und lass uns zu den MOD-Welt-Events gehen. Und nennen wir das einfach, es spielt in diesem Fall keine Rolle, in welcher Reihenfolge wir sie nennen, denn sie sind beide der gleiche Generationsschritt genau hier. Sobald wir im Grunde bei den Rudern sind, werden Sie sehen, dass, weil dies ein anderer Generationsschritt ist , die Reihenfolge genau hier aufrechterhalten müssen . Aber das ist es tatsächlich. Das ist alles, was wir für die rosa Rose brauchen. Empfehlen Sie erneut dringend, einen Blick auf alle Vanille-Beispiele zu werfen. Es gibt so viele von ihnen. Schau sie dir einfach an. Glückliches Zeug vorbei, probiere ein paar Sachen aus. Probieren Sie vor allem eine Reihe von Werten aus. Und dann sieh einfach, was dort im Grunde passiert. Aber um der Vollendung willen, schauen wir mal, ob es funktioniert, oder? Und vergessen Sie auch nicht, dafür eine neue Welt zu schaffen , denn natürlich haben wir uns wieder einmal mit der Weltgeneration durcheinander gesetzt. Mal sehen, ob wir unsere Blumen oder Straftaten in einem Flugzeug finden können , das ist mein Zuhause und das sind sie schon. Wir haben rosafarbene Rosen gefunden, die im Biom der Ebenen laichen. Es gibt noch ein paar mehr hier. Und mal sehen, es gibt noch mehr da. Lass uns noch etwas mehr finden. Sie sind etwas seltener als ich mit 32 erwartet hatte, aber das ist natürlich völlig in Ordnung. Wieder einmal können Sie die Zahlen einfach anpassen. Ich glaube, dass hier auch drei drin sind. Ja, da sind sie auch. Das ist ziemlich cool. Das ist also wirklich großartig und es ist so ziemlich wie die Blumengeneration funktioniert. Noch einmal empfehlen wir es, einen Blick auf das Vanillezeug zu werfen. Und du musst nur mit den Zahlen herumspielen, bis du es gut zu einer Generation bringst , die du gerne hättest. Aber sonst wäre das 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 aber in der nächsten Vorlesung. Ja. 95. (World Gen) Benutzerdefinierte Ore: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in diesem Vortrag werden wir Minecraft Custom oder Generation hinzufügen , für das, auf das Sie alle gewartet haben. Ich denke ja, zumindest ist die Ordination einer von ihnen im Grunde immer die meisten Anfragen ein Thema aus vielen von ihnen, im Grunde genommen diejenigen, die ich definitiv im Grunde tun werde. Und während, wie machen wir das oder die Generation, wohin gehen wir hin? Nun, zuerst einmal die Funktion wieder konfiguriert, und hier drin werde ich zwei Dinge kopieren und dann werde ich es natürlich auch erklären. Aber Nummer 1, wir benötigen eine Liste oder Konfiguration eines Zielblockstatus. Was der FREC ist das, nun, wir brauchen das, denn wenn wir eine bestimmte Reihenfolge oder Konfiguration haben , brauchen wir diese Erze tatsächlich, weil wir wissen müssen, okay, in welchem Rockzustand sollte platziert werden, Stein, in welchen Blöcken es in einen Tiefschlaf gelegt werden sollte. Deshalb brauchen wir diese Liste im Grunde genau hier, so einfach wie das. Und dann haben wir die konfigurierte Funktion, deinen Roboter. Oder jetzt müssen wir dies natürlich noch zu einem platzierten Feature machen. Aber das ist schon eine interessante Sache und das ist die Größe. Das sollte also die durchschnittlichen Venenseiten sein, wenn ich mich nicht irre. Behalte das also genau hier im Hinterkopf. Und wir können uns auch den Brunnen oder das Feature hier ansehen . Also mittlere Maustaste darauf klicken und dann mittlere Maus, mittlere Maustaste darauf klicken und dann können Sie sehen, dass dies alles in den Bestellfunktionen verwendet wird. Aber schauen wir uns zum Beispiel etwas an, das interessanter ist, zum Beispiel den oder Redstone. Also ist alles Redstone mit einer neuen Liste von Redstone-Erz konfiguriert von Redstone-Erz und Redstone springt spät oder okay, fair genug. Und jetzt ist die Frage, wo nützt das? Nun, das wurde bei der Auftragserteilung verwendet. So kannst du das Redstone-Erz sehen. Und was Sie auch feststellen werden, ist, dass es zwei verschiedene Platzierungen für dasselbe gibt zwei verschiedene Platzierungen oder Sie sogar haben, oder Diamant- oder Diamant - oder Diamantvogel. Daher ist es sehr wichtig , dass Sie einfach mehrere für dasselbe oder ähnliche Ortsmerkmale hinzufügen oder ähnliche Ortsmerkmale mit denen unterschiedliche Funktionen verbunden sind. Also schauen wir uns 41 und 42. Also lasst uns einfach hier rein gehen. Wir können sehen, dass dies eine gemeinsame oder gemeinsame Platzierung oder Platzierung ist. Und dann gibt es sogar eine seltene oder Platzierungsmethode , die sie im Grunde nennen. Wir werden so etwas in nur einem Moment sehen. Aber Sie können das als eine Bereichsplatzierung mit dieser Uniform und einem Dreieck sehen eine Bereichsplatzierung mit , wie Sie sehen können. Es gibt also verschiedene Arten der Platzierung im Grunde für den Höhenbereich. Und dann sagt man im Grunde einfach, okay, von welchem Bereich bis zu welchem Bereich sollte der Umfang sein. Und das ist so ziemlich die Idee dort. Es ist also ziemlich cool und du kannst noch einmal Sachen kopieren, ein paar Sachen ausprobieren und dann die gemeinsame oder Platzierung der mittleren Maustaste sehen . Klicken Sie darauf. Sie können sehen, dass es nur eine private Methode ist. Was wir tatsächlich tun müssen, ist, dass wir alle drei dieser Methoden kopieren müssen alle drei dieser Methoden bei denen ich zumindest das tun werde. Ich kopiere all diese Methoden und klicke mit der rechten Maustaste auf Kopieren. Und dann gehen wir in die Feature-Class und ich erstelle einen benutzerdefinierten Modus oder eine Platzierungsklasse. Und dann werden wir einfach die Methoden hier drin kopieren und wir werden alle öffentlich machen, damit wir sie im Grunde für unsere eigenen Erze verwenden können , weil sie unser Leben einfach zu einem machen winzig bisschen einfacher, nicht 100 Prozent, aber es ist nur ein bisschen. Und nachdem wir das kopiert haben, können wir nun die Funktion Konfigurieren verwenden, können wir nun die Funktion Konfigurieren verwenden um ein Platz-Feature zu erstellen. In unseren modellplatzierten Features werden wir also das einfach kopieren und ich werde es natürlich noch einmal erklären. Also los gehst du. Wir haben ein Kobalt oder platziert, das wir wieder beim Kobalt registrieren oder hier platzieren werden. Und dann nehmen wir einfach das Kobalt oder das wir genau hier gefunden haben, die Funktion „Konfigurieren“. Und wir werden es mit dem Common oder Placement platzieren. Dieses Jahr sollten die durchschnittlichen Adern pro Stamm sein, wie ich es jetzt verstehe. Und was du vielleicht sagen würdest, Warte, wie bringst du es zu den negativen 80? Nun, mit einem Dreieck, aber wie funktioniert das? Nun, was Sie vielleicht gesehen haben, wie Sie dieses Bild gesehen haben, das zeigt, in welchen Höhen die Orange jetzt spawnt. Und die Idee ist, dass wenn man hier ein Dreieck macht, der untere Punkt bei negativ 80 liegt und der Punkt oben bei 80 liegen wird. Und dann wird das Dreieck auf einen Punkt bei grundsätzlich 0 kommen. Theoretisch sollte also passieren, dass das meiste Kobalt bei 0 spawnen sollte und dann immer immer weniger werden sollte. Das, weißt du, es wird hier im Grunde genommen ausgeglichen werden. Dies ist also im Grunde nur ein Punkt, um die Hortensien-Platzierung und die mittlere Maustaste zu machen . Klicken Sie darauf und Sie können tatsächlich sehen, dass es hier auch Add gibt.gov und dann einen anderen Höhenanbieter. Werfen Sie einen Blick auf den Hypervisor. Also drücke ich Control H. Und es gibt die Neigung nach unten, sehr voreingenommen zur unteren Trapezhöhe, gleichmäßige gewichtete Listenhöhe und konstante Höhe. Absolut erstaunliche Funktionalität, die Sie haben. Sie können Ihren Spawn auf ganz besondere Weise machen , wenn Sie möchten, dass sie wärmstens empfehlen, sich dies anzusehen. Empfehlen Sie dringend, mit diesem Amin herumzuspielen, wie bis Sie es getan haben deine Ruder genau so, wie du es willst. Jetzt werde ich es tun, dass ich tatsächlich die Baumgeneration hier kopieren werde . Also ziehe ich es in dasselbe Paket, während ich die Kontrolle halte. Und wir werden das morgen oder in der Generation umbenennen. Wir werden das auch einfach umbenennen , generieren oder hier. Und statt der pflanzlichen Dekoration ist dies jetzt unterirdisch oder. Und wir werden das auch aus der if-Aussage herausnehmen , denn r ors, sagen wir einfach aus Gründen der Argumentation, wir wollen tatsächlich überall, aber wir werden Kobalt oder platziert sagen, und das ist es. Jetzt ist die Ursprungsration hier ziemlich vollendet. Jetzt wird es in jede Biografie eingefügt. Jetzt sollte es nicht im Nether oder am Ende platziert da das Kobalt- oder Konfiguration-Feature eine Liste von Stein austauschbar und tiefem Zustand austauschbar hat eine Liste von Stein austauschbar und tiefem Zustand und nicht von Nether-Rack oder in Stein austauschbar. Und ich glaube nicht einmal, dass sie notwendigerweise existieren. Ein anderes Wrack existiert als Regeltest, ein anderer oder austauschbarer auch, was der Rest, von dem ich glaube, dass es dort nicht existiert. Das ist also etwas , das man beachten sollte. Das Endsteinzeug existiert also nicht, oder? Und jetzt muss diese Methode einfach hier aufgerufen werden. Was nun sehr wichtig ist, ist, dass es über die anderen beiden bezeichnet werden muss . Denn wenn wir uns den Generationsschritt genau hier ansehen , können Sie sehen, dass Untergrund vor der pflanzlichen Dekoration passiert. Beginnt also im Grunde von oben nach unten. Diese Reihenfolge muss gut sein, grundsätzlich eingehalten. Und hier brauchen wir nicht einmal die Typen und wir brauchen eigentlich nicht einmal den Schlüssel, weil wir einfach so sein werden: Ja, ich wollte nur in jedem Biom das gut gehen wird. Also meine ich, das ist so ziemlich alles , was wir für unseren Kunden tun müssen. Oder spiele noch einmal mit den Zahlen herum. Werfen Sie einen Blick auf den Vanilla-Code und schauen Sie sich die Vanille-Werte an. Ich kann es sehr empfehlen. Ich kann das nicht genug betonen. Man muss nur damit herumspielen und ein bisschen mit den Zahlen herumspielen. Und jetzt lasst uns sehen, nachdem wir übrigens eine neue Welt geschaffen haben , ob unser Cobol oder sein Platz in der Welt ist. Oder wenn Antworten in Minecraft und wie Sie sehen können, einige oder hier bereits vollkommen gut generiert haben. Das war nur ein Eco. Es gibt ein bisschen eine größere Vene. ich war eigentlich acht von ihnen. Alles hier funktioniert einwandfrei. Und dies wird diese Vorlesung bereits hier beenden. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. Also ja. 96. Exportieren deines Mods: In Ordnung, willkommen zurück zum Futterkurs für das Siegerteam und dieser sehr kurzen Vortrag, ich werde Ihnen schnell zeigen, wie Sie Ihr Modell als JAR-Datei exportieren können . Lasst uns also das Terminal öffnen und lasst uns einen Punktschrägstrich einsetzen , Gradle w build. Und das ist so ziemlich alles , was du tun musst. Es tritt ein. Und dann erstellt es im Grunde die JAR-Datei. Was Sie dann tun müssen, ist, dass Sie zu Ihrem Build-Ordner gehen müssen rechten Maustaste auf In Explorer öffnen klicken. Dann öffnet sich in einem Explorer-Fenster und ich zeige das einfach schnell. Also baue. Und dann im libs-Ordner genau hier, MC course, ist dies die Version, die in Ihrer build.gradle-Datei definiert ist. Dies ist im Grunde der Name, den es annehmen wird, und Sie können es dann nehmen, es in den Ordner Ihres Modells legen, Sie können es in ein hochgeladenes Fluchfuttermittel legen, solche Sachen. Und dann sollte alles hier funktionieren. Großartig. Ja, das ist es so ziemlich schon für diese Vorlesung genau hier und danach. Wenn Sie sich das in Zukunft ansehen, sollten Sie hier einen weiteren Abschnitt mit zusätzlichen Themen haben , die ich in den kommenden Wochen und Monaten hinzufügen werde den kommenden Wochen und Monaten hinzufügen werde im Grunde genommen mit verschiedenen Dingen wie Booten, Ich werde auf jeden Fall noch solche Sachen hinzufügen wollen. Halten Sie also Ausschau danach, wenn Sie das ziemlich früh ansehen bis der Kurs tatsächlich herauskam und wahrscheinlich noch nichts da sein wird. Nun, keine Sorgen. Neue Vorträge werden auf jeden Fall hinzugefügt. Ich hoffe, dass Sie das nützlich fanden und etwas Neues gelernt haben. Und hoffentlich sehen wir uns auch in den nächsten Vorträgen. Also ja. 97. (zusätzliche Themen) Schmiede (1.18.1): Ordnung, willkommen zu dieser Vorlesung, in der wir Forge auf die neueste Version aktualisieren werden. Wir haben bereits in einer früheren Vorlesung gefälscht aktualisiert. Aber es macht Sinn, wenn Sie eine Menge Dinge hinzufügen , die wir in den kommenden Vorträgen tun werden , um die Schmiede im Grunde wieder zu aktualisieren. Und normalerweise ist es auch gut, Ihren MOD grundsätzlich auf dem neuesten Stand zu halten. Es gibt nicht oft so viele Änderungen, aber es ist immer noch gut zu beachten. Dafür. Natürlich müssen wir die tatsächliche Abhängigkeit hier in unserer DOD Gradle-Datei für Rechnungen ändern , in was? Um dieses Wohlergehen ändern zu müssen , öffnen wir einfach das Micro ford.net. Und eine sehr wichtige Anmerkung aus der Zukunft hier, ich empfehle dringend, eine 1181-Version für die zusätzlichen Themen zu verwenden . Während das meiste davon immer noch funktioniert , wenn Sie auf ein 1800er auf die Weltgeneration aktualisieren auf die Weltgeneration und einige der Steuersachen nicht funktionieren. Ich empfehle hier wärmstens, immer noch auf eine 181-Version zu aktualisieren , ein 1800er Jahre. Und das Update und alle Änderungen werden in einer späteren Vorlesung behandelt. Das wird eine Weile dauern da es tatsächlich einige wesentliche Änderungen gibt. Es ist also was es ist, aber das meiste Zeug wird funktionieren. Es ist nur Weltgeneration und Steuer, wie gesagt, bitte aktualisieren Sie auf ein 1800er Jahre und dann wird 1182 kommen, hoffen wir ein paar Wochen, wenn alles geklärt ist , dann hoffentlich ich wird in der Lage sein, einen zusätzlichen Abschnitt zu erstellen, in dem ich den Aktualisierungsprozess sowie jede der einzelnen Änderungen durchführe den Aktualisierungsprozess sowie . Behalten Sie das bitte im Hinterkopf. Vielen Dank. Und dann stellen Sie sicher, dass wir auf der neuesten Version sind und Sie den neuesten Download sehen können, Dies wird 39079 sein. Und wir können uns zum Beispiel das Änderungsprotokoll hier sogar ansehen . Wir können einige der Änderungen sehen , die zwischen den Versionen stattgefunden haben. Eigentlich einige, weil wir bei der eigentlichen Kursversion immer noch ziemlich weit im Rückstand liegen. Vielleicht hast du auch auf dem Weg aktualisiert. Das könnte auch eine Sache sein, die getan werden könnte. Aber vorerst werden wir jetzt im Grunde genommen auf 3979 aktualisieren. Und wenn du das in Zukunft siehst, ist das sehr wahrscheinlich deine Version dort oben etwas höher sein wird. Völlig in Ordnung. Dann aktualisierst du einfach darauf. Normalerweise sollte es nicht zu viele Diskrepanzen zwischen ihnen geben. Also noch einmal, dies ist die Version, die wir zwei aktualisieren werden, und dann lädt es einfach die Mädchenänderung, Gradle ändert sich hier in der oberen rechten Ecke, Grunde klickt auf den kleinen Elefanten das erscheint nicht und öffnet sich immer zur Registerkarte Gradle und klicken Sie dann direkt hier auf diese Schaltfläche, macht das Gleiche. Und wie immer sollte es maximal ein oder zwei Minuten dauern . Normalerweise, wenn es nicht zu viele Dinge geben sollte, wird es wahrscheinlich sehr schnell für mich sein , weil ich das schon getan habe. Natürlich. Wenn Sie dies zuvor mit derselben Version gemacht haben derselben Version hat es all diese Dinge bereits heruntergeladen. Aber dann geht es vielleicht etwas schneller, aber es sollte nicht allzu lange dauern. Warten wir also einfach eine Sekunde. Noch einmal, wenn du hier rot wirst, solange es nur Info und Warnung ist, keine Sorge. Es ist nur ein Fehler, der eine Art Problem ist. Und dann, am Ende des Tages, wenn ein Build fehlgeschlagen ist, wird das auch nicht gut sein. Aber wenn es einen Build erfolgreich gibt, kann alles fast außer Acht gelassen werden. Das steht hier geschrieben, das ist rot. Hier sind wir erfolgreich in zwei Minuten, 31 Sekunden gebaut. Wie gesagt, manchmal dauert es etwas länger, manchmal dauert es nicht zu lange. Jetzt haben wir viele Versionen übersprungen, also gab es dort wahrscheinlich viel zu aktualisieren. Aber abgesehen davon ist das so ziemlich alles, was wir tun müssen , um es zu aktualisieren. Wenn Sie es aktualisiert haben, sollte normalerweise alles funktionieren, wenn es nicht zu viele Änderungen wenn es nicht zu viele Änderungen gibt. Ich glaube, dass hier alles einfach funktionieren sollte. Also lassen wir es einfach laufen und sehen, ob wir irgendwelche Fehler bekommen. Es könnte einen vorbei sein, ich bin mir nicht 100% sicher. Ich glaube nicht, dass es im Moment irgendetwas gibt , worüber man sich Sorgen machen müsste. Aber natürlich wäre hier der Fall einfach laufen lassen, sehen, ob es vielleicht einen Pfeil gibt, vielleicht weiß ich nichts in den Lebensmitteln, zum Beispiel ändern. Natürlich würdest du es dann sehen und dann könntest du es auch dort ändern. Aber in diesem Fall glaube ich nicht, dass sich irgendetwas drastisch geändert hat. Sobald alles hier heruntergeladen wurde, können Sie sehen, dass es die Assets erneut herunterlädt im Grunde genommen einige der Ressourcen einmal, noch einmal herunterlädt einmal, noch einmal , damit alles auf dem neuesten Stand ist datum. Da wir natürlich den ersten Lauf nach der Aktualisierung aktualisiert haben, kann es auch ein wenig Zeit in Anspruch nehmen , aber keine Sorge. Sie können sehen, dass der Run-Client tatsächlich durchläuft, dass die Aufgabe jetzt im Grunde ausgeführt wird. Du siehst, dass wir ein paar Sachen durchmachen. Genau hier. Es heißt „normal“. Und dann fängt das Mikrobe-Fenster auf dem anderen Bildschirm schon hier an. Wir werden das einfach umdrehen und alles sollte gut funktionieren. Es sollte also in nur einem Moment den Menübildschirm sehen. Und da sind wir. Ja, da sind wir. Da gehst du. Also funktioniert alles immer noch gut. Mods, MC-Kurs ist immer noch hier drin. Also funktioniert alles gut und es gibt keine Sorge , dass wir die neue Futterversion aktualisiert haben. Und jetzt können wir im Grunde die zusätzlichen Vorträge durchgehen , die sehr, sehr interessant sein werden. Es gibt also einige interessante Themen, die wir in den kommenden Vorträgen grundsätzlich diskutieren werden. Einige davon sind definitiv wie persönlich meine Favoriten. Es gibt ein paar wirklich, wirklich verdammte coole Sachen hier, aber das wäre so ziemlich genau das für diese Vorlesung genau hier. Sehr kurz, nur um im Grunde zu aktualisieren. Und dann können wir den Rest der Vorträge durchgehen. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 98. (zusätzliche Themen) Adding von XP Drops in Blöcken: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und dann werden wir in dieser Vorlesung einen Blick darauf werfen, wie Sie Ihren oder Blöcken erfahrene Drops hinzufügen können . Jetzt erinnern Sie sich vielleicht daran , dass es bestimmte oder Blöcke wie Emerald gibt, die beim Minen tatsächlich nach dem Abbau abfallen. Soll zum Beispiel das rohe Kobalt in unserem Fall fallen lassen und dann, nachdem du es gerochen hast, würdest du die Erfahrung bekommen. Jetzt ist dies tatsächlich ein ziemlich einfacher Prozess. Was wir also tun können, ist, dass wir die Umschalttaste zweimal drücken und nach dem Block suchen können , um sicherzustellen, dass wir dieses Kästchen genau hier ankreuzen. Und dann werden wir das überprüfen. Und Sie können sehen, dass wir einfach für den Block in einer einheitlichen Int hier haben können . Und das wird der Erfahrungsbereich sein , den er sinken wird. Obwohl. Es ist eigentlich so einfach wie Sie zu gehen, zum Beispiel werden wir das Kobalt wählen oder obwohl es nicht sollte, ist dies nur ein Beispiel. Wir werden diesen Block ändern oder blockieren und sicherstellen, dass ich das richtig schreibe. Da gehst du. Ich drücke die Tabulatortaste, um es automatisch zu vervollständigen. Und jetzt sollte sich nichts ändern. Dies sollte immer noch funktionieren, aber wir müssen hier einen zweiten Parameter hinzufügen. Und das wird ein einheitlicher Job sein, den du sehen könntest. Und dann werden wir zum Beispiel etwas wie zwei oder oder sagen , und dann wird es eine einheitliche Verteilung zwischen 24 sein . Wir können auch den Mauszeiger über das Angebot bewegen. Ich glaube, das sollte, es gibt uns eigentlich keine Einblicke in die Funktionsweise, Mist, aber das ist okay. Ich glaube, dass beide von ihnen inklusiv sind. Und wir können natürlich auch prüfen ob eine mittlere Maustaste erneut darauf klickt, und dann die mittlere Maustaste darauf klicken. Ich kann zum Beispiel im Smaragd sehen oder wir sollten sehen können , dass das, was sie dort geben, zum Beispiel hier zwischen 37 und dasselbe für den Tiefschlaf-Smaragd gilt. Und dann glaube ich, dass es noch etwas anderes gibt. So wäre das zum Beispiel beim Diamanten oder ja natürlich auch der Fall. Dieser liegt auch zwischen 37. Dort können Sie also grundsätzlich wählen, was Sie tun möchten. Also lasst uns auch einfach 37 machen. Warum nicht? Und das ist so ziemlich alles, was du tun musst. Und jetzt wird die Erfahrung danach sinken, im Grunde wird dieser Block abgebaut. Seien Sie natürlich vorsichtig , wenn Sie dies auf Nicht-oder Blöcken tun. Also wenn ich das zum Beispiel auf der Treppe machen würde und natürlich den eigentlichen Block zurückbekommen würde. Ich meine, die Treppe wäre eigentlich ziemlich schwer, aber lasst uns vielleicht eine andere wählen. Das ist ein schlechtes Beispiel. Eigentlich, weißt du, jeder andere Block, der nur ein Block ist, der sagen wir die Planken, zum Beispiel, wenn ich das in unserem Block machen würde und eine bestimmte Anzahl von Erfahrungen dort zurückgeben würde , kann ich setze es einfach wieder hin, werde erfahrener, setze es wieder auf, werde erfahrener. Dies sollte also definitiv nur für Blöcke oder vier Blöcke verwendet werden , die sich nicht selbst fallen lassen. Das ist die allgemeine Idee. Aber weil das alles ist, was wir zur Vollendung tun müssen , schauen wir mal, ob es funktioniert. Oder wir befinden uns wieder in Minecraft und lassen uns einfach einige der Befehle ernten. Und wie du siehst, los geht's. Ich bekomme tatsächlich Erfahrung beim Abbau. Wie ich schon sagte, dieses Beispiel ist natürlich ein bisschen nicht zu gut, natürlich in diesem Fall, denn wenn wir tatsächlich das Kobalt gerochen haben oder wir wieder erfahren würden. Aber vielleicht ist das tatsächlich etwas, das Sie hinzufügen möchten. Wer weiß es. Aber wie Sie sehen können, kann es so einfach sein die benutzerdefinierten erfahrenen Drops hinzuzufügen Ihrem Kunden die benutzerdefinierten erfahrenen Drops hinzuzufügen , oder das ist es bereits 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. (zusätzliche Themen) Hinzufügen eines benutzerdefinierten Menübildschirms: Oder ich begrüße wieder zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen benutzerdefinierten Menübildschirm hinzufügen . Nun ist es sehr wichtig, dass diese Vorlesung und die nächste Vorlesung irgendwie Teil eins und Teil zwei sind. Weil wir in der nächsten Vorlesung tatsächlich Konflikte zu Minecraft hinzufügen werden. Und wenn Sie einen benutzerdefinierten Menübildschirm hinzufügen, müssen Sie ihn definitiv 1, 1000% konfigurierbar haben. Ansonsten wird Ihr MOD grundsätzlich sofort von jedem Map Pack auf die schwarze Liste gesetzt. Denn offensichtlich hat ein Markierpaket normalerweise eigenen Menübildschirm und Sie möchten, dass dies konfigurierbar ist. Lassen Sie uns das jedoch einfach durchgehen. Und beginnen wir zuerst mit dem Menübildschirm. In dieser Vorlesung ersetzen wir sozusagen die sich drehenden Bergseiten die sich drehenden Bergseiten im Menübildschirm unseren eigenen Menübildschirm, nur ein Bild. Und dafür gehen wir in unser util-Paket rechten Maustaste auf neue Java-Klasse. Und das wird der Titelbildschirm des Unternehmens sein. Da gehst du. Und ich werde hier den gesamten Code kopieren, aber alles hier steht Ihnen natürlich wieder im GitHub-Repository zur Verfügung und individuell genauso gut. Und wir schauen uns einfach an, was das alles ist. Nummer eins, wir haben diesen Begrüßungsbildschirm Ressourcenstandort ist genau unser benutzerdefinierter Baumwollmenübildschirm, den wir dort grundsätzlich gut aufzwingen oder auf dem Menübildschirm zeichnen werden. Und dann haben wir auch einen Ressourcenstandort für das Microsoft-Logo, da dieser gut gezeichnet werden muss, irgendwie über dem Bildschirm. Es ist ein bisschen komisch, aber ich werde im Grunde in der Render-Methode hier erklären. Also die Render-Methode, wir werden ein paar Dinge durchgehen. Zuallererst rufen wir den Super auf dem normalen Tidal-Bildschirm auf. Was dann passiert, ist, dass sie völlig normal sind Tidal Screen gezeichnet wird. Dann brauchen wir diese ganzzahlige Breite und Höhe. Wir brauchen dies nur für unseren benutzerdefinierten Titelbildschirm. Lassen Sie mich unseren benutzerdefinierten Titelbildschirm zeichnen, grundsätzlich über dem normalen Tidal-Bildschirm. Und dann zeichnen wir auch das Microsoft-Logo. Das ist sehr wichtig. Dann rendern wir hier einfach das Hauptmenü. Das ist nur von Forge, damit hier alles funktioniert. Lass mich die Schnur zeichnen. Dies ist die Urheberrechtszeichenfolge ganz unten rechts. Das ist sehr wichtig. Lösche das nicht. Das ist ziemlich wichtig , dass dies tatsächlich da sein muss. Ansonsten bin ich mir nicht 100% sicher, aber Sie begehen möglicherweise eine Art Urheberrechtsbetrug, wenn Sie dies nicht haben. Also sollten wir das auf jeden Fall haben. Die Widgets hier sind nur die Hintergründe für jede der Schaltflächen im Hauptmenü. Wir können uns auch die Methode zum Zeichnen des benutzerdefinierten Titels ansehen . Man sieht also, dass es wirklich nicht so verrückt ist. Wir aktivieren im Grunde nur eine Textureinstellung, die genau wie ein bisschen Aktivierung von Sachen ist. Und wir setzen hier die tatsächliche Textur auf den Begrüßungsbildschirm und zeichnen sie dann. Das Blut zeichnet also im Grunde diese Textur, die wir in das Render-System gesetzt haben. Und danach zeichnen wir dann das Minecraft-Logo. Indem wir also die Textur auf das Microsoft-Logo setzen, wir im nächsten Bleichmittel zeichnen wir im nächsten Bleichmittel grundsätzlich die Mikroflora. Das ist die allgemeine Idee. Und das ist nur Code aus der normalen Tidal-Screen-Klasse selbst. Deswegen ist das nichts allzu verrückt. Das ist so ziemlich alles, was es dazu gibt. Ehrlich gesagt sollte es wirklich nicht so verrückt nach Dingen geben. Wenn du einen völlig wahnsinnig benutzerdefinierten Titelbildschirm mit völlig verrückten Sachen willst, dann musst du nur einige dieser Dinge durcharbeiten. Normalerweise wollen die meisten Leute nur das Hintergrundbild ersetzen , und genau das werden wir hier zeigen. Jetzt geht dies in die Textur-GUI, Hintergrundmenü oder im Hintergrundordner. Und dann wird es Copan Menu Dot Re Pack genannt. Und genau das werden wir das tatsächlich in der GUI bekommen und dann mit der rechten Maustaste neues Verzeichnis namens background klicken. Dann kopiere ich einfach das Bild, das dir natürlich auch zur Verfügung steht wenn du das ausprobieren willst. Und wir werden nicht verderben, wie es aussieht, nur nicht jetzt, aber es wird wirklich verdammt cool aussehen. Das könnte ich dir sagen. Was machen wir danach? Nun, wir müssen diesen Titelbildschirm jetzt irgendwie einstellen und wir werden das in der Event-Klasse machen. In der Mode-Ereignis-Klasse werden wir also eine Methode kopieren , die sehr, sehr einfach ist. Das ist auch nicht zu verrückt, aber es steht Ihnen natürlich auch zur Verfügung. Wir werden das Ereignis zum Öffnen des Bildschirms verwenden, wie Sie sehen können. Und wir werden prüfen, ob der Bildschirm, den wir gerade öffnen möchten, der Titelbildschirm ist und es noch nicht unser Kontotitelbildschirm ist. Dann ersetzen wir es einfach oder wir erstellen einen neuen Titelbildschirm aus Baumwolle und senden ihn an ihn. Das ist so ziemlich alles, was es dazu gibt. Dies ist der gesamte Code, den wir brauchen. Das ist vielleicht etwas komplizierter, aber insgesamt hoffentlich irgendwie verständlich, was hier in einer Art allgemeiner Übersicht passiert. Und dann sollte diese Methode und dieses eigentliche Ereignis sehr einfach sein. Das ist nichts Verrücktes. Und ja, das ist so ziemlich genau das, was wir für diese Vorlesung hier brauchen. Also schätze ich mal sehen, ob es funktioniert. Aber die Sonne ist natürlich wichtig, um zu sehen, wie Minecraft anfängt. Mal sehen, ob unser Bildschirm für benutzerdefinierte Kacheln funktioniert. Ich bin sehr zuversichtlich , dass dies der Fall sein wird. Und da sind wir, der benutzerdefinierte Titelbildschirm funktioniert genau so, wie Sie es erwarten würden. Wir haben immer noch den Copyright-Hinweis. Wir haben sogar das Schmiedekram in der unteren linken Ecke. Wir haben das Minecraft, im Grunde alles hier, was genau das ist, was du willst. Alle Knöpfe funktionieren immer noch völlig gut. Also funktioniert alles fantastisch. Und ich werde nichts über irgendetwas sagen, aber das könnte nur ein bisschen ein Sneak Peek Spoiler sein, was früher kommen könnte. Aber wie auch immer, das ist wirklich cool und ich mag das Hintergrundbild, das von deiner Reihe gemacht wurde. Die, es wird natürlich auch in der Credits Datei verknüpft sein. Das ist also echt verdammt genial. Aber so einfach ist es, den benutzerdefinierten Titelschrei hinzuzufügen , wie gesagt, dringend empfehlen, die nächste Vorlesung unmittelbar danach anzusehen , um zu sehen, wie wir einige benutzerdefinierte unfixierte hinzufügen können. Weil es unglaublich wichtig ist, den Konflikt hinzuzufügen, um dies gut zu machen, im Grunde konfigurierbar. Ich kann das einfach nicht übertreiben. Bitte füge den Konflikt hier hinzu. Ansonsten ist es im Grunde genommen, dass dein Marr niemals von irgendeiner Marke benutzt wird. 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 wirst etwas Neues lernen. Wenn Sie dies getan haben, schätzen Sie eine Bewertung von Ihnen sehr. Ansonsten sehe ich dich in der nächsten Vorlesung. 100. (zusätzliche Themen) Grundlegende benutzerdefinierte: Alles klar, willkommen zurück zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft benutzerdefinierte Konflikte hinzufügen . Dies ist nicht nur ein sehr wichtiges Thema für den Bildschirm oder den benutzerdefinierten Titelbildschirm , den wir in der letzten Vorlesung implementiert haben. Es ist aber auch ein sehr wichtiges und auch sehr nachgefragtes Thema. Zunächst müssen wir also über zwei Dinge nachdenken, müssen wir also über zwei Dinge nachdenken üblichen Konflikte und die Klientenkonflikte. Es gibt auch Serverkonflikte, aber vorerst werden wir uns jedoch Sorgen um den häufigen und den Clientkonflikt machen, wenn wir über unseren benutzerdefinierten Titelbildschirm nachdenken, wo existiert das da dies sowohl auf dem Server als auch auf dem Client oder nur auf dem Client existiert . Die offensichtliche Antwort lautet natürlich, dass dies nur für den Kunden existiert. Für diejenigen, die es gesagt haben, ist es natürlich nur auf den Kunden. Das ist sehr gut für diejenigen , die gesagt haben, naja, es ist bei beiden. Nun, lasst uns darüber nachdenken. Ist der Server, wenn wir einen Server betreiben, kümmert sich der Server um den Menübildschirm für Mehrspieler-Optionen für Einzelspieler. Jetzt tut es das natürlich nicht. Wir können dies sogar sehen, wenn wir hier mit der mittleren Maustaste auf den Titelbildschirm klicken, wir können sehen, dass dies nur in diesem Client ist. Dies bedeutet, dass diese Klasse grundsätzlich nur im Client-Thread ausgeführt wird, nirgendwo sonst. Um also unseren benutzerdefinierten Titelbildschirm im Grunde ein- oder auszuschalten , müssen wir Clientkonflikte implementieren. Und dann zeige ich auch ein oder zwei Beispiele für einige häufige Konflikte. Das wären Konflikte, die sowohl für den Client als auch für den Server gelten. In diesem Fall ist es eine interessante Sache, da manchmal die häufigen Konflikte im Grunde sowohl für den Client als auch für den Server gelten . Und dann gibt es auch nur Serverkonflikte. Aber wir lassen diese vorerst aus , nachdem wir gesehen haben , wie Sie den Kunden und die häufigen Konflikte addieren können . Es kann im Grunde auch die Serverkonflikte hinzufügen. Bitte beachten Sie auch, dass Sie es nicht konfigurieren können oder nicht jeden einzelnen bestimmten Code konfigurierbar machen . Zum Beispiel sind einige der Dinge, die nicht wirklich so einfach konfigurierbar sind, zum Beispiel die Haltbarkeit der Dowsing Rute hier. Als Beispiel können Sie sich vorstellen, warum wir dies einfach durch eine konfigurierbare Nummer ersetzen können , die nicht ganz funktioniert. Es kann also einige Problemumgehungen geben, aber normalerweise, wenn Sie Sachen registrieren, zeichnen wir gerade die Registrierungsmethode auf. Überall wo du etwas registrierst. Normalerweise möchten Sie diese Zahlen nicht ändern. Es ist sehr schwer zu sagen , wo man es kann und was nicht. Ich kann es nur wärmstens empfehlen, wenn Sie dort wirklich ein paar Sachen ausprobieren möchten, probieren Sie es aus und sehen Sie, ob es funktioniert oder nicht. Weil sie manchmal nicht übereinstimmen vom Server und dem Client, wenn der Client einen anderen, anderen Konflikt als der Server hat . Und deshalb könnte das ein bisschen komisch werden. Also behalte das einfach im Hinterkopf. Sie können nicht unbedingt alles in unserem MC-Kurspaket konfigurieren . Wir klicken mit der rechten Maustaste auf ein neues Paket namens Konfliktpaket. Und dann kopiere ich tatsächlich zwei der Klassen , die wir brauchen werden. Und ich werde tatsächlich den gesamten Code durchgehen , der Ihnen natürlich im GitHub-Repository in einer Einzelperson zur Verfügung steht Ihnen natürlich im GitHub-Repository . Also überhaupt keine Sorgen. Und das ist auch nicht so verrückt. Beginnen wir mit den Klientenkonflikten gleich hier. Wir können sehen, dass Sie einen Konfliktspezifikationsgenerator benötigen , der nur dem neuen Builder entspricht. Und dann diese Konfliktspezifikation genau hier. Und dann können Sie sehen , dass Sie im Grunde genommen alle unsere statischen Konfigurationswerte sind . Sie können sehen, dass es sich um ein Generikum handelt, also werden wir im Grunde nur eine andere, andere Datentypen eingeben, die in diesen Fällen konfiguriert oder konfiguriert werden möchten. Und dann können Sie in diesem statischen Block genau hier sehen, nur einen Builder zum Push zu haben, Es ist genau das, was oben auf der Konfliktdatei geschrieben ist. Und dann wird dies vor allem ein Gemeinsames sehen. Dies ist also, ob der Standardtitelbildschirm ersetzt wird oder nicht . Und dann werden wir das definieren. Dies ist sozusagen nur der Name der Variablen, und dies ist in diesem Fall der Standardwert. Und wenn man sich die häufigen Konflikte hier ansieht, kann man sehen, dass wir hier die Adern pro Stück und die Venengröße des Kobalts konfigurierbar machen die Adern pro Stück und die Venengröße des Kobalts konfigurierbar werden. Oder das ist sehr interessant , denn dies ist auch etwas, das manchmal konfigurierbar sein könnte. Oder Sie möchten , dass dies konfigurierbar ist, was sehr interessant ist. Was wir also tun werden, ist zunächst, dass wir die Kundenkonflikte nutzen werden, aber wir müssen diese natürlich auch registrieren. Wie registrieren wir diese in unserer MC-Kurse-Mod-Klasse, wir müssen sie eigentlich nur zu Dingen hinzufügen. Und das wird danach sein. Was wir tun werden, ist, dass wir sagen werden, dass der Mod auf Text Dot geladen wird, holen diese Register-Konfiguration. Wir werden Motorkonfigurationsdaten sagen. Man kann Typen schon dort sehen. Wir wählen den Clienttyp für den ersten aus. Wir sagen „MC“. Der Kunde kollidiert diese Spezifikation. Und dann wird der Dateiname hier einfach sein, es sollte deine MOD-ID sein, Dash-Client. Und dann sehr wichtig, dass Tamil, das muss eine Dot-HTML-Datei sein. Sonst wird es nicht funktionieren. Dann können wir dies duplizieren, indem wir Control D drücken und ich werde das hier in das gemeinsame ändern. Und dann ändern wir das in den MC-Kurs, gemeinsame Konflikte. Und dann sehr wichtig, dass wir diesen Namen auch ändern. Sie können jetzt sehen, dass wir beide, naja, fest registriert haben , und das ist eigentlich alles, was wir tun müssen, um diese Konflikte zu registrieren. Das ist also alles, was es dazu gibt. Wie benutzen wir sie jetzt? Nun, es ist ziemlich einfach. Wir haben dieses Feld genau hier. Lasst uns also auf unseren Code eingehen. Eigentlich ist es nicht der Spaltentitelbildschirm. Wir wollten dies in der MOD-Ereignisklasse genau hier in dieser if-Anweisung tun , wir wollten im Grunde genommen MC-Kurs-Clientkonflikte sagen, diesen benutzerdefinierten Titelbild-Punkt bekommen. Und dann wird es das beenden. Das muss also stimmen, und all dies muss auch wahr sein. Und dann wird unser Titelbildschirm nur zur Fertigstellung ausgetauscht, lass uns auch sofort die Ader für Kofferraumzeug benutzen. Das wird also auf der Welt sein. Der erste wird an dem Ort sein, an dem sie vor ihnen stehen. Das werden die Adern pro Stamm sein. Das wird also MC-Kurs sein, gemeinsame Konflikte Punkt Paines pro Chunk-Punkt bekommen. Lasst uns einfach lesen. Ja, das ist in Ordnung. Und dann sollte der andere in den konfigurierten Funktionen enthalten sein . Das wird also der sein, dieser hier. Dies ist die Adergröße dafür wäre der MC-Kurs gemeinsame Konflikte Venengröße, die bekommt Was wir tatsächlich tun werden ist, dass wir dies einmal laufen lassen , damit die Dateien hier generieren, dann werden die eigentlichen festen Dateien regeneriert und dann werden wir die darin enthaltenen Werte ändern. Aber lasst uns das einfach einmal ausführen und sehen wir uns dann an, wie die Konfliktdateien generiert werden. Zuallererst können Sie sehen, dass Minecraft geladen wurde und der Titelbildschirm immer noch da ist, da der Standardwert hier natürlich wahr war. Und am wichtigsten ist, dass wir jetzt die Konfigurationsdateien generiert haben . Sie befinden sich unter der R1-Ordnerkonfig und los geht's. Mc Kurs Kunde und MC-Kurs üblich. Wenn wir sie öffnen, können Sie sehen, dass wir im Grunde genau das verstehen. Sie sehen Konflikte für MC Core Smart und dann, ob der Standardtitelbildschirm ersetzt wird. Wir ändern dies jetzt in „false“ und speichern es. Und dann hier, lass uns einfach, lass uns einfach absolut verrückt werden, nur damit wir das haben. Also lass uns gehen. Im Moment werden wir also nur viele Adern pro Stück machen, viele Adern groß, nur damit wir tatsächlich sehen können, dass dies funktionieren wird und das die Weltgeneration beeinflussen wird. Und ja, das ist so ziemlich alles, was wir tun müssen, um die Konflikte zu ändern. Diese stehen dann natürlich auch den Benutzern und den Spielern zur Verfügung , und dann können sie sie ändern, wie sie wollen. Sie also auf jeden Fall sicher, dass Sie hier richtige Kommentare haben. Es wird diesen hier geben. Wie Sie sehen können, wurde dies dort als Kommentar geschrieben. Das ist also so ziemlich alles, was du tun musst. Nachdem wir die Konflikte geändert haben, schauen wir uns zum Beispiel an, ob sich zuerst der Titelbildschirm geändert hat und dann auch die Weltgeneration. Okay, wie Sie die Nummer eins sehen können, der eigentliche Titelbildschirm hat sich der eigentliche Titelbildschirm wieder auf den normalen Tidal-Bildschirm geändert. Aber das ist sehr interessant. Lasst uns jetzt tatsächlich eine neue Welt generieren und sehen , ob dann in der Stunde der Welterzeugung Kobalt oder alles in einer Weise mehr Formen als zuvor dargestellt wird. Oder wenn Antworten in Minecraft sind. Und wie Sie sehen können, musste ich nicht sehr weit hinuntergehen, um eine Fülle von oder, richtig zu finden. Sie können sehen, dass nicht nur die eigentlichen Adern massiv sind, es gibt viele von ihnen. Wie Sie sehen können, sind dies zwei verschiedene Adern, drei verschiedene Venen wie nebeneinander. Und dann sieht man, dass es einfach weiter geht. Ich kann tatsächlich wieder in den Zuschauermodus wechseln. Und du wirst sehen, dass es viele dieser Adern gibt. Sie können also klar erkennen , dass dies zwar definitiv nicht etwas ist , das Sie unbedingt haben möchten, aber definitiv konfigurierbar ist. Und das ist so ziemlich genau das, was wir von diesen oder Konflikten erwarten würden . Das ist also echt cool. Aber es gibt eine andere Methode, die wir möglicherweise aufrufen können, und die in einer definierten Liste definiert ist , aber den definierenden Bereich definiert ist , der auch ziemlich interessant ist. Dieser hier macht also im Grunde folgendes. Sie können auch einen Mindest- und einen Maximalwert definieren. Dies könnte also auch sehr interessant und wichtig für Sie sein , um im Grunde zu sagen, wissen Sie, vielleicht sollte die Anzahl der Venen pro Stamm und die Venengröße in bestimmten Werten beibehalten werden. Oder vielleicht könnten einige Werte, die Sie konfigurierbar machen wollten tatsächlich gebrochen sein, wenn sie nicht zwischen bestimmten Zahlen liegen . Denken Sie also auch daran, dass Sie das auch tun können. Aber vorerst werden wir das undefiniert halten. Ich wollte dir das nur zeigen. Ich kann auch immer jedes Mal mögen, rate dir einfach, damit ein bisschen herumzuspielen. Sehen Sie, was Sie im Grunde ändern können, welche Arten von Dingen funktionieren könnten und welche nicht. Es gibt also viele Dinge, die funktionieren könnten und vielleicht nicht. Behalte das also im Hinterkopf. Ansonsten können Sie Minecraft auf diese Weise so ziemlich benutzerdefinierte Konflikte hinzufügen. Und am wichtigsten ist, wie Sie es konfigurieren oder in Konflikt geraten können , einen Konflikt für Ihren benutzerdefinierten Titelbildschirm auslösen, da dies äußerst wichtig ist. Wenn Sie einen benutzerdefinierten Titelbildschirm haben , erstellen Sie es, damit Sie ihn ausschalten können da Sie sonst nie für NMR-Pegs verwendet werden , die jemals unglaublich wichtig sind. Also behalte das bitte im Hinterkopf. Ansonsten wird dies für diese Vorlesung genau hier sein . Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wenn Sie es sehr getan haben, schätzen Sie die Rezension von Ihnen sehr. Ansonsten sehe ich dich in der nächsten Vorlesung. 101. (zusätzliche Themen) Transparente Blöcke hinzufügen: Oder ich begrüße wieder zum Schmiedekurs für 180. Und in diesem Vortrag werden wir Minecraft einen transparenten Block hinzufügen , diesem Handel nach populärer Nachfrage, da einige Leute Probleme hatten , Minecraft einen transparenten Block hinzuzufügen . Es ist jedoch nicht so verrückt, wenn Sie die zwei oder drei sehr wichtigen Optimierungen kennen die zwei oder drei , die Sie tun müssen. In unserer Modusblock-Klasse werden wir hier einfach ganz unten gehen. Ich kopiere nur die Probenahme. Jetzt gibt es ein paar Dinge, die wir hier ändern müssen. Das wird das Winterfenster genannt. Und das ist natürlich auch das Winterfenster. Also zuerst in eine ganz normale Masse hier, und dann wird dies ein Glasblock sein. Dies ist sehr wichtig, dass es sich um einen Glasblock handelt. Dies erfordert nur die tatsächlichen Eigenschaften des Blockverhaltens genau hier. Und was wir dann tun werden, ist, dass wir auch aus dem Glasblock von den Grundstücken kopieren . Man geht in den Glasblock, mittlere Maustaste und klickt dann erneut mit der mittleren Maustaste auf den abstrakten Glasblock. Wir können sehen, dass die Nummer eins, was wir brauchen, ist das breitete Oberlicht nach unten und auch die Formhelligkeit. Wir bekommen eine visuelle Gestalt. Ich bin mir nicht wirklich 100% sicher, was das notwendigerweise Abenddämmerung ist. Ich weiß nur, dass alle von ihnen im Grunde wichtig sind , um eine transparente Blockarbeit zu haben. Deshalb werden wir einfach den Glasblock benutzen. Dies ist im Grunde auch ein Glasblock, also keine Sorgen. Was wir nun auch in unserem MC für Smart Class im Setup des Kunden benötigen , kopieren wir hier nur die Renderebene. Und das wird die Renderschicht des Winterfensters und dieses Mal durchscheinend. Es wird also dieselbe Renderschicht wie die Honigblockflüssigkeit haben , die natürlich auch durchscheinend ist. Das ist sehr wichtig, sonst wird es eigentlich nicht funktionieren. Und dann natürlich alle Aktien wie nur der Block States Jason hier. Nur eine normale Walk-Bühne Jason, genauso wie die Übersetzung. All das ist so ziemlich nur Standard. Der einzige Unterschied hier ist natürlich, sobald wir dies hinzugefügt haben, das Winterfenster hier, die Modelldateien, das gleiche Zeug, also sind es nur normale Modelldateien. Wir könnten auch einfach die anderen normalen Modelldateien kopieren die anderen normalen Modelldateien und sehen, dass dies auf eine Textur hinweist. Und dann so ziemlich mit der Artikelmodelldatei. Und diese sind natürlich auch verfügbar, wenn Sie sie kopieren möchten. Aber wie Sie sehen können, gibt es normale Dateien, nichts Verrücktes daran. So ziemlich die einfachste Varianz dieser Dateien. Und was ist dann natürlich wichtig für die Textur, die ich auch kopieren werde. Und du wirst das sehen, genau hier. Also alle inneren Blöcke, das sind diejenigen, die einen Alphawert haben , der ein wenig transparent ist. Dies ist natürlich sehr wichtig, dass wenn Sie ein PNG haben , das Sie verwenden möchten und einige Ihrer tatsächlichen Pixel Alpha-Werte haben müssen , die Sie durchschauen können. Ansonsten funktioniert es natürlich nicht ganz. Andernfalls wird die Durchsichtigkeit nicht richtig funktionieren. Behalte das also im Hinterkopf. Aber sonst ist das eigentlich alles, was wir tun müssen , wenn wir alles durchmachen müssen. Das Wichtigste ist das Durchscheinende. So haben wir Alpha-Werte in unserer eigentlichen PNG-Datei. Und dann auch, dass wir den Glasblock benutzen , was sehr wichtig ist. Ich schätze, um der Vollendung willen zu sehen, mal sehen, ob es funktioniert. Ordnung, Wir sind finanziell in Minecraft und wie Sie sehen können, wurde das Winterfenster erfolgreich dem Spiel hinzugefügt. Und wie Sie auch sehen können, kann ich es mir ansehen. Keine Sorge, obwohl alles nur gut funktioniert. Ich meine, so einfach ist es, einen benutzerdefinierten transparenten Block Minecraft-Marke hinzuzufügen einen benutzerdefinierten transparenten Block Minecraft-Marke , der bereits für diese Vorlesung genau hier ist. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in der nächsten Vorlesung. 102. (zusätzliche Themen) Animierte Elemente hinzufügen: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir Minecraft einen animierten Gegenstand hinzufügen . Das könnte also so sein, Wow, das ist eine wirklich coole Sache. Und es könnte sein, könnte man sagen, nun, das wird wahrscheinlich sehr kompliziert sein. Es ist eigentlich ziemlich einfach. Aber wir werden in dieser Vorlesung ein benutzerdefiniertes animiertes Element sehen . Und dann zeige ich dir ein Vanille-Beispiel für einen animierten Block. Und wenn Sie im Grunde einen animierten Block wünschen, kann ich dringend empfehlen, einen Blick auf dieses Vanille-Beispiel zu werfen. In der Mod-Items Klasse fügen wir ein neues Element hinzu. Also lasst uns einfach den Kobaltball hier kopieren. Und das wird der magische Unterstrich Staub sein. Und dann gleich hier in den Namen. Dies wird der magische Unterstrich Staub sein. Und das wird interessanterweise ein normaler Gegenstand sein . Und wir werden es einfach so machen, dass es hier grundsätzlich keine anderen Artikeleigenschaften hat . Wir werden nur den normalen Artikel haben , komplett Vanille. Daran ist nichts Verrücktes. Und lasst uns die Übersetzung tatsächlich hinzufügen , bevor wir in die eigentliche andere Dinge eingehen . Also das andere Elementmodell benachbarte Dateien. Es wird also die Magie des Staubs geben und das wird auch der magische Staub sein. Nun, vielleicht sagen Sie: Nun, das wird wahrscheinlich eine verrückte komplizierte Abfrage sein , ist eine komplizierte Item-Modell-Jason-Datei hier. Kopieren wir es einfach rüber. Natürlich steht Ihnen alles im GitHub Repository genauso gut im Einzelnen zur Verfügung. Und Sie können sehen, dass es sich eine völlig normale JSON-Datei für das Artikelmodell handelt. Oder du wirst so sein, warte, wo ist es? Wo ist die Animation? Animation ist alles in der Textur sowie in der MC-Metadatei. Aha. Wir werden diese kopieren, die natürlich auch verfügbar sind. Und dann sieht man , dass wir die Nummer eins haben, die tatsächliche Textur sowie eine MSE-Metadatei. Und wenn wir uns die Textur ansehen, handelt es sich tatsächlich um mehrere verschiedene Texturen. Sie können also sehen, dass es sich tatsächlich um sechs verschiedene Texturen handelt , nun, es ist das gleiche Element. Am Ende kommen Sie im Grunde 16 Mal heraus, aber viele Texturen Sie haben mal 16. Das ist also die Idee. Es ist also 16 von, in diesem Fall ist 96 eine Größe, und die MC-Metadatei bestimmt, wie Sie das tatsächlich durchmachen. Sie können sehen, dass dies eine Animation ist. Kann die Rahmenzeit ändern, um im Grunde zu ändern, wie schnell die Animation ist. Und dann kann man hier grundsätzlich sagen , welche Rahmen in welcher Reihenfolge verlegt werden. Interpolation bedeutet einfach, dass, wenn ein Frame zu einem anderen wechselt , die Änderung diskret sein wird. Also wird es sich von einem Bild ändern und dann im nächsten, sagen wir zweitens, siehe anderes Bild. Wo wird es durch sie übergehen? Das ist in diesem Fall die allgemeine Idee der Interpolation. Aber so einfach ist es , ein animiertes Element hinzuzufügen. Und dann wird das sofort animiert, solange Sie die MC Mehta-Datei hier haben. Was sehr wichtig ist, ist, dass diese MC-Metapher genau so geschrieben werden muss, einschließlich des Punktes PNG hier. Bitte vergewissern Sie sich, dass dies korrekt geschrieben ist. Und wie die doppelte und dreifache Checkliste ist es unglaublich wichtig, dass dies der gleiche Name wie die Texturdatei ist, einschließlich des Endpunkts MC Mehta. Bitte überprüfe das. Wenn es um das Buch geht, können wir natürlich noch einmal zu den externen Bibliotheken gehen, um den Kunden extra 1801 oder was auch immer Ihre Version sein mag, Assets, Minecraft, Texturen, Bullock. Und dann ist eine Sache, die man sich ansehen sollte, der Magma-Block. Dieser hat also auch eine MC Mehta-Datei und Sie können sehen, dass es tatsächlich drei verschiedene Texturen gibt tatsächlich drei verschiedene Texturen , die ID durchläuft. Das durchläuft, wie Sie hier sehen können, mit der Framezeit von acht mit der Framezeit von acht alle drei dieser Frames und ändert dann auch hier die Textur, genau wie das andere Portal. Sie können also sehen, dass das untere Portal tatsächlich viele verschiedene Texturen hat, wie Sie sehen können, es geht durch, Nun, ich meine, es geht anscheinend alles durch. Ich bin mir nicht 100% sicher, wie die Animation hier leer ist. Ich bin mir nicht ganz sicher, wie das funktioniert, aber das ist auch ein anderes Beispiel. Ich persönlich empfehle das Magma-Beispiel. Und ich glaube, dass es so ziemlich alles wie wirklich verrückte Beispiele , die den Befehlsblock wiederholen. Aber es gibt noch ein paar Dinge hier. Aber der Makroblock ist wahrscheinlich am einfachsten zu folgen und sollte es sein. Ich meine, es ist ziemlich vernünftig, ziemlich einfach, alles in Betracht gezogen. Es ist ziemlich genau das Gleiche wie das für den magischen Staub. Aber ja, das ist so ziemlich alles, was wir uns ansehen wollen . Und jetzt schätze ich, um Vollendung willen, mal sehen, ob es funktioniert. Oder wir befinden uns in Minecraft. Wir werden also sehen, dass der magische Staub erfolgreich zum Spiel hinzugefügt wurde. Und wie Sie sehen können, während ich es in der Hand halte, wählen wir es einfach aus Southern haben nur einen. Man sieht, dass es langsam aber sicher animiert ist und ich kann es sogar auf den Boden werfen. Und Sie können sehen , dass selbst sie es sind, die tatsächliche Textur auch animiert ist. So einfach ist es also. Und wie gesagt, können Sie die Geschwindigkeit der Animation grundsätzlich ändern indem Sie die Framezeit innerhalb der MC Mehta-Datei ändern. So einfach kann es sein. 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. 103. (zusätzliche Themen) Benutzerdefinierte Effekte hinzufügen: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Minecraft einen benutzerdefinierten Effekt hinzufügen können. Jetzt kommt das Hinzufügen des Kundeneffekts tatsächlich gut, mehr oder weniger, dank eines Schülers, der seinen eigenen Effekt hinzugefügt hat. Und ich habe ihre Wirkung irgendwie kooptiert und einen Vortrag daraus gehalten. Sie wissen also natürlich sehr, an wen Sie denken. Und es ist ein Freeze-Effekt. Es ist eigentlich wirklich interessant. Es wird also eine Entität einfrieren. Und wir werden nur sehen , wie das funktioniert. Es ist tatsächlich einfacher, als Sie vielleicht in unserem MC-Kurspaket denken. Rechtsklick auf ein neues Paket namens Effect Anstatt dort brauchen wir dann zwei neue Klassen. Einer von ihnen ist die Modelleffektklasse. Und dann wird der andere der Freeze-Effekt sein. In der Freeze-Effekt-Klasse befindet sich die gesamte Funktionalität. Ich kopiere einfach über die Klasse wie immer natürlich alles, was dir im GitHub Repository zur Verfügung steht und individuell genauso gut bereit? Hier sehen Sie also den Freeze-Effekt in Aktion. Es ist ziemlich einfach. In allem haben wir die Methode „Apply Effects“ überschrieben, die im Grunde jedes Häkchen genannt wird wenn eine bestimmte Entität diese Wirkung darauf hat. Und dann haben wir auch den Dauer-Effekt-Tick. Stimmt, denn wenn wir diese Weile nicht haben, wäre das im Grunde nie kalt. Das brauchen wir also. Hier. Sie können im Grunde sehen , dass alle prüfen , ob wir auf dem Server sind oder nicht . Wenn dies der Fall ist, nehmen wir die XYZ-Koordinaten dieser bestimmten Entität, die sich auf die Sterblichkeit auswirkt, melden die Entität an sie und setzen auch die Delta-Bewegung auf 0. Dies wird also grundsätzlich für den Spieler benötigt, und dies wird grundsätzlich für Tiere oder jeden NPC benötigt. Also jede Nicht-Spieler-Entität, einfach weil die Delta-Bewegung das eigentliche Tier im Grunde bewegt und sich teleportiert, tut es nicht nur die oberste Reihe zwei funktioniert nicht. Das sind also die beiden Dinge, die wir brauchen. Und wenn wir diese beiden hinzufügen, wird der eigentliche Mob oder in diesem Fall die Entität oder der Spieler an Ort und Stelle einfrieren. Wirklich verdammt cool, wie eine wirklich coole Idee. Und es gefällt mir sehr. Wie können wir dann im Grunde genommen die Frage, wie registrieren wir es? Nun, das hast du schon mal gesehen. Öffentliches statisches Finale, was brauchen wir? Natürlich ein verzögertes Register, diesmal ein Mob-Effekt. Dies wird als MLB-Unterstricheneffekte bezeichnet. Und das ist natürlich gleich einem anderen Register, das Register-Punkt-MLB-Effekte erzeugt. Und dann natürlich unser MC Core, smart aber nicht ID. Und wie jedes Mal, wie wir ein drittes Register gesehen haben, was brauchen wir? Wir brauchen eine öffentliche statische Void- oder Register-Methode mit einem Eye-Ereignisbus, einem ganzen Ereignisbus. Und dann rufen wir die MLB-Effekte auf oder registrieren uns und fahren im Event-Bus vorbei. Nichts zu Neues hier. Dies ist so ziemlich wie jedes Mal, wenn wir die Auswirkungen hier gesehen haben. Und dann wird das natürlich noch einmal heißen, genau hier. Also blasen Sie einfach unsere Mod-Rezepte aus. Wir werden Mob-Effekte sagen, die sich registrieren und dann im Event-Bus vorbeifahren. Und los geht's, Alles ist registriert. Brauche hier nur ein Registrierungsobjekt. Wir werden also öffentliches statisches, endgültiges Registrierungsobjekt sagen. Natürlich der Art des Mob-Effekts. In diesem Fall wird es gekühlt Freeze und ist gleich dem Mob-Effekt beginnt den Namen Freeze hier zu registrieren. Und dann brauchen wir einen Lieferanten für einen neuen Freeze-Effekt. Wie Sie sehen können, mob Effects Kategorie schädlich. Und dann einfach im Grunde eine beliebige Zahl. Dies ist, glaube ich, eine eindeutige Kennung. Sieh dir das mal an. Das ist eigentlich das ist die Farbe. Da gehst du. Das ist die Farbe. Das ist es. Aber das ist die Farbe von, glaube ich, der Teil, der damit verbunden wäre. Jetzt werden wir den Teil dieser Vorlesung nicht hinzufügen. Wir werden den Teil tatsächlich in der nächsten Vorlesung hinzufügen . Aber nachdem Sie dies hinzugefügt haben, ist der Freeze-Effekt tatsächlich im Spiel. Das ist alles, was wir tun müssen, um dies hinzuzufügen. Ich weiß, dass es ziemlich verrückt ist, aber das ist alles, was wir tun müssen. Also schätze ich mal, ob es funktioniert oder wir uns wieder in Minecraft befinden. Also mal sehen, lass uns mir den Effekt geben. Lass uns dev gehen. Und dann können Sie sehen, dass dieser Freeze-Effekt da ist, wenn Sie ihn nicht hinzufügen. Und jetzt kann ich mich nicht wirklich bewegen. Man sieht, dass es irgendwie wackelnd ist. Und das habe ich in diesem Fall für dreißig Sekunden hinzugefügt. Ich kann also nicht wirklich ein bisschen hochfliegen, aber wenn ich versuche mich zu bewegen, sieht man, dass es sehr, sehr langsam ist. In diesem Fall. Ich weiß, wenn ich am Boden bin und versuche mich zu bewegen, drücke ich die W-Taste. Es funktioniert wie sehr, sehr langsam. Und selbst, weißt du, hier herumzulaufen ist, kannst du sehen, dass es definitiv eiskalt ist , sich irgendwie an Ort und Stelle zu treffen. Jetzt kann ich immer noch Blöcke brechen, die eine Augenbank haben, aber das funktioniert. Und Sie haben auch gesehen, dass die eigentliche Textur nicht da war. Wir werden diese Textur ebenfalls hinzufügen. Es ist eigentlich ziemlich einfach, aber das ist ziemlich cool. Alles in Betracht gezogen. Die Textur geht in den Texturordner. Und hier brauchen wir ein neues Verzeichnis namens Mob Underscore-Effekte. Und dann muss die tatsächliche Textur den gleichen Namen haben wie der Name hier. In den MLB-Effekten muss dieser Name also dieser Name sein. Und jetzt wird diese Textur anstelle einer nicht, unscheinbaren Textur angezeigt und nun, ich meine, es wird im Grunde funktionieren. Nun, wie ich in der nächsten Vorlesung sagte, werden wir sofort eine Portion dafür hinzufügen , weil es in meinem Kopf sinnvoll ist , eine Portion zu haben. Das ist es, was man dann im Grunde auch benutzen kann. Vorerst ist das so ziemlich genau das Richtige für diese Vorlesung hier. Ich hoffe, Sie fanden das nützlich und gelb und das fällig. Und wir sehen uns in der nächsten Vorlesung. 104. (zusätzliche Themen): Oder ich begrüße wieder zum Futterkurs für 118. Und in diesem Vortrag werden wir einen Kundentrank hinzufügen, Minecraft einen Kundentrank hinzufügen, einschließlich eines benutzerdefinierten Besenrezepts. Jetzt ist die tatsächliche Portion sehr einfach hinzuzufügen. Das Braurezept ist jedoch, naja, sagen wir, es ist ein wenig rätselhaft warum es so funktioniert, aber keine Sorge, wir werden das durchstehen. Nun, zuerst klicken Sie im MC-Kurspaket mit der rechten Maustaste auf ein neues Paket namens Portion. Und dann werden wir drinnen eine neue Java-Klasse Mod-Ozeane machen. Und das wird unheimlich ähnlich aussehen wie im Grunde viele andere Klassen, die wir zuvor gesehen haben. ein öffentliches statisches endgültiges verzögertes Register Dieses Mal ein öffentliches statisches endgültiges verzögertes Register des Typs Ozean. Und es wird natürlich Teile sein, dem verzögerten Register entsprechen werden, das Register erstellt, dunkle Ozeane gehen. Und natürlich MC, natürlich mäßige oder milde ID. Und dann benötigen Sie wie immer die öffentliche statische Void-Register-Methode mit dem Auge Ereignisbus, Ereignisbus. Und dann machen wir Tränke , die sich beim Event-Bus anmelden. Und dann nennen wir das im MC-Kurskonstruktor genau hier, Mod Tränke, sie registrieren sich vor und fahren dann im Event-Bus vorbei. Und dann müssen wir nur den Trank erschaffen. Es wird also natürlich ein öffentliches statisches Registry-Objekt geben, vom Typ Ocean. Geh. Und das wird der Friere-Unterstrich-Trank sein gleich Tränken ist , die sich registrieren. Dies ist der Friese-Unterstrich-Zaubertrank, wieder der Name hier. Und dann erfordert dies einen Lieferanten einer neuen Portion. Dies wird eine neue Mob-Effekt-Instanz benötigen. Los geht's, von unseren Auswirkungen. Also mod Effects Dark Freeze, die wir letzten Vortrag hinzugefügt haben. Ich mache nur zehn Sekunden mit Lobbyismus. Grundsätzlich ist der Verstärker hier 0. Das wird also die Anzahl der späteren Zeit in Tics sein, und das wird der Verstärker sein. Also wenn wir hier eine 0 einsetzen, wird das eine Stufe eins sein. Das wird auf Stufe eins einfrieren. Und das ist eigentlich alles, was wir tun müssen, um den tatsächlichen Teil hinzuzufügen. Für das Braurezept werden wir tatsächlich eine neue Klasse machen. Das ist sehr interessant, weil es tatsächlich eine Klasse gibt , die als Braurezept bezeichnet wird, glaube ich ja, aus Mikroschmiede. Sie können also sehen, dass dies ein Braurezept ist , das diese Ich-ruinierte Rezept-Schnittstelle implementiert. Und das funktioniert und wir können es benutzen. Was wirklich interessant ist, ist, dass für die Eingabe nicht wirklich darauf geachtet wird, was der eigentliche Teil ist, den Sie ausdrücken müssen, aber Sie wissen, wie Sie einen bestimmten Teil einsetzen können Zutat oben auf dem eigentlichen Brauständer, und dann unten haben Sie drei Schlitze für verschiedene Portionen. Und normalerweise funktioniert es, da Sie dazu einen peinlichen Trank benötigen dazu einen peinlichen Trank und bestimmte andere Beiträge dazu. Und bei der Verwendung dieses Braurezepts spielt es einfach keine Rolle, wie die Eingabe ist. Das tut es nicht, es wird nicht überprüft ob es sich um den tatsächlichen Teil handelt oder nicht. Daher ist diese Brauklasse ziemlich völlig nutzlos und muss nicht verwendet werden. Jetzt habe ich eine Wand gefunden, eine Alternative, die ich als besseres Braurezept bezeichnet habe . Jetzt werden wir das überschreiben. Dies ist eigentlich im Util-Paket. Und das nicht genau das Gleiche, aber der Name ist anders. Die Klasse ist genau die gleiche wie aus diesem GitHub-Repository hier aus zusätzlichen Portionen dann durch Unfall. Dies steht also unter der GPL Drei-Lizenz. Seien Sie sich dessen bewusst, wenn Sie diese Klasse verwenden. sage nur, aber insgesamt meine ich, es ist ziemlich viel, es gibt keine andere Möglichkeit, dies wirklich zu tun , wenn ich darüber nachdenke. Also habe ich das durchgemacht und wir sagen, Okay, es wird immer genauso aussehen. Und das ist einfach der beste Weg, um diesen Kurs wirklich zu machen. Und dann können wir das besser nutzen, um Rezeptkosten zu brauen. Um das Rezept tatsächlich hinzuzufügen, müssen wir nur ein Rezept hinzufügen. Das funktioniert also sofort für den Slash-Trank, den normalen Teil und den anhaltenden Teil. Das ist also echt cool. Jetzt, wenn wir diese Portionsrezepte in der Setup-Methode in unserem gemeinsamen FML-Setup hinzufügen . Wenn wir das tun wollen, möchten Sie sagen Braurezeptregister, diese hier, fügen Sie Rezept hinzu. Und dann machen wir einfach ein neues, besseres Braurezept. Da gehst du. Und dann haben wir die Leidenschaft, welchen Teil wir wollen. Das wird also in diesem Fall peinlich anfangen. Dann die eigentliche Zutat. Das wird also ein Gegenstand sein. Also werden wir noch mehr Gegenstände sagen, als Kobaltbarren, sagen wir, das wird der Kobalt-Zorn sein , oder? Es gibt. Sie gehen, dot get und dann Mod Portionen. Denn natürlich sollte das tatsächliche Ergebnis oder die Ausgabe der Gefriertrank sein. Und sie setzen jetzt peinliche Positionen am Boden und einen Kobaltbarren ein, da der Gradient uns einen Gefriertrank bringen wird. Das ist alles, was wir tun müssen. So einfach ist es eigentlich. Für die Tränke müssen wir auch etwas Übersetzung hinzufügen. Das ist eigentlich sehr wichtig. Es gibt wenige Dinge , die wir hinzufügen müssen. Zuallererst müssen wir diese drei hier hinzufügen. So wird das sein, Sie können sehen, dass dies Portionseffekt-Gefriertrank, Trank für den Spritzer und die anhaltende Portion ist . Unglaublich wichtig. Dies ist tatsächlich unter dem Minecraft-Namespace. Ich bin mir nicht 100% sicher, warum das der Fall ist. Ich meine, ich bin mir zu 80% sicher, warum das der Fall ist. Die Idee ist, dass wenn man tatsächlich eine Portion registriert, sozusagen einen neuen Trank herstellt. Was dann passiert ist, dass dies einfach zum hinzugefügt wird. Die tatsächliche Portionsliste in Minecraft und dann ist diese unter dem Minecraft-Namespace registriert. Ich bin mir nicht 100% sicher, ob das schlecht oder gut ist. Ich meine, es könnte vorerst eine schlechte Sache sein. Wir werden es so behalten. Wenn es in Zukunft Konflikte gibt, werden wir diese auch lösen. Keine Sorge da. Aber das ist im Grunde die Idee der Ozeane. Und jetzt brauchen wir auch den Effekt. Der Effekt sieht so aus. Wir werden das ganz unten hinzufügen. Dieser Effekt Punkt M C Corps friert ein, und das ist nur Code Freeze. Dies sind die Übersetzung, die unglaublich wichtig ist. Was ist nun auch für den Gegenstand interessant, für die Trank Gegenstände, die Sie automatisch generiert haben. Und wir müssen überhaupt nichts für sie tun. Das ist also so ziemlich alles, was wir tun müssen. Die Farbe der eigentlichen Portion wird den Mod-Effekten genau hier entnommen. Diese Farbe hier ist im Grunde genommen das , was verwendet wird. Ich bin mir nicht hundertprozentig sicher, was das ist. Es könnte nur eine Hexadezimalfarbe sein. Ich bin mir nicht sicher. Es könnte auch etwas anderes sein, aber das wird gut. Das ist auch einfach nur damit herumspielen. Wenn du willst. Einige andere Farben sind vorerst, das ist so ziemlich alles, was wir für die Gewohnheit benötigen, sowohl den benutzerdefinierten Teil als auch das Rezept hier, um hinzugefügt zu werden. Also schätze ich mal sehen, ob es funktioniert. Oder wir befinden uns in Minecraft. Also mal sehen, lass uns einfach die Aqua-Portionen und dann einen Kobaltbarren hinzufügen und es sollte anfangen zu brauen. Und in der Tat tut es das, es fängt an zu brauen. Und sobald dies geschehen ist, sollten die peinlichen Tränke zu Gefrierportionen werden. Also lasst uns ein paar Schafe besorgen , um zu sehen, ob sie am Ende tatsächlich gefroren werden oder nicht . Mal sehen. Hier sind wir fast fertig und dann haben wir ein paar Tränke. Lass uns gehen. Also haben wir einen Gefriertrank und eine weitere Gefrierbewegung und einen anhaltenden Gefrierteil. Also funktioniert alles genau so, wie man es für ein Schaf erwarten oder sich selbst umbringt. Das ist erstaunlich. Wow, das ist echt witzig. Mal sehen. Und da gehst du. Und dann sieht man, dass sie sich nicht mehr bewegen können. Ich kann sie sogar treffen und sie können sich nicht bewegen, weil der Freeze-Teil sie buchstäblich einfriert. Wir können das Gleiche auch für einige Zombies versuchen, was wirklich Spaß macht weil sie im Grunde versucht haben, dich zu jagen und dann, oh, nun, ich meine, ich glaube, ich bin friedlich, also los geht's. Kopieren wir das und dann wechseln wir zum Überleben und dann werde ich versuchen, sie zu holen. Und da gehst du. So hat der kleine Baby-Zombie, wie Sie sehen können, aufgehört, sich zu bewegen. Lassen Sie uns hier tatsächlich noch ein paar gefrierende Teile spritzen. Nur damit du das noch einmal zeigen kannst. Wieder einmal werden wir einfach umschalten und ich werde sie einfrieren. Einfrieren. Und friere auch ein. Oh nein, ich bin selbst eingefroren. Das ist nicht gut. Wir können sehen, dass das natürlich manchmal auch passieren kann, aber es ist wirklich verdammt cool. Und ja, so einfach ist es eigentlich nicht nur benutzerdefinierte Portionen, sondern auch benutzerdefinierte Portionsrezepte hinzuzufügen meinem Handwerk nicht nur benutzerdefinierte Portionen, sondern auch benutzerdefinierte Portionsrezepte hinzuzufügen. Steht Ihnen natürlich immer die gesamten Quartale im GitHub Repository zur Verfügung oder auch eine Einzelperson passt sich an. Aber das wird es für diesen Vortrag 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) Benutzerdefinierte Personen mit Geckolib: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir dem Spiel eine benutzerdefinierte Entität oder einen benutzerdefinierten Mob hinzufügen . Dies wird der Beginn einer, sagen wir, ein paar Vorlesungsteilreihe sein, in der wir unserer Entität im Grunde mehr Funktionalität hinzufügen werden. Wir werden zuallererst eine normale Entität zum Spiel hinzufügen, eine normale Entität zum Spiel hinzufügen als einige Animationen hinzuzufügen. In der nächsten Vorlesung danach machen wir es zu einem Tisch. Wir werden eine andere Varianz dieser bestimmten Entität hinzufügen . Und am Ende werden wir auch eine Entität hinzufügen , die beschreibbar sein wird. All diese Dinge werden uns also im Grunde in den kommenden Vorträgen erwarten. Was ich sagen werde, ist dass jede Entität, die wir hinzufügen werden, zwei Entitäten hinzufügen werden und beide die Gecko-Lip-API-Bibliotheken verwenden werden. Obwohl dies nicht unbedingt notwendig ist, deutet dies auf einen normalen Mob ohne zusätzliche Animationen hin. Ich empfehle immer noch , immer nur die Glycolipid-Bibliothek zu verwenden, um die Entitäten hinzuzufügen. Weil es es in vielerlei Hinsicht viel einfacher macht . Im Grunde macht es es einfach einfacher. Und so werden wir zuerst Gecko-Lippe einrichten. Dafür. Wir werden diese hier grundsätzlich überschreiben. Dies ist also das, wie Sie es auf GitHub sehen können, das Gecko Lib Wiki Installationshandbuch. Im Grunde bin ich das, ich kopiere das. Und dann wechseln wir zurück zu hier, gehen in unsere gebaute DOD Gradle-Datei. Und das, das erste, das wir kopiert haben, würde genau hier in die Repositories gehen. Also füge es einfach da hinzu. Und dann das andere, das hier. In diesem Fall werde ich das hier schon die neueste Version sein, 3011 auf dieser Seite. Ich bin mir nicht sicher, ob dies jedes Mal aktualisiert wird , wenn eine neue Version herauskommt, aber hoffentlich wird dies genau hier unter ein Minecraft gehen. Das sollte also alles sein, was wir brauchen. Und jetzt können wir die Gradle-Änderungen laden. Und es wird im Grunde die Glycolipid-Version herunterladen und es wird sie implementieren , damit wir die Gecko-Lippe EPI im Grunde auch in unserem Mod verwenden können . Und danach kann es wieder einmal eine Minute dauern, es kann dreißig Sekunden dauern. Hängt von vielen Faktoren ab. Grundsätzlich sieht man tatsächlich ziemlich schnell Jahr 21 Sekunden. Das ist ziemlich nett. Dann ist die Frage, nun, woher holen wir unsere Entitäten? Nun, für unsere Entitäten werden wir Block Bench benutzen. Block Bench ist ein Programm , mit dem Sie generische Modelle herstellen können. Sie konnten bei beiden Modellen keine Blockmodelle erstellen. Wir haben das schon gesehen, aber wir können auch Entitäten herstellen. Wichtig ist, dass Sie die Under File-Plugins haben und die Gecko Lip Animations, Animation Utils genau hier haben. Also brauchen wir dieses spezielle Plugin. Sonst wird es nicht funktionieren. Stellen Sie also sicher, dass Sie dies installieren. Gehe im Grunde zu verfügbar und suche danach. Jetzt bekomme ich es nicht, weil es bereits installiert ist. Sie können sehen, wie Sie dies installieren und dann sollten Sie die Möglichkeit haben , das animierte Gecko-Lippenmodell hier hinzuzufügen . Jetzt habe ich schon ein paar vorbereitete Sachen, also haben wir einen Waschbären und einen Tiger. Wir werden zuerst die Waschbären benutzen. Ich öffne es einfach und du siehst, da gehst du. Der Waschbär ist schon hier fertig. Und nun, ich meine, im Grunde ist dieser Waschbär auch schon animiert, also haben wir tatsächlich drei Animationen hier. Wir werden uns die Animationen in der nächsten Vorlesung vorerst etwas detaillierter ansehen in der nächsten Vorlesung vorerst , was wir tun werden, ist, dass wir das einfach exportieren werden. Was wir tun werden, ist, wenn wir eine benutzerdefinierte Entität erstellt haben . Um also das eigentliche Waschbärmodell in unserem Projekt und unserem MOD verwenden zu können, müssen Sie dies exportieren. Also gehen wir zum Dateiexport und dann zum Exportieren des Gecko-Lippenmodells. Wenn dies nicht angezeigt wird, können Sie auf Projekt konvertieren klicken und sicherstellen , dass Sie im Grunde das animierte Modell Kekule Lip auswählen. Wenn dies noch nicht das aktuelle Format ist , sollte der eigentliche Export hier erscheinen. Wir können dies dann verwenden und dann unter der Waschbär GO-Punkt-JSON-Datei speichern . Ich werde es einfach ersetzen. Das wird gut werden. Und jetzt habe ich das Modell tatsächlich exportiert, und wir können es bereits innerhalb unseres spielbasierten verwenden. Ich habe auch die Textur, ich habe das tatsächlich getrennt. Theoretisch können Sie dies auch aus der eigentlichen Blockbench-Datei speichern . Aber es wird uns gut gehen. Wie gesagt, die Animationen, die wir vorerst komplett ignorieren werden. Diese werden wir in der nächsten Vorlesung benutzen. Wechseln wir zurück zu IntelliJ. Und was wir tun werden, ist dass wir sofort einen neuen Ordner im Assets-Ordner MC-Kurs erstellen. Und dann erstellen wir hier den Geoordner. Und das wird die Waschbär GeoJSON-Datei bekommen. Sie gehen. So sieht es im Grunde aus. Es könnte irgendwo einen Tippfehler geben, das wird gut. Ich glaube, dass alles, was in dieser Akte genannt wird, eigentlich keine Rolle spielt. Und dann werden wir auch brauchen, dass wir tatsächlich auch die Texturdatei abrufen müssen. Natürlich. Die Texturdatei geht natürlich tatsächlich zu den Texturen. Und dann statt der Entität hier hochgezogen, Entität, dann der Name der Entität. In unserem Fall wird das so sein und dann kopiere ich die tatsächliche Textur genau hier. Da gehst du. Das wird nur die Waschbär-Textur sein. Ich werde im Grunde auf diese hinweisen, in einem Moment, in dem wir die Entität vorerst tatsächlich implementieren, das sind die wichtigsten Dinge , die wir definitiv brauchen. Die Geodatei genau hier, das GeoJSON und die Textur. Dann könnte es auch einen Animationsordner geben, im Grunde genommen die Animationen enthält, die wir in der nächsten Vorlesung verwenden werden. Jetzt werden wir genau hier ein neues Paket erstellen , Entity. Drinnen da drin. Wir werden eine neue Java-Klasse erstellen. Der Modus in t. Die Modus-Entitätstypen haben ein öffentliches statisches Finale, das dritte Register des Typs, den Entitätstyp und dann wieder die Winkelklammern mit einem Fragezeichen in ihnen. Es wird geben, dass die Entitätstypen gleich dem dritten Registerpunkt sind, der Registerstelle Register, dieser Entität, tatsächlich vor ihnen und dann MSC-Kurs smart this market. Und ob es sich um ein anderes Register handelt, gibt es natürlich eine öffentliche statische Void-Register-Methode. Dann passe ich Event Pass den alten Eventbus genau hier. Und dann rufen wir die Entitätstypen , die die Übergabe im Event-Bus registrieren. Dann werden wir sofort hier unter die weiteren Portionen gehen . Und wir werden mehr Entitätstypen sagen, nicht die Übergabe im Event-Bus registrieren. Und dann haben wir auch diese Klasse registriert. Jetzt haben wir immer einige Registrierungsobjekte unserer verschiedenen Entitäten. Aber bevor wir damit im Grunde fortfahren werden, werden wir die Entitätsklasse selbst erstellen. Sie erneut im Entitätspaket rechten Maustaste auf neuen Paketkunden. Ich nenne das noch einmal das benutzerdefinierte Paket. Und anstatt dass sie eine neue Java-Klasse erstellen, und das wird die Waschbär-Entität sein. Wenn es um die Waschbär-Entität geht, wird das sehr interessant sein weil es eine Menge Dinge gibt. Ich werde auch eine Menge von diesem Zeug kopieren. Dies steht Ihnen im GitHub Repository und einer Einzelperson genauso gut zur Verfügung. Also überhaupt keine Sorgen. Was wir tun werden, ist, dass wir diese Ausdehnung durch Tiere machen werden . So erweitert Tier und implementiert in diesem Fall auch die animierbare Schnittstelle des Auges. Jetzt werden wir einfach den Mauszeiger darüber bewegen, das Hinzufügen dieser verschiedenen Methoden genau hier. Und ich werde den Mauszeiger über diesen Grid-Konstruktor auch super passt. Und wenn diese Namen Sie stören, können Sie einfach darauf klicken, Shift F6, und dann sollte es hier etwas Schöneres vorschlagen. Dies wird null gehalten, in diesem Fall der rote Nachwuchs. Dies wird also nur der berechtigte Mob sein , um Kinder zu bekommen. Wir brauchen das im Moment nicht. Die Controller sind sowohl für das Animationsmaterial als auch für die Animations-Fabrik gedacht. Und wir werden die Animationsfabrik sofort hinzufügen , da dies buchstäblich nur eine Zeile ist. Wie du siehst. Es gibt nur eine private Animationsfabrik. Animations-Fabrik. Und dann geben wir das einfach weiter. Dann kann es das grundsätzlich genau hier zurückgeben. Die Controller, wir werden im Moment nichts zurückgeben. Zunächst einmal werden wir uns ansehen anderen Dinge ansehen, die wir für die Entität benötigen. Weil es mindestens eine Reihe von Methoden gibt , die wir benötigen, und das sind die gesetzten Attribute. Dies ist etwas, das unglaublich wichtig ist. Eigentlich. Wenn wir das nicht haben, wird es eigentlich nicht funktionieren. Wir werden einfach folgendes machen, dass sie gehen. Im Grunde legen wir hier nur einige grundlegende Attribute fest. Die maximale Gesundheit, der Schaden, die Angriffsgeschwindigkeit der Bewegungsgeschwindigkeit. Weißt du, natürlich kannst du damit herumspielen aber du möchtest sie im Grunde nicht ändern sie im Grunde , wenn du willst. Aber das ist sehr wichtig, dass wir dies haben, da sonst die tatsächliche Entität keine Attribute haben wird. Und das ist natürlich nicht ganz das, was wir hier wollen. Wir wollten natürlich einige Attribute haben. Es gibt auch einige andere Methoden, die wir überschreiben können. Nun, lasst uns das ein bisschen trennen. Das wird also das ganze Animationsmaterial sein. Das hier ist alles für Animationen. Und es gibt noch ein paar andere Dinge , die ich hier kopieren werde, aber das sind nur ein paar Geräusche, wie Sie sehen können. Es gibt, lasst uns einfach alles öffnen. Da gehst du. Es gibt also ein Schrittgeräusch. Ich habe gerade ein paar Sounds ausgesucht. Es gibt eine Katze gerade so wie Ambient. Delphin verletzt ist, wenn es verletzt wird, oft taub Geräusche. Warum nicht? Im Moment habe ich keine Waschbärgeräusche, aber natürlich sollten sie auch keine Rolle spielen. Aber das sind im Grunde die Sounds, die Sie definieren können. Und ja, natürlich könntest du auch Mod-Sounds sagen und dann auch einen deiner Modus-Sounds verwenden. Sie können natürlich auch benutzerdefinierte Sounds oder Ihre Entitäten hinzufügen . Das ist ziemlich cool. Alles in Betracht gezogen. Ich meine, das schließt den Teil davon ziemlich ab. Das Letzte, was wir auch wollen, ist, dass wir die Methode „Register Goals“ wollen, und das ist eine Methode, die wir auch überschreiben können. Jetzt denke ich, dass wir zwei Dinge haben werden, genau zwei Dinge die im Moment kommentiert werden. Weil die dafür sind , wann wir dieses T-Mobile machen werden. Im Moment werden wir den Waschbärtisch nicht machen , weil ich diese Ziele grundsätzlich Schritt für Schritt durchgehen möchte . Dies ist im Grunde die KI dieser Entität. Das ist sehr, dies kann ein sehr komplexes Thema sein. Es gibt also viele verschiedene Ziele, die wir hinzufügen können. Was wir zum Beispiel tun können, ist, dass wir mit der mittleren Maustaste auf ein Ziel klicken können und Sie sehen, dass dies die Torklasse erweitert. Wenn ich jetzt darauf klicke und Strg H drücke, sind dies alle Ziele und jetzt kann ich sie erweitern. Und Sie können sehen, dass es viele verschiedene Ziele gibt . Du kannst es sehen. Und theoretisch kannst du sogar deine eigenen Ziele schreiben. Es gibt also wirklich eine Menge Sachen hier drin. Und wieder einmal ist dies eines dieser Dinge, bei denen man nur ein bisschen damit herumspielen muss. Schau dir die Vanilla-Entitäten und sieh dir an, wie sie Ziele nutzen Die allgemeine Idee ist, dass je niedriger die Priorität, wie je niedriger die Prioritätszahl, desto höher ist sie tatsächlich in der Liste. Man wäre die höchste Priorität und sechs hat die niedrigste Priorität. Wenn es jedoch zwischen einem oder zwei Zielen wählen muss, wird im Grunde genommen die Prioritäten betrachtet. Das ist also die allgemeine Idee hier. also sicher, dass dies im Grunde immer richtig eingerichtet ist. Und dann, wie gesagt, du kannst einfach zum Tier gehen, zum Beispiel, in der Mitte der meisten Punk klicke auf diese Presse Control H. Du kannst alle Tiere sehen. Aber zum Beispiel könnten wir uns den Fuchs hier ansehen. Und Sie können sehen, dass es hier viele verschiedene Dinge gibt, die uns im Moment eigentlich nicht wirklich interessieren. Wir wollen nur die tatsächlichen Ziele sehen. Sie können sehen, dass wir nur ihre Ziele sind, aber Sie können bereits sehen dass es hier einige verschiedene Ziele gibt. Dieses Lampen-Zielziel, es gibt ein Ziel für Schildkröten, Es gibt ein Ziel für Fische. Wir haben einige Zielselektoren bei denen wir hier bestimmte Ziele hinzufügen, die Rispe, das Zuchtziel, die Ziele der Go-Entität vermeiden. Dies ist also ein Ziel, das eine bestimmte Entität in einer bestimmten Entfernung vermeidet . Es gibt also so viele Dinge, die du tun kannst. Jetzt. Sie können auch sehen, dass die meisten von ihnen spezifisch für den Fuchs sind , anstatt der Fox-Klasse, sagen wir zum Beispiel das Schlafziel für die mittlere Maustaste. Klicken Sie darauf. Sie werden sehen, dass das Schlafziel tatsächlich im Fox Verhaltensziel liegt und es sich tatsächlich in der Box-Klasse befindet. Manchmal befinden sich einige dieser Ziele tatsächlich innerhalb ihrer tatsächlichen jeweiligen Entitäten. Und das ist auch der Grund, warum der Fuchs beispielsweise 1600 Codezeilen hat. Es gibt eine Menge Sachen hier drin. Ich meine, ich würde sagen, wahrscheinlich die komplizierteste Sache in Bezug auf benutzerdefinierte Entitäten für das Leben im Allgemeinen, es ist einfach das, was es ist. Sehr zu empfehlen. Sie müssen einige der Vanilla-Entitäten durchgehen und einfach damit herumspielen und dann sehen, was Sie sehen können, wie gesagt, die mittlere Maustaste jedes Jahr auf dieses Steuerelement auf das Ziel klicken jedes Jahr auf dieses Steuerelement auf das Ziel und dann solltest du in der Lage sein, alle verfügbaren Ziele zu sehen. Und dann können Sie im schlimmsten Fall auch einige davon kopieren, können Sie im schlimmsten Fall auch einige davon kopieren wenn Sie sie unbedingt benötigen. Dann ist die eigentliche Rückruf-Entitätsklasse hier fertig. Registrieren wir es dann in der Klasse „Mehr Entitäten“. Ich werde das auch kopieren. Wie immer steht Ihnen im GitHub Repository genauso gut alles zur Verfügung . Jetzt tritt dieser Fehler auf, weil dieser geschützt werden sollte. Also werden wir das hier öffentlich machen . Und dann sollte der Pfeil verschwinden. Es gibt also überhaupt keine Sorgen. Und Sie können sehen, dass es ein Registrierungsobjekt vom Entitätstyp gibt. Dann setzen wir die Klasse , die wir gerade gemacht haben, hier rein, der Waschbär, der sich unter dem Namen des Waschbären registriert. Und dann werden wir sagen, dass der Entitätstype-Builder der Datensatzeinheit wusste. Dies ist in diesem Fall eine Kreatur, diese Größe ist tatsächlich die Größe der Heap-Box dieser Entität. Und der Magnetische baut es unter dem Ressourcenstandort oder mehr Id unter dem Raccoon Namespace. Und das ist so ziemlich die Registrierung genau hier gemacht wird. Und jetzt müssen wir es immer noch gut machen, ich meine, füge das im Grunde an ein paar verschiedenen Stellen hinzu. Der erste Ort, an dem wir dies hinzufügen möchten, ist tatsächlich in unseren Events und dies wird in den Mod-Event Bus-Events sein. Interessanterweise, denn genau hier wollen wir ein neues Ereignis als öffentliche statische Lücke hinzufügen . Und das ist die Entität. Attribut-Ereignis, ich rufe das einfach auf und dann werden wir Entitätsattribut sagen. Dies ist das Erstellungsereignis, Zitat-Ereignis. Wenn wir das tun, werden wir einfach Event Tab put aufrufen, Mod-Entitätstypen, die Waschbär, das GET. Dann setzt die Waschbär-Entität das Entitätsattribut. Und dann fügen wir einfach das Add-Abonnement-Event gleich hier hinzu . Sehr wichtig, dass wir dies hinzufügen. Und jetzt wird dies im Grunde genommen , der in unserer Welt existiert, die wir hier definiert haben, die Attribute hinzufügen jedem Waschbären, der in unserer Welt existiert, die wir hier definiert haben, die Attribute hinzufügen. Das ist die Idee. Es gibt. Es gibt jedoch noch ein paar Dinge für den Waschbären, für das Unternehmen im Allgemeinen. Für die Entität benötigen wir auch einen Renderer und ein Modell. Wenn das Entitätspaket erneut ausgeführt wird, klicken Sie mit der rechten Maustaste auf neues Paket, und wir nennen es tatsächlich den Client, weil der Renderer und das Modell für beide Client sind, nur wenn ich mich nicht irre, wir sagen Raccoon. Das wird der Renderer sein. Dann werden wir auch den anderen machen. Das wird der Waschbär sein. Das wird das Modell sein. Da gehst du. Es gibt überhaupt keine Sorgen. Die, welche ist einfacher? Das Modell wird ein bisschen einfacher. Dies wird jedoch das animierte Geo-Modell des Typs Record-Entität erweitern , zu dem Sie gehen. Und dann werden wir den Mauszeiger darüber bewegen , Methoden implementieren. Also müssen wir diese drei Methoden implementieren. Das ist eigentlich ziemlich einfach. Ich kopiere die eine Sache hier. Dies folgt also nur einem neuen Ressourcenstandort. Und das deutet genau auf den GEO und dann Waschbär hin , die AOTA Jasons, genau diese Tracer-Datei genau hier, die wir im Grunde haben. Und dann werden wir das auch einfach kopiert. Ich bin mir eigentlich nicht 100% sicher, was passieren wird , wenn ich diese Datei nicht habe, ich bin mir nicht ganz sicher. Und für die Textur haben wir das genau hier. Also Texturen, Entity Waschbär und dann der Waschbär, ein PNG. Jetzt bin ich mir nicht auf Prozent sicher, weil ich das eigentlich noch nicht ohne die Animationsdatei ausprobiert habe. Aber ich denke, dass es gut gehen wird. Wir werden sehen, ob wir einen Absturz bekommen, dann werden Sie das in einem Moment beheben, in dem Sie sich Sorgen machen müssen. Aber das ist die eigentliche Modelldatei und dann brauchen wir auch den Render. Natürlich sollte der Renderer in diesem Fall tatsächlich etwas einfacher sein. Dies wird also den GU Entity Renderer, die Waschbär-Entität, erweitern . Notieren Sie noch einmal keines Rekordmodells, sondern Waschbär Entity, aber es bewegt sich einfach mit dem Mauszeiger darüber. Und wenn wir unser Matching ein Super konstruieren, müssen wir nun diesen Modellanbieter loswerden und dann genau hier ein neues Waschbärmodell erstellen. Ich werde das auch starten oder Radius 0.3. Ich denke, das wird gut werden. Und dann wird es großartig sein, wenn ich gehe. Wir wollten nur die Rendertyp-Methode genau hier überschreiben . Das skaliert es also auch. Und dann wollen wir auch die Texturposition erhalten. Dann wählen wir den gleichen Texturort aus. Hier. Wir werden einfach auch bereitstellen, und das sollte so ziemlich alles sein, was wir tun müssen. Also das, sowohl das Modell der Renderer eigentlich ziemlich einfach. Alles in Betracht gezogen. Es gibt nicht so viele Dinge hier drin. Wie Sie in den Vanille-Modellen sehen können. Da ist eigentlich viel mehr drin, weil natürlich die Vanilla-Modelle tatsächlich das gesamte Modell in der Klasse gespeichert ist und nicht in dieser Geometrie, Jason. Das ist also das wirklich coole Ding. Dann müssen wir den Renderer im Grunde nur richtig hinzufügen . Wie machen wir einen Mehrwertsteuer? Wir machen das, indem wir zu unserem MC-Kurs Grabenkurs gehen. Und dann innerhalb des Client-Setups sehr wichtig. Wir werden sagen, Entität rendern uns, rendern Sie uns das hier. Registrierungsmodus, Entitätstypen. Wir sagen, der Waschbär kommt nicht. Dies ist gleich dem Waschbär, dem Doppelpunkt, dem Doppelpunkt, dem Doppelpunkt neu. Und das sollte das sein. Das ist so ziemlich genau das, was wir auch an dieser Front tun müssen . Jetzt müssen wir auch einen neuen Artikel hinzufügen. Und das wird natürlich das Laichei, das Sperma und das Ei sein . Ich werde diesen tatsächlich einmal wie immer kopieren , natürlich steht Ihnen der eigentliche Code zur Verfügung. Das ist nicht zu verrückt. Man sieht diesen kalten Waschbärengpass. Dies ist eigentlich vom Typ Artikel für hispanischen Gegenstand. Und das sind die Farben, die Großbritannien im Grunde hat. Und das ist so ziemlich alles, was du dort tun musst. Dann. Da dies eigentlich ein normales Element ist, möchten wir natürlich auch die Übersetzung hier hinzufügen, den lang-Ordner in unterstrichen uns JSON-Datei. Also lasst uns das auch hier hinzufügen. Es gibt die Waschbären spawnen zB. Und wir brauchen eigentlich auch eine Artikelmodelldatei. Ich weiß, dass das ziemlich verrückt ist, aber es stimmt. Oder das ist auch nicht zu verrückt. So können wir sehen, dass es als übergeordnetes Element Vorlage Spawnen Ei ist. Das wird also genau hier mit diesen beiden Farben eingefärbt sein . Das ist also alles, was es dazu gibt. Dann sollte der Artikel auch völlig gut funktionieren. Und wenn ich mich nicht irre, glaube ich, dass ich alles hätte erreichen sollen , was ich brauchte. Ich musste hier hinzufügen. Wenn nicht, werden wir definitiv sehen , dass es nicht funktioniert, aber das wird gut werden. Und wir werden auch sehen, was du mit einem Pfeil machen kannst. Aber vorerst denke ich, dass dies alles ist, was wir brauchen. Schauen wir uns also nach Werken oder was wir uns in Minecraft befinden. Und wie Sie sehen können, wurde die raccoon AG erfolgreich in das Spiel aufgenommen. Und jetzt schauen wir mal, ob ich mit der rechten Maustaste klicke, ob der Waschbär spawnt. Und da ist es. In seiner ganzen Pracht bewegt es sich. Wie bereits gesagt, gibt es derzeit natürlich keine besonderen interessanten Animationen . Und ich glaube tatsächlich, dass der eigentliche Begrenzungsrahmen, wenn ich F3 drücke, ein bisschen zu klein ist. So können wir vielleicht ein bisschen mehr Begrenzungsrahmen hinzufügen . Vorerst ist das wirklich cool und ja, es ist notwendig, wie einfach es jetzt ist. Oh, es wird tatsächlich fließen wegen der schwimmenden Kobaltwunde. Das ist irgendwie witzig, aber ja, so ziemlich am einfachsten ist es , Microsoft einen Mob hinzuzufügen. Nur um der Argumentation willen wir das nur ein bisschen größer machen . Sagen wir etwas wie 0,8 und vielleicht stieg die Höhe sechs. Das wird gut werden. Ich denke , dass es uns gut geht. Und das sind eigentlich all die Dinge, die Sie brauchen. Um also noch einmal zusammenzufassen, benötigen wir die benutzerdefinierte Waschbär-Entitätsklasse. Natürlich sehr wichtig. Die eigentliche Fabrik hier brauchst du noch nicht, aber wir haben das schon hinzugefügt, weil warum nicht? In diesem Fall ergibt es einfach Sinn. Und dann waren die Ziele und die Attribute hier sehr wichtig. Und dann ist das andere Zeug Ritchie viel. Nicht unbedingt, es ist nicht notwendig. Es ist einfach schön zu haben und auf Meer zu basieren. Dann mussten wir dies hinzufügen und haben uns richtig in der Klasse der Modus-Entitätstypen registriert . Dafür brauchten wir einen Renderer und eine Modelldatei, die Modelldatei zeigt auf die Modelldatei. Dies deutet also auf das GeoJSON sowie auf das eigentliche Extra und die Animationen hin. Und dann deutet der Mietabfall auch auf die Textur hin. Es bestimmt auch die tatsächliche Schattengröße und erstellt ein neues Modell. Dies ist die allgemeine Vorstellung davon, wie diese zusammenarbeiten. Wir mussten ihm auch die Attribute zuweisen . Das ist unglaublich wichtig denn wenn du das nicht tust, dann glaube ich, dass das Spiel tatsächlich abstürzt, wenn du das nicht tust und du versuchst, die tatsächlichen Entitäten zu spawnen , das ist wirklich wichtig. Dann haben wir auch das Spawn EKG hier hinzugefügt. Und dann haben wir in unserem MC-Kursmodus genau hier den Renderer registriert. Und das sind all die Dinge, die wir tun mussten. Die Geodatei und die eigentliche Textur hier sind natürlich ebenfalls sehr wichtig. Aber abgesehen davon ist das so ziemlich alles, was Sie für einen sehr einfachen benutzerdefinierten Mob benötigen . Immer noch fertig mit Gecko-Lippe, wie ich schon sagte. Und dann nächsten Vortrag wir sofort einsteigen und einen Blick auf die sehr coolen Animationen werfen, die uns im Grunde zur Verfügung stehen. Weil das etwas ist , das wirklich mächtig ist und tatsächlich ziemlich einfach zu bedienen ist. Definitiv im Vergleich zu den Vanille-Animationen, denn das sind diese, möchten Sie diese nicht im Grunde verwenden. Nun, was auch immer der Fall sein mag, ist es dann schon für diese Vorlesung genau hier, ich hoffe, Sie fanden das nützlich und lernen etwas Neues. Wir sehen uns in der nächsten Vorlesung. 106. (zusätzliche Themen) Einrichtungen, Animationen mit Geckolib und Blockbench hinzufügen: Alles klar, willkommen zurück zum Futterkurs für 118. Und in dieser Vorlesung werden wir unserer benutzerdefinierten Entität einige Animationen hinzufügen , die wir in der letzten Vorlesung hinzugefügt haben. Und dafür werden wir zuallererst wieder auf das eingehen, was wir noch einmal öffnen werden . Jetzt sollten Ihnen dieser Waschbär und die eigentliche Block-Pinch-Modelldatei zur Verfügung gestellt werden, obwohl sie entweder von der letzten Vorlesung oder in dieser Vorlesung heruntergeladen werden kann, wir sollten auf jeden Fall heruntergeladen werden können. Und das, wir werden es im Grunde öffnen und dann direkt hier zum animierten Tippen gehen. Jetzt sollten wir bereits alle drei Animationen hier haben. Und ich werde im Grunde schnell die allgemeine Idee einer Animation zeigen. Nur um der Argumentation willen werden wir einfach ein neues machen. Also klicken wir auf den kleinen Plus-Button. Und dann kannst du hier eine neue Animation machen , die du sehen kannst. Jetzt. Dies ist normalerweise, dass Sie diese Animation dunkle Waschbären nennen möchten. Dies ist also der Name des Artikels. Und was auch immer die Animationen sind, wir werden diesen Test einfach aus Gründen der Argumentation nennen . Und dann kannst du wissen, was du diese Schleife machen kannst. Wie Sie sehen können, hier viele andere Sachen machen. Wir werden es einfach bestätigen, dass es mir gut geht? Jetzt für diese Animation? Sobald Sie es dann im Grunde genommen tun können, haben Sie hier unten eine Zeitleiste. Und ich kann, es wählt bestimmte Körperteile aus. Zum Beispiel kann ich den Körper auswählen und plötzlich kannst du hier unten sehen, ich bekomme die Möglichkeit , Keyframes hinzuzufügen. Wenn Sie jemals ein Video bearbeitet haben, ist dies diesem sehr ähnlich. Zum Beispiel könnte ich sagen, okay, ich möchte die Position mit einem Schlüssel umrahmen, also klicke ich hier auf das Plus. Dann können Sie sehen, dass ich an dieser Position beim Zeitcode 0 jetzt einen Keyframe für diesen bestimmten Teil habe. Also dieser Körper wird hier nicht Keyframe sein. Wenn ich dann die Zeit verschiebe, sagen wir mal zu, sagen wir 0,52 Frames, wo immer das sein mag. Klicken Sie erneut auf dieses Plus. Sie können jetzt zum Zeitpunkt von 0,52 sehen, jetzt habe ich einen zweiten Keyframe. Und wenn ich es zum Beispiel getan habe, um mich zu ändern, kann ich es entweder hier in dieser Position ändern. Also könnte ich zum Beispiel sagen, vielleicht über den eigentlichen Körper um zwei nach oben zu gehen, ich kann es entweder tun oder ich kann es auch innerhalb der eigentlichen Sache machen. Und man sieht , dass sich auf der linken Seite auch die tatsächliche Position dort ändert. Und es war wirklich cool, dass es einige Methoden zur Lockerung gibt. Sie können also sehen, dass diese im Grunde zeigen, wie das läuft. Denn wenn ich diese Folie jetzt zurücklege und diesen Play-Button setze, kannst du sehen, dass dies steigt. Das ist sehr schnell. Also vielleicht wirst du so sein, weißt du was, lass uns das anhalten und lass uns das tatsächlich so bewegen , als würde das etwas langsamer sein. Und dann siehst du das richtig? Sie können also sehen, wie es nach oben geht. Und dann wird es natürlich zurückgesetzt, weil dies in diesem Fall eine Looping-Animation ist. Im Grunde setzt sich hier mit den einfachen Sachen zurück, die Sie können. Es gibt bestimmte Dinge. Du kannst Schritte machen. Sie können eine Art Lockerung wie diese machen, wo es langsam geht und dann schneller geht. Sie können es sogar so machen , wo es am Anfang sehr schnell ist und sich dann verlangsamt oder lockert. Sie können sehen, dass es viele verschiedene Typen gibt. Das ist sogar wie ein bisschen wie ein bisschen Zufall, irgendwie auf und ab zu springen, was wirklich cool ist. Es gibt also eine Menge Sachen, die du hier tatsächlich machen könntest. Es gibt auch ein paar wirklich coole Dinge, die Sie hier hinzufügen können. Jetzt bin ich mir nicht 100% sicher, wie Sie alle auf die eigentlichen Befehle zugreifen können . Aber wenn ich zum Beispiel hier in den Leerlauf gehe, habe ich auf diesen Idle geklickt. Jetzt bin ich in der eigentlichen Leerlaufanimation und klicke auf den eigentlichen Schwanz und klicke auf die Rotation. Du siehst, dass ich Mathe-Dot-Sünde habe. Das ist also nur die Sinuskurve. Grundsätzlich hier, wo u dot n m Zeit nur der Timecode ist, den wir zeitlich verwenden, würde dies mit 150 multiplizieren und dann das Ergebnis mit 225 multiplizieren. Und das führt im Grunde dazu, dass sich der Schwanz grundsätzlich sehr, sagen wir, absehbar drehen wird, weil die Sinuskurve natürlich so verläuft, oder? Das ist also nur eine allgemeine Mathe-Sache. Das ist echt cool. Ich glaube, dass sie auf der Website tatsächlich die Summe der Methoden haben , die hier verfügbar sind , grundsätzlich zu sehen. Aber das ist eine wirklich coole Sache. Und was auch immer der Fall sein mag, Gehen wir zurück zu unserer Testanimation mit unserem Körper hier. So können wir jetzt sehen, dass sich unser Körper auf und ab bewegt. Und das ist ziemlich cool. Wenn Sie nun Animationen hinzufügen, sehen sie natürlich sehr gut und richtig gut aus. All das. Viel Zeit, es wird offensichtlich zeitaufwändig sein. Also musst du einfach ein paar Sachen ausprobieren. Siehst du das? Hoffentlich wird es funktionieren und dann wird es gut. Aber habe auch eine Walking-Animation. So können Sie hier sehen, dass dies die Walking-Animation ist. Dann haben wir auch eine sitzende Animation, aber das bewirkt eigentlich nichts. Es ist im Grunde nur die ganzen Körper ein bisschen schräg. Und im Grunde sitzt der Waschbär hier als der Inselstaat, das haben wir schon gesehen, aber im Grunde gehen nur der Kopf und der Körper auf und ab, sehr leicht. Du siehst das. Dies ist eine sehr leichte Auf- und Abwärtsbewegung. Und dann wackelt der Schwanz im Grunde ein bisschen hin und her, nur damit er ein bisschen Bewegung hat. Das kannst du also sehen. Sogar diese winzige Leerlaufbewegung reicht aus, um eine sehr schöne Illusion zu vermitteln , dass dies tatsächlich am Leben ist. Und wie Sie sehen können, beinhaltet es nicht wirklich so viele Optimierungen, die Sie benötigen. Dinge, die sehr, sehr hart sind oder so ähnlich wie die Walking-Animation, Animationen ausführen, besonders für Vierbeiner. Für Tiere mit vier Beinen, das ist unglaublich schwer, gibt es einige Ressourcen, die ich tatsächlich gefunden habe. Wenn Sie wirklich daran interessiert sind, werde ich sie auch mit den Ressourcen verknüpfen. Sie sind unglaublich cool. Es gibt also im Grunde genommen einen anatomischen Blick darauf, wie, wie, wie grundsätzlich Vierbeiner Tiere laufen und wie das im Grunde in der Animation gemacht wird. Vierbeinige Tiere sind also ein, gut etwas in Animation , das sehr schwer ist. Es wird also ganz etwas sein. Aber weil es Minecraft ist, arbeitest du mit einem kleinen Block des Tieres. Sie haben hier wahrscheinlich ein bisschen mehr Spielraum, was auch immer der Fall sein mag, wenn das Sie wirklich interessiert, empfehle ich dringend, diese auch zu überprüfen, wenn Sie das interessieren könnte. Aber was auch immer der Fall sein mag, wir sind im Grunde mit den allgemeinen Willensanimationen fertig. Ich werde den Test hier tatsächlich noch einmal löschen. Und dann wird der Rest gut gehen. Was ich tun werde ist, sobald das erledigt ist, kann ich im Grunde entweder auf Control S drücken , um dies zu speichern, oder ich kann auch gehen, ich glaube an Animation hier. Und dann kann ich Exportanimationen sagen. Und ich glaube, das sollte es schon tun. Oder wir speichern alle Animationen. Wir speichern das unter richtig geschriebenem Waschbär, nicht in der Animation nebeneinander und wir werden das einfach ersetzen. Das ist in Ordnung. Und dann wechseln wir zurück zur Intelligenz. In unserem Assets-MC-Kurs erstellen wir ein neues Verzeichnis namens Animationen. Sind es Animationen? Ja, es sind Animationen. Und was ich dann machen werde, ist, dass ich auch die eigentliche Animation kopiere. Die allgemeine Idee ist also, dass dies die richtig geschriebenen Waschbär-Animationen sein werden . Da gehst du. Dies sind also im Grunde alle Daten, die dort benötigt werden. Wir müssen nicht darauf eingehen. Das ist in Ordnung. Wichtig ist, dass wir diese Animationen jetzt natürlich im eigentlichen Datensatz in einer Entität angeben müssen diese Animationen jetzt natürlich im eigentlichen Datensatz in einer Entität angeben . Eröffnung der Waschbär-Entität. Was wir tun werden, ist, dass wir in erster Linie den Controller sowie die Prädikatmethoden hinzufügen . Also kopiere ich die GET-Methode des Produkts. Das wird in einem Moment erklärt. Wie Sie sehen können, haben wir die Sitzung noch nicht, also werden wir dies vorerst löschen. Und im Controller wird wie folgt aussehen. Wir werden also nur den Datenpunkt Animation Controller hinzufügen mit einem neuen Animations-Controller, Code-Controller, haben Controller hinzufügen mit einem neuen Animations-Controller . Und dann geben wir diese Prädikatmethode hier weiter. Das ist so ziemlich alles, was es dazu gibt. Und dann stellen Sie sicher, dass dies alles richtig geschrieben ist. Also diese Namen hier, die Hälfte stimmen mit den Namen überein, die sich innerhalb der Animation befinden. Dieser hier ist die Animation. Du siehst das tatsächlich geschrieben, richtig? Falsch. Ich vertrete nicht, dass ich weiß warum, aber los geht's. Wir werden das einfach schnell ändern. Da gehst du. Und dann ist es 100% richtig, denn dann wird der Waschbär so geschrieben und dann auch hier, also sollte alles gut funktionieren. Es kann sehen, dass die Walk-Animation gekühlt wird , wenn sich der Ereignispunkt bewegt. Ich kann es sehr empfehlen. Werfen Sie einen Blick auf das Animationsereignis für bestimmte Dinge. Sie können zum Beispiel sehen, dass es hier einige Dinge gibt , die Sie sich ansehen können, sogar einige zusätzliche Daten. Das ist also auch sehr interessant. Aber insgesamt ist die Bewegung wahrscheinlich derjenige, der hier am wichtigsten ist. Und dann müssen Sie auch einige der anderen Sachen damit herumspielen. Daher empfehle ich dringend, einfach offen zu sein, damit zu experimentieren und eine Menge Sachen auszuprobieren. Das ist das Beste, was ich kann, im Grunde nur sicher, dass dies eine sehr kluge Idee ist. Nun könnten Sie sagen, naja, ich meine, was brauchen wir sonst noch? Das ist eigentlich alles, was wir brauchen, weil wir die Animation bereits in der Mitte eingerichtet haben. Also genau hier haben wir es bereits eingerichtet. Animationen rekrutieren Animationsdaten Jason, weil dieser Jason bereits hier ist. Und jetzt haben wir im Grunde genommen das Prädikat die Art von Gehirn der Animationen. Dies bestimmt im Wesentlichen, welche Animation gerade gespielt wird. Und nun, ich meine, das ist so ziemlich alles , was wir dafür brauchen. Wie gesagt, wenn du ein paar wirklich coole Ideen hast, wirklich verrückte Animationen, kommt es darauf an, die Blockbank zu benutzen dort eine Menge Sachen auszuprobieren. Wie gesagt, ich habe auch viele Ressourcen für Animationen da draußen. Also hoffe ich, dass dir das hilft. Aber vorerst, schätze ich, mal sehen, ob es funktioniert. Wir befinden uns wieder in Minecraft. Also mal sehen, lasst uns ein paar Waschbären spawnen und mal sehen, los geht's. Es funktioniert schon völlig gut. Und sogar die Walking-Animation, Werfen wir einen Blick auf diese. Wenn es anfängt zu laufen, Mal sehen. Nun, es ist manchmal schwer zu erkennen , wenn das weggeht. Aber ich glaube, dass es funktioniert, denn ihre Beine bewegen sich während des Gehens, ja. Manchmal stimmen die Bewegungsgeschwindigkeit und die Animation nicht vollständig überein. Dies ist natürlich etwas, das Sie nur optimieren müssen und sich ändern wird, bis es im Grunde funktioniert. Aber Sie können sehen, dass die eigentliche Animation im Leerlauf völlig gut funktioniert. Und dann funktioniert auch die Walking-Animation. Hier funktioniert alles gut. Ein neuer Stickstoffanteil hier. Aus Gründen der Argumentation. Da gehst du. Ich meine, das ist ehrlich gesagt wirklich cool. Und so einfach kann es sein, Ihren Minecraft-Entitäten alte, ich meine, grundlegende Animationen mit Gecko-Lippe hinzuzufügen grundlegende Animationen mit Gecko-Lippe , oder? Aber das wird es schon 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. 107. (zusätzliche Themen) Entity: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir unserer bereits bestehenden Waschbäreneinheit eine Kundenvarianz hinzufügen. Was ist unsere Varianz? Nun, man könnte zum Beispiel wissen, dass Pferde verschiedenfarbige Netzleitungen oder nur generell verschiedenfarbige Extras haben können verschiedenfarbige Netzleitungen oder . Und das geschieht durch Varianz. Jetzt werden wir unserem Waschbär zwei dieser Varianten hinzufügen . Und so wie das funktioniert ist, dass wir im Grunde nur eine andere Textur haben. Also kopiere ich die einfach vorbei. Da gehst du. Wir haben einen Waschbär dunkel und einen roten Waschbär. Das sind die drei verschiedenen Varianten, die wir haben. Waschbär, Waschbär dunkel und ein roter Rekord. Und wie werden wir das jetzt umsetzen? Nun, es ist eigentlich ziemlich einfach, alles in Betracht gezogen. Das ist also etwas, das Sie im Grunde tun müssen, wenn Sie möchten, dass alle Ihre Tiere unterschiedliche Varianten für alle Ihre Entitäten haben unterschiedliche Varianten , um unterschiedliche Varianz zu haben, dann sind Sie es wir brauchen zunächst eine Varianten-Enum, und dann werden wir im Grunde genommen abhängig von und dann werden wir im Grunde genommen dieser Aufzählung einen anderen Ressourcenstandort auswählen . In unserem Entitätspaket klicken wir mit der rechten Maustaste auf ein neues Paket namens variant. Dann werde ich da drinnen reinlegen, das wird die Waschbärvariante sein. Dies wird in eine Aufzählung geändert. Und dann werde ich das tatsächlich kopieren , weil der tatsächliche Inhalt davon immer gleich sein sollte. Das einzige, was sich hier ändern sollte, diese im Grunde Ihre Aufzählungswerte. Das ist die allgemeine Idee. Wenn Sie eine andere Variante haben, benennen Sie diese einfach um und benennen dann auch alle Dinge hier um, oder? Wenn das also heißen würde, meine ich, jetzt würde es tatsächlich auch den Namen ändern, aber was auch immer der Fall sein mag, also änderte einfach den Namen überall und dann wäre es dir völlig gut. All diese statische Methode, die wir brauchen werden, brauchen wir diesen endgültigen Fehlerstream. All dies wird benötigt. Das einzige, was hier im Grunde genommen ein Großteil der Gewohnheit ist, ist der Name dieser und dann auch der Name Ihrer individuellen Varianz. Wo verwenden wir das oder wo fangen wir an, das zu verwenden? Nun, wir werden das im Waschbär-Renderer verwenden. Und so wie wir das machen werden ist noch einmal, ich werde das kopieren, aber der gesamte Code steht Ihnen natürlich im GitHub-Repository zur Verfügung und individuell genauso gut. Und das ist eigentlich, es wird vielleicht etwas kompliziert aussehen, aber es ist eigentlich ziemlich einfach. Im Moment werden wir das einfach importieren. Da gehst du. Und dann haben wir eine Karte. Sie können sehen, dass dies ein Standort nach Varianten-Map ist. Dies ist nur eine Zuordnung, die eine bestimmte Datensatzvariante einem Ressourcenstandort zuordnet . Das ist alles, was es tut. Obwohl wir sagen: hey, wenn wir die Standard-Waschbärvariante haben, dann ist dies die Textur, auf die Sie zeigen möchten. Wenn wir eine dunkle Variante haben, wollten wir auf diese Textur hinweisen. Und wenn wir die rote Variante haben, fahren wir zu dieser Textur. Es sieht etwas komplizierter aus, aber wenn man darüber nachdenkt, ist das eigentlich alles, was es tut. Und wenn Sie mehrere Einträge haben, wenn Sie hier mehr Einträge haben, fügen Sie hier einfach weitere Einträge hinzu. Jetzt werden wir hier natürlich eine Warnung sehen, weil wir diesen tatsächlichen Schlüssel bereits hinzugefügt haben, in diesem Fall Schlüssel hier. Aber ja, das ist alles was du wirklich tun musst. Wenn Sie also mehr haben, fügen Sie einfach mehr hinzu. Gleiche hier. Wenn Sie mehr haben, fügen Sie einfach mehr hinzu und stellen sicher, dass Sie die Ideen hier erhöhen, das ist auch sehr wichtig. Nun, anstatt das einfach zu tun, werden wir einfach sagen: Okay, ähm, nun, wir wollen nur den Ort zurückgeben, nun, wir wollen nur den Ort zurückgeben den bivarianten Punkt bekommen, und dann haben wir die Waschbär-Entität zur Verfügung hier. Aber nun, die Rekord-Entität hat gerade noch keine Variante, oder? Das ist überhaupt kein Problem. Denn im Moment werden wir diese Varianten im Grunde hinzufügen. Also werden wir diesen Pfeil vorerst einfach hier behalten . Nein, im Grunde keine Sorgen. Und dann werden wir all das Zeug hinzufügen , das wir für die Varianz benötigen. Es wird also wieder viel kopiert werden , denn wieder wird ein Großteil dieses Codes immer derselbe sein. Es wird fast immer das Gleiche sein. Es wird genauso aussehen. Es wird sich sehr ähnlich sein. Nur die Details müssen geändert werden, aber ich werde mein Bestes geben, um alles zu erklären, was ich brauche. Zuallererst benötigen wir einen Entitätsdatenzugriff. Dies ist also der Daten-ID-Typ der Variante. Dies ist im Grunde eine Synchronisierung von Entitätsdaten. Es ist also vom Typ Integer. Das ist die allgemeine Idee. Normalerweise stelle ich das gerne an die Spitze der Klasse, weil es nur ein wenig lesbarer obwohl dies auch zur Varianz gehört. Ich möchte das an der Spitze der Klasse halten und dann wird der Rest hier unter diese Varianzkommentare gehen. Okay, was sind die Dinge, die wir brauchen werden? Nun, das erste, was wir brauchen werden, ist, dass wir eine festgelegte Variantenmethode benötigen. Da gehst du also mit einer Rekordvariante. Und dann können wir die Entitätsdaten des Typs Datumsdaten-ID-Typ-Variante festlegen , die genau diese synchronisierten Daten sind , die wir hier erstellt haben. Und dann setzen wir es auf den Ausweis. Und wenn wir hier eine Operation verwenden, müssen wir uns nicht mit den Besonderheiten befassen. Das ist so ziemlich genau das, was das Pferd auch macht. meiste davon wird also auch dem Pferd genommen . Wenn wir tatsächlich zweimal die Umschalttaste verschieben und zum gehen, glaube ich, dass es das abstrakte Pferd das das hat, aber ich bin mir nicht 100% sicher. Ich glaube, dass es das absolute Pferd ist. Das hat den Ausweis. Nun, schauen wir uns das Pferd an, als es vielleicht tatsächlich der Daten-ID-Typ des Pferdes ist. Wir können sehen, dass dies sehr ähnlich aussieht. Und wenn wir dann mit der mittleren Maustaste darauf klicken. Sie können zum Beispiel genau hier auf Variante setzen, dass wir einfach die Variante setzen und dann hier Variante und Markierungen setzen. Man sieht also, dass es hier im Grunde auch ein paar interessante Dinge mit etwas Verschiebung macht . Machen wir uns also keine Sorgen darüber. Sagen wir einfach, wir brauchen das einfach. Und wenn wir das im Leichenschauhaus haben, wird es völlig gut gehen. Wenn wir eine Reihe von Varianten haben, wollen wir natürlich auch eine get-Variante, aber wir wollten zwei verschiedene, die wir wollen. Eine, bei der wir die Waschbär-Variante bekommen und eine, bei der wir tatsächlich die ganze Zahl daraus herausholen. Und das ist so ziemlich auch das, was wir brauchen werden oder das , genau hier. Also können wir einfach sagen, dass Instanz Dot Variante bekommen. Und dann hat dieser keine Pfeile mehr. Und jetzt müssen wir das Gleiche im Modell machen. Was ich tun kann ist, dass ich das einfach hier kopieren kann. Und wir werden einfach hier sagen, dies der Waschbär-Renderer sein wird, und dann werden wir das einfach hinzufügen. Nun, ich sollte den Punkt da drin haben. Da gehst du. Und dann heißt das stattdessen Objekt. Das ist vollkommen in Ordnung. Und dann sind wir mit der tatsächlichen Varianz sowohl im Renderer als auch im Modell fertig . Dies sind die beiden einzigen Orte , an denen Sie dies ändern müssen. Andernfalls wird der Rest in der Entitätsklasse passieren. Was brauchen wir sonst noch für das Unternehmen? Nun, sobald die Welt rettet, müssen wir das natürlich immer noch irgendwie retten. Deshalb werden wir einige NVT-Daten benötigen. All dies wird also genau hier gespeichert, lesen Sie zusätzliche gespeicherte Daten und fügen Sie dann auch weitere gespeicherte Daten hinzu. Diese beiden sind also sehr wichtig. Und dann nicht zuletzt glaube ich im Grunde genommen, dass sie die definierten Synchronisierungsdaten sind. Dies ist unglaublich wichtig, da dies immer erforderlich ist , wenn Sie irgendeine Art von Entität, Datenzugriff, einen Bart, den Daten-ID-Typ haben Datenzugriff, einen Bart, den Daten-ID-Typ oder ob es ist, vorausgesetzt, wir werden sehen eine Sitzung auch. Also ein sitzender Datenzugriff vom Typ Boolean. Dies ist auch das, was wir in dieser Define-Sync-Datenmethode hinzufügen müssen , ist sehr wichtig. Das ist definitiv das, was wir brauchen werden. Und dann nicht zuletzt ist das Letzte, was wir brauchen, die finalisierte Spawn-Methode. Und das ist sehr interessant. Der Grund, warum wir das brauchen , ist, dass dies im Grunde genommen genannt wird, wenn wir das verwenden , naja, ich meine, wenn diese Entität tatsächlich hervorgebracht wird und dies den Sport abschließt. Also werden wir buchstäblich nur sagen: Hey, gib mir einfach einen zufälligen Wert dieser Waschbärvariante. Und dann setzen wir es auf genau diese Varianz ein. Das ist alles, was wir hier machen. Und damit ist die Variante im Grunde vollständig. Und Sie können sehen, dass es insgesamt so ziemlich genau das ist, diese Methoden, sie werden alle fast immer gleich sein. Wenn Sie einen anderen Aufzählungsnamen haben, ändert sich der Name hier. Abgesehen davon wird es wahrscheinlich so ziemlich immer dasselbe sein. Es sollte immer da sein. Es sollte immer das Gleiche sein. Insgesamt ist das so ziemlich alles. Es gibt Twitter. So kompliziert ist es nicht. Sie müssen nur wissen, wo genau Sie diese Änderungen vornehmen müssen, natürlich auch im Renderer und im eigentlichen Modell. Nur diese beiden Änderungen, fügen Sie einfach die Map auch im Renderer hinzu. Also diese Karte genau hier, aber insgesamt glaube ich, dass dies ziemlich selbsterklärend sein sollte, alles in Betracht gezogen, nichts hier sind zwei, ich würde aus den Grenzen der meisten davon sagen. Das sollte also ziemlich einfach sein. Und jetzt schätze ich, nun, ich meine, mal sehen, ob es funktioniert. Oder wir befinden uns wieder in Minecraft. Lasst uns also ein paar Waschbären spawnen und mal sehen, ob die Abweichungen hinzugefügt werden. Und da gehst du. Oh nein, wir haben eine Variante die keine Textur hat, aber keine Sorge, das sollte nur ein Tippfehler beim tatsächlichen Ziehen des tatsächlichen Ressourcenstandorts sein. Man sieht, dass der Rote vollkommen gut funktioniert. Mal sehen, worum es geht und lasst uns das beheben. Wie ich vermutet habe, gibt es einen Tippfehler. Mach dir überhaupt keine Sorgen. Wir werden das einfach reparieren. Also fehlte das C wieder, mit dem, im Grunde alles, würde es jetzt völlig gut funktionieren. Und so einfach ist es, Ihrer benutzerdefinierten Entität eine benutzerdefinierte Varianz hinzuzufügen Ihrer benutzerdefinierten Entität eine benutzerdefinierte Varianz . 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. Wenn er es täte, würde sich sehr über eine Bewertung von Ihnen freuen. Ansonsten sehe ich dich in der nächsten Vorlesung. 108. (zusätzliche Themen) Zeichnen: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir unserer benutzerdefinierten Entität eine Teamfähigkeitsfunktion hinzufügen , es im Grunde ermöglicht, dass wir unseren Waschbären zähmen können. Und das ist wieder einmal eines dieser Dinge, die tatsächlich ziemlich einfach sind, sobald wir es implementiert haben. Und Sie können sehen, welche Methoden wir hier in der Custom Raccoon Entity-Klasse überschreiben müssen. Das erste , was wir tun müssen, ist, dass Sie hier hochgehen und dies tatsächlich in ein liebenswürdiges Tier umwandeln müssen . Das wird also erreichbares Tier sein. Da gehst du. Dann nehmen wir das einfach an, ich wähle es aus, drücke Strg C, Control V, um es hier und genau hier einzufügen . Ich glaube, dass dies alle Orte sein sollten , an denen dies getan werden muss. Dann werde ich natürlich noch einmal den Großteil davon kopieren. All dies steht Ihnen natürlich auch im GitHub Repository in einer Einzelperson wieder zur Verfügung . Dies wird die Teamfähigkeit sein. Das wird ganz unten gehen, und wir können all das Zeug sehen und wir werden jede der Methoden nacheinander durchgehen . Sie können zuerst sehen, dass wir diesen sitzenden Datenzugriff haben. Wieder einmal werde ich das auch tatsächlich nach oben verschieben , damit wir hier Daten oben sagen . Was dann sehr wichtig ist, ist, dass wir einen anderen dieser Dateneinträge synchronisieren haben . Wir müssen dies zu den definierten Synchronisierungsdaten hinzufügen. Dies ist sehr wichtig , dass wir dies tun. Also müssen wir diese Sternentitätsdaten sagen, definieren, das sitzt und dann wird der Standardwert falsch sein. Das ist also unglaublich wichtig und dass dies auch hier hinzugefügt wird, sonst wird das nicht funktionieren. Das ist also eines der Dinge, die wir tun müssen. Der Grund, warum wir dieses spezielle Ding, das Zubehör hier, wirklich brauchen , liegt darin, dass sonst das Prädikat für die Animation nicht funktioniert. Denn theoretisch, wenn ich tatsächlich in das Tischtier gehe und ich glaube, dass es so ist, ist die boolesche Reihenfolge zum Sitzen bereits da, also existiert dies bereits, was bedeutet, warum sollten wir jemals brauchen ein anderes Zubehör hier, eine andere Art von Daten hier, nun, es synchronisiert diesen boolean hier nicht wirklich, ich glaube, dass es nur auf dem Server verfügbar ist. Ich bin mir nicht 100% sicher, aber ich glaube, dass dies nur auf dem Server verfügbar ist. Aber im Fall von Gecko-Lippe funktioniert das natürlich nur auf dem Client, was bedeutet, dass es eine Nichtübereinstimmung zwischen diesem booleschen Bereich hier oder dem Server und dem Client gibt. Deshalb brauchen wir die tatsächliche Synchronisierung der Daten hier. Deshalb haben wir das. Und dann können wir diese beiden Dinge jetzt auch auskommentieren. Nun, das ist sehr wichtig, dass Ihr Sitzen, wenn Sie das Ziel bestellt haben, es hat eine niedrigere Priorität in dieser oder einer höheren Priorität, ich denke, es muss eine niedrigere Zahl sein. Dann schauen Sie sich im Grunde alle anderen Zufallsziele nach zufälligen Gehzielen um, solche Sachen. Das ist sehr wichtig, denn wenn dies eine niedrigere Priorität hat als zum Beispiel das zufällige Spazierziel, dann wird der Waschbär in diesem Fall, auch wenn er zum Sitzen befohlen wird, einfach aufstehen und laufen und setzen Sie sich dann wieder hin und gehen Sie dann weiter. Also nicht wirklich das, was du willst. Dann können wir die Animation auch sofort hier hinzufügen. Dies ist die sitzende Animation. Wenn das also sitzt, dann werden wir die Animation im Grunde genommen nennen , dass Waschbär sitzt, nichts zu verrückt, ziemlich selbsterklärend sein sollte. Und damit ist die Animation fertig. Und jetzt können wir uns all die verschiedenen Dinge für die Erreichbarkeit ansehen , die wir brauchen. Zum ersten ist im Grunde die große Methode hier, das ist die Mob-Interact-Methode, aber dies ist die Methode, die aufgerufen wird , wenn ein Spieler mit der rechten Maustaste klickt. Also diesen Mopp, ich habe hier einen Gegenstand gemacht, also ist dies der Gegenstand zum Zähmen. Ich habe mich gerade für einen Apfel entschieden. Sie könnten dies zum Beispiel ersetzen. Sie können auch mehrere Artikel hinzufügen, wenn Sie möchten. Natürlich gilt normales Java. Das bist du, also keine Sorge. Es gibt. Wir werden im Grunde prüfen, hey, ist der Artikel, mit dem wir mit der rechten Maustaste klicken, eigentlich der Artikel zum Zähmen. Und wenn dieses Tier noch nicht erreicht ist, gehen wir hier rein, auf der Kundenseite, wir werden nur konsumieren, also werden wir es mit der rechten Maustaste klicken lassen , aber nichts passiert. Auf dem Server, den sie sind, gehen wir hinein und tun einige Dinge. Zunächst einmal, wenn die Fähigkeit hier Instabilität ist. Die Idee hier ist also, dass, wenn dies nicht der Fall ist, was bedeutet, dass wir, wenn wir nicht im kreativen Motor sind, den Gegenstand um eins schrumpfen oder dekrementieren. Und wenn wir im kreativen Modus von ihnen sind, machen wir es nicht. Das ist alles, was es dazu gibt. Hier im Animal Team ist nur ein Ereignis, das im Grunde genommen gefeuert wird, Ereignis, das im Grunde genommen gefeuert wird wenn dieses Tier gezähmt wird. Und dann stellen wir noch einmal sicher, dass wir grundsätzlich nicht beim Kunden sind . Ich denke, dass dies im Grunde überflüssig ist, aber wir werden es einfach behalten, weil es dort keine Sorgen macht. Und dann werden wir sagen, zuerst wir die ETA-Methode aufrufen. Dieser bestimmte Spieler innerhalb eines wird den Pfad für die Navigation neu berechnen. Wir setzen dann die Ziele fest, um diese Zeile zu kennen. Dies wäre im Grunde das angreifende Ziel. Dann rufen wir das Ereignis der Broadcasts Entity mit sieben Bytes auf. Dies ist also ein besonderes Ereignis hier. Sie können sehen, da ein bestimmtes Paket alle Spieler dieses Events ist, ist es ziemlich verrückt. Dies ist im Grunde das Ereignis, das wir senden müssen, wenn ein bestimmtes Tier erreicht wurde. Ich glaube, dass dies dafür verantwortlich ist, die Herzen zu spawnen , wenn Sie das Team tatsächlich bekommen, dann setzen wir uns sofort auf wahr. Und wir können uns das Set anschauen, das hier sitzt. Sie können also sehen, dass wir nicht nur die Entitätsdaten festlegen , die zu dem führen , was wir hier weitergeben? Wir nennen auch das Set Orderto-Sit-Methode, die im Grunde genommen diese Reihenfolge, hier im Tischtier zu sitzen, auch auf das, was wir vorbeigehen, festgelegt hat. Die Idee ist also, dass beide richtig eingestellt werden müssen . Und dann hatten wir das, ja, das ist im Grunde die allgemeine Idee hier. Und dann ist das hier, sobald wir dieses Tier schon gezähmt haben. Und wieder einmal sind wir auf dem Server und stellen sicher, dass wir nur die Haupthand benutzen , denn wenn wir das nicht haben, können wir das eigentliche Tier im Grunde nie zum Sitzen bringen das eigentliche Tier im Grunde nie zum Sitzen weil dies für beide Hände gefordert wird. Das ist sehr wichtig. Dies wird zweimal aufgerufen, einmal für jede Hand des Spielers. Seien Sie also vorsichtig damit. Dies wird dann natürlich auch zweimal aufgerufen, eins für den Client und eine für die Serverseite. Insgesamt heißt es also viermal. Behalte das also im Hinterkopf. Und das hier, deshalb brauchen wir hier die Interaktionshand. Sonst würde dies zweimal aufgerufen werden. Und dann, wenn Sie etwas zweimal umschalten, kehrt es einfach in seine ursprüngliche Position zurück. Deshalb würde das eigentliche Tier niemals sitzen. Das ist hier also sehr wichtig. Hier. Wir machen im Grunde nur einen Pass, wenn der Gegenstand zum Zähmen wieder verwendet wird, obwohl er im Grunde schon genannt wurde. Aber das ist alles, was es für die Mob-Interact-Methode gibt . Dies ist im Grunde genommen das Herzstück davon, wo wir es tatsächlich darauf einstellen, gezähmt zu werden. Und wir haben das Set, die Einstellmethode, nichts zu verrückt. Wir haben auch die gesetzte T-Methode. Wo ist diese Erkältung? Lassen Sie mich das wirklich mal ansehen. Das ist kalt. Ich glaube nicht wirklich , dass das kalt ist. Es könnte auch über einige dieser Sachen hier aufgerufen werden , aber wir ändern im Grunde nur einige der Attribute hier, wenn dieses Tier gezähmt wird. Das ist also eine normale Sache , die im Grunde passieren kann. Und dann müssen wir auch einfach, ich glaube nicht, dass wir das unbedingt außer Kraft setzen müssen, aber ich habe es überschrieben, umso weniger ist das Team in dem im Grunde das Team ist , zu dem dieses Tier gehört. Dann haben wir das letzte aber nicht zuletzt, die boolesche Methode kann ausgelaugt werden. Ich habe das auf „false“ gesetzt. Jetzt. Etwas, das derzeit ein Bug in Gecko-Lippe ist. Ich weiß nicht, ob das im Moment noch eine Sache ist, aber das ist seit einiger Zeit ein Problem, wenn das stimmt und Sie diese Läsion, eine Gecko-Lippenentität, tatsächlich anleinen , dann ist der eigentliche Blei, es ist unsichtbar. Es ist immer noch da. Es funktioniert, aber es ist unsichtbar. Ich weiß nicht, ob es noch eine Lösung gibt. Ich werde mir das auch zu einem späteren Zeitpunkt ansehen. Aber wenn es entweder repariert ist oder wenn es nicht repariert ist und wir wahrscheinlich in späteren Vorträgen oder irgendwann in der Zukunft eine Lösung dafür haben . Aber das ist so ziemlich alles, was wir für die Teamfähigkeit brauchen . Man sieht, dass es hier definitiv etwas komplizierter wird . Es ist nicht nur so, Oh, lass uns eine Aufzählung da drin bekommen, eine Art Variante. Schlage da ein paar Dinge rein und dann sind wir fertig. Jetzt ist die Teamfähigkeit etwas komplizierter, aber alles, was berücksichtigt wurde, waren es nicht. Nun, so verrückt ist es nicht. Die Sitzfähigkeit ist wirklich das, was Umständen am schwierigsten unter bestimmten Umständen am schwierigsten ist, da alle Teile korrekt sein müssen. Wir müssen es in den richtigen Momenten auf die richtige Weise abkühlen . Und jetzt ist es wieder sehr wichtig, ist das Ziel. Dies ist die meiste Zeit das, was mir passiert ist. Warum hören sie im Grunde auf zu sitzen oder wenn man ihnen befahl zu sitzen. Und plötzlich geht das Tier einfach rauf und geht woanders hin und setzt sich dann wieder hin. Aber das war eines der Dinge. Nachdem wir all dies hinzugefügt haben, werden wir jetzt nicht nur die Sitzanimation sehen können , sondern natürlich auch, wie wir das Tier zähmen können. Mal sehen, ob es funktioniert oder warum wir uns wieder in Minecraft befinden. Mal sehen, ob ich den Waschbären zähmen kann. Und los geht's, beste Freunde für immer. Jetzt sitzt es. Was ich normalerweise mache, um es zu machen, stellt im Grunde sicher, dass es am selben Ort bleibt . Es ist nur, dass ich es nicht in die Glühbirne einsperren werde , mach hier im Grunde genommen ein bisschen Höhle, damit ich es weiß, ob ich es definitiv bewegt hat, ob es im Grunde aus der Höhle ist. Und so sieht das vorerst ganz gut aus, als ob es tatsächlich dort zu sitzen scheint. Und Sie können übrigens auch die Sitzanimation sehen , schauen wir uns den CEO an. Und wenn ich dann noch einmal mit der rechten Maustaste klicke, sollte der Waschbär wieder laufen oder einfach andere Ziele verwenden, um alles zu tun, was er will. Schlendern Sie im Grunde herum oder wann immer es möchte. Da gehst du. Jetzt läuft es wieder herum. Also gehen sie und ja, das ist ich meine, man kann sehen, dass es tatsächlich schneller ist, weil der Geschwindigkeitsanstieg durch die Zähmung zugenommen hat. Das ist etwas, das bei der Zähmung passiert ist. Wir werden uns das in einem Moment noch einmal ansehen . Aber ja, das ist ich meine, das ist so ziemlich alles, was wir wirklich tun mussten. Und jetzt hast du einen Team-Waschbär , der echt verdammt cool ist. Wieder einmal ist die Bewegungsgeschwindigkeit hier im Grunde der Grund, warum sie so verdammt schnell ist. Wir setzen es im Grunde auf 0,5 ein, glaube ich. Mal sehen, was die Bewegung aussehen würde, 0.3. Wir verdoppeln also fast die Bewegungsgeschwindigkeit. Dies ist natürlich so etwas wie jedem anderen Zeitpunkt, wenn es um die Attribute, Werte bestimmter Attribute in diesem Fall oder bestimmte Variablen geht, man nur mit ihnen herumspielen muss. Sie müssen sie wahrscheinlich oft ändern , einfach weil Sie die Zahlen ändern müssen, wenn Sie wirklich nach unten graben und sicherstellen möchten , dass Ihr Mod richtig ausbalanciert ist . Ich meine, oft ist dies eines dieser Dinge, bei denen man noch einmal mit den Zahlen herumspielt. Probieren Sie ein paar Sachen aus, seien Sie offen für Experimente. Und während ich meine, steht dir im Grunde nichts im Weg. Aber das ist es dann schon für diesen Vortrag 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. 109. (zusätzliche Themen) Rideable Einrichtungen: Oder ich begrüße wieder zum Schmiedekurs für wann 18 Uhr. Und in diesem Vortrag werden wir Minecraft eine benutzerdefinierte reitable Entität hinzufügen . Nachdem wir die Waschbär-Entität durchgemacht haben, werden wir jetzt die Tiger-Entitäten hinzufügen. Also haben Sie dafür natürlich noch einmal ein Blog-Bank-Modell. Da gehst du. Dies ist natürlich auch beides für Sie heruntergeladen, aber wir haben im Grunde genommen das alles bereits eingerichtet und alles wird im Grunde dem Waschbären sehr ähnlich funktionieren. Was wir haben werden, ist, dass wir zunächst eine neue Klasse haben werden, und das wird die Tiger-Entität sein. Da gehst du. Jetzt gibt es eine Tiger-Entität, die sehr interessant sein wird. Zuallererst werde ich noch einmal die Gesamtheit dieser Klasse kopieren . Das wird eine sehr lange Klasse sein, aber das meiste davon wird dem Waschbär, Nummer eins und Nummer zwei sehr ähnlich Nummer eins und Nummer zwei Ich werde natürlich auch alles erklären, was ich kann . Was wir hier sehen werden, ist, dass wir zwei holen sollten. Okay, das ist in Ordnung. Das ist eigentlich in Ordnung, weil dies Mod-Entitätstypen genannt wird. Eigentlich gehst du los. Und dann wird das auch gut. Eine Sache, die wir hier haben, ist , mehr Entitäten zu sehen , die gut werden. Und dann gibt es noch ein paar andere Dinge, die wir auch hier loswerden können . Und da gehst du. Jetzt keine Fehler mehr, wenn Sie dies vom GitHub-Pastor oder den Gists kopieren , sollten keine Fehler mehr für Sie vorhanden sein. Und alles hier sollte Ordnung sein oder ja, es sollte in Ordnung sein. Zuallererst haben wir noch einmal etwas von den Sitzungskram. Sie können also sehen, dass es sitzt, sitzt. Und selbst hier haben wir das Sitzen und wenn wir hier mit der rechten Maustaste auf die Mob-Interaktion klicken, können Sie dieses Mal sehen, ob wir hocken, dann wollen wir tatsächlich den Rauch so einstellen , dass er sitzt, weil natürlich wollten wir es auch lesbar machen. diesem Grund haben wir dieses spielerische Interface genau hier. Und das wird das Interessante sein. Wenn ich also tatsächlich darauf klicke und Strg H drücke, dann sollten wir sehen können , wo du los gehst. Ich habe zum Beispiel das abstrakte Pferd. meiste davon stammt aus den Klassen des abstrakten Pferdes und der Pferdeeinheit. Ich kann das nicht genug betonen. Werfen Sie einen Blick auf alle Vanille-Beispiele. Du hast hier so viele Vanille-Beispiele. Sobald Sie die grundlegende Struktur dieser Klasse einer Entitätsklasse verstanden haben, es ziemlich einfach, einen Blick auf die Entitätsklassen ist es ziemlich einfach, einen Blick auf die Entitätsklassen von Vanille zu werfen. Wie gesagt, meiste von diesem Zeug ist das gleiche wie beim Waschbären. Wir haben die registrierten Steuerelemente, das Prädikat für die Animationen. Wir haben die asynchronen Daten, das Sitzen, und dann haben wir auch diese Sprühselektoren. Das ist also sehr interessant. Der Sprühselektor hier ist also für den Zielselektor gedacht, für das nicht zahme Zufallsziel ist dies eine Sache, die im Grunde hinzugefügt wird , wo ich das vom Wolf hinzugefügt habe. Wenn wir uns also den Wolf genau hier ansehen, können Sie sehen, dass im Wolf auch eine Beute entdeckt hat, Beute genau hier ausgewählt. Und das hat auch diesen hier. Sie können also sehen, dass es in diesem Fall im Grunde genommen einen anderen Strahl in dieser höchsten Priorität jagen würde diesem Fall im Grunde genommen einen anderen Strahl , da wir im Grunde wollten, dass er alles andere tut , bevor es dies tut. Aber das ist nur eine zusätzliche Sache. Du musst das nicht unbedingt haben , aber es ist irgendwie cool. Sie können sehen, dass wir hier auch ein Versuchsziel haben. Dies ist eigentlich die Sache, die der Tiger tatsächlich folgen wird wenn Sie eine Rübe in der Hand haben, da ist auch der Tischgegenstand dabei. Wenn Sie also mit der Rübe mit der rechten Maustaste darauf klicken, dann haben Sie eine, wie Sie hier sehen können, wir haben tatsächlich eine Chance von fünfundzwanzig Prozent, dass es sein sollte , diese Entität tatsächlich zu zähmen n ja, das ist so ziemlich viel das. Und das meiste davon kann man sehen, dass es nicht so verrückt ist. Hier fangen wir an zu schreiben. Dies ist eigentlich der Spieler , der das tatsächlich geändert hat. Klicken Sie also darauf und rufen Sie dann diesen Player an. Und dann wird dies die Hand ein bisschen lesbarer sein , als wir sehen können, dass Spieler Dot Star dies schreiben. Wir werden im Grunde anfangen, dies zu schreiben. Und wie können wir das kontrollieren? Nun, die Art und Weise, wie wir das kontrollieren werden, kann mit dieser Methode genau hier von einem Autor gesteuert werden. Und dann sind wir hier gerade zurückgekehrt und Kontrolle des Passagiers ist von Lebewesen. Und dann glaube ich, dass wir auch zurückkehren müssen. Dies ist auch ziemlich wichtig. Und dann wird die Reisemethode auch vom Pferd genommen. Das meiste Zeug wurde herausgenommen, weil das einzige, was wir nicht haben werden, die Fähigkeit ist , mit einem Tiger zu springen. Das ist die einzige Sache, die wir nicht haben werden. Das ist so ziemlich alles, was es dazu gibt. Wieder einmal ist es auch sehr, ich meine, es ist ziemlich einfach. Anibal, Sie können einfach einen Blick auf die spielerische Sprungschnittstelle Nummer eins und Nummer zwei auch das abstrakte Pferd werfen. Wie ich schon sagte, all das steht Ihnen in den externen Bibliotheken hier zur Verfügung, oder? Der ganze Vanilla-Code. Ich kann das nicht genug betonen, wie einfach es ist, sich das einfach anzusehen und im Grunde genommen etwas von dort zu bekommen. Fügen wir dies zu den weiteren Entitätstypen hinzu. Ich kopiere das einfach noch einmal. Wie immer leisten Sie sich alles, was im GitHub Repository und individuell verfügbar ist. Geh zur Entität genau hier. Und dann werden wir auch die beiden Modelle erstellen und unsere Klassen rendern. Also sage ich Tiger Model. Da gehst du. Und dann werden wir auch den Tiger sagen, Tiger Renderer geht auch. Und dann werden wir das noch einmal kopieren. Das ist ziemlich einfach und es sieht so ziemlich aus, sollte genau wie zuvor aussehen. Wir müssen nur das Modell auch machen. Da gehst du. Das Modell auch. Zeigt noch einmal auf den modalen Standort im Geo-Tiger genau hier die Textur und dann ist die Animation hier nichts Neues. Und dann im Renderer so ziemlich dasselbe, wo wir gerade die Render-Kontexte hier haben, und dann erstellen wir genau hier ein neues Modell. Nun muss dies natürlich noch einmal in der Client-Setup-Methode hier gekühlt werden . Also werden wir sagen, welche Entitätstypen Tiger, und dann hier der Tiger-Renderer, los geht's. Vergessen wir dann natürlich nicht das Ereignis, das wir anrufen müssen, und das sollte genau hier in den Attributen sein. Natürlich wollten wir die Attribute hier auf die Tigerattribute setzen , die sie vergeben, sehr wichtig. Vergiss das nicht, und das sollte auch das sein. Lassen Sie uns auch den neuen Spawn genau hier hinzufügen . Lass uns das einfach duplizieren und dann werden wir sagen ein Tiger-Unterstrich Spawner Greg, in deinem Tiger und das entspricht seinem Greg und ich musste nur die tatsächlichen Farbcodes bekommen die tatsächlichen Farbcodes weil ich diese tatsächlich im Voraus vorbereitet habe. Natürlich. Sagen wir, dies ist der Farbcode dafür. Und dann ist die Highlight-Farbe dies, um sicherzustellen, dass wir dies in Tiger ändern. Und dann ist das auch in Ordnung. Das Modell, nun, wir werden einfach die Waschbären Baunach kopieren , denn das wird am einfachsten sein, weil sich der Inhalt von uns nicht wirklich ändern wird. Also werden wir einfach sagen, dass dies das Tiger-Spawn-Ei ist. Sie vor und fügten es dann hier am Ende hinzu, dass er auch eine angrenzende Akte war, denke ich morgen. Und dann auch hier unterstreicht Tiger das Laichen. Das ist natürlich so ziemlich alles, was wir bereits mit dem Waschbären durchgemacht haben. Nichts zu Neues sollte also alles ziemlich selbsterklärend sein. Fügen wir auch die Tiger-Animation gleich hier hinzu. Da gehst du. Dann werden wir auch den Geo haben. Das wird genau dort sein. Lasst uns das öffnen und auch das Hydro-Tiger-Modell hinzufügen . Und dann werden wir nicht zuletzt in der Entität ein neues Verzeichnis namens Tiger erstellen. Und statt dort werden wir dann den eigentlichen Tiger-PNG haben. Dies ist auch das Extra. Und das sind so ziemlich alles , was wir brauchen. Wie ich schon sagte, das meiste Zeug passiert in der Tiger-Entitätsklasse. Und wie gesagt, das meiste davon stammt nur aus den Vanille-Beispielen, aus einigen bekannten Beispielen, in denen wir den Beuteselektor hier gesehen haben , wie gesagt, es ist einfach eine interessante Sache. Das brauchst du nicht unbedingt. Das ist einfach etwas, das ich interessant fand und ich dachte, dass ich das auch dem Tiger hinzufügen würde. Also meine ich, das ist, wie ich schon sagte, so ziemlich alles, was wir brauchen. Mal sehen, ob es funktioniert oder ob es in Minecraft antwortet. Und wie Sie sehen können, wurde die Tiger AG hinzugefügt. Also lass uns sehen. Da sind wir los. Einige der Tiger hier werden erfolgreich im Spiel hinzugefügt. Und dann lass uns ein paar Rüben holen. Sierra jetzt sollten sie mir folgen, sobald ich das tatsächlich reingesteckt habe und sie folgen mir vor. Das ist also natürlich das Versuchsziel, oder? Wo dies im Grunde bedeutet was das Richtige ist, dem sie folgen werden. Und wenn ich dann einfach mit der rechten Maustaste klicke, kannst du sehen, dass das nicht war, nicht erfolgreich war, nicht erfolgreich war. Wieder einmal sollte es eine Chance von fünfundzwanzig Prozent sein und vor, jetzt habe ich es tatsächlich hier drin und wenn ich noch einmal mit der rechten Maustaste klicke, dann werde ich tatsächlich durchgehen und es sieht aus, es sieht nicht sehr seltsam aus, aber es ist ziemlich cool und ich kann nicht springen. Wie gesagt, dies ist etwas , das Sie wahrscheinlich durch einige Beispiele durch das Pferd hinzufügen können . Es sollte eigentlich zu verrückt sein. Und wenn ich dann mit der rechten Maustaste klicke, dann kannst du sehen, dann können wir diesen Tiger auch sitzen lassen. Und das sollte auch nur gut funktionieren. Sie können sehen, dass dies ein Beispiel für eine beschreibbare Entität und eine Tabellenentität zur gleichen Zeit ist, im Grunde sowohl zur gleichen Zeit als auch hin. So einfach kann das auch sein. Nun, aber das wird es für diesen Vortrag 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. 110. (zusätzliche Themen) Hinzufügen eines benutzerdefinierten Bootens: Oder ich begrüße wieder zum Futterkurs für 118. Und in diesem Vortrag werden wir Minecraft ein benutzerdefiniertes Boot hinzufügen . Jetzt ist dies eines dieser Dinge, die dem Zeichen ähneln. Das scheint, ich meine, es sollte viel einfacher sein, aber es ist wirklich unglaublich frustrierend, tatsächlich hinzuzufügen. Also noch einmal, ein paar, ich meine, vieles davon wird kopiert. Aber sobald Sie dies einmal eingerichtet haben, sollten Sie in der Lage sein, Ihrem MOD ganz einfach neue Bootstypen hinzuzufügen , und es sollte fast keine Sorgen sein. Das erste , was wir tun werden, ist, dass wir eine neue Entität aufbauen werden. Das erste, was du sagen wirst, Warte, brauchen wir eine Entität? Genau. Deshalb machen wir es im Grunde nach den Entitäten. Das wird die Bootseinheit sein. Vor ihnen werden sie jedoch nur einen brauchen. Und dann werde ich den Inhalt noch einmal hier kopieren. Aber wie gesagt, im GitHub-Repository steht Ihnen alles zur Verfügung, eine Einzelperson genauso gut. Lasst uns das einfach hinzufügen und wir sollten keine kriegen, okay, wir werden ein paar Pfeile bekommen, aber das wird gut. Diese werden nur ein bisschen verkauft . Das werden Mod-Entitätstypen tatsächlich auf die Bootseinheit gehen wir nur einen Moment hinzufügen werden. Jetzt haben wir noch einmal einen Interessanterweise acht Datentyp-ID-Typ, oder? Sobald Sie eine andere Varianz einer bestimmten Entität haben können, werden wir also andere Varianz einer bestimmten Entität haben können, so ziemlich dasselbe sein, was wir hier mit dem Daten-ID-Typ gemacht haben . Sie können sehen, dass dies die TI-Variante ist und dies ist der Typ. Also werden wir hier ein sehr ähnliches Setup haben. In diesem Fall werden wir nur die tatsächliche Typenumierung innerhalb dieser tatsächlichen Mehrfach-Entitätsklasse haben die tatsächliche Typenumierung innerhalb dieser tatsächlichen . Und Sie können sehen, dass wir die Kirschblüte mit nur dem Namen Cherry Blossom haben. Und dann ist der Rest grundsätzlich irgendwie im Hintergrund erledigt. Die Idee hier wird im Grunde genommen genau hier für uns gemacht. Und ehrlich gesagt, wirklich, müssen wir uns nicht wirklich all die anderen Sachen ansehen. Wenn Sie wie jede andere Aufzählung mehrere hinzufügen möchten , trennen Sie sie durch ein Komma und nennen Sie sie dann einfach , wenn etwas anderes und dann wird es in Ordnung sein. Das müssen Sie tun, wenn Sie eine neue benutzerdefinierte Variante oder einen neuen benutzerdefinierten Bootstyp hinzufügen möchten eine neue benutzerdefinierte Variante oder einen neuen benutzerdefinierten Bootstyp Sie müssen auch die Drop-Item-Methode des Kits genau hier ändern . Sie können sehen, dass dies eine Switch-Anweisung ist. Und dann lassen wir hier das Kirschblütenbrett fallen. Und wenn Sie einen anderen haben, fügen Sie hier einfach einen neuen Fall hinzu und fügen Sie dann einfach diesen Artikel hinzu. So einfach ist das so einfach. Der Typ Get Mod Board, beide Typen sollten ziemlich selbsterklärend sein. Lesen Sie zusätzliche Zusätze aus der Save-Data-Methode. Wir sparen nur den tatsächlichen Typ dieses Bootes. Und dann haben wir hier nur zwei Konstrukteure. Wir brauchen diese beiden Konstruktoren weil wir diesen in nur einem Moment im Mod-Entitätstyp verwenden werden. Also kopiere ich das tatsächlich über eine Sekunde. Natürlich steht dir alles zur Verfügung. Und du siehst, nennen wir das eigentlich das Mod-Underscore-Board. Wie wär's damit? Das könnte ein bisschen besser sein. Und dann sieht man, dass dies die Bootseinheit ist, und dann ist das auch in Ordnung. Das sollte funktionieren, das sollte funktionieren. Und dann diese eine Heizung, wenn wir vor einem Tag tatsächlich löschen können . Jetzt wird die eigentliche Bootseinheit nur der Gegenstand sein , der ein Problem ist, und dann wird der Rest funktionieren. Sie können sehen, dass dies ein Verschiedenes ist, natürlich ist es immun gegen Feuer. Die Größe hier stammt von den anderen Bootseinheiten. Wenn man sich also die Bootsklasse anschaut, ist dies natürlich die verfügbare Klasse. Sieh dir das noch einmal an. Wenn Sie denken, dass Sie noch etwas tun möchten, wenn Sie etwas Besonderes machen möchten, schauen Sie sich das an und dann sollten Sie es auch dort gut gehen. Jetzt brauchen wir auch einen Renderer. Dies wird der Model-Vot-Renderer sein. Oben. Da gehst du. Das wird eigentlich ziemlich einfach sein , alles in Betracht gezogen. Es gibt eine interessante Sache hier. Noch einmal kopiere ich es. Aber all dies steht Ihnen zur Verfügung und wir erhalten keine Fehler. Und Sie können sehen, dass hier eine sehr interessante Sache ist. Was Sie hier haben, sind seine eigenen Ressourcen. Dies wird eine Karte vom Mod-Board-Typ zu einem Paar eines Bootsmodells für den Ressourcenstandort sein. Das ist ziemlich Verrücktheit. Die allgemeine Idee hier ist nur, dass wir wollen, das ist fast genau das Gleiche. Sie würden diese Texturposition sehen, so ziemlich das, was wir in den Renderern hatten, wo wir die Texturposition und dann die Variante haben, das ist so ziemlich alles, was wir hier haben nur in einem sehr viel komplizierter eine Methode. Und es ist was es ist , denn das ist die Sache , die dieser richtig hat. Das Peer-Resource-Standortboot-Modell ist also das Modell mit Standortmonaten. Und wenn wir das zu einer Map machen, verschiedene Typen und dann verschiedene Paare, und das wird im Grunde funktionieren. Jetzt ist das eigentlich interessanterweise, es wird nur folgendes tun, wo dieser im Grunde verrückt aussieht. Das sieht so aus, oh mein Gott, was das **** hier vor sich geht. Buchstäblich was wir tun, gehen wir alle Werte durch, die alle Arten, die wir für unsere Boote oder kundenspezifischen Boote definiert haben für unsere Boote oder kundenspezifischen Boote und machen dann einfach neue Paare, oder? Also werden wir sie alle durchgehen, eine neue Karte dafür erstellen und sagen: Hey, okay, jetzt werden wir eine Karte mit diesem bestimmten Typ erstellen. Also werden wir es durchmachen, sagen wir, wir haben sieben verschiedene Typen. Der erste Typ, und dann werden wir einfach sagen, wie auch immer der Name ist. Dies ist, wo das Modell sucht. Und dann die Position der Modellschicht. Das ist also das eigentliche Bootsmodell, das immer das AUC-Bootmodell sein wird. Das sind also die eigentlichen Bootsmodelle. Sie können sehen, dass wir deshalb kein benutzerdefiniertes Bootsmodell herstellen. Also das wird alles das normale sein. Wenn Sie wirklich kundenspezifische Bootsmodelle haben wollen, müssen Sie das einfach selbst herausfinden. Ich empfehle dringend, einen Blick auf das Bootsmodell zu werfen. Das sollte, ich meine, definitiv etwas sein, das im Grunde ein guter Anfang sein wird , aber es wird definitiv ein bisschen komplizierter. Und wenn wir das erstellt haben, ist die Idee, dass dies im Grunde genommen genau hier im Modell mit Standortmethode zurückgegeben wird , die Sie sehen können, wir prüfen ob dieses Boot es ist oder nicht des Typs oder einer Instanz einer Mod-Boat-Modell-Entität eher. Und dann werden wir einfach die eigentliche Ballressource mit dem tatsächlichen Typ zurückgeben . Das ist alles, was wir hier machen. Es sieht ein bisschen verrückt aus und es ist wie, wow, das ist absoluter Wahnsinn, aber insgesamt ist es eigentlich nicht so verrückt. Also wo brauchen wir das? Nun, das werden wir natürlich noch einmal in der MC-Client-Methode brauchen , genau hier ist der gewöhnliche MC-Kurs-MOD und dann im Client-Setup genau hier. Wir werden also sagen, dass dies die Bolt-Entität ist und dies wird der Mod-Vote-Renderer sein. Und da gehst du. Das funktioniert schon. Und das ist auch dieses Setup. Und dann brauchen wir dafür nur einen Gegenstand. Interessanterweise benötigen wir dafür auch immer noch einen benutzerdefinierten Artikel. Dies wird ein MOD-Abstimmungselement sein. Und dann ist da tatsächlich ein Tippfehler drin. Wir werden das einfach schnell beheben. Gehe zum Gegenstand. Und noch einmal hier ein paar Sachen, die kopiert werden. Dies ist eigentlich der Cluster ist am wenigsten. Nun, ich meine, würde nicht unbedingt interessant sagen, aber die geringste Verrücktheit, dass wir diese Methode haben, im Grunde nur das tun, was passiert, wenn wir mit der rechten Maustaste klicken. Das ist so ziemlich ich meine, es ist fast eins zu eins vom Bootsgegenstand. Wir können dies als Bootsgegenstand genau hier sehen. Und das ist die US-Methode. Es sieht fast genauso aus. Anstatt ein neues Board zu machen, machen wir eine neue Mod-Abstimmung hier ziemlich selbsterklärend sein sollte, und der Rest ist fast genau das Gleiche, so ziemlich dasselbe. Also los gehst du. Und nun, nachdem wir dies hinzugefügt haben, lassen Sie uns auch den Gegenstand daraus machen , damit wir den letzten Pfeil dort loswerden können. Lass uns einfach über die magische Dämmerung kopieren. Das wird das sein, jetzt ist dieses eigentlich das spezifische Boot. Das wird also der Punkt „Cherry Vote“ sein. Für jede Ihrer verschiedenen Arten von Boards benötigen Sie verschiedene Boote, im Grunde Kirschboot-Artikel uns leid, das ist der Chevy Bolt-Artikel. Nennen wir es Sherry. Eigentlich Kirschblütenbrett. Das ist besser. Da gehst du. Ja, das macht sie sinnvoller. Kirschblütenboot. Und dann ist dies ein MOD-Abstimmungselement. Jetzt nimmt dies tatsächlich als ersten Parameter die normale Software auf. Der zweite Parameter, wie Sie sehen können, nimmt den Mod-Boat-Entitätstyp, Entitätstyp, Punkttrockenheit, großartig auf. Das war einer zu weit vom Ego entfernt. Es gibt eigentlich, da gehst du. Jetzt funktioniert es offensichtlich hier. Sie können also sehen, dass wir das MOD-Aufzählungselement hier erstellt haben . Und dann sollte dies auch in der Entität funktionieren , wo wir genau dort zurückkehren werden. Jetzt sollten alle Pfeile weg sein. Jetzt müssen wir nur noch die JSON-Dateien hinzufügen. Das wäre also natürlich in erster Linie die Übersetzung natürlich in erster Linie für den Artikel, das wird genau hier sein, also werden wir das einfach kopieren. Das wird das Kirsch-Unterstrichen-Boot sein. Und dann natürlich das Gleiche hier. Kirschblütenboot. Jetzt gibt es natürlich noch eine andere Sache, das Artikelmodell, nicht das Artikelmodell. Es ist nur ein normales Artikelmodell. Nichts zu verrückt daran, aber trotzdem werden wir es einfach über n kopieren . Wir werden es uns ansehen. Sie können nur Punkte auf eine bestimmte Elementstruktur sehen. Nichts Verrücktes hier. Gleiche gilt für die Artikeltextur. Das ist nur die normale Bootstextur. Wirklich strukturiert im Grunde ein bisschen für unsere Custom. Wir können also sehen, dass sie das Kirschblütenbrett ist. Eine andere Frage ist Gewicht, aber während die Entity-Textur dort, nun, dies wieder in Entität geht. Und ich erstelle ein neues Verzeichnis namens Boot. Und dann drin war die Kirsch-Unterton-Score-Blüte, dieser Name genau hier. Was ist sehr wichtig? Es muss der gleiche sein, wie der Name, der im Typ dieses Namens angegeben wird , mit diesem Namen übereinstimmen muss , da der Renderer in Bezug auf eine Textur danach sucht . Das ist also sehr wichtig. Und so sieht es aus. Im Grunde noch einmal, einfach im Grunde genommen einrichten. Das ist also der gesamte Vorstand. Und dann kannst du, das ist die Grundstruktur des Bootes. Das ist die allgemeine Idee. Theoretisch glaube ich, dass dies all die Dinge sein sollte , die wir für ein Boot brauchten. Wie ich schon sagte, ist nur mit dem Schild. Es ist ziemlich verrückt. Wie alle Dinge in Betracht gezogen. Es gibt einige ziemlich große Schritte, wie ich sagte, meiste davon, wenn Sie es einfach kopieren und dann im Grunde ändern können. Sie benötigen also einen neuen benutzerdefinierten Artikel für jeden der neuen Bootstypen. Neuer Bootstyp genau hier. Das ist also etwas, das du brauchst und dann sollte der Rest ziemlich gut sein. Ich glaube, dass Sie in der Lage sein sollten, diesen Entitätstyp für alle von ihnen zu verwenden. Und das sollte so ziemlich alles sein, was du tun musst. Aber um der Vollendung willen, schauen wir mal, ob es funktioniert. Oder wenn wir wieder in Minecraft sind und Sie sehen können das Kirschblütenboot erfolgreich zum Spiel hinzugefügt wurde. Jetzt lasst es uns ablegen. Und da ist es, das Kirschblütenbrett. Und wir können es im Wasser benutzen. Alles funktioniert völlig gut, so wie wir es erwarten würden. Und wenn ich dann tatsächlich schnell in den Überlebensmodus wechsle, gehen wir in den Überlebensmodus und mal sehen, ob das fällt und tatsächlich ein Kirschblütenbrett fallen lässt, genau wie du es erwarten würdest. Also los geht's und arbeiten alles, erstaunlich. Und so einfach ist es eigentlich. Wie ich schon sagte, es gibt einige Schritte, die man durchlaufen muss. Aber wenn man sie einmal durchgemacht hat, ist es eigentlich ziemlich einfach. Aber das wird es für diesen Vortrag genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns aber in der nächsten Vorlesung. Ja. 111. (zusätzliche Themen) Entity World Generation: Oder ich begrüße wieder zum Schmiedekurs für 100 Teen. In diesem Vortrag werden wir Minecraft die Generierung benutzerdefinierter Entitäten hinzufügen , aber wir haben unsere Entitäten erstellt jetzt wollen wir auch, dass sie in der Welt spawnen. Dafür werden wir hier einfach einen neuen Kurs machen . Im World-Agenda-Paket werden wir also eine neue Mod-Entitäts-Degenerationsklasse erstellen. Und noch einmal werde ich diesen kopieren, weil ich hier im Grunde genommen eine kleine Klasse vorbereitet habe im Grunde genommen eine kleine Klasse vorbereitet , die Sie verwenden können. Das ist also natürlich, dass wir dies auf mehr als zwei Typen ändern müssen , die sie verwenden, und dann auch diese. Das sollte für dich keine Sorgen sein. Sie sollten das einfach kopieren können. Und Sie können die gesamte Klasse hier sehen, wir haben eine Entitäts-Spore-Methode, die wir hier aufrufen werden, im Grunde ganz unten hier. Also Mod-Entitäts-Iteration bei leerem Spawn, und dann geben wir das IM-Ladeereignis hier weiter. Und das sollte so ziemlich genau das sein, was wir brauchen. Und dann können Sie sehen, dass es einige Methoden gibt, unter denen wir verwenden können. Fügen Sie beispielsweise Entity zu allen Overrule-Biomen hinzu. Wir haben eine Entität für alle Biome. Netto nach Nether. Nein, nether, tut mir leid, richtig. Es gibt also überall außer dem Nether, jedem Roboter, das Ende. Und dann auch hier, alle Biome einschließlich und noch eins. Und normalerweise sollten Sie theoretisch, wenn Sie diese Methoden haben, sehr leicht in wenn Sie diese Methoden haben, der Lage sein, andere zu tun, die so ziemlich dasselbe tun , was Sie tun möchten. Ich meine, ehrlich gesagt, an dieser Stelle ist natürlich etwas Java-Wissen eine Sache, die Sie an dieser Stelle haben sollten. Und wenn Sie es einmal haben, sollte das Hinzufügen von mehr hier nicht zu verrückt sein, auch wenn Sie nicht unbedingt alles verstehen, wenn Sie so sind, okay, das fügt es allen Biomen hinzu, aber das Ende ist es wie, okay, du kannst wahrscheinlich herausfinden, wie man sie nur zum Ende hinzufügt, zum Beispiel nur buchstäblich das, das war's jetzt. Plötzlich alles nur bis zum Ende Biome, das ist so ziemlich alles, was es dazu gibt. Also diesen Kurs, wie ich schon sagte, habe ich schon mal benutzt. Und doch hatten wir hier gerade das Beispiel, dass wir sie im Grunde allen überwältigten Biomen hinzufügen werden, in diesem Fall sowohl dem Waschbär als auch dem Tiger. Nachdem wir es hier hinzugefügt haben, ist das buchstäblich alles, was wir tun müssen. Ich schätze, um der Vollendung willen, mal sehen, ob es funktioniert. Es übersetzt zurück in Minecraft. Theoretisch müssen wir dafür nicht einmal eine neue Welt schaffen , weil die Entitäten irgendwie spawnen. Ich meine, ich würde nicht unbedingt dynamisch sagen, aber sie erkennen im Grunde nicht sofort die Welt, die erzeugt wird. Mal sehen, ob wir einen unserer benutzerdefinierten finden können. War das schon Tiger da ist es. Hier im Wald gibt es schon einen Tiger. Es gibt noch einen, einen anderen. Aber das ist ich meine, so einfach kann es sein. Äh, du hast gesehen, dass das ziemlich einfach ist. Alles, was in Betracht gezogen wird, wie gesagt, sollte es auch ganz einfach sein, es nicht zu ändern. Sie können sehen, dass es noch ein paar Tiger gibt. Ich will, dass wir vielleicht auch ein paar Waschbären finden können. Vielleicht einfach schnell über diesen Hügel, Kommando. Ein paar Waschbären. Das sind sie, Lasst uns verschwinden. Wir haben tatsächlich festgestellt, dass sie Waschbären und zwei dunkle Rekorde lesen . Das ist also ziemlich cool. Ja, so ist es am einfachsten, Minecraft eine benutzerdefinierte Entitätsgenerierung hinzuzufügen Minecraft eine benutzerdefinierte Entitätsgenerierung , die es bereits für diese Vorlesung hier hat. Wie immer steht Ihnen natürlich der gesamte Code im GitHub-Repository zur Verfügung und auch individuell. Aber sonst sehe ich dich in der nächsten Vorlesung. 112. (zusätzliche Themen) Benutzerdefinierte Traden für Dorfbewohner hinzufügen: Oder ich begrüße zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir einem Dorfbewohner individuelle Trades hinzufügen . Dies wird also benutzerdefinierte Eigenschaften für bereits bestehende Dorfbewohner sein , die hier sehr wichtig sind. Wir werden im Moment keine benutzerdefinierten Dorfbewohner hinzufügen. Dies könnte in Zukunft passieren, aber ich würde mich jetzt nicht unbedingt darauf verlassen. Also müssen wir in unseren Event-Kurs gehen. Es gibt nur eine Veranstaltung hier. In der fortgeschritteneren Klasse. Ich kopiere einfach die Methode und es ist sehr, sehr einfach. Das ist alles, was wir brauchen. Sie können also sehen, dass wir hier einfach die Dorfbewohner von n nutzen werden. Und dann werden wir einfach sagen: hey, wenn der Typ spezifisch ist, ein Beruf, bei dem wir auch unsere Eigenschaften hinzufügen möchten, dann fügen wir einfach unseren Trade hinzu. Das ist buchstäblich alles, was wir tun. Man sieht, dass es sehr, sehr einfach ist. Sie können sehen, dass Sie auf diese Weise filtern. Wenn Sie also etwas für einen anderen Beruf hinzufügen möchten, kopieren Sie einfach die if-Anweisung und es hat den Fachmann genau hier geändert. Sonst noch was du hier willst? Sie können die Dorfbewohnerebene genau hier angeben , wenn Sie das noch handeln. Und dann passieren Sie hier die Dorf- oder Hebelebene und fügen dann einfach das gewünschte Händlerangebot hinzu. Also der, dieser hier, also der eigentliche Smaragd hier ist das, was du bezahlst. Das Händlerangebot. Sie können auch zwei Gegenstände einlegen, drei Gegenstände, Stapel, und dann wären dies die beiden Dinge, für die Sie bezahlen müssen. In diesem Fall haben wir einen Item-Stack, den Smaragd zu Smaragden. Das zahlen wir, und dafür werden wir Vermögensrüben bekommen. Dann kannst du sehen, dass Max benutzt, wir können das zehn Mal benutzen. Die Geschwindigkeit beträgt 50. Ich denke, das ist eigentlich ziemlich viel zu hoch für das Zeug hier. Also denke ich, dass dies normalerweise eher im Bereich einer einstelligen Erfahrung liegt , aber was auch immer der Fall sein mag, ich meine, all diese Zahlen empfehlen dringend, einfach mit ihnen herumzuspielen oder das andere. Ich meine, das ist wahrscheinlich sowieso das Klügste, aber das ist buchstäblich alles, was du brauchst. Sie können dies einfach bei so vielen if-Anweisungen hier kopieren , wie Sie möchten, so viele Eigenschaften, wie Sie hinzufügen möchten. Aber das ist buchstäblich alles, was Sie tun müssen , ist wirklich einfach, wirklich einfach. Ich meine, du kannst es nicht einfacher machen, ehrlich gesagt, wirklich. Ich meine, ich denke, nur um der Fertigstellung willen, mal sehen, ob es funktioniert oder ob unsere Antworten wieder in Minecraft sind und sie sehen können , dass wir die Rüben bereits hier haben, also kann ich einfach Smaragde einsetzen und ich hole meine 12. Rüben. Das funktioniert schon, unser Brauch. Und Sie können sehen, wie viel Erfahrung der tatsächliche Landwirt daraus noch einmal hat. Und dann lass uns tatsächlich zum Tool Smith gehen und lass uns hier einfach ein paar Werkzeuge besorgen, damit wir ihn im Grunde auf Stufe drei bringen können , weil wir sie auf Stufe zwei, Stufe drei, brauchen , Lass uns etwas Eisen holen Barren Seher, wenn Sie auch handeln, eiserne Ingots das Ziel. Und dann hoffen wir, dass das klappen wird. Lasst uns ein paar Eisenbarren holen. Und dann sollte Level drei gleich um die Ecke sein. Sie haben vor Upgrade, Upgrade durchgeführt. Geh und jetzt lass uns sehen. Wir haben den Paxil in diesem Fall nicht, also hat das nicht ganz funktioniert. Nun, fair genug. Ich schätze, sagen wir dann das andere. Lassen Sie uns einfach schnell upgraden oder dieses Tool Smith war ein bisschen kooperativer. Du kannst das Kobalt Paxil sehen. Da gehst du. Also können wir das kriegen und dann könnten wir es gebrauchen. Wie auch immer wir gerne hätten. Da gehst du. Genau wie wir erwarten würden, dass das eigentliche Tool funktioniert, funktioniert es und los geht's. Es konnte hier über das eigentliche Tool Smith gehandelt werden und hier noch einmal, die Rüben genau hier, können wir nur ein paar davon holen und sie gehen. So funktioniert der Max auch völlig gut, aber wie wir erwarten, dass es wirklich verdammt cool wird. Und so einfach ist es, den Dorfbewohnern einige benutzerdefinierte Eigenschaften hinzuzufügen . Wie gesagt, das sind natürlich bestehende Dorfbewohner, aber das fügt Ihrem Mod immer noch einige verschiedene Ideen einige verschiedene Ideen hinzu, was wirklich cool ist. Ich empfehle also dringend, das zu überprüfen, aber sonst wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in der nächsten Vorlesung. 113. (1.188.2) Schwelle auf 1.18.2: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir unser Projekt auf 118 aktualisieren , bis jetzt mit der Veröffentlichung der 1880er Jahre, es gibt ein paar Änderungen, aber zum Glück nichts, was wir tatsächlich ziemlich Krusten reparieren können. Nichts ist zu verrückt. Das einzige, was lustig genug ist, die tatsächlich völlig kaputt oder nicht vollständig, aber in hohem Maße, ist der Titel komisch genug? Ich weiß nicht, warum sie den Titelbildschirm geändert haben, aber was auch immer der Fall sein mag, wir werden nur aktualisieren und dann werden Sie im Grunde die Änderungen in der erstellten DOD Gradle-Datei sehen. Es gibt natürlich ein paar Änderungen, die vorgenommen werden müssen. Was wir also tun werden, ist, zuerst einen Blick darauf zu werfen, was die aktuelle Version ist. Die aktuelle Version, wie Sie sehen können, 40012, natürlich für Sie wird dies in Zukunft wahrscheinlich eine spätere Version sein. Also nimmst du das einfach an diesem Punkt, und dann wird es uns gut gehen. Also werden wir das zuerst machen. Also werden wir genau hier zu den Abhängigkeiten 40012 gehen. Und dann geht es darum, nur zu überprüfen, 40121, 1000th 2 zu überprüfen. Das ist richtig. Und bevor wir das tatsächlich neu laden, wollen wir auch die neueste Version von Gecko Lip bekommen, weil ich glaube , dass die alte nicht funktioniert. Also wollten wir auch in 312 genau hier sein, sind einfach wieder zur Installation gegangen, und dann benutzen wir das auch. Also machen wir das hier vor ihnen. Und das sollte so ziemlich genau das sein. Abgesehen von Pergamentzuordnungen ist dies natürlich unglaublich wichtig für die Pergamentzuordnungen. Wir wollen eigentlich sehr spezifische Pergamentzuordnungen und sie werden die folgenden sein. Ich werde sie kopieren und das wird Ihnen natürlich wieder im GitHub-Repository zur Verfügung stehen, einer Person genauso gut. Sehen Sie, wir nehmen im Grunde die Pergamentzuordnungen aus dem 19. Jahrhundert und setzen dann die normalen offiziellen Zuordnungen der 1880er Jahre durch. Wenn Sie dieses Setup nicht so haben, werden Sie tatsächlich auf einige Probleme stoßen und einige Methoden sind nicht verfügbar. Denken Sie also daran, wenn Sie persönliche Magnete verwenden, um dies zu verwenden, oder wenn sie auf 172 aktualisiert werden, können Sie sie natürlich zu diesem Zeitpunkt auch auf diese Version aktualisieren. Aber dann klicken wir auf den kleinen Elefanten. Wenn dies nicht angezeigt wird, können Sie die Registerkarte Gradle öffnen und dann die Neulad - oder Gradle-Änderungen drücken. Das kann jetzt noch einmal bis zu ein oder zwei Minuten dauern. Und weil ich das schon gemacht habe, sollte das für mich genommen werden. Normalerweise gibt es ein paar Sekunden. Mal sehen, sei einfach geduldig und lass es durchlaufen. Und dann werden wir sehen, nachdem wir einen Build erfolgreich gemacht haben, dass sie erfolgreich gebaut wurden, haben hier tatsächlich gut zwei Minuten gedauert. Aber seien Sie natürlich noch einmal geduldig und warten Sie, bis Sie einen Build erfolgreich haben und dann wird es Ihnen gut gehen. Aber das erste, was wir tun werden, ist, dass wir tatsächlich in unseren MC-Kurs-Mod-Kurs gehen und eine Sache machen werden und das wird den Gecko Lib Dot initialisiert. Dies hätte wahrscheinlich vorher hinzugefügt werden sollen, aber jetzt ist der beste Zeitpunkt denn je, um es einfach hinzuzufügen. Und dann wird es uns hier gut gehen. Ich denke, es ist das nächste unbedingt notwendig, aber es wird zumindest auf jeden Fall empfohlen . Und was sind dann die Änderungen, während die Änderungen hauptsächlich in den Tags stattfanden, dann auch die Änderungen in den Weltpaketen. Das werden wir uns gleich mal ansehen. Und dann gibt es auch eine winzige Änderung in der Block-Entität mit dem benutzerdefinierten Rezept. Zunächst einmal werden wir die Tags genau hier angehen . Sie können sehen, dass ich optionale Namen Steuer nicht mehr existiert. Aber was existiert, ist der TAC-Schlüssel, und wir werden diesen einfach durch klebrig ersetzen. Klicken Sie darauf, drücken Sie Alt und geben Sie diese Klasse importieren. Und dann werden wir alle optionalen Tags ändern, um Schlüssel zu tack. Da gehst du. Und anstatt hier ein optionales zu erstellen, erstellen wir einfach eine Punkterstellung. Sie können sehen, dass wir das gerade in Create ändern. Und da gehst du. Das ist so ziemlich alles , was wir jetzt tun müssen, eine Sache, die immer noch nicht funktioniert, da die Rute hier wertvoll ist, können wir sehen, wir können nicht einfach alle Contains hier. Nun, das würdest du sagen? Ich meine, ein bisschen nervig um ehrlich zu sein. diese Weise sieht dieses Setup wirklich seltsam aus. Also das ist es, was du da hineinlegen musst. Siehe Registry-Punktblock , Halter oder Hals. Dann erhalten wir im Grunde den Registrierungsressourcenschlüssel für diesen Block, den wir hier übergeben. Dann sagen wir, okay, ist dieser Halter in der Wertsachtel der Dowsing Rute? Es ist verrückt, wie dies jetzt eingerichtet ist, ich weiß nicht, warum die Änderungen aufgetreten sind. Ich sage nur, dass wir das im Grunde genommen tun müssen. Und ich werde es einfach tun, wir werden es einfach im Grunde finden können. Aber das sind die Änderungen genau hier. Die Tags sind also fertig. Lasst uns dann genau hier ins Rezept gehen. Irgendwelche Mod-Rezepte, diese Zeile hier kann nicht mehr in dieser Methode enthalten sein. Was wir tatsächlich tun wollen, ist im Ereignispaket, im Mode-Ereignis vergangene Ereignisse möchten wir ein neues Ereignis hinzufügen. Also werden wir das für den Moment einfach hier kopieren . Dies wird die Rezepttypen registrieren. Was wir dann tun werden, ist, dass wir dieses Registry-Registerereignis genau hier machen werden, und wir werden es auf folgende Weise ändern. Wir werden also sagen, dass dies eigentlich nicht in Global Realisiert ist , aber das ist eigentlich der Serialisierer der Rezepte vor. Das brauchen wir also. Natürlich steht Ihnen das im GitHub Repository auch im Einzelnen wieder zur Verfügung. Und dann werden wir diese Zeile kopieren wenn Sie mehrere Rezepttypen haben, natürlich alle hier hinzufügen wollten, alle Registry-Dot-Register-Methoden, und das würde in alle Registry-Dot-Register-Methoden, Ordnung sein. Jetzt wird das auch funktionieren. Und jetzt können wir auf die Verrücktheit eingehen , die die Weltgeneration sein wird. Aber im abstrakten Baumzüchter können Sie im Grunde sehen, dass wir das konfigurierte Feature hier nicht mehr wollen. Was wir eigentlich wollen, ist ein Holdout, oder? Also werden wir sagen „Hold on“ und dann wird das sehr interessant sein. Es wird Fragezeichen-Erweiterungen geben, erweitert die konfigurierte Funktion genau hier. Und dann machen wir das und dann können wir in die Moat konfigurierte Feature-Class wechseln die Moat konfigurierte Feature-Class und diese dann im Grunde ändern. Dementsprechend. Das wird also auch ein Inhaber sein. In diesem Fall des Fragezeichens erstreckt sich, dann ist es konfiguriert Feature und dann hier am Ende, indem die Schließwinkelklammer hinzugefügt wird. Wieder einmal steht Ihnen natürlich alles im GitHub Repository zur Verfügung, eine Einzelperson genauso gut. Was wir dann sehen werden, ist diese Konfiguration, die wir nicht mehr brauchen, einschließlich des Punktes. Wir werden das durch ein Komma ersetzen und dann am Ende sowohl die öffnenden als auch die schließenden Klammern löschen . Dies sollte jetzt kein Fehler mehr sein. Da gehst du. Und das sollte auch in Ordnung sein. Was wir jetzt tun müssen, ist, dass wir jetzt von der Konfigurationsfunktion zur Konfiguration von Feature zum Platzieren von Feature wechseln können Konfiguration von Feature zum Platzieren von Feature wechseln . Wir müssen jetzt tatsächlich eine weitere Platzfunktion hier hinzufügen, und ich werde dies noch einmal kopieren, alles, was Ihnen im GitHub-Repository zur Verfügung steht , genauso gut. Und Sie können hier sehen, dass wir diese Platzfunktion im Grunde noch einmal anstelle dieses Halters hier haben. Und wir filtern im Grunde nach Blocküberleben der Probenahme, genau wie wir es hier tun. Anstatt dies inline zu machen, machen wir es im Grunde mit einem Place-Feature hier. Und dann verwenden wir das Place-Feature in dieser zufälligen Feature-Konfigurationsliste, genau wie wir es hier tun. Es ist also sehr, sehr ähnlich, nur ein bisschen anders, denke ich, wenn es um die Ruderer geht, sollte das auch ziemlich einfach sein. Wir müssen das einfach hier ändern . Wir wollten das eigentlich nicht mehr nennen. Das eigentliche Leeren ist also kein Ding mehr. Wir wollen so etwas machen, aber Sie möchten nicht einmal etwas zurückgeben , weil dies tatsächlich nur aufnimmt. Wir werden so etwas machen. Und dann werden dies die Platzierungs-Utils sein, was wir brauchen, wenn die Platzierung verwendet wird, das ist nur leer. Und dann geben wir das hier rein und ich werde das mit einem beenden. Lassen Sie mich das einfach ein bisschen neu formatieren , damit ich tatsächlich sehen kann, wo wir hier sind. Lassen Sie mich einen einfachen Block mit einer neuen Blockkonfiguration. Sie blockieren sagen Anbieter von Zeilen. Lasst uns einfach den Mauszeiger darüber bewegen. Was wollen wir? Dies wird natürlich auch ein Inhaber sein. Wir müssen dies nur in einen Inhaber ändern, den sie vor ihnen haben, und dann sollte das auch funktionieren. Da gehst du. Wieder einmal können Sie es natürlich immer einfach kopieren. Sie können sehen, dass die Änderungen hier oder nicht so verrückt sind, sie sind nur wirklich Syntax, genau hier mit der Reihenfolge. Die Reihenfolge ist wahrscheinlich die einfachste. Wir müssen dies nur ändern und dies dann auch in einen Inhaber ändern . Sie sind schon her. Und dann muss dies auch von Kriegskonfiguration sein , sehr wichtig hier. Da gehst du. Dann, wie Sie sehen können, funktioniert auch ziemlich gut. Dies sind also die Änderungen natürlich die Änderungen an 0.5. Also muss ich genau hier in den neuesten Funktionen stattfinden bei denen sie alle auch Inhaber sind oder nicht oder Konfiguration über Halter. Lassen Sie mich den Inhaber hier überschreiben. Da gehst du. Warte mal los. Und ich werde das für jeden von ihnen tun, nur damit wir es bereits haben und es auch hier halten. Da gehst du. Dann klicken wir darauf, Alt und Enter zum Importieren. Und anstatt diese zu haben, ist dies platziert, was wir eigentlich wollen, einfach den Ort wieder zu entfernen hier ein Komma hinzuzufügen. Jetzt wird das nicht überprüft, das wird tatsächlich wieder spawnen. Und jetzt haben sie vor, dasselbe hier statt Ort, wir werden einfach ein Komma machen und dann so etwas tun. Und dann dasselbe hier, das ich platziert habe, ersetze es durch ein Komma und dann können wir das auch entfernen und das sollte auch funktionieren. Wir müssen immer noch in die Gen-Kurse gehen , weil sich hier auch geändert hat. Dies ist jetzt ein Inhaber statt eines Lieferanten. Anstatt es als Lieferant zu machen, werden wir es einfach so machen. Also werden wir einfach den Lieferanten hier entfernen und dann sollte das auch funktionieren. Entfernen Sie also den Lieferanten, importieren Sie den Halter. Und dann das Gleiche hier, Letzte. Lösche das so und sie vor. Und das sollte es für die Weltgeneration sein. Lass uns die Regeneration von Morrow sehen. Da gehst du. Features wieder, keine Fehler mehr und jetzt sollte alles funktionieren. Natürlich steht Ihnen im GitHub Repository wieder alles zur Verfügung, eine Person, die Sie genauso gut kopieren können. Und das sollte alles sein , was wir tun müssen. Ich werde Ihnen tatsächlich zeigen, was mit dem Titelbildschirm nicht stimmt , in einem Moment, wenn wir tatsächlich in den Titelbildschirm kommen. Aber jetzt können wir es einfach anfangen, schauen ob es funktioniert. Lasst uns auch eine neue Welt erschaffen. Und dann werden wir sehen, ob alles in 1000. Zwei funktioniert. Oder der benutzerdefinierte Titelbildschirm ist tatsächlich ausgeschaltet. Das werden wir uns in einem Moment ansehen. Aber lasst uns vorerst einfach eine neue Welten erschaffen. Lass uns einen Test 1234 machen und mal sehen, ob alles noch funktioniert, ob alles noch spawnt, aber ich bin ziemlich zuversichtlich, dass es so ist, oder Francis zurück in Minecraft. Also habe ich hier im Grunde schon das Biom eines Flugzeugs lokalisiert. Und du kannst sehen, dass wir unsere Custom Mobs sogar laichen lassen. Wir lassen unseren Baum unsere Blumen laichen. Damit alles vollkommen gut funktioniert. Und du siehst, dass wir einfach hier reingehen werden. Wir können die Kobalt-Explosionsroute wie ein Rezept hier bekommen , nur aus Gründen der Argumentation, warum nicht? Probieren wir es einfach aus, denn das Rezept sollte auch ganz gut funktionieren. Lass es uns einfach ablegen. Da gehst du mit der Theorie, du gehst und es funktioniert immer noch völlig gut. Sie können sehen, dass wir Kobalt-Spitzhacke sind, es funktioniert, es ist da drin. Und wie Sie sehen können, meine ich, so ziemlich alles funktioniert noch. Wir können uns auch die Werftrute hier ansehen, wobei das Datentablet vor einiger Zeit auch noch funktioniert. Es funktioniert also auch völlig gut. Alles sollte funktional sein. Und ja, ich meine, das ist es so ziemlich. Werfen wir einen kurzen Blick auf den Titelbildschirm. Also werde ich einfach das „Fake“ ändern und dann schauen wir uns an, was der Titelbildschirm und die Schwänze sind. In Ordnung, wie Sie sehen können, sowohl der Begrüßungsbildschirm als auch die zusätzlichen Informationen in sind sowohl der Begrüßungsbildschirm als auch die zusätzlichen Informationen in der unteren linken Ecke irgendwie nicht vorhanden. Ich bin mir nicht hundertprozentig sicher, warum das der Fall ist. Ich denke also, dass die beste Vorgehensweise darin besteht, Ihrer benutzerdefinierten Kacheln Standardeinstellung Ihrer benutzerdefinierten Kacheln im Grunde genommen ausgeschaltet wird, damit er nicht ersetzt wird. Und sobald ich etwas herausgefunden habe , werde ich natürlich einen weiteren kurzen Vortrag darüber halten, einen weiteren kurzen Vortrag wie ich das vorerst beheben kann, denke ich, dass dies sein wird gefeuert und es wird kein zu störender Roboter sein , diese Vorlesung genau hier abschließt. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in den nächsten Vorträgen. 114. (1.18.2) Benutzerdefinierte Strukturen (Arbeiten mit Tutorial): Alles klar, willkommen zurück zum Schmiedekurs für 118. In dieser Vorlesung werden wir uns einer benutzerdefinierten Strukturgenerierung beschäftigen , die sehr wichtig ist, dass die Generierung von benutzerdefinierten Strukturen hier natürlich 118 zu sein wird, wenn Sie eine aktualisiert, raten Sie sehr, zu der letzten Vorlesung zu gehen , die wir hatten und wo wir im Grunde auf 118 aktualisiert haben, um dies zu beachten, was wir in diesem speziellen Vortrag machen werden, ist, dass was wir in diesem speziellen Vortrag machen werden wir gehen werden durch das Struktur-Tutorial von telepathischem Grunt. Und das ist genau hier. Ich habe das hier bereits im Hintergrund geöffnet, und dies ist wahrscheinlich die beste Ressource für Strukturen, die es je gibt. Ich meine, wie Requisiten für telepathischen Lauf weil das einfach absolut verdammt erstaunlich ist. Und wir können sehen, dass es hier verschiedene Zweige gibt. Sie können die 1800er Jahre verwenden, einen Stichsägenzweig schmieden, wenn Sie 1, 1000th 2 verwenden, und wenn nicht, können Sie den Zweig der 1800er Jahre 0 verwenden, diesen hier. Schmiede. Es ist definitiv ein bisschen anders. In 1 1000. 2. Was wir jetzt tun können, ist, dass wir tatsächlich benutzerdefinierte Strukturen erstellen sie ohne Code der Welt hinzufügen können. Wir brauchen nur JSON-Dateien, was wirklich verdammt genial ist. In dieser Vorlesung werden wir diesen Struktur-Tutorial-Mod genau hier durchgehen , den gesamten Code, alle angrenzenden Dateien, kopieren sie Stück für Stück und dann Schauen Sie sich im Grunde an, was Sie ändern müssen. Was kannst du dann, was musst du dann tun? Und die allgemeine Idee, die beiden Strukturen, die hier hinzugefügt werden, als Beispiel hinzuzufügen . Und dann werden wir in den nächsten folgenden Vorträgen selbst eine einteilige Struktur erstellen. Und dann werden wir auch eine Stichsägenstruktur erstellen, die tatsächlich viel einfacher ist, als Sie vielleicht erwarten. Es ist eigentlich alles nicht zu verrückt. Ich denke, dass ja, natürlich, wenn man etwas ganz normal hat, wird es natürlich etwas komplizierter. Aber vorerst gehen wir einfach hier rein und schauen wir uns an, was wir tun müssen. Gehen wir also in die Quell-Hauptleitung und wir müssen beide Ordner tatsächlich öffnen. Also gehe ich einfach zur mittleren Maus, klicke auf die Java und dann auch auf die Ressourcen. Wir beginnen zuerst mit dem Code. Sie können sehen Es gibt die Hauptklasse, die wir haben, das würde ich die Mod-Strukturen nennen. Und dann haben wir in diesem Strukturordner im Structures Paket die Sky Structures Klasse. Aber das ist das erste, was wir tun werden. Wir werden im Grunde genommen, ich werde das ein bisschen neu organisieren, aber wir beginnen mit den Mod-Strukturen. Dieser hier und unter wird das machen, und dann machen wir das 1. Zuallererst brauchen wir eine Mod-Structures Klasse. Nun, das ist im Weltpaket ganz einfach zu machen. Dann gehen wir hier neues Paket namens structure ein. Anstatt dann werden sie alle eine neue Klasse machen die die Modelle bricht. Da gehst du. Jetzt ist es richtig geschrieben, dass sie vor dieser Klasse was wir tun werden, ist, dass ich einfach den Inhalt hier kopieren werde. Das ist eigentlich, lasst uns tatsächlich alles kopieren. Das wird gut werden. Ich benenne es hier nochmal um. Wenn ich also moderne Strukturen sage, werden sie sicherstellen, dass der Name hier korrekt ist. Und dann können wir dies und das auch löschen. Da gehst du. Und formatiere das einfach ein bisschen neu. Dies ist natürlich jetzt der MC Course Mount bei AdMob ID. Und weil ich das gerne mache, werden wir ein machen , weil ich das gerne mache. Wir werden es öffentlich machen statische Void Register Methode mit einem I von n plus Event Pass. Und dann rufen wir die aufgeschobene Registerstruktur auf. Man könnte es auch direkt in der Hauptklasse des Konstruktors nennen , aber das werden wir in dieser Klasse nicht tun. Wir werden in nur einem Moment hinzufügen. Also im MC-Kurs-Mod hier werden wir einfach runtergehen, sagen wir genau hier, um Strukturen zu modellieren, die sich registrieren und dann den Event-Bus-Tarif, den Sie fahren, oder? Und jetzt haben wir das tatsächlich genau hier und dann auch dieses gemacht . Sie können sehen, dass dies buchstäblich das einzige ist , was wir hinzufügen müssen. Und dann haben wir hier die Himmelstrukturen eins, wir einfach über das Ganze kopieren werden. Wieder einmal ist dies das Strukturpaket. Klicken Sie mit der rechten Maustaste auf neue Java-Klasse namens Sky structures, nein, sin hier. Was wir nur tun wollen, ist, dass wir nicht Log-Manager sagen wollten, um sicherzustellen, dass wir wählen oder Apache-Protokollierungsprotokoll für J. Sehr wichtig. Und dann sagen wir statt Lagerbier, sagen wir doch Lager oder Log. Da gehst du. Dies ist nicht das heruntergekommene Haus. Es gibt tatsächlich Himmelsstruktur. Dort gehst du an einer bestimmten Position. Und dann können wir uns diese Klasse tatsächlich ansehen, was es ist, was macht sie? Werden Sie auch diesen Import los. Und dann geht's los. Insgesamt in dieser Klasse können Sie das Struktur-Feature der Puzzle-Konfiguration sehen . Das ist eine Art Boilerplate-Code. Sie können sehen, dass es viele Kommentare gibt , die ich in Ihrer Freizeit wärmstens empfehlen kann. Gehen Sie durch, lesen Sie alle Kommentare. Versuche einfach ein bisschen zu verstehen, was es sagt. Die ewigen Ideen, dass Sie hier zwei verschiedene Methoden haben, diese Feature Truck mit ihm und deklarierten Teilen. Der Generator und der Creed-Pizza-Generator sind wirklich das, was für uns am interessantesten ist. Sie können im zukünftigen Kofferraum sehen, wir überprüfen im Grunde nur, hey, ist dieser Teil der eigentliche Teil, wo dieser platziert ist? Grob gesagt empfehle ich, wie gesagt, alle Kommentare durchzulesen. Es ist sehr empfehlenswert. Aber dann können Sie im Creative Pieces Generator hier sehen, was wir hier im Grunde tun. Das ist interessant, oder? So bekommst du die Trunk-Koordinaten in einen Blogbeitrag. Das wird also das sein, was es tut. Und dann platzieren wir es hier im Grunde 60 Blöcke über dem obersten Land. Sie können also sehen, dass es so ist. Sie können in dem Kommentar hier sehen, wir werden die WG am obersten Wasser anhalten , damit wir unsere Struktur nicht versehentlich in den Ozean stecken. Und dann bekommst du im Grunde genommen die Y-Koordinate der Spitze des Landes, und dann addieren wir 60 hinzu. Dies ist also eine Möglichkeit das Y-Level grundsätzlich zu ändern. Und dann können Sie auch genau hier sehen, wir haben für jeden der verschiedenen Parameter , die wir hier einsetzen, den, was hier im Grunde passiert . Es ist wirklich gut gemacht. Ich kann Ihnen nur empfehlen, wenn es eine gewisse komplexe Sache gibt , die Sie tun möchten, lesen Sie die Kommentare durch, die hier hinzugefügt werden , und dann wird es Ihnen gut gehen. Jetzt ist das eigentlich der gesamte Code, den wir brauchen. Dies ist sehr interessant , da der Rest alles mit JSON-Dateien erledigt wird . Wir werden im Grunde wieder zum GitHub zurückkehren und das alles schließen und dann sind wir hier in den Ressourcen. Das, was wir brauchen, ist im Datenordner, wir müssen hier tatsächlich eine Menge Sachen öffnen. Wir müssen dieses Zeug und dieses Zeug hinzufügen. Wenn wir unsere Struktur zu diesem Tag hinzufügen, können Sie sehen, dass microbe einige konfigurierte Struktur-Feature-Tags hat , die bei Verhalten sind. Und dann wird es im Grunde genommen einem Locator hinzugefügt. Wir strukturieren die Fotografen, Dorfbewohner, Ozeankarte, Denkmalkarten. Dies ist nicht unbedingt erforderlich. Es ist einfach eine interessante Sache. Wir werden diesen nicht wirklich umsetzen. Wir werden es einfach ignorieren und wir werden nur an dem Datenordner für unseren eigenen benutzerdefinierten Ordner interessiert sein . Dies ist natürlich ein Strukturunterstrichen-Tutorial oder die Mod-ID-Stunden, wird Mc-Kurs sein. Und dann öffnen wir alle drei dieser Ordner. Und dann können Sie sehen, dass die Strukturen hier NVT-Daten sind. Das ist sehr interessant. Die NVT-Daten werden also grundsätzlich innerhalb der Zeit anstelle von Minecraft generiert . Sie bauen also Ihre Struktur auf, verwenden Sie bestimmte Blöcke, um sie vorerst zu erzeugen. In dieser Vorlesung nehmen wir diese NVT-Daten auf und kopieren sie einfach. Und dann müssen wir tatsächlich ein kleines bisschen in den NVT-Daten ändern , aber keine Sorgen. Das werden wir in einem Moment sehen. Vorerst werden wir im Grunde alle vier herunterladen. Also gehen wir einfach hier rein, öffnen sie alle und laden dann herunter, downloaden , herunterladen und herunterladen. Und Sie können sehen, dass sie sich unter Data Mart ID-Strukturen und dann der eigentlichen Datei befinden. Was wir also tun werden, ist in unserem Datenordner, MC natürlich, wir werden ein neues Verzeichnis namens Structures erstellen, und dann füge ich sie alle hinzu. Ich werde es einfach so machen. Da gehst du. Genau wie sie in diesen Ordner ziehen. Ich meine, an dieser Stelle sollte ziemlich selbsterklärend sein. Wie man einfach Sachen hinzufügen kann, folgt hier, indem du sie einfach hineinziehst. Und dann haben wir die NVT-Daten genau hier. Das ist also richtig gut. Und das ist der erste Teil. Und jetzt müssen wir hier wieder wechseln. Wir können das alles hier loswerden. Da gehst du eine Stunde hier in den Tags world genbiom hat eine Struktur. Das ist also ein wirklich cooles Tag , das wir hinzufügen werden. Und das ist ehrlich gesagt wirklich verdammt cool, denn man sieht vor allem die Sky Fan Biome hier. Und dann gibt es auch das JSON-Haus. Das einzige JSON-Haus, wenn Sie sich in unseren Strukturen erinnern, die wir hatten, hatten wir nur die Himmelsstrukturen genau hier. Es wird kein Haus erwähnt. Genau. Das sage ich. Sie können bestimmte Strukturen tatsächlich hinzufügen , ohne überhaupt Code zu haben. Diese DJs und hören nur Haus. Dies wird es uns im Grunde ermöglichen, dies zu tun. Ich werde es tun, dass ich sie einfach beide besitzen werde. Was ich dann mache, ist, dass ich den Namen hier kopieren werde , weil das ein bisschen einfacher ist. Und das war ein Tag in unserem MC-Kurs, Holdup-Tags. Und das unter dieser Unterwelt Jen. Und statt hier wird das unter Biom sein. Und dann noch eine Struktur, ein weiteres Verzeichnis, das als Unterstrich-Struktur bezeichnet wird . Und dann können wir die Datei hier hinzufügen, diese 1. zuerst. Und dann bekommen wir auch die zweite, den Namen auch hier, eine neue Datei. Los geht's, Jason hat nur Biome und Sie können den Inhalt sehen , wenn ich das kopiere. Das ist also die Codestruktur Skype und Biome. Sie können sehen, dass diese Biomsteuer angibt, welche Biome tatsächlich darin beginnt. Sie können es entweder mit Biom-Tanks mit einem Hashtag starten oder ein bestimmtes Biom wie dieses angeben. Es ist echt verdammt genial. Auf diese Weise können Sie grundsätzlich angeben, in welche Biome diese bestimmte Struktur spawnt, aber auch den Inhalt dieser Struktur kopieren. Sie gehen. Ohne das. Natürlich gehst du da. Und die gesamte Saccharose auch im GitHub Repository im verfügbar ist, genauso gut. Mach dir keine Sorgen. Ich denke jedoch wirklich, dass es das Beste ist, wenn Sie dieses Struktur-Tutorial einmal und dann vielleicht sogar einmal alleine durcharbeiten dieses Struktur-Tutorial einmal und dann vielleicht sogar einmal alleine durcharbeiten , nur damit Sie jeden einzelnen Teil im Grunde kennen. Man kann also grundsätzlich sagen, dass dieses Biom-Tag der Welt eine Struktur hat und verwendet wird, um die Biome zu spezifizieren , in denen unsere Strukturen laichen. Aber wir können das jetzt auch schließen. Und dann können wir mit dem nächsten fortfahren , das die Weltgenschaft ist. Es gab diesen Ordner, also werden wir das auch schließen. Und dann sieht man, dass es hier vier verschiedene Ordner gibt. Wieder einmal, alle wirklich verdammt interessant. Also werden wir einfach den ersten öffnen und wir werden uns im Grunde damit befassen. Wir können sehen, dass wir hier die Codestruktur Sky Fundraising und das angrenzende einzige Haus für das konfigurierte Struktur-Feature haben. Noch einmal kopiere ich den Namen genau hier und wir werden es uns ansehen. Daten sind also noch idealere Unterwelt und dann konfigurierte Strukturfunktion, wir werden ins Herz gehen. Das ist also unter den Tags, also sehr wichtig, dass Sie das nicht versehentlich hier platzieren . Unter dem EMC Kursordner. Wir wollen tatsächlich einen neuen Ordner namens world gen, sich dann unter Ihren Tags befinden sollte. Stellen Sie also sicher, dass dies korrekt ist, nicht innerhalb dieses Ordners. Stellen Sie sicher, dass dies der Fall ist, Sie haben zwei davon. Du siehst X Gen. Dieser hat er Struktursachen. Und dann ist dieser World-Gen-Ordner anstelle Ihrer mehr ID für Ihren MC-Kurs voll von sehr, sehr wichtig, dass es dort einen Unterschied gibt. Bitte stellen Sie sicher, dass dies korrekt ist. Statt dieser Welt Gen Follow können wir uns tatsächlich alle vier verschiedenen ansehen. Die Dinge, die wir brauchen, machen wir es einfach für einen Moment so. Wir werden also nur sagen, dass dies die konfigurierte Unterstreichungsstruktur ist. Und dann werden wir das einfach hier drüben kopieren. Wir werden sagen, dass dies die Prozess- oder Unterstrichenliste ist, und dann werden wir diese kopieren. Dies ist der eingestellte Strukturunterstrich. Und nicht zuletzt haben wir auch den Vorlagenunterstrichen-Pool, der natürlich sicherstellt, dass alle diese korrekt geschrieben sind. Und dann können wir mit der konfigurierten Strukturfunktion genau hier fortfahren . Und wir werden da einfach noch einmal reingehen und diesen Namen sagen, genau hier. Ich mache eine neue Drazen-Datei. Wir klicken mit der rechten Maustaste auf neue Datei und nennen sie so. Da gehst du. Und dann kopiere den Inhalt davon. Und dann werden wir sehen, wo die ersten Dinge sind, die wir hier tatsächlich ändern müssen. Und wie Sie sehen können, gibt es wieder viele Kommentare, keine Sorgen. Diese Pfeile können Sie übrigens in den JSON-Dateien ignorieren , weil sie immer noch arbeiten werden. Und so gibt es keine Sorgen. Sie können im Grunde sehen, dass wir hier einige Überschreibungen haben, was bedeutet, dass, hey, diese besonderen Monster könnten in dieser Struktur spawnen, Sie können sehen, welche Mobs im Laufe der Zeit in der Struktur spawnen können . Das ist auch hier sehr interessant, wenn echtes Land am Boden einer Struktur sein wird, die auf dem y-Wert des Stücks basiert. Das ist auch etwas , das du tun könntest. Dieser hier ist das Tag. Dies müssen wir dieses Tag genau hier angeben. Dies ändert sich natürlich an unserer Modell-ID und hat dann Strukturen ist das Gleiche und dann ist dieser Name dasselbe wie dieser. Also müssen wir dies nicht ändern. Der Pfad zur schlechten JSON-Datei der Vorlage muss natürlich auch MC-Kurs sein. Dies ist angrenzend, das wir in einem Moment unter dem Vorlagenpool hier hinzufügen werden. Und dann ändern wir hier auch diesen Namen in MC Course Sky Structures. Sehr wichtig, dass Sie mit diesem Namen die Basisstrukturklasse sehen können , die für das Verhalten der Struktur verwendet werden soll. So können wir in den Mod-Strukturen genau hier sehen, dies ist der Name der Himmelstrukturen und dann ist es das, worauf es es basiert. Dies ist jedoch im Grunde die Verbindung zwischen dieser JSON-Datei und dieser Struktur, hauptsächlich wie diese Strukturklasse hier. Denken Sie also auch daran, dass Sie das Typjahr richtig geschrieben haben , wenn es um das JSON-Haus geht , oder? Wir werden den Namen einfach noch einmal kopieren. Wir werden das in denselben Ordner legen, eine neue Datei genau hier. Los geht's und dann wird der eigentliche Inhalt noch einmal kopiert. Da gehst du. Und dann müssen wir uns auch noch einmal ändern, da dieser MC-Kurs sinnvoll sein sollte. Und dann ändern wir dies auch auf MC-Kurs. Dies wird nach einer JSON-Datei im Template-Unterstrichen-Pool suchen , in der wir diese im Grunde genommen in nur einem Moment hinzufügen Abgesehen davon kann der Rest bleiben. Zum Beispiel können Sie sehen, dass es eine Illusion oder einige Plünderer und einige Eltern gibt , die hier drin spawnen könnten. Das ist wirklich interessant. Wir werden dann weitermachen. Jetzt haben wir das konfigurierte Struktur-Feature verwaltet das konfigurierte Struktur-Feature und können uns dann die Prozessorliste ansehen. Das ist auch eine sehr interessante Sache. Wir können das einfach basierend auf Akten direkt hier bekommen. Lassen Sie es uns einfach überschreiben und wir werden es uns darin ansehen . Dies ist die Prozessorliste, eine neue Datei, die als zufällige Mäuse bezeichnet wird bricht Grayson nicht. Und das ist sehr interessant. Also füge ich das ein. Und Sie können sehen, dass dies eine ist, das ist im Grunde eine Regel und was es tut ist, dass es eine bestimmte Sache ersetzt. Sie können also sehen, dass der Block, den wir suchen, der Steinstein ist. Und dies hat eine Chance von 50%, dass der gefundene Steinstein durch verschiedene Dinge ersetzt werden kann . Zum Beispiel. Und Sie können sehen, ob wir einen Steinbruch finden, dann besteht eine Chance von 5% , ihn durch ein Smaragd ODER zu ersetzen, und hier können Sie sehen, dass eine Chance von 50% besteht , ihn tatsächlich durch einen befallenen Steinziegel zu ersetzen. Und dann können Sie hier unten sehen, ein paar tiefe Schiefer mit einem Wert von 10% oder einer Wahrscheinlichkeit von 10% mit einem Deep State Redstone oder so ersetzt werden könnten Wert von 10% oder einer Wahrscheinlichkeit von 10% mit einem . Das sind einige sehr interessante Beispiele für im Grunde eine dieser interessanten Regeln, die wirklich verdammt interessant ist, was Ihre Strukturen genau so mehr machen kann, naja, ich meine das mehr interessant, wenn Sie dann bestimmte Blöcke unter bestimmten Bedingungen ersetzen können, grundsätzlich mit einer gewissen Wahrscheinlichkeit es sich hier um andere Blöcke handelt. Das ist echt cool und echt genial. Das ist also definitiv etwas, mit dem man auch in Ihrer Freizeit ein bisschen herumspielen kann. Aber das wurde auch hinzugefügt und wir werden in nur einem Moment sehen, wo das verwendet wird damit wir dies auch schließen können. Und dann öffnen wir uns einfach für die Struktur, die im Vorlagenpool festgelegt ist. Beides kann man noch einmal sehen, die Struktur ist festgelegt. Wir haben zwei JSON-Dateien, eine für jede unserer verschiedenen Strukturen noch einmal. Also werden wir diese Jason-Akten auch einfach lesen. Lies das hier. Da gehst du. Und dann kopiere ich den Inhalt hier. Wieder einmal, los geht's. Dieser ist also eine der, naja, ich würde sagen, dass dies eine der einfacheren JSON-Dateien ist. Ich würde sagen, ich ändere einfach den Namen hier. Und dann sollte das natürlich, in diesem Fall die Struktur hier, hier in diesem Fall die Struktur hier, hier nach dieser JSON-Datei suchen , wenn ich mich nicht irre. Und dann ist die Platzierung hier eigentlich sehr wichtig. Also das Salz hier, du kannst es sehen. Stellen Sie sicher, dass dies einzigartig ist und mit keinem anderen Salz übereinstimmt. Ansonsten wird es passieren, dass sie selben Ort platziert werden, was wir natürlich nicht wollen. Und Sie können die durchschnittliche Distanzunterstützung in Chunks sehen. Und dann hier ist dies der Mindestabstand von Ihrem Kofferraum entfernt. Dieser muss also immer kleiner sein als dieser. Es ergibt Sinn. Und dann wählen wir hier im Grunde nur einen zufälligen Spread aus. Dies ist auch ratsam , um es so zu behalten. Und das ist so ziemlich genau das, was wir brauchen. Ohr. Und was wir dann brauchen, ist normalerweise auch der Fall. Wir werden auch dazu kommen, sie vor und dann der Name hier, also neue Datei und dann einfach über den Inhalt kopieren. Und Sie können sehen, dass sich das hier wieder ändert. Sie sind schon her. Und Sie können sehen, dass dieses Salz hier anders ist als dieses Salz. Noch einmal empfehlen Sie dringend, wenn Sie Ihre eigene benutzerdefinierte Struktur hinzufügen. Wenn wir die benutzerdefinierten Strukturen in den nächsten beiden Vorträgen hinzufügen , werden Sie sehen , dass wir auch das Salz ändern werden. Sehr, sehr wichtig. Ansonsten ist dies eine ziemlich einfache JSON-Datei. Dieser zeigt erneut auf, zeigen Sie auf das konfigurierte Struktur-Feature genau hier. Das Letzte, was wir brauchen, ist der Vorlagenpool. Das werden also genau hier die JSON-Akten sein. Also werde ich das schließen, dies und das. Sie können sehen, dass wir die einzelne angrenzende Datei hier haben und wir haben zwei JSON-Dateien für das Haus. Wir werden einfach zuerst den Sky Fan benutzen. Das wird genau hier drin sein. Also Skype über Jason und dann kopiere ich das auch. Da gehst du. Und du könntest sehen, was hier passiert ist, dass ich zuerst im Namen hier ändern werde. Das ist also eigentlich nicht unbedingt notwendig, denn ich glaube, dass der Name hier ist, es ist so ziemlich der Name des Vorlagenpools selbst. Ich glaube nicht, dass dies hier wirklich geändert werden muss , nicht 100% sicher, aber Sie können auch sehen, dass es hier einen Link für die JSON-Datei A Template Pools gibt. Empfehlen Sie dringend, dies auch zu überprüfen. Dies ist natürlich auch hier verbunden , also gibt es keine Sorgen. Und dann siehst du, nach welchen Elementen wir suchen? Nun, wir suchen nach dem achten Platz. Wieder einmal muss das Struktur-Tutorial auf MC-Kurs wechseln , den Sky Fan. Nun, wie Sie sehen können, ist der letzte Pfad Ressourcen Datenstruktur Tutorial in unseren Fällen MC-Kurs, Es ist Strukturen heruntergeklappt, linkes Haus, linke Seite MVT. Das stimmt natürlich nicht ganz. Dies sucht nach Sky Underscore Fan, NVT, Sky Fan, und dann ist dies genau hier, Skype und MET unter dem EMC Kursstandort. Dies ist, wo es sucht. Und dann ist dieser auch sehr interessant. Sie können sehen, dass wir den Prozessor genau hier hinzufügen , der MC-Kurs, randomisierter Stein, Ziegel. Dies ist genau diese JSON-Datei hier, also wird diese eigentlich nicht benötigt. Dies ist sozusagen nur ein zusätzlicher Bonus. Und Sie können sehen, gibt die Prozessorliste an und wendet sie dann im Grunde genommen auf die NVT-Datei an, wenn Sie sie in der Welt platzieren. Und dann ist es da. Sie können sehen, dass Prozessorlisten sich hervorragend eignen Blöcke zu randomisieren und Strukturen natürlicher erscheinen zu lassen. Wirklich verdammt genial, Wirklich cool und insgesamt nicht zu verrückt zu benutzen. Wieder einmal ist dies eines dieser Dinge, bei denen es natürlich genau das hinzuzufügen, was etwas schwierig sein könnte, genau das hinzuzufügen, was Sie wollen. Aber insgesamt ist es immer noch eine wirklich coole Sache, sich im Grunde anzusehen, sich umzuziehen und mit ihm herumzuspielen, oder? Das wird also der Himmel-Fan sein. Und jetzt werden wir das heruntergekommene Haus machen. Sie können sehen, dass es einen Site-Pool und einen Speicherpool gibt. Wir werden im Grunde beide in der Nähe sein, werden nur zuerst zum Site-Pool kommen. Und das ist in einem neuen Ordner genau hier, der als Run Underscore down underscore house bezeichnet wird . Und dann werden wir eine neue Datei namens „ Dot Underscore-Pool“ haben , Jason. Und wir werden bisher auch eine Basis haben , die als Site-Unterstrichen-Pool bezeichnet wird, dot dot js unterstreichen und tatsächlich Poole-Seitenunterstrich zitieren, der nebeneinander getäuscht wird. Da gehst du. Dies ist der Site-Pool JSON, und dann ist dieser hier der Startpool Jason, warum brauchen wir zwei von ihnen? Nun, das eigentliche heruntergekommene Haus Ist eine Puzzlestruktur, was bedeutet, dass es zwei verschiedene Teile davon hat. Du hast eine linke Seite, genau hier. Wir werden das noch einmal in MC-Kurs ändern. Dies ist das heruntergekommene Haus linke Seite, das auf diese, diese NVT-Daten genau hier, heruntergekommenes Haus linke Seite und den Seitenpool hinweist diese NVT-Daten genau hier, . Sie können sehen, dass wir hier tatsächlich eine Liste von Elementen haben , die unterschiedliche Gewichte haben. Und es deutet grundsätzlich auf zwei verschiedene NVT hin. Und Sie können sehen, dass eine Wahrscheinlichkeit von 50% besteht den Goldrauf anstelle des regulären zu laichen. Das ist die Idee hier. Und wir werden ein Beispiel dafür sehen, die benutzerdefinierte Puzzle-Struktur , die ich auch machen werde. Natürlich wieder einmal, die MOD-ID genau hier zu ändern, was sehr wichtig ist. Und dann können wir hier einfach die Modus-Idee ändern. Ich denke nicht, dass es unbedingt notwendig ist, aber wir werden es einfach auch machen, nur damit wir es haben. Sie können also sehen, dass es hier viele bewegliche Teile gibt. Ich werde jedoch noch einmal zusammenfassen, weil es tatsächlich noch eine Sache gibt, die wir ändern müssen , denn so wie es gerade aussieht, wird dies tatsächlich nicht zu 100% funktionieren. Das heruntergekommene Haus wird eigentlich nur eine linke und rechte Seite spawnen, denn in diesen MPT-Daten wird die falsche Monodie gespeichert. Wir werden sehen, wie wir das in einem Moment beheben können. Aber lasst uns zuerst mit all dem Zeug zusammenfassen , das wir gemacht haben. Wir haben zwei verschiedene Strukturen hinzugefügt. Wir haben die Himmelstruktur auch mit etwas Code hinzugefügt, hauptsächlich die Sky Structures Klasse hier, die an bestimmte andere Funktionen verwendet werden kann , die nicht nur über die JSON-Dateien. Hauptsächlich können Sie diesen hier sehen, wo wir die tatsächliche Y-Position dieser bestimmten Struktur und einige andere Dinge angeben die tatsächliche Y-Position dieser . Aber was wir auch getan haben, ist, dass wir auch eine Struktur rein mit JSON-Dateien erstellt haben. Und Sie können für diese Struktur sehen, die wir brauchten. 12345 verschiedene Jason-Dateien, die sich natürlich alle an den richtigen Orten befinden müssen und alle miteinander verwandt sind. Denken wir eine Sekunde darüber nach. Es ist also am besten, hier wahrscheinlich mit dem Speicherpool zu beginnen , da der Store-Pool auf die NVT-Datei verweist. Dies ist die NVT-Datei hier in, unter Ihrem Datenordner Mod-ID-Strukturen in VT. Und das wird genau hier im Sternenpool referenziert. Während der Store-Pool nun auf seinen Star Plus verweist, der in der konfigurierten Struktur-Feature-Class hier referenziert wird . Wir können also sehen, dass dies der Store-Pool ist, auf den verwiesen wird. Sie können sehen, dass dies die Konfiguration dieser bestimmten Struktur ist , und dies wurde referenziert, während auch das Biom Jason Dies ist die unter der Steuerwelt, Jin Biom hat Struktur. Nur Jason Wie sind die Biome, was im Grunde schnell bedeutet in welchen Biomen kann diese Struktur spawnen? Dies erklärt diese Verfolgungsjagd ziemlich genau und folgt hier, diese JSON-Datei wird verwendet, um die Welt tatsächlich hinzuzufügen, wobei im Grunde die Struktur der Welt hinzugefügt wird, in der diese Struktur festgelegt ist. Sie können in diesem Kommentar hier sehen dass es im Grunde eine dieser Strukturen auswählen wird. Ich meine, in diesem Fall gibt es nur eine Struktur. Man könnte theoretisch bei mehreren Strukturen eines nicht irren, da dies hier als diese bezeichnet wird. Ich bin mir dabei nicht 100% sicher, aber ich denke, dies sollte sich auf diese spezielle JSON-Datei beziehen , die sich natürlich auf den Store-Pool und auch auf die Biome bezieht . So sind sie irgendwie miteinander verknüpft, genau dann für den Site-Pool. Aber weil dies eines dieser interessanten Dinge ist, liegt der Zyklus wieder daran, dass wir den Stichsägeblock verwenden. Ich kann es wärmstens empfehlen, wenn dies ein wenig verwirrend mit einem Psych-Pool für Sie ist . Das werden wir in der sehen, wenn wir in den nächsten Vorträgen in nur ein bisschen über die Puzzlespiele sprechen . Und das ist es. Es gibt also einige bewegliche Teile. Noch einmal empfehle ich dringend, dass Sie sich diese Vorlesung möglicherweise zweimal ansehen müssen. Es gibt keinen Weg damit umzugehen. Strukturen können ziemlich kompliziert sein. Sobald Sie sie jedoch eingerichtet haben, Hinzufügen weiterer Strukturen ist das Hinzufügen weiterer Strukturen tatsächlich sehr, sehr einfach. Die alles hier ist eingerichtet. Ich empfehle, nichts zu viel zu ändern, ändert im Grunde Ihre MOD-ID, diese Ahmad-ID in Ihre Modell-ID, und dann sollte es das sein, oder? Weil das im Grunde alles ist , was wir vorerst brauchen , werden wir eine neue Welt erschaffen, sehen, ob die Spawns, und dann werden wir sehen, dass wir müssen ändern Sie noch eine Sache, die ziemlich einfach zu ändern sein wird. Aber mal sehen, ob es funktioniert. Denken Sie auch daran, wenn Sie diese Strukturen erstellen, werden Sie dies erhalten, dass die weltweiten experimentellen Einstellungen nicht unterstützt werden. Es ist einfach was es ist. Sie können einfach auf Weiter klicken. Es ist meins. Sieht vielleicht ein bisschen anders aus, wenn Sie sich einer Welt anschließen , die bereits existiert. In diesem Fall schuf dies eine neue Welt. Es gibt im Grunde keinen Weg damit zu umgehen. Das wird auftauchen, aber es gibt keine Sorgen. Man kann es grundsätzlich ignorieren. Sag einfach weiter und los geht's. Ordnung, wir befinden uns also in Minecraft und Sie können sehen, dass eine dieser Strukturen hier bereits erfolgreich hinzugefügt wurde, und es gibt noch eine andere. Sie sind vielleicht ein bisschen zu nahe. Aber zuallererst können Sie sehen, wie die tatsächliche Struktur laichen wird. Man kann auch sehen dass einige bereits hervorgebrachte Leute hier wie Mobs sind. Und was dann auch wirklich interessant ist, können Sie die Ersetzungen genau hier sehen. Sie können sehen, dass einige der Steine ausgetauscht wurden und Sie sehen , dass einige von ihnen auch befallen sind. Das ist echt cool. Es besteht also natürlich eine Chance von 50% , dass sie investiert werden. Und dann werden einige von ihnen auch durch das Smaragd-ODER ersetzt , und dann sieht man, dass ein Teil davon auch durch Redstone ersetzt wird . Alles, das ist echt cool. Das war das Ersatzzeug, das erledigt wurde. Und du kannst sehen, dass sie es sind, sie laichen. Dann das andere, das Haus, sollten wir es tatsächlich sehr, sehr schnell finden , weil es wie alle paar geboren wird, es gibt tatsächlich schon ein Haus. Und was Sie finden werden ist, dass es irgendwie wie ein halbes Haus aussieht, oder? Ja. Das sieht aus wie ein Halbhaus, weil es eigentlich nur ein Halbhaus ist. Du kannst sehen. Zuallererst gibt es auch hier einige hilfreiche Hinweise. Empfehlen Sie dringend , diese auch auszuchecken. Aber Sie können sehen, dass Sie es sind, der Puzzleblock wurde hier tatsächlich ersetzt und nun, das Problem ist, dass das eigentliche Modal, mit dem er nicht übereinstimmt. Um das zum Laufen zu bringen, werden wir uns einfach etwas Distanz und etwas Platz besorgen . Grundsätzlich. Lasst uns eigentlich einfach rüberfliegen Hier geht's. Dies sollte hoffentlich genug Distanz sein. Und was wir dann brauchen, müssen wir uns den strukturellen Block hier geben , diesen. Und dann legen wir es einfach fest und klicken wir mit der rechten Maustaste. Jetzt wird der Name der Struktur hier strukturiert sein Name Jahr wird MC Kurs Doppelpunkt sein , linker Unterstrich , Unterstrich unten Unterstrich unterstrichen, linke Unterstrich Seite, denke ich dann es wird nicht hier vorne rechts bleiben. Der Name hier sollte genau hier dieser Name sein. Lassen Sie uns einfach mit der rechten Maustaste auf Refactor Umbenennen klicken, kopieren Sie dies. Das wird ein bisschen einfacher. Da gehst du. Es ist tatsächlich das und wenn ich jetzt genau hier geladen werde, sollte es das laden. Und dann könnte ich wieder laden, und dann spawnt es tatsächlich das Haus. Sie werden jetzt genau hier sehen können , das ist der Stichsägenblock. Und Sie können hier sehen, dass es tatsächlich nach diesem Site-Pool sucht , den wir ändern müssen. Ich muss das auf MC-Kurs ändern, sagen wir fertig. Dann wollen wir auch den anderen Teil des Hauses. Wir wollen eigentlich auch den anderen Teil des Hauses. Was ich tun werde, ist, dass ich das hier drüben kopieren werde . Also genau wie Control a, um alle Steuerelemente C auszuwählen , um das Steuerelement V zu kopieren, um es einzufügen. Und dann wird das die richtige Seite sein. Wenn eine Ladung ist, und dann werden wir wieder laden. Und hier findest du den anderen Puzzleblock. Klicken Sie mit der rechten Maustaste auf diesen. Wir möchten den Namen hier in MC Kurs rechts fertig ändern . Sie möchten den Namen hier in MC-Kurs auf der rechten Seite ändern . Fertig. Und was wir dann auch tun wollen, nur damit wir alles haben. Wir wollen ein anderes Haus spawnen. Das wird die richtige Seite sein, goldene, glaube ich, rechte Seite. Also wird es richtig sein. Wenn Sie Unterstrichen-Site-Unterstrich schreiben, golden. Da gehst du. Zieh das und lade es dann. Und da gehst du. Nun, das ist die goldene Stätte, nur ein paar goldene Schlösser drin haben wird. Und dann wollen wir hier auch den MC-Kurs ändern, also zu unserer Model-ID, ja, und dann wird es uns gut gehen. Was wir jetzt tun müssen, ist, dass wir die NVT hier tatsächlich speichern müssen . Wieder einmal ist dies ein bisschen das, was die FREC wiederholt. Mach dir darüber keine Sorgen. Dies ist im Grunde das, was wir tun müssen , damit dies richtig funktioniert. Sobald wir dies getan haben, werden wir in den nächsten beiden Vorträgen wirklich durchgehen, wie wir das ganz normal machen können. Also werden wir eine benutzerdefinierte Struktur erstellen. Wir speichern die benutzerdefinierte Struktur. Und ich werde ein bisschen detaillierter erklären was wir hier im Grunde tun. Wenn du dem nicht folgen willst, dann ist das natürlich auch in Ordnung. Aber im Grunde gibt es einige sehr einfache Dinge, die Sie tun müssen. Jetzt, nachdem wir den Puzzleblock gewechselt haben, werden wir hier in den abgesicherten Modus gehen . Wir möchten sicher sagen, dann können Sie sehen, dass es jetzt gespeichert wurde und das Gleiche gilt für die anderen beiden sind abgesichert. Gehen Sie auch hier in den Sicherungsmodus abgesichert, und dann sind wir fertig. Wir können jetzt tun, dass wir aus Minecraft raus können. Wir werden einfach von hier verschwinden. Und dann werden die NVT-Daten im Ordner R1 unter „Speichern“ gespeichert. Wo auch immer Sie haben, dies war das Vergessen Sie nicht, die Welt zu überprüfen, und dann sollte dies unter generiert werden. Und Sie können alle drei NVT-Daten genau hier sehen. Wir werden das tatsächlich genau hier rüberbringen . Und wir werden Override für alle sagen. Jetzt wurden die NVT-Daten hier mit unseren MOD-IDs überschrieben. Und wenn ich jetzt wieder anfange, mach eine neue Welt, dann werden wir sehen , dass das Haus wie zuvor komplett finden werden, anstelle des linken Hauses oder des anderen Teils des Hauses. Also das Haus, wir haben diesen Puzzleblock, der tatsächlich nach dem Site-Pool unter der Struktur suchte tutorial mod ID, was natürlich nicht korrekt ist. Mal sehen, lass uns tatsächlich eine neue Welt erschaffen. Hier. Es wird der Strukturtest sein. Struktur-Tests. Das wird gut werden. Eine Rate von Welt. Wieder einmal werden wir das bekommen, du hast die Einstellungen der Weltgeneration und des Experiments geändert . Das wird gut werden. Wir werden einfach auf „Fortfahren“ klicken und dann warten wir einfach, bis es fertig ist. Und dann werden wir sehen , ob unsere Struktur vollständig ist oder nicht. Okay, wir befinden uns in Minecraft, also lasst uns einfach sehen, dass es ist, und Sie können bereits feststellen, dass die Struktur jetzt abgeschlossen ist. Nun, lass uns einfach hier rein gehen und mal sehen. Sie können sehen, ob wir reingehen, du wirst dort finden, dass du gehst. Dies ist sogar die goldene Variante davon. Dies ist die richtige Seite für das Ziel und dann sollten wir nicht weit fliegen müssen um ein anderes Beispiel dafür zu finden. Das ist also erstaunlich, dass die Weltgeneration fantastisch aussah. Obwohl wir ziemlich schnell ein anderes Haus finden sollten . Normalerweise sollten sie nicht zu weit voneinander entfernt spawnen . Mal sehen, Es gibt noch eine andere, so dass Sie deutlich sehen können, dass sie nicht so selten sind, aber natürlich können Sie das auch sehr leicht ändern. Also lass uns einfach hier rein gehen. Mal sehen, das sollte hoffentlich das normal sein? Das ist normal . Da gehst du. Nein, hier kein Ziel. Wir haben auch Sachen in der Brust, und Sie können sehen, dass alles gut funktioniert. Dies ist die grundlegende Struktur die dem Tutorial folgt. Und wenn Sie 115. (1.18.2) Benutzerdefinierte Strukturen (ein Stück): In Ordnung, willkommen zurück zum Futterkurs für 118 und wir befinden uns in Minecraft mit einer bereits gebauten Struktur genau hier. Was ich Ihnen wärmstens empfehlen kann, ist, dass Sie entweder die Struktur kopieren oder einfach Ihre eigene Struktur erstellen können. Und dann können wir im Grunde, nachdem Sie diese erstellt haben, weitermachen. Also gebe ich dir nur ein bisschen Zeit, um deine eigene Struktur zu erstellen. Aber ich hoffe, dass Sie innehalten und einfach Ihre eigene Struktur erstellen. Denn was wir jetzt tun werden ist, dass ich eine MVT-Datei daraus machen werde. Wie machen wir das? Nun, wir müssen uns zuerst den Strukturblock wieder geben. Also dieser hier. Und was wir tun müssen, ist, dass wir es in die Ecken dieser besonderen Struktur platzieren müssen . Was wir also tun müssen, ist, dass wir es außerhalb der tatsächlichen Willensstruktur platzieren müssen . Also müssen wir es genau dort und genau hier platzieren. Und dann auch auf der anderen Seite, an denselben Orten im Grunde genau hier und dann auch hier. Da sind wir los. Was wir jetzt tun wollen, ist, dass wir mit der rechten Maustaste darauf klicken wollen und dann müssen wir uns trennen. Geben Sie zunächst hier einen Namen an. Das wird der MC-Kurs-Dolon sein. also immer Ihren Modell-ID-Doppelpunkt, egal wie der Name ist. Und in diesem Fall wird es das Seetang-Unterstrichenhaus sein. Und dann drücken wir Strg a, um alles auszuwählen, steuern Sie X, um es auszuschneiden , und Control V, um es wieder einzufügen. Das ist im Grunde das, was ich gerade getan habe. Und ich gehe in den Besitzermodus. Sehr wichtig. Wir werden sagen „fertig“, und da bist du ja. Ich mache das Gleiche hier, füge es in den Eckmodus ein, fertig, ein Sit-In, mehr erledigt. Und dann werden wir es tatsächlich einfügen und dann gehen wir in den Speichermodus. Wir möchten dann diesen Erkennungsknopf genau hier drücken. Und es sollte theoretisch die gesamte Struktur erkennen. Sie können also sehen, dass wir im Grunde die Außenseite der gesamten Struktur hervorgehoben haben, was genau korrekt ist. Das wird dir gerettet. Was wir dann tun können, ist, dass wir hier einfach auf die Schaltfläche Speichern klicken können . Und dann wurden diese NVT-Daten gespeichert. Das ist also buchstäblich alles, was wir tun müssen , um einige NVT-Daten zu speichern. Und jetzt haben wir dieses Haus. Was wir jetzt tun können, macht wirklich Spaß, denn das ist bereits gespeichert. Was wir tun sollten, ist einfach woanders zu gehen. Sag, Hey, gib mir dieses Haus. Ich kann das einfach reinlegen, sagen wir Last, und es sollte dieses Haus erkennen. Und dann können wir sagen, lade es wieder und los geht's. Und jetzt kann ich dieses Haus tatsächlich von dort nach hier kopieren , und dann habe ich das tatsächlich schon gemacht. Aber was wir tun wollen, ist, dass wir dieses Haus in einem natürlich gefleckten der Welt nehmen wollen. Was wir also tun werden, ist, dass wir jetzt aus Minecraft zurück zu Intel J gehen und dann im Grunde einige der angrenzenden Dateien hinzufügen , damit wir in diesem Haus, der Welt, spawnen können. In Ordnung, also finden wir uns auf intelligente Weise wieder. Und das erste, was wir tun müssen, ist, dass wir das Haus holen müssen. Das ist also wieder in Ihrem Run-Ordner. Dies sollte genau hier in Ihren Verkäufen sein. Dies sind die Strukturtests in meinem Fall unter generiert. Und dann haben wir hier das Zählhaus NVT. Also ziehe ich das einfach hier hin zu den Strukturen, und dann haben wir das genau dort. Das ist also sehr wichtig. Und jetzt können wir die JSON-Datei grundsätzlich ändern. Was werden wir also machen? Was müssen wir tun? Nun, das erste, was wir tun werden, ist, dass wir dafür die strukturierte JSON-Datei für das Tag erstellen. Dies wird alle verschiedenen Biome einschließen , bei denen wir uns diese Struktur zu klein stellen. Und so werden wir einfach das bereits existierende hier kopieren . Dies wird das Graf- und Unterstrichenhaus sein. Ehrlich gesagt denke ich, dass das gut werden wird. Wir werden nur diese Biome-Stufe übernehmen. Sie können es natürlich auch ändern, wie Sie möchten. Aber ich bin damit wirklich zufrieden und es wird uns gut gehen. Aber das ist der erste. Dies bedeutet nur noch einmal , welche Biome diese Struktur spawnen kann. Und dann wollen wir die konfigurierte Strukturfunktion nur noch einmal bekommen , ich werde das kopieren. Ich ändere das in ein Teppich-Unterstreichhaus. Wir werden diesen Namen jetzt ein paar Mal benutzen. Und hier möchten wir den Startpool auf unser Konto und unseren hausgespeicherten Pool umstellen . Das wird das sein , was wir hier in nur einem Moment hinzufügen werden und hier. Das wird jetzt das Gegenhaus sein. Dieses Biom-Tag bezieht sich auf dieses, das wir gerade hier erstellt haben. Aber keine Sorge. Ich persönlich möchte eigentlich nicht dass hier irgendwelche Monster laichen. Aber was ich will ist, dass ich tatsächlich möchte, dass einige der MC-Kurstiger dort spawnen. Warum nicht? Sagen wir einfach, dass es einen oder zwei Tiger geben wird , die dort sehen könnten. Fügen wir es einfach so hinzu. Das wird sehr interessant sein und sehen, ob es das tatsächlich auch tut. Das sollte so ziemlich alles sein, was wir hier ändern müssen. Dann brauchen wir in unserem Fall keine Prozessorlisten, aber wir brauchen einen Struktursatz. dies erneut kopieren, indem Sie den Namen ändern , um zu bewältigen und zu Hause zu ändern, ändern Sie diesen, um zu Hause zu kommen, was dann auf diese JSON-Datei verweist , die wir zuvor gemacht haben. Sehr wichtig hier, das Salz zu wechseln, das muss ein einzigartiges Salz sein und ziemlich groß. Und dann werden wir den Abstand hier nur ein bisschen mehr Abstand für beide Punkte geben , und das wird gut. Das Letzte, was wir tun müssen, ist, dass wir hier einen neuen Ordner erstellen müssen . Dies wird wieder das CAPM-Unterstrich-Haus sein. Dann wird der Name der Datei hier der Startunterstrichen-Pool sein , der angrenzend ist und dessen Inhalt ich tatsächlich noch einmal kopieren werde, die bereits vorhandene JSON-Datei. Deshalb habe ich gesagt, wenn Sie es einmal eingerichtet haben, ist das Hinzufügen neuer sehr einfach. Was wir hier also tun können, ist, dass dieser ändern muss, um unterstrichenes Haus und dann zu zählen. Wir werden das kopieren und dann noch einmal hier ändern. Und das war's. Wir haben das schon getan, jetzt wird unsere tatsächliche Struktur in der Welt spawnen. Das ist alles, was wir tun müssen. 1234 JSON-Dateien in diesem Fall weil es sich um eine einzige Struktur und eine NVT-Datei handelt, ist dies buchstäblich. Sie haben gesehen, dass es ziemlich einfach ist, sobald Sie es eingerichtet haben, nachdem Sie einige der JSON-Dateien kopiert , ein paar Dinge geändert, einige Dinge optimiert und dann sind Sie ziemlich viel erledigt. Das ist buchstäblich alles , was wir zur Vollendung tun müssen . Mal sehen, ob es funktioniert. Um sicherzustellen, dass alles funktioniert, empfehle ich dringend, für alle Fälle eine neue Welt zu schaffen. Und dann denken Sie natürlich auch daran, dass Sie die experimentellen Welt-Einstellungen erhalten. Wir müssen nur auf Weiter drücken. Das ist nur Gao. Es wird sein, wenn Sie die benutzerdefinierte Welt Jen über die auf Dateien basierenden Daten hinzufügen. Aber das wird gut werden. Lassen Sie es uns generieren und sehen, ob wir unser Buchhaltungshaus in der Welt oder das Haus Ihres Freundes in Minecraft finden können unser Buchhaltungshaus in der Welt oder das . Und da solltest du es schon sehen können. Das Carbon-Haus wurde erfolgreich zu Minecraft hinzugefügt. Und sehen Sie, dass es genau hier ist und es ist perfekt in den Boden gerückt, genau wie wir es aufgegeben haben. Ich zerstöre tatsächlich versehentlich die Tür dort. Das war nicht beabsichtigt. Da gehst du. Aber ja, es ist ziemlich schon hinzugefügt. Wie ich schon sagte, es ist sehr einfach. Sobald du es geschafft hast, einmal. Deshalb habe ich gesagt, Sie sollten das Struktur-Tutorial unbedingt einmal mit der Vorlesung durchgehen das Struktur-Tutorial unbedingt einmal mit der Vorlesung durchgehen , indem Sie im Grunde das GitHub-Repository davon zeigt. Und dann vielleicht einmal alleine, schauen Sie sich einige der Kommentare an. Ich meine, ja. Ich meine, ich weiß nicht mal was ich sonst noch sagen soll, da du das so ziemlich gesehen hast. Es ist sehr, sehr einfach. Es gibt ein paar Dinge , die du ändern kannst. Und jetzt liegt es wirklich nur an Ihnen, Ihre Kreativität bei dem was Sie Minecraft hinzufügen möchten. Mal sehen, ob ich noch eines unserer Lagerhäuser finde . Sie können viele der heruntergekommenen Häuser sehen , die hier darauf hinweisen. Ich möchte noch ein Konto finden House. Mal sehen, ob wir es finden können. Nein, es gibt noch einen anderen, also kannst du sehen, dass du gehst. Insgesamt finde ich also wirklich interessant, aber auch ziemlich einfach. Alles in Betracht gezogen. Ich denke nicht, dass es so verrückt ist und so schwer und gut, ich meine, ja, so einfach ist es Minecraft eine benutzerdefinierte Struktur hinzuzufügen. Aber wie ich schon mehrfach gesagt habe und ich sage es noch einmal. Wenn Sie es eingerichtet haben, sobald Sie es gesehen haben, ist es sehr, sehr einfach, Ihrem Spiel weitere Strukturen hinzuzufügen, und es ist sehr einfach. Jetzt wird wieder einmal, denn die Getränkequelle, die wir uns in der nächsten Vorlesung ansehen in der nächsten Vorlesung werden, wird etwas komplizierter. Aber selbst dann, nachdem Sie ein Beispiel dafür gesehen haben, im Grunde genommen alles eingerichtet haben, werden Sie sagen, dass selbst das fair, sehr vernünftig und ziemlich einfach sein wird , alles in Betracht gezogen, richtig? Aber das wäre es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Oder die JSON-Dateien stehen natürlich auch im GitHub-Repository und einer Einzelperson zum Download bereit . Aber sonst sehe ich dich in der nächsten Vorlesung. 116. (1.18.2) Benutzerdefinierte Strukturen (1.18.2): Alles klar, willkommen zurück zum Forstkurs für 118. Und in diesem Vortrag werden wir uns ein paar Puzzle-Strukturen ansehen . Sie können sehen, dass ich genau hier schon etwas vorbereitet habe, was die Speicherplattform sein wird. Und die Art und Weise, wie das funktionieren wird, ist, dass dies zwei verschiedene Strukturen sein wird, aber es wird als eine spawnen. Die Idee ist also, dass ein Teil der Struktur , der hier im Grunde genommen alles übrig geblieben ist, der Startpool sein wird. Und dann haben wir einen Puzzleblock in der Mitte, dann die richtige Seite hier der Struktur erzeugen wird, die auch sein wird, sagen wir Eisen. Und dann werden wir im Grunde auch eine Variante machen , die vielleicht etwas wie Diamant haben wird und dann sogar eine mit Smaragd. Das ist also die allgemeine Idee. Und dann wird das enden. Wir können es dann mit verschiedenen Gewichten spawnen lassen, so dass, wenn man um die Welt geht, viel davon mit dem Bügeleisen finden muss verschiedenen Gewichten spawnen lassen, so dass, wenn man um die Welt geht, viel davon mit dem Bügeleisen finden , zum Beispiel mit wie, ich weiß es nicht, wie 80% und dann wie 10% der Zeit wirst du den Diamanten finden. Und dann wirst du 10% der Zeit den Smaragd finden, so etwas. Was wir also tun werden, ist, dass wir das richtig einrichten müssen . Was wir also tun werden, ist dass wir es einfach nehmen werden, richtig. Also lasst uns zuerst die Haupt-1 machen. Das sollte also genau hier sein. Also brauchen wir den Strukturblock genau hier. Und dann auch hier. Das sollte in Ordnung sein. Und dann haben wir auf dieser Seite gezeigt, dass wir das richtige wählen Es ist irgendwie so gut, lass uns hier runter gehen. Also los gehst du. Und dann für die Höhe sollte h direkt um dich herum sein , glaube ich schon. Lassen Sie uns das auch noch einmal überprüfen. Das sollte also dieser sein. Da gehst du. Lassen Sie uns die Helferblöcke hier löschen. Und das ist tatsächlich höher, also werden wir einen darunter machen, dass wir die Besitzer bereit haben und dann werden wir es dass wir die Besitzer bereit haben tun, und dann werden wir diese MC-Kursspeicherplattform nennen . Das wird gut werden. Steuern Sie erneut ein, Control X, Control V, damit wir den Namen haben und dies wird der Viertelmodus sein. Und dann werden wir den Eckmodus für jeden von ihnen oder Modus durchlaufen . Da gehst du. In diesen Modus gehen und dann wird dies der abgesicherte Modus sein. Also werden wir diesen abgesicherten Modus machen und dann erkennen. Und dann werden wir wieder feststellen, dass dies jetzt entdeckt wird. Natürlich, was Sie finden werden, ist, oh nein, wir brauchten tatsächlich höher, aber es gibt überhaupt keine Sorge. Was wir tun können, ist, dass wir es einfach aufbauen können. Du bist, lass es uns einfach auf die Höhe aufbauen , die wir brauchen. Genau da. Da gehst du. Und dann werden wir diesen zerstören, was im Grunde genommen das Richtige war , das vorerst bleiben wird. Aber sobald wir es tatsächlich neu geladen haben, sollte es in Ordnung sein. Das sollte also ungefähr diese Höhe sein , ich glaube, das sollte sein. Dann können wir wieder in den Eckmodus gehen, ja, und dann auch diesen löschen. Modus auch mit dem gleichen mit dem richtigen Namen. Und dann können wir es wieder erkennen. Und dann wirst du feststellen, dass das Ego jetzt fertig ist und alles drin ist. Im Grunde ist das eine Sache, die du tun könntest. Du richtest es ein und dann sagst du, Oh, das sind eigentlich ein paar Blöcke außerhalb davon. Ersetze es einfach und los geht's. Jetzt ist das das Wichtigste. Und was wir noch tun müssen, ist, dass wir den Stichsägenblock noch ablegen müssen . Dafür werden wir das Terminal öffnen und der Befehl ist wieder, natürlich haben sie den Befehl oder den Puzzleblock gegeben , diesen hier. Und was wir tun wollen, ist, dass wir uns auf diese Weise stellen wollen. Was wir also wollen, ist, dass es noch drin sein sollte . Da gehst du. Die Pfeile sollten nach außen zeigen. Sie können also sehen, dass sich dies immer noch innerhalb der Struktur befindet und ein Punkt außerhalb der Struktur sein sollte. Und genau hier wollen wir, dass der andere Puzzleblock darauf zeigt. Das sind also die beiden Stichsägeblöcke, die wir wollen. Auf dieser Seite wird ein Name damit verknüpft sein. Das wird also MC Course Colon sein, sagen wir zum Beispiel Site, Plattform, so etwas. Und ich sage, habe diesen Namen genau hier gemacht. Wir werden es kopieren und das wird genau hier der Zielname sein. Und dann wird der Zielpool hier ein MC-Kurs-Doppelpunkt sein. Und das ist der Name der JSON-Datei, die wir eingeben müssen. Dies wird also der Unterstrichen-Pool der Speicherunterstrichen-Plattform sein. Das ist die JSON-Datei genau hier, sagen wir fertig, und jetzt sind diese mehr oder weniger miteinander verbunden. Und das Wichtigste ist natürlich, diese vorerst, denn das befindet sich in dieser Struktur genau hier. Also können wir das jetzt speichern. Wir können dann Save sagen. Und jetzt wurde die Lagerstruktur gespeichert. Wir können jetzt das Ähnliche für die anderen Strukturen tun. Also werden wir das einfach hier machen. Und dann müssen wir nur noch hierher gehen. der anderen Seite werden wir es einfach weitermachen, es ist im Grunde gleichzeitig so dass hier ein weiterer Strukturblock ist, und dann sollten die anderen Strukturbücher hier sein. Das scheint in Ordnung zu sein. Also dann den Namen hier machen wir MC-Kurs Doppelpunkt, Eisenlager, Pflanzenform. Noch einmal kopiere ich diesen Eckmodus oder die Fernbedienung. Und dann hier unten wird dieser abgesicherten Modus noch einmal erkennen lassen. Mal sehen. Da gehst du. Dann wird das jetzt auch erkannt und Sie können jetzt sehen, dass wir tatsächlich beides haben. Und ich empfehle es sehr , es so zu machen. Denn jetzt im Grunde genommen, wenn Sie diese hier für eine andere Varianz sozusagen ändern , und es ist sehr, sehr einfach. Die Namen hier können grundsätzlich bleiben. Das ist also die Seitenplattform und die Seitenplattform. Das ist alles in Ordnung. Wir speichern dies also unter dem eisernen Unterstrich, der unter der Score-Plattform gespeichert ist. Sparen Sie es auf. Und was ich dann tun werde, ist, dass ich das ändern werde und dann speichern wir es unter einer Diamantspeicherplattform und dann auch Smaragd. Ich habe das Eisen hier durch einen Diamanten ersetzt. Und was wir hier ändern wollen, ist natürlich der Name, oder? Dies wird also jetzt die Diamantspeicherplattform sein. Noch einmal, kopiere das, ich sage „fertig“. Und dann werden wir das auch hier ändern. In allen Ecken werden wir es im Grunde auch in einem Moment erkennen können . Wir werden das tun und dann wieder zu diesem zurückkehren, noch einmal entdeckt wurde. Dann wurde jetzt die Diamant-Sortierplattform erkannt, und jetzt können wir sie unter der Durchmesserspeicherplattform speichern . Und dann machen wir das Gleiche auch für Smaragde. Okay, jetzt wurde es durch m-Rollen ersetzt. Also lasst uns den Namen hier noch einmal ändern. Dies wird also die Emerald-Speicherplattform sein. Kopieren Sie es noch einmal und ändern Sie dann die Namen und alle Ecken genau hier. Also nichts zu verrückt. Da gehst du. Und dann lasst uns das nochmal holen. Also lasst uns einfach die handelnde Here, Emerald-Speicherplattform sein und sie dann wieder speichern. Aber jetzt haben wir eine Hauptplattform und sind damit drei verschiedene, sagen wir Varianz der anderen Art von Plattform , die wir spawnen können, verbunden sagen wir Varianz der anderen Art von . Wechseln wir nun wieder zu intelligentem Dich und richten wir dann alles ein. Alles klar, also finden wir uns als Intelligent. Und zuerst lasst uns natürlich die NVT-Daten abrufen. Dies sollte unter den strukturierten Tests stehen. Wenn ich mich nicht irre, gehen wir los. Wir haben also die Speicherplattform und die drei verschiedenen Plattformen. Kopieren wir sie einfach hier noch einmal in die Strukturen. Was wir dann brauchen, ist natürlich die Struktur in ihrer Gesamtheit. Dafür brauchen wir noch einmal die fünf benachbarten Dateien. Wir werden sie einfach kopieren. Dies wird also die Speicherunterstrichen-Plattform und wir müssen diesen Namen ein paar Mal verwenden. Also kopiere es einfach rüber. Noch einmal. Wir bleiben vorerst bei diesen Biomen . Das ist natürlich sehr einfach hier oben zu ändern. Und die konfigurierte Struktur verfügt über Speicherplattform und möchte auf den Speicherpool innerhalb des Halters der Speicherplattform verweisen auf den Speicherpool innerhalb , den wir ein wenig erstellen werden. Und dann ist dies die JSON-Datei der Speicherplattform, die angibt, welche Biome hier verwendet werden sollen. Jetzt will ich eigentlich keinen Richards hier haben. Was ich jedoch festgestellt habe, ist, dass wenn Sie die kleinen Überschreibungen vollständig entfernen , sie tatsächlich einen Fehler erhalten. Ich bin mir also noch nicht 100% sicher, was Sie hier tun müssen um nichts zu bekommen , wo wir einfach tun können, ist so etwas. Also wird es uns gut gehen, dann denke ich nein, hier spawnt nichts. Also wird es uns gut gehen, die Struktur festgelegt. Was wir tun werden, ist noch einmal über das Counterhaus zu kopieren, den Namen hier zu ändern und dann wieder hier den Namen hier zu ändern, damit er auf das Richtige hinweist struktur-Feature. Und dann sehr wichtig hier, die Struktur zu verändern, natürlich das Salz hier und dann den Abstand, den ich ein bisschen mehr machen werde als die minimale Trennung. Und sie sind etwa 12, das wird gut. Und dann kommt es auf das Template-Haus an, das wir einfach über das heruntergekommene Haus kopieren werden. Wir benennen dies in Speicherplattform um. Dann möchten wir dies innerhalb der JSON-Dateien auf eine Speicherplattform ändern. Das ist die rechte Seite, also werden das die drei rechten Seiten sein. Was wir also tun werden, ist, dass ich es einfach lösche, die Kommentare hier. Und was wird dann passieren? Wir sagten, wir wollen tatsächlich noch eine davon. Und dann wird das wahrscheinlich so etwas wie ein Gewicht sein, sagen wir fünf, Gewicht drei, und dann warten Sie auf so etwas. Und das wird die Vier-Unterstrich-Speicherunterstrichen-Plattform sein. Das wird die Autorität haben, die nicht oder Eisen ist. Natürlich gehst du da. Aufbewahrungsplattform aus Eisen Dann nennen wir es kopieren vorbei und das wird die Emerald-Speicherplattform sein . Und dann sagen wir, dies ist die Diamantspeicherplattform, aber dies sollte eine Wahrscheinlichkeit von 50% haben, zu laichen. Dies ist eine Chance von 30% und dies ist eine Chance von 2% bei 20%. Dies ist die verschiedenen Gewichte sollten ziemlich selbsterklärend sein. Es ist im Grunde die Gewichte, wie sie hervorgebracht werden. Dies sollte also der Site-Pool sein und dann für den Speicherpool der Speicherplattform gehen wir hier zum Store-Pool. Das wird natürlich sein, dann die Speicherunterstrichen-Plattform. einmal, Plattform. Da gehst du. Kopiere das hier. Und dann ist dies natürlich die Speicherplattform. Dies ist unser Ausgangspunkt im Grunde genommen NVT-Daten zu starten, in denen der Stichsäge-Block darin enthalten wird, der dann nach dem Site-Pool sucht, den wir gerade im Stichsäge-Block definiert haben vorher. Und das ist buchstäblich alles, was wir brauchen. Und jetzt würden all diese drei unterschiedlichen Abweichungen auch hervorgebracht. Wie ich schon sagte, es ist wieder einmal, sobald es eingerichtet ist, einmal sehr einfach, alles in Betracht gezogen. Lasst uns nun eine neue Welt schaffen und mal sehen, ob wir unsere Speicherplattformen oder Francis in Microsoft in einer neuen Welt finden können unsere Speicherplattformen oder . Und mal sehen, ob wir unsere Speicherplattform nicht finden können. Wir können uns auch einfach so für unseren MC-Kurs befinden . Und das ist die Speicherplattform genau hier. Mal sehen. Also genau hier ist einer von ihnen, mal sehen, los geht's. Einer von ihnen hat in diesem Fall bereits hier mit dem Bügeleisen hervorgebracht . Und Sie können genau sehen, wie wir das Grundsätzliche verlassen haben und das Volumen in den Stichsägenblöcken ebenfalls verschwunden ist , weil sie durch Luft ersetzt wurden. Lasst uns eigentlich einfach woanders HTP finden und sehen, ob wir vielleicht einen anderen von ihnen finden können. Lass uns einfach 20 K oder was auch immer mögen. Und dann gehen sie und dann lasst es uns wieder finden. Lass uns einfach eine, eine andere suchen, eine Plattform suchen und dann mal sehen. Da ist es. Es ist ein anderes mit Eisen. Halley. Nun, ich meine, manchmal funktioniert es so. Lass uns noch eins machen, lass es uns noch einmal versuchen. Diesmal negativ zehn k. Warum nicht? Und dann gehen sie. Und dann lasst uns wieder lokalisieren. Mal sehen, ob dieser etwas anderes als Eisen hat und es auch Eisen hat. Nun, ich meine, es ist eines dieser Dinge, die häufiger vorkommen als die anderen. Es ist einfach das, was es ist. Und auch ich denke , dass wir uns nur bewegen und herumfliegen, nicht zu viele von ihnen begegnen werden , da wir sie ein bisschen seltener gemacht haben als die anderen Dinge, die wir gemacht haben. Das Zählhaus und das heruntergekommene Haus sind in diesem Fall viel häufiger. Aber ja, ich meine, das ist so ziemlich genau das Richtige. Das ist eigentlich noch einmal versuchen , weil ich tatsächlich möchte , dass die anderen Sachen funktionieren. Also lasst uns zu einer 100 gehen, ich weiß nicht , und dann machen wir es minus zehn K hier. Dann machen wir eine andere Locate- oder MC-Kurswortplattform. Mal sehen. Oh, nun, ich meine, das ist auch etwas, das passieren kann, oder? Dies ist also ein sehr seltenes Ereignis. Das passiert also normalerweise nicht , aber Sie können sehen, dass diese beiden Strukturen tatsächlich ziemlich im selben Teil spawnen . Im selben Moment. Deshalb willst du das Salz wechseln. In unserem Fall hatten wir einfach unglaublich Pech. Nehmen wir an, dass sie im Grunde die gleiche allgemeine Umgebung teilten . Das sollte nicht allzu oft passieren, aber ja, ich meine, es kann nicht passieren. Es ist einfach das, was es manchmal ist. Aber Sie können sehen, dass diese in diesem Fall die Smaragd-Variante ist , also funktioniert es definitiv. Und das ist einfach, manchmal passiert das. Es sollte nicht viel passieren. Das sollte also ein ziemlich seltenes Ereignis sein, aber so gut geht es so gut, oder? Und so ziemlich können Sie Ihrem MOD auch einige Puzzle-Strukturen hinzufügen . Alles, was als ziemlich einfach angesehen wird, ist nur noch einmal bei den JSON-Dateien, die Struktur korrekt einrichten und dann die NVT-Daten für diese Struktur abrufen . Aber das wäre es für diesen Vortrag 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. 117. (1.18.2) Benutzerdefinierte 3D-Armor: Alles klar, willkommen zurück zum Futterkurs für 118. In diesem Vortrag werden wir ein 3D-Rüstungsmodell für Kunden oder unsere Kobalt-Rüstung herstellen . Anstatt also unsere Rüstung zu benutzen, die wir vorher haben, also diese in den Modellen genau hier, was dann in 3D überlagert wird. Wir werden tatsächlich ein neues benutzerdefiniertes ARMA-Modell erstellen, das definitiv nicht so gut aussehen wird. Weil ich Ihnen im Grunde nur die Schritte zeigen möchte , die Sie tun müssen um dies tatsächlich zu machen. Aber wir werden dafür sehen, wir werden wieder eine Blockbank in Gecko-Lippe benutzen, ich habe schon die eigentliche Rüstung vorbereitet, genau hier kannst du sehen, dass dies die Blog-Bench-Datei ist. Dies passiert, wenn Sie das Folgende tun, oder? Wenn Sie also ein neues animiertes Gecko-Lippenmodell erstellen, können Sie das einfach tun, zum Beispiel hier testet Rüstungen, oder? Und was Sie dann tun können, ist, dass Sie zu Datei zu den Gecko-Live-Modelleinstellungen wechseln und dies in Rüstung ändern können . Wenn Sie dann auf „Bestätigen“ klicken, können Sie sehen, dass hier einige Sachen erzeugt werden, was im Grunde genommen der bereits vorbereitete Körper ist . Und dann kannst du Dinge hinzufügen, wo du es hinzufügen möchtest, ist unter diesen. Sie haben also den Bipeds Kopf, berühren Sie das Besondere nicht. Dies ist natürlich der Kopf in diesem Fall. Und dann können deine benutzerdefinierten Sachen hier rein gehen. Sie können also einfach einen Würfel hinzufügen. Und dann kannst du einfach deine Sachen benutzen, es schaffen, es genau hier vergrößern, oder? Skaliere es also um einen bestimmten Punkt und dann gehen sie und dann kannst du einfach mit diesem grundsätzlichen Duplikat herumspielen, noch einmal einen neuen Würfel machen, ihn hier runter schaffen, ihn wieder bewegen. Aber das ist natürlich alles nur Dinge, die Sie tun müssen. Und Sie können hier Ihre eigenen benutzerdefinierten Dinge erstellen. Sobald Sie dies getan haben, werden wir im Moment eine, naja, im Grunde keine Textur haben . Und was du dann tun kannst, ist, dass ich es nur für einen Moment lösche und dann kannst du sehen, dass du so etwas haben wirst. Und was Sie dann tun können, ist, dass Sie Strg a drücken können, und dann wird alles hier drin ausgewählt. Und was Sie tun können, ist hier eine neue Textur zu erstellen. Wir nennen das einfach die Humboldt-Rüstung extra, ich sage „bestätigen“. Und dann sieht man, dass es irgendwie so aussieht. Wenn wir das jetzt speichern, speichern wir das einfach als Kobalt-Rüstungstextur. Wenn ich es mir dann mal ansehe, sieht es so aus. Also öffne ich es einfach schnell damit du sehen kannst, dass es so aussieht. Und ich öffne es jetzt in Photoshop. Ich habe hier schon einen Haufen Soft Course vorbereitet. Sie können sehen, dass Sie es auch in Farbe, Dotnet oder GIMP oder was auch immer öffnen können , denken Sie im Grunde genommen. Und was Sie dann tun können, ist normalerweise das, was Sie tun möchten , ist, dass Sie wie hier zum Beispiel, ich glaube, das sollte eigentlich der Kopf sein, nicht 100% wahr, aber ich denke, es ist es. Dann können wir zum Beispiel einfach eine beliebige Farbe nehmen. Ich werde es einfach auf die gleiche Ebene legen und dann speichern wir es einfach noch einmal, dass sich das eigentliche Ding in der Blockbank selbst ändert. Wir können jetzt mit der rechten Maustaste auf Aktualisieren klicken. Und dann sieht man zum Beispiel, dass dies tatsächlich der Kopf war. Das war natürlich nicht das interessanteste Zeug, aber Sie können im Grunde genommen die einzelnen Komponenten ändern die einzelnen Komponenten so sind. Vielleicht ändern wir einfach ein paar Sachen wie hier. Zum Beispiel. Das ist, ich meine, ich würde nicht unbedingt einen mühsamen Prozess sagen, aber dies ist ein Prozess, der definitiv einige Zeit dauern wird , bis Sie diese Aktualisierung im Grunde noch einmal durchführen. Wir können sehen, dass sie das durchmachen der Hinterkopf in diesem Fall. Sie können natürlich auch jeden dieser Würfel manuell nehmen und sehen, was sie sind. Aber das ist im Grunde die Idee. Also musst du die Rüstung zur eigentlichen Textur oder zum Selbst machen . Jetzt habe ich natürlich eine Textur vorbereitet. Das wird genau hier sein. Und es gibt tatsächlich eine Kleinigkeit , die wir tun wollen und das wird im Grunde genommen all das nicht berühren und sie dann einfach unten bewegen, nur damit wir es im Grunde können sehen Sie den Unterschied hier, weil die tatsächlichen uns nicht berühren, sowieso nicht benutzt werden, aber sie sind nur als Referenz da. Im Grunde genommen nimm das einfach hier. Ich fand, dass dies der einfachste Weg ist Rüstung um ihn herum im Grunde zu ändern . So können Sie zum Beispiel hier sehen, diese Rüstung tatsächlich ein bisschen zu niedrig ist. Es gibt ein paar Dinge , die zu niedrig sind und wir können sie auch einfach nehmen und dann bewegen, richtig. Sie können also sehen, dass wir dann die Rüstung hier wechseln. Wie ich schon sagte, es wird nicht die schönste Rüstung oder die Zeit sein. Das eigentliche, sagen wir, das eigentliche Modell hier ist ziemlich cool, aber die Textur könnte definitiv etwas Arbeit gebrauchen. Ich gebe absolut zu, dass ich es bin, ich stimme absolut zu. Ich wollte dir im Grunde nur den allgemeinen Kern zeigen , wie das funktioniert. Was wir dann haben, ist diese Kobalt-Rüstung. Also werde ich das speichern, diese Block-Bank-Datei wird dir natürlich zur Verfügung stehen. Schließen wir einfach den anderen hier. Und was Sie dann tun können, ist, dass Sie das Gecko-Live-Modell hier exportieren können . Das wird ein gepanzerter Kobalt-Unterstrich sein, GO Dot JSON. Also werden wir das einfach speichern das andere überschreiben. Und dann lass uns zu Intelligent gehen und lass es uns dort hinzufügen. Was brauchen wir für einen Kunden? Es ist eigentlich ziemlich viel Zeug. Fügen wir zuerst die Modelldatei hier im Geoordner hinzu. Also werden wir es einfach übertippen. Da gehst du. Und dann brauchen wir auch eine JSON-Datei für Animationen. Jetzt wird das so sein, ich habe das schon vorbereitet und es ist buchstäblich genau so. Ich bin mir nicht hundertprozentig sicher. Du kannst das einfach so ziemlich nehmen und benutzen. Und es sollte ziemlich gut gehen. Wir brauchen auch die benutzerdefinierten ARMA-Modelle, so wie die Textur. Also werden wir das hier in die Modelle hinzufügen . Wie ich schon sagte, dies ist derjenige, der ein bisschen komisch aussieht, aber überhaupt keine Sorgen macht. Und das wird eigentlich die Kobalt-Rüstungstextur genannt , nur weil ich denke , dass dieser Name ein bisschen schöner ist. Gehen Sie über Armor Texture und dann sind die Dateien alle eingerichtet. Was brauchen wir jetzt in Bezug auf welche Renderer und so? Nun, im Entitäts-Renderer werden wir nur im Client in einem neuen Paket namens armor erstellen . Und dies wird zwei neue Klassen beinhalten. Eines davon, das Kobalt-Rüstungsmodell und das andere wird der Hello World Armor Renderer sein. Bevor wir nun tatsächlich mit diesen fortfahren, brauchen wir tatsächlich eine neue Item-Klasse, was sehr interessant ist. Das wird also im benutzerdefinierten Paket enthalten sein. Das wird der Gegenstand der Kobalt-Rüstung sein. Und dann nehmen wir als erstes alles aus dem Mod-Rüstungsobjekt und kopieren es einfach rüber. Also kopiere ich eigentlich einfach alles hier drüben. Also werden wir das machen. Da gehst du. Und dann werden wir hier ein paar Fehler bekommen. Keine Sorge, wir machen das einfach hier. Und was wir dann tun können, ist, dass wir dies dann ändern können , um das Folgende zu sein. Dies wird nun das Geo-Rüstungselement erweitern das Geo-Rüstungselement und die KI animierbar implementieren, was dann auch erfordert, dass wir die beiden Methoden implementieren müssen, den Register-Controller und sie werden in die Fabrik aber ich werde das einfach hier oben verschieben. Lass es uns einfach hier unten schreiben. Sie passen unter dem, dem Konstruktor. Das wird gut werden. Also brauchen wir auch ein Prädikat, das ich bereits vorbereitet habe. Dies ist das ziemlich unkomplizierte Gleiche, was wir mit dem Prädikat der Entitäten gemacht haben, der animierbaren Fabrik, mit der wir auch vertraut sein sollten. Das haben wir auch vorher gesehen. Und natürlich ist der gesamte Code wie immer im GitHub-Repository im Einzelnen verfügbar . Die Register-Controller-Methode ist genau das Gleiche wie die Entität. Und dann gibt die Fabrik buchstäblich einfach die Fabrik zurück. Also diese Krampffabrik, lass uns das einfach machen. Ich meine, es ist nur ein bisschen netter. Da gehst du. Es gibt eine Fabrik, die diese ist. Wir haben immer noch alle Funktionen, die wir zuvor gemacht haben. Jetzt gibt es eine winzige Sache , die ich tatsächlich ändern möchte, dann ist es die letzte Methode hier, das Haus richtig. Rüstung auf Ich schlage vor, dass du das auch machst, weil du sonst auf ein Problem stoßen könntest , wenn du eine volle Rüstung hast, Beispiel wenn du die volle Rüstung trägst und auch ein Elektron hast , das manchmal ein Problem mit dem anderen, mit dem alten Zeug. Denken Sie also auch daran, aber das ist nicht Teil des benutzerdefinierten Modells. Jetzt noch ein Rüstungsgegenstand mehr Gegenstände Klasse, und wir möchten tatsächlich, dass es all diese in den Kobalt-Rüstungsgegenstand genau hier ändert . Das ist ein kleiner Unterschied als zuvor, aber es gibt keine Sorge, es gibt auch völlig in Ordnung und das sollte es sein. Also jetzt haben wir diese eingerichtet, wir können jetzt in das Modell gehen und tatsächlich folgendes tun. Dies wird das animierte Geo-Modell des Typs oder beide Rüstungsgegenstände erweitern . Da gehst du. Sie werden den Mauszeiger über diese implementierten Methoden bewegen. Also werden wir die drei Methoden implementieren. Ich kopiere es noch einmal. Dies ist die Sorte wie das Gleiche, was wir in den Modellen für den Waschbären und den Tiger hatten . Man sieht so ziemlich das Gleiche. Wir zeigen nur auf die GeoJSON-Datei der Kobalt-Rüstung genau hier. Wir zeigen in diesem Fall auch auf die Testrüstung. Jetzt wollen wir den Namen hier tatsächlich ändern. Dies ist eine Kobalt-Unterstrich-Rüstungsschicht, eigentlich Textur. Da gehst du. Textur, los geht's. Und dann ist dies die Rüstungsanimation. Das ist auch in Ordnung. sind also alles die Dinge , die wir hier tun müssen. Und dann wird es für den Renderer sehr ähnlich sein. Wir wollen hier ist noch einmal, ich werde einfach den Geo-Renderer, dieses Mal des Typs Kobalt-Rüstung Gegenstand auch vorbei, über diesen Create Constructor passend super stehen dieses Mal des Typs Kobalt-Rüstung Gegenstand auch vorbei, über . Und dann wollen wir diesen Konstruktor tatsächlich loswerden, ein neues Kobalt-Rüstungsmodell einsetzen. Dann wollen wir auch sicherstellen , dass wir sozusagen die richtigen, guten Dinge auswählen . Das wird sehr interessant sein. Was ich tun werde, ist, dass ich das noch einmal kopieren werde. Und das sollte eigentlich ziemlich einfach sein. Du siehst also, dass Kopfhörer der Rüstungskopf ist. Wenn wir zurück zur Blockbank wechseln, können Sie sehen, dass dies genau hier ist. Der Rüstungskopf, die Rüstung, die Körperrüstung, oder? Und so weiter und so fort. Was sehr interessant ist , ist, dass aus irgendeinem Grund der Beinknochen tatsächlich mit einem Bein geschaltet wird. Ich weiß nicht warum. Sie können also sehen, dass der rechte Beinknochen tatsächlich ARMA linkes Bein ist und dann der reife Stiefel tatsächlich der linke Stiefel ist. Ich weiß nicht, warum das der Fall ist. Es ist einfach das, was es ist. Ich weiß nicht, warum das der Fall sein könnte, aber denken Sie daran. Wenn du also denkst, dass das irgendwie seltsam ist, gibt es dort ein Missverhältnis. Ja. Es liegt im Grunde daran dass es aus irgendeinem Grund einfach das ist, was es ist. Wir müssen diesen Renderer immer noch registrieren lassen , und wir tun dies im R-Ereignis in den Mode-Ereignisbus-Ereignissen. Und das wird in einer neuen Methode geschehen , die vorerst vorbei sein wird. Und dies wird das folgende Ereignis sein. Dies wird die Entität sein, die uns Ereignis rendern, Punkt-Add-Layer, den Umfang, medizinische und kalte Ereignis sein. Und das einzige, was wir hier tun müssen, ist, dass wir nur den Geo-Renderer brauchten , die Rüstung registrieren, die uns für die Kobalt-Rüstungsgegenstand-Punktklasse und dann eine neue Award-Rüstung macht die Kobalt-Rüstungsgegenstand-Punktklasse und dann rendern Sie vor einem Tag. Insgesamt ziemlich verrücktes Zeug. Aber insgesamt nicht zu verrückt. Viel von dem gleichen Zeug, das wir in den Entitäten bereits gemacht haben , richtig, mit dem Rüstungsmodell, mit dem Modell und der Renderer-Datei. verrückt ist es nicht. Die JSON-Dateien sind auch ziemlich einfach. Diesen, wie ich schon sagte, können Sie einfach aus Block-Pinch exportieren. Das hier. Ich würde einfach den nehmen , den ich vorbereitet habe. Ich meine, es ist auch nicht so kompliziert, aber du solltest wahrscheinlich damit einverstanden sein, als wäre es nicht so kompliziert. Und dann die Textur, die man sich nur selbst machen muss, das ist wahrscheinlich der zeitaufwendigste Teil von all dem. Und ich bin gerade für eine Sekunde zurück zu Photoshop gewechselt. Füllen Sie jetzt alles aus, als würden Sie sich definitiv meiste Zeit nehmen , die Sie für die benutzerdefinierte Rüstung haben. Aber ja, so ziemlich genau das, was muss man tun wenn man ein wirklich cooles, benutzerdefiniertes ARMA-Modell möchte, es ist genau das, was es ist, aber das sind die notwendigen Schritte. also noch einmal so ziemlich alles, was wir brauchen. Um der Vollendung willen, schauen wir mal, ob es funktioniert. Okay, wir haben Trost in Minecraft gefunden, also lass uns einfach die Rüstung anziehen und da sind wir verdammt noch mal los. Wir haben die Rüstung auf dem LAC natürlich auch noch funktioniert. Und du kannst sehen, wie die Rüstung funktioniert. Ich meine, so ziemlich wie man es erwarten würde. Wie ich schon sagte, es ist nicht die schönste Rüstung insgesamt, aber sie ist funktional und es ist definitiv was man sagen mag, es ist definitiv ein Brauch. Das ist definitiv das, was ich wärmstens empfehle, einfach damit herumzuspielen offen für Experimente für die Rüstung zu sein. Wie Sie sehen können, funktioniert alles für das Schwingen der Arme und Beine und ähnliches. Aber es ist echt cool. Ja. Ich meine, so einfach ist es so einfach , dem Spiel die benutzerdefinierte Rüstung hinzuzufügen. Fügen Sie es sehr einfach und ziemlich einfach hinzu, damit es wirklich verdammt cool aussieht, definitiv viel härter. Natürlich stehen Ihnen der gesamte Code und die JSON-Dateien im GitHub-Repository zur Verfügung und auch individuell. 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. Ja. 118. (1.18.2) Benutzerdefinierte Dorfbewohner: Willkommen zurück zum Schmiedekurs für 118. Und in diesem Vortrag werden wir Minecraft einen benutzerdefinierten Dorfbewohner hinzufügen . Jetzt ist es an der Zeit für den Beruf des Dorfbewohners, denn es stellt sich heraus, dass es eigentlich ziemlich einfach ist. Alles in Betracht gezogen. Was wir tun werden, ist, dass wir ein neues Paket in unserem MC-Kurspaket erstellen , alter Dorfbewohner. Und dann machen wir drinnen eine neue Java-Klasse namens MOD-Dorfbewohner. In diesem Fall werde ich ein wenig von meiner üblichen Sache abweichen , die wir tun werden, und wir werden tatsächlich hinzufügen, um Register aufzuschieben. Das erste wird ein öffentliches statisches endgültiges verzögertes Register des Spieltyps sein. Dies ist also der Typ „Point of Interest“. Wir nennen dies nur den Punkt-Punkttyp stay ago verzögerten Register entspricht , die Typen erstellen oder Registrierungstypen, AMC-Kurs moderat und moderat. Und was wir dann tun werden, ist, dass wir ein zweites oder drittes Register machen werden , das vom Typ Dorfbewohner sein wird. Ein Dorfbewohner unterstreicht Berufe. Da gehst du. Und es wird ein anderes Register geben, Dot Create, Register, Dot Dorfbewohner, Punktberufe. Da gehst du. Mc Kurs überwachen Modalität. Und jetzt, wenn wir verschiedene Register haben, haben wir natürlich eine öffentliche statische Void-Register-Methode mit einem Eye-Event-Bus, einem coolen Event-Bus. Und dann rufen wir die Punktetypen , die sich im Event-Bus registrieren. Und zweitens gehen wir im Dorf oder in den Berufen vorbei. Ich habe mich beim Eventbus angemeldet und sorge dafür, dass wir das hier anrufen. Nennen wir es einfach erlaubt die Mod-Strukturen. Also mod Dorfbewohner melden sich an und fahren dann im Event-Bus vorbei, da gehst du. Sehr nett. Und was wir dann brauchen, sind natürlich Registerobjekte für den Prototyp und die Dorfbewohner. Also werden wir zuerst den Punkttyp machen, dies wird das Registry-Objekt vom Typ Prototyp sein. Das wird der Blaster-Punkt sein. Also werden wir hier unseren Kobaltblaster benutzen. Es wird die Prototypen geben, die sich registrieren. Das wird der Explosionspunkt sein. Da halte ich es fest. Und dann wird es natürlich wieder, ein Lieferant eines neuen Prototyps , diesen Explosionspunkt nennen. Dann müssen wir Punkt eingeben, blockiert werden, sagen Mod-Blöcke, Punkt, Punkt. Dann sagen wir danach 11. Werfen wir einen Blick darauf, was das alles mit sich bringt. Klammern schließen. Da gehst du. Und dann lasst uns hier auf den eigentlichen Prototyp eingehen. Sie können sehen, dass Max-Tickets dieses sind und dies ist der gültige Bereich. So können Sie sich zum Beispiel das ansehen, wo dies verwendet wurde. Mal sehen, ich glaube hier und dann in der Register-Methode, dass es wahrscheinlich dort verwendet wurde. Da gehst du. Normalerweise sind sie alle 11. Es gibt noch einen anderen, normalerweise ist der Prototyp 11, deshalb verwenden wir 11. Da gehst du. Dann gehen wir zur öffentlichen statischen endgültigen Registrierung, Registrierungsobjekt. Dieses Mal des Typs Dorfbewohner Beruf , der der Explosionsmeister sein wird. Und das wird dem Dorf- oder Berufsstatregister gleich sein , dem Explosionsmeister genau hier. Und dann ein neuer Lieferant oder ein Lieferant eines neuen Dorfes oder Berufs. Dies könnte natürlich wieder der Explosionsmeister sein. Lass mich das richtig schreiben. Dies wird den Blaster-Punkt-Punkt bekommen, und dann wird es sehr interessanterweise ein veränderbares Set dauern . Und dann sagen wir einfach mit nichts drin. Und dann sagen wir noch ein veränderbares Set mit nichts drin. Und dann wird der letzte der Sound-Ereignis-Punkt sein. Und dann arbeitet einfach jeder Dorfbewohner. Nehmen wir zum Beispiel einfach den Tools-Mythos und enden dann mit einem Semikolon. Und dann sind wir fertig im Dorf Professional. Wir können sehen, dass das erste unveränderliche Set die angeforderten Artikel sind, definiert die Artikel, die Adresse davon abholen und verwenden können. Und dann ist der andere der sekundäre PUI, wie Hindernisse ist, mit denen diese professionellen Interaktionen auftreten? In unserem Fall werden wir keine davon haben, die sehr zu empfehlen ist. Wieder einmal, offen für Experimente zu sein, ein paar Sachen auszuprobieren und zu sehen, was Sie finden werden. Das Letzte , was wir tun werden, ist, dass wir eine andere Methode haben , die die öffentliche statische Lücke sein wird, und dies wird die Register-Plest-Methode sein. Und das ist unglaublich wichtig. Wir werden gleich hier einen Versuch und eine Auffangaussage haben. Schreib das nicht rein. Der Fang wird folgendes haben. Es wird eine Aufrufzielausnahme mit dieser einzigen einzigen geraden rechtlichen Zugriffsausnahme namens E-Exception haben. Da gehst du. Und dann wird das der Ausnahme-Punkt Print, Stack, Trace sein. Da gehst du. Und was es im Trie hat, ist das Offensichtliche. Und dann werden wir hier im Versuch eine Verschleierungsreflexions-Helfer-Methode sagen. Wir machen die Punkttyp-Punkt-Klasse. Der Methodenname wird Registerblockstatus sein und dann erneut eine Punktklasse vom Zeigertyp übergeben . Dann werden wir danach sagen invoke null und der Blaster-Punkt-Punkt bekommt: Los geht's. Jetzt könnte das für dich absolut verrückt aussehen , und das ist es auch. Der Grund, warum wir dies tun müssen , ist im Grunde , dass wir die Blockstaaten registrieren müssen. Wir können es uns als diese Methode genau hier ansehen . Sie können diese Methode für die Registerblock-Status-Methode sehen. Wie Sie sehen können, sind alle Methoden des Registerblocks States alle privat. Deshalb müssen wir in diesem Fall den Helfer der Verschleierung verwenden , und dann können wir es tatsächlich nennen. Wenn Sie jedoch mehrere Punkte haben, können Sie hier einfach einen weiteren mit Ihrem anderen Punkt hinzufügen. Fügen Sie also einfach den anderen Punkt und dann wird es Ihnen gut gehen. Diese Methode muss in der Setup-Methode des MC-Kurses im gemeinsamen FMLA-Setup gekühlt werden. Also werden wir sagen, dass Mod-Dorfbewohner anfangen, sich zu registrieren und da sind wir. Jetzt sind wir noch nicht fertig, weil wir diesem Dorfbewohner noch ein paar Eigenschaften hinzufügen müssen . Und dann auch sehr wichtig. Das Extra, fangen wir mit der Übersetzung in die Übersetzung an, ist ziemlich einfach, alles in Betracht zu ziehen. Ich werde das nur kopieren und das steht Ihnen natürlich im GitHub-Repository zur Verfügung , einer Einzelperson genauso gut. Sie können Entity Micro Dorfbewohner, MC Course Blastmaster sehen. Und das wird der Name der tatsächlichen Entität oben sein, wenn Sie das Inventar oder die Textur öffnen , das wird sehr interessant sein. Das ist unter Entität und ich werde ein neues Verzeichnis namens Dorfbewohner erstellen. Und dann kopiere ich darüber, was ich schon hier habe, und ich zeige dir, woher ich das habe. Das wird also die Nummer eins sein, der Dorfbewohner hier. Ich bin mir nicht sicher, was wir auch den Dorfbewohner selbst brauchten, aber anscheinend brauchten wir immer noch, es sei denn, Profis, natürlich genau wie diesen hier genannt werden, Explosionsmeister. Und Sie können sehen, ich füge wirklich ich in diesem Fall einen bereits existierenden Beruf neu erfunden habe, nur damit wir etwas haben, das in diesem Moment anders aussieht , aber es tatsächlich funktioniert. Und das habe ich natürlich noch einmal von den externen Bibliotheken bekommen, die bis zum folgenden hinunter gehen . Mal sehen, es sollte genau hier um eine zusätzliche 1182 sein oder was auch immer Ihre Version im Assets-Ordner Minecraft ist , Texturen im Entitätsordner bis hin zum Dorfbewohner genau hier. Dann haben wir den Dorfbewohner genau hier. Dies ist der normale Dorfbewohner. Dann hier ist das der Beruf und ich habe die Rüstung genommen, glaube ich. Ja, da gehst du. Aber nimm einfach die Rüstung ein bisschen so sehr empfohlen wird, nimm sie, benutze sie und trainiere sie dann ein wenig. Das Strukturierte hier wird also definitiv die einzige Sache sein , die Sie vielleicht eine Weile dauern kann , bis Sie es richtig machen, aber es ist was es ist. Und dann die Typen, ich glaube nicht, dass er dich tatsächlich etwas mit den Typen machen musste, aber man tut irgendwie aus irgendeinem Grund, braucht den Dorfbewohner und den Beruf. Ich weiß nicht warum das der Fall ist. Zumindest ist das was mein, das ist es, was meine Tests haben. Wirtschaft. Wenn es um die tatsächlichen Eigenschaften geht, können wir unsere Veranstaltung einfach wieder nutzen. In der Motor-Event-Klasse ganz unten rechts hier können wir dies buchstäblich auch für unsere Veranstaltung nutzen , für unsere Custom Professionals . Nun, also mehr Dorfbewohner, die den letzten Master-Punkt bekommen, und jetzt können wir auch Sachen hinzufügen. Also können wir einfach so etwas sagen , wo wir die Liste einfach hinzufügen können, fügen Sie einfach ein paar Dinge für die Stufe eins hinzu. Und dann, nur um der Argumentation willen, fügen wir hier einfach ein paar zwei Level zwei hinzu. Wir werden das einfach auf Stufe zwei ändern . Aber das wird sein, wir werden einfach dasselbe für verschiedene Preise hinzufügen , denn warum nicht? Lass uns das einfach machen und dann machen wir eine Stufe zwei. Wir werden hier so etwas wie eine 58 als sehr viel Test machen 58 als sehr viel Test , nur damit Sie sehen können, dass Sie diese auch hinzufügen können. Es ist im Grunde das gleiche Kobalt-Paxil, das wir hier kaufen können. Es wird also nicht so interessant sein, aber probieren wir es einfach aus und Sie werden sehen , dass dies auch die Trades zu ihnen hinzufügen wird. Also schätze ich mal sehen ob es funktioniert oh, direkt vor uns in Minecraft. Lasst uns also einfach einen Dorfbewohner spawnen Und dann lasst uns die Kobaltexplosionen niederlegen oder die sofort als einen Punkt von Interesse erkennen und es sollte sich darauf zubewegen und dann das tatsächliche bekommen oder ich schätze nicht. Lasst uns ein bisschen näher kommen. Nun, ich gab dort einen Tippfehler. Es ist eigentlich der Kobaltblock, der der Punkt des Interesses ist , aber fair genug, schätze ich. Also lass es uns einfach ablegen und dann kannst du sehen, dass es sich jetzt darauf bewegt. Weil du sehen kannst, haben wir einen Pfeil und die Textur. Das werden wir in einem Moment beheben. Sieh dir das O an, es ist eigentlich der Blaster Moskau. Das ist großartig. Aber Sie können sehen dass der Trace hier hinzugefügt wurde. kriege ich. Und danach sollten wir sehen können, dass, sobald es tatsächlich aufsteigt, in der Lage sein sollte, die anderen zu bekommen, die sie für Level zwei und da ist es. Das funktioniert also definitiv. Lassen Sie uns also nur einen Moment lang die tatsächliche Textur reparieren . Genau hier steht Blastmeister. Es sollte natürlich Explosionsmeister sagen. Das sollte also den ganzen Rest hier ziemlich beheben. Ich werde das auch hier in den Kobalt-Blaster ändern. Und dann, nur um der Argumentation willen , schauen wir mal, ob es funktioniert. Zum Beispiel wieder in Minecraft, und lass es uns einfach ablegen und sie gehen Jetzt funktioniert alles gut, wenn ich hierher gehe und der letzte Meister auch so funktioniert wie du es würdest erwarte es. So einfach ist es also, ein individuelles Dorf oder einen eigenen Beruf hinzuzufügen , Minecraft, oder? Wieder einmal steht Ihnen natürlich der gesamte Code im GitHub-Repository zur Verfügung und auch individuell, 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. 119. (1.18.2) Baby: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in diesem Vortrag werden wir uns Baby-Entitäten ansehen. Ja, also werden wir die Baby-Entität zu unserem Tiger hinzufügen. Und wieder einmal ist dies eines dieser Dinge, die tatsächlich viel einfacher sind, als Sie vielleicht erwarten. Ich war auch etwas komplizierter, aber es ist eigentlich überhaupt nicht kompliziert. In unserer Rasse Nachkommen genau hier wollen wir Mod-Entitätstypen sagen, nicht ein Tiger, der diese kreiert und dann in die Serverebene übergeht. Das ist dieser Parameter genau hier. Ich klicke einfach darauf, drücke die Umschalttaste F6, um es auf Serverebene umzubenennen, nur damit wir wissen, was wir hier weitergeben, und dann geben wir es genau hier rein drücke die Umschalttaste F6, um es auf Serverebene umzubenennen, nur damit wir wissen, was wir hier weitergeben . Dies ist die Nummer eins , die wir tun müssen. Nummer zwei: Wir müssen eine bestimmte Methode außer Kraft setzen , und das ist die Lebensmittelmethode. Anstatt hier prüfen wir grundsätzlich, ob dieser Stapel das Lebensmittel ist, das diese bestimmte Entität gezüchtet werden kann oder nicht . In diesem Fall werden wir sagen, p dot get item item, und ich sage, dass es den Gegenständen Dot Beef entspricht. Ich möchte im Grunde, dass Sie mit Rindfleisch mit der rechten Maustaste auf die Tiger-Entität klicken, als es Das ist die Idee hier. Wir brauchen dann ein neues Ziel. Also werde ich nur die Siedlung oder das Ziel kopieren und dies wird das Zuchtziel sein, wird auch hier einen Ein-Geschwindigkeitsmodifikator aufnehmen. Also werden wir einfach die gleiche Geschwindigkeit haben und ich lege es einfach hier unter die in Priorität drei. Ich denke, das sollte ziemlich einfach sein Entropie in Ordnung. Jetzt sind dies eigentlich all die Dinge, die wir in der Tiger-Entität tun müssen. Es gibt noch eine Sache, die wir im Renderer tun müssen, und das wird hier die Skala sein. Dies ist natürlich der Maßstab des eigentlichen Modells. Und was wir tun können, ist, dass wir sagen können, ob es animierbar ist, das ist Baby, und wir werden anders skalieren, als einfach Control X drücken, um es auszuschneiden und es dann wieder einzufügen. Und dann machen wir das hier. Also hier sind wir, wenn es kein Baby ist, und dann sind wir hier, wenn es ein Baby ist, also werden wir das einfach halbieren und dann war's das. Und das sollte alles sein, was wir tun müssen , um die Arbeit des Babys zu haben. Es gibt einige interessante Dinge. Zum Beispiel, wenn wir tatsächlich die Tiger-Teams haben und dann klicken wir rechten Maustaste darauf mit dem Lebensmittel hier. Dann gehen wir immer noch gerne drauf, um es zu schreiben. Es gibt also ein bisschen Verrücktheit hier, aber das sollte ziemlich trivial sein das genau hier zu beheben, im Grunde um zu überprüfen, hey, wie ein Spieler mit einem Rindfleisch klickt und dann sollten wir eigentlich nicht einmal fang an, es zu schreiben. Das sollte ziemlich einfach zu beheben sein. Aber um der Vollendung willen, schauen wir mal, ob es funktioniert oder uns in Mikro findet. Lassen Sie uns also auf Tiger antworten und sehen wir, klicken Sie mit der rechten Maustaste, klicken Sie mit der rechten Maustaste. Da sind wir los. Und sobald sie sich finden, ja, nein. Okay. Da gehst du. Es gab einen da gibt es auch den Babytiger oder funktionierte absolut gut. Jetzt dauert es tatsächlich eine ganze Weile, bis sie erwachsen sind. Ich habe es ausprobiert und sie werden erwachsen werden. Es braucht einfach viel Zeit. Dies ist meiner Meinung nach in der Tierklasse hart codiert, aber das können wir tatsächlich in einem Moment überprüfen. Aber ja, so macht man das so ziemlich. Und dann können wir natürlich nicht züchten. Nun denke ich, dass wir es nur genug schreiben können sollten. Ich meine, okay. Das ist, als müsste es wahrscheinlich einen Scheck dafür geben. Aber ehrlich gesagt, das sind Baby-Entitäten. Sehr selbsterklärend. Wirklich nicht so schwierig. Ich dachte wirklich, dass sie schwieriger werden würden, aber sie sind eigentlich ziemlich einfach, oder? Wenn Sie sich diese eine mittlere Maustaste noch einmal ansehen, klicken Sie auf diese mittlere Maus und klicken Sie mit der rechten Maustaste darauf. Siehst du, das ist das Tier, und dieses hat irgendwie die verschiedenen Dinge für die Zucht darin. Sie können also sehen, dass es eine Menge Sachen hat. Du hast die Kerze und liebte das Set und liebst das. Ich liebe es, genug Zeit zu bekommen, geliebt werden Kurs ist verliebt, zurücksetzen, Liebe kann sich treffen. Das sind irgendwie die Dinge. Ich meine, hier sieht man das Spawn-Kind von der Zuchtmethode, die im Grunde das eigentliche Kind sponsert. Sie können sehen, dass es mobil von der aktiviert wird, es liest hier Nachkommen. Das sollte also die Sache sein , die Sie sich ansehen müssen , ob es etwas gibt, das Sie möglicherweise außer Kraft setzen möchten. Also ja, das ist so ziemlich genau was du vielleicht im Schutt-Mopp brauchst. Ja. So können Sie sehen, wie Babys anfangen h, Dies ist das gespeicherte h hier. Sie können dies also wahrscheinlich auch innerhalb Ihrer Tiger-Entität ändern . In diesem Fall, wenn du willst, vielleicht der Tiger ein bisschen schneller erwachsen, das könnte auch gemacht werden. Aber ja, so einfach ist es so einfach Ihren Mobs Baby-Entitäten hinzuzufügen. Es ist viel einfacher als ich dachte, 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 in den nächsten Vorträgen. 120. (1.18.2): Alles klar, willkommen zurück zum Forstkurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie einem Minecraft benutzerdefinierte Geocodes hinzufügen können . Nun, das ist eigentlich ziemlich einfach hinzuzufügen , und wir werden es uns nur ansehen. Im World-Paket werden wir im Feature-Paket die von Mod konfigurierten Funktionen den Geode hinzufügen und ich kopiere über den gesamten Halter. Und dann werden wir uns im Grunde jede dieser Zeilen ansehen und was sie bedeuten und die Verrücktheit, die damit verbunden ist , weil es eine ziemlich lange Sache ist, aber überhaupt keine Sorge. Sie können sehen, dass es auch hier eine neue Linie macht. Und Sie können sehen, dass es in diesem Fall ein ziemlich langes Feld ist, aber überhaupt keine Sorgen. Natürlich verwenden wir wieder einmal Feature Utils dot register, um in diesem Fall eine Geode-Funktion zu registrieren. Und dann müssen wir eine neue Geode-Konfiguration erstellen. Dies ist auch eine großartige Klasse , die man sich im Grunde anschauen kann. Wenn wir also mit der mittleren Maustaste darauf klicken, können Sie tatsächlich sehen, was jedes dieser Dinge bedeutet, oder? Wir haben die Blockeinstellungen, wir haben die Ebene, die richtigen Einstellungen, wir haben potenzielle Platzierungschance und all diese verrückten Dinge, und all diese verrückten Dinge die wir hier grundsätzlich hinzufügen können. Was in diesem Fall sehr interessant ist, sind eigentlich auch die Geodenblock-Einstellungen hier. Das ist also im Grunde alles, was genau hier ausgewählt wurde. Und das ist eigentlich sehr interessant weil man hier sehen kann woraus die jeweiligen Vermögensschichten im Grunde bestehen. Sie können also sehen, dass der Abfüllanbieter Luft sein wird , die ziemlich selbsterklärend sein sollte. Also das G oder im Inneren davon ist alles Luft. Wenn du nicht willst, dass es Luft ist, kannst du auch etwas anderes ändern, oder? Du kannst diese Box also direkt hier in jemand anderen ändern , oder? Wenn Sie einen anderen Block haben, möchten Sie, dass dieser mit Hindu gefüllt wird. Das ist also wirklich cool und ermöglicht es Ihnen, fast alles zu modifizieren und zu konfigurieren, was ich wirklich cool finde. Das ist also so ziemlich die Idee, oder? Das ist also wieder eines dieser Dinge, bei denen ich nur wärmstens empfehle, einfach nur mit den verschiedenen Blöcken, den verschiedenen Zahlen, herumzuspielen . Es ist das Beste , was du tun kannst. Probieren Sie einfach ein paar Dinge aus, sehen Sie, bis Sie im Grunde genommen ein GO finden können das Ihnen in Bezug darauf gefällt, wie geknackt es ist , genau mit den richtigen Einstellungen, zum Beispiel bedeutet dies nur, ob es welche gibt oder nicht auf der Seite , die exponiert ist und sie können sofort auf solche Dinge eingehen. Ich empfehle nur wärmstens , einen Blick darauf zu werfen hier mit den Zahlen herumzuspielen. Und dann erstellst du hoffentlich sozusagen eine Geode deiner Träume. Was ich jetzt machen möchte, ist, dass ich die Deep Slate genau hier ersetzen möchte. Ersetzen wir das durch Dreck. Und sagen wir gleich hier, lass uns einfach Smaragd machen. Klar. Warum nicht? Nur für den Fall möchte ich mir im Grunde ansehen, wie sich dies auf die Einstellungen des Geo-Blogs auswirkt. Und dann kann man sehen, wo all diese verschiedenen Blöcke grundsätzlich platziert sind, oder? Das Wichtigste ist also eigentlich diese Liste hier drüben. Da diese Liste normalerweise schreibt, handelt es sich bei dieser Liste tatsächlich um die inneren Platzierungen und die inneren Platzierungen oder die Amethystkristalle. Diese Listen würden also im Grunde diese Amethystkristalle enthalten. Was wir uns also im Grunde genommen ansehen können, ist ein weiteres Feature, Geode. Lassen Sie uns also nur die mittlere Maustaste klicken, klicken Sie auf diese, mittlere Ankündigung, klicken Sie darauf und Sie können den Amethyst sehen GO genau hier. Wenn wir einfach den ganzen Weg zum gehen, los geht's. Dort kann man also den angehenden Amethyst sehen. Und das wird auch in der Liste genau hier gemacht. So können Sie Amethyst Cluster sehen, wobei Sie hier sehen können, dass wir die kleine Amethystknospe Medium MF ist Knospen sind. Dies ist also eine Liste der möglichen Amethyst-Cluster-Amethystknospen , die möglicherweise spawnen können. Das ist die allgemeine Idee dieser Liste hier drüben. Also habe ich in diesem Fall gerade den Kobaltblock benutzt, aber du kannst natürlich deinen eigenen bauen, deinen eigenen gruppieren. Aber im Grunde und dann schwan das auch. Das ist alles in Ordnung und gut, aber was machen wir mit dieser konfigurierten Funktion? Nun, wir gehen umso mehr ein, wir gehen wieder in die Marketplace-Feature-Klasse, und wir werden es einfach tun, und ich werde nur noch einmal den Inhaber kopieren, dies steht Ihnen alles zur Verfügung in das GitHub Repository und Individuum genauso gut. Und Sie können sehen, dass dies die Kobalt-Geode ist. Natürlich nehmen wir die Kobalt-Geode , die wir gerade erstellt haben, im Grunde genommen, dann machen wir im Durchschnitt alle 50 Brocken einen Seltenheitsfilter . Der N-Quadrat-Aufstrich ist nur etwas, das ich auch so ziemlich aus der Vanille-Geode genommen habe . Und dann siehst du, wir sind heute Morgen im Grunde genommen über sechs und bis zu 50. Erneut empfehle dringend, mit den vertikalen Ankern über unten, unten, absolut, herumzuspielen den vertikalen Ankern über unten, . Probieren Sie es einfach aus und sehen Sie, was Sie im Grunde sehen können bis es so platziert ist, wie Sie schreiben möchten. Das ist also so ziemlich genau das. Und dann müssen wir einfach in unsere Mehr oder Generation gehen. Anstatt dann das Kobalt zu rufen oder platziert zu machen, möchten Sie die Kobalt-Geode platziert nennen. sind eigentlich all die Dinge, die wir brauchen, um unseren benutzerdefinierten Geode hier in diesem Fall hinzuzufügen. Lasst uns also eine neue Welt erschaffen und sehen, ob es funktioniert. Oder wir befinden uns in Minecraft. Und wie Sie sehen können, habe ich bereits eine nette kleine Geode gefunden , damit Sie sehen können, was die verschiedenen Blöcke im Grunde sind. Zuallererst ist das Innere natürlich gut mit Luft gefüllt, genau wie von Anfang an angegeben. Und dann kann man sehen, und dann kann man sehen, dass die Blöcke hier im Grunde die angehenden Amethyste wären, oder? Während das Pferd die Blöcke sein würde , aus denen das MSS herauswächst. Das ist die allgemeine Idee. Sie können auch sehen, wo sich der Schmutz befindet. Ein Smaragd oder wo ist das? Nun, wenn wir tatsächlich hier raus gehen , sollten wir in der Lage sein, einen Smaragd zu finden oder möglicherweise auf der anderen Seite, so dass sie die Amroblöcke tatsächlich sehen können. Das ist also den ganzen Weg dorthin, wo die eigentlichen Geoden-Spots sind. Sie können also sehen, dass die tatsächliche Größe des Geoids ziemlich größer ist. Und C, da gehst du. Ich empfehle also dringend, dies vielleicht nicht in Smaragd-Auren zu ändern, sondern in diesem Fall Smaragdblöcke. Das ist also ziemlich verrückt. Aber ja, das sind im Grunde die Ideen was all diese verschiedenen Blöcke machen. Und dann geht es nur darum ein bisschen mit ihnen herumzuspielen Ihrer Freizeit ein bisschen mit ihnen herumzuspielen und verschiedene Werte auszuprobieren , oder? Aber das wäre es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich und die Warnungen, dass das Neue, und wir sehen uns in der nächsten Vorlesung. Also ja. 121. (1.18.2) Block, der mit Redstone interagiert: Okay, willkommen zurück zum Schmiedekurs für 118. In diesem Vortrag werden wir einen kurzen Blick darauf werfen, wie Sie Ihre Blöcke mit einem Redstone interagieren lassen können. Aber das war etwas, das sich einige Leute im Grunde genommen ansehen wollten und sie waren sich nicht ganz sicher wie. Also. Werfen wir einen Blick auf unsere Kundenblockklasse, hauptsächlich den Kobaltlampenblock. Anstatt es also so zu machen , dass Sie mit der rechten Maustaste klicken können , um dies im Grunde ein- und auszuschalten. Was wir tun werden, ist, dass wir nur prüfen, ob ein Redstone-Signal auf diesen Block angewendet wird oder nicht. natürlich wieder einmal Unser bester Freund hier sind natürlich wieder einmal die externen Bibliotheken, hauptsächlich der Minecraft-Quellcode. Wenn wir also zweimal die Umschalttaste drücken und dann einen Blick auf die Redstone-Lampe werfen. Dies wird die Redstone-Lampe sein, um sicherzustellen, dass Nicht-Projekte enthalten angekreuzt ist. Sie können diesen hier sehen, seinen eigenen Lemma-Block, dann können wir ziemlich viel, und das ist Verrücktheit, tatsächlich über das meiste davon kopieren, das meiste davon, was hier geschrieben ist. Also wollten wir die Tick-Methode und auch die Methoden der Nachbar-Änderung. Diese beiden sind also im Grunde die einzigen Methoden, die wir brauchen. Also werden wir diese beiden aus dem Redstone-Lampenblock kopieren . Der gesamte Code wird natürlich auch im Repository und auch im Einzelnen verfügbar sein . Und wir müssen hier nur den Deckel wechseln um ihn abzuholen, weil wir ihn vor geklickt nennen. Und das sollte in Ordnung sein. Aber wir können dies auch hier in dieses Jahr ändern. Auch in diesem Jahr. Und dann auch hier, los geht's. Lassen Sie uns hier einfach eine Add-Override hinzufügen, nur damit wir wissen, dass wir diese Methoden für alle Fälle überschrieben haben , und das sollte in Ordnung sein. Jetzt möchte ich eigentlich, dass sich hier nichts ändert, also werden wir das einfach auskommentieren. Das sollte auch in Ordnung sein. Und jetzt ist das eigentlich so ziemlich alles, was wir in diesem Fall tun müssen . Was macht das eigentlich? Stimmt's? Weil du vielleicht so bist, ist das irgendwie seltsam. Nun, zuallererst wird die Methode der Nachbarn geändert ziemlich selbsterklärend sein. Dies wird jedes Mal aufgerufen, wenn sich ein Nachbar dieses bestimmten Blocks ändert. Was es dann macht, ist es, hey, genau wie jeder Nachbar hier ein Signal hat, oder? Es wird also im Grunde sagen, dass es vor allem den Wert von Clicked bekommen wird. Das ist fair, fair genug. Das stimmt. Also sind wir gerade dran, richtig. Dann wollen wir grundsätzlich überprüfen, hey, ist das, wir auch, haben wir kein Nachbarsignal, wenn wir dran sind? Denn was wir dann tun wollen, ist, dass wir diesen besonderen Rock als allgemeine Idee ausschalten wollen. Dies ist etwas kompliziert in der Art und Weise, wie dies grundsätzlich formuliert wird. Aber das ist die allgemeine Idee. Das geplante Häkchen plant ziemlich einfach ein Häkchen, wenn wir tatsächlich darauf eingehen. Und das ist mit den Nicht-Map-Parametern etwas schwer zu lesen . Die allgemeine Idee ist nur, dass wir im Grunde ein Häkchen planen und dann die Tick-Methode hier aufgerufen wird. Tick-Methode hier wird in diesem Fall erneut überprüft, ob unsere eigene ist oder nicht und ob der Nachbar nicht eingeschaltet ist, ob es kein Signal für den Nachbarn gibt , falls dies der Fall ist, desto mehr setze diesen Block auf „Sein“, und wir fahren tatsächlich durch das Verlinkte hier. Wir können also tatsächlich einen Blick darauf werfen was der Radfahrer von Nixon Collection, was das so ziemlich einfach tut ist, dass es das angeklickte umkehrt. Es ist also das Gleiche, was wir hier mit dem aktuellen Zustand gemacht haben und ihn dann negiert haben, es ist dasselbe. Wir fahren einfach durch das Rad. Das ist also alles, was wir tun. In diesem Fall fast keine Änderung des Codes von Vanille. In diesem Fall, nur die Beleuchtung zu ändern haben in diesem Fall zwei geklickt. Und das ist so ziemlich genau das. Wir wollen es auch tun, dass ich die folgende Systemausdruckzeile hinzufügen wollte die folgende Systemausdruckzeile , nur damit wir das sehen können. Also können wir hier drüben sagen, wir das einfach, um „powered by“ zu sagen. Und dann werden wir sagen, wenn ich P-Level sage, bekomme ein Signal für beste Nachbarn. Siehst du, wir geben gerade die Position vorbei. Aber was ist der beste Nachbar? Siegel? Was ist das beste Nachbarsignal? Nun, das beste Nachbarsignal stammt einfach von allen seinen Nachbarn, was das stärkste Signal hat. Und wir geben im Grunde nur das eigentliche Signal von diesen bestimmten Nachbarn aus. Das ist also eine Ganzzahl. Sie können sehen, wo es 15 ist, ist die höchste Signalstärke , die Redstone haben kann. Wenn also einer der Nachbarn 15 hat , werden wir 15 ausgeben. Wenn es ein schwächeres Signal gibt, geben wir das aus. Lass uns einfach ins Spiel gehen und sehen, was das tatsächlich bewirkt. Oder Frankreich oder in Minecraft. Und ich habe es schon eine Kobaltlampe aufgestellt. Versuchen wir es einfach mit einem Level. Zuallererst gehst du los. Ich kann es ein- und ausschalten, also funktioniert das. Und ich kann Redstone auch dazu bringen. Und das funktioniert auch. Wenn ich jetzt mit der rechten Maustaste darauf klicke und dir intelligent zeige, kannst du sehen, powered by 14. Warum ist es 14? Nun, natürlich, denn das wäre 15 Stärke und das wäre 14 Stärke. Schalten Sie das jetzt auch ein , oder? Also der Hebel dann in C, jetzt wird er von angetrieben. Das ist also so ziemlich alles, was es dazu gibt. Auf diese Weise können Sie eine bestimmte Blockstatuseigenschaft ändern eine bestimmte Blockstatuseigenschaft , wenn Sie Redstone darauf anwenden. Und das ist so ziemlich alles, was Sie brauchen, wenn Sie dann spezielle Funktionen dazu haben möchten. Nun, dann müssen Sie natürlich diese Blöcke nehmen, sagen Sie beispielsweise Eigenschaften, die sich ändern und tun etwas mit ihnen. Aber das ist so ziemlich alles machbare. So einfach ist es , einen Block mit etwas Redstone-Funktionalität des Spiels hinzuzufügen . Wie immer ist der gesamte Code auch im Repository nur und im GitHub-Repository verfügbar . Und wir sehen uns allerdings alle in der nächsten Vorlesung. Ja. 122. (1.18.2): Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir einen Blick auf Blockentitäten werfen, die uns rendern. Nun, dies ist ein sehr interessantes Thema , mit dem Sie im Grunde genommen einige benutzerdefinierte Dinge auf Ihre Blockentitäten rendern auf Ihre Blockentitäten Jetzt importieren wir ein benutzerdefiniertes Blockmodell aus eine Blockbank. Also habe ich das schon vorbereitet. Es nennt sich ein Podest. Und was wird es tun können, ist, dass wir mit einem Gegenstand mit der rechten Maustaste klicken können und dann wird der Gegenstand auf dem Sockel schweben. Das ist die allgemeine Idee dieses speziellen Beispiels hier. Und es wird wirklich, wirklich verdammt genial werden. Die Blockbench-Datei wird natürlich auch verfügbar sein. Und wenn Sie dies haben, möchten Sie zur Datei gehen und das Blockelementmodell genau hier exportieren. Wir werden nur den Sockel exportieren, dass Jason. Okay, das wird gut werden. Und dann können wir fortfahren. Es wird also natürlich unsere Blockmodell-JSON-Datei geben . Aber lasst uns zuerst einen Block, die Blockentität und all die Verrücktheit schaffen die Blockentität und all die Verrücktheit , die es mit sich bringt. Fangen wir mit der eigentlichen Blockklasse an. Wir klicken also mit der rechten Maustaste auf eine neue Java-Klasse in unserem benutzerdefinierten Blog-Paket. Und das wird vor einiger Zeit der Sockelblock sein. Jetzt wird dies die Basis-Entitäts-Block-Klasse genau hier erweitern . Es wird mit der Maus über diese Implementierungsmethoden, die neue Entitätsmethode, bewegen. Und dann bewegen wir den Mauszeiger wieder, erstellen einen Konstruktor, der super passt. Wenn der Parameter hier Sie ärgert, Umschalttaste F6, um ihn in Eigenschaften umzubenennen , und dann sollte alles in Ordnung sein. Das erste, was ich tun möchte, ist, dass ich hier einen absichtlichen Fehler machen möchte , damit wir nicht vergessen, dies zu ändern, nachdem wir die Block-Entität erstellt haben , weil dies manchmal passiert. Und was ich auch tun werde, ist, dass ich den Rest des Codes hier kopieren werde . Das ist also nicht allzu verrückt. Es mag also viel aussehen, aber es ist eigentlich nicht zu verrückt. Wir erhalten hier auch einen Fehler, weil wir nicht über das Block-Entitätsguthaben verfügen, aber das ist in Ordnung. Das erste , was unglaublich wichtig ist, da sie die Render-Schame-Methode bekommen und der gesamte Code hier ist natürlich auch wertvoll. Holen Sie sich genauso gut einen Pastor im Einzelnen. also keine Sorgen. Aber die retinaförmige Methode ist am wichtigsten, sonst wird Ihr Block unsichtbar sein. Das ist also sehr wichtig. Sie verwendeten natürlich Methode, ist die Methode, die aufgerufen wird, wenn Sie mit der rechten Maustaste auf diesen bestimmten Block klicken. Und was passiert hier ist , dass wir im Grunde nur überprüfen, hey, gibt es irgendetwas in diesem Inventar? Wenn es leer ist, nehmen wir nur den Gegenstand, der sich in der Hand des Spielers befindet , und fügen ihn hier zum Inventar hinzu. Also Sockel zum Spieler-Objekt, kopiere es und dekrementiere es. Wir bekommen auch das Abspielen des Item-Pick-up-Sounds , weil das hier nur ein bisschen schöner ist. Und wenn der Sockel nicht leer ist , spawnen wir den Gegenstand im Grunde vom Sockel und löschen ihn auch vom Sockel. Aber das sind in diesem Fall nur drei kleine private Helfermethoden, und der Rest passiert in den verwendeten Methoden. Insgesamt ist die eigentliche Funktionalität hier nicht so verrückt, alles in Betracht gezogen. Jetzt brauchen wir natürlich immer noch die Block-Entität, also holen wir uns auch die Bucheinheit. Lassen Sie uns also eine neue Klasse und das Entitätspaket erstellen, dies wird die sockellose Entität sein. Und lasst uns zuerst hier wichtig sein. Also los gehst du. Wir können das einfach importieren. Und dann wird es uns nur eine Sekunde gut gehen. Dieser Fehler wird verschwinden, sobald wir alles hier implementiert haben. Was brauchen wir hier? Nun, zuallererst muss dies natürlich die Block-Entitätsklasse erweitern. Sollte nicht zu verrückt sein. Und lasst uns den Konstruktor erstellen, der super passt. Und dann ist die Frage, naja, was brauchen wir? Nun, wir brauchen tatsächlich einige Dinge. Noch einmal werde ich diese kopieren, aber keine Sorge. All dies ist im GitHub-Repository und auch individuell verfügbar . Diese beiden sollten nicht verrückt sein. Wir haben dies auch in den Akkordalblasten oder Blockentitäten gesehen . Nur der Item-Stack-Handler hier, im Grunde unser Inventar dieser bestimmten Rock-Entität. Und dann brauchen wir den Laser auch optional, damit wir ihn auch über die Fähigkeiten verfügbar machen . Dann lassen Sie uns hier einige Hilfsmethoden kopieren denn was Sie finden werden, ist, dass wir hier auch eine Rotation haben. Warum haben wir die Rotation hier drüben? Nun, denn was wir tun wollen, ist, dass wir jede der verschiedenen Blockentitäten wollen, wenn das Element da ist, wir möchten, dass es sich dreht. Und die Rotation hier wird in diesem Fall tatsächlich auf der Block-Entität gespeichert. Wir müssen es genau hier speichern, denn wenn wir es im Entitäts-Renderer speichern, funktioniert das nicht, da jede Block-Entität im Grunde einen Renderer teilt. Und dann lässt jede Block-Entität, die Sie hinzufügen, einfach Drehung im Grunde genommen schneller. Jede Block-Entität braucht also ihre eigene Rotation, aber das ist in Ordnung, oder? Wir haben hier keine Rotation hinzugefügt. Wir würden einfach eine Rotation hinzufügen, wenn sie 360 erreicht, dann setzen wir sie einfach auf 0 zurück. Wenn es weniger als 0 ist, fügen wir es einfach hinzu. Im Grunde drehen wir es einfach um. Das ist die allgemeine Idee. Und dann haben wir hier eine Get Rotation Methode, aber nichts zu verrückt. Fügen wir dann die Funktion sowie die Speichern - und Lademethoden hinzu. Aber wieder einmal sollten diese auch nicht verrückt sein. Sie erhalten Fähigkeiten, die wir auch in der benutzerdefinierten Entität gesehen haben , sowie die sicheren zusätzlichen und niedrigen Methoden für das Tag, bei dem wir gerade das Inventar gespeichert haben. Wenn wir also die Welt verlassen und wieder reingehen, wird das eigentliche Inventar immer noch gespeichert, oder? Und dann sind die letzten Methoden , die wir hier auch brauchen , die Drops-Methode, oder? Das sind also nur die Methoden, damit die Dinge tatsächlich sinken. Das wollen wir also in nur einem Moment im Block umsetzen . Und dann haben wir auch die Invalidate caps-Methode, die onload-Methode, mit der wir die Update-Paketmethode erhalten haben und sie erhalten eine aktualisierte Tag-Methode. Jetzt sind diese beiden wichtig, um die Lager für ungültig zu machen und dann entladen, damit der eigentliche Item-Handler ordnungsgemäß initialisiert wird und all das. Nun sind diese beiden wichtig, da es sonst einem Synchronisierungsproblem zwischen dem Server und dem Client kommen könnte. Deshalb brauchen wir beides. Und wir wollen im Grunde die Update-Steuer erhalten. Also wollen wir hier ein Tag bekommen und es dann einladen und dann zurückgeben. Also das Nun, es ist nicht zu verrückt, aber wisse einfach, dass wir das brauchen. Andernfalls sinken der Client und der Server nicht ordnungsgemäß, und dann wird das eigentliche Element gespeichert, aber es wird nicht geteilt. Deshalb brauchen wir diese beiden Methoden auch, oder? Dann lass uns für einen Moment zum Block gehen und lass uns hinzufügen, du kannst sehen, wie der Pfeil hier verschwindet. Und ich füge hier auch die onRemove-Methode hinzu, die die Drops-Methode aufruft , die wir gerade hier implementiert haben. Theoretisch müssen wir also nicht einmal eine for-Schleife machen, aber das wird gut. Es wird okay sein. Dies ist die gleiche Drops-Methode, die wir in den Chloroplasten - oder Block-Entity haben . Und das ist eigentlich alles, was wir innerhalb der Block-Entität brauchen. Insgesamt ist es nicht zu verrückt und es ist nicht zu kompliziert. Im Grunde nur einige der Dinge, die wir brauchen, um die Daten dort zu speichern. Dann gehen wir tatsächlich in die Mod-Block-Entitäten-Klasse und registrieren wir sie. Aber wir werden es einfach tun, lasst uns die Genossenschaft letzte Reihe nehmen. Wir werden dies nur in die Header-Store-Block-Entität hier kopieren . Dies wird auch das Podest sein. Sockel. Da gehst du. Dann natürlich, den Namen hier zu ändern, sehr wichtig , als wir dies brauchen, um die Sockelblock-Entität zu sein. Und das muss der Sockel sein , der noch nicht umgesetzt ist , aber das ist in Ordnung. Lasst uns nun auch noch einmal in die Sockelblock-Entität gehen. Denn natürlich müssen wir den Konstruktor hier ändern. Sonst wird es nicht funktionieren. Wir werden ihn dann sehen wollen, aber schauen Sie, Entitäten, die das Ego immer noch nicht bekommen und jetzt sollten die Blockentitäten in Ordnung sein. Wir müssen jetzt das eigentliche Buch registrieren. Das wird gut sein , dass es in unserem Blog-Kurs sein wird , mehr Block-Klasse hier. Gehen wir einfach ganz nach unten. Kopieren Sie über das Winterfenster. In diesem Fall wird dies der Sockel und natürlich auch der Name sein , Sockel. Und das wird das Podest sein. Glück. Jetzt ist dies geschützt, also müssen wir dies in eine Öffentlichkeit umwandeln. Da gehst du. Und dann können wir das auch machen. Da gehst du. Völlig in Ordnung. Das wird kopiert. Wie wäre es eigentlich nicht zu kopieren Wie wäre es , ein Material zu diesem Stein zu nehmen, ich denke, dass das den sinnvollsten materiellen Stein ergeben würde . Und es wird zu unserer benutzerdefinierten Creative-Registerkarte hinzugefügt. Das ist in Ordnung. Dann können wir wieder zum Sockelblock zurückkehren und Mod-Block-Entitäten aufrufen, die Sockelpunkt, Punkt erzeugen, die Position und den Zustand hier drüben übergeben . Und der Block sollte auch gemacht werden. Und dann die Modusblock-Entitäten, diese ist jetzt auch kein Fehler mehr und alles sollte gut funktionieren. Das ist absolut großartig, aber wir haben immer noch nicht die Darstellung unserer Welt. Wir haben grundsätzlich keinen Kunden-Block-Entitäts-Renderer. Nun, lasst uns in unserem Entitätspaket ein neues Paket namens Client erstellen. Und statt dort werden wir eine neue Java-Klasse erstellen, die als Sockelblock, Header-Speicherblock und Entitäts-Renderer bezeichnet wird. Und dies wird den Buch-Entitäts-Renderer erweitern, dieser hier vom Typ Sockel Bulk Entity. Lassen Sie uns den Mauszeiger darüber bewegen, Methoden implementieren, die Render-Methode in diesem Fall. Und dann wollen wir dies auch tatsächlich in Implements anstelle von Extends ändern. Eigentlich ist das ein guter Punkt , denn dies ist eigentlich eine Schnittstelle. Wir brauchen auch einen öffentlichen Sockelblock-Entity Renderer mit einem Block, mit einer Buch-Entity Render-Up-Anbieter. Dieser hier, dieser Kontext oder Kontexte, und das wird in diesem Fall unser Konstruktor sein. Jetzt kopiere ich noch einmal den Inhalt der Render-Methode. All dies steht Ihnen wieder zur Verfügung und das sollte sein, dies sollte ziemlich einfach sein , alles in Betracht gezogen. Zunächst einmal bekommen wir den Item-Renderer direkt hier von Minecraft selbst. Und dann sagen wir, okay, gib mir den Stapel, der hier drin ist, und dann machen wir ein paar Verrücktheit. Die allgemeine Idee ist, dass der Stapel hier ziemlich einfach das Rendern durchführt, grob gesagt. Und was wir im Grunde tun, ist, dass wir den eigentlichen Stapel nur nach oben und unten bewegen lassen. Das wird also R sein, das wird der Gegenstand sein. Wir werden es auf und ab machen. Wir werden es hier auf die Größe skalieren. Und dann kriegen wir auch eine Rotation. Dies dreht also nur den Gegenstand um die Y-Achse. Das ist so ziemlich all diese drei Dinge sie nicht tun, werden das eigentliche Element hier rendern, und dann müssen wir den Stapel erneut knallen , und dann sollten wir es gut gehen. Dann fügen wir im Grunde eine negative Ein-Rotation hinzu, so dass jedes Mal, wenn dies im Grunde genommen jedes Mal genannt wird , grob gesagt, oder? Jedes Mal, wenn dies heißt, haben wir uns im Grunde um minus einen Grad gedreht , so dass es eine sanfte Rotation wird. Sobald du tatsächlich siehst, dass das nicht zu verrückt sein sollte, solltest du nicht zu kompliziert sein. Alles in Betracht gezogen wird, ist eigentlich ziemlich einfach. Jetzt muss der Blockentitäts-Renderer tatsächlich zu einem bestimmten Ereignis hinzugefügt werden. Und dafür brauchen wir tatsächlich eine neue Klasse. Dies werden die Client-Mod-Events sein, und ich werde dies noch einmal kopieren. Aber das ist noch einmal sehr einfach. Sie sehen, dass Sie den Add-Modus-Ereignisbus-Abonnenten an der Spitze der Klasse benötigen , sind wichtig, dass dies sowohl die Mörtelbalken als auch der Wert dist Dot Client sind. Dies ist äußerst wichtig, sonst funktioniert es nicht richtig. Sie benötigen dann natürlich eine öffentliche statische Methode mit einem Attribut für Abonnenten. Und wir brauchen die Entitäts-Renderer, Ereignisregister-Renderer. Wir haben dann einfach den Blockentitäts-Renderer bei der Sockelblock-Entität und dem Standblock-Entitäts-Renderer registriert der Sockelblock-Entität . Das ist alles, was wir tun müssen. Und jetzt ist der eigentliche Render auch richtig registriert. Das letzte, was wir jetzt brauchen, sind nur zwei. Fügen Sie die JSON-Dateien hinzu. Sie können sehen, dass wir keinen Bildschirm oder Menü hinzugefügt haben, da unsere Bucheinheit in diesem Fall tatsächlich keinen Bildschirm oder ein Menü hat. Lass uns einfach über den Sockel kopieren Jason hier drüben, sollte nicht zu verrückt sein. Der Blockstaat ist Jason ziemlich selbsterklärend? Gleiche gilt für die Übersetzung dieses Punktes. Diese Dinge sollten, ich meine, an dieser Stelle nicht einmal eine Frage sein sollten. Das ist einfach eine sehr einfache Sache. Wir werden das hinzufügen. Fügen wir die JSON-Datei des Blockmodells hinzu. Das wird also derjenige sein, den wir tatsächlich von einer Blockbank genommen haben. Lassen Sie uns das auch kopieren und dann sehen, was wir hier ändern müssen, ist der glatte Stein, denn dieser befindet sich unter dem Minecraft-Schrägstrich unter Mikroblock. Stellen Sie also sicher, dass Sie dies bei beiden ändern. Und dann ist die JSON-Datei des Artikelmodells auch ziemlich einfach. Dies ist im Grunde noch einmal, zeigt auf die Jason-Datei des Blockmodells zurück, und das ist es so ziemlich genau. In diesem Fall ist keine Textur erforderlich , da wir die Minecraft-Texturen tatsächlich glatten Stein nehmen , das sollte auch in Ordnung sein. sind also alle Schritte, die wir tun müssen, um unsere benutzerdefinierte Entität hierher zu bringen und sie im Grunde mit einem speziellen Block-Entitäts-Renderer zu haben . Lasst uns also in die Welt gehen und sehen, ob es funktioniert. Okay, fantasiere wieder in Minecraft und du kannst sehen der Sockel erfolgreich zum Spiel hinzugefügt wurde. Lassen Sie uns also einfach ein paar von ihnen niederlegen und sehen, was wir sehen können. Wenn ich also mit der rechten Maustaste darauf klicke, sollten wir das Kobalt nicht haben. Kobalt erscheint genau hier auf dem Sockel und einer von ihnen sollte aus meinem Inventar verschwinden. Und genau das passiert. Machen wir einfach das Gleiche für alle von ihnen. Aber vor ihnen, manchmal könnte man diese seltsamen Render-Pfeile genau hier bekommen. Das ist also etwas , bei dem ich mir nicht hundertprozentig sicher bin , warum das der Fall sein könnte. Also denke ich, dass es etwas mit den Schatten und so zu tun hat. Also lasst uns einfach sehen, ob sich das ändern könnte. Wenn ich das mache. Aber das ändert es nicht. Aber wie gesagt, da ist es manchmal ein bisschen wackelig daneben mit einem Rendering. Und ich werde ehrlich sein, ich bin kein weiterer Experte für Rendering. Rendering ist eigentlich eines dieser Dinge, bei denen, ähm, sagen wir einfach, das heißt, ich würde nicht meinen schlimmsten Albtraum sagen, aber es ist definitiv keine Sache , die mir besonders gefällt. Also ja, aber insgesamt funktioniert es immer noch ziemlich gut und ziemlich cool. Und es ist eine Sache , die sich bildet. Es ist ziemlich genial. So einfach kann es sein, ein Block-Entitäts-Renderer-Mikrofon hinzuzufügen . Wie immer steht Ihnen natürlich der gesamte Code im GitHub-Repository zur Verfügung und auch individuell. Und wir sehen uns alle in der nächsten Vorlesung. Also ja. 123. (1.18.2) Loot in benutzerdefinierten Strukturen: Alles klar, willkommen zurück zum Schmiedekurs für 118. Und in dieser Vorlesung werden wir uns ansehen, wie Sie Ihren Kundenstrukturen eine benutzerdefinierte Belastung hinzufügen können . Was ich also getan habe, ist, dass ich hier im Kabinenhaus hervorgebracht habe, nur damit wir eine Struktur haben und sie auch in einem Moment retten werden . Aber wir werden es tun, wenn wir eine Truhe hinunterlegen und sie mit etwas zufälliger Beute füllen werden. Jetzt ist die Frage, wie funktioniert das? Was kannst du nicht tun? Und das ist die Sache , die manche Leute versuchen. Sie nehmen einfach die Truhe und legen sie dann einfach ab und dann gleich. Warum ist da keine zufällige Beute drin ? Nun, das funktioniert nicht. Was müssen Sie tun, ist, dass Sie die Truhe tatsächlich über einen Befehl besitzen müssen , oder? Also habe ich den Befehl bereits vorbereitet und was du tun kannst ist, dass ich das im Grunde verfügbar mache und es wird nicht so verrückt sein. Was Sie also sehen können, ist, dass an Ihrer aktuellen Position nur weniger eingestellten Block vorhanden ist . Du stehst als Minecraft-Brust zugewandt. Also willst du es einfach irgendwie ins Gesicht bringen. Und lasst uns das tatsächlich einfacher machen. Lasst uns das einfach nach Osten richten. Und dann sieht man geschweifte Klammern, Beute, Tisch, Minecraft, Truhen, einfache Kerker in diesem Fall, lass uns das einfach ausführen. Jetzt. Es deutet tatsächlich auf die falsche Richtung hin, aber das ist in Ordnung. Hier geht es nur darum, das Gesicht zu ändern. Und wenn wir das öffnen, können Sie sehen, dass es da ist. Also etwas zufällige Elute. Jetzt ist die eigentliche Frage das. Wenn ich das jetzt speichere, ist das zufällige Beute? Nein, denn wann, sobald du es öffnest, wird es elutt. Tabelle erzeugt tatsächlich etwas Beute. Jetzt wird jedes einzelne der Häuser diese Beute drin haben. Was Sie also tun müssen, ist, dass Sie es nicht öffnen müssen. Was Sie also tun müssen, ist, dass wir einfach hier runter gehen. Also lasst uns das einfach machen, glauben, dass dies Süd sein sollte, tatsächlich diesen nach Süden erzeugen. Okay, das stimmt auch nicht ganz. Also lasst uns das tun, richtig, lass uns das mit dem Norden generieren, ich denke, dann sollte es im Norden sein. Und ich zeigte in die richtige Richtung und öffne sie nicht. Andernfalls verfestigen Sie tatsächlich , was sich die Schleife darin befindet. Das funktioniert also nicht. Also musst du es einfach dort behalten und du musst so sein, ich weiß nicht ob es funktioniert, es wird funktionieren. Mach dir darüber keine Sorgen. Dann können wir das speichern. Und Sie können dies entweder tun, wenn Sie es geladen haben oder Sie können es auch mit einer Eck- und Häutungsmethode tun. Wenn du es tatsächlich baust, kannst du einfach eine Truhe wie diese hinzufügen und dann speichern, damit wir zum Speichern gehen können. Außerdem werden wir hier nur Save sagen, und dann wurde dies gespeichert. Jetzt können wir es in der Intelligenz ersetzen. Also schauen wir uns einfach genau dort an. Aber noch einmal wollen wir zum Run-Ordner speichern gehen, und dies sollte der lächerliche Ordner innerhalb des generierten sein, wir haben den Calvin, wie geht's NVT? Und wir wollen den Datenordner, MC-Kursstrukturen ändern . Wir haben die Zählung mein Haus, und wir wollen nur das eine durch das andere ersetzen. Also werde ich das einfach kopieren, überschreiben , und das ist alles, was wir tun müssen. Jetzt haben wir die Beutetruhe noch einmal nicht geöffnet. Die Schleife sollte also grundsätzlich jedes Mal generiert werden, wenn das eigentliche Haus generiert wird. Wir sollten also nicht die gleiche Schleife in zwei verschiedenen Häusern haben . Lasst uns also einfach eine neue Welt erschaffen und sehen, ob es funktioniert. Alles klar, wir sind Mikrofinanzierung New World und mal sehen, es gibt die erste Zählung, mein Haus, und wir haben die Truhe hier drüben. Du siehst also, dass wir ein Musik-Discs haben. Ein paar Schießpulver ist es. Okay, das ist in Ordnung. Lasst uns also ein neues Säulenhaus finden und mal sehen, ob wir auch dieselben Musikdisketten finden können oder ob es etwas anderes gibt. Es gibt also ein neues Camp Meilen und hoffen wir einfach , dass die Schleife dort anders ist, aber ich bin mir ziemlich sicher, dass es da sein wird, wo wir gehen, eine ganz andere Ladung. Also genau das, was du dir wünschen würdest. Was also wichtig ist, ist, dass wir natürlich die KO-Maus MET benutzen, aber wir haben den einfachen Kerker benutzt. Das ist also derjenige, der tatsächlich an einem Beispiel hier ist , oder? Das ist also der eigentliche Befehl hier. Sie können den einfachen Kerker der Truhen sehen und Sie können jede andere Art von Ladetabelle verwenden. So können Sie auch Ihre eigenen kleinen Tische und Referenzen erstellen. sind sie, aber das ist natürlich etwas , das Sie auch für sich selbst tun können. Und so einfach ist es so ziemlich einfach, Ihren Strukturen eine benutzerdefinierte Beutentruhe 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. 124. (1.18.2) Fehler beheben: Alles klar, willkommen zurück zum Futterkurs für 118. In dieser Vorlesung werden wir nur einige kleine Fehler beheben, die ich im Laufe dieses Kurses im Grunde genommen gemacht habe . Mit der Anzahl der Vorträge, die wir haben, gibt es natürlich ein paar Fehler hier und da. Der erste wird also im Mod-Rüstungsobjekt sein. Das wird sehr interessant sein und das ist die richtige Rüstung auf Methode. Denn was wir tun wollen, ist, dass wir es durch Folgendes ersetzen wollen. Also wollen wir im Grunde bei dieser for-Schleife hier drüben hinzufügen , die die Rüstung durchläuft und überprüft ob die Rüstung tatsächlich ist oder nicht, die Gegenstände sind tatsächlich Rüstungsgegenstände. Und wenn einer von ihnen nicht der Fall ist, werden wir sofort falsch zurückgeben. Nun der Grund, warum wir das tun wollen, wenn wir unseren Rüstungsgegenständen ein Elektron oder einen Kürbis hinzufügen würden , im Grunde genommen in unserem Rüstungsinventar, dann würde das Spiel abstürzen, weil wir es versuchen wirf es auf einen Rüstungsobjekt und das funktioniert nicht. Deshalb wollen wir im Grunde damit umgehen und dann sollte es uns gut gehen. Das zweite, was wir ändern wollen, ist die MC-Kurse-Mod-Klasse. Und was wir tun wollen, ist, dass wir die gesamte Client-Setup-Methode verwenden möchten und im Grunde genommen das, was hier ausgewählt ist, Umschalttaste gedrückt halten, hier klicken und dann Strg X drücken, um es auszuschneiden. Sie können diese Zeile dann hier löschen und wir möchten in die Event-Klasse gehen , um weitere Events zu finden. Hoffentlich haben Sie dies in der letzten oder vorletzten Vorlesung erstellt , wir werden die Denkweise der Methoden hier einfügen. Wir möchten dies so ändern, dass es öffentlich und statisch ist, und wir möchten diese Abonnement-Veranstaltung ebenfalls hinzufügen. Warum brauchen wir das jetzt? Nun, nur für den Fall, dass das Client-Setup-Ereignis normalerweise nur auf den Client aufgerufen wird. Die MC-Kurse-Mod-Klasse ist jedoch tatsächlich eine übliche Klasse. Dies wird also sowohl auf dem Client als auch auf dem Server aufgerufen. Und es kann manchmal passieren , dass durch einige Java Mumbo-Jumbo im Grunde einige dieser Klassen auch auf dem Server aufgerufen werden, wodurch der Server dann zum Absturz bringt. Und das ist natürlich nicht das, was wir wollen. Um sicher zu sein, fügen Sie dies den Klimaereignissen hinzu. Wichtig ist, dass dies ein Mob-Boss ist und auch mit dem Value-Desktop-Client, und dann sollte es ihr gut gehen. Und zu guter Letzt haben wir etwas im Dowsing Rod Item. Und zwar die Art und Weise, wie wir uns Tags im Grunde ansehen können. Dies ist also eine gültige Methode , um grundsätzlich zu prüfen, ob sich der jeweilige Block hier in diesem Tag befindet oder nicht . Das ist jedoch wahnsinnig kompliziert und wir können es ein bisschen einfacher machen. Anstatt also hier einen Block zu erwarten, wollen wir tatsächlich einen Blockstatus, oder? Blockieren Sie also den Status, ändern Sie dies in Status. Und wenn wir es dann wollen, löschen wir einfach all diese Verrücktheit und wir werden darüber in einem Moment Sorgen machen. Zuallererst, wie bekommen wir den Staat in der „ist wertvollen Blockmethode“? Also werden wir hier einen Fehler bekommen , weil wir einen Block haben. Jetzt wollen wir dies ändern , um den Blockstatus zu sein. Und anstatt Blood Get Block hier zu nennen, werden wir einfach den Blockzustand kriegen. Wir werden dies ändern, um blockiert zu bleiben und dann das Gleiche hier, nicht blockiert zu werden. Und das sind alle Anforderungen, die wir hier ändern müssen. Und dann in der ist wertvollen Blockmethode, was wir tun können, ist , dass wir den Zustand zurückgeben können ist mehr Tags, die die Wertsachen der Wertsachen der Dowsing Rod blockieren. Jetzt ist das viel einfacher als das, was wir vorher hinzugefügt haben, und das wird so ziemlich alles sein , was ich dir zeigen wollte. Dies wird auch so ziemlich den 118-Teil des gesamten Kurses hier abschließen . Danach wird es also auch ein neuntes Update geben. Es wird also im Grunde genommen geben, wie Sie all die verschiedenen Dinge , die da drin sind, mit vielleicht ein oder zwei verschiedenen Dingen aktualisieren die verschiedenen Dinge , die da drin sind, mit , wenn sie noch nicht entdeckt werden , wie einfach sie in 119 zu tun sind, aber das wird danach folgen und dann ist der Kurs trotzdem ziemlich erledigt. 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. 125. 1.18.2 UPDATE AUF 1.19: Alles klar, willkommen zurück zum ersten Kurs für 118. In dieser letzten Vorlesung werden wir unser Projekt aus den 1890ern aktualisieren. Zum Glück ist das Update aus den 1890er Jahren nicht das verrückteste. Ich habe viel schlimmere Updates zwischen der Vergence gesehen, aber es gibt immer noch einige Dinge, die komplett geändert werden. Und ich glaube , es gibt mindestens eine Sache , die überhaupt nicht funktioniert, aber so wird es sein. Also navigieren wir einfach zur gebauten oder Gradle-Datei hier unten zu unseren Abhängigkeiten hier drüben wo wir die Minecraft-Schmiede haben. Und was sehr wichtig ist, ist, dass Sie Ihr gesamtes Projekt sichern . Denn wenn Sie es nicht sichern lassen , können Dinge passieren. Sie könnten Ihr Projekt brechen, wenn Sie aktualisieren. Haben Sie entweder ein GitHub-Repository, erstellen Sie einen neuen Zweig , damit Sie alles gespeichert haben , oder kopieren Sie einfach das gesamte Projekt, damit Sie es sichern können. Ich empfehle dringend , das jetzt zu tun , um die Futterabhängigkeit hier zu ändern? Nun, es ist eigentlich nicht so verrückt. Was wir tun wollen, ist, dass wir es auf 41038 ändern wollen, natürlich 119. Das ist also die neueste Version für Sie. Es wird hier wahrscheinlich weiter fortgeschritten sein , aber das wird gut. Immer kannst du immer die neueste Version verwenden und das wird okay sein. Also lasst es uns einfach da drüben ändern. Also lass uns zurückgehen und das wird 119 Strich und dann 41038 sein. Da gehst du. Und das ist die Version, auf die wir wechseln wollten. Wir wollen auch die Gecko-Lippe hier aktualisieren. Also wird das jetzt einen Strich aus dem Jahr 193119 schmieden. Da gehst du. 1313. Da gehst du. Ich glaube, das sollte das neueste sein. In diesem Fall. Es kann einfach auf Gecko-Lippe nachgeschlagen werden. Sie können die Version ganz einfach hier im Gecko Lip GitHub Repository finden . also keine Sorgen. Und nachdem wir diese beiden geändert haben, klicken wir einfach auf Gradle-Änderungen laden. Und dann wird es wieder Sachen bauen, Sachen herunterladen, all den gleichen Jazz, den wir ein paar Mal gemacht haben, besonders am Anfang von all dem. Empfehlen Sie daher dringend, geduldig zu bleiben lassen Sie dies einfach alle Fehler durchlaufen, alles Rote, die meiste Zeit, sicher ignoriert werden. Und dann werden wir sehen, sind wir da, bauen wir erfolgreich in zwei Minuten und 28 Sekunden. Jetzt sind wir in der Build-Up-Gradle-Datei noch nicht ganz fertig , weil wir sie auch in die Pergamentzuordnungen ändern wollen . Wir haben also Pergament für dieses hier, und wir möchten es auf Folgendes ändern. 1182022 oder sechs oder 5119. Das bringt also einfach die 119 offiziellen Mappings in Overlays aus dem 19. Jahrhundert zu Pergamentzuordnungen darüber. Und dann werden wir ungefähr Pergamentzuordnungen für 119 haben. Nicht alles wird perfekt abgebildet, aber das ist, glaube ich, die neueste Version, die wir haben, dass es noch keine 119 Version gibt. Wieder einmal können Sie sich natürlich einfach das Pergament-Repository ansehen und sollten nicht, Sie sollten dort etwas finden können. Lasst uns das einfach noch einmal laden, radiale Änderungen und das sollte nicht allzu lange dauern. Ich hoffe nicht noch zwei Minuten, aber mal sehen. Warten wir einfach noch einmal und warten geduldig hier. Und dann wird es uns gut gehen. Okay, los geht's. Build erfolgreich in einer Minute und 37 Sekunden. Also wird es uns jetzt gut gehen und alles ist eingerichtet. Aber jetzt lasst uns in die MC-Kurse-Mod-Klasse springen und wir werden hier sofort mit einem winzigen Pfeil begrüßt. Und das sind nur die Importe. Sie können also sehen, dass ich hier immer noch Sachen in den Importen habe, aber keine Sorge, ob mit den Eingaben etwas nicht stimmt. Sie können sehen, wie die drei Punkte hier rot werden. Grundsätzlich können Sie einfach Control Alt O drücken und dann wird alles in den Importen, im Grunde genommen gelöscht , was wir nicht brauchen. Und vorerst ist hier nichts falsch, aber es wird ein paar Dinge geben, die in anderen Klassen falsch sind. Normalerweise können wir einfach in den Unterricht gehen. Ich glaube, dass die erstklassige Klasse bei der wir ein Problem haben werden, tatsächlich im gedrehten Säulenblock mit Flammenkugel liegen wird . Interessanterweise, oder wir müssen uns hier ändern nur die Parameter hier drüben. Also kopiere ich das einfach vorbei. Wieder einmal ist hier natürlich alles im GitHub Repository verfügbar. Und in der Tat genauso gut, das wird jetzt im Stapel sein. Dies wird Kontext-Stack sein. Und dann werden wir einfach den Kontext genau hier passieren , und dann auch das Simulate genau hier. Sie sind her und das sollte das beheben. Nun, dieser ist fertig und ich glaube, der Rest sollte in Ordnung sein. Eigentlich blockiert Aldi Speedy, ja, weil der Animator tickt, weil wir jetzt nicht mehr den Zufall verwenden, aber wir verwenden die Zufallsquellenklasse aber wir verwenden die Zufallsquellenklasse hier von diesem Micro-View-Tool aus. Tu das einfach. Und dann geben wir hier nichts weiter. Und das wird auch gut werden. Das sollte also so ziemlich alles sein, was wir auch im SPD-Block tun müssen. Und ich glaube, das sollte alle Blöcke reparieren. Eigentlich. Ich glaube, der Rest ist in Ordnung. In der Tat scheinen sie in Ordnung zu sein , wenn es um die Entitäten geht. Ich glaube, sie sollten nur wie eine winzige Veränderung hier sein. Ja. Und das ist die Textkomponente , weil sich das gesamte Textsystem geändert hat. Glücklicherweise ist die Veränderung hier eine unglaublich einfache Komponente, die wörtlich ist, und los geht's. Und das war's. Das ist alles, was wir tun müssen. nur sicher, dass die Eingaben korrekt sind. Kontrolliere Alt O und dann ist der Rest hier gut. wir einfach sicher , dass der Rest hier auch in Ordnung ist . Und in der Tat ist es das. Also ist hier nichts Verrücktes los. Und Mod-Blöcke sind hier wieder nur die übersetzbaren Komponenten. Es ist also nur eine Komponente, die in diesem Fall übersetzbar ist. Und da sind wir los. Es ist also tatsächlich sehr einfach gemacht. Es ist also nichts Verrücktes los. Wir haben keine mündliche Blockade mehr . Das ist auch richtig, denn jetzt ist es tatsächlich ein Drop erfahrener Block, aber es funktioniert genauso . Noch einmal kontrollieren Sie Alt oder um die Importe loszuwerden. Und dann wird es uns gut gehen und der ganze Block. Das Paket ist tatsächlich fertig. Die Befehle werden sich auch in einem Moment etwas mehr ändern. Aber vor allem sind natürlich die Textkomponenten, die erste Komponente, wieder literal, **** und wörtlich. Da gehst du. Dann ist das Gleiche hier. Und dann glaube ich, dass wir das auch im Set haben , aber wir kontrollieren Alt O, um die falschen Importe des Jahres loszuwerden , und sie würden gehen, wir müssen auch den Konstruktor hier ändern , wenn ich irre dich nicht, aber die werden gut werden. werden wir in einem Moment sprechen. Die Konflikte sind, Konflikte sollten völlig in Ordnung sein und dort auch nichts zu tun. Auswirkungen haben sich ebenfalls nicht geändert. Also das wird alles in Ordnung sein. Und Behandlungen haben die Entität nicht verändert, dass etwas mit der Entität anders ist und das ist das Modell, weil tatsächlichen Namen die tatsächlichen Namen der Methoden ein wenig verändert haben. Also das ist jetzt GET-Modellressource hier drüben. Ressource sie vor, und das ist jetzt Texturressource erhalten und das hat Animationsressource. Was Sie also tun können, ist, wenn Sie mehrere dieser Modelldateien haben , die Geo-Model-Dateien, was Sie tun können, ist, dass Sie einfach drücken können, sagen wir zur allgemeinen Regel oder was auch immer Ihr Name ist Paket, drücken Sie Umschalttaste R. Suchen Sie nach einem guten Modellspeicherort und ändern Sie es dann, um die Modellressource zu erhalten. Sie können sehen, dass wir das auch in den anderen beiden Modellen haben. Also werden wir einfach „ ersetzen“ sagen, ja. Ich mache dasselbe mit der Texturposition, die die Ressource ersetzt. Jetzt hat dieser manchmal einen zusätzlichen, von dem wir eigentlich nicht wollen, dass es sich ändert. Ich glaube, es ist dieser, also werden wir sie einzeln ersetzen, nur diejenigen, bei denen ich sicher bin, dass ich glaube, dass dies nicht geändert werden sollte. Also los gehst du. Und dann hat sich der letzte, gute Speicherort der Animationsdatei jetzt geändert, um auch die Animationsressource zu erhalten und alles zu ersetzen, was in Ordnung sein wird. Und da sind wir los. Jetzt sollte das in Ordnung sein. Mal sehen, wo die Pfeile hier sind. Es wird genau hier sein. Okay, also innerhalb des Renderers bleibt dies tatsächlich eine Texturposition. Es ist ein bisschen komisch, denn das ist auch durch Gecko-Lippe, aber los geht's. Das sollte also in Ordnung sein. Stellen Sie einfach sicher, dass Sie es beim Ersetzen nicht auch im Render ersetzen. Ich schätze, das Boot wird leider nicht gerettet. Ich muss mir den Bolzen ansehen und ich konnte ihn leider nicht richtig zum Laufen bringen. Was wir also nur tun müssen, ist, dass wir vorerst einfach ohne das Boot leben müssen. Sie können also entweder alles löschen, einfach so machen und es dann auch hier loswerden. Leider ist es das, was es ist. Das Problem mit der Kühnheit, natürlich sie die Truhen in das Boot aufgenommen und noch nicht herausgefunden, wie sie das ändern können. Tut mir leid, aber so wird es sein. Manchmal passiert das, wenn Sie von einer Version zur anderen wechseln, dass sich bestimmte Funktionen komplett geändert haben. Dann wirst du es eigentlich nicht können, du wirst es nicht schnell herausfinden können . Das ist manchmal auch der Grund, warum bestimmte Formen so lange dauern, oder? Denn durch Versionen ändern sich die Dinge und so wird es sein. Ich glaube also, dass wir hier auch die alte Entität loswerden können. Wir bekommen vielleicht woanders einen Fehler , aber das wird gut. Das sollte also, glaube ich, alles sein, was sich hier tatsächlich verändert hat. Okay, die Multi-Entität würde dann auch nicht funktionieren. Aber noch einmal werde ich einfach den ganzen Weg nach unten ziehen , damit du dies tun kannst, indem du Alt hältst. Und dann können Sie in diesem Fall einfach mehrere verschiedene Zeilen auswählen . Dann dasselbe mit dem Artikel. Absolut. Ich werde das einfach loswerden. Wie gesagt, glaube ich nicht, dass es zu umfangreich ist. Die Änderungen sind nicht zu umfangreich, aber es ist was es ist. Manchmal passiert das. Also lasst uns das auch einfach loswerden. Und was dann? Das ist in Ordnung. Das ist in Ordnung. Das ist in Ordnung. Und dann können wir mit den Ereignissen fortfahren. In den Ereignissen hat sich die Laute tatsächlich auf die Klo Tische geändert, aber glücklicherweise nicht zu verrückt. Das einzige , was sich hier geändert hat, ist eigentlich die Methode do apply. Wie Sie sehen können, können Sie nicht mehr so überschrieben werden, da dies jetzt statt einer Liste ein Objekt ist ArrayList. Wir setzen einfach ein Objekt in jede Liste wichtige Klasse, und dann wird es dir gut gehen. Gleiche hier. Ändern Sie dies in das Objekt, jede Liste, die diese Klasse importiert. Und dann sollten die Lautenmodifikatoren genauso funktionieren wie zuvor. Mir ist gut gelaufen. Und dann kommen wir zu der Registry-Veranstaltung, die sich geändert hat, würde ich ungefähr deutlich sagen , weil wir das Registry-Ereignis nicht mehr haben, wir haben jetzt ein Registererereignis . Dies wird also jetzt ein letztes Registerereignis hier sein . Und dann müssen wir jetzt innerhalb der eigentlichen Ereignismethode nach der sie suchen. Grundsätzlich werden wir sagen, oh, das nennt man natürlich Ereignis , das hier ziemlich wichtig ist. Da gehst du. Anstatt dies zu tun, sagen wir ein Ereignis, das sich registriert, und dann sagen, dass die Schlüssel fälschen. Das in diesem Fall Beute Modifikator oder Serialisierer, Hama, Helfer, und das ist nur ein Verbraucher. Und jetzt stecken wir diese Dinge da rein. Also wollen wir das hier hineinstecken . Und so wie wir es wollen, wollen wir Helfer dieses Register sagen. Dann nimm zuerst den Ressourcenstandort des tatsächlichen Namens. Und dann wird die zweite Sache ein neuer Serializer sein. Also werden wir den neuen Serializer hierher bringen. Da sind wir los. Und das sollte jetzt funktionieren. Und dann können wir es. Duplizieren Sie dies, ändern Sie den Namen hier und ändern Sie dann den Sterilisator in diesen. Und dann werden wir Spaß machen. Vor ihnen hat sich das so geändert und dann passiert das Gleiche auch in den Rezepten. Wenn ich mich also nicht irre, wollen wir sagen, dass wir sagen möchten, dass ein Punktregister registriert, dass Schlüssel Rezept Serialisierer punkten weil dies tatsächlich ein Rezepttyp ist, tut mir leid, das ist ein Rezeptarten, ja. Dann nochmal, Helfer, ähm, oder so, benennt es, was wir im Grunde wollen. Dann können wir Rezeptart des Helfers sagen, dieses Rezept. Und ich denke, wir können das buchstäblich einfach kopieren. Okay, aber nicht ganz. Nicht ganz. Denn was wir hören möchten, ist entweder eine Zeichenfolge oder ein Ressourcenstandort oder könnten wir das dann nicht tun? Ja, das können wir, weil die ID das sein wird. Jetzt ist die Frage, okay, ich fühle mich tatsächlich ein bisschen besser, wenn ich einen neuen Ressourcenstandort erstelle, weil ich mir nicht sicher bin , ob dies unter unserem Ressourcenstandort kommt oder nicht. Wir werden einfach so etwas machen. Beende es genau hier, los geht's. Erstellen Sie also einen neuen Ressourcenstandort unter unserer Modell-ID mit der ID-Spalte. Und dann wird es uns gut gehen. Und dann brauchen wir das nicht mehr. Und der Rest hier, glaube ich, sollte völlig in Ordnung sein. Kontrolliere Alt O, um die Importe loszuwerden , und dann wird es uns gut gehen. Weitere Ereignisse sind völlig in Ordnung. Nichts hat sich geändert, daher werden Ereignisse erledigt. Und jetzt kommen wir zu den Flüssigkeiten, weil die Flüssigkeiten, die endlich die neue Fluid API eingeführt wurden. Ich konnte jedoch noch nicht genau herausfinden, wie es funktioniert. Sie sind auch noch keine Art von Dokumentation darüber. Leider werden Flüssigkeiten vorerst auch den Weg des Bootes gehen. Es ist passend, wenn man darüber nachdenkt. Aber ja, das Boot sind die Flüssigkeiten in diesem Fall werden leider nicht funktionieren. So funktionieren Flüssigkeiten vorerst nicht. Noch einmal können Sie sich nur ansehen, ob Sie sich das in Zukunft ansehen Werfen wir einen Blick auf die Schmiede, schauen Sie sich die Dokumentation an. Vielleicht haben sie dort auch schon etwas hinzugefügt. Dann kannst du versuchen, das an dir selbst herauszufinden. Die neue Fluid API sollte viel vielseitiger sein. Aber vorerst werden Flüssigkeiten leider nicht passieren, in diesem Fall benutzerdefinierte Artikel. Ich glaube, dass es nur etwas im Datentablet geben sollte . Wieder einmal ist die Komponente hier drüben, also Komponentenpunktliteral. Und dann passiert das Gleiche auch beim Dowsing Rod Item, nur mit dem O und dem Registrierungsnamen, fair genug? Ja. Dies ist komponentenübersetzbar. Nein. Wie wäre es, wenn wir es richtig machen? Komponentenpunkt in diesem Fall übersetzbar. Und dann auch hier. Dann ist die gesendete Nachricht tatsächlich eine Systemnachricht , die am Ende hier keine UUID mehr aufnimmt, aber es nimmt ein Komponentenliteral auf, dass sie den Registrierungsnamen nicht mehr verfügbar sind. Was ich tun werde, ist, dass ich einfach sagen werde, dass das Schloss unten Punkt hier Name bekommt und dann das gleiche schräg hier oben. Das sollte in Ordnung sein. Getname auch hier, und das sollte so ziemlich genau das sein. Gehst du da hin. Wir haben eine weitere SYN-Nachricht, senden Sie eine Systemnachricht. Wir brauchen die UUID nicht mehr. Und dann wird dies das Komponentendatenliteral sein. Eigentlich nein, ist es nicht. Es wird übersetzbar sein. Und das ist alles, nur die Importe kontrollieren Alt O wie immer. Und da sind wir los. Das sollte so ziemlich alles sein , was wir brauchen, um es hier zu trainieren, glaube ich. Die Mod-Flüssigkeiten hier. Ja, das ist in Ordnung. Wir werden den normalen Unterricht durchlaufen. Sie sind auch in nur einem Moment. Materialien sind in Ordnung, kreativer Modus. Tab-Lebensmittel sind OK Mod-Artikel. Das sollte unbedingt der Honigeimer sein. Wird diese Einfuhrbeschriftung loswerden. Und dann sind wir auch damit einverstanden. Die Tränen sind auch in Ordnung, also funktioniert alles gut. Interessanterweise haben sich die Bilder tatsächlich verändert. Ich weiß, dass es wirklich verrückt ist, darüber nachzudenken. Dies ist kein Motiv mehr. Dies nennt man jetzt Malvariante. Und das wird auch Malvarianz genannt. Da gehst du. Wir werden hier einfach das Motiv auf Malvarianten umwandeln . Dann werden wir noch einmal die Kontrolle über alle haben, damit die Importe da verschwinden. Und das sollte es sein. Tränke sind in Ordnung. Rezepte haben sich tatsächlich geändert. Also lass uns zum Rezept gehen. Es gibt zwei wichtige Dinge, die wir tun müssen. Löschen Sie alle drei dieser Methoden hier drüben, und das wird in Ordnung sein. Und dann müssen wir bei der Matratzenmethode hinzufügen, wenn P-Level auf der Kundenseite ist, Sie nur falsch zurückgeben möchten. Das sollte also alles sein, was wir auch hier tun müssen. Und das sollte so ziemlich alles sein , was wir im Rezept brauchen, in der Kundenrezeptklasse, dem Bildschirm, es hat sich hier etwas geändert. Ich glaube nicht, dass es so ist. Das ist also wirklich gut. Und dann sollte der Ton, Sounds auch in Ordnung sein. Jetzt im Util denke ich, dass sich irgendwo etwas geändert hat, nicht hier, sondern in den Tags. Nein. Artikeleigenschaften, util, eigentlich überhaupt keine Änderungen. Die Titelbildschirme haben immer noch einige Probleme, also werden wir dies einfach ignorieren. Jetzt hat sich die Klasse der Dorfbewohner tatsächlich geändert und wir müssen hier ein paar Dinge anders machen, oder? Das wird also ein bisschen anders gemacht. Jetzt machen wir tatsächlich folgendes. Wir machen tatsächlich einen neuen Prototyp. Und was wir tun ist, dass wir eine unveränderliche Setdot-API davon erstellen eine unveränderliche Setdot-API , so dass der Kobalt-Blaster-Punkt, der Punkt Standardstatusdefinition oder den getState-Definitionspunkt mögliche Zustände erhalten , dann das eine und das hier. Und dann machen wir es hier tatsächlich folgendermaßen. Wir bauen ein neues Dorf oder einen Profi. Wir brauchen tatsächlich zwei Prädikate hier drüben. Es wird also noch x-dot sein. Gleich Last- oder Punkt-Punkt-Get auch. Und dann wird das zweite Prädikat genau dasselbe sein. Also x dot bekommt gleich Blaster-Punkt, der bekommt und das sollte auch beheben. Und der Rest hier sollte vollkommen in Ordnung sein. Wir müssen tatsächlich auch in einem Moment Tags hinzufügen, da sowohl die Dorfbewohner als auch das Gemälde interessant genug jetzt auch einige Tags hinzugefügt haben. Und nicht zuletzt kommen wir zur Weltgeneration, die natürlich immer der Lieblingsteil ist. Zum Glück ist es also einfach, nur eine zufällige Quelle im abstrakten Baumzüchter hier. Aber dann kommen wir zur Verrücktheit Denn was jetzt in diesen Klassen passiert ist, hat sich nichts geändert, oder? Funktionen oder alles zu konfigurieren ist in Ordnung. Aber dann gehen wir zu den Gen-Klassen und sehen, dass das Biom-Ladeereignis nicht mehr verfügbar ist. Und jeder, und jeder fängt an auszuflippen, denn wie mache ich jetzt eine benutzerdefinierte Welt, Jan. Nun, die Herkunft der Kunden hat sich komplett verändert, wo wir jetzt Bio-Modifikatoren verwenden werden. Theoretisch können wir also alle diese vier Klassen hier löschen, löschen und dann neue erstellen. Gleiche gilt für diesen hier. Motorwelt-Events, wir brauchen das nicht mehr weil es nichts mehr tut. Wir müssen jetzt Bio-Modifikatoren verwenden. Wir werfen also nur einen Blick auf die Bio-Modifikator-Klasse, diese hier. Sie können also eine Schnittstelle sehen und wir müssen im Grunde einen benutzerdefinierten Codec erstellen , der in einer JSON-Datei liest , was so ziemlich alles ist , was der Codec wirklich ist. Nun, zum Glück an dieser Stelle, oder es hat tatsächlich einige Beispiele hinzugefügt. Wenn Sie sich also die Forge-Biomodifikator-Klasse ansehen, haben wir eine Funktion zum Bio-Modifikator hinzufügen, einen Entfernen-Modifikator, und wir haben auch einen Spawns von zwei mal m eins und ein Entfernen von Spawns aus Biom-Eins. Das ist also eigentlich alles , was wir brauchen werden. Glücklicherweise ist es nicht allzu verrückt und wir müssen hier nicht einmal eine benutzerdefinierte Klasse erstellen. Was wir tun können, ist dieses Zeug im Datenordner zu machen. Fangen wir einfach mit den Bio-Modifikatoren an. Wie können wir unsere benutzerdefinierten Sachen zum Laufen bringen? Wir wollen zum Data Folder MC Kurs gehen , sehr wichtig. Und anstatt eine Frau, die ein neues Verzeichnis namens forge erstellt, muss das Forge-Verzeichnis in Ihren MC-Kurs gehen oder was auch immer Ihr Mod-Ideen-Verzeichnis sein muss. Und dann erstellen wir anstelle des Force-Verzeichnisses ein neues Verzeichnis namens Bio Modifier. Da sind wir los. Und dann können wir die JSON-Dateien hinzufügen. So werden die JSON-Dateien aussehen. Also kopiere ich das einfach und wir erstellen eine neue JSON-Datei. Mal sehen, was unsere Ortsmerkmale in diesem Fall sind. Das wird also der Ort sein. Wir müssen die Platzfunktionen tatsächlich in nur einem Moment ändern , aber darüber werden wir uns im Moment keine Sorgen machen. Fügen wir einfach den ersten Bio-Modifikator und dann schauen wir uns auch die Platzfunktionen an. Aber das wird eine neue Akte sein und dann werden wir das einfach die Anzeigenkirschblüte nennen . Wir werden das einfach hier hinzufügen. Und dann werden wir sehen, dass der erste dies ist, das ist erforderlich, wir müssten das immer tun. Dann wollen wir hey zu was sagen, was ist der Namensraum des Bioms, dass diese Einstellung, wir werden nur Forge Yz Flugzeug sagen. Dies wird also ein Tag aus der Schmiede sein, das im Grunde alle Flugzeugbomben darin haben wird. Dann werden wir einen MC-Kurs haben, Polen. Und das sollte Ebenholzkirschblüte sein, die hier drüben platziert wird. Ja, da gehst du. Und dann ist das nicht im Untergrund. Oris, das ist eigentlich der andere. Werfen wir einen Blick auf die Dekorationen. Ich glaube, es heißt das ist der oder ist es Dekorationsschritt. Es könnte das sein. Okay, gut. Ich meine, ich bin damit einverstanden. Dies sollte als pflanzliche Dekoration bezeichnet werden. Das hier genau hier. Wir werden es einfach hier hinzufügen und dann sollte es uns gut gehen. Und dies sollte theoretisch unser Kirschblüten-Feature in jedes existierende Ebenenbiom hinzufügen . So ziemlich selbsterklärend. Die Platzmerkmale müssen sich jedoch auch ein wenig ändern. Wir müssen hier eigentlich ein anderes Register verwenden. Also werden wir nur ein aufgeschobenes Register des Typs am geringsten Merkmal oder des platzierten Uterus erstellen. Und dann entspricht dies einer aufgeschobenen Registrierung. Ich erstelle diesen Registrierungspunkt am wenigsten Feature-Registry. Sehr wichtig. Dann ist der MC-Kurs keine dumme Modell-ID und natürlich benötigen wir auch eine Registrierungsmethode. Ich kopiere das nur ein bisschen einfacher. Wir werden das gleich hier nennen. Das wird heißen, ich denke, es sollte egal sein , dass mehr Platzmerkmale sich registrieren und dann im Event-Bus vorbeifahren. Und anstatt uns so zu registrieren, müssen wir, es wird sein, es wird jetzt ein bisschen komisch aussehen, glücklicherweise wird Ihnen natürlich der gesamte Code hier zur Verfügung stehen. Dies ist jetzt also ein Registrierungsobjekt anstelle eines Haltevorgangs, im Moment nichts zu verrückt. Sie möchten möglicherweise ändern, dass die Platzierungs-Utils einen Ort registriert sind, die sich registrieren. Das stimmt nicht ganz, tut mir leid, los geht's. Und dann dieses, dieses und dieses. Das ist alles in Ordnung. Ich kopiere die Zeile und das muss genau hier hinzugefügt werden. Also sollten wir keine Fehler haben außer einer schließenden Klammer. Sie können sehen, dass wir es Place-Funktionen nennen möchten , die sich registrieren und den Namen weitergeben, normalerweise wie wir es bei jedem Register zuvor getan haben. Und dann haben wir einen Anbieter eines neuen Platzes Feature. Und dann müssen wir diese von Mud konfigurierte Funktion zuerst an einen Halter von Feature konfigurieren Fragezeichen, Fragezeichen und dann einen Halter von Feature konfigurieren westliches Zeichen, Fragezeichen, umwandeln zuerst an einen Halter von Feature konfigurieren Fragezeichen, Fragezeichen und dann einen Halter von . Es ist Verrücktheit, aber so muss es plötzlich passieren wenn Sie dies sehen, vielleicht haben Sie tatsächlich einen besseren Weg, dies zu tun. Vielleicht wurde etwas bereits herausgefunden oder so ähnlich. Aber vorerst wird das plötzlich so laufen müssen. Und dann müssen wir sowohl für die Zeilen als auch für die Geode tatsächlich eine Liste aller Dinge haben , die wir hier haben. Also Liste von n, dann müssen wir hier nur all die verschiedenen Dinge hinzufügen. Es heißt, es sei respektlos, all diese Verrücktheit in eine Liste zu filtern . Und dann nur zwei schließende Klammern. Und dann auch hier, wenn ich mich nicht irre, Liste des Ziels und dann nur zwei Mal Klammern schließen n dort, sollten wir gut gehen. Das ist es, was wir tun müssen, so verrückt es auch aussieht. Aber das sollte tatsächlich all die Dinge tun , die wir machen wollten. Dann können wir also auch die anderen Bio-Modifikatoren hinzufügen. Das wird auch die Add Pink Rose sein. Und das wird das Merkmal der rosa Rose ein Ziel gesetzt. Dann fügen wir auch unter pflanzlicher Dekoration hinzu , die Sinn macht. Und dann machen wir die ganze Glatze oder lassen Sie uns das auch hier rüber bringen. Und das ist jetzt keine pflanzliche Dekoration mehr. Aber das ist eigentlich, gehen wir zurück zu den Erklärungen hier drüben. Dies ist jetzt im Untergrund, oder es ist sehr wichtig , dass wir dies ändern. Da sind wir los. Wir werden es einfach hinzufügen, wie es wäre wenn Minecraft-Doppelpunkt auf der ganzen Welt ist, also werden wir es einfach jedem Biom hinzufügen , das es in der ovalen Welt gibt , das wird in Ordnung sein. Und dann lassen Sie uns nicht zuletzt das Kobalt kopieren oder, und das wird die Werbe- oder Bolzen-Geode sein. Und dann ändert das nur den Namen. Er hat eine Geode hier drüben platziert. Lassen Sie es uns einfach auch auf der ganzen Welt hinzufügen und das sollte in Ordnung sein. Aber das ist die neue Weltgeneration, sehr wichtig, dass hier alles in Ordnung ist. Und dann nicht zuletzt haben wir auch diese Strukturen jetzt zum Glück hat der telepathische Boden bereits aktualisiert, hat der telepathische Boden bereits dass ihr Repository, so dass hier drüben nichts zu Verrücktes passiert. Also müssen wir einfach folgendes tun. Also lass uns das einfach machen. Ich kopiere zuerst die Modus-Strukturen-Klasse. Mal sehen. Da sind wir los. Und dann werden wir hier ein Problem mit den Himmelstrukturen haben , aber keine Sorgen. Lassen Sie uns die Importe auch hier löschen. Und dann wird das in der Sky Structures Klasse auch sein, naja, ich meine nicht zu verrückt. Lassen Sie mich einfach noch einmal die Klasse hier drüben kopieren. Und dann werden wir sehen, dass nur die Importe falsch sind. Noch einmal kontrolliere Alt O. Und du kannst sehen, dass es auch hier einen weiteren Codec gibt. Dies ist, wie ich schon sagte, im Grunde ein bestimmtes Feld, das Lesen in einem Rennen und einer Datei generiert und dann eine Klasse generiert, die so ziemlich der Überblick auf hoher Ebene ist. Ja, das sind die beiden Änderungen hier in diesen Strukturen und dann ändert sich auch die Struktur, Rennen und die Dateien. Weil es natürlich nichts Verrückteres geben könnte. Aber zuallererst änderte das Ältere hier seinen Namen in nur eine Struktur. Also werden wir es in den Strukturnamen ändern. Und dann gibt es in der angrenzenden Datei tatsächlich einige Änderungen. Zuallererst ist dieser Konflikt nicht mehr erforderlich, also werden wir nur die Konfiguration löschen und dann beginnen sie, die Websites zu ziehen, die immer noch benötigt werden , aber nicht innerhalb des Konflikts. Was wir dann tun wollen, ist, dass wir den Schritt hier hinzufügen wollen, und das wird gefragt. Und dann ist das Nächste die maximale Entfernung von der Mitte. Das muss also auch hinzugefügt werden. Und dann müssen wir auch drei verschiedene Felder hinzufügen. Das wird der Schritt sein, die Starthöhe und das Projekt beginnen, die Karte zu wandern und den arabischen Lärm zu löschen. Das werden wir also immer machen. Jetzt. Jetzt ist dies für denjenigen, bei dem Sie tatsächlich einen Typ innerhalb des Codes haben. Wenn du das nicht hast, können wir das Dorf nicht mehr benutzen. Wir wollen jetzt Minecraft-Stichsäge benutzen. Also wollen wir das noch einmal verwenden, das Untaugliche hier loswerden, den Sternenpool und die Größe in einem maximalen Abstand von der Mitte halten . Und wenn wir dann das Puzzle verwenden, möchten wir es tatsächlich für verschiedene Felder verwenden. Immer noch der führende arabische Lärm. Dies ist wiederum der Schritt, die absolute Höhe und das Projekt beginnt mit der Höhenzuordnung. Diese werden im Grunde gleich bleiben und vielleicht die Starthöhe ändern. Aber dann müssen Sie für die Stichsäge auch die Erweiterung verwenden. Verdammt, ich werde auch das Zeug für die Kameras und die Speicherplattform kopieren das Zeug für die Kameras , aber es ist ziemlich dasselbe. Jetzt können Sie das auch im GitHub Repository und einer Einzelperson genauso gut nachschlagen . Es sollte also kein geben, aber überhaupt keine Sorgen. Wie ich schon sagte, es wird uns gut gehen. Glücklicherweise sind die Änderungen nicht so verrückt. Ich erinnere mich noch daran, dass es sich von eins auf 1617 ändert. Das waren Veränderungen, bei denen ja, das war ziemlich verrückt. Das ist nicht dafür. Jetzt brauchen wir nur zwei Dinge, die wir noch brauchen die Dorfbewohner und die Gemälde der Tags. gehen also in den Datenordner auf Minecraft. Und dann möchten wir anstelle des Steuerordners einen neuen Ordner namens Painting Underscore-Variante erstellen . Und dann brauchst du wieder Steuermappe, wir möchten etwas ansprechen. Unterstrich, Unterstriche Interessen, Unterstrichentyp. Und dann klicke ich einfach mit der rechten Maustaste auf neue Datei. Dies wird der Draht ein Bulle Unterstrich Job sein, unterstreicht Seite, dass Jason in der Art „Point of Interest“ ist. Und das wird das Folgende sein. Das sollte also sein. Theoretisch ist dieser Wert Mc Kerne, Explosion oder Punkt. Lassen Sie mich einfach schnell prüfen , ob dies der Name ist. Es ist eigentlich ein Explosionsspiel. Da gehst du. Was ich hier drüben in die Malvariante eingecheckt habe, klicke mit der rechten Maustaste auf eine neue Datei namens Polizei Sub Bowl, dass Jason, los geht's. Und das wird all diese Dinge beinhalten. Lassen Sie mich das einfach überschreiben. Und dann muss ich die Namen hier überprüfen. Also werden wir Pflanze haben und dann noch zwei und dann wird es der Wanderer und dann auch Sonnenuntergang sein. Und hoffentlich sollte das alles sein, was wir tun müssen. Wie Sie gesehen haben, gibt es tatsächlich einige Dinge, einige Schritte hier drüben. Es ist nicht so einfach, dass es so einfach ist, wie man sagen könnte: Nun, das war eine ziemliche Tortur. Wissen Sie, das ist eigentlich sehr Team, wie ich schon sagte, 1 16., 117. Das war zehn Stunden wie absolute Verrücktheit alles durchlief, alles änderte, weil der Klassenname geändert wird, Methodennamen Methoden ändern, die verfügbar waren, nicht mehr waren verfügbar. Und zum Glück funktioniert hier das meiste von diesem Zeug immer noch. Also bin ich mit dem Update hier ziemlich zufrieden. Aber vorerst fangen wir einfach an und sehen, ob etwas auftauchen könnte. Möglicherweise liegt in einer dieser Klassen immer noch ein Fehler vor. Das wird gut werden. Da gehst du. Wir haben sogar eine Kobaltlampe gegründet. Das ist also die Take Methode hier drüben. Wieder einmal, nur wegen des Zufalls, ist dies jetzt eine zufällige Quelle. Eigentlich gehen sie in Zufallsquelle und dann sollte es funktionieren. Überhaupt keine Sorgen. Lasst uns noch einmal weitermachen, anfangen und sehen, da gehen wir los. Wir haben dies auch im abgelehnten Modell, wenn wir die Mod-Flüssigkeiten tatsächlich loswerden . Absolut keine Sorgen sind hier die Klimaereignisse. Fangen wir noch mal damit an. Dies passiert auch, wenn Sie es starten, Sie erhalten einen Fehler. Du behebt einfach den Fehler und fängst dann wieder an. Also überhaupt keine Sorgen. Und jetzt scheint es zu funktionieren. Also lasst uns einfach sehen, ob Minecraft anfängt. Das wird ein großartiges Zeichen sein. Und dann können wir sehen, in unsere Welt gehen und sehen, ob alles funktioniert. Eine Mangrove fängt an. Allerdings bekommen wir hier einen Fehler, aber das wird in Ordnung sein. Mal sehen wir zuerst, ob es überhaupt anfängt oder ob es keinen Staubsturm auslöst, das ist ein großartiges Zeichen. Lasst uns einfach eine neue Welt erschaffen. Wir bekommen nichts, weil wir hier einige unbekannte Elemente haben. Okay, lass uns darüber nachdenken. Wir können sehen, weil Minecraft Kirschblüte geprüft nicht verfügbar ist. Nun, das ist wahrscheinlich ein Pfeil für mich , weil ich die Modell-ID nicht geändert habe. Nun, das stimmt nicht ganz. Iteris MC Kurs, Kirschblüte überprüft. Das ist also sehr seltsam hier drüben, denn wenn ich mir das ansehe, benutze ich immer meinen MC-Kurs. Das ist also sehr seltsam, in Ordnung, also war das Problem tatsächlich die Konflikte hier drüben zu verwenden. Ich bin mir ehrlich gesagt nicht sicher, warum der Konflikt hier nicht ganz funktioniert. Das es sollte theoretisch funktionieren. Jetzt das einzige, was ich mir vorstellen kann, und ich bin eigentlich so, dass ich das live mache. Ich habe das noch nie versucht. Wenn Sie die Registrierungskonflikte vor alles andere stellen , könnte dies möglicherweise ändern. Versuchen wir es tatsächlich und sehen, ob die Konflikte richtig funktionieren. Nur aufgrund der Konflikte funktioniert die tatsächliche Registrierung des Orts-Features jedoch nicht. Wie ich schon sagte, habe ich das noch nie versucht. Also lasst uns einfach sehen, ob es etwas gibt und wenn nicht, dann funktionieren die Konflikte offenbar leider auch nicht ganz. Was in der Tat sehr seltsam ist , weil ich vorher nicht darauf gestoßen bin, aber mal sehen. Vielleicht bekommen wir den gleichen Fehler darüber, dass die Konflikte nicht wieder funktionieren. Und wenn wir das nicht verstehen, bin ich ziemlich zuversichtlich , jetzt verstehen wir das tatsächlich, was sehr seltsam ist. In der Tat. Das bin ich. Ich weiß ehrlich gesagt nicht, warum das der Fall ist. Also lasst uns einfach sehen. Aber an diesem Punkt, wenn dies passiert, bin ich wirklich sehr zuversichtlich, dass es nicht funktionieren wird, aber wir müssen vorerst einfach ohne die Konfigurationen leben . Wieder einmal ist es wahrscheinlich nur eine gefälschte Veränderung irgendwo. Also los geht's, es funktioniert nicht. Aber wenn ich dies jedoch wieder ändere, um keine Konflikte zu verwenden, sondern hier nur eine normale Zahl zu verwenden. Und es spielt keine Rolle, die Konflikte werden hier nie wirklich geladen und dann sollte es funktionieren. Also noch einmal, ich weiß nicht, ich habe keine Ahnung, warum das bei den Konflikten hier drüben nicht funktioniert . Es hat schon früher funktioniert, aber vor ihnen, machen wir es einfach so ohne die Konflikte. Und wenn sich die Konflikte tatsächlich geändert haben und wir sie ändern müssen, können wir das später immer tun. Normalerweise ist es wichtiger , ein Arbeitsmodell in einer neuen Version zu erhalten , anstatt dass alles sofort funktioniert. Das ist normalerweise besser , denn dann kannst du es reparieren. Und ja, also los geht's. Und dann können wir Einzelspieler schaffen Welt gehen, und jetzt sollte es tatsächlich funktionieren. Wir sollten Datenpakete validieren. Und los geht's, komm schon, los geht's, neue Welt. Machen wir einfach was auch immer, so etwas wie di