Transkripte
1. Einführung in den Kurs: Alles klar, willkommen zu diesem umfangreichsten Kurs auf Minecraft-Modellierung hier auf Skill-Anteil. Und in diesem Kurs lernen wir alles von der
Erstellung von Blöcken und Gegenständen bis hin zu Werkzeugen, Rüstungen und sogar Kachelentitäten. Das ist also eine Auswahl von Dingen, über die wir hier lernen und kreieren werden, wir werden einige kupferbasierte Dinge schaffen. Also Kupfer oder wir werden Kupferblöcke und Barren schaffen. Wir werden Kupferdrähte herstellen. Und wir werden auch sicherstellen, dass diese Antwort innerhalb der Welt auf die Welt, Jen, wir werden Werkzeuge aus ihnen und Rüstungen erstellen. Wir werden unsere eigenen benutzerdefinierten Kulturen erstellen und sicherstellen, dass sie richtig angezeigt werden und wie all das funktioniert. Wir werden unsere eigenen benutzerdefinierten Fluid erschaffen. In diesem Fall ist das Öl. Und natürlich wird eine Kachelentität, wie ich bereits gesagt habe, diese Kachelentität eine benutzerdefinierte GUI haben und dies wird auch eine benutzerdefinierte Funktionalität haben. In diesem Fall werden wir Diamanten erschaffen, die wir haben werden, damit Diamanten tatsächlich Energie erzeugen. Und dann können diese Diamanten sein, diese Energie kann dann durch Kupferdrähte in Smaragde umgewandelt werden. Waren auch dabei, unseren eigenen benutzerdefinierten Baum zu erstellen und diesen benutzerdefinierten Baum innerhalb der Welt erzeugt haben. Und last but not least, und wir haben unsere eigene benutzerdefinierte Registerkarte. Und im Inneren von hier, wir auch in der Lage sein, Mobs zu spawnen, die wir selbst gemacht haben. So Kundenjobs, wir werden auch zum Spiel hinzugefügt werden. Diese können auch in der Seite der Welt hervorbringen. Und wir fügen auch eine Laichei hinzu, oder das ist, was in diesem Kurs kommen wird. Ich hoffe, dass es für Sie von Interesse ist. Und ich freue mich darauf, Sie innerhalb des Kurses zu sehen. Und sie ja.
2. IntelliJ und Java Herunterladen: Oder gibt es zwei Dinge, die Sie für diese Klasse herunterladen müssen? Der erste ist das offene JDK, das sozusagen einfach die Java-Sprache ist , so dass Sie es verwenden und damit programmieren können. Und sehr wichtig, dass Sie das JDK acht verwenden. Wählen Sie also diese Version aus und wählen Sie dann den JVM-Hotspot. Klicken Sie einfach auf Related to release und dann wird es heruntergeladen. Und noch eine Sache, die wir wollen auch IntelliJ Idee herunterladen. Und das ist sehr wichtig, dass Sie hier die Community-Version verwenden. Dies ist kostenlos und Open Source, kein Login oder irgendetwas erforderlich. Und das wird uns genug Macht geben, um alles zu tun, was wir tun wollen. Und beide Links befinden sich oben in der Projektbeschreibung.
3. IntelliJ und Setup: Alles klar, willkommen zu diesem ersten Vortrag über die Einrichtung von Java und die IntelliJ-Idee. Wenn Sie nun zum ersten Mal mit Intelligenz beginnen, ist
dies das Fenster, mit dem Sie begrüßt werden. Und wir wollen einfach auf Neues Projekt klicken, weil wir ein neues Projekt erstellen möchten. Wichtig, stellen Sie sicher, dass Sie wählen. Java wird oben links angezeigt. Und wenn es um das Projekt-SDK geht, möchten
wir das Open JDK auswählen, das wir zuvor heruntergeladen haben. Nun, hier habe ich bereits den One-Punkt eine Java-Version hier drin. Es könnte sein, dass es hier unten für dich ist. Es sollte es automatisch finden und Sie sollten nur in der Lage sein, es auszuwählen. Wenn das nicht der Fall ist und Sie es immer noch installiert haben, können
Sie auf diese Schaltfläche „JDK hinzufügen“ klicken und danach suchen, wo immer Sie haben. Legen Sie es. Also, wo immer Sie es im Verzeichnis installiert haben, und klicken Sie einfach auf OK dort. Wenn das nicht funktioniert, so dass Sie es nicht finden. Sie können immer auch von hier heruntergeladen werden, indem Sie Open JDK
übernehmen und dann die 1.8 auswählen. Oh, das ist sehr wichtig, dass dies die Version ist, die Sie auswählen, oder? Und dann klicken Sie einfach auf Download in jedem Ort, in dem Sie es installieren möchten. Und dann würde das auch gut funktionieren, oder? Also, wenn das ausgewählt ist, als nächstes, aktivieren wir tatsächlich dieses Kästchen. Erstellen Sie also ein Projekt aus der Vorlage, weil wir die Befehlszeilenanwendung als Vorlage
haben möchten . Das bedeutet einfach, dass es für uns einen kleinen Helfer generieren wird, sagen
wir, dass uns
viel schneller anfangen wird, als wenn wir dies nicht automatisch generiert haben. Wir können nochmals auf Weiter klicken. Und in diesem Fenster müssen
wir tatsächlich den Projektnamen und den Speicherort
sowie den Basispaketnamen angeben . Am Basispaketnamen ist in der Regel eine Domäne umgekehrt. So zum Beispiel, für Google.com, rot wäre es dot google geworden, oder? Und für unsere Zwecke, für mich, werde
ich com.com Joe machen, oder Sie können im Grunde tun, was Sie wollen. Oder VR. Dies ist definitiv die Konvention, um es so zu tun. Also auch, tun Sie die ruhigen Punkte und dann einen Namen oder Netzpunkt oder was auch immer der Fall sein könnte. Etwas, das auch sehr wichtig zu erwähnen ist, ist, dass dies in Kleinbuchstaben, ein Basispaket, und alle Pakete und die Namen sind alle in Kleinbuchstaben. Und so lasst uns einfach auf Finish klicken und dann mal sehen, was passiert. Das wird also ein Haufen Zeug machen. Und dann, wie Sie sehen können, hat es bereits einige Dinge für uns erzeugt. Wir können das jetzt hier nach links erweitern. Und wenn wir dann den Quellordner erweitern, können
wir tatsächlich sehen, dass hier unser KM.com Job-Paket ist. Es gibt zwei Dinge, die ich erwähnen möchte. Das ist einmal hier im Optionsmenü. Manchmal könnte es sein, dass abgeflachte Pakete auf der anderen Seite sind, es wird ein bisschen so aussehen. Es wird etwas seltsam aussehen und das könnte zu einem Problem werden. Ich rate, Flat-Pakete für die Zwecke dieses gesamten Kurses abzuschalten. Und ja, und das war's im Grunde. Dies ist im Grunde die, die, was Sie brauchen. Und wenn dieses Setup getan wurde, dann können Sie dem Java-Kurs zu einem T folgen und ja.
4. (Java) Datatypes in Java: Also willkommen zurück zur Java-Einführung. Und in diesem Vortrag werden wir über Datentypen sprechen. Jetzt. Was sind Datentypen? Es ist im Grunde eine Möglichkeit, Informationen zu speichern. Und natürlich gibt es verschiedene Arten von Informationen, oder? Dies wird also theoretischer Ansatz sein, um die Datentypen zu erklären. Und dann werden wir später sehen, OK, was können wir mit ihnen machen? Wie können wir sie manipulieren? Wie sind sie irgendwie austauschbar? Und wir werden sie einfach durchgehen und sehen, was wir sehen können. Also zuerst, es gibt eine Zahlentypen. Und Zahlentypen sollten Sinn machen. Es gibt zwei Hauptnummerntypen, ich würde sagen, dass das eine Ganzzahl und ein Float ist. Eine Ganzzahl ist eine ganze Zahl. Und in diesem Fall ist es das Nominierte mit dem, mit dem Wort int I-N-T. Dann erhalten Sie den Namen der Variablen und dann weisen Sie ihr einen bestimmten Wert zu. Also gerade jetzt in einer Zahl, 42 ist da drin geschrieben. Und ich habe auch eine gemeinsame Stufe hinzugefügt, also Ganzzahl oder ganze Zahl. Und Sie können alles zwischen diesen beiden Zahlen speichern. Also minus 2 Milliarden bis 2 Milliarden da drin. Und dann gibt es Gleitkommazahlen. Dies sind im Grunde vier Dezimalzahlen, nicht ganz. So werden die Gleitkommazahlen oder Gleitkommazahlen in wissenschaftlicher Notation gespeichert. Und diese, in diesem Fall die Floats oder präzise, oder 7 Dezimalkommazahl Genauigkeit oder sieben Zahlen der Genauigkeit. Also in diesem Fall haben wir vier Zahlen. Und wenn wir drei weitere hinzufügen würden, haben natürlich sieben Zahlen und jede Zahl danach wird tatsächlich abgeschnitten. Deshalb wurden aufgerundet oder abgerundet. Ja, das ist also wichtig zu wissen. Wenn Sie einen Float haben, der länger ist, könnte
das tatsächlich einige Probleme verursachen. Nun, wie Sie hier unten sehen können, gibt es auch andere Arten von Zahlentypen sind andere Variablentypen, die verwendet werden können. So ist ein Biss zum Beispiel nur ein Byte oder acht Bits. Das hast du vielleicht schon mal gehört. Und es kann nur Zahlen von minus ein 128127 speichern. Das ist also für sehr winzige Zahlen. Deshalb habe ich den Variablennamen als winzige Zahl geschrieben. Und eine kurze ist eine kleine Zahl. Es kann Zahlen von minus 32 Tausend bis etwa plus 32 Tausend speichern. Und dann gibt es auch eine lange, die für wirklich große Zahlen ist. Und wie Sie sehen können, ist dies wie verrückte Anzahl von Zahlen Sie können oder nicht Anzahl von Zahlen, aber der Bereich der Zahlen, die Sie dort speichern können. Also können Sie von, ähm, ich muss, weil ich nicht sicher bin, neun Viertellionen Idol, ich weiß nicht, was es ist, aber es ist eine große Zahl, normalerweise, meiner Einschätzung und nach meiner Erfahrung ist
es sehr selten gesehen, dass man entlang verwendet. Es ist höchstwahrscheinlich, dass
eine, eine ganze Zahl in fast jedem Fall verwendet. Denn wann kommt es wirklich vor, dass man Zahlen bekommt, die größer sind als diese? Es ist nicht sehr oft der Fall. Im Allgemeinen würde ich argumentieren, dass diese beiden die wichtigsten sind. Eine andere, die nützlich sein könnte, ist das Doppelte. Und wie der Name hier schon sagt, ist eigentlich eine genauere Zahl. Das hat also tatsächlich eine Genauigkeit von 15 Dezimalkommastellen. So kann dieser 15 Plätze haben, bis der 16. Platz abgeschnitten oder abgerundet wird. Anstatt nur die Sieben mit dem Schwimmer zu haben, kann
das Double tatsächlich noch ein paar mehr haben, oder? Das sind also die Zahlentypen. Dann haben wir Booleans oder im Grunde den Logiktyp. Dies ist für unsere Testbedingungen. Und damit wir einen booleschen Wert haben können, oder? Also der Name auch boolean. Der Name der Variablen in diesem Fall
ist dies diese Kursnote, und es ist gleich wahr. Booleans können entweder true oder false speichern. So wird dies manchmal auch mit einer Eins oder einer 0 angezeigt. Und dann können wir auch schreiben, zum Beispiel, ist dieser HTML. Und wir sagen: Nein, das ist falsch, weil das Java ist. Und dann gibt es Charaktere. Ein einzelnes Zeichen ist also ein Zeichen, CH, AR, und es kann ein einzelnes Zeichen speichern. Dies kann jedoch auch Sonderzeichen wie Kommas, Bindestriche und Leerzeichen enthalten. Das sind alle Charaktere. So können wir zum Beispiel einfach so etwas schreiben. Und es wird keinen Fehler werfen, weil ein Leerzeichen
ein Charakter ist , von dem ich zwei Leerzeichen
setzen werde und es wird einen Fehler werfen, weil das zwei Zeichen sind. Das ist also im Grunde ein einzelnes Zeichen, ein Zeichen. Nun, wenn mehrere Zeichen nebeneinander,
dann, was wir verwenden werden, ist eine Zeichenfolge. Eine Zeichenfolge speichert hier eine Folge von Zeichen. Also in diesem Fall speichert es helloworld. Dies ist etwas, das Sie sehr oft sehen, vor allem in Anfänger-Programmierkursen oder überall, wo Sie anfangen, zu programmieren. Hallo Welt ist eine Art Sache, die, das ist das erste, was Sie versuchen, als Variable auszugeben. Also zu sagen, Hey, hallo Welt, ich habe jetzt angefangen zu programmieren. Das bin ich. Und sehr wichtig zu wissen. Ein Zeichen wird also im Grunde mit diesen einfachen Anführungszeichen geschrieben, die es umgibt. Und dann, was auch immer Charakter, den Sie darin haben wollen. Und eine Zeichenfolge wird mit doppelten Anführungszeichen geschrieben. Und alles in diesen doppelten Anführungszeichen ist im Grunde Teil der Zeichenfolge. Es ist auch sehr wichtig zu beachten, wenn Sie ein doppeltes Anführungszeichen darin haben möchten, können
Sie tatsächlich ein wie einen umgekehrten Schrägstrich Jahr verwenden. Und dieses kann dann verwendet werden, um ein,
ein doppeltes Anführungszeichen innerhalb Ihrer Zeichenfolge zu erstellen , wenn Sie möchten. Und dies wird auch für alle möglichen anderen Dinge innerhalb einer Zeichenfolge verwendet. Ja, das sind also die wichtigsten Datentypen, die wir in diesem Kurs verwenden werden. Und das sind, denke ich,
auch diejenigen die am weitesten verbreitet sind, die grundsätzlich immer verwendet werden. Und das war es für den Vortrag über Datentypen. Und ja.
5. (Java) Wie du einen Java-Code liest: Alles klar, willkommen zurück zur Java-Einführung. Und in diesem Vortrag werden wir schnell darüber sprechen, wie man Code liest. Wenn Sie also noch nie Code gelesen haben, schauen
wir uns hier ein paar Beispiele an. Und die ersten beiden Dinge sind Kommentare. Ein einzeiliger Kommentar wird also nur mit zwei Schrägstrichen gemacht. Und ein mehrzeiliger Kommentar wird durch einen Schrägstrich und dann einen Stern und einen anderen Stern und einen Schrägstrich
gemacht. Und was das tun wird, ist, dass es einen mehrzeiligen Kommentar erstellen wird. Nun ist eine Deklaration einer Variablen einfach der Typ der Variablen und dann der Name der Variablen. Und dann die Zeile mit dem Semikolon beenden. Wenn wir dann einen Wert zu dieser Variablen zuweisen, würde
das einfach den Namen der Variablen tun,
dann der Gleichheitsoperator, auch der Zuweisungsoperator namens Simon Operator. Und dann nur der Wert, den wir in dieser Variablen speichern möchten. Noch einmal, die Zeile mit einem Semikolon zu beenden. Das ist im Grunde das, was wir tun werden. Immer in jeder Zeit. Wir, wenn wir eine Aussage haben, werden
wir das mit einem Semikolon beenden. Dann haben wir Initialisierung, die einfach die Deklaration und die Zuweisung zur gleichen Zeit ist. Also in diesem Fall werden wir
eine ganze Zahl x deklarieren und wir werden ihm sofort den Wert von zehn zuweisen. Manchmal möchten wir vielleicht auf Variablen oder Methoden eines Objekts zugreifen. Was sind, was sind Methoden oder was sind Objekte? Wir werden darüber in späteren Vorlesungen sprechen. Aber nur damit du es weißt, machen wir das mit einem Punkt nach dem Namen der Variablen. Also, wenn wir die Zeichenfolge hier haben, wenn wir S Punkt machen und wir werden eine ganze Reihe von Methoden
vorgeschlagen, die wir aufrufen können. Und diese Methoden machen Dinge, wie ich in späteren Vorlesungen gesagt habe, über die wir reden werden. Aber es ist sehr wichtig, dass Sie den Punkt-Operator verwenden. Es ist nicht ganz ein Operator, aber es ist ein Punkt nach dem Namen. Und wenn Sie die offenen und schließenden Klammern nach etwas mit einem Punkt sehen, ist
dies immer eine Methode, die aufgerufen wird. Und wenn Sie es nicht haben, dann wäre dies eine Variable. In diesem Fall existiert die Variable jedoch nicht, daher zeigt sie einen Fehler an. Aber wenn es danach keine Klammern gibt, dann als Variable, wenn es Klammern gibt,
dann ist es ein Methodenaufruf direkt hier als kurzes kleines Addendum am Ende. Dies ist ein Codeblock. Es kann als Codeblock beschrieben werden. Und wenn wir eine Variable innerhalb dieses Blocks als außerhalb davon initialisieren hören, kommt
es nicht, dass Sie erkennen, richtig? Also hier sagen wir, oh, ganze Zahl l ist gleich 0. Und hier sagen wir, hey, ich ist gleich L plus zwei. Das ist jetzt Arbeit, weil außerhalb dieses Blocks L nicht existiert. Das funktioniert also für beide Klassen, Methoden und auch nur diese V fließenden Codeblöcke, die ich, ich habe diesen selten gesehen, den Sie einfach so verwenden. Aber es ist sehr wichtig, dass zwischen den geschweiften Klammern, wenn Sie etwas als außerhalb der geschweiften Klammern initialisieren, es nicht vorhanden ist. Es gibt ein paar, wie Spezialität ist in speziellen Regeln. Aber im Allgemeinen sind sie außerhalb davon nicht zugänglich. Und ja, das ist nur eine kurze Zusammenfassung, wie man Code liest und ja.
6. (Java) Main-Methode: Alles klar, willkommen zurück zur Java-Einführung. Und worüber wir jetzt reden werden, ist, was dieses Ding bedeutet. Dies wird also auch als Hauptmethode bezeichnet. Und wie Sie sehen können, habe ich hier einen Kommentar geschrieben, der besagt, dass Code hier geht. Und was bedeutet das? Der Core-Code geht also zwischen den geschweiften Klammern, zwei in diesem und diesem. Sie werden auch hervorgehoben, wenn ich den Mauszeiger über sie führe oder sie nehme, den Cursor über sie nimm. Und im Grunde passiert, ist, dass alles in dieser Hauptmethode von oben nach unten ausgeführt wird. Also etwas,
das hier geschrieben wurde wird zuerst ausgeführt werden. Und wenn ich hier runtergehe, ist dieser hier zweiter, zum Beispiel, richtig? Also zuerst wird dieser ausgeführt, dann wird dieser ausgeführt und ist sehr einfach, im Grunde von oben nach unten. Und das gilt in der Hauptmethode. Und wir werden sehen, dass es nicht immer
wahr ist , dass es einfach linear oder von oben nach unten ist. Wissen Sie, Sie können, sagen wir,
Zweige haben , die den Fluss der Funktionsweise
des Programms ändern oder wie das Programm auswertet und ausgeführt wird. Aber im Allgemeinen benötigen Sie eine Hauptmethode in Ihrem Java-Programm, weil
das heißt, das wird ausgeführt werden. Und das ist, wo im Grunde der größte Teil des Codes, nicht der größte Teil des Codes, aber Sie wissen, ein Teil des Codes geht, dass er ausgeführt wird. Und in dieser Einführung der
größte Teil des Codes am Anfang besonders in diese Hauptmethode gehen. Weil das im Grunde so ist, wie wir können, dass wir das Programm verwenden können und es dann ausführen lassen können, oder? Also, was all diese Namen bedeuten? Also öffentlich statisch, leere. Wir werden langsam entdecken, was diese Begriffe bedeuten. Sofort. Was ich will, dass du das tust, ist irgendwie leere und sag einfach, okay, wir sind in der Hauptmethode. Und hier wird unser Code ausgeführt. Was das alles bedeutet, all das andere Zeug. Wir werden darüber reden. Auf jeden Fall. Es wird in späteren Vorlesungen kommen. Aber im Moment ist die Hauptsache Hauptsache. Sehen Sie, was ich dort gemacht habe, okay, jetzt ist die Hauptsache, was auch immer es in der Hauptmethode ist, die ausgeführt wird, das ist im Grunde das einzige, was Sie jetzt wissen müssen. In all den anderen Dingen, die Sie hier geschrieben sehen werden, die Orgel zu erklären. Aber mit der Zeit, weil wir zuerst ein paar zusätzliche Komponenten brauchen, die wir lernen, um wirklich zu verstehen, was die anderen Dinge bedeuten. Also, ja, das ist nur eine kurze Idee darüber was die Hauptmethode ist und warum es wichtig ist und warum. Da steht, hey, Code geht hier. Und ja.
7. (Java) Verwendung von println zur Ausgabe von Dinge in Java: Willkommen zurück zur Java-Einführung, und dieses Mal werden wir tatsächlich Code schreiben. Nun, was wir in dieser Vorlesung tun wollen, ist, dass wir etwas an die Konsole ausgeben wollen. Also zuerst wollen
wir eine Zeichenfolge ausgeben. Und was wir schreiben werden ist system.out.print, LN, Print Ellen steht nur für Drucklinie. Und dann machen wir eine offene Klammer. Und was passieren wird, ist, dass es automatisch das Ende generieren wird. Und dann werden wir zu Anführungszeichen und wir werden in Hallo Welt setzen. Was wir also tun wollen, ist, dass wir Hello World ausgeben wollen. Jetzt beenden wir die, die, im Grunde die Anweisung mit einem Semikolon. Das ist normalerweise, wie Sie eine Anweisung beenden. Und nun, es wirft keine Pfeile. Also fangen wir einfach an und sehen, was passiert. Also gehe ich nach rechts hier zu diesem Play-Button im Grunde und sage, führen Sie die Haupt, Wir werden das tun. Und dann, was passieren wird, ist, dass wir hier sehen werden, Hallo Welt. Was für eine schöne Sache. Sie haben nur vielleicht, wenn Sie noch nie ein Programm ausgeführt haben, und das war das erste Mal, herzlichen Glückwunsch. Ich weiß, dass dies vielleicht nicht dazu bestimmt ist, zu bevormunden. Ich meine es eigentlich ernst. Dies ist definitiv mehr als die meisten Leute damit GET, weil die Programmierung ,
während die ersten Schritte einfach aussehen könnten , wissen
Sie, je mehr Sie es tun, es ist, es hat etwas Tiefe dazu und, wissen Sie, den ersten Schritt zu
tun und dann auch verpflichten , so etwas zu nehmen, einen Kurs wie diesen. Das ist großartig. Es ist wirklich, es ist wirklich gut. Also, okay, lassen Sie uns über ein bisschen darüber reden, was hier passiert. Also jetzt hier sind wir Ausgänge, Ausgabe. Setzen einer Zeichenfolge ist eine Zeichenfolge, wie ich in den Datentypen Video,
eine Zeichenfolge und die Halloworld Strings gesagt habe , im Grunde das erste, was Sie ausgeben möchten. Jetzt können wir auch verschiedene Dinge ausgeben. So können wir auch speichern, zum Beispiel, Ausgabe Drucklinie 42, oder? Und lasst uns, lassen Sie uns das laufen. Und dann wird es 42 ausgeben. Das gibt also nur eine ganze Zahl aus. Also raus, oh, oh mein Lord. Einen int-Begriff ausgeben, richtig? Dies gibt eine ganze Zahl aus, die wir grundsätzlich jeden Datentyp ausgeben können, den wir auch wollen. Und das werden wir später sehen. Grundsätzlich unsere eigenen Datentypen. Und was passiert dann, wenn wir einen Float ausgeben wollen? Wie wär's mit dem? Wir werden das System aus der Drucklinie machen. Und wie Sie sehen können, hat
es hier bereits viele Vorschläge. Und wir können diese Vorschläge tatsächlich runtergehen und sagen, hey, ich möchte einen Float ausgeben, damit wir einfach Enter drücken können und es macht automatisch Sachen für uns. Und dann schreiben wir vielleicht, wenn
wir den Schwimmer machen wollen. Und das wird auch funktionieren. Lassen Sie uns einfach die 155.32 laufen. Und dann ist die letzte vielleicht wollen wir tatsächlich eine Variable haben. Vielleicht waren wir also nicht Int. Wir werden diese Ausgabe mich nennen. Und es wird natürlich 1137 sein. Und dann, was wir tun werden, ist, dass wir system.out.print-Linie machen. Und dann werden wir reinlegen, oh,
nein, das ist nicht das, was wir wollen. Wir wollen ausgeben, mich ausgeben. Und wie Sie sehen können, sobald ich ausschreibe, sagt es bereits, hey, willst du vielleicht die Variable Ausgabe mir ausgeben und ich sage natürlich, also werden wir eingeben und automatisch abgeschlossen und dann die Hauptmethode erneut ausführen. Wie Sie jetzt sehen können, gibt es aus, was in dieser Variablen geschrieben ist, und gibt mich aus. Ja, also würde dieser eine Variable setzen,
Variable in die Meere, Integer, richtig? Ja, also ist das im Grunde Ausgabe, wie Sie etwas ausgeben, eine String- und Integer-Float-Variable. In diesem Fall. In diesem Fall ist dies eine Integer-Variable, aber es kann jede Variable sein, die Sie eine String-Variable,
eine Float-Variable, eine kurze entlang eines char wollen . Und ja, das ist die Ausgabemethode. Also system.out.print-Zeile ist ein kurzer Nachtrag
dazu , da es auch eine system.out.print gibt, richtig? Und was passiert, wenn ich das mache? Nehmen wir an, ich will und dann ausgeben tausend. Und wenn wir das dann tun , wird vor allem nichts passieren. Aber jetzt ist das Interessante, wenn ich wieder eine 1000 setze, dann plötzlich, was ist das? So Drucklinie fügt im Grunde einen Zeilenumbruch am Ende
der Druckausgabe hinzu und drucken nicht. diesem Grund wird es normalerweise bevorzugt, Drucklinie zu verwenden, einfach weil
Sie dann nur mehrere Drucklinien
untereinander haben können und sie sich nicht gegenseitig stören. Nun, dieser hier, das wird wirklich interessant sein wenn Sie erwarten, dass mal 1000 statt, du weißt schon, die größere Zahl. Das ist also sehr wichtig zu bedenken, warum Linie drucken, warum ich Drucklinie verwendet habe und YB Drucklinie anstelle eines Drucks verwenden sollte, richtig? Und als kurzes Nachtrag hier können
Sie auch mehrere Dinge ausdrucken. Also, was Sie tun können, ist, zum Beispiel, wenn Sie schreiben System aus Druckzeile, können
Sie, zum Beispiel, eine Zeichenfolge machen. Als Beispiel, Umschreiben der Ausgabevariablen. Und dann gehen wir hinter die Schnur und wir machen ein Plus. Und dann zum Beispiel die Ausgabe, MY Variable. Und das funktioniert auch, und das funktioniert so, wie wir wollen. Zum Beispiel könnten wir dann auch sagen, vielleicht wollen wir,
diese Ausgabevariablen, die wir gerade ausgegeben haben, ist Kilogramm oder Pfund, oder es ist vielleicht Yards oder Meter Rate. Dann können wir einfach etwas dahinter hinzufügen. Und wenn wir das ausgeben, werden
sie zusammen geschrieben. Jetzt hier in diesem Fall wäre
ein Raum wahrscheinlich ziemlich schlau. Und dann sieht die Ausgabe tatsächlich irgendwie anständig aus. Und das funktioniert
entweder nur mit den Variablen dazwischen oder Sie könnten es auch mit Strings in der Theorie tun. Nun, in diesem Fall macht
es keinen Sinn, dies zu tun. Sie können es auch nur zu einer Zeichenfolge machen. Aber wenn Sie Variablen darin einfügen möchten, funktioniert
das auch sehr nützlich und mag eigentlich sehr einfach zu bedienen. Ja. Ja.
8. (Java) Integer und arithmetische Betreiber: Alles klar, willkommen zurück zur Java-Einführung. Und jetzt werden wir über ganze Zahlen und arithmetische Operatoren sprechen. Also, was bedeutet das? Es bedeutet im Grunde, okay, was können wir in diesem Fall mit ganzen Zahlen machen? Und wie können wir sie manipulieren? Das erste, was wir natürlich tun können, ist, dass wir Rate addieren können. Also, wenn wir haben, sagen wir, ein ,
zusätzlich wollen wir zuerst,
zweite hinzufügen , oder wir werden dies zuerst schreiben. Und dann machen wir ein Plus-Symbol. Und dann zweitens, ob am Ende noch einmal mit einem Semikolon eintritt. Und jetzt zusätzlich sollte
es eine 300 gelagert werden. Macht Sinn, wir können das tatsächlich überprüfen. Ausgabe, sagen wir mal. Und dann werden wir Addition ausgeben. Und wir werden das laufen lassen. Wie Sie sehen können, ist 300 zusätzlich, wie wir darüber nachgedacht haben, okay. Wir können auch sagen, was wir wollen, ist eine andere Summe, wo wir tatsächlich haben wollen, wissen
Sie, nicht es fügen zwei Variablen, aber vielleicht etwas anderes. So haben wir zum Beispiel, nehmen wir zusätzlich, das ist 300 und plus 200 oder 2200 plus 500. Das funktioniert auch. Wir können mehrere Dinge in der gleichen Zeile hinzufügen, kein Problem. Und dann werde ich das einfach kopieren. Und ich werde hier was reinlegen und wir werden sehen, dass das eine 1000 ist. Ja, natürlich, das ist großartig. Also jetzt werden wir 1000 in etwa 300 und Addition und 1000 und einige haben. Das ist großartig. Was können wir sonst noch tun? Nun, vielleicht willst du eigentlich etwas subtrahieren. Also werden wir die erste Minus-Sekunde haben. Interessant. Nun, was wird das ergeben? Nun, das sollte ein Minus 100 ergeben. Ok. Ist das ein Unmögliches? Natürlich. Das ist kein Problem. Wir werden nur noch eine Drucklinie haben. Wir drucken U-Boot aus, nur um zu sehen, was da drin ist. Und wir sehen, dass dies minus 100 ist, kein Problem überhaupt. Da ist gut. Was können wir sonst noch tun? Nun, vielleicht wollen wir etwas multiplizieren. Scheint, als ob es Sinn macht. Lassen Sie uns zuerst multiplizieren. Und das ist, das sollte dann eine 400 ergeben. Und wir werden das auch überprüfen. Nur um sicher zu sein. Hoffentlich hat sich Mathematik noch nicht geändert, aber ich glaube nicht, dass vier mal 100 immer noch 400 sind. Begrüßt. Und dann ist die letzte, sagen
wir einfach Sache oder Sache, die Sie wahrscheinlich von der Schule wissen, teilen. Also werden wir nur die zweite teilen, geteilt durch den ersten. Das sollte eine Zwei sein. Und dann überprüfen wir das nochmal. Und wir werden sehen, was das tut. Es ist in der Tat ein zu, das ist großartig. Jetzt gibt es noch eine Sache, die wir hier tun können, die wahrscheinlich ein bisschen anders ist. Und das ist im Grunde der Modulus oder der Rest, oder? Also haben wir Reste. Wenn wir also 25 von zwei nehmen, also ist das 25 Mod, Modulus oder Mod2, dann sollte dies eine Eins ergeben. Und der Grund, warum dies ein Eins ist, ist, wenn wir 25 teilen wollen, also 25 geteilt durch zwei funktioniert nicht richtig? Aber was passiert, ist, welche Zahl könnten wir dem Rest hinzufügen, damit er durch zwei teilbar ist. Und das wäre natürlich ein Eins. Also lassen Sie uns einfach überprüfen, dass der Rest hier. Ist eins und es ist, es ist eine Eins. Und dann, wenn wir nur einen weiteren Rest zum Beispiel überprüfen, und lassen Sie uns einfach ein 115 dann Modul zehn ausführen, zum Beispiel wäre dies eine Fünf. Ich hoffe, es ist 5F. Ich bin mir ziemlich sicher, dass es fünf ist. Denn was, was passieren wird, ist, dass wir tatsächlich eine 110 teilen können. Lass uns nur 11 mal zehn, oder? Aber dann wird 155 der Rest sein, richtig? Dies ist im Grunde der Restoperator, auch Modulus genannt. Und es kann tatsächlich hilfreich sein. Zum Beispiel ist das Modul zwei unglaublich großartig, weil Sie einfach überprüfen können, hey, ist das gleich 0, oder? Also ist Modul zwei bis 0, dann wissen Sie, dass Sie eine gerade Zahl haben. Oder wenn Sie nach einer suchen möchten, dann wissen Sie, dass Sie eine ungerade Zahl haben. Deshalb ist der Modulus Operator wirklich gut. Und jetzt haben wir manchmal vielleicht, weißt
du, diese Summe. Und vielleicht wollen wir Tsunami. Wir haben eine ganze Zahl, die wir I nennen, und das ist, was wir tun
wollen, ist, dass wir im Grunde plus eins dazu haben wollen. Was wir also tun können, ist, dass wir sagen können, na ja, ich ist gleich i plus eins. Das funktioniert völlig gut. Und jetzt ist zwei in IE geschrieben. Es ist auch möglich, dies ein wenig zu tun, noch einfacher. Und das wird sein, wenn du es tust, ich plus gleich eins ist. Denn jetzt wird es im Grunde auch die Aufgabe erledigen, sich selbst hinzuzufügen. Das ist also im Grunde das gleiche wie das hier. Diese sind also gleichwertig. Und jetzt wird es eine Drei geschrieben werden. Weil denken Sie daran, hier haben wir zwei, oder? Wir würden von oben nach unten gehen. Also in dieser Zeile haben wir eine zwei geschrieben in i, und jetzt haben wir eine drei geschrieben auf i, weil wir eine andere hinzugefügt haben. Jetzt kann das übrigens eine beliebige Zahl sein,
natürlich, was Sie wollen. Und das ist also kein Problem. Aber wir können sogar gehen, sagen wir, einfacher für die Inkrementierung und Dekrementierung. Inkrementieren und Dekrementieren bedeutet also im Grunde das Hinzufügen oder Subtrahieren eines. Also können wir einfach i plus, plus oder ich minus, minus. Und das ist sofort zu tun, dann hören Sie eine Vier. Und hier werden wir wieder eine Drei haben, denn in diesem Fall werden wir tatsächlich vom A1 subtrahieren. Und ja, jetzt ist diese Art des Schreibens sehr hilfreich, weil wir auch verschiedene Dinge tun können. So können wir auch vernünftige Minus gleich haben. Wir können Zeiten gleich haben, wir können Division gleich haben, und wir können auch den Modulus gleich haben. Also das hier ist wirklich, das hier ist wirklich gut. Ich werde das hier runterlegen. Nun, nein, dann wird sich alles ändern. Also lasst es uns dort behalten. Und das wird nur noch einen machen. Also ist das I plus gleich zehn. Und das hier wird eine 13 sein, richtig? Und wir haben verschiedene Arten von Dingen, die wir hier tun können, wie kurze Wege, dies zu schreiben. Es ist großartig, ob Sie es am Ende verwenden oder nicht. Es spielt keine Rolle. Es hat alles mit der Lesbarkeit der Code-Rate zu tun, wie einfach Sie den Code sehen werden
und wie einfach es ist, den Code zu verstehen. Denn das, was ich glaube, ist nicht so verständlich wie dieses. Wie OK, ich werde nur eins zu i hinzufügen und ich werde es in I schreiben. Und dieser hier
tut natürlich genau das Gleiche. Ich denke, ist ein wenig leichter zu lesen. Aber in Indien, am Ende des Tages, könnten
Sie völlig frei, eine von denen zu verwenden. Aber es ist wichtig zu wissen, dass diese Dinge existieren weil Sie vielleicht manchmal ein Zitat von einer anderen Person lesen. Und wenn sie nur diese verwenden, diese Art von Add oder Subtrahieren, dann werden Sie ein Problem haben, wenn Sie diese Dinge nicht wissen. Deshalb wollte ich das nur erwähnen. Es gibt andere Dinge, andere Möglichkeiten, dies zu tun und ja.
9. (Java) Boolesche und comparison: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren und
schauen wir uns die booleschen und Vergleichsoperatoren an. So können wir zum Beispiel initiieren liegt ein boolescher Wert mit dem Schlüsselwort Boolean. Und dann zum Beispiel nennen wir es einfach „b und in ihm können
wir entweder „wahr“, „wahr“ oder „falsch“ schreiben. Das ist das einzige, was in einen Boolean geht, entweder wahr oder falsch. Und wir könnten uns so etwas wie in einem Spiel vorstellen, zum Beispiel einen 2D-Jump'n'Run. Wahrscheinlich, weißt du, plötzlich wie Mario, haben Sie
wahrscheinlich alle so etwas gesehen. Und wir könnten uns einen Boolean vorstellen, der fragt, okay, ist Mario gerade auf dem Boden oder ist er nicht auf dem Boden? Und dieser Boolean könnte zum Beispiel aufgerufen werden, ist geerdet. Das ist also etwas konkreter, als nur einen Boolean namens
B oder C zu haben . Und in dem Fall, dass Mario springt, denke ich, es ist ziemlich klar, dass geerdet ist, wäre falsch. Und sobald er den Boden wieder berührt, ist
es, es ist geerdet wäre wahr. Dies ist also ein Beispiel, bei dem ein Boolescher Wert sehr nützlich sein könnte. Aber es gibt auch Dinge, die man mit Booleans machen kann, die sehr interessant sind. Wie gesagt, das Innere eines booleschen, können
Sie entweder eine true oder eine false speichern. Jetzt, sobald Sie auch tun können, wenn wir zum Beispiel ein boolesches x haben, können
Sie auch speichern. Sie können sich auch Ausdrücke ansehen und sehen, wie sie auswerten. So könnte ich zum Beispiel etwas vergleichen. Also kann ich zwei mit, sagen
wir fünf vergleichen und sagen, nun, die Frage hier ist, die gestellt wird, ist zu kleiner als fünf. Und dann ist die Antwort, nun, ist das wahr oder ist das falsch? Natürlich wäre dies in diesem Fall, entschuldigen Sie, es wäre wahr, dass Sie gehen. Und dann innerhalb von x würde
wahr gespeichert werden. Jetzt könnten wir auch etwas tun wie vielleicht sagen y, und dann haben wir zehn ist größer als 50. Und das wird natürlich falsch sein, denn zehn ist in der Tat nicht größer als 50. Und das sind einige der Dinge, die wir tun können. Dies sind Vergleichsoperatoren. Und es gibt, es gibt zum Beispiel einige andere. Es gibt also kleiner als, größer als, es gibt größer oder kleiner oder gleich und entspricht sich selbst. Also würde dieser zum Beispiel so aussehen. Boolescher Wert. B ist gleich, und dann würden wir eine 100100 haben. Und das hier nicht, das ist nicht die Aufgabe. Zuweisung ist ein einzelnes Gleichheitszeichen und zwei Gleichheitszeichen
bedeutet, bedeutet, hey, ist das gleich zueinander? Es gibt also eine 100 gleich einer 100 in diesem Fall, ja, deshalb ist das wahr. Und dann gibt es noch einen, der ungleich ist, aber auch einen Blick darauf werfen wird. Wenn wir also zum Beispiel 50 Ungleichheiten,
51 haben , dann wäre das tatsächlich wahr, weil 50 nicht 51. Das gibt also wahr zurück, wenn beide Seiten nicht gleich sind, genau da dahinter, ungleich und das ist gleich, richtig? Das sind also auch einige der Atmosphäre. Dies sind einige der Vergleichsoperatoren und Booleans, die Sie verwenden können. Und wie wir, wie werden wir mit den Booleans weitermachen? Das werden wir in einer späteren Vorlesung sehen. Aber das ist eine sehr gute Grundlage, um zu verstehen, was als nächstes kommt. Und so ja.
10. (Java) Boolesche und logische Betreiber: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir uns wieder Booleans ansehen, aber dieses Mal werden wir auch logische Operatoren betrachten. Also letzte Vorlesung haben wir mit diesem, und dieser Vortrag werden wir auf drei Arten von Operatoren zu betrachten. Drei Operatoren, die wir verwenden können. Wir werden uns die und Operator ansehen, was zwei kaufmännische Undd-Wissenschaft sein wird. Wir werden uns den Operator oder ansehen
, der zwei dieser vertikalen Linien sein wird. Und wir werden uns den Nicht-Operator ansehen
, der einfach ein Ausrufezeichen sein wird, richtig? Also lasst uns den ersten sehen. Dies wird also wieder in einem neuen booleschen Wert gespeichert. Also nennen wir das einfach Boolean B2. Zum Beispiel können
wir mit diesen Operatoren verschiedene boolesche Ausdrücke miteinander verketten. So können wir zum Beispiel x und y
tun. In diesem Fall wird gefragt, okay, was ist das Ergebnis von x und y? Der Operator und benötigt, dass beide Ausdrücke wahr sind, oder? Also, wenn x wahr ist und wenn y wahr ist, dann ist die gesamte Anweisung wahr. Jetzt in diesem Fall wissen wir, dass y tatsächlich falsch ist. Und deshalb wissen wir eigentlich, dass das falsch sein wird, oder? Dies ist der Operator und. Die. Dann schauen wir uns ein anderes an, zum Beispiel B3, das es in v3 speichern wird. Und das wird der ODER-Operator sein. Also der oder Operator, sagen
wir zum Beispiel, wir werden sagen, ist geerdet oder, oder sein, gelesen b erscheinen, ist geerdet oder B wird wahr sein. Und der Grund, warum es wahr sein wird, ist, weil, wenn eine
der Variablen oder einer der Ausdrücke wahr ist, dann ist die gesamte Aussage wahr, richtig? Weil wir fragen, okay, ist geerdet oder B. Und wenn einer von ihnen wahr ist, dann wird B3 auch wahr sein. Dies ist der Operator oder. Und dann wird der letzte davor der NOT-Operator oder die Negation sein. Und das schreibt einfach das Ausrufezeichen und dann was auch immer, zum Beispiel Boolescher Typ, den Sie haben möchten, und dies invertiert ihn im Grunde. So wird dies dies wahr in eine falsche verwandeln. Und das ist der nicht Operator. Wir haben diese Art von bereits mit dem Ungleichals-Operator hier und hier gesehen. Und dieser dreht einfach um oder invertiert alles, was in der Variablen geschrieben ist. Oder auch, zum Beispiel, wenn ich nicht wahr schreibe, wäre
das einfach auch falsch. Das sind also beide Dinge, die funktionieren und sehr wichtig. Sie können diese auch im Grunde unendlich miteinander verketten . Man kann also sagen, B2 und B4, oder b3, e3, und x, oder Rindfleisch vorher wieder, na ja, das macht keinen Sinn. Oder warum? Oder C, zum Beispiel, richtig? So würde das jetzt abscheulich kompliziert aussehen. Es gibt einige Mathematik, die Sie verwenden können, um im Grunde zu sehen, was Sie können, Sie können es vereinfachen, oder? Dies ist also eine, im Grunde eine Funktion. Sie könnten dies möglicherweise vereinfachen, wenn es Interesse gibt, ich kann Ihnen auf jeden Fall ein paar dieser Tricks und Tipps zeigen und was Sie verwenden können. Nur ein Recht eine Frage oder fragen Sie mich. Und ich werde sicher sein, auch Elektron das zu machen, wenn es genug Interesse dafür gibt. Ja, also war das im Grunde für die Booleschen und die Logik-Operatoren. Und ja.
11. (Java) Strings und String-Methods in Java: Alles klar, willkommen zurück zur Java-Einführung. In diesem Vortrag werden wir über Strings und String-Methoden sprechen. Also zuerst werden
wir über String reden. Also haben wir hier eine Schnur. Es heißt Satz und geschrieben Halloworld. Dieser Kurs ist wunderbar. Großartig. Nun wollen wir vielleicht herausfinden, wie lange diese Zeichenfolge ist? Wie viele Charaktere gibt es also? Das ist kein Problem. Das können wir übrigens sofort auch ausdrucken. Und das wird sein, also sagen wir, wir sagen, Länge ist, und dann tun Sie ein Plus, um das dann auszugeben. Also werden wir Satz, Satz Punktlänge haben. Und das wird dann ausgegeben, im Grunde wird das Ganze die Länge dieser Zeichenfolge ausgeben. Rufen wir das einfach an. Und wir werden sehen, Länge ist 38. Interessant. Im Grunde. Wir haben 38 Zeichen in dieser Zeichenfolge ist ziemlich gut. Also das ist eine gute Sache zu wissen, dass wir das herausfinden können, Punktlänge und dann die Klammern. Dies ist übrigens ein Methodenaufruf. Es ist im Grunde so etwas wie, wissen
Sie, die Hauptmethode, über die wir gesprochen haben, die Hauptmethode. Und das sind Methoden, die wir auf unseren einzelnen Saiten tun können, die wir haben. Und hier sind einige mehr, die für einige Dinge sehr nützlich sind. Also werde ich die überschreiben. Normalerweise mache ich das nicht gerne. In diesem Fall denke ich jedoch, dass es am sinnvollsten ist, weil immer die Drucklinie läuft und dann die Methode nicht so ist, wissen Sie, wertvoll. Aber ich werde es erklären. Also im Grunde vielleicht wollen wir, dass der Satz ganz Groß- oder Kleinbuchstaben ist. Und wir können die Methode verwenden, um Groß- oder Kleinbuchstaben. Jetzt sollte das selbsterklärend sein. Wir werden das nur leiten und wir werden kein Schreien sehen. Und dann haben wir alles in Großbuchstaben, wenn wir flüstern als mit allem in Kleinbuchstaben. Also auch die Dinge, die kapitalisiert wurden, die Worte, die vorher kapitalisiert werden, sind jetzt nicht, nicht kapitalistisch. Nun ist es auch sehr wichtig zu wissen, und ich werde dies demonstrieren, indem ich einfach den Satz selbst herausziehe,
ist, dass, wenn wir das tun, der Satz nicht geändert wird. Der variable Satz ändert sich nicht. Wenn Sie aufrufen, zum Beispiel zu APA oder zu senken. Es erstellt im Grunde eine neue Zeichenfolge, die die Änderungen hat, die Sie wollen. Zum Beispiel, setzen Sie alles in den Großbuchstaben, es gibt eine neue Zeichenfolge. Also, wenn Sie dann entweder den Satz selbst ändern wollen, dann müssen Sie diesen wieder in der Variablen speichern, etwa so. Also Satz gleich Satz Punkt zu Großbuchstaben. Dann Satz natürlich würde Großbuchstaben werden. Andernfalls wird der Satz selbst nicht geändert. Kurze Notiz, denn das ist irgendwie wichtig, oder? Vielleicht, wenn wir herausfinden wollen, ist hey, also wo in der, in diesem Satz ist das Wort Kurs gefunden, oder? Das nennt man den Index von und was wir dann nennen. Eigentlich wissen Sie was, lassen Sie uns sie in eine Zeile setzen, bitte. Ok. Und was wir hier nennen werden, wird verurteilt Index von und dann gehen wir einfach Kurs. Also werden wir in den Klammern Kurs schreiben. Ich schreibe das aus, nur um es ein bisschen klarer zu machen. Also schreiben wir Satzindex von. Dann können Sie sehen, dass wir ganzzahlige Zeichenfolge haben, wollen
wir eine Zeichenfolge ist. Also wollen wir im Grunde fragen, okay, wo in diesem Satz, wobei der Satz der folgende ist, Frühling gefunden und was wir Poren schreiben werden. Und wenn wir das ausführen, werden
wir feststellen, dass das Wort Kurs an Position 18 gefunden wird. Okay, warum ist das wichtig? Nun, es ist nicht unbedingt wichtig, aber es ist wichtig, dass, wissen Sie, okay, wir können zuerst sehen, wie lange eine Schnur ist. Und dann können wir hier wirklich sehen, okay, wo ist ein bestimmter Teil des Satzes? Wo steht es geschrieben? Und wir werden bald
genug sehen, was wir mit grundsätzlich gut machen können, wo auch immer das Indexamt. Aber zuerst werden wir so sein, naja, weißt du was? Ich will eigentlich nicht Hallo sagen Welt, weißt
du, ich will eigentlich Hallo Studenten sagen. Und dass wir die Ersetzungsmethode verwenden können. Also dann verwenden wir Satz Punkt ersetzen. Und da haben wir zwei Saiten gesetzt und wir werden uns das noch einmal ansehen. Also werden wir ersetzen. Und da haben wir die Idee. Dies wird in char-Sequenz geschrieben. Mach dir deswegen keine Sorgen. Es ist im Grunde eine Schnur. Also werden wir sagen, ersetzen. Und wir werden sagen, nun, wir wollen ersetzen. Das ist das Ziel. Das ist es, was wir die Welt ersetzen wollen. Und dann machen wir ein Komma und dann sagt, na ja, was der Ersatz, was wollen wir eine Breite in diesem Fall
ersetzen, Ich werde Studenten machen. Und wenn wir dann diesen ausgeben, werden
wir sehen, dass jetzt steht, hallo Studenten, dieser Kurs ist wunderbar. Also haben wir jede Instanz des Wortes,
Wortwelt durch das Wort Studenten ersetzt . Nun sehr wichtig, dies ersetzt alle Instanzen des Wortes. Nur so, richtig. Also dieser hier, ich werde das nochmal schreiben, ersetzt alle, alle Fälle des Wortes, richtig? Nur damit du das weißt. Und ich glaube, das steht auch hier geschrieben. So können Sie immer, wenn Sie nichts wissen, können
Sie immer darüber schweben. Und es wird dir einen Riesen wie so viele Informationen geben, es ist unglaublich. So zum Beispiel, hier, wie Sie sehen können, können
wir sehen, ersetzt jede Teilzeichenfolge einer Zeichenfolge, die
die literale Zielsequenz mit einer bestimmten literalen Ersatzsequenz übereinstimmt . Nun, das ist wie unglaublich, unglaublich kompliziert, sprechen Sie im Grunde zu sagen, hey, jedes Mal, wenn die Welt im Frühling ist, wird
es durch alles ersetzt werden, was du hier reinlegst. Das ist alles, was bedeutet. Das ist also im Grunde die Übersetzung ins normale Englisch, schätze ich. Und vielleicht, was wir sehen wollen,
hey, als hätten wir hier eine Schnur. Sagen wir also, wir werden eine Schnur haben, wir werden eine neue Saite machen. Und wir werden sagen, hey, gibt es da etwas, wo wir das fragen können? Und das ist im Grunde, wir können das in einen Boolean setzen. Wir könnten sagen, hey, diese Zeichenfolge ist nicht leer. Und jetzt natürlich in diesem Fall, ja, es ist leer, weil diese Zeichenfolge leer ist. Satz wäre nicht leer. Aber ich möchte das nur zeigen. Es ist in der Tat leer. Das ist nicht das, was ich wollte. Ich wollte eine Zeile B drucken .
Danke. Also, und dann werden wir das tun. Und das wird wahr sein, weil er fragt, hey, ist dieser Ring leer? Ja, das ist es. Und das können wir auch hier drin haben. Also haben wir unsere Zeichenfolge s, und wir werden einfach die Anführungszeichen
ohne irgendetwas in ihnen setzen , wenn Sie sehen, dass S leer ist. Und das ist in der Tat immer noch wahr, weil nichts in
S. geschrieben ist. Vielleicht wollen wir wissen, was eine Zeichenfolge beginnt und mit endet. Und das ist genau der Name der, der Methoden, die wir verwenden können. Und das beginnt mit und endet mit, beginnt mit einer n-ten Wurzel. Und jetzt fragen wir hier, okay, fängt der Stringsatz mit einem h an und endet er mit einem a? Und natürlich beginnt es mit einem H, aber es endet nicht mit einem a. Und dann, wenn wir das einfach tun und wir werden wahr für diesen einen sehen, und dann falsch oder endet mit. Und das ist auch eine Schnur, richtig? So können wir wieder mehrere Zeichen da drin haben. Und wir werden sagen, Hey, fängt nicht mit, zum Beispiel, hallo an, oder fängt es damit an, wie die, und natürlich fängt es nicht mit Howdy an, oder? Also würde dieser natürlich jetzt falsch werden. Ordnung, so ist es im Grunde, wie Sie die beginnt mit und endet mit Methoden verwenden können. Wir können auch fragen, gut ist etwas in der Saite. Also können wir sagen, hey, enthält diese Zeichenfolge zum Beispiel Welt, richtig? Und ich werde das nochmal kopieren. Das ist also im Grunde die Methode enthält. Und wir werden fragen, okay, enthält dieser Satz Welt, wahr oder falsch? Es ist in der Tat wahr. Weil es Welt einschließt. Nun, Sie könnten sagen, Warten Sie eine Sekunde, haben die Welt nicht durch Studenten ersetzt. Aha. Noch einmal, Ja, das haben wir getan. Aber genau wie bei Groß- und Kleinbuchstaben, was passiert, ist, dass wir tatsächlich eine neue Zeichenfolge hier erstellt haben. Also Satz wird nicht geändert. Noch einmal, sehr wichtig zu wissen. Ich denke, ich bin mir nicht sicher, ob jede einzelne String-Methode die Zeichenfolge
nicht ändert, aber ich glaube es. Ich glaube, dass jede Methode, die Sie für eine Zeichenfolge aufrufen können, sie nicht tatsächlich ändert, sie erstellt eine neue Zeichenfolge. Das ist also sehr wichtig zu wissen, und dass, wissen
Sie, manchmal und ich spreche von Erfahrung hier. Es hat manchmal zu Kopfschmerzen geführt, wenn Sie denken, nun, warum haben Sie sich nicht geändert und
30 Minuten nachdem Sie alles überprüft und Ihren Code überprüft haben. Oh, natürlich muss ich. Eigentlich habe ich im Grunde eine neue Variable und und speichere das auch. Das ist der Grund, warum in diesem Fall, die enthält Welt tatsächlich wahr ist. Dann willst du vielleicht „hey“ sagen, also haben wir eine, noch eine Sache. Vielleicht sagen wir „Hey“, okay. Also das Zeichen, also das Zeichen an der zehnten Position, was ist das? Ich möchte wissen, dass wir sehen können, dass dies AD ist. Wenn wir nun die Saite betrachten, ist
dies höchstwahrscheinlich das D aus der Welt. Ja, natürlich ist es eine andere Welt, denn hier wären wir schon um 0.30 Uhr oder so etwas. Deshalb ist dies, wird dies auch der Index genannt. Dann würde dies als Index sagen, wenn wir hier
Index von d schreiben . Dann können wir nachschlagen und wir können hier das Wort sehen, in diesem Fall Kerne, natürlich ist es nicht, richtig. Ich will D. Also lasst uns, machen wir es diesmal richtig. Was wir sehen werden ist, dass das Wort D an Position zehn gefunden wird. Und hier haben wir auf char an Position zehn geschaut. Und siehe, es ist auch d. So sind sie im Grunde miteinander verwandt. Und ich denke, das ist ziemlich gut. Ich denke, das ist ziemlich gut, oder? Okay, also haben wir viel darüber gelernt, was wir mit Strings und ihren Methoden machen können, aber es gibt immer noch ein paar kleine Dinge, die wir tun können. Und eines dieser Dinge, zum Beispiel,
ist, dass wir eine Teilzeichenfolge nehmen können. Vielleicht wollen wir diese Hello World nicht im Jahr. Vielleicht wollen wir nur, dass dieser Kurs wunderbar ist. Und werden wir dann verwenden können,
ist, dass wir die Teilstring-Methode verwenden können. Und wie funktioniert die Teilstring-Methode? Nun, was wir tun werden, ist, dass wir diesen Indexkurs im Grunde nehmen werden. Also, wie wir festgestellt haben, ist
der Index im Grunde das, wo wir in der Zeichenfolge sind. Also werden wir die 12. Position einnehmen. Und dann ist dies der Anfang der Teilzeichenfolgen. Die neue Zeichenfolge, die wir erstellen möchten, und die letzte, also dies ist auch eine Ganzzahl, ist die letzte Position, an die wir gehen möchten. In diesem Fall möchten wir nur zum Ende der Zeichenfolge gehen. Und deshalb können wir einfach die Länge nehmen. Weil natürlich das letzte Zeichen innerhalb der Zeichenfolge übereinstimmen wird. Die Position, der Index des letzten Zeichens wird also mit der Länge einer Zeichenfolge
übereinstimmen, wird genau gleich sein. Denn wenn Sie 1-2-3 und eine oben zählen, dann können Sie sagen, okay, diese Zeichenfolge ist so lang, und offensichtlich ist dies die letzte Position. Daher ist dies Position gleich seiner Länge. Also machen wir das einfach und schauen, was rauskommt. Ok? Und was herauskommen wird, ist, dass wir jetzt eine Leertaste oder ein Leerzeichen haben. Und dann ist dieser Kurs wunderbar. Nun, die Art und Weise, wie wir den Raum loswerden können, ist offensichtlich einfach eine 13 ist über 12. Aber das wird perfekt sein, weil dies
in eine andere der Funktionen führen wird, die wir betrachten werden. Und es wird getrimmt werden. Und getrimmt macht sehr einfach. Am Anfang und am Ende des Satzes oder der Zeichenfolge. Es geht nur in jeden weißen Raum. Also jeder, du weißt schon, jeder Raum, im Grunde wird es einfach entfernen. Das war's. Das ist alles, was es tut. Beschneiden Nach meiner Erfahrung. Wahrscheinlich manchmal nützlich, aber ja. Ja. Zusammenfassend sind dies im Grunde die Methoden, die ich für Strings zeigen wollte. Es gibt also eine Menge von ihnen, und es gibt noch einiges mehr, die nicht immer so nützlich sind. Oder manchmal sind sie es. Aber ich denke, dass dies im Grunde ein guter Überblick ist. Ok? Was können wir mit Saiten machen? Was sind die, was sind einige der Methoden, die wir verwenden können, um sie
im Grunde zu manipulieren und im Grunde spielen mit ihnen ein wenig. Und ja.
12. (Java) Casting Variablen: Alles klar, willkommen zurück zur Java-Einführung. Und in diesem Vortrag werden wir über Casting reden. Also, wie Sie wahrscheinlich gesehen haben, wenn wir eine ganze Zahl haben und das wird allein sein. Also werden wir einen Kredit von $750 bekommen, nur um der Argumentation willen. Und dann werden wir natürlich einen Zinssatz haben. Zinssatz. Und in diesem Fall wird der Zinssatz 5,25% betragen. Und wir werden dies natürlich als Float speichern, weil eine Ganzzahl die Dezimalstellen nicht speichern kann. Und so müssen wir das tun. Und jetzt, was wir tun können, interessanterweise, wie wir dann sagen können, okay, Interessen als einmal der Zinssatz. Oh, nein, nicht intra, inter integer, sondern Zinssatz. Und das wird einfach funktionieren. Denn in diesem Fall, ja, ist dies eine Ganzzahl und dies ist ein Float. Und wenn wir das alles ausgeben, werden
wir sagen, hey, was ist das Interesse, das tatsächlich gezeigt hat? Aber es wird ein verrücktes Ja, es ist 39,375. Also $39. Und in diesem Fall würde
ich wahrscheinlich 0,38$ argumentieren. Also werden wir zusammenkommen. Und das funktioniert, weil die ganze Zahl im Grunde auf dem Flug
sozusagen in einen Float umgewandelt wird. Und das funktioniert einfach. Nun, wenn wir int sagen, wird
das nicht funktionieren, weil er wie nein sein wird, funktioniert
das nicht. Das ist ein Schwimmer, diese Arbeit. Und das ist der Grund, warum dieses Netz, das ein Schwimmer sein muss. Wir können das im Grunde umwandeln. Wir können Konvertierte zwingen, sozusagen. Wenn wir Float davor in Klammern schreiben, und dann wird dieser als Float behandelt. Jetzt ist hier eine Ganzzahl, aber jetzt in ihrer Gesamtheit wird sie als Float behandelt. Das ist schon das, was passiert, oder? Aber das ist, in diesem Fall, es ist ziemlich gut darin, dass das funktioniert im laufenden Betrieb, oder? Also müssen wir nicht darüber nachdenken. Wie wäre es, wenn wir ein Beispiel haben, wo es tatsächlich ein Port ist. Wenn wir also einen Index haben, nennen wir ihn einfach x und da haben wir 50,5, f plus 20. Sagen wir 235 oder F scharf. Jetzt wird das sein, funktioniert nicht, weil dies ein ist, das ist ein Float, ein Float ist, aber wir wollen ein ganzzahliges Zahlenproblem. Was wir tun können, ist, wir könnten einfach sagen, hey int. Und das ist alles auch. Und dann wird er beide Zahlen als Ganzzahlen behandeln. Aber was wir dann sehen können, lassen Sie uns eigentlich, es ist tatsächlich ein Sechs-Jahr, das interessanter wird. Also werden wir das X ausgeben und was wir finden werden ist, dass es 70. Und dann werden wir eine Sekunde nachdenken. Wir werden wie, warte, ein 20.5.6, das sollte 71.1 sein. Aber es ist nicht richtig, denn was passiert ist, wenn wir einen Float haben und ihn in eine ganze Zahl umwandeln, richtig? Das ist also im Grunde das Nehmen des Floats und im Grunde, weißt
du, das Austauschen zu einer Ganzzahl. Was dann passieren wird, ist alles nachdem der Dezimalpunkt gerade abgeschnitten wird. Wir werden das einfach ganz ignorieren, oder? Dies ist also im Grunde das Casting von einem, von einem Float zu einer Ganzzahl. Grundsätzlich bedeutet, dass Sie Informationen verlieren. Hauptsächlich, was nach dem Dezimalpunkt geschrieben wird. Hoppla, tut mir leid. Was steht nach dem Dezimalpunkt geschrieben, richtig? Deshalb ist die, wenn Sie kosten, müssen Sie vorsichtig sein, manchmal Informationen zu verlieren. Also in diesem Fall, von einem, von einem Gleitkommawert zu einer Ganzzahl, wird
das Informationen von einer Ganzzahl zu einer fließenden verlieren. Nun, Sie werden keine Informationen gewinnen, weil die ganze Zahl
kein ähnliches nach den Dezimalstellen hatte. Aber jetzt können Sie es als solche verwenden. Und das ist im Grunde eine Instanz von nur, naja, im Grunde ist es in diesem Fall nicht wirklich implizit Casting, weil er das einfach umgehen kann. Aber das ist das explizite Casting. Das ist also, wo wir sind wie, okay, das muss als Ganzzahl behandelt werden. Und ich wollte nur diese Kostenrechnung hervorheben. Und wie Sie es tun, ist einfach vor der Variablen, Sie schreiben einfach in Klammern, welchen Datentyp Sie dies kosten möchten. Jetzt funktionieren einige Kosten Dinge nicht. Also zum Beispiel, wenn ich so bin, lasst uns ein int y machen und wir sagen 50 plus. Und dann gingen wir, um helloworld zu kosten. Was bedeutet das überhaupt? Rate, Sie können eine Zeichenfolge nicht in eine ganze Zahl umwandeln. Denn was würdest du tun? Interessanterweise, und ich werde dieses Jahr nur erwähnen, vielleicht wollen wir einen Charakter fragen, der funktioniert, der funktioniert. Und der Grund, warum das funktioniert, liegt darin, dass Zeichen im Hintergrund sozusagen im Grunde als Ganzzahlen gespeichert werden. Und so wird das funktionieren, aber eine Zeichenfolge, die keinen Sinn macht. Das war also ein sehr kurzer Überblick über das Casting. Und wie immer, wenn Sie irgendwelche Fragen haben, zögern Sie nicht, sie zu fragen und ich werde antworten und zu ihnen kommen. Und ja.
13. (Java) ganze Zahlen und Math-Methods: Alles klar, willkommen zurück zur Java-Einführung. Und in diesem Vortrag werden wir wieder ein bisschen über ganze Zahlen und mathematische Methoden sprechen. Also werden wir Mathematik benutzen, ich weiß, aber mach dir keine Sorgen. Es wird nicht verrückt sein. Also zuerst werden wir etwas ausgeben und wir wollten diese Math.min Acts ausgeben. Und dann werden wir x und y machen also wird das offensichtlich 225 ausgeben, weil das Maximum von diesen beiden 225 ist. Das macht, ich hoffe, das ergibt Sinn. Und dann im Grunde völlig analog dazu, können
wir einfach min verwenden und das wird dann eine 100 ausgeben. Das ist also eine sehr einfache Möglichkeit, im Grunde zu sagen, okay, was ist das Maximum? Was ist das Minimum von zwei Zahlen als Maximum, Minimum? Dann wollen wir vielleicht tatsächlich die Quadratwurzel von etwas haben. Nun, das wird etwas, das komplex sein wird, oder? Nein, wir werden nur Mathematik machen, Quadratwurzel, also SQRT. Und dann werden wir, zum Beispiel y und das wird 15 ergeben, weil die Quadratwurzel von 225 15 ist. Wir werden uns das einfach ansehen. Wir werden das ausführen und wir werden sehen, wie Sie sehen können, zweihundertfünfundzwanzig, hundertfünfzehn. Nun werden Sie auch feststellen, dass dies ein Dezimalpunkt hinzugefügt wurde. Hmm, warum ist das? Weil Quadratwurzel, wenn wir tatsächlich über sie schweben, können
wir sehen, dass dies ein Double ist. Dies gibt also einen doppelten Wert und erwartet auch einen doppelten Wert. Aber wir können es auch einfach in einer ganzen Zahl übergeben, weil das in Ordnung sein wird. Und ja, das ist eigentlich ein doppelter Wert. Nun, wie wir in der letzten Vorlesung gesehen haben, können
wir das tatsächlich auf eine ganze Zahl kosten. Und dann, was wir sehen werden, ist, dass wir zum Beispiel nur 15 haben werden. Wenn wir also wissen, dass die Quadratwurzel, die wir nehmen werden, gut wird. Es wird eine ganze Zahl sein, dann ist das in Ordnung. Aber nur für den Fall, wer weiß? Wenn wir mit vielen negativen Zahlen zu tun haben, vielleicht auch mit negativen Menschen. Aber in diesem Fall mit negativen Zahlen können
wir absolut, den absoluten Wert verwenden. So ist der absolute Wert von minus 5 Tausend offensichtlich nur 5 Tausend. Also wird es dauern, was auch immer ist. Wir werden im Grunde das Minus des negativen Vorzeichens entfernen. Das ist alles. Und wenn wir auf- oder abrunden wollen, haben
wir einige Möglichkeiten dafür. Und das sind die Optionen, die normalerweise dafür verwendet werden. Dies ist die ceil-Funktion. Wenn wir also 22 haben, zum Beispiel
für so etwas, 22.413, wird die ceil-Funktion sie dann auf die nächste ganze Zahl aufrunden. Das wird also ein 23. Und wenn wir die Floor-Funktion haben, die genau das Gegenteil ist, dann werden wir die gleiche Nummer haben. Dann werden wir tatsächlich auf
die nächste ganze Zahl abrunden , unabhängig davon, ob die Regel mit,
na ja, wenn es ein Fünf und mehr ist, als wir aufrunden werden. Nein, die Versiegelung wird immer auf
die nächste Ganzzahl aufgerundet und der Boden läuft immer auf den nächsten Zoll. Wie Sie sehen können, ist dies 23 und das ist 22. Beachten Sie noch einmal, dass dies in diesem Fall und in beiden Fällen ein Double zurückgibt. So. Manchmal kann das zu unterschiedlichen Ergebnissen führen. Wir können auch immer eine ganze Zahl darstellen, weil dies
immer einen ganzzahligen Wert in dem Sinne zurückgibt, dass es immer etwas mit nichts nach dem Dezimalpunkt sein wird. Und dann, weißt du,
haben wir vielleicht die Quadratwurzel gemacht, aber ich meine, seien wir ehrlich. Wir wollen vielleicht auch etwas zur Macht von etwas haben. Also werden wir das Math.Pow haben, was natürlich das Beste und Lustigste ist, was es zu haben hat. Und was wir tun werden, ist, dass wir eine Zehn auf die Macht von zwei haben. Also im Grunde wird das zehn auf die Macht von zwei sein. Und ich hoffe, wir alle wissen, was das ist. Natürlich ist es eine 100. Aber genau so wird die letzte Methode, über
die wir sprechen werden, wenn wir uns
die mathematische Funktion ansehen , etwas sein
, das wirklich interessant und wichtig für die Webprogrammierung im Allgemeinen ist . Und das wird die zufälligen Methoden sein. Also mathematische Punkt zufällig. Und jetzt, was ist Methode zufällig tun? Nun, es erzeugt im Grunde eine Zahl zwischen 0 und 1,00. Also gehen wir einfach, lassen Sie uns das einfach ausführen. Es wird also 0,64 und Verrücktheit sein. Und dann werden wir, wie wäre es, wenn wir das nochmal ausführen? Und das wird 0,907 sein. Und wieder wird es anders sein. Wenn wir dann vielleicht eine andere Zahl haben wollen, was wir tun können, also zum Beispiel, wenn wir Zahlen zwischen 0 wollen und etwas anderes wird auch fällig sein. Geben Sie mir so etwas wie dieses Mal sagen wir eine 100, oder? Und das wird ein Schwimmer sein. Ich glaube, wir können einfach eine ganze Zahl machen. Und dann werden wir 50. Und dann können wir das alles in eine ganze Zahl umwandeln. Und dann haben wir einen einfachen Weg, von 0 zu,
von 0 zu 100 und das zu gehen , wenn wir
also das Ganze in eine ganze Zahl kosten, jetzt,
der Grund, warum ich das Ganze in eine ganze Zahl gegossen habe, anstatt nur zufällig zu machen. Denn wenn ich, wenn ich nicht kostet, wenn ein Cousin in eine ganze Zahl, dann wird es immer im Grunde eine 0 sein. Das wird mir also nicht wirklich nützlich sein. Aber in diesem Fall haben wir dann eine ganze Zahl und das wird immer anders sein. 58, nun, das wird noch 41 mehr haben. 98, nun, das ist ziemlich gut. Richtig? Und das sind die Zufallsfunktionen jedes Mal, wenn es angerufen wird, werden
wir eine andere Nummer bekommen. Und das ist wirklich nützlich für alle möglichen Sachen. Weißt du, wenn du vielleicht zum Beispiel ein Spiel
programmieren willst als zufällig, sind die
Dinge wirklich wichtig. Jetzt wird es auch sein, er wird das sagen, das ist pseudo-zufällig. Mach dir keine Sorgen darüber. Solange du nichts Verrücktes mit der zufälligen Sache machst, wie Entschlüsseln, Verschlüsseln etwas oder so etwas, dann spielt es keine Rolle. Das Pseudorandom, wenn das etwas ist, das
Sie interessiert oder dass Sie ein bisschen mehr Informationen haben wollen,
dann zögern Sie nicht, mich zu fragen und vielleicht werde ich ein wenig kurz, wissen
Sie, wie Website-Video, Website Vortrag darüber. Aber im Allgemeinen spielt es keine Rolle für unsere Zwecke. Das ist zufällig. Dies ist nur eine Zufallszahl, die generiert wird und ja.
14. (Java): Alles klar, willkommen zurück zur Java-Einführung. In dieser Vorlesung werden wir darüber reden, ob und sonst Aussagen. Und in früheren Vorträgen haben wir bereits gesehen ein booleans und Vergleichsoperatoren und wie sie miteinander verwandt sind. Und jetzt werden wir sehen, okay, wie können wir diese verwenden, um unser Programm im Grunde zu ändern oder die Funktionsweise eines Programms zu ändern. Das erste, was wir tun werden, ist, dass wir eine if-Anweisung verwenden. Und die if-Anweisung fragt im Grunde, was in den Klammern steht, okay, ist das wahr oder ist das falsch? Also, wenn das falsch ist, dann werden wir etwas Code ausführen. Und dann werden wir sehen, was das mit sich bringt. Zum Beispiel könnten wir fragen, ob x größer als y oder größer als y ist und ich werde es tun, werde ich in zwei geschweifte Klammern setzen. Und alles in diesen geschweiften Klammern. Alles hier, genau, hier drin, wird hingerichtet. Exekutiert, okay? Ja, sie gehen, wenn sie wahr sind, oder? Also, wenn das wahr ist, wenn dieser Ausdruck, was auch immer in der Klammer ist, und es kann ein wirklich langer Ausdruck sein, aber es kann x größer als y und oder all das sein. Solange es ein Boolean ist, im Grunde da drin, und wenn das wahr ist, dann wird dies ausgeführt. So können wir zum Beispiel
in diesem Fall einfach ausdrucken, vielleicht
ist etwas wie x größer als y, denn das ist definitiv etwas, das passiert, wenn dies der Fall ist. Jetzt wollen wir vielleicht genau den gegenteiligen Fall wollen. Also vielleicht willst du sagen, wenn das wahr ist, dann werden wir das tun. Aber wenn es nicht der Fall ist, also wenn es nicht wahr ist, dann können wir vielleicht, wenn etwas anderes und dann gehen Sie anders ist genau das richtige Wort. Denn dann können wir hier einfach ein anderes hinzufügen. Wieder mit Klammern und, oder mit einem, mit einem geschweiften Klammern eher. Und da drin, jetzt hier, alles in Ordnung? Also, wenn wir das hier reinbringen, wird alles ausgeführt. Wenn es falsch ist, richtig? Wenn dies, diese Anweisung im Grunde falsch ist, dann wird die else-Anweisung ausgeführt. Und dann können wir schreiben, zum Beispiel, wir werden nur das kopieren über x ist nicht größer als y, oder? Und wie wir deutlich sehen können, ist
x ein 100 und y ist 1000. Also offensichtlich ist dieser Ausdruck falsch. Und was wir dann hier erwarten würden, ist, diesen auszudrucken. Also wollten wir sehen, dass X nicht größer ist als y. Drucken Sie es aus. Wir werden das einfach ausführen und sehen, was passiert. Und das ist genau das, was wir sehen werden. X ist nicht größer als y. großartig. Das ist alles würde auch immer großartig. Oder eine, eine gute Idee, wenn Sie Code schreiben und etwas erwarten, führen Sie es einfach aus. Und wenn du nicht verstehst, was du erwartet hast, dann ist es
offensichtlich manchmal ein Dollar da drin oder manchmal gibt es nur vielleicht, du weißt schon, dass
du etwas falsch eingegeben hast, immer ein Fall oder der Fall sein könnte. Und so ist das immer großartig. Führen Sie es einfach aus. Denk, okay, ich erwarte das. Wenn es herauskommt, ist das wirklich gut. Nun, das ist ein bisschen länger, als nötig sein könnte. Was wir also tun können, ist, dass wir auch schreiben können, wenn und dann haben wir einen booleschen Wert hier. Das ist ein guter Kurs, und wir werden das hier nur schreiben. Und dann werde ich nur den Cursor hinter die Klammer setzen, und ich werde einfach die Eingabetaste drücken. Und Sie sehen die Karotte im Grunde in dicht sofort. Und ich werde hier nur eine Zeile schreiben, die Feinde der Drucklinie können sagen, ja, ziemlich gut. Das ist also im Grunde, also ist es natürlich gut. Wenn ja, dann werde ich ausdrucken, ja, es ist ziemlich gut. Und du siehst, dass ich keine Fehler bekomme. Und ich habe nicht die geschweiften Klammern. Warum ist das so? Nun, Sie können eine Zeile nach einer if,
dann else Anweisung haben , die ausgeführt wird. Und dann muss es nicht sein, naja, es muss nicht so viel,
so viel Raumerate aufnehmen . Natürlich können Sie auch die geschweiften Klammern oben setzen. Aber natürlich habe
ich am Anfang des Kurses bereits darüber gesprochen, warum das Wort, das ich so bevorzugt habe. Das ist offensichtlich eine ganz persönliche Entscheidung im Grunde. Und es ändert überhaupt nichts an dem Code. Richtig? Das ist also, in diesem Fall haben
wir das in einer Zeile. Jetzt können wir keine weitere Zeile machen, die ausgeführt wird. Sobald wir also zwei Zeilen haben, die wir in einer if-Anweisung
ausgeführt haben wollen , funktioniert es nicht mehr. Nun, ich möchte etwas zu der booleschen Sache sagen, oder? Also in diesem Fall ist der Boolean wahr, oder? Das hier ist genau so, als ob es gut ist. Und das ist im Grunde
ein, eine Abkürzung der Frage ist guter Kurs gleich wahr, oder? Und manchmal einige Leute, und manchmal macht es Sinn, ich werde die einfach nur kopieren. Aber es ist immer noch ziemlich gut. Ich sage es so. Also zuerst geht
er auf den Markt und er wird wie ein,
das ist, natürlich ist das wahr, was auch immer. Und Sie können auch einfach den Boolean hier schreiben. Manchmal bevorzugen manche Leute es so zu schreiben, um es etwas expliziter zu machen. Um zu sagen, Hey, das ist, wenn das wahr ist, dann werden wir vorwärts gehen. Weil vielleicht, weißt du, so darüber nachdenken. Nein, nein, wir haben jetzt 32 Codezeilen, 700 Codezeilen. Und du gehst durch, und irgendwann wirst du einfach so etwas lesen. Und wenn die, wenn die Variablen nicht richtig benannt sind, richtig? Dann werden wir auf ein riesiges Problem stoßen, weil normalerweise, wissen
Sie, die booleschen Variablen, wenn sie mit beginnen, ist oder hat oder so etwas, funktioniert, dann können Sie sie am einfachsten erkennen, richtig? Sie können leicht sehen, wie dies ein boolescher Wert ist. Und natürlich kann man immer darüber schweben,
sehen, was es tut, was es ist. Manche Leute benutzen das. Manche Leute tun es nicht. Auch Vorliebe, nicht wahr? Das ist nur eine Vorliebe. Ich wollte nur zeigen, dass beide Dinge völlig gültig sind. Beide arbeiten. Und das Wichtigste ist am Ende, wenn Sie den Code schreiben, dass Sie ihn lesen können, oder? Das ist das Wichtigste. Also, egal welche Version du würdest, du bevorzugst persönlich oder dass es dir klarer ist, benutze diese. Und dann als letztes. Also haben wir gesehen, ob und dann eine andere Aussage. Aber wir können es sogar noch mehr tun. Nehmen wir zum Beispiel an, wir haben ein Unter wie dieses. Also x ist kleiner als 50 und wir werden
drucken x kleiner als 50 nur um des Arguments willen. Und dann werden wir so sein wie, nun, lasst uns eine andere Aussage machen. Aber eigentlich möchte ich etwas spezifischeres fragen. Wir können eigentlich nach dem anderen,
wir können einfach ein anderes setzen, wenn ,
richtig, also dann können wir OK sagen, wenn es größer oder gleich 50 ist, und wenn x größer oder kleiner als eine 100 ist, dann was wir schreiben out ist im Grunde in diesem Fall auch das, was wir dort geschrieben haben. Aber wir könnten uns etwas vorstellen, etwas Hinrichtung. Nun, wir wollen sehen, ob X genau zwischen 5000 liegt und dann würden wir es vielleicht für sein, also zum Beispiel wäre diese gute, gute Idee, du weißt schon, vielleicht eine tolle Rate, prozentuale Note. Also, wenn Sie 50 sind, Sie unter 50. Tja, traurigerweise hast du nicht die Note bestanden. Hier. Du bekommst die Note und dann
hast du es vielleicht in 100 Jahren wirklich gut gemacht, oder? Das ist also etwas, das funktioniert. Und ja, und dann könntest
du es natürlich so lassen, oder du kannst sogar noch ein anderes hinstellen. Und in diesem Fall wäre es nur eine 100. Nun, in diesem Fall ein 100 mehr, größer oder gleich, natürlich, so, ja. Und auf diese Weise können Sie im Grunde einfach mehrere Fragen durchlaufen, mehrere if-Anweisungen und x. Nun, wenn das wahr ist, dann tun Sie dies. Wenn es nicht wahr ist, dann geht er in den L-Zustand, dann geht das Programm im Grunde zur else-Anweisung. Und es ist wie in Ordnung, sonst. Und dann ist er wie, oh, okay. Wenn und dann wird das ausgeführt werden. Wenn das der Fall ist, wenn nicht anders. Und dann diese Produktion. Und so ist dies im Grunde der kleine Überblick über if und if else Aussagen. Und ja.
15. (Java) Der Ternary in Java: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. In diesem Vortrag werden wir über den ternären Operator sprechen. Und das erste, was mir in
den Sinn kommt, ist, oh mein Gott, das klingt verrückt. Kompliziert. Grenzen zu müssen ist überhaupt nicht kompliziert. So haben
wir hier zum Beispiel eine ganze Zahl, die eine großartige Lektüre ist. So zum Beispiel, Ihre Note auf einem Test oder einer Prüfung wird 69. Und dann haben wir vielleicht einen booleschen Wert, der bestanden ist, oder? Und das ist nur ein Boolean, der bedeutet, dass Sie den Test bestanden haben oder nicht oder die Prüfung oder vielleicht den gesamten Kurs. Und natürlich können wir sagen, hey, wenn die Note größer oder gleich 15 ist, dann werden wir einfach übergeben werden, ist wahr. Und dann tun wir sonst als gleich falsch übergeben. Das funktioniert ganz gut. In diesem Fall haben
wir jedoch tatsächlich vier Codezeilen verwendet. Und natürlich ist es lesbar. Und das ist großartig. Es gäbe jedoch einen anderen Weg, dies zu tun. Und die andere Art, es zu tun, werde ich das schnell loswerden. Und die andere Möglichkeit, es zu tun, ist der ternäre Operator. Und dann können wir das im Grunde in einer Zeile schreiben. Also ternärer Operator ist natürlich von drei abgeleitet. Es sind also drei Teile dazu. Der erste Teil sind die booleschen Zustände, richtig? Was wir also wissen wollen, ist, nun, wenn x größer oder gleich 50 ist, dann sind wir natürlich bestanden. Dann, was wir es als Fragezeichen schreiben werden, dann was auch immer wir zurückgekehrt haben wollen, wenn es in diesem Fall wahr ist, dann werden wir ein, einen Doppelpunkt schreiben, und dann werden wir falsch schreiben. Also im Grunde, was passiert, wenn das nicht zu uns kommt, natürlich ist es nicht x, sorry, das ist großartig. Und das ist im Grunde schon alles in dieser Linie. Dasselbe passiert mit der if-else-Anweisung. Jetzt ist dies manchmal nicht förderlich für guten Code, weil Sie es nicht so klar lesen können. Manchmal sollte
es jedoch bei einfachen Dingen wie diesen ziemlich offensichtlich werden, was hier passiert. Und, aber wie das auch sein kann,
Sie können auch einen anderen ternären Operator in den ternären Operator der Düse setzen und so weiter. Und irgendwann wird es einfach
verrückt, verrückt komplex zu lesen. Jedenfalls irgendwas. Das ist also eines der Dinge, die möglich sind, und es muss nicht nur Boolean sein, oder? Du kannst tun, was du willst. So können Sie zum Beispiel eine ganzzahlige Zahl haben. Und wir könnten so etwas sagen wie, na ja, weißt
du, wenn die Note zum Beispiel genau eine 100 ist, dann ist vielleicht etwas, das wir in der Zahl haben wollen, wie neun. Und wenn es keine 100 ist, also wenn es etwas anderes als eine 100 ist, dann wollen wir vielleicht ein 100-jähriges Was, was
auch immer es sein mag , was auch immer das ist, was auch immer dahinter steckt, weißt
du, wie ich sagte: Natürlich können Sie auch eine if-Anweisung haben. Wenn die Note gleich 100 ist, dann ist die Zahl gleich neun. Else Zahl ist in diesem Fall gleich einem 100. Und so können Sie, dies ist im Grunde nur eine, andere Möglichkeit, if-Anweisungen zu verwenden. Aber in einer Zeile, sehr wichtig, dass Sie das gesehen haben, weil
dies definitiv in vielen Programmen verwendet wird und es wahrscheinlich auch
manchmal nützlich
ist wahrscheinlich auch
manchmal nützlich
ist, wo die if-Anweisung einfach zu viel Platz,
zu viel Platz einnimmt und ist nicht sehr komplex. Das ist also der ternäre Operator für Sie. Ja, ja.
16. (Java): In Ordnung, Java-Einführung. Wir haben zwei Möglichkeiten gesehen, wie wir im Grunde sagen können, hey, wenn das der Fall ist, dann ist das der Fall, dann ist das entweder mit if und else Anweisungen oder mit dem ternären Operator da drüben ein Drittel, na ja, Wahl, die wir haben, und das ist die switch-Anweisung. Und dafür werden wir nur Schalter eintippen. Und dann in die Klammern geben wir die, im
Grunde die Variable ein, die wir bewerten möchten. Sagen wir, es wird nur x eingeben und dann brauchen wir, damit das funktioniert. Klammern oder nicht Klammern, wiederum geschweifte Klammern und die geschweiften Klammern. Jetzt werden wir im Grunde Fälle schreiben, oder? Also müssen wir explizit sagen, geben Sie jeden Fall, den wir wollen. Also zum Beispiel, wenn x zehn ist, was
passiert, zum Beispiel,
ist, dass wir System aus, drucken Zeile x ist sicherlich richtig. Sicher. Nun, was wir hier beenden wollen, ist Break nur ein Schlüsselwort, das wir am Ende der Zeile verwenden müssten. Und das ist im Grunde die switch-Anweisung. Nun, offensichtlich werden wir
mehr Fälle als diesen haben , weil ein Fall einfach keinen Sinn ergibt. Wir werden eine andere Drucklinie haben, wo, zum Beispiel, Access 20. Und dann noch einmal, vergessen Sie nicht die Bremse, sonst wird es nicht funktionieren. Nun, was passiert, zum Beispiel, wenn wir sagen, na ja, OK. Jetzt ist X zehn. Dies ist ausgeführte Rate. Ok? Wir haben überschüssige 20. Dies wird auch großartig ausgeführt. Aber was passiert, wenn x weder zehn noch 20 ist? Wir können ein, ein anderes Schlüsselwort, das Standard ist. Und das ist so geschrieben. Und dann haben wir im Grunde so System, dass aus und dann alles ausgeführt wird, wenn es genau nicht einer der anderen genannten Fälle ist. Und dann sagst du einfach, ich weiß es nicht, richtig. Weil du nicht weißt, was es ist. Nun, Sie könnten es wissen, aber Sie haben sich entschieden, nicht in einer switch-Anweisung sagen zu lassen. Die switch-Anweisung ist also definitiv für bestimmte Fälle nützlich. Es ist nicht sehr nützlich, wenn Sie, sagen wir,
eine Reihe von Zahlen haben wollen , wie wir zuvor gesehen haben,
zum Beispiel mit der Note, die Sie haben. Und dann, wenn Sie jeden Fall verwenden würden, Sie wie eine Note skaliert, sagen wir von 0 zu eins, das ist von 0 bis 100, sagen wir. Und dann bist du wie, okay, ist 0 Fall eins, Fall zwei,
wie es Madden ist, es, das ist keine gute Idee. Wie wird die switch-Anweisung, wie ich sagte, unter bestimmten Umständen wirklich nützlich sein, wie es bei vielen dieser Dinge in Java im Grunde ist. Ja, das ist die Switch-Anweisung im Grunde auf den Punkt gebracht. Und ja.
17. (Java): Alles klar, lassen Sie uns weiter. In dieser Vorlesung werden wir über die while-Schleife sprechen. Was ist, wenn wir ein Stück Code haben wollen, den wir ausführen möchten, wissen
Sie, x Anzahl von Malen zum Beispiel, oder wenn eine bestimmte Anweisung oder wenn ein bestimmtes Kriterien erfüllt ist, Bedingung erfüllt ist, dann wollen wir aufhören zu verwenden oder die Ausführung dieses -Code. Wie können wir das tun? Nun, eine der Möglichkeiten, wie wir es tun können, ist mit einer while-Schleife. Also werden wir nur das Schlüsselwort eingeben, während. Und dann werden wir in den Klammern eine Bedingung hinzufügen. Also eine boolesche Bedingung, im Grunde, in diesem Fall, was wir sagen werden, ist,
gut, wenn oder während x kleiner als zehn ist. Und dann werden wir die geschweiften Klammern noch einmal hinzufügen. Und in diesen geschweiften Klammern wird alles hier
ausgeführt, während x kleiner als zehn ist. Es ist also sehr hilfreich, dass sich
das manchmal wirklich wie ein Satz oder eine Anweisung liest, richtig? Also, während x kleiner als zehn ist, was auch immer dort drin ist, ausführen, ausführen, ausführen. Er wird das immer und immer wieder tun, bis diese Bedingung nicht mehr erfüllt ist. Nun, wenn wir das ausführen würden, sagen
wir, sagen wir, ich mache diese eine Punktdrucklinie, und dann sagen wir x,
also werden wir einfach alles auslöschen, oder? Also, was jetzt ist, was passieren würde, ist, dass es 555 bis zum Ende der Zeit ausgibt, richtig? Denn nirgends in diesem Programm ändert sich x je. Nun, das wäre eine wirklich schlechte Idee. Dann hätten wir eine Endlosschleife. Und eine Endlosschleife, es ist immer eine schlechte Zeit. Also werden wir das nicht tun. Wir werden das nicht benutzen, weil das das Programm tatsächlich zum Absturz bringt. Aber was wir tun werden, ist, dass wir X genau hier erhöhen werden. Und indem wir das tun, was passieren wird, ist, dass wir tatsächlich 56789 ausgeben werden. Und dann wird die while-Schleife enden. Wir werden uns das ansehen, und wir werden das leiten und wir werden 56789 sehen. Wir geben die Zahlen aus, die in x waren. Also im Grunde, was hier passiert, ist, wo wir fünf in x schreiben. Dann werden wir sagen, okay, während Zugriff mehr als zehn, tun Sie das alles, führen Sie es aus. Also, was dann passiert, ist x gleich fünf. Es ist definitiv kleiner als zehn. Deshalb werden wir es ausdrucken und dann werden wir es erhöhen. Jetzt sind es sechs und es überprüft wieder, hey, ist es mehr als zehn. - Ja. Dann drucken wir sechs aus und dann werden wir es erhöhen, jetzt ist es sieben, dann ist es acht und dann ist es neun. Und dann, wenn es zehn ist, genau hier, wird überprüfen, hey, wenn es, ist es kleiner als zehn wird wissen, dass es nicht kleiner als zehn ist, es ist zehn. Also, das ist, daher ist es nicht kleiner als zehn. Also werden wir einfach aus der Schleife springen. Das war's. Ja, also gibt es eine andere Art von Schleife, im Grunde fast die gleiche wie die y-Schleife und das ist die do-while-Schleife. Und da werden wir dich schreiben. Und dann werden wir einfach alles hineinlegen, was wir wollen. Und dann werden wir das while-Wort des
while-Schlüsselworts nach den geschweiften Klammern schreiben . Und dann ein Zustand da drin. Sehr wichtig, dieser muss tatsächlich mit einem Semikolon beendet werden. Was hier passiert, ist was auch immer die Bedingung ist, das Do, während es keine Schleife ist, die es tut. Was auch immer in den Klammern des Duke-Schlüsselworts steht, das ausgeführt
werden soll, egal was, einmal, richtig? Also, selbst wenn wir plötzlich sagen, x ist gleich 1000, offensichtlich nicht kleiner als 50, oder? Das wird immer noch einmal hingerichtet und dann wird es ihm gut gehen. Ist es kleiner als 15 und er wird wie „Nein“ sein. Ok. Und ich werde das nicht wiederholen. Also, wenn wir dies tun, wie wir sehen können, geben
wir tatsächlich 1000 aus, obwohl x nicht kleiner als 50 ist. Denn was die do while-Schleife tut, ist, dass sie den
do-Teil der Schleife einmal ausführen und dann die Bedingung überprüft. Und das ist im Grunde das Wesentliche der do-while-Schleife. - Ja. Und das ist eine kurze Übersicht im Grunde die while und die do-while-Schleifen. - Ja.
18. (Java) für Loop: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in dieser Vorlesung werden wir über die Vier-Schleife sprechen. Dies ist eine andere Art von Schleife neben der im Grunde die while-Schleife. Und die for-Schleife ist unglaublich nützlich, um beispielsweise eine bestimmte Anzahl von Malen über etwas zu iterieren. Wie wir das lesen werden, während wir schreiben werden. Und dann werden wir in die Klammern int schreiben. Und dann können Sie einfach einen beliebigen Namen verwenden. Aber normalerweise fängt man mit IJ KL an. Das ist eine Art Nomenklatur, die wir verwenden. Manchmal können auch X und Y verwendet werden, aber dies ist normalerweise, wie Sie es schreiben. Also int i gleich 0. Dann machen wir ein Semikolon. Und dann werden wir im Grunde fragen: OK, was auch immer hier geschrieben ist, das ist wieder eine boolesche Aussage, richtig? Und solange das wahr ist, geht
die for-Schleife durch. Die for-Schleife geht also zu einer Schleife. Und dann werden wir hier noch eine Aussage machen. Und das wird in diesem Fall ein Inkrement sein. Und dann brauchen wir natürlich auch die geschweiften Klammern. Und das ist die gesamte Vier-Loop-Rate. Also initialisieren wir zuerst eine Variable i auf 0. Dann werden wir sagen, okay, solange ich kleiner als fünf bin, werden
wir ausführen, was jemals in der for-Schleife ist , und dann werden wir i um eins erhöhen. Nun könnten wir in diesem Fall auch y um zwei,
drei, acht oder16
oder 55 erhöhen drei, acht oder . Es spielt keine Rolle. Aber normalerweise wollen wir in diesem Fall von 0 bis vier iterieren. Was wir sehen werden ist, dass wir nur diese äußere Punktdrucklinie ausgeben werden. Und dann, wenn wir nur i ausgeben, weil warum nicht? Und ich werde sehen, und dann können Sie sehen, dass wir 01234 ausgeben. Nun, die erste Frage könnte sein, nun, warte, warum haben wir nicht fünf ausgegeben? Und warum haben wir 0 ausgegeben? Nun, die for-Schleife beginnt, wenn wir das initialisieren. Ordnung, das ist also die Initialisierung. Dann wird es überprüfen, hey, bin ich weniger als fünf? Ja. In Ordnung, Führungskräfte, richtig? Wir werden das ausgeben. Deshalb bin ich im Moment der Hinrichtung. Und dann gibt es 0 aus. Dann werden wir i erhöhen und wir fügen hinzu. Wir fragen noch mal, hey, ist es immer noch weniger als fünf? Sicher. Ordnung. Und dann machen wir das, bis das nicht mehr wahr ist. Und wenn das nicht mehr wahr ist, wird
die Schleife im Grunde brechen, und wir werden außerhalb der Schleife sein. Und übrigens, generieren Sie dies auch wie eine Art automatisch, was großartig ist. Sie werden nur vier i eingeben, wenn Sie auch die IntelliJ-ID verwenden. Und dann, wie Sie sehen können, ist
es wie Erstellen einer Iterationsschleife. Wir werden nur Enter treffen, bam, alles schon da. Wir müssen hier nur eine Zahl oder eine Variable auswählen, die es überprüft. Also lassen Sie uns zum Beispiel zehn sagen. Und wir können es jetzt auch umgekehrt machen. Also in diesem Fall werden wir nur zehn machen. Und dann werden wir sagen, wenn es größer als 0 ist, gehen
wir weiter und wir werden tatsächlich etwas verringern, also werden wir es verringern. Und so werden wir in diesem Fall tatsächlich von zehn auf eins zählen. Also, wie Sie sehen können, eine for-Schleife, sehr interessant zu verwenden. Und ich würde ein wenig mehr Kontrolle als die while-Schleife argumentieren. Wenigstens stelle ich mir das manchmal vor, oder? Die for-Schleife ist also grundsätzlich kontrollierbarer while-Schleife. Das ist wenigstens meine Konzeptualisierung. Weißt du, es könnte für dich anders sein, aber ja, also war das nur ein kurzer Überblick über die For-Schleife und ja.
19. (Java) Pachten und fortfahren: Alles klar, das ist nur ein kurzes Addendum im Grunde für zwei Schlüsselwörter, brechen und fortfahren. Sie sind wichtig für Schleifen. Und in diesem Fall werden
wir uns unser Beispiel für die for-Loops Vorlesung ansehen und wir werden uns ansehen, was die Pause und weiter tatsächlich tun. Also sagen wir zum Beispiel, wir wollen nicht fünf gezählt, aber sagen wir zu zehn zum Beispiel, in diesem Fall zu neun natürlich, weil zehn nicht enthalten ist. Aber ja, also werden wir von 0 bis neun zählen. Und dann sagen wir, wir werden hier nur eine if-Aussage setzen. Und wir sagen, okay, wenn ich gleich zwei für Fortfahren ist, richtig? Und so mit dem jetzt tut, ist, wenn ich vier bin, gehen wir weiter. Jetzt. Was setzt mich fort? Continue bedeutet, dass alles, was danach passiert, nicht ausgeführt wird, aber es wird sofort in den,
in diesen Teil der for-Schleife springen . Es wird inkrementieren, dekrementieren oder was auch immer es mit dem Auge tut. Und dann geht es weiter. Also hier erwarten wir zu sehen ist, dass wir erwartet Ausgabe 0 bis drei, dann überspringen die vier und Ausgang fünf 59. Ich werde das nur löschen, nicht um unsere Ausgabe zu überladen. Keiner, einer wird das laufen. Und wie wir sehen können,
absolut, was von 0 bis drei passiert, dann wird es die vier überspringen und dann fünf zu neun. Nun, wie gesagt, gibt es noch eine und eine andere Art von Schlüsselwort, das ist das Break-Schlüsselwort. Und das haben wir bereits in der switch-Anweisung gesehen, aber ich habe nicht wirklich erklärt, was das break-Schlüsselwort bedeutet. Ich sagte nur, OK, das ist im Grunde, wir brauchen das. Und was das Break-Schlüsselwort tut, ist in welchem Umfang wir auch immer sind. Also in diesem Fall sind wir im for-Schleifenbereich, richtig? Alles dazwischen ist also im Grunde der Umfang. Und was auch immer wir auch sind, wir werden daraus ausbrechen. Es spielt also keine Rolle, was ich bin, was auch immer es ist. Sobald Pause aufgerufen wird, wo aus der for-Schleife. Also in diesem Fall, was wir sehen werden, ist, dass wir 0123
sehen und das ist das, das war's. Nichts mehr. Also werden wir das nennen. Und wie Sie sehen können, zählen wir nur bis drei,
denn sobald ich für uns war, werden wir brechen. Und wenn wir das Break-Schlüsselwort nennen, dann kommen wir raus. Wir brechen sozusagen aus der for-Schleife aus. Ja, das ist nur ein kleiner Nachtrag im Grunde zu den beiden Schlüsselwörtern. Und ja.
20. (Java) Arrays in Java: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden
wir über Bereiche sprechen. Jetzt ist Bereiche eine, ich würde nicht sagen, komplizierte Angelegenheit, aber es wird am Anfang schwer zu erfassen sein. Es ist also möglich, dass Sie sich diesen Vortrag zweimal ansehen müssen, oder wenn es irgendwelche Fragen gibt, zögern Sie nicht, sie zu stellen. Dies ist eine entscheidende Sache zu lernen. Und ich wollte nur schnell eine kurze Geschichte erzählen, als ich Bereiche gelernt habe. Und die Sache war, dass ich gesagt habe ,
nun, ich brauche nie Bereiche. Ich werde sie nicht brauchen, weil
ich sie zuerst nicht verstanden habe, als wir das erste Mal im Unterricht hatten, und ich dachte,
ich werde nie Arrays brauchen, was immer ich es auf meine Art machen werde, richtig? Natürlich ist das völlig der falsche Ansatz. Auch wenn es nicht nützlich ist, wissen Sie, vielleicht ist es nicht nützlich, aber Sie sollten es immer noch verstehen wollen. Das ist also nur eine kurze kleine Geschichte aus meinem Leben. Und so ziemlich wichtig, um Bereiche zumindest zu verstehen. Und das werden wir mit diesem Vortrag versuchen. Also zuerst,
was wir hier sehen, ist, dass wir drei Saiten haben. Dies sind also im Grunde imaginäre E-Mails von Studenten, sagen wir, zum Beispiel. Und in diesem Fall haben wir nur drei. Wir könnten natürlich mehr haben. Und jetzt ist das erste, was mir auch einfällt, ich meine, wir wollen die E-Mails schreiben und dann vielleicht morgen wie Mails senden. Irgendwie. Ich weiß nicht, wie, aber vielleicht funktioniert es. Nein, es funktioniert nicht. Wir können darüber iterieren. Wir können nicht gerne sagen, Student unterstrichen i, das funktioniert nicht. Das ist also irgendwie klobig und wir können das nicht wirklich benutzen. Also müssten wir tatsächlich jede E-Mail wie in einer Zeile senden. Und dann, wenn wir im Durchschnitt 1000 Studenten haben oder so etwas, dann ist das Senden dieser E-Mail, ich meine, das wird lächerlich, richtig? Das wird nicht funktionieren. Was wird es jedoch funktionieren,
ist, wenn wir ein Array verwenden, ein Array ist, können Sie das im Grunde als eine Liste betrachten, richtig? Oder ja, im Grunde als Liste. Und wir werden nur einen initialisieren. Also werden wir eine Zeichenfolge schreiben. Dies ist also ein String-Array, also eine Liste, die Strings enthält. Und ich nenne diese Schülerin einfach Männchen. Und dann schreiben wir das einfach rein. Also werden wir geschweifte Klammern haben. Und in diesen geschweiften Klammern werden wir im Grunde sagen was jedes der Elemente der Liste ist. Also der erste in diesem Beispiel wäre
es Jonah gmail.com. Und dann werden wir Juli auf gmail.com haben. Und am Ende ist der letzte Ryan auf gmail.com. Und dann enden wir mit einem Semikolon. Und jetzt diese hier, wir haben jetzt im Grunde ein,
ein String-Array initialisiert , richtig? Und dieses String-Array, das erste Element ist John auf gmail.com, dann Juli auf gmail.com und dann Reiner geometrisch. Also, wenn ich das ausgeben werde, können
wir es einfach ansehen, oder? Also sagen wir „Drucklinie“. Und dann die Art und Weise, wie wir Dinge ausgeben, während wir Studentenmails haben werden. Und dann brauchen wir wieder die Klammern. Und in diesen Klammern werden wir im Grunde
den Index schreiben , von dem wir löschen wollen. So zum Beispiel werden wir eine schreiben. Und jetzt, was Sie wahrscheinlich erwarten, ist, dass John auf gmail.com Ausgabe hat und wir werden nur sehen, ob das wahr ist. Es ist nicht wahr. Warum ist das nicht der Fall? Weil wir in Bereichen, die wir am häufigsten mit der Computerprogrammierung beginnen, werden
wir bei 0 beginnen. Also wollen wir eigentlich 0 hier. Und wenn wir das ausführen, dann werden wir sehen, dass es John auf gmail.com ausgibt. Das ist also eigentlich der, im Grunde ist es der erste Eintrag, aber in diesem Fall wird es der 0te Eintrag sein, oder sein Index ist 0, aber es ist der erste Eintrag. Aber es ist Index 0. Hier. Wenn Sie das zum ersten Mal hören, könnte
es etwas verwirrend sein. Denken Sie daran, normalerweise, wenn wir Listen und Strings und diese Dinge haben, sagen
wir, die Arrays dann B beginnen bei 0 zu zählen. Dies ist auch oft der Grund, warum die for-Schleifen oder initialisiert mit einer 0, richtig? Die ganze Zahl und die for-Schleife wird mit einer 0 initialisiert, so dass es bei dieser Zählung hilft. Und so können wir im Grunde einfach noch einen machen. Nehmen wir zum Beispiel an, wir haben ein ganzzahliges Array, das einige Zahlen sein wird. Und anstatt ihm explizit zu sagen, ok, das ist, was im Array geschrieben ist. Wir werden nur neu schreiben. Und dann sagt es bereits Integer-Array mit einer Klammer. Und dann wird es sagen, nun, es wird die Karotte wie in ihren Cursor da drin stecken, richtig? Es wird wieder gut. Was soll ich hier machen? Sie müssen tatsächlich schreiben, was die Größe des Bereichs sein wird. Also sagen wir, zum Beispiel fünf. Und ich werde das mit einem Semikolon beenden. Und jetzt kann dieses Array nur fünf Einträge haben. Bis zu diesem Punkt kann dieser Bereich nur drei Einträge haben, oder? Wir können nicht an das Array anhängen. Dafür gibt es später Problemumgehungen,
aber in diesem Fall können wir dies nicht tun. Also, wenn wir sagen, Studentenkollegen drei, richtig? Er wird es eigentlich schon sehen. Hey, Array ist außerhalb der Grenzen. Also der Compiler hier und die IDE ist schlau genug, um so zu sein, ja, oh nein, nein, das funktioniert nicht. Wir können es immer noch tun. Und dann bekommen wir einen Pfeil, wie Sie sehen können, Ausnahme. Und das bedeutet, dass jeder Index außerhalb der Grenzen
liegt, weil Index drei nicht existiert, oder? 012 und drei gibt es nicht. Und wir können dort auch nicht die dritte oder vierte hinzufügen. In diesem Fall sagen wir, gut diese, diese Summe Zahl Array, kann
es fünf Einträge haben. Und ich werde nur schnell etwas überschreiben. Also werden wir diese Nummer einfach hier bevölkern. Und was wir tun können. Also das ist im Grunde die Art, wie du dann sagen würdest, okay, ich war nicht der erste Eintrag oder der 0te Platz, richtig. Der 0. Index, der eine Nummer hat. Das ist im Grunde, wie Sie das zuweisen, oder? Also nehmen Sie es fast genau so, wie Sie das bekommen
würden, was im Array geschrieben ist, richtig? Sie schreiben den Namen der Array-Variable als die Klammern. Und dann geben Sie innerhalb der Klammern den Index, den Sie wollen. Und in diesem Fall können Sie ihm einfach einen neuen zuweisen. Das funktioniert natürlich auch, wenn es schon etwas darin geschrieben ist, das kein Problem ist. Und um im Grunde irgendwie, weißt
du, Golf in den Kreis zu gehen. Wir hatten dieses Problem ein, Wir wollten die E-Mails senden oder zumindest, Sie wissen, setzen Sie Ihre Ausgabe sie. Und wir werden nur die gleiche,
die gleiche for-Schleife von hier oben greifen . Und wir werden einfach wie OK sein, einfach genug. Wir gehen nur zur Zeile system.out.print. Und dann sagen wir Studentenmännchen. Und wir werden das I hier benutzen. Und das I
übernimmt natürlich, was auch immer die Nummer hier ist. Also wird es einfach durchlaufen Student männlich 0123. Denken Sie daran, ist nicht im Grunde berührt. So, sobald ich X3, wird
dieses Quartal nicht mehr ausgeführt. Und wenn wir jetzt hingerichtet haben, wir sehen, dass wir John July haben und Ryan und John zweimal haben, denn denken Sie daran, wir werden das hier rausbringen. Also mach dir keine Sorgen darum. Und ja, das ist eines der Dinge, die wir tun können. Und eine kleine Sache, die ich auch erwähnt habe, ist vielleicht, wissen
Sie, Ryan hat tatsächlich aufgehört, zum Unterricht zu gehen und jetzt haben wir John nur im Juli. Und wenn wir das dann benutzen, was wir haben werden, ist ein weiterer Pfeil, denn dieser ist jetzt die for-Schleife ist nicht mehr gültig für die Schüler-Männchen. Aber wir können das tatsächlich umgehen, wenn wir Schülermännchen machen, Punktlänge ist sogar so, als wäre die IDE schlau genug, um so zu sein, oh, ich denke, das ist, was du willst. Ja. Student Männchen Punktlänge ist im Grunde die Länge des Arrays. Es stellt also die Länge des Arrays dar. In diesem Fall werden es zwei sein, oder? Also 12. Dies ist die Länge der Menge der Dinge im Array. Der Index unterscheidet sich von der Länge, oder? Sie müssen also immer über den Index nachdenken. Der maximale Index ist immer Länge minus eins, richtig? Das ergibt also Sinn. Ich hoffe, denn wenn wir anfangen, auf 0 statt eins zu zählen, haben wir im Grunde einen in die negative Steigung verschoben sprechen, oder? Also, während dies das erste Element ist, hat Index 0, und dies ist das zweite Element und es ist Index eins. Wie ich schon sagte. Dies kann zunächst ein wenig verwirrend sein. Ich rate definitiv,
dir das anzusehen, weißt
du, in Ruhe und, weißt du, vielleicht wirklich einmal, zweimal oder sogar dreimal. Denn manchmal ist es nicht das einfachste. Ich werde alle Fragen beantworten, die Sie haben. Fühlen Sie sich frei, sie zu fragen. Und ja, ich hoffe, dass das alles in allem für das Array aufschlussreich war. Wie es funktioniert, ein wenig davon, was Sie damit machen können, und wie es einige Dinge unglaublich einfach macht. Ja.
21. (Java) Multidimensionale Arrays in Java: Alles klar, machen wir weiter. In diesem Vortrag werden
wir über das multidimensionale Array oder multidimensionale Arrays sprechen. Nun, das erste, was dir wahrscheinlich in den Sinn kommt, ist, Oh mein Gott, ich hatte so viele Probleme, sogar Bereiche zu verstehen. Vielleicht. Wovon redest du? Mehrdimensionale Bereiche, das ist lächerlich. Okay, lasst uns schnell nachdenken, eins nach dem anderen, richtig? So können wir ein Array haben. Und wir könnten uns dieses Array vorstellen. Das sind nur Zahlen. Und wir könnten einfach diese RAB haben, zum Beispiel, jede Nummer auf der Zahlenzeile, richtig? Dies wäre also im Prinzip eine eindimensionale Array-Rate. So wie eine Linie eindimensional ist, oder? Sie können eine Nummer haben und sie kann im Grunde ausdrücken, wo immer Sie sich auf dieser Linie befinden. Ich denke, das ist hoffentlich irgendwie verständlich. Und ich denke, der beste Weg, das zu konzeptualisieren, ist mit der Zahlenlinie. Und jetzt ist die Hinzufügung einer anderen Dimension im Grunde, wenn Sie Graphen in der Schule haben, wenn Sie die Funktionen und das F von x und all diesen Jazz tun, wissen Sie, es ist normalerweise kein sehr, wissen Sie, es ist kein Thema, das wie leicht ist manchmal verdaut, aber Sie haben wahrscheinlich alle gesehen. Jetzt. Ein noch einfacherer Weg, über wie Zweidimensionen nachzudenken , ist
zum Beispiel im Grunde mit einer Tabelle. Ein Tisch ist nichts anderes als zweidimensionale, oder? Wenn Sie mehrere Spalten und mehrere Zeilen haben, haben Sie mehrere Dimensionen. So können wir zum Beispiel ein zweidimensionales Array
machen, dass wir, wissen
Sie, wir tun den normalen Bereich, wir schreiben es in eine andere Klammer und dann eine andere Klammer. Und dann werden wir das nur ein paar Zahlen nennen, zum Beispiel. Und die Art und Weise, wie wir diesen initialisieren, ist,
na ja , wir haben ein Array, im Grunde, im Moment ist dies ein leeres Array. Und in diesem Array haben
wir sozusagen ein anderes Array, aber nicht nur ein, sondern mehrere. Also sagen wir zum Beispiel, wir haben diese hier ist nur ein paar Zahlen. Sagen wir 25. Und dann könnte dies
zum Beispiel die erste Reihe sein. Und dann könnten wir hier noch eine Reihe haben. Wir könnten zum Beispiel 5.505 Tausend haben, oder? Das mag also hoffnungslos erscheinen. Etwas komisch, das sieht komisch aus. Mach dir keine Sorgen. Wir werden sehen, und wir werden schauen, was das bedeutet. Also drucken wir einfach den, den ersten aus. Also werden wir 0 sagen. Nun, was macht die 0? Lassen Sie uns das einfach ausdrucken und sehen, was passiert. Wenn wir das ausdrucken. Wir werden einen Haufen Müll sehen. Warum ist das? Nun, das liegt daran, dass das, das tatsächlich das Array ausdruckt. Und das Array kann nicht leicht sein. Wird in einem Druck angezeigt. Das ist in Ordnung. Das ist kein Problem. Nun, was ist diese 0 eigentlich tun? Also, was wählen wir Basic? Wir wählen hier das erste Array aus, richtig? Also, wenn wir jetzt die drei schreiben, was würden wir erwarten, die 25 zu löschen, oder? Denken Sie daran, dass wir um 00123 beginnen. Also, wenn wir das nennen, würden
wir erwarten, dass die 25. Das ist es, was wir erwarten. Und mal sehen, ob unsere Erwartungen erfüllt sind. Natürlich ist es 25. Mit der ersten Klammer wählen
Sie im Grunde aus, welches Array Sie auswählen möchten. Und mit der zweiten Klammer wählen
Sie, welches Element in dieser Klammer, wo in diesem Array Sie auswählen möchten, oder? Also, wenn wir, dann zum Beispiel, werden
sie nur diesen hier kopieren. Und wir werden sagen, nun 12. Was passiert, ist, dass wir fünftausend bekommen, oder? Denn jetzt haben wir die, dieses,
dieses Array hier, und das,
dasElement mit dem zweiten Index, also 012 ausgewählt dieses Array hier, und das,
das . Das wäre also fünftausend. Wie wir sehen können, sind es fünftausend. Nun, was ist wirklich toll? Gut, und was wirklich großartig ist, ist es. In diesem Fall ist dies ein zweidimensionales Array. Gewöhnlich mag es nicht, man kann natürlich dreidimensionale und noch mehr haben. Irgendwann wird es ein wenig, es wird schwer zu handhaben, oder? Also drei Dimensionen können wir natürlich noch vielleicht visualisieren. Und sobald es vier ist, werden
wir auf einige Probleme stoßen. Und normalerweise denke ich, dass nach meiner Erfahrung eindimensionale und zweidimensionale Arrays im Grunde
alles sind , was wir in den meisten Fällen wirklich brauchen. Also, was wir tun werden, ist, dass wir eine,
eine for-Schleife haben , die wir x hier nennen werden. Und dann sagen wir einige Zahlen Punktlänge. Und dann im Inneren werden
wir noch eine for-Schleife für i haben und das wird y sein und dieses hier. Jetzt wird es eine wirklich interessante geben, wir werden das tatsächlich haben. Also werden wir eine Nummer x Punktlänge haben, hmm. Interessant. Wie funktioniert das? Nun, in diesem hier werden
wir tatsächlich über das gesamte Array iterieren. Also werden wir sagen, okay, wie viele Bereiche hat der Luftige darin? Zwei in diesem Fall. Also werden wir haben, diese Länge ist zwei. Und diese Länge hängt davon ab, welchen Bereich wir wählen, oder? Weil dieser eine Länge von vier hat und dieser eine Länge von drei hat. Also, wenn wir das nur ausgeben, habe ich eine vorbereitete Ausgabe hier, weil das wird einfacher zu lesen sein. Also haben Sie im Grunde eine X- und Y-Koordinaten, sozusagen. Und dann können wir diese Zahlen ausgeben. Also, wenn wir das einfach tun und wir werden sehen, dass keine 00 zehn ist. Das passt perfekt. 01 ist 15, dann 2025 oder 03. Und dann ziehen wir sozusagen in den nächsten Bereich, richtig? Der nächste Fehler hier. Und das ist dann der Index. Und innerhalb des zweiten Arrays ist
das erste Element mit Index 0 50. Dies ist also im Grunde eine Möglichkeit, mehrdimensionale Bereiche zu verwenden. Und noch einmal, das gleiche mit den normalen Bereichen. Am Anfang kann es ein wenig schwer sein, den Kopf umzuwickeln. Okay, wie funktioniert das wirklich? Die beiden Dinge, die es am wichtigsten sind, versuchen Sie einfach selbst, probieren Sie ein paar Dinge aus und gehen Sie immer mit, okay, was erwarte ich hier auszugeben? Und was erwarte ich hier? Und wenn es passiert, ist das großartig. Wenn es nicht passiert, denken Sie darüber
nach, warum ist das jetzt passiert? Und das ist Nummer eins. Und Nummer zwei, wenn es irgendein Problem gibt oder du weißt schon, mit irgendetwas oder so voran
kommst, weißt du, du hast ein Problem. Fühlen Sie sich immer frei zu fragen. Ich habe immer versucht, die Fragen zu beantworten, die hereinkommen. Und ja, ich hoffe, dass die mehrdimensionalen Pfeile wenigstens ein bisschen klarer sind. Und ja.
22. (Java) Liste: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. In diesem Vortrag werden wir über Listen oder ArrayLists sprechen. Also erinnere dich an das Array, wo wir Schüler hatten ,
Männer, insbesondere war ein String-Array. Und wir hatten mehrere Werte eines bestimmten Typs, in diesem Fall eine Zeichenfolge, wie ich sagte. Nun, es gab ein paar Nachteile, die wir hatten. Wir mussten angeben, wie viele Werte wir in diesem Array gespeichert haben wollen. Und wenn wir keine hinzufügen könnten. Nun, hier kommen Listen ins Spiel und Listen sind in diesem Sinne viel einfacher zu verwenden. Es gibt mehr Dynamik. Und was wir tun werden, ist, dass wir einfach Liste eingeben werden. Und dann das erste, was erscheint, der erste Vorschlag war einfach, die Eingabetaste zu drücken und dann erscheint etwas hier oben. Dies ist ein Paket, das wichtig ist. Als ob wir unser eigenes Paket hier haben, oder? Das ist mein Paket, kommunistisches Baumwolljoule. Das ist mein eigenes Paket. Und das ist ein Paket, das jetzt importiert wird, so dass wir diese Klasse verwenden können, so dass wir die Liste verwenden können, richtig? Und beide Klassen und Pakete werden in einer späteren Vorlesung besprochen werden. Sehr wichtig ist nur, dass das hier drin ist. Wenn dies nicht der Fall ist, dann werden Sie sehen, dass die Liste rot wird und Sie können einfach den Mauszeiger darüber bewegen und Sie können einfach hier auf Import-Klasse klicken und dann sicherstellen, dass Sie die java.util eine auswählen. Und dann wird es, es wird importiert und dann keine Probleme überhaupt. Wir werden diese abgewinkelten Klammern machen und eine Liste von Strings erstellen. Wir werden das nur Männer nennen. Und jetzt wollen wir eine neue Liste erstellen. Und jetzt hier drin bekommen wir tatsächlich ArrayLists vorgeschlagen. diesem Grund wird dies als Array-Liste oder Liste bezeichnet. Und wir werden in diesem Fall luftige Listen wählen. Dann wird hier etwas anderes importiert, nämlich die ArrayList. Jetzt ist die Idee, dass Sie natürlich
auch eine ArrayList erstellen könnten , die völlig gut funktioniert und funktionieren würde. Viele Dinge, die in Java verwendet werden, kehren jedoch tatsächlich wie diese zurück, sagen
wir grundlegende Listen. Aber im Hintergrund eine ArrayList gespeichert. Nun hat das etwas mit Schnittstellen und Polymorphismus zu tun. sind sehr große Worte, über die wir jetzt nicht wirklich nachdenken wollen. Wir werden nur darüber nachdenken, okay, wenn wir eine Liste wollen, auf der linken Seite machen
wir Liste und dann über die Rechte, die wir eine neue ArrayList erstellen. Normalerweise ist dies, was die IDE auf die eine oder andere Weise vorschlägt. Es ist also nicht so schwer, darüber nachzudenken. Jetzt. Wie Sie sehen können, haben
wir nicht tatsächlich angegeben, wie viele Elemente wir in diesen Listen wollen, wie viele Werte wir in Männern haben wollen. Das liegt daran, dass wir es nicht brauchen. Denn was wir tun können, ist, dass wir Männchen Punkt hinzufügen können, und dann können wir einfach neue Männchen hinzufügen. Also lassen Sie uns sagen, zum Beispiel, wir werden John auf yahoo.com hinzufügen ist vielleicht John seine Mail geändert und dann nur noch ein paar mehr hinzufügen wurde auch Juli und Ryan hinzufügen, und dann vielleicht auch Maria. Richtig? So einfach ist es, einfach ein paar weitere hinzuzufügen. Datenpunkte oder wenige weitere Werte für diese Liste. Mal sehen, was passiert, wenn wir, wenn wir diese Liste ausgeben, richtig? Also lassen Sie uns einfach ausgeben, dass Männchen ausgegeben werden. Aber es ist einfach so. Lass uns das laufen und mal sehen, was passiert. Und was wir tatsächlich bekommen, ist, dass wir jeden
der Werte in dieser Liste klar ausgeschrieben sehen können , was sehr gut ist, sofort zu sehen, OK, was tatsächlich in dieser Liste ist. Und nun ist die erste Frage, die mir in den Sinn kommt, nun, wie sollen wir auf jedes einzelne Mitglied zugreifen? Und das wird nicht mit den funktionieren, mit den Klammern, die wir zuvor verwendet haben, sondern tatsächlich mit einer Methode, die gatt genannt wird. Sehr einfach. Hier schreiben wir nur den Index. Wieder einmal ist der Index der gleiche wie bei dem Array-Speicher mit 0 und zählt dann nach oben. Das erste Element ist also John bei yahoo.com, das einen Index von 0 hat. Nun, vielleicht möchten Sie einen Artikel entfernen, der tatsächlich ist
, bevor wir einen Artikel verschieben,
wie wäre es, wenn wir einen Artikel ändern? Nun, wenn wir den Artikel ändern wollen, machen
wir einfach einen Poststopp, setzen Sie. Und dann müssen wir zuerst den Index angeben. Nehmen wir an, John ändert tatsächlich seine E-Mail-Adresse zurück. Dann wollen wir Jon dot gmail.com wieder haben, richtig? Dies ändert also einfach das erste, das erste Element dazu, was uns die Zeichenfolge gegeben wird. Also John bei gmail.com, und wenn Sie etwas entfernen möchten, also sagen wir, wir wollen Mails Punkt entfernen, unterlisten das. Dann können wir angeben, hey, in welchem Indexraum, etwas vielleicht eins, vielleicht hat Juli aufgehört, ein Student zu sein oder so etwas. Eine weitere wichtige Sache ist, wie man die Größe der Liste erhält. Jetzt sage ich ausdrücklich Größe, weil dies eine ist, ist auch die Methode, wie es heißt. Es ist einfach Männchen Punktgröße. Und das gibt die Größe zurück. Es ist das gleiche mit der Länge für das Array. Vielleicht sind wir eigentlich so, als wäre es ein neues Jahr. Alle anderen Schüler sind weg. Lassen Sie uns einfach die ganze Liste löschen, oder? Und dann wird das einfach die gesamte Liste löschen und dann ist es leer. Jetzt lassen Sie uns einfach ein paar weitere Dinge hier hinzufügen. Ich werde nur schnell etwas überschreiben, weil das ein bisschen einfacher ist. Also werden wir einfach E bei yahoo.com hinzufügen, ATF im Allgemeinen, zufällig oder sagen wir. Und was wir jetzt tun werden, ist, dass wir Sammlungen Punktsortierung
verwenden, um dies zu sortieren. Jetzt wird das wirklich gut sein, weil wir tun können, ist buchstäblich schreiben nur collections.sort Wahlen übrigens, auch etwas hier oben importieren. Das liegt daran, dass ich etwas falsch eingegeben habe, keine Sorge, dass ich will. Und das ist eine Java-Util-Sammlungen. Und das erlaubt uns, das genau hier zu sortieren. Also, was wir tun werden, ist, dass wir das nur
einmal vorher und einmal danach ausgeben werden. Lass es uns so machen. Und dann werden wir sehen, was passiert, oder? Also zuerst ist e a t f d, und jetzt ist es ein D, E F T also haben wir tatsächlich in alphabetischer Reihenfolge sortiert. Ist das nicht großartig? Jetzt habe ich noch eine Sache über Listen und ArrayLists zu sagen. Also haben wir eine Liste von Strings erstellt, oder? Lass uns so etwas machen. Nur für den Moment. Nun, das funktioniert. Wenn ich eine Liste von Ganzzahlen möchte, wird
das nicht funktionieren, weil es sagen
wird, dass Typargument nicht primitiven Typ sein kann. Sie erinnern sich also, dass wir ganze Zahlen haben, wir haben das boolesche Double. All dies sind primitive Typen. Und jetzt müssen wir alle die Wrapper-Klassen dafür verwenden, richtig? Und das sind einfach der Name des Typs, der mit einem Großbuchstaben M
begonnen wurde In diesem Fall ist es nur eine ganze Zahl. Und dann funktioniert das genauso wie bei jeder anderen Ganzzahl. Es ist nur etwas, worüber wir nachdenken müssen. Und wenn wir ein Double benutzen wollen, können wir Double benutzen. Wenn wir einen Float verwenden möchten, können
wir einen Float verwenden, der nur ein wenig anders geschrieben wird. Und das ist in der Nomenklatur, ist eine Wrapper-Klasse. Und was war da sonst noch? Schwimmer doppelt. Ja, Boolean ist derselbe. Groß mit Großbuchstaben am Anfang. Es gab nur etwas, was ich sagen wollte, nur damit, weißt du, ja, und das wäre im Grunde eine kurzfristige Einführung in Listen und ArrayLists. Also, ja.
23. (Java) HashMaps in Java: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. In diesem Vortrag werden wir über HashMaps sprechen. Nun, eine HashMap ist, sagen
wir, ähnlich wie eine Liste. Es ist jedoch in gewisser Hinsicht noch besser als eine Liste. Also werden wir einfach noch einmal HashMap schreiben. Und dann wird es, wie Sie sehen können, wichtige andere Paket, wie ich sagte, Pakete werden später im Detail diskutiert werden. Nun, eine HashMap hat auch die eckigen Klammern, aber jetzt werden wir zwei Dinge in. In diesem Fall werden wir in zwei Strings setzen, also String und dann Komma String. Wir werden das eine Hauptstädte nennen. Und dann machen wir New HashMap und beenden das dann mit einem Semikolon. Also, was ist hier los? Also im Grunde ist die Idee einer HashMap im Vergleich zu einem Array oder einer Liste. In der Array-Liste, um ein Element daraus zu bekommen, mussten
wir den Index einfügen, oder? In diesem Fall können wir tatsächlich einen bestimmten Schlüssel einem bestimmten Wert zugeordnet haben. Deshalb nennt man es Karte. Und ich werde nur schnell
ein paar Beispiele von dem kopieren , was wir dort hineinbringen werden. Also die Methode, die aufgerufen wird, um ein anderes Schlüsselwertpaar zu setzen, das heißt es. Mexiko ist also der Schlüssel. Und Mexiko-Stadt in diesem Fall wäre der Wert. Um das zu setzen, verwenden
wir die Methode, richtig? Und wenn wir es nur schnell machen, werde
ich das nur der Einfachheit halber setzen. Es gibt also weniger nur Kapitelle. Und mal sehen, was hier passiert. Wie Sie sehen können, ist das, was passiert, USA entspricht Washington DC. Wir bekommen Mexiko, Mexiko-Stadt, wir bekommen Frankreich gleich Paris, Deutschland gleich Berlin. So können wir sehen, dass die, gibt es eine Beziehung zwischen dem Schlüssel und dem Wert. Ich werde nur schnell einen Kommentar hier schreiben, so dass es im Grunde ein Schlüssel zu einem bestimmten Wert ist, richtig? Und dies wird auch als Schlüssel-Wert-Paar bezeichnet. Das Schlüssel-Wert-Paar ist also, in diesem Fall haben wir es als String für eine Zeichenfolge angegeben. Also geben wir ihm eine Schnur. Also geben wir der HashMap eine Zeichenfolge, und wir erhalten eine Zeichenfolge und kehren zurück. Jetzt könnte dies eine ganze Zahl sein. Dann haben wir im Grunde etwas sehr Ähnliches wie eine,
zu einer, einer ArrayList implementiert , aber nicht ganz. Zum Beispiel könnten die ganzzahligen Schlüssel, die wir haben
könnten, zum Beispiel Studenten-ID sein, oder? Und dann, was wir an der Reihe waren, ist zum Beispiel der Name des Schülers. Dies wäre dann die Schüler-ID zur Schüler-Namenskarte. Und das ist etwas, woran wir denken wollen, wenn wir die Karte benutzen, richtig? Es ordnet also immer einen Schlüssel zu einem bestimmten Wert zu. Nehmen wir an, wir
wollen zum Beispiel die Hauptstadt Deutschlands ausdrucken. Dann, was wir tun, ist, dass wir bekommen. Also verwenden wir die Methode bekommen und wir setzen in den Schlüssel, sie sind drinnen oder geschrieben Schlüssel und der Schlüssel ist Deutschland. Und wenn ich das schreibe, kriegen wir Berlin. Weil das genau die Antwort ist, richtig? Sie können also auch darüber nachdenken, da
der Schlüssel eine Antwort ist und dass Ihr Wert umgekehrt ist. Entschuldigung, der Schlüssel ist die Frage und der Wert ist die Antwort auf diese Frage, richtig? Also in diesem Fall Hauptstädte, okay, was ist die Hauptstadt Deutschlands? Das ist die Berliner Rate. Und das ist auch etwas, woran wir denken können. Es ist möglich, wie bei jeder Liste, dass wir einfach ein Objekt entfernen können. In diesem Fall möchten wir vielleicht Frankreich entfernen. Hier noch einmal, wir haben den Schlüssel eingelegt, oder? Und wir können auch ausdrucken, wenn wir das tun wollen,
die Größe davon mit Großbuchstaben Punktgröße. Dann können wir sehen, nachdem wir Frankreich entfernt haben, haben
wir drei Gegenstände drin. Jetzt, wenn andere besondere Sache ist, gibt es eine spezielle Art von Schleife, die HashMaps durchläuft. Und ich werde das schnell zeigen, so dass, wie Sie sehen können, er schon irgendwie sagt, für jeden Kerl will foreach Schleife. Jetzt ist die Art und Weise, wie er dies formatiert, absolut abscheulich. Also werden wir es einfach alleine machen. Also machen wir vier. Und was wir wollen, ist eine Zeichenfolge S. Dann machen wir einen Doppelpunkt, und dann sagen wir Großbuchstaben Punkt Keyset. Jetzt. Und wir werden auch geschweifte Klammern machen. Also haben wir das. Jetzt hier. Es ist sehr wichtig. S ist jetzt ein Leitkurs. Also geht S durch jeden Schlüssel, der in der HashMap ist. Diese Art von vier Schleife wird eine foreach-Schleife für jede genannt. Und in der nächsten Vorlesung werden wir darüber etwas detaillierter sprechen. Aber ich will dir nur zeigen, ich das noch einmal kopieren werde, weil es nur eine Ausgabe ist. Es gibt ein Plus, das fehlt. Und wir werden uns das ansehen, was das macht. Also, wenn wir das tun, können wir sehen, dass in S, wir haben jedes Mal der Schleife, wir haben USA, Mexiko, in Deutschland, jedes Mal, wenn dort geschrieben, direkt in S, denn das sind immer die Schlüssel. Das waren unsere Schlüssel, oder? Denken Sie daran, dass Frankreich aus der Liste oder aus der HashMap gelöscht wurde. Und so gehen wir durch die USA, Mexiko, in Deutschland. Und dann machen wir tatsächlich Großbuchstaben dot get s. Und in der get-Methode, wie ich schon sagte, setzen
Sie den Schlüssel ein und dann bekommen Sie den Wert heraus. Also, richtig, also ist das eine Art Überblick für die HashMap, richtig? Wo wir einen bestimmten Schlüssel zu einem bestimmten Wert zuordnen können. Und es ist sehr nützlich für alle möglichen Dinge. Und ja.
24. (Java) für jede Schleife: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über die für
jede Schleife oder eine for-Schleife für Sammlungen sprechen . Und in der letzten Vorlesung haben wir bereits die,
diese Art von Schleife für die HashMap gesehen . Ich werde nur schauen, wie es aussieht, zum Beispiel
für die ArrayList, richtig? Aber zuerst einmal, erinnern wir uns, okay, eine Zeichenfolge, ein String-Array, richtig? Ein String-Array, zum Beispiel, nur, wir haben Namen darin. Zum Beispiel haben wir Johnny, Johnny, Johnny, das Ego, und wir haben Martin und vielleicht sogar so etwas wie George. Und das war's. Richtig? - George. So geschrieben. Vielen Dank. Also haben wir drei Namen da drin. Und wir erinnern uns, dass die Art und Weise, wie wir
diese durchlaufen können , einfach eine normale for-Schleife
nehmen, Namen Punktlänge und dann zum Beispiel einfach ausdrucken. Also ausdrucken, System ausdrucken und dann werden wir Namen haben. Und dann gefällt mir das. Dies ist etwas, das wir bereits für die Arrays gesehen haben. Jetzt die großen Fragen, ok, und wir tun es auch für eine ArrayList zum Beispiel, oder andere Sammlungen. Nun können wir natürlich genau die gleiche Methode
verwenden, die wir für die Bereiche für die ArrayList verwendet haben. Weil wir mit den Indizes,
Indizes gehen und das im Gegensatz zu Ausgabe sie setzen können. Aber das ist nicht die beste Methode oder die einzige Methode. Weil wir auch die for-each-Schleife verwenden können. Jetzt wird es richtig sein, anstatt eine ganze Zahl zu initialisieren, werden
wir tatsächlich den Datentyp initialisieren, den wir innerhalb der Array-Liste haben. Also in diesem Fall eine Schnur, die diesem einen S-Namen geben wird S. Wir könnten dies auch nennen, zum Beispiel
männlich, weil wir wissen, dass Männchen dort drin sind. Also rufen wir diese Mail zum Beispiel an. Und dann machen wir einen Doppelpunkt. Es kann es mit oder ohne Leerzeichen zwischen tun, es spielt keine Rolle. Und dann wollen wir den Namen der Variablen der Sammlung geben. Jetzt in diesem Fall können wir Männer tun und dann nur ein System aus, drucken Linie von Mail, zum Beispiel. Und wenn wir das tun, werden wir sehen, welche
alle Männchen älterer Männer in der ArrayList ausgibt . Interessanterweise können wir das auch mit den Namen tun, oder? Also können wir auch Name sagen, und dann können wir Namen sagen. Und wir können auch ausgeben, eine foreach-Schleife für das Array
verwenden, oder? Wie Sie sehen können, tut es genau das gleiche wie hier oben. Weil dies im Grunde auch eine Sammlung ist, eine Sammlung, im Grunde eine Art breiter Begriff für Listen und Array. All diese Datenstrukturen. Aber ja, das ist also die, für jede Schleife, wirklich mächtig. Wenn Sie mit Listen und Karten und sogar Arrays arbeiten. Es ist manchmal einfacher, diese Schleife zu verwenden, die für jede Schleife, manchmal ist es einfacher zu verwenden. Eine normale for-Schleife. Es hängt wirklich von der Situation ab. Aber ja, das ist im Grunde die für jede Schleife.
25. (Java) Methoden: In diesem Vortrag werden
wir über Java-Methoden sprechen. Wir haben schon mal über die Hauptmethode gesprochen, richtig? Wo wir alle unsere Codierung setzen. Wir sprachen über String-Methoden. Wir, wir haben ein paar Methoden für Sammlungen gesehen, hauptsächlich die Hashmap und die ArrayList. Und jetzt werden wir generell über eine Methode sprechen. Und wir werden das irgendwie zeigen, indem wir das Faktorial implementieren. Also ist die Fakultät einer Zahl nur, zum Beispiel, wenn ich eine Faktorial einer Zahl habe, richtig? So zum Beispiel, wie vier oder so etwas. Wir würden dies als vier Ausrufezeichen schreiben. Und das ist einfach viermal dreimal zweimal eins. Und wir nehmen eigentlich keine vier, wir werden fünf nehmen, weil das ein noch besseres Beispiel ist. Habe ich, und das wird dann eine 120 sein. Nun, warum ist diese wichtige Sache, ihre mathematische Sache? Und ich, wir könnten tatsächlich eine Factorial haben. Wir haben hier keine Factorial implementiert, also konntest du das nicht einmal verwenden. Wenn wir das also wirklich wollten, müssten
wir das tatsächlich umsetzen. Nehmen wir an, wir haben eine Nummer und wir haben eine faktorielle, oder? Wir werden das initialisieren. Und in diesem Fall wird unsere Nummer fünf sein. Nun, das erste, was wir für die faktorielle Funktion tun, sagen
wir, wir werden faktorial auf die Zahl selbst setzen. Und dann werden wir eine sehr interessante Loping implementieren, die nach Schleife sucht, richtig? Wir werden mich mit der Nummer Minus1 initialisieren. Und ich sollte größer oder gleich eins sein, i minus minus. Also werde ich rückwärts zählen. Und dann wird faktorial mal gleich i. Nun, wenn man sich das zum ersten Mal anschaut, wirst
du wie sein, was zur Hölle hier vor sich geht. Ich weiß nicht, auch wenn ich nicht mal weiß, was das bedeutet. Okay, lassen Sie uns das schnell durchgehen und darüber nachdenken. So faktorial am Anfang der Schleife, faktorial und Zahl sind genau die gleichen, dass beide fünf, okay? Dann initialisieren wir i num minus eins. Also werde ich zum ersten Mal vier sein. Also beim ersten Mal, wenn die Schleife durchläuft, gehen
wir tatsächlich zu mal fünf, mal vier. Alles klar, das ist ziemlich gut. Dann endet die Schleife und wir werden i verringern, das ist jetzt eine Drei. Und der Scheck ist im Grunde, hey, wenn wir zu der einen kommen, dann werden wir aufhören, weil wir die 0 nicht wollen, denn wenn wir mit 0 multiplizieren, wird
alles 0 sein. Das wird nicht gut. Also zählen wir im Grunde einfach nach unten, wir faktoriell mit jeder Schleife. Zuerst haben wir darin fünf Mal vier gerettet. Das sind fünfmal viermal 35 mal viermal viermal dreimal zwei. Und dann fünfmal viermal dreimal zwei Mal eins. Und dann ist es erledigt. Und wir haben die Faktorial rausgeholt. Also werden wir nur System aus machen, Linie drucken. Und wir werden einfach so etwas sagen, wie Turiel es ist. Und wir werden ein Plus schreiben. Nun, mal sehen, was passiert. Und in der Tat ist es eine 120. Das ist großartig. Jetzt. Das ist wirklich gut. Aber lassen Sie uns sagen, ich möchte das wirklich in diesem Teil des Programms haben. Und dann werde ich wie eine 100 weitere Codezeilen schreiben. Und dann hätte ich das immer wieder und wieder, immer und immer wieder. Dann müsste ich diesen Teil immer kopieren. Ich müsste immer die Nummer ändern und vielleicht werde
ich manchmal vergessen, die Zahl zu ändern und dann etwas anderes zu berechnen. Das ist, das ist nicht wirklich eine gute Sache. Und deshalb können wir unsere eigene Methode schreiben. Bis jetzt waren wir immer innerhalb der Hauptmethode und jetzt werden wir aus ihr heraustreten. Ich weiß, was beängstigend ist ,
aber keine Sorge, es wird uns gut gehen. Und wir werden öffentlich schreiben. Öffentlich. Wir spielen richtig? Statisch und eine ganze Zahl, int und dann faktorial. Und innerhalb der Klammern werden wir in der Zahl schreiben. Und jetzt wird die große Frage, was ist das? Und was bekommen wir einen Fehler? Das werde ich schon bald erklären. Zunächst einmal, wie ich bereits zu Beginn des Kurses gesagt habe, interessieren uns
die Öffentlichkeit und Ästhetik momentan nicht. Das ist genau das, was wir zu diesem Zeitpunkt brauchen. Es wird sehr bald erklärt werden. Jetzt ist die ganze Zahl einfach, was diese Methode zurückgibt, oder? Wir haben bereits ein paar Methoden mit
beispielsweise den Strings gesehen , und sie geben immer eine neue Zeichenfolge zurück. Und so würde es in diesem Fall eine ganze Zahl zurückgeben. Dies ist der Name der Methode. Und dann haben wir Parameter innerhalb der Klammern hier, die im Grunde gegeben werden müssen, damit diese Methode funktioniert, richtig? Okay? Und dann werden wir das einfach überschreiben, weil das nicht so interessant ist. Welches Interlock initialisiert ist. Interessant. Okay, das ist erstreckt sich. Und oh, was ist dort passiert? Okay? Also initialisieren die eine Zahl, einen Integer-Faktor, und das wird eine geringere Zahl eingeführt werden, genau wie wir es hier getan haben. Und dann wollen Sie genau die gleiche Schleife durchlaufen. Wir haben nur nicht die geschweiften Klammern und dann werden wir die Tatsache zurückgeben. Und jetzt, wie Sie sehen können, ist
der Pfeil auch weg. Hier ist ein Fehler aufgetreten. Es ist weg, weil wir
jetzt tatsächlich eine ganze Zahl zurückgegeben haben, oder? Um also etwas von einer Funktion zurückzugeben, müssen
wir dieses Rückgabe-Schlüsselwort und dann die Variable verwenden, die wir zurückgeben werden. Und jetzt können wir auch fünf zurückgeben. So können wir auch etwas zurückgeben, das in Stein gesetzt ist. Aber das ergibt keinen Sinn, denn was auch immer wir hier reinbringen, es wird immer fünf sein. Das ergibt keinen Sinn. Nun, wenn wir das einfach kopieren und die gleiche Methode verwenden, aber anstatt nur diese Variable zu nehmen, nehmen
wir tatsächlich diese Funktion, oder? Wir können doppelklicken und dann wird es sagen, hey, ich will eine Nummer hier. Ich sage OK, fünf, richtig? Und dann hat es tatsächlich eine Fünf drinnen. Und dann werden wir sehen, dass faktorial auch eine 120 ist. Und jetzt ist das Tolle hier, dass wir es auch für sechs für sieben nennen können. Und es ist eine Zeile, richtig? Dies ist sehr oft der Fall. Wenn ich sagen würde, wenn Sie einen Code verwenden, der gleiche Code zweimal in Ordnung sein, könnte
der gleiche Code zweimal in Ordnung sein,einfach wie OK zu sein, brauche
ich das nur zweimal. Kopieren wir einfach diesen Code, fügen Sie ihn dort ein. Aber normalerweise, sobald Sie wie große Codeblöcke kopieren, ist
es manchmal haben Sie mich wahrscheinlich gerade jetzt sehen, ich habe, ich habe die Drucklinie kopiert und Sadat eingefügt. Das ist nicht so schlimm, denn das ist eine Zeile. Als eine bestimmte Sache, die passiert, kann
ich nicht wirklich eine Funktion schreiben, die dies weniger macht. Aber wenn ich im Grunde wie 1020,
sogar fünf Codezeilen kopieren würde , ist
das ein wirklich guter Hinweis darauf, dass Sie wahrscheinlich im Grunde den nehmen sollten, nehmen Sie den Code, den Sie kopieren wollten, und setzen Sie ihn in eine Funktion, und dann verwenden Sie diese Funktion. Das ist eine sehr, sehr gute Heuristik, um zu wissen, okay, wann sollte ich eine Funktion verwenden und wir sind nicht oder eine Methode, sorry,
eine Methode, Methode und Funktion ist im Grunde ein Synonym, richtig? Es ist austauschbar. Wenn wir, wenn wir eine Methode verwenden wollen, das ist einige, die eine gute Lesevorschrift ist. Ich wollte nur kurz darauf hinweisen, damit du es weißt, ja. Und das ist im Grunde
ein Beispiel für eine Java-Methode, die wir außerhalb
der Hauptmethode schreiben können und die wir dann aufrufen können, wann immer wir wollen. Ja.
26. (Java) Überlastung: In diesem Vortrag werden wir über Methodenüberlastung sprechen. Also haben wir bereits eine einzige Methode im Grunde gesehen. Und in diesem Beispiel haben
wir eine Methode, die grundsätzlich multiplizieren implementiert. Nun, offensichtlich ist das nicht das beste Beispiel, aber ich werde Ihnen nur auf einem sehr ähnlichen,
auf einem sehr einfachen Beispiel zeigen , so dass Sie das Konzept einfach erfassen können. Ok? Also haben wir diese Multiplikationsmethode, die wir aufrufen können. Wir können ihm zwei ganze Zahlen als Parameter geben, und dann wird es ausgeführt. Lass uns sehen. Und natürlich gibt es die richtige Antwort zurück. Jetzt kann ich das Gleiche haben. Und wenn ich eine andere Methode habe, und ich werde diese Multiplikation auch nennen. Richtig? - Jetzt. Ich werde auch int a und in B haben Das wird nicht funktionieren, weil wir jetzt die gleiche Methode zweimal haben. Ich kann jedoch die Methode überladen, so dass ich dies tun kann, wenn ich
zum Beispiel einen anderen Parameter oder einen anderen Parametertyp oder eine andere Anzahl von Parametern einfüge, richtig? Also kann ich es hier in C setzen. Und plötzlich ist dieser Fehler oder dieser Fehler verschwunden. Und dann kann ich einfach etwas davon machen. Es ist ein mal b mal c. Dann, wenn wir uns dies ansehen, wenn wir schreiben multiplizieren, multiplizieren, dann haben wir tatsächlich zwei Dinge, die für uns vorgeschlagen werden Rate zu Methoden-Signaturen ist der Begriff. Und so können wir das hier nehmen und dann sagen, nun, ich will zum Beispiel fünf Mal, zwei Mal vier, richtig? Und er macht es einfach. Er weiß, welche zu verwenden ist, weil er weiß wie viele Parameter für welche Art von Funktion genommen werden, oder? Und dann können wir zum Beispiel auch etwas Ähnliches mit float machen. So können wir auch sagen, multiplizieren, multiplizieren Sie dies. Und da ist ein Float, ein Float B und er wird auch kein Problem damit haben. Und wir werden das hier einfach zurückgeben. Und dann, wenn wir das nennen, also zum Beispiel, wenn wir dann ein System sagen, Upsilon, System aus Drucklinie, sagen wir multiplizieren. Dann, jetzt bekommen wir drei Dinge, die wir bekommen können, können
wir vorgeschlagen werden, ja, und hier sehen wir immer den Rückgabetyp, richtig? Also und diese beiden, es waren ganze Zahlen. Auf diesem ist es ein Schwimmer. Das macht Sinn. Also werde ich einfach darauf doppelklicken und dann geben wir ihm zwei Schwimmer. So zum Beispiel, 3.512.4, F, Das ist Float. Und wenn wir das ausführen, sehen
wir, dass alles perfekt funktioniert. Obwohl alle drei Methoden genau den gleichen Namen haben. Was ist der Unterschied? Der Unterschied liegt in der Anzahl der Parameter oder den Arten von Parametern direkt hier, der Typ ist anders und hier die Zahlen unterschiedlich. Und das ist im Grunde das, was Methodenüberladung genannt wird, wirklich wichtig und kann unglaublich nützlich für so viele Dinge sein. - Ja.
27. (Java) Kurse und Objekte in Java: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über Klassen und Objekte sprechen. Und das erste, was wir tun werden, ist, dass wir hier in unseren Projektordner gehen. Wir gehen in unsere Quelle und dann, was auch immer wir haben, wissen
Sie, was auch immer Sie es genannt haben. Und dann werden wir neue und neue Java-Klasse machen. Also werde ich tatsächlich eine neue Datei erstellen. Und diese Datei, in diesem Fall, werden
wir nur Obst nennen und stellen sicher, dass die Klasse hier ausgewählt ist. Und ich werde Enter drücken. Und da gehen wir. Und ich werde nur ein wenig hineinzoomen. Und jetzt haben wir eine neue Klasse, öffentliche Klasse Obst in unserem Paket. Und was haben wir jetzt getan? Also haben wir eine neue Klasse erstellt. Wenn wir hier zurück sind, haben wir zwei Tabs. Im Moment, die Haupt-Java-Klasse und die Obst-Klasse. Wir haben kurz über die Hauptmethode gesprochen, aber jetzt können wir auch die Hauptklasse betrachten. In diesem Fall ist die Hauptklausel einfach für uns, irgendwie wie eine Dummy-Klasse, nur damit wir die Hauptklausel haben, eine Hauptmethode irgendwo, richtig? Also, das ist irgendwo. Wir haben die Hauptmethode, die zu Beginn des Programms gestartet wird. Aber die Fruchtklasse, die ein bisschen anders ist. Also in der Frucht Kreuz jetzt, wir wollen tatsächlich ein erstellen Objekte aus, dass. Was bedeutet das jetzt? Nun, lasst uns zuerst an eine Frucht denken. Was, was bedeutet eine Frucht Hälfte? Nun, vielleicht hat eine Frucht einen Namen. Das macht Sinn, richtig? Also ein Apfel, Banane, Orange, Mango, das sind Namen für Früchte, okay,
das könnte etwas sein, jetzt könnte es auch
einen möglicherweise Zuckergehalt haben , weil du vielleicht gesund leben willst und wissen willst, okay, Was ist der Zuckergehalt einer bestimmten Frucht? Und dann auch, um vielleicht jemand anderen anzuschauen, die Farbe, richtig? Das könnten also drei Attribute einer Frucht sein. Und das ist genau das, was diese Klasse Attribute. sind also Variablen, die mit einer bestimmten Klasse verbunden sind, in diesem Fall Frucht, oder? Weil diejenigen, die genau zu Attributen zugeordnet sind, die eine Frucht haben könnte. Nun könnte es auch viele, viele, viele mehr geben. Das könnte Länge, Breite, Höhe sein. Wissen Sie, es könnte alle Arten von Attributen geben, die eine bestimmte Klasse oder ein Objekt hat. Aber in diesem Fall bleiben wir gerade bei diesen drei als Beispiel. Also, was können wir damit machen? An dieser Stelle können wir tatsächlich etwas tun und wir können tatsächlich eine neue Frucht schaffen. Also werden wir einfach in Obst eingeben und dann sehen
wir, dass sofort vorgeschlagen wird. Und wir werden eine neue Frucht kreieren, und wir werden es Banane nennen. Das wird eine neue Frucht sein. Und ich werde nur kurz erklären, was hier passiert. Das ist also genauso normal eine Variable, wie Sie sehen können, oder? Denn zum Beispiel int x, genau das gleiche, nur dass der Datentyp jetzt
Frucht anstelle von Ganzzahlzeichenfolge ist und die anderen, die wir gesehen haben. Und dann weisen wir es sofort zu, eine neue Frucht. Was bedeutet das jetzt? Nun, das neue Schlüsselwort wird verwendet, um ein neues Objekt zu erstellen. Und in diesem Fall erstellen wir ein neues Fruchtobjekt. Jetzt sieht das etwas seltsam aus. Vielleicht. Dies ist, was ein Konstrukt up genannt wird. Jetzt gibt es in diesem Fall nichts in der Klammer, daher werden dem Konstruktor keine Parameter übergeben. Also die, und das ist der Standardkonstruktor mit nichts darin, richtig? werden keine Argumente übergeben oder keine Parameter übergeben. Aber was wir schon tun können, ist, wenn wir für eine Banane bereit, Sie sind schon schlägt dies vor. Und dann können wir auf die drei Attribute zugreifen, die wir Fruchtpunkt-Java-Klasse in der Obst-Klasse
angegeben und deklariert haben. So zum Beispiel, der Name, können
wir jetzt dies auf, zum Beispiel, Banane. Und jetzt ein Bananen-Punkt-Name. So greifen Sie darauf zu. Das hat den Namen Banane. Aber das scheint ein bisschen klobig zu sein. Denn jetzt, wenn ich weitermachen will und ich will, wissen Sie,
den Zuckergehalt auf Illinois 15 setzen und so weiter und so weiter. Ich muss alle drei Attribute machen, und vielleicht muss ich 20 Attribute machen, wenn es noch mehr gibt. Und deshalb können wir nicht nur einen Standardkonstruktor,
sondern sozusagen auch unseren eigenen Konstruktor oder benutzerdefinierten Konstruktor haben . Also dafür schreiben wir öffentlich und dann den Namen unserer Klasse, in diesem Fall Obst und nur Klammern. Und es ist im Grunde wie eine Funktion ohne Rückgabewert. Vielmehr ist der Rückgabewert der Name der Klasse selbst. Nun, in den Klammern, werden
wir eigentlich alle Dinge schreiben,
die damit verbundenen Probleme. Mach dir deswegen keine Sorgen. Das werden wir in einer Minute erreichen. Das passiert und ich werde das in kurzer Zeit erklären. Jetzt werden wir nur fast im Grunde kopieren die Namen, denn was wir tun können, ist, dass wir diesen Punktnamen gleich Name schreiben
können. Und dann können wir diesen Punkt Zuckergehalt schreiben gleich Zuckergehalt und diese Punktfarbe entspricht Farbe. So mache ich es oft, weil die Benennung hier die gleiche wie die Benennung
hier ist , da die Attribute der Klasse den gleichen Namen wie die Parameter im Konstruktor
haben. Und Sie können dann angeben, okay, ich möchte dieses Attribut hier. Wenn Sie das, this, this Schlüsselwort verwenden. Weil dieses Schlüsselwort im Grunde sagt, hey, ich will dieses Objekt, diese Klasse, was auch immer das ist. Also das schon, richtig? Und dann ist der Name Er ist oder die IDE klug genug. Der Compiler ist klug genug, um zu wissen, oh, ja ,
das ist es, das ist es, was es mit Namen bedeutet. Und das ist, was Sie meinen, wenn Sie this.name sagen, verweisen
Sie auf die Klasse selbst. Warum haben nun ein verwandtes Problem begonnen? Wir können tatsächlich darauf klicken. Und wir werden sehen, dass es so sein wird,
hey, wir haben drei Argumente erwartet, weil gerade jetzt. Der Konstruktor, den wir hier verwenden, ist
der Standardkonstruktor nicht mehr gültig weil wir unseren eigenen Konstruktor deklariert haben, richtig? Denn vorher, als wir hatten dies keine verwandten Probleme. Ich meine, keine damit zusammenhängenden Probleme. Danke. Denn im Grunde, was implizit passiert, hat so
etwas, Entschuldigung, diesen geschaffen. Also dieser, ein Standardkonstruktor immer im Hintergrund. Wenn wir dies jedoch irgendwie überschreiben, indem wir unseren eigenen Konstruktor erstellen, dann wird der andere gelöscht, sozusagen. Oder es ist nicht mehr implizit, wir müssen das tatsächlich explizit tun. Also, wenn wir diese erstellen, ist das völlig in Ordnung, dann funktioniert es. Das ist also eine sehr wichtige Sache zu beachten, dass der Standardkonstruktor nur gültig ist,
solange Bis Sie Ihren eigenen benutzerdefinierten Konstruktor erstellen. Oder Sie können auch nur explizit angeben. Und dann funktioniert es. Richtig? Also lasst uns dann vielleicht noch eine Frucht machen. Machen wir einen Apfel, einen Apfel, neue Früchte. Nehmen wir tatsächlich unseren anderen Konstruktor und
übergeben sofort alle Attribute, die wir wollen. Der Name wird also Apple Zuckergehalt sein, es wird zehn sein. Und dass die Farbe rot ist. Und wie Sie sehr schön sehen können, gibt Ihnen die eigentlich, die IDE intelligent tatsächlich bereits die Namen der Parameter, was unglaublich nützlich ist. Und deshalb schlage ich immer vor, Sie wissen schon, bei den guten Variablennamen zu
bleiben. Wahrscheinlich das gleiche wie die Attribute, denn dann, wissen Sie, denn wenn das n SCC war, ich meine, Sie wissen, wenn Sie sich dies in wie drei Monaten ansehen, Sie haben keine Ahnung, was SC steht, die sc war. Dann musst du nachsehen. Und denken Sie daran, dass dies drei Parameter und drei Attribute auf der Frucht sind. Ich meine, wir könnten uns vielleicht 20 oder 30 Attribute vorstellen, und dann heißen sie alle NSC b0, b2. Das ist lächerlich. Machen Sie also Ihre Variablennamen so ausdrucksstark wie möglich. Und, ja, und dann schauen wir uns einen, vielleicht einen Ausdruck an. Das wäre eine nette Idee. Also ein Apfel. Und dann können wir zum Beispiel einen Apfelpunktnamen
sagen. Also lassen Sie uns das einfach ausdrucken und sehen, was passiert. Apple Punkt Name ist ein Apfel Punkt Name ist Apple, richtig? Wie wäre es, wenn wir den Zuckergehalt ausdrucken? Unsere Inhalte sind also zehn. Schön. Also im Allgemeinen eine Klasse, also in diesem Fall, kann
eine Klasse, also in diesem Fall,
eine Frucht-Klasse verwendet werden,
um Daten in ein einzelnes Objekt zu komprimieren, oder? Wenn eine Banane oder ein Apfel. Und es kann dann auf diese Weise abgerufen werden, oder auch auf andere Weise, die wir in späteren Vorlesungen sehen werden. Aber alles in allen Klassen und Objekten sind ein sehr wichtiger Teil von Java, weil Java eine objektorientierte Programmiersprache ist, oder? Oop, objektorientierte Programmiersprache. Und das ist eine Art wesentlicher Teil der gesamten Struktur. Und deshalb ist es auch sehr wichtig, es zu verstehen. Wir werden weiterhin über verschiedene Dinge mit Klassen sprechen. Also Dinge, die mit Klassen und Objekten zu tun haben und was damit zu tun ist. Aber es ist wichtig, dass Sie das Fundament bereit haben. Also noch einmal, wenn es etwas gibt, das Sie nicht verstanden haben oder Fragen haben, zögern Sie nicht zu fragen. Und wenn es etwas gibt, von dem du denkst, dass hinzugefügt werden könnte, weißt du, wenn du sagst, nun, ich meine, ich habe irgendwo von diesem Thema gehört, aber du hast es nicht getan. Fühlen Sie sich frei, mich auch zu fragen. Und entweder, wenn ich denke, dass ich das vielleicht verpasst habe, oder es ist auch ein wichtiges Thema. Ich werde noch einen Vortrag darüber halten. Nur, fragen Sie einfach, und ich werde mich bei Ihnen melden. Aber es ist wichtig, dass dies ein weiteres von diesen Dingen wie Arrays ist, das wirklich wichtig ist, um verstanden zu werden, oder? Objekte und Klassen. Sie sind eine grundsätzliche Sache zu verstehen, oder?
28. (Java) Geschützt und privat: Ordnung, willkommen zurück
zur Java-Einführung und wir befinden uns wieder
bei unseren Klassen und Objekten. Dieses Mal
werden wir jedoch über den Zugang sprechen. Was bedeutet Zugriff? Nun, schauen wir uns unseren Obstkurs
an. Also am Anfang der, die Attribute, die wir schon haben, haben
wir immer geschrieben
öffentlich, öffentlich, öffentlich. Und warum ist das so? Nun, zunächst müssen
Sie nicht unbedingt öffentlich
davor schreiben , da es
standardmäßig immer öffentlich ist. mich persönlich ist
dies jedoch nur wieder eine persönliche Entscheidung,
eine persönliche Präferenz. Ich schreibe vorne öffentlich. Nur damit es
absolut klar ist. Es gibt zwei andere
Dinge, die wir schreiben können. Wir können zuerst zB privat, und wir können
auch geschützt schreiben. Was bedeuten die nun? Nun, öffentlich
bedeutet zunächst, dass auf diese Variable oder dieses Attribut grundsätzlich
von jeder Klasse
überall zugegriffen werden kann. Sobald ich also diese
Fruit Dot Java-Datei habe, richtig, kann
ich auf diese Zeichenfolge zugreifen, die Farbe anordnen. Okay? Was ist also geschützt als gemein? Nun, geschützt bedeutet,
dass nur im
selben Paket und von
Unterklassen und Oberklassen aus darauf zugegriffen werden kann. Was sind nun Unterklassen
und Oberklassen? Wir werden in
einer späteren Vorlesung lernen. Aber es
wird nicht wirklich so
spät sein, denn das ist etwas , das wir tatsächlich
sehr bald haben werden. Wie geschützt
auch immer, darüber
wird dann etwas ausführlicher gesprochen. Und privat ist das, glaube
ich, fast das
Wichtigste. Das bedeutet, dass auf
diese Variable
nur in der
Fruchtklasse selbst zugegriffen werden kann . Daher kann auf dieses Attribut nur
in Fruit selbst zugegriffen werden. Also nur in dieser, die rund markiert ist. Nirgendwo sonst kann
darauf zugegriffen werden. Hallo. Der erste Gedanke, der mir in den Sinn
kommt, ist auch das damit verbundene Problem, denn im
Moment haben wir hier einen Punkt, einen Bananenpunktnamen. Und es ist so, okay,
wir können das
jetzt nicht tun , weil der Name privat ist. Also sagt er, hey, ein
privater Zugang funktioniert nicht. Es funktioniert nicht. Ich
kann nicht darauf zugreifen. Zuckergehalt. Ich kann darauf zugreifen,
obwohl es geschützt ist. Aber wir sind immer noch
im gleichen Paket. Und wie würden wir das beheben? Wir beheben das mit
Gettern und Settern. Getter und Setter werden wir uns in der nächsten Vorlesung
ansehen.
29. (Java) Getter und Setter: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über Getter und Setter sprechen, wie bereits in der letzten Vorlesung erwähnt. Wie werden wir dieses Problem lösen, dass wir nicht auf diesen privaten Attributnamen zugreifen können? Na ja, kein Problem. Wir werden uns ansehen, wie wir das machen werden. Also zuerst, wir tun, ist für die Demonstration, wir werden alle drei Attribute privat machen. Und dann werde
ich in der ersten, für das erste Attribut, den Namen, zeigen, wie die Getter und Setter manuell gemacht werden. Und dann für die anderen beiden, werde ich tatsächlich
einen sehr ordentlichen Trick zeigen , der uns erlauben wird, sie automatisch zu generieren. Wir wollen also eine öffentliche Funktion, die nichts so leeres zurückgibt. Und wir werden diesen Set-Namen in Klammern nennen. Also als Parameter werden wir eine Zeichenfolge namens name übergeben. Die Funktion wird diesen Punktnamen gleich Name machen. Und das ist nicht richtig. So wollen wir es tun. In Ordnung? Aber der Name der Methode, in diesem Fall wird das Zentrum in klein gesetzt werden, also in Kleinbuchstaben. Und dann wird der erste, der erste Char-Autor, das
erste Zeichen des Namens der Variablen Großbuchstaben sein, oder? Und dann zum Getter die Geta auch öffentlich sein,
aber das wird zurückgeben, was auch immer der Variablentyp ist, den Datentyp, in diesem Fall eine Zeichenfolge. Und dann werden wir Namen bekommen und keine Parameter müssen angegeben werden. Und das werden wir nur den Namen zurückgeben. Und so einfach ist es. Setname, GetName. Das war's. Und jetzt, was wir tun können, anstatt Namen zu tun, können
wir tatsächlich getName tun. Und alles ist in Ordnung. Dies wird dann Apple in diesem Fall zurückgeben. Und hier können wir das Gleiche tun, setName. Und dann passieren wir es einfach Banane. Und es ist erledigt. Und dann setzt es den Namen auf Banane. Jetzt wollen wir vielleicht nicht, dass andere Klassen dies festlegen. Dann brauchen wir natürlich keinen Setter, aber in diesem Fall wollen wir eigentlich beides. Und wie können wir diesen Trick haben, den er automatisch generiert? Nun, wir klicken einfach mit der rechten Maustaste und dann haben wir diese Show Kontexte Aktionen. Wir werden darauf klicken. Und dann hier sehen wir einen Getter und Setter für Zuckergehalt erstellen. Wir werden darauf klicken und sofort wird es genau das schaffen, was wir wollen. Im Grunde genau das, was wir hier getan haben. Nur mit dem Zuckergehalt. Wir können das gleiche für die Farbe tun. Wir werden einfach mit der rechten Maustaste Kontexte,
Aktionen anzeigen , Getter und Setter für Farbe erstellen. Und dann macht er auch einen Getter und Setter für Farbe. Genau so, wie wir es geschrieben haben. Nur dass es automatisch generiert wird, was viel einfacher ist, besonders wenn Sie eine verrückte Menge an Attributen haben, dass es schön sein wird. Und dann können wir einfach kürzeren Inhalt 15 eingestellt werden. Und alle sind glücklich, es gibt keine Fehler mehr. Und es funktioniert. Und das ist die Schönheit oder die Magie von Gettern und Settern. Also, ja.
30. (Java) Pakete: In Ordnung, lassen Sie uns
mit der Java-Einführung fortfahren. Und in dieser Vorlesung wird es einen kurzen Vortrag geben, in dem
wir über Pakete sprechen werden. Also wir haben das hier schon
unser eigenes Paket gesehen, es ist im Grunde wie
ein Ordner, oder? In unserem Paket
haben wir jetzt also die Fruchtklasse
und die Hauptklasse. Und du musst es dir als Ordner in
einem Verzeichnis
vorstellen . Das ist im Grunde alles was es ist. Und wenn wir dann etwas
importieren, hast du das
schon gesehen. Also haben wir zB java.util
importiert, util dot a Realist. Das haben
wir importiert, als wir über ArrayLists
gesprochen haben. Und dann konnten wir in diesem Fall die ArrayList
verwenden. Und es gab noch andere
Dinge wie die HashMap, bei der wir auch ein
Hilfsprogramm für die HashMap importieren mussten. Das Java Dot Util
ist also im Grunde der
Name des Pakets. Und die HashMap ist eine
Klasse, weil wir uns tatsächlich
Sorgen gemacht haben, um Objekte zu erstellen. Also, wie können wir
das vielleicht ein bisschen einfacher machen? Nun, wir können tatsächlich
sagen, anstatt nur die
Array-Liste und die HashMap
zu importieren, können
wir tatsächlich einen
Store erstellen und dann wird können
wir tatsächlich einen
Store erstellen und dann wird alles
aus diesem Util-Paket importiert. Jetzt haben wir also die HashMap, HashMaps und nichts wird mit der ArrayList
importiert. Und nichts wird
wichtig, weil all
die Dinge, die sich in Utah befinden tatsächlich
wichtig sein werden mit den Sternen
tatsächlich
wichtig sein werden,
damit wir das ersetzen können. Und das gesamte Paket ist
so wichtig, oder? Das ist also im Grunde alles, was über Pakete zu sagen
ist. An ihnen ist nichts besonders
Verrücktes oder Seltsames. Wenn du vielleicht
ein paar Pakete oder
Bibliotheken von anderen Leuten hast ,
die du
herunterlädst, dann musst du vielleicht nachschauen, okay, wo ist etwas? Aber normalerweise wird das automatisch
importiert. Und wenn nicht, können
Sie dies jederzeit explizit und
manuell tun . Aber normalerweise wird es automatisch
wichtig. Aber das ist nur eine
sehr kleine Sache, ich über Pakete sagen möchte. Ja.
31. (Java) Erziehung: In Ordnung, lassen Sie uns
mit der Java-Einführung fortfahren. Und in dieser Vorlesung werden
wir
über Erbschaft sprechen. Erbschaft, ein sehr
interessantes Thema. Und dafür werden wir
tatsächlich noch ein paar Klassen
erstellen. Zuerst
erstellen wir eine Tierklasse. Ein Tier, das Sinn
macht, oder? Was hat es? Nun, vielleicht haben wir, wenn wir eine geschützte Zeichenfolge haben und das wird die
Art der Klasse sein, oder? Das ist also die Art
des Tieres. Was auch immer dafür
spricht, dass wir
einen Vogel haben , weißt du, ein Krokodil. Und das ist alles,
was wir jetzt tun werden, direkt in der Tierklasse. Aber jetzt wollen wir
etwas haben, das ein Tier ist. Aber das ist ein
bisschen spezifischer. Also könnten wir vielleicht an einen Hund
denken. Das ist eine gute Idee. Lass uns einen Klassenhund erstellen. Jetzt. Wie ist dieser Hund
mit einem Tier verwandt? Nun, ich meine, Hund ist
ein Tier, oder? Wie können wir also, wie können wir die
Hundeklasse mit der Tierklasse in Beziehung setzen? Nun, hinter der Klasse
schreiben wir Extends und dann Animal. Und auf diese Weise ist
der Hund jetzt auch ein Tier. Das
nennt man Erbschaft. Der Hund erbt also vom Tier. Und wir können auch sagen, dass Hunde eine Unterklasse der Tiere sind. Und Tier ist die Superklasse. Superclass ist im Grunde
der Cluster, der sich oben befindet. Der Hund. Und der Hund ist eine
Unterklasse von Tieren, weil er in Anführungszeichen unter
dem vererbten Tier steht. Also, was
ein Tier vielleicht tatsächlich tun kann, sind ein paar Dinge, vielleicht kann ein
Tier tatsächlich rennen. Wir werden eine Methode haben , die Run heißt und sie
wird einfach diesen Start ausdrucken. Species rennt. Das ist, das ist alles, was
es tut, oder? Und dann
haben wir vielleicht eine zweite Klasse. Also werde ich rennen,
das wird vielleicht Essen sein. Dann wird es einfach
ausdrucken, was eine solche
Spezies frisst. Okay? Das ist alles, was ein Tier in
unserem Modell derzeit tun kann. Jetzt wird der Hund,
er kann adoptieren, das tun. Nun, zunächst werden wir
einen Konstruktor für den Hund erstellen . Das wird diese Spezies sein. Und dann ist
das Erste, woran du vielleicht
denken wirst , warte eine Sekunde. Wir haben noch nicht einmal
Arten für Hunde deklariert. Genau. Aber ein Hund hat auch ein Tier. Also alles, was ein Tier kann, kann auch ein Arzt tun. Das sind auch alle
Eigenschaften, die es hat. Der Hund hat es auch. Alle Eigenschaften
der Tierklasse
sind also für den Hund zugänglich,
solange er öffentlich
oder geschützt ist. Wenn es privat ist, kann nur diese Klasse darauf zugreifen, wie wir bereits besprochen haben. Also lasst uns jetzt einfach einen neuen Hund
erstellen. Also vielleicht Hund, Fluffy
ist ein neuer Hund. Was kann Fluffy jetzt tun? Nun, Fluffy kann rennen und
Fluffy kann essen, oder? Weil das, weil das, das sind Klassen, das
sind Methoden,
tut mir leid, dass ein Tier das kann. Und weil Fluffy in einem Tier
ist, weil ein Hund
vom Tier erbt, kann
Fluffy all die Dinge tun
, die ein Tier tun kann. Damit er rennen und essen kann. Lass uns einfach damit anfangen
und sehen, was passiert. Also rennt der Hund und der Hund
frisst. Das funktioniert. Gar keine Probleme. Das ist ziemlich gut. Nun, was kann
ein Hund noch tun? Also könnte und kann es tun, ist
bellen. Das ergibt Sinn. Nun, lass uns einen Systemausfall machen. Printzeile von vielleicht Wolf, Wolf, ich mag es. Und das ist alles in Ordnung und gut. Aber vielleicht
wollen wir auch eine Katze. Lassen Sie uns also eine neue Java-Klasse erstellen , die eine Katze sein wird. Der Kot erstreckt sich auch über das Tier. Und hier haben wir den gleichen Konstruktor, wenn diese
Spezies der Katze entspricht. Und dann kann
eine Katze öffentlich miauen. Und wir werden auch das
System ausschalten, Zeile miau drucken. Im Moment ist
alles abgeschlossen. Also lassen wir hier flauschig bellen. Fluffy kann bellen,
weil er ein Hund ist, nicht weil er ein Tier ist. Und wenn wir
ein Objekt machen ,
wird das die Katze sein. Also
nennen wir sie Schnurrhaare, sagen
wir diesen einen Hut. Und dann
können natürlich auch Schnurrhaare laufen. Schnurrhaare können auch essen. Und Schnurrhaare können nicht bellen, aber Schnurrhaare können miauen. Und dann schauen wir mal,
was hier passiert. Hund rennt, Hund
frisst, wuff, wuff, Katze rennt, Katze frisst und miaut. Hier haben wir also gesehen, dass ein Hund, der Klassenhund, von einem Tier
erbt. Und die Klasse Katze
erbt auch vom Tier. Und dann jede Methode , die das Tier in diesem Fall anwenden kann
. Und auch all ihre geschützten und
öffentlichen Attribute werden an die Unterklasse vererbt, in diesem Fall Hund und Katze. Und das kann sich auf
beliebig viele Ebenen erstrecken. Theoretisch könnten wir also z. B. eine andere Klasse
haben,
Chihuahua, die den Hund erweitert. Und dann ist ein Chihuahua
sowohl ein Hund als auch ein Tier. Wir können das ändern,
so sehr wir wollen. In diesem Fall reicht wahrscheinlich
ein Level aus. Nun, das sind, sagen wir,
die Grundlagen der Erbschaft. Es gibt noch ein paar interessante
Dinge, die wir tun
und ändern können und die passiert sind. Und
die werden wir uns in späteren Vorlesungen ansehen. Aber das sind die Grundlagen
der Vererbung, auch ein sehr wichtiges
Thema in Java und
in der Programmierung im Allgemeinen. Auch ein sehr mächtiges Tool. Und ja.
32. (Java) statische und nicht-statische Methoden: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über das statische Schlüsselwort sprechen. Also werden wir das Rätsel lösen. Was bedeutet dieses statische Schlüsselwort? Und dafür werden wir in unsere Tierklasse gehen. Und hier werden wir tatsächlich ein neues Attribut hinzufügen, das eine öffentliche statische Ganzzahl sein wird. Und wir werden diese Num Tiere nennen. Und wir werden es am Anfang auf 0 setzen. Und was macht diese Ganzzahl jetzt? Was ist das Besondere daran? Nichts hat sich wirklich geändert. Also lassen Sie uns darüber nachdenken, nur ein neues Tier zu erschaffen, oder? So neues Tier, einfach so. Und dann könnten wir vielleicht einfach die neue statische Ganzzahl ausdrucken. Also machen wir eine und das erste, was wir bemerken werden
, ist , dass es nicht wirklich in dem Vorschlag kommt. Das ist ein bisschen komisch, oder? Also, wenn wir Num Tiere machen, wir tatsächlich dieses Highlight bekommen und es wird wie,
hey, das ist eigentlich nicht der beste Weg, dies zu tun. Da, wie wir darauf zugreifen, ist
die statische Variable eigentlich nicht mit einer Instanz, also mit diesem Objekt, sondern mit der Klasse selbst. Also was wir tippen werden ist, wenn wir den Klassennamen Animal dot num Tiere eingeben werden. dies wird also tatsächlich mit dem Klassennamen zugegriffen, nicht mit einem Objekt oder der Instanz dieser Klasse. Also, wenn wir das ausführen, werden
wir sehen, dass dies 0 ist. Und du könntest dir vorstellen, dass wir so etwas wie, na ja, jedes Mal, wenn ich ein neues Tier mache, was wir tun werden, ist, dass wir diese Anzahl von Tieren erhöhen
, damit wir wissen, wie viele Tiere derzeit existieren, Sagen wir mal. Also werden wir nur irgendwie den Standardkonstruktor entführen. Und darin werden wir einfach Num Tiere plus machen, plus. Also werden wir nur die erhöhen, diese ganze Zahl jedes Mal, wenn wir ein neues Tier erstellen. Also, nachdem wir dies bei Num-Tieren gemacht haben, sollte
A1 geschrieben werden. Lass uns sehen. Und natürlich ein, was man drinnen über Num Tiere ist. Nun wäre dies ein statisches statisches Attribut oder ein statisches Feld. Jetzt können wir tatsächlich auch eine statische Funktion oder Methode tun, sorry, statische Methode. Und was wir tun werden ist,
dass wir etwas tun werden, das oft als statische Methode verwendet wird. Und das wird sein, ein Tier zu erzeugen, oder? Und dann werden wir nur ein neues Tier zurückgeben. Zum Beispiel wollen wir vielleicht nicht wirklich, dass Leute den Konstruktor verwenden. Vielleicht wollen wir alle möglichen anderen Sachen machen. Und dann haben wir diese statische Methode, bei der wir im Grunde ein neues Tier erschaffen können. Also, was wir tun können, ist, sagen wir, wir haben Tier B das wird kein neues Tier sein, aber das wird Tier, Hund erzeugt Tier. Und das gibt einfach ein neues Tier zurück. Und wenn wir danach die Num-Tiere ausdrucken, müssen wir es tun. Weil innerhalb dieser Methode, dh, wurde die Konstruktion auch genannt. Also das statische Schlüsselwort, Sie auch vorstellen können, betrachten Sie das als eine Art globaler Variablen. Denn egal wie viele oder welches Tier ich habe, das Num Tier hat nichts mit einem bestimmten Tier zu tun, oder? Es, die einzige Veränderung in dieser Variablen wirklich,
ist, dass sie mit jedem Tier zunimmt. Aber es ist nicht anders für a und b, oder? Dies ist also eine Art globaler Variable und nicht spezifisch für eine bestimmte Art von Objekt, das instanziiert wird. Also ja, das ist das statische Schlüsselwort. Und ja.
33. (Java) Polymorphismus: In Ordnung, lassen Sie uns
mit der Java-Einführung fortfahren. Und in dieser Vorlesung werden
wir über Polymorphismus sprechen. Nun, das Erste ist, es klingt unglaublich
kompliziert, aber es ist eigentlich sehr einfach. Sobald du es verstanden hast. Wir gehen wieder in
die Tierklasse. Und wir werden das tatsächlich auf ist
etwas essen
ändern , weil wir die
Ess-Methode jetzt für uns vereinnahmen wollen . Was wir tun werden, ist, dass wir
tatsächlich
eine neue Methode sowohl für
den Hund als auch für die Katze entwickeln werden. Es wird also
eine öffentliche Lücke geben, iss. Und das wird dann
System.out sein, ausdrucken z.B. Diese Startart ist jetzt, oder sie isst ein Steak. Weil ein, vielleicht ein Hund ein Steak
isst und dass die Katze vielleicht etwas Milch
trinkt. Ich mag es. Das ist ziemlich gut. Okay, was
erwarten wir hier, wenn wir, wenn wir die Eat-Funktionen aufrufen? Nun, schauen wir einfach, was passiert. Was wird passieren? Dieser Hund isst ein Steak und die
Katze trinkt etwas Milch. Was passiert also, ist, dass
die Fress-Funktion des Tieres kalt sein wird, aber die Fress-Funktion des Hundes, und wie Sie dort sehen können, Fressen im Klassentier
überschreibt, oder? Also das, diese Klasse, diese Methode hier in dieser Klasse. Sie fressen also,
überschreibt tatsächlich die Hitze
in der Tierklasse. Weil dieser näher an dem liegt,
was wir hier erklärt haben. Das ist also im Grunde alles
, was Polymorphismus ausmacht. Also die gleichen Methoden eine Super- und eine Unterklasse der Superklasse,
die im Tier sind, und eine Unterklasse, die
Hund und die Katze sind, oder? Sie können für beide dieselbe
Methode und
sie
völlig unterschiedlich sein lassen. In diesem Fall ist es
nicht so anders, aber sie könnten
völlig anders sein. Und doch können wir beide
haben. Und der Zugriff erfolgt
immer über die Unterklasse. Also zu dem, den wir hier angegeben
haben. Aber Polymorphismus ist
eigentlich sehr einfach. Dieselbe Methode für die
Super- und eine Unterklasse. Sie können sie
völlig anders deklarieren. Sie können ganz
andere Dinge tun. Und es kann immer noch
beide haben, oder? Das war es für Polymorphismus. Also, ja.
34. (Java) Abstrakte Kurse und Methoden in Java: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über abstrakte Klassen und Methoden sprechen. Was ist also eine abstrakte Klasse oder eine abstrakte Methode? Nun, wir werden sehen, indem wir das hier zu einer abstrakten Klasse machen. Also werden wir ein öffentliches abstraktes Klassentier haben. Und was macht das jetzt? Nun, eine abstrakte Klasse kann keine Instanz haben. Denn wenn wir darüber nachdenken, ein Tier, na ja, was ist ein Tier? Nun, ich meine, du musst angeben, welche Art von Tier du willst, oder? So haben Sie einen Hund ist ein Tier, ein Gepard ist ein Tier. Aber zum Beispiel ist ein Computer kein Tier, oder? Eine abstrakte Klasse kann also Methoden implementiert haben, und sie kann auch abstrakte Methoden haben. Also im Moment, was wir tun werden, ist, dass wir diese haben, die IJ-Methode, die Zusammenfassung. Und dann wollen wir hier nichts spezifizieren, also wollen wir es nicht deklarieren. Wir werden es im Grunde nicht unumgesetzt lassen und wirklich nur diese öffentliche abstrakte Leere essen lassen. Nun, das Gute ist, dass sowohl unsere Hunde unsere Katzen diese Methode bereits implementiert haben, richtig? Und wie Sie hier mit diesem neuen Symbol sehen können,
was im Grunde bedeutet, dass diese eine abstrakte Methode ist, die die Unterklassen, also Tier als die Superklassenunterklassen, die von Animal erben, richtig implementieren müssen? Jetzt können wir dies auch löschen. Und dann sofort sehen wir, hey, Sie müssen diese Methode implementiert haben. Dann können wir zum Beispiel Methoden implementieren sagen. Und da steht „IID“. So ja, sicher. Wir brauchen die Überschreibung nicht, sicherlich in diesem Fall, aber wir können auch einfach auf das zurückgehen, was wir zuvor hatten und dass alles in Ordnung ist. Nun,
wenn wir hier reingehen , was wir in diesem Fall haben werden, kann
das Tier immer noch als Objekt erstellt werden, wenn es ein Cad ist. Aber wenn wir ein Tier haben, oh, tut mir leid, ein Tier a, und wir wollen ein neues Tier machen. Und es wird wie nein sein, das funktioniert nicht, weil eine abstrakte Klasse nicht instanziiert werden kann. Das bedeutet einfach, dass wir kein Objekt dieser Klasse haben können. Wir können damit keine neue Klasse erstellen. Also auch in diesem Fall kann
die abstrakte Klasse beide die abstrakten Methoden haben, die nicht implementiert sind, aber dann von allen,
allen Unterklassen implementiert werden müssen . Aber wir können, wie Sie sehen, auch die Laufmethode, die
implementiert ist und die Hund und die Katze einfach auch anrufen können. In Ordnung, also werden wir das noch einmal ausführen. Und nach wie vor funktioniert alles einwandfrei. Der Hund isst ein Steak, die Katze trinkt etwas Milch. Das funktioniert immer noch perfekt und ist immer noch vollkommen gültig. Die Sache, die ich mit einer abstrakten Klasse bin, ist einfach, dass wir
diese nicht implementierten Methoden haben können , die wirklich nützlich sein können. Und wir können auch keine Instanz dieser Klasse haben,
was, wenn man darüber nachdenkt, nicht wirklich Sinn ergibt, weil was ein Tier ist? Und Tier ist genau das Konzept, wenn wir darüber reden, und das ist ein Tier. Ich meine, es macht keinen Sinn, wenn du darüber nachdenkst. Und so ja, das sind abstrakte Klassen und Methoden. So ja.
35. (Java) Schnittstellen: In Ordnung, lassen Sie uns
mit der Java-Einführung fortfahren. Und in dieser Vorlesung werden
wir über Schnittstellen sprechen. Also, was macht ein Interface? Nun, zunächst
werden wir einen erstellen. Also gehen wir zu New
und dann zur Java-Klasse und dann wählen wir
Interface aus. Und dieses Interface werden
wir einen Vortrag nennen. Ich spreche von Interfaces ist, so
würde man normalerweise eine Schnittstelle benennen. Sie haben also entweder
ein großes I
am Anfang oder Sie beenden den Namen der Schnittstelle
mit interface. Dies ist eine von zwei Möglichkeiten. Ich bevorzuge das I vorne, als
dass es normalerweise sehr klar ist. Was ist also ein Interface? Eine Schnittstelle ist im Grunde fast wie eine
abstrakte Klasse, oder? Wenn wir also zu dem Tier
hier zurückkehren , war das ein Tier. Das ist was für eine abstrakte
Klasse in diesem Fall. Und wir hatten hier eine
abstrakte Methode, die
jeweils von
den Unterklassen für Tiere implementiert wurde. Aber wir hatten auch diese
Run-Methode, was eigentlich war, wir hatten tatsächlich
etwas drin , das wir nicht
unbedingt implementieren mussten. Und wir könnten die Klasse this
aus der Methode aus
der Animal-Klasse verwenden . Das funktioniert jetzt nicht
in Interfaces. Interfaces
haben eigentlich nur abstrakte Methoden ohne Anführungszeichen. Wir können darin also
nichts implementieren. Wenn wir z.B. eine
Void-Talk-Methode haben, macht
das Sinn, dann können wir damit
eigentlich nichts anfangen, oder? Wir können nicht drucken sagen und dann so etwas wie
Hey, rede, oder? Das funktioniert nicht. Denn wie Sie hier
sehen können, Interface, abstrakte Methoden können
keinen Körper haben und dieser ist der Körper. Wir können also eigentlich alles
umsetzen. Sie müssen immer deklariert werden. Sie können nur
nicht implementierte Methoden sein. Also könnten wir zum Beispiel
ein Reisegespräch führen. Vielleicht. Lasst uns, lasst uns
das Void Talk jetzt weiterführen. Das könnte das
Interessanteste sein. Was können wir also
mit Reden anfangen, oder? Die Idee hier ist also
, dass die Glocken laufen,
wir könnten uns z.B. vielleicht ein Rollenspiel vorstellen, oder? Also nochmal, wir können herumgehen
und du kannst mit Leuten sprechen, aber du kannst vielleicht auch mit bestimmten Objekten
sprechen. Und das ist nicht wirklich ein Gespräch, dann ist es eher wie eine Mumie. Die Figur sagt etwas, aber das ist eine interessante
Konzeptualisierung dafür. Wir könnten uns also vielleicht
sogar vorstellen, dass wir einen Hund haben , der in unserem Rollenspiel gerade
in unserem imaginären Rollenspiel ist, dass wir mit diesem Hund sprechen können. Und das ist alles großartig. Aber im Moment erweitert dieses
Tier. Wie können wir das dann an
der Schnittstelle hinzufügen? Nun, wir schreiben einfach
Geräte und dann tun wir es. Ich habe darüber gesprochen, dass
wir jetzt
einen großen Pfeil bekommen werden einen großen Pfeil bekommen weil wir
die Gesprächsmethode tatsächlich noch einmal
implementieren müssen ,
weil wir
die Gesprächsmethode tatsächlich noch einmal
implementieren müssen. Das Gleiche gilt für das. Es war mit dem
abstrakten Tier. Und wir werden Methoden
implementieren machen. Es wird Talk sein, ja,
wenn ich das umsetze und
alles ist wieder großartig. Was wir dann
tun können, ist, zB
die Zeile system.out.print zu sagen . Also deklarieren wir etwas darin. Wir implementieren tatsächlich
etwas in dieser Gesprächsmethode. Also könnten
wir z.B. sagen, dieser Hund mag dich
wirklich, mag dich wirklich. Siehst du, da hast du es. Und jetzt können wir sagen,
nun, wir können weitermachen, wir können einen neuen Hund erschaffen. Also lass uns zum Beispiel
nochmal flauschig machen, vielleicht nicht flauschig. Da hast du es. Welches ist ein neuer Hund. Dann kann Fluffy sprechen.
Das ist kein Problem. Lass uns das machen. Und lass uns damit weitermachen. Dieser Arzt mag dich
wirklich,
das ist nett. Aber vielleicht als diese
Person, die herumläuft, oder? Ich habe also diesen RPG-Charakter
und
möchte mit vielleicht 100
verschiedenen Klassen , die mit mir sprechen können. Es könnte einen Hund oder eine Katze geben. Es könnte einen
Menschen geben, oder? Eine andere Person, ein anderer
Charakter, ein NPC. Es könnten Pflanzen
oder Bäume sein , mit denen ich interagieren möchte
. Und dann
funktioniert das natürlich nicht, weil ich nicht weiß in
welchen Klassen diese Schnittstelle
implementiert ist, oder? Ich weiß einfach, okay,
ich weiß,
sobald etwas
angreifbar ist, kann ich damit sprechen. Was ich dann sagen kann ist, okay, ich will und ich rede darüber, und
das wird der Hund sein. Und das wird ein neuer Hund sein. Weil der Hund sowohl
ein Hund als auch ein Tier ist. Und worüber ich gerade spreche. Und wenn ich dann zu
dunklem Punkt gehe, kann ich z.B. nicht bellen, weil Hund momentan vielleicht nicht der
beste Name dafür
ist. Sagen wir einfach a, wieder ein dunkles Shirt oder Esco mit
flauschig, warum nicht flauschig? Aber wir wissen, dass Fluffy Fluffy begehbar ist. Und dann machen wir Fluffy und
dann kann Fluffy sprechen. Und wenn wir das dann
machen, heißt das eigentlich, dass
dieser Doktor dich wirklich mag weil das ein Hund ist. Aber uns geht es nur darum, dass
wir ein Auge auf Taco Bell haben. Es ist uns eigentlich
egal, was tut. Es ist uns eigentlich egal
, was hier geschrieben steht. uns egal, ob es ein Hund, ein Planer, eine Katze oder ein NPC ist. Wir wissen einfach, okay,
das ist nicht angreifbar. Das ist definitiv
ein Auge Taco Bell. Und was auch immer hier passiert, richtig, ob es nicht, wie gesagt,
ein Hund oder eine Pflanze ist. Wir wissen, dass bei dem, worüber
ich spreche, immer die
Gesprächsmethode
angewendet wird . Im Grunde
könnte man sich
das Interface also auch als
eine Art
Blaupause für
eine bestimmte Sache vorstellen das Interface also auch als
eine Art . In diesem Fall verwenden wir es tatsächlich, um eine sehr spezifische Methode viele
verschiedene Dinge
implementieren zu lassen, oder? Also wie gesagt, wir könnten uns
auch vorstellen, das
auf der Frucht oder auf der Katze
oder auf allen möglichen anderen Dingen zu haben auf der Frucht oder auf der Katze . Und es kann
die Schnittstelle implementieren, dann kann damit
z.B. interagiert werden. Natürlich gibt es viele
verschiedene Dinge, die Sie tun müssten,
um dies zu ermöglichen. Das ist hier nur ein Beispiel. Für die Schnittstelle.
Interfaces können sehr, sehr mächtig sein. Und noch
ein Hinweis: In diesem Fall haben
wir diesen Hund erweitert, das Tier
erweitert, sodass wir eine, wir haben Erbschaft und
wir implementieren auch eine Schnittstelle. Jetzt können wir mehrere Interfaces in einer Klasse
implementieren, aber wir können nicht
mehrere Klassen haben, von denen eine
Klasse ausgeht. Es ist also auch sehr
wichtig zu beachten, dass wir
im Grunde 1.000
verschiedene Schnittstellen haben können , wenn wir dies auf einem Klassenknoten
implementieren. Sie müssen jedoch jede deklarierte Methode
innerhalb der Schnittstelle in
der Klasse
implementieren , die sie implementiert. Es ist also sehr
wichtig, das zu beachten. Ja, das ist eine sehr
kurze Einführung
in Interfaces. Nochmals, wenn
Sie Fragen haben, können Sie diese gerne stellen und ich
werde sie beantworten. Und ja.
36. (Java) Enums: In Ordnung, lassen Sie uns mit der Java-Einführung und dieser Vorlesung fortfahren. Es wird ein schneller. Wir werden über Enums reden. Also Enums, was sind Enums? Yams sind sehr interessante Datenstrukturen, mit denen wir im Grunde einige interessante Dinge modellieren können . Es gibt also zwei Möglichkeiten, wie wir Enums implementieren können. Das erste, was wir tun werden, ist eigentlich in einer Klasse. In diesem Fall werden wir es nur in der Hauptklausel tun. Und wir werden eine Aufzählung namens Schwierigkeit implementieren. Wie wir dies implementieren, ist, indem wir genug lesen, dann ist der Name des grundsätzlich M kurz für die Enumeration. Und wir wollen ENUM als den Namen der Enumeration und dann geschweifte Klammern haben. Und in diesen geschweiften Klammern schreiben wir alles,
was wir eigentlich aufzählen wollen. Und wir haben leichte Schwierigkeiten, wir haben mittlere Schwierigkeiten, und wir haben Schwierigkeiten gehört. Und das ist es. So deklarieren wir eine Enumeration. Und jetzt ist dies im Grunde ein Datentyp, mit
dem wir neue Objekte der Art Schwierigkeit erstellen können . Im Moment können wir Schwierigkeiten machen, wenn wir überhaupt so etwas wie Spielschwierigkeiten sind, oder? Um vollständig zu sein. Wenn wir also
zum Beispiel an ein Spiel denken , können wir ein Spiel haben. Sie werden ein einfacher, mittlerer oder harter Modus sein. Und dann, was wir tun können, ist, können wir Schwierigkeiten Spielschwierigkeiten haben, böse bis Schwierigkeitsgrad Punkt. Nun ist das Tolle, dass die Werte
dieser Enumeration tatsächlich als einfach, mittel und hart geschrieben werden. Also müssen wir uns keine Sorgen machen über so etwas wie, du weißt schon, du kannst über eine Schwierigkeit mit 01234 nachdenken und du bist wie, okay, was ist Schwierigkeit? Man hätte Schwierigkeiten für vielleicht, weißt du, in vier Monaten, wenn man zum Projekt zurückkommt, erinnerst du dich nicht, aber Schwierigkeit, einfach. Das ist leicht zu merken. Und das funktioniert auch, wissen Sie, Sie können machen, wenn Aussagen mit ihm, Sie wissen, Spiel Schwierigkeit gleich und dann können Sie sagen Schwierigkeit einfach. Und dann können Sie etwas tun, wissen
Sie, Sie können wie,
hey, die Schwierigkeiten leicht sein. Vielleicht hat der Spieler mehr Gesundheit oder mehr Rüstung
oder die Feinde haben weniger Angriff, Dinge wie diese. Und die Enums hier sind wirklich gut, weil sie nicht nur einfach,
einfach zu implementieren, umsetzbar und auch leicht änderbar sind , richtig? Also können wir leicht etwas sagen, nun, lasst uns auch ein Pferd machen, und nichts ändert sich. Wir müssen vielleicht nur eine andere if-Anweisung oder einen anderen Fall in unserer switch-Anweisung haben, die wir wollen. Und ja, das ist eine Möglichkeit, diese Enumeration zu haben und zu implementieren. Wir können auch eine neue Klasse machen. Und dort können wir eine Enumeration wählen. Und zum Beispiel können wir so etwas machen wie, ich weiß es nicht. Vielleicht nehmen wir uns Schwierigkeiten. Und jetzt werden wir das hier löschen. Wir werden diesen Schwierigkeitsgrad löschen. Und hier haben wir eine öffentliche Aufzählung, und das funktioniert auf die gleiche Weise. Also haben wir einfach, mittel, hart. Und dann Horace zum Beispiel. Und das funktioniert genauso. So Schwierigkeit, wenn seine neue Schwierigkeit, sorry, nicht neue Schwierigkeiten, das ist lächerlich. Natürlich Schwierigkeit, zum Beispiel, einfach. Und das war's. Das ist also im Grunde das gleiche wie hier, gerade hier war es Teil der Hauptklasse. Und vielleicht müssten Sie dann darauf zugreifen, indem
Sie immer eine main.out-Schwierigkeit haben. Dies ist manchmal, es ist besser, dies in einer eigenen Datei zu haben. Manchmal ist es besser, es in einer anderen Klasse zu haben. Das heißt, ich würde sagen, meistens bevorzugt. Aber auch das Situationsbewusstsein ist sehr wichtig. Sie hängen davon ab, wie oft es in anderen Klassen verwendet wird. Und wenn Ihr Klassenname so lange, wissen
Sie, kann es ziemlich lang werden. Daraus können Sie ziemlich lange Aussagen bekommen. Aber ja, das ist eine Enum, die für viele Dinge sehr nützlich ist. Und ja.
37. (Java) Exceptions und Ausprobieren: In Ordnung, lassen Sie uns
mit der Java-Einführung fortfahren. In dieser Vorlesung
werden wir über
Ausnahmen sprechen und versuchen, sie zu fangen. Was ist nun eine Ausnahme und was versuchen wir zu fangen? Wir werden uns das sehr bald
ansehen. Also habe
ich hier zunächst ein Integer-Array vorbereitet. Und was wir tun werden, ist, dass
wir das System einfach
ausdrucken und dann
Zahlen sagen . Und dann zwei. Das funktioniert natürlich nicht
, da
es in diesem Array keine Nummer von Index
zwei gibt. Wenn wir also diesen Code ausführen, erhalten
wir eine Ausnahme. Diese Ausnahme bedeutet nun
einfach, dass
das Array außerhalb der Grenzen liegt. Und warum, was ist eine Ausnahme? Ausnahme ist im Grunde
eine Fehlerquote. Das heißt, das muss das Programm nicht
zum Absturz bringen. Also wenn in diesem Fall das
Programm abstürzen würde, wenn wir so etwas haben. Also z. B. oh, tut mir leid. Wenn wir vielleicht so etwas wie HelloWorld hier
geschrieben haben, oder? Also würden wir Hello World schreiben. Dann
ist alles nach dem Fehler nicht oder die Ausnahme ist
in diesem Fall nicht kalt. Okay, das ist in Ordnung. Jetzt werden wir hier tatsächlich
unsere eigene schnelle
kleine Methode implementieren , die ein
öffentlicher statischer Float sein wird. Und das wird dividieren, es wird a durch B dividieren und wir geben einfach a geteilt durch b
zurück. Nun, wie einige von Ihnen vielleicht wissen, ,
wenn Sie durch Null dividieren ist es eine sehr schlechte Idee,
wenn Sie durch Null dividieren,
weil das nicht funktioniert. Und das können wir im Voraus überprüfen. Wir können also sagen: Hey, wenn
b gleich Null ist, dann wirf neu und
dann Exception. Und dann können
wir in dieser Ausnahme tatsächlich einige Dinge
schreiben. So können wir z.B.
nicht durch Null dividieren. Stimmt es? Jetzt wird es uns
einen Fehler geben. Denn was es eigentlich wissen
will, ist, dass diese Methode
eine Ausnahme auslöst, oder? Also hier
müssen wir eigentlich Threads
Exception,
Exception schreiben . Da hast du es. Dann funktioniert alles gut. Weil es wissen muss, hey, diese Divide-Methode kann
tatsächlich eine Ausnahme auslösen. Das
ist sehr wichtig. Also wenn wir dann versuchen, es zu benutzen, also sagen
wir z.B. , wir wollen zehn durch fünf teilen, so
etwas, oder?
Und es wird ungefähr acht sein. Funktioniert nicht, weil wir diese Ausnahme
nicht behandelt haben. Was ist mit dieser Ausnahme? Es ist okay, also wollen
wir dann eigentlich auch eine
Ausnahme für die Hauptmethode auslösen, nur damit das alles klar ist. Wenn wir das jetzt machen, wird
das einfach funktionieren, weil es nur
eine
Zwei zurückgibt , weil dir nichts
passiert ist. Oder wenn du da
drin eine Null machst, dann werfen
wir plötzlich eine Ausnahme. Und diese Ausnahme
haben wir ausgelöst. Und es heißt nur, dass man
nicht durch Null dividieren kann. Das ist wirklich das
Interessante daran. Aber was noch
interessanter ist, ist das. Wir können das also tatsächlich
in einer
Trial-and-Error-Aussage zusammenfassen, oder? Wir können also aufhören,
diese Ausnahme für
die Hauptmethode und tatsächlich sagen, nun, okay, lass uns das versuchen, das Schlüsselwort
try und dann geschweifte Klammern. Und dann haben wir Fang. Und innerhalb dessen
werden wir Ausnahme
E haben , denn das ist es,
was wir
fangen wollen und das werden
wir versuchen. Also werden wir versuchen, uns hier
zu spalten, oder? Also werden wir das einfach
schnell formatieren. Sehr nett. Wir können also
mehrere Einsen haben, sagen wir z. B. 10/5, 40/4 und dann 22/0. Nun, das wird so sein,
das wird einfach funktionieren. Das werden zwei,
das wird eine Zehn sein, und dann ist das die Ausnahme. Außer, da hast du es. Lassen Sie mich diese Ausnahme einfangen. Wir können das tatsächlich
ausgeben, oder? Wir können also sagen, System
out dot print line. Und wir könnten E sagen, z. B. richtig. Es gibt also nur
die Ausnahme aus. Und danach
wollen wir
vielleicht system.out.print, line dot und dann helloworld tun. Stimmt es? Schauen wir uns an, was hier
passiert, wenn wir das ausführen. Nun, was passieren wird,
ist, dass wir das tun werden. Wir drucken zwei aus, wir drucken zehn aus. Und dann
passiert die Ausnahme, oder? Du kannst nicht durch Null dividieren. Aber weil wir
es in einer Try and Catch-Erklärung zusammengefasst haben,
was kam danach? Danach eigentlich
immer noch hingerichtet, oder? Und das ist wirklich die Stärke
des Versuchs, einen zu erwischen. Denn wenn wir nicht
zuerst versucht hätten fangen oder
es in diesem Fall gefangen zu haben, dann wäre diese
Methode in diesem Fall nicht diese Methode genannt
worden. Aber es war kalt, weil
wir das Telefonieren sicher gemacht haben. Wenn also eine Ausnahme ausgelöst wird, können
wir versuchen, sie abzufangen. Deshalb ist es wichtig
zu wissen, dass bei einer bestimmten Methode
eine Ausnahme ausgelöst wird. Denn wenn Sie wissen, was das ist, können wir es jederzeit in
eine Try-and-Catch-Erklärung aufnehmen. Und selbst wenn dann eine Ausnahme ausgelöst
wird, können
wir trotzdem weitermachen, wenn das
Programm nicht einfach abstürzt. Das ist wie eines der
wichtigsten Dinge. haben wir aber immer noch
die Möglichkeit diesem Fall haben wir aber immer noch
die Möglichkeit, den Fehler der
Ausnahme
auszudrucken. Und wir erfahren immer noch,
okay, was hier passiert ist. Das ist also wirklich eine großartige
Möglichkeit, um im Grunde
sicherzustellen , dass der Code
solide ist und dass das Programm
nicht einfach abstürzt. Weil denk so
darüber nach. Wenn dem Programm jedes Mal etwas
Schlimmes passiert, werden
einige Ausnahmen ausgelöst. Jedes Mal, wenn das passiert, übt
das Programm Druck aus. Wir hätten viele
Programme, die
ständig abstürzen würden , weil sie
immer
passieren können . Und vor allem, wenn
Sie Benutzereingaben
berücksichtigen, könnten Sie den Benutzer fragen, hey, geben Sie mir eine Zahl
zum Teilen, oder? Also z.B. der Taschenrechner, oder? Ich sage, naja, das 22/0
BAM-Programm stürzt ab. Das wollen wir nicht.
Deshalb können wir die Ausnahmen abfangen, bevor sie das Programm zum Absturz bringen
können. Also ja, das ist etwas für Ausnahmen
und versuche zu fangen und ja.
38. (Java) Lambda: In Ordnung, lassen Sie uns mit der Java-Einführung fortfahren. Und in diesem Vortrag werden wir über Lambda-Ausdrücke sprechen. Jetzt habe ich hier bereits
im Grunde die gesamte Java-Datei vorbereitet , weil dies ein wenig komplizierter ist. Und ich möchte nur einige der Beispiele durchgehen, die ich hier geschrieben habe. Und wir werden den Code einfach einzeln durchgehen. Dies ist auch als Ressource verfügbar. Dieser spezielle Code, weil es
wichtiger ist , dass Sie ihn verstehen, anstatt Sie sehen, wie ich ihn ausschreibe. Ich denke, dass das in diesem Fall angemessener ist. Also zuerst haben
wir eine Liste von ganzen Zahlen hier, und wir fügen nur ein paar Zahlen hinzu. Und was wir dann zum Beispiel mit einem Lambda-Ausdruck machen können, ist, dass wir dies in einen Stream verwandelt haben. Also, wir zahlen Startstream, richtig? Dies verwandelt es nur in einen Strom von Zahlen. Und dann können wir etwas verwenden, das die Kartenfunktion genannt wird. Und die Kartenfunktion nimmt tatsächlich etwas auf, das wirklich seltsam aussieht, oder? Also wäre diese in diesem Fall eine Funktion, richtig? Also haben wir viel über Methoden gesprochen, und jetzt sprechen wir über Funktionen. Und eine Methode ist im Grunde etwas, das zu einem Objekt oder einer Klasse gehört. Und eine Funktion ist sozusagen wie eine frei fließende Methode. Es gehört also nicht zu einer bestimmten Klasse. Und in diesem Fall wollen wir sagen, okay, wenn wir
also die Kartenmethode verwenden,
passiert, dass es eine Funktion nimmt und das ist die Funktion. Und es wendet diese Funktion in diesem Fall auf jedes der Elemente oder jedes der gespeicherten Werte in dieser Liste an. Also im Grunde jede der Zahlen, richtig, wird, also ist es im Grunde wie for-Schleife. In diesem Fall. Es wird „OK“ für jede der Zahlen sagen, richtig? Wir werden sagen, okay, das ist irate. Das bin ich, das bin ich, das bin ich, das will ich machen. Und wir werden nur i plus gleich vier anrufen. Was sollte also passieren, wenn wir so darüber nachdenken? Und dann ist der Rest hier nur aufzulisten. Also schreiben wir das einfach zurück in Zahlen. Wenn wir das hier anrufen, erwarten
wir nur einen 10021069420. Und dann hier erwarten wir alle diese Zahlen, aber fügte vier hinzu. Also rufen wir das einfach an und wir werden die ersten beiden Zeilen genau hier ansehen. Und wie Sie sehen können, dass E, jeder Wert innerhalb der Liste, haben wir vier hinzugefügt. Und das ist eine wirklich einfache Möglichkeit, es in grundsätzlich einer Codezeile zu tun, was erstaunlich effizient ist, wenn Sie Code schreiben. Je größer und größer der Sammlungsscat oder Ihre Listen werden, desto mehr sollten Sie vorsichtig sein, wenn die Lambda-Ausdrücke normalerweise sind, es sollte normalerweise kein Problem geben. Es gibt also viele verschiedene Dinge, die Sie damit machen können. Aber wir werden uns jetzt ansehen, ist Funktionen als Variablen, oder? Das ist also etwas, das verrückt ist. Es gibt fünf Dinge, über die ich jetzt sprechen möchte, das ist einmal Lieferanten, wenn Verbraucher nennen Doubles runnable und dann Funktionen. Und so haben wir hier ein Beispiel für eine Funktion gesehen, aber wir werden zuerst mit Lieferanten beginnen. Ein Lieferant ist also im Grunde eine Variable, die darin gespeichert hat, eine Funktion, die darin gespeichert ist. Eine Funktion ohne Parameter, aber einen Rückgabewert, richtig? Und wir könnten das zum Beispiel so schreiben, oder? Öffne Klammern mit nichts darin. Es gibt also keinen Parameter. Und dann haben Sie diesen Pfeil und dann x. Also hier erklären wir einen Lieferanten, ich nenne es einfach Lieferant, und dann ist das gleich diesem Ausdruck. Dies wäre ein Lambda-Ausdruck, und dies ist im Grunde ein Lieferant. So hat ein Lieferant, wie ich sagte, einen Rückgabewert, in diesem Fall einen Ganzzahlwert, und gibt zehn zurück. Wenn Sie wissen wollen, wofür der Lieferant der Lieferant uns liefern muss, sagen
wir, dann verwenden wir einfach die get-Methode für den Lieferanten selbst. Also, wenn wir uns die dritte Zeile hier ansehen, haben
wir eine Zehn, die mit dem get zurückgegeben wird. Und das ist großartig, weil wir in diesem Fall tatsächlich eine Funktion innerhalb einer variablen Rate
speichern können . Also der Lieferant hier, wir könnten auch zu einer Methode übergehen und wir könnten Sachen damit machen. Das ist, das ist die, die Möglichkeiten sind fast endlos, oder? Wenn du darüber nachdenkst. Wir haben auch einen Verbraucher und ein Verbraucher hat einen Parameter, aber keinen Rückgabewert. Wir könnten das so schreiben. X geht zu nichts. Also in diesem Fall haben wir einen Verbraucher, der einen String-Wert
hat. Und das wird dann so geschrieben. Also geht dieses S zu e-Funktion hier. Und dann können wir Consumer Dot außer und dann einfach eine Zeichenfolge übergeben. In diesem Fall ist es HelloWorld. Und wenn wir das laufen, dann sehen wir Helloworld. Aber wir könnten auch alles weitergeben, was wir wirklich wollen. Das ist also eine gute Möglichkeit, das zu benutzen. Dann gibt es einen Callable. Jetzt hat ein aufrufbares keine Parameter, sondern einen Rückgabewert und löst eine Ausnahme aus. Deshalb haben wir in diesem Fall tatsächlich von einer Try and Catch-Anweisung umgeben. Denn wenn wir das nicht tun, wenn wir das einfach tun, dann wird es wie bei der Ausnahme von der Methodensignatur sein. Aber wir wollen nicht, dass unsere Hauptmethode die Wurfausnahme hat. Deshalb sind wir wie OK, versuchen Sie
einfach anzurufen. Jetzt tut dies in diesem Fall nichts, weil wir eine Ausnahme werfen. Und ich glaube, er fängt das schon mal ein. Und ja, das wäre ein abrufbarer. So aufrufbar, es ist im Grunde das gleiche wie ein Lieferant, aber es löst auch eine Ausnahme aus. Könnte nützlich sein, manchmal hängt wirklich davon ab, was Sie tun. Das nächste Ding. Ein Runnable. Ein Runnable ist eine Funktion ohne Methoden und keine Rückgabewerte. In diesem Fall könnte der Zweitplatzierte auch so geschrieben werden. Und dann ist das Runnable nur die offene Klammer mit nichts drin. Und dann einfach etwas zu tun. Und es kann ausgeführt werden, indem Sie einfach den Lauf ausführen und die run-Methode aufrufen. Sehr einfach. Dies ist ähnlich wie eine normale Void-Methode, richtig? Eine nichtivere Methode. Und das ist nur der, sagen
wir, der Funktionsteil davon. Und schließlich haben wir die Funktion, die Parameter und den Rückgabewert hat. Sie können also über eine Funktion wie eine,
eine mathematische Funktionsrate nachdenken . Wenn Sie f von x haben, dann offensichtlich der Zugriff etwas, das Sie an die Funktion übergeben, und dann ist das y, das Sie zurück bekommen, etwas, das ist das, das, das Ergebnis im Grunde, richtig? Also hier haben wir x, y, so können wir es schreiben. Und in diesem Fall hat
die Funktion ein Double als Eingang und ein Double als Ausgang. Wir bekommen, wir setzen unsere rein und wir verschwinden. Grundsätzlich, wissen Sie, dies wäre eine Funktion zwei, also wäre dies pi, das sind die Radiusraten. Das ist also nur ein Beispiel. Und wir können System aus verwenden, Linie
drucken und dann einfach die Funktion Punkt mit einer Zehn zum Beispiel anwenden. Und wir könnten das anwenden. Also lasst uns das einfach schnell laufen. Und wie Sie hier sehen können, hatten
wir wieder Hallo, Hallo Welt wieder, laufbar. Das hat gut geklappt. Und dann gibt dieser einfach 31,41 und so weiter und so weiter zurück. Weil es nur calc, weil nur mal zehn das, aber noch einmal, wir können jedes Double hier reinsetzen, damit wir wollen. Und ja, das ist also ein sehr kurzer Überblick und eine sehr Zusammenfassung für einige der Dinge, die Lambda-Ausdrücke entlang der Ausdrücke tun können,
gehen viel tiefer als das. Sogar. Also, nur die Funktionen, die wir auf Sammlungen aufrufen können, sind zahlreich und wahnsinnig tief und manchmal wirklich nützlich. Und selbst diese, die Lieferanten und die Funktionen als Variablen, auch dort, gibt es noch mehr Arten von ihnen. Aber ich beschränke mich auf diese fünf, denn meiner Erfahrung denke ich, dass diese fünf vor allem die wichtigsten sind. Nicht unbedingt am wichtigsten, aber am häufigsten verwendet. Und, aber es hängt auch immer davon ab, was Sie richtig machen? Nun, die große Sache ist, dass Sie nicht wirklich Lambda-Ausdrücke verwenden müssen. Wenn Sie ein Programm haben, beginnen
Sie von Grund auf neu und Sie verwenden keine
Drittanbieter-Zusatzpakete oder so etwas. Du brauchst sie nicht wirklich zu benutzen. Du könntest theoretisch alles andere ohne das tun. Aber es ist sehr wichtig, sich wenigstens einige Dinge anzusehen, die Sie vielleicht tun möchten, besonders wenn Sie mit Code arbeiten, den andere geschrieben haben. Also andere Pakete, dann könnten sie
diese Lambda-Ausdrücke verwenden und dann ist es sehr wichtig, das
zumindest gesehen zu haben und sich dann vielleicht erinnern zu können. Also ja, das ist eine sehr kurze Einführung. Wieder einmal, wenn es irgendwelche Fragen gibt, zögern Sie nicht, zu fragen und ich werde sie beantworten. Und ja.
39. (Minecraft) Installation und Einrichtung: Alles klar alle, willkommen zum Minecraft-Kurs. Und das erste, was wir tun werden, ist, dass wir Minecraft 4j herunterladen. Sie gehen also zu den Webadressdateien dot.net. Der Link steht hier natürlich als Ressource zur Verfügung. Und Sie werden den neuesten Download herunterladen, den empfohlenen Download direkt hier. In diesem Kurs machen wir 1.16.3. Und die empfohlene Version jetzt ist 34.1 ist 0. Wir werden das SDK hier herunterladen, also klicken wir einfach auf OK und wir müssen ein paar Sekunden warten. Und dann genau hier ist Skip Button. Wir werden nur darauf klicken. Und dann wird eine ZIP-Datei
diese ZIP-Datei herunterladen , die wir in ein Verzeichnis unserer Wahl legen werden. Ich habe hier bereits ein Verzeichnis vorbereitet. Also werden wir einfach schnell etwas tun, so
etwas Magie wie diese. Und wir werden das hier reinbringen. Jetzt haben wir unsere Schmiede einen Port und 1.16.3 m dk in unserem, in unserem Verzeichnis. Und wir werden hier einfach extrahieren. Dafür benötigen Sie entweder, wenn RAR oder ein anderes Programm. Ich bin sicher, dass Sie das schon haben. Und wenn nicht, zögern Sie nicht, jede Frage zu stellen. Ich kann dann leiten Sie oder Sie können einfach Google Vin rar, WIIFM RAR, direkt nachdem alles extrahiert ist, können
wir tatsächlich löschen Sie die Zip-Datei hier. Und das erste, was wir tun müssen, ist Intelligenz zu öffnen, oder? Wenn du die Intelligenz zum ersten Mal öffnest
, kriegst du das. Willkommen im Geheimdienst. Wenn nicht, dann können Sie einfach oben links zu Datei gehen und einfach importieren oder öffnen. Und was wir tun werden, ist, dass wir mehr Import eröffnen. Jetzt. Wir sind bereits hier in unserem Minecraft-Verzeichnis und wir werden die build.gradle-Datei importieren. Und was wir tun werden, ist, dass wir jetzt einfach als Datei öffnen. Und wie wir sehen können, hat sich
eine Datei geöffnet. Sobald wir die Build-up Gradle Datei geöffnet haben, müssen
wir tatsächlich ein paar Dinge ändern. Und hier drin müssen wir eigentlich R-Paket angeben. Und das wird beruhigt Colton Joe Dot MC Kurs für mich. Also wird die Mod-ID in diesem Fall Mc natürlich sein. Und eine andere Sache, die wir hier ändern müssen, ist Beispielmodus. Und was wir genau dort machen werden, was wir dort tun werden, ist, dass wir einfach Control R drücken und dann das Beispiel mod2 in MC-Kerne ändern und wir werden
alles ersetzen und dann wieder mit Control speichern S diesmal. Und dann sollte alles so aufgebaut werden, wie es sein sollte. Mach dir keine Sorgen, wenn es irgendwelche Fehler oder etwas gibt. Wir werden das bald genug reparieren. Was wir tun werden, ist, dass wir das Projekt abschließen und abschließen. Und jetzt ist dieser hier tatsächlich in der Geschichte, kann eigentlich nur X daraus. Und jetzt können wir tatsächlich das gesamte Projekt importieren. Also, jetzt werden wir gehen, um zu importieren und wir werden noch einmal auf die gebaute oder Gradle-Datei klicken. Aber jetzt werden wir als Projekt öffnen. Das wird hier ein Haufen Zeug machen, kann eigentlich nur auf den Hintergrund klicken und dann wird
alles im Hintergrund beginnen. Mach dir keine Sorgen, wenn es hier einige Fehler gibt. Wir werden die jetzt alle reparieren und nacheinander. Richtig? So. Zuerst einmal, lassen Sie uns tatsächlich hier nach Minecraft gehen und diesen Ordner öffnen, und öffnen Sie dann die Quelle und dann die Java und die Ressourcen als auch. Und wie Sie sehen können, beginnen hier
einige Dinge zu passieren. Wie ich schon sagte, das kann etwa eine Minute oder so dauern, je nachdem, wie schnell Ihre Computer sind. Aber während dies im Hintergrund läuft, können
wir tatsächlich schon ein paar Dinge ändern. Und das ist in den Ressourcen und Meta im Ordner. Es gibt eine Matchpunkt-HTML-Datei. Und diese Datei können wir tatsächlich ein paar Dinge ändern. Also zuerst werden wir einige Dinge auskommentieren. So der Issue-Tracker, können Sie sehen, dass einige von ihnen sind optional und einige von ihnen sind obligatorisch. Und einige der optionalen, die wir eigentlich nur auskommentieren werden. Also in unserer modernen d mod ID, werden
wir noch einmal Mc Kurs schreiben. Dann haben wir den Anzeigenamen. Das wird Mc Pferd. Und dann haben wir keine aktualisierte JSON-URL. Wir haben keine Anzeige-URL und wir werden jetzt kein Logo haben. Der Rest wird einfach so aufbewahrt werden, wie er ist. Wir werden das noch einmal mit Control S speichern und dann wird diese Datei auch aktualisiert. Sie können das jetzt schließen und warten, bis das erledigt ist. Richtig? Also habe ich jetzt ein Häkchen und alles funktioniert gut. Es könnte einen Punkt geben, an dem etwas nicht funktioniert, das Beste wäre, mich
einfach zu fragen und eine Frage zu stellen, und ich werde mich sehr bald bei Ihnen melden. Das erste, was Sie versuchen könnten, ist, dass Sie
zum Terminal gehen können und Sie Gradle,
Gradle w Schrägstrich weniger eingeben können , stoppen. Probieren Sie zuerst diese 1 aus und erstellen Sie sie dann neu. Sie können dies tun, indem Sie zur Gradle-Datei gehen. Und hier oben ist ein kleiner Elefant mit einer Flagge, die dieses Nachladezeichen. Und wenn du, wenn du darauf klickst, dann wird es neu geladen. Und wenn es dann immer noch nicht funktioniert, nachdem
Sie haben, haben Sie diese Eingabe eingegeben und dann wird etwas passieren. Und wenn es dann immer noch nicht funktioniert, dann
zögern Sie natürlich, eine Frage zu stellen, aber versuchen Sie das zuerst, denn das war
ein Problem, das ich definitiv hatte, als ich das erste Mal aufstellte. Richtig, dass es eine Chance gibt, dass Ihre Pakete so
aussehen , wo sie alle die Namen in einer Zeile haben, sagen
wir, und trennen Sie sie dann mit einem Punkt. Um diesem entgegenzuwirken, können Sie hier auf dieses Menü „Optionen anzeigen“ projizieren. Und dann sollten abgeflachte Pakete deaktiviert werden. Und dann sollten kompakte Mittelpakete ebenfalls deaktiviert werden. Dann, wenn Sie die Asset-Ordner erstellen, die gleich danach erstellen werden,
dies gerade im Spleiß jetzt, dann sollten sie korrekt angezeigt werden. Es gab ein paar Studenten, die dieses Problem hatten, und ich wollte das nur spleißen, damit Sie
nicht auch auf dieses Problem stoßen werden . Richtig? Das einzige, was wir jetzt tun werden, ist, dass wir nur ein paar Dinge aufstellen. Also werden wir ein paar Ordner erstellen und wir werden schnell einige Dinge hier ändern. Das erste, was wir ändern werden, sind die Beispielmodi. Wir werden das öffnen. Und natürlich ist dies nicht der Name, den wir gewählt haben. Also tatsächlich gehen, um dies zu ersetzen, indem Sie einfach mit der rechten Maustaste, Refactor, Umbenennen. Und wir werden das umbenennen in, nennen
wir es EMS MC CourseSmart, denn das wird Ahmad sein. Hier geht unser Mattenausweis. Das wird also Mc natürlich alle zusammen geschrieben werden. Jetzt würde ich raten, einfach im Grunde zu kopieren, nicht zu kopieren, sondern mit mir zu programmieren. Und dann, nachdem Sie die Grundlagen, was gelernt haben, wie Sie einen Block erstellen können und wie er Crew erstellen ein Element und so weiter. Das verwendet dann tatsächlich erstellen Sie Ihren eigenen Mod. Ich würde ermutigen, dass, wenn du das nicht willst, das auch in Ordnung ist. Sie können auch einfach folgen und Ihr eigenes Modell sofort erstellen. Dann wollen wir hier eigentlich dieses Paket ändern. Also wollen wir dies ändern, um Baumwolle j2 zu kommen. Und dann ist dieser MC Kurs, richtig? Es wird sein, ich würde gerne, dass wir das in Paket bringen. Und dann wird er hier ein neues Paket für uns erstellen. Und wir können dann auch einfach diesen Beispielordner löschen. Und hier ist alles so eingerichtet, wie es sein sollte. Das ist großartig, oder? Schauen wir uns jetzt die Ordnerstruktur an. Wir werden ein paar Fotos erstellen. Jetzt werden
wir in zukünftigen Vorträgen noch mehr Ordner erstellen. Aber im Moment werden die Ordner, die wir für Dinge wie Blöcke und Gegenstände erstellen, und sie sind Texturen, ein bisschen Sprachkram. Also Text im Grunde anzeigen. Das erste, was wir tun werden, ist, dass wir in den Ressourcen-Ordner gehen. Ich werde ein neues Verzeichnis erstellen und das nennen wir Assets. Jetzt in diesem Assets-Verzeichnis oder mehr Verzeichnisse gehen tatsächlich in diesem 1. Zuerst geht Ihr ein Ordner, der den Namen Ihrer Matt-ID hat, richtig? In unserem Fall hier, mc-Kerne und in diesem Ordner, für mehr Ordner gehen. Der erste wird Bloch-Staaten sein. Und dann wird der nächste lang l, n, g, und dann noch eine, die wir Modals nennen werden. Und dann wird der letzte hier Texturen sein. Jetzt innerhalb des Models-Ordners erstellen
wir auch einen Ordner namens Block. Und ein weiterer Ordner, wir werden ein kaltes Element erstellen. In den Texturen eins werden wir genau das gleiche tun, einen Ordner namens Block und ein Ordner altes Element. Und das ist im Grunde das Setup für jetzt. Genau jetzt, wie wir es brauchten. Wie gesagt, wir werden in Zukunft weitere Fotos hinzufügen,
aber das ist wie eine grundlegende Struktur, die wir brauchen werden, sagen
wir die nächsten paar Vorträge. Und ja, wenn alles eingerichtet ist und wenn alles gut funktioniert, können
wir hier nach Gradle gehen, und dann können wir zu Tasks gehen. Fg wird ausgeführt, und dann dieser Run-Client doppelklicken Sie auf diesen. Und dann wird eine Menge Zeug passieren. Und wenn alles gut funktioniert, dass Microsoft Minecraft tatsächlich anfangen wird, und wir können gut, wir könnten Theorie plattieren. So beginnt es auf dem falschen Monitor. Entschuldigung. Aber das ist kein Problem. Und es wird ja, richtig. Jetzt, wie du dort gehst. Und mal sehen, was passiert. Natürlich, sind da ist es. Die beruhigenden Klänge der Mikromusik, die ich sofort ausschalten werde, weil in der Regel, vor allem in diesen Kursen, vielleicht nicht die beste Studie, um eine Musik im Hintergrund laufen zu haben. Und wenn wir hier Tomaten gehen, können
wir tatsächlich sehen, dass unser MOD MC CourseSmart hier drin ist. Dies ist nur einige Platzhalter-Sachen, die wir platzieren könnten, die wir später ersetzen könnten. Aber ja, es hat Armand geladen und alles funktioniert. Und ja, ich denke, das ist ziemlich gut. Und das ist im Grunde das ganze Setup, das wir jetzt brauchen werden. Das war alles, was für diesen Moment in der Zeit getan werden musste. Und ja.
40. (Minecraft) Hinweis zur Verwendung von Minecraft: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag möchte ich nur schnell erwähnen, dass, wenn Sie eine 605 in wahrscheinlich oben
verwenden, aber 165 gerade jetzt das Hauptthema ist. Sie müssen Ihren Mappingskanal ändern. Es sollte so aussehen. So Mappings Kanal offiziellen und dann Version eins 605. Und innerhalb des Build-Fensters hier sollten Sie auch bekommen, dass dies von
der Microsoft Corporation lizenziert wird , weil dies
die offiziellen Mappings sind , die Minecraft und Morphogen verwenden. Und das wird nicht wirklich kompatibel mit dem Kursmaterial sein, das diesem folgt. Da einige Methoden, tatsächlich viele Methoden und Attribute und Variablen vollständig sind, haben einen völlig anderen Namen. Und deshalb müssen Sie dies genau hier ändern. Dies ist möglicherweise nicht die neueste Version der Zuordnungen. Wenn Sie dieses Video sehen, können
Sie entweder überprüfen oder in die Ressourcen gehen, in die Klassenbeschreibung. Und dort sollten Sie unter ziemlich hoch nach oben 165 Mappings finden. Sie können es dann einfach kopieren und dann einfügen. Stellen Sie sicher, dass zu niedrig an die Gradle ändert sich hier oben. Und dann sollte es eine Weile dauern, alles bauen. Es kann ein wenig länger dauern, wenn Sie es das erste Mal tun. Und dann, sobald Sie das Häkchen bekommen und alles erfolgreich ist, stellen Sie sicher, dass innerhalb Ihrer normalen MOD-Datei. Also, wenn wir dies tun, sollte
dies die MC-Kurs-MTT-Datei sein. Ich habe gerade ein neues 165-Repository eingerichtet. Deshalb ist dies ein Beispielmodell. In diesem Fall müssen Sie hier einen Fehler haben. Löschen Sie einfach diese Zeile oder löschen Sie die gesamte Methode, spielt keine Rolle. Der Fehler hier mit den Optionen, Sie können diese Zeile einfach verlassen und alles wird von diesem Punkt an funktionieren und Sie können
der Klasse fast bis zum t folgen . Ich glaube, dass die meisten anderen Mappings dann funktionieren sollten. Aber das ist sehr wichtig. Wenn Sie das nicht tun, werden Sie nicht in der Lage sein, der Klasse richtig zu folgen. Es spielt wirklich keine Rolle, weil der Mapping-Kanal ist, würde
ich nicht unbedingt besser sagen, aber es ist einfach das, was wir für diese Klasse verwenden werden. Also, nur damit du es weißt und nur damit du weißt, dass das der Fall ist. - Ja. Das war es eigentlich, und das war es für diesen Vortrag. Ich flehe dich wirklich an, das zu tun. Andernfalls werde ich Sie einfach auf diese Lektion verweisen, wenn Sie sie nicht geändert haben. Also, ja, das war's. Viel Glück und viel Spaß auf dem Rest des Kurses. So ja.
41. (Minecraft) Gestalte deinen ersten Artikel: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir ein neues Element erstellen. Also zuerst müssen wir zuerst ein paar Dinge tun. Und das erste, was wir tun werden, ist, dass wir hier tatsächlich
eine öffentliche statische letzte Zeichenfolge erstellen , die wir Mod-ID nennen werden. Und das wird einfach unser Motto ID sein. Und dann können wir es auch hier oben ersetzen. So können wir einfach Mc Corps Motto Mod ID schreiben. Und weil diese Knoten-ID tatsächlich an vielen
verschiedenen Orten innerhalb unseres Modells verwendet wird . Was also passieren muss, ist, dass wir tatsächlich ein neues Paket erstellen wollen. Und das wird in unserem MC-Kurspaket sein. Wir gehen einfach ein neues Paket. Und wir werden diesen Gegenstand anrufen. Und im Inneren werden wir eine neue Java-Klasse erstellen, und das wird kalt sein. Naca ist nur mehr Artikel. Sie können es im Grunde nennen, was Sie wollen, aber es sollte etwas Ähnlichkeit mit mehr Gegenständen haben, meinen Gegenständen, registrierten Gegenständen, so etwas, nur damit Sie wissen, okay, das ist die Klasse, in der ich meine Atome registriere. Und jetzt werden wir etwas Code schreiben und ich werde,
zuerst einmal erklären, wie ich weitergehe und dann in ein wenig mehr Details durchgehend. So wird es, wir werden
ein öffentliches statisches endgültiges Registrierungsobjekt vom Typ Element erstellen . Und wir werden schaffen, wird Kupferbarren sein. Also wollen wir vielleicht abgedeckt hinzufügen, um das Spiel. Das ist nur etwas, was ich mir gerade überlegt habe. Und wenn etwas gelesen wird, können wir es einfach importieren. Dies ist wichtig, um es Netzpunkt Microsoft Punkt Element zu machen. Und das wird ein wenig funky aussehen, aber mach dir keine Sorgen. Und wir brauchen eine andere Sache, bevor wir das tun können. Und das wird eine Registrierung sein. Also haben wir hier den Hai gesprungen. Und was wir tun werden ist, dass wir tatsächlich zurückgehen und ein anderes Paket machen, das wir Util nennen werden. Und da drin, und wir werden eine neue Java-Klasse erstellen, die wir Registrierung nennen werden. Sicher. Und diese Registrierung, wir müssen tatsächlich zuerst
r registrieren oder wir müssen eine verzögerte Registrierung platzieren. Also werden wir hier verzögerte Register verwenden. Und das ist schon einmal passiert. Wir können die Gegenstände tatsächlich machen, aber machen Sie sich keine Sorgen. Wir werden, wir können das tun. Also werden wir ein öffentliches statisches Finale haben. Und das wird ein anderes Register des Typblocks sein. Das ist natürlich für die Blöcke. Aber lass es uns jetzt schon tun, damit wir es haben. Importieren Sie auch den Klassenblog. Und dann tun Sie ein verzögertes Register, Punkt erstellen, Veranda Registers Blöcke. Und dann brauchen wir RMC, Kurs-ID, das Ego. Und dann können wir im Grunde dasselbe tun. Wir können das im Grunde einfach kopieren und
die Gesamtheit durch Gegenstände und Gegenstände ersetzen , so dass wir einfach tun können. Und dann hier sind es Gegenstände. Und dann brauchen wir einfach ein öffentliches statisches Vood-Register, Funktion oder eine Methode, die einen Ereignisbus haben wird. Und was wir über diese 11 Sekunde reden werden. Dies wird ein FLM FML Java-Modell sein, das Kontexte dot get,
dot get, mod Ereignisbus lädt . Und dann ist es einfach, beide aufgeschobenen Register werden sich mit diesem Ereignisbus registrieren. Und in diesem Fall werden es Gegenstände sein. Und dann bam, und in diesem Fall werden alle Elemente registriert. Und das müssen wir dann einfach in unserem Konstruktor hier unten nennen. Also machen wir einfach Registrierung,
Registrierung, DOT, registrieren, ihr Ego. Und jetzt können wir den Gegenstand tatsächlich machen. Das ist ja, denn jetzt wollten wir die Registrierung nennen, oder? Also wollen wir dies das erste Register nennen, das wir tatsächlich erstellt haben. Wir wollen einen neuen Artikel registrieren
, der Kupfer Ingrid sein wird. Nun, das ist, das ist der Name des, im Grunde die Item-ID sozusagen. Und das ist immer Kleinbuchstaben. Und zwischen den Wörtern gibt es Unterstriche statt Leerzeichen oder so etwas. Und dann wird es einen Lieferanten nehmen. Das ist also einfach eine Lambda-Methode, die ein neues Element liefern wird. Also werden wir einen neuen Gegenstand erstellen. Und um ein neues Element zu erstellen, müssen
wir tatsächlich Eigenschaften angeben. In diesem Fall werden wir nur die Elementeigenschaft,
die Eigenschaftsgruppe, angeben , damit wir sie tatsächlich im kreativen Modus sehen können. Und das wird einfach in, sagen wir,
ein Material gehen , um jetzt willen. Und ich möchte tatsächlich, dass dies ein wenig anders eingerückt wird. Sie gehen, das sieht ein bisschen besser aus. Und dann brauchen wir auch eine öffentliche statische Void-Register-Funktion mit nichts darin, nur um es aufzurufen. Also, dass e, damit alles gut läuft. Also lassen Sie uns Mott Artikel DOT registrieren. Und dann wird der Gegenstand tatsächlich bereits im Spiel sein. Genau so. Schauen wir es uns einfach an. Und dann werden wir
natürlich feststellen, dass es noch ein bisschen mehr gibt, weil
Sie vielleicht bemerkt haben, dass wir
zum Beispiel keine Textur hinzugefügt haben, die natürlich benötigt wird. Sonst wird es etwas seltsam aussehen. Und ich kann dir versprechen, dass es etwas komisch aussehen wird. Lasst uns einfach eine neue Welt erschaffen. Wir werden eine kreative Welt
und friedlich machen und ich bin nur eine neue Welt, das ist in Ordnung. Okay. Okay, hier sind wir in Minecraft. Ist das nicht wunderschön? Und mal sehen. Also sollte das ein Verschiedenes sein oder glauben, dass sie Artikel von Mc Zwangskupfer gehen würden, Ingrid, sind diese schönen Kupfer nicht und er ist nicht wirklich, oder? Nein. Nicht, nicht wirklich. Okay. Also werden wir ein paar andere Dinge beheben müssen oder es ist richtig im Spiel, Ausbuchtungen im Spiel dennoch. Das erste, was wir tun müssen, ist, dass wir in
den Lungenordner gehen hier unter Ressourcen Assets als unser Motto AD MC Kerne, und dann die Länge Ordner. Und wir werden eine neue Datei erstellen, die wir Yan unterstreichen und JSON, JSON, JSON nennen werden. Und das wird so formatiert werden. Wir brauchen diese geschweiften Klammern. Und dann innerhalb von, innerhalb der Zitate, werden
wir Artikel MC-Kerne machen, Harper, Barren, und dann einen Doppelpunkt. Und dann Deckung. Dies ist im Grunde der Name, den wir innerhalb des Spiels angezeigt haben wollen. Und dann gehen wir in die Modelle und in Artikel. Und hier haben wir eine Datei, die genau so benannt ist wie der Name des Artikels, das wir angegeben haben, oder? So unterstreichen Kupfer Barren und Dot JSON noch einmal. Und das wird so etwas haben. Dies wird übergeordnetes Element sein, ein Schrägstrich generiert. Und dann spezifizieren wir die Texturen. Texturen also keine geschweifte Klammer und dann Ebene 0. Sehen Sie die Poren. Halten Sie einen Gegenstand Slash Kupferbarren. Da gehst du. So ist die wichtigste Takeaway hier ist, dass die, hier geben wir die Texturen. Dies ist im Grunde der wichtigste Teil. Und wir können im Grunde mehrschichtige, mehrschichtige Gegenstände haben. werden wir uns jetzt keine Sorgen machen. Dies ist jedoch die wichtige Art, wie man es schreibt. Und dann ist eigentlich das einzige, was wir brauchen, eine Textur. Und jetzt habe ich tatsächlich eine Textur auf meinem anderen Bildschirm vorbereitet. Ich werde das in den Punkt bringen und ich werde sagen,
ja, das ist die Textur, die ich vorbereitet habe. Und in der Theorie, beachten Sie auch, dass der Name der Textur hier. Zuallererst muss es sich um eine PNG-Datei handeln. In meinem Fall habe ich eine 16 mal 16. Es sollte nicht größer als 32 mal 32 sein. Aber, weißt du, es könnte Möglichkeiten geben, das zu umgehen. Aber in diesem Fall rate
ich, immer
16 mal 16 Texturen zu machen , weil das auch die Seiten der Texturen der normalen Mikrotexturen sind. Und der Name der Datei wird genau der gleiche sein
wie der Name, den wir in unseren Mod-Artikeln genau hier angegeben haben, oder? Dies ist also immer die, im Grunde die Item-ID. Das ist überall, wo wir hingehen, im Grunde wird es dasselbe sein. Und in der Theorie, wenn alles funktioniert, hoffen wir, dass es getan hat. Dann werden wir es sehen, und hoffentlich wird es schon funktionieren. Aber ich bin mir ziemlich sicher, dass alles gut wird. Jetzt. Eigentlich nicht meine, meine Idee hier ist, dass ich eigentlich nicht ausschneiden werde wenn ich vielleicht einen Fehler gemacht habe, und wir werden nur einschneiden und dir
zeigen, wo ich es gemacht habe, weil ich denke, dass
du manchmal einen Fehler machst, Ich mache irgendwo einen Fehler und dann ist es besser für dich zu sehen, dass es einen Fehler gab. Und dann kannst du daraus lernen. Aber eigentlich müssen wir das nicht einmal tun, denn hier sind es unsere Kupferbarren. In unserem Spiel. Es heißt Kupfer verärgert und es sieht ziemlich gut aus. Ich mag es. Sieht irgendwie nett aus. Ja, das war alles, was wir tun mussten, um einen Gegenstand in Minecraft zu erstellen. Wenn Sie Fragen haben, zögern Sie nicht, sie zu fragen. Und das war es im Grunde. So ja.
42. (Minecraft) Erstelle deinen ersten Block: Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir unseren neuen Block schaffen, richtig? Wir werden unseren eigenen Block erstellen. Und es wird ein bisschen komplizierter als der Artikel, aber nicht viel. Also das erste, was wir tun werden statt r mod ID-Paket. Also, unser MC-Kurspaket hier, werden
wir ein neues Paket erstellen. Und das wird Block heißen. Und innerhalb dieses Pakets werden
wir eine neue Java-Klasse erstellen, und das wird mehr Blöcke sein. Hier. Wir werden etwas Spaß haben. Vielleicht wollen wir einen Kupferblock, der zu unseren Kupferbarren passt, der nützlich sein könnte. Jetzt müssen wir zuerst eine Art Hilfsmethode haben. Und ich werde das schreiben und erklären, während ich mitmache, wird
es zunächst ein bisschen verrückt aussehen, aber mach dir keine Sorgen. Das ist also ein T erweitert Blog und wir müssen das tatsächlich importieren. Oh, tut mir leid, warten wir. Und dann wird dies ein Registrierungsobjekt vom Typ T-Register zurückgeben. Und es wird schnell Perameter, String,
Name und Versorgung haben . Modell vor ein bisschen, Lieferant T, und der Name des Blocks, richtig? Okay, los geht's. Wir müssen auch die Lieferantenklasse hier aus Java Util importieren. Und da gehen wir. Und dann in diesem werden wir
ein neues Registry-Objekt vom Typ T erstellen . Dies ist das, das wir zurückgeben werden. Also werde ich das anrufen, um zurückzukehren. Und jetzt gehen wir eigentlich für die Registrierung Punktblöcke,
registrieren, Namen und Block gehen . Und der Grund, warum wir es in dieser Funktion tun, ist eigentlich, weil wir auch ein Element für diesen Block registrieren müssen. Also werden wir Registrierungspunktgegenstände machen, die sich nicht registrieren. Und das wird der gleiche Name sein. Und dann werden wir tatsächlich, anstatt eine Seele zu erstellen hier einen neuen Gegenstand
zurückzugeben, tatsächlich ein neues Blockelement erstellen. Und das wird nur zurückgegeben werden, um dot get zurückzugeben. Und dann brauchen wir ein neues Element, Punkteigenschaften. Diese sind die gleichen wie bei dem Artikel. In diesem Fall werden wir nur Gruppen jetzt machen, um es in einer Gruppe in den kreativen Tabs zu
sortieren. Das wird also Bausteine sein. Das ist Block, also macht das Sinn. Und dann kehren wir zurück, um zurückzukehren. Und das ist unsere Hilfsfunktion. Also nimmt im Grunde einen Typ ein. Es hat also im Grunde eine Art von Block, den wir hier liefern müssen. Und dann gibt es einen Block zurück. Wir werden es einfach einfacher benutzen, als nur hier zu täuschen. Also werden wir Registrierungsobjekt machen. Also noch einmal habe ich Registry-Objekt, die Summe des Typblocks. Es wird einen Kupferblock geben. Und jetzt werden wir nur registrieren anrufen, weil
das ein Registrierungsobjekt für uns zurückgibt. Und das wird Kupferblock sein. Und dann müssen wir auch den Lieferanten machen. Und das wird sein. Ein neuer Block in diesem Fall. Und jetzt haben wir tatsächlich anstelle von Blockeigenschaften mit epsilon rocked Eigenschaften, Eigenschaften dot erstellen. Jetzt müssen wir zuerst ein Material angeben. Nun, denken, dass dies ein wie ein Kupferblock ist, ist
dies wahrscheinlich Material Dot Eisen. Und dahinter können
wir sogar noch mehr Eigenschaften angeben. So können wir zum Beispiel Härte und Widerstandsfähigkeit machen, was das in die nächste Zeile hier verschieben wird. Und das wird wahrscheinlich so sein, lasst uns einfach so etwas wie 310 machen. Und dann werden wir tun, Sound wird ein Soundtyp.me sein. Ja. Ja. Sehr gut. Okay. Und dann ist das erledigt. Das ist übrigens auch etwas für die Artikel. Sie können direkt hinter Gruppe, Sie können noch mehr Elemente hinzufügen, oder? Es gibt etwas, das so zum Beispiel, Seltenheit, max Schaden, Mixtec Größe, und alle möglichen anderen Dinge, die wir hier tun können. Wenn ich mich nicht irre, brauche
ich eine, eine andere PABA, öffentlich, statisch, leer, registrieren, eine leere Funktion. Und wenn ich mich nicht irre, sollte
das schon reichen, um es hier drin zu haben. Also mehr Blöcke, die sich registrieren. Aber bevor wir in die, in Minecraft schauen, wie es aussieht, werden wir tatsächlich die Textur dieses Mal
richtig machen und durch sie gehen. Das erste, was wir tun werden, ist, dass wir
den Yen US Jason wieder in unserem Längenordner öffnen . Ich werde das hinzufügen. Dies wird also der loc dot AMC Kurs auf Kupferdraht sein. Entschuldigung, Kupferdraht. Wovon rede ich? Das ist ein Spoiler. Das ist ein großer Spoiler. Kupferdraht. Es ist natürlich Kupferblock. Ja. Und das ist es eigentlich schon. Wir werden auch etwas in den Modellen liefern müssen. Dies ist eine neue Datei und das wird Kupferblock Punkt JSON sein. Und ich werde das schnell kopieren. Das ist ein bisschen einfacher. Und es wird sein, so dass das übergeordnete Element, Element generiert, dieses übergeordnete
Element ist, es ist tatsächlich blockiert Würfel alle. Und dann ist die Technologie in den Texturen, die wir tatsächlich haben, es ist eine Art Ebene 0. Wir haben alle. Dies ist im Grunde zu spezifizieren, dass alle Seiten die gleiche Textur haben. Natürlich können wir auch verschiedene Texturen für verschiedene Seiten verwenden, aber das ist etwas für einen weiteren Vortrag. Und dann brauchen wir auch die Bloch-Staaten. Das wird also Trichterblock Dot Jason sein. Und das werde ich auch schnell hier rüber kriegen. Und das bezieht sich im Grunde auf die Modelldatei, die wir gerade erstellt haben. Allerdings müssen wir tatsächlich eine andere Datei in Modellen erstellen, und das ist unter Elementen. Und das wird auch der Kupferblock sein. Jason. Deshalb habe ich gesagt, dass es ein bisschen komplizierter war als nur der normale, weil es noch ein paar Schritte gibt, um einen Block zu erstellen. Also MC, schlimmer Block Slash Kupferblock. Und das sollte es sein. Ich glaube es. Jetzt müssen wir nur auf die verweisen oder ich
muss das schnell hier reinbringen. Das werden wir tun. Das ist meine Textur für den Kupferblock. Und theoretisch sollte jetzt alles gut funktionieren. Das heißt, nun, in Ordnung, lassen Sie uns einfach die Mikrowelle laufen und sehen, ob das funktioniert. Also haben wir die Bloch-Staaten, wir haben die Modelle, schwarze Modelle, Artikel und die Textur. Und wir haben auch die Lang eingestellt. Also alles in allem, was schon funktionieren sollte, glaube ich. Mal sehen, ob ich recht habe oder nicht. Richtig. Asco Einzelspieler-Neue Welt. Lass uns da reingehen und sehen, was wir sehen können. Also eine Abdeckung oder ist natürlich noch da. Und dann in den Bausteinen hier unten, da ist er, der Kupferblock. Du kannst es platzieren. Und wir können es auch umwerfen, wenn Sie wollen. Ja, das ist großartig. Das ist erstaunlich. Also das ist eigentlich so, wie ich sagte, es ist ein bisschen komplizierter als der Artikel, aber es ist noch nicht verrückt kompliziert. Und doch ist dies im Grunde, wie wir eine Straßensperre in Minecraft hinzufügen. Und danach gibt es eine kleine kurze Aufgabe, bei der Sie tatsächlich einen anderen Gegenstand und einen weiteren Block zu Minecraft hinzufügen. Sie können entweder Ihre eigenen machen oder Sie können einfach die tun, die ich zur Verfügung stellen. Ich stelle zwei Texturen zur Verfügung. Und man sollte eigentlich Kupferdraht und ein Kupfer oder auch zum Spiel hinzufügen. Und ich, also rate
ich, den Auftrag irgendwie blind zu machen,
im Grunde alles zu kopieren, was wir bis zu diesem Punkt getan haben und dann das tun, ohne das Video anzuschauen. Aber natürlich ist es kostenlos für Sie. Ich rate dir nur, es zu tun. Und dann die nächste Vorlesung, ich werde das alles schon im Spiel haben. Also der Kupferdraht und das Kupfer oder sind schon da drin. Also, wenn du das nicht tust, bist du vielleicht hinter dir. Das werde ich in der nächsten Vorlesung schnell ansprechen. Aber nur damit Sie dort sind, wo die Aufgaben immer nachträglich in die Vorlesung übernommen werden. Also, und die Aufgaben werden immer
Teil der nächsten Vorträge sein , die danach kommen. Ja, das war im Grunde alles, was ich sagen wollte. Wieder einmal, wenn es irgendwelche Fragen gibt oder wenn Sie irgendwelche Pfeile haben,
zögern Sie nicht, mich zu fragen und ich werde versuchen, Ihnen so schnell wie möglich zu helfen. Und ja.
43. (Minecraft) Theorie: Oder ich möchte nur kurz darauf hinweisen, dass diese Vorlesung nur ein
wenig tiefer in die Klassen eingehen soll, die wir bereits erstellt haben. Also die Modi, Elemente, die Mod-Blöcke und die Registrierung und die Hauptklasse. Und das ist eine sehr theoretische Vorlesung. Wenn Sie das nicht interessiert, können
Sie es überspringen. Es gibt nichts zu verrücktes oder Wichtiges, was hier eingestellt wird. Es ist nur vielleicht, um ein wenig
von Ihrem Wissen zu verfestigen , und das ist es im Grunde. So können Sie es überspringen, wenn Sie wollen. In Ordnung, willkommen zurück zu den Minecraft-Erzen und ich bin aus der Zukunft hier. Nun, im Grunde hatte ich eine Frage, die ein Student gestellt hat, die sagte, hey, können Sie vielleicht ein wenig mehr in der Tiefe
sowohl in der Hauptklasse als auch auch Registrierung mod Artikel gehen . Was machen wir da? Ich tippe das nur oft. Ich verstehe nicht wirklich, was ich hier
mache , und das ist im Grunde der Vortrag dafür. Und so werden
wir zunächst die MC CourseSmart-Klasse durchlaufen und im Grunde fast jede der Zeilen hier betrachten. Die erste ist also diese Anmerkung, natürlich ist Add-Modus und dann die Mod-ID. Das ist ganz einfach. So dass orange im Grunde verstehen, OK, das ist die Hauptklasse für diesen Modus mit der Studie, die wir haben, dann natürlich, Sie sind tatsächlich als String initialisiert, einfach mc Kurs. Oder vielleicht haben Sie einen anderen Namen gewählt. Aber es ist die gleiche Idee. Und auch sehr wichtig, es ist auch hier geschrieben. Der Wert hier sollte mit einem Eintrag in der Meta in Tamil übereinstimmen. Wir haben das tatsächlich getan. Ich glaube an den ersten Vortrag hier, als wir mit der Minecraft und der Glückselektion
begannen, richtig? Genau dann haben wir hier einen Verweis auf das Protokoll für j logger. Nun, eigentlich sehr leicht erklärt. Also log for J ist einfach eine,
eine externe Bibliothek, die Schmiede verwendet, um einige der Dinge zu protokollieren, die gut passiert, entweder im Spiel oder während der Initialisierung und so weiter. Und das Protokoll für j ist nur eine wirklich ausgezeichnete Bibliothek, um dies zu tun. Dass es wirklich keinen Einfluss auf irgendetwas hat, was im Spiel passiert oder etwas wirklich. Dies ist also nur für Debugging-Zwecke und für die Ausgabe von Dingen an die Konsole, sagen
wir, ja, gleich als nächstes haben wir den Konstruktor. Dies ist also einfach ein normaler Konstruktor, wie in jeder anderen Java-Klasse. Es ist nur für unsere Modellklasse. Natürlich haben wir hier unsere drei Registermethoden , die wir eigentlich für die Registrierung,
die MOD-Artikel und die MOD-Blöcke aufrufen . Das ist natürlich selbsterklärend in der Art und Weise, wie wir das getan haben. Jetzt werden wir auch drei dieser Klassen durchlaufen. Aber schauen wir uns zunächst die gesamte mc Multi-Klasse an. Als nächstes kommen diese vier interessanten Methodenaufrufe , die ein wenig seltsam sind und wie, okay, interessant sein könnten. Das sieht also wie ein verrücktes Setup aus, sagen wir mal. Also zuerst tun wir diese FML Java Ladekontexte, die dot-dot-dot mod,
mod event bus ad listener erhalten . Und dann stecken wir es in diese seltsame Sache, wo wir das schreiben und dann. Ein zwei, du weißt schon, zwei Doppelpunkte und dann ein Methodenname hier, richtig? Das scheint alles etwas seltsam zu sein. Aber um es in den einfachsten Begriffen zu erklären, im Grunde, was Forge tut, ist Forge hat verschiedene Stufen, um bestimmte Dinge einzurichten, oder? Also im Setup zum Beispiel, in
der Regel, was Sie hier tun würden, wäre etwas wie ein Putt in den Konfigurationen und vielleicht in der Summe. Was sonst deklarieren Fähigkeiten. Es gibt also verschiedene Dinge, die Sie in verschiedenen Phasen tun, was natürlich sinnvoll ist. Und was wir mit diesem Loch hier machen, ist einfach zu sagen, okay, hey, diese Methode sollte aufgerufen werden, wenn es Zeit für das Setup ist, und diese Methode sollte aufgerufen werden, wenn es Zeit
ist , IMC einzulegen und dann IMC zu verarbeiten. Und dann am Ende sollte das alt sein, wenn es Zeit für das To-Do-abgelehnte Zeug ist. Und das ist im Grunde das, was das Ganze hier bedeutet, richtig? Die Ladekontexte
zu erhalten, Modus, Ereignis, Bus zu erhalten, Listener
hinzuzufügen, ist einfach eine Möglichkeit, sicherzustellen, dass bestimmte Dinge zu bestimmten Zeiten passieren. Denn wenn wir mehrere Modi haben und sie einfach initialisieren, wann immer sie wollen, wissen Sie, einige initialisieren die Rezepte am Anfang, einige initialisieren die Rezepte am Ende. Es ist alles Wahnsinn. Dass das nicht wirklich funktioniert. Deshalb rationalisiert Futter dies durch die Verwendung dieser Zuhörer. Und das sind die einzigen wirklichen Dinge, die uns interessieren, sind das Erste und das Letzte. Die in der Mitte waren eigentlich wie die ganze Sache. Wir werden nie über den gesamten Kurs sprechen, weil Inter-Mod-Kommunikation ist. Das heißt, dies sind Methoden für die Kommunikation mit anderen Mods. Und weil wir hier in diesem Kurs nur einen Mod bauen, werden
wir überhaupt nicht darauf eingehen. So ist es tatsächlich möglich, dies zu löschen. Und ich bin eigentlich so, als würde ich dieses Ende
beide Methoden in einer späteren Vorlesung im fortgeschrittenen Abschnitt löschen . Nur um zu bemerken, dies wird dort für die Länge der bleiben, sagen
wir, die, Ich denke, es sind die Anfänge der Minecraft Modding. Aber Sie konnten bereits gelöscht werden, wenn Sie möchten. Aber das musst du nicht. Natürlich können Sie es einfach so bleiben lassen, wie es ist und nichts würde sich ändern. Jetzt sind das Setup und das Client-Zeug eigentlich Dinge, die wir benutzen werden. Jetzt später im erweiterten Abschnitt werden
wir uns tatsächlich eine andere Art und Weise ansehen, die Client-Sachen zu tun. Aber zu diesem Zweck werden
wir es so behalten. Und doch ist dies im Grunde das, was diese Konstrukte hier bedeuten. Gleich als nächstes, wie der Kommentar bereits sagt, schreiben Sie uns für Server und andere Spielereignisse, an denen wir interessiert sind. Das bedeutet einfach, dass wir tatsächlich Zugang zu dem bekommen, was wir hier unten haben ,
V abonnieren Veranstaltungen, von denen wir später mehr sehen werden. Und das ist einfach, uns wieder in Bezug auf Ereignisse zu registrieren, die passieren. Genau dann haben wir natürlich die beiden Methoden, die aufgerufen werden, um Listener hinzuzufügen. Dann haben wir eine Aktion als M abonnieren Ereignis, wo wir auf Servern starten. Dies ist also, dies geschieht nur, wenn der Dienst gestartet wird. Und dann hier unten haben wir eigentlich Registerveranstaltungen. Nun ist dies eine Methode, die wir tatsächlich gelöscht haben oder in einem zukünftigen Video löschen werden. Ich bin eigentlich nicht 100% sicher, aber das sollte einfach weg sein. Gleiches mit dem Serverspeicher in diesem Fall. Denn wieder einmal, in zukünftigen Vorträgen, vor allem
in der fortgeschrittenen Vorlesung, werden
wir tatsächlich ein wenig vom Code durchgehen und aufräumen und umgestalten. Und dort werden wir auch einen neuen Weg
oder eine andere Art entdecken , die client- und serverseitige Trennung durchzuführen. Aber das ist eine Art grundlegender Überblick über die Hauptklasse MC CourseSmart. Und ja, schauen wir uns den nächsten Einschreibungskurs an, oder? Also innerhalb unserer Registrierungsklasse haben
wir die zwei verschiedenen Register von Typblock und Typ Element. Und dann haben wir diese Registermethode, bei der wir das auch registriert haben. Also lasst uns zuerst darüber nachdenken, hier
oben, so dass sich das Register unterschieden. Also eine Sache, die Sie tun können, wenn Sie sich jemals stecken fühlen, können
Sie auch einfach
die Strg-Taste halten und den Mauszeiger über eine beliebige Klasse oder eine Methode bewegen und dann einfach darauf klicken. Und Sie werden tatsächlich sofort sein, während die Klasse sofort geöffnet wird. Und wie Sie sehen können, gibt es hier einige Dinge, die helfen könnten. Also sind die Commons tatsächlich da drin. Und damit wir tatsächlich sehen können, OK, was ist das? Das unterschiedliche Register ist also eine Dienstprogrammklasse, die bei der Verwaltung der Registrierung hilft. Führt eine Liste aller Lieferanten für Einträge und registriert diese während der ordnungsgemäßen Registerveranstaltung. Wie Sie sehen können, haben
wir fast schon die Antwort darauf, was dies schreibt. Es hat einfach eine Liste aller Lieferanten. Und das ist etwas, das wir in den Mod-Artikeln sehen werden, genau in diesem Jahr, wo wir etwas registriert haben. Hier hatten wir beispielsweise einen Lieferanten für einen neuen Artikel und einen neuen Block. Und genau das verfolgt das dritte Register. Und dann stellt einfach sicher, dass das Spiel weiß über,
hey, das sind die Blöcke, die ich habe, das
sind die Elemente, die ich habe. Und hier kommen die aufgeschobenen Register ins Spiel. Also stellen sie im Grunde sicher, dass das Spiel über diese Dinge weiß. Und was ich Ihnen zum Beispiel schnell zeigen kann,
ist, wenn wir hier ein neues aufgeschobenes Register haben, und wir werden das alles schnell machen, was auch immer. Und wir werden in unterschiedliche Register schauen, die erstellen. Was wir hier sehen können, ist Port Registries Punkt. Und das sind alle Arten von Registern, die wir tatsächlich betrachten können. So können wir neue Tränke machen, wir können neue Flüssigkeiten machen,
Entitäten, wir können neue Fliesen-Entitäten machen. Und einige davon
sind natürlich auch Dinge, die wir später in späteren Vorlesungen hinzufügen werden. Das ist im Grunde die Idee hinter dem verschiedenen Register ist einfach nur eine Liste oder sagen wir eine Aufzeichnung aller Dinge, über die wir das Spiel wissen wollen. Und in diesem Fall definieren wir diese nach dem Typ, den wir wissen wollen
, den wir registrieren wollen, oder? Also zuerst sagen wir ein, dies ist ein Register für Blöcke. Also lassen Sie uns eine Liste von Block sagen. Es ist keine ganze Liste, aber lassen Sie uns so darüber nachdenken. Also haben wir alle Blöcke, die wir definieren wollen, und dann haben wir alle Elemente, die wir definieren wollen. In der Zukunft. Wir werden Weg, Weg, Weg,
mehr Typen hinzufügen , die wir definieren möchten. Und dann jedes Mal, wenn wir ein neues aufgeschobenes Register erstellen. Und jetzt diese Registermethode hier, wie Sie sehen können, gibt es etwas. Unheimlich ähnlich diesem hier. Und genau das hatten wir hier drin, richtig? Also haben wir das auch schon, wir haben das schon mal gesehen, oder? Dies ist einfach der FML Java Ladekontexte dot get, dot-dot-dot event bus, dot-dot-dot listener. Und anstatt den Atlas-Lerner zu machen, was wir eigentlich tun werden, ist, dass wir bereit sind, das umdrehen. Also nehmen wir diesen Eventbus und
sagen dann Blocks registrieren und geben dann den Eventbus rein. Jetzt tut dies im Grunde genau das Gleiche wie umgekehrt. Wir werden es einfach so machen. Weil, gut bedeutet, einfach so ist es die Art und Weise, wie es getan werden soll. Und das dann, während diese verzögerte Register, wenn wir in die Schlammgegenstände gehen und sagen, hey, das ist das dritte Register, ist, wo wir die Liste im aufgeschobenen Register jetzt darüber wissen. Aber dann muss Schmiede auch über diese verschiedenen Register wissen. Und deshalb registrieren wir die mit dem Eventbus in der Registermethode hier innerhalb der Registrierungsklasse. Nun, in die Mod-Artikel vorwärts, wir haben bereits ein wenig darüber nachgedacht, oder? So ruft das Registrierungspunkt-Items Register einfach noch einmal das Register auf. Und in diesem Fall sagen wir einfach acht. Also wollen wir dies innerhalb der Elemente verschiedene Register registrieren. Und wir müssen natürlich den Lieferanten mitnehmen. Und das ist, was dann passiert, ist auch notwendig, um ein neues Element für diese zu erstellen. Und dies im Grunde stellt dann sicher, dass es
ist, ist durch das Spiel bekannt, kann
aber auch ein neues Element Eigenschaften hier gegeben werden. Und natürlich, in diesem Fall geben wir ihm nur eine Artikelgruppe würde natürlich noch mehr hinzufügen. Richtig? Und warum verwenden wir dann den Registrierungsobjekttyp hier? Nun, ich bin ganz auf Bootfahren gespannt. Es ist im Grunde einfach der Rückgabetyp
der Registermethode hier aus dem verzögerten Register schreiben. Und wir können auch dort unten sehen, es fügt einen Lieferanten zur Liste der zu registrierenden Einträge hinzu,
gibt ein Registrierungsobjekt zurück, das mit dem erstellten Eintrag automatisch gefüllt wird. Also im Grunde tut die ganze Arbeit für uns automatisch, so dass wir diese Kupferbarren verwenden können, sind Beispiele für sein Registry-Objekt. Also können wir es tatsächlich benutzen. Nun, überall in dem, in dem Modell, wo wir wollen, müssen
wir es verwenden, oder? Also haben wir eine Referenz, eine statische Referenz auf dieses Element bereits vorhanden. Nun, wir haben nicht auf das Registrierungsobjekt verwiesen, aber es ist so gut wie das Element, weil wir einfach
das Element erhalten können , indem wir zum Beispiel .gov verwenden. Und das ist eine Art der Grund, warum wir das Registrierungsobjekt hier verwenden. Das Y, das wir diese Registermethode haben,
hat einfach damit zu tun, dass, wenn Sie statische Member für eine Klasse haben und Sie noch keine Methode aufgerufen haben. Dann gibt es eine gewisse Seltsamkeit mit der, mit der Ladung, mit dem Laden in der anderen Reihenfolge. Es ist also, du weißt schon, dass das tatsächlich gebraucht wird. Und wenn es um die MOD-Blöcke geht, Nun, das ist, ich meine, fast genau das gleiche, aber wir haben Registry Objekt wieder, nur dieses Mal mit Blöcken, richtig? Und hier unten haben wir eine andere Methode gemacht. Nun, das mag zunächst auch ein wenig verwirrend sein, aber ich glaube, ich habe es in den Blöcken erklärt. Und die Blöcke eins, vielleicht nicht gut genug. Die Idee hier ist also einfach, dass
wir, anstatt
die Block-Punkt-Register-Methode direkt aufzurufen , dies alles innerhalb einer privaten Methode setzen werden. Weil wir auch, zusätzlich zu dem Block, wollen
wir auch den Artikel registrieren, der zu diesem Block gehört, oder? Welches ist ein Block-Element. Natürlich. dies zu tun, sagen
wir einfach, hey, lassen Sie uns das einfach in dieser Registermethode tun, weil das viel einfacher ist als dies zuerst zu schreiben und dann jedes Mal, wenn Sie einen Block erstellen, können
wir einfach sagen, nun, Lassen Sie uns das einfach in eine Methode umgestalten. Und deshalb ist diese Methode im Jahr. Und es sieht ein bisschen anders aus als die MOD Items Klasse, richtig? Das rundet das ab. Ich hoffe, das war irgendwie nützlich für Sie. Ich verstehe, dass es einige Konzepte gibt, die natürlich ein
bisschen fortgeschrittener waren , hier hineingeworfen werden können. Und so ist das eine Art zusätzliches Erklärungsvideo. Ich hoffe, es ist klar, zumindest ein paar Dinge. Und in Zukunft hoffe ich, dass andere Vorträge erhellender sind, sagen wir sowieso, wenn es irgendwelche Fragen zu diesem gibt , also in Bezug auf alles andere, natürlich, das war ein bisschen theoretischer, sagen wir in der Natur. Und wir gingen einfach durch die, die Klassen ein wenig. Aber ja. Also, wenn es keine Fragen gibt, natürlich, fühlen Sie sich frei zu fragen und ich werde kürzer S1 sein. Und ja.
44. (Minecraft) Unser eigenes Custom kreativer Tab: In Ordnung, lassen Sie uns mit dem Minecraft-Kurs fortfahren. Und wie in der letzten Vorlesung erwähnt, habe ich bereits die Copper oder,
und die Kupferdrähte in das Spiel aufgenommen . Und achten Sie darauf, wenn Sie das noch nicht getan haben
, sollten Sie sich die letzte Vorlesung ansehen. Oder Sie finden in dieser Vorlesung auch eine Textdatei mit allen Dingen, die Sie hinzufügen müssen, und den Klassen, in die sie hinzugefügt werden müssen. Und ja, stellen Sie sicher, dass Sie dem
und dem in das Spiel folgen , denn das wird jetzt wichtig sein. Aber in dieser Vorlesung werden wir tatsächlich unsere eigene Registerkarte erstellen. Also unsere eigene Registerkarte im Menü, im kreativen Menü. Und das ist eigentlich nicht so schwer. Also, was wir tun werden, ist, dass wir eine öffentliche statische letzte Elementgruppe erstellen, die wir anrufen werden, sagen wir natürlich Tab. Lassen Sie uns diesen Kurs Tab machen. Und das wird einfach eine neue Item-Gruppe sein. Und dann wird es hier automatisch eine ganze Reihe von Sachen generieren. In diesen Klammern werden
wir den Namen haben. Das wird also noch schlimmer stampfen, sagen wir mal. Und dann hier ist es tatsächlich einmal ein, ein Symbol. Dies ist also ein Item-Stapel, den wir zurückgeben und wir werden einfach einen neuen Item-Stapel zurückgeben. Und wir werden die Mod-Elemente machen, die uns den Kupferdraht-Punkt bekommen lassen. Also werden wir eigentlich nur unseren Kupferdraht zurückgeben. Und hier drin brauchen wir auch ein Semikolon am Ende. Und dann haben wir tatsächlich bereits erstellt,
jetzt, um dies zu nutzen, müssen
wir in unsere Motto Blöcke und
Ahmad Elemente gehen und die Gruppe hier in unsere neue Gruppe ändern, die wir erstellt haben. So MC CourseSmart Punkt Kurs Registerkarte. Und dann auch hier, MC dot-dot-dot Course Registerkarte. Wir werden das hier einfach kopieren und auch hier reinlegen. Also jetzt sind beide Barren und unser Draht und auch unser Block und unser oder, oder alles, was wir auch immer und jedes Element, das wir danach
erstellen, wird immer innerhalb unserer eigenen Registerkarte sein. Und wir können natürlich noch mehr Tabs erstellen. Aber in unserem Fall denke ich, dass eine Registerkarte für die Zwecke dieses Kurses ausreichen wird. Wir werden keine 1000 Artikel erstellen. Und wir werden es behalten, weißt du, vielleicht dreistellig. Nein, ich mach nur ein Scherz. Natürlich. Wir werden nicht so viele Gegenstände oder Blöcke erstellen. Ja, mal sehen, ob das tatsächlich funktioniert hat und wie das in unserem Spiel aussehen wird. Also zuerst, weißt du, unser Block und unsere Ingrid sind immer noch da. Und dann können wir tatsächlich sehen, dass wir hier eine zweite Seite haben. Und hier oben können wir sehen, dass das funktioniert. Jetzt. Es gibt tatsächlich Artikel Gruppierung Punkt Kurs Registerkarte ist noch nicht lokalisiert, aber unsere Artikel und unsere Blöcke sind alle da. Das ist also großartig. Aber wir müssen das eigentlich immer noch lokalisieren. Und das passiert natürlich in der EN uns, Jason. Und das ist auch nicht so schwierig. Wir gehen nur zu tun Punkt Gruppe Punkt Kurs Registerkarte. Und das wird die Registerkarte „Kurs“ sein, und das war's. Und dann ist das lokalisiert und das ist im Grunde alles, was wir tun müssen, damit wenn Sie den Mauszeiger darüber bewegen, Sie tatsächlich einen anderen Text angezeigt bekommen. Ja, und das war's. So einfach ist es, einen neuen Kurs-Reiter und eine neue Elementgruppe zu erstellen. Also, ja.
45. (Minecraft) Erstellen eines neuen Rezepts: In Ordnung, lassen Sie uns mit dem Minecraft-Kurs fortfahren. Und in diesem Vortrag werden wir tatsächlich neue Rezepte erstellen, oder? Also werden wir unsere eigenen Rezepte erstellen. Und sie können sein, was wir wollen, was auch immer Sie sich vorstellen können. Aber zuerst müssen
wir ein paar neue Ordner erstellen. Und der erste Ordner ist innerhalb des Ressourcenordners, wir müssen ein Verzeichnis hinzufügen, das mir Daten nennen wird. Und dann, in diesem Verzeichnis, erstellen
wir tatsächlich wieder das MC-Kursverzeichnis. Dies ist also im Grunde der Name Ihrer Mod-ID. Also die AID. Und im Inneren haben wir ein Rezept,
Rezepte, Rezepte, so Pluralordner. Und drinnen geht E, geht die Rezepte. Nehmen wir zum Beispiel an, wir wollen ein Rezept für den Kupferblock erstellen, oder? Kupfer blog.js Jason. Und im Grunde, wie es der Weg ist, auf diese
Weise, das ist strukturiert, ist im Grunde mit der Art des Rezepts. Also in diesem Fall wird dies eine geformte Rezepte sein, so Crafting geformt. Und dann müssen wir ein Muster angeben. Jetzt sieht dieses Muster so aus. Nein, es sind eigentlich diese Klammern. Und dann ist dieses Muster im Grunde drei Saiten. Und Sie wollen sie normalerweise so schreiben,
denn dann wird es leichter vorstellbar. Und dann werden wir tatsächlich ein Muster haben. wir also XXX, XXX, XXX. Und das ist im Grunde dein Basteltisch, oder? Das ist also die erste Reihe, zweite Reihe, dritte Reihe. Und wenn wir dann
zum Beispiel diesen leer lassen, zum Beispiel diesen leer lassen, dann würde das bedeuten, dass der mittlere Teil der Mitte des, des Handwerkes, der Tisch tatsächlich leer ist. An diesem Punkt. Wir werden tatsächlich XXX überall machen. Und jetzt müssen wir eigentlich angeben, was das ist. Also müssen wir tatsächlich einen Schlüssel angeben, wieder hier mit geschweiften Klammern. Und dann wollen wir angeben, okay, was ist X, o, was ist x? Und x ist ein Gegenstand. Und in unserem Fall ist das mc-Kurs. Schlimmer. Trichterbarren, richtig? Denn das macht eigentlich Sinn, dass neun Kupferbarren einen Kupferblock bilden. Aber wo geben wir den Kupferblock an? Wir werden, wir werden das im Ergebnis hier unten angeben. Und das wird ein weiterer Gegenstand sein. Und das wird Mc sein, schlimmer. Dies ist also wieder unsere MOD ID und dann der Name dieses Artikels. Und das hat es schon. Wenn es darum geht, ein geformtes Rezept zu erstellen. Wir werden uns das ansehen. Wir werden auch einen Blick auf das formlose Rezept werfen. Also werden wir eine neue Datei erstellen und das wird der Kupferbarren-Punkt-JSON sein. Also im Grunde das, genau umgekehrt. Also hier geben wir tatsächlich, wieder ein Typ und das wird Minecraft Rafting sein, formlos diesmal. Und dann können wir Gruppe angeben, aber wir müssen es nicht, also werden wir das jetzt einfach leer halten. Und dann hat es tatsächlich in Zutaten gezogen. Und hier drin haben wir so etwas. Und jetzt weiß ich nicht, Nueve hat es so seltsam formatiert, aber OK. Und dann werden sie Gegenstände darin haben. Also Artikel und dann MC, Kurs, Kupferblock. Ein weiterer Grund, warum wir wollen, dass dies formlos ist, ist im Grunde weil wir wollen, dass es in der Lage sein, es überall in den Handwerkstisch zu setzen. In einem vier mal vier, in einem drei mal drei, was auch immer ein Handwerkstisch wir haben und es immer noch haben, geben Sie das zurück. Und das wird ein Ergebnis
des Artikels MC natürlich Kupfer darin sein, richtig? Und dann können wir tatsächlich angeben, wie viele. Also können wir die Zahl neun in diesem Fall angeben, oder? Weil wir eine Neun brauchen, um ein paar Block zu bauen. Und dann können wir neun gebrauchen. Und dann benutzen wir einen Kupferblock, um die Neun zurückzubekommen. So können Sie übrigens
jedes Mal, wenn Sie ein Ergebnis machen, können
Sie es auch so tun. Also könntest du theoretisch sagen, zehn zählen und du würdest zehn Kupferblöcke daraus bekommen. Natürlich ergibt das nicht viel Sinn. Das sollte also funktionieren. Nun, völlig in Ordnung. Versuchen wir es. Lass uns laufen und wir werden uns in der Mikrowelle sehen, sobald es geladen ist. So ja. In Ordnung. Jetzt sind wir in Minecraft und ich habe bereits
einen Handwerkstisch aufgestellt und wir werden sehen, ob das funktioniert hat. Wenn wir das auffüllen, können
Sie tatsächlich einen Kupferblock machen. Und wir können auch den Deckelblock reinlegen und die neun Barren rausholen. Und das ist übrigens auch hier hinzugefügt. Das funktioniert also völlig gut. Und das formlose bedeutet tatsächlich, dass wir es, wie ich schon sagte, überall hineinbringen können, wo wir wollen. Und wir können auch, wenn wir in nein, sorry. Auf diese Weise, wenn wir auf Überleben sind, und wir können es
hier reinlegen und auch die neun Stücke rausbekommen, kein Problem. Also ja, so können Sie im Grunde neue Rezepte erstellen. Und wieder einmal, danach, gibt es eine sehr kurze Aufgabe, die nicht so
kompliziert sein sollte , wo man tatsächlich zwei eigene Rezepte erstellen muss. Wie ich schon sagte, es sollte nicht so verrückt oder schwierig sein. Und ja.
46. (Minecraft) Drops mit Loot: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir über Beute Tische sprechen und was passiert, wenn Blöcke zerstört werden und sie Gegenstände fallen sollen. In unseren Scheinblöcken haben
wir jetzt zwei Blöcke, den Kupferblock und den Kupfer oder Block. Und was wir im Grunde schaffen wollen, ist Art System, wo, wenn wir den Kupferblock,
das Kupfer oder den Block brechen , dann fällt es tatsächlich das Element. Nun, wie wir das machen, ist mit Beute Tabellen, und das ist eigentlich nicht so schwer. Wir werden hier einen neuen Ordner unter Daten MC-Kerne erstellen. Und dieser Ordner, dieses Verzeichnis wird als Loot-Unterstreichungstabellen bezeichnet werden. Und dann innerhalb dieses Verzeichnisses, werden
wir ein anderes Verzeichnis erstellen, und das wird Blöcke genannt werden. Und im Inneren werden wir eine neue Datei erstellen, und das wird Kupferunterstrich oder so sein. Wieder mal, unser Name hier, Jason. Und ich werde schnell über etwas kopieren, das bereits vorbereitet haben, und dann werden wir schnell darüber reden. Also das erste, was wir als im Grunde den Typ angeben, den wir zurückgeben möchten. Und dann müssen wir eine Art oder vielmehr den Typ erstellen, sozusagen Beute Tisch gewesen
ist. Also zerstören wir einen Block, richtig? Und dann geben wir etwas anderes zurück. Jetzt. Dann müssen wir einen Pool angeben. Und dieser Pool ist im Grunde, in gewissem Sinne, wir rollen, in diesem Fall einmal. Und dann können Sie, zum Beispiel, ein Ort bestimmte trans, um etwas fallen lassen zu lassen. Und in diesem Fall werden wir nur 1s rollen und wir werden sagen, was
auch immer passiert, es wird immer einen Kupfer- oder Artikeltyp fallen lassen, richtig? Also hier geben wir an, hey Artikel. Das ist also ein Gegenstand, Kupferkrieg. Das ist im Grunde die Magie, die gerade jetzt aus dem Block fällt. Wir schauen uns das nur eine Sekunde an und ich werde sehen, was das bringt. Das wird mit dem Mikroskop beginnen. Und hier sind wir in unserer Welt. Nun, lasst uns tatsächlich in den Kreativmodus wechseln und uns ein paar Kupferblock gekoppelt oder Blöcke geben. Und auch ein nettes Schwein Acts bekommen, mit denen wir das abbauen können. Also lasst uns einfach diese Schlösser auflegen und dann tatsächlich wieder in den Überlebensmodus wechseln, nein, Überlebensmodus, ein Ego. Und dann können wir gedankenlos und setzen alle 0s oder tatsächlich Tropfen vergleichbar oder Blöcke. Damit wir das einfach ausmachen können. Und da gehen wir hin. Jetzt mit den Kupferblöcken selbst fallen
sie nichts ab, weil ihnen keine LU-Tabelle zugeordnet ist. Und das ist auch etwas, das als Auftrag getan werden soll. Es ist eine sehr, sehr kleine Aufgabe. Es ändert im Grunde nur eine Variable in der JSON-Datei und fügt das hinzu. Ich werde aber auch hinzufügen. Das ist sehr wichtig. Jedesmal. Lassen Sie mich das einfach schnell schließen. Jedes Mal, wenn wir ein neues Element in den MOD-Blöcken oder einen neuen Block in der Block-Klasse hinzufügen. In der Zukunft. Ich werde nicht angeben, wie ich nicht spezifizieren werde, wie eine neue Lu-Tabelle hinzufügen. Ich werde einfach zulassen, dass dies im Grunde zwischen Vorlesungen ist. Denn für unsere Zwecke sind
die LU-Tabellen für die Blöcke nicht so schwierig. Und es besteht im Grunde nur darin, die Datei zu kopieren wie im Grunde nur der Name zu
ändern. Und dann war's das. Deshalb jedes Mal, wenn wir einen anderen Block hinzufügen, werde ich nicht aufzeichnen, warum ich die LU-Tabelle hinzufüge. Ich werde vielleicht schnell sagen, dass Sie diesen neuen Tisch selbst hinzufügen müssen. Wie auch immer ich werde. Wenn Sie die Änderungen herunterladen
, so dass Sie, wenn Sie sich die Änderungen für jede der Vorlesungen ansehen
können, tatsächlich sehen können, dass ich die LU-Tabellen für alle Blöcke bereitgestellt habe. Allerdings werde ich nicht speziell aufgenommen, weil ich nicht das
Gefühl habe, dass das irgendeinen Wert daraus bekommen wird. Sehen Sie, wie ich etwas kopieren und einfügen, und ändern Sie dann einen Namen. Scheint nicht so eine große Sache zu sein, oder? Ja, das ist im Grunde alles, was es gibt, jetzt
einen Loo-Tisch hinzuzufügen und einen Block-Drop hinzuzufügen. So ja.
47. (Minecraft) Erstellen eines neuen Food: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir unsere eigenen Lebensmittel erstellen. Um dies zu tun, werden wir eine neue Klasse innerhalb unseres Artikelpakets erstellen. Und das wird eine neue Java-Klasse gekühlt Kupfer Apple sein. Das ist das Beste, was ich mir ausgedacht habe, wenn ich absolut ehrlich damit bin. Und das wird Artikel erweitern. Und dann werden wir hier einen neuen Konstruktor erstellen, der nichts darin hat. Und wir werden einfach zurückgeben unsere eigentlich wir werden super tun, ist sogar, noch besser. Und im Inneren von hier werden wir neue Eigenschaften machen. Dies sind also im Grunde die gleichen Artikeleigenschaften, die wir in unseren Mod-Artikeln genau hier gemacht haben. Aber wir werden es einfach hier machen, weil wir auch noch ein paar andere Dinge spezifizieren wollen. Denn das ist, naja, dies wird als Lebensmittelartikel betrachtet werden und deshalb wollen
wir dieses Jahr tatsächlich tun. Also werden wir zuerst etwas tun, wie wir eine Punktgruppe machen, keine Gruppe. Und das wird einfach Mc-Kurs sein, Kurs-Tab wieder. Und jetzt wollen wir die Lebensmitteleigentum hier hinzufügen. Im Inneren von hier werden wir einen neuen Food-Data Builder erstellen. Und es gibt Lebensmittel bauen sind im Grunde erlaubt es Ihnen zusammen eine Reihe von Eigenschaften als auch. Es ist das gleiche mit Eigenschaften, aber in diesem Fall wollen
wir tatsächlich Lebensmitteleigenschaften schaffen. So zum Beispiel, vielleicht Hunger fünf. Und dann lasst uns einfach ein bisschen anders formatieren. Da gehst du. Und dann werden wir Sättigung 1.5 tun. Und dann machen wir einen Effekt. Das wird also interessant sein. Der Effekt ist im Grunde jeder Trank Effekt, den wir in
jedem Trank Effekt setzen können , für den wir einen Lieferanten einer,
einer Effektinstanz benötigen . Also machen wir einfach eine neue Effektinstanz. Anstatt hier, denke ich, dass Blasen das Beste sein könnte. Dies ist die Dauer und dies ist der Verstärker. Also machen wir einfach einen. Wir werden ein wenig hinauszoomen und wahrscheinlich ein bisschen klein sein, aber hoffentlich noch lesbar. Und dann nach der Effekt-Instanz, hier werden wir erstellen, werden
wir in einer Float-Wahrscheinlichkeit schreiben. Und dann nach dem Effekt Ente abgerechnet, werde
ich auch die nächste Zeile setzen. Und dann so nah, und das war's. Da gehen wir. Corporate Apple. Das ist im Grunde alles, was wir tun mussten, damit dies ein Nahrungsmittel ist. Selbstverständlich müssen wir dies auch in unserer Mod Items Klasse registrieren. Also machen wir endgültig,
statisch, endgültig als Register, Registry-Objekt, Sie kennen das Drill-Element. Und das wird der Kupferapfel sein. Und das wird Registrierung Punkt Artikel, DOT Register sein. Und jetzt machen wir das Kupfer,
Kupfer , Kupfer bei Apple. Und dann ist das, anstatt einen neuen Artikel zurückzugeben, werden
wir tatsächlich eine neue Firma Apple zurückgeben, und das war's. Also werden wir eigentlich nichts weitergeben, weil wir das hier bereits getan haben. Nun, was wir tun könnten, ist, dass wir dem
Konstruktor auch einen Eigenschaftenumfang geben und ihn dann übergeben und es dann so machen könnten . Ich muss ehrlich sein, das funktioniert auch ganz gut. Sie können es jedoch ändern, wenn Sie möchten oder Sie können auch ein wenig experimentieren. Das ist auch etwas, was ich zu erwähnen habe, ist äußerst wichtig. Ich experimentiere nur mit ein paar Dingen. Wenn du denkst warum, warum wird das so gemacht? Dann versuchen Sie es vielleicht anders und vielleicht wird es funktionieren oder vielleicht
wird es einen Pfeil werfen, der Ihnen dann hoffentlich sagt, warum. Vielleicht hat der Ansatz, an den du gedacht hast, nicht
funktioniert, oder vielleicht musst du etwas ändern. Es ist sehr wichtig, von Zeit zu Zeit einfach zu experimentieren. Ok? Aber es gibt natürlich noch ein paar andere Dinge, die wir hinzufügen müssen. Also müssen wir
natürlich unsere schöne Textur hinzufügen . Also werden wir Textur hinzufügen, aber hier werden wir diese schnell kopieren. Jep. Und dann werden wir auch den JSON für das Modell hinzufügen. Das wird eine neue Akte. Dies wird der kupferne Apfelpunkt JSON sein. Und dann werde ich das schnell kopieren, weil wir das jetzt ein paar Mal gesehen haben. Sieht aus, es sollte keine Überraschung sein. Und dann müssen wir, und dann müssen wir das hier hinzufügen. Und das werden wir tatsächlich tun. Und dann habe ich das hier. Item.name punktet Kupfer. Apple wird kopiert werden. Apfel. Richtig? Jetzt. Wir könnten das Rezept auch sofort hinzufügen, aber das brauchen wir jetzt nicht. Lassen Sie uns zunächst Minecraft starten und sehen, was wir da drin haben. Und als weitere Anmerkung für dieses Experiment, oder wirklich, ich denke wirklich, das ist eine wichtige Sache zu tun. Nun, Minecraft fängt hier an. Ich werde das nur erwähnen. Experimentieren Sie einfach ein bisschen. Ich denke, es ist gut, wenn du den Kurs einmal durchgehst, was für ein Experiment. Und es gibt noch ein paar andere Vorträge, in denen ich darüber ein wenig sprechen werde, in ein bisschen detaillierter, besonders am Ende. Aber das Experimentieren, das ist wie du wirklich magst, hat
wirklich die absoluten Ins und Outs am Ende gelernt. Weil es manchmal
spezielle Dinge gibt , die du tun willst, die hier nicht behandelt werden. Und sie werden Corporate Apfel gehen. Und jetzt, was wir tun können, können wir tatsächlich, gehen
wir zurück zum Überleben, dann essen wir eins. Wir können es wirklich essen. Und das liegt wahrscheinlich daran, dass wir keinen Hunger haben. Also lasst uns eigentlich einfach sein. Sonst wirst du uns nicht ein bisschen aufbauen, etwas Schaden
nehmen und dann, und dann mal sehen. Alles klar, das sollte, irgendwann in unserem Hunger. Geht. Da gehen wir. Ok. Und was können wir jetzt tun? Wenn wir das taten? Jetzt haben wir tatsächlich nicht die 50% Chance bekommen, denn es ist nur eine 50% ige Chance, den glühenden Effekt zu erreichen. Es ist sehr, sehr wichtig, denn das haben wir angegeben. Ich werde das noch einmal zeigen. Und wir haben es tatsächlich bekommen. Und hoffen wir, dass wir es bekommen. Mal sehen, da gehen wir. Jetzt glühen. Ist das nicht großartig? Schön, richtig? So ist es im Grunde, wie Sie ein Lebensmittel hinzufügen. Jetzt möchte ich eigentlich schnell zurück, weil wir, das war in der Firma Apple und das ist genau hier. Schreiben Sie die Wahrscheinlichkeit gleich nach unten. Dies wirkt sich also auf Instanz aus. Und es ist, also ist es tatsächlich der Effekt selbst. Wir müssen eigentlich eine Wahrscheinlichkeit angeben. Jetzt sind das 50%, oder? 0,5 war nur 50%. Wenn wir einen einlegen, dann wird es die ganze Zeit feuern. Jetzt, wie ich schon sagte, habe ich 50% eingelegt. Wir könnten uns zum Beispiel
vorstellen, dass dies jemand sein könnte, der konfigurierbar ist, oder? Wir haben also eine Konfigurationsdatei, über
die wir auch in einem späteren Vortrag sprechen werden. Und wir könnten dann vielleicht sagen, naja, standardmäßig wären es 50%, aber vielleicht will jemand es. Hey, ich wollte eigentlich 100% der Zeit. Ich möchte den glühenden Effekt haben, wenn man ihn isst. Das wird also interessant sein. Und das ist im Grunde, wie Sie ein Lebensmittel hinzufügen. Es ist nicht so anders, als nur ein normales Element hinzuzufügen. In diesem Fall fügen Sie nur diese Lebensmitteleigenschaft zum Artikel hinzu. Und ja.
48. (Minecraft) Erstellen eines neuen Tools: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir unsere eigenen Werkzeuge erstellen. Das wird also definitiv interessant sein. Und es wird auch ein bisschen mühsam sein, weil wir im Grunde eine sehr ähnliche Sache fünfmal machen werden. Ich werde jedoch eine Schaufel,
ein Schwert, Spitzhacke, Ho
und eine Axt erschaffen ein Schwert, Spitzhacke, Ho . Alles in diesem Vortrag. Und nun, ich schätze, wir fangen einfach an. Also in den Schlamm-Elementen werden wir ein notheres Registry-Objekt erstellen. Also ein öffentliches statisches, endgültiges Registrierungsobjekt vom Typ Element. Und der erste, den wir gerade versuchen werden, wird in diesem Fall die Kupferschaufel sein. Also und das wird Registrierung Punkt Elemente registrieren und dann geben Sie ihm den Namen Kupfer Unterstrich Schaufel. Und das wird in diesem Fall ein neuer Schaufelartikel sein. Nun, wir müssen ihm tatsächlich eine Artikelstufe liefern. Und bevor wir damit fortfahren können, müssen
wir tatsächlich eine neue Artikelkategorie für unseren Modus hinzufügen, da dies keinen Sinn ergibt. Also, was wir tun könnten, kann ich Ihnen zeigen, damit wir Artikel Tier machen können. Und dann haben wir Woodstock noch ein Schreiben, Eisen, Gold und Diamant. Aber das vielleicht, weißt du, wir wollen unsere ganz eigenen Gegenstände hier, weil, nun,
ich meine, warum wir uns mit den anderen Sachen befassen können, die wir komplett von Grund auf neu
erschaffen können , unser eigenes Ding. Also werden wir das in unseren Kartenelementen ganz unten
unter der Registerfunktion tun. Wir werden eine öffentliche Aufzählung erstellen, und das wird hier als „Mart Item“ bezeichnet. Und das wird die sehr schöne Schnittstelle von Elementen hier implementieren. Und dann werden wir Methoden implementieren. Nun, das sind die Methoden, die wir implementieren werden. sind auch die verschiedenen Dinge, die wir spezifizieren müssen. Das ist im Grunde das erste, was wir
in dieser Klasse machen werden, ist, dass wir Kupfer bekommen. Das ist also im Grunde das Enumkupfer. Und dann werden wir auch angeben, welche Art von Rückgabewerten es für jede dieser verschiedenen Variablen hat, die wir jetzt erstellen werden. Also wird das private letzte int Ernteniveau sein, richtig? Das ist also im Grunde das, was du am Ende meinst. Dann erstellen Sie eine private endgültige int max. Verwendungen. So oft können Sie es verwenden. Also die, also im Grunde die Haltbarkeit des, des Werkzeugs. Und du wirst einen letzten Schwimmer haben. Wirkungsgrad. Dies ist im Grunde der Geschwindigkeitsmodifikator. Wie schnell wir etwas dagegen haben können. Der Angriffsschaden wird,
naja, der Angriffsschaden lustig genug sein. Und dann haben wir eine Int, die Incheon Lehrbarkeit ist. Das ist nur, wie gut eine Übertragung Sie dort setzen können. Und dann werden wir einen Gradienten haben, der repariert werden wird. Ein Reparaturmaterial, eigentlich Material. Und das ist, das gibt an, welche Art von Material wir
verwenden können , um diese Arten von Gegenständen zu reparieren oder diese ja, dieses Element. Also bekommen wir hier ein paar Pfeile. Keine Sorge, was wir tun können, ist, dass wir jetzt, nachdem wir alle angegeben haben, können
Sie tatsächlich mit dem Mauszeiger über sie bewegen und sagen Konstruktorparameter hinzufügen. Und jetzt können wir einfach alle auswählen. So können wir einfach eine oder Shift auswählen und dann die andere auswählen, rechts, wie diese und dass es wird, um alle von ihnen auszuwählen. Dann werden wir sagen, okay, und das ist alles in Ordnung. Sag einfach Refactor. Und jetzt haben wir hier tatsächlich einen neuen Konstruktor erstellt, der bereits alles darin hat, was wirklich gut ist. Und jetzt müssen
wir hier natürlich ein paar Dinge angeben, aber das ist keine Sorge. Das ist also das Erste. Also vielleicht Ernteniveau, wir werden zwei machen. Max verwendet eine 150. Ich werde nur ein paar Zahlen eingeben. Die Liste wird Mangel an 0,5 sein. Wir werden selbst keinen Angriffsschaden haben. Und die Interpretierbarkeit wird wie eine 15 sein, also nicht zu schlecht. Und dann schaffen wir eine neue Zutat, entschuldigen Sie mich, das Ego. Dies wird Zutat sein und dies wird von Stapel, neuen Gegenständen Stapel sein. Und dann wird dies die Mod-Elemente liefern beginnen Abdeckung, weil Tasse und dann Punkt GET sehr wichtig. Nur um einen Item-Stack zu erstellen, müssen
wir in diesem Fall tatsächlich einen Item-Anbieter haben. Und dies geschieht mit der get-Methode hier auf unserem Artikel. Ja, das ist im Grunde müssen wir tun, um Kupfer zu spezifizieren. Nun, zum Beispiel, wenn wir ein, Hoppla, wenn wir eine vielleicht andere in einer Zukunft haben, wollen wir
vielleicht hinzufügen, wissen Sie, Aluminium ALU Minium. Nun, das wird ein paar Leute aufreißen, Aluminium oder Aluminium. Und dann können wir zum Beispiel etwas Neues, sehr Wichtiges
haben. Dann geben wir diesen nicht mit einem Semikolon ein, sondern mit einem Komma. Weil dies im Grunde immer noch eine Enumeration ist. Das ist nur, weißt du, als Nebennotiz im Grunde. Aber ja, im Moment werden wir es bei Kupfer behalten. Und jetzt müssen wir diese Variablen auch hier zurückgeben. Also können wir tatsächlich die Erntestufe zurückgeben, dann Effizienz zurückgeben, den Angriff zurückgeben, Schaden, das Ernteniveau, die Zauberfähigkeit, und genau hier dann das Reparaturmaterial, richtig? Und das ist alles, was wir für unser Motto hier tun müssen. Wie ich schon sagte, Sie können so viele Jahre hinzufügen, wie Sie wollen. Wissen Sie, Sie können Kupfer hinzufügen und dann vielleicht Zink und Aluminium und alle möglichen anderen Dinge, die Sie hinzufügen möchten. In diesem Tutorial werden wir nur Orangen Vortrag hinzufügen. Insbesondere werden wir nur COP hinzufügen. Ok? Also lasst uns dann wieder hierher gehen und dann tatsächlich Mod Item Tier Dot Kupfer sagen. Und das ist die Schönheit dessen, was wir getan haben. Anstatt das Eisen oder andere Dinge benutzen zu müssen, können
wir unser eigenes benutzen. Nun, also werden wir 00 dafür tun und dann gehen
wir schnell zu neuen Elementeigenschaften? Nein, definitiv nicht, dass ich nicht weiß, was er hier macht. item.name, Eigenschaften, bitte. Danke. Und das wird dieses Ja sein, eigentlich, ja. Default-Macs Schaden wird ein 150 sein. Und dann werden wir einen Werkzeugtyp hinzufügen. Das ist Lake. Das Wichtigste, was es gibt, ist natürlich ein Werkzeugtyp Dot Schaufel, und das Niveau wird zwei sein. Und dann fügen wir am Ende eine Gruppe hinzu. Und das wird unsere, natürlich, unsere eigene Registerkarte sein. Und das ist schon ID. Nun, dieser Angriffsschaden mit diesem Geschwindigkeitsmodifikator oder im Grunde nur, du weißt schon, wie schnell du etwas treffen kannst und wie viel Schaden es anrichtet. Ich würde sagen, dass eine Schaufel in diesem Fall nicht so viel Schaden anrichtet. Und wir werden die Schaufel fertigstellen und danach die anderen hinzufügen. Also nur, dass wir das getan haben. Um die Schaufel hinzuzufügen, müssen
wir das natürlich auch hier drinnen tun. Okay, also wissen wir eigentlich, dass das unter dem Punkt steht, aber ich werde das von der Hauptgruppe abbrechen, weil das wie ein besonderer Gegenstand ist. Nehmen wir an, das wird die Kupferschaufel sein, und das wird die Kupferschaufelrate sein. Und dann innerhalb unserer Artikel Modelle, müssen
wir natürlich auch das haben. Also die Kupfer-Unterstrich Schaufel db.json. Und das wird so etwas aussehen. Nur eine kurze Sekunde, dass wir dort gehen. Das ist es, richtig? Wie Sie bereits gesehen haben, wurde dieses Element generiert. Und dann in der Schicht 0, wir werden nur m Scores Artikel, Flash, Kupferschaufel haben. Und dann müssen wir natürlich auch die Textur liefern. Das werden wir tun. Ich werde dieses einfach über 2p schnell kopieren. Und ja, natürlich. Und dann haben wir auch die Kupferschaufel drin. Und dann sollte die Schaufel selbst bereits perfekt funktionieren. Mal sehen. Und mal sehen, was das ist. Jetzt. Das große Ding war definitiv die Mock-Stufe, die das erledigt hat. Und dann kopieren die anderen im Grunde ein wenig den gleichen Code, den wir bereits haben, oder? Wir erstellen nur verschiedene Arten von Objekten. Also werden wir einen Schwert-Gegenstand, Streikposten und so weiter erschaffen. Das ist also alles, was dort wirklich gebraucht wird. Mal sehen, was hier passiert, wenn wir hier reingehen. also zunächst Wechseln Siealso zunächstin den Kreativmodus. Und mal sehen. Aha, da ist es. Also haben wir das tatsächlich. Das war nicht Oh, habe ich einen Artikel anstelle von Artikel gesetzt? Artikel MCQs, Kupferschaufel Nun, ich habe mich am Ende vergessen, also ist das der Grund, warum das nicht funktioniert, aber das ist okay. Mal sehen und sehen, ob wir mit uns etwas Dreck ausmachen können. Und ja, das können wir. Definitiv viel schneller als es nicht viel schneller ist, aber es ist ein bisschen Foster. Und lass uns Sand sehen. Ja. Schleifmaschinen definitiv schneller als mit einer Hand. Und wir können auch sehen, dass dies einen Angriffsschaden von 100 in Technikgeschwindigkeit von vier hat. Also eigentlich ist das Lehrbuch ziemlich hoch. Alles in Betracht gezogen. Okay, also, aber es ist nicht sehr effektiv
als Werkzeug, um Menschen zu töten. Menschen töten. Ich meine, in diesem Fall andere Minecraft-Spieler oder Mobs zu töten, aber ja, aber es ist, es funktioniert. Also können wir das tatsächlich nutzen, um Gegenstände zu verminen. Und wie Sie sehen können, hat es auch eine Haltbarkeit. Das wird also brechen, wie die anderen auch werden. Aber was wir auch tun können, ist, dass wir uns
zum Beispiel schnell ansehen können, wenn wir wissen, dass das nicht das ist, was ich will. Eigentlich wollte ich einen Amboss. Entschuldigung. Das wollte ich einen Amboss. Und ich werde tun, ist, dass wir uns das ansehen können, wir können es hier reinlegen. Und wenn wir dann unsere Kupferbarren reinlegen, können
wir das reparieren. Dies ist im Grunde, was wir mit der Zutat dort angegeben. Und das ist, das funktioniert auch perfekt. Das ist also ziemlich gut. Wir werden das retten und dann das Spiel hier beenden. Zunächst einmal werden wir das in Ordnung bringen ,
weil es nur peinlich ist. Ja. Und dann ist der Rest im Grunde ein wenig Kopieren und Einfügen. Also werden wir das einfach zusammen durchmachen, weil, warum nicht? Und dann haben wir ein Trichterschwert. Das wird ein Gegenstand sein. Und dann müssen Sie tatsächlich angeben, gut vielleicht es hier. Und das ist übrigens kein Float über eine,
eine Ganzzahl, weil die kurze viel mehr Schaden anrichtet. Und dann muss dieser sehr wichtige getan werden. Eigentlich benötigen wir keinen Werkzeugtyp für die Quelle, da die Quelle derjenige ist, der keinen Werkzeugtyp hat. Und dann haben wir eine Kupferpick Axt. Richtig? Wie ich schon sagte, ist, es ist ein wenig Kopieren und Einfügen. In diesem Fall fügen wir eine ganze Reihe von Werkzeugen hinzu, und dies ist ein Spitzhacke Artikel. Dieser ist auch eine Ganzzahl für den Angriff. Und dann werden wir eine erstellen, wie wäre es mit einem Kupferhalter? Und ich meine das Werkzeug, bitte halten Sie es hier PG. Und das wird ein Kupferloch sein. Und das ist ein Oh, Artikel. Diese, wie Sie sehen können, sind
einige der Dinge nicht lokalisiert, aber das spielt keine Rolle, weil wir tatsächlich wissen, was das auf den anderen Dingen
basiert , die wir bereits erstellt haben. Also die anderen Konstruktoren, und das ist dann die Kupfer-Axt. Und Kupfer-Axt. Whoops. Wie wäre es mit einem Kupfer axonal 6EI? Wir sind nicht Elon Musks Kind, tut mir leid. Wirkt Gegenstand. Da gehen wir. Und dann ist das auch eine Axt. Sehr gut gemacht. Ok. Ja, also sind das im Grunde die Artikelregistrierungen erledigt. Jetzt müssen wir natürlich auch die Modelle haben. Ich werde diese einfach kopieren und
sie schnell zeigen , weil das viel einfacher ist. Natürlich werden diese Dateien alle dort zur Verfügung gestellt, wo dies das Kupfer-X ist, es ist alles gleich hier. Alle Dateien werden wie immer in bereitgestellt, eigentlich im ersten Download, jede Vorlesung wurde dort ebenfalls zur Verfügung gestellt. Also lasst uns eigentlich auch die Texturen machen. Und dann müssen wir das noch hinzufügen. Und ich werde das auch kopieren, weil noch einmal, nur Mich zu tippen, wie ich das austippe, wahrscheinlich niemandem wirklich hilft. Ok, jetzt sind die hier drin. Wir haben die Modelle Artikel gemacht. Wir haben sie in der EN uns lokalisiert. Wir haben alle registriert. Vielleicht fügen Sie einfach diese auch hinzu. Sagen Sie vielleicht so etwas wie die Taten. Ein bisschen mehr Schaden hier, aber ein wenig weniger Geschwindigkeit, vielleicht wie minus drei oder so so, dass es ein wenig langsamer ist,
was normalerweise ist, wie die Mikrorisse funktionieren, glaube ich. Und dann sehen wir, was wir sehen können, wenn wir tatsächlich reingehen und diese Gegenstände bekommen. Nun, natürlich, diese Artikel haben zu diesem Zeitpunkt keine Rezepte. Ich denke natürlich, dass die Rezepte
in unserem Fall nicht so wichtig sind , weil sie nicht sein sollten , dass es schwer ist, auf Macht zu implementieren. Zeig dir gerade einen von ihnen. Nachdem wir gezeigt haben, dass der Rest funktioniert. Also mal sehen, lasst uns diese Dinger loswerden. Behalten Sie das tatsächlich. Und dann schauen wir mal, was wir haben. Wir haben ein Schwert. Das ist ziemlich gut. Wir haben eine, eine Axt, wir haben eine Pick-Axt, und wir haben eine ganze. Mal sehen, ob wir festhalten können. Wir können, das ist wirklich gut. Und auch die Zeit eingestellt. Sie bitte. Danke. Und wir werden sehen, dass dieser funktioniert. Nun, natürlich funktioniert das, weil ich Angst vor Modus habe. Da gehen wir. Okay, ja, das hier funktioniert auch, damit wir den Boden erzählen können. Mal sehen. Wir können tatsächlich erraten, dass es nicht sehr schnell ist, aber vielleicht wollen wir eigentlich nicht, dass das Kupfer sehr schnell ist. Wir können damit auch meine, weil es nicht sehr schnell ist. Ich würde, ich denke, es ist ein bisschen schneller als Stein, aber langsamer als Eisen, glaube ich. Und dann nehmen wir auch das Schwert und töten einfach schnell das Schwein da drüben. Richtig? Und natürlich, was wir tun können, ist, dass wir hier immer die Unterschiede angeben können. Nun, wir können uns das auch ansehen. Also lasst uns schnell wie vielleicht, ich meine, vielleicht nicht Nether, oder? Vielleicht wie ein Ionenschwert. Und dann vielleicht auch eine Spitzhacke, nur als Beispiel. Also hat das anthropische X tatsächlich viel mehr,
viel weniger Steuergeschwindigkeiten, richtig? Die technische Geschwindigkeit hier ist also definitiv viel zu hoch und ein bisschen mehr beschädigt. Und dann eine Sechs, direkt in unserem Lehrbuch gibt es auch viel zu hoch. Aber noch einmal, vielleicht ist das etwas Besonderes für die Kupferstücke, richtig? Dass sie wie die verrückte Angriffsgeschwindigkeit des Ofens sind, richtig? Aber sie haben vielleicht nicht so hoch von einem, von einem. Du weißt schon, Haltbarkeit und auch des Angriffsschadens vielleicht, richtig, so dass man mit ihnen wie wirklich schnell angreifen kann, aber man kann nicht wirklich so viel Schaden mit ihnen anrichten. Und dann schauen wir uns einfach schnell ein Rezept an, oder? Also werden wir einfach einen von denen kopieren, um
schnell rühren zu können, nur um c zu kontrollieren
und V zu kontrollieren, und dann werden wir das ändern, sagen
wir, das Kupfer wirkt um des Streits willen. Und dann ist das natürlich, die Form war eine, die
nicht das Klügste war , um den Block hier zu nehmen. Also lasst uns den Blog nehmen und dann sagen wir C, C, C. Und dann haben wir diesen. Ja. Das, dann wird x Minecraft sein und das wird Stick sein. Wenn ich es selbst sage. Ich glaube, es ist, lassen Sie mich einfach schnell überprüfen, weil ich am Ende ja, natürlich ist es das Ich meine, was dachte ich? Natürlich klebt es. Was wäre sonst noch kalt, außer vielleicht Sticks, oder? Das ist, das war meine Schuld. MC-Kerne und Alice werden es abdecken. Und natürlich würden wir das so machen. Tun Sie das natürlich auch. Das würde auch funktionieren. Wenn Sie es so machen, wird auch die andere Seite dort bereits getan haben. Also lass uns das einfach schnell machen und mal sehen, ob das tatsächlich funktioniert hat. Und dann, dann denke ich, wir werden tatsächlich mit diesem Vortrag fertig sein, ja, mit dem Hinzufügen der Elemente. Es ist, wie ich schon sagte, ein bisschen, weißt
du, ich sage Grunt-Arbeit. Sie müssen eine Menge Sachen eingeben und Sie müssen eine Menge Dateien kopieren. Jetzt stelle ich alles zur Verfügung und
natürlich als Ressource, also wird das kein Problem sein. Ich hoffe. Lasst uns wieder hierher gehen. Und mal sehen. Also gib mir auch ein paar Stöcke. Stöcke und Steine können meine Knochen verkupfen. Und mal sehen, ob das funktioniert hat. Und nun, das ist urkomisch, nicht wahr? Was haben wir vergessen? Natürlich ist das Einzige, was wir sind, dass wir in der Kupferachse vergessen haben um das Ergebnis zu haben, die Kupfer-Axt. Also, da gehst du hin. Ja. Aber das ist natürlich nicht so groß. Wir haben tatsächlich gesehen, dass die, dieses Rezept funktionierte. Es gibt nur das falsche Element zurück. Aber das ist okay. Und die insgesamt, das ist im Grunde, wie Sie Werkzeuge zum Spiel hinzufügen. Das erste, was wir getan haben,
war natürlich die Artikelstufe, die sehr wichtig ist. Und das ist auch eine Möglichkeit, im Grunde zu schauen, wie man, wie man, um im Grunde Ihre Gegenstände zerreißen, oder? So ist es möglich, dass Sie Kupfer, wie ich sagte, und dann vielleicht Bronze bekommen, was noch besser ist, und so weiter und so weiter. Also, wenn Sie bereits andere populäre Modi gesehen oder gespielt haben, dann haben Sie definitiv gesehen, wie das funktioniert und dass diese auch sehr interessant sind. Wie auch immer, das war es im Grunde. Und wenn Sie möchten,
können Sie die Rezepte natürlich selbst hinzufügen. Ich werde sie jetzt nicht hinzufügen, weil sie an dieser Stelle trivial sein sollten, um sie hinzuzufügen. Und auch sie sind in diesem Fall so wichtig, weil, wie ich sagte, sie sollten trivial sein, hinzuzufügen. Und wir werden an dieser Stelle sowieso eine Menge Sachen in kreativer Form testen. Also ja, ja, wie ich schon sagte, auch die Texturen und die Jasons hier sind ebenfalls vorhanden. Und ja, das war im Grunde, wie Sie Tools in Microsoft hinzufügen. So ja.
49. (Minecraft) Veranstaltungen in Minecraft: Alles klar, willkommen zurück zum Minecraft-Kurs. In diesem Vortrag werden wir über Ereignisse sprechen. Ereignisse reichen von
einer ganzen Reihe von Dingen, die in Minecraft passieren können, auf die wir tatsächlich, sagen
wir, Zuhörer bekommen können . Dann können wir darauf reagieren und Dinge passieren lassen. Das erste, was wir tun werden, ist, anstelle unseres MC-Kurspakets, werden
wir ein neues Paket erstellen, das wir Ereignisse nennen werden. Und innerhalb dieses Pakets werden
wir eine neue Klasse erstellen. Und wir werden das Motto Ereignisse nennen. Diese Mod-Events-Klasse wird also wirklich
interessant sein , weil wir dort zwei Ereignisse angeben werden. Und das sind Beispiele für Ereignisse. Und dann werden wir über ein paar Dinge reden. Das erste, was wir tun werden, ist, dass es nur eine öffentliche Leere sein wird. Und wir werden diese ungedeckte Schafsklasse nennen. Und jetzt, was wir als Parameter übergeben, wird
das Ereignis sein , das dies im Grunde auslöst. Wenn wir nach unten gehen, können wir sie plötzlich nicht so sehen, aber du kannst so sehen. In diesem Fall tritt
ein Angriffs-Entitätsereignis jedes Mal auf, wenn eine Entität angegriffen wird. Und dann gibt es, wie Sie sehen können, in diesem Fall gibt es kein lebendiges Angriffsereignis. Es gibt, es gibt zahlreiche Arten von Veranstaltungen. In diesem Fall werden wir das Angriffs-Entität-Ereignis verwenden, weil wir wissen wollen, wann etwas angegriffen wird. Und jetzt, wie gehst du damit um? Sagen wir, nun, zuerst müssen
wir das Abonnieren Event zusätzlich hinzufügen. Dies ist so, dass tatsächlich sehen, ob der Tooltip etwas hat. Ja, das ist eigentlich. Im Grunde ist die Idee, dass diese Klasse dann für diese Klasse sein kann und dann diese Methode in dieser Klasse tatsächlich über dieses Ereignis kalt
sein kann , das ausgelöst wird. Das ist eine sehr einfache Erklärung hier. Und was wollen wir also? Nun, aufgedeckt billig, im Grunde haben
wir die Tatsache umgesetzt, dass, wenn Sie ungedeckten Apfel essen, dann werden Sie glühen. Wie wäre es, was wir umsetzen, ist, dass, wenn Sie ein Taka-Schaf mit diesem Apfel mögen, dann bekommen sie auch den glühenden Effekt. Das ist etwas, das interessant sein könnte. Und erinnere dich an die Ereignisse, die
du kannst, ich meine, du kannst im Grunde fast alles tun, was deine Vorstellungskraft erreicht. Sie wissen jedoch, je komplizierter das Ereignis, das Sie einlegen möchten, desto komplexer wird der Code sein, desto komplexer wird es sein, ein komplexerer zu tun. Aber wir werden das einfach durchmachen. Also zuerst wollen
wir das Event bekommen und dort können wir den Spieler tatsächlich bekommen. Und dann bekommen wir Artikel gehalten, Haupt-Hand Punkt GetItems. Schreiben Sie dies einfach wird das Element als Element zurückgeben. Und dann können wir einfach sagen, hey, wenn das gleich dem Punkt des Mod Item com ist oder Apple dot richtig ist. Das fragt also im Grunde nur, Hey, hat der Spieler gerade den Schrankapfel in der Hand hält? Und wenn ja, dann gehen wir rein. Großartig. Das nächste, worüber wir reden wollen
oder wir fragen wollen, ist im Grunde das Ziel. Also, wenn das Ziel am Leben ist, richtig? Dies wäre das billige in diesem Fall. Also greifen wir etwas an und dann die Schafe, das Schaf ist noch am Leben. Das ist großartig. Wir werden dann das Lebewesen hier nutzen müssen. Das wäre also Target. Ziel ist gleich lebender Entität Ereignis Punkt, Ereignis Punkt Ziel. Was hier passiert ist, ist im Grunde, dass ich nur das Ziel, das ist eine, eine Entität in ein Lebewesen, richtig? Und ich rette das, weil wir in diesem Fall das Lebewesen brauchen. Also fragen wir tatsächlich, ob Ziel-Instanz von Schafen Entität. Und das ist im Grunde nur die Frage, OK, ob es dieses Ziel ist, ein Schaf, das ist alles, was diese Frage, weil die Schafe, wie Sie sehen können, tatsächlich erweitert die Tiereinheit und
Tier Entitäten in Frage kommen und seine Kreatureneinheit und das ist Mop-Entität und das ist Lebewesen. Es gibt eine Menge, wie Sie sehen können, eine Menge Vererbung, die hier vor sich geht. Aber im Grunde ist ein Lebewesen auch eine Schaf-Entität oder vielmehr umgekehrt. Ich bin mir jetzt nicht sicher, aber das ist nicht das, was sehr wichtig ist, aber sie sind in Beziehung, in der Vererbung. Und wenn das der Fall ist, dann ist das, was wir jetzt getroffen haben, wenn wir hier erreichen, ein Schaf. Nun, was wir wollen, ist der Spieler. Lasst uns einfach schnell den Spieler holen. Weil warum nicht Event Punkt Ihren Spieler? Und dann, was wir sagen werden, ist Spielerpunkt, Artikel, Haupthand. Und dann werden wir das um eins verkleinern. Also, was das tut, wird es, ich meine, sagen
wir, löschen wir einen der gehaltenen Gegenstände, richtig? Also in diesem Fall werden wir tatsächlich einen
der Schrankäpfel dafür verwenden, weil, wissen Sie,
nur es zu der Schrankäpfel dafür verwenden, weil, wissen Sie, schlagen und dann dieses Hinzufügen zu haben,
dieser Effekt wahrscheinlich nicht sein würde, dass, wissen
Sie, was auch immer und ich ausgewogen Idee. Aber in dem, in diesem Sinne, wissen
Sie, wir reden nicht wirklich über Balance. Und dann werden wir Ziel zu tun und wir können tatsächlich tun
ADD Trank Effekt und wir können eine hinzufügen, eine andere. Zum Beispiel hier ist dies im Grunde das gleiche, was wir mit beim Essen des Apfels gemacht haben, wo wir Auswirkungen Punkt glühen hatten. Und dann haben wir die Dauer, die wir eigentlich angeben mussten. Lass uns gerade 600 machen, nur um des Streits willen. Und ja, und das war es im Grunde. Und dann werde ich auch hinzufügen, nur weil es interessant sein wird zu sehen, wir tun, ist entfernt. Das überprüft also im Grunde nur, ob wir auf einem Server sind oder nicht. Und ich muss kurz nachdem wir das getan haben, muss
ich dafür etwas anderes sagen. Also werden wir nur eine Ausgabe einer Nachricht innerhalb des, innerhalb unseres Chats in, im Spiel, oder? Das wird also Textformatierung Punkt sein. Lass uns einfach einen anderen machen, weißt du was, lass uns tatsächlich so etwas wie Gelb machen, ja, so. Und dann werden wir machen, dass Schafe jetzt glühend,
glühend , legale Säure wie diese. Und dann spielen wir R dot, senden Sie die Nachricht. Und dann machen wir eine neue String-Text-Komponente. Und statt dessen können wir einfach die Nachricht setzen. Und dann müssen wir es auch mit der eindeutigen ID,
der UE, der UID,
der UUID des Spielers liefern der UE, der UID, . Und das ist im Grunde das Ein Ereignis, das jetzt ausgelöst wird. Also werden wir diese Methode jedes Mal feuern, wenn eine Entität angegriffen wird. Und es wird fragen, nun, haben wir einen Schrank Apple in der Hand? Wenn ja, dann fragen wir, ist das Ziel am Leben? Dann fragen wir, nun, es ist das Zielschafe. Und wenn das der Fall ist, dann gehen wir hier durch und tatsächlich dem Trank Effekt, durch die billige oder die Dauer von 600 zu bläst. Und wir müssen auch etwas in unserer Mod-Mod-Klasse hinzufügen. Also der MC Kursmodus, und das wird Minecraft oder Event-Bus sein, dass registrieren. Und dann wollen wir hier tatsächlich eine neue Mod-Events-Instanz erstellen. Und wir können tatsächlich darüber schweben, glaube
ich, ist die Registerrate. So können wir entweder die Objektinstanz
so mit neu erstellt haben oder wir können einfach eine Klasseninstanz machen. Und dann müssten wir das statisch machen. Dies müsste also eine statische Methode sein. In diesem Fall machen wir einfach einen neuen. Ich denke, das ist völlig in Ordnung. Das wird gut funktionieren. Und das sollte schon alles sein, was wir für dieses besondere Ereignis tun müssen. Wie ich schon sagte, wir werden ein weiteres Ereignis hinzufügen, ein zweites, nachdem wir überprüft haben, ob das funktioniert. Und dann habe ich auch etwas über die Serverseite zu sagen und dann auch etwas über die nächste Aufgabe zu sagen, die ein bisschen kreativer sein wird, aber ich bin mir selbst voraus. Zuerst mal sehen. Hoppla, so viele. Ja, das ist es, was wir wollen. Mal sehen, was wir hier mit der Veranstaltung sehen können. Also wird A-LC e zuerst hier wechseln und dann gehen wir, oder ein Schaf. Es. Und jetzt spielt es keine Rolle, ob wir in einem kreativen sind oder nicht. Also das ist eine billige und jetzt, wenn ich es mit dem überdachten Apple getroffen, werden
wir am billigsten glühend. Nun, er, sie hat den glühenden Effekt überstanden und wir haben tatsächlich einen Apfel verloren. Der Apfel wurde verzehrt. Du kannst das wirklich wieder sehen, oder? Ich weiß, ich habe 605958. Jedes Mal, wenn ich ein Schaf damit trage, wird tatsächlich
ein Apfel verzehrt. Ja, und wir bekommen auch die Nachricht, dass Schafe jetzt glüht. Das ist ziemlich gut. Das funktioniert also ohne Problem. Und wie Sie sehen können, ist das so, es ein sehr einfaches Ereignis. Sagen wir, nun, Sie können
sich vielleicht schon vorstellen, dass es eine Reihe von Dingen gibt, die wir damit machen können. Weißt du, du könntest alles tun. Sie können die Position einer Entität ändern. Du könntest ihn umbringen. Du kannst es vielleicht sogar heilen. Sie könnten alle möglichen Dinge mit Elementen tun und, und verschiedene Ereignisse passieren. Das zweite, was ich tun will, ist im Grunde jedes Mal, wenn wir ein, wenn wir ein Schaf haben, das leuchtet, oder? Dann möchte ich eigentlich geschehen, dass wir einen Tropfen haben wollen, einen Kupferbarren, richtig? Das ist nur eine, weißt du, wie eine süße kleine Idee, denke
ich noch einmal, ist wahrscheinlich, wenn du ein Modell wie dieses veröffentlichen würdest, es wäre wahrscheinlich nicht so toll. Und nennen wir das auf Schaftropfen. Und das wird irgendwo ein lebendiges Drop-Ereignis sein. Ich glaube, ich bin nicht 100% sicher. Es gibt eine Liste der Ereignisse, die Sie hier anrufen können. Und das ist übrigens auch ein paar Dinge dieses Ereignisses. Das ist wirklich gut. Aber irgendwo gibt es eine Liste. Ich werde sehen, ob ich es finde oder nicht. Wenn ich es finde, dann werde ich es wahrscheinlich verknüpfen oder nicht wahrscheinlich werde ich definitiv verknüpfen, dass es
Ressource zu diesem Vortrag hat , weil es, du weißt schon, du kannst nicht wissen, welche Ereignisse hier passieren, oder? Es gibt also auch ein undef Ereignis. Also, wenn der Spieler stirbt oder Sie können ein Ereignis haben, wenn ein, eine Entität Diäten. Es gibt also so viele Dinge, die passieren können. Und als lebende Tropfen Ereignis, wenn wir tatsächlich über sie bewegen, können
wir tatsächlich sehen, dass dies ausgelöst wird, wenn eine Entität Tod verursacht fallene Gegenstände erscheinen. Also das im Grunde, bevor diese Elemente erscheinen, dann wird das Ereignis ausgelöst und dann, so dass wir tatsächlich ein paar Dinge ändern können. Also, was wir tun werden, ist, dass wir ein Lebewesen machen werden. Das wird unsere Entität sein. Und dann machen wir Event Dot Lebewesen,
Entität, die dort lebt. Yo. Und dann haben wir zunächst gefragt, ob es sich um ein Schaf handelt oder nicht, nur weil wir uns
gerade nur um die Schafe kümmern, die glühen und nichts anderes. Und wir gehen für eine Welt,
Welt II Entität, Entschuldigung,
Entitätsdaten , DT-Welt. Und wir müssen den Verlust der Welt hier importieren. Und dann werden wir tatsächlich retten die, es wird ein bisschen kompliziert und so sind die Tropfen bekommt reibt. Also im Grunde sagen wir, okay, welche Tropfen wären von den Schafen gefallen, richtig? Zum Beispiel, Wolle und was ist
das, das Fleisch von Schafen eigentlich, Moment, wissen nicht, wie es heißt. Ich werde jetzt überprüfen, sobald es wärmer im Spiel ist. Ich weiß eigentlich nicht, was auch immer. Also würden die fallen. Und dann werden wir tatsächlich diese und Tropfen speichern und dann kaufen Hinzufügen zu den Tropfen, wir können tatsächlich etwas anderes als auch hinzufügen. Das wird also tun. Jetzt. Ich werde wirklich etwas tun, nur damit wir es einfach können, jetzt ist das, was ich will. Manager dot get logger. Und dann werden wir debuggen. Und das wird Entity Dot sein, aktive Ozeaneffekte
bekommen, nur damit du weißt
was, was ist das Problem hier? Warum funktioniert das nicht mit dem Log-Manager? Nicht statische Methode kann nicht aus einem statischen Kontext referenziert werden. Oh, nun, ich meine, ich wüsste nicht, dass wir es sind, ergibt einfach keinen Sinn. Ganz sicher, dass wir genau das Gleiche hier oben machen. So gut, das macht absolut keinen Sinn. Aber da gehst du. Manchmal haben die Dinge, die einfach keinen Sinn ergeben, dass es sich hier etwas ändert. Nun, was auch immer es sein könnte. Jetzt können wir tatsächlich ein Protokoll c haben ,
das sind manchmal diese verrückten Dinge. Deshalb schneide ich das jetzt nicht aus. Weil das manchmal etwas verrückter Verschmutzung. Ich bin wie, okay. Niemand weiß wirklich, was dort passiert ist. Nun, jemand auf diesem Planeten weiß es wahrscheinlich, aber in diesem Fall war das nur ein seltsamer Käfer. Nun, und dann wollen wir tatsächlich fragen, ist, ob ein bestimmter Effekt, so in diesem Fall wirkt sich dunkel, glühend ist aktiv, oder? Also habe ich diesen Logger hier, so dass wir tatsächlich in der in der wann ist sehen können, wenn das Mikrofon läuft, dass wir tatsächlich im Protokoll sehen können, was passiert. Jedes Mal, wenn wir ein Schaf schlagen, werden
wir das ausgedruckt bekommen und dann können wir tatsächlich sehen, welche aktiven Teil die Schafe beeinflusst. Es ist nur ein interessanter Weg, dies zu tun. Und solange es Debug ist, ist das großartig. Es ist auch eine sehr wichtige Sache, tatsächlich zu tun. Manchmal holen Sie den Logger da rein und dann einfach, wissen
Sie, sperren Sie etwas aus und dann werden wir Drops Dot hinzufügen. Dies wird neue Element Entität und Element, Entität sein. Eigentlich Element Entität. Das wird in der Welt sein. Wir machen ein, es wird an Position sein. Dies ist ein wenig t ist wieder, denn dann
müssen wir eigentlich jede der drei Koordinaten angeben. Also müssen wir tatsächlich als y und auch Entity dot z tun, wo z und dann werden wir einen neuen Item-Stapel von Mod Item Punkt machen, der es bedeckt. Nein, nicht Klasse Kupfer. Kupfer in gutem Punkt bekommen. Natürlich noch einmal, weil wir einen neuen Item-Stack erstellen, sollte es jetzt schon sein. Doch das ist alles, was wir hinzufügen müssen. Um dies hinzuzufügen sehr interessant, aber eigentlich ganz spezifisch. Entschuldigen Sie mich. Das ist eigentlich alles, was wir hinzufügen müssen. Dieses interessante und eigentlich ganz spezifische Verhalten an diesem Punkt, richtig? So ist es nicht. Das würde man überall sehen, in jedem Modus. Und das ist im Grunde, weißt du, wie du über diese Ereignisse nachdenken kannst. Also hast du die Idee von Ahmad und du bist wie, oh, ich will diese Anzeige und vielleicht war ich nicht so verrückt. Vielleicht Ende, Ende Spitzhacke Das ist wie wirklich gut am Anfang, aber vielleicht teleportiert es Sie jedes Mal, wenn Sie einen Block brechen, und Sie können das tun. kannst du wirklich tun. Deshalb sage ich,
dass Ihre Phantasie hier wirklich die Grenze ist. Und jetzt werden wir sehen, ob wir ein neues Schiff erzeugen, oder? Moment passiert nichts. Wenn wir es töten, wollen
wir das jetzt wissen, wie das heißt. Es heißt Hammelfleisch. Oh, da war ich mir nicht sicher. Eigentlich hier rüber in den Sand und dann passen wir es hier an. Jetzt hat sie geladen und dann werden wir es töten. Und sieh dir das an. Wir bekommen es tatsächlich daraus zu integrieren. Nun, natürlich, die Sache, die wir tun könnten, ist wahrscheinlich so etwas wie die, haben die, haben eine Wahrscheinlichkeit, dass ein Kupferbarren fallen, wissen
Sie, vielleicht 1% oder so etwas. Und dann würde natürlich das
Gleichgewicht sozusagen wiederhergestellt werden. Nun, wenn wir tatsächlich zurückgehen und tatsächlich,
oh, na ja, so viel dafür können . Nun, eigentlich können wir es hier sehen. Dort haben wir tatsächlich den Debug hier von unseren MOD-Ereignissen, wie Sie sehen können. Und da ist es, Effekt Punkt Minecraft glüht. Und dann haben wir auch die Dauer. Und hier, als wir vorher die Billigsten getroffen haben und die Schafe töten, hatten
wir eigentlich nichts hier drin, oder? Das war also völlig leer. Und nachdem wir es hier getroffen
haben, hatten wir einen oder wir haben ihn getötet. Wir hatten tatsächlich die get aktiven Effekte und eine der effektivsten minecraft dot blowing. Das ist also auch sehr wichtig. Wissen Sie, manchmal möchten Sie etwas debuggen und dann verwenden Sie einfach den Log-Manager. Nun ist dies nicht unbedingt der beste Weg,
um, auf eine Menge Manager Budgets immer die Zuteilung von Ischias Logger referenzieren, aber es wird in Ordnung für unsere Zwecke in diesem Fall. Eine weitere Sache, dass einige Ereignisse
auf der Serverseite durchgeführt werden müssen und einige Ereignisse auf der Client-Seite durchgeführt werden müssen. An diesem Punkt wird dies sowohl auf dem Server als auch auf dem Client funktionieren. Aber es gibt einige, sagen wir, sehr spezifische Dinge. Aber wieder einmal, es gibt so viele Ereignisse, die tatsächlich referenziert
werden können , dass es schwer ist, wie eine kurze Zusammenfassung oder,
Sie wissen, zu tun , um sie zusammenzufassen. Und alle zusätzlichen Ressourcen, die ich für dieses oder die interessant
finde, werden Ihnen dabei helfen. Ich werde hier die Ressourcen einbringen. Und auch das, weißt du, es kann manchmal ein bisschen knifflig sein. Aber noch einmal, das Wichtige, wenn Sie es nicht tun, wie wenn etwas nicht passiert, verwenden Sie den Debug-Manager oder den Debug-Manager, den AlarmManager, und debuggen Sie einige Dinge aus. Und ich glaube auch, dass das sein würde, dass es in seiner Gesamtheit ist. Also habe ich nach diesem einen kleinen zusätzlichen Auftrag. Und das möchte ich schnell ansprechen, bevor dieser Vortrag vorbei ist. Und das ist, wo Sie tatsächlich Ihre eigene Veranstaltung erstellen müssen. Und das ist völlige Freiheit. Sie können erstellen, was Sie wollen. Du kannst verrückte Sachen machen, du kannst alles machen, was du willst. Aber es sollte eine Methode sein, richtig? Also ein, im Grunde ein Ereignis hier. Und es kann alles sein. Es kann sein, dass man aufspringt und dann plötzlich eine 1000 GolDieBlox vom Himmel fiel. Und es spielt keine Rolle, was du tun willst. Aber es muss sein, je kreativer, desto besser. Es ist nicht unbedingt
abgestuft, sagen wir, aber ich werde sie ansehen. Und ich bin wirklich aufgeregt darüber, was du dir einfällt, richtig? Wie ich bin, bin ich eigentlich wie ein leicht aufgeregt, weil ich eigentlich hoffe einige verrückte Ereignisse ziemlich cool wären, wenn die Ereignisse sind, weißt
du, irgendwie wie diese Länge, du weißt schon ,
oder sogar länger, aber nicht wie zwei Zeilen. Ich möchte, dass ich ein bisschen nicht traurig wäre, aber es wäre nicht das Beste, wenn wir nur zwei Zeilen sind, aber natürlich können Sie tun, was Sie wollen. Der Auftrag ist sehr offen. Deshalb gibt es wirklich keine, keine Lösung dafür. Solange das Ereignis funktioniert, haben
Sie den Auftrag erledigt. Also bin ich sehr daran interessiert, was du dir einfallen kannst. Und das war es im Grunde für den Veranstaltungsvortrag. Ich hoffe, du hast da etwas rausgeholt. Und auch, wenn es irgendwelche Fragen gibt, zögern Sie nicht, jederzeit zu fragen. Und auch, wenn Sie das Gefühl haben, dass Sie tatsächlich etwas erreicht
haben und bei der Entwicklung eines Modells weiter gegangen sind. Ich würde es wirklich schätzen, wenn Sie mir eine Rezension hinterlassen könnten. Und ja, das ist im Grunde alles unsere zu sagen. Danke, dass Sie zugehört haben. Und ja. Oder, oder einfach nur ein kurzes kleines Addendum hier auf diesem Mod Events ein. Und ich habe tatsächlich einen einfacheren Weg, um herauszufinden, welche Ereignisse es gibt. Sie können beispielsweise den Mauszeiger über dieses
Angriffs-Entitätsereignis bewegen. Und dann gehst du einfach durch den Strecken-Baum, bis du Ereignisse findest, oder? Und dann wirst du einfach an seiner Quelle hier sein. Und dann das Ereignis der Java-Datei werden wir tatsächlich öffnen. Dies ist irgendwo in der, irgendwo in den anderen Dateien, wie in den externen Bibliotheken. Mach dir keine Sorgen darüber. Nun, was wir dann tun können, und das ist wie eigentlich Klasse, wir können tatsächlich nur Kontrollalter machen. Und dann öffnet sich die gesamte Hierarchie. Nun, du könntest so sein, oh mein Gott, das sind viele Ereignisse. Ja, es ist noch mehr, weil es Blockereignisse gibt, auf die wir verweisen können, oder? Und dann ohne Kolbenereignisse, Entitätsplatzereignisse können Sie Wachstumsereignisse zugeschnitten haben. Wir können Weltereignisse haben, wo Shang, Sie wissen, und dann diejenigen, die wir tatsächlich verwendet wo eine Entität Ereignisse und wir verwenden die Lebewesen Ereignisse, wie Sie können einige hier sehen. Und dann gibt es auch Player-Events. Und wie Sie auch sehen können, viele Ereignisse, die Sie referenzieren können. Also und theoretisch, wenn Sie die Ereignisse haben, für die Sie gehen, sind
Sie wirklich nicht durch irgendetwas hier begrenzt. Wie Sie sehen können, gibt es
so viele Dinge, die wir tun können, und vor allem können Sie für die Aufgabe tun. Also ja, das ist nur schnell, was ich erwähnen wollte. Und ja.
50. (Minecraft): Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in dieser Vorlesung erstellen
wir einen Tooltip für einen Artikel. Nun, das ist eigentlich nicht so kompliziert. Und was wir tun werden, ist, dass wir einen Tooltip für unser Unternehmen Apple erstellen, weil wir bereits eine Corporate Apple-Datei haben. Also eine Klasse, die diesem Artikel gewidmet ist. Und wir brauchen tatsächlich eine Klasse oder für diese Methode, die wir hinzufügen werden. Also können wir es nicht einfach in R-Mod-Artikeln tun. Wir müssen tatsächlich eine bestimmte Klasse haben. Und ich normalerweise auch, das ist etwas, worüber man nachdenken kann. Manchmal wollen wir tatsächlich, dass unsere Artikel eine separate Klasse haben, und manchmal tun wir es nicht. Jetzt im Laufe unserer App, im Fall von unserem Apple, sorry, wir haben es tatsächlich, weil wir wollten, um ein Lebensmittel zu haben. Und manchmal, wenn wir spezialisierteres Verhalten auf Artikeln wollen, dann macht es natürlich Sinn, eine richtige Klasse für sie zu haben. Aber doch, so werden wir nur noch einmal den Kupfer-Apfel als Meerschweinchen dafür verwenden. Und was wir tun werden, ist, dass wir eine öffentliche Leere haben. Und das könnte Informationen hinzufügen. Es wird einen Item-Stapel nehmen. Zurück, wird eine Welt haben,
Welt, eine Liste von ICT-Textkomponente, die wird der Tooltip und auch ein AI-Tooltip-Flag, alte Flagge, richtig? Also zuerst müssen wir ein paar Klassen importieren, Klasse importieren,
und dann die Weltklasse und natürlich die ICT-Text-Komponentenklasse. Da gehen wir. Und das war es schon. Jetzt müssen wir eigentlich auch eine Art, oh sorry, die Liste haben. Tut mir leid, vor einer Weile. Java.util. Ja, da gehen wir. Jetzt funktioniert es. Und das wird auch ein Überschreiben sein. Rüber rechts? Jetzt wollen wir eigentlich
eine Art Hilfsklasse haben und wir werden das in unserem Util erstellen. Und das wird die Tastaturen, Tastaturhelfer sein. Ich nenne es einfach Tastaturhelfer. Sie können es die Tastatur util nennen. Sie können es auch Tastatur nennen. Tastatur Utility-Board-Helfer Eingabehelfer vielleicht. Aber das wird gut. Ja, und das hier wird auch zwei Dinge haben. Und das wird einen öffentlichen statischen Boolean haben. Und das wird sein, ist die Schicht zu halten. Die Idee ist, dass Sie wahrscheinlich gesehen haben, wenn Sie einige Manpacks gespielt haben, dass, manchmal sagt es, hey, Sie können Shift halten für weitere Informationen oder Sie können halten, Sie können Control für weitere Informationen halten. Und das ist im Grunde, was wir hier umsetzen werden. Also, eigentlich wird es nicht so anders sein. Also werden wir zurückkehren und dann werden wir eine ganze Menge Zeug haben. Dies wird also Eingabe-Mappings sein. Der Punkt ist der Schlüssel nach unten. Das erkennt also im Grunde nur, ob ein Schlüssel heruntergefahren ist oder nicht. Und jetzt, was wir wollen, ist, dass wir minecraft dot getInstance haben wollen, dot erhalten Hauptfenster, die behandelt werden. Dies wird also die
Art der, die Adresse, sagen wir, zurückgeben . Und dann wird dieser die linke Umschalttaste sein. Ja. Richtig? Leider ist dies nicht, dies ist in diesem Fall nicht abgebildet. Aber ja, und sehr wichtig, dass das wahnsinnig wichtig ist. Dies wird nur in diesem Punkt Client dist dot liniert sein. Und das muss importiert werden. Das ist wirklich wichtig, weil dies etwas ist, das nur für
den Client passiert , weil ein Server Shift wirklich gedrückt halten kann, oder? Das ist wie sehr wichtig, und das wird halten Sie die Kontrolle. Und das wird sein, wir müssen das einfach ändern, um zu kontrollieren. Das ist alles, was wir hier tun müssen. Ja, und das ist im Grunde unser Tastaturhelfer. Das wird uns nur helfen, damit wir es nicht tun müssen. Jedes Mal, wenn wir sagen wollen, hey, wenn, wissen Sie , die Schicht
halten, ist
es ein bisschen einfacher zu tun. Die Bürger werden auch Weiß in der Util-Klasse. Weißt du, es ist nur eine kleine Sache, die uns mit Versorgungsunternehmen hilft. Im Grunde ist es ein Dienstprogramm. Ja. Ja. Und dann werden wir eigentlich nach dem Tastaturhelfer fragen. Also der Tastaturhelfer als hier. Da gehen wir, wird es halten Schicht. Das ist die Frage. Und wenn wir es sind, dann machen wir eine Sache. Und wenn nicht, dann werden wir tatsächlich eine andere Sache anzeigen, die im Grunde interessant ist, ist eine sehr interessante Möglichkeit, dies noch einmal zu formatieren. Also lassen Sie uns zuerst das hinzufügen, wenn wir tatsächlich Shift halten. Das ist also die Sache, die wir sehen werden, wenn wir Shift halten, richtig? Dies wird also eine neue String-Text-Komponente sein. Und im Inneren können wir einfach eine Zeichenfolge hinzufügen, dies im Grunde alles, was wir hinzufügen werden. Also lassen Sie uns sagen, wenn wir die Schicht über die Pumpe halten, der Resit, der Apfel, dann wollen wir eigentlich sagen, dass Schafe in Kupferbarren
verwandelt. Wie wär's damit? So, richtig? Und dann die andere, ich weiß wirklich nicht, warum er, also sind wir in der Formatierung an diesem Punkt, Hurd. Ok. Und wenn er das nicht hat, können
wir eigentlich etwas Generiges haben. Was, wenn du darüber nachdenkst, so ist etwas, das du auch als Baby in den Mod-Artikeln haben könntest. Sie können in den Mod-Elementen eine statische Zeichenfolge haben, die dies immer hat, oder? Denn dies ist für jeden Artikel, der gleich sein wird. Aber das wird etwas seltsam sein. Das benutzt also sieben e, und dann wollen wir die Schicht halten. Entschuldigung. Nun, innerhalb wie wir gehen, werde
ich es bald genug erklären. Ich muss mich nur wiederholen. Kopieren Sie das hier. Und das ist 77. Und dann wird es oder mehr Bildung sein. Sicher. In vier Dur. Ok. Das war's. Ja. Ok. Und das ist einfach eine Farbe, die für die Textkomponente hinzugefügt wird, oder? Das sind also Farben. Ich werde hier eine als Ressource liefern, Ich werde tatsächlich eine liefern, die Farbe. Wie ich denke, es ist ein Bild, wo man tatsächlich sehen kann, welche Farben man tun kann. Es ist fast das gleiche wie die, Ich denke, es ist tatsächlich die gleiche wie die Farben, die Sie im Chat haben können. Ja, genau. Richtig. Und dann wollen wir auch super dot-dot-dot Informationen und sie wollen nur all dies hinzufügen. Also Welt-Tooltip und auch die Flagge, sie würden gehen, richtig. Das ist es für das Hinzufügen der Summe. Das sollte es sein. Es ist also nur der Tastaturhelfer und der kupferne Apple. Und mal sehen, ob du das wirklich siehst. Wie ich schon sagte, jemand wie dieser, die ganze Verschiebung, das ist wahrscheinlich etwas, das
auch als statische Zeichenfolge von öffentlichen statischen Strings und den Mod-Elementen zum Beispiel sein sollte . Oder Sie könnten sich vorstellen, dass Sie eine, eine andere Klasse oder Util-Klasse haben, in der Sie tatsächlich diese Strings alle gespeichert haben. So kann das auf sie verweisen, wann immer Sie brauchen. Weil das Hinzufügen dieser Zeichenfolge jedes Mal keinen Sinn macht. Okay, dann sind wir, jetzt, mal sehen. Also zuerst, wissen Sie, das ist alles normal und dann hier,
oh, halten Sie Shift für weitere Informationen. Und wenn wir halten Shift verwandelt Schafe in eine Deckung. Und das ist ziemlich cool, nicht wahr? - Es? Fügt hinzu, das gefällt mir. Das ist ziemlich nett. Wir können Shift halten und dann bekommen wir neue Informationen. Nun, lassen Sie uns eigentlich auch Sie, dass es jetzt nicht so nah an der sein wird, an den anderen Satz. Ja, im Grunde nur der Tastaturhelfer und der Corporate Apple. Aber insgesamt denke ich, dass das immer noch ziemlich unkompliziert ist. Und ja, das war es im Grunde, um den Tooltip hinzuzufügen. Und ja.
51. (Minecraft) Erstelle ein neues Set: Alles klar, willkommen zurück zum Mikrowellen-Kurs. Und in diesem Vortrag werden wir unsere eigene Rüstung hinzufügen, richtig? Was können wir mit unserer Rüstung machen? Und wir haben schon gesehen, dass es mit
den Items , den Tupeln, ziemlich einfach war . Weißt du, es gab ein paar Dinge, aber nichts zu verrücktes. Das Einzige, was ein wenig mühsam war, war die mehr Gegenstandsstufe. Aber dieses etwas, das wir tatsächlich wieder tun müssen. Also müssen wir tatsächlich unser eigenes Mod-Rüstungsmaterial erstellen. Dies wird also ein öffentliches Enum Mod Rüstungsmaterial sein. Aber t ist echt. Und das wird ein Rüstungsmaterial implementieren. Und wir werden schnell die Methoden hier wieder bekommen. Und das ist im Grunde das, fast das gleiche, was wir mit denen hatten, die wir in den Mott-Artikeln hier hatten. Jetzt mit der Rüstung. Okay, es gibt noch einmal
ein paar Dinge, die wir hier eigentlich angeben müssen. Also zuerst werden wir wieder Kupfer machen. Dann werden wir ein paar private Variablen erstellen. Wieder. Dies wird eine private endgültige ganzzahlige Haltbarkeit sein. Und dann werden wir ein endgültiges ganzzahliges Array haben, das das Array der Schadensreduktionsmenge sein wird. Das ist ein Bissen voll zu sagen, dass dreimal schnell nach einer anderen Eule. Und Charme der Fähigkeit als dritter,
dass wir eine private letzte Klangereignis haben werden, die ein Klangereignis sein wird. Und dann haben wir eine private letzte Zutat, die das Reparaturmaterial ist. Und wir werden einen privaten Phi o privaten endgültigen String-Namen haben. Dieser hier ist sehr wichtig. Und dann eine private, private endgültige Float, Zähigkeit, das sollte bekannt sein, aber das ist dann ein privater endgültiger Schwimmer klopfte Widerstand zurück. Ok. Wie Sie sehen können, eine Menge Zeug wieder, aber keine Sorge, wir werden in der Lage sein, dies herauszufinden. Also zuerst werden
wir natürlich wieder darüber schweben und wir tatsächlich einen neuen Konstruktor mit all diesen erstellen, mit all diesen Variablen sofort. Und so sparen wir uns tatsächlich ziemlich viel Zeit beim Schreiben dieses Konstruktors. Und dann können wir auch so etwas tun. Ja, das ist gut, richtig. Also die Haltbarkeit, ich werde nur einige Dinge in Ihre setzen, also wird dies ein neues ganzzahliges Array sein. Und ich werde sofort etwas reinbringen. Also das ist, wir werden tatsächlich die Verringerung des Schadens ist anders für jedes Kleidungsstück, sozusagen, Ringen um den Helm, den Brustpanzer, die Leggings und die Stiefel. Es wird eine andere Nummer sein. Sagen wir einfach jemand, der Pfeilpfeiler mag, sagen wir 75. Und es kann eine Drei oder so etwas geben. Weißt du, du kannst
natürlich wählen, was du willst. Und die Rückverfolgbarkeit wird eine Zehn sein. Das Klangereignis wird Klangereignisse sein, dass dies Gegenstand Rüstung ausrüsten wird. Lasst uns Rüstung machen. Dies ist Gegenstand Rüstung Eisen ausrüsten. Genau da gehen wir. Reparieren Sie Reparaturmaterial, das sofort vom
Stapel wieder erhalten wird und tun Sie einfach neue Artikel Stapel von noch einmal, den Punkt des Mod-Artikels, vertuscht es bekommen. Das ist so ziemlich das, was wir immer getan haben. Und dann wird der letzte genannt werden. Jetzt ist dieser hier wichtig, denn hier müssen wir tatsächlich mc natürlich dot naught ID machen. Und dann müssen wir einen Doppelpunkt machen und dann dieses kleine Kupfer nennen. Und das liegt daran, sonst wird er suchen, dies ist im Grunde, um den Ort für den Ort und den Namen für das Modell anzugeben. So hat das 3D-Modell für die Rüstung ein sehr spezifisches Muster der Textur, das ich bald genug zeigen werde. Und das muss eigentlich einen bestimmten Namen haben. Und wenn wir es nicht so spezifizieren, dann werden wir tatsächlich in einem anderen Verzeichnis suchen. Und das muss auch der Fall von Kupfer in allen Kleinbuchstaben sein,
wir werden nur eine 0 machen und BEC-Widerstand klopfen. Wir werden tatsächlich ein bisschen
Widerstand darauf setzen , und das wird gut. Und wir müssen diese Dinge auch zurückgeben. Also gehen wir auf Langlebigkeit. In der Schadensreduzierung. Wir werden tatsächlich einige der verschiedenen haben,
das wird das Demonstrationsfeld sein. Und dann werden wir einfach nehmen, was Slot wir den Index des Slots bekommen, richtig? Also ist der Schlitz einfach nur, wissen Sie, es ist 0 für den Helm und drei für die Stiefel. Und so greifen wir in diesem Fall auf den Schadensreduktionsbereich zu, richtig? Verzaubern Sie die Fähigkeit. Wir werden die Sound-Events, das Reparaturmaterial, den Namen wie eine Reihe von unglaublich wichtig die Zähigkeit zu bekommen. Und in diesem Fall, dieser Funk, der hier nicht abgebildet
ist, ist einfach der, dies fragt nach dem Klopfen BEC Widerstand. Und dann können wir einfach Nochlin-Kurse machen. Aber es muss plötzlich bleiben diese, sonst wird es nicht funktionieren. Sie können also den Namen dieser Funktion oder dieser Methode nicht ändern, tut mir leid, ja. Also das ist unser MOD, Rüstungsmaterial erstellt. Und jetzt können wir tatsächlich unsere erste Rüstung erschaffen. Aber in diesem Fall werden wir tatsächlich alle gleichzeitig erstellen , anstatt mit den Werkzeugen. Dies wird wieder ein,
ein Gegenstand, wo n, das wird der Kupferhelm sein. Dies sind Registrierungspunkte, die die O E Kupferhelme registrieren. Und ich meine, du hast das schon ein paar Mal gesehen. Dies ist jetzt ein neuer Rüstungsgegenstand, wo wir die mod Rüstung Material dot Kupfer liefern. Dann fragt es nach einem Geräteslot. Dies ist natürlich, Ausrüstung Menge Kopf. Und dann müssen wir auch einige neue Eigenschaften zur Verfügung stellen. In diesem Fall werden wir nur MCMC Dot Course Tab zu tun. Das war's, richtig. Und das ist es schon für den Kopf und dann können wir das einfach kopieren. Und jetzt müssen wir natürlich wieder
ein paar Dinge haben, bei denen wir hier einiges ändern. Das ist der Punkt, Punkt-Truhe. Und das ist in Ordnung. Wie ich schon sagte, manchmal kann es ein bisschen langweilig werden weil man eine Menge von den gleichen Dingen tun muss. Es gibt jedoch wirklich kein Herumkommen. Also werden wir tun, das sind Beine. Und dann wird der letzte die Stiefel sein. Und das wird Kupfer-Unterstreichstiefel sein. Und die sind für die da, die wir gehen. Schön. Okay, also gibt es hier tatsächlich schon registriert. Nun müssen wir die Lokalisierung hinzufügen. Also gehen wir zum IIT und zu uns. Und wir werden den IO hinzufügen, mein Lambda, das ist nicht MC, ärmster Punkt Kupferhelm. Fangen wir an der Spitze an. Und dann wird das der Kupferhelm sein. Und ich werde das auch schnell kopieren. Und ändern Sie das einfach. Die Brustplatte. Endlos. Die Brustplatte. Das wird die Leggings sein. Oh, entschuldigen Sie mich. Kann die Leggings. Das wird die Leggings sein. Und der letzte wird Stiefel klein und hier Stiefel groß sein. Schön. Okay, das wird all das sein. Jetzt müssen wir natürlich auch noch etwas hinzufügen, und das wird die Artikelmodelle sein, oder? Also gehen wir zu Modellen und erstellen eine neue Datei. Das wird der Kupferhelm sein. Da gehen wir. Oh, ab.js. Und natürlich sehr wichtig. Und dann werde ich das noch einmal schnell kopieren, das ist wie die Standardsache, die wir bereits in den Modellen gesehen haben. Und wir werden dies wieder ähnlich mit Control C kopieren und dann V steuern, um es in das gleiche Verzeichnis einzufügen. Und ich werde das in Brustplatte ändern. Und dann ändern Sie das auf Brustplatte, Platte eine Witwe. Und dann können wir das Gleiche wieder machen. Wo sind die Links? Leggings, Leggings würden sie gehen und dann ein letztes Mal oder Stiefel. Stiefel und hier das Gleiche. Sehr gut. Okay, also sind die Modelle gesetzt und wir brauchen natürlich die Texturen. Also jetzt die, jetzt werde ich die Artikel Texturen genau hier zur Verfügung stellen, richtig? Und das werden Sie umgestalten. Das ist die Brustplatte, die Stiefel, die Leggings und der Helm. Schön. Nun, das nächste, was ich brauchen werde ist, dass wir jetzt die Texturen für das, wie es aussieht, wenn wir es tragen. Das wird also die nächste Sache sein und wir eigentlich wirklich neue Ordner in Texturen dafür. Das wird Modelle sein. Und anstelle dieses, werden
wir ein neues Verzeichnis namens Rüstung erstellen. Und da drinnen
gehen zwei andere Akten , die werden die beiden tatsächlich zu Ja gehen, da gehst du. Dies ist für die Leggings und das ist im Grunde für den Oberkörper und den Helm. Und ich glaube auch den Stiefeln. Ja. So etwas wie das. Ich bin mir nicht 100% sicher, aber das scheint
sinnvoll zu sein und das muss auch so genannt werden. Also erinnere dich an den Namen, den wir angegeben haben. Dies war nicht Kupfer und dann muss es Unterstrich Schicht sein, unterstreichen Sie ein PNG. Und ja, diese Dateien werden auch immer zur Verfügung gestellt werden,
sind in erster Linie , am Anfang, in den Quellen und auch als Ressource, Ihre Rate. Wenn ich mich also nicht irre, glaube
ich, dass dies schon alles ist, was wir tun sollen. Also lassen Sie uns einfach das laufen und sehen, ob Sie tatsächlich erfolgreich eine Kupfer-Rüstung erstellt haben, die ziemlich cool wäre. Alles in Betracht gezogen. Okay, also mal sehen, was wir sehen können. Da gehen wir. Ist es. Und natürlich
gibt es dafür noch einmal keine Rezepte. Wie ich schon sagte, werde ich die Rezepte
dafür weglassen , einfach weil sie trivial genug sein sollten, um hinzuzufügen. Na gut, mal sehen. Lassen Sie uns zunächst zu unserem Kernschritt gehen. Nun, sie sind alle da. Das ist ziemlich gut. Holen wir sie alle. Ok? Und jetzt ist die große Frage, wenn wir Tack wechseln, Überleben, wenn wir es einfach anziehen können, können wir es. Nun, da gehen wir. Ich bin ziemlich nett. Bestreitet. Jetzt hat das tatsächlich eine Menge Verteidigung. Es tut mir leid. Da gehen wir. Es sagt viel Unterschied tatsächlich. So wie es ist, die gesamte Rüstung hat tatsächlich ziemlich viel Verteidigung. Aber das ist etwas, mit dem du natürlich rumspielen kannst, oder? Ja. Als ob es eine Menge Dinge gibt, die wir noch einmal hinzufügen können. Und es gibt eine Reihe von Parametern, mit denen Sie spielen können und sagen, nun, eigentlich vielleicht ein bisschen weniger hier und ein wenig mehr hier. Und ja, aber gleichzeitig funktioniert das. Das ist eigentlich einfach gut, das ist gut, lasst uns einfach schnell wieder wechseln und dann eigentlich nur aus ein bisschen Höhe nach unten gesprungen werden. Eigentlich habe ich es nicht gut beschädigt, so sehr dafür. So Monosomie. Wie wär's mit dem? Ein paar Zombies. Wirst du sofort brennen? Ja, nun, spielt eine Rolle. Aber ich will das etwas ablehnen, denn mein Gott, werden sie laut sein? Richtig? Und dann wird die Rüstung tatsächlich so gut verletzt, wie Sie sehen können. Das ist also ziemlich gut, oder? Alles in allem, das ist im Grunde, wie Sie die Rüstung zu Minecraft hinzufügen. Es oder nein, ich glaube nicht, dass es so schwer war. Allerdings gibt es nur wenige Dinge zu beachten, und das sind vor allem die Modelle, der Name hier. Das ist also einer der größten Pfeile, die ich vorhersehen konnte. Sie müssen das wirklich tun, der Name hier richtig, sonst wird es nicht funktionieren. Das muss dasselbe sein, geschrieben wie das erste Wort hier. Und dann muss Unterstrich Ebene unterstrichen ein PNG sein, richtig? Ja, das war's. Wenn Sie Fragen haben, wenn Sie Pfeile oder
Vorschläge haben, vielleicht zu Themen, die Sie auch noch sehen möchten. Zögern Sie nicht,
mich zu kontaktieren mir eine Frage zu stellen und ja, wir werden uns so schnell wie möglich bei Ihnen melden. Und ja.
52. (Minecraft) Erstellen von Treppen, Knöpfen und Druckplatten und Zäunen: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir Treppen, Zäune,
Zauntore, Knöpfe, eine Druckplatte
und auch eine Platte erstellen Zauntore, Knöpfe, eine Druckplatte . Nun, das sind eine Art Nicht-Block-Blöcke, würde ich sagen. Und ich werde Ihnen auch zeigen, wie Sie im Grunde die anderen erstellen können. Aber es muss ein wenig Einfallsreichtum von sich selbst kommen. Aber zuerst werden wir diejenigen tun, die ich sagte. Wir werden zunächst die Registrierungsobjekte aller von ihnen erstellen. Dann machen wir die Treppe fertig. Und dann werde ich im Grunde ein paar andere Dinge kopieren, denn am Ende wird hier
eine Menge Kopieren passieren. Aber zuerst lassen Sie uns die Registrierungsobjekte hier machen. Zunächst einmal wird dies wieder ein Registrierungsobjekt sein. Notieren Sie sich ein Registrierungsobjekt vom Typ Block. Und zuerst machen
wir die Kupfertreppe. Sagen wir einfach für unseren Kupferblock, wir wollen eigentlich, dass Kupfer-Serie damit passt. Aber dann werden wir einfach Register anrufen und dann wird das Kupfer Unterstrich Treppen
sein, wie immer. Und wir werden mit neuen Starrblöcken versorgen. Ihr Block. Und ein Treppenblock will eigentlich einen Lieferanten eines bestimmten Blocks. Das bedeutet im Grunde, dass wir eine Art blockierte Referenz wollen. In diesem Fall werden wir nur den Kupferblock Punkt nehmen,
Punkt bekommen Standardzustand, weil der Lieferant hier tatsächlich einmal ein Standardzustand. Und dann wollen wir auch die Blockeigenschaften. Wir machen nur 3 Stunden. Und dann mit Material Eisen, noch
einmal, ein Semikolon. Und theoretisch sind die Kupferreihen fertig. Jetzt haben wir schon gelernt, es ist nicht so einfach wie immer, aber wir werden es sehen. Das nächste, was wir tun werden, ist, dass wir ein plötzliches öffentliches statisches letztes Registry-Objekt erstellen. Wieder einmal vom Typblock werden immer vom Typ Glück sein. Natürlich sind wir in den Schlammblöcken und es wird Kupferflossen geben. Und wir werden das tatsächlich einmal tun und dann werden
wir diese spezifische Funktion oder bestimmte kopieren, sagen
wir die Initialisierung hier, die wir
tatsächlich kopieren werden, weil das unser Leben ein wenig einfacher machen wird. Zaunblock, abstrakter Block ,
Punkt, Nee, Punkteigenschaften, erstellen Sie ein AM will bekommen und ich werde Material sagen, dass Eisen, es scheint mir, die vernünftigste hier zu sein. Und ich werde das hier kopieren, denn außer
der Druckplatte sind die anderen ziemlich einfach und verschwenderisch. Das Tor ist also einfach das, dass
wir statt eines Zauns tatsächlich einen Zaun-Torblock haben. Das war's. Oh, das ist komisch. A, du gehst, okay. Und achten Sie darauf, auch den Namen hier zu ändern. Das ist sehr wichtig, dass du das nicht vergisst. Und dann werden wir hier die Kupfer-Unterstriche Druck Unterstrich Falten haben. Und das gleiche natürlich hier drin, nur drin. Kleinbuchstaben statt Großbuchstaben. Und dann haben wir einen neuen Druckplattenblock. Und das wird sein, dass hier tatsächlich etwas anderes haben wird. Und wir fangen eigentlich mit einer Druckplatte an. Wir werden Druckplatte,
Loc, Punkt, Empfindlichkeitspunkt haben . Und dann werden wir alles sagen. Alles bedeutet also einfach, dass alles, was wir auf die Berührung werfen, die Kupferplatte wird es tatsächlich aktivieren. Und dann hier haben wir eine Kupferplatte. Und das wird eine Kupferplatte und auch ein Plattenblock sein. Sie gehen. Und das ist alles, was für die Registrierung benötigt wird, für die Blöcke. Nun, natürlich ist es nie so einfach. Denn jetzt werden wir tatsächlich eine ganze Reihe verschiedener Modelle
und Dinge für die Treppe erstellen müssen , vor allem, und das, wir gehen einfach in unsere schwarzen Staaten hier. Und wir werden diese JSON-Datei kopieren. Wir werden diese Kupfertreppe nennen, weil ich, wie ich schon sagte, zuerst die Treppe machen werde. Und ich werde, weißt du, wir sind wir, wir wissen das, oder? Es ist wie ein Variantenmodell. Ja. Nun, harte Liebe. Das ist, so sieht es für die Treppe aus. Also, das, der Kern davon ist im Grunde, das definiert, wie die Treppe aussieht, oder? Das Modell der Treppe wird im Wesentlichen dadurch definiert. Ja, es ist, es ist ein wenig viel Rate. Deshalb habe ich gesagt, dass es am Ende des Tages eine Menge Kopien sein wird.
Es wird sein, dass es ein wenig mehr ist, als Sie vielleicht denken. Aber natürlich sind wir noch nicht fertig, weil dies nur die Bloch-Staaten sind. Wir müssen auch ein paar Dinge in Blöcke kopieren. Das erste, was wir haben werden, ist die Kupfertreppe. Und stellen Sie sicher, dass es richtig geschrieben ist. Weiche Jason aus. Ja. Und das wird das sein. Und eigentlich ist das nicht zu schlecht Rate. Im Grunde betrachtet man nur, welche Texturen unten, oben,
auf, an den Seiten gezeigt werden. Das ist nicht so schlimm. Und dann brauchen wir noch zwei weitere in diesen Blöcken. Also in den Modellen eins, wir brauchen Treppen, betreten. Und das wird im Grunde die einzige Änderung sein wird, dass dies wird, dies wird innere Unterstriche Treppen anstelle von Treppen. Und dann werden wir, wieder einmal auch die äußeren Sphären haben. Und das ist natürlich notwendig, wenn Sie etwas haben, das auch mit etwas anderem verbunden ist. Das Letzte, was wir brauchen, ist die Artikeldefinition hier. Und das ist zum Glück, wie wir tatsächlich von diesem hier kopieren. Das wird eigentlich die einfachste von allen sein. Ich mache Kupfer Sears ist die einzige 11 oben, die ich nicht kopieren werde, weil das so einfach ist. Und dann werde ich blockieren und dann Trichter lenken. Also sind es im Grunde nur Referenzen, wieder einmal, zurück auf das Modell dieses, das im Grunde als auf die Texturen verweist. Und für die Treppe ist das alles. Nun, das ist, es ist natürlich ein relativer Begriff, oder? Denn das ist, das ist ziemlich viel. Und dann haben wir tatsächlich 12345 verschiedene, fünf verschiedene Dateien, die wir nur für die Treppe brauchen. Und für viele der anderen
gibt es auch mindestens vier, gibt es auch mindestens vier, vielleicht sogar fünf verschiedene JSON-Dateien, die wir tatsächlich erstellen müssen. Aber zuerst schauen wir uns die Treppe an. Und dann werde ich dir den Zaun zeigen ,
denn das ist einer der anderen, der etwas schwieriger ist. Und dann sind die anderen, die Dateien alle, natürlich wieder, als Ressourcen verfügbar. Und dann solltest du versuchen, sie selbst zu machen. Denn wie ich schon sagte, viele von ihnen kopieren sich einfach. Es gibt also nicht so viel, so viel zur Magie. Okay, lass uns, wir werden mehr schaffen und weg von den Zombies. Und mal sehen, da gehen wir. Also sind die anderen übrigens drin, richtig. Also haben wir die Kuppelplatte, die Druckplatte, das Zauntor und den Zaun. Und aber nur die Treppen haben das gleiche wie ein ein Item-Modell, wie wir sehen und es sieht gut aus. Sie können sie tatsächlich platzieren und es funktioniert ohne ein Problem. Sie verbinden sich auch. Und wir können sie so platzieren. Nein, du gehst so. Und so gehen wir. Richtig. Sie funktionieren also wie ganz normale Treppen, wie Sie alle anderen Sears gerne hätten. Jetzt wieder, natürlich, am Ende,
wenn wir sie haben, werden
sie nichts fallen lassen, weil keine Lu-Tische, die an uns passieren werden. Das ist natürlich sehr, sehr wichtig, auch hinzuzufügen. Und es gibt noch kein Handwerksrezept für sie. Das müsste also auch hinzugefügt werden. Wenn dies etwas ist, das wichtig ist. Wenn du wirklich den Modus gestartet hast, dann bist du bewusst wie,
wie ich unser Rezept würde, oder? Also die Treppe, wie Sie sehen können, nicht das Verrückteste. Also werden wir das alles schließen und dann machen wir das Kupferdelikt und das Verteidigungstor. Und ich werde ein bisschen einfacher für mich selbst machen. Ich werde nur die komplett beaufsichtigten kopieren. Dies wird der Blockstatus sein. Entschuldigung. Wir ziehen uns rüber. Ich werde es ihnen zeigen. Es wird also kopiert werden. Ja, bitte. Der Zaun sieht also so aus. Wieder einmal stehen alle Dateien als Ressource zur Verfügung. Und dann haben wir auch das Zauntor, das
ein bisschen komplizierter ist . Nehmen wir an, dass dies in diesem Fall tatsächlich ein Multipart ist. Natürlich können Sie auch sicherstellen, dass dies Ihre MIT ID ist, oder? Also, wenn Sie nicht den MC-Kurs Malady verwendet haben, natürlich, ändern Sie dies und stellen Sie sicher, dass die, diese Namen tatsächlich korrekt sind. Nun, dann brauchen wir auch für den Zaun. Ich meine, das ist wahnsinnig, oder? Also in den Blöcken für den Zaun, wir brauchen. Der Zaun Tor Defense öffnet sich. Der Zaun wird Mauer und die Zaunmauer geöffnet. Das sind also diejenigen, die wir hier brauchen werden. sind einfach nur für
diesen, diesen, diesen und diesen. Richtig. So Tor öffnen, Tor Wand und Wand öffnen. Und dann für den Zaun brauchen wir noch drei weitere. Wir werden das Zauninventar,
Zaunpfosten und Fen Seite brauchen , wie ich schon sagte, in und für sich sind nur die Bloch-Staaten wirklich die Verrückten mit dem Inhalt von ihnen ist verrückt. Die anderen sind, sind sehr leicht zu verstehen
, und das Gefühl, dass sich nur die Eltern wirklich ändert. Das ist also Fencing-Inventar, so würde der Zaun im Inventar aussehen. So sieht der Zaunpfosten aus. So sieht die Seite des Zauns aus. Und jetzt für den Zaun brauchen
wir wirklich gut, vor allem brauchen wir auch die Einzelteile. Das ist wieder einmal, nicht das. Ich meine, eine sehr wichtige für den Ka'apor Zaun, Sie verwenden das Inventar eins und für das OR Tor im Inventar verwenden Sie normalen Kupferunterstrich,
Unterstrich acht, um als Elternteil zu referenzieren. Nun, es gibt noch eine Sache, die wir in diesem Fall hinzufügen müssen, damit unsere Zäune tatsächlich miteinander verbunden sind. Und das heißt, wir brauchen einen neuen Ordner neben unserem Datenordner genau hier. Und das wird eigentlich ein Verzeichnis namens Minecraft sein. Vielleicht haben Sie davon gehört. Ich bin mir nicht sicher, aber wir wissen, dass das ein kleines Spiel ist, von dem man spielt, wie 120 Millionen Menschen schwere Leber sind. Innerhalb dieses Ordners werden
wir einen anderen Ordner namens Tags erstellen. Und innerhalb dieses letzten Ordners rufen
wir Blöcke an. Und in diesem, diesmal muss es tatsächlich Plural sein. Also muss es das S an den Endblöcken haben. Und da drin werde ich eine neue Datei namens fancies dot JSON erstellen. Und hier müssen wir einfach die hinzufügen, diese Zeile, wo der Wert innerhalb der Werte Kupferzaun tatsächlich hinzugefügt wird. Und dann, wenn alle Dateien hinzugefügt wurden, und wenn ich nichts verpasst habe, dann sollten wir in der Lage sein, die Zäune in Aktion innerhalb von Minecraft zu sehen. Nun, wie ich schon sagte, sind dies eine Menge Dateien, die erstellt und hinzugefügt werden müssen. Deshalb werde ich sie alle als Ressourcen haben. Und es ist besser für Sie, sie einfach zu nehmen, sie zu
kopieren und sie wahrscheinlich zu sehen. Und nachdem wir unseren Zaun im Spiel sehen, werde ich Ihnen tatsächlich zeigen, wo Sie sie auch bekommen können,
wenn sie zum Beispiel jemals verloren sind oder, wissen Sie,
wenn Sie sie nicht finden können oder was auch immer passiert, ich zeigt Ihnen, wo Sie sie tatsächlich finden. Mal sehen. Das ist also ziemlich gut. Schon. Wir werden das und das hier sehen. Jetzt natürlich können die Namen sehr einfach mit innerhalb unserer Lang Ordner geändert werden, sie EN uns angrenzende Datei, wo wir die Namen hinzugefügt haben. Jedes Mal. Ich habe diesen Schritt gerade übersprungen. Also lassen Sie uns hinzufügen, das dann am Tor geführt und lassen Sie eine andere. Das funktioniert also perfekt. Und natürlich ist das Tor offen, unmöglich, wie man es erwartet. Und jetzt lasst uns einen weiteren Zaun platzieren und sie verbinden sich. Ist das nicht großartig? So verbinden sie sich mit den beiden 12 Blöcken, wie es bei Straftaten üblich ist. Und sie haben sich mit Zäunen selbst verbunden. Jetzt würden sie sich nicht mit anderen hölzernen Zäunen verbinden? Ich glaube. So. Holen wir uns einfach einen Zaun hier. Wir haben eine Straftat. Sie sollten nicht miteinander verbunden sein. Ja, das tun sie nicht. Richtig? Also würden sie sich nicht verbinden. Das ist eine sehr wichtige Sache zu beachten, oder? Also, wo bekommst du die anderen Dinge, die du brauchst, oder? Flow vor allem, für die anderen hier. Also für die Druckplatte in der Platte, werden
Sie tatsächlich den Endknopf bekommen? Ja, die Schaltfläche, ich habe tatsächlich einen Knopf hier hinzugefügt. Unglaublich. Das ist C, das ist das. Ich meine, aber der Knopf ist eigentlich ziemlich einfach als auch, geht hier ruhig und will NAT-Taste sehen. Jetzt machen wir hier einen Kupferknopf. Ich meine, an diesem Punkt noch Knopfblock und das war's. Ich meine, sollte nicht sein, sollte nicht zu verrückt sein, um irgendwelche zwei Adder hinzuzufügen, weißt
du, irgendwas von diesen Dingen. Jedenfalls. sind also einige von denen, die diese Nicht-Block-Blöcke sind. Und wo finden Sie zum Beispiel diese Bloch-Staaten? Nun, Sie können hier runter zu externen Bibliotheken gehen. Und dann, wenn Sie den 1.8em Ordner direkt in dort öffnen, wir tatsächlich gehen, um tatsächlich, das ist nicht richtig. Das ist nicht einmal der 18-Ordner. Wir gehen sogar noch weiter, aber wir müssen an der 18 Mappe vorbei gehen. Und wir werden für ein Netz Minecraft Client extra
ein suchen und dann natürlich die Minecraft-Version. Und im Inneren gibt es Client extra jar, das ist die Wurzel, und dann gibt es Vermögenswerte und dann diese Minecraft, und dann gibt es Bloch-Staaten. Und dann haben Sie alle Block-Sets von allen verschiedenen Dingen, richtig? sind also alle angrenzenden Dateien, die eigentlich für Minecraft, Vanille sind. Ordnung. So können Sie einfach zu den Akazien gehen. Zum Beispiel können Sie sagen, sehen Sie die Akazientür. Und dann kannst du das einfach kopieren. Jetzt, wie Sie sehen können, die Tür, verrückt kompliziert als auch, weil es auch Scharniere und sie müssen wissen, wo sie drehen und, und alle möglichen Dinge. Also, weißt du, kopiere das alles. Wir sollten Minecraft in Ihre MOD-ID ändern. Und natürlich auch dann der Name der Akazie, wahrscheinlich zwei, zum Beispiel Kupfer. Wenn Sie eine Kupfertür haben wollen oder was auch immer Sie dem Spiel hinzufügen möchten. All diese Dinge können einfach hinzugefügt werden. Seien Sie natürlich sicher, zum Beispiel, wenn Sie eine Falltür Rate hinzufügen möchten, dann gehen Sie auch in die Daten. Nein, das ist nicht richtig. Nein, nein, es ist richtig. In das Modell. Sorry, natürlich, ich echte Agentur, die mehrere Modelle Block. Und dann suchen Sie auch nach der Akazie. Und dann werden wir sehen, wie Akazie unten gefangen ist, offen oben, rechts. Das sind also einige Dinge, auf die Sie achten müssen. Jede dieser Dateien hat tatsächlich zu Ihrem eigenen Verzeichnis hinzugefügt, oder? Das ist also nur etwas sehr gutes zu beachten, dass Sie tatsächlich die Originaldateien betrachten können, einfach kopieren und einfügen. Es gibt in diesem Fall wirklich keinen anderen Weg, es zu tun. Cuz ich nahm richtig, wie alles, was hier drin ist zu erfassen. Das wird wahrscheinlich wie ein 20-stündiger Kurs dauern, oder? Denn das ist natürlich genau so, wie etwas in diesem Fall umgeht. Wir werden uns damit nicht beschäftigen. Was wir tun werden ist, dass wir wissen, wie man diese Dinge hinzufügt. Nun, wie ich schon sagte, wir haben die Treppe, die
Straftat und das Verteidigungstor hinzugefügt . Nun, die Block-Taste drücken gespielt und Platte. Ich würde vermuten, dass Sie es wahrscheinlich alleine machen können. Wieder einmal, wenn es irgendwelche Probleme gibt, auf die Sie stoßen, können Sie sich frei fühlen, mich zu kontaktieren oder mir eine Frage zu stellen. Sehr wichtig für die Platten. Was ich einfach erwähnen möchte, müssen
Sie sie auch in den Block-Ordner für die Tags hinzufügen. Aber das ist zum Glück auch etwas, dass innerhalb des Netzes Minecraft man, Sie können tatsächlich sehen, was sie sich in ihre Blöcke Tags hinzugefügt haben. So können Sie tatsächlich sehen, dass es eine Menge Dinge gibt, die sie
hinzugefügt haben und einige Dinge hinzugefügt werden müssen, einige nicht. Und ja, also insgesamt, Das sind
die, sagen wir Nicht-Block-Blöcke. Und wie immer, zögern Sie nicht zu fragen, ob es irgendwelche Fragen gibt. Und ja.
53. (Minecraft): Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in dieser Vorlesung werden
wir unsere eigenen Konfigurationsdateien erstellen. Möglicherweise werden Sie etwas in Ihre Mod hinzufügen, das Sie tatsächlich vielleicht den Benutzer die Kontrolle haben wollen, oder? So zum Beispiel die Geschwindigkeit, mit der vielleicht eine Ernte wächst oder ein Gegenstand riecht oder etwas in dieser Natur. Und was wir tatsächlich tun können, ist,
dass wir tatsächlich Ihre Konfigurationsdatei erstellen können, die dann der Endbenutzer r ändern kann. Das haben Sie wahrscheinlich gesehen. Und dafür werden wir eine neue Java-Klasse innerhalb unseres util-Pakets erstellen, das wir config nennen werden. Und jetzt gibt es Konfliktklausel wird ein wenig wackelig aussehen, aber keine Sorge , wir können tatsächlich, wir können tatsächlich durch die gehen, also zuerst, wir werden eine öffentliche Statik machen und dann werden wir eine Konfliktspezifikation für feste Spezifikation schmieden, richtig? Und das wird der Serverkonflikt sein, denn wir brauchen separate Konflikte für den Server und den Client. In diesem Fall ist es eigentlich noch keine der Serverdinge berührt. Aber mach dir keine Sorgen darüber. Es ist besser, es in diesem Fall
für alles zu tun, damit es einfacher ist, später hinzugefügt zu werden, oder? Und dann werden wir Spezifikationspunktwert haben. Das ist ein, das ist das Beispiel, das ich geben werde. Also, was wir tun werden, ist, dass wir eine,
das Wort Glühen Dauer haben . Also, wenn Sie sich erinnern, haben wir das Ereignis hinzugefügt, dass, wenn Sie tatsächlich ein, schlagen ein Schaf mit und mit dem Corporate Apple, dann werden sie einen Glüheffekt bekommen. Und dieser Effekt, wir hatten eine Dauer gesetzt. Und auch wenn Sie den Apfel essen, haben
Sie auch eine 50% Chance, diesen Effekt zu erhalten. Und in diesem Fall, was wir tun werden, ist, dass wir tatsächlich
diese Kupferglühdauer als einen Konflikt haben , der geändert werden kann, oder? Dann werden wir hier einen statischen Block erstellen. Und innerhalb dessen, was wir machen werden, werden wir einen,
einen vierten Konflikt-Spezifikationsgenerator erstellen , der der Server-Builder sein wird. Das wird ein neuer Baumeister. Und dann kopieren wir das. Und das wird der vom Kunden gebaute IN-Builder sein. Und wir werden eine neue, neue Methode unten haben,
die privat, statisch, leere, glühende, Dauer sein kann . So werde ich es nennen. Sie können es theoretisch nennen, wo immer Sie wollen. Und das wird Zusammenführungskonflikte Spezifikationsbuilder haben. Das wird also einen Server-Builder nehmen. Und auch ein Baumeister. Nicht Konfliktbauer, sondern ein Kunde, ein Baumeister, ein Ego Bilder? Ja, Sir. Hey, wir gehen. Und im Inneren von dort werden wir das jetzt spezifizieren. Dies wird also die eroberte Ladedauer gleich sein. Und jetzt werden wir den Client builder.com verwenden. Und jetzt ist das sehr wichtig. Was wir hier eigentlich tun werden, ist, dass wir nicht einlesen werden, nun, wir werden in einer Konfigurationsdatei lesen, aber wir werden auch eine Konfliktdatei schreiben, richtig? Dies ist also sehr wichtig, da die Konfliktdatei nicht existiert. Wir haben tatsächlich Recht, wenn es existiert, lesen wir es aus. Dies ist also im Grunde der Kommentar
oberhalb des Wertes oder der Variablen, die wir definieren werden. So ist zum Beispiel, wie lange das Glühen für vier Kupferäpfel dauert, oder? Und ich werde sagen, die Aufnahme, weil dies die Menge an Zeit ist, die es braucht. Und dann werden wir auch in Reichweite definieren. Das ist also sehr wichtig, oder es ist nicht wichtig, aber es ist eine gute Idee, dies zu tun. So unten, Dauer wird der Name des sein, was der Benutzer. Grundsätzlich wird es sehen, dass wir das bald genug sehen werden. Und wir haben einen Standardwert eines Blattes. Unser Standardwert war 600, wenn ich mich nicht irre. Nun, hier sind es 300. Innerhalb unserer Veranstaltungen es wahrscheinlich 600, nur ja, hier sind 600. Also bleiben wir einfach bei 600. Wir werden sagen, dass das Minimum 100 sein muss. Und dann wird das Maximum einfach ganzzahliger Wert sein. Also ist es im Grunde, wissen Sie, dass wir tatsächlich sehen, was es ist. Ja, ja, 2 Milliarden und noch etwas mehr. Also, ja, in der Theorie, dass dies der Maximalwert wäre. Man könnte auch sagen, naja, ich meine, wenn es keinen Sinn macht, so etwas zu haben, aber für unsere Zwecke werden wir den maximalen Wert je nach Art und Weise machen, welche Variable Sie setzen möchten. Zwei sind das Vernünftige. Und die nächste Methode, die wir implementieren, ist eine öffentliche statische Void. Und wir werden das die Ladekonfigurationsdatei nennen. Hier werden wir eine Konflikt-Spezifikation übergeben, die Konflikt sein wird, und eine Feder, die SNP mit einem Pfad zur Datei. Nun, dies wird eine kommentierte Dateikonfiguration sein, die die Datei sein wird. Wir gehen zum ganzen Baujahr mit einer neuen Akte. Mit dem angegebenen Pfad. Wir machen eine Synchronisierung, automatische Speicherung und dann einen Schreibmodus,
Schreibmodus, Punkt-Ersetzen. Und dann werden wir das bauen. Eigentlich muss ich auch die Klasse von java.io implementieren, also java.io Datei. Und dann, wenn das geschrieben ist, müssen
wir tatsächlich per Last schreiben. Und dann Konfliktpunkt-Set-Konfigurationsdatei. Sie, wir gehen, richtig. Wir werden dies tatsächlich von unserer MC CourseSmart Klasse nennen, aber wir sind noch nicht zu 100% fertig. Also wie sehr kurze Zusammenfassung, was das im Grunde tut, ist, hey, wenn die Datei existiert, ersetzen, wenn die Datei existiert, lesen Sie sie, wenn sie nicht schreibt. Das ist wie die grundlegendsten Formen, die wir hier annehmen oder in denen ich es erklären kann. Wir werden die Globusdauer mit
dem Server-Builder und dann dem Client-Builder aufrufen , der webt. Ich bin hier implementiert. Und dann am Ende werden wir auch sagen, dass
der Server-Config-Server-Konflikt, nicht der Server. Die Serverkonfiguration wird gleich dem Server Builder sein. Und dann wird dasselbe mit dem Mandantenkonflikt hier oben passieren. Das wird also der Client-Builder-Punkt sein. Richtig. Jetzt ist die Konfigurationsdatei tatsächlich vollständig fertig. Wenn Sie eine neue Variable hinzufügen möchten, müssen Sie sie
natürlich zuerst hier als öffentliche Statik,
Forge, Konfliktspezifikation und dann
int-Wertoder einen doppelten Wert oder einen beliebigen Wert hinzufügen Forge, Konfliktspezifikation und dann
int-Wert . Und dann müssen Sie es auch hier tun, damit es tatsächlich in die hinzugefügt wird. Was immer du willst. Nun, entweder können Sie hier
eine Methode erstellen und diese glühende Dauer nicht aufrufen. Nennen Sie es zum Beispiel kein int, vielleicht IntValue-Initialisierung oder so etwas. Oder Sie können eine neue Methode für jede Ihrer , konfigurierbaren Variablen erstellen,die Ihnen überlassen ist. Das heißt, weißt du, es gibt keine, es gibt keinen festen Weg in diesem Sinne. Was auch immer Sie bevorzugen und wie Sie diese am besten lesen können wäre am besten für Sie jetzt auf den MC, schlimmer MOD plus. Zuallererst werden
wir am Anfang darauf laden. Wir werden das Laden des Context-Punkts tun. Und dann werden wir Konflikte registrieren, Schlammkonflikt, diese Art. Wir müssen tatsächlich den Typ des Clients oder Servers angeben. Jetzt gibt es noch einen anderen Typ
, den wir hier sehen werden. Also, wenn ich das ändere, haben wir eigentlich auch gemeinsam. Dies ist etwas, das sowohl auf dem Server als auch auf dem Client konfiguriert werden würde. Aber die sind, würde
ich auch ein wenig fortgeschrittenere Dinge argumentieren. Dann müssen wir etwas zwischen diesen beiden tun. Und dies wird die Konfigurationspunktladekonfliktdatei sein. Ich werde sagen, Konflikt seltsam, Client-Konflikt, FLM-Pfade. Das ist also im Grunde der Pfad config lieber
gibt einfach das Verzeichnis an, in dem die Konflikte dot get sind, und dann werden wir lösen. Und im Inneren von hier können wir eigentlich einfach einen,
den Namen unserer Client-Konfigurationsdatei schreiben . So zum Beispiel, MC Kurs dash Client dot Tamil. Aber das sollte ein Diatom sein, eine Akte. Und dann machen wir zwei Saiten. Ja, da gehen wir. Und dann werden wir das kopieren und das gleiche für den Server noch einmal mit Ihrem tun, und dann nennen wir das einfach die EMC-Server bescheiden. Und jetzt, wenn wir wirklich etwas getan haben, alles in Ordnung? Und ich glaube, das haben
wir, wir werden das Spiel laufen. Und dann werde ich Ihnen zeigen, wo die Hmmm FEC generiert wird und wie auch, wie wir beispielsweise auch in
den Schrank auf den Corporate Apple MD Events umsetzen können . Lassen Sie uns dieses Laden einfach sortieren. Also haben wir hier das Hauptmenü. Und dann werden wir sofort aufhören. Und jetzt innerhalb des Laufordners hier oben, anstelle des Konfigurationsordners hier sehen wir tatsächlich, dass wir
AMC Force Client und MC4 Server haben . Und im Inneren von hier, genau das, was wir getan haben. Wie lange der leuchtende Verlust für die Tasse Ebene und Zecken Bereich mehr als 100. Und dann können wir das auch ändern. Nun, wir wollen es auch hier ändern, oder? Also diese Dauer, und das ist so einfach wie die Eingabe von Konfliktpunkt bedeckt die Ladedauer. Jetzt ist das ein int-Wert und wir wollten in, das ist, warum wir tun müssen. Und da gehen wir. Das war's. Das ist alles, was wir tun müssen. Mehr Veranstaltungen. Wir können genau das Gleiche tun. Also haben wir Konfliktpunkt Hubbard niedrig in der Dauer, dot get. Und dann gehen wir. Und das ist alles, was wir tun müssen. Und jetzt hat der Effekt tatsächlich eine variable Dauer, die wir hier einstellen können, oder? Also können wir sagen, es sind 600 oder wir können sagen es sind 50 Tausend oder 500 Tausend spielt keine Rolle. Wir können, wir können tun, was wir wollen. Und in diesem Fall kann
der Benutzer auch tun, was er will. Was eigentlich ziemlich cool für eine Menge Dinge ist. Und es ist so einfach, wie einfach Konflikte zu machen. Und dann der Name der Variablen, die Sie angegeben haben. Und das war's. Das Gute daran ist auch, dass diese wie völlig verschiedene Codestücke sind. In diesem Fall können wir sicherstellen, dass sie immer den gleichen Wert haben. Du könntest vielleicht denken, dass wir diesen Schrankglühen hatten. Dauer ist vielleicht Referenz an 18 verschiedenen Orten. Nun, wenn Sie die tatsächliche Nummer dort jedes Mal geschrieben haben, richtig. Als eine Anzahl von 300 oder 600. Nun, das zu ändern wäre gut, ziemlich viel Arbeit, nur weil du vielleicht nicht einmal weißt, wo, an welchen Orten du diese Nummer tatsächlich begangen hast . Also ist es sehr nützlich für das auch, und auch für Konflikte, richtig? Ja, das ist im Grunde alles für die Konfigurationsdatei, die ich hier abdecken wollte. Und noch einmal, zögern Sie nicht zu fragen, ob es irgendwelche Fragen gibt. Und ja.
54. (Minecraft) Exportieren deinen Mod: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag, Ich werde Ihnen tatsächlich zeigen, wie Sie Ihre MOD hinzufügen in eine JAR-Datei
exportieren, die Sie dann im Grunde in einem MOD-Paket oder in,
oder eine normale Version von Minecraft verwenden können. Und das wird eigentlich ziemlich einfach sein. Du gehst einfach hier runter zum Terminal und du wirst Gradle w eintippen, bauen. Das war's. Geben Sie ein. Und dann warten wir nur noch ein bisschen. Also wird er alle möglichen Dinge im Hintergrund machen, die er kompilieren wird. Und das heißt, es ist im Grunde alles, was passieren musste. Und jetzt müssen wir tatsächlich zum Verzeichnis hier navigieren. Und wenn wir das tun, können wir das wirklich sehen. Also werden wir einfach schnell,
ich werde schnell von dem anderen Tag gehen wir da sind wir, richtig, also das ist das Verzeichnis. Und im Inneren von hier können
wir zum Build-Ordner gehen. Statt der Rechnung für Rho, gehen wir ins Leben und statt hier haben wir MC schlechter und dann Inversion ein Glas. Nun, wie wir das wirklich nutzen können, nun, was ich tun werde, ist, dass ich zum Zuckungsstart gehe. Ich werde tatsächlich ein benutzerdefiniertes Profil erstellen. Ich werde dir das zeigen. Das ist also der Zuckungsstart, wo wir
zum Beispiel noch ein paar Packs haben, die ich bereits gespielt habe. Und dann im Inneren von hier werden wir tatsächlich
ein neues Profil mit Version drei dort erstellen . Und wir verwenden tatsächlich die, wir haben tatsächlich 3410 verwendet
, weil das die Version war, die wir zu Beginn des Kurses heruntergeladen haben. Und Profil, es wird einfach Mc sein. Schlimmer noch, testen Sie, schaffen Sie diese Ladung von wenigen Dingen. Und dann hier können wir eigentlich Ordner öffnen und dann einen neuen Ordner hier bekommen. Und anstelle von Mods können
Sie einfach Folgendes tun. Sie können dieses Glas einfach nehmen, kopieren Sie es, fügen Sie es in Modelle ein, und das war's. Und dann spielen. Jetzt schauen wir mal, ob das wirklich funktioniert. Hier unten können wir sehen, dass dies das Profil ist, das wir machen wollen. Eigentlich bin ich bereits eingeloggt. Möglicherweise müssen Sie sich zuerst einloggen und dann spielen. Und mal sehen, was hier eigentlich passiert. Also wird etwas geladen und jemand wird sich öffnen. Aber ist es das, was wir wollten? werden wir sehen. Das werden wir sehr bald sehen. Also zuerst, natürlich, werden
wir wieder Musik bekommen, die für die Zwecke dieser Demonstration hier
abschalten. Und während wir drei Maslow haben und sich diesen MC-Modus ansehen, das ist verrückt. Lassen Sie uns eigentlich einfach eine neue Welt erschaffen. Kreativ wie schön. Ja, lass uns einfach eine neue Welt erschaffen und mal sehen, ob das wirklich funktioniert. Man könnte sich also vorstellen, dass dies natürlich auch
eine MEDPAC-Rate mit 120 Monaten,
allen Modi oder was auch immer sein könnte eine MEDPAC-Rate mit 120 Monaten, . Und dann können wir uns irgendwo wiederfinden während wir auf einer Insel antworten, die Hilary gehört. Ok. Nun, mal sehen. Natürlich ist der Kernschritt da drin. Und all die Dinge, die wir tatsächlich gemacht haben oder nicht getan haben, wie die Knöpfe auf den Platten. Ich hoffe, Sie haben das getan. Sie sind tatsächlich im Spiel ohne Probleme überhaupt. Wir können sie aufstellen. Sie haben die biotischen Trichterblöcke und wir haben a0, den Helm zum Beispiel. Der Helm, warte, los geht's. Das ist eigentlich anziehen. Da gehen wir. Nun, ist das nicht großartig? Und das ist eigentlich ziemlich nett. Ich meine, so exportiert man das Modell. Wie ich schon sagte, es ist keine schwierige Sache oder ziemlich kompliziert. Es ist ein, im Grunde ein Befehl, den Sie eingeben müssen. Und, und wenn Sie dies zu einem bestimmten Mods,
Mad Pack oder einem Profil hinzufügen möchten, oder Sie möchten, dass jemand anderen geben. Sie können geben, geben Sie ihnen einfach das Glas. Und dann können sie dies im Grunde einfach wie in jedem anderen Modell verwenden. Schreib. Dies fasst auch den größten Teil des Kurses zusammen. Ich habe danach noch einen Vortrag. Wir werden nur ein bisschen über einen Tipp reden, den ich für viele von Ihnen habe. Und dann wird es auch im Grunde die Vorlesung geben, wo ich sagen werde,
wie Sie, wie dieser Kurs abschließen wird und all das. Also ja, ich hoffe, dass alles hier für dich von Wert war. Ich hoffe, es hat dir gefallen. Ich würde natürlich eine Rezension zu schätzen wissen. Und ja.
55. (Minecraft) verwende Github für Source: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in dieser Vorlesung bin ich eigentlich nicht innerhalb der IDE. Ich bin eigentlich auf GitHub. Und der Grund, warum ich auf GitHub bin, ist eigentlich, weil ich Ihnen
ein paar Tipps zeigen möchte , die Ihnen bei der zukünftigen Entwicklung Ihres Modus helfen könnten. Wenn Sie tatsächlich tragen, machen Sie einen ernsthaften Modus mit echten Dingen und Sie tatsächlich wollen, um es zu schaffen, so dass es für die Öffentlichkeit freigegeben werden kann und sagen, richtig. Also, was Sie tun sollten, ist, dass Sie zu GitHub gehen, Sie könnten bekommen, Sie sollten ein Konto bekommen, es ist kostenlos. Und dann kannst du eigentlich nach deiner Lieblings-Mathematik suchen, oder? Ich habe drei meiner Lieblings-Mathe ausgewählt. Es gibt also immersive Technik, Mechanismen und mythische Landwirtschaft. Und diese drei sind eigentlich alle für die neueste Version
in unserem Fall aktualisiert , wo 1.16, drei jetzt. Und in diesem Fall können wir uns den Quellcode ansehen, den sie geschrieben haben, oder? Dass die Leute dieser Heiratsvermittler dort geschrieben haben. Also können wir hier einfach in die Quelle gehen. Also in immersive Engineering, und Sie können zu Haupt- und dann Java gehen. Und das sind im Grunde die gleichen Dinge, die wir selbst gemacht haben, oder? Das war, das war Java und dieser für uns war ruhig Copan Joe und ein immersives Engineering war MC Kurs für uns. Und dann hatten wir nicht die API, Client und den gemeinsamen Unterschied hier oder die Ordner, aber wir hatten unsere eigene Java-Datei, richtig? Und wir können uns das einfach ansehen. Dann können wir sehen, wie sie etwas gemacht haben, oder? Das haben wir also auch getan. Wir hatten einen öffentlichen Frühlingsausweis. Wir hatten nicht den MOD-Namen, wir hatten nicht die Mock-Version. Dies ist zum Beispiel etwas, das Sie tun könnten. Und dann gab es eine Menge Dinge hier drin, die wir noch nicht einmal berührt haben, weil andere Dinge verrückt
kompliziert sind , die so viel mehr Wissen über die Grundlagen und hier benötigen. Aber der beste Weg, um zu lernen, ist, etwas Neues auszuprobieren. Sie können auch versuchen, dies zu verzweigen. Sie können also einfach den Deforest,
den Quellcode eines dieser Modi herunterladen und ihn dann selbst starten, oder? Also haben Sie eine, Sie haben im Grunde den Quellcode
der Smarts dann heruntergeladen und Sie können einfach mit ihm herumspielen, oder? Sie haben also eine lokale Kopie davon. Du kannst damit herumspielen. Sie können den Code tatsächlich ändern, sehen, was passiert. Das ist also eine echte Sache, in acht Stunden wirst
du nicht dienächste immersive Technik oder den nächsten Mechanismus oder
die nächste mystische Landwirtschaft erschaffen nächste immersive Technik oder den nächsten Mechanismus oder . Es wird einfach nicht so funktionieren. Sie werden ein bisschen mehr
an Ihnen alle arbeiten müssen , die Sie gelernt haben, und Sie müssen auf dieser Rate aufbauen. Und das ist, ich denke, einer der besten Möglichkeiten, es zu tun. Gehen Sie durch diese Dateien, denken Sie an Ihre Lieblingsmasse, die Sie haben. Sieh sie dir an, sieh, wie sie es gemacht haben. Sie können im Grunde auch in die Vergangenheit zurückkehren, oder? So können Sie auch in eine frühere,
vorherige Versionen gehen hier bewerten, zum Beispiel. Oder Sie können mit diesem History Button im Grunde zurück in die Vergangenheit gehen. Also können Sie sehen, was sich geändert hat, in welcher Version und all das ist, dass Sie einfach durchgehen und sehen können ,
okay, wie war das Harris Arbeit und es wird manchmal schwierig sein, richtig? Wird es vielleicht sein oder ich verstehe das nicht, ich verstehe das nicht. Wissen Sie, es, alles kommt mit der Zeit. Dies ist natürlich auch der
Grund, warum ich gesagt habe, dass Java einfach eine Voraussetzung ist. Andernfalls werden Sie in diesem verloren gehen. Auf jeden Fall. Richtig, also lassen Sie uns einfach einen Mechanismus suchen,
nur um des Arguments willen. Also Mechanismus und dieser hier ist, ich glaube an Client, ich bin mir nicht sicher. Nein, es ist eigentlich gemeinsam. Nun, das werden sie. Carmen und der Mechanismus dot Java. Und dann können wir auch einige Dinge sehen, die er hat. Also Pakethandler, der Logger, wir, wir, wir, haben den Logarithmus schon mal gesehen. Und er hat auch Strahlenmanager, weil er tatsächlich
bereit Bestrahlung und Mechanismus hinzugefügt hat und sozusagen diese Dinge genau dort, wo wir gehen. Also haben wir diese Zuhörer, wir haben drei, Sie haben etwas sehr Ähnliches gesehen. Es gibt Ereignisse, die registriert sind. Also du oh, du wirst immer eine Art von
Ähnlichkeiten von Dingen sehen , die du schon gesehen hast. Aber natürlich werden Sie vielleicht sehen, alles, was ich gesehen habe, dass ich das nicht gesehen habe, das ist interessant. Und in diesem Fall können Sie auch, das ist wirklich cool, denn was Sie tun können, ist, dass Sie
tatsächlich über diese bewegen und dann auf sie klicken können . Und dann zum Beispiel, wenn Sie wissen wollen, wie
funktionieren die Tank-Multi-Block-Daten? Weißt du, du könntest einfach da reingehen und jetzt bist du auf den Tank-Multi-Block-Daten, Java, der Java-Datei. Und dann könntest du es dir ansehen, oder? Sie können sich alle möglichen Dinge ansehen. Nun, noch einmal, das wird nicht etwas sein, wo man es anschaut. Und in einem Fall wirst
du alles richtig verstehen. Sie müssen das tatsächlich durcharbeiten und, und schauen Sie es ein wenig und auch etwas versuchen, richtig? Weil man nicht etwas lernen kann, wenn man es nicht ausprobiert, und wenn man etwas nicht anpasst und wenn man daran arbeitet, richtig, das ist im Grunde ein Anstoß, den ich dir auch geben möchte. Nur um, um einfach zu versuchen, probieren Sie
einfach Dinge aus, um kreativ zu sein und nicht entmutigt zu werden, auch wenn es manchmal nicht funktioniert. Und wenn Sie wirklich ein Modell erstellen möchten, empfehle ich sehr, sehr,
sehr, sehr,
betrachten Sie die Modi, die Sie mögen. Vielleicht sogar das, vielleicht wollen Sie diesen Mod haben und Sie wollen ein wenig ändern oder einfach nur Ihre Kreativität wirklich die seltsamen Grenzen, um diese andere als Ihre Kreativität, was Sie denken können. Also geh da raus, du weißt schon, erschaffe ein Killer-Modell. Ich würde es lieben. Und natürlich, das Wichtigste, wenn Sie tatsächlich einen wirklich erstellt haben, wirklich Januar, senden
Sie mir bitte einen Link oder eine Vorschau oder sogar ein GitHub-Repo dazu, weil ich es gerne sehen würde. Ich würde es gerne sehen. Also, und ja, ich denke, das ist es vorerst. Ich hoffe, dass der Kurs für Sie von Interesse war und Sie tatsächlich bekam. Vielleicht hat ein Feuer angefangen. Und dass man eigentlich etwas erschaffen will und dass man hier etwas lernt. Und ja.
56. (Minecraft) verwende GitHub als Verdichtungssystem: Alles klar, willkommen zurück zum Mikrowellen-Kurs. Und in diesem Vortrag werden wir einen kurzen Blick darauf werfen, wie Sie Ihr Git-Repository
importieren oder hochladen können . Also Ihr Minecraft mod zu einem GitHub-Repository. Jetzt gibt es zwei Dinge, die sehr wichtig sind. Als ob ich Ihnen kein, sagen
wir ein theoretisches Verständnis von GitHub geben werde. Das ist nicht das Gute im Allgemeinen. Das ist nicht der Sinn dieses Vortrags. Der Sinn dieser Vorlesung ist nur, Ihnen zu zeigen, wie Sie es zu GitHub hinzufügen können. Und ich werde Ihnen jedoch drei Links als Ressource geben. Einer ist natürlich github.com. Ich würde sagen, dass dies am sinnvollsten ist. Sie benötigen ein, ein Konto dort, aber es ist völlig kostenlos, so dass keine Sorgen gibt. Ich werde Ihnen auch diesen Link zum JetBrains.com geben. Das ist also eine intelligente Idee,
im Grunde, wie man ein Git-Repository einrichtet. Da. Es wird im Grunde genau erklärt, was ich hier erkläre wird dort viel genauer erklärt. Und dann werde ich Ihnen auch den Download-Link geben. Vergiss, jetzt bin ich nicht 100% sicher, dass du das brauchst weil ich denke, dass bis j mit Git selbst kommt, aber ich bin nicht 100% sicher. Wenn also etwas nicht funktioniert, müssen
Sie dies möglicherweise herunterladen, aber durchgehen. Wir sind wahrscheinlich mit diesem, mit dem, diesem Tutorial oder mit meinem Vortrag hier zuerst. Und wenn zum Beispiel sagt, hey, du hast Git nicht installiert, dann kannst du Git installieren. Sonst würde ich nicht, ich würde mich nicht damit beschäftigen. Richtig. Das ist also im Grunde die Präambel hier. Und dann lasst uns, lasst uns das machen. Zunächst einmal möchten
wir ein neues Repository erstellen. Also auf GitHub sehen wir diesen neuen Button hier. Wir werden hier klicken. Und wir werden Repository-MC-Kurs sagen. Natürlich. Das macht Sinn. Wir lassen die Beschreibung leer und machen das, machen es privat. So können Sie wählen, um eine öffentliche oder
private zu machen , nur um sicher eine Öffentlichkeit zu sein, jeder kann es sehen. Und privat können Sie wählen, wer es sehen kann, oder? Alles andere, was wir nicht brauchen. Also lasst uns einfach ein Repository erstellen. Und da gehen wir. So schnelles Setup, das bedeutet einfach, dass es hier im Moment nichts gibt. Also haben wir keinen Zweig, wir haben nichts drin, und das ist im Grunde genau das, was wir wollen. Also, was wir dann tun werden, ist, dass wir das hier kopieren, richtig? So können wir einfach auf diesen Kopier-Button klicken und dann wird es diesen HTML kopieren. Es gibt eher die URL. Und dann gehen wir in unser MC Kurs MOD Projekt. Innerhalb von hier wollen wir zunächst zu Dateieinstellungen gehen. Und dann unter Versionskontrolle in GitHub möchten
Sie Ihr GitHub.com-Konto hinzufügen. Klicken Sie einfach auf das Plus-Button. Und wenn Sie gehen, denke
ich, Sie könnten entweder eine dieser Token-Reihenfolge über GitHub ausführen und dann wird es Sie auffordern, sich bei GitHub anzumelden. So funktioniert alles medizinisch, Sie müssen Ihr Passwort nirgends eingeben, außer für GitHub selbst. Und das sollte dann funktionieren, und dann solltest du dein Konto da drin haben, richtig? Und sobald das da drin ist, können
Sie hier rauf zu VCS gehen, so dass für Versionskontrollsystem. Und wenn Sie dann in die Importversionskontrolle gehen, sagen
Sie, erstellen Sie ein Git-Repository. Und was Sie tun können, ist, dass Sie Ihr,
Ihr Verzeichnis, in dem Sie Ihre Mod i_n haben, auswählen . Also sollte eigentlich standardmäßig ausgewählt werden. Klicken Sie auf OK. Und dann, was passieren wird, ist eine Menge Zeug hier wird rot werden. Mach dir keine Sorgen. Das ist alles normal. Und dann hier oben, wo Sie tatsächlich gehen, um in einigen neuen Schaltflächen Pop-up zu sehen. Das sind ein paar gute Knöpfe. Und in der rechten unteren Ecke sehen Sie den Meister. Das ist also dein Zweig, den du haben wirst. Eine Menge Dinge werden auftauchen. Mach dir keine Sorgen. Das ist, das ist alles in Ordnung. Jetzt bedeutet das Rot nicht, dass es Pfeile gibt. Das bedeutet einfach, dass Sie sie nicht engagieren. Und das werden wir gerade jetzt tun. Also, was wir tun werden, ist, dass wir zu diesem gehen, zum, zum Häkchen und Commit sagen. Und wir werden nur darauf klicken. Und dann wird es sagen, wir haben eine 182 Inversionsdateien. Wir werden die nur auswählen. Und dann werden wir sagen, das ist unser anfängliches Commit. Hier unten können Sie sehen, Meister davon
wird im Inneren des Master-Zweigs sein. Das ist völlig in Ordnung. Wir können das hier lassen. Und dann werden wir auf Commit klicken. Jetzt wird er die Dateien zum Versionskontrollsystem hinzufügen. Jetzt schaut er sich die Analyse an, sagen wir,
oh, hier ist der Code, Fein. Gibt es Pfeile da drin? Sind die Warnungen da drin. Es wird uns sagen, dass es jetzt ein paar Warnungen gibt. Mach dir deswegen keine Sorgen. Wir werden uns nur verpflichten. Warnungen sind meistens die Dinge, die wir haben, wir haben ignoriert. Denn manchmal gibt es Warnungen, die wir ignorieren müssen. Und manchmal unterdrücke ich die Warnungen einfach nicht mit einer, mit einer Anmerkung. Wir sollten das wahrscheinlich tun, aber es ist nicht notwendig, oder? Und jetzt, wie Sie sehen können, wird
nichts mehr gelesen. Aber wenn wir zurück zum gehen, wenn wir zurück zum GitHub gehen, wenn wir das neu laden, gibt es hier nichts. Also, und wir hatten eine haben noch nicht einmal die,
setzen Sie die URL in irgendwo, richtig, also, warum also? Was ist los? Nun, wir müssen die URL hinzufügen, also haben wir jetzt eine lokale Versionskontrolle, aber wir haben nicht die Remote-Versionskontrolle. Und Remote bedeutet im Grunde nur woanders, oder? Also das ist derjenige, der auf GitHub ist und wir müssen dies auch hinzufügen. Wie fügen wir das hinzu? Nun, wir können das einfach hinzufügen, indem wir Push sagen. Und dann wird er sagen, dass Sie
zuerst eine Fernbedienung finden mussten. Ich weiß nicht, wohin ich es schieben soll. Und wir werden nur darauf klicken und dann
die URL einfügen , die wir von GitHub kopiert haben, und sagen, OK, es wird überprüfen, ob alles in Ordnung ist oder nicht und natürlich ist alles in Ordnung. Und dann sagen wir „Push“. Jetzt lädt er alle Dateien hoch, um aufzustehen. So können Sie hier unten sehen, dass es drängt und dann sagt er Push Master zum neuen Zweig Ursprung Slash Muskel. Und wenn Sie jetzt auf diesem, auf GitHub oder
auf unserem GitHub Repository zum MC-Kurs gehen und neu laden. Wie Sie jetzt sehen können, ist alles hier drin und alles ist in Ordnung, oder? Jetzt. Das Tolle hier ist, dass, wenn Sie etwas in Ihrem Code ändern,
also sagen wir zum Beispiel, wir werden einen wirklich wichtigen Kommentar hinzufügen, oder? Und wir werden das speichern, wie Sie sehen können, jetzt ist
diese Datei blau. Dies liegt daran, dass eine Änderung an dieser Datei vorgenommen wurde. Und dann sagen wir, wir werden eine Wut hinzufügen. Lee, sehr wichtiger Kommentar als auch, nur um der Argumentation willen. Also werden wir zwei Akten haben. Sehen Sie, dass sie blau sein werden, wenn Sie sie geändert haben. Und die Art und Weise, wie Sie das jetzt hochladen können, ist einfach noch einmal zu begehen, oder? Und dann können Sie sagen, hinzugefügt wichtige Kommentare, oder? Und dann können Sie entweder Commit sagen oder Sie können auf diesen kleinen Pfeil klicken und Commit und Push sagen, und dann wird es sofort drücken. Wir werden sagen, die Warnungen sind mir egal. Wie ich schon sagte, wir kümmern uns einfach nicht darum. Sie können überlagern. Sie können auch einfach überprüfen, was sich geändert hat und unbeständig. In Ordnung, schieben Sie es und, und schieben Sie
es, wird es sagen, dass alles gut wird. Jetzt, wenn wir hier neu laden, können
wir das sehen. Wichtige Commons. Nun ist es wichtig, dass wir derzeit nur an einem Zweig arbeiten. Aber wie gesagt, ich will nicht, dass dies, sagen
wir uns in ein komplettes GitHub-Tutorial. Ich wollte dir nur zeigen, wie du es im Grunde retten kannst. Und es ist eine gute Idee, sich vielleicht sowohl das GitHub-Repository hier anzusehen. Dies ist eigentlich eine gute Ressource, um auch zu haben. Und dann werde ich sehen, ob ich eine gute Ressource finden kann. Ich denke, auf GitHub sollte es einige Beispiele geben, wie man weiß, wie man einige Dinge verzweigt und so ja. Richtig. Ja. Und das war im Grunde alles, was ich Ihnen zeigen wollte, wie Sie Ihre MOD
auf GitHub hochladen können und wir werden sicherstellen, dass es richtig
spart, dass Sie ein richtiges Versionskontrollsystem haben. Und ja, wenn es also irgendwelche Fragen natürlich 3-3 fragen, Ich möchte Sie daran erinnern, dass dies nur eine kurze kleine Einführung oder Übersicht war. Ich bezweifle, dass ich viel mehr in alles im Zusammenhang mit gehen werde,
um zu bekommen, denn es sollte wirklich nicht der Hauptfokus hier auf diesem Kurs sein. Aber ja, nein, aber wie gesagt, ich hoffe, das hat für dich funktioniert. Wenn es irgendwelche Probleme gibt, natürlich, zögern Sie nicht zu fragen und ich werde sicher sein, zu antworten. Und ja.
57. (Minecraft) Aktuelle Schmiede und Minecraft-Version (1.16.4): Ordnung, willkommen zu diesem speziellen Vortrag im Minecraft-Kurs. Und hier werden wir tatsächlich auf die neueste Minecraft-Version aktualisieren. Also 1.16.4. Und ich habe bereits die Minecraft-Schmiede-Website gefunden. Es gibt nur auf der normalen Microforms Website und dann stellen Sie sicher, dass Sie bei 1164 sind. Wie wir sehen können, ist die neueste Version 1164 und dann 30, 5.0.2. Und wir müssen eigentlich gar nichts herunterladen. Wir können dies in unserer Gradle-Build-Datei ändern. Nun, beachten Sie sehr wichtig, dass dies
nur die neueste Version ist und es diesen kleinen Fehler hier hat,
was bedeutet, dass dies eine Art Beta-Version und eine Debug-Version ist. Und wir werden es jedoch für die Zukunft verwenden und es sollte nichts brechen und alles andere, was wir tun werden, sollte für beide Versionen funktionieren. Es könnte einige Mappings geben, die in der Zukunft geändert werden, aber das geschieht alles in einem anderen, in einer anderen Vorlesung als auch. Also werden wir hier rüber wechseln. Und wie wir sehen können, war dies die alte Version. Und dann werden wir das einfach auf 4350 und dann a2 ändern. Und dann werden wir das retten. Und wir werden nur Gradle-Änderungen laden. Jetzt wird das ein bisschen dauern, weil er alles herunterladen muss. Und wir werden das tatsächlich im Build öffnen. Und dann wird er ein paar Sachen
herunterladen, den Snapshot und den ganzen Jazz herunterladen. Und sobald das erledigt ist, haben wir aktualisiert. Alles klar, also scheint alles getan zu sein und es dauerte ungefähr zwei Minuten, wie Sie hier sehen können. Je nachdem, wie schnell Ihr Computer ist, kann
es etwas länger dauern oder vielleicht schneller sein. Und wir können das einfach ausführen und sehen, ob alles funktioniert hat oder nicht. Wenn es irgendwelche Dinge gibt, sollten sie als Pfeile erscheinen und der Client sollte nicht einmal laufen. Aber ich glaube, dass alles ziemlich gut funktionieren wird. Also werden wir nur sehen, dass es hier bereits geöffnet ist. Also glaube ich, dass alles funktionieren wird und wir werden zuerst die ersten Dinge
sehen, die hier oben warnen, Beta. So, wie ich schon gesagt habe, Es ist die Beta-Version von Wörtern. Allerdings gibt es in der Regel nicht so viele Fehler und Verrücktheit. Und wenn es so ist, dann können Sie immer aktualisieren. Also, vor allem, während Sie in der Veda sind, ist
es gut, rein regelmäßig überprüfen Sie die Website für Updates und vielleicht sogar für eine stabile Version. Also würde ich definitiv raten, das zu tun. Und sobald eine stabile Version unser ist, dann sollten Sie diese stabile Version verwenden. Jedenfalls. Also lasst uns einfach reingehen, richtig. Das ist also, weil wir diese Welt gespielt haben und 1163 und jetzt haben wir aktualisiert. Wir werden nur sagen, ich weiß, was ich tue. Wenn die Welt bricht, bezweifle ich sehr, dass es bricht, weil wir nichts Verrücktes darin
haben, das brechen könnte. Das glaube ich nicht. - Ja. Das funktioniert also alles. Und alles noch hier drin? Alles scheint immer noch völlig gut zu funktionieren. - Ja. So dass alles scheint ziemlich gut zu funktionieren. Und das ist im Grunde,
wie ich sagte, aktualisieren Sie , von 1 16., drei zu eins, sechzehn für nichts hat wirklich viel für uns an diesem Punkt in der Zeit verändert. Und alles andere, was weitergeht, wird in 116 erledigt werden, denn so ja.
58. (Minecraft): Alles klar, willkommen zurück zum Minecraft-Kurs, zu diesem speziellen Vortrag für die Aktualisierung der Mappings. Und das wird ein sehr kurzer Vortrag sein. Und hier drinnen werde ich nur das Mapping aktualisieren. Also werde ich das einmal mit diesem Video zeigen. Und dann als Ressource hier werde
ich tatsächlich die aktualisierten Zuordnungen haben, die Sie verwenden können, die am aktuellsten sein werden. Grundsätzlich sollten diese aktualisiert werden. Ich bin mir nicht sicher, wie oft sie tatsächlich aktualisiert werden, in Bezug auf Schmiede. Allerdings werde ich dies wahrscheinlich etwa einmal pro Woche aktualisieren. Worst-Case-Szenario, Sie sind etwa eine Woche weg. Aber ich bin mir sicher, dass das gut wird. So oder so, oder du kannst, du könntest sie selbst nachsehen. Es ist nicht das Wichtigste, die Mappings so oft zu aktualisieren. Es kann jedoch nützlich sein. Also werden wir das nur schnell erneut ausführen. Also habe ich das hier eingefügt. Wie ich schon sagte, das ist als Ressource verfügbar. Und oder Sie können es einfach den Typ vom Bildschirm eingeben. Ich meine, das wird nicht sein, ich werde das verrückteste
Leiden sein , wenn wir absolut ehrlich sind, mal sehen. Also wird es das Mapping herunterladen. Die Mappings noch einmal. Und was sie im Grunde sind, ist nur so, dass wir diese
Fung Unterstrich 2869 BY-Methoden nicht haben , aber sie haben tatsächlich Namen. Und ich glaube, dass wir ein Beispiel haben, das wir tatsächlich ändern müssen, wenn ich mich nicht irre, und das wird in den mehr Punkten sein, ich bin ziemlich sicher, dass sie es sind. Wir haben den Klopf-BEC-Widerstand und das war eine, das war eine Funk-Methode ohne Eigennamen. Und wir können das einfach beheben. Aber wir werden sehen, dass einmal die, sobald die Mappings haben nach unten. Und als Anmerkung, es spielt keine Rolle, dass dies 1163 ist. Das wird auch im Jahr 1164 funktionieren. Und jetzt, wenn wir tatsächlich zu den Mod-Items gehen, glaube ich ja, wir haben einen Pfeil hier, weil dieser Fonds tatsächlich
aktualisiert wurde und dies jetzt zurückgeschlagen Widerstand bekommen. Und sie gehen, ja, und das ist im Grunde alles, was du wissen musst. Eine andere Ressource, die ich auch zur Verfügung gestellt habe, ist die offizielle Schmiedezuordnung. Das offizielle Forge Mapping Excel-Blatt, wo Sie zum Beispiel, wenn Sie nicht wussten, dass dies kein großer Widerstand war, können
Sie dies nehmen, kopieren Sie es und finden es dort. Und dann wird es tatsächlich sagen, was das ist. Also ja, dann ist alles, was alles andere wird völlig gut funktionieren. Ich glaube, dass als nichts anderes. Lass uns einfach nur anfangen damit wir sehen können, dass alles funktioniert. Aber ich glaube, das ist es. Sonst haben wir ja. Ok. Alles wird funktionieren. Ok. Alles funktioniert. Ich habe es einfach gestoppt. müssen also keine anderen Mappings aktualisiert werden. Und ja, das ist im Grunde nur ein kurzes Video. Einfach schnell diese Zeichenfolge hier austauschen. Und ja.
59. (Minecraft): Alles klar, willkommen zurück zum Mikrowellen-Kurs. Und in diesem Vortrag werden wir uns einige fortschrittliche Beutetischtypen ansehen. Das erste, was wir uns ansehen werden, ist, wie können wir zum Beispiel einen Tropfen von einem Block haben, der Redstone ähnlich ist, oder? Also, wenn Sie einen Redstone oder Block brechen, können
Sie vielleicht zwei, bis zu fünf oder sechs Stücke Redstone tatsächlich fallen lassen. Und dann wird dies auch durch den Glückswert modifiziert. Allerdings werden wir schauen, wie wir eine Zählung festlegen können. Wie viele, wie viele Gegenstände werden aus einem Block fallen? Und ich werde das einfach kopieren und es durchmachen. Wie Sie sehen können, ist es nicht so ähnlich. Sehr ähnlich eigentlich, es ist nicht so kompliziert und unterscheidet sich von dem normalen Tropfen. Was wir hier geändert haben, ist, dass wir diese Funktionsliste hinzugefügt haben. Und hier können wir mehrere Funktionen definieren. In unserem Fall haben wir nur eine Funktion definiert. Und das ist die SetCount-Funktion. Ich werde Ihnen am Ende der Vorlesung zeigen, welche Funktionen es gibt. Und ich werde Ihnen eine Ressource geben, die sehr,
sehr gut für Sie ist, um das Wissen über die Funktionsweise von Lou Tischen zu vertiefen. Ja, und das bedeutet einfach, dass der minimale Zähler zwei ist. Also, jedes Mal, wenn ich den Kupferblock breche, zwei bis fünf Tassen-Box fallen. Natürlich ergibt das in diesem Fall keinen Sinn. Das ist jedoch im Grunde nur eine Demonstration, oder? Ich werde das jetzt nicht zeigen, also werde ich nicht ins Spiel gehen. Aber das funktioniert Und auch wichtig, das ist eine gleichmäßige Verteilung. Wenn dir das etwas sagt, dann weißt du, was das bedeutet. Wenn Sie keine Ahnung haben, was das bedeutet, spielt
es keine Rolle. kannst du nachsehen. Ich wollte es dir nur sagen. Ok. Das ist eines der Dinge. Also mehrere Elemente oder woher kennen Sie die heiße Definition, wie viele Elemente fallen? Aber wie wäre es mit mehreren Tropfen dann auch. Also könnten wir uns vorstellen, dass wir vielleicht wollen ein Kupferblock 20%
der Zeit und 80% der Zeit, in der wir tatsächlich Kupferdraht fallen lassen. Und das ist alles, was wir hier getan haben. Also innerhalb der Einträge, wir haben tatsächlich gerade einen neuen Eintrag hinzugefügt. Und wir haben beide Gewichte gegeben, oder? So sind sie nun voneinander abhängig, in dem Sinne, dass 20%
der Zeit ein Kupferblock sinkt und 80% der Zeit Kupferdraht abfällt. Jetzt in diesem Fall, mit der Funktion in der Nähe, können
wir das einfach dort behalten. Das ist also sehr modular. Nehmen wir an, mit einer Funktion hier drin können
wir tatsächlich haben, dass dies genau dasselbe ist. So fallen 80% der Zeit Kupferdraht ab und 20% der Zeit zwischen 25 Kupferblöcken fallen. Das ist also das Tolle hier. Nun, es könnte sein, dass wir vielleicht auch nicht wollen oder das fallen lassen wollen, was wir beide wollen und eine unabhängige Chance haben, sagen wir. Also werden wir uns das auch ansehen. Das ist also ein bisschen mehr, wie Sie sehen können. Es wird also etwas komplexer, je weiter wir hier runtergehen. Und was hier passiert, ist, dass wir diesmal tatsächlich mehrere Pools haben. Also, bevor wir mehrere Einträge hatten, richtig? Jetzt haben wir nur einen Eintrag. Jetzt haben wir mehrere Pools, oder? Also jeder dieser Pools, können
wir tatsächlich innerhalb eines Eintrags hier angeben. Hey, das ist eine zufällige Chance, zum Beispiel, eine Bedingung zufällige Chance 0,5. Also hier unten, die Abdeckung, warum wird immer fallen? Das wird immer passieren. Und hier drin, der Kupferblock, also zwischen 35 wird 50% der Zeit mit dieser zufälligen Zufallsbedingung fallen. Und das Tolle, was ich als Ressource habe, ist eigentlich hier im Spiel PDR Lu-Tabellen, dh. Ich gebe zu, dass dies wie die erstklassigen Ressourcen
ist um zu sehen, wie Schleifenbänder im Grunde funktionierten. Und hier haben Sie die gesamte Steuer und es wird vielleicht eine Weile dauern,
also ein paar Momente, um tatsächlich zu sammeln, wie das angelegt ist. Aber wenn man einmal gelernt hat, wie man das liest, ist
es wirklich, wirklich nicht nur interessant, sondern auch sehr nützlich. So er, zum Beispiel, gibt es Funktionen, die verwendet werden können, gilt Bonus ist für Verzauberungen. Zum Beispiel haben wir, was haben wir zufällig verzaubern. Dies ist, wenn wir, wie Sie sehen können, wenn wir Gegenstände haben, die fallen gelassen werden, wollen wir das verzaubern. Also, wenn Artikel fallen gelassen, richtig, können
wir die Anzahl begrenzen, so dass wir sagen können, hey, das ist vielleicht die angeben, wie viele, wie viele Tropfen tatsächlich fallen. Es gibt so viele Dinge hier drin, wie Sie sehen können. Wir haben auch Bedingungen im Prädikat hier
drüben, wo wir verschiedene Dinge haben, die wir verwenden können. Wir können uns die Eigenschaften ansehen. Wir können sehen, ob etwas vom Spieler getötet wurde oder nicht. Wir haben die zufällige Chance, dass ich dir schon von den Bedingungen gezeigt habe. Es gibt also eine Menge Dinge hier drin. Und ich empfehle sehr, wenn Sie
sehr spezifische Lu-Tabellen wollen , die nicht von dem Typ sind, den ich gezeigt habe. Dann musst du das durchgehen und das verwenden. Natürlich können Sie auch noch einmal den GitHub
von Mods durchlaufen , die ähnliche Funktionalität haben könnten, die Sie verwenden möchten. Aber das ist eine sehr gute Ressource für allgemeine Dinge, wenn Sie dort nichts finden. Ja, das war etwas für fortgeschrittene Lu-Tische. Und ja.
60. (Minecraft): Ordnung, willkommen zurück zum Microsoft-Kurs und in diesem Vortrag werden wir unsere eigenen Kulturen erstellen. Also habe ich eine neue Ernte vorbereitet. Das wird also eine Zucchini-Ernte sein. Das erste, was ich sagen werde, ist, dass die Texturen selbst gemacht wurden, aber ich bin kein Künstler. Sie werden also nicht gut aussehen. Aber das wird etwas für später in der Vorlesung sein. Zunächst einmal gehen wir zu unserem Blog-Paket und wir werden unsere Zucchini-Ernteklasse
erstellen. Dies wird sich von der Ernte Block erstrecken. Und wir werden einfach den passenden Konstruktor erhalten. Und wir werden die beiden Methoden außer Kraft setzen. Einer wird der Item-Anbieter sein, der
das get seats Element sein wird. Dies wird im Grunde nur den Samen zurückgeben. Jetzt haben wir das natürlich noch nicht in unseren MOD-Artikeln. Also werden wir das in einer Weile tun. Und dann wollen wir auch eine Voxel-Form. Und das wird gut in Form sein. Mit einem Blockstatus. Nein, ja, das war eigentlich richtig Block gespeichert Zustand. Ein Ich blockiere Leser, das wird die Welt sein. Eine Blockposition, Position und ein Augenauswahlkontext. Dieser, der Kontext sein wird, Roboterposition muss tatsächlich importiert werden. Wir machen das einfach mit alten und betreten. Und das wird etwas zurückgeben und wir brauchen tatsächlich die Formen und importieren sie. Sie können einfach Control tun und dann mit der linken Maustaste auf den Schnittblock klicken. Und genau hier haben wir tatsächlich diese Form von H. und das wird
etwas sein , das wir diesen Zug benutzen werden, diese Formen, Formen. Und das definiert im Grunde, wie der Block aussieht. Es ist im Grunde das gleiche wie Weizen. Und das wird Formen sein. Und dann wird das drin sein. Wir werden sagen, noch dieser Punkt H Eigenschaft bekommen. Und was das im Grunde tut, ist es die Form, die jedem Alter entspricht,
der, in diesem Fall die Zucchini Ernte. So wird es größer und
größer werden , wie Sie wahrscheinlich mit dem Weizenblock als auch gesehen haben. Richtig? Und dann gehen wir in die Modellgegenstände und wir werden unsere Zucchini kreieren. Und wir machen das unter der Rüstung. Dies wird ein öffentliches statisches endgültiges Registrierungsobjekt vom Typ item sein. Wir werden nur die Zucchinisamen sein. Und dann wolltest du dich registrieren. Registrierung, dass Artikel. Nun, das war richtig. Artikel. Register wird der Zucchini-Block sein. Nein, es ist micker Sitz, natürlich. Entschuldigung. Und das wird tatsächlich ein neuer Schlossartikel sein. Und dann müssen wir tatsächlich die MOD Blöcke liefern, Zucchini Ernte als auch. Das wird also ein wenig hin und her springen, aber lass uns keine Sorgen machen. In den Kartenblöcken müssen
wir dies also auch spezifizieren. Wir werden tatsächlich wissen, dass wir das unter der alten Treppe machen und so. So wird es ein öffentliches statisches endgültiges Registry-Objekt vom Typ Block sein, das Zucchini Ernte emittiert wird. Und das wird nur Ration gelesen werden. Also in diesem Fall werden
wir das eigentlich nicht tun. Dies wird sein, also werden wir diese Registermethode hier nicht verwenden, weil wir nicht wirklich wollen, dass ein Block, der der Ernte
entspricht oder ein Element, das dem Ernte entspricht. Wir wollen eigentlich einen anderen Gegenstand haben, und das wird die Samen sein. Im Grunde. Dies wird ein normales Register der Zucchini Ernte sein. Und dies wird eine neue Zucchini mit dem abstrakten Knoten mit abstrakten Blockpunkteigenschaften aus machen. Es wird ein bisschen anders sein und es wird nicht nur Loc Dot Weizen retten. Also werden wir genau die gleichen Eigenschaften wie wir nehmen. Das macht in diesem Fall am sinnvollsten. Und dann in den Artikeln, können wir tatsächlich diesen Block Artikel mit einem Block jetzt liefern
, der Mott Blogs sein wird, Punkt Zucchini, Rob dot, get. Und dann hier wollen wir tatsächlich Artikeleigenschaften, wie wir schon oft gesehen haben. Und wir werden nur die Gruppe EMC definieren. Wir sind schlau. Erste Registerkarte, lesen, richtig? So ist der Zucchini-Samen jetzt bereits implementiert. In den Kartenblöcken haben wir die Ernte implementiert. Und hier drinnen können wir tatsächlich einfach
die Mod-Artikel zurückgeben oder Gegenstände beginnen Zucchini Siegel. Das wird gelesen. Richtig? Nun, das würden Sie denken, es wäre schon. Natürlich müssen wir immer noch die Bloch-Zustände und die JSON-Dateien machen. Nun, das sind, nun, wie kann ich das zart sagen? Ziemlich ein Stück Arbeit, sagen wir so. Die Bloch-Staaten sind also eigentlich nicht so schlimm. Aber die und die Texturen und das Modell, Modelle für den Block werden so etwas wie ein liberales Werk sein, das organisiert wird. Zucchini ernten, der Punkt JSON in der Bloch sagt, ja. Also ist es ein Nierenblock, ist Meinung Crop dot JSON. Und wir werden das einfach kopieren und sicher erklären. So geht dies einfach an die, genau in diesem Alter. Also innerhalb dieses Gewichts, diese H-Eigenschaft, richtig? So erstreckt sich das natürlich von der Ernte Block. Und der Ernteblock hat eine ganzzahlige Eigenschaft, die Alter genannt wird. Und. Dabei können die Bloch-Zustände natürlich dieses Alter
betrachten und dann das verwendete Modell modifizieren. Und in diesem Fall werden
wir eigentlich nur acht Jahre haben, also 0 bis sieben. Und deshalb brauchen wir auch alle diese acht Blockmodelle darin, in den Modellen. Und ich werde die überschreiben. Diese. Diese werden natürlich wieder geliefert. Und auch werde ich über ein Beispiel gehen. Also werden wir die nur für eine Sekunde kopieren. Entschuldigung. Ja. Also gehst du. In Ordnung. Und jetzt sind sie alle drin, wie ich gesagt habe, alle müssen getan werden. Wie Sie sehen können, sind sie auch nicht so kompliziert. Sie sind nur ein bisschen mühsam, sie alle auf eigene Faust zu machen. Deshalb ist es besser, es einfach zu kopieren, weil es hier keine echte Magie gibt. Der übergeordnete Schrägstrich wird blockiert werden. Und dann im Inneren von hier werden wir eigentlich Texturen beschneiden lassen. Und dann sagen wir, nun, wir wollen die Zucchini Unterstrich Ernte, Unterstrich Bühne. Und je nachdem, was JSON wir sind, fügen
wir eine 012 oder bis zu sieben hinzu. Und das wird bei allen gleich sein. Wir möchten dann auch den Artikel hinzufügen. Also die Zucchini-Samen JSON für den Artikel, meisten gehen, um dies schnell zu kopieren und es zu betrachten. Wieder einmal ist dies nur ein normaler Artikel. Es ist nichts besonders verrücktes dran. Die Tatsache, dass wir es pflanzen können, ist alles bereits innerhalb der Zucchini-Ernte getan. Im Grunde. Das ist alles schon definiert. Und dann die Texturen, die ich gefürchtet habe, anzuschauen, wenn ich absolut ehrlich bin. Und das wird erst im Block sein. Das wird die Etappen sein. Ich werde diese schnell kopieren und diese Stufe 0 bis sieben sehen. Und ich werde sie mir ansehen, wir werden sie ansehen, wenn wir im Spiel sind. Und dann brauchen wir natürlich auch eine Zucchini, eine Zucchinisamen Textur. Also werde ich das auch reinlegen. Und wenn wir das getan haben, gibt es natürlich noch eine Sache,
die wir tun müssen , nämlich, nun, es gibt tatsächlich zwei weitere Dinge, die ich tun muss. Zunächst einmal werden wir das schnell definieren. Also werden wir Artikel Punkt AMC haben,
Zwangsdot-Zucchini , Rap. Wir werden nur Zucchinisamen sein. Und dann ein Komma hier. Oh, na ja, so natürlich. Und dann ist das Letzte, was wir auch brauchen werden, oder das könnte sein, interessant hier wäre ein weiterer Beute Tisch für die Zucchini-Ernte tatsächlich. Und ich werde das auch kopieren und ich werde es für eine Sekunde durchgehen. Das wird also Zucchini ausgeschnitten und Jason,
und wie Sie sehen können, ist das hier. Ein großer. Und was hier passiert, ist im Grunde, also anstatt eine Zucchini fallen zu lassen, werden
wir in diesem Fall eigentlich nur einen Goldblock aus Gründen der Demonstration fallen lassen. Und das andere Zeug sagt im Grunde, okay, wir kriegen einen Goldblog und wir bekommen einen Samen. Und dann gibt es eine Chance,
eine Wahrscheinlichkeit, die damit verbunden ist, ein paar zusätzliche Plätze zu bekommen. Dies ist, und dies wird nur aus dem JSON von Weizen kopiert. Also können wir tatsächlich hierher gehen. Externe Bibliotheken, Ich glaube, ich habe dies vor gezeigt, das Netz Minecraft Client extra und in den Vermögenswerten Minecraft und dann in Nein, es ist nicht da drin. Es ist eigentlich in Daten Minecraft natürlich noch
einmal, es Lew Tabellen und dann haben wir Blöcke. Und irgendwo hier haben wir Weizen. Und wie Sie sehen können, ist das fast grundlegend. Grundsätzlich genau das gleiche gerade Beat ist Austausch mit MCQ, Zucchini Ernte. Und ja, das,
Sie können diese immer viel einfacher
als das Googeln auf Ihre Art und Weise verwenden , auch wir stellen Frage weil dies hier sehr zugänglich ist und Sie können immer
ein Beispiel für etwas sehen , das Sie könnte implementieren wollen, oder? Ich glaube, das sollte es sein. Mal sehen, was passiert, oder? Ich meine, im schlimmsten Fall, wir kriegen 100 Pfeile. Aber ich glaube, dass das nicht der Fall ist. Ich glaube nicht, dass wir 100 Pfeile bekommen. Vielleicht wollten wir einen Pfeil bekommen, aber keine 100. Okay, also sieht es gut aus. Hoffen wir, dass alles beginnt und alles beginnt, richtig? Wir gehen wieder in die Welt und hoffen auf das Beste. Aber ich glaube, dass alles reibungslos laufen sollte. Also lasst uns einfach einen Eimer Wasser holen und dann gehen wir auch und schauen OK. Also ist der Samen definitiv drin. Es hat nicht das oh, es ist, weil es ein Block ist und einen Artikel hinzufügen. Nun, das ergibt eigentlich keinen Sinn, aber fair genug. Okay, also mal sehen, ob wir das wirklich pflanzen können. Nun, wir können nicht tun, was das Problem hier ist? Das wird für eine lange Zeit kein Problem sein. Sie können das tatsächlich beheben, sehr, sehr schnell. Aber wir können nicht wirklich gelandet werden. Es gibt jedoch noch eine Sache, die wir tun müssen, bevor dies richtig aussieht, sagen wir. Und das wird innerhalb unserer Normalität sein. Statt unseres MC CourseSmart. Wir müssen tatsächlich einmal in das Klienten-Zeug gehen, einmal hier. Und wir werden die folgende Aussage hinzufügen. Wir werden Render-Typ hinzufügen, HLOOKUP Punkt gesetzt Render-Layer. Und dann für die Matlock stat Zucchini-Ernte und bekommen, werden
wir den Render-Typ so einstellen, dass er ausgeschnitten wird, richtig? Und das versichert einfach,
dass es nicht so aussieht, wie wir sehen. Und dann können wir auch hier reingehen. Und das wird nicht Gegenstand sein, sondern Sperre tatsächlich für die Samen. Das ist ein wenig seltsam, aber es ist, es ist die Art, wie dies funktioniert, weil dies ein ist, wir müssen tatsächlich die Zucchini Ernte anstelle der Samen als Schlosselement angeben. Es ist ein bisschen seltsam, aber ich denke, es wird funktionieren. Ich meine, es ist nicht, so verrückt ist es nicht. Also, wie tatsächlich sehen, ich glaube, dass die Wiedergabe sollte Räuber sein. Nun, lasst uns, Hier hofft. Aber ich glaube, dass das jetzt funktionieren sollte. Mal sehen. Und ja, es funktioniert. Sie gehen jetzt, wann immer alles in Ordnung ist, ob das wirklich sehr gut ist. Wie Sie sehen können, ist
das völlig in Ordnung. Und was wir tun werden ist, wir werden einfach schnell, was ist es, zufällige Tick-Geschwindigkeit, ich werde nur
die Zecken-Beschleunigung wie 22 Tausend setzen , nur damit wir wachsen sehen können. Und dort können wir wachsen sehen. Schau dir diese Schönheit an. Ist das nicht wunderschön? Und dann gab Regel zufällige Tics Geschwindigkeit 20. Jetzt ist alles ausgewachsen. Und dann lasst uns einfach
auch schnell überleben und dann Eisbrecher und wie Sie sehen können, ein paar Samen fallen und ein, und ein Block Gold hier. Und ja, so dass alles funktioniert. Natürlich, wieder einmal, würden Sie nicht, Sie würden wahrscheinlich nicht wollen, dass viel Gold von Ihren Requisiten fällt. Kauft einen Artikel vielleicht oder etwas, das Sie angeben. Nun ja, das ist im Grunde, wie Sie Ihre eigenen Ernte in Minecraft hinzufügen. So ja.
61. (Minecraft): Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir unsere eigene benutzerdefinierte Flüssigkeit erstellen. Und dazu brauchen
wir zuerst eine neue Klasse innerhalb unseres Blockpakets, die als Flüssigkeiten bezeichnet werden wird. Da drin werden alle unsere Flüssigkeiten gehen. Und das ist sehr ähnlich zu den MOD-Blöcken und der Modus Items Klasse. Und wir müssen auch eine neue Standardregistrierung registrieren. Und das wird eine öffentliche Statik sein. Letztendlich unterscheiden sich, kein aufgeschobenes Register, das natürlich kalt oder Art von Flüssigkeit sein wird. Und es werden kalte Flüssigkeiten sein. Wie man hätte ahnen können. B, registrieren Punkt erstellen, Wort, Register, Flüssigkeiten. Und dann noch einmal MC dot id. Und dann werden wir das einfach schnell importieren. Und auch sehr wichtig hier unten hinzugefügt. Ansonsten wird es nicht funktionieren, keinen Eventbus registrieren. Richtig? Das ist die Registrierung behandelt. Und dann kommen die Kartenflüssigkeiten, die ein bisschen überall sein wird. Aber wir werden nur anfangen und dann werden wir das herausfinden. Zunächst einmal brauchen wir drei Ressourcenstandorte. Wir müssen die Ressourcenstandorte angeben. Einer für den Stillstand. Also zuerst werden wir eine Flüssigkeit erzeugen, die Öl sein wird. Ich werde nur Öl herstellen. Und ich denke, es geht gut mit dem, mit einem kupfernen Stil, sagen wir. Und das erste, was wir brauchen, ist ein Ressourcenstandort für das Stillöl, richtig? Das wird also im Grunde der Name Ihres flüssigen Unterstrichs sein. Unterstreichen Sie immer noch Errol, Natürlich können
Sie das umbenennen, wie Sie wollen. Das wäre nur noch Öl und dann Ressourcenstandort. Und das wird ein neuer Ressourcenstandort sein. Und wir werden unsere MOD ID, Match ID, setzen. Und dann werden wir einen Weg einschlagen und das wird blockiert. Slash Öl Unterstrich, Unterstrich noch. Und das ist im Grunde, wir können das einfach zwei Mal kopieren und das Öl fließen lassen. Also müssen wir zwei Blöcke erstellen. So einfach ist es nicht. Es ist, es ist eine Art von zwei Blöcken, einer noch Block. Das ist im Grunde der Wasserblock, der, weißt du, nicht fließt, und dann gibt es einen fließenden Block. Und sie sind auch zwei. Wir müssen auch so strukturieren, dass, und das ist im Grunde, was wir hier in den Ressourcenstandorten definieren. Und dann brauchen wir auch ein Overlay. Und das wird Ölüberlagerung Unterstrich RL sein, richtig? Und das sind die drei Ressourcenstandorte, die wir angeben müssen. Und dann können wir tatsächlich beginnen und einige Registrierungsobjekte betrachten. Und das werden Registrierungsobjekte vom Typ fließende Flüssigkeit sein. Denn natürlich ist dies eine Flüssigkeit, die wir fließen wollen. Und das erste, was wir haben werden, ist die Ölflüssigkeit. Und das ist der Ölblock selbst. Wie ich schon sagte, es ist ein wenig, es ist ein bisschen überall, die Flüssigkeiten, aber ich bin sicher, wir können es schaffen. Also das ist Registrierung Flüssigkeiten Register. Das ist die Ölflüssigkeit. Also hier definieren wir tatsächlich die Quelle der Ölflüssigkeit. Dies wird eine neue Schmiedeflüssigkeit Datenquelle sein. Und hier müssen wir die Eigenschaften angeben, die wir noch nicht spezifiziert haben. Denn wie ich schon sagte, wir müssen das durchmachen. Es ist ein wenig, es ist ein wenig, ich würde sagen, es ist rund, irgendwie seine Summe. Denn wenn wir nach dieser Eigenschaft die Eigenschaften angeben, dann müssen wir auch die fließenden Flüssigkeiten einfüllen. Es ist definitiv ein wenig seltsam, aber wie gesagt, es ist kein Problem. Dies wird ein weiteres Registry-Objekt fließender Flüssigkeit sein. Und diesmal fließt es nicht Ölflüssigkeit, sondern Öl. Dies ist also im Grunde der fließende Teil der Flüssigkeit. Dies ist Register, Registrierung, Punktflüssigkeitsregister. Und das fließt Öl. Und das wird ein Lieferant einer neuen Schmiedeflüssigkeit haben, keine Quellen zusammengebaut, fließend. Und statt Angst, werden auch die Eigenschaften
gehen und diese werden als nächstes behandelt werden. Und das sind das Vermögen, das fließende Punkt Eigenschaften. Und das sind die Ölrampe oder necken, neue Eigenschaften. Und die werden auch verrückt sein. Das erste, was ist, wie Sie sehen können, einmal ein Stillstand dieser Flüssigkeit. Also werden wir ihm tatsächlich die Ölunterstrichflüssigkeit liefern, richtig? Das wird also geliefert. Und hier oben können Sie tatsächlich in den Mod Fluids Punkt oder die Eigenschaften setzen. Und das gleiche mit Ihren MOD-Flüssigkeiten, Öleigenschaften. Jetzt ist es wichtig, dass Sie dies tatsächlich zu einem statischen Pol mit der Klasse vor machen. Wenn du das tust, wird es nicht funktionieren. Illegale Weiterleitung Referenz. So sehr wichtig, dass Sie tatsächlich in Schlammflüssigkeiten, Öleigenschaften, nur als eine schnelle Sache. Und das muss ein Get sein. Und dann müssen wir liefern oder für das Öl fließt. Auch Punkt bekommen. Und wir brauchen flüssige Attribute und das wird das sehr Interessante sein. So Fluid Attribute sind Builder. Zuerst werden wir in die noch Textur setzen, die Öl noch RL sein wird. Und dann werden wir Öl fließen lassen. Und dann können wir die Eigenschaften definieren. Und wie Sie sehen können, gibt es ein paar Dinge, die wir tatsächlich tun können. Ich schlage definitiv auch vor, mit diesen vier ein wenig, werde
ich nur einige Werte setzen. Ich habe auf Leuchtkraft geschaut, und ich werde eine Seltenheit der Seltenheit Punkt selten haben, sagen wir. Und wir werden ein Sound-Event haben. Sound-Events, Punkt, Artikel, Honig, Flasche, trinken. Das gefällt mir. Das klingt wirklich interessant. Und es klingt ein bisschen nach Öl. Und dann werden wir Viskosität haben, die eine beliebige Zahl ist. Und dann, und das ist interessant. Dann werden wir tatsächlich die Klammern Eigenschaften schließen. Und dann haben wir noch ein paar andere Dinge, die wir spezifizieren können. Und die beiden, die sehr interessant sind, ist die Entfernung zu finden, die wir drei machen werden. Und dann eine Pegelabnahme pro Block drei. Und was das sind, ist im Grunde, es ist die Pegelabnahme pro Block bedeutet nur, dass, wenn Sie die Flüssigkeit platzieren, es wird so viele Blöcke reisen. Und die Steigung Entfernung finden im Grunde ist die Entfernung, wohin sie reist. Zwei Worte, ein Hang runter. Wie ich schon sagte, es ist am besten, um mit diesen Zahlen herum
zu spielen und ein, bekommen ein Gefühl für sie. Und hoffentlich, wenn Sie mit ihnen ein wenig herumspielen, dann erhalten Sie das gewünschte Ergebnis von der Flüssigkeit, die Sie implementieren möchten. Wir müssen auch einen Block angeben. Dies ist ein Block, den wir tatsächlich noch nicht implementiert haben. Also werden wir einfach nichts reinlegen. Und dann wird das auch Dot Eimer sein. Und das ist etwas, was wir auch nicht umgesetzt haben. Wie ich schon sagte, es ist weiß. Die, ganz die Herausforderung hier, dies in einem zu tun, weil es nicht wirklich eine lineare Sache ist, richtig? Weil wir die Eigenschaften nicht zuerst
machen konnten , weil wir dann nicht die Register-Objekte hier hatten. Also ja, es ist ein wenig, es ist etwas rau. Aber wie immer alles, ist
der gesamte Code hier als Ressource verfügbar. Und entweder das Registry-Objekt ist jetzt eine fließende Flüssigkeit und dies wird ein Ölblock sein. Und wir wollen eigentlich einen Registrierungspunktblöcke dieses Mal DOT-Register machen. Und noch einmal, wir werden nicht mit den Kartenblöcken Register Methode gehen. Aber eine andere, weil wir nicht wollen, eine, sagen
wir one-to-one Übersetzung zwischen einem Ölblock und es ist, es ist, es ist, es ist Element, weil der Artikel wird natürlich ein Eimer anstelle eines Brunnens sein, ich werde nur ein Block Block Element Element. Richtig. Flüssigkeits-Punkt wird flüssig. Das ist die normale Flüssigkeit. Und dann werden wir einige abstrakte Blockeigenschaften hinzufügen. Das sind also nur normale Eigenschaften, die wir aus Material erstellen werden. Wasser, du richtiges Wasser. Und dann werden wir tun, wir werden eine nicht blockieren Bewegung, Härte und Widerstand. Dies wird wie ein 100100 g sein, aber ein 100 und keine Tropfen, weil der Block keine Tropfen hat. Dann können wir dies eigentlich schon im ersten hier angeben. Dies ist wieder einmal mit dem Klassennamen vor, während Flüssigkeiten. Ölflüssigkeit. Nein, das ist nicht richtig. Ölblock natürlich, Dot bekommen. Und dann brauchen wir auch eine öffentliche statische Void Register-Methode, die wir bereits in den Modusblöcken und den Modusflüssigkeiten gesehen haben. Dieses werden wir nur nach diesem hinzufügen,
nachdem die Blöcke registriert etwas Flüssigkeiten DOT-Register. Und dann müssen wir den Artikel noch hinzufügen. Und das ist, glaube ich, fast alles, was wir tun müssen. Wir müssen auch die Texturen hinzufügen, und das wäre es. Also werden wir das nur nach diesen Meinungen hinzufügen, Saatgut den Artikel. Es ist ein normales Element, Registrierungsobjekte vom Typ Element. Und das wird ein Öleimer. Mit Registrierungspunkten. Registrieren. Sollte das nicht gut sein, irgendetwas Verrücktes? Es wird ein neuer Eimer Artikel sein. Und ein Bucket-Element ist tatsächlich auch mit einer Flüssigkeit definiert. So mod Flüssigkeiten Punkt Gewicht der Flüssigkeit. Und dann werden wir den Lambda-Ausdruck hier verwenden. Neue Artikel Punkt-Eigenschaften, und wir sind raus. Also werden wir das noch einmal in unseren Tab stecken. Und wir werden noch einen hinzufügen. Eine andere Eigenschaft, die maxed sein wird, greifen Sie auf eine zu, weil das normalerweise ist wie Sie einen Bucket definieren würden. Eimer stapeln normalerweise nicht mit Flüssigkeiten in ihnen, oder? Und dann können wir hier eigentlich sehr einfach in den Modus Elemente setzen, Punkte, gut Eimer, so gut. Und ja, das heißt, ich glaube allen. Jetzt müssen wir natürlich auch die Texturen hinzufügen. Und ich auch, ja, und wir müssen auch ein Tag hinzufügen. Also lasst uns zuerst die Texturen machen. Das wird in den Blocktexturen sein. Und noch einmal, ich werde sie kopieren. Das wird in Blocktexturen sein. Das wird fünf Dateien kopieren. Ja. Das wird Öl fließen. Wir werden Öl fließen lassen. Mc Mehta und ein weiterer MC Mehta. Dies ist nur für die Animation. Und die Ölüberlagerung. Wie ich schon sagte, alle Texturen werden wie immer als Ressource
geliefert oder es wird Bucket bekommen. Und es gibt immer noch zwei JSON-Dateien, die wir in den Modellen machen müssen. Der erste wird also der Öleimer sein. Das ist kein Problem. Wir werden JSON schmeißen. Das ist nichts. Dies ist nur eine normale JSON-Datei für das für ein Element, richtig? Das ist nichts, was wir noch nicht gesehen haben. Und dann für den Block müssen
wir tatsächlich den Block dieses Modells angeben. Und das wird nur der alte Ölpunkt-JSON sein. Und das ist auch einfach eine sehr einfache JSON-Datei zu sehen. Und wir brauchen auch einen Bloch Staaten, weil wir einen Block hinzugefügt haben. Das wird JSON wieder aufgeölt werden,
oh, Jason, Ego und Überraschung, Überraschung. Es ist alles sehr ähnlich zu allen anderen Dingen. Die meisten Definitionen der Flüssigkeiten liegen also tatsächlich innerhalb der Schmiedeflüssigkeiten. Und ich glaube, dass das alles sein sollte. Die Texturen wurden hinzugefügt, das Modell wurde hinzugefügt, Registrierung. Lassen Sie uns also im Spiel sehen, ob unsere Flüssigkeit richtig hinzugefügt wurde oder nicht. Aber alles sollte gut funktionieren. Nun, ich meine, ich habe hier schon einen Tippfehler gesehen. Also da Sie. Aber ich glaube, das sollte es sein. Ja. Nun, der Name hier, Öl, das
muss natürlich der gleiche sein wie die Bloch-Staaten hier und der gleiche wie dieses Blockmodell. Und dann
ist der Öleimer natürlich der Artikel, der dem Ölblock entspricht. Deshalb haben wir ein Modellelement hinzugefügt, die Öl-Bucket-JSON-Datei anstelle einer wir-Datei zum Beispiel, es gibt kein Öl-Element in diesem Sinne. Mal sehen, ob alles richtig und gut hinzugefügt wurde, zunächst einmal, wir werden die Zeit heute so einstellen, dass wir tatsächlich etwas sehen können. Ich werde in den reaktiven Modus wechseln. Und so wurde der Öleimer hinzugefügt. Natürlich ist es nicht lokalisiert. Das ist etwas, das nach all den Dingen,
die wir lokalisiert haben, sehr leicht gemacht werden sollte . Und mal sehen, ob ich die Flüssigkeit tatsächlich platzieren kann. Das kann ich. Schön. Okay, wir werden sehen, dass ich es gerade hier
platziert habe. Das siehst du eigentlich. So geht es drei Blocks aus. Der Quellblock ist immer auch etwas, das gezählt wird. Jetzt kann ich einfach durchlaufen. Dies liegt daran, dass es noch nicht zum Wassertank hinzugefügt wurde. Das habe ich also gesagt. Also müssen wir ein Tag in Minecraft-Tags hinzufügen und dann anstelle von Blöcken wollen
wir tatsächlich ein anderes Verzeichnis namens Fluids haben. Und innerhalb von dort haben wir eine JSON-Datei oder Wasserpunkt-JSON. Und ich werde das schnell kopieren. Nichts verrücktes Aufregendes. Es ist nur, dass dies ein Tag hinzufügt. Ja. Und dann wird es tatsächlich etwas Widerstand haben und es wird, gut verhalten sich ein bisschen wie Wasser, zumindest wenn man in es eintritt. So würde es auch Entitäten und Gegenstände tragen. Aber das werden wir nur in Kürze sehen. Und wir gehen dorthin, wir gehen. Ok. Und ja. Und jetzt hat es tatsächlich einen gewissen Widerstand dagegen. Und wenn wir reingehen, ist es sehr ähnlich, wie unter Wasser zu sein, oder? Das ist großartig. Ja. Und das ist bereits alles, was wir tun müssen, um Minecraft eine neue Flüssigkeit hinzuzufügen. Also ja, ich hoffe, dass das für dich von Interesse war. Und wenn es irgendwelche Fragen wie immer, zögern Sie nicht zu fragen. Und auch wenn der Kurs ein Wert für Sie gewesen wäre, würde
ich eine Bewertung oder Bewertung wirklich zu schätzen wissen. Und ja.
62. (Minecraft) Bereinigen und Refactoring: In Ordnung, lassen Sie uns mit dem Minecraft-Kurs fortfahren. Und in diesem Vortrag werden wir
den Code tatsächlich ein wenig umgestalten , weil es
ein paar Dinge gibt , als wir tatsächlich hinzufügen und vielleicht ändern müssen, damit
die komplexeren Themen künftig gut machbar sind und ein bisschen einfacher zu folgen und zu verstehen. Das erste, was wir tun werden, ist, dass wir
in die Registrierungs-Java-Klasse gehen . Ich werde diese Methode tatsächlich neu faktorieren und sie in nur init umbenennen. Einfach, weil ich das Gefühl habe, dass das Rot, das dieses Register aufruft, weiß ist, wie es die verzögerten Register im mit dem Ereignisbus registriert. Ich glaube jedoch, dass init einen besseren Namen dafür hat. Ich glaube, dass das der Fall ist. Das nächste, was wir tun werden, gehen
wir in unser MC-Kursmodell und löschen die, diese beiden. Also die Enqueue IMC und Prozess IMC. Dies sind diese Methoden für die Zwischenkommunikation. Das bin ich also. C steht für. Und Sie können auch intermodale Enqueue-Ereignis sehen. Das sind also vernetzte Kommunikation. Zu diesem Zeitpunkt sind wir nicht, wir wollen nicht mit anderen Modellen kommunizieren. Also können wir das auch löschen,
dieses Ablehnungs-Zeug, das wir bald herausfinden werden, und das Setup, das wir tatsächlich behalten wollen. Also im Setup können wir tatsächlich das Setup löschen. Und statt des Setups wollen wir ein paar Dinge setzen, hauptsächlich die Konfiguration, also wollen wir diese in das Setup kopieren. Und dann wollen wir auch, aber wir zuerst natürlich, so herum, ja, zuerst wollen wir die Konfigurationen laden. Andersherum. Wir wollen sie zuerst registrieren und dann laden. Und das ist das erste, was wir tun können, ist auch, naja, ich meine, das ist in Ordnung. Aber wenn du das liest, was du magst, bin
ich mir nicht 100% sicher. Deshalb werden wir das tatsächlich
aus dieser Methode ziehen und wir werden zwei neue Methoden erstellen. Das wird also Registerkonflikte sein. Dies ist also etwas, das sehr viel ist, wo ich denke, dass es sehr schwer zu erklären ist und, oder sogar wissen, dass man wahrscheinlich viele Bücher mit Wissen darüber schreiben könnte. Aber es ist sehr schwer zu bekommen. Holen Sie sich was, warum das eine gute Sache ist oder wie das eine gute Sache ist. Also, wenn Sie jetzt die Setup-Methode lesen, können
Sie tatsächlich OK sehen, also werden wir zuerst einen Konflikt
registrieren und dann könnten Sie hier etwas anderes tun. Und dann laden wir die Konflikte. Und wenn wir das nur haben, die mentale Anstrengung, zu verstehen, was hier passiert, nur ein kleines bisschen mehr. Und du könntest sagen, nun ,
ich meine, es spielt keine Rolle, das ist der kleine Aufwand hier spielt keine Rolle. Nun, wenn Sie das haben, sagen
wir 200 Klassen. Und in jeder dieser Klassen gibt es ein wenig winzigen Aufwand, es tatsächlich zu lesen. Und dann wird es eine Rolle spielen, oder? Das ist also im Grunde, was das ist. Etwas, das sein sollte, sollte beachtet werden. Wir werden auch eine andere private Methode hinzufügen, und ich werde dies die Register-Modus-Ergänzungen nennen. Dies ist im Grunde, noch einmal, dies, diese Namen sind alle, würde sagen. Das sind alle benutzerdefinierte Tarife. Du kannst also, wenn du denkst, ich will das anders oder so etwas nennen,
das ist alles, du hast die Freiheit, dies zu tun. Das Wichtigste ist, dass Sie den Quellcode lesen können. Und hoffentlich können dann auch andere Leute lesen, die Quelle davon ist, das ist das, was wir geschehen wollen. Und wir werden das alles nehmen. Also die Registrierung darin und alle unsere registrierten Methoden, und sogar der mod-Event-Bus. Und wir werden das hier reinbringen. Und ich werde das eigentlich ein kleines bisschen trennen. Und wir werden einige Kommentare hinzufügen. Und es ist die Registrierung unserer Ergänzungen. Hinzufügungen, sie gehen. Und das ist dann Register, Gegenstände, Blöcke, ETC. Hinzugefügt von unserem Modus. Und dieser hier wird MOD Events registrieren, oder? Dies muss auch und dann natürlich dem Instruktor hier hinzugefügt werden. Dann werden wir das Duke Client Zeug löschen. Ich werde diesen Kommentar leiten. Und eigentlich werden wir das nach dem Setup registrieren. Und es gibt noch eine Sache, dies zu tun ist, dass wir diesen Kommentar auch löschen
können. Das brauchen wir nicht. Und wir werden tatsächlich auch einige neue Klassen erstellen. In unserem MC-Kurspaket erstellen
wir zunächst ein neues Paket namens setup. Wieder einmal könnten Sie, Sie könnten dies möglicherweise auch in util setzen. Dies ist sehr viel eine Frage wie Sie Ihre Pakete so organisieren möchten, dass Sie sich wohl fühlen. Wir werden eine neue Java-Klasse erstellen, die eine Schnittstelle sein wird, und das wird IP-Proxy genannt. Und dann werden wir eine zweite Klasse erstellen, die der Client-Proxy sein wird. Und dann zog ein drittes Plus den Server. Roxy. Okay, also ich, ein Proxy ist eigentlich nicht so verrückt nach einer Schnittstelle. Also gehen wir hin. Dies wird eine Methode haben, die darin als void bezeichnet wird. Und dann eine andere Methode bekommen pliant Welt dh diese zu importieren. Und dann beide natürlich, implementieren Sie den Augen-Proxy, implementieren Methoden. Und im Moment haben wir nichts im Leid. Im Jahr können wir einfach zurückkehren minecraft dot Instanz dot Welt. Und dann hier in der Init Eigentlich können wir etwas hinzufügen. Und das wird der Rendertyp für die Zucchini-Ernte sein. Und wir können diese Methode auch hier löschen. Also können wir dieses Recht hinzufügen. Los geht's. Und dann der Server-Proxy, dies implementiert auch I Proxy. Und der, naja, vor allem, implementieren Methoden Kurs. Und hier werden wir tatsächlich eine neue Ausnahme werfen. Und auf dem Laufserver, weil wir die Client-Welt nicht auf der Serverseite bekommen sollten. Und die Init wird gerade
jetzt leer bleiben , weil wir in diesem Moment nichts auf dem Server tun. Wir werden auch den Event-Bus-Teilnehmer hinzufügen. Das wird also MOD Event Bus Teilnehmer,
Mod ID, Dot Mod ID plus sein. Dies ist math.pi Ereignisbus Teilnehmer Punkt Punkt. Und das ist das Wichtigste, nur Dot, Dot Reliant. Und wir gehen, ich werde das über oder den Server-Proxy kopieren. Und der einzige Unterschied hier ist, dass dies ein dedizierter Server sein wird, richtig? Richtig. Das ist also alles, was wir hier tun müssen. Und dann innerhalb der MC-Kursklasse, wieder, werden wir eine erstellen, Ich glaube, Entlassung muss öffentlich sein. Ja, dies ist ein öffentlicher statischer IP-Proxy wird Proxy. Und wir werden das hier initialisieren. Und das wird ein bisschen verrückt aussehen. Aber mach dir keine Sorgen. Dist Executor, dot safe, laufen für Liste. Und dann werden wir
diese Client Roxy neue und Server-Proxy,
neue Server-Proxy, New Evil erstellen diese Client Roxy neue und Server-Proxy,
neue Server-Proxy . Ja, so. Und importieren Sie auch diese beiden. Und ich glaube, dass das alles sein sollte. Wir wollen das hier stricken. Also Proxy Punkt darin in der Setup-Methode zwischen den Registerkonflikten und den Ladekonflikten. Ja, ich denke, das sollte schon alles sein. Jetzt haben wir hier ein bisschen aufgeräumt. Also die, die, diese Klasse sieht ein bisschen anders aus. Und um sicherzustellen, dass alles funktioniert, wenn ich das ausführe, nur damit wir sicher sind, dass alles gut funktioniert und wir nichts gebrochen haben. Es ist immer eine gute Idee, besonders wenn Sie Ihren Code umgestalten, um sicherzustellen, dass alles noch funktioniert. Wenn Sie Tests geschrieben haben, was natürlich tun würde. Ich denke nicht, dass das Sinn macht, Tests zu schreiben, besonders für etwas dieser Größe. Aber wenn Sie Tests schreiben, dann stellen Sie sicher, dass die Tests noch funktionieren und das Programm immer noch funktioniert, ist das, wenn wichtig. Zum Beispiel, eines der Dinge, die wir betrachten möchten, ist, ob
der Render-Typ wahrscheinlich aktiviert wurde oder nicht , und hat so das ist ziemlich gut. Oder Gegenstände schienen alle anstelle der Sache zu
sein schläft, funktionieren völlig gut. Also ja, das ist großartig. Das ist ziemlich gut. Und das war im Grunde alles, was wir für die Säuberung tun mussten. Also einfach nur ein bisschen aufräumen und das ein bisschen lesbarer zu haben, oder? So ja.
63. (Minecraft): Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir uns den Kunden Brock Formen ansehen und wie wir einen Block machen können, der nicht in der Form oder Form eines Blocks ist. Also, was wir dafür brauchen, ist das, ein anderes Programm, das Blockbank genannt wird. Einige von Ihnen haben vielleicht schon davon gehört. Der Link zum Programm steht als Ressource zur Verfügung. Und wenn du es öffnest, sollte so
etwas auftauchen. Und was wir wollen, ist ein neues Java-Block Schrägstrich Element. Also werden wir darauf klicken. Und dann können wir ihm eine neue Akte geben. Ich werde diesen Test nur anrufen. Ich habe schon alles vorbereitet. Und dann werden wir einfach sagen, okay, und dann finden wir uns hier drin. So können wir mit der Maus hineinzoomen, wir werden mit der rechten Maustaste klicken, wir können. Also, wenn Sie rechts halten, wird die rechte Maustaste unsere Vision hier verändern. Und dann, wenn wir Linksklick halten und wir können uns drehen. Und das ist eigentlich eines der einfachsten 3D-Programme zu verwenden. Und es übersetzt wirklich gut zu Minecraft. Also können wir hier einfach einen Würfel hinzufügen und dann haben wir einen Würfel. Nun wäre dies der, also ist das gesamte t dieses Gitters hier ein Block und ein Würfel ist im Grunde 1 16. eines Blocks. So zum Beispiel könnten wir hier die Größe x sagen, und dann können wir 16 sagen. Und jetzt wäre dies tatsächlich die Länge eines Blocks. Und dann könnten wir sagen, nun, ich will es auch in diese Richtung haben. Und jetzt
ist die untere Ebene, also sozusagen das untere Pixel der Blocktextur, also sozusagen das untere Pixel der Blocktextur,mit diesem 3D-Modell gefüllt. Und ja, und dann können wir zum Beispiel sagen: Nun, dann pumpen wir es auch hier hoch. Und jetzt hätten wir einen vollen Block, 16 mal 16 mal 16. Und ja, damit können
wir im Grunde Dinge bauen. Also können wir sagen, nun, wir gingen einen hier, einen hier, einen hier, einen hier, und dann können wir ihn
entweder mit diesen einzelnen Blöcken bauen , oder wir können größere Blöcke haben
und, weißt du, etwas bauen. Die Kreativität hat hier also wirklich keine Grenzen gesetzt. Du könntest es auch drehen, oder? Hängt davon ab, ob der Pivot ist. Dieser Drehpunkt ist also im Grunde der Punkt, an dem sich dreht. Also, wenn wir dann den Drehpunkt zentriert haben, dann wird es in der Mitte von hier. Und dann können wir es tatsächlich so drehen. So können wir tatsächlich die Formen machen, die Nanoröhren sind, die nicht blockbezogen sind. Und tun Sie das in diesem Fall. Aber jetzt können wir das zum Beispiel tun, oder? Damit wir hier ziemlich verrückte Sachen machen können. Allerdings habe ich bereits ein Modell vorbereitet, um Ihnen zu zeigen. Und es sieht in etwa so aus. Es ist nichts Spektakuläres. Es ist jedoch eine nicht, es ist eine unregelmäßige Blockform, sagen wir. Ich habe auch in drei Texturen gesetzt, sind nur Farben in diesem Fall. Natürlich, wenn Sie eine echte
blockiert haben wollten und Sie den Textur-Seher importieren müssten. Dies ist jedoch sehr einfach. Wie Sie sehen können, wenn ich zum Beispiel hier
reingehe und ich wähle, sagen
wir diesen Würfel hier. Sie können sehen, dass es verschiedene Seiten gibt, oder? Die Nordseite wäre also diese Seite. Und ich kann das jetzt verschieben, wenn dies eine Texturdatei wäre, die ich erstellt habe, und Sie könnten im Grunde sagen, okay, dieser Teil des PNG sollte jetzt dort angezeigt werden. Ist es. Ich denke, sehr einfach, dieses Programm zu verwenden, und Sie sollten, wie, würde
ich sagen, in etwa einer Stunde, Sie sollten in der Lage sein, ziemlich gut, schöne Modelle hier zu erstellen. Und ja, das ist eigentlich sehr nett und sehr gut gemacht. Es gibt jedoch noch ein paar Dinge, die wir tun müssten, damit dies funktioniert. Nehmen wir an, Sie haben Ihr Modell erstellt, wie Sie wollen. Wir müssen uns ein paar andere Dinge ansehen. Und das wird im Display oben rechts erledigt werden. Und so wird es in den Händen der Spieler und in der dritten Person aussehen und so weiter. Es gibt also ein paar Dinge, die wir hier reinbringen müssen. So zum Beispiel, diese Skala, standardmäßig, ist es, na ja, sehr groß. Daher müssen Sie wahrscheinlich die Skala auf viele Arten anpassen. Und Sie müssen alle Schlitze hier durchlaufen. Also die dritte Person, und Sie können in First-Person links First-Person-Fahrt sehen, können
Sie es sehen, wie es auf dem Kopf aussieht, wie es auf dem Boden aussieht. Die Referenz hier ist also ein Block. Man kann also sagen, eigentlich bin ich vielleicht, ich will das wirklich groß oder nicht so groß haben. Und wir können es in einem Rahmen betrachten. Sie können es in einem, einem Inselrahmen und auch in der GUI ändern. So wie es im Inventar aussieht, können
Sie alle das ändern. Und das wird alles ziemlich leicht funktionieren. Und ja, also auch, um dies zu exportieren, müssen
Sie dann zum Datei-Export und zu einem Exportblockelementmodell gehen. Dies erzeugt dann eine JSON-Datei und angrenzende Datei kann dann als Blockmodell verwendet werden. Es gibt jedoch noch wenige Dinge, die wir uns auch ansehen müssen. Und das ist innerhalb der Klasse, die wir erstellen werden. Und wir werden dies jedoch beenden,
was Sie brauchen, ist, dass Sie ein Plug-in benötigen, das Mott Utils genannt wird. So können Sie einfach zu verfügbaren Mod-Utils gehen und dann installieren. Ich habe natürlich schon solide. Das erlaubt Ihnen dann, dies als Voxel-Form zu exportieren und Sie werden das brauchen. So Voxel Form, das ist, dies ist auch eine JSON-Datei. Es erstellt die Form für den Block, so dass die, dass Sie im Grunde die Grenzen des Blocks in genau diesem Muster haben, oder? So können Sie sich zum Beispiel
einen Block vorstellen, den wir vielleicht haben. Zum Beispiel können Sie, wissen Sie, eine Platte. Und eine Platte
hat natürlich nicht ihre Grenze im gesamten Block, aber sie ist nur ein halber Block. Und das ist genau das Gleiche, was wir damit passiert haben wollen. Dafür müssen wir eigentlich eine Gruppe erstellen, die hier Voxel Shapes genannt wird. Und dann legen wir alle Würfel oder Teile , die wir darunter gemacht haben. Und dann können wir es exportieren. Und das müssen wir sogar viermal exportieren. Wir, weil wir diese erkunden wollen, ist nach Norden ausgerichtet. Deswegen habe ich diese Art mit diesem größeren Teil hier erschaffen, nach Norden gerichtet. Also wissen wir eigentlich, was die Verkleidung wo C. Und dann wollen
wir immer wissen, wir wollen mit allem arbeiten und wir wollen das
drehen und dann als Voxel-Form exportieren. Exportieren Sie diese als Voxelform, exportieren Sie diese als Voxelform. Und dann sind wir wieder hier. So können wir tatsächlich, denn wieder, für dieses spezielle Beispiel, alles wird als Ressource geliefert. Für diesen Vortrag. Wenn Sie jedoch Ihre eigenen
möchten, müssen Sie diese Dinge exportieren. Und ich werde Ihnen die Akten zeigen, wie sie aussehen und was mit ihnen zu tun ist. Und nur eine Sekunde. Also wechseln wir zurück zu unserem Intelligenten hier. Und dann schauen wir uns
zum Beispiel schnell die Voxel-Form an, die Sie bekommen werden. Dies wird a.java Datei sein und es wird ungefähr so aussehen. Das wird also nur ein Strom von Voxel-Form sein. Und wir werden das sehr bald gut umsetzen. Und ich zeige Ihnen, wie das geht. Aber zuerst müssen wir tatsächlich einen neuen Block erstellen. Dafür werden wir einen Block erstellen. Ich nenne das elektrische Feuer elektrisierend. Ja. Und das ist auch die Grundlage für einige andere Dinge, die wir tun werden, die Kachel-Entitäten in zukünftigen Vorträgen sein könnten. Aber im Moment wird das einfach ein pleite mit einer neuen und benutzerdefinierten Form sein. Es wird Block erweitern. Aber es wird auch den richtigen Block erweitern. Das ist sehr wichtig. Weil er manchmal den falschen Block nimmt. Das ist etwas nervig. Aber da gehst du. Ordnung. Das ist also schon hübsch, ziemlich gut. Wir haben das da drin erledigt. Und dann werden wir sofort ja, wir werden sofort alle Dinge hier reinbringen. Das erste, was wir hinzufügen müssen, ist eine private statische endgültige Richtungseigenschaft. Und das wird gleich der horizontalen Blockpunkt-horizontalen Ausrichtung sein. Als erstes, was wir tun werden,
oh, da gehst du. Und dann können wir einige Überschreibungen hinzufügen. Das erste, was wir überschreiben werden, ist die öffentliche Voxel-Form. Öffentlichkeiten. Öffentliche Voxel-Form bekommt Form. Das hier. Ich mache mir keine Sorgen. Der Pfeil hier. Wir können auch eine Unterdrückung Warnungen tun. Das ist veraltet, richtig? Ja. So eine Ablehnung, richtig? Ja. Ok. Ja. Es ist nicht das große Problem hier ist, dass es einfach nicht aufgerufen werden sollte, aber Sie können es überschreiben. Das ist also nicht das Schlimmste. Und dann wollen wir auch den blockierten Staat,
öffentlichen Blockstaat außer Kraft setzen , Staat für das Stellen bekommen. Und dies hat als Parameterelement Kontexte verwenden. Kontext hat bereits etwas zurückgegeben und das wird diesen Punkt
zurückgeben Standardzustand mit Facing erhalten. Und dann der Kontext Punkt-Punkt-Punkt-Punkt-Platzierung, horizontale Ausrichtung, und dann das Gegenteil. Und wir werden hier außer Kraft setzen. Nein, das ist nicht genau das, was ich tun wollte. Das wollte ich tun, das Ego. Und dann gibt es noch zwei weitere, eigentlich drei weitere Methoden, die wir implementieren müssen. Einer von ihnen ist eine Blockbühne. Wir werden uns nur drehen. Es wird einen Blockzustand, einen
Zustand und eine Rotation annehmen . Aber das wird auch eine Überschreibung eines anderen sein. Und Sie bekommen schnell Rotation hier drin. Wieder einmal bedeutet dies eine Abschreibung. Wir werden diese Warnung nur unterdrücken, weil sie
nicht das Schlimmste sein wird. Sofort. Wir werden den Zustand mit der Verkleidung und dann die
Drehung in Richtung der Ausrichtung zurückkehren . Also, all diese Methoden, die wir
jetzt in diesem Moment implementieren , sind im Grunde dafür zu wissen, welche Richtung wir den Block platzieren. Es ist sehr ähnlich, wenn Sie einen Ofen platzieren, zum Beispiel, Die Seite, ob Ofen brennt immer steht Ihnen gegenüber. Das ist im Grunde sehr ähnlich zu dem, was wir gerade tun. Das wird wie das Gleiche hier sein, der Spiegel. Und dann werden wir den Zustand DOT drehen und dann in DO2-Rotation spiegeln. Und das wird wieder state.gov konfrontiert sein. Und das war's. Und dann ist die letzte, letzte Methode, die wir tatsächlich implementieren müssen, ein geschützter, geschützter Hohlraumfüllbehälter. Das wird ein Staatscontainer. Und einen Behälter, nein. Ein O Dot Builder von Sperr- und Blockstatus. Und das wird hier etwas komplizierter. Aber das ist es eigentlich nicht. Nun, es sieht kompliziert aus, aber eigentlich werden wir nur sagen, Builder Dot Add, Basing. Das ist alles, was wir tun müssen. Und ich möchte diese Klasse importieren. Sagen Sie, das ist auch ein Überschreiben, so dass wir es wissen. Und das ist es. Nun, wir müssen das auch ändern. Denn jetzt werden wir die Gesichter nehmen, die wir bekommen haben. Das wäre also für Dateien und die wir bekommen, wenn wir die Voxel-Formen aus Rock gebogen exportieren, wie ich schon sagte, Grund Nord, Ost, Süd und West. Und ich werde nur einen von ihnen übernehmen. Das ist also etwas, wie es aussehen würde. Natürlich macht das für uns gerade jetzt wenig Sinn. Aber keine Sorge, wir werden das rausfinden. Das ist nur etwas, das Sie eine Kopie brauchen. Ich habe das bereits für alle Seiten vorbereitet und ich werde es schnell erklären, sobald ich es kopiert habe.
Ok? So müssen Voxel-Formen importiert werden. Boolean, Funktion und Stream als auch. Und dann funktioniert das sehr gut. Ok. Also, was passiert hier? Nun, wir definieren eine private statische endgültige Voxel-Form. Und dann wollen wir das Voxel definieren, das für Nord-,
Ost-, Süd- und Westrichtung geformt ist. Und dann kopieren wir einfach den Stream. Sehr wichtig. Der Strom ist ohne den Punkt hier am Ende. Sie müssen dies also hinzufügen, damit es funktioniert. Und dann müssen wir das auch der Ghettoform hier hinzufügen. Und wir machen das mit, indem wir eine Switch-Anweisung machen. Also werden wir wechseln und dann sagen wir, dass es ins Gesicht kommt. Also sind wir im Grunde abhängig von der Verkleidung, wir geben ihm eine andere Voxel-Form. Also der erste, den wir haben werden, ist der Fall Norden
, der Formunterstrich n zurückgeben wird. Und was dann? Ich werde das ein paar Mal schnell kopieren. Und die Bewegung sagen, Osten wird dann Form drehen, dh. Süden wird Form S zurückkehren und West wird zurückkehren. Kannst du es erraten? Geformtes W? Und dann werden wir auch einen Standard hinzufügen, der Form zurückgeben wird. Und er wird sagen, hey, wir können das dann auslassen. Wir werden es einfach so lassen. Das wird gut. Und das definiert die Form des Blocks. Jetzt müssen wir auch die Bloch-Zustände und das Modell hinzufügen. Aber das wird eigentlich nicht zu schrecklich sein. Lassen Sie uns das zunächst hier registrieren. Dies wird öffentliches statisches, endgültiges Registrierungsobjekt des Typs block sein. Und das wird das elektrische Feuer sein. Ja. Was sein wird, das wird das elektrische Feuer registrieren. In diesem Fall können wir die normale Registermethode wieder verwenden. Und das wird eine neue elektrifizierte mit abstrakten blockierten Eigenschaften sein. Eigenschaften. Und dann werden wir sagen, sicheres Material, Material, das Eisen. Nehmen wir das. Und dann lasst uns Partner im Widerstand machen oder dies ein wenig schöner formatieren. Und was sonst? Wie wäre es mit Ernte-Tool? Ja. Ich denke, das ergibt Sinn. Es wird sein, ich würde sagen, Pick X macht Sinn. Und dann noch etwas, was wir brauchen? Ja, wir brauchen die Gruppe, wo ich die Gruppe will. Ich weiß nicht, dass die Gruppe automatisch definiert wird, weil
wir das hier unten getan haben. Also ja, ich denke, das ist in Ordnung für die Registrierung. Und dann wollen wir den Blockstatus hinzufügen. Also, jetzt sind die Bloch-Staaten, es ist nicht schwer oder so. Aber ich werde das einfach nochmal kopieren und das noch einmal erklären. Das wird also der elektrische Feuerpunkt JSON sein. Und hier drin haben wir jetzt tatsächlich verschiedene Varianten, weil wir die Rotation dieses Modells ändern
wollen , je nachdem, wo es zugewandt ist. Diese Gegenüberstellung bezieht sich also auf diese Gegenüberstellung hier drüben, richtig? Also, wenn das Norden ist, dann werden wir nur das normale Modell anzeigen. Und wenn sich selbst, werden wir es um 180 Grad drehen und so weiter und so weiter. Aber das ist im Grunde eine kurze Erklärung dafür. Das ist nichts zu verrücktes. Und dann brauchen wir das Blockmodell. Und das wird derjenige sein, der am verrücktesten ist. Das ist diejenige, die ich nur auf die andere umschalten werde, diese. Und das wird derjenige sein, den Sie hier exportieren werden. Also hat der Exploit das Artikelmodell gebrochen. Und das wird die JSON-Datei sein, die Sie dort sehen werden. Und das wird ziemlich verrückt sein, denn dieser wird so etwas aussehen. Ich werde das hier kopieren und du wirst alle aus deinen Stühlen fallen. Ich werde es kopieren. Und so wird es aussehen. Das ist ein bisschen richtig. Das ist, das sind ziemlich viele Dinge. Dies definiert im Grunde einfach das, jedes Element, richtig? Also jedes Element, das Sie sind, ist einfach ein Block,
im Grunde, dass wir in Blockbank definiert haben. Und dann sagt es, welche Textur jedes Gesicht hat. Und ja, das ist nur etwas, das Sie überschreiben. Sehr wichtig, dass das Innere der Texturen Hier ist alles in Ordnung. Dies könnte auch ein Problem haben. Die Texturnamen sind also die gleichen Namen, die hier sind. Also im Moment die, hier, sie würden Texture eins und Textur, um es x drei genannt werden. Ich habe dieses Jahr umbenannt, um unseren Unterstrich 123 zu elektrifizieren, weil es texturale 123 wirklich nicht so gut eines Namens sind, einfach weil dann ,
na ja, was ist das und auch, was Sie hinzufügen müssen, ist müssen
Sie MC Kurs oder Ihre Mod ID vorne hier. Das ist sehr wichtig. Und ich glaube, dass von der Standardeinstellung, die Blockbank erstellt Brooks
ist und nicht Block für die Textur ist sehr wichtig. Wir haben unsere Textur in unserem Text oder unseren Worten genannt. Mit anderen Worten, unsere Textur, Texturen, Ordner, Block und Element, Singular, nicht Plural. Sehr wichtig. Und so lassen Sie uns dann auch den elektrifizierten JSON für das Element
erhalten, das ein normales Element
ist, das sich auf den Block bezieht, dh es. Dann sind wir auch noch einmal jede Datei, obwohl ich auch die Blockbenchdatei, den JSON und alle vier Voxel-Shapes sowie die Texturen habe, alle wieder als Ressource verfügbar. Und wir wollen auch die Texturen in Block direkt hier hinzufügen. Kopieren Sie. Ja. Wir haben auch die Elektroautos. Sie sind nur rote, grüne und blaue Quadrate. Es ist also nicht eine echte Textur in diesem Sinne, aber ja, ja, und ich glaube, das ist alles. Nun, es ist natürlich ein bisschen mehr. jedoch an, dass es für spezielle Blöcke Nehmen wirjedoch an, dass es für spezielle Blöckenicht so kompliziert ist. Alle Dinge berücksichtigt, lasst uns einfach anfangen und sehen, ob alles funktioniert. Das wird der beste Fall sein. Natürlich haben wir noch keine Lokalisierung hinzugefügt. Aber noch einmal sollte die Lokalisierung
ziemlich einfach hinzuzufügen sein, wenn Sie das später hinzufügen möchten, das ist an diesem Punkt gemein trivial, glaube
ich, das. Okay, schauen wir uns hier rein und schauen wir mal, wie es im Spiel aussieht. Mit. Je komplexer die Themen werden, desto fehleranfälliger könnten sie sein, oder? Deshalb ist es immer gut zu überprüfen, ob alles funktioniert hat und mal sehen. Also zuerst, das ist ziemlich gut. So können wir tatsächlich schon sehen, dass das Modell implementiert wurde. Wir können es auch in unserer Hand halten. Das ist ziemlich nett. Und jetzt ist die große Frage: Können wir es platzieren? Ja, das können wir. Und wie Sie sehen können, sind die schwarzen Ränder, wenn ich
darüber gehe , tatsächlich genau die Form des Blocks. Dasselbe mit, zum Beispiel, der Umschlag, wie Sie sehen können. Und dann hier wäre es der ganze Block. Das ist also die sehr, sehr wie schwarze Linie, die schwarzen Linien im Grunde. Und genau das ist es. Also, wenn wir drauf treten, denke
ich, werden wir sinken, wenn wir hier ein bisschen reingehen. Es ist es kaum auffällig, dass dort. Ok. So ist es bemerkbar. Und andere große Frage ist, ob die Verkleidung immer korrekt ist, also wollen wir immer diesen größeren Teil hier, wir stehen uns gegenüber. Und das funktioniert auch. Also schauen wir es uns einfach so an. Da gehen wir. So steht es dem richtigen Weg gegenüber. Die Voxel-Form bleibt erhalten. Es gibt eine, es
gibt eine winzige URL, glaube ich. Sieh dir das an. Also das ist ich denke, ein Pixel falsch. Das hat wahrscheinlich etwas damit zu tun. Das hier ist richtig. Also gibt es wahrscheinlich einen Fehler in den Verkleidungen. Es ist jedoch kaum spürbar. Und ich glaube, dass das nicht das Schlimmste ist, was passiert. Jedenfalls. Dies ist also die benutzerdefinierten Blockmodelle sind sehr daran interessiert, welche benutzerdefinierten Blockmodelle Sie entwickeln. Also könnten das natürlich
verrückte Dinge sein ,
oder vielleicht normale Maschinen oder magische Geräte, wer weiß? Und ja, das ist im Grunde, wie Sie
die benutzerdefinierten Blockmodelle mit Hilfe von Blockbank erstellen . Und ja, wenn es irgendwelche Fragen gibt, zögern Sie nicht zu fragen. Und wenn Sie diesen Kurs bisher genossen
haben, dann würde ich natürlich eine Kommentarbewertung wirklich schätzen. Und ja.
64. (Minecraft) Schaffung einer neuen Kachel: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir eine Flieseneinheit
zu unserer MOD und speziell zum elektrischen Feuer hier hinzufügen . Das erste, was wir brauchen, ist ein neues Paket. einmal können wir entweder diese Kachel oder Kachel-Entität nennen. Es spielt wirklich keine Rolle, aber Kachel- oder Kachelentität ist irgendwie wohin Sie damit gehen sollten. Und dann brauchen wir zwei neue Klassen. Man wird die MOD-Kachel-Entitäten sein,
Entitäten, die wir gehen. Und der andere wird die Elektrifizierung oder Fliese sein. Also im Grunde das Elektro feuert den Block. Die Elektrifizierung oder Kachel ist die Kachelentität, die mit ihr verknüpft ist. Es könnte auch, etwas, was wir tun könnten, ist,
zum Beispiel, dass wir unseren Block elektrisieren, so dass wir uns davon sogar sicher sind. Okay, das ist der Block und der andere ist die Kachelentität. Das könnte man tun. Wir werden es so behalten, aber das ist etwas, worüber du vielleicht nachdenken möchtest. Zunächst einmal wollen
wir innerhalb unserer Registrierung ein neues Standard-Register. Und das wird öffentliches, statisches, endgültiges verzögertes Register vom Typ, Kachel-Entitätstyp sein. Und dann werden wir da ein Fragezeichen setzen. Und dann wird dies gekachelte Entitätstypen sein. Das ist gleich dem verschiedenen Register Punkt erstellen. Fords Register, dass Fliesen Entitäten. Mc mod, mod OD. Schön. Und dann hier unten, wir werden dies nur zu unserem Register für die init-Methode hinzufügen. Und das ist, dass die Mott-Entitäten, die wir jetzt betrachten werden, da drin sind. Wir müssen natürlich einfach ein endgültiges Registrierungsobjekt hinzufügen. Auch hier ist dies sehr ähnlich zu all den anderen Dingen, die wir hinzugefügt haben, die Elemente, die Blöcke und die Flüssigkeit. Das wird vom Typ sein. Und dann in einer Art Fragezeichen hier drin, werden
wir tatsächlich den elektrischen Brandtyp angeben. Das wird ein elektrisches Feuer in T sein. Lassen Sie mich ein wenig hinauszoomen. Das ist gleich Registrierung Punkt Kachel Entitäten registrieren. Und es wird wie ein elektrisches Feuer sein, Tyler-Entität. Das wird ein Tyler Entitätstyp dot builder dot create sein. Und dann brauchen wir Lieferant für eine neue elektrifizieren unsere Fliese. Und dann hier mod Blöcke, dot oder wir haben noch keinen Blog. Ich weiß es nicht. Wir haben mehrere, Natürlich haben
wir die elektrifizieren bereits gefüllt sind. Und dann innerhalb von hier wollen wir eine Null angeben und das kann dann hier gelöscht werden. Noch ein Nein. Irgendwo. Was ist das Problem? Ich natürlich, die elektrifizieren unser Titel ist noch keine Kachel. Aber das sollte in Ordnung sein. Dann brauchen wir auch unser bekanntes öffentliches Lückenregister so. Und wir können dies anstelle von hier registrieren, wo wir nicht einfach Mod-Kachel-Entitäten gesagt haben, die sich registrieren. Und das ist großartig. Und dann im Inneren der elektrifizieren unsere Fliese. Und natürlich wollen wir, dass diese Kachel-Entität erweitert wird. Kachel-Entität Während Entität ein wir gehen, ja, diese. Und das wird einen Instruktor schaffen. Das ist in Ordnung. Sie benötigen auch einen zweiten Lehrer, der
elektrifiziert oder fliesen wird ohne Parameter. Und hier drinnen wollen wir die sterblichen Entitäten nehmen, elektrifiziert style.css. Daher ruft dieser Konstruktor diesen Konstruktor mit der,
mit dieser Kachelentität auf. Und dann ist der Pfeil hier so und dann ist der Fehler hier auch ein Weg. Und dann können wir das weiter bevölkern. Also im Moment, was wir in unserem Elektrofeuer
erstellen werden, ist einfach ein Item-Stack-Handler. Also werde ich einen privaten letzten Item-Stack-Handler erstellen und das ist vier. Beim Umgang mit Gegenständen. Verrückt genug, werde ich diesen Create-Handler nennen. Und das ist eine Methode, die wir hier lesen werden. Artikel Stan, Artikel, Stapel, Handler. Und das wird gezogen erstellen Griff ist und es. Also Kachel-Entität ist im Grunde nur ein Block oder
seine, seine Daten mit dem Block verbunden, der dynamische Daten speichern kann, oder? Also ist es nicht, es muss keine haben, muss
keine GUI haben. Das ist etwas, was wir uns auch ansehen werden. Aber das muss es nicht. Also in diesem Fall werden
wir es eigentlich nur schaffen, damit wir
Gegenstände in das elektrische Feuer geben und sie wieder rausholen können . Und wir werden das mit Trichtern machen, aber das werden wir bald sehen. Also genau hier wird tatsächlich einen neuen Item-Stack-Handler mit Seufzer One und Einsicht erstellen. Wir müssen ein paar Dinge außer Kraft setzen. Geschützte Lücke auf Inhalt, auf Inhalt geändert in Slot. Wir werden schmutzig markieren. So ist dies nur, um sicherzustellen, dass das ist etwas mit der zu tun, mit den Stämmen und sicherzustellen, dass dies sicher ist richtig. Boolean ist gültig, ist Element gültig, das ist r1. Ich habe es lassen. Das definiert also einfach, ob wir tatsächlich einen Artikel einfügen können oder nicht. In einen bestimmten Schlitz. An diesem Punkt werden wir einfach wahr zurückkehren. Und dann ist die letzte tatsächlich die Methode bei der wir das Element in einen bestimmten Slot einfügen. einmal simulieren ein Nicht-Null-Element
Stapel, Stapel und ein boolescher Wert. Und die boolesche Simulation ist nur so, dass wir, wenn das wahr ist, dann simulieren wir tatsächlich nur das Einsetzen des Elements. Wir legen den Artikel nicht wirklich. Und so wäre das normalerweise falsch, wenn es reinkommt, aber es muss immer noch da sein. Dies ist nicht null und eine Überschreibung. Da gehen wir. Und dann können wir das hier beenden. Und das scheint schon sehr gut zu sein. Wir müssen auch sicherstellen, dass wir dies als faul optional angegeben
haben , weil wir die Fähigkeiten angeben müssen. So arbeiten Kachelentitäten mit Funktionen. Und in diesem Fall wollen
wir einen Item-Handler. Und hier dieser Handler, und das ist ein faul optional von und dann liefern wir ihm den Item-Handler Evo. Ja. Und dann wollen wir das zurückgeben. Ich bin mit einer weiteren Überschreitung hier unten, die öffentlich sein wird. Faul, optional. Und lassen Sie uns Fähigkeiten bekommen. Fähigkeit. Ja, ich denke, das stimmt. Und sei eine Nicht-Null-Fähigkeit, t-Fähigkeit und eine NULL-fähige Richtungsseite. Sie könnten sich also vorstellen, dass verschiedene Websites unterschiedliche Funktionen haben könnten. Dies ist wieder einmal eine Überschreibung. Und das wird einfach Höhle sein, Fähigkeit ist gleich einem Wahrscheinlichkeitselement-Handler. Also überprüfen wir, ob das, was hält, ist das Element, das eine Fähigkeit handhabt. Und wenn das der Fall ist, werden wir den Handler Dot zurückgeben. Und wenn nichts anderes der Fall ist, werden
wir nur Super-Dot-Git-Fähigkeit,
Fähigkeit und Seite zurückgeben , die es gehen wird. Das ist alles, was wir hier tun müssen. So die Fähigkeiten und Sie können auch, Ich glaube, Blick auf sie Jahr i Speicher. Und lassen Sie mich einfach schnell sehen Fähigkeit, Item-Handler. Nun, das sind eigentlich spezifische. Ja, also gibt es verschiedene Fähigkeiten, wie ich schon sagte. Und in diesem Fall ist der Item-Handler derjenige, der ist, denke
ich, der interessanteste gerade. Und eines, das wir betrachten werden, gibt es jedoch zwei weitere Dinge, die wir hinzufügen müssen. Das wird eine Schreib- und Lesefunktion sein. Also wird es den Blockzustand nehmen, Staat. Und eine Verbindung nb t. Vielleicht haben Sie davon schon mal gehört. Dies sind die nvt-Daten, über die viele Leute sprechen, wenn sie Elemente betrachten und so weiter. Und wir werden diesen Item-Handler Dot De-serialisieren MVT. Das funktioniert schon gut. Doch mit einem String-Inventar zusammengesetzt. Wir werden das schnell schreiben, etwas da drin. Also lesen und das ist das State-Tag. Das ist also im Grunde eine Lektüre. Es wird also das Inventar lesen oder
das, was wir sagen. Es wird etwas mit dem Namen genug lesen. Also Inventar in unserem Fall. Und dann brauchen wir auch ein öffentliches Humboldt-MPT. Wir werden nur Recht haben, das wird kompiliert und B t Tag. Und das ist umgekehrt. Also hier drin werden wir tatsächlich die dort reinlegen. Das wird Item Handler Dot De-serialize sein. Entschuldigung, serialisiert, tatsächlich serialisiert. Und dann werden wir super.onCreate mit einem Tag-Namen zurückgeben. Wir werden das auch überschreiben, nur damit wir es wissen. Und ich glaube, dass dies die Kachel-Entität ist, die mit der Fähigkeit erstellt wurde Elemente zu
behandeln, so dass wir tatsächlich haben, dass wir tatsächlich Elemente dort hineinlegen können. Und es hat einen Schlitz, vier Elemente jetzt können wir nicht sehen, dass Slot. Und wir können, wir können nur von außen mit ihm interagieren. Es gibt noch eine oder zwei weitere Dinge, die wir hier dem elektrischen Feuer hinzufügen müssen . Und das sind zwei Methoden, um Methoden zu überschreiben. Einer von ihnen ist, mal sehen, ob ich es hier finden kann. Es sind übrigens viele Methoden, die Sie implementieren können. Es gibt also eine Menge Dinge, die wir tun können. Dies wird eine öffentliche Kachel-Entität sein, Lesen, Lesen Kachel-Entität, Block ,
Zustand, Zustand und ein iBook-Reader, der die Welt sein wird. Und das wird zurückkehren, zurückkehren, mod Kachel-Entität, Fliesen Entitäten, elektrifizierte Talente dot github, V8. Das ist auch übergewichtig. Also sind wir sicher, dass und dann die beste Überschreibung überhaupt von allen von ihnen ist gekachelte Entität. Nun weiß, ob es eine Titeleinheit hat, wir wissen, und das ist natürlich, dass es eine hat. Und da gehen wir. In Ordnung. Fertig. Ich glaube also, dass das alles sein sollte. Wir haben das hinzugefügt. Ich glaube, dass das alles war. Lassen Sie uns versuchen, zu sehen, ob das bereits funktioniert oder nicht. Wir haben es registriert. Wir haben die Identitäten hier hinzugefügt. Das Schlimmste, was passieren kann, ist, dass wir einen Pfeil bekommen, aber ich glaube nicht, dass wir einen bekommen. Ich denke, das sollte gut sein. Und ja, so gibt es,
die, die Fähigkeiten sind interessant. Aber mal sehen, ob die Elementfunktion dazu hinzugefügt wurde. So wird sich
der Block von außen nicht geändert haben. Und solange es so ist, werden
wir uns von innen verändert haben. Wie Sie sehen können, ist der Block noch da. Lasst uns diese einfach zerstören, denn manchmal, wenn man den Block ändert, dann es, es, dann hat es manchmal seltsame Dinge, die passieren könnten. Also lasst uns das hinlegen und dann
versuchen wir tatsächlich , den Trichter oder zwei Trichter zu nehmen. Zunächst einmal werden wir dieses Jahr setzen. Das ist ziemlich gut, oder? So können wir tatsächlich sehen, dass es etwas reinbringen will. Und wir werden auch eins unten setzen. Und dann lassen Sie uns einfach die Trichter hineinlegen und wir können sehen, dass es in Ihr Labor eingesetzt wird. Klicken mit der rechten Maustaste funktioniert nicht. Und es gibt auch, dass ich da rausgezogen bin. Ein Rechtsklick darauf funktioniert also nicht, weil es keine GUI hat und jetzt nicht die Möglichkeit
hat, mit der rechten Maustaste geklickt zu werden. Und das können wir natürlich hinzufügen, aber, und das werden wir in der nächsten Vorlesung hinzufügen. Aber im Moment, wie wir sehen können, sind
die Blöcke, oder die Gegenstände gehen durch diesen Block hier unten. Und das ist im Grunde, was wir zeigen wollten, dass, ja, in der Tat, dies hat eine Item-Block-Handler-Fähigkeit jetzt. Und es ist eine Kachelentität und speichert die Elemente dort. Und sieh dir das an. Der Hase wird auch auftauchen. Ist das nicht nett? Das ist großartig. Richtig? So erstellen Sie im Grunde eine Kachelentität. Natürlich ist das noch nicht ganz erledigt. Diese wären jedoch ähnlich zu Dingen wie Rohre, die wir sehen könnten, oder ein Element kann Breiten oder so etwas in verschiedenen Modi. Wo dies auch Kachelentitäten sein könnte, aber ohne einen bestimmten Gy, weil sie nur, müssen sie nur eine Art von Daten speichern. Und sie müssen nicht unbedingt eine GUI haben, oder? So erstellen Sie eine Kachelentität. einmal, wenn es irgendwelche Fragen gibt, zögern Sie nicht zu fragen. Und ja.
65. (Minecraft) Erstellen eines benutzerdefinierten GUI: Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir unsere eigene benutzerdefinierte
GUI für unser elektrisches Feuer erstellen , das wir für unsere Flieseneinheit erstellt haben. Und es gibt wenige Dinge, die wir brauchen. Wir brauchen hier noch zwei Pakete. Das erste Paket, das wir erstellen werden, wird ein kalter Behälter sein. Und das zweite Paket wird gekühlte Bildschirme sein. Nun, diese Bildschirme
kann man argumentieren, ob wir das woanders und auch den Container haben wollten oder nicht. Wieder einmal ist dies etwas, das anpassbar ist, sagen wir zwei,
aber Sie wollen, um dies zu brechen, gleich mit den Schlammflüssigkeiten. Ein paar Vorträge zurück. Vielleicht möchten Sie Ihr eigenes,
maßgeschneidertes Paket für die Flüssigkeiten und so weiter und so weiter. Es ist, es ist wirklich ein Stil, anstatt etwas, das dieser Fall sein muss. Ich werde es so machen. Aber Sie sind natürlich
frei, es fast so zu tun, wie Sie wollen. Dies wird also erstellen, dies wird eine neue Java-Klasse namens MAD-Container haben. Container ein Ego. Sehr gut. Und das ist wieder eine dieser Klassen wie die Schlammblöcke und die Wassergraben Ereignisse. Nicht etwas, das wir noch nicht gesehen haben. Zuerst müssen wir natürlich in unser Register und die Registrierung gehen und
ein öffentliches statisches endgültiges latentes Register vom Typ Container erhalten . Und das wird eigentlich sein, es ist nicht von Container, aber es ist vom Containertyp mit einem Fragezeichen hier, Containern. Und das wird anders sein. Registrieren Punkt erstellen vier Register. Das haben wir schon oft gesehen. Und das wird Container sein, Partituren Mod, Mod ID, richtig? Das sollte kein Rätsel mehr sein. Und dann natürlich hier hinzugefügt, sehr wichtig. Wie immer. Das sind, das sind
die Art von Fehlern,
die Sie machen, um es hier hinzuzufügen. Und dann dauert es etwa eine Stunde, um herauszufinden, warum es nicht in einem neuen CEO funktioniert. Ich habe nur vergessen, es zu registrieren. Und das ist immer etwas, das passieren könnte. Und das sind die schlimmsten Fehler. Okay, also zuerst werden
wir das sofort in Ihr öffentliches statisches Finale bringen. Und das wird ein Registry-Objekt. Registrierungsobjekt tatsächlich nicht
registriert, Objekt vom Typ, Containertyp registrieren. Und dann brauchen wir den elektrischen Feuerbehälter. Jetzt existiert das offensichtlich noch nicht, aber wir werden diesen ausgewählten Feuerbehälter erstellen und sicherstellen, dass ich das richtig schreibe, weil. Ich weiß nicht, warum ich elektrify oder als Namen gewählt habe, aber ich meine, ich meine, ich weiß, warum ich mich entschieden habe, aber manchmal könnte es einen Tippfehler geben, aber ja, das wird vom Typ II Schmiedecontainer Typ dot create sein. Und dass wir hier schon ein paar Dinge schaffen können. Und Block, Block Pos, pos gleich data.frame, Blog. Welt, Welt gleich Inventar Punkt-Spieler, Punkt Get Entity Welt, und dann einen neuen gewählten Feuerbehälter mit Fenster IID Welt zurückgeben. Pause im Punkt-Punkt-Punkt-Player. Wieder einmal gibt es das noch nicht. Nun, wir brauchen auch eine öffentliche statische void Register-Methode. einmal, wie immer. Außerdem müssen wir ein paar Dinge importieren. Dies kann natürlich importiert werden, was es noch nicht gibt. Dann fügen wir das hier unten hinzu. Dies wird die Mod-Container sein. Container registrieren, schreiben o, richtig? Dann in unserem Container, wir jetzt das schaffen, unseren Container elektrifizieren. Es wird also der elektrische Feuerbehälter sein. Hoffen wir, dass ich es richtig geschrieben habe. Sonst landen wir in ernsthaften Schwierigkeiten. Jetzt können wir es natürlich immer umgestalten, wenn dieser Name falsch ist. Sehr wichtig, dass dies der richtige Behälter ist, den wir nehmen werden. Der Net Minecraft Inventar Container und nicht derjenige aus dem Java kann mit interagieren. Ja. Wir werden das tun und dann brauchen wir einen Konstruktor. Ok. Ich meine, ich entschuldige mich nicht. Nein. Ich will nicht, dass irgendetwas so macht. Warum funktioniert es nicht so? Das ist komisch. Ok. Nun, dann brauchen wir das nicht einmal. Das ist das, das ist eine verrückte Sache. Wir brauchen diesen Konstruktor sowieso nicht. Wir werden unseren eigenen Konstruktor erstellen, der elektrifiziert wird oder Container mit den Dingen, die wir vorher getan haben. Also brauchen wir eine Fenster-ID. Wir werden eine Welt haben, Welt. Es wird eine blockierte Pause geben, Pause. Es, Spielerinventar, Spieler, Spielerinventar, und ein Spieler, Spielereinheit, Spieler. Und dann muss das importiert werden. Dies muss importiert werden. Und was muss noch getan werden? Ein paar Dinge, die ich glaube. Wir müssen super einfügen Ja, mit gewickeltem Container Punkt elektrifiziert Punkt bekommen und die Fenster-ID. Und dann wird alles hunky-dory, wie die Kinder sagen. Oh, Containertyp muss
importiert werden und dann glaube ich, dass dies kein Ja mehr hat, das hat keine Pfeilrate mehr und, und das hat keine Fehler mehr. Und dann geht es allen gut. Das ist großartig. Also im Container gehen
wir zuerst durch den Container. Wir werden die Titelentität bekommen oder gut, das ist etwas, das wir eigentlich hier angeben müssen. Es gibt also drei Dinge, die wir haben werden. Die private Kachelentität, Titelentität. Wir werden eine private Spielerentität haben, Layer-Entität. Und wir werden einen privaten,
privaten Eye Item Handler haben , der
das Spielerinventar sein wird. Und das sind die drei Dinge, die wir sofort hier reinbringen werden. Diese Punktkachel-Entität ist also gleich
der WorldCat Kachelentität an der Position, die wir in diesem Konstruktor angeben. Und diese Punkt-Player-Entität ist gleich einem Spieler. Das ist eigentlich ziemlich einfach. Und es sei denn, Spieler Inventar wird gleich einem neuen Inventar Wrapper des Spielerinventars sein. Okay, das ist großartig. nächste Sache, und das ist etwas, das wir gerade machen wollten, und dann werde ich es erklären, während wir wie immer weitergehen. Also, wenn die Titel-Entität nicht null ist, so dass dies nur sicherstellt, dass wir tatsächlich eine Titel-Entität haben. Was wir dann tun werden, ist, dass wir sagen werden, hey, also Kachel-Entity Dot bekommt Fähigkeit. Das haben wir schon einmal definiert. Und wenn das Capability Item Handler Punkt Element und die Fähigkeit, wenn das vorhanden ist, dann werden wir ein paar Sachen erstellen. Und das hat tatsächlich einige Verbraucher. Und was wir tun werden, ist, dass wir Slots hinzufügen. Das sind die Schlitze, die wir sehen. So zum Beispiel, das Inventar, in dem Sie in den Artikeln, jeder von denen ist ein Slot. Und wir werden diese Slots jetzt innerhalb der GUI selbst erstellen. Und ich werde nur ein paar Mäuse reinlegen,
Zeug, die ich hier schon vorbereitet habe. Ich werde es später schnell erklären. Und das Beste dafür wäre auch, Photoshop bereits zu starten, nur so dass ich es in der Hoffnung habe, dass es auf dem rechten Bildschirm beginnt. Richtig, denn das ist etwas, das wir uns ansehen müssen. Also müssen wir uns die GUI ansehen. Und woher wissen Sie, was diese Positionen sind? Und keine Sorge, dafür brauchen Sie nicht unbedingt Photoshop. Sie können zum Beispiel auch
GIMP oder etwas wie painted.net verwenden . Ich würde nicht vorschlagen, Farbe, weil Farbe aus diesem Grund nicht die beste ist, mehr Hilfsfunktionen und Methoden eher. Zunächst einmal brauchen wir einen Anzeigen-Slot angeordnet. Wieder einmal ist dieser ganze Code auch als Ressource verfügbar. Wenn Sie es nicht eingeben möchten. Ich denke jedoch, dass es Sinn macht dies mit mir in Ihrem
durchzugehen und es zu tippen, weil sich manchmal das Tippen tatsächlich erstarrt. Also hier fügen wir tatsächlich einen Slotbereich hinzu. Dies ist eine Hilfsfunktion, um mehrere Slots gleichzeitig hinzuzufügen. So ist dies erforderlich, damit wir die haben, können
wir das Inventar ein wenig schneller hinzufügen. Und dann haben wir Ad Slot, der neue Slot-Artikel und Anwalt. Handler Index der x, y. Und das wird dann x ist plus gleich dx. Dx ist natürlich nur die Veränderung, der Index wird steigen. Und wir werden nur den Index zurückgeben. Das ist Anzeigen-Slot-Bereich. Jetzt wären wir nicht privat in Ad Slot Box. einmal mit einem Item-Handler, wird Handler, denke ich. Und eigentlich dieser. Und das einzige, was sich ändern muss, ist, dass dies tatsächlich der Grund ist, und das ist die vertikale Menge. Wir brauchen noch einen, eine andere ganze Zahl, alt. Nun, das ist eigentlich danach, mein Herr, mein Land. Ich werde das von der anderen kopieren. Entschuldigung. Da gehen wir. Also müssen wir in den Index x, y, dann die horizontale Halterung in der Änderung von x, dann den vertikalen Modus, und dann die Änderung von y, also dx in d y. Und statt hier, werden
wir tatsächlich haben ein int i, j 0, j ist kleiner als der vertikale Betrag. Also werden wir durchgehen, wie, wie viele, gut im Grunde, wie viele Zeilen es gibt. Und Index wird sein, Slot-Bereich hinzuzufügen. Also, jetzt werden wir das nennen. Und die Idee hier ist, dass, sobald ich dies eingegeben habe, dass y n gleich zwei d, d y natürlich ist. Also die Änderung dort, und dann werden wir Index zurückgeben. Also die Idee hier ist, dass dies im Grunde die, die Zeile hinzufügt. Das ist also okay. Dies wird für jede Zeile genannt, oder? Also Anzeigen-Slot-Bereiche im Grunde für jede Zeile aufgerufen und fügen Sie Slot-Boxen namens In wie viele Zeilen es gibt. Und das wird für das private Lückenlayout benötigt. Layout, Spieler Inventar Slots. Das macht es also einfach viel einfacher, sofort beim, beim Spielerinventar, richtig? Also setzen wir ihr Inventar und dann neun und dann links Col, und dann sagen wir oberste Reihe und dann sagen wir neun. Und dann, und dann sagen wir 18. Und dann sagen wir 318. Und das ist mehr, weil dies nicht ein Slot, sondern S LAB Box. Da gehen wir. Schön. Und dann wollen wir auch die Hot Bar hinzufügen. Dann machen wir die oberste Reihe plus gleich 58. Und dann werden wir einen weiteren Slot-Bereich mit Spieler-Inventar hinzufügen ist 0 links Anruf Top-Reihe, 9180, nicht 1980. Vielen Dank, Diego. Richtig? Das ist also im Grunde nur für die Tatsache, dass wir das Spielerinventar
anlegen wollen und es macht es viel einfacher. Und ich würde nicht sagen, dass es nicht notwendig ist zu verstehen, wie er es nicht konnte. Sie können das natürlich Stück für Stück durchgehen und verstehen. Es ist jedoch sehr wichtig zu wissen, dass dies ist, dies ist nur einige Hilfsfunktionen Gesundheit haben. Wieder Hilfsmethoden. Sie werden gehen. Ja. Und noch eine Sache, direkt im Inneren unseres Kopfes, interagieren mit sind tatsächlich gehen, um zurückzukehren ist in nutzbarer Entfernung. Und wir werden sagen, ich werde Callable von Kachel-Entität,
Entität, Punkt übergeben , Welt bekommen. Dann werden wir die Position angeben. Und dann werden wir die Spielereinheit angeben. Und dann werden wir sagen, dass dies in den Mod-Blöcken Punkt elektrifizierte Luft ist. Da gehen wir. Da gehen wir. Dies ist nur innerhalb dieser nutzbaren Entfernung, die wir nur sagen werden, hey, wir können damit interagieren, wenn dies innerhalb der Entfernung ist, die innerhalb dieser Methode
angegeben ist , die innerhalb der Container-Klasse selbst ist. Und das, das macht Sinn, dass das gut zu benutzen ist. Okay, in diesem haben
wir tatsächlich hier angegeben, also das Layout des Spielerinventars, wir haben auch die Slots des Containers selbst hinzugefügt. Und es gibt noch eine Sache, die wir tun müssen, und ich werde das tatsächlich kopieren, weil dies eine sehr große Methode ist. Und das wird zwischen diesen beiden hinzugefügt werden. Wie ich schon sagte, ein sehr langer. Und in diesem Fall ist
der Kern davon einfach, dass diese Methode aufgerufen wird, wenn wir
ein Deck in einen Slot von Index in O von Index, Index im Grunde übertragen . Und das stellt sicher, dass, na ja, wenn es bereits einen Stapel gibt, also wenn es schon einen Gegenstand da drin ist, wir
natürlich nicht einfach einen anderen Gegenstand hineinlegen können. Das funktioniert nicht. Wir können den Stapel nicht zusammenführen, wenn der, wenn er gleich ist. Und ja, und das ist jetzt. Hier drin. Wir haben auch das Element auf Index 1 angegeben, so dass dies, dass nur Elemente Diamanten sein können, Story-Elemente. Die Diamanten können in Index 1 gesetzt werden. Wir werden jedoch sehen, dass dies auch etwas ist, das wir in der Seite des anstelle
der angeben müssen , glaube ich, dass es die Kachelentität ist. Wenn ich mich nicht irre. Idee im Inneren von hier, ist ein Element gültig, ist etwas, das wir auch dafür verwenden können. Also als nächstes ist dies der Container, und der Behälter ist fertig. Das nächste, was wir tun müssen, ist, dass wir den Container tatsächlich registrieren müssen. können wir jedoch noch nicht tun, weil wir den Bildschirm brauchen. Also der Bildschirm ist die, es ist, Ich möchte eine neue Java-Klasse gekühlt die Reise Feuer Bildschirm erstellen. Und das wird sich erweitern, erweitern von. Container-Bildschirm des Typs. Elektrifizieren Sie unseren Container. Wie Sie sehen können, wird
es ein wenig komplizierter als zuvor. Die eine Methode, die wir tatsächlich
hier implementieren müssen , ist die Droge, die wir Container Hintergrundschicht. Und dann brauchen wir natürlich auch einen Konstruktor. Wir werden es einfach alleine machen. Dies wird d elektrifiziert Bildschirm sein. Und das ist ein elektrifizierter Container, alter Container, ein Spielerinventar, alt genug. Und ich Textkomponente würde nennen. Richtig? Und dann rufen wir einfach den Super an. Und das wird es sein. Wir benötigen hier auch einen Ressourcenstandort für unsere GUI-Datei. Wir werden eine private Endressource haben, Ressourcenstandort. Lass mich GUI halten. Neue Ressource, Ressourcenstandort. Wir MC, mod mar ID und Texturen. Gui, elektrisches Feuer, GUI, PNG. Ich werde das bald genug zeigen, die GUI. Aber im Moment werden wir diesen Bildschirm beenden, den ich in
die GUI gehe und dann auch erklären, woher ich diese Zahlen habe und wie das funktioniert. Das erste, was hier drin ist, ist eigentlich nichts, weil wir auch zwei weitere Methoden brauchen, die wir überschrieben werden müssen. Und das wird eigentlich sein, lass es uns so machen. Lassen Sie uns das tun, nennen wir es oder rendern. Und das wird das erste Rendering hier sein. Und dann sagen wir auch zeichnen GUI, Container Vordergrundschicht. Ja, ich glaube, das ist der Fall. Ok, hier, wir wollen diesen Punkt machen Hintergrundmatrix Snack rendern. Und hier wollten wir rendern Hover, Tooltip Matrix Sack, Maus x, Maus y haben. Dies rendert im Grunde nur
den, den Bildschirm selbst. Und dann wird in der Hintergrundebene eine Hintergrundebene gezeichnet. Zunächst einmal wollen wir die Farbe des Rendersystems, Farbe 4F. Also diese Farbe ist es, es ist wichtig. Es heißt auch, es muss nicht wirklich da sein. Ich würde raten, es dort zu setzen. Lass uns das einfach machen, dann haben wir diesen Minecraft-Punkt und holen Textur-Manager. Damit stellen wir tatsächlich die Textur ein. Das ist also die, wir lieferten die Ressourcenstandort unserer, unserer Textur. Und ich werde sagen, int i, das. Wir sind gegangen. Wir haben diese int j, diese GUI top. Und dann sagen wir einfach dieses Doublet. Und dieses Doublet schneidet im Grunde
einen Teil des Bildes aus und zeigt ihn mit den, diesen Offsets und mit der Größe an. Nun, das könnte gerade etwas kompliziert sein, aber keine Sorge, wir werden das durchmachen, okay? Das ist also alles, außer wir wollen auch und Energie-Label. Ich werde das einfach schnell kopieren. Das wird im Vordergrund stehen und wir müssen eigentlich nicht super nennen. Natürlich haben wir das noch nicht. Also werden wir nur sagen, sagen wir Energie 0, nun, vorerst. Und dann werden wir das hinzufügen, wenn es angebracht ist. Und im Moment sollte das schon funktionieren. Also werden wir schnell,
ich werde schnell über die GUI-Textur kopieren. Dies muss also innerhalb der Texturen sein. Und dann brauchen wir tatsächlich ein neues,
ein neues Verzeichnis namens GY. Und irgendwie werden wir das hier setzen, wir werden es überschreiben. Und ich werde dieses schnell
zu Photoshop ziehen und Ihnen diesem Infoshop zeigen, wie das aussieht. Dies ist, wie die, wie die GUI in diesem Moment in der Zeit aussieht. Und ich werde das Gelb und das Grau
hier erklären , nachdem wir durch die Schlitze gegangen sind. Also im Grunde der Schlitz, wie wir innerhalb unseres Containers sehen können , haben wir noch
einmal den ersten Slot mit Index 0 bei 3057 angegeben, richtig? Also 0-0 ist hier oben, richtig? Also oben links. Und dann, wenn wir damit gehen, ist
der erste Teil des Steckplatzes 13. Wir können sehen. Und dann können wir hier oben sehen, dass das 57 hoch ist, oder? Dies definiert dann die Steigung an dieser Position. Und die anderen beiden sind genau gleich, oder? einmal wird dies auch geliefert, dh. Der gelbe und der graue Balken sind für die Energieniveaus bestimmt. Das werden wir auch bald machen. Aber zuerst werden wir überprüfen, ob alles mit Slots funktioniert. Weil wir noch ein paar Dinge tun müssen, damit das funktioniert. Aber so bekommen Sie diese Positionen. Wie gesagt, Sie können auch Farbe auf Netz verwenden. Es funktioniert im Grunde genau dasselbe. Und natürlich können Sie auch Ihre eigene Art von Schnittstelle erstellen, oder? Es muss nicht so aussehen. Es kann verrückt anders aussehen. Es kann eine andere Farbe oder Symbole dazwischen haben. Oder du kannst, du könntest, du weißt schon, darauf zurückgreifen. Es funktioniert alles. Es ist nur eine PNG-Datei. Nun, was wir jetzt hinzufügen müssen, ist innerhalb unserer, Also zuerst, in unserem Client-Proxy, das ist das erste, was wir hinzufügen müssen. Innerhalb der init-Datei. Init-Methode. Wir wollen den Screen-Manager hinzufügen, Screen-Manager Punkt-Register, Factory Mod Container, elektrifizieren Container dot bekommen. Und dann wollen wir elektrischen ersten Bildschirm sagen. Und dann wolltest du nur die Lambda-Konstruktion benutzen, richtig? War eine der Dinge, die wir hinzufügen müssen. Und dann innerhalb unserer Kachel, Nun, zuerst, innerhalb des Blocks, müssen
wir tatsächlich die Möglichkeit hinzufügen, mit der rechten Maustaste zu klicken. Das ist sehr wichtig. Also im Inneren des elektrisiert sich, wollen
wir, glaube ich,
nur eine Methode hinzufügen , aber es wird wieder ein Doozy sein. Dies wird also ein Block aktiviert sein. Noch einmal, es spielt keine Rolle, dass hier steht: Oh, es ist veraltet. Wir können diese Anwendung einfach wieder hinzufügen, da
dies für unsere Zwecke nicht so wichtig ist. Und wir werden sagen, wenn die Welt fern ist. Also, wenn die Welt nicht weit weg ist
, werden wir das tun. Und dies wird Kachelentität, Titel, Entität, Welt Punkt-Punkt-Punkt-Punkt-Kachel-Entität an Position sein, die angegeben wurde. Und dann werden wir sagen, hey, wenn diese Flieseneinheit
eine Instanz der elektrischen Feuer- und Flieseneinheit ist , dann werden wir etwas tun. Und wir werden sagen, dass ich Container-Provider genannt habe. Tenor-Anbieter ist gleich einem neuen IE benannten Pre-Print-Anbieter. Und dann wird es verrückt werden und hier etwas lesen, was wirklich großartig ist, weil genau das ist, was wir brauchen. Hier. Wir wollen eine neue Übersetzungstext-Komponente erstellen. Und dann ist das der Bildschirm Punkt MC, schlimmster Punkt elektrisches Feuer. Das ist also im Grunde die, das ist die Sache, die wir innerhalb unserer EN uns Lokalisierungsdatei verwenden. Und noch einmal müssen Sie das nicht tun, das NULL-Zeichen notwendigerweise. Und wir werden diese tatsächlich lesen,
umbenennen, weil es nicht sein muss. Da gehen wir. Okay, lassen Sie uns dann auch nicht null zurückgeben, sondern einen neuen elektrifizierten, elektrifizierten Luftbehälter mit einer ganzen Reihe von Dingen. Ich Welt, oh, das bin ich, übrigens. Ich Welt POS, Spieler Inventar und Spieler Entität, die wir gehen. Und dann ist die Welt nicht hier drin, weil wir darin sind. Nun, das ist nicht das Schlimmste, was es je gab. Da gehen wir. Und es muss dann auch etwas sehr Interessantes tun. Und das wird ein Netzwerk Bücher dot offen GUI sein. Und wir werden sagen, Server-Player-Entität,
Player, Container-Provider und Kachel-Entitätspunkte. Noch OS. Wenn dies keine Instanz von elektrischem Feuer ist, werden
wir tatsächlich eine Ausnahme werfen. Aber manchmal tun sie es. Verzweifeln Sie meine Vernunft damit. Lassen Sie uns einfach die tatsächliche Ergebnisart des Erfolgs zurückgeben. Und ich werde gehen, dann wird es wissen, dass es sie immer noch nicht tun wird. Manchmal weiß ich nicht, warum er es nicht so macht, wie ich es wollte, aber okay. Werfen Sie neue illegale Zustandsausnahme Und das ist im Grunde unser Container fehlt. Nun, es ist der Container-Anbieter, aber ja. Rho Vita. Okay, theoretisch sollte das alles sein. Dabei stellt nur sicher, dass dies auch auf der Client-Seite geöffnet wird. Damit es noch einmal den Server-Client-Unterschied gibt. Jedenfalls. Die aktivierte Entsperrung ist also kalt, wenn Sie mit der rechten Maustaste blockieren. Und ich werde nur überprüfen, ob alles erledigt ist. Und ich glaube, dass alles getan wird, um es zumindest so zu schaffen, dass wir die GUI öffnen können. Ich glaube, dass dies zu diesem Zeitpunkt funktionieren sollte. Wir werden es einfach versuchen. Eigentlich. Wir würden einen Fehler bekommen. Denn eine Sache, die wir tun müssen, ist, dass wir das auf drei setzen müssen. Natürlich haben wir drei Slots, die wir in unserem Container hier angegeben haben. Und das muss diesen drei Slots entsprechen. Lassen Sie uns das einfach ausführen und sehen, ob es funktioniert oder nicht. Und wie Sie sehen können, je komplizierter es wird, desto mehr müssen wir suchen. Und da gehen wir, wir haben tatsächlich einen Fehler. In Ordnung, ich habe den Pfeil erfolgreich repariert und es hatte etwas zu tun, als Besitzer dieser Vorlesung oder der Vorlesung, wo die seltsame Anmerkung war, wollte
er irgendwie etwas hinzufügen. Und er fügte dies in der Gradle-Build-Datei hinzu. Und das, ich meine, ich würde nicht sagen, dass es beschädigt ist, aber dann hat es einfach nicht mehr funktioniert. Also habe ich es behoben, indem ich das einfach aus der Build-Gradle-Build-Datei löschte. Und ja, es war ein Pfeil, der
nichts mit allem zu tun hatte , was wir getan haben oder das wir getan haben. Also, ja. Lassen Sie uns einfach überprüfen, ob der Bildschirm jetzt funktioniert oder nicht. Und wenn wir hier tatsächlich EEG UI sehen können, mal sehen. Zunächst einmal ist es am besten, wenn Sie immer noch zuhören, wenn Sie den Block noch irgendwo gelöscht haben und ihn wieder platzieren. Sonst könnte es etwas Seltsames geben. Mal sehen, ob mit der rechten Maustaste, ob es abstürzt oder ob es funktioniert. Es funktioniert, das ist ziemlich gut. sehen wir gerne. Das ist eigentlich sehr gut. Und jetzt können wir Dinge in alles platzieren. So können wir alle Arten von Blöcken in jedem dieser Dinge spielen. Wir werden das sehr bald ändern. Zunächst einmal, wir werden, ich hatte tatsächlich etwas im Sinn, wo, was ich tun
will es macht auch dieses Energie-Label hier. Es schafft das automatisch. Das geschieht also mit dem, mit dem mit diesem Draw GUI Container Vordergrund genau hier. Und das erste, was wir tun werden, ist, dass wir
die elektrische Feuerfliese Entität hinzufügen . Und wir werden ein paar Dinge hinzufügen. Also Nummer eins, wir werden hinzufügen. Werden wir tatsächlich implementieren, oh, wir werden die klickbare Kachel-Entität implementieren, die machen wird. Und dann müssen wir die Methode Tick implementieren. Und das ist,
lasst uns das etwas höher stellen. Eigentlich. Lasst uns das hier oben stellen. Und das wird grundsätzlich jeder Tick genannt. Und wir werden auch zwei Dinge nehmen. Ich werde nur über s2 kopieren,
zwei ganze Zahlen, ein Tick und ein Energieniveau. Also Energieniveau in diesem Fall würde
ich es nicht nennen, ich würde nicht sagen, dass dies das Energieniveau ist, wie in Maschinen notwendigerweise. Dies ist nur ein Beispiel hier. Und wir werden auch hier runtergehen und sagen,
okay, ist der Artikel gültig? Und jetzt wollen wir eigentlich sagen,
naja, es hängt davon ab, in welchem Schlitz wir sind. Also werden wir tatsächlich einen Schalter von Slot erstellen. Und das wird einen Fall 0 haben. Wieder einmal haben wir damit begonnen, bei 0 zu zählen. Und das sind sie, wir haben tatsächlich einen Get Artikel. Stack-Punkt-GetItems entspricht Adams Punkt-Diamanten. Also möchte ich nur zurückkehren, also möchte ich das zurückgeben. Dies gibt also true zurück, wenn das Element Diamant ist. So können nur Diamanten in diesen Schlitz gesteckt werden. Und dann sagen wir 12. Und hier sagen wir „Standard“. Und in diesem Fall werden wir falsch zurückgeben. Und in diesem Fall werden wir sagen mod Artikel Punkt Kupferdraht,
Nein, nicht Abdeckung x Tasse Draht.begin. Und hier wird der Adam ein Smaragd sein. Also die Idee hier ist, dass wir schaffen wollen, ist eine Maschine, die kann, dass Diamanten einen Kupferdraht und verwandeln sie in Smaragde. Natürlich gibt es vielleicht nicht das logischste, aber es ist immer noch, das ist natürlich
nur ein Beispiel dafür, wie das aussehen könnte. Und hier im Insert-Element, wir werden tatsächlich sagen, ob und dann Artikel gültig ist und dann wir, und dann wollen wir tatsächlich, dass nicht geschehen. Also, wenn der Artikel nicht gültig ist, werden
wir nur den Stapel zurückgeben. Also ändert sich nichts. Und so werden wir die Super fügen Sie ein
Element zurück , wenn das Element tatsächlich für diesen Slot gültig ist. Das ist also etwas, das wir tun müssen. Und dann haben wir, glaube ich, auch
eine Paste Möglichkeit, die Energieniveaus auszulesen. Also werden wir diese öffentliche Int machen, Energie-Level bekommen. Und das wird das Energieniveau zurückgeben. Und dann müssen wir dies auch auf der Seite der arktischen Methode hinzufügen. Jedes Mal, wenn das abgekühlt wird, werden
wir die Zecke um eins erhöhen. Und dann sagen wir, zum Beispiel, wenn Tick zehn ist, so wäre dies alle 2,5. Wir wollen, dass etwas passiert. Und dann fragen wir uns, was wollen wir passieren? Und das ist natürlich etwas, das wir über uns selbst nachdenken müssen. Also, zum Beispiel, könnte ich sagen, gut, wenn der Stapel in Slot 0. Also hier legen wir die Gegenstände, wenn das tatsächlich ein Gegenstand ist, oder? So Punkt-Diamant. Und zum Beispiel ist das Energieniveau dieser Maschine kleiner als 64. Nehmen wir an, wir wollen sagen, nun, 64 ist das höchste Energieniveau, das wir haben wollen. Dann, was wir tun können, ist,
dass wir sagen können extrahieren Sie das Element des Steckplatzes 0 um die Menge von eins und wir wollen nicht simulieren, wir wollen es tatsächlich löschen. Das ist also was, das löscht im Grunde den Gegenstand, oder? Und dann wollen wir ein Energieniveau haben. Das Energieniveau steigt also um jeden Diamanten, der zerstört wird. Und dann können wir auch für jeden Tick speichern. Wenn wir einen Steckplatz haben, wenn wir einen Artikel in Schlitz eins haben, was zum Beispiel
die Kupferdrähte sein könnte , oder? So MOD Artikel, Kupferdraht, Punkt bekommen. Und, und das ist sehr wichtig und das Energieniveau, Energieniveau ist größer als 0. Und auch wenn der andere, das ist auch sehr wichtig. Wenn Artikel behandelt Droge in Schlitz stecken bleibt, um Zählung zu erhalten und nicht Artikel zu erhalten, aber wenn die Anzahl nicht gleich 64 ist, gut, tatsächlich können wir sagen, ist kleiner als 64. Ja. Ja. Und das sagt im Grunde, wir wollen, dass das Energieniveau, die Energie tatsächlich ein gewisses Niveau hat, um neue Smaragde in diesem Fall zu schaffen. Dies ist jedoch etwas, worüber man nachdenken muss. Und die, das ist im Grunde die Logik dieser Maschine, sagen wir. Und wir werden sagen, dass es ist, extrahiert einen Punkt hier. Und dann wird es ein neues Element in dieses einfügen. Und das wird ein neuer Item-Stack sein. Neue Gegenstände stapeln mit Punkt Smaragd des Gegenstands. Das wird eins werden. Wir wollen es nicht nur simulieren, auch wirklich wollen, dass das passiert. Und dann sollte das Energieniveau auch abnehmen, wissen, Minus-Minus, und dann wird das Häkchen auf 0 zurückgesetzt. Jetzt sollte dieser hier konfigurierbar sein, oder? Sie sollten also auf die Konflikte Vorlesung zurückverweisen, wo wir tatsächlich in config setzen. Dies sollte etwas sein, das konfigurierbar sein sollte. gleiche mit dem Energieniveau, glaube ich. Dies sollte so etwas wie Max Energieniveau sein. Und man könnte auch darüber nachdenken,
dass der Betrag konfigurierbar ist, als man hier ein paar Dinge ändern müsste, aber es wäre immer noch ähnlich. Also im Grunde zu sagen, in diesem Moment in der Energieniveau ist im Grunde genau äquivalent zu einem Diamant. In diesem Fall. Vielleicht willst du das ändern. Wir müssen auch dann auf den Container gehen und eine andere Funktion Milan Methode als auch unten
hinzufügen. Und das wird eine öffentliche Int bekommen Energie-Level. Und das wird einfach einen sicheren Titel zurückgeben,
this.title und t, weil es nicht weiß, was Thailands Dies ist das gute Energieniveau. Ohne das noch, und das ist nur im Desktop-Client. Dies sollte übrigens nur im Client geschehen da wir nur diesen oder den Client aktualisieren müssen. Was ist das Problem? Und der Container? Nun, es war eins zu vielen. Okay, sie gehen. Und innerhalb des Bildschirms, jetzt können wir das tatsächlich hinzufügen. So können wir tatsächlich sagen, Container Dot Energie zu bekommen. Und dann wird das Energieniveau dort auch als Update gehen. Und, und dann werden wir auch noch einen, einen anderen Knüppel hinzufügen. Ich werde das hier schnell reinlegen. Die Idee hier ist also, dass, wenn wir zur GUI,
der GUI, zurückkehren , wie Sie sehen können, es immer voll ist. Also, wenn der gelbe Balken bis oben ist, dann ist er im Grunde voll. Und was wir tun werden, ist, dass dieses Ding drauf gelegt wird. Also werde ich so etwas schnell machen. Das wird also darauf gelegt, und es wird für jeden gelöscht werden. So wird jedes einzelne Pixel für jedes Energieniveau gelöscht werden, das wir haben. Das ist übrigens genau 64 Pixel hoch. Und das ist eine Möglichkeit, das zum Beispiel zu tun. Und ja, wir werden nur schauen, wie das ist, und das sieht tatsächlich im Spiel aus und ob das funktioniert oder nicht. Das ist also im Grunde die Idee am Offset. einmal, hier ist, das sind einige einfache Mathematik. Ich würde sagen, die x und y ist die obere linke Ecke
des, von dem, wo dies platziert werden sollte, dieser Ausschnitt. Und der Ausschnitt wird durch den Versatz und V-Versatz definiert. Und dann als eine bestimmte Breite und Höhe damit verbunden. Und die Höhe natürlich, ist dynamisch mit dem Energieniveau, denn wir wollen die, der graue Balken höher oder niedriger sein je nach Energieniveau. Aber das ist irgendwie die Idee. Wir werden das noch ein Mal zerstören und tatsächlich ein neues bekommen, nur damit wir klar sind mit, du weißt schon, irgendwie seltsam. Also lasst uns Diamanten holen, ein paar Kupferdrähte holen
und mal sehen, ob das funktioniert. Also zuerst, das hat funktioniert, bevor es ein Gelb war. Und jetzt sehen wir tatsächlich, dass das, dass das Overlay funktioniert hat. Wir werden nur sagen, dass wir die Erste für eine Frau sind, die versucht hat, etwas anderes reinzubringen. Ok. Das funktioniert nicht. Das funktioniert nicht. Das funktioniert nicht. Das ist ziemlich gut. Und ich werde einfach die Diamanten hier reinlegen und sehen, was passiert. Nun, die Energie steigt und die Diamanten sterben ab. Und es sieht aus wie die, dies nimmt zu. Ist das nicht nett? Und dann, was wir tun werden, ist, dass wir hier die Kupferdrähte reinlegen werden. Und dann verwandelten sie sich in Diamanten und natürlich zwei Smaragde. Und dann steigt die Energie nicht
mehr, weil es sich im Grunde um eine Eins-zu-Eins-Beziehung handelt. Wenn wir also die Diamanten wegnehmen und die Energie zu diesem Zeitpunkt
tatsächlich abnimmt. Und die Becherdrähte werden hier in Smaragde verwandelt. Und sobald dies geschehen ist, ist
die Energie erschöpft und keine Tiere mehr entstehen, weil
wir natürlich angegeben haben, dass Energie größer als 0 sein muss, damit dies funktioniert. Richtig? Da gehen wir. Ja, das ist eine einfache Maschine. Es ist also keine verrückte komplizierte Maschine. Nein, verrückte komplizierte Maschinen könnten sein. Die Beispiele
sind natürlich wieder in GitHub und in populären Modi sind sie. Ich würde immer ermutigen, das zu betrachten. Aber so erstellen Sie einen Gy, wie Sie eine Art Kachelentität mit ein bisschen Funktionalität erstellen. Wie ich schon sagte, liegt die Funktionalität im Grunde innerhalb der Tick-Funktion. Und es gibt auch andere Dinge. Fähigkeiten, die Sie hinzufügen können, natürlich noch. Und Sie können diese Fähigkeiten zur Seite bringen. Aber das ist nur eine allgemeine Einführung dazu. Und ja, wieder, Sand, das ist ein bisschen komplizierteres und komplexeres Thema und auch komplizierter Dozent. Also, wenn es irgendwelche Fragen gibt, zögern Sie nicht zu fragen. Wieder einmal ist der gesamte gy und auch der Quellcode als Ressource verfügbar. Und wenn Ihnen das hilfreich wäre und es Ihnen gefallen würde, würde
ich eine Überprüfung des bisherigen Kurses sehr schätzen. Und ja, so erstellen Sie eine benutzerdefinierte GUIs. Und ja.
66. (Minecraft) Ores Generation in der Welt: Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir über oder Generation reden. Also werden wir das Kupfererz erzeugen, das wir vor vielen, vielen Vorträgen erstellt haben. Und das werden wir tatsächlich in die Welt bringen. Dafür werden wir
zunächst einen neuen Knoten erstellen, nicht ein Paket intellektuell. Wir wollen ein neues Paket erstellen. Und das wird eine Welt sein. Und innerhalb dieses Pakets werden wir
ein anderes Paket erstellen , das Jen halten wird. Wieder einmal ist dies, sagen
wir einen Stil oder anpassbar. Es macht nur Sinn, es in einer Welt zu haben. So sollte zumindest das Weltpaket getan werden. Die großzügige, Art von optional. Und wir werden tatsächlich eine Enumeration erstellen, die der Kalte Krieg sein wird. Nun, das ist etwas, das sehr
ähnlich der Sache sein wird, die wir mit der Rüstung und der, und den Waffen
und dem Material gemacht haben . Aber wir werden das durchmachen, also haben wir hier einen Block. Wir werden auch eine,
eine ganze Zahl haben , die max Sylvain-Größe genannt wird, ein Finale in Job min Höhe. Dies ist die minimale Höhe, bei der die und das ist, erzeugt wird. Und die Mac-Seite, im Grunde die maximale Blockhöhe wo dies den richtigen Block erzeugen würde, ja. Und wir werden einen Erz-Typ Block haben, Block Ind, Max, Venengröße. Wir wollten int min-height und eine ganze Zahl i, max H. Und dann dieser Block, also ist dies nur eine normale, noch einmal, eine normale Deklaration und ein normaler Konstruktor. Maxwell schneidet diesen Punkt ein. Min-Höhe entspricht min-Höhe. Und dieser Punkt max Höhe gleich max hat schön. Ok? Und dann brauchen wir natürlich auch ein paar Getter dafür. Ich glaube, dass ich diese hier wieder erstellen kann, einen Getter für Block, Lesen,
Ghetto für Max Vene und einen Getter hier
erstellen kann. Und ich weiß, dass das nicht stimmt. Ich wollte einen Getter haben. Da gehst du. Ok. Also dann Getter voll von uns und dann werden wir eine öffentliche Statik oder Typ haben, das heißt, wir werden mit dem Block bekommen. Und wir werden das durchmachen. Also für jeden Worttyp oder in Werten, wenn der Block gleich word.lower ist, OK. Dann werden wir das zurückgeben oder und wenn das nicht der Fall ist, werden
wir nur null zurückgeben. Wir könnten auch einen Pfeil werfen, waren aber eine Ausnahme, aber das ist in Ordnung. Richtig? Und dann hier, hier oben, werden
wir das Kupfer erschaffen,
und das wird ein mehrfacher Ochsenpunkt sein. Kupferblock wird, und dann werden wir einfach, ich werde gerade ein paar Zahlen eingeben. Die maximale Venengröße wird also acht sein. Es lacht auf Y-Ebene 25 bis Y-Ebene 50. Und das Tolle daran ist, dass wir hier nur neue Enum
hinzufügen müssen , wenn wir eine weitere hinzufügen möchten. So können wir zum Beispiel einfach so etwas tun und dann
zum Beispiel Kupferblock sagen . Und dann ist das auch Kupfer oder übrigens, kein Kupferblock, oder? Und dann können wir sagen, Nun, wir tatsächlich, Also das Hinzufügen eines neuen oder ist buchstäblich nur das Hinzufügen dieses. Das war's. Deshalb finde ich das eine interessante Idee, es zu tun. Und dann werden wir eigentlich eine neue Klasse schaffen, denn das ist jetzt erledigt, was wir Schlamm oder Generation nennen werden. Und Ihre Generation wird tatsächlich
ein MOD Dot Event Bus-Teilnehmer haben , importieren MOD sofort. Dass es ein bisschen einfacher wird. Mod ID, lassen Sie mich MC Kurs ID. Und dann wird der Bus Punkt sein, wenn es Teilnehmer MOD war. Und dann werden wir eine große Methode
hier drin haben , die schlimmer mit einem FMLA regeneriert wird, FML Ladeereignis abgeschlossen, nicht verdient weg für andere Klammern des Läufers, dass es nicht notwendig ist. Und das wird ein Abonnent Event sein. Und im Inneren von hier glaube
ich, dass das, was wir haben werden, eine Methode namens Add feature to biome. Also werde ich das nur kopieren, weil dies eine ist, ist eine Methode, die einfach die, die Eigenschaften
des Bioms aufbricht und dann etwas hinzufügt. Und das können wir tatsächlich zu unserem Vorteil nutzen. Und das wird sein, wir gehen durch jede oder tippen in Worttyp Punktwerte, richtig? Also in diesem Fall werden wir einfach alle Erze durchlaufen und wir werden einige Dinge durchmachen. Das erste, was ist, dass wir eine oder Feature-Konfiguration erstellen, die einen neuen Orfeo-Konflikt haben wird. Dies wird sich lohnen Feature Conflict Dot Füllblock Typ. Also hier drin, die sagen, was ist der Füllblock? Also, wenn Sie es haben, ist es möglich. Wir werden, wir wollen acht erschaffen. Wir haben die max Venen in diesem Fall zu essen. Aber vielleicht haben wir, Sie könnten sich vorstellen, dass dann ein zwei-mal-zwei-Würfel ist. Aber vielleicht ist es die maximale Venengröße, also ist es möglich, dass nur sechs oder sieben erzeugen. Und dann ist die Frage, mit
was wollen wir den Rest füllen? Und das geschieht im Grunde mit diesem Füllblock. Wir wollen die Ressource tatsächlich bestellt bekommen. Ressource besitzt nicht seine tatsächlich blockiert werden. Ja, du hast recht. Standardstatus abrufen. Und dann sind wir DOT GetMax Venengröße. Dies ist die Where-Funktion. Dann wollen wir eine konfigurierte, konfigurierte Platzierung und Figurenplatzierung, was Placements sein wird. Nein, es wird eigentlich nur eine Platzierung sein. Platzierung, Punkttiefe, Durchschnitt, Punktkonfiguration. Und hier werden wir eine neue taube durchschnittliche Konfiguration erstellen. Und das wird einfach min-Höhe und oder Mac-Seite so nehmen. Und das Letzte, die beiden, naja, nicht ganz verloren, aber fast verloren. Wir werden die Registrierung machen, die eine Welt registrieren. Jen, registriert, die Funktion oder Punkt erhalten Block konfiguriert, dot-dot-dot Registrierungsname, es Registrierungsname. Und dann werden wir Feature-Punkt oder mit Konfiguration haben. Und um die CS-, Ego-
oder Punktweitenkonfiguration oder Feature-Konflikt zu implementieren , haben
wir das bereits konfiguriert. Das ist das Tolle bei der Platzierung, die wir auch konfiguriert haben. Und dann haben wir einen Punkt. Es wird Punktquadrat, Punkte gehen. Ich glaube, dass dies noch nicht wie abgebildet ist. Das wird das sein. Und das ist noch einmal oder Punkt max Abfallgröße ein weiteres Mal. Und das war's. Da gehen wir. Und das Tolle ist jetzt, was wir tun können, ist, dass wir einfach durch jedes Biom und Kohle in einer Schmiede Register gehen können, die Biome. Und im Inneren ist jedes Biom im Grunde geschrieben. Das haben wir gerade gelesen. Und wir wollen zum Beispiel auch
keine Biomen. Wir wollen nicht, dass dies
zum Beispiel in category.net hervorgebracht wird, oder? Weil das keinen Sinn ergibt. Und wir wollen auch nicht, dass dies gekühlt wird und
Kategorie gleich und dann Biompunktkategorie erhält . Und das wäre das Ende, richtig? Also werden wir das nur generieren. Also werden wir nur Feature zu Biom des Bioms und der Generationsphase hinzufügen. Das ist Dekoration unter der Erde oder hier. Und dann wird der letzte sein Welt Jen Register, Punkt konfigurierte Funktion, get default oder none,
oder dot get block, bekommen registrierten Namen. Das ist es, was wir hier im Grunde registriert haben. Und das wird als Funktion zum Biom hinzugefügt werden. Sie können natürlich auch statt, sagen
wir dieses Negativ hier, wo wir es nicht tun, wenn es der Nether oder das Ende ist. Sie können auch bestimmte Biome angeben. Vielleicht möchten Sie bestimmte Ruder nur in bestimmten Biomen erzeugen. Sie können natürlich alle das mit einigen if-Aussagen darüber tun, ist eigentlich schon alles, was für die Generation hier benötigt wird. Die, wird dies automatisch aufgerufen. Also lasst uns das einfach ausführen und
in einer neuen Welt sehen, was das bringt. Und wenn wir
in unserem Fall sowohl das Kupfererz als auch den Kupferblock finden können . Ich habe natürlich, zum Beispiel, auch einige Kupferblöcke erzeugt. Nur um zu zeigen, wie wir tatsächlich einfach es ist, neue oder in diesem Fall hinzuzufügen. Also natürlich muss das Blut hinzugefügt werden, aber wenn Sie alle Blöcke hinzugefügt haben, dann können Sie einfach dieses Ende machen. Das ist super einfach. Also lassen Sie uns einen neuen Block erstellen. Newton kannte Block, neue, neue Welt, natürlich, im kreativen Modus vorerst. Es erzeugt also, was natürlich ein gutes Zeichen ist. Und die Tatsache, dass noch nichts abgestürzt ist, ist auch ein sehr gutes Zeichen. Auch etwas, das immer etwas ist, das, weißt
du, passieren könnte. Und wir gehen einfach in den Zuschauermodus und fliegen runter. Und vielleicht können wir feststellen, dass ich die, da gehen wir. Wir haben beide bereits gefunden. Das ist großartig. Lassen Sie uns richtig. Also hier haben wir ein paar Kupferblöcke, 123, das war eine kleine Ader. Und hier haben wir noch einen von Kupfer oder 1-2-3, 4-5-6, oder? Das ist großartig. Und so kannst du natürlich ein bisschen mit den Zahlen herumspielen, oder? Das ist immer etwas zu tun. Nun, also könnte ich das einfach schreiben. Das würde wahrscheinlich helfen. Mal sehen, ob ich ein paar L's finden kann. Gibt es noch eine 11234. Das sind vier. Flügel-Fahne. Und ja, wie Sie sehen können, gibt es natürlich ein paar Dinge. Es ist auch abhängig, natürlich
von der, von der Höhe. Und da gehen wir. Es gibt noch ein paar andere. Also an dieser Stelle sind wir es Höhe 2020 zu diesem kaum gemacht es in 12. Ich, hier sind noch ein paar drei. Das ist also ein wirklich großartiger gegessen. Die Generation ist ziemlich leicht zu verstehen und das ist eigentlich eine große Vene. Das ist schön. Und natürlich kannst du mit den Zahlen herumspielen. Das ist das Beste, was du tun kannst. Lasst uns zurückkreisen. Und das ist das Beste, was du tun kannst, oder? Also spielen Sie mit den Zahlen ein wenig herum und sehen Sie einfach, was Sie bewerten können. Das ist also der Tipp hier für die Ursprungsration, aber das ist im Grunde schon, es ist nicht das, es ist nicht so kompliziert, besonders im Vergleich zu der GUI oder der anderen dem Kachelentitätsmaterial. Also ja, das ist es im Grunde. Wenn es irgendwelche Fragen gibt, zögern Sie nicht zu fragen. Und ja.
67. (Minecraft) Erstellen eines benutzerdefinierten Baums: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir unseren eigenen benutzerdefinierten Baum erstellen. Nun brauchen wir für einen benutzerdefinierten Baum natürlich
Planken, Baumstämme, Blätter und ein Bäumchen. Und das ist das Erste, was wir tun werden. Wir gehen in unsere Mod-Blöcke, die Klasse und erstellen genau diese Objekte. Registrierungsobjekt vom Typ block. Sie sind alle vom Typ Block. Und ich habe beschlossen, einen Redwood-Baum zu erschaffen. Und es wird Rekord Plank ist gleich, um die roten Holzbretter registrieren. Und dann hier werden wir einen neuen Block mit einigen abstrakten Blockeigenschaften machen, die von Lockes Punkt kommen werden, OK. Planken. Sehr einfach. Wir werden nur nehmen, was die Plankeigenschaften von o Planken verursachen nichts Besonderes in diesem Fall über sie. Und auch das Redwood-Protokoll hier. Und ich logge mich hier ein. Und das wird ein gedrehter Säulenblock sein. Und die Eigenschaften werden natürlich von OK sein. Ok, würdest du gehen? Und hier werden wir Redwood-Blätter haben. Und vergessen Sie nicht, den Namen innerhalb der Registermethode zu ändern. Aber hier, denn sonst wirst du auf Fehler stoßen, Blätter auch. Und das wird ein Blattblock sein. Und dann noch ein letztes, was ein bisschen anders sein wird, weil es Sinn macht, das zu kopieren. Ja, es macht immer noch keinen Sinn, das zu kopieren und das wird das Redwood Bäumchen sein. Und das ist derjenige, der am interessantesten sein wird, sagen wir, oder derjenige mit der meisten Arbeit, die damit verbunden ist. Sagen wir mal, lassen Sie uns das wirklich loswerden. Und das wird ein neues rotes Holz Bäumchen, das es natürlich noch nicht gibt. Aber wir können das schon ausfüllen, weil ich schon weiß, wie es aussehen wird. Und das wird ein neuer roter Holzbaum, der es auch noch nicht gibt. Es gibt also ein paar Dinge, aus denen wir tatsächlich einige Eigenschaften erstellen müssen. Und hier werden wir Schlösser Dot Eiche Bäumchen nehmen. Plötzlich gehst du, und das ist es. Und natürlich müssen diese geschaffen werden. Zuerst werden wir die Redwood-Probenahme erstellen. Dies ist wieder in der Blockverpackung, die rote Holzprobenahme. Und das Redwood Bäumchen wird
den Bush-Block verlängern und es wird eine Augenrolle implementieren. Okay, lassen Sie uns zuerst die Methoden implementieren. Kann wachsen, kann Knochen, Mahlzeit verwenden und wachsen. Und dann die nächste. Und dann natürlich auch ein Konstruktor mit dem Super drin hier. Wir wollen eigentlich auch einen Lieferant von Baum
, der Baum in sein wird. Und das ist auch etwas, das wir als letztes Feld hier haben müssen, ein Lieferant von drei, Lieferant von Baum, den wir nur Baum nennen werden. Oder wir müssen drei nehmen, das wieder importieren. Sehr wichtig, dass es Baum ist, net Minecraft Block Bäume und nicht die andere. Und das wird der normale Lieferant sein. Und das ist dann dieser Baum gleich drei ist. Und wir antworten auch vor der EU. Und dann brauchen wir auch eine ganzzahlige Eigenschaft. Integer-Eigenschaft „stage“ genannt. Dies ist einfach die Sperrzustandseigenschaften Punktstatus, Punktstufe 01. Das bedeutet also im Grunde, dass es
eine ganzzahlige Eigenschaft hat , ob es gewachsen ist oder nicht. Und im Inneren der Dose wachsen, werden wir nur wahr zurückkehren, weil dieser Block Seil
kann, Knochenmehl verwenden kann. Wir werden im Grunde eine Zufallszahl erstellen. Also werden wir ein Double machen und es wird Welt in Punkt zufälligen Punkt sein. Nächste Last ist dies. Ich meine, wir könnten auch einen Schwimmer benutzen, aber es ist sehr wenig wichtig. Das hat also im Grunde eine 50% ige Chance, Knochenmehl zu arbeiten, oder? Also dieser sagt das im Grunde. Und dann haben wir eine Wachstumsmethode, die sein muss, ein paar Dinge müssen getan werden. Also genau hier brauchen wir tatsächlich einen Zustand, state dot get stage ist gleich 0. Und hier sagen wir Welt in festem Blockzustand. Und ich weiß nicht, dass meine Klammern hinzugefügt werden, die nicht benötigt werden. Zustand, und dann müssen wir Funktion 235 verwenden. Dieser, ja, dieser hier, glaube ich, ist der Richtige. Es ist aufgehoben. Und in diesem wäre eigentlich Zustand DOT-Zyklus, nur damit Sie es wissen. Und ich werde noch etwas anderes tun. einmal, die, die Kämpfe mit einem Formular Formatierung. Und dann hier werden wir eigentlich sagen, vergebener Fabrik-Punkt-Bäumchen, Baum
wachsen, Welt in zufälliger Position. Oh nein, das ist keine Position. Danke. Und wenn das der Fall ist, dann kehren wir einfach zurück. Und das ist nicht der Fall. Und wir werden diesen Punkt drei sehen,
Dot get Versuch Rho Baum Welt in,
Welt in noch Chunk Provider bekommt Trunk Generator, Pass, Zustand und Zufall. Sie gehen. Sieht verrückt aus, aber es ist eigentlich nicht so verrückt. Wir wollen auch den Füllcontainer überschreiben
, den wir nur Builder Dot Add-Stufe speichern werden. Und wir gehen. Und wir müssen auch die Tick-Methode überschreiben. Und wir werden diese Unterdrückung hinzufügen, noch
einmal unterdrücken Warnungen, weil die Umsiedlung, denn das ist nicht so wichtig. Also werden wir sagen, wenn die Welt in diesem Bereich Position eins geladen hat. Also, wenn die Position um den Baum tatsächlich geladen ist, wird nicht geladen. Vielmehr gewinnen wir, negieren den SIR und dann werden wir eigentlich gar nichts tun. Allerdings, wenn dies geladen ist und wenn dann das Licht an dieser Position,
also, wenn das Licht über dieser Position ist über einer Lichtstufe neun. Und dann setzen wir auch eine Zufallszahl ein. Wir werden eine ganze Zahl tatsächlich nehmen, nächste int mit gebunden sieben. Wenn das 0 ist, dann werden wir diesen Stern mit der zufälligen Weltposition und dem Staat
wachsen lassen, richtig? Das ist falsch, weil der Test so aussah. Wenn die Position über dem Ding über neun ist und wenn die zufällige Ganzzahl gleich 0 ist, Also im Grunde wie über a, was ist das eine über 7% Chance, jedes Mal zu wachsen,
die , die Tick kommt in, richtig? So etwas wie das. Gut. Das ist übrigens nicht, dies nicht nur in sieben Zecken oder so etwas passiert,
dann würde das bedeuten, dass es im Grunde
jede Sekunde wächst oder es versucht, jede Sekunde zu wachsen. Das ist nicht das, was passiert, aber ja, das ist in Ordnung. Schauen wir uns dann den Baum an. Das funktioniert also, aber wir haben noch keinen Redwood-Baum implementiert. Nun, wo man den Redwood-Baum hinstellt, ist irgendwie eine Sache, die ich nicht weiß, wo es am sinnvollsten ist,
weil es eigentlich etwas mit der Welt zu tun hat, aber es ist auch eine Art Block. Und wenn Sie es haben, wenn Sie wissen, machen
Sie einen Mod mit vielen Bäumen, zum Beispiel, wenn Sie
handeln, ist es sinnvoll, vielleicht sogar ein zusätzliches Paket dafür zu haben. Wenn Sie jedoch ein oder zwei zusätzliche Bäume mögen, dann ist es auch sinnvoll, sie einfach in das Blockpaket zu legen. Das wäre der Redwood-Baum. Und diese Klasse wird Baum erweitern. Das ist fast ein Schock, ich weiß. Und zuerst werde
ich einige statische, die gleichen statischen Variablen hier kopieren , weil sie wirklich hilfreich sein werden oder tun. Wir wollen das Ghettobaum-Feature als Überschreiben? Und das wird etwas mit einer Konfiguration zurückgeben. Und das wird die öffentliche statische endgültige Basisdrei-Feature-Konfiguration sein, die auch Redwood Tree Config genannt wird. Und das wird ein echtes Stück Arbeit sein. Aber keine Sorge, wir werden in der Lage sein, dies zu tun ist die Basis Tree Konfiguration, config. Dot Builder. Und dann fangen wir an, und jetzt wird es verrückt. Dies ist also ein neuer einfacher Block, Zustandsanbieter. Blocks Punkt-Lesen würde protokollieren. Also zuerst müssen wir ihm
das Redwood-Schloss geben , und wir müssen ihnen den Standardzustand verschaffen. Dann haben wir einen anderen einfachen Blockstatus-Anbieter, der
die Mott-Blöcke sein wird. Redwood-Blätter. Das wird, das erhält den Standardzustand. Dann haben wir ein neues Laubfleck, angenehmer. Also, damit werden wir tatsächlich die Blätter platzieren. Dies wird ein Feature Spread Funk 2.4.2 TO HIV2 AES ist richtig. Und das wird der Blattradius sein, den wir nehmen werden. Jetzt setzen Sie diese in, so dass es viel einfacher eine gut kohärente Konfiguration von w1
zu haben. Und anstatt nur Zufallszahlen einzugeben, sagen
wir, dies wird der Blattoffset sein. Dann Komma Blätter Höhe. Dann haben wir einen neuen geraden Stamm Laser. Dies ist also im Grunde der Ort die Platzierung der Stämme in einer geraden Linie nach oben. Wir werden eine Grundhöhe sehen. Dann werden wir eine erste zufällige Höhe und eine zweite zufällige Höhe haben. So dass, wenn die Bäume zufällig hoch oder niedrig sind, wo zwei Feature später Feature, das wird nur 101 sein. Und dann fügen Sie sie hier wieder hinzu, wir sagen „Bauen“. Und plötzlich funktioniert alles. Wir haben hier alles benutzt und alle sind glücklich. Das ist auch etwas, das wir zurückkehren werden. Also werden wir Feature Punkt,
Punktbreite Konfiguration, Iteration zurückgeben . Und natürlich hat Feature implementiert oder eher wichtig. Und dann Red Wood Tree Config, Bam, das war's. Das ist der ganze Baum. Schon erledigt. Und ich glaube, dass das richtig ist. Ja, hier sollte alles gut sein. Richtig? Das ist es für die Klassen. Jetzt wollen wir natürlich auch eine Generation. Ich werde bald zur Generation kommen, aber zuerst werden wir tatsächlich die oder importieren, sagen
wir die Modelle und Bloc-Zustände implementieren . Also noch einmal, ich werde diese über alle Dateien kopieren, wieder verfügbar als Ressource. Also werden wir die Bloch-Staaten überschreiben. Und die Bloch-Staaten sind, zum größten Teil, sie sind sehr leicht zu verstehen und finden, dass das Protokoll ein wenig komplizierter ist, natürlich, weil wir ein horizontales und ein vertikales Protokoll haben, das wir auf verschiedene Arten platzieren können. Und das Bäumchen, wie für die Blockzustände, einfach. Aber natürlich, wenn es um das Modell geht, dann werden wir eine andere Sache haben. Also gehen wir in, ich werde die Blockmodelle kopieren. Also, da Sie tatsächlich gehen, um die Redwood Blätter sperren,
Schloss Unterstrich horizontal und dann Bretter und Bäumchen brauchen . Wie Sie sehen können, wenn ich ins Protokoll und das Protokoll horizontal gehe, ist
es sehr viel nicht zu verrückt. Ich möchte auch noch einmal sagen, dass Sie immer hier nach unten
gehen können , um Minecraft Client extra in der Art der externen Bibliotheken zu net. Und schauen Sie sich alle Bloch-Staaten und Modelle von Dingen an, die bereits getan wurden. So das Akazienholz, zum Beispiel, Akazienblätter, Bretter, Urlaubsproben. So steht Ihnen das alles auch zur Verfügung. Dies ist im Grunde, wo Sie bekommen können, wie man es richtig macht, sagen wir. Und die Redwood-Probenahme sagt noch
einmal nur, Hey, geh zum Setzling Extra Cross natürlich, denn wir sind, wenn ich das in verschiedenen Mustern habe, sozusagen. Und die Artikel Modelle, wir werden auch die bekommen. Und die sind hier. Redwood-Blätter, einfach normales, normales Zeug. Nichts zu Außergewöhnliches. Richtig? Und dann müssen wir auch die neuen Tags hinzufügen. Und ich werde die auch kopieren. Ich werde die hier reinbringen. Das ist also im Grunde Blätter,
Stämme, Stämme, die Bretter und die Redwood-Stämme verbrennen. Und sie sehen in etwa so aus. Also innerhalb der Protokolle und der Protokolle, die brennen, haben wir tatsächlich. Dies bezieht sich auf Minecraft ist, weil natürlich die Daten Minecraft-Tags sind hier und dann die Redwood-Protokolle selbst auf den Gegenstand selbst verwiesen. Es ist ein wenig verrückt, aber wieder ist alles zur Verfügung gestellt. Und dann setzen wir auch die Texturen innerhalb des Blocks ein. Ich möchte noch einmal erwähnen, dass ich kein Künstler bin, also sind diese nicht das Größte, aber ich denke, sie sind anständig genug, dass es funktioniert. Und jetzt glaube ich, dass alles hinzugefügt wurde, außer der Generation, aber wir werden die Generation in nur einer Sekunde betrachten. Zunächst einmal werden wir schauen, ob die Banane hinzugefügt wurde. Jetzt noch einmal, wie ich in vergangenen Vorträgen getan habe, Ich habe nicht hinzugefügt die, die Lokalisierung für die Sprache. Dies sollte jedoch nicht einmal ein Thema sein. Es ist buchstäblich eine Zeile hinzugefügt. Normalerweise lasse ich das hier raus, weil es zumindest für die Zwecke der Vorlesung nicht so viel ändert. Mal sehen, ob alles hinzugefügt wurde und ob wir tatsächlich alles sehen können. Das ist also ziemlich gut. Also wurden alle Dinge hinzugefügt. Das ist also ein gutes erstes Zeichen. Lassen Sie uns eigentlich auch etwas Knochenmehl besorgen. Das ist also der Planck. Wir haben die Stämme, die wir auch horizontal platzieren können. Wir haben die Blätter. Das ist ziemlich nett, und dann haben wir das Bäumchen. Und das ist natürlich die große Frage, ob das Bäumchen tatsächlich wächst oder nicht. Also lassen Sie es uns runterlegen. Doch noch etwas, das wir hinzufügen müssen, aber das wird wieder sehr einfach sein. Und mal sehen, ob wir es tatsächlich mit Knochenmehl wachsen lassen können. Und es wächst. Das ist kleiner, als ich erwarte, dass ich
eigentlich denke, dass sie ein bisschen größer sein sollten. Nun, das ist ein sehr kleiner Baum. Wow. Diese wachsen sind diese Art von der, die irgendwie die Größe ist, die ich erwartet habe. Du gehst. Das ist ziemlich gut. Ok. Ich meine, das sind zwei sehr geringe Rollen. Das ist wahrscheinlich wie die normale Höhe, die ich haben wollte. Die Hälfte. Richtig. Großartig. Ja, also funktioniert das eigentlich. Wieder einmal, das ist das gleiche, sagen
wir Pfeil oder Problem, das wir mit diesen hatten. Wir müssen nur dies im Rückgang der Proxy hinzufügen. Also machen wir das zuerst und dann schauen wir uns auch die Generation an. Dies befindet sich innerhalb des Client-Proxy. Dort müssen wir nur den Rendertyp HLOOKUP Set Render-Layer hinzufügen. Dies wird die Modellblöcke sein, Punkte, Redwood, Bäumchen, Punkt bekommen. Und das ist gerenderter Typ wird ausgeschnitten. Wieder einmal, genau das gleiche wie die Zucchinikulturen. Richtig? Und jetzt können wir die Generation auch hinzufügen. Und das wird der Mordor-Generation
sehr ähnlich sein. Wir werden eine neue Klasse gekühlte Mod drei Generation erstellen. Dies geht wieder von mod Dot Event Bus Teilnehmer. Dann fügen Sie einfach die Mod-ID ein und das war's. Ich bin Partituren mod, mod IID. Und hier werden wir ein, ein Ereignis ist öffentliche statische Leere auf Biomlast. Und dieser braucht ein Biom-Ladung impotent. Cooles Ereignis. Dies ist natürlich eine Abonnentenveranstaltung. Klingt das Wort Ereignis schon seltsam für Sie? Ok, mal sehen. Also werden wir einen Registrierungsschlüssel vom Typ des Bioms haben. Das ist also fast dasselbe, was wir sind, dass wir bei dieser Methode tun. Ein bisschen anders. Sagen wir mal so. Es ist fast das Gleiche. Aber wir werden es manuell machen. Sagen wir, Registry Qi Dot erhalten oder Schlüssel des Registry Dot Biome Schlüssel erstellen. Also suchen wir nach einem Biom und wir werden nach dem Biom suchen, das diesen Namen hat. Sie würden setzen, wir werden auch eine Reihe von Biom, biomed Wörterbuch-Typ haben. Lassen Sie uns zunächst Biom importiert werden. Lassen Sie uns auch Set importiert werden. Lasst uns das in einer Zeile behalten und einfach ein wenig herauszoomen. Ich denke, das wäre in Ordnung. Ja, es wird den Typ geben. Das werden also im Grunde alle Biome sein. Biome, es wird Biome Dictionary Dot bekommt Typen mit dem Schlüssel. Und dann werden wir durch Typen gehen Dot enthält Biome, Biom-Wörterbuch. Und nur um des Streits willen werden
wir Flugzeuge nehmen. Also will ich nur, dass meine Bäume im Moment in Flugzeugen laichen, um der Argumentation willen. Natürlich haben Flugzeuge normalerweise nicht so viele Bäume. Sonst wären sie nicht Flugzeuge natürlich erhöhen. Das ist jedoch eine Art Idee oder genug. Dies wird eine Liste des Lieferanten der konfigurierten Funktion sein. Und das kann Fragezeichen sein, Fragezeichen eigentlich ein Ego. Es wird die Basis geben. Und das ist Event Dot bekommt Generation. Jetzt. Oh Herr, nein, gute Generation. Dot erhalten Funktionen der Typgenerierung. Deklaration, Dauer, Bühnendeklaration, pflanzliche Dekoration Dies ist also die Phase der Erzeugung, in der Sie den Lieferanten hinzufügen, der nicht geliefert wird. Dies ist der Punkt der Generation, wo die Vegetation im Grunde hinzugefügt wird. Und dann müssen wir die Liste als eine bekommen. Und dann zu dieser Liste werden wir tatsächlich etwas hinzufügen. Und wir werden hinzufügen, dass die Funktion Punkt drei Punktbreite Konfiguration. Und das wird die Redwood-Baum-Punkt-Redwood-Baum-Konfiguration mit einer bestimmten Platzierung sein. Und gerade jetzt werden wir nur die Platzierung bei einer anderen dunklen Eichenbaum-Konfiguration übernehmen, keine Platzierungskonfigurationsinstanz. Also im Grunde kopieren wir einfach über Platzierungskonfiguration, die die dunkle Eiche hat. Ich würde dir raten, das
einfach zu nehmen und ein bisschen damit herumzuspielen, oder? Also innerhalb dieser Platzierung. Also können Sie entweder die Platzierung richtig nehmen? Hier gibt es viele Dinge, die Sie konfigurieren können. Und es gibt auch Platzierungen. Placements, die Sie auch die bereits gemachten Platzierungen im Grunde nehmen können, und einfach mit diesem ein wenig herumspielen. Es ist, bis Sie im Grunde das gewünschte Ergebnis erhalten. Wieder einmal sollte dies bereits getan werden. Ich glaube, dass es das ist. Wir haben diesen Ablehnungs-Proxy auch hinzugefügt, so dass alles funktionieren sollte. Ja, alles sollte gut funktionieren. Also lasst uns mal sehen, ob das funktioniert oder nicht. Und sehen Sie, was wir sehen können, wenn wir eine neue Welt erschaffen. Dies sollte definitiv erzeugen einige der Bäume innerhalb der Flugzeuge Biomen, Wie ich sagte. Mal sehen, ob das funktioniert. Also müssen wir eigentlich noch einmal ein neues erstellen, aus dem gemacht wird. Und mal sehen. Wenn das wirklich funktioniert. Wäre irgendwie nett. Da erzeugen Notiz keine Fehler. Bisher. Das ist also ziemlich gut. Und da gehen wir. Wir sind in Flugzeugen, und das ist jetzt voll von diesen Bäumen. Nun, noch einmal, ist es wichtig zu erwähnen, dass natürlich die Flugzeuge, die wir wirklich nicht haben, erstens, dass viele Bäume und zweitens,
überhaupt keine Bäume, wenn wir absolut ehrlich sind. Also, das ist natürlich, das sind alle Flugzeuge. Das ist natürlich ein verrückter Weg, zu viele Bäume oder Flugzeuge. Wie ich schon sagte, die Sache daran ist, dass es am besten ist, einfach ein wenig mit
der Platzierung herumzuspielen und zu sehen, was Sie darüber
sehen können , ist, wie Sie einige Bäume Ihres Typs generieren können. Und ja, das ist der benutzerdefinierte Baum, der benutzerdefinierte Bäumchen und auch, wie man
sich dann dreht und dann tatsächlich auch diese erzeugt und die innerhalb der Welt erzeugt. Ja, das ist also ziemlich gut. Wenn es irgendwelche Fragen wie immer, zögern Sie nicht zu fragen. Und ja.
68. (Minecraft) Erstellung eines benutzerdefinierten Mobs: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in dieser Vorlesung werden
wir unseren eigenen Mob erstellen, oder auch als Entität innerhalb des Spiels bekannt. Und das erste, was wir dafür brauchen werden, ist, dass wir ein anderes Paket erstellen. Das wird Entität genannt. Und innerhalb des Pakets bereiten wir uns bereits auf zwei
weitere Pakete vor, die wir brauchen, und das wird das Modell sein. Und dann innerhalb des Entitätspakets, wieder, rendern Sie die NICU, nicht gerammt, sondern rendern Sie ein Ego. Ordnung? Und das erste, was wir tun werden, ist, dass wir zur Registrierung gehen und ein weiteres aufgeschobenes Register deklarieren. Und das wird sein, ist öffentliches statisches endgültiges Differenzregister des Typs, dieser Entitätstyp. Und dann wieder ein Fragezeichen. Und wir werden diese Entitäten einfach anrufen. Sie könnten diese Mobs auch nennen, wenn das etwas ist, das Sie bevorzugen, aber es ist sehr wenig wichtig, wie es Forge Registers und dann Entitäten genannt wird. Denn in der Art des Spiele-Codes werden
sie Entitäten genannt und nicht Mobs, aber normalerweise Leute, die Minecraft spielen, aber nicht wirklich auf den Code schauen. Sie kennen sie als Mobs. Das wären passive und aktive Mops. Fügen Sie dann natürlich auch die Entitäten
DOT-Register mit dem Ereignisbus hier unten in der init-Methode hinzu. Und dann ist die Registrierung abgeschlossen. Okay, dann müssen wir unsere Entität schaffen. Und das wird innerhalb unseres Entitätspakets oder einer neuen Java-Klasse sein, und wir werden eine Buffalo Entity erstellen. Das Benennungsschema ist also der Name der Entität und endete dann gerade mit Entität. Und das erweitert die Tier-Entitätsklasse. Wir werden die Methoden implementieren. Wir müssen nur eine Methode implementieren. Anscheinend. Das ist momentan nicht der Fall. Ich natürlich, und auch der Konstruktor. Und das wird so bleiben, wie es ist. Und das ist ein berechtigtes Unternehmen. Wir werden uns das bald genug ansehen. Aber die Hauptsache bei einer Entität ist die Registerziel-Methode. Und das ist die, die im Grunde das Gehirn der Entität ist, richtig? Im Inneren von hier definieren
wir Ziele für die Entität, etwas zu tun, oder? Das hat also viele Ziele. Wir werden gerade ein paar erschaffen. Also das Innere davon ist, dass Sie dieses Punktziel,
Selektor, Punkt-Add-Ziel
und dann eine Priorität und Ganzzahl schreiben Selektor, Punkt-Add-Ziel . Das ist also nur eine Priorität. Wenn Sie zwei Ziele vergleichen, was wäre, was zuerst und niedriger getan werden würde, wäre eine höhere Priorität. Also sagen wir, zum Beispiel, ein Schwimmziel und dann das, und das ist das erste Ziel gerade jetzt. Es würde einfach schwimmen. Jetzt können Sie tatsächlich innerhalb Ihrer rechten Seite gehen, wenn Sie die Kontrolle halten und dann mit der linken Maustaste klicken. Du kannst also sehen,
was passiert und was ich wirklich rate. Also werde ich hier einen Büffel bauen, nur ein Beispiel. Die Entität mit ein paar Zielen. Wenn Sie jedoch wirklich reingehen wollen, können
Sie in die Zielklasse selbst gehen und dann Control H drücken und sich all die verschiedenen Ziele ansehen, die sie sind. Wie Sie sehen können,
gibt es nur mit den Ereignissen eine Menge Ziele, die Sie verwenden können. Und das ist wieder einmal eine
Sache, wo man nur mit ein paar dieser Ziele herumspielen muss. Und wenn du vielleicht sagst, nun, ich will irgendwie so etwas und es sollte so aussehen. Dann kannst du das einfach durchgehen und dir ansehen, was wir haben. Vermeiden Sie Ziele von Unternehmen. So zum Beispiel, das ist etwas, das in der rechten Seite passiert, das oszillieren, zum Beispiel, es läuft weg, wenn man es erreicht. Und es gibt so viele Dinge, die hier drin sind, die bereits definierte Ziele sind, dass
es ist, es ist tatsächlich atemberaubend, als wären es viele Ziele. Und das ist definitiv, wenn Sie
eine kompliziertere und komplexere Art von Entität aufbauen wollen , sind
die Ziele unglaublich und natürlich könnten
Sie später auch Ihre eigenen Ziele hinzufügen. Wenn das etwas ist, was du tun wolltest, richtig, lass uns ein Zuchtziel davon machen. Und dann ist die Geschwindigkeit eins, d eins, das ist der Geschwindigkeitsmodifikator. In diesem Fall. Wir werden auch ein Template-Ziel erstellen. Das ist das Ziel. Dies ist etwas, das Sie hinzufügen. Zum Beispiel, wenn Sie ein Schwein haben, glaube
ich, dass Sie sie mit Karotten verführen können, glaube ich. Ja, das glaube ich. Und Hühner mit Samen, das ist der Versuch zu zielen. Also sie, noch einmal, geben
Sie die Kreatur. Dann geben Sie die Geschwindigkeit an, mit der sie sich bewegt. Lasst uns mehr Geschwindigkeit nehmen. Und dann im Inneren von hier werden wir
eine Zutat haben und es wird Zutat von Gegenständen sein,
mehr Artikel Modus Artikel, mehr Artikel, bitte. Da gehst du. Mod Artikel. Ich habe drei Vermögenswerte, die es abdecken. Nehmen wir einfach die Abdeckung und was L Dot bekommen. Und dann hier haben wir falsch. So wird die Kraft durch Spielerbewegungen erschreckt. Dies würde, sobald es begann, etwas, wo die,
wo, wenn Sie nicht über die TMD Artikel, dann sind sie Angst vor Ihrer Bewegung. In diesem Fall wollen wir nicht, dass der Büffel Angst hat. Lassen Sie uns auch geben den Büffel ein Add Ziel mit Priorität frei wusste folgen Eltern Ziel, folgen Eltern Ziel. Das hier. Und dann werden wir ein bisschen mehr Geschwindigkeit haben. Also ist dies im Grunde Geschwindigkeit Modifikator auf die ursprüngliche Geschwindigkeit des Tieres. So wird es 10% schneller bewegen. Und dann werden wir eine weitere hinzufügen, die Wasser vermeidend Walking Ziel
geliefert werden wird ? Ja. Zufälliges Gehen auch, wenn es zufällig schaukelt, dann versucht es, nicht ins Wasser zu gehen. Und das sind, sagen wir einige der Dinge, die wir hinzufügen können. Wir können auch hinzufügen. Lassen Sie uns mit dem Blick auf das Ziel gehen. Sieh dir das Ziel oder die Beute gut an, ich meine, das wäre definitiv ein interessantes Ziel. Und im Inneren von hier können wir dann zum Beispiel, sagen wir, hey, schauen Sie sich die Player-Entity Punkt-Klasse. So können wir angeben, was es ansieht. Und das ist eigentlich die maximale Entfernung ist ein Float. Sagen wir zum Beispiel acht f. So wird es uns ansehen, auch wenn es acht Blocks entfernt ist. Und dann im Inneren von hier können wir auch einen Blick zufällig Ziel hinzufügen. Und das nimmt sich einfach selbst an. Da gehen wir, richtig? Aber warum ist das Acht? Wer weiß es? Es wird sechs sein. Ok, das sind also einige der Dinge, die die Entität jetzt tut. Dies sind einige der Ziele, wie ich schon sagte, das
Beste, wenn Sie sich die Ziele ansehen wollen ist hier durchzugehen und tatsächlich einige von ihnen betrachten. Probieren Sie einige von ihnen aus,
ob sie sind, was Sie wollen oder nicht. Und auch, was ich auch sagen kann, ist, dass Sie auch in
die Tiereinheit gehen und Control H hier drücken können und tatsächlich die anderen Entitäten sehen können. Also das B, das B Schwein, der Fuchs, und was immer Sie wollen. Also sagen wir, zum Beispiel, das Huhn, man kann tatsächlich sehen, was das Huhn als Ziel hat, oder? Es hat fast das Gleiche, was wir jetzt haben. Wir haben nur ein hinzugefügt das Panikziel. Weil ich jetzt argumentieren würde, dass
vielleicht der Büffel nicht in Panik geraten ist, wenn man sie angreift. Und so können Sie wirklich sehr gut eine neue Entität aufbauen. Also kann ich sehr viel nur raten, das zu tun. Lassen Sie uns auch die Sounds hinzufügen, die diese Entität hat. Der erste ist also Ambient-Sound. Und wir werden nur den Klang für die Kuh zurückgeben, weil dies,
in diesem Fall die Sound-Events Punkt-Entität, Ambient. Weil diese Entität einer Kuh sehr ähnlich ist. Ich werde repräsentieren, ich werde Ihnen
bald meine Einheit in Blockbank zeigen und Sie werden erstaunt sein über die unglaubliche Kreativität, die ich erfunden habe. Aber ich denke,
es ist eigentlich nicht so schlimm. Es ist eigentlich nicht so schlimm. Aber ja, also werden wir einen Ambient-Sound haben. Wir werden das Todesgeräusch reinbringen, verletzen Klang
bekommen, ist auch etwas, was wir reinlegen werden. Das wird die Geräuschereignisse sein, die Kuh verletzt hat. Und dann glaube ich noch ein Ja, der Schrittton und das wird in der Nähe sein. Das ist Schrittton platziert. Wir werden eigentlich diesen Punkt sagen, dieser Punktspielton. Ich will den normalen Spielton. Ja, das hier, ich werde sagen, Sound-Events, Kuhschritt. Und dann werden wir sagen, dass die Lautstärke vielleicht etwas höher ist. Man könnte sich also vorstellen, dass ein Büffel eine ziemlich große, ziemlich große Tiere ist. Vielleicht werden die Schritte etwas lauter sein, so etwas. Und dann wird eine andere wichtige Sache ein öffentlicher statischer Attributmodifikator, map, dot-dot-dot veränderbares Attribut sein. Dies wird dazu führen, dass Sie ein benutzerdefiniertes Attribut festlegen. Ich würde tatsächlich sagen, dass es benutzerdefinierte Attribute gesetzt sind, würde
ich sagen, macht mehr Sinn. Ich glaube, das ist der Fall, aber ja. Schreiben Sie es hier drin, wir können tatsächlich in einige Rückkehr setzen,
einige Attribute, die diese Entität eine Mop-Entität dot Funk hat. Ja. Und dann werden wir sagen, erstellen Sie ein veränderbares Attribut. Und dann innerhalb der Anzeige Tribute Punkt, und dann können wir tatsächlich sehen, welche Art von Dingen wir haben. So max Gesundheit, können wir zum Beispiel etwas wie 20 d. Und dann, Hopps, wie das eine und dann ein anderes, zum Beispiel, die Bewegungsgeschwindigkeit wäre eine Art gute Idee. Attribute, Attribute, Attribute, Punktbewegungsgeschwindigkeit. Da gehen wir. Und das wird sein, sagen wir, Nullpunkt 3D 35, richtig? So etwas wie das. können wir tatsächlich haben. Ist das ein Nein, glaube ich nicht. Ich denke, das ist in Ordnung. Ok. Und dann ja, und hier, wie ich in der, wenn wir ins Gewicht gehen, diese schöne Attribute. Nein, das ist nicht richtig in dem Attribut, sorry, dieses natürlich, und dass wir tatsächlich die verschiedenen Attribute sehen können , die im Spiel selbst vorhanden sind. So Fluggeschwindigkeit, Angriff, Schaden und alle möglichen Dinge, die Sie für diese Entität einstellen können. Und ja, ich glaube, dass es im Grunde so ist. Jetzt müssen wir dies tatsächlich in einer MOD-Entitätsklasse angeben. Also werden wir eine Menge Entitätstypen haben. Das ist also wieder sehr ähnlich zu unseren, den Klassen, die wir vorher gemacht haben. Die Mod, Mod Blöcke und all diese,
wir werden sagen, ein öffentliches statisches, endgültiges Registrierungsobjekt vom Typ, Entitätstyp. Und dann am Ende, dass kein Typ, ein Entitätstyp eine Büffelentität sein wird, die der Büffel sein wird. S ist gleich der Registrierung. Dod Entitäten registrieren mit dem Namen Buffalo. Und dann ein Lieferant des Entitätstyp-Builders. Eigentlich werden wir einen neuen Büffel erschaffen. Verwenden wir die ist ein Lambda-Ausdruck hier, Entität, Klassifizierung Kreatur. Und dann können wir auch einige andere Dinge definieren. So können wir die Größe definieren. Das wird also die Größe des Briefkastens sein. Lass es uns einfach ein bisschen größer machen. Und das wird ein verdorbener sein und ein paar mehr Dinge bauen, als wir tun können. So einige von ihnen sind leider ein nicht kartiert hier. Aber es gibt noch andere Dinge, die wir tun können. Zum Beispiel gibt es ein Immunsystem gegen Feuer. Wir können das so einstellen, dass es immun gegen Feuer ist. Das ist zum Beispiel
etwas, das ein Blaze Rute wäre, oder? Es ist immun gegen Feuer. Ressource einer neuen Ressource. Nein, das ist nicht richtig. Ein Ressourcenstandort tatsächlich. Und das wird Mc Gerichte Mod, Mod ID plus Buffalo sein. Also, das hier steht noch einmal ein, wo ist die, wo ist die Ressource dafür? Und das wird eigentlich zwei Saiten sein. Lesen, das ist es schon. Wir müssen natürlich auch
unsere öffentliche statische Leere hinzufügen , ein Register. Methode und das muss innerhalb unserer Methode hier aufgerufen werden, Mott-Entitäten, Entitätstypen, drei wenn drei Punkte und diese Punkte zu viele. Und das hat sich registriert, richtig? Das
registriert also nochmals einfach den Büffel und dann können wir diesen auch noch einlegen. Dies ist das Alter gemischt t. Dies ist, was erstellt wird, wenn 22 Büffel paaren oder eine Rasse. Und das, wir können einfach eine von denen zurückbekommen. Also diese Punktwelt, so dass diese einfach dann einen neuen Büffel zurückgibt und neue Büffel schafft. Was Sinn ergeben würde. Und ja, das wäre das. Und dann müssen wir uns jetzt auch darum kümmern, wie die Entität aussieht und gut, ja, wie sieht sie aus und was ist ihre Textur? Jetzt? Zunächst einmal, wenn Sie zur Blockbank gehen, also habe ich etwas vorbereitet, aber wenn Sie zu blockieren gehen, wenn sie tatsächlich hier reingehen und diese modellierte Entität haben kann, können Sie eine neue Entität erstellen. Unser Rat, dies zuerst zu testen, dies zu wiederholen und dann später auf die Textur zu schauen, denn das ist genau das Gleiche. Aber am wichtigsten ist, sollten Sie die Gruppen definitiv als etwas festlegen, das Sinn macht. Also sollten die Gruppen Kopf sein, und dann gibt es Körper, Bein,
vorne, rechtes Bein, linkes Bein zurück, rechts und Bein Tasche links. Denn das ist, worauf das Entitätsmodell basiert. Ich werde dir zeigen, was ich für Buffalo ausgedacht habe. Jetzt wirst du wahrscheinlich lachen, aber zur gleichen Zeit bin
ich ziemlich glücklich damit. Eigentlich. Eigentlich mag ich es irgendwie. Also ist es nicht so, es ist nicht verrückt. Aber ich fügte diese kleinen Hörner hinzu und ich habe die Leiche auch gemacht. Wenn etwas größer, QPR und dann ein weiteres Ende, Ihr ultimativer Detektor. Ich nahm die Kuhphase und modifizierte sie ein wenig und gebe ihr dann eine Textur. Es ist nicht so schlecht auf Amino würde sagen, dass, bevor ich dies für ein Spiel zu veröffentlichen, Ich würde wahrscheinlich ändern Sie es ein wenig, aber ich glaube nicht wirklich, dass es so schlecht ist. Eine Sache, die eigentlich sehr wichtig ist die Drehpunkte der Container hier, die Gruppen. Sie sollten also dort sein, wo Sie möchten, dass sich das dreht. Der Drehpunkt befindet sich also immer an welchem Punkt die, die Gruppe dreht sich um. Also, wenn ich diesen Kopf gerade jetzt
drehen, drehen Sie von im Grunde, wo sie den Körper gelesen hatte. Und das ist natürlich genau das, was du willst. Deshalb müssen Sie dies tatsächlich an,
sagen wir, am richtigen Punkt angeben . Gleiches mit dem Vorderbein. Wieder einmal ist die Gruppe das Wichtigste. Und dieses hier, wenn ich mich drehen würde, würde
es auch hierher gebracht. Es wird also irgendwie schlimmer aussehen. Dann ist die Sache, wie man es exportiert, Sie tatsächlich exportiert, indem Sie gerade Java-Entität exportieren und exportieren. Was ist dann der Export irgendwo? Und dann schauen wir mal, wie das wirklich aussieht. Wenn wir das exportieren. Das wäre im Inneren von hier und dann der Büffelexport. Das ist also ein Büffel Export Dot Java. Und was Sie im Grunde wollen, ist alles hier drin. Wir wollen das kopieren. Und dafür werden wir jedoch eine neue Klasse erstellen. Also werden wir die Büffel-Mittelklasse erschaffen. Und wir werden dies anstelle der Entität erstellen und dann modellieren. Das wird ein neues Klassenbüffelmodell. Dann gehen wir und das wird mit
einem T sein, das Büffelentität oder Entität erweitert. Und dann erweitert dies das Entitätsmodell mit einem t. Dort gehen wir. Und wir nehmen einfach alles in hier hinein, kopieren das und fügen es hier ein. Und wir müssen ein paar Dinge importieren. Mikrowellen-Entität importieren Sie das Mall rendern, den Renderer, den Matrix-Stapel, den Scheitelpunkt ein Builder. Und diese Methode kann tatsächlich gelöscht werden. Und wir werden einen neuen bekommen. Das kriegen wir von. Eigentlich müssen wir das löschen. Ich meine, wir müssen das definitiv löschen. Eigentlich denke ich, es wird nur ein T sein, oder? Es ist nicht genug. Ja, es hat genug. Ok. Wir müssen das von einem Modell ändern, was eine Modell-Entität war, Entität zu t. Und dann im Inneren von hier, können
wir tatsächlich einen sehr schönen Trick machen. Wir können in Entity Modell gehen und dann können wir tatsächlich betrachten, zum Beispiel, das berechtigte Modell. A, das ist ein Zitat, Quadrupeds Modell. Und im Inneren von hier haben wir tatsächlich die eingestellten Drehwinkel und wir können diesen einfach kopieren. Wir nehmen einfach das Buch und dann können wir sagen, dass
es nicht das Richtige ist. Dieser richtige kann sagen, dass du gehst. Und das wäre dann Kopf und Art von Modell gehabt. Das würde gehabt werden. Und dann gehen wir. Und im Inneren von hier, was ist das Problem hier? Wir wollen Konstruktoren dafür. Und das ist in der Tat nicht der Fall, andere, weil der Konstruktor nicht richtig benannt wurde. Und ich werde das Buffalo Modell nennen, als es tatsächlich funktioniert, oder? Also, jetzt ist dies wichtig in das Spiel. Aber zuerst
müssen wir natürlich auch einen Renderer dafür schreiben. Jetzt ist der Renderer eigentlich nicht so kompliziert. Der Renderer definiert im Grunde, wo die Texturen. Also werden wir sagen, dies ist eine neue Klasse, Buffalo Renderer, und das ist innerhalb des Entity dot Render-Pakets. Dies erweitert den Mop-Renderer vom Typ buffalo Entity und dann buffalo, buffalo Modell. Und dann habe ich Buffalo Entity getippt, weil
wir nicht, wir haben nicht angegeben, dass es ein Büffel genug ist. Ja, und im Inneren von hier haben wir einfach den Ressourcenstandort für die Entitäts-Textur. Und wir müssen auch einen Konstruktor mit dem Super hinzufügen. Und hier werden wir nur
einen neuen Ressourcenstandort mit EMC Corps-Modell Ahmad ID zurückgeben , oop, nicht meine ID. Und dann wird der Pfad innerhalb von Texturen Schrägstrich, Entity Schrägstrich, Buffalo, P und G. Lassen Sie sicherstellen, dass zu schließen. Da gehst du, richtig? Also ist das einfach spezifiziert, okay, wohingegen dies die Textur ist? Und ich glaube, ich habe die Textur hier, ja, vier, also werden wir das schnell überziehen, damit das erledigt ist. Dies wird in einem Verzeichnis namens Entität sein. Und dann werden wir die Textur kopieren. Ja, bitte. Und es gibt noch ein paar Dinge, die wir tun müssen, aber wir sind fast fertig. Und dann werden wir sehen, ob das Gleiche passiert ist oder nicht, wenn ich das so benutze, wie
es passiert ist. Für mich ist das eine wichtige Sache. Also gab es einen kleinen, sagen
wir, es war kein Pfeil, aber es war eine Art Fehler, der passiert ist. Und ich bin mir nicht 100% sicher warum, aber wir werden das beheben. Wir müssen tatsächlich innerhalb unseres Client-Proxy eine Rendering-Registrierung hinzufügen, Dot Register Entity Rendering Helfer. Und dann wollen wir den Mod-Entitätstyp,
buffalo dot get, und dann den Buffalo retro hinzufügen . So stellt dies nur sicher, dass wir tatsächlich, das Spiel tatsächlich über die Büffelrenderer-Modus Entitätstypen weiß, buffalo dot get. Turner wusste, habe ich hier etwas verpasst? Es gibt noch eine Sache, die wir hinzufügen müssen, aber ich wäre wirklich erstaunt, dass es das ist. Also wollen wir tatsächlich eine verzögerte Arbeitswarteschlange hinzufügen, die später hier ausgeführt wird. Und das wird etwas sein, das eine Ausgabe von
globalen Entitätstyp Attributen sein wird . Und anstelle von hier, spezifizieren wir tatsächlich die Attribute, die
wir wollen, dass dieser Büffel dot bekommen. Und das wird Buffalo Entity sein, dot set benutzerdefinierte Attribute, dot create. Und dann gehen wir los. Da gehen wir. Okay, ich habe tatsächlich herausgefunden, was das Problem ist. Es gab eigentlich nicht so eine große Sache. Es war einfach der Konstruktor hier war ein wenig falsch. Das können wir tatsächlich loswerden. Und wir können einfach sagen, nun, wir wissen, was das Modell ist. Dies wird ein neues Büffelmodell sein. Und die Größe des Schattens können wir einfach definieren, indem den Float hier eingeben und dann wird hier kein Fehler mehr sein. War nur ein kleines Etwas. Aber noch einmal werde ich
das wenigstens die kurze Sache in lassen, denn wieder, am Ende des Tages, passieren
diese Dinge und manchmal die Fehler, ich meine,
ich kann Ihnen sagen, ein wenig anekdotisches sagen, wenn ich das erste Mal war
eigentlich wahnsinnig. Das Eis hat es vergessen. Dies war, wie Sie vielleicht gesehen haben, wurde
dies Nullrate zurückgegeben und eine Null zurückgegeben. Und ich habe vergessen, den Ressourcenstandort hier zu platzieren. Aber das Problem war, dass ich einen unbestimmten Pfeil bekam. Nun, das war einfach schrecklich, weil dann. Du musst eigentlich alles durchmachen, bis ich das gut fand, das war, es gab welche. Deshalb denke ich manchmal, dass einige Pfeile tatsächlich behalten werden sollten. Denn wieder einmal, bekannt als unfehlbar und Nummer zwei, könnte
es tatsächlich helfen einige der Dinge, die Sie tun werden, und die Pfeile, auf die Sie stoßen. Aber noch einmal, wenn es irgendwelche Fehler oder Fragen oder Fehler auf dem Weg gibt, können
Sie sich immer frei fühlen, zu fragen und ich werde so schnell wie möglich antworten. Mal sehen, ob wir den Büffel im Spiel sehen können oder nicht. Denn wie ich bereits erwähnt habe, hatte
das Modell eine seltsame Sache damit, nachdem es exportiert wurde,
nachdem es aus der Blockbank exportiert wurde. Also werden wir sehen, ob das auch der Fall
ist oder dass es tatsächlich sofort funktioniert. Also lassen Sie uns zuerst Zeit setzen Datum. Und dann werden wir sehen, ob wir es tatsächlich zusammenfassen können. Also jemand M punktet Buffalo, auch Swan. Und wie Sie sehen können, aus welchem Grund auch immer, das ist definitiv nicht das, was wir im Sinn hatten, oder? Und so ist das definitiv, sagen
wir, etwas seltsam, um es gelinde zu sagen. Es ist also im Spiel, wir können es treffen. Das ist also ziemlich gut, richtig. Aber nun, der Körper soll definitiv nicht sein. Was hast du getan? Sag mir, was du getan hast. Ok. Also werde ich mir das wirklich ansehen. Das ist also natürlich ein Problem mit der Flasche, mit dem Körpermodelltyp. Also die, die Texturen Hier, die Boxen, die gemietet werden, sind definitiv nicht an der richtigen Stelle. Nun, ich habe es hier drin repariert, also können wir das einfach schnell rüber bekommen. Also werde ich das hier kopieren und wir werden uns das ansehen. Also Nummer eins, diese sind wahnsinnig falsch, oder? Also die, so die, wie Sie dies sehen können, dies sind die Positionen versus die y-Position und die Z-Position des Körpers der Box. Sie sind definitiv nicht da, wo sie ihren Weg weg sein sollen. Und auch, ich habe auch gedreht, weil es um 90 Grad
gedreht wurde und das ist ein dann um 90 Grad drehen. Also werden wir uns das jetzt gerade ansehen. So wurde die feste und auch die Höhe und die Tiefe nach oben geändert. Ich bin mir nicht sicher, dass das Blockmodell das getan hat. Das Gute daran ist jedoch, dass
die Parameter hier eigentlich nicht so schwer zu verstehen sind. Dies ist nur die x, die y und die z-Koordinate des spezifischen Quaders. Und dann haben Sie die Breite, die Höhe und die Tiefe der Box hinzugefügt. Also in der Theorie, auch wenn es ein kleiner Pfeil oder ein wenig Seltsamkeit ist, kann
man es immer reparieren und man kann auch immer in die Blockbank gehen und sehen, zum Beispiel, wenn man den Bollinger ab und zu zum Beispiel nimmt, Lass es uns so drehen, wie es in Endgame war. Und Sie drehen es so und dann exportieren Sie es. Sie können tatsächlich sehen, was diese Rotation bewirken würde. Also würde ich noch einmal, wenn es etwas Seltsames gibt, könnte
das eines der Dinge sein, die dort passieren. Und lassen Sie uns das tatsächlich ausführen und sehen, ob dies es tatsächlich behoben hat oder nicht. Weil, wie ich schon sagte, es ist irgendwie seltsam. Von der Blockbank bis hin zu diesem, gibt es eine gewisse Seltsamkeit, die ich fühle, wenn ich exportiere. Aber wie ich schon sagte, Sie können es tatsächlich reparieren. Es sollte eigentlich ziemlich einfach zu beheben sein. Und dann lassen Sie uns sehen, ob das Modell behoben wurde oder ob es immer noch seltsam aussieht oder nicht. Sie gehen, okay, das Modell wurde repariert. Wie ich schon sagte, es ist manchmal etwas seltsam. So gibt es da unten auch eine kleine Textur-Panne. Also, wie Sie in den Behooves sehen können, sagen
wir, es nimmt nicht wirklich die Textur. Ich kann Ihnen die Textur einfach schnell zeigen. Die Textur ist hier. Und Büffel. Und was ich tat, war, dass ich diese Breite umgab. Die Breite genau wie ein leuchtend rosa oder magenta, irgendwo zwischen rosa, roten Bild sanft. Und ein Putt gibt es nur, um zu bedeuten. Okay, wo ist die, wo sind die Texturen? Weil
ich in der Blockbank wieder zurück gehe. Sie können natürlich, in diesem Jahr angegeben. Und jeder Block, auf den Sie klicken, können
Sie tatsächlich OK angeben, wo ist diese Textur? Und dann müssen diese Sektoren einfach gemacht werden, vor allem dafür. Aber es ist nicht so schwierig oder kompliziert, würde ich sagen. Denn wenn die, wenn der Kopf, zum Beispiel, dies ist 666. Also im Grunde haben Sie sechs Seiten und jede von ihnen hat sechs Pixel auf jeder Seite. Also können Sie tatsächlich berechnen, okay, was ist die, was ist die Texturgröße, die ich brauche? Aber das Beste hier ist, wenn Sie wirklich Text schreiben wollen oder etwas zu wenig ist, und Fehlerrate, weil Sie, wie Sie sehen können, können Sie einfach diese Runde bewegen und dann die Textur ändert. Es ist etwas seltsam, das zu tun, aber es funktioniert tatsächlich. Also mein Rat, noch einmal, es ist nur, um ein paar Dinge auszuprobieren. Ich habe es nur ausprobiert, bis das, was du tun willst, funktioniert. Und dann können Sie auch die Textur in der Größe abschneiden, oder? Das
könnte also natürlich etwas platzsparender gemacht werden. Aber ich glaube, dass das in Ordnung sein wird. Richtig? Also alles in allem. Und das ist es. Wie ich schon sagte, das Hinzufügen von Mobs oder Entitäten ist definitiv ein wenig komplizierter und komplexer als einige der anderen Dinge. Da wir tatsächlich tun, haben wir tatsächlich einen benutzerdefinierten Renderer geschrieben. Nun natürlich, das ist wirklich nicht, es gibt wirklich keinen Kunden und real, seien wir ehrlich. Es erleichtert nur, wo die Texturen zu setzen. Aber ja, das ist die Modus-Entitäten. Wieder einmal, wenn es irgendwelche Fragen gibt oder wenn Sie Pfeile haben, zögern Sie nicht zu fragen. Und ich werde sicher antworten. Und ja.
69. (Minecraft) Herstellung unseres eigenen Mobs: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir tatsächlich unsere Entitäten hervorbringen lassen. Also wird der Büffel beide innerhalb der Welt hervorbringen. Und wir werden auch ein Element erstellen, so die, so das Laichei für den Buffalo. Das erste, was wir tun werden, ist, dass wir das Ei erschaffen werden. Und das Ei geht einfach in die Gegenstände hier. Statt unseres Artikelpakets werden
wir also den Mod-Spawn-Ei-Artikel erstellen. Nun, das ist eigentlich eine tolle Sache, weil das alles auf einmal sein wird. Wenn wir also mehrere haben, kann
dies tatsächlich als mehrere,
verschiedene Eier für mehrere dienen , sagen
wir mehrere Entitäten. Also müssen wir eigentlich nur diese erschaffen. Und dann können wir diese Klasse für verschiedene Entitäten wiederverwenden. Und die Art und Weise, wie wir dies verwenden, ist, indem wir eine
geschützte, geschützte tatsächlich tat statische und endgültige Liste dieses Modells Laichelement erstellen. Wir werden diese MOD-Eier nennen. Das wird eine neue ArrayList sein. Genau so. Und dann müssen wir auch Listenklasse importieren, und das ist es. Jetzt in diesem hier wird tatsächlich ein bisschen anders sein. Also werden wir das tatsächlich anders machen. Was wir tun werden ist, dass wir tatsächlich ein endgültiges Registry-Objekt haben. Und wir werden hier mit einer Klasse einfügen, die Entitätstyp erweitert. Fragezeichen. Das wird der Entitätslieferant sein. Und dann bleibt die Primärfarbe in der Sekundärspule und die Eigenschaften bleiben in. Wir werden dies mit einem Null nennen und nicht bereit, dies zu beheben, this.tab Entität, Entitätstypen von Spieler i, wir müssen das tatsächlich einfügen. Natürlich wird es eine private,
private letzte faul eines Typs Fragezeichen geben und dann den Entitättyp erweitern. Lassen Sie uns bemerken, dass Entitätstyp Lieferant genannt wird. Und wir müssen Entity auch eher faul machen. Und dann wird dieser Punkt-Entitätstyp Lieferant gleich dem Entitätslieferanten sein. Und wir gehen, oh, natürlich wird es faul vom Entitätslieferanten sein. Da gehen wir. Und trotzdem glaube ich, dass das das Beste ist. Und dann fügen die Mod Eier Punkt dies hinzu. Dies fügt einfach die, die Klasse, die gerade mit dem Konstruktor erstellt wurde, in unsere statische Liste, die wir hier haben, hinzu. Und dann brauchen wir eine statische Methode. Wir werden nur die Liste der Eier benutzen, um das X grundsätzlich zu initialisieren. Und was hier passieren wird, ist, dass wir tatsächlich eine Karte, eine endgültige Karte, einen
Entitätstyp und ein Laichobjekt nehmen werden. Es ist also ein wenig,
es ist nur die Karte. Dies wird mit dem Verschleierungsreflexions-Helfer getan werden, erhalten Sie privaten Wert. Dies ermöglicht es uns im Grunde, einen privaten Wert von einer Klasse zu erhalten. Es wird null Instanz haben, dass der Feldname x sein wird. Lassen Sie uns Karte schnell importieren und dann werde ich schnell darüber sprechen. Also innerhalb des Laichei-Item, wir, Wie wir sehen können, gibt es eine private statische Endkarte,
genau das, was wir angegeben haben, die x genannt wird. Jetzt ist dies natürlich privat. Deswegen konnten wir nicht verlassen. Aber mit der Assoziation Verschleierung, Reflexion, kann
Helfer tatsächlich diese private Variable und in diesem Fall den Wert davon bekommen. Und dann können wir es benutzen, um Dinge wieder da drin hinzuzufügen. Und dann wird es einfach das für uns automatisch hinzufügen. Also das erste, was wir hier unten tun werden, tatsächlich werden wir den öffentlichen Entitätstyp eingeben, Fragezeichen, es wird Typ, so dass es aus dem Weg gemacht wird. Dies erfordert eine zusammengesetzte NVT und BT, und es wird einfach dieses Punkt-Entitäten Paradoxon zurückgeben. Aber das ist übrigens auch
eine Überschreibung. Also dann ist das erledigt. Dann müssen wir nur etwas zu den Laicheiern des Einlaufs hinzufügen, oder? Und jetzt spezifizieren wir das Verhalten, das für den Spender passieren wird. Also werden wir einen Standard beim Verhalten des Spins Element erstellen. Rufen Sie bald das Verhalten des Gegenstands auf. Seien Sie also ein neuer Ausgabenartikel, geben Sie Artikel Verhalten, Standard, richtig? Und statt hier müssen wir
eine neue Methode außer Kraft setzen , und das wird der Dispense-Stack sein. Ja, genau das hier. Und was wir tun wollen, ist, dass wir Stack zurückkehren wollen. Allerdings gibt es nur wenige Dinge, die zuerst passieren müssen,
das erste, was wir tun, ist, dass wir die Richtung bekommen wollen. Nun, das ist nicht die richtige Richtung und die Leserichtung ist die Richtung. Und das wird dot-dot-dot getter,
block, state dot, get. Nein, nicht in diese Richtung,
aber bekomme Dispenser-Block-Punkt-zugewandt. Also hier ist es nur wollen wir wissen, in welche Richtung der Spender steht. Dann wollen wir den Entitätstyp angeben. Also erhalten wir nur den Entitätstyp, der sich innerhalb des Laichei-Elements befindet. Also dieser Stack-Punkt erhält Element, o, Element, sie würden dot get type,
stack dot, get, hag gehen . Da gehen wir. Und das, das, das bringt mir dann einfach den Entitätstyp , den wir spawnen wollen, und dann wollen wir diese so Entität hervorbringen , die Spawn-Einsicht der Welt gibt, dass wir die Spezifikation angeben müssen, also das Laichen, kein Spieler. Die Position, an der dies der Laichgrund ist, der natürlich Spender ist. Und dann wollen wir sagen, dass die Richtung ungleich ist, um die Klappe zu halten und nicht nach unten, sondern oben. Und der letzte ist falsch. So sorgt dies einfach dafür, dass dieser nicht nach oben laichen wird, wenn der Spitzer nach oben gerichtet ist. Stapelpunkt schrumpfen um eins, richtig? Also dann wird das Ei tatsächlich verzehrt, sagen wir. Und wir wollen, wenn das erledigt ist, wollen
Sie das hier hinzufügen. Dies wird also Spawn-Element sein, Spawn-Ei in allen, alle Entitätstypen. Aber wir wollten Laichen Artikel mod, die Mod-Eier. Und für jeden von denen, die wir hinzufügen möchten, so x-dot. Setzen. Dies wird der Laichei-Daguerreotyp mit Nein und BT und das Laichen sein. Und wir wollen auch, dass der Spender beim Registrieren des Verhaltens blockiert wird. Und da haben wir gesagt, dass Spawn EG und das Dispense-Verhalten, das wir hier oben angegeben haben. Und dann am Ende, wenn wir all das getan haben und alles initialisieren, dann wollen wir einfach den Mod x löschen. Also im Grunde muss das aufgerufen werden, lasst uns hier ein paar Dinge loswerden. Dies muss im Plaque-Client-Proxy gekühlt werden. können wir eigentlich schon hier reinlegen. Also das ist einfach mod Laichelement darin, Sporen als nächstes. Dies wird nun im Client-Proxy aufgerufen. Und wir müssen jedoch zuerst einen neuen Artikel lesen. Das wird also der eigentliche Laich sein, zB. Und wie gesagt, wenn wir ein, ein anderes Beispiel haben, wenn Sie eine andere Entität anstelle eines Büffels erstellen möchten, kenne
ich zum Beispiel keine Hyäne oder so etwas. Dann können Sie einfach fast die gleiche Sache hinzufügen, die wir hier jetzt hinzufügen werden. Und es wird sofort funktionieren. Dies wird also das Registrierungsobjekt des Typs Modell spawn egg sein. Ich habe eine Art Gegenstand genommen. Es wird ein monotonischer Gegenstand. Das ist das Büffel-Ei. Oh, nein, es ist keine Bearbeitung. Das Ei. Und das wird in Registrierungsgegenständen sein. So wird es eine normale Insel sein, sagen
wir, der Büffellaich zB. Und das wird ein neuer Modi sein,
ein Akt vom Typ,
Modus, Entitätstypen, Buffalo. Und dann haben wir die Farben angegeben und wir müssen
diese Farben tatsächlich in Hex-Code angeben . Also machen wir eine 0 x und dann den Hex-Code, ich werde nur ein paar Farben nehmen, die vielleicht nicht das Beste an dir sein können. Wenn Sie tatsächlich mit ihm spielen können ein wenig und versuchen Sie ein paar verschiedene Farben. Und das sind nur der Hex-Code für die Farbe hinter dem Xerox. Und dann werden die Elementeigenschaften einfach wieder sein,
die Gruppe, die natürlich mc cores Metadatenkurs Registerkarte ist. Und das würde das Ei schließen. Doch bevor wir ins Spiel gehen, werden
wir schnell das Laichen innerhalb der Welt machen. Innerhalb unseres Gen-Ordners oder eines Pakets werden
wir ein Mock-Entity spawn plus erstellen. Dies wird wieder einmal ein MOD DOD Event Bus Teilnehmer mit MOD ID MC Kurs, dass bereits. Da gehen wir. Und das ist alles, was wir brauchen werden. Und dann werden wir eine Take void auf Biomlast von OMA nob auf Biomlast haben sie oh, das ist ein Biom-Ladeereignis. Ereignis. Und das ist eine Abonnentenveranstaltung. Und ich werde das schnell kopieren, weil das im
Grunde genau das Gleiche sein wird. Da ich wichtig bin, dass sie gehen, wird es fast genau das Gleiche mit dem Baum geben, glaube ich, ja. Aber das ist fast das gleiche, wie mit dem Baum passiert wird hier passieren. Statt einer Liste konfigurierter Funktionen, werden
wir eine Liste von Mob Info Dot Spawnern haben. Also werden wir die Spawner mit der Entitätsklassifikator-Kreatur bekommen. Dies ist der Klassifikator, den wir die Büffelröhre setzen. Und dann schaffen wir hier einen neuen Spawner. Wir können hier reingehen und schauen, was da drin ist. Also werden wir nur den Typ,
das Gewicht, die Minute und die maximale Anzahl angeben . Das Gewicht hier bedeutet einfach, wie oft das erzeugt wird. Und ich glaube, dass das, was es war, ein Schaf und solche Dinge sind zehn. Ich habe es nur auf 30 gesetzt, damit wir sicher sind, okay, eigentlich, irgendwo, wo sie laichen. Dies ist wieder etwas, das Sie brauchen , um mit ein wenig mit den Zahlen zu spielen. Und auch sehr wichtiges Jahr, Ich habe tatsächlich angegeben, dass sie nicht laichen im Ozeanbiom, sonst würden sie wahrscheinlich sehr schnell ertrinken. Und dann zählt die min einfach ok, was ist die Größe der Herde, sagen
wir in diesem Fall, und ja, mal sehen, ob das tatsächlich funktioniert oder nicht. Und der Spawn Artikel, die meisten ein Ei Artikel funktioniert auch, aber beide sollten einfach funktionieren. Das Gute hier ist, dass Sie auch angeben können, natürlich, sagen wir vielleicht ein, der Büffel nur auf Flugzeugen zu laichen. Wir können dies bereits tun, indem wir hier angeben, dass die Typen
nur den Typ a der Orbitalebenen enthalten . Ja, genau. Das ist also etwas, das wirklich sehr leicht gemacht wird. Mal sehen. Lassen Sie uns also eine neue Welt erschaffen und sehen, ob wir beide die bereits hervorgebrachten sehen können. Und dann auch der Artikel, den wir vorbereitet haben, das Ei. Wäre das nicht nett? Nun, es wäre sehr schön. Ja. Mal sehen. Oh, wir laichen in einem Dschungel. Das ist faszinierend. O a, wir haben das Ei ohne Textur. Nun, das ist definitiv nicht das, was du sehen willst. Aber wir können den Büffel nicht spawnen, das ist irgendwie nett. Dann fliegen wir tatsächlich um die Außenseite des Dschungels. Ich bin mir nicht sicher. Wir können sie sogar sehen, wenn sie im Dschungel sind. Gehen wir rüber und sehen, ob wir einige von ihnen sehen können. Ich glaube, das sind sie, sie werden losgelassen. Einige von ihnen sind tatsächlich innerhalb der Welt hervorgebracht. Aber keine Sorge, sie sind nicht schneller von hier nach da rüber gelaufen, als ich fliegen kann. So wie das wäre, es wäre verrückt. Sie laichen tatsächlich einen Mörder oder irgendwo, wo Sie auf Schildkröte gehen, gehen
wir und bohren. Ordnung. Aber sie laichen in der Welt. Nun hat das Ei eigentlich keine, hat keine richtige Textur, weil wir das Modell natürlich noch nicht hinzugefügt haben. Wie kann es dann eine Textur haben? Wenn es kein Modell hat? Das ist eigentlich eine sehr gute Idee für eine Frage. Also lassen Sie uns das Modell dafür hinzufügen. Ich werde das einfach kopieren und es nochmal ansehen. Nun, es ist nicht so kompliziert. Aber wieder einmal reicht die eine Zeile manchmal aus, um sie nicht richtig funktionieren zu lassen. Ich glaube, wenn der Artikel hier hinzugefügt wird, dann wird er funktionieren. Wir brauchen eigentlich keine Textur zu liefern ,
weil wir natürlich die Textur
sozusagen mit dieser geliefert haben. Also das ist die Vorlage Laichei hat einfach zu NO2 zwei Zahlen, die es mit
Farben assoziiert und dann wird es ausstrahlen, dass auf eigene Faust. Und da gehen wir. Jetzt hat es tatsächlich diese zwei Farben drin. Natürlich würden Sie wahrscheinlich einige andere Farben wählen. Aber noch einmal, die Farben, die Sie mit ihnen spielen können, wenn Sie wollen oder müssen. Und dann können Sie Ihre eigene benutzerdefinierte Helix hinzufügen. Also sind wir, aber ich mag es wirklich. Wenn sie herumrennen. Ja, das ist ziemlich cool. Ja. Und so fügen Sie einige neue Entitäten hinzu. So kannst du sie in deiner Welt zum Laichen bringen, und wie du die Laichgegenstände hinzufügen kannst. Wieder einmal ist die Lokalisierung die einfachste Sache überhaupt, einfach innerhalb der Lokalisierungsdatei wie immer. Was Sie jedoch auch mit der Entität selbst tun sollten, ist, dass Sie die Entität definitiv hinzufügen
sollten. Also sollten Sie auf jeden Fall dieses hinzufügen. Also sollte das eine Entität auf MC sein, schlimmer noch, Buffalo und dann ein Büffel, richtig? Und natürlich, der kleine Hals. Es wird ziemlich trivial sein, das hinzuzufügen, richtig? So laichen Sie die Mobs und wie Sie ein Sperma und Ei erstellen können. Ich glaube, dass es das ist. Wenn es irgendwelche Fragen gibt, fühlen
Sie sich frei zu fragen. Und wenn Sie hier etwas Hilfreiches gefunden haben und tatsächlich etwas geschaffen haben, dann würde ich eine Rezension von Ihnen sehr schätzen. Sonst. Das war's vorerst. Und ja.
70. (Minecraft) Erstellen eines benutzerdefinierten Biome: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir über die Schaffung unseres eigenen benutzerdefinierten Bioms sprechen. Also hatten wir einen Schüler, der fragte, wie kann ich mein eigenes Biom erschaffen? Und das ist ein Weg fortgeschrittene Themen. Das ist also viel komplizierter als einige der anderen Sachen, die wir getan haben. Aber mach dir keine Sorgen. Wir werden es eins nach 11 Stück nach dem anderen durchmachen. Und dann denke ich, dass wir es schaffen können. Also zuerst, in unserem Weltpaket, werden
wir ein neues Paket erstellen, das wir Biom nennen werden. Und dann direkt danach, ein zweites Paket auch in oder ein Weltpaket. Und das wird sein oder Feature. Jetzt beginnen wir mit dem Biom-Paket. Und dort werden wir eine neue Java-Klasse erstellen, die den Logging Surface Builder genannt wird. Und stellen Sie sicher, dass das o kleiner Tag ist Logging Surface Builder. Das sieht gut aus. Das ist also im Grunde eine gute Art Hilfsklasse, so dass, wenn unser Biom spawnt, wir tatsächlich sehen können, okay, hier ist es, wo es hervorgebracht wurde. Das ist also im Grunde alles, was das ist. Also lasst uns zuerst, das wird auch eine ganze Reihe von Generika da drin sein. Das wird also C sein, erweitert den Augenoberflächen-Builder-Konflikt. Und auch als die einen Oberflächen-Generator erweitert,
Oberflächen-Build-Geschichten Oberflächen-Builder Siehe, da gehen Sie. Und dann auch wieder zurück. Und diese Klasse selbst erweitert auch die Oberflächenpfeiler, richtig? Also, zuerst werden
wir hier ein paar Pfeile bekommen. Implementieren Sie einfach die Methoden, wie wir hier sehen. Wir haben tatsächlich das Flächenbauer-Plus erweitert. Also brauchen wir natürlich die, wir brauchen eine Methode und das wird die gebaute Oberflächenmethode sein. Dies wird im Grunde genannt, wenn die tatsächliche Oberfläche verschütten, wir können nur mittlere Mausklick oder Steuerung und klicken Sie dann auf die Oberfläche. Und wir können das tatsächlich anstelle der Oberfläche sehen. Aber wenn wir runtergehen, haben wir tatsächlich diese gebaute Oberfläche. Dies ist eine abstrakte Methode. Und das ist, wie ich schon sagte,
halten, wenn das eigentliche Ding erzeugt wird, sagen wir mal. Nun, was wir im Inneren von hier wollen, ist eigentlich, dass wir diese Klasse nur als eine Art gemacht haben, es ist keine breitere Wrapper-Klasse in einer Art Klasse, die nur funktioniert, so dass
wir tatsächlich etwas auf eine effiziente und einfache Weise sperren können. Also lasst uns hier einen Logger holen. Dies ist das Protokoll für j logger, wird logger, und das wird der Protokoll-Manager sein. Es ist nicht der richtige Log-Manager. Log Manager, dieser ein Punkt wird länger, sie gehen. Dann haben wir auch ein privates Finale und dann ein faul vom Typ S. Also das ist der Typ, der hier angegeben ist, der
die Oberfläche unten verlängern muss. Und das wird nur der delegierte Flächenbauer sein. Und dann auch ein privater Boolean namens protokolliert, so dass wir tatsächlich nur als Einsen angemeldet und nicht jedes Mal, wenn wir weiter Sachen bauen. Und ja, dann machen wir hier einen netten, netten Konstruktor. Also werden wir einen Lieferanten
vom Typ S bekommen, der der Oberflächenunschärfe delegierte Flächenbauer sein wird. Und dann auch ein finaler Kodak mit C-Codec. Und wir werden nur den Superkonstruktor anrufen. Also für die Oberflächenersteller-Klausel selbst, und wir werden ihr hier den Codec geben. Und dann ist diese punktdelegierte Oberflächensäule gleich der delegativen Flächenunschärfe. Wir müssen auch den Codec importieren plus dies ist e come Mo Geng Serialisierung, sehr wichtig. Und das ist natürlich, weil
dies ein fauler, fauler Punkt ist. Was auch immer wir in deinem, ihrem Ego. Oder so, dies ist der Konstruktor oder geritten. Und, und wir müssen das nur beenden. Und das geht im Grunde einfach auf dem Weg von Hayward hoch. Nehmen Sie den delegierten Oberflächen-Generator. Das kriegen wir nur. Und dann werden wir die Baufläche nennen. Und dann setzen wir jeden Parameter dort ein. Wir können das eigentlich schon automatisch vervollständigen. Das ist wirklich nett. Und das nennt dann grundsätzlich einfach den normalen Flächenbauer, der sowieso gekühlt wird. Aber wie gesagt, es gibt viele bewegliche Teile hier. Also mach dir keine Sorgen, wenn etwas unklar ist. Wir werden es durchmachen. Zunächst einmal, Klasse für Klasse, und dann werden wir sehen, wie sie alle zusammenpassen. Also werden wir nur sagen, hey, wenn protokolliert nicht wahr ist, als wenn die Oberfläche gebaut wird , werden wir es
zuerst auf wahr setzen. Und dann werden wir einfach die Bruchpause des Rumpfpfpfades gehen. Und das wird einfach das Stück in Punkt vorbei kommen. Das ist also nur der Brocken, der gerade im Gange ist
, der gerade gebaut wird. Und dann sagen wir Logger Dot Info. Und dann wird es einfach sein, wie derzeit bei zu generieren. Und dann kann ich das machen, ja, genau. Eintreten in dieses Gesetz. Und dann zwei Ordinaten hier. Und wir sagen einfach biome dot, bekommen Registrierungsnamen. Und dann Brocken Pause. Ich bekomme x Start. Ist das nicht vorhanden, weil wir nicht
die Chunk-Pfade drin haben und den übergebenen Punkt X gespeichert werden. Und dann Chunk Pfade nicht bekommen y Stern, y, Ich bekomme z, sorry, z gespeichert, weil y ist natürlich die Spitze, während die Achse, die von unten nach oben der Welt geht. Und das ist der Protokollierungsdienst-Builder. Wie ich schon sagte, es ist eine Art Hilfsklasse, da es einfach
einfacher ist , dass wir das Terminal und die Konsole tatsächlich überprüfen können, um so zu sein ,
OK, hier hat tatsächlich ein Biom von uns generiert. Und dann der nächste Teil, was wir eigentlich wollen, wollen wir jetzt, dass der Oberflächen-Builder, nun, haben, wir wollen tatsächlich einen richtigen Oberflächen-Bieter 42, dass wir eine neue Klasse erstellen werden. Wieder einmal werden wir nur die Mott Oberflächenbauer sein. Wichtig. Das ist Plural, richtig? So viele. Und im Inneren von hier haben wir das schon oft gesehen. Wir werden tatsächlich ein neues Registrierungsobjekt erstellen. Und das wird die endgültige Registrierung sein. Lesen Sie den Verlauf. Überprüfen Sie. Das Ego des Typs DGM-Generator mit einem DGM-Generator-Konflikt Und dies wird der Logging-Standard sein. Das liegt daran, wie ich bereits sagte, wir werden dies nur als
eine Art Standard-Oberflächensäule erstellen , die wir
verwenden werden , damit sie immer die Ordinaten ausspuckt. Und ich werde natürlich auch tun müssen, wir müssen auch in unsere Registrierung gehen und tatsächlich das neue Standard-Register hier hinzufügen. Wir müssen eigentlich zwei neue Register hinzufügen. Wir können das sofort tun. Also der erste, den wir hinzufügen werden, ist eigentlich, wir werden das Register des Typs ein Biom hinzufügen. Das ist also der Typ,
bei dem wir natürlich unsere Biome haben , oder? Also Biomes, und das wird das def Schlüsselwort Register dot, erstellen und dann Register schmieden. So viele, viele Male haben wir schon gesehen. Das
sollte natürlich kein Rätsel mehr sein. Gehen wir mit diesem einen Biom. Und dann auch, oops, und dann auch ein öffentliches statisches endgültiges latentes Register des Typs Surface Builder. Und dann ein Fragezeichen, weil wir die Konfiguration selbst angeben wollen. Im Moment werden wir nur einen bestimmten verwenden, aber wie ich schon sagte, werden wir in kürzester Zeit zu diesem aufgeschobenen Registrierpunkt kommen. Und das wird vier Register, die Oberflächenbauer sein. Und dann noch einmal mit dem Modell Ahmad, böse, richtig? Die sind also schon hier drin. Stellen Sie immer sicher, dass Sie sie in das Gerät stecken. Das ist wie einige der Dinge, die passieren können, dass man das vergisst und dann,
na ja, dann ist jeder irgendwie verwirrt. Nun, warum funktioniert das nicht? Wissen Sie, stellen Sie sicher, dass Sie den Wolf,
die Biomasse-Oberflächen-Builder Register-Methode in den Index,
in die innere Registrierung setzen die Biomasse-Oberflächen-Builder Register-Methode in den Index, . Und jetzt können wir tatsächlich schon hier reingehen und sagen Registrierung, Punkte, Oberflächenbauer, Oberflächenbauer DOT-Register. Und wir wollen einen Namen. Wieder einmal wird dies Standard protokollieren, wie ich sagte, es wird nur unser Standard sein. Und dann brauchen Sie einen Lieferanten eines neuen Flächenbauers. Und dann machen wir die Protokollierungs-Service-Säule, die wir gerade erstellt haben. Hier gibt es keine Eingabe. Statt hier brauchen wir auch einen Lieferanten. Das wird es sein. Spiller-Punkt-Standard und dann eine Oberfläche darunter oder Konflikt. Und wir werden dieses Feld genau hier auswählen. Lassen Sie mich sehen. Das wird Ertrag 37 zu o sein. Das gibt es eigentlich nicht. Ich denke, das bedeutet, dass wir hier tatsächlich einen Standard haben. Ich weiß, warum, weil dies nicht die Oberfläche photoreist, Oberflächenkonflikte, sorry Diego. Und da ist natürlich das Feld. Richtig? Und dann stellen Sie auch sicher, dass innerhalb unserer, der MOD-Oberflächen-Builder plus unser Vertrauen der alten
statischen void Register-Methode hinzuzufügen , die wir dann innerhalb von hier aufrufen können. Lassen Sie uns dies tun, nachdem die Flüssigkeiten fertig sind. Dies ist ein maud Oberfläche Builder DOT-Register. Und dann ist das auch schön gemacht. Richtig? Und nachdem dieses geschaffen wurde, können
wir nun das etwas anderes betrachten. Und das wird hier eine andere Klasse statt Biom sein. Und das wird die MOD größere Oberflächenbauer sein. Nun, ich, du könntest so sein, was zur Hölle hier los ist. Und mach dir keine Sorgen. Wir werden das durchstehen. Also, das ist eigentlich ein Registrierungsschlüssel, richtig? Dies ist also ein Registrierungsschlüssel vom Typ konfigurierter Oberflächengenerator mit einem Fragezeichen. Und das ist, wir werden das die Öloberfläche nennen. Nun wird dies sehr bald klar gemacht werden. Und das wird gleich Registry e dot e oder erstellen Sie Schlüssel mit Registrierungspunkt konfigurierten Surface Builder-Schlüssel. Und dann eine neue Ressource Standort mit unserer MC Smart MOD ID und dann werden wir Oberfläche. Also und wie gesagt, es gibt mehrere Schritte und Pfade, um dies zu durchlaufen. Wir werden das durchgehen und dann jede einzelne
der Komponenten einzeln überprüfen . Ja. Also gibt es jetzt, glaube ich, zwei weitere Dinge, die wir tun müssen. Eine Sache ist in unserem Feature. Eigenschaften. Dies ist also die Sicherstellung, dass wir hinzufügen
möchten, und das brauchen wir eigentlich noch nicht. Wir können eigentlich vor allem das Mikrobiom. Lassen Sie uns also in unsere Biomen gehen und die moderne Biomenklasse schaffen. Und das wird wie eine Meisterklasse sein, in der alle unsere Biome gut sind. Also beginnen wir tatsächlich mit dem statischen endgültigen Registrierungsobjekt. So ist dies jetzt das Register geeignete Biome. Das ist also Ihre, wir definieren jetzt unsere Biome. Und das wird das Ölbiom sein. Also natürlich haben wir Öl kreiert und ich sagte: Nun, warum nicht ein Biom machen, das wie ein totes Land vibe, das wie Öl Petrus hat. Ich dachte, dass das eine interessante Idee ist nur zu zeigen, wie das funktioniert. Und dann zeige ich Ihnen, wie Sie diese Dinge anpassen können, während wir weitermachen. Also natürlich werden wir noch einmal, alle Registrierung Biomen oder Registrierung und dann die Biomen verzögert Register. Und das wird es sein. Das Öl-Biom. Und dann werden wir einen Methodenaufruf haben, wir werden abkühlen, Öl-Biom machen. Nun, das ist eine Methode, die wir noch nicht erstellt haben, aber ich werde schnell beenden, die, was wir wollen, und dann werden wir sehen, also wird dies weltweit sanfte Register, Punkt konfiguriert, Oberflächen-Generator. Da gehen wir. Und dann werd Rho wert. Dies geht also im Grunde an den konfigurierten Oberflächengenerator. Lassen Sie uns versuchen und formatieren. Das ist ein wenig schöner, so dass es wirklich lesbar ist. Das sind wirklich lange Aussagen. Es ist eigentlich nicht so einfach, hier alles anzubringen. Dies wird die Mod konfigurierten Oberflächenfilter sein. Das haben wir soeben mit der Öloberfläche gemacht. Und wir können das schließen. Und dann eigentlich nur einer. Ja. Und dann haben wir die Tiefe und dann die Skala. Wie ich schon sagte, wir werden die,
die Methode unmittelbar danach, den
Import, dasRegistrierungsobjekt erstellen die Methode unmittelbar danach, den
Import, das . Und dann werden wir natürlich einen Fehler bekommen, weil das große Ölbiom noch nicht existiert. Also machen wir eine neue private, private Statik. Biofilm wird Ölbiom mit einem Endlieferanten eines
typkonfigurierten Oberflächenbauers mit einem Fragezeichen einmal gegen diesen Flächenbauer herstellen . Und dann ein Schwimmer. Und ein Schwimmer, nicht Höhe, aber sie gehen. Und dann müssen wir den Lieferanten als Klasse Java Util-Funktion einholen. Und dann irgendwo gibt es wahrscheinlich ein, ja, da gehen wir hin. Okay, jetzt funktioniert das eigentlich schon. Jetzt geben wir natürlich noch kein Biom zurück. Und das ist auch eine Methode, die
definitiv das ist , was Sie sich jemand anderen dafür ansehen sollten. Also werde ich das einfach reinlegen. So Bio Maker. Und wenn wir noch einmal Control Klick oder mittlere Maustaste, wir tatsächlich in die Biomarker-Klasse von Minecraft bekommen. Und im Inneren von hier haben wir tatsächlich diese statischen Methoden, die uns zur Verfügung stehen oder sind, sie werden verwendet, um bestimmte Biome herzustellen, oder? Also hier machen gigantische, gigantische, gigantische Tigerbiome, richtig? Und wie Sie sehen können, gibt es eine Menge Zeug hier drin. Und wir werden eigentlich nur kopieren, was in einem davon
ist, und dann etwas ändern. Also nehmen wir den Sumpf und wir nehmen das als ein, auch als Grund, sagen wir. Und wir werden alles kopieren, was drin ist. Und dann fügen wir es einfach ein. Und wir werden ein paar Fehler bekommen. Vermutlich. Das erste, was wir hier machen wollen, die Hügelvariante. In unserem Fall habe ich beschlossen, keine Hill Variante auf unserem Biom zu haben. Aber natürlich kannst du, das könntest
du auch ändern. Aber wie ich schon sagte, dies ist nur eine, eine kurze Einführung in die Biome, um sie
wirklich spezifisch zu machen und sie wirklich Kunden zu machen. Du musst mit allen Werkzeugen herumspielen, die dir gegeben werden. Aber zuerst, lassen Sie uns das Bio-Festland erstellen. Mal sehen, was hier passiert. So. Oben, wir werden tatsächlich
eine letzte Biom-Generierung Einstellung Einstellungen dort zu tun , yo Dot Builder. Und das wird unsere Biom-Generierung Einstellung Builder sein. Und wir werden ein neues schaffen. So neu und wir bekommen das hier vorgeschlagen, dieser Breitenflächengenerator, und das ist der Oberflächengenerator. Wir werden ihn hier aufgeben, oder? Das haben wir da drin geliefert. Das ist jetzt die Oberfläche. Und das wird dann anstelle dieser Biogenerierungseinstellungen hier verwendet werden. Das ist also im Grunde dieser. Sie können dies auch einfach ändern. Eigentlich ist das wahrscheinlich ein bisschen einfacher. Also ändern Sie einfach das hier. Und dann funktioniert das auch mit Ego. Das sind also die Einstellungen für die Biomgenerierung. Ja. Okay, aber wie, und wie Sie sehen können, gibt es hier schon ein paar Dinge, die hier passiert sind, oder? So Standard-Biom-Features mit passiven Mobs. Das ist in allem sehr interessant. Nun, lasst uns zuerst hier runtergehen. Dies ist also eine sehr lange, wie Sie sehen können, eine sehr lange, eine Rückgabe-Anweisung hier. Also lassen Sie uns versuchen, dies ein
wenig so einzurichten , dass Sie es tatsächlich ein bisschen besser sehen können. Es gibt also eine Sache, wie Sie sehen können, die hier tatsächlich einen Pfeil hat. Und das wird die Get-Himmels-Farbe mit Temperatur-Modifikator sein. Nun, es gibt mehrere Dinge, die Sie tun können. Ich muss ehrlich sein. Die einfachste Sache persönlich ist einfach, diese private Methode zu nehmen, die tatsächlich berechnet die Himmelfarbe auf basierend auf der Temperatur und nur kleben Sie es in den Mund Biomen. Das ist für mich der einfachste Weg, dies zu tun. Natürlich gibt es cleverere Wege und Sie können Reflexion verwenden um das und all das zu verschleiern. Es spielt wirklich keine Rolle. Ich denke, das ist völlig in Ordnung und das ist, na ja, na ja, in Ordnung. Ok. Schauen wir uns diese machen Öl Biome jetzt und sehen, was tatsächlich vor sich geht. Bevor wir das tun, fügen Sie bitte eine andere Methode hinzu, die
diese öffentliche statische void Register-Methode hier mit nichts darin sein wird. Damit wir die, die Biome auch registrieren können. Und sie sollten vor diesem Biomen-DOT-Register registriert werden. Nur für den Fall. Und jetzt der Biomarker, lass uns das loswerden und mal sehen. Also die Karte Biomes. Im Moment würde dies einfach
ein neues Biom namens Ölbiom mit dieser Öloberfläche hier hinzufügen . Aber es gibt noch eine Sache, die ist, dass es nicht fehlt, aber es ist, naja, es tut in diesem Moment wirklich nichts, richtig? Also, es gibt nichts wirklich Aufregendes vor sich geht im Grunde nur ein neues,
ein neues Sumpf-Biom zu schaffen . Weil es im Grunde das ist, was wir haben, was wir hier kopiert haben, oder? Und die eigentliche Frage ist also, wo können wir das nächste, was wir ändern können, bekommen? Und das wird innerhalb der Funktionen sein. Lassen Sie uns zunächst ein neues Feature hinzufügen, eine neue Klasse. Dies wird also der Marsch auf ausgelöste Features sein. So wird die Klasse gekühlt und innerhalb Ihrer Arbeit tatsächlich einige Konfigurationsfunktionen haben. Wir fangen mit einem an, fügen
dann noch einen hinzu, und dann schauen wir uns das an. Das ist also eine öffentliche Statik. Endgültige Konfigurationsfunktion war markenrechtlich geschützte westliche Marke. Und dann nennen wir das den Euler-See. Nun, was ich getan habe und wie ich tatsächlich habe, nun, wirklich das sagen, ist, dass ich im Grunde nur die und diese Standard-Biom-Funktionen
genommen habe , oder? So sind sie auch alle konfigurierten Funktionen. Und noch einmal, mit der mittleren Mausklick, können
Sie tatsächlich hier reingehen. Und Sie können sehen, dass dies eine Klasse ist, in der es viele statische Methoden gibt. Statt hier haben wir Builder Dot mit Esser. Und das ist immer was, was gekühlt wird. Und wenn wir zum Beispiel
in den Wald schauen , ist das im Baumeister nicht ganz richtig. Und wir sehen, dass hier ein paar Dinge passieren. Zum Beispiel können wir sagen, dass wir tatsächlich Seen wollen, oder? Also mit Lava- und Wasserseen, richtig, Liebhaber Modal x, haben Sie, Sie haben wahrscheinlich gesehen, die. Sagen Sie OK. Das bedeutet einfach, dass wir mit Feature Seen und Lehrern See Wasser nennen müssen. Und das ist ein Merkmal, das wir tatsächlich eine neue Funktion des Arms haben. Das ist also interessant zu wissen und so machen wir das. Also lasst uns Registrierung machen, Punkt-Register. Dies wird eine Welt Geschlechterregistrierungen, die Funktion konfigurieren, oder? Wir werden das späte Öl nennen. Und das wird ein Feature sein. Wir haben diese Funktion bereits mit der Generation gesehen. Und das wird See sein, richtig? Das ist so einfach wie mit der Konfiguration. Jetzt muss Funktion tatsächlich eine Eagle Lake Punktbreite Konfiguration importiert werden. Und statt hier brauchen wir einen neuen Block. Staat, ein Anbieter, ein Blocksite-Feature-Konflikt tatsächlich. Und das wird enden. Dann im Inneren von hier werden
wir tatsächlich OK angeben, welche Art von Block oder wollen wir. Also können wir hier tatsächlich in den See gehen. Und wir werden sehen, dass diese Registermethode genau die gleiche ist, genau das gleiche, aber es ist eine sehr ähnliche Sache. Sie können Ihre neuen Lake Funktionen sehen. Sie können dann in Lake Features gehen. Und jetzt ist das, das ist eine ganze Reihe von Sachen, an denen wir nicht unbedingt interessiert sind. Allerdings können Sie tatsächlich sehen,, Gibt es
nicht eine See-Funktion ist ähnlich wie das Wasser. Hier sind wir. Es ist also in Funktionen, nicht in Funktion, das war das Problem. Und hier haben Sie tatsächlich das Absolute. Also die Registermethode, die wir gerade aufgerufen haben, haben
Sie genau die gleiche Methode hier. Also können wir im Grunde einfach sagen, weißt du was? Lassen Sie uns das einfach kopieren, oder? Also lasst uns das einfach vom See nehmen. Kopieren Sie einfach die Schlammmethode und sagen , in
Ordnung, wir werden das nur kopieren. Also mal sehen, wir müssen tatsächlich dieses Registry-Punkt-Register bekommen, das Sie gehen, richtig, und dann ist der Rest bereits erledigt. Also wollen wir eigentlich auch den Namen Lake Oil ändern, oder? Und dann hier haben wir Interessen Punktzustände, Wasserblock. Das ist natürlich der Block, den wir dort hineinlegen wollen. Dies wird also mod fluids dot oil block in diesem Fall, dot get noch default state, weil wir einen Standardzustand in ihr brauchen. Und was scheint dann das Problem zu sein, das wir nicht lösen, mach dir
keine Sorgen darüber. Registrieren Und das ist, weil wir unsere haben, wir brauchen eigentlich auch die regierte, sorry, die Weltregister Punkt dies ist konfiguriert Funktionen oder sind sie böse? Gemusterte Heizung. Und dann das Ölleck, Öl, sie gehen. Wie Sie sehen können, können wir tatsächlich irgendwie einfach das kopieren und das ist eins zu vielen, das ist gut. Und wir können tatsächlich nur von den Features kopieren. Und wenn es ähnliche Dinge gibt, die Sie tun wollen, na ja, Sie können sie einfach von den Features hier nehmen und sie ändern, wie Sie wollen. Das ist ein Trans-Feature. Lassen Sie uns das einfach auf zehn setzen, nur um des Streits willen. Und das ist etwas, das wir jetzt verwenden und in unser Modell einfügen können. Wie können wir das jetzt tun? Werden wir hier reingehen, in unser Mikrobiom und dann wirklich überall. Aber lassen Sie es uns einfach hier setzen, so dass Sie wissen, wo dies ist,
sagen wir, der Biomdauer-Einstellungen-Builder. Das ist also eine Sache, die wir hier immer in diese statischen Methoden übergehen. Was wir wollen, ist, dass wir diese Breite Funktion wollen. Und dann können wir einfach sagen, nun, in welchem Stadium, also sagen wir Generation und dann Seen, Deklaration, Seen, richtig? Das ist die Bühne auf einmal. Dies wird hinzugefügt. Und das wird innerhalb unserer Mod konfigurierten Funktionen sein, denn dies ist eine Funktion, die wir hinzufügen möchten und dies wird die ölige sein. Sofort. Was hier wichtig ist, ist, dass
es natürlich sinnvoll wäre, auch eine andere Klasse namens
Modus-Biom-Features zu machen und dann die statischen Methoden dort kühl sind und dies auch drin haben. Aber im Moment möchte ich Ihnen zeigen, wie man wirklich die,
das Biom Arbeit und jede, sagen
wir Refactoring, vielleicht sogar einige effizientere Dinge sind, es ist nicht immer das Beste, um sich mit
der Herstellung von alles, wenn ineffizient am Anfang. Hier unten im Biomenbauer haben
wir auch eine Menge Dinge, die wir tun können. Zum Beispiel haben wir hier die Biom-Kategorie, die wir wählen können, oder? So können wir sagen, oh, welche Kategorien es. Und so sagen wir zum Beispiel, gut eigentlich wissen Sie was, lassen Sie uns die Kategorie bei Swan behalten. Das ist in Ordnung. Und dann haben wir die Niederschlagsart. Also, wenn es regnet, wenn seine Nase oder wenn es nichts gibt, so dass Sie hier ändern können, dann können Sie den Untergang ändern. Nun, die meisten von denen sind nicht wirklich kommentiert, also musst du ein wenig damit herumspielen,
aber das sind eine Menge Sachen, die du hier oben ändern kannst, was ziemlich cool ist. Und ja, jetzt haben wir tatsächlich viel Leid getan. Und das ist eine weitere Klasse, die wir tun müssen. Und dann können wir dieses Biom tatsächlich in Aktion innerhalb unseres Spiels sehen. Und das ist natürlich die Generation, denn im Moment würde sie nicht einmal generieren. Jetzt erstellen wir das MOD-Biom. Generation, ich habe dir gesagt, dass es ein bisschen mehr ist als, sagen wir, wir sind es gewohnt. Und in dieser Klasse wird tatsächlich den mobilen Abonnenten wieder bekommen. Und wir werden zu Veranstaltungen haben, um Veranstaltungen zu abonnieren. Der erste wird eine öffentliche statische Leere sein, registrieren, registrieren, kein Ego mit einem endgültigen Registrierungsereignis, lesen, Geschichte, Ereignis, Register, eine Oberfläche Pilgrim. Dies wird also ein Oberflächen-Generator namens Ereignis registrieren. Das ist in Ordnung. Und dann werden wir sagen, ich werde sagen, dass ich das noch einmal begleiten werde. Das ist also nur so, dass wir dies zu einer Priorität niedrig machen, damit die Reihenfolge, in der wir diese Schritte durchführen, dem tatsächlich förderlich ist, was wir wollen. Und dann haben wir eine weitere Abonnentenveranstaltung, die eine Stadt sein wird. Wir würden biome finale FML, allgemeines Setup-Ereignis, Ereignis einrichten. Und hier werden wir tatsächlich Arbeit in die Warteschlange stellen. So wird dies einfach so gemacht, dass es wieder auf eine Weise feuert, die funktioniert. Was würdest du sagen? Damit es in der richtigen Reihenfolge ausgelöst wird, sagen
wir, abonnieren Ereignis, richtig? Und jetzt müssen wir mehr private Methoden, die Art von Hilfsmethoden sind. Und es wird das Register Biomen sein. Dies wird also das Biom mit einem Ressourcenstandort,
Biome RL mit einem Blockstatus registrieren . Das sind also drei Blöcke, die wir tatsächlich angeben. Das sind also die Blöcke, die in diesem Myo verwendet werden. Also haben wir ein oberstes Gesetz. Wir werden einen Füllblock haben und wir werden eine Unterwasserblöcke haben. Dies ist Blockzustand unter Wasser. Das Ego und die Art und Weise das funktioniert, Glück Status schon wichtig, das ist großartig. Dass du gehst. Und die Art und Weise, wie das funktioniert, ist, dass wir in das Register Punkt-Register gehen. Wieder einmal das Wort registriert. Und dies wird Oberfläche ein Builder konfiguriert werden. Dann werden wir ihm den Ressourcenstandort übergeben, an dem wir ihm übergeben werden, die Mod-Oberflächen-Builder Dot Lobbing, Standard, Dot Get. Und dann nennen wir diese Methode hier Funk vierundzwanzig, neunundzwanzig, neunundzwanzig. Und im Inneren von hier machen wir einen neuen Oberflächengenerator-Konflikt. Also der Xenu Silber brutale Konflikt, gerade jetzt, Das wird Top-Block, der untere Block und Unterwasserblock. Und dann können wir auch,
das ist nicht das, was ich tun wollte. Und dann können wir auch diese tatsächlich beendete Gesetze erscheinen. Dies ist die Register-Biom-Methode, die benötigt wird, um das Biom zu registrieren. Und dann gibt es eine andere private Methode und das ist die Methode „add biome“. Und das fügt dem Wörterbuch und den Managern im Grunde das Biom hinzu. Also haben wir das Biom, wir haben den Biom-Manager, Dot Pioniere, MY implementiert ersten Bio-Manager. Ok. Mein OEM. Manager. Diese nach M-Typ. Nicht, dass das nicht das Richtige ist, schätze ich. Biom-Typ. Lasst uns tippen. Okay, dann ist es nicht der richtige Bio-Manager. Dann wollen wir eigentlich diesen Bio-Manager. Ja, das ist das Richtige. Wir wollen den Bio-Manager von. Wo ist sie hin? Dort ist es von Minecraft, die gemeinsame Spam-Manager-Typ. Wir haben ein integrales Gewicht. Wir haben den Biome-Wörterbuch-Punkttyp, und dann machen wir dot-dot-dot Typen, so dass wir können, so dass alles, was danach hinzugefügt wird, einfach ist. Und so wird jeder Parameter, der nach dem Gewicht hinzugefügt wird, dann einfach als Typ mit dem Registrierungsschlüssel biom
genommen. Also, das ist sehr ähnlich zu dem, was wir in der Wortgenerierung getan haben, diese Baumgenerierung bereits. Nur das. Jetzt, anstatt nur die Schlüssel zu bekommen, sind tatsächlich die Schaffung eines neuen, die Schlüssel dot Biome registriert. Das ist also einfach so, dass wir ein Biom und dann Objekte erstellen können. Wir werden tatsächlich tun, dies richtig erfordern nicht null. So stellt dies nur sicher, dass es keine Ausnahme geworfen wird, so
etwas, das registriert bei Biomen dot bekommen Wärme von L. Also das ist das Biom, das ihn passieren. Und dann ist das großartig. Und dann hier unten müssen wir eigentlich nur
Wörterbuch am Typ mit dem Schlüssel und den Typen hinzufügen . So dass jetzt die Typen mit dem Biom verbunden sind, das wir gewählt haben. Und dann der Bio-Manager. Hoffentlich hat der richtige Biom hinzugefügt, dass wir die Art des Bioms
und dann einen neuen Biomeintrag mit dem Schlüssel und dem Lohn hinzufügen . Richtig? Und das sind die Methoden, die wir brauchten. Jetzt in der Enqueue-Arbeit, dies ist, wo wir das Biom hinzufügen und das wird in Mod-Biomen,
Dot Oil, Biome Dot Get sein. Also genau hier müssen wir eigentlich das Biom angeben, das wir wollen. Dann brauchen wir den Biom-Typ, damit wir warme Wüste haben können. Es gibt Vermächtnis-IC. Wir machen ein warmes Biom. Lassen Sie uns das Gewicht eines 100 wählen und fügen Sie dann den Typ hinzu. Also Typ, Heiß, Tot, tot und trocken. Nun, was wir auch tun können, anstatt das immer austippen zu müssen, können
wir dies tatsächlich als statische importieren, die wir eigentlich sagen können Import statisch, dass Minecraft oder kein Mikrofon, gemeinsames Biom-Verzeichnis. Und dann, und dann einfach tippen und dann einen Stern, sie gehen speichern. Und dann, was wir hier tun können, ist, dass wir einfach heiß und tot und trocken schreiben können. Das ist ein bisschen einfacher. Anstelle unserer Register-Methode möchten
wir das Register-Biom aufrufen. Und da müssen wir noch einmal sagen ein Flächenbauer-Öloberfläche dot-dot-dot getLocation, weil es
einen Ressourcenstandort gibt , richtig? Und was wir tun werden, ist, dass wir angehaltener Seelensand gehören. Nur um des Streits willen jetzt, wir nur etwas blockiertes erschaffen. Stoppen Sie den Sand, sagen wir. Und auch Blöcke Punkt. Das ist der Unterwassersand. Lasst uns Sandalen finden. Get equals sagen sehr wichtig, das ist der Standardzustand, weil wir die Brock-Zustände und
nicht die tatsächlichen Blöcke dort wollen , richtig? Und jetzt, wenn ich mich nicht irre, sollte
alles getan werden. Jetzt gibt es natürlich viele bewegliche Teile. Also, was wir tun werden, ist, dass wir das einfach ausführen, es
ausprobieren und mal sehen, was passiert. Ich bin ziemlich zuversichtlich, dass das funktionieren wird. Aber trotzdem könnte es auch immer etwas Kleines geben. Denn wie ich bereits gesagt habe, ist
es eigentlich ein weit fortgeschritteneres Thema als, ich denke fast alles, was wir vorher behandelt haben. Ich glaube, die Bäume waren irgendwie entlang der Linie, aber ja. Also bekommen wir hier tatsächlich etwas. Das ist ein guter Anfang. Nun mal sehen, ob das Spiel tatsächlich auch beginnt. Sieht so aus. Nun, das ist ein guter Anfang, und lass uns dann eine neue Welt erschaffen. Also nennen wir das 1-2-3 kreativ und einfach, ja, nun, mal sehen, ob es auch eine neue Welt schafft. Und natürlich wäre es so faszinierend und auch großartig. Alles, was beim ersten Versuch funktioniert, ist immer ein gutes Zeichen. In Ordnung? Okay, also haben wir tatsächlich angefangen und da gehen wir. Sie können das, was wir erschaffen haben, bereits sehen. Also das ist die, wenn wir hier rüber gehen, richtig,
das sind Mikrowellenflugzeuge, wie Sie hier sehen können, bewerten Mikrowellen-Fluss. Dann gehen wir hier rüber und das ist m Scores Ölbiom. Da gehen wir. Und wenn wir durch diese gehen, hoffentlich Luft es ist, haben
wir tatsächlich bereits
diese werden diese Ölseen, die im Inneren der Bio erzeugen, zum Beispiel. Richtig? Das ist also eine Grundidee, wie man eine Bio herstellt. Lassen Sie uns nun ausgehen und tatsächlich
ein zweites Feature nur für Demonstrationszwecke wegen der Funktionen erstellen . Also das wäre in der Seite von, lassen Sie uns einfach schließen alles jetzt sind endlos hier. Dies wäre innerhalb der Funktion MOD konfigurieren Funktionen. Denn die Funktionen werden die eine Sache sein, die wirklich mächtig sein wird. Wie ich schon sagte, du kannst in Features gehen, oder? So Mikro-Funktionen genau hier und tatsächlich sehen eine Menge von Funktionen, die vorhanden sind. Und Sie können diese dann dem mehr Biom hinzufügen, oder? Statt eines Jahres zum Beispiel
gibt es einige Dinge, die wir vielleicht nicht wirklich wollen, oder? Also wollen wir vielleicht nicht, wollen keine passiven Modi. Vielleicht sagen wir, weißt du, ich will
eigentlich nicht überarbeitet oder bin hier, oder ich will nicht die Pilzgeneration, ich will keinen Sumpf. Sie können all das hier raus bekommen und nur Ihre eigenen Funktionen verwenden. Das funktioniert natürlich. Aber ja, das ist definitiv etwas, mit dem man ein bisschen herumspielen muss. Und es gibt so viele, sagen wir,
Schichten, die man damit aufdecken kann und so viele Dinge,
die man damit machen kann, dass es fast unerschöpflich ist. Jetzt erstellen wir ein neues, ein neues. Das Ding hier, an das ich gerade gedacht habe, dass es wie eine Kupferbox Spread sein wird. Also, das werden nur ein paar Blocks sein, wie der Thron irgendwo auf dem, auf dem Biom. Und dies wird ein Blockcluster-Feature-Konflikt sein. So wie ich das herausgefunden
habe, werde ich es dir in einem Moment zeigen. Aber das wird ein Kupferausbreitungskonflikt sein. Konflikt. Da gehst du. Dies wird ein neuer Blockclusterkonflikt sein. Jeder Konflikt von Builder, neue einfache Block StateProvider. Und da wollten wir Mon Block Sadat sagen, Kupferblock, Punkt, Punkt, Standardzustand erhalten. Und dann haben wir hier einen neuen einfachen Block Placer. Und das wird etwas sein, das du nicht bist. Das hier. Rise, ja, versucht 25 und dann bauen. Schön. Und dann haben wir hier tatsächlich die konfigurierte Funktion, weil wir einen Konflikt
benötigen oder dass dies eine Konfiguration Fisher sein wird. einmal Fragezeichen, Fragezeichen. Das wird der Kupferblock Spread sein. Und das ist wieder einmal das Registry-Punkt-Register mit einem Weltregister konfiguriert. Das hier ist cool, Kupferaufstrich. Und dann haben wir einen Feature-Punkt, zufälliger Patch. So gibt es hier auch viele Funktionen. In der Funktion gibt es verschiedene Arten von konfigurierten Features. Die Optionen, die wir haben, haben
wir die gleiche Sache, die wir mit der Platzierung der Bäume gesehen haben, die auch Sie haben, um mit ein wenig spielen. Und dann innerhalb von hier, wollen
Sie tatsächlich die Blockcluster-Funktion. Deshalb ist der Konflikt, deshalb habe ich den Konflikt schon gemacht. Und dann werden
wir nur Platzierung sparen. Platzierung Punkt Chance mit einer neuen Chance Konfiguration von sagen wir 200. Und wir werden auch das hier unten bekommen, nur für ein bisschen bessere Lesbarkeit. Und vergiss nicht das Semikolon jetzt, das ist natürlich noch nicht drin. Wir müssen hier rein. Wir können das einfach kopieren, sagen wir und dann Deklaration Dot sagen. Sagen wir, das sind Oberflächenstrukturen. Es könnte gewartet werden, stürzt, es könnte etwas anderes sein. Und dann sagen, der Kupferblock verteilt und ist somit bereits alles, was Sie hinzufügen müssen. Nehmen wir an, eine andere Konfigurationsfunktion. Die Art, wie ich das herausgefunden habe, ist im Grunde so innerhalb des Features und natürlich die verschiedenen Arten von Dingen, wie sie hervorbringen. So zum Beispiel, wissen
Sie, wie die Glühsteinblöcke dort im Inneren eines Endes erscheinen, anstatt Nether. Und dann siehst du was sonst? Es gibt einige, zum Beispiel, die Bambus Wow, die Laichen der Knochen Brust Oberfläche schlechter. So gibt es eine Menge von Feature-Features, wie sie, wie sie spawnen. Und in der Platzierung haben
Sie auch etwas Ähnliches. So dort können Sie mit spielen, wie die, wie Sie konfiguriert wurden Features spawnen. Es ist wirklich eine Menge Versuch und Irrtum hier. Und es ausprobieren. Wieder einmal, raten Sie, Beispiele in,
in GitHub, richtig, zu betrachten , wie andere Leute ähnliche Dinge getan haben. Weil das sein wird, ist es nur eine wirklich kluge Idee zu sehen, wie andere Leute es getan haben. Und um ein bisschen damit herumzuspielen, sagen wir, okay, wie funktioniert das? Ich bin mir nicht sicher, wie das funktioniert. Ja. Und das sollte dann eine wirklich kluge Idee, damit ein wenig herumzuspielen. Und dann mal sehen, ob tatsächlich, wenn wir eine neue Welt laden. Also werden wir eine neue Welt erschaffen. Wird das ein? Für jetzt? Strahlend? Ja. Und sehen Sie, wann das Neue, wenn die Biomen wieder laichen, ob das tatsächlich die Kupferausbreitung dort existiert oder nicht. Es wird irgendwie nett sein. Okay, mal sehen. Oh, da ist es. Okay, es gibt ein Biom und übrigens können
wir auch hier runtergehen und uns den Lauf ansehen. Du siehst das hier, wo du eingesperrt bist,
entschuldige, das ist nicht das Entitäts-Ion. Und ich wollte eigentlich die Generierung. Ich habe gerade die Art von Koordinaten gesehen und ich war wie, oh, da ist es. Nun, es ist wirklich weit davor. Es erzeugt derzeit MCT-Ölbiom mit minus 28 und minus 272. So können Sie tatsächlich sehen und sagen, naja, das ist ziemlich genau dort, wo wir sind. Und lasst uns werfen, durchgehen und sehen, ob es Kupferaufstriche gibt. Sind da, sie sind da ist der erste. Also gibt es eigentlich ziemlich selten alle Dinge betrachtet. Und Sie können eine noch seltener oder nicht oder häufiger machen. Und das ist einfach im Grunde die Sache, die ich als ein,
als ein weiteres Beispiel für die konfigurierte Funktion, die Sie hinzufügen können. Wie ich schon sagte, es gibt so viele Dinge, die man damit machen kann. Und es gibt so viele, naja, sagen
wir Knöpfe, die Sie in alle möglichen Richtungen drehen können,
die Sie nur ein bisschen durchgehen müssen. Probieren Sie die Standardfunktionen aus. Probieren Sie Ihre eigenen Funktionen aus. Spielen Sie herum mit all den Zahlen, mit denen Sie spielen
können und einfach nur experimentieren. Aber in der Regel bekommt man zumindest eine, eine grobe Schätzung, wie man ein Biom erzeugt. Nun, lassen Sie uns auch, nur um zusammenzufassen, gehen wir durch jeden der Schritte, die wir getan haben. So war die Idee des Logging Surface Builders nur so, dass wir tatsächlich herauskommen können und wo die, wo unser Biom tatsächlich erzeugt wird. Dies ist die Idee dieser Klasse einfach so, dass wir eine Art zu wissen haben. Okay, da ist das Biom, fliegen
wir einfach da rüber. Es ist viel einfacher für beide Debugging-Zwecke und, wissen Sie, wahrscheinlich, wissen
Sie, in Zukunft, wenn ich diesen Mod tatsächlich veröffentlichen würde, würde
ich dies wahrscheinlich zum Debuggen oder vielleicht sogar. Ich möchte das eigentlich veröffentlichen, vielleicht sogar den Login hier deaktivieren, einfach weil ich vielleicht nicht möchte, dass Leute in die Konsole schauen und dann sagen: Oh, da ist das Biom. Aber natürlich macht es keinen großen Unterschied. Nicht, nicht wirklich. Nun, Wir hatten dann eine konfigurierte Oberflächen-Builder. Dies ist das im Grunde ein Schlüssel dafür für die Öloberfläche. Also haben wir einen konfigurierten Oberflächengenerator und dann haben wir unseren Oberflächengenerator hier. Also der Unterschied gibt es einfach, dass es eine, einer von ihnen ist mit grundsätzlich Konfiguration ohne Konfiguration. Das ist die Art, was der Name impliziert Rate. Und sie werden dann auf verschiedene Arten verwendet. Wenn wir also zum Beispiel hineingehen, wenn wir richtig sehen können, können wir mit der rechten Maustaste darauf klicken und sagen, hey, Verwendungen finden. Dann können wir sehen, hey, wo wird das benutzt? Zum Beispiel wird es hier im Inneren der Marke das Make Oil Biom verwendet. Und wir können dann sagen, okay, was bedeutet das, was bedeutet das? Und wir sagen, nun, das ist ein konfigurierter Oberflächen-Builder und dieser ist ein Figuren-Oberflächen-Builder. Und genau hier kommt diese Öloberfläche rein und sagt:
Okay, aber das kann ich irgendwie bekommen. Das macht Sinn. Dann fragen wir, wo
71. (Minecraft) Sound und benutzerdefinierte Geräusche: Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir über Klangereignisse sprechen und wie wir unsere eigenen Sounds machen können, richtig? Also das erste, was wir brauchen, um in
die Registrierungsdatei zu gehen , wo wir
alle unsere aufgeschobenen Register haben und ein neues aufgeschobenes Register erstellen. Diesmal für die Art der Sound-Events oder ein Ereignis eher. Und wir werden das Sound-Events nennen. Und das wird gleich einem verzögerten Register Punkt erstellen Registers Punkt-Sound-Events, MC, Smart MOD ID, richtig? Noch einmal, vergessen Sie nicht, tatsächlich hier unten mit der Veranstaltung registriert war. Sonst wird es nicht funktionieren. Und als Nächstes brauchen wir ein neues Paket. Und das wird innerhalb von MC-Scores sein, ein neues Paket, alte Sounds. Jetzt nennen wir es „Sound singular“. Und wir werden eine neue Klasse schaffen, die Ahmad Klangereignisse, Klangereignisse,
dieses Ego genannt wird . Und das haben wir natürlich viele Male gesehen. Wir werden zunächst eine öffentliche statische Void Register-Methode erstellen. Und das wird innerhalb
unserer Register-Motto Ausgaben genannt werden hier spielt keine Rolle, wo es ist. Ja, ich denke hier unten als Feinmodus-Sound-Events DOT-Register. Und dann können wir unser Registrierungsobjekt erstellen. Das wird also ein bisschen anders sein, aber nicht ganz,
nicht so anders wie vielleicht einige der anderen Dinge. Also zuerst, natürlich, öffentliche statische, endgültige, Registry-Objekt vom Typ, Sound-Ereignis. Wir werden das die Testgeräusche nennen. Oder eigentlich, nennen wir es, nennen
wir es kleine Explosion, denn das habe ich vorbereitet. Und das ist natürlich gleich Registrierung Punkt-Sound-Events, DOT-Register. Und jetzt, was wir einbringen werden, allem, natürlich, die, nennen
wir es wieder kleine Explosion. Und andere Lieferanten Ohr ist ein wenig anders als das, was wir gewohnt sind. Dies wird ein neues Klangereignis sein und dies muss net Minecraft util sein, sehr wichtig. Und um dies zu machen, brauchen wir tatsächlich einen neuen Ressourcenstandort. Das ist also ein bisschen anders als das, was wir gewohnt sind. Und dieser Ressourcenstandort
beginnt natürlich mit der MOD-ID und endet mit dem Namen, gerade wieder kleine Explosion sein wird. Also der Name hier und der Name hier sollte der gleiche sein. Sie können eine private Zeichenfolge in der Theorie erstellen und das auch tun. Weißt du, es gibt einen Punkt, der gesagt werden muss. Vielleicht können Sie vielleicht auch eine Methode dafür machen. Aber wir werden es einfach so machen. So ist es so gut. Und doch ist das schon so, wie der Sound tatsächlich in ist. Also haben wir es registriert, es ist jetzt im Spiel, aber wir haben keine Datei an diesem Ort. Das ist das nächste, was wir tun müssen. Und dafür müssen wir auf die Ressourcen gehen, Vermögenswerte. Oder schlimmer noch, oder Ihre ID und erstellen Sie ein neues Verzeichnis namens Sounds, diesmal Plural. Sehr wichtig. Und da drin müssen wir die Akte ablegen. Jetzt habe ich den kleinen Explosions-Punkt OGG als Datei geliefert. Das kriegen wir einfach da rein. Es muss eine OGG-Datei
sein, sonst funktioniert es nicht. Und wir brauchen auch, und das ist im Grunde auf der Ebene des MC-Kurses hier, wir brauchen eine neue JSON-Datei und das wird Sounds dot JSON sein. Und ich werde schnell etwas kopieren. Eigentlich brauchen wir kein Exemplar. Es ist eigentlich nicht so kompliziert. Wir starten einfach die JSON-Datei und dann haben wir den Namen unseres Schlüssels. Das wäre also eine kleine Unterstrich-Explosion, dann ein Doppelpunkt und dann geschweifte Klammern. Stattdessen haben wir eine Kategorie. Für unsere Zwecke verwenden wir Blöcke. Ich zeige Ihnen, nachdem wir mit dieser JSON-Datei fertig sind, werde
ich Ihnen zeigen, welche Kategorien sind. Und wir werden einen Untertitel haben. Dies ist mc Poren Punkt Test Sound. Das wäre also etwas, das du in die Sprachsache stecken würdest. Der Untertitel wird angezeigt, wenn Untertitel aktiviert sind und dann in einem Chat angezeigt werden. Und dann klingt, das ist eine Liste. Überwältigend setzen Sie es in eine Sache, und das wird
Mc Zwang sein , oder das ist eigentlich unser Test jemand Weg. Es wäre eigentlich eine kleine Explosion. Und im Inneren von hier haben wir auch eine kleine Explosion. Es ist also wichtig, dass der Name hier und der Name hier natürlich der gleiche ist. Persönlich. Ich meine, das muss nicht dasselbe sein. Persönlich. Ich denke, dass es am sinnvollsten ist, den Schlüssel und den Soundnamen zu haben. Und das alles hat den gleichen Namen. Nur damit Sie hier ein bisschen Konsistenz haben. Ja, und wenn Sie zum Beispiel neue
hinzufügen möchten, fügen wir einfach eine weitere hinzu. Und dann, zum Beispiel, wissen Sie, eine große Explosion und dann Satellit, und dann so weiter und so weiter. Sie können diese einfach kopieren. Und ja, das ist schon alles, was da getan werden muss. Natürlich müssen wir diese Explosion irgendwie haben oder das Geräusch gehört werden. Und was wir einfach tun werden, schaffen
wir einen Kupferblock. Die Idee ist also, dass
wir zum Beispiel einen neuen Block erstellen werden, eine Klasse hier innerhalb unseres Blockpakets. Wir nennen das die, lasst uns Kupfer-Shorts tragen. Und das wird Block erweitern. Das ist also etwas, das nicht der richtige Block ist. Wieder wird es Net Minecraft Block sein. Sie gehen. Und dann lassen Sie uns einfach den Mauszeiger darüber zeigen und den Konstruktor hier erstellen. Und dann in unseren Modellblöcken, anstatt hier einen neuen Block zu machen, werden
wir ein neues Papier machen, oder das ist im Grunde dasselbe, was wir mit dem Mod-Artikel gesehen haben, wo wir den Corporate Apfel gemacht haben. A, Nun, wir haben hier eine Extraklasse. Und wir werden es so machen, dass, wenn der Block zerstört wird, dann ein solider Ort. Dies ist also eine Methode, die wir überschreiben können, die auf Spieler zerstören ist. Und im Inneren werden wir diesen Ton abspielen. Zunächst einmal wollen wir überprüfen, ob diese Welt, die da reinkommt, abgelegen ist oder nicht. Das überprüft im Grunde nur, hey, ist es Server? Wo ist es nicht Server? Und wir wollen das spielen,
in diesem Fall, wenn es nicht serverseitig ist, weil wir wollen, dass nur der Spieler, der den Block gebrochen hat, den Ton tatsächlich hört. Andernfalls jeder, es könnte sein, dass jeder Spieler im Inneren des Servers gehört, hört den Ton in einer bestimmten Entfernung oder Radius. Natürlich ist das etwas, das funktionieren könnte. Aber das ist nicht das, was wir tun, und ich werde dir das nur schnell zeigen. Also Welt in dieser Welt, in diesem Fall, und da haben wir eine Spiel-Sound-Methode. Und wir, wie Sie sehen können, ist
der Spieler hier NULL-fähig, wenn null der Spieler und wird einfach an dieser Position spielen. Und dann wird es spielen, wenn die Welt eine Serverwelt ist, wird
sie für jeden und einen bestimmten Radius spielen. Wenn der Spieler tatsächlich da drin ist, und dann wird es für alle außer den Spieler spielen. Ich habe eine großartige Ressource dazu. Die offizielle Dokumentation für den Sound ist eigentlich wirklich gut. Also werde ich das natürlich als Ressource zur Verfügung
haben. Aber dieses Spiel einige, wir werden die Welt hier nicht benutzen. Wir werden tatsächlich einen Minecraft-Punkt und GetInstance verwenden. Und dann holen wir den Spieler. Und wir werden den Sound so abspielen. Also, das wird Sound platziert werden, und das wird der Klang darin sein. Also brauchen wir das gesäte Ereignis, das einfach mod Sound Events sein wird. Kleine Explosion, Punkt. Und dann brauchen wir eine Lautstärke, die eins sein wird, und die Tonhöhe wird auch eins sein. Und er wird sagen,
oh, lassen Sie uns überprüfen, ob das null ist oder nicht. Wir können das tun, das müssen wir nicht unbedingt. So können Sie natürlich für die Oberfläche, es ist nicht unbedingt so wichtig. Ja, lassen Sie es uns vorerst so behalten. Und in der Theorie, wenn alles
richtig funktioniert hat und ich nichts vergessen habe und ich glaube nicht, dass ich es habe. Wir sollten eine kleine Explosion hören, wenn wir das Kupfer oder das Schloss zerstören. Ja. Also bin ich sehr daran interessiert, ob das bereits funktioniert hat oder nicht, aber ich denke, es sollte. Ich glaube, dass alles da drin ist. Also ist es eigentlich nicht so kompliziert. Insgesamt denke ich, dass das Hinzufügen neuer ist,
ich meine, ich würde fast einfacher argumentieren, als neue Elemente oder Blöcke hinzuzufügen. Wie gehen Sie einfach in diese Welt hier. Und mal sehen, was passieren wird. Ich hoffe, es ist nicht zu laut. Sonst, wenn es zu laut für mich ist, werde
ich es einfach ein bisschen für dich abdrehen. Holen wir uns einen Trichter oder einen Block, oder? Die kommen also weg von denen. Die meisten Büffel. Und mal sehen. Also lasst uns es einfach brechen und mal sehen, was passiert. Nun, ich habe es sicherlich gehört und es ist definitiv nicht zu laut. Eigentlich ist es ein gutes Volumen. Richtig? Und das ist so, das ist im Grunde alles, was es gibt. Ich habe nicht einmal geantwortet. Mir geht's gut. Und da gehst du. Also ja, das ist alles, was da ist. So ist das, wie einfach es sein kann, neue Sounds
zu Minecraft hinzuzufügen und auch sie im Grunde zu spielen, wenn etwas, bestimmte Gewohnheiten. Also ja, das war es im Grunde. Ich hoffe, das war informativ für Sie. Wenn es irgendwelche Fragen, natürlich, zögern Sie nicht zu fragen. Ich würde natürlich immer eine Bewertung oder eine Bewertung zu schätzen wissen. Und, äh, ja.
72. (Minecraft) Erstellung benutzerdefinierten Verzauberungen: Alles klar, willkommen zurück im Minecraft. Schlimmer. Und in diesem Vortrag werden wir uns darum kümmern, unseren eigenen Zauber zu kreieren. Also war das eigentlich ein,
etwas, das ein Student gefragt hat und ich fand es als ein interessantes Thema. Und das ist der Grund, warum wir jetzt diesen Vortrag halten. Das wird also in diesem Fall ein ganz spezifischer Verzauberung sein. Also werden wir eigentlich auch eine neue, sagen
wir, Artikelgruppe dafür erstellen. Aber die allgemeine Art und Weise, wie wir
diese Messung machen , ist tatsächlich, wie Sie jede IN geschärft machen würden. So kann es, Sie sollten in der Lage sein, es einfach zu abstrahieren oder lassen Sie uns sagen, um normale Umgebungen zu verallgemeinern, wenn Sie möchten. Das erste, was wir hier erstellen werden, ist ein neues Paket wie so oft. Und wir werden diese Incheon-Minze nennen, um sicherzustellen, dass wir sie richtig lesen. Das ist nicht das einfachste Wort, oder? Und dann wollen wir zwei neue Klassen haben. Einer von ihnen ist der Verzauberung selbst. Das wird der stumpfen Verzauberung gleich sein. Und die Idee davon ist einfach, dass, Nun, wir haben eine, wir werden bald einen Club haben, oder? So wie eine stumpfe Waffe. Und anstatt Schärfe darauf zu
haben, wollen wir Stumpfe darauf. Das ist, das ist im Grunde das alte alles, was Sie als die Realisierung davon wissen müssen. Und dann wollen wir eine andere Klasse, die Mott-Verzauberungen sein wird. Und das ist natürlich auch im Verzauberungspaket, richtig? Also zuerst muss
der stumpfe Verzauberung erweitert werden. Und wir müssen das mit Verzauberung erweitern. Es gibt natürlich Sinn, da dies ein Zauber ist. Und was wir tun werden, ist, dass wir den Konstruktor lesen, lesen. Und dann werden wir mit der mittleren Maustaste auf Verzauberung klicken. Dann kommen wir zur Verzauberung, und das ist die grundlegende Charlton Klasse. Und ich habe Ihnen diesen Trick vor gezeigt, aber noch einmal, wenn Sie Control H halten, können
wir alle Champions sehen, die im Spiel vorhanden sind, einschließlich unserer eigenen, aber das sind alle diejenigen, die von minecraft hinzugefügt werden. Und wir suchen die es ist die beschädigte Verzauberung. Denn was wir tun werden ist, dass wir wirklich hinterhältig sein werden. Wir werden nur alles in dieser Schadensverzauberung kopieren. Und wir werden es hier einfügen, weil wir sicherstellen müssen, dass wir es nicht tun und wir keine zwei Konstruktoren hier haben. Und wir nehmen die Mitglieder und legen sie auf. Und dieser Typ muss dem Konstruktor hinzugefügt werden. Und es gibt noch eine Sache, die wir tun müssen. Wir müssen tatsächlich um die Umfänge im Konstruktor ein wenig schlurfen. So sollte der beschädigte Typ nach dem Verzauberungstyp sein. Und dann sollten die Schlitze eigentlich statt eines reinen, einer reinen sein. Wir sagen Array. Wir machen eigentlich drei Punkte, so dass
alles, was nach dem Schadens-Typ gegeben wird, als Schlitz zählen würde. Dann ist das Tolle, dass wir auch nur einen Slot in dieser Art der Idee geben können. Und jetzt der Rest davon. Natürlich kann geändert werden. Zum Beispiel, mx-Level, wissen Sie, das ist im Grunde wie Schärfe. Sie haben Chartreuse 12345. Wir könnten zehn oder elf machen. Und diese Instabilitäten, wie Sie sehen können, gibt es diese gut, ziemlich kleinen Funktionen. Mathematisch, Mathematisch. Was würden Sie sagen, Berechnungen, das ist das Wort, richtig? So Berechnungen, können Sie auch sagen, berechnen Schaden durch Kreatur. Es gibt also ein paar Dinge, die Sie tun können. Und wir haben auch dies gelten kann, und dies kann für eine Axt Artikel oder etwas anderes gelten. Jetzt werden wir uns das bald genug ansehen. Und wir haben auch irgendwie zusammen spielen. Dies kehrt einfach zurück. So ist es eine Verzauberung gegeben und dann sagt, gut kann Enttäuschung. Und so die Mischung und Troutman und dann kurz hier gegeben zusammen angewendet werden. Das ist im Grunde die Idee dieser Methode. Und dann hier unten können
wir das etwas aufräumen und weitermachen. Entity beschädigt hat einfach eine, wie Sie sehen können, Kälte, wenn ich opus Schaden mit einem Gegenstand, der dies gemeinsam hat. Und dann könnten wir, theoretisch auch hier etwas anderes tun. Es gibt also tatsächlich eine Menge Dinge, die wir mit diesem Instrument tun können. Wir brauchen diese Schadensnamen nicht, weil das nicht wirklich verwendet wird. Und ja, so ist das der Weg, wie wir können, ich würde auch ermutigen, nur manchmal, wenn Sie nicht wissen, wohin Sie gehen, einfach eine Klasse von Minecraft kopieren und dann ändern Sie es um ein wenig, denn solange es funktioniert, das ist in Ordnung. Ja. Das ist also in Ordnung und der Londoner Chatman ist fast komplett fertig. Was wir jetzt brauchen, ist, dass wir das jetzt unseren modernen Schamanen hinzufügen müssen. Aber zuerst müssen wir das neue Element erstellen. Und den neuen Gegenstand, den wir in den
Gegenstand gehen , und dann werden wir ein neues Paket erstellen. Wir werden diese Waffe nennen. Nun, das ist wirklich eine stilistische Wahl. Du musst das nicht wirklich tun, aber ich persönlich denke, dass es Sinn macht, und wir werden das den stumpfen Gegenstand nennen. Nun wird das Mischelement dem Schwert-Gegenstand sehr ähnlich sein. Und wir können uns das einfach ansehen, indem wir Shift, Shift Control f. drücken dann können wir tatsächlich überall suchen. Und dann, wenn wir zum Geltungsbereich gehen und dann zum Beispiel nachSortierartikeln
suchen, Sortierartikeln
suchen, dann kommen wir zu, naja, zuallererst, zu unserem Zeug, aber irgendwann werden wir auch das Schwert-Element finden. Nun, Zum Beispiel hier, so können wir nur mittlere Mausklick und dann sind wir bei sortieren Element. Solange wir also zur Sortierelementklasse kommen, ist alles in Ordnung. Und wie Sie sehen können, erweitert dies den gestaffelten Gegenstand und implementiert die IV strafbare. Jetzt verschwinde ich Ärger natürlich ist nur das. Wenn man es plötzlich schwingt, ist es weg. Das ist ich verschwinde Blase und das abgestufte Element, wir können in unsere Mod-Artikel schauen und zurückdenken, das ist ziemlich lange her, aber wir haben tatsächlich eine Mock Item Tier erstellt. Nun, das war Kupfer. Wir haben ein Rüstungsmaterial und wir hatten auch diesen Modus Gegenstand Stufe. Wir sind, wir hatten verschiedene. Also haben wir Kupfer, richtig, mit Erntewerten und Max verwendet und all das. Und wir können einfach eine neue Art von Artikel erstellen, oder? Also statt einer Art, werden wir es stumpf machen. Und wir werden beide gestuften Artikel erweitern und auch die i vanish Probleme implementieren. Also werden wir die I Stufe I erweitern, Ihren mehrstufigen Gegenstand. Oh, es ist kein Eis. Nur abgestufte Artikel. Nun, da gehst du. Natürlich. Ich verlängere es. Sie gehen Geräte. Ich habe einen Sprung bestraft. Dann bewegen wir den Mauszeiger darüber und wir werden einen Konstruktor erstellen, der super passt. Und das sollte, naja, wir werden das sowieso ändern, denn noch einmal werden wir nur das gesamte Sortierelement plus kopieren. Und dann werden wir eigentlich alles ersetzen. Wir werden nur das ändern, um ein geklumptes Element zu werden. Und wir werden das retten und dann sollten wir eigentlich keine Pfeile bekommen. Es gibt jedoch einige Dinge, die wir uns ansehen müssen. Und so zum Beispiel hier, wissen
Sie, bekommen Zerstörungsgeschwindigkeit. Wenn wir also nicht wollen, dass die Spinnweben für diese Art von Gegenstand schnell sind, könnten wir dies ändern. Und was gibt es sonst noch? Es gibt einige Builder, Angriffsschaden und Tech-Lehrbuchmodifikatoren, die Realität sind oder wir könnten es
einfach so lassen, denn am Ende des Tages ist das völlig in Ordnung. Und ich glaube, dass,
ja , das ist alles, was wir tun müssen. Wir müssen jetzt nur noch einen neuen Artikel in unserer Mod Items Klasse erstellen. Und so werden wir das einfach reinbringen. Gehen wir rauf, sagen wir zwischen dem Schwert und der Spitzhacke, wir werden das Schwert vorerst kopieren. Wir werden das den Kupferclub nennen. Ich habe übrigens eine neue,
was wir sagen, eine neue Textur dafür geschaffen . Und ich muss ehrlich sein, all die Texturen, die ich bisher erstellt
habe, fand ich das wirklich gut. Ich fand das wirklich nett. Ok? Natürlich ist Kupfer Club noch nicht als eine erstellt worden, als eine Klasse. Aber das wird fast wie die anderen Artikelklassen werden nur die Kosten erhöhen. Kupfer Lub Sie könnten es natürlich auch zu einem neuen plumbed Artikel machen, der auch funktionieren würde. Aber ich denke, dass
es in diesem Fall sinnvoll ist, es zu machen, sagen wir explizit. Wir werden das nur anpassen. Und das ist alles, was wir tun müssen. Speichern Sie das. Und da gehen wir. Und plötzlich funktioniert es. Und so ist das zwischen da und da. Und jetzt müssen wir einfach zurück zu dem, wo es vermischt ist, gemieden. Und hier unten hatten wir die erste von allen zusammen bewerben können. Dies ist natürlich eine, wieder einmal, eine Wahl, die Sie treffen müssen. Ok? Was kann passieren? Also in der Theorie, wenn Sie eine Schärfe Zauber haben, können
Sie keine weitere Kurzheit und Chapman darauf setzen. Das ist im Grunde, was das sagt, denn vorher war dies eine beschädigte Verzauberung. Und wir können sagen, nun, ich meine, das wollen
wir nicht wirklich auch da drin haben. Was wir dann tun können, ist, naja, wissen Sie, wir wollen nicht, dass das mit einer beschädigten Verzauberung angewendet wird und wir wollen das nicht. Wenn also noch ein Zauber auf sich gebracht wird, wollen
wir nicht, dass dies mit Klumpen verzaubert wird. Nicht geplante Artikel, es ist stumpf und Chapman. Richtig. Wenn es also ein Schaden in Schokolade oder eine stumpfe Verzauberung ist, dann können wir das nicht zusammen mit einer anderen Blondine und Shannon anwenden. Das ist im Grunde die Idee hier. Und hier auf der Hand gelten, werden
wir in den Fehler Artikel jetzt setzen,
unsere eigene erstellt, um gestaffelte Artikel. Richtig. Und ich glaube, dass das alles in dem Jahr ist, das wir ändern mussten. Natürlich, noch einmal, wenn Sie mehr Ebenen oder weniger Ebenen haben wollen, jetzt wollen Sie gehen und sagen, zehn oder so etwas zu machen. Und natürlich fühlen Sie sich frei, das zu tun. Aber wir bleiben gerade bei fünf. Und jetzt kommen wir endlich zur Modus Verzauberungen Klasse. Und bevor wir dies tun können, müssen
wir natürlich zu unserer Registrierung gehen und unserem guten alten Freund ein neues aufgeschobenes Register erstellen. Ohne ein anderes Register wäre
es kein gutes Video. Ich fühle mich wie, wissen Sie, es ist ein gutes Video, als wir die vier Register erstellt haben, diesmal der engen Schleifen der Art Verzauberung, natürlich, in Gesang Mint, da gehst du. Wir ziehen diesen Zauber mit einem S am Ende. Und dann machen wir einen anderen Register Punkt V8. Oder es registriert, dass verzaubert. Mc, Zwang Mod, Mod ID. Gute alte Favoriten. Und wir werden das einfach unten in Chopins
DOT-Register mit sogar plus der Rate hinzufügen . Und jetzt können wir unser Registrierungsobjekt erstellen. Also werden wir eine öffentliche statische, endgültige Registrierungsobjekte vom Typ Verzauberung und Minuten haben. Und das wird als klumped nece bezeichnet werden. Es wird gleich den Registrierungspunkten in Chopin dieses Registers sein. Und wir geben ihm den Namen Bluntness. Natürlich. Du bist heute ziemlich gemischt. In neuer Bluntness Verzauberung. Ist das nicht großartig? Und dann müssen wir ein paar Dinge spezifizieren. Eines der Dinge ist die Seltenheit. Lass es uns einfach gemeinsam machen. So oft würde es auftauchen. In der Seite des Tisches. Wir werden moderne Schärfpunkte haben, sorry, das ist o, das gibt es noch nicht. Okay, wir werden es jetzt einfach ignorieren. Dann haben wir den beschädigten Typ, und dann haben wir E-Geräte-Slot. Und das wird der Haupt-Hut sein. Nun, wie Sie sehen können, haben wir hier tatsächlich eine davon offen gelassen. Und das wäre der Verzauberungstyp denn wir werden auch einen Sharman erschaffen, der hier tippt. Und es wird eine private statische letzte Verzauberung Typ geben, Mittagessen, NAS Typ. Jetzt ist die Idee des Typs, und wir werden schnell es auch eingegeben, um den Verzauberungstyp zu importieren. Der Zwischentyp reicht nicht aus. Und es steht im Grunde also, schauen wir uns zum Beispiel
an, wohingegen es keine Schadenswaffe gibt, oder? Gibt true zurück, wenn dies übergeben werden kann, Enttäuschung kann nicht unglaublich sein. Wenn der gegebene Gegenstand, kann dieser Verzauberung in Charlotte auf diesem Gegenstand sein? Und die Idee ist, dass, naja, eine Waffe, man kann zu einem Schwert-Gegenstand aufgeladen werden und ein Bagger kann der Werkzeuggegenstand sein und so weiter und so weiter. Jetzt. Und das ist im Grunde, was wir mit seinem Bluntness-Typ machen. Wir sagen nur Verzauberungstyp, Punkt-Punkt-Punkt erstellen. Also schaffen wir ein neues. Nun, der Name hier, ich bin mir nicht 100% sicher, ob wir das MC Corps liefern müssen oder nicht. Waren die, sagen wir die Krankheit hier vor. Oder wenn wir es einfach abkühlen können, Bluntness. Da bin ich mir nicht 100% sicher. Es funktionierte in beide Richtungen, aber ich persönlich denke, dass dies sinnvoller ist, weil sonst in Sharma Typ keine Ahnung davon hat, woher das kommt. Und dann müssen wir ein liefern, das ist ein Prädikat, Ja, ein Element. Lassen Sie uns Artikel und dann Artikel, Instanz von stumpfen Element tun. Also die Idee hier ist, dass die Create-Methode einen Namen annimmt und dann ein Prädikat delegiert
ist, ist im Grunde genau dieser Kanonenschuss Gegenstand hier. Und das haben wir hier gelesen. Und dann können wir in Sean Monaten mehr tun. Lahmheit Typ. Jetzt ist es sehr wichtig, dass Sie
den Namen der Klasse hier schreiben , denn wenn Sie nur
Bluntness Typ tun und Sie
den Pfeil unzulässige Vorwärtsreferenz erhalten . Und das ist nicht das, was wir wollen. Wir möchten sicherstellen, dass Sie den Namen einer Klasse als statischer Aufruf davor haben. Dann fügen wir natürlich auch unsere Lieblings-öffentliche statische, nichtig,
registrieren, registrieren, registrieren, ein Ego registrieren. Und das ist dann alles in unserem MC. Schlimmer mod, mod Verzauberungen nicht registrieren. Richtig? Und das heißt, ich weiß, es klingt verrückt, aber das ist alles. Ich finde es ziemlich unkompliziert. Alle Dinge berücksichtigt, oder die Tatsache, dass wir gerade eine neue Verzauberung mit einer neuen Art von Gegenstand
erstellt. Sagen wir mal. Natürlich brauchen wir auch die verschiedenen Dateien. Also werden wir nur noch, wir werden nur den Lang bekommen Eigentlich werde
ich das schnell kopieren, weil das etwas ist, das ist, also für den Namen der Verzauberung, haben
wir Zauber Dot Mod ID, so MC-Kerne und dann der Name, den wir gegeben haben, die Verzauberung hier. Also dieser hier. Und dann wird das nur Lahmheit sein. Und für den Club
, den ich erstellt habe, ist nur Element in SQL, gibt es Kupferclub. Und dafür brauchen wir natürlich auch das Artikelmodell. Wir werden das nur kopieren. Ja, bitte schreiben, sollte nichts Verrücktes sein. Der Artikel ist einmal interessant und jetzt wirst du
meine absolut erstaunliche Schöpfung des Kupferklubs sehen . Und ich muss ehrlich zu dir sein, ich mag das wirklich wirklich. Oh, wir sehen erlauben oder sollten wir es im Spiel betrachten? Wir werden es im Spiel ansehen. Ich mag das wirklich, aber das ist erstens, ich denke, das ist eine meiner besten Kreationen, oder sagen wir, meine besseren Kreationen. Und ich glaube, das ist alles, was wir tun müssen, damit alles im Spiel ist. Lassen Sie mich einfach schnell durch nein gehen, es sollte alles sein. Also lasst uns einfach anfangen und mal sehen, was passiert. Und natürlich noch einmal, was ich erwähnen wollte, ist, dass das Ding mit dem stumpfen Gegenstand nicht unbedingt benötigt wird. Denn natürlich ist das nur ein, sagen
wir ein Paradebeispiel oder kein Paradebeispiel. Eher ein konkretes Beispiel, das ein Student hatte. Du wolltest, dass sie einen bestimmten, stumpfen Gegenstand wollten. Ich will, dass ich einen Ballon habe. Ich will nicht, ich will, dass es mit London rechenschaftspflichtig ist, mit Kurzheit, aber eher Bluntness. Und ich dachte, okay, das klingt eigentlich eine interessante Idee. Und das ist der Grund, warum wir das getan haben. Also lassen Sie uns einfach eine neue Welt mit kreativem Modus erstellen. Und dann sehen Sie, was wir sehen können. Alles klar, lassen Sie uns das schnell einrichten. Also zuerst, der Club schaut sich das an. Ist das nicht wunderschön? Ist dieser Club nicht nur das Schönste, was du je gesehen hast? Obwohl vielleicht nicht, aber es ist immer noch, ich mag es. Ich mag es aber. Holen wir uns ein Enjambment, ein MOOC. Holen wir uns Flaschen bezaubernd. Und jetzt können Sie die verzauberten Bücher hier sehen. Und wenn wir nach unten gehen, können wir tatsächlich Bluntness
12345 sehen , weil sie automatisch hinzugefügt werden. Und wenn wir jetzt das Niveau erhöht hätten, wird
dies auch die Anzahl der Bücher erhöhen, die wir haben. Nehmen wir einfach Bluntness S1 und S2. Und nehmen wir auch die OSU. Nolan. Ich wollte Schärfe, oder? Das ist nur NO2 Shortlist, drei Bücher. Und lasst uns auch ein Schwert holen. Es geht zur normalen Sortierung. Und brauchen wir noch etwas? Vielleicht ein Bücherregal, Omar Pantomime. Du brauchst auch ein Tier. Eine Menge Dinge, die wir brauchen werden. Da gehst du. Lass uns das einfach schnell einrichten. Zeig dir einfach, dass es tatsächlich funktioniert. Und dann können wir zum Überlebensmodus wechseln war ein paar Ebenen. Also zuerst, wenn wir das reinlegen. So können Sie ein Bremsen bekommen, wie Sie sehen können. Denn das ist, funktioniert das beim Brechen und Brechen. Kraft wäre irgendwie schön, wenn wir auch ein Gitter haben. Wenn Sie sich im kreativen Modus befinden, dann gibt es etwas Funkiness. Das könnte sein, vielleicht nicht gut sein, weil E und brechen ungeschrieben und geschrieben. Und mal sehen. Wenn wir also hier reingehen, damit wir dies mit Bluntness verzaubern können, wie Sie unter dem Schwert sehen können, wir nicht n-Kanal-Stumpfheit. Wir können dies mit Schärfe tun. Das funktioniert. Und Schärfe auf diesem funktioniert nicht. Das ist also ein guter Test
dafür, dass dies, dass das funktioniert. Und wenn wir uns ein paar Bücher geben , können
wir das
vielleicht tun. Und dann mal sehen, Ebenheit, das war Bluntness. Das ist irgendwie nett. Jetzt ist die große Frage: Können wir das andere bekommen? Jetzt haben wir endlich etwas Bluntness hier. Da gehen wir. Lahmheit eins, richtig? Und das ist schon alles, was wir tun müssen, um das in
Schokolade hinein zu bekommen und es tatsächlich spezifisch für etwas zu sein, so
etwas, weil es wie unser eigener Artikel ist. Und wenn wir uns das ansehen, richtig, ein normales Bild 3 angegriffen hat, hat
das jetzt Schaden angegriffen oder weil es Blindheit hat. Richtig? Ist das nicht großartig? Ja. Und das war es, um eine, eine Verzauberung hinzuzufügen. Und auch, sagen wir, gleichzeitig sind EINE Artikelklasse, unsere eigene einzigartige Marke von Artikel, sagen wir. Und ja, das war es im Grunde. Wenn es irgendwelche Fragen gibt,
natürlich, fühlen Sie sich frei zu fragen. Und ja.
73. (Minecraft) Datengeneratoren für Artikel und Blocks: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir einen Blick darauf werfen, Datengeneratoren. Nun sind Datengeneratoren im Grunde eine einfache Möglichkeit,
die Gesamtheit unserer angrenzenden Dateien zu generieren , die wir die ganze Zeit manuell erstellt haben. Und das ist im Grunde eine automatische Möglichkeit, diese zu generieren. Und es macht das Leben über, Ich würde sagen, ungefähr 120% einfacher. Vor allem, wenn Sie viele Blöcke haben, viele Gegenstände. Es macht es unglaublich einfach, alles zu generieren. Und das erste, was wir hier tun werden, ist, dass wir den Kurs-Tab in zwei Kerne
umbenennen, Tabu, kleines T das werden
wir retten. Und dann, nur um sicherzustellen, dass anstelle unseres Sprachordners, werden
wir auch das ändern. Also statt Assets, MC-Kerne, Lang, und dann innerhalb von EN unterstreichen uns funktioniert. Wir werden das in Kurs ändern, tippen Sie mit einem kleinen t denn sonst werden wir einen Fehler in den kommenden Vorträgen bekommen. Und das ist natürlich nicht das, was wir wollen. Was wir aber wollen, ist, gut im Grunde alles herauszufinden. Eigentlich müssten wir das nicht einmal ändern. Denn was wir jetzt tun werden, ist, dass wir nur führen werden, wir werden einfach alles löschen. Bloch sagt also, Lang, Modelle. Alle drei davon. Löschen, ja, weg von mir. Mc natürlich Beute Tabellen, Rezepte, alles komplett. Raus hier. Ich will dich nicht eine Stunde oder ich will dich mehr sehen. Also haben wir jetzt keine Texturen, wir nicht, wir haben nichts, wenn es um unsere Blöcke geht. Und wir müssen herausfinden, wie wir das im Grunde wiederherstellen können. Nun, übrigens, es gibt ein paar Dinge, bei denen dies natürlich zuerst nicht einfach löscht. Das ist am meisten faltet. Löschen Sie es nicht einfach. Stellt sicher, dass Sie das unterstützen, weil Sie die Jasons gemacht haben. Das ist also irgendwie wichtig. Auch wenn Sie es haben, vor allem innerhalb unserer benutzerdefinierten Blockdaten. Also die unsere Titeleinheit, die wir die Elektrifizierung gemacht haben, oder stellen Sie sicher, dass Sie nicht diesen Jason Weg werfen, weil das im Grunde so von der Werkbank generiert wird. Also, das wird nicht leicht reproduziert werden, sagen
wir, wie einige andere sein könnten, oder? Aber jetzt fangen wir mit dem Datengenerator-Zeug an. Dies ist natürlich das Löschen hier ist natürlich nur für, sagen
wir, irgendwo zwischen komödiantischen Zwecken und Schockwert. Und wir werden ein neues Paket in unserem MC-Kurs erstellen, MB-Paket namens Data. Und darin geht alles, was wir machen werden, jetzt. Also das erste, was wird die Daten degenerieren Jenna-Rate in Richtung der Ego-Klasse. Ich werde das natürlich hinzufügen. Und dann werden wir einfach haben dies ein, fügen Sie einen Mod-Punkt, sogar einen Abonnenten. Das ist natürlich
wieder etwas, das wir schon gesehen haben. Dies ist mc Kurs MOD ID, und dann wird der Bus mod sein, mod Dot Event Bus Teilnehmer, Bus Punkt. Wir brauchen dann auch einen privaten Datengenerator mit nichts darin, den Konstruktor. Und dann wollen wir im Grunde entführen. Nun, das ist, das ist richtig. Ich bin mir ziemlich sicher. Nun, wie wär's mit dem hier? Wenn es der richtige Name ist, dann wird es funktionieren. Und dann werden wir eine öffentliche statische Leere sammeln Daten. Das ist also das Ereignis, das wir entführen werden. Dies ist das gesammelte Datenereignis oder Ereignis in diesem Fall. Und das hier ist natürlich ein abonnieren. Das ist alles, was wir mit den Mod-Events gesehen haben. Wir werden das eigentlich brauchen. Also danke, dass wir da drin, im Inneren von hier, einen Datengenerator wollen. Dies wird der Generator gleich Ereignispunktgenerator sein. Das bringt uns einfach den Datengenerator. Statt dieser gesammelten Datenereignis zusammen Datenereignis. Mal sehen, ob es keine Erklärung hat, wo es ist. Die Idee ist nur, dass, na ja, es sammelt Daten. Ich meine, es ist kaum schwer herauszufinden, aber das Ego, und das ist der vorhandene Dateihelfer. Sie können auch bekommen, dass dies nur etwas ist, das wir brauchen weil wir im Grunde überprüfen möchten, ob einige Dateien bereits vorhanden sind oder nicht. Das ist irgendwie der Kern davon. Aber stellen wir sicher, dass das im Grunde das ist, was wir haben, oder? Also beginnen wir mit,
wenn Sie denken, dass das erste, was wir machen werden, der ein Blockstatus-Anbieter ist. Und das ist im Grunde, macht es so, dass wir Brock Staaten haben. Machen wir also eine neue Klasse namens Mod Block State Provider. Natürlich können die Namen hier r auf eigene Faust gewählt werden. Ein klares, dass für sie eine Nomenklatur ist, macht jedoch viel Spaß. Dadurch wird der Blockstatus-Provider erweitert. Stellen Sie sicher, dass es der richtige ist und der richtige ist im Client. Also meine Netzmikroformen, wir wollen diese, Client-Modellgeneratoren ist sehr wichtig, dass Sie den richtigen wählen. Sonst werden wir auf eine Menge Probleme stoßen. Und wie Sie sehen können, möchte es, dass wir eine bestimmte Methode implementieren, die die Register-Sets und Modals-Methode ist. Wir machen das und dann haben wir immer noch einen Fehler. Und das liegt natürlich daran, dass wir keinen Konstruktor haben. Nun, was wir hier im Konstruktor tun können, ist, dass wir diese Mod-ID einfach
loswerden können, da wir wissen, was unser Motto ist. Und wir können darauf zugreifen, indem wir zu MC Kurs Dartmouth gehen. Leicht genug. Jetzt statt hier können
wir jetzt unsere Blöcke registrieren. Jetzt. Die Sache ist, dass diese Blöcke, ein Anbieter natürlich, ein paar nette Dinge haben. Also, wenn ich
zum Beispiel in Block setze , wie Sie sehen können, schauen Sie sich an, wie viele Dinge es gibt, die wir tatsächlich einfach sehr einfach hier registrieren können. Wir haben Zugangsblock, Richtungsblöcke, wir haben Türblöcke, Zäune. Wir haben Vier-Wege-Blogs, horizontal, horizontal, Phasensperre, Schmerz, Platten. Es gibt Falltüren, Wände. All diese sehr einfach mit diesen Methodenaufrufen zu registrieren. Wir werden hier natürlich den Symbolblock verwenden. Und was wir tun werden, ist, dass wir mehr Blöcke Punkt sagen. Lassen Sie uns den Kupferblock Punkt bekommen. Und dann werden wir das einfach kopieren. Und dann nehmen wir auch den Kupferdraht. Also lasst uns das einfach nehmen. Sie gehen, na ja, und das war's schon. Oder im Grunde, wie man die Blockmodelle macht. Ich meine, wir müssen es nur hier und dann hinzufügen, und dann sind wir im Grunde fertig. Und das ist wirklich einfach hinzuzufügen. Also müssen wir einfach sagen, es Generator Punkt bei Provider. Jetzt haben wir gerade einen Anbieter erstellt, also sagen wir nur neue Mod, Block State Provider. Und dann der Provider. Der Anbieter benötigt einen Generator und einen vorhandenen Datei-essbaren Helfer. Das war's. Das ist alles, was wir tun müssen. Und dann wird es für uns die Mod Bloch Zustände generieren. Ja, das ist im Grunde der ganze, ganze Deal. Und wir werden vor allem
mit dem und was Item-Modell fortfahren , denn das ist auch etwas, das sehr interessant ist. Denn natürlich, mit den Artikelmodellen, was wir brauchen, ist das, wir brauchen dies sowohl für normale Artikel als auch dann für Block-Artikel, richtig? Und das ist so einfach. Wir werden nur sagen, Hey, welcher Artikel Modellanbieter. Und wir werden sagen, nehmen Sie diesen Artikel Modellanbieter noch einmal von Net Microforms Client modale Generatoren, sehr wichtig. Ich möchte das wirklich betonen, denn sonst, wenn Sie das falsche nehmen und ja, das ist einfach nicht gut. Natürlich ist mir das nie passiert. Natürlich nicht. Vielleicht vielleicht vielleicht am Anfang. Lassen Sie uns manchmal passieren, deshalb möchte
ich das hier noch einmal betonen, das gleiche, gleiche Deal. Nehmen Sie einfach MC Kurs dot-dot-dot ID für die MOD ID. Und dann ist jeder, jeder wirklich glücklich darüber. Jetzt die Register-Modelle. Wir wollen ein paar Dinge hier drin. Also zuerst wollen wir die Breite vorhandenen Elternteil nennen. Und wir wollen dies verwenden, weil dies im Grunde unser Blockmodell erzeugt. Tut mir leid, nicht gut, ja. Verwenden Sie das Blockmodell. Es macht das Element für den Block. Das ist also das Blockelement. Im Grunde. Das wird der Kupferblock sein. Und dann werden wir die Modussperre hier benutzen, die nur Block Slash Kupferblock sein wird. Und dann werden wir das kopieren. Dann oder auch, weil dies das ist, was wir innerhalb unseres Blocks erstellt haben, blockiert
Staatsmann seinen Provider. Und dann, was Sie wollen, sind im Grunde ein paar verschiedene Möglichkeiten, wie wir es tun können. Und ich werde hier nur eine neue Methode machen. Dies ist nicht unbedingt notwendig, aber es ist in Ordnung. Also werden wir ein Element ModelBuilder Builder Builder zurückgeben. Und dann benötigt dies ein Monodateielement generiert und dann eine Zeichenfolge mit dem Namen. Und wir werden Builder mit dem Pfadnamen zurückkehren. Und dann wird das Elternteil Element generiert. Und dann wird die Textur Ebene 0 sein. Und dann befindet sich die Textur im Element Schrägstrich. Und dann der Name. Ego. Lassen Sie uns etwas verkleinern. Und das ist nur ein bisschen einfacher, das im Grunde auszufüllen. Es gibt mehrere verschiedene Möglichkeiten, dies zu tun. So zum Beispiel, jetzt hier werden wir die Modelldatei zu machen, das Element generiert. Eins. Dies ist nur, wenn Sie oben in der JSON-Datei haben, wo wir sagen, Element Schlamm erzeugt. Das ist im Grunde fast alle unsere Artikel waren das. Und ja, das ist einfach das, was wir hier tun. Und dann, was wir sagen werden, ist ein Builder und ein Element generiert. Und dann wäre der Name hier zum Beispiel Kupferbarren. Also werden wir unsere Kupferbarren erschaffen. Es mod Artikel Modelle, nicht wahr? Und das ist dann natürlich, muss
auch in unsere Datengenerator-Klasse hier hinzugefügt werden. Und das kommt einfach hier runter. Also lassen Sie uns das einfach kopieren und Mod-Elemente sagen. Welcher Artikelmodellanbieter. Und natürlich nimmt auch einen Generator, nimmt vorhandenen Dateihelfer. Und insgesamt sind das die ersten beiden Dinge, die ich sowieso zeigen wollte. Also, wie wäre es, was wir tun werden, ist, dass wir das einfach ausführen und sehen, was passiert. Jetzt sind wir im Spiel und sehen uns das an. Was ist das? Was nichts hat, nicht einmal unser Kernschritt. Nichts hat eine Textur. Nun, das ist nicht genau das, was wir wollten. Denn was wir tun müssen, ist, dass wir den Client nicht einfach hier leiten können. Nun, wir wollen eigentlich, dass wir etwas anderes betreiben wollen. Und das sind die Laufdaten. Also müssen wir hier nur zu Gradle auf der rechten Seite gehen, Mikrowellenaufgaben, wenn sie läuft und dann diese Daten ausführen und dann doppelklicken. Und dann haben wir das jetzt erscheinen. Und sobald das durchlaufen ist, werden
wir etwas sehr Interessantes sehen. Wir werden sehen, dass ein neues Verzeichnis innerhalb unseres Quellverzeichnisses gebildet wird. Wie Sie sehen können, ist
diese Ära normalerweise normal. Jetzt ist dieser Fehler eigentlich nicht normal. So können wir tatsächlich sehen, was hier vor sich geht. Da ist also etwas. So der Textur-MC-Kurs blockiert, Kupferblock existiert in keinem bekannten Forschungspaket. Jetzt können wir das überprüfen, überprüfen
und zu Ressourcen, Assets, Geschichte gehen , das sind Texturen. Nein, das ist definitiv da drin. Es ist auch in ihrem Hopper-Block, Punkt PNG. Also, das ist definitiv da drin. Also muss es etwas anderes geben, das ein bisschen falsch ist. Lassen Sie mich überprüfen, was los ist. Natürlich weiß ich eigentlich, was das Problem hier ist und es ist eigentlich sehr gut. Das ist etwas, das ich beim Testen auch vergessen habe, aber es ist sehr wichtig, dass dies tatsächlich getan wird. Und deshalb ist es sehr gut, dass es hier irgendwie wie in der Mitte ist, vielleicht. Der Fehler hier ist also, dass
wir innerhalb unseres Aufbaus Gradle tatsächlich ein paar Dinge hinzufügen müssen. Und das ist die Nummer Eins. Wenn wir hier runter zu unseren Bögen gehen, müssen
wir dies hinzufügen, damit wir diese Bögen grundsätzlich durch diese ersetzen können. Es stellen Sie im Grunde nur sicher, dass es auch. Also im Grunde, dass, wenn wir die Daten laufen. Also diese Daten laufen, dass wir eine Ausgabe an Quelle erzeugten Ressourcen haben, aber dass es auch eine Quelle Haupt-Ressourcen und die Quelle erzeugten Ressourcen beide zählen im Grunde als Ressourcensatz. Wir müssen auch zwischen dem Ende hinzufügen. Also zwischen dem Ende dieser Minecraft hier geöffnet, hier unten, und dann vor Abhängigkeiten, werden wir zu diesem hinzufügen, diese Dinge natürlich, verfügbar als Ressourcen als auch zum Download und all das Jazz. Und ja, genau. Und dann können wir den Build im Grunde einfach wieder laufen lassen. Klicken Sie also einfach auf den kleinen Elefanten mit einem Reload-Button und das sollte im Grunde sehr schnell funktionieren, um es zu bauen. Ja, da gehst du. Und wenn wir diese Daten jetzt wieder ausführen, können
wir einfach den Run-Button drücken, den Play-Button hier, dann sollte alles gut funktionieren. Jetzt werden wir immer noch ein Zitat unquote Fehler erhalten. Jetzt ist das kein echter Fehler, also ist das eigentlich nicht wirklich arrogant. Ich meine, offensichtlich wurde es erzeugt. Würde das nicht noch mal laufen. Denn das ist sehr seltsam, dass es überhaupt keinen Sinn macht. Warum das so wäre. Natürlich funktioniert es jetzt, denn so machen wir es. Richtig. Okay, das ist großartig. Also, wenn du das kapierst, ist das hier irgendwie ein Pfeil. Also im Grunde, wenn Sie, wenn dies ein Fehler ist und dann ist es wie Remote-Host geschlossen wurde, das ist wahrscheinlich etwas, das besser für Sie ist. Wenn Sie sich das ansehen, solange die Ausführung der Aufgabe abgeschlossen ist, hier festgelegt
ist und Sie alle Anbieter haben, was auch immer genommen haben, wie viele Millisekunden, dann ist alles in Ordnung. Und das ist sehr seltsam. Es liegt wahrscheinlich daran, dass die, die JSON-Datei noch nicht generiert wurde. Irgendeine Seltsamkeit sind sie, wenn du das auch bekommst, mach dir keine Sorgen. Das wird wahrscheinlich kein Problem sein. Aber wie auch immer, so haben wir jetzt eine generierte, wie Sie sehen können, generierte Maine. Und wenn wir hier nach unten gehen, Ressourcen, Assets, MC Kurs Bloch, Zustände und Modals, und Artikel Modelle und Blockmodelle. Und sie sind im Grunde nur für uns generiert. Jetzt. Wir müssen tatsächlich hier wechseln, um Client zu laufen, und dann müssen wir den Client laufen. Also, jetzt wird das Spiel beginnen. Es ist sehr wichtig, dass Sie im Hinterkopf behalten, wo Sie sich befinden. Und wenn Sie etwas in Ihrer Datenstruktur ändern, lassen Sie
die Daten nur einmal ausführen und starten Sie dann. Das ist, als ob ich das nicht genug betonen kann. Führen Sie zuerst Daten aus, und schauen Sie sich die Änderungen an. Andernfalls werden die Änderungen nicht gesehen. Und wenn wir uns das zum Beispiel ansehen, können
Sie sehen, dass das Kupfer gut, der Kupferblock und das Kupfer oder der Block alle Texturen haben. Jetzt sind sie nur, sie haben Textur gesprochen. Nun, das ist nicht das, was sie wollen. Sie gehen, sie beide Architekturen als Block und auch als Element. Das funktioniert also perfekt, ohne dass wir die JSON-Dateien manuell
machen müssen, weil sie alle hier generiert werden, wie Sie sehen können. Das ist also nur ein Kupferblock, oder? Automatisch generiert. Die, schauen wir uns das Unternehmen England zum Beispiel an. Automatisch generiert. Das ist also das Tolle an Daten generiert die im Grunde einfach alles automatisch generieren. Wir werden auch nur schnell die Block-Tags und die modalen Elemente,
Tags, Generatoren für Anbieter hinzufügen . Also werden wir eine neue Klasse innerhalb unseres Datenpakets erstellen, die blockiert wird. Modal-Tags, Rho Vita Jetzt haben wir die Steuer tatsächlich nicht sehr viel benutzt. Das wird Block-Tags Provider erweitern. Das ist eins, das ist ein einziges Mal. Dies ist die eigentlich Netze Minecraft die Daten ein. In diesem Fall wird der Konstruktor. Wir werden den zweiten Konstruktor bekommen, nicht den, der durchgestrichen ist. Wieder einmal, die Modus-ID, können
wir einfach EMC nehmen, wir sind intelligente ID. Und dann wollen wir auch, oder wir wollen die Methode überschreiben oder Steuer registrieren. Also, wenn wir in Register setzen und Tab drücken, dann können wir das einfach tun. Und dann werden wir einfach einen einfachen machen, um Builder zu bekommen oder zu erstellen. Und ich werde ihm ein Etikett geben. Also können wir zu Tags Blöcke gehen, und wir werden ors nehmen. X muss dein Ego importiert werden. Und wir werden noch die Blöcke mit Kupfererz hinzufügen. Und das war's, richtig? Also werden wir nur die Unternehmensarbeit zu den Tags oder hinzufügen, weil es ein oder ist. Und dann werden wir auch eine weitere Element-Tags erstellen. Wir werden nichts reinlegen, aber wir werden es nur für das Halloween schaffen. Also mod Item-Tags Provider auch bei diesem, und dies wird seinen nächsten Weg erweitern. Erweitert die Item-Tags Provider noch einmal, das Netz von Minecraft-Daten. Diesmal werden wir eine Dekonstruktion schaffen. Oder noch einmal, mit je mehr ich hier bin, nur aus dem. Mc, schlimmer noch, AID, Ups. Mc, kluge ID, das Ego. Und es ist auch registrierte Texte überschreiben. Und wir werden dieses in diesem Fall einfach nicht füllen, weil wir es tatsächlich nicht tun, ich glaube nicht, dass wir die mehr Artikel-Tags oder die Tags für die Artikel noch verwendet haben. Wir haben einige Tags für die Blöcke verwendet, glaube ich. Aber nichts zu verrückt, Allerdings ist
es da, wenn Sie brauchten. Das ist also ziemlich gut. Und das wird hier unten nach allem anderen geschehen. Also dieser Generatorpunkt erzeugte Punkt-Punkt-Provider. Das ist das Neue. Lassen Sie uns die Mod-Element-Tags machen. Ein Anbieter. Dies benötigt einen Generator und jetzt, wie Sie sehen können, benötigt
dies auch einen Block-Tag-Provider, was sehr wichtig ist. Also müssen wir eigentlich etwas klobig machen, aber das ist okay. Wir müssen eine neue Variable erstellen. Also Modus Block Steueranbieter, Sie werden nur dieses so etwas wie Block-Tags nennen gleich neuen Block-Tags, Provider-Generator und den vorhandenen Dateihelfer hier. Und dann kann das zweimal gemacht werden. So können wir hier Anzeigenanbieter mit den Blocktanks machen, weil wir natürlich
die Block-Tags benötigen und dann müssen wir auch die Block-Tags anstelle unserer Artikel-Tags bereitstellen. Und dann auch der bestehende Datei-Hafen, und das war's. Das sind die Dinge, die ich hier im Grunde hinzufügen wollte. Was wir also tun können, ist, dass wir die Daten einfach wieder ausführen können. Genau hier. Es wird sehr wichtig betonen wollen, wenn Sie etwas in Ihren Datengeneratoren ändern, fügen
Sie weitere Tags hinzu. Oder wenn Sie ein Elementmodell hinzufügen, handelt es sich dabei immer um ausgeführte Daten. Ich meine, ich weiß, dass die Frage kommen wird, hey, ich habe etwas hinzugefügt, und sie taucht nicht auf. Führen Sie Daten aus. Dies ist, ich werde nur mit Laufdaten auf Fragen wie diese antworten. Und wie Sie sehen können, gehen Sie. Anstatt die Hauptressource zu generieren, haben
wir nun auch einen Datenordner. Und drinnen haben wir die Minecraft-Tags. Jetzt wird es tatsächlich jeden Jason für jedes Tag hinzufügen, nur im Grunde mit den Hauptwerten, die bereits drin sind. Und dann, wenn wir zum Beispiel zu den Rudern gehen, dann werden wir sehen, naja, es wird nicht hier drin sein, das im Inneren von vorhersehbar VSA Sie ist, also ist das die Überschreibung im Grunde, also die Umlaufbahnen. und dann, wie Sie sehen können, MC Zwang, Kupfer oder das ist da drin. Dann geht er, das ist eine Art,
eine interessante und gut, sehr einfache und effiziente Möglichkeit, neue JSON-Dateien für Ihre Elemente zu generieren. Für Ihre, wenn Sie Tags hinzufügen möchten oder wenn Sie die Bloch-Zustände oder Blöcke hinzufügen möchten, ist
es sehr einfach. Es ist, denke ich, unglaublich nützlich und es hat es gerettet. Vor allem, wenn Sie haben, sind wie ein 100 Artikel. Ich meine, irgendwann wirst du wütend auf das Kopieren und Einfügen werden, das wir tun müssen, nur wegen der JSON-Fehler. Und dort ist dies eine einfache Möglichkeit, sie automatisch zu generieren. Also hoffe ich, dass das für Sie nützlich war. Wenn es irgendwelche Fragen gibt, natürlich, immer das Gefühl vor der Aufgabe und ich werde sicher sein, zu antworten. Und ja.
74. (Minecraft) Datengenerator für Loot Tabellen und Sprache: Alles klar, willkommen zurück zum Mikrowellen-Kurs. Und in diesem Vortrag werden wir einen Blick auf einen anderen Datengenerator werfen, eigentlich zwei davon, und wir werden die Lautentabellen und
dann auch die Sprachdatei automatisch generieren lassen . Also lassen Sie uns eigentlich nur
eine neue Klasse anstelle von R-Paket erstellen , das wir bereits letzte Vorlesung erstellt haben. Und das wird der MOD Beute Tisch Provider sein. Noch einmal, der Name ist, nicht, Sie müssen genau der gleiche sein? Aber es macht Sinn, alles zumindest in der gleichen Nachbarschaft zu halten. Das wird also die Beutetabelle Provider aus Net Minecraft-Daten erweitern. Dann werden wir einen Konstruktor erstellen, der das hat. Und jetzt wird es etwas geben, das
hier etwas seltsam ist, weil wir tatsächlich etwas haben werden. Also, wenn wir in den Beute Tisch gehen, mittlere Maus, Taste klicken. Und wie Sie sehen können, hat es diese endgültige Liste, die eine Liste von Paaren von Lieferanten,
von Verbrauchern, von Fahrrad, Verbrauchern von Ressourcenstandort, Beute Tisch Builder, das ist, ich meine, das ist ein Konstrukt das ist absolut lächerlich in meinem Kopf. Ich muss ehrlich zu dir sein, aber okay. Und wenn wir dann hier gehen, wie Sie sehen können, dass es Angeln Beute Tabellen. Es gibt zum Beispiel, Beutetisch,
Lu, Lu-Tabelle, Entität Lu-Tabelle und so weiter und so weiter. Und das ist auch etwas, das wir brauchen werden. Denn was wir haben, ist, dass wir eine haben, Also zuerst, wir werden eine andere Sache hier drin haben, die e mod Block Beute Tabellen sein wird. Also eine neue Klasse statt unseres Datenpakets. Coole MCH Block Beute Tische Und das erweitert die barocken Lautentische. Alles klar, jetzt ist hier nichts drin. Ich werde in Kürze etwas reinbringen. Zunächst einmal werden wir,
ich werde das überschreiben, weil das absolut Wahnsinn ist. Dies ist also die Liste eines Paares eines Lieferanten, eines Verbrauchers
eines Fahrrades,
Verbrauchers von Ressourcenstandortschleifen, Tischbauer. Und dann hier hat es Beute Tisch Perimeter. Es wird Loot-Unterstrich-Tabellen genannt und ist eine veränderbare Liste
genau des Paares des Mob brach lose Tabellen, die wir gerade hier erstellt haben, diese Klasse und ein Laute-Parametersatz. Nun, was diese ganze Sache ist, muss
ich ehrlich zu dir sein. Ich würde mir wirklich keine Sorgen darüber machen. Es ist nur eine verrückte Art sicherzustellen, dass es ein verrücktes Beispiel für okay ist, vielleicht hätte es Southern besser hier gemacht werden können. Aber es funktioniert. Nur wirklich, ich meine, weißt
du, ich könnte es wahrscheinlich am Ende erklären, aber in diesem Moment würde
ich eigentlich sagen, einfach, nimm es
einfach, sag einfach okay, als nur eine Seltsamkeit, die wir nicht haben , um in zu gelangen. Was wir nun wollen, ist, dass wir das nehmen wollen. Also, wenn wir bekommen, sehen
wir das geschützt und dann das ganze Holen Sie sich die Tabellen. Das ist es, was wir überschreiben wollen. Und was wir zurückgeben wollen, ist nur im Grunde diese Dot Lou Tabellen. Nein, das ist nicht, das ist überhaupt nicht das, was wir tun wollen. Wir wollen das komplett machen, und sie gehen. Und dann ist die andere Sache, die wir überschreiben wollen, validieren. Dies ist die Validate-Methode und wir wollen nicht super nennen, wir wollen eigentlich nichts hier aufrufen. So wie alles, was wird, wie, hey, ist das eine gültige Sache? Ja, es ist eine gültige Sache. Ich bin mir nicht 100% sicher, was wir brauchen, um es mit nichts zu überschreiben. Ich glaube, dass es etwas mit irgendeiner Art Mikrowellenseltsamkeit
zu tun hat , wo, wenn es nicht in einem Mikrowellenverzeichnis ist, dann wird es nicht validiert oder etwas in der Nähe davon. Stellen Sie sicher, dass das auch da drin ist. Und das ist im Grunde der Modus Beute Tabelle Provider. Jetzt können wir das hier bereits hinzufügen. Dies wird hinzugefügt. Lassen Sie mich sehen, das wird hier hinzugefügt werden. Das ist also Generator dot-dot-dot Provider, neuer Loot-Tabellenanbieter mit einem Generator? Nein, ein Generator und eine vorhandene Datei bis zu diesem Zeitpunkt, wir brauchen nicht wirklich nicht den vorhandenen Dateihelfer, aber wir brauchen einen anderen, wir brauchen eine Endklammern o. Und jetzt haben wir, wo wir tatsächlich Die LU-Tabellen befinden sich in unserem Motto Block LU-Tabellen, sehr wichtig noch einmal, auch wenn wir auf den LU-Tabellenanbieter zurückblicken, haben wir
jetzt nur noch diesen Mod Block LU-Tabellen. Wenn wir natürlich eine Schleife Tabellen hinzufügen möchten,
zum Beispiel Mobs oder Brust oder was auch immer. Ich rate Ihnen, hier in
die Beute Tabelle Provider-Klasse zu gehen , die wir erweitert haben, und schauen Sie sich dieses Feld, richtig? Also das, dieses verrückte Paar, Verrücktheit der Lieferanten. Und wie Sie sehen können, können Sie in die Brustschleifen-Tabellen gehen. Wir haben die Entität Lu-Tabellen und Sie können sich diese ansehen. Also, wenn Sie mit der mittleren Maustaste darauf klicken, dann wird es die, die eigentliche Klasse zu öffnen. Und wie Sie sehen können, gibt es zum Beispiel hier, ich würde Ihnen raten, sich das anzusehen. Und das ist im Grunde eine Möglichkeit, Lu-Tische für andere Dinge zu machen. Wie, wissen Sie, andere Dinge, nicht nur Blöcke. Wenn du da
hineingehst, wirst du das sehen können. Und dann erweitert es im Grunde nur diese Klasse und fügt dann ein paar Sachen hier hinzu. Und wir werden die Add Tabellen Methode hinzufügen. Wir werden das überschreiben. Und wir werden es auch die get known blocks Methode überschreiben. Jetzt wird dies die Registrierung Punkt Box, Punkt get Einträge, Stream
Punkt Punkt Karte zurückgeben . Ich werde einfach schnell und was das tut. Und dann werden wir Colins Iterator antun. Also dieser ist ein iterierbarer Typ von Block. Jetzt haben wir alle unsere Blöcke innerhalb der Registrierung Brooks verzögert Register. Und das hat im Grunde sozusagen die Liste der Blöcke. Wenn wir jetzt die Einträge bekommen, bekommen
wir eine, wie Sie sehen können, eine Sammlung davon ist im Grunde eine Liste. Dann konvertieren wir dies in einen Strom und dann Bildschirm können wir Karte. Und die Karte gibt im Grunde, wie Sie sehen können, einen Stream
zurück, der aus dem Ergebnis besteht, dass
eine bestimmte Funktion auf das Element des Streams angewendet wird. Also im Grunde für jedes der Elemente hier drin, also sind diese natürlich gerade jetzt. Und Blöcke. Anstelle unseres verzögerten Registers gibt es
hier eine Sammlung von Registry-Objekten. Also haben wir die Registry-Objekte in einem Stream. Und dann, was wir sagen werden, okay, für jeden von denen, den wir tatsächlich Dot bekommen werden. Und wie wir wissen, haben
wir mehrere Male gesehen, wenn wir unsere MOD-Blöcke machen, Punkt bekommt, so unpraktikabel, Brock dot bekommen und wir bekommen den tatsächlichen Block. Und dann werden wir all dies in einen Iterator verwandeln. Und dann funktioniert es. Das ist der Kern davon. Auch hier ist es etwas, wo es nicht
unbedingt wichtig ist , dass man alles versteht, was hier passiert. Nur wissen, dass die get known Blöcke im Grunde alle Blöcke sind, die wir registriert haben. Das ist im Grunde alles, was wir brauchen. Nun, ich werde Ihnen das mit zwei oder so Blöcken zeigen und sie, ich werde das kopieren, weil dieser sehr wichtige, eigentlich, jeder Block, den Sie hier drin haben, einen Block wie einen Beutetisch brauchen. Andernfalls wird das Spiel nicht beginnen. Das ist ein wenig nervig. Ich werde nicht lügen, aber so ist es. Also zuerst, Sie können einfach diesen Register Drop Beute Tabelle tun. Dann fällt der Block selbst ab. Blöcke Punkt Kupferblock zum Beispiel. Und dann natürlich nicht gut, oder? Das bedeutet also einfach, dass der Kupferblock beim Bremsen wir uns selbst fallen lassen. Das ist die ganze Sache hier. Dann haben wir zum Beispiel, wenn wir diesen Register Beute Tisch machen, können
wir diesen nehmen. Dann können wir zum Beispiel
sagen, wenn wir haben, sagen wir, E, Lassen Sie uns tun mod Blöcke, Platte, cooper, Platte Punkt bekommen. Und dann können wir hier eine Funktion haben, die ein Block ist. Und dann werden wir das öffnen. Dies wird dann eine fallende Platte zurückgeben. Nicht Samen fallen lassen, Platte mit genau diesem stützen. Also Ma'at Blöcke, nicht Kupfer Schlag Punkt bekommen. Und wir müssen das natürlich tun, denn das ist eine Platte und kein,
naja, es ist kein, kein normaler Block, oder? Es muss also wie eine Platte funktionieren. Dies ist, wenn wir das tun müssen, es ist sehr wichtig, dass wir dies im Grunde in diesem Register Beute Tabelle eins setzen. Und das ist fast im Grunde die ganze Idee noch. Ich werde jetzt nur den Rest kopieren. Ich hoffe, dass alles hier drin ist, aber ich bin mir ziemlich sicher, dass es so ist. Ok. Also, wenn es ein paar Dinge gibt, die wir tatsächlich nicht in Ihrem Array haben. Und dann die Kuppelplatte, haben wir das nicht wirklich gerne gemacht. Oh, nun, oh, das ist dreiteilig. Da gehst du. Das ist gut, das ist irgendwie peinlich. Na ja, was auch immer. Das ist also, das sollte jeder Block sein. Wir werden sehen, ob es einmal funktioniert oder nicht. Aber ja, das ist die Idee. Sie müssen Tabelle für jeden Block hinzufügen. Zumindest war das eine Sache, die nicht passiert ist. Als ob es für mich nicht funktionierte, wenn ich keinen,
jeden Block, der im Grunde in den Nicht-Blöcken war, hinzugefügt habe. Lassen Sie uns einfach die Daten ausführen und sehen, was passiert, dass wir den
Mott Beute Tabellen-Provider hier bereits hinzugefügt haben. Und das ist natürlich, die Block LU-Tabellen sind natürlich, im Grunde in dieser Liste hier drin. Mal sehen, was hier passiert. Und wir werden tatsächlich einen Fehler bekommen. Höchstwahrscheinlich gibt es einen Block, den ich verpasst habe. Das ist die wahrscheinlichste Sache. Es sind also definitiv die LU-Tabellen sowie Sie sehen können wenn Sie einen Pfeil in diesen Laufdaten haben, Sie können immer in Ordnung sehen, Element-Tags fertig und dann Provider Lu-Tabellen starten. Und dann weißt du, okay, es hat etwas mit Lou Tischen zu tun. Und normalerweise wird das nicht wirklich viele Ideen darüber liefern, was passiert ist. Du musst eigentlich ein bisschen hoch gehen. Es war tatsächlich ein Teil der fehlenden und das ist die Druckplatte. Ich weiß nicht von meinem Testen meines Test-Repositorys, im Grunde mein Pretesting-Projekt. Es gibt wahrscheinlich einen dort vermutlich auch einen Tippfehler. Mal sehen. Es fehlt wahrscheinlich wieder etwas. Und das wird mal sehen. Wir können auch MC, Nein, wir müssen in diese gehen und dann bin ich Partituren. Und dann mal sehen, das wäre mc. Ok. Da gehst du. So fehlt Loops Tisch für die roten Holzdielen. Auch nur ein Name, der falsch war. Planke. Okay, das ist interessant. Also rufe ich die Planke hier an. Das ist in Ordnung. Das ist kein Problem. Zumindest da. Also, das ist wahrscheinlich ein bisschen ein Versehen. Aber wenn wir das jetzt ausführen, denke ich, jetzt sollte es funktionieren. Wenn kein Block mehr fehlt. Und wir sollten auch keine Fehler bekommen. Sieht gut aus. Und dann, oh, Provider nahmen was auch immer Millisekunden. Und dann natürlich, wie wir wissen, wenn wir die quote-unquote Ära bekommen, wurde
die Remote-Host-Verbindung geschlossen. Das ist in Ordnung. Und dann, wenn Sie hier unten in unsere Daten MC-Kerne, Loop-Tabellen schauen, können
wir tatsächlich sehen, dass alles, jede Loop-Tabelle hier richtig hinzugefügt wurde. Nun, das ist ziemlich gut. Und dann gehen wir auch zum Sprachanbieter. Das ist etwas, das sehr interessant ist. Also werden wir nur eine neue Klasse zu unserem Datenpaket hinzufügen, gekühlt den mod Sprachanbieter. Diese Klasse erweitert die Sprache Provider diesmal durch Netz Minecraft kommunistischen Daten, sehr wichtig. Dies wird die EPS-Übersetzungen implementieren, die Methode hier. Und dann brauchten wir natürlich auch einen Konstruktor. Wir brauchen die AID nicht noch einmal. Das ist also sehr ähnlich zu vielen anderen Dingen, die wir benutzt haben. Mc Kurs, Punkt-Punkt-Punkt. Und im Inneren von hier, was wir eigentlich tun werden, ist, dass wir eine Zeichenfolge namens locale machen, this.name ersetzt durch Lang,
Lang Guan Sagas Sprachen. Und dann durch nichts ersetzt. Und dann machen wir ein Gebietsschema wechseln. Und dann hier drin haben wir einen Fall. Also werden wir den Yen US machen, so wie das. Und dann brechen sie hier ein. Und dann ein Standardfall mit im Grunde nichts, weil ich mich entschuldige, ich habe keine Ahnung, warum es umgeschaltet ist, aber sie gehen, das ist, was passiert. Und dann im Inneren von hier verwenden wir einfach das Add. Wir werden nur die Add-Methode verwenden, um Sachen hinzuzufügen, richtig? So wie Sie, ich habe gesehen, können
Sie entweder Sie können auch in Blöcke oder jemand anderes setzen, oder Sie können in Schlüssel setzen. So zum Beispiel, unsere Schlüssel wären so etwas wie. So sind unsere Schlüssel so etwas wie zum Beispiel Artikel MOOC Kurs, Kupferbarren. Und das würde auf den Betrieb übersetzt werden. Ich meine, dass ich das Gefühl habe, macht Sinn. Jetzt müssen wir auch zwei Dinge in unserem Datengenerator tun. Also werden wir das nur hinzufügen und sehen, ob es funktioniert. Aber ich bin mir ziemlich sicher, dass es das wird. Wir müssen hier etwas hinzufügen. Dies ist ein privates statisches letztes String-Array namens lokale Codes. Nun, das sind die Codes von Lokalisierungen, die wir im Grunde sind, nun, lassen Sie uns unterstützen wollen. In unserem Fall werden wir nur EN uns machen. Sie können natürlich auch einmal Ihre eigenen hinzufügen. So zum Beispiel, ich glaube, dass Deutschland so etwas wie d, d, ich glaube, ich bin nicht sicher, tatsächlich. Stellt sicher, dass Sie das nachschlagen, das ist leicht zu finden. Oder wenn Sie es haben, bin ich mir nicht sicher, ob es EN GB für Großbritannien ist. Ich bin mir nicht sicher. Aber ja, das ist im Grunde, wo Sie alle lokalen Codes hinzufügen würden. Dies ist nur im Grunde der gleiche Name, wir auf unserer Website über Assets Lang Ordner hatten, oder? Und dann werden wir auch
eine private statische Void bei Sprachanbietern mit einem Datengenerator hinzufügen , den Generator als Parameter. Und im Inneren von hier werden wir ein For-Loop-String-Gebietsschema verwenden, das über lokale Codes gesetzt wird. Dies stellt also im Grunde sicher, dass wir jeden der lokalen Codes durchlaufen, die wir haben. Und dann werden wir unseren dot-dot-dot Provider,
neuen mod Language
Provider,den Generator und den Lookout generieren neuen mod Language
Provider, . Moment haben
wir natürlich nur die EN uns, aber das ist in Ordnung. Wie gesagt, Sie können Ihre eigenen Sprachen
oder sogar mehr Sprachen hinzufügen , wie in diesem Fall sehr leicht. Und dann lassen Sie uns das einfach ausführen und sehen, ob es das erzeugt, na ja, es wird das nicht erzeugen. Eigentlich. Hör auf, weil wir das hier auch hinzufügen müssen. Natürlich fügen Sie Sprachanbieter mit dem Generator hinzu. Und dann wird es, dann werden wir rennen und sehen, ob es funktioniert. Nun, das ist ein wichtiger Teil davon. Und dann schauen wir auch im
Spiel nach, ob alles, was wir hier hinzugefügt haben, funktionieren wird oder nicht. Alle Anbieter haben also Millisekunden gedauert. Das ist großartig. Das bedeutet, dass zumindest alles wichtig zu funktionieren schien. Wir müssen das bis dahin laufen lassen, bis diese Botschaft kommt. Andernfalls wird hier nichts generiert. Also lass uns mal sehen. Dies wurde innerhalb von Assets generiert, MC Kurs lang, Aber es ist nicht jetzt. Aber lassen Sie uns einfach sehen, ob
das Gebietsschema immer noch stattgefunden hat oder nicht. Also lasst uns gehen, um Client zu laufen und dann lassen Sie es uns ausführen. Okay, mal sehen, lasst uns einfach das Spiel starten. Und vor allem werden
wir sehen, ob das, also hat der Kupferbarren seinen Namen nicht angenommen, aber das ist in Ordnung. Weil ich glaube, ich weiß, warum es auch nicht die linke Sache erzeugt , das war eines der Dinge. Und lass uns eine Spitzhacke hinzufügen und mal sehen, ob ich das abbauen kann, natürlich zum Überleben gehen. Und dann, wenn wir das abgebaut haben, ist natürlich noch Sound, dass wir hinzugefügt haben. Und wie Sie sehen können, bekommen wir tatsächlich die Dinge, die wir wollen. Und wenn wir zum Beispiel zurück zu den Platten gehen, die natürlich Moment keine Platte haben. Da gehst du. Das ist eigentlich wie ein Stapel von, das ist richtig. So wie natürlich, großartig. Sieht fantastisch aus. Aber wie Sie sehen können, fallen zwei davon. Und wir können das natürlich tun und dann einen fallen lassen. Es funktioniert also. Jetzt natürlich ohne irgendwelche, ohne die Modelle, macht
es nicht wirklich so viel Sinn. Jetzt müssen diese natürlich in der Seite unserer Modelle,
oder besser gesagt der Block, Blockzustände hinzugefügt werden. Und dann natürlich, ja, der Block Staatsmann. Und dann natürlich auch in unseren Artikelmodellen. Das ist also, wo das auch hinzugefügt werden würde. Und jetzt zurück zur Sprache. Also wirklich dummer Fehler. Eigentlich muss das ein großes L sein. Also, äh, also ein Kapital L. Und ich glaube, dass das schon alles repariert. Es ist wie wirklich dumm darüber ist das Problem. Manchmal, wenn Sie hartcodierte Strings verwenden, sind sie nicht immer. Dort kann oft zu schlechten Dingen führen. Und wie Sie sehen können, endete Sprache E, N, U, S in zehn Millisekunden. Und dann, wenn das ausgegangen ist, gehen sie. Dann wird hier ein Sprachordner erstellt. Im Inneren haben wir den EN-Unterstrich US Artikel MC Kurs, der es zu Kupferbarren abdeckt. Und dann, nur damit wir klar sind und wir werden diese Arbeit in unserem Spiel sehen. Wir werden das hier sehen, und das ist wirklich einfach, wie das ist auch wirklich einfach hinzuzufügen, richtig? Wir können einfach alles hier hinzufügen. Sie wissen, dass mehrere Sprachen sehr einfach unterstützt werden, machen Sie
einfach einen neuen Fall bei allen Elementen. Und ja, und dann funktioniert es einfach. So ist es wirklich einfach und wirklich schön. Und dann schauen wir mal. Also, wenn wir zu dem Gegenstand hier gehen, schweben
sie es und das war's. Das ist alles, was es dazu gibt. Es ist sehr einfach. Sehr einfach auch. Fügen Sie in diesem Fall die Sprachen hinzu. Und ja, ja, das war es für den Mod-Sprachanbieter und auch für die Blue Tische. Und im nächsten Vortrag werden
wir sozusagen den Datengenerator 4k fertigstellen. Wir werden einen Blick auf die Rezepte werfen und auch die Fortschritte ist, dass sie irgendwie miteinander verbunden sind. Sie sind ein wenig überlappend. Und ja, das war es für diesen Vortrag. Ich hoffe, du hast es nützlich gefunden. Wenn es irgendwelche Fragen,
natürlich, fühlen Sie sich frei zu fragen, und ich werde sicher sein, zu antworten. Und ja.
75. (Minecraft) Datengenerator für Rezepte und Aufbesserungen: Alles klar, willkommen im Minecraft-Kurs. Und in diesem Vortrag werden wir einen Blick auf die Modusrezepte werfen und auch die Fortschritte, um sie innerhalb unserer Datengeneratoren zu generieren. Also zuerst werden wir eine neue Klasse erstellen. Wieder einmal wird dies der Rezeptanbieter sein. Und das wird das eigentlich ein bisschen komplexer dieses Mal erweitern. So wird dies erweitert die Rezept-Anbieter von Net Minecraft-Daten. Und auch wird es den Condition Builder implementieren. Und wir werden bald sehen, was das damit zu tun hat. Importieren Sie zuerst natürlich einfach den Rezeptanbieter. Und dann werden wir die Registerrezepte Methode hier überschreiben. Und wir werden das, sagen wir,
ein geformtes Rezept für unseren Kupferblock erstellen . Das wird also wirklich einfach sein. Und du wirst sagen, das ist erstaunlich, genau. So geformt Rezeptbauer, nicht geformt Rezept. Und dann, was wir wollen, ist das Ergebnis. Das ist also mod Blöcke, dieser Kupferblock, dot get. Und dann machen wir einfach eine neue Linie, ohne das zu schließen. Und dann machen wir Dot. Und dann sagen wir Schlüssel. Oder der Schlüssel ist, was wir sind, was wir Einblick in Rezepte und Schlüssel geben. Also das ist zum Beispiel, sagen wir, wir werden ein großes C machen und das wird der Punkt Kupferbarren sein. Jemand wie eine andere Leggings der Barren tatsächlich gehen sie dot bekommen. Und dann werden wir sagen, dass die Muster-, Licht- und Musterlinie eine Schnur ist und das ist das Muster, das wir machen müssen. Also in
diesem Fall wäre das ein voller und ein Basteltisch, richtig? Wenn wir das tun würden, dann wäre die Mitte leer. Das sollte also mit
der gleichen Idee mit den Rezepten, die wir mit angrenzenden Dateien gemacht haben, sehr leicht verstanden werden. Dann brauchen wir ein App-Kriterium. Und ein Kriterium ist im Grunde eine Möglichkeit zu spezifizieren, wann Sie dieses Rezept in Ihrem Buch freigeschaltet haben, richtig? Also haben Sie dieses Buch und dort haben Sie dieses Kriterium. Wir können diese Namen geben. Zum Beispiel könnten wir sagen, kooperieren wird als Theoriename, richtig? Und dann brauchen wir eine Kriterieninstanz. Deshalb ist der Condition Builder auch irgendwie schön. Hat Artikel ist ein, etwas, das wir tun können. Und hat Artikel buchstäblich ist genau das. Es überprüft, hey, haben wir diesen Gegenstand? Und wenn wir diesen Artikel haben, dann wird dieses Rezept
zu unserem Inventar hinzugefügt oder ja, im Grunde so. Und dann am Ende. Entenabrechnung mit dem Verbraucher, den wir hier oben haben. Und das war's. Das ist im Grunde, wie wir in diesem Fall ein geformtes Rezept für den Kupferblock hinzufügen. Und das wird innerhalb des Buches auftauchen. Also in einer Art Rezeptbuch, sobald wir einen Kupferbarren in unserem Inventar haben. Das war's. Lassen Sie uns nun überprüfen wenn wir in die Datengeneratoren gehen und wir werden dies hinzufügen. Also werden wir dies zwischen den Element-Tags und den Schleifen-Tabellen direkt hier hinzufügen. Generator Dot App-Anbieter, ein neuer Modus Rezept-Anbieter mit dem Generator, den Sie gehen. Und dann lassen Sie uns Daten laufen und sehen, ob es uns hier ein Rezept erzeugt oder ob oder nicht, wieder etwas verpasst wurde. Es ist nicht unwahrscheinlich, aber ich denke, dieses Mal haben Sie vielleicht Glück. Und wir hatten Glück. Vielleicht war es Glück oder vielleicht war es Erfahrung. Wer weiß es? Was auch immer es war, funktionierte. Also mal sehen. Sobald dies weg ist, gehen sie MC Kurs Rezepte und auch Fortschritte. Denn der Fortschritt ist immer Teil des Rezepts im Grunde. Also, wenn du hier reingehst, wie du siehst, ist
das genau dasselbe, was wir schon gesehen haben. Dies ist ein geformtes Rezept mit allem
, was der Kupferbarren ist und das Ergebnis ist der Kupferblock. Und dieser Fortschritt ist Teil der Rezepte. Und deshalb mussten wir auch den Namen der Kursregisterkarte ändern. Wenn Sie den Kurs nicht geändert haben, haben Sie einen Fehler. Sie müssen dies einfach in ein Pferd und eine kleine Lasche ändern. Sie können es auch in ein setzen, ein Unterstrich zwischen diesen beiden Wörtern. Aber was auch immer
es ist, es muss grundsätzlich mit der Namenskonvention
des Brunnens übereinstimmen , wie IDs. Ja. Das ist das Wort, nach dem ich gesucht habe. Sie gehen, richtig. Das ist also eine Sache, die wir hinzufügen können. Und dann gibt es natürlich noch viele andere Dinge, oder? So können wir natürlich auch, wenn wir einfach in Baumeister setzen, wenn wir sie bekommen, desto einfacher, es gibt viele Bauherren, wie Sie sehr deutlich sehen können. Okay, wie wäre es mit wie Rezept, wahrscheinlich einfacher, dieses Formrezept zu bekommen. Okay, lass uns wieder Schaf-Rezeptbauer gehen. Wir können auch gehen,
das ist eigentlich, wo ich gehen wollte, formloser Rezeptbauer. Und dann können wir
zum Beispiel auch ein formloses Rezept machen , aber sehr leicht gemacht. Aber eine Sache, die interessant ist, lassen Sie uns das kopieren und sagen wir, naja, wir können alle Kupferbarren dafür benutzen. Aber wenn ich darf, wissen Sie, Diebstahl wie Kupferdrähte hier drin, das funktioniert auch für ein paar Bücher. Ich weiß nicht warum, aber vielleicht ist das der Fall. Wir können zum Beispiel einfach diesen Schlüssel kopieren. Wir können, ich denke, so viele Schlüssel wie 31, aber mehr als neun macht in diesem Fall keinen Sinn, weil das die Anzahl der möglichen Bastelblöcke ist, die wir tatsächlich haben können. Also fügen wir hier einen Kupferdraht hinzu. Und dann, zum Beispiel, könnten wir ein weiteres Kriterium hinzufügen, hey, Sie müssen Kupferdraht bekommen. Das ist alles sehr, deshalb ist es ein Baumeister, oder? Es ist ein Baumeister. Und das Tolle an dem Baumeister ist, dass es sehr einfach ist, einfach zusammenzufassen, oder? Wir können einfach Sachen hinzufügen und sagen, hey you, das ist ein weiteres Kriterium auf und so weiter und so weiter. Nun, in diesem Fall, was passieren wird, ist, dass das nicht funktionieren wird, weil wir
jetzt einen Kupferblock nebeneinander haben und dann ein weiteres Paar, Dr. Jason, wegen des Namens, immer der Name des Ergebnisses
ist. Deshalb, was wir brauchen, müssen
wir hier tatsächlich einen neuen Ressourcenstandort hinzufügen. So neuer Ressourcenstandort. Dies wird Mc Kurs AID, AID sein. Und dann nennen wir das zum Beispiel Kupferblock, alten, alternativen oder so etwas. Und noch eine Klammer. Da gehen sie. Weißt du, so etwas. Das ist nicht der gleiche Name, denn sonst, wie ich schon sagte, wird es nicht funktionieren. Lassen Sie uns das einfach noch einmal ausführen und dann wird es wieder ein neues Rezept erstellen. Und auch in neuen Fortschritten, obwohl sie beide sind, passieren
sie beide
im selben Moment, wenn Sie einen Kupferbarren in Ihrem Inventar haben, es ist immer noch, glaube ich, wird eine neue hinzufügen Ankündigung, wenn Aussage. Also mal sehen, ob es tatsächlich funktioniert oder nicht. Aber ich bin mir ziemlich sicher, dass es so ist. Das tut es. Und wie Sie sehen können, Kupferunterstrich Block, alt. Eins. Sehr wichtige Sache. Wenn Sie möchten, dass Ihre Rezepte die gleiche haben,
Also, um den gleichen Raum zu besetzen, zum Beispiel, wenn Sie etwas wie gefärbt hinzufügen, etwas gefärbt, richtig? Also, dann wollen Sie, dass jedes der Rezepte in der gleichen Gruppe ist, dann können Sie einfach eine Gruppe setzen und den gleichen Namen hier haben, richtig? Also setzen Gruppe, ich weiß nicht, fff. Ich würde dir raten, deinen Ausweis zu nehmen, ihn vor einen Doppelpunkt zu setzen und dann und dann kannst du machen, was du willst. In diesem Fall lassen wir es einfach so sitzen. Und lasst uns einfach anfangen und sehen, ob die Rezepte, die du bearbeitet hast oder nicht. Aber ich bin mir ziemlich sicher, dass sie das taten. Sie erzeugten völlig in Ordnung und ich glaube, dass dann die Rezepte gut funktionieren werden. Und das ist natürlich der Grund, warum die Fortschritte in
dieser Vorlesung auch danach kommen werden , weil, wie Sie gesehen haben, die Fortschritte sehr eng damit verbunden sind. Und mal sehen, ob das Sache ist. Also im Moment habe ich nicht das schweben, schätze ich. Ich glaube nein, das tue ich nicht. Also nehmen wir einfach die Deckung uns und werfen sie auf den Boden. Und dann kehre ich zurück zum Überleben. Und sobald ich sie bekomme, werden wir neue,
neue Rezepte sehen . Wie Sie sehen können, gehen wir einfach zurück und verschwinden von diesem Kerl. So stehen neue Rezepte zur Verfügung. Und wenn wir das öffnen und in unsere Rechte gehen, ja, es ist nicht wirklich überall, weil wir das natürlich herstellen können. Wir wollen heute auf die funktionierende Handwerkstisch gehen, sie gehen. Und wenn wir uns das ansehen, gehen
sie in den Hafenblock, entweder mit den Kupferdrähten hier oder den Engländern oder nur den Barren. Und wir können das tatsächlich tun. Also können wir das tun, BAM. Und dann gehst du hin. Ja, das ist, wie das ist, wie man die wirklich einfach zu bedienenden Rezepte hier hinzufügt. Das Beste
ist, wieder einmal, ein bisschen damit herumzuspielen, ein Gefühl dafür zu bekommen. Und ja, dann werfen wir einen Blick darauf, wie die Fortschritte, eine Haut, sie sind ein bisschen komplizierter. Vielleicht sogar, wenn sie es sein sollten, aber das ist in Ordnung. Das erste, was wir brauchen, ist, dass wir eine Klasse
namens Mod it Vance Monate Advancement Provider brauchen . Jetzt wird dies in der Schnittstelle implementiert. Ich habe einen Provider gemacht. Dies ist das der richtige Anbieter nehmen sollte, weil ich nicht 100% sicher bin. Es ist tatsächlich die Minecraft zu data.frame-Provider Implementierungsmethoden. Dies ist, wenn wir die act-Methode und die getName-Methode haben, die wir hier implementieren müssen. Und es gibt noch ein paar andere Dinge, die wir auch wollen. So wollen wir zum Beispiel einen Public Mode Advancement Provider Konstruktor mit dem Datengenerator. Und der Generator. Und wir werden nur sagen this.name-Generator
, der eigentlich noch nicht existiert. Also müssen wir den Sumpf privaten Enddatengenerator hinzufügen,
Generator, generieren riss, sorry, das Ego. Und dieser Generator ist gleich Generator. Dann brauchen wir noch, lassen Sie uns das auch hinzufügen. Also lassen Sie uns einfach die niedrigere als auch hinzufügen. So sicher, statischer letzter Logger, Dies wird die Organisation Apache-Protokollierung sein. Suchen Sie nach J logger, Lock Manager dot get logger. Normalerweise haben wir, was wir getan haben, ist, dass wir
gerade Lock-Manager haben, Dot, Logger bekommen und dann etwas ausschalten. Natürlich tun Sie das auch. Beide arbeiten. Das ist wahrscheinlich ein bisschen sauberer. Es ist nicht nur wahrscheinlich ein bisschen sauberer, aber das ist in Ordnung. Und dann, was ist ein privater statischer, letzter schwuler Sohn. Das ist also ein G SON von Google. Und dann gibt es ein G, einige nicht nebeneinander, sondern ein JSON. So wenig verwirrend entspricht einem neuen JSON-Builder. Punkt-Set, hübsche Druckpunkt erstellen. Wir werden das für etwas brauchen. Das werden wir in nur einer Sekunde sehen. Also erste Dinge zuerst, innerhalb des Namens. Wir werden bei var Fortschritten zurückkehren. Stellen Sie sicher, dass das richtig ist, fördern Sie die Ego-Fortschritte und tun Sie es. Und dann wollen wir auch eine private skeptische Hälfte. Jetzt wird dieser Pfad der Pfad für Java neue Datei sein. Das ist richtig. Das ist Pfad, Pfad mit Papageientaucher. Wir haben, und dann haben Sie auch mit uns noch nicht fertig, aber das ist in Ordnung. Also haben wir das fertig. Fortschritt, das ist nur ein Fortschritt Rückkehr Weg in dieser Entschlossenheit. Nein, nicht auflösen. Lösen Sie das Ego, das Daten ist, und dann die Weiterentwicklung, bekommen ID. Nun, das ist alles noch nicht fertig, aber wir gehen nur zum Namespace. Und dann ein Plus-Schrägstrich auf, auf Zement. Fortschritte, sehr wichtig. Plural Plus Fortschritt, Punkt GetID. Was bekommt PAF, Punkt plus Punkt JSON. Sieht verrückt aus. Natürlich für Sie als Ressource verfügbar. Wieder einmal, auch, dies wäre Fortschritt. Sie gehen, nun, das ist eine Klasse, die wir auch machen werden. Ich kann nicht glauben, dass es immer das E nach dem C ist, das fehlt dort. Und so ist es nicht zu gut, aber das ist in Ordnung. Und dann glaube ich, dass wir auch den fertigen Zement brauchen. Ja. Also werden wir das jetzt erschaffen. Das ist also ein fertiges Unglaubliches. Die E Art von wird immer schlucken. Und das wird eigentlich nur sein, wir werden das nur für das Halloween
jetzt kopieren , weil es sehr viel einfacher ist. Und ich werde kurz erklären, was hier los ist. Dies erlaubt uns im Grunde einen Ressourcenstandort
zu haben und wie Sie sehen können, einen Fortschrittsbauer. So können wir damit einen Fortschritt aufbauen. Und wie Sie auch sehen können, haben
wir ein JSON-Objekt. Und das serialisiert sich im Grunde. Dies gibt den Builder zurück, es dann
wiederum so macht, dass wir
es innerhalb unserer Advancement Provider-Klasse verwenden können . Wir haben tatsächlich eine Liste von, es ist nicht zu verrückten Listen. Wenn wir also unseren Datenanbieter betrachten, gibt es einige, einige Dinge hier, aber wenn wir das verwenden, glaube
ich, dass wir die Fortschritte auch sehen können, richtig? Also Advancement Provider, so ist dies der Laufzeitanbieter von Minecraft. Wir könnten natürlich auch einfach das nehmen und es so machen, dass wir davon ausgehen. Anstatt den Data Provider zu implementieren. Beides funktioniert so, als wäre es nicht. Eine Sache ist nicht richtig und eine Sache ist falsch funktioniert in beiden Richtungen. Aber der große Grund, warum wir das im Grunde selbst tun, weil der Advancement Provider einige Dinge hat, die uns nicht offen sind. Wenn wir es verlängern. Lassen Sie das grundlegende Wesentliche davon, wir werden es einfach so lassen. Aber was wir wollen, ist diese Liste hier, also lasst uns das einfach überschreiben. Also lassen Sie uns einfach diese Liste kopieren. Und dann schauen wir mal, was es ist. Es ist also eine unveränderliche Liste einiger Arten von Fortschritten hier. Wir werden nur eine neue Geschichte Fortschritte machen. Grundsätzlich Tab oder nicht eine neue Registerkarte, die wir dort hinzufügen werden. Also werden wir tun, ist, dass wir jetzt auch eine neue Klasse erstellen. Auch hier wird dies die
Mod-Geschichte bei Van Zementen sein . Und das wird sein, das wird auch etwas Verrücktes umsetzen. Dies wird den Verbraucher mit dem Verbraucher mit dem fertigen Fortschritt umsetzen. Nein, das ist überhaupt nicht. Was ich will. Dieses ist, was ich will Fortschritt ein Go beenden und Methoden implementieren. Wir werden die Accept-Methode implementieren. Und das ist alles, was wir brauchen. Und ich werde fragen, dass
ich das auch kopieren werde. Weißt du was, nein, lass uns gehen, lass uns das machen. Das wird also sein, nennen
wir das einfach den Verbraucher, ein bisschen einfacher. Also, was wir wollen, ist im Grunde wollen wir gehen, um Fortschritte Punkt Builder zu beenden. Das ist also der Baumeister, den wir gerade im Inneren von hier erschaffen haben. Und dieser Baumeister, wir können Dot Builder sagen. Und dann können wir Fortschritte machen und dann Fortschritte, Erbauer, Dot Builder. Und dann schaffen wir ein grundlegendes. Also mit der übergeordneten ID, nein, das ist nicht richtig mit der übergeordneten ID. Dies ist der Ressourcenstandort. Im Grunde. Das ist unter was? Unter was? Fortschritt ist falsch. Also im Grunde hat jeder Fortschritt einen Fortschritt, der vorher kommt. Ansonsten ist es der erste Fortschritt in der Gruppe. Und das gibt an, was Advancement vorher liegt. Also, in diesem Fall, sagen wir, zum Beispiel, Geschichte, Eisenwerkzeuge. Wir nehmen das hier nur als Beispiel. Dann haben wir mit Display. Jetzt können die Anzeigeinformationen alle möglichen Dinge sein. Zuallererst wird
es natürlich ein bestimmter Gegenstand sein. Also nehmen wir einfach die Mod-Blöcke, Mod-Blöcke, Punkt, Kupferblock, Dot bekommt. Also nehmen wir den Kupferblock und dann können wir einen Namen und
eine Beschreibung haben . Also werden wir nur eine neue Übersetzungstext-Komponente erstellen. Und stattdessen müssen wir tatsächlich einen Übersetzungsschlüssel angeben. Ich werde nur bei Fortschritt,
Fortschritt, Geschichte, Kupfer, Blockpunkt-Titel, so etwas tun. Und dann können wir das nochmal kopieren. Also noch ruhiger, als das einfach zu kopieren. Oh Mann, so ist das nicht. Und das wird das sein. Und das können wir jetzt innerhalb unseres Sprachdienstleisters direkt hier hinzufügen. Lassen Sie uns das einfach zweimal kopieren. Stellen Sie sicher, dass dies korrekt ist. Es gibt etwas zu sagen, dass man die, er ist hier drin, in wie String-Variablen
einfügt. Aber nennen wir das Deckung. Und dann wird das so etwas wie Chor-Trichterblöcke sein. Sicher. Warum nicht? Und dann werden wir auch tun, es gibt auch noch ein paar Dinge, die hier reinkommen. Dies wird ein Null-Frame-Typ sein. In diesem Fall können wir also eine Frame-Zeit angeben. Wir machen diese Nonne nur zu einer Goldman-Aufgabe. Und dann wahr, das ist ein Toast. Das ist also die Sache, die oben rechts steht. Wenn Sie dies haben, möchten
Sie dies dem Chat ankündigen. Und dann auch Falten, ob dies auch sein wird oder nicht, das ist wie ein weiter unten. Die EO Bearbeitung ist falsch und dann haben wir Breite Kriterium. Das ist wieder einmal das Kriterium, das wir wollen. Wir nennen das den Kupferblock. Und dann wollen wir den Inventarwechsel auslösen. Ich weiß, das ist eine verrückte Menge Zeug. Ich würde nur raten, noch einmal mit ihm
für einige Zeit zu spielen , weil dies nur ein Beispiel ist. Also wollen wir, dass dies geschieht, wenn wir ein paar Blocks in unserem Inventar haben. Und dann, wenn alles hier erledigt ist, können wir mit dem Verbraucher und dann einen neuen Ressourcenstandort aufbauen. Mc natürlich. Mc waren intelligente MOD-ID. Und dann auch innerhalb der Geschichte Schlamm Trichterblock. Jetzt schreiben sie niemanden mehr. Nicht ganz. Neuer Ressourcenstandort erstellt wirklich nur eine Klammer irgendwo, zu viele oder zu wenige. Gefunden. Zwei. Bist du dir da sicher? Nicht bauen. Ich bin mir ziemlich sicher, dass das richtig ist. Ich bin wahrscheinlich der Build für den falschen Baumeister. Noch eine Klammer? Ja, noch eine Klammer und eine weniger hier. Wie ich schon sagte, deshalb wollte ich es überschreiben, weil ja, das ist ein Haufen von Was zur Hölle. Aber ja, das schafft im Grunde jetzt einen neuen Fortschritt innerhalb der Geschichte. Fortschritte. Und mal sehen, was wir sehen können. Wir müssen dies auch zu den Datengeneratoren hinzufügen. Dies wird ganz unten hier hinzugefügt werden. Also sagen wir einfach Generator-Zeug und Provider, und dann neue Mod-Weiterentwicklung, Provider und Generator. Und lassen Sie uns das retten. Und ich glaube, das ist alles, was wir tun müssen. Nein, das ist nicht ganz das, was du tun musst. Wir müssen auch in R gehen. Wir können tatsächlich in die Datenanbieter gehen und nach dem Advancement Provider suchen. Und kopieren Sie im Grunde einfach die gesamte Akt-Methode hier. Und dann fügen Sie es einfach hier ein. Ich glaube, dass dies völlig gute Fortschritte funktionieren sollte. Also, das ist wahrscheinlich nur der, lass mich einfach überprüfen. Ich, das ist nicht Fortschritt, sondern fertig, fortgeschritten, aber in unserem Fall, das Ego. Und dann ist das statt nur, anstatt zu kopieren, werden wir nur serialisieren. Und dann haben
wir hier am Ende auch einen Konsumenten von noch nicht abgeschlossenem Fortschritt, aber von dem gleichen mit diesem. Ich bin Fortschritt, aber der Fortschritt beendet. Und dann hier wollen wir Bild, Entschuldigung, Fortschritte. Also nennen Sie Fertig Fortschritte. Vielleicht macht Modusfortschritte in diesem Fall tatsächlich sinnvoller. Aber lass uns finden, mal sehen. Kann sehen. Ja, ja. Und dann, wenn dies auch getan wurde, wieder einmal, alle Verluste oder zum Download, manchmal ein bisschen einfacher. Und dann gehen wir einfach durch,
lassen Sie uns die Daten laufen. Führen Sie also Daten aus und sehen Sie, ob das funktioniert oder nicht. Ich zögere zu sagen, dass es einfach sofort funktionieren wird weil wir die letzten zwei Male auf Probleme gestoßen sind. Aber ich bin sehr viel ein dort, wo du gehst. Also alle Anbieter dauerten 136 Millisekunden. Das ist irgendwie nett. Und dann werden wir auch sehen, dass neue Fortschritte, es wird innerhalb von hier erzeugt werden, glaube ich. Da gehst du. Dies ist also ein Rezept Fortschritt und dann speichern Fortschritt, Kupferblock Handel, und das ist, wie der Fortschritt in diesem Fall aussieht. Ja, also lassen Sie uns einfach
den Klienten leiten und ich glaube, dass wir diesen Fortschritt sofort bekommen sollten. Nun, lasst uns einfach eine neue, wir werden eine neue Welt gründen, in der wir diesen Fortschritt nicht haben, und dann werden wir in der Lage sein, das zu sehen. Und dann ist der Datengenerator, sagen
wir, Odyssey ist tatsächlich fertig. Schließlich, was wichtig ist, dass ich, vor allem wie die Fortschritte könnte ein wenig kompliziert für den Moment sein. Was ich wirklich sagen kann, ist, dass es nur eine Frage ist, Dinge auszuprobieren und zu sagen, okay, ich will das tun. Es zu versuchen, funktioniert nicht. Okay, lassen Sie mich es anders versuchen. Plötzlich funktioniert es und dann wird es verstanden. Also lasst uns einfach so kommen, ich weiß nicht, lasst uns einfach etwas Eisen holen. Und ich glaube, sobald ich Eisen bekomme, habe ich natürlich einen gewissen Fortschritt nötig. Und dann schauen wir uns die Fortschritte an, sie gehen, also sind das nicht die Eisenwerkzeuge? Und wie Sie sehen können, was diese Abdeckung erwerben Becherblöcke. Und sobald ich meinen Kupferblock bekomme, gehen
sie Fortschritte gemacht, decken und entdecken hier unten,
bringen, erwerben ein paar Blöcke. Wir schauen uns die Fortschritte an. Jetzt ist es gefüllt. Also das ist eigentlich so einfach wie das zu tun. Nun, wie ich am Anfang gesagt habe, kann
es ein wenig entmutigend sein, aber insgesamt ist noch einmal alles als Ressource verfügbar. Und das macht es ein bisschen einfacher. Wenn du mehr willst. Wenn Sie diese gleichgültigen Kategorien hinzufügen möchten, sagen
wir, dann müssen Sie natürlich diese gleichgültigen Elemente hier hinzufügen, also Story und so weiter. Das ist also wichtig zu beachten. Und abgesehen davon glaube
ich, dass jedes Jahr Datengenerator in diesem Fall behandelt wurde. Ja. Also, das ist es im Grunde. Und natürlich, in unserem Fall, das ist der Grund, warum ich sagte, löschen Sie nicht einfach alles, was Sie hier getan haben, dass alle benachbarten Dateien. Denn natürlich haben wir gerade im Grunde
den Kupferblock und das Kupfer oder den Block und das Kopieren hinzugefügt und das war's. Also der Rest, entweder müssen Sie hinzufügen oder Sie können einfach Ihre Ressourcen darin behalten. Denn sonst werden wir ein wenig Schwarz-Violett in deinem Spiel haben. Auch sehr wichtig, dass für Ihre, für Ihren eigenen Block. Also für eine benutzerdefinierte Blöcke, zum Beispiel, für uns, war es das elektrische Feuer. Sehr wichtig, dass Sie das nicht auch innerhalb
Ihres Asset-Ordners löschen , weil das etwas Besonderes ist. Und normalerweise willst du, dass diese Dinger da drin sind. Sie werden nicht überschrieben, also gibt es kein Problem. Wenn Sie einige Dinge in Ihren Assets haben und sie manuell erstellen lassen und etwas automatisch generiert wird. Das ist nicht so ein Thema, das ist kein Thema. Das Spiel klappt einfach. Was ist das, was mehr Sinn macht, jemanden so zu nehmen. Und ja, das war's also für die Datengeneratoren. Ich hoffe, dass es für Sie nützlich war. Vielleicht für besonders am Ende hier ist es ein bisschen komplizierter, aber ich denke, dass wir es ziemlich gut durchgemacht haben. Wenn es irgendwelche Fragen, natürlich, zögern Sie nicht zu fragen, und ich werde sicher sein, zu antworten. Und ja.
76. (Minecraft) Tile und Fähigkeiten: Alles klar, willkommen zurück zum Minecraft-Kurs. Und in diesem Vortrag werden wir einen Blick auf unsere Flieseneinheit werfen. Und wir werden es tatsächlich ein wenig beheben, weil es ein paar Dinge gibt, die
definitiv nicht waren , die nicht richtig und gut funktionierten, eines der Dinge ist vor allem das Energieniveau. Also bin ich nicht 100% sicher, dass ich versucht habe, klug zu sein, wie ein und lass uns einfach diese ganze Zahl und frühe Ebene hinzufügen, und das wird in Ordnung sein. Es funktioniert nicht wirklich. Das Problem ist, dass das Energieniveau im aktuellen Moment nur im Kunden verknüpft ist. Der Server sorta weiß also nichts davon. Es weiß irgendwie davon, aber auch nicht wirklich seltsam, einfach keine gute Idee. Das erste, was wir tun werden, ist, dass wir das Energieniveau I löschen werden wir werden eine Reihe von Fehlern bekommen. Das wird ein paar Mal während dieser Vorlesung passieren, aber das ist in Ordnung. Denn was wir wollen, ist, dass wir tatsächlich eine, eine, andere Fähigkeit verwenden wollen. Dies ist auch eine Art der Fähigkeit Vorlesung, Blick ein wenig mehr in Fähigkeiten. Persönlich muss ich ehrlich sein, ich finde sie ein bisschen verwirrend und viele Möglichkeiten, weil ich nicht weiß, ich hätte wahrscheinlich ein bisschen anders gemacht. Vielleicht verstehe ich etwas nicht, aber ich weiß es nicht. Ich finde sie etwas verwirrend. Was auch immer es ist, lassen Sie uns innerhalb unseres Titel-Entitätsordners erstellen, oder ein Paket oder eine neue Klasse namens benutzerdefinierte Energiespeicher. Jetzt wird der benutzerdefinierte Energiespeicher zwei Dinge tun. Zunächst einmal wird es aus
dem Energiespeicher plus statt Netzmikrofonenergie zu erweitern . Dies ist das im Grunde, wie Redstone Flussstromsystem funktioniert. Und dann wird es auch I nb t serialisierbar von Verbindung nb t implementieren. Also lassen Sie uns einfach sicherstellen, dass wir können,
wir können es im Grunde serialisieren und de-Serialisieren. Also lassen Sie uns implementieren Methoden s. Dies ist die serialisierte. Also statt hier haben wir eine Verbindung NVT kalt Tag, neue Komponente Vt. Und innerhalb dieses Tags werden wir eine ganze Zahl einfügen. Und das wird Energie genannt. Gespeicherte Energie. Es ist eigentlich nicht etwas, das wir tatsächlich ja können, das ist in Ordnung. Und dann wird de-Serialize Energie gesetzt werden, was eigentlich etwas ist, das wir noch nicht getan haben. Und BET Punkt GetInt Energie. Wahnsinnig genug. Ich setze Energie ein. Wir können nur sehen, was hier ist. Alles, was wir auch brauchen, um das Tag hier zurückzugeben. Und dann, anstatt hier, müssen wir tatsächlich eine neue öffentliche Leere schaffen. Energie einstellen, Energie einstellen, ganzzahlige Energie. Diese gespeicherte Energie, Energie. Und dann hat sich die Energie verändert. Dies ist nur etwas, das passiert, das kalt wird, wenn die Energie das Ziel ändert. Das ist also geschützt. Leere auf Energie änderte sich mit nichts darin. Übrigens, gerade jetzt. Weil wir das überschreiben werden. Das, wenn wir nach unten gehen, wenn wir, wenn wir mit diesem fortfahren. Und dann werden wir damit auch einen Konstruktor erstellen, glaube ich. Ja, Kapazität und dann maximale Übertragung. Wir werden den Super anrufen. Und dann werden wir auch sagen, dass dieser max empfangen gleich 0 ist. Und jetzt sind das eigentlich vier. Auch etwas ausgeben. Also, wenn wir etwas von einem Generator ausgeben, so zum Beispiel, Generator natürlich würden Sie nie etwas erhalten. Du würdest immer versetzt. In diesem Fall haben wir tatsächlich ein geschlossenes System, in dem wir dies verwenden werden. Und wenn wir in das Energiesystem schauen, dann können Sie tatsächlich sehen, zum Beispiel, wie Sie wissen, Energie erhalten. Wenn wir nicht empfangen können, dann werden wir nur eine 0 zurückgeben. Wenn wir empfangen können, dann werden wir sagen, hey, wir haben die Kapazität und auch eine maximale Aufnahme. Das ist nur, nur im Grunde ein Weg, okay, was machen wir hier? Dies ist nur im Grunde ein Haufen Mathematik, um sicherzustellen, dass alles gut funktioniert. Jetzt werden wir eigentlich fast alle Methoden überschreiben, die wir haben. Also mal sehen ist, also von hier bis im Grunde hier werde
ich diese Summe kopieren. Also werden wir hier ein paar Methoden haben. So kann zum Beispiel Strom erzeugen und Strom verbrauchen. Generieren Macht macht Sinn ist nur erhöht die Leistung und dann verbrauchen Strom nur verringert die Leistung. Jetzt können wir natürlich nicht unter 01 gehen, was wichtig ist. Und wir können nicht über unsere maximale gespeicherte Energie hinausgehen. Und ich glaube, das ist es im Grunde. Wir haben auch einige Überschreibungen hier. Unser Leben winzige Perlen hier, aber nur ein bisschen. Und dann innerhalb unserer Kacheleinheit erstellen
wir einen neuen privaten, endgültigen benutzerdefinierten Energiespeicher. Energiespeicherung Dies wird die Methode zum Erstellen von Energiespeichern nennen, die wir noch schaffen müssen. Wir wollen auch ein Privates. Final faul optional ist der Hochenergie-Speicher. Das ist die Energie, nennen
wir es Energie-Handler. Sicher. Dies ist eine faule Option des Energiespeichers. Das ist natürlich die Fähigkeit, die wir haben, dass wir es hier unten geben müssen. Also innerhalb der Get Fähigkeit, fügen
wir jetzt eine else if-Anweisung hinzu, die auf Fähigkeit gleich diesem sein wird, die Fähigkeit Energie, Energie für leicht genug. Und wenn das der Fall ist, dann werden wir die Energie-Handler Dot Cast-Netze zurückgeben. Nicht ganz, was ich will. Sie, das ist es, was ich will. Richtig? Also, wenn das der Fall ist, dann werden wir das Energie-Handle-Konto zurückgeben, dass eine Kosten. Und dann wollen wir auch die Methode, bei der wir das schaffen. Also wollen wir die Kosten für Energiespeicher eins. Das wird also ein Privatkunde sein. Energiespeicher, schaffen Energiespeicher. Wir haben nichts hier drin. Wir werden einen neuen benutzerdefinierten Energiespeicher mit, sagen wir, einer Kapazität von 100 und,
und die Mex von einem, die Übertragung ist nicht wirklich wichtig. Aber auch tun, ist, dass wir auf Energie geändert überschreiben. Und wir werden Mark schmutzig sagen. Die Idee hier ist, dass wir
die Marke schmutzig markieren im Grunde markiert die tatsächlich steuern sie Interessen, die Chung ständig sagen MC Sie später auf Disc speichern ,
so dass wir sicherstellen, dass dies tatsächlich gespeichert ist. Dies ist die grobe Idee, was von dem, was Mark schmutzig macht beim Entfernen. Haben wir hier eigentlich die Methode entfernen? Nun, ich habe das noch nie hinzugefügt. Lassen Sie uns also einfach die entfernende Methode überschreiben und nur
sicherstellen, dass wir sowohl den Laser als auch die Optionale hier ungültig machen. Anstelle eines Häkchens ist dies der erste Welt-Punkt entfernt. Zurück. Warum ist das der Fall, den wir nicht auf den Klienten nehmen wollen? So ist Remote bedeutet, dass wir auf dem Client sind und wir nicht nehmen wollen, um auf dem Client passieren. Daher werden wir zurückkehren, wenn wir auf dem Client sind, auf dem Server, der Rest wird funktionieren. Wir brauchen also ein Energieniveau. Wir werden sagen, Energiespeicher, gespeicherte Energie. Also Energiespeicher, gespeicherte Energie. Und dann
sollte dies in diesem Fall auch behandelt werden. Die Idee, nun, wir können nur 64 speichern, ist tatsächlich bereits von der Kapazität gehandhabt. Wir werden es nur für den Moment hier behalten, vorerst. Aber das sollte eigentlich nicht benötigt werden. Wir behalten es hier drin. Nichtsdestotrotz. Energiespeicher, dot-dot-dot generieren power one. Also für jeden einen Diamanten, wo in diesem Fall eine Macht erzeugen. hier wird dies wieder Energiespeicher, gespeicherte Energie sein. Und ich, natürlich, die geänderte Datei hier ist wieder als Ressource verfügbar, so dass Sie nicht alles austippen müssen. Und ich werde auch irgendwo einen Fehler
machen. Das ist nicht das, was wir wollen. Also extrahieren Sie Energie eins. Und dann wichtig, dass wir tatsächlich sagen falsch hier ist dies das Simulieren. Dies würde also dasselbe mit dem Extraktelement simulieren. Dort gibt es auch einen booleschen Wert für die Simulation. Also ja, das Energieniveau, das wir eigentlich nicht mehr brauchen. Und ich glaube, das einzige, was wir dann tun müssen, ist das Lesen und Schreiben und die Energiespeicherung. Die andere Sache, die eine Sache war, war, dass jemand bemerkte, dass, wenn sie gingen, so dass sie gespeichert und gingen aus ihrem Spiel und ging zurück, dass der Energiespeicher nicht sparen. Das ist natürlich wahr. Deshalb werden wir jetzt sicherstellen, dass es spart. Das wird also Energie sein. Wir werden auch hier das Häkchen setzen. Also Tic Tac Toe, GetInt Zähler Ich glaube, ist der Name oder ich habe es gezogen nehmen Rate. Ja. Shirt und nennen wir es. Lasst uns es als Zähler behalten. Ich denke, das ist in Ordnung. Nur damit wir die As
auch haben . Normalerweise macht keine Rolle, aber es wäre wirklich dumm, wenn wir das Häkchen auf zehntausend,
zwanzigtausend oder so etwas eingestellt haben. Also müssen wir wie ein Haufen Zeit warten. Und dann, nur weil wir das Spiel wieder starten, setzen
wir das Tic zurück. Das wäre irgendwie dumm. Und das ist der Grund, warum wir wahrscheinlich auch das aktuelle Häkchen setzen wollen. Dies sind wirklich nur vier Dinge, wenn Sie es ein wenig,
eine spätere oder längere Führung haben . Das war es, was ich meinte. Etwas länger. Also lassen Sie uns auch getaggte Ausgangsenergie tun. Und der Energiespeicher serialisiert nb t, und dann war's es. Und ich glaube, das andere, was wir wollen, ist, dass wir es hier schmutzig markieren wollen, nur für den Fall, dass dies technisch nicht notwendig sein
sollte, weil wir 30 jedes Mal, wenn wir Energie extrahieren oder Energie regenerieren, nur in Fall, markieren wir es auch 30 hier. Es gibt keinen wirklichen Grund, warum man das nicht wirklich nennen soll. Nun, das ist alles in Ordnung. Aber das hätte jetzt dazu führen sollen, dass
der Bildschirm und der Container über ein paar Dinge etwas verwirrt sind. Also die Bildschirme überhaupt nicht verwirrt. Der Behälter sollte jedoch verwirrt sein. Ja. Ja, der Container ist verwirrt weil er hier nicht mehr das Energieniveau hat. Und es gibt auch noch ein paar andere Dinge, die wir tatsächlich in
dem Container tun müssen , die wirklich sehr interessant sein werden. Nun, das erste, was ist, dass wir tatsächlich eine neue Methode innerhalb von hier hinzufügen. Ich werde es kopieren und dann werde ich es erklären, am besten ich kann. Denn es ist eigentlich ein bisschen verrückt, wenn ich es selbst sage. Also lasst uns das hier setzen. Lassen Sie es uns kopieren. Holen Sie Energie ist eine andere Methode, die wir auch ja, Energie zu bekommen. Natürlich gibt es auch eine neue Methode, die wir brauchen, und das ist im Grunde der Ersatz dafür ist der Ersatz für das Energieniveau hier unten. Wir werden das nur löschen. Wir werden das behalten und dann funktioniert alles. Also, und dann anziehen Macht wird genau hier genannt werden, Spur Macht, Kälte innerhalb unseres Konstruktors dafür. Nun, die Idee der Spur Power ist die folgende. Das ist auch für mich etwas Neues. Aber wie Sie sehen können, haben
wir diese Referenz-Holder-Methode, die ist, wissen Sie, hat einige seltsame wie Ganzzahl und dann mit diesen Codes hier, und dann haben wir eine große Verschiebung von 16 Bits. Was zur Hölle ist los? Nun, die Idee ist das, und das war im Allgemeinen etwas, das ich auch nicht wusste. Offenbar werden vor Ort dedizierte Server, ganze Zahlen tatsächlich in Shorts umgewandelt. Was bedeutet das? Nun, eine Ganzzahl ist ein 32-Bit. Zahl, eine kurze ist eine 16-Bit-Zahl. Und deshalb müssen wir diese scheinbar in zwei 16-Bit-Ganzzahlen aufteilen. Deshalb haben wir hier geschoben, so dass wir im Grunde
die ersten 16 Ziffern nehmen und dann die ersten 16 Bits der Zahl
setzen und sie in die erste setzen können die ersten 16 Ziffern nehmen und dann die ersten 16 Bits der Zahl . Und dann die zweite, wir haben 16 Bits nach rechts verschoben, denke
ich, und dann nehmen Sie die anderen 16. Das ist die Idee hier. Ich muss ehrlich zu dir sein. Ich würde nicht zu lange und hart darüber nachdenken. Es ist nur etwas, das wir tun müssen. Und wenn es wirklich kommt, würde
ich Ihnen raten, nur ein paar Dinge zu betrachten, wie das funktioniert. Die Spurleistung wird benötigt, die Methode, damit der Client weiß, was auf dem Server vor sich geht. In diesem Fall machen wir alles auf dem Server. Und der Server ist acht. Da gehst du, Klient. Das ist es, was los ist. Es fühlt sich ein bisschen seltsam an, dass wir das tun müssen, aber das ist offensichtlich, was wir tun müssen. So ok. Wenn wir in die Get Energy schauen, bekommen
wir einfach die Fähigkeit der Fliese in T also die Energie. Und wir werden nur sein, und wir geben das zurück, die Energiespeicherung. So werden sie Energie gespeichert. Und wenn das nicht existiert, dann werden wir nur eine 0 zurückgeben. Aber natürlich existiert es, also wird das gut sein. Jetzt im Inneren unseres Bildschirms haben wir das Energieniveau, das nicht funktioniert. Aber das Gute ist, dass dies kein Problem ist, denn jetzt haben wir die Energie bekommen. Also bekommen wir tatsächlich Energie. Holen Sie sich Energie. Und ich glaube, wenn ich mich nicht irre, dass das alles ist, was wir tun müssen, und dann funktioniert es. Hoffen wir, dass das der Fall ist. Aber ich bin eigentlich, nein, ich denke, dass das alles ist, was wir brauchen. Und am wichtigsten, ich glaube, ist diese Track Power-Methode, die ein wenig seltsam ist. Ich werde nicht lügen, aber wir werden es einfach versuchen. Fangen wir einfach an. Mal sehen, ob es funktioniert oder nicht. Aber ich glaube, das wird gut funktionieren. Und du, ich bin mir nicht 100% sicher, warum ich
die Idee hatte , dass das Energieniveau hier nur eine ganze Zahl ist. Das wird sowieso nicht funktionieren. Aber weißt du, manchmal, manchmal,
manchmal, bekommt man eine Idee und danach bist du wie, Das ist irgendwie seltsam, dass das definitiv
nicht so gemacht werden sollte . Aber das ist okay. Das ist der Grund, warum wir hier sind, das, was wir tun werden, um es zu beheben , während wir uns das einen kleinen Blick darauf werfen. Also habe ich im Grunde auch alle JSON-Dateien für jedes der Dinge mit Ausnahme der Sprache hinzugefügt . Und lassen Sie uns das elektrifizierte und lassen Sie uns hineinschauen, so dass alles funktioniert. Nehmen wir einen Diamanten, wo wir zwei Stapel Diamanten nehmen. Lasst uns auch wie ein Stapel
Kupferdrähte nehmen und mal sehen, ob wir es darin
platzieren, ob wir Energie bekommen oder nicht. Wir bekommen Energie, also ist das ziemlich gut. Die Diamanten nehmen ab. Also vorher. Das war das Problem, dass Sie manchmal Ihre Diamanten
verdoppeln konnten , indem Sie sie herausnehmen. Und wenn die Zecke im richtigen Moment war, dann der Server und der Client, God's DD synchronisiert. Und dann waren Sie im Grunde in der Lage , Ihren Stack zu verdoppeln. Das funktioniert nicht mehr. Wenn wir Wasser in den Schrank legen, wie Sie sehen können, werden
die Smaragde behandelt, aber die Energie nimmt nicht ab. Das ist also interessant. Ich glaube, das Einzige, was nicht abnimmt, ist die Energie, weil sie nicht mag, dass sie sich nicht zeigt. Also glaube ich, wenn wir bei 32 sind, dann wird es tatsächlich aufhören. Es hört nicht auf. Sehr interessant. Mal sehen, warum das der Fall ist. Außerhalb dieser Summe sind Art des Spiels. In Ordnung, ich war in der Lage, es zu reparieren. Wie Sie sehen können, erhöht
es hier die Energie. Und dann, wenn ich es in die Kupferdrähte steckte, nehmen sie tatsächlich ab. Und dann stoppt es bei 0 und es erzeugt keine Smaragde mehr. Nun, der Grund, warum es nicht funktioniert hat, ich kann Ihnen tatsächlich zeigen, dass ich hier keine Energie verbraucht habe. Also nutze ich die Extraktleistung. Ich glaube, es heißt Extraktenergie. Das war das, was es war. Ich bin mir nicht 100% sicher, warum es nicht funktioniert hat. Weil ich die Extraktenergiemethode in
meinem Tester-Szenario verwende , weil ich immer alles getestet habe. Und da hat es funktioniert. Aber in diesem Fall war es nicht. Ich weiß nicht, warum. Ich weiß nur, dass Strom verbrauchen irgendwo
so ist , als ob es kalt irgendwo in meinem Tester-Szenario ist. Aber es war nicht kalt innerhalb der, statt dieses Projekts hier. Und ich bin mir nicht 100% sicher, warum. Nun, es könnte irgendwo geben, wo haben wie beaufsichtigt oder,
oder ich nicht, dass ich das nicht gesehen habe. So wie irgendwo,
wo ich es nicht nannte. Irgendwie komisch. Irgendwie komisch. Wenn ich es jemals finde, wo das war, werde
ich natürlich einige, du weißt schon, vielleicht irgendwo etwas mehr hinzufügen. Aber ja, jetzt funktioniert es mit verbrauchtem Strom. Wieder einmal ist es nur so etwas wie sehr klein, aber es sollte auch sein, sollte auch funktionieren. In diesem Fall, ist, dass es tatsächlich die Energie von
einer Zeit speichern Sie Minecraft zu einem anderen öffnen. Was wir also tun können, ist, dass wir das auch überprüfen können. Denn das war etwas, das ein Problem mit einem Schüler war, der fragte ,
naja, ich habe Energie da drin, aber wenn ich die Welt schließe, dann ist meine Energie plötzlich verschwunden, was natürlich dass du das nicht willst. Also mal sehen. Also, wenn wir in ein wenig Energie setzen, sind richtig. Sagen wir mal so etwas wie, ich meine, lass es uns einfach so machen und dann gehen wir einfach aus deiner Rettung der Welt raus. Und dann lassen Sie uns wieder hineingehen und sehen, ob alles gerettet wurde oder nicht. Aber es wurde gerettet. Und auch die Diamanten waren gespart und auch die Energie. Aber es hat es nicht versehentlich dort zerstört. Aber ja, und dann kannst du reingehen, die Kupferbarren oder Kupferdraht hier reinlegen und Smaragde. Ja, das ist es im Grunde. Für die fixierten zum elektrifizieren sind hier. Und Yan ist auch wie eine kurze Erkundung der Fähigkeiten hier. In diesem Fall ist die Energie. Insgesamt. Die Fähigkeiten sind etwas komplexer als zuerst gedacht, vor allem von mir persönlich. Also ja, das ist der allgemeine Überblick hier dafür und auch, wie man die Kachelentität repariert. Es gab ein paar gut, ich meine, buchstäblich Dinge, die nicht richtig synchronisiert wurden. Also ja, ich hoffe, das war nützlich für Sie. Ich hoffe, dass das gut,
die Probleme bezüglich der Macht dort beheben . Ich würde Ihnen auch raten, einen Blick zu werfen,
einen guten Blick auf die Energiespeicherklasse hier und auch den Hochenergiespeicher zu werfen. Dies ist im Grunde,
was passiert, was die Umsetzung dieses sehr nützlich zu betrachten. Und es wird wirklich mögen, dass es so aussieht, als wären einige Dinge klarer, oder? Es macht es also viel klarer. Und du wirst wahrscheinlich auch eine Menge davon vermuten können, was da passiert. Also ja, ich hoffe, dass das für dich nützlich war. Wenn es irgendwelche Fragen zu etwas, das hier getan wurde, natürlich, fühlen Sie sich frei zu fragen, und ich werde sicher sein, zu antworten. Denken Sie auch immer daran, dass die Gesamtheit
des Quellcodes als Download als Ressource zur Verfügung steht. Und ja, das war es für diesen Vortrag. Und ja.
77. (Minecraft) Erstellung benutzerdefinierter Befehle: Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in dieser Vorlesung werden wir einen Blick darauf werfen, wie Sie Ihre eigenen benutzerdefinierten Befehle erstellen können. Das wurde im Grunde vorgeschlagen, oder es war eine Anfrage in der Q und einem Abschnitt dieses Kurses. Und jemand sagte: „Hey, ich will im Grunde
einen Befehl und eine Rückkehr zum Heimkommando haben . Damit ich grundsätzlich von
einem Teil der Welt in einen anderen Teil der Welt springen kann. Und ja, wir werden das umsetzen. Und das ist im Grunde auch, wie Sie Ihre eigenen benutzerdefinierten Befehle erstellen. Fangen wir einfach damit an. Also lasst uns in den Augen unseres MC noch schlimmer lesen, ein neues Paket, das das Befehlspaket sein wird. Nun ist das natürlich wieder einmal, nur die Struktur hier kann verändert und verändert werden. Aber ich denke, dass ein Befehlspaket hier Sinn macht. Und statt dessen werden wir zwei neue Klassen machen. Der eine ist der Befehl set home und der andere ist der Befehl return home. Das werden also zwei verschiedene Befehle sein, die wir implementieren werden. Nun, es gibt, ich werde Ihnen im Grunde zeigen, wie ich herausgefunden habe, wie das funktioniert. Denn zuerst dachte ich, dass dies wirklich kompliziert wäre, weil Mikroben verändert haben, wie Befehle funktionieren und wie man sie tatsächlich registrieren kann. Aber nachdem ich etwas gegraben
hatte, fand ich tatsächlich einen sehr, sehr einfachen Weg, dies zu tun. Und ich habe das herausgefunden, lassen Sie uns einfach folgendes tun. Also, wenn wir Control Shift F drücken, dann werden wir und im Grunde haben diesen Pfad finden, Pfade finden. Und wenn wir zum Geltungsbereich gehen, dann können wir nach etwas im gesamten Umfang suchen. Und sie sind der Schmiedebefehl ist das, was wir eigentlich betrachten wollen. Und das wird das Hören von Wörtern Befehl sein, wenn wir darauf doppelklicken. Und wie Sie sehen können, sind dies alle Befehle, die Sie im Grunde mit dem Schrägbrett tun
können. Und dann haben Sie verschiedene Dinge dafür. So zum Beispiel, zwei Schrägstrich TPS und dann erhalten Sie die TPS-Ausgabe. Und wenn wir dann mit der mittleren Maustaste auf einen dieser Befehle klicken. So zum Beispiel der TPS-Befehl, und Sie können sehen, wie dies aufgebaut ist. Jetzt bauen wir es auf ein wenig andere Art und Weise auf, aber fast dasselbe. Und wie Sie sehen können,
wird der eigentliche Befehl selbst einfach beim Command Dispatcher registriert. Dieser Befehl hat also einfach in seinem Konstruktor einen Befehls-Dispatcher. Das ist genau das, was wir auch haben werden. Und dann ruft es die Registermethode auf. Jetzt machen wir es ein bisschen anders. Anstatt also diese Registermethoden, die sich im Inneren von hier befinden,
zum Beispiel aufzurufen , würde dies eine Art Argument-Builder zurückgeben. Wir werden den Argumentbauer selbst machen. Für jetzt. Das sieht ein bisschen aus, oh, was passiert hier? Was ist hier passiert? Mach dir keine Sorgen darüber. Wir werden es durchmachen. Ich denke, am Ende hängt es davon ab, was Sie natürlich tun wollen. Es könnte mehr oder weniger kompliziert werden. Aber ich kann dir sagen, dass du einen neuen Befehl
machst, nicht so kompliziert, je nachdem, was du damit machen willst. Ich meine, wenn Sie nicht wissen ob Sie plötzlich nicht möchten, dass ein ganzes Dorf auftaucht. Das könnte etwas komplizierter sein. Aber wenn du, wie ich sagte, einfach nach Hause Schrägstrich nach Hause zurückkehren wollen, wird
das wirklich einfach sein und wir werden uns das ansehen. Und jetzt meine erste Ausgabe und deshalb sage ich dir, dass ich es nicht wusste. Ok. Wo würde ich diese Befehle tatsächlich registrieren? Weil ich nicht wusste, wo ist diese Kälte jetzt, wenn wir darüber nachdenken, das ist ein Konstruktor. Und natürlich muss dieser Konstruktor irgendwo aufgerufen werden. Und wir können das tatsächlich herausfinden, indem wir Alt F7 drücken. Und dann können wir sehen, dass innerhalb des Fort internen Handlers in einem kleinen netten abonnierten Ereignis aufgerufen Befehle registrieren Ereignis. Mit dem Register-Befehls-Ereignis. Dies wird im Grunde mit dem Event Dispatcher hier initialisiert. Das ist also der, dies ist der Konstruktor, der aufgerufen wird. Und dann sagen wir grundsätzlich config command register und dann bam, das war's. Das ist also das wirklich coole Ding. Jetzt habe ich im Grunde herausgefunden, wie das tatsächlich funktioniert. Ich wollte das nur kurz zu Beginn des Videos erwähnen, damit du weißt ,
woher das kommt, weil ich eigentlich nirgends sonst gefunden habe. Und ja, also lasst uns zuerst einen Konstruktor hier machen. Also setzen Sie öffentlichen Home-Befehl mit, wie wir gesagt haben, dem Befehls-Dispatcher vom Typ einer Befehlsquelle. Und das wird der Disponent sein. Und statt hier, also was wir zum Beispiel
tun könnten, ist, dass wir etwas kopieren könnten. Wir werden es selbst aufbauen und nun, wir werden sehen, wie das aussieht. Also zuerst haben wir den Dispatcher, dieses absolute Punktregister. Und im Inneren von hier bauen wir jetzt im Grunde unseren, unseren Befehl und dann haben wir Befehle dot literal. Das ist also die Feder, also ist dies der String-Name, den wir eingeben müssen, also Schrägstrich, und was müssen wir dann eingeben? Wir werden zum Beispiel zu Hause bleiben. Und dann am Ende der Befehle wörtlich, werden
wir noch einen Punkt machen und dann sagen wir sie. Und wir werden noch ein wörtliches Wort haben. Also im Grunde wird es Schrägstrich nach Hause und dann gesetzt. Und das ist im Grunde setzt die Position des Spielers derzeit. Und dann werden wir, und dann haben wir einen anderen Befehl, der nach Hause zurückkehren wird, und dann werden wir nach Hause zurückkehren. Das ist im Grunde, wie wir das tun werden. Also das, oh, tut mir leid, dann nicht, aber wir müssen hier einen neuen Befehl setzen, tut mir leid. Das ist also auch das Befehlspunktliteral, und das wird dann gesetzt. Und dann noch einmal im Literal hier, wir etwas ausführen, und das wird nur die Exekutionen sein. Eine Methode, sagen wir, wir werden die execute-Methode aufrufen. Und im Inneren von hier brauchen wir, wenn wir den Mauszeiger darüber bewegen, brauchen
wir tatsächlich einen Befehl. Wie Sie sehen können, ist dies der Argumentgenerator, der in den Feldbefehlen hier zurückgegeben
wird. Und wir bauen es nur innerhalb unserer Struktur hier selbst. So kann dies ein
Befehl nehmen angenommen, dass dieser Oman, sie Ego. Und dann können wir ein neues machen. Wie ich schon sagte, es ist etwas komplizierter. Lasst uns das einfach schnell überprüfen. Das ist also der Befehl. Und dann kriegen wir einen hier. Und dann im Inneren von hier werden wir etwas zurückgeben und das wird die private und neue Methode sein, private Interessen zu Hause. Und das wird hier kalt sein. Und wir brauchen auch die Befehlsquelle. Quelle. Und das wird Command Quelle sein. Da gehst du. Alles klar, das ist im Grunde das, was wir für den Dispatcher wollen, die Registrierung hier, wie ich schon sagte, man kann sich entweder die Befehle in den Schmiedekommandos ansehen, um zu sehen, wie das funktioniert. Sie können also auch bestimmte Dinge wie die Berechtigungsstufe und erfordern und dort ausführen, wo sie ausgeführt wird. Es gibt also ein paar Dinge, die Sie hier tatsächlich tun können. Wir werden das nicht zu verrückt hineingehen. Wenn Sie etwas anderes herausfinden
möchten, müssen Sie es selbst tun. Werde ich. Ich bin nur hier, um Ihnen zu sagen, okay, so werden wir ein neues Kommando machen. Und dann jede Funktionalität darüber hinaus,
das wird Ihr Ding sein, um herauszufinden, oder? Das ist also der set-Befehl. Jetzt. Und zuerst können wir hier im Grunde einen zurückgeben, und dann wird das in Ordnung sein. Also werden wir im Grunde einfach eine 1 zurückgeben und dann werden wir uns aufbauen, okay, wie können wir die tatsächliche Heimposition einstellen? Nun, das Tolle ist, dass diese Befehlsquelle, wenn wir das mit der mittleren Maustaste öffnen, das tatsächlich eine Menge Dinge hat. Zum Beispiel die Welt. Wir haben auch die, wir sollten den Spieler irgendwo haben. Ich glaube, Spieler, Spieler, Spieler, separate Einheit als Spieler. Damit wir ein paar Sachen hier reinbringen können. So können wir zum Beispiel den Server-Player in t bekommen, was der Spieler sein wird. Und wenn wir Quelle als Spieler sagen, geht es los. Also, dann wandelt es im Grunde das konvergiert nicht, okay? Ja, das werde ich, wir werden das bald genug tun. Es wandelt also die Quelle im Grunde in einen Spieler um, weil die Quelle des Befehls entweder der Spieler sein
kann oder es natürlich auch ein Befehlsblock sein könnte. In diesem Fall sagen wir einfach als Spieler. Wenn wir den Mauszeiger darüber bewegen, können
Sie sehen, dass wir eine unbehandelte Ausnahme haben. Wenn wir dies der Methodensignatur hinzufügen und es wird zu speichern, wirft eine Befehls-Syntaxannahme. Und jetzt glaube ich, und ich habe eigentlich keine 100 Prozent Tests davon, aber ich glaube, dass dies geworfen werden würde, wenn die Befehlsquelle, also wenn der Befehl tatsächlich von einem Kommentarblock aufgerufen wird, und das Umwandlung würde nicht funktionieren, oder? Also, wenn Quelle als Spieler nicht funktionieren würde, und natürlich, das ist eine Ausnahme. Eine Ausnahme wird ausgelöst. Aber das ist nur etwas, um vorsichtig zu sein. Und dann brauchen wir tatsächlich die Position des Spielers, die wir einfach per Block Pause machen können. Es wäre Spieler Pause, Wiedergabe oder Pause gleich Spieler Punkt. Holen Sie sich zur Position, neue Position, tatsächlich, Position. Da gehst du. Jetzt müssen wir tatsächlich auch Blutpass importieren. Legen Sie einfach die Karottenüberlappung und drücken Sie dann Alt und Enter. Und dann möchte ich eine Schnur bauen, die wir auch herausstellen werden. Also werden wir das im Chat ausgeben. Und es ist im Grunde so etwas wie eine Home-Position gesetzt oder nach Hause gesetzt zu sagen. Und das wird mit der nicht so starken, sondern einer Zeichenkette Pause gemacht werden, die dies plus der Block sein wird. Eigentlich ist dies der Spieler, POS, Player pos dot getx Verlust. Das ist also nicht unbedingt notwendig. Ich denke jedoch, dass es eine gute Idee ist, dies auch auszugeben. Sie sind ohnmächtig, warum? Weil das auch der Grund ist, warum ich es getan habe, während ich getestet habe, nur um sicherzugehen. Ok. Ist die Blockposition tatsächlich so, wie er die tatsächliche Spielerposition bekommt, bekommen z und dann werden wir es mit einer Klammer hier schließen. Das ist in Ordnung. Und wie werden wir dann die Daten speichern? Nun, lassen Sie uns zuerst, Ausgabe des tatsächlichen Hauses, dergleichen, die Position. Und dann werden wir es sehen, also wird das Quelle sein. Feedback senden ist im Grunde das, was wir wollen. Und im Inneren von hier haben wir eine neue String-Text-Komponente nach Hause gesetzt. Und dann sagen wir Pause. Und dann werden wir wahr sagen oder Protokollierung zulassen. Also jetzt mit dem, was wir gebaut haben, sollten
Sie in der Lage sein, nachdem wir diesen Befehl registriert haben, sollten
wir in der Lage sein, Folgendes zu tun. Wir sollten in der Lage sein, Schrägstrich nach Hause, und dann eine Leertaste gesetzt, und dann beenden die Nachricht sollte im Grunde mit der Position des Spielers Strom erscheinen. Und jetzt stellt sich die Frage,
wie können wir diese Daten speichern? Und die Art und Weise, wie wir diese Daten speichern, ist im Grunde, wenn wir in den Spieler gehen, tut mir leid, die Server-Player-Entität hier, wir verwenden tatsächlich etwas, das die persistenten Daten genannt wird. Nun, das ist eigentlich müssen wir hier in den Baum gehen. Also müssen wir zur Spieler-Entität gehen. Und ich kann das schließen, und wir können zum Lebewesen gehen, schließen das und dann gehen wir in die Entität. Weil die Entität etwas hat, das die persistenten Daten sind, richtig? Also ist es genau hier. Dies ist eine private Verbindung NVT. Also diese MPT-Daten, wir haben nur irgendwie wie einen flüchtigen Blick auf die NVT-Daten gesetzt. Aber es war im Grunde eine Möglichkeit, Daten zu speichern. Und in diesen Daten der Spielereinheit werden
wir unsere Position speichern. Wie können wir das jetzt tun? Wir werden, wir speichern Spieler, erhalten persistente Daten. Wie Sie sehen können, da gehen wir dorthin, wir bekommen die Verbindung MBT daraus. Und wir können die gleichen Dinge tun, die wir bereits mit den MBTs gemacht haben. Wir können zum Beispiel ein int-Array setzen. Und genau das wollen wir tun, weil wir
drei verschiedene Positionen oder drei Teile des Vektors XYZ haben , die wir speichern wollen. So wäre dies die Heimatpfade, zum Beispiel, könnte auch diese Heimatposition oder etwas anderes nennen. Und dann brauchen wir ein neues int-Array mit den folgenden drei Dingen. Und das wird der Spieler pos Punkt bekommen X, die Bilayer pars Punkt y. und an den Ebenenpfaden. Dein vergangener Punkt bekommt z, eigentlich nicht, was Zed. Und auf diese Weise wird
die Position jetzt innerhalb des Ghettos gespeichert, persistente Daten des tatsächlichen Spielers. Und wir können das später in der Rückkehr nach Hause Befehl hier lesen. Wenn wir das einmal schreiben, ist das
alles, was wir brauchen für diese besondere Sache, die wir wollen. Das ist es also schon für den Befehl set home. Wie ich schon sagte, es ist eigentlich nicht so schwierig. Es hängt wirklich davon ab, was Sie hier im Grunde in diese Methode setzen, richtig? Wenn Sie also etwas wollen, das verrückter und komplizierter ist, geht
es irgendwie auf die Ereignisse zurück, die wir hatten. Ereignisse selbst. Wirklich, wirklich cool und wirklich mächtig. Gleiches mit den Befehlen, natürlich. Grundsätzlich eine sehr ähnliche Sache zu einem Ereignis, nur dass der Spieler kann, während im Grunde, dass ein Ereignis aus einer Laune durch Eingabe in den Chat ausführen. Es ist nur so, abhängig von Ihrem Anwendungsfall und was Sie tun wollen. Ja, das ist, dass es eine Menge Else geben könnte, sonst hier herauszufinden, aber das liegt natürlich an Ihnen, wie können wir eigentlich einige nach Hause schicken Kommando registriert? Nun, wir gehen einfach in die Ereignisse, Modus Ereignisse, und dann wollen wir tatsächlich so etwas tun. Also lasst uns ein neues Ereignis machen. Und dieses Ereignis wird die öffentliche Leere sein oder nein, das ist es nicht. Was ich will, ist, dass ich die On-Befehle registrieren möchte und dann hat dies das Register-Befehls-Ereignis, welches Ereignis. Und anstelle von hier werden wir tatsächlich genau das tun, was der Befehl hier tut, was hier auf Befehle registrieren genau hier ist. Also sagen wir einfach ein neues Kommando. Lassen Sie mich schnell ein paar Dinge schließen. So MOD Ereignisse. Da gehst du. Neu. Legen Sie den Befehl home mit dem Event Dispatcher fest. Und dann am Ende hier können wir den Befehl config sagen,
Befehl, dass Sie gehen registrieren. Und dann sagen wir Events dot get Dispatcher. Das ist also alles, was wir tun müssen. Und jetzt machen wir den Befehl „Rückkehr nach Hause“. Und dann sind wir im Grunde schon fertig. Das ist also, das ist das coole Ding. Nun, für die Rückkehr nach Hause Befehl, ist
die coole Sache, dass wir das im Grunde fast kopieren können weil das Ding hier sehr, sehr ähnlich ist. So wird das einfach Home-Befehl zurückgegeben werden. Und dann anstelle eines Satzes nach Hause, werden
wir eine neue private int haben. Und das wird nach Hause mit grundsätzlich auch einer Kommandoquelle, Befehl oder der traurigen Quelle, natürlich dem Ego und dem so. Und dann rufen wir das an, anstatt nach Hause zu gehen. Und hier statt gesetzt, sagen
wir „Rückkehr“, denn das wollen wir jetzt nach Hause zurückkehren. Und dann ist das, was wir tun werden, dass wir zuerst den Spieler einmal gegen. Dies ist wieder einmal die Server-Player-Entitätsschicht ist gleich dem Quellpunkt als Player. Was uns noch einmal auffordert, die Ausnahme zum,
zum Befehl hier oder zur Methode hinzuzufügen . Lasst uns retten. Und jetzt, was wir überprüfen werden, ist es eigentlich, weil. Wir könnten tun, ist, dass wir sagen können, hey, das persistente Daten-Int-Array
bekommen und dann lassen Sie uns einfach einfach gehen. Aber die Sache daran ist, dass wir tatsächlich überprüfen, ob das leer ist oder nicht. Also werden wir sagen, wenn Spieler dot persistente Daten
erhalten, persistente Daten erhalten, int Array erhalten. Also werden wir sagen, kommen Sie in die Gegend und wir wissen, dass der Schlüssel hier ist die Heimat PaaS. Und wenn die Länge dieses Arrays nicht 0 ist, richtig? Das bedeutet also, dass in diesem Fall, also nicht 0 bedeutet, dass es etwas enthält, oder? Also, jetzt wollen wir nicht wirklich wissen, dass wir das nicht retten wollen. Wir wollen eigentlich nur gut wissen, enthält nichts. Was wir herausgefunden haben, glaube
ich, und wenn ich mich richtig erinnere, ist
die Idee, dass, wenn Sie hier einen Fehler bekommen, es immer ein neues Array zurückgeben wird, auch wenn etwas nicht existiert. Deshalb überprüfen wir nach der Länge und nicht, ob sie null hat oder nicht. Und dann haben wir auch ein anderes, nur damit wir im Grunde sagen können Quellpunkt, Feedback senden. Und dann können wir eine neue String-Text-Komponente sagen und sagen, dass keine Ausgangsposition gesetzt wurde. Und dann sagen wir auch wahr hier. Und dann werden wir zurückkehren, Lassen Sie mich ein wenig hinauszoomen. Gibt einen negativen, negativen zurück. Da gehst du. Das liegt daran, dass wir doppelt so viel
haben, um Feedback zu verstehen. ich verrückt? Ja, ich bin verrückt. Da gehst du. Das ist es, was es ist. Und dann haben wir eins zu vielen. Da gehst du. Ok. Feedback senden, Federtext-Komponente, keine Ausgangsposition wurde eingestellt. Denn natürlich, wenn es keine Daten im Array gibt, dann haben wir das Haus dort nicht wirklich niedergelassen. Und jetzt wollen wir ein neues int-Array. Dies ist die Spielerposition noch einmal. Und wir können das im Grunde lesen, indem wir Layer dot-dot dot persistente Daten sagen. Dot, bekommen int Array, bekommen int Array mit dem Schlüssel zu Hause Pause. Und dann haben wir das tatsächlich innerhalb dieser Variablen. Und dann können wir den Spieler Punktsatz und die eingestellte Position und Aktualisierung verwenden. Sehr schöne Sache, die wir tatsächlich benutzen können. Und dann können wir einfach Spieler Pos 0,
Schicht eins und Schicht zwei sagen . Da gehst du. Und jetzt wird die Position des Spielers auf, na ja, genau das eingestellt, was innerhalb der persistenten Daten geschrieben ist. Und dann können wir sagen, eine Quelle, Senden Feedback kann sagen, neue Zeichenfolge, Textkomponenten-Schicht, nach Hause, kehrte nach Hause, sie Ego. Und dann sagen Sie auch wahr hier. Und dann am Ende, das einzige, was wir tun müssen, ist eine 1 zurückzugeben und alle sind glücklich, richtig? Und jetzt, wie ich schon sagte, das ist ein Weg, es zu tun. Es gibt wahrscheinlich eine Vielzahl von Möglichkeiten, einen Spieler tatsächlich in eine andere Position zu teleportieren. In diesem Fall wird dies mit der eingestellten Position und Update-Methode in Ordnung sein. Und eigentlich denke ich, dass es sehr, sehr gut sein wird. Und ja, das ist im Grunde alles, was wir wirklich tun müssen. Und wir besitzen auch nur in diesem Jahr setzen müssen. So neue Rückkehr nach Hause Befehlsereignis. Du gehst Event-Dispatcher. Und das war's. Nun, sehr wichtig bei der Abonnieren Veranstaltung, sie gehen jetzt, es sollte Spaß machen, oder? Das ist eigentlich alles, was wir wirklich tun müssen um unser Set Home und Return Home Event hinzuzufügen. Und ich schätze, lasst uns einfach anfangen und sehen, was wir sehen können. Das ist wahrscheinlich das Interessanteste. Wenn das tatsächlich zurückkehrt, dann bringen Sie uns nach Hause und wir können unser Zuhause aufstellen. Das wird also wirklich der Test sein. Insgesamt denke ich wirklich, dass Befehle ziemlich einfach zu implementieren sind, hängt
wirklich davon ab, was Sie mit ihnen machen möchten. Wie ich schon sagte, das ist sehr, sehr ähnlich zu den Ereignissen, die wir vorher hatten,
wo, wenn Sie eine interessante Idee für eine Veranstaltung haben, das ist ziemlich gut. Aber sie können wirklich komplex werden, je nachdem, was wirklich mit ihnen tun wollen. Aber ja, das sind im Grunde alle Werkzeuge, die Sie wirklich brauchen, um Ihre eigenen Befehle zu erstellen. Das ist also ziemlich gut. Und mal sehen, was wir sehen können. Also zuerst laichen wir hier in irgendeiner Art Redwood-Wälder. Also lasst uns einfach ein bisschen vom Licht herumziehen und uns zu diesem Hügel hier bewegen. Und dann zuerst, was wir sagen werden, ist, dass wir nach Hause schrägen werden. Wie Sie sehen können, ist dies bereits hier als Vorschlag. So können wir grundsätzlich automatisch abgeschlossen. Und wie Sie sehen können, haben wir auch die beiden Literale. Also lassen Sie uns zuerst sagen Schrägstrich nach Hause Rückkehr. Aber wie Sie sehen können, wurde keine Home-Position eingestellt, da wir keine Home-Position festgelegt haben. Also unsere if-Aussage, wenn wir einfach hier zurückblicken, hat
unsere if-Aussage genau so funktioniert, wie wir es wollten. Das ist also wirklich, wirklich nett. Und jetzt wollen wir unsere Position genau hier festlegen. Also wollen wir zu Hause Schrägstrich sagen, Schrägstrich nach Hause niedergelassen, sie gehen und jetzt hat es, hat nach Hause an Position negativ 718200120 gesetzt. Nun wollen wir sehen, ob wir F3 drücken, können
Sie negative 2,
34, 91 und 120 sehen . Das ist also so ziemlich genau dort, wo wir gerade sind. Das ist also ziemlich nett. Jetzt fliegen wir weg. Ich werde mir das ansehen. Ein schönes, schönes, ruhiges Dorf direkt hier mit ein paar Büffeln. Das ist ziemlich nett. Und dann, ja, lasst uns einfach hier rüber fliegen. Jetzt sollten wir zurück, wenn wir die Heimkehr anrufen. Mal sehen, ob das funktioniert. So können wir natürlich auch die Tab-Taste drücken, um dies automatisch zu vervollständigen. Und wenn wir dies tun, wie Sie sehen können, kehrte Schicht nach Hause. So einfach ist es. Das ist alles, was Sie tun müssen, damit Sie Ihre eigenen Befehle machen können. In diesem Fall das set home und der return home Befehl. Und ja, das ist im Grunde alles, was ich dir zeigen wollte. Eine weitere Sache, die ich Ihnen überlassen möchte, sind die anderen Befehle, die es gibt. Wenn wir also nur tatsächlich, wenn wir das so machen können. Ich glaube also, dass es einen Zeitbefehl gibt, der am einfachsten ist, dorthin zu gelangen. Ja, genau. Also, wenn wir, zum Beispiel, in der Zeit Befehl hier setzen. Also noch einmal, Control Shift F und öffnen Sie dann den Zeitbefehl. Wie Sie sehen können, ist es hier etwas komplizierter. Aber das ist eine Sache, die Sie mit den Befehlen betrachten können,
im Grunde, was sie tun können. Und dann können Sie auch dieser Registermethode folgen. Dies ist eine statische Registermethode in diesem Fall. Und wenn wir uns das ansehen, dann
gibt es innerhalb der, innerhalb der Befehlsklasse, innerhalb der Befehlsklasse,alle normalen Befehle oder die Vanille-Befehle, sagen wir. mittleren Maustaste können Sie jeden von ihnen wieder öffnen. So zum Beispiel, so etwas wie der Spielmodus. Und dann kannst du dir alles ansehen, was hier passiert. Und Sie können im Grunde einfach, gut entweder kopieren oder erweitern, was wirklich gut und wirklich nett ist. Werfen wir einen Blick auf die. Also ja, das ist es, was ich dir hinterlassen wollte. Eine wirklich schöne Sache und Befehle. Ich muss ehrlich sein. Viel einfacher, als ich persönlich erwartet hatte. Aber ja, noch einmal, das war's. Aber wenn es irgendwelche Fragen gibt, natürlich, zögern Sie nicht zu fragen und ich werde sicher sein, zu antworten. Und ja.
78. (Minecraft): Alles klar, willkommen zurück auf dem Minecraft-Kurs. Und in diesem Vortrag werden wir einen Blick auf das begehrteste Thema werfen, das ich seit dem ersten Tag bekommen habe. Und so erstellen Sie Ihre eigene benutzerdefinierte Dimension. Ja, wir sind endlich hier, es passiert endlich. Und wieder einmal, wie der letzte Vortrag mit den Befehlen, war
er sehr viel einfacher, als ich erwartet hatte. Es gibt eine Menge Änderungen zwischen Minecraft-Versionen mit sowohl der Welt, der Weltgeneration, und der Dimension Generation als auch. Nun, zum Glück, was passiert ist, ist, dass die Dimensionsgenerierung im Grunde nur die verschoben
hat, so dass Sie im Grunde fast alles innerhalb von JSON-Dateien tun können. Jetzt ist das ziemlich cool. Wenn Sie Datenpakete für uns erstellen möchten, ist
es eigentlich auch sehr einfach, da wir nur
zwei JSON-Dateien haben müssen , die definieren, welche Art von Dimension es ist. Und dann auch, wie es aussieht. Die, Ich würde nicht sagen, dass es ein paar Nachteile gibt, aber nun, mal sehen, wie das funktioniert. Das Einzige, was ich am Anfang erwähnen werde, weil einige Leute vielleicht ein wenig enttäuscht sein. Wir werden keinen Blick darauf werfen, wie Sie Ihr eigenes Portal erstellen können. Das wird kein Vortrag sein. In diesem Fall. Die Art und Weise, wie wir teleportieren, ist, indem Sie mit der rechten Maustaste klicken. Wir werden es wahrscheinlich zum
Kupfer machen , nur weil ich das irgendwie lustig finde. Aber wir werden mit der rechten Maustaste auf einen Block und dann teleportieren in die andere Welt, Im Grunde die andere Dimension. Ja, wenn du ein Portal wärst, dann sag das, aber dann musst du das alleine herausfinden. Aber ich glaube, dass dies machbar sein sollte weil die Teleportation selbst innerhalb des Blocks geschieht, wenn wir mit der rechten Maustaste klicken. Und es ist auch nicht so kompliziert. Nun, ja, mal sehen, was wir sehen und speichern können, indem wir ein neues Paket in einer
Art Weltpaket namens Dimension Diamond Xian machen. Sie gehen. Und dann im Inneren von hier, werden wir eine neue Klasse machen, die die Mod di Erwähnungen Klasse hält. Jetzt wird das eigentlich ein bisschen anders sein als unsere anderen gut MOD und dann etwas Klauseln. Dies wird eine öffentliche statische und dann einen Registrierungsschlüssel vom Typ Welt haben. Und wir werden das nur nennen „Wie wäre es mit wie KJ? Dim? Sicher, das ist großartig. Aj. So wie das. Ja, ich liebe die Zählung und zeichnen Dimensionen. Warum nicht? Und dann lassen Sie uns auch all dies importieren, indem Sie Alt und Enter drücken. Dann brauchen wir auch eine öffentliche statische Void-Register-Methode. Eine Register-Methode. Und dieser wird tatsächlich folgendes tun. Wir werden es sagen. A j Dim ist gleich dem Registrierungsschlüssel punktiert Laufsteg 38. Und das wird das Register lesen nur wieder, kein Weltschlüssel. Und ich werde einen neuen Ressourcenstandort mit natürlich unserem MC force.html Freitag haben. Und dann ist dies der Weg in ist im Grunde der Name, die KJ Hemd sein würde. Das ist alles, was wir brauchen, um unsere Dimension hier zu registrieren. Und anstelle von MC natürlich werden
wir natürlich ganz unten hinzufügen, die Mod-Dimensionen registrieren. Also das Tolle hier, oder die andere Sache, die wir sind, die Art und Weise, wie wir das schaffen, ist in diesem Fall ohne ein anderes Register, aber das ist völlig in Ordnung, weil das tatsächlich genauso gut funktioniert. Und dann, was wir innerhalb unserer Dimension hier brauchen werden, ist im Grunde ein. Und das wäre, ich werde das die KJ Teleporter nennen. Teleportieren Träne Da gehst du. Ja, das ist einer. Und dies wird die KI zu implementieren sagen eine Viertelschnittstelle. Und das Teleporter ist im Grunde, während das, was uns teleportieren wird. Das ist die Sache, die wir anrufen werden, wenn wir später mit der rechten Maustaste auf unseren Block klicken. Und das wird ein paar Dinge haben. Nun habe ich dies von einem sehr,
sehr schönen GitHub-Repository angepasst , das die Tageslicht-Dimension war. Wenn ich mich nicht irre, dies wird auf jeden Fall
dies wäre auf jeden Fall verlinkt oder Blog-Post. Das ist nicht ganz richtig. Da gehst du. Und das wird als Ressource verknüpft werden, weil das von unschätzbarem Wert war. Denn in der Regel habe ich versucht, einen Blick auf Dimensionen zu werfen. Und das Problem ist, dass zum Beispiel mit HF-Tools, großartiger Mod, absolut großartig, erstaunlich, sogar Code-Basis, oder? Es ist wirklich gut. Ich will nur die Dimension. Es gibt etwa 180 verschiedene Klassen, die für die Dimension sind, weil das tatsächliche MOD-Paket oder der andere Modus so groß ist wie groß. Es ist so riesig, dass es ja ist, es ist ein bisschen viel. Und deshalb ist die Tageslicht-Dimension, denn das ist das einzige, was der Modus hinzufügt, eine neue Dimension. Und das ist wirklich nett. Also öffentlich statisch, Boolean, dies wird innerhalb einer Dimension sein. Ich erwähnte Regel. Wir werden es lassen. Das ist das, was wir wollen. Ja. Und dann haben wir ein öffentliches K, J Teleporter. Das ist also eine neue Handlung hier. Entschuldigung. Dies ist ein neuer Konstruktor mit dem Booleschen hier. Das ist also einfach Innenmaße. Und dann können wir im Grunde diesen Punkt setzen, diese Position ist vorbei, und dann auch dieser Punkt innen. Entschuldigung, das ist statisch. Das funktioniert nicht. Natürlich können wir das nicht tun, aber seien Sie nicht verrückt. Innendimension ist gleich in Siedlungen, die sie bekommen haben. Und dann haben wir das Einzige, was wir überschreiben werden. Und das wird ein, wir müssen das im Hemd umbenennen. Vielleicht nicht. So etwas. Deswegen gehen sie. Und dann ist das einzige, was wir hier haben müssen, das ist eine öffentliche Einrichtung, wird Entität platzieren. Und das wird eine Entität haben. Entität. Es hat eine Server-Welt, die Deep Learning Welt ist. Wir werden eine Serverwelt haben. Nur die Zielwelt. Wir werden den Schwimmer haben. Wir werden eine Funktion von Boolean und einen Rückgabetyp von Entität haben. Und dann ist dies die neu positionierte Entität. Und das wird es sein. Ja. Ok. Zunächst einmal, Entität, ja. Die Serverrollen alt und und und dann die Funktion Java util Funktion, die Sie gehen. Dies ist also die Überschreibungsmethode oder die Methode, die wir hier überschreiben müssen. Und das ist im Grunde die Sache, die für unseren Teleport verantwortlich ist. Und jetzt haben wir eine Menge Dinge zu tun. Also vor allem, dass die Entität, die wir hier gegeben werden fallen oder neu positionieren Entity Punkt mit einem Fehler hier gelten. Und dann werden wir ein Doppel haben. Also dieses Doppel ist, wenn ich mich nicht irre,
das y, entschuldigen Sie mich, warum ich mich gefragt habe, warum sie gehen. Die y-Position, an der sich die oberste Ebene befindet. Gut im Grunde für Teleportation verfügbar. Das ist die Idee hier. Also, dann werden wir sagen, wenn ja, ist nicht innerhalb der Dimension, dass wir sagen werden , y ist gleich diesem Punkt, get y und dann bleiben wir folgendes. Wir werden die haben, wir werden eine Position haben, die der Schreibtisch-Nationalarzt sein wird. Pause, das ist besser. Welches ist ein neuer Blockpass, der das x und y dieser Position sein wird. So gut. Und dieser Punkt bekommt z Geschichte. Sie gehen und dann wird das y einfach das Y sein, das wir vorher berechnet haben. Und dann gibt es ein paar Dinge, die wir tun müssen, und das ist Nummer eins und Ganzzahl mit Versuchen. Jetzt ist dies da, glaube ich, damit wir im Grunde versuchen können, nach oben zu sagen, und manchmal funktioniert es vielleicht nicht. Und wenn es nicht funktioniert, werden wir es grundsätzlich stoppen. Also haben wir eine while-Schleife und das wird eine verrückte wilde Schleife sein, wie das Ding da drin. Also werden wir eine Zielwelt haben, Entschuldigung, das Ziel, wo Bagel. Und wir werden sagen, okay, bekomme die folgenden Blöcke, seinen Blockzustand an der folgenden Position, und das wird die Zielposition sein. Das ist also die Position, wo wir im Grunde wollen, wird es erscheinen. Und dann sagen wir Git Material. Und wenn das nicht gleich material.ai ist, dann müssen wir einige Dinge ändern. Und das wird sein, wir werden im Grunde nach oben ziehen. Es wird also nicht nur Luft sein, sondern wir können auch, also wollen wir nicht auf andere Weise herumspawnen. Wir wollen in der Luft laichen. Aber es sollte auch kein Wasser sein, so dass es nicht bestimmt werden kann. Lasst uns so etwas machen. Und dann lassen Sie es uns hier runterziehen. Entschuldigung, die Zielwelt wird gesperrt. Geben Sie an der Zielposition an. Noch einmal, ich werde sagen, das wird sagen, ist austauschbar mit den Flüssigkeiten Punkt Wasser. Und das sollte nicht der Fall sein. Dann werden wir ein weiteres Ende haben, das die Zielwelt sein wird und schwarze Position bekommt, eine Blockstatus-Geschichte. Und dann werden wir die Zielposition haben, die nach oben geht. Das ist also eine Position nach oben. Das ist also noch Offsets. Dieser Block war um eins, und das ist in der Aufwärtsrichtung. Und es wird, tut mir leid, das ist hier unten, was auch Material bekommen wird. Und ich werde das sagen, wenn das nicht der Luft entspricht. Und dann ist das Letzte, was du vermutlich erraten hättest, im Grunde dieses. Kopieren Sie es noch einmal, negieren Sie es einfach. Und das wird sein, ist austauschbar. Und dann kein Ende hier. Und dann dieses, und dann das Ego 0. Und dann gibt es auch ein weiteres Ende und das wird Pommes werden weniger 25. Was es tut, ist im Grunde zu sagen, Okay, hör zu, wir müssen das Ziel bekommen, wo wir in dieser Welt laichen können. Und wir werden im Grunde nach oben ziehen. Und das machen wir hier. Also sagen wir, die Destillationsposition ist gleich der Zielposition, die um zwei geschossen wird. Also werden wir jedes Mal zwei Blocks nach oben ziehen. Und wir werden das 25 Mal versuchen. Und zwei waren wie: Verdammt, das ist in Ordnung. Die Idee ist also, dass wir versuchen, eine Position zu finden, in
der die beiden Blöcke, wo der Spieler laichen würde, Luft ist. Das ist im Grunde das, was wir hier tun wollen. Das ist der einfachste Weg, um es schnell zu erklären. Nehmen wir an, das ist alles, was das tut, ist es im Grunde überprüft, ob eine bestimmte Position gültig ist oder nicht. Ja, das ist ziemlich gut. Und dann, was wir tun können, ist, dass wir Entität sagen,
setzen, positionieren und aktualisieren können . Und das wird die Zielposition sein, ydx, Zielposition get y und Zielposition get ist das E oder Z. Und das ist genau das haben wir auch im Befehl benutzerdefinierte Befehl Vorlesung gesehen. Das ist also wirklich, wirklich nett. Und jetzt müssen wir noch eine letzte Sache tun. Und das wird sein, wir werden sagen, wenn innerhalb der Dimension, dann wollen wir ein paar Dinge tun, und das wird ein boolescher Block zu setzen. Jetzt ist die Idee, dass wir natürlich, wenn wir das im Grunde die Teleportation zurück. Also wollten wir einen Block setzen, wo wir laichen, weil wir sonst eine schlechte Zeit haben werden. Das wird also für eine for-Schleife sein. Dies wird im Grunde eine foreach-Schleife sein. Also sind wir hinter der Scheckstelle blockiert. Das wird blockiert. Pause, hol alles in Marks veränderbares verrücktes Ding. Mach dir keine Sorgen darüber. Ich werde das erklären, was das ist. Das ist nicht unten im Westen, und das ist 10. Also werden wir das in zehn mal 1010 mal zehn mal zehn machen, denke ich, Radius. Das ist danach, danach oder im Ego. Also nach diesem, das westliche Komma und dann ein weiterer Zielpfad von bis 10 und dann Osten um 10. Und wenn wir das haben, dann können wir gehen und eine for-Schleife haben. Also werden wir im Grunde jede Blockposition in einem zehn mal zehn mal zehn Würfel überprüfen. Und dann sagen wir folgendes. Wenn die Zielposition Punkt-Punkt-Punkt noch, sorry, Zielwelt, die sehr wichtige Unterscheidung dort, erhalten blockierten Zustand an der Position, überprüfen Sie Position. Dies ist also die Position, die wir im Grunde die for-Schleife durchlaufen, die wir durchlaufen. Wenn der Bloch-Theorem blockiert wird, ist eine Instanz von Kupfer oder weil wir tun werden, dass wir die Corporate Arbeit haben. Das ist sehr wichtig. Und Sie werden sagen, ersetzen Sie Kupfer oder mit Ihrem Taleb-Block, richtig? Jetzt ist das sehr wichtig. Das Kupfer oder in diesem Fall setzen wir dies nur ein, weil wir eine Instanz dieses Kartenblocks hier als Klasse haben. Und wir können einfach im Grunde zugreifen, dies wird Ihr teleportierter Block sein. Dies ist der Block Rechtsklick, der im Grunde die Fähigkeit hat zu teleportieren. Also werden wir dann auch brechen. Also im Grunde, sobald wir einen Kupferblock gefunden haben, Rezept wie Okay, Okay, wir müssen keinen Block setzen. Nun, wenn wir das nicht finden, dann werden wir sagen, wenn Sie Schloss setzen, Entschuldigung, Dort gehst du. Wir werden sagen, Zielwelt, das Set Sperre, Zustand der Zielposition. Und das wird Schlammblöcke sein, Punkt oder Punkt bekommen. Das erhält den Standardzustand. Oh, sieh dir das an. Das hat er schon für mich getan. Das ist sehr nett. Und dann am Ende werden wir nur die Entität zurückgeben. Keine Entität. Da gehst du schon. Also, was haben wir hier gemacht? Wenn wir in unsere Dimension teleportiert werden? Wir wollten einen Kupferblock setzen, weil dies der Block ist
, der uns in die Dimension bringt und wir etwas brauchen, um zurück zu kommen. Und genau das machen wir hier. Wenn die, wenn wir diese Kupferblockierung tatsächlich finden, brauchen
wir nichts zu tun. Wenn wir den Block nicht finden, dann genau, wo wir teleportieren, werden
wir diesen Block setzen. Das ist alles, was wir damit machen. Nun die KJ Teleporter, wie ich ein wenig sagte. Eigentlich ist es okay. Es ist nicht zu verrückt. Wenn wir, wenn er zuerst einen Blick darauf nahm, könnte ein wenig verrückt sein, aber insgesamt hoffe ich, dass es nicht zu verrückt war. Diese hier überprüfen wir nur, dass wir tatsächlich laichen können. Und dieses hier würden wir einfach
einen bestimmten Block auf unseren Kupferblock setzen , damit wir zurückteleportieren können. Und jetzt müssen wir in diesen Kupferblock gehen und das ändern. Nun, die Tasse, was brauchen wir? Wir brauchen eine öffentliche Aktion Ergebnistyp. Dies ist auf Blockieren oder Entsperren aktiviert. Ja. Das ist viel zu viel. Viel zu viel. Gehen wir einfach, um es zu überschreiben und gehen wir dorthin, wo sie gehen. Weil es absolut lächerlich wäre, das auszutippen. Sie vor, also, okay, auf Protokoll aktiviert, bedeutet
das, dass wir mit der rechten Maustaste auf den Block klicken. Was brauchen wir? Wir brauchen das erste, was wir wollen die Welt in ist fern sollte nicht der Fall sein. Wenn nicht, wenn es nicht entfernt ist, gehen
wir. Das nächste Ding. Wenn der Spieler hockt, hockt
runde Form ein Ego. Wenn das nicht der Fall ist. So kann der Spieler nur auf den Deckungsblock klicken. Wenn es nicht so ist. Wenn sie nicht hocken, dann haben wir den Server. Sie benötigen den Server Minecraft Server, der der Server
ist, ist gleich Berlin dot Git-Server. Interessanterweise. Und jetzt müssen wir uns das ansehen. Und dann sagen wir, okay, wenn der Server nicht null ist, dann können wir fortfahren. Und dann werden wir uns das ansehen. Wir werden sagen, okay, mal sehen, was diese Welt jetzt ist, wir werden interessant. Also, wenn diese Welt dot-dot-dot dimensional. Also, jetzt überprüfen wir im Grunde, in welcher Dimension, wo, wenn dies
der Multi-Dimensions-Mod di ist , erwähnt, dass KG Dip, oder? Wenn wir innerhalb unserer benutzerdefinierten Dimension sind,
dann, was wir tun wollen, nun, wir wollen das sagen, wir wollen Server-Welt
überwältigt bleiben , ist gleich Server dot get world. Wir werden das eins nach dem anderen durchmachen, nachdem wir mit deiner World.org fertig sind. Aber wir werden nur schnell,
schnell, wir werden das Semichinon tun. Also werden wir die Serverwelt bekommen. Das wird die Überwältigung sein. Und jetzt ist das große Ding, dass, wenn diese Überarbeitung nicht null ist, so dass wir tatsächlich teleportieren können. Und wir werden sagen, okay, Spielerpunkt hat sich geändert. Ich habe sehr nettes Kommando erwähnt. Unsere Methode. Ich muss ehrlich sein. Wir gehen zur Überarbeitung und
machen einen neuen KJ Teleporter mit folgendem. Die Position, an der sich dieser Block befindet. Und mit einem Falschen, einem Falschen, weil wir
im Grunde nicht sind , teleportiert es innerhalb unserer Dimensionen. Ok? Okay, wenn, und jetzt lasst uns darüber nachdenken. Ja, das ist in Ordnung. Nun, wir wollen das hier, tut mir leid. Das ist ein bisschen zu viel. Und dann haben wir ein anderes. Und das ist noch sehr wichtig. Die Formatierung hier immer gleich. Das wird also passieren, wenn wir innerhalb unserer Dimensionen sind. Wenn wir nicht innerhalb unserer Dimension sind und wir mit der rechten Maustaste auf einen Kupferblock. Nun, dann sollte es uns wahrscheinlich in diese Dimension bringen. Also sagen wir Serverwelt. Und das wird die Schlüsseldimension k-j sein. Dim, sicher, das ist in Ordnung. Hat es nicht. Und dann sagen wir Server, diese Welt. Und das ist eine tolle Sache. Viele Dimensionen dot KJ dim, ist das nicht schön? Anstatt also Welt zu verwenden, die Schwäche überwältigt hat, sagen Sie Multi-Dimensionen, die AJ dim. Das ist wirklich nett. Ich muss ehrlich sein. Und dann prüfen wir auch, ob das null ist oder nicht, nur für den Fall, weil man es nie weiß. Das ist also ungleich null. Und wenn das der Fall ist, dann werden wir sagen, Spieler dot-dot dot dimension ändern. Ich werde sagen, das ist der KJ Dim. Neue KJ Telefonbestellung. Position. Und dann werden wir wahr sagen, weil wir jetzt innerhalb der Dimension teleportiert werden. Und wenn das erledigt ist , dann ist das genau hier drin. Wir werden den Aktionstyp Ergebnis des Erfolgs zurückgeben, weil wir erfolgreich sind. Nun, nach allem, eigentlich. Ja, nach allem, ja, wir wollen den Superbug-Aktivator zurückgeben. Das ist in Ordnung. Und das war's. Ich weiß verrückt, was passiert. Okay, lasst uns das durchmachen. Zunächst einmal überprüfen wir, ob wir im Grunde nicht in der Ferne sind oder nicht. Also sind wir im Grunde darauf, dies auf dem Server auszuführen. Das nächste, was wir nicht hocken, sollte beides sein. Leicht genug. Dann bekommen wir den Server und stellen sicher, dass es tatsächlich existiert. Wenn der Server existiert, überprüfen wir, okay? Sind wir innerhalb unserer vordefinierten Dimension? Wo sind wir in einer anderen Dimension? Wenn wir innerhalb unserer Dimension sind, dann die, dann wird das Ziel, das wir wollen, das überwältigende sein. Deshalb bekommen wir die Unterwelt,
überprüfen, ob das null ist oder nicht und teleportiert dann grundsätzlich in die Überbord. Wenn wir jedoch nicht in unserer Dimension sind, dann wollen wir uns in diese Dimension teleportieren. Und dann werden wir hier im Grunde genau dasselbe tun. Jetzt könnte so etwas wahrscheinlich in seine eigene Methode extrahiert werden. Wahrscheinlich mit ein paar Utils. In diesem Fall völlig in Ordnung. Ich überlasse es Ihnen, besonders wenn Sie mehrere Dimensionen haben. Und jetzt ist das Letzte, was wir brauchen, die eigentliche Dimension. Nun, irgendwie wie, wie es erzeugt. Und wir werden das in unserem Datenordner haben. Also Daten m Partituren. Und dann haben wir ein neues Verzeichnis namens Diamond. Und dann haben wir ein anderes Verzeichnis, das gekühlt wird. Die Erwähnung Unterstrich Typ. Sehr wichtig. Nun, das erste, was hier wird eine neue Datei sein, KJ db.json. einmal sehr wichtig, dass das benachbarte folgt. Und ich werde ein paar Dinge überschreiben, was ja, ich werde mich überschreiben und dann werden wir uns das schnell ansehen. Also zuerst haben wir einen Typ. Das ist einfach unser MC, also unsere Melodie. Und dann muss der Name, den wir hier angegeben haben, Oh, Stella Weg hier muss der gleiche sein. Und dann haben wir den Generator. Und der Generator ist wirklich das Ding, das sehr verrückt ist. Also in diesem Fall, was wir hier tun werden, ist einfach ein flaches Land im Grunde mit dem in der Höhe, wird man Grundgestein haben und dann von der Höhe eins bis 60 wird Sandstein haben. Das war's. Alle werden Flugzeuge sein, äh, keine Strukturen, keine Features, nichts, richtig? Wenn Sie Ihre eigene Dimension wollen und Sie etwas Phantasie wollen, werde
ich eine Ressource darin haben,
die auf der Minecraft fandom.com sein wird, die die benutzerdefinierte Dimension hat, irgendwie als JSON Dateien dort gespeichert und die gesamte Syntax hervorgehoben ist. Es ist unglaublich nützlich. Und wenn Sie wirklich mehr Kontrolle wollen und wir wirklich angeben wollen, was dort passiert. Dann können Sie sich das ansehen. Für diesen Vortrag werden wir es hier belassen. Wir werden eine neue Dimension schaffen. Die Art, wie Sie es konstruieren. Dass Sie sich das mal wieder einmal ansehen müssen, aber ich bin sicher, dass Sie das tun können. Ich habe alle, Ich habe volles Vertrauen Sie Dimensionstyp. Wir brauchen noch eine Sache und das wird
wieder eine neue Datei sein, die auch KJ db.json genannt wird. Und ich werde das auch schnell kopieren. Und das sind nur einige grundlegende Variablen oder Parameter, die die Welt hier im Grunde hat. Und wie die Zeit. Wenn Wetten funktionieren, diese Art von Dingen. Wieder einmal, hier mit dem Namen sehr wichtig, dass dies
die MOD-ID ist und Sie Namen angegeben wurden. Und das ist es. Natürlich sind alles, was wir getan haben, sowohl die neuen JSON-Dateien als auch die Klassen wie immer als Ressource verfügbar. Und nun schauen wir mal, ob das tatsächlich funktioniert hat, wenn sich unsere harte Arbeit gelohnt hat. Also starten wir diesen Client und lassen Sie uns sehen, ob wir
in unsere neue Dimension gelangen können , indem Sie mit der rechten Maustaste auf einen Trichter klicken oder es ist irgendwie lustig, aber das ist zu erwarten. In Ordnung. Mal sehen. Lass uns eigentlich was schulden, in Ordnung. Und jetzt bin ich sehr daran interessiert, ob wir alles
getan haben , jetzt sieht es
irgendwie aus , dass wir natürlich eine neue Welt dafür schaffen müssen. Lassen Sie uns einfach eine neue Welt hier im kreativen Modus erschaffen. Und dann lass uns eine neue Welt erschaffen. Das erste, was passieren wird, ist, dass Sie diese Art von Welt mit Experimentiereinstellungen werden nicht unterstützt. Das liegt daran, dass wir eine neue Dimension haben. Und Minecraft ist wie, bist du sicher, dass du das tun willst? Jetzt? Wir sind uns sicher. Damit wir fortfahren können. Während Sie dies testen, werden
Sie wahrscheinlich mit diesem Pfeil umgehen müssen, wenn Sie eine neue Welt erschaffen. Und ich glaube auch, wenn du in eine Welt ladest
, wird es genau so sein. Sie können auf Weiter klicken und alles wird gut funktionieren. Wenn Sie bescheiden sind, jeder Demotic, Es gibt eine Karte, die sagt,, das ist wie keine experimentelle Welt Generierung Fehler oder Warnung. Das ist definitiv etwas, das Sie in einen Spott zurück aufnehmen sollten,
wenn Sie möchten, wenn Sie Ihre moderne amorphe verwenden würden. Aber ja, das ist es im Grunde. Und mal sehen, lasst uns das Kupfer oder den Block holen. Das wird sehr interessant sein. Also werden wir das hier niederlegen. Und jetzt die, Bist du bereit, Katze? Bist du bereit? Rechtsklick. Alle. Und hier sind wir. Und da sind wir. Eine flache Welt mit einem Haufen Sandstein, genau wie wir es in getan haben. Und dann, wenn wir uns das ansehen, also wenn wir F3 drücken, dann können Sie tatsächlich hier sehen MC Kurs KJ dim. Das ist also unsere Dimension. Dies sind Ebenen, wie wir im Grunde als JSON-Datei eingefügt haben. Und ja, das ist es im Grunde. Und jetzt würden wir mit der rechten Maustaste auf diese klicken. Wir werden tatsächlich aufgehalten werden, teleportiert genau dort, wo dieser Blöckel. So können wir grundsätzlich voneinander teleportieren und erhalten auch immer den schönen Soundeffekt. Ja, das ist im Grunde so, wie ich, ich denke insgesamt, die Dimension ist einfacher, als ich erwartet hätte, wenn ich absolut ehrlich bin, weil es eine Menge Dinge gab, die sie umgab. Aber insgesamt denke ich gerade jetzt, dass es ziemlich unkompliziert ist. Ich hoffe, dass das für Sie nützlich war und Sie etwas Neues lernen. Aber ja, wieder einmal, alles ist als Ressource verfügbar
sowie der Link zu sowohl dem GitHub der Lichtdimension, was absolut erstaunlich ist, der Tageslicht-Dimension. Und neben dem verknüpften Minecraft-Fandom für die benutzerdefinierten Dimensionen, so dass Sie
im Grunde Ihre JSON-Dateien anpassen können , wie Sie möchten. Ja, ich hoffe, dass dies nützlich war, um, wie ich sagte, wenn es irgendwelche Fragen gibt,
natürlich, fühlen Sie sich frei zu fragen und ich werde sicher sein, zu antworten. Und ja.
79. (Minecraft) Schaffung einer großen Kachel: Alles klar, willkommen im Mikrowellen-Kurs. Und in diesem Vortrag werden wir ein neues großes Schach hinzufügen. Nun, ich werde Sie warnen, dass dieser Vortrag, ohne Zweifel, überall ein bisschen schneller 40 sein wird. Und du verstehst vielleicht nicht alles, was passiert. Jetzt. liegt daran, dass das Hinzufügen einer neuen Truhe eigentlich nicht unbedingt schwer ist, aber es ist sehr involviert, weil es viele,
viele, viele verschiedene Komponenten gibt , die wir im Grunde bekommen müssen. Wir müssen sie in Ordnung bringen, damit alles funktioniert. Und dann eines der Dinge, bedauerlicherweise, das wird der Deckel öffnen und schließen. Das funktioniert nicht. Ich bin mir eigentlich nicht sicher, warum ich alles erneut überprüft und überprüft habe. Und ich kann es einfach nicht zum Laufen bringen. Wenn es jemanden gibt, der nach dem Anschauen das weiß, warum. Ich freue mich sehr, einen Nachtrag zu
diesem Vortrag oder als nächsten Vortrag hinzuzufügen , um im Grunde zu sagen, okay, so können wir das beheben. Aber für jetzt werden wir nur,
nur in Anführungszeichen haben eine Truhe, die wir öffnen können und das wird eine GUI anzeigen, und das wird in der folgenden Woche sein. Ich habe das eigentlich schon vorbereitet. Es ist dieser hier. Es ist also eine größere Truhe. Und ja, lasst uns mal sehen, was wir sehen können und wie wir diese eine größere Truhe bauen können. Also zuerst, natürlich, was wir brauchen werden, ist, dass wir ein neues Thailand T brauchen und es wird die fruchtbaren Entitäten geben. Du bist eine neue Klasse, die große Brust eng genannt wird. Ich liebe es. Jetzt wird dies erben oder es wird die folgende erweitert Brust Kachel Entität
erweitern. Und es wird die folgenden zwei Schnittstellen implementieren. Ihs, Deckel und die,
IT, der identische Pilot. Und wir können tatsächlich die Brust-Fliesen-Entitäten überprüfen. Also, wenn wir mit der mittleren Maustaste darauf klicken, dann werden wir tatsächlich in diese kommen. Und jetzt fängt das wirklich lustige Ding an. Wir können im Grunde alles hier reinnehmen und es einfach kopieren. Wir werden ein paar Dinge ändern, aber das meiste davon wird genau gleich bleiben. Das wirst du also tun. Du wirst auf die Brust Fliese Entity gehen, um Zeile 277, was dein Cursor dort. Und dann gehen Sie hoch und gehen im Grunde den ganzen Weg hier hoch, drücken Sie die Umschalttaste und drücken Sie die linke Maustaste, und drücken Sie dann Control C. Gehen Sie hier rein, steuern Sie V, und alles ist hier drin. Das ist wunderschön. Wir werden hier eine Reihe von Pfeilen haben, die wir reparieren werden. Mach dir keine Sorgen darüber. Das wird alles auf dem Weg behoben werden. Das erste, was
ist natürlich der Name des tatsächlichen, der Name des tatsächlichen Konstruktors ist falsch. Also können wir diesen einfach kopieren und ihn hier in beide einfügen. Und dann ist das etwas, das wir ein wenig ändern müssen, um die Linie hinunter. Abgesehen davon, das einzige, was wir ändern wollen, ist die Anzahl der Elemente, die gespeichert werden. Das wird 66. Jetzt weiß ich das, denn wieder, wenn ich unsere Brust UI wieder öffne, können
wir tatsächlich sehen, dass wir 1, 2, 3, 4 ,
5, 6, 7, 8, 9, 10, 11. In einer Reihe und 123456 Reihen. Daher gibt uns das 66 Artikel, die dieser Test dieses Bild speichern kann. Und das ist im Grunde das. Und dann, wie ich sagte, wir werden auch, diese Größe Inventar wird auch 66. Also, ich weiß nicht, warum wir das an zwei Orten brauchen. Es ist offensichtlich, wie die eigentliche Truhe gebaut ist und insgesamt, und das ist fast in Ordnung. Jetzt ist die Sache, die wahrscheinlich ein
wenig seltsam sein wird, weil in der Regel, wenn wir Truhen nebeneinander haben, die Truhen zu einem in eine neue Truhe kombiniert. Jetzt wollen wir dieses Jahr eigentlich nicht, aber das ist in Ordnung, denn es wird gut sein, im Grunde, weißt du, es wird sowieso nicht passieren. Also überall, wo wir
zum Beispiel Ihren Brustbehälter haben , müssen wir, nachdem wir unseren großen Schachbehälter und unseren großen Brustbildschirm gemacht
haben, müssen wir das tatsächlich ändern, aber im Moment können wir es tatsächlich so behalten ist es. Das ist eigentlich in Ordnung. Fast im Grunde alles von der vertrauenswürdigen Entität kopieren. Dann wird das nächste, was 1 in unseren Bildschirmen sein und dann wissen, und innerhalb unseres Containers, wollen
wir zuerst einen Container,
als der neue Klassencontainer, das Ego,
der große Stresscontainer sein wird . Das sollte nicht zu verrückt sein. Dies sollte nichts sein, was ungewöhnlich
ist, ist einfach die Container-Klasse erweitert. Behälter. Dies ist nicht der richtige Container. Und der Container, den wir wollen, ist der Net Minecraft Inventar Container. Sehr wichtig. Kann jederzeit passieren. Kann manchmal auch mit Glück mit einem Block passieren, der wirklich dumm ist, aber ein Sprung. Okay, lassen Sie uns die Dose bewegen, können mit interagieren, wir werden nur das Folgende zurückgeben. Wir werden zurückkehren, wir brauchen wirklich eine, okay? Zuallererst werden wir folgendes benötigen. Wir werden eine private letzte Int brauchen, die Num Kumpels sein wird. Und wir werden benötigt werden, wenn private endgültige int, Anzahl der Rollen. Wir benötigen auch eine private, private Kachel-Entität, Kachelentität, Gerichte Kachelentität und einen privaten Augenobjekt-Handler, der
die Player-Inventarschicht in ist. Das ist in Ordnung. Wir werden, ja, lassen Sie uns eigentlich nur Konstruktorparameter, also stellen
wir sicher, dass alles hier ausgewählt ist und wir sagen, okay, und dann müssen wir den Konstruktor ein wenig ändern. Wir brauchen auch eine int ID, eine Welt, Welt, und ein Block OS, OS. Und dann will ich das anders herum. Also möchte ich zuerst die Tail-Entity und dann die Layer-Inventur und dann die Anzahl der Spalten und Zeilen. Ja. Und dann ist Lock Pass einfach falsch geschrieben. Da gehst du. Und dann haben wir es. Okay, also ist das in Ordnung. Das ist eigentlich o Datei. Was wir wollen ist, dass der andere eigentlich noch nicht tun kann. Nun, wir können jedoch tun, ist, dass wir die Kachel-Entität bereits setzen können, indem wir Welt
bekommen, die Insel an der gegebenen Position hier bekommt. Und dass der Spieler Inventar. Interessanterweise wollen wir eigentlich keinen Item-Handler hier drin. Was wir eigentlich wollen, ist das tatsächliche Spielerinventar, denn so bekommen wir es. Und um es zu konvertieren, wollen
wir tatsächlich einen neuen Inventar Wrapper mit dem Layer-Inventar. Wie ich schon sagte, einige dieser Dinger sind irgendwie verrückt. Aber ja. Und dann werde ich tun, ähm, ja. Also im Grunde werden wir dann überprüfen, ob es dort sogar eine Kachel-Entität gibt. Also, wenn Talent ungleich null ist, dann werden wir talentierte t dot get Fähigkeiten. Wir haben die Fähigkeiten gesehen, und dies ist die Geschwindigkeit des Item-Handlers. Und wenn das da ist, dann werden wir folgendes tun. Wir sagen „Handler“. Und dann werden wir eigentlich zwei neue Methoden machen. Denn wenn wir einen Blick auf eine Familie, gehen zurück auf den großen Titel und wir gehen, um die mittlere Maustaste auf den unadjust Container klicken. Dann werden wir zuerst sehen, ob es gibt,
gibt es eine Menge statischer wie Heißhunger. Und dann hat auch der Vertrauenscontainer-Konstruktor Folgendes. Dies konstruiert die Schlitze der Brust. Das ist wie, ich meine, es ist ein wenig schwer, den Code anderer Leute zu kritisieren, aber das ist, ich weiß nicht, was hier passiert. Gleiche mit diesem und dasselbe mit diesem. Nun, was dies tut, ist einfach das schafft die Brust Inventar, und das schafft das Inventar des Spielers. Und dann diese letzte Sache schafft die Schlitze für die Bar, die, die Inventarleiste. Ich weiß nicht, warum. Dies ist nicht ordentlich in
ein paar private Methoden gepackt , weil das genau das ist, was wir tun werden,
ist, dass wir private Methoden haben. Wir werden nur die private Leere sein, generieren Truhe Inventar-Slots mit dem Item-Handler, Item-Handler, alten Handler. Und dann werden wir es im Grunde genau dasselbe haben. Das ist das Lustige. Als ob wir das nehmen können, oder? Und wir können es Steuerelement C kopieren und es hier in unseren Container stecken, genau hier. Und wir müssen nur sehr, sehr,
sehr wenige Dinge ändern . Ich bin mir nicht hundertprozentig sicher, dass das in Ordnung ist. Und dann wird das die Anzahl der Anrufe sein. Und dann, anstatt einen neuen Slot zu machen, werden
wir einen neuen Slot-Item-Handler erstellen. Und dann hier legen wir einfach in den Griff. Und das ist es im Grunde. Jetzt müssen wir hier ein paar Dinge tun. Und das ist hauptsächlich der Index ist eigentlich k plus j mal this.com Aufrufe. Und dann die Position, diese Position ist tatsächlich richtig und diese Position ist nicht korrekt. Das wird 14 sein. Jetzt werde ich erklären, wie ich in einer Weile zu dieser Position komme. Wir meinen Ligand 0, 1, Lassen Sie uns das derzeit so halten, wie es ist. Und dann erklären wir, wie ich die tatsächliche Position bekomme, die wir brauchen. Und dann können wir eine neue private Leere haben, die die Generierung später sein wird, erfinden Inventar-Slots. Dies wird einen Item-Handler namens Handler und eine Layer-Inventur haben. Layer-Inventar Und dann. Tun Sie dasselbe, wie wir es vorher getan haben. Sie können das einfach nehmen und kopieren und es direkt hier setzen. Und dann müssen wir ein paar Dinge tun. Das erste, was ist, dass wir das int I gleich diesem Punkt num-Zeilen minus 4 mal 18 haben müssen. Wir wollen zuerst die 4 hier subtrahieren und dann dies tun. Nun ist dies im Grunde die Idee ist, dass wir die letzten vier Zeilen oder das Inventar haben. Ich habe das hier von genau hier genommen. Wie ich schon sagte, das ist absolut überall. Ich würde sagen, dass es wahrscheinlich etwas Refactoring verwenden könnte. Aber es wird finden, also wird dies jetzt das Spielerinventar anstelle des Handlers im Inneren von hier haben. Weil der Spieler, das Spielerinventar, das wir hier gegeben haben. Bitte. Warum eigentlich, warum nicht? Ich schätze nicht. Du gehst, ich schätze, ich habe mich geirrt. Nein. Das brauchen wir eigentlich nicht. Wir brauchen keine von denen. So viel dazu. Und dann werden wir die Positionen auch hier behalten. Und die Positionen werden sich auch halb ändern. Wie ich schon sagte, wir werden uns das in einer Weile ansehen. Also dann rufen wir dies einfach mit dem Handler auf und
lassen Sie uns dann Layer-Inventar-Slots generieren. Und das ist in Ordnung. Und ja, nachdem wir das getan haben, welches sind die Slots, die generiert werden, was ist das Problem hier? Ja, wir müssen super einfügen, das ist völlig in Ordnung. Der Rest, Interessanterweise, wir können einfach nehmen, so dass wir nicht wissen, Wir tatsächlich, wir wollen nicht das dies. Wir wollen das nicht. Wir wollen die Übertragung und Slot, aber Sie wollen den Container geschlossen. Und wir wollen auch die Anzahl der Zeilen, die wir nicht wirklich brauchen. Wir brauchen jedoch die Brust Inventar. Also lassen Sie uns das nehmen, damit wir im Grunde alles andere kopieren und es hineinlegen können. Und das können wir dann auch loswerden. Und dann brauchen wir das Inventar, das folgendes sein wird. Dies ist die, dies wird die Kachel-Entität später in der Linie sein. Das wird also im Grunde die große Brust-Fliese sein, diese Fliesen-Entität. Sie gehen. Also gibt es das Inventar, würde
ich eigentlich sagen, oder wir können dies umbenennen, um Brust Inventar zu bekommen, weil weniger Inventar. Ich weiß nicht, warum das der Name ist, aber ja. Okay. Tut mir Leid, das sieht gut aus. Brust Inventar Wir können es wirklich wissen. Es ist einfacher, einfach noch
einmal zu sagen, Kachel-Entität. Ja, talentierte T, Entschuldigung, da gehst du. Tile Entity Dot Cast und dann wird es dies auf Entität werfen, sorry, große Kette und große Brust eng. Sie gehen. Und dann nähern wir uns dem Inventar. Das ist alles, was wir hier brauchen. Wenn es um das Minimum geht, können
wir auch diesen Kommentar loswerden. Und dann der Transferrin-Slot, das ist in Ordnung. Dadurch wird das Klicken der Umschalttaste bearbeitet. Das ist völlig in Ordnung. Diese Summe können
wir im Grunde nur dieses Jahr behalten, außer diesem. Es muss mit diesen Punkt-Num-Aufrufen gemacht werden. Und dann ist dies diese.name-Aufrufe. Ja. Und dann ist das was? this.name, da die Anzahl der Spalten in diesem Fall. Mehr als neun. Es ist also nicht schwer codiert da drin. Kann mit interagieren ist das Letzte, was wir im Grunde tun müssen. Und das wird folgendes sein. Dies wird eine große Brust Titel, this.title Entität. Und dann werden wir diese beiden Breite mit einigen Klammern umgeben. Tut mir leid, ich bin das Ego. Und dann sagen wir, dass Punkt vom Spieler nutzbar ist. Spieler. Ich glaube, das wäre es für den Container, das einzige, was wir hinzufügen müssen, ist der Superheld. Aber wir können das noch nicht tun, weil wir noch nicht an
der Stundenmarkierung Container in unseren Mundbehältern definiert haben. Aber wir können das jetzt tun. Können wir das jetzt machen? Ja, das können wir eigentlich nicht. Wir sollten in der Lage sein, das zu tun. So können wir sagen, öffentliche statische endgültige. Eigentlich wissen Sie was, lassen Sie uns das überschreiben. Seien wir ehrlich. Es ist einfacher, das zu kopieren. Dies wird der große Brustbehälter vom Typ, großer Brustbehälter mit dem Namen großen Brustbehälter sein. Und dann werden wir einen neuen großen Schiefercontainer mit einem Fenster IDA-Welt erstellen, eine Position im Inventar. Und dann statt des Interatrialen, des Spielers, sagen
wir eine Sechs, 11. Das ist, tut mir leid. Ja, wir haben noch eine Sache. Interessant. Was haben wir? Wir haben die Kachel-Entität. Wir brauchen die Kachelentität nicht. Das ist lächerlich. Eine gesetzliche Zahl von okay. Nichts davon. Sechs, richtig? Anzahl der Spalten ist 11 und Anzahl der Zeilen. Ja, das hoffe ich. Wir werden sehen, weil es eine gewisse Seltsamkeit mit den Spalten und Reihen gab. Ich bin mir nicht hundertprozentig sicher. Wir werden es so behalten. Ja. Ich denke, das ist in Ordnung. Ja. Und dann wird das schon gut funktionieren. Das ist also ziemlich nett. Der Container ist fertig. Und dann können wir hier auch wieder in die Brust gehen. Und dann haben wir den Brustbehälter. Jetzt können wir das im Grunde einfach auswählen, kopieren und dann Control R drücken und dann überall damit ist es nur Container. Wir können einfach sagen, große Brust Container und dann ersetzen alle. Zunächst einmal werden wir einen Pfeil bekommen,
aber das ist einfach, weil der große Schachcontainer für Italien nicht so ist, als wäre er nicht da. Entschuldigen Sie mich. Bitte. Habe ich das falsch geschrieben? Ich habe ich vermisste Typen. Tom und ich haben nichts falsch geschrieben. Also bin ich mir nicht 100% sicher, warum er ein Problem mit okay hat. Aus welchem Grund auch immer das stimmt. Ich meine, okay. Ich denke, das Ersetzen hat nicht ganz funktioniert, aber sie gehen. So können Sie einfach überall, wenn es Wetter-Stressbehälter gibt, ersetzen
Sie das einfach durch großen Behälter. Ja. Für immer, weil er nicht ganz funktioniert hat. Interessant. Nun, okay. Sicher. Ja. Abgesehen davon, werden wir uns in einer Weile darum kümmern. So wurde der Brustbehälter gut genährt. Hier unten. Ja, hier unten. Wir müssen eigentlich auch etwas ändern, das heißt, wie Sie sehen können, wird das Generikum hierher gezogen und das ist nicht das, was wir wollen. Was wir wollen, ist, dass wir die MOD-Container,
Docker, Container zurückgeben wollen, das erledigt wird. Und dann mit dem Ausweis und dem Spieler ein, Oh, das ist schön. Benötigen Sie diesen Swap, die Inhaltsmethode, nicht. Wir brauchen auch nicht die guten Spieler, die das benutzen. Wir können das auch führen. Und jetzt, siehe, wir haben tatsächlich bereits eine gut fehlerfreie Kachel-Entitätsklasse. Jetzt wird das noch nicht funktionieren, aber dass du jetzt drinnen bist, zurück in unserem großen Brustcontainer, nennen wir den Super. Und das wird die MOT MOT Container sein, Docker, Container, NICHT Tor mit einer ID. Das Ego. Das war's. Das ist alles für den Container endete die Thailand T. Jetzt müssen wir
diese Positionen hier später auf der Linie ändern und nachdem wir den Bildschirm als auch implementiert haben. Nun, im Grunde das Süße, ja, das war's. Okay, dann machen wir den Bildschirm. Und das wird der große Brustbildschirm sein. Große Truhen Bildschirm statt Ihrer großen Brust Bildschirm wird sich verlängern. Und das wird ein Containerbildschirm sein. Um den Bildschirm mit Typ,
großer, großer Brustbehälter zu betreten. Ich liebe es. Dies wird Methoden implementiert haben, diese und dann wurde der Konstruktor implementiert, ja, natürlich. Und es gibt ein paar Dinge, die wir tun müssen. Und die Dinge, die wir in erster Linie tun müssen, ist, weil wir eine haben, also werde ich die elektrifizierten Briefers öffnen. Das war also die GUI. Dies ist die normale Größe einer GUI, die wir in Minecraft gewohnt sind. Und das ist die Größe der GUI im großen Schach. Offensichtlich ist das größer. Deshalb, wenn wir einen Blick auf den Containerbildschirm werfen, wenn wir mittlere Maustaste, klicken Sie darauf. Sie können tatsächlich sehen, dass die Größe hier ist, ist die vordefinierte innerhalb der Container. Wenn wir also etwas haben, das größer ist, geben
wir es hier an. Also haben wir diesen Punkt x Größe ist gleich 212. Diese Punkt-y-Größe ist gleich 221, weil das die Pixel sind, die die, die GUI ist groß, oder? Der große Test ist also 212 Pixel in x-Richtung und 221 Pixel in y-Richtung. Und dann können wir dies auch schon hinzufügen, so dass wir
in Text Vögel GUI gehen und dazu hier hinzufügen können . Stellen Sie sicher, dass Sie es dort kopieren, nicht nur verschieben. Und dann ist dies etwas, das wir auch als Ressource, private,
endgültige Ressourcenstandort für GUI, neue Ressourcenstandort setzen können. Mc Kurs Math.min DID, wie wir sind sehr wohl bewusst. Und dann ist dies innerhalb der Texturen Schrägstrich Brust und wir Punkt PNG. Was für ein schönes, was für eine schöne Sache. Okay, das ist in Ordnung. Und das Recht, das ist, das ist okay für jetzt. Dann brauchen wir die Rendermethode. Und das, natürlich, können
wir zurück in unseren elektrophilen Bildschirm blicken und wir können im Grunde ein paar Dinge aus diesem einen nehmen. So ist zum Beispiel die zufällige Methode genau die gleiche. Also könnten wir das zum Beispiel einfach überschreiben. Völlig gut, denn das ist fast immer dasselbe, die zufällige Methode. Und in diesem Fall brauchen wir nur den Container Mac runden Hintergrund hier. Und was wir tun wollen, ist im Grunde auch. Kopieren Sie auch die Erkenntnisse dieses elektrophilen Bildschirms. Manchmal ist es einfacher, wir brauchen das eigentlich nicht, wir wollen nur einen Blick. Und diese Aufteilung hier ist einfach, gut im Grunde die GUI selbst. Und das war's eigentlich. Als ob das alles ist, was wir brauchen. Wir müssen hier auch etwas anderes definieren. Aber wir werden das noch nicht tun, weil ich
Ihnen tatsächlich zeigen will , warum wir uns ändern müssen, wenn Sie andere Dinge. Und im Grunde, wie man herausfinden kann, wie man diese ändert. Nun, wir könnten denken, Nun, ich meine, das ist großartig, wir sind fertig. Und ich muss Ihnen sagen, dass wir leider noch nicht fertig sind weil wir selbst einen Renderer brauchen. Also müssen wir, Nummer eins, einen neuen Kachelentität-Renderer
erstellen. Und wir müssen auch eine neue Elemente taktile Entität Rendering machen. Deshalb habe ich gesagt, dass wir überall dort sein werden, aber keine Sorge, wir werden das durchstehen. Also Kachel-Entität, lassen Sie uns eine neue Klasse hinzufügen. Dies wird die große Brust Titeleinheit sein und unser Ego machen. Dies wird eine generische Klasse sein, die Fliesenentität,
Ende I, Brust, Deckel erweitert . Und dann erweitert diese Klasse auch den Chest Kachel Entity Renderer des Kindes. Wie Sie sehen können, wirklich nett. Erstellen Sie einen Konstruktor. Das wird eigentlich sein, was wir tun können, ist die mittlere Maustaste auf diesem. Und dann noch einmal, ganz oben hier und ganz unten, Control C. Und geh zurück und füge es im Grunde einfach ein. Und wir werden nur noch ein paar Dinge da drin haben. Und das liegt nur daran, dass der Name des Konstruktors wieder falsch ist. Und dann werden wir eigentlich keine Fehler haben. Jetzt müssen wir uns ändern, ich glaube nur eine Sache, wenn ich mich nicht irre. Und das ist einfach schnell zu überprüfen, denn das ist, wie ich schon sagte, das ist Verrücktheit hier. Ich glaube eigentlich nicht, dass wir etwas ändern müssen. Und im Moment, genau hier. Ja. Ich glaube nicht, dass wir im Moment etwas ändern müssen. Lass es uns einfach so behalten. Und wenn es einen Fehler gibt, dann werden wir das überprüfen. Ja, weil wir genau das sind, weil wir tatsächlich die 0 haben. Wir haben noch keinen Block. Deshalb müssen wir einen Block erstellen, der den zusätzlichen Belastungsblock erweitert. Das ist also das nächste, was wir tun werden. Dies ist also der Renderer. Und dann brauchen wir einen Block
, der ein großer Brustblock sein wird. Die Truhe, bitte, das werden sie. Und die große Brust Blog-Block, nicht Blog, wird abstrakte Schiefer, Schiefer-Block erweitern. Und das wird vom Typ Brust, große Brust, Fliese sein. Schöne Implementierungsmethode, eine neue Entität? Ja, leicht genug. Und das wird die Modus-Kachel-Entitäten sein. Wir haben die Kachel-Entitäten tatsächlich nicht getan. Also, wenn ich mich nicht irre, tut es mir leid, nicht die Elektrophile. Die mehreren Entitäten. Ja. Da gehen wir. Wir haben das noch nicht getan, wie ich schon sagte, ein bisschen überall, weil es so viele Dinge gibt. Ich kann Sie nur bitten, die Dateien herunterzuladen und wahrscheinlich einen Blick auf sie zu werfen. Weißt du, anstelle von V, Nun, wir haben es programmiert, aber ich meine,
vielleicht, vielleicht ist es, vielleicht ist es, vielleicht ist es Spaß Übung. Lassen Sie das eigentlich noch einmal kopieren, weil das manchmal einfacher ist. Das wird eine große Truhe, große Brust-Fliese. Und das wird der große Unterstrich Brust Unterstrich Titel Unterstrich Einheit sein. Und das wird der Unterstrich Unterstrich Unterstrich Entität sein. Und das wird eine neue große Brust-Fliese mit einem neuen Block sein. haben wir noch nicht in unseren Kartenblöcken definiert. Unglaublich. Dies wird also die Modus-Kachel-Entitäten sein. Die Brust winzige Entität bekommt V8. Ja. Sehr gut. Und es ist ein wenig mehr Blöcke, die wir einfach für das Kupfer hinzufügen können, oder lassen Sie uns einfach
eine Öffentlichkeit tun , um dies zu überprüfen, weil ich keine 100% Ciara bin. Wir machen das. Das war das große Schach. Ja. Schlimmer öffentliche statische endgültige Registrierung. Registry, Objekt des Typs Glück, natürlich, große Brust. Die große gerade, ich mag es. Und jetzt, melden Sie sich an, machen wir es einfach so. Kopieren wir einfach das Register hier. Großer Unterstrich-Test. Und dann haben wir hier einen großen Brustblock, einen großen Zufallsblock. Und das
hat natürlich noch eine Sache. Ja, ehrfürchtig. Wir werden das gut haben. Lass uns das loswerden. Und ich werde auch die MOD-Kachel-Entitäten haben, sorry, winzige Entitäten. Wählen Sie Brust talentierten p Punkt, erhalten Sie die erwarteten 0 Argumente, aber gefunden ,
na ja, das liegt wahrscheinlich daran, was wir hier noch keinen Konstruktor haben. Nun, das ist ja, ich werde mich den ganzen Tag verteidigen. Es ist eine sehr komplizierte Sache. Lassen Sie uns also glauben, dass wir in der Lage sein sollten, einen Konstruktor ja, den Börsengang zu erstellen. Und dann wird dieser Konstruktor diesen Fehler auch sofort beheben. Sehr nett. Und wir müssen diese Registermethode in einer Weile ändern da sonst das Element nicht gerendert wird. Aber machen wir uns jetzt keine Sorgen. Wie Sie sehen können, haben wir bereits eine, eine verrückte Menge an verschiedenen Orten offen. Das nächste, was wir tun müssen, ist der Block. Eigentlich können wir in die abstrakte
durch mittlere Mausklick blockiert gehen und dann Control H drücken. Wir können die höhere Hierarchie sehen. Jetzt können wir auch sehen, die, siehe das Testbuch. Wenn wir auf den Spannungsblock doppelklicken, öffnen wir ihn. Und das ist ein weiterer von
denen , bei dem im Grunde alles hier drin mitnehmen wird. Wir werden es kopieren und ja,
alles, was wir brauchen, werden
wir uns ändern. Alles, was wir ändern müssen, werden
wir uns ändern und alles, was wir nicht tun, werden wir nicht. Nun, lassen Sie uns das überschreiben. Also Control C Noch einmal, und dann steuern Sie V genau hier. Wir werden auch unsere String-Methoden nehmen, die wir vordefiniert haben, einschließlich des Instruktorkonstruktors. Und wir werden das nach diesem hier hochziehen. Dann können wir den Konstruktor des Brustblocks löschen. Und dann haben wir ys Methoden, ein Doublet, aber wir haben bereits eine davon definiert. Wir brauchen dieses kreative, talentierte T nicht. Wo sind wir? Holen Sie sich das. Aus dem heraus. Wir können auch im Grunde ein paar dieser Dinge loswerden. Du bist ja, das ist in Ordnung. Das ist in Ordnung. Das ist in Ordnung. Also die Füllung seines Behälters, das ist eigentlich eines der wichtigsten Dinge. Der Impound, Komparator, Impuls, Eingang überschreiben. Wir können das vorerst löschen, weil wir nicht unbedingt dasselbe mit diesem,
dann den gleichen Container benötigen . Das ist also der GET Container. Wir werden tatsächlich auch einfach die Kombinationsmethode löschen. Wir haben zweimal, glaube ich jetzt. Das ist der Grund, warum das passiert. Die Brust Inventar, können wir auch den OpenStack löschen. Das können wir auch löschen. Die breite Entsperrung aktiviert, dies ist die Rechtsklick-Methode. Wir werden uns das in einer Weile ansehen. Aber es gibt ein paar Dinge, die wir im Grunde auf Ersetzt loswerden können. Wir können auf Lagen loswerden, indem ich denke, das ist eigentlich etwas, das wir brauchen. Ich weiß, wir brauchen nicht
, dass wir diese Richtung nicht brauchen , damit wir das nicht brauchen, weil wir nicht wollen, dass es in diesem Fall anhängt. Und das ist auch, indem wir Platzierung eins bekommen. Es wird ein bisschen anders aussehen. Wir werden eigentlich nur haben und alles danach. Wir werden löschen, glaube ich. Ja, das hier. Also im Grunde alles nach dem Flüssigkeitszustand. Hoppla, was habe ich jetzt getan, ich habe den Block geöffnet. Alles nach dem flüssigen Zustand hier können wir löschen, so dass der gute Zustand für Platzierung nur die Rückkehr des Standardzustandes mit den verschiedenen Dingen hier hat. Damit der Brusttyp immer Single bleibt. Richtung ist zu angebracht. Auch diese Form loswerden? Nein, eigentlich, tut mir leid, das ist nicht, dass wir das wirklich nicht loswerden
wollen, weil wir geformt werden wollen, um eine richtige Form angezeigt zu haben. Update Post Placement Urlaub ist etwas, das wir auch nicht brauchen, aber ich bin nicht 100 Prozent sicher. Wir brauchen das nicht. Nun, sie bekommen Renderer-Typ. Ich muss ehrlich sein. Ich glaube, das ist der Grund, warum sie nicht alt waren. Aber ich bin mir nicht sicher. Ich glaube nicht, dass es so ist, aber ja, wie ich schon sagte, es ist ein wenig, es ist ein bisschen verrückt. Ein Fusionstyp. brauchen wir eigentlich auch nicht. Und dann ist das einzige letzte, was man ist die kombinierte Methode, die die folgende Sache sein wird. Und ich bin nicht wirklich 100 Prozent sicher, woher wir das bekommen. Holen Sie das hier, glaube ich. So. Kombinieren Sie, die Kombinationsmethode ist genau das. Das muss also noch einmal kopiert werden. Wir werden das nochmal kopieren. Und dann hatten wir diesen Nullpunkt hier. Und wir werden das eigentlich nehmen, denn sonst wird es einen Pfeil geben. Und wie ich schon sagte, das ist ein wenig,
naja, würde nicht sagen, ziemlich betrügen. Ich würde nur sagen, dass es eine Menge ist. Dies muss definitiv ein wenig aufgeräumt werden. Und es so zu schaffen, ist es. Es ist definitiv überall. Als ob ich ehrlich sein muss. Ich bin ein bisschen, ich würde nicht sagen, ziemlich peinlich darüber,
aber die Art, wie der Brustblock gemacht wird, ist wie absoluter Wahnsinn. Ich denke, es könnte wahrscheinlich ein bisschen einfacher gemacht werden. Aber wie auch immer, lassen Sie uns schnell sehen, so dass der Container Major, wir brauchen nicht so wie die Bestandsverschmelzung. Das brauchen wir auch nicht. Und jetzt glaube ich, dass wir endlich hier sind. Wir können, wo wir tatsächlich alles in ihrem Freischalten Oktett loswerden können. Denn die Art und Weise, wie wir das machen, ist wieder so, wie wir es getan haben. Wenn wir das und das schließen, wie wir das in der Elektrophile getan haben. Nein, nicht der Molenstrom, sondern der Elektrophile. Also, wenn wir hier runter gehen, und wir können das gesamte Innere der Liste kopieren. Und dann können wir auch das und das tun. Und dann können wir speichern dies wäre, zum Beispiel, Bildschirm MC, schlimmer, vielleicht große Brust. Und dann statt des elektrophilen Containers, den wir sind, sagen
wir großen Brustbehälter. Und dann sagen
wir statt der Layer-Entität sechs und 11, wissen 116, richtig? Ja. Ich hoffe es. Ich bin mir hier nie hundertprozentig sicher, aber ich denke, das stimmt. Richtig. Ok. Nun, lasst uns darüber nachdenken. Ich glaube, wir haben es fast geschafft, und das weiß ich, aber wir sind noch nicht ganz fertig. Also lasst uns darüber nachdenken. Wir haben die Tests hier, das ist in Ordnung. Wir müssen das hier angeben. So mod Blog.config Brust. Okay, das ist gut, das ist gut. Das ist jetzt erledigt. Ja, 100%, das ist erledigt. Wir brauchen das Rendern der Kachel-Entity nicht mehr. Das haben wir schon getan. Das ist in Ordnung. Und ich denke tatsächlich, dass wir damit in Ordnung sind. Wir können es auch schließen. Das ist ziemlich gut. Das ist eine wichtige Sache, die wir getan haben. Ich bin mir nicht sicher, ob wir damit fertig sind. Nein, das sind wir nicht. Diese Brustfliese Entitäten hier drin. Und ich glaube nicht, dass wir die eigentlich in diesem haben wollen. Wir wollen sie. Wie viele haben wir? Wir haben nur sechs. Das ist okay. Das ist erlaubt. Sticks ist die richtige Menge. Und okay. Ok. Ok. Lassen Sie mich das nur kurz ansehen. Also haben wir, lassen Sie uns den Bildschirm für einen Moment wieder öffnen. Alles klar, jetzt müssen wir die Modelle hinzufügen. Ein Element blockieren. Ja. Sowie die Blockzustände. Jetzt sieht es aus, dass Staaten wirklich einfach sind. Der Block gibt also eine neue Datei an. Das wird groß sein. Brust, die Brust Punkt-Punkt-Punkt JSON. Wenn ich das in den Blöcken getan hätte,
tut mir leid , jemand hat, jemand war kein großer Teil dieser Unterstrichtruhe. Lass es uns wirklich tun. Sie ist sicher. Warum nicht? Lass es uns so behalten. Das ist in Ordnung. Refactor Umbenennen große Unterstriche Schach. Und das wird folgendes sein. Und das wird wirklich interessant sein. Modell Block und Schrägstrich Schach. Das ist nicht ganz richtig. Das wird groß sein, nur das Ego. Jetzt habe ich das wieder aus den JSON-Dateien von Mikrofonen genommen. Also hier unten, statt extra, dann können wir zu Assets,
Minecraft, Blöcken, Datumsangaben, und so weiter und so weiter gehen . Und wir können im Grunde danach suchen. Also, wenn wir einfach in der Brust tippen, dann ein wenig Möglichkeiten nach unten können wir Test sehen, und es ist genau das. So ist auch Microsoft EMC schlechter. Na ja. Jetzt ist es etwas seltsam. Sie Ego. Und ein Modals. Modals ist, tut mir leid, ich bin das auf halbem Weg im Modell gemacht. ich. Das ist eine Menge, das ist eine Menge, wie ich gesagt habe, das geht natürlich nicht in den Modellblock. Das geht in die schwarzen Staaten. Entschuldigung. Ja, wir können das wirklich überschreiben. Ja, bitte. Okay. Jetzt ein Block statt der Modelle und Block, wollen wir folgendes. Wir wollen ein bisschen, wie ich schon sagte, ist das ein bisschen mehr, das ist ein bisschen mehr, als du es wahrscheinlich gewohnt bist. Das ist ein wenig mehr, das wird einfach die einfachste Sache sein. Dies wird einfach Texturen sein, Partikel, Minecraft, Block o.
Danke. Wenn wir also den Block zerstören, wollen
wir, dass die Partikel 0 Bretter sind. Leicht genug. Und jetzt wird das Artikelmodell Ihre Socken komplett abschlagen. Weil Chris so ist, habe ich das mit einem Unterstrich gemacht? Du hast es gesagt. Das wird Aktenunterstrich Brust Punkt-Punkt-Punkt Jason sein. Und ich werde das noch einmal kopieren, das ist, das ist, das ist in Entität gebaut. Jetzt ist das wieder von den Modellen hier unten. So können Sie dies erneut überprüfen. Das ist also genau das Gleiche. Und um dies zu verwenden, brauchen
wir tatsächlich unseren eigenen Items Stack-Renderer, wie ich sagte, das ist immer ein sehr schönes. Und, und das wird sein, ich werde das anstelle der Elemente hier erstellen. Ich glaube jedoch, dass dies, wissen
Sie, wie später in der Zeile, dies wahrscheinlich irgendwo anders sein sollte, besonders wenn Sie mehrere dieser großen Brustgegenstände,
Stapel, Titel, Entität, Renderer haben . Ich werde es nur sagen, du hast darum gebeten. Nun, aber um ehrlich zu sein, das ist eigentlich nicht so schwer zu verstehen. Dies ist also ein umfangreicher Titel, dass Element, Stapel, Kachel-Entität-Renderer, sie gehen. Und wenn wir darauf hineingehen, hat
dies eigentlich nur eine Methode, die hier tatsächlich die Rendermethode genannt wird. Was auch immer Grund oder es ist noch nicht zugeordnet. Und wir werden nur die eigentliche Methodensignatur hier kopieren. Und dann fügen wir eine weitere lockige Klammer hinzu. Und dann ist das Einzige, was wir hier nennen müssen, der Titel. Und zu Ihrem Render-Dispatcher, dieser Instanz, dieses Renderelement, Sorry, Renderknoten, es ist Renderelement tatsächlich Element rendern. Und dann mit der neuen großen Brust-Fliese, dann der Matrix-Snack. Wir wollen den Puffer, wir wollten das kombinierte Licht, und wir wollen Overlay kombinieren und, und das war's. Das ist alles, was wir hier tun müssen. Lassen Sie uns nur zum Teufel, fügen Sie auch die Überschreibung hinzu. Weil meins und ja, das ist eigentlich alles, was wir tun müssen. Wir hören, wir müssen natürlich das halten
und das , wo wir das in unseren Modellblogs nennen müssen. Und was für Blöcke. Ich weiß nicht, warum ich es meine Blogs nenne, als wären
wir , wir bloggen weg. Das sind wir eigentlich nicht. So mod Blogs, Blöcke. Ja. Aha, ja, genau. Dies liegt daran, dass die Register-Methode nicht funktionieren wird, da wir tatsächlich eine neue Elementeigenschaft hinzufügen müssen. Und wir haben getan, es gibt etwas Ähnliches hier, aber wir wollen eigentlich ein neues hier. Das wird Register Kachel sein. Und T. Und dann nach dem Kurs-Tab, rufen
wir das Set Ostern an. Dies ist der, dies ist genau die Elemente taktile Entität-Renderer. Und dann werden wir sagen, haben einen Splitter von großen Brustgegenstand gestapelt anders als ihr Doppelpunkt, Doppelpunkt neu. Und dann wird dieser hier kalt sein statt der Registermethode. Ja. Jetzt sind wir fast fertig. Wir müssen alles nochmals überprüfen, aber ich denke eigentlich, dass wir fast fertig sind. Natürlich fügen wir etwas hinzu, etwas, etwas,
etwas, das jemand positioniert. Das wird passieren. Aber abgesehen davon, glaube ich, dass wir damit beginnen und es nicht verstehen sollten. Wir kriegen keine Erde. Lasst uns das versuchen. Ich bin mir nicht sicher, denn wie gesagt, das ist Wahnsinn. Aber ich denke, das könnte funktionieren. Mal sehen. Oh, ich glaube, da war schon ein Pfeil drin. Kein Handy, das wir laden. Also, das ist irgendwie nett. Wir laden. Wir haben sogar einen Ladebildschirm. Okay. Also Hauptmenü, das ist ziemlich nett. Gehen wir in unsere Welt. Ja, das werden wir. Ich weiß, was ich tue. Dies ist wieder einmal die experimentellen Arbeitseinstellungen wegen unserer benutzerdefinierten Dimension. Okay, wir befinden uns in der Welt. Jetzt mal sehen. Wenn wir eine Truhe haben. Und es sieht eigentlich aus wie eine Truhe. Wenn wir es hinlegen, sieht es nicht wie ein Schach aus, aber das ist okay, weil ich tatsächlich weiß, wie ich das beheben kann. Dies liegt daran, dass wir das nicht hinzugefügt haben. Wenn ich mit der rechten Maustaste klicke, passiert nichts. Okay, das ist, das ist die Sache, die wir in Ordnung sind. Mal sehen. Welches Problem fehlt unseren Container-Providern? Nun, das ist nicht okay. Das ist nicht gut. Oh, haben wir nicht super angerufen? Wir haben den Super angerufen. Nun, oh, das ist das Geschehen. Und das passiert, wenn genau, na ja, wenn unser Talent t nicht eine Instanz von Elektrophile ist, oder? Wissen Sie es, natürlich wäre es nicht. Es ist vom Typ. Große Brust, eng. Da gehst du. Das ist also das Problem hier. Und dann werden wir auch sofort, weil ich mich daran erinnere, reparieren das oh, ich habe eigentlich irgendetwas anderes bekommen. Und das wird das Folgende in unserem Kunden sein. Felsen. Genau hier müssen wir Folgendes hinzufügen. Screen Manager, Screen-Manager, registrieren Factory Mod Container. Nicht nur Container bekommen nicht. Das ist der große Brustbehälter. Neu. Schön. Das funktioniert nicht, weil er nicht mag, dass ich eigentlich nicht 100 Prozent sicher bin. Weiß ist. Warum Gewicht, dass ich Container Instances Bildschirm. Nun, das wäre der Grund, warum Bildschirm, Bildschirm, Bildschirm, Nein, nein, nein, nein, nein, das ist süß. Nun, natürlich,
wichtig, diese Klasse bist du, Bist du sauer? Und dann müssen wir es. Haben Sie auch die Entität, die Sie rendern, und dies wird in der Registrierung Punkt Bindung Kachel-Entity Renderer Modus,
Kachelentitäten, nicht große Brust Kachel-Entity Punkt bekommt
und große Brust Kachel-Entity Renderer, Doppelpunkt, Doppelpunkt num legen Kachelentitäten, nicht große Brust Kachel-Entity Punkt bekommt . Dies und dies muss auch dem Client-Proxy hinzugefügt werden. Dieser wird einfach sicherstellen, dass der Bildschirm angezeigt wird. Also, wenn, sobald wir mit der rechten Maustaste und dieser wird sicherstellen , dass der Block tatsächlich innerhalb der Welt gerendert wird. Das ist ziemlich nett. Und ich denke, dass das jetzt funktionieren sollte. Wie ich schon sagte, es ist ein wenig, das ist ein wenig lockerer von einer Episode, würde
ich sagen, einer Vorlesung. Weil wir nicht sagen würden es gleichzeitig zu
entdecken, denn das wäre wie eine, ich weiß nicht, sieben Stunden wie ein siebenstündiger Vortrag gewesen. Wahrscheinlich noch mehr. Aber sie gehen, Also lasst uns zurück in unsere Welt und mal sehen, ob die, ob das jetzt funktioniert. Das erste, was wir tun werden, ist, dass wir es
tatsächlich zerstören bevor, weil manchmal dieser Junge, das, weil es manchmal ein bisschen seltsam wird. Okay, also wird es nicht immer noch nicht gerendert. Ich bin sicher, dass es einen Grund dafür gibt, aber wenn wir mit der rechten Maustaste klicken, so öffnet es sich und ich me