Modéliser par Kaupenjoe : Modélisation Minecraft pour les débutants (version 1-16-X) | Kaupenjoe (Nico) | Skillshare

Vitesse de lecture


1.0x


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

Modéliser par Kaupenjoe : Modélisation Minecraft pour les débutants (version 1-16-X)

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

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction au cours

      1:55

    • 2.

      IntelliJ & Java Télécharger

      0:40

    • 3.

      Configuration IntelliJ et Java

      3:28

    • 4.

      (Java) Les données sur les données dans Java

      6:32

    • 5.

      (Java) Comment lire le code Java

      3:39

    • 6.

      (Java) La méthode principale

      2:52

    • 7.

      (Java) Utiliser println pour produire des choses dans Java

      6:31

    • 8.

      (Java) Les créateurs et les exploitants arithmétiques

      7:37

    • 9.

      (Java) Les booléens et les opérateurs de comparaison

      3:54

    • 10.

      (Java) Les booléens et les opérateurs logiques

      3:43

    • 11.

      (Java) les chaînes et les méthodes à chaînes dans Java

      13:43

    • 12.

      (Java) variables de moulage

      5:38

    • 13.

      (Java) Les intrus et les méthodes mathématiques

      6:46

    • 14.

      (Java) Si et autres déclarations dans Java

      8:36

    • 15.

      (Java) L'opérateur ternaire dans Java

      3:35

    • 16.

      (Java) La déclaration du commutateur

      2:49

    • 17.

      (Java) pendant que la boucle

      4:25

    • 18.

      (Java) Pour la boucle

      3:45

    • 19.

      (Java) rompre et continuer

      2:34

    • 20.

      (Java) Tableaux dans Java

      10:06

    • 21.

      (Java) Tableaux multidimensionnels dans Java

      7:43

    • 22.

      (Java) La liste (Array)

      8:02

    • 23.

      (Java) HashMaps dans Java

      6:00

    • 24.

      (Java) pour chaque boucle

      3:24

    • 25.

      (Java) Méthodes Java

      8:07

    • 26.

      (Java) Surcharge de la méthode

      3:12

    • 27.

      (Java) Cours et objets dans Java

      11:40

    • 28.

      (Java) Publique, protégé et privé

      2:30

    • 29.

      (Java) Les Getters et les régleurs

      3:26

    • 30.

      (Java) Forfaits

      2:28

    • 31.

      (Java) Inheritance

      7:13

    • 32.

      (Java) Méthodes statiques et non statiques

      3:54

    • 33.

      (Java) Polymorphisme

      2:42

    • 34.

      (Java) Cours et méthodes abstraits dans Java

      3:52

    • 35.

      (Java) interfaces

      7:58

    • 36.

      (Java) Enums

      4:43

    • 37.

      (Java) Exceptions et déclarations d'essai et de capture

      6:40

    • 38.

      (Java) Les expressions de Java Lambda

      10:02

    • 39.

      Installation et installation des forges

      11:06

    • 40.

      (Minecraft) Note sur l'utilisation de Minecraft 1.16.5

      2:48

    • 41.

      (Minecraft) Créez notre premier article

      10:31

    • 42.

      (Minecraft) Créez notre premier bloc

      9:47

    • 43.

      Théorie (Minecraft : aller en profondeur dans nos cours

      15:40

    • 44.

      (Minecraft) Notre propre onglet créatif personnalisé

      3:43

    • 45.

      (Minecraft) Créer une nouvelle recette

      5:46

    • 46.

      (Minecraft) Bloquer les gouttes avec des tables de butin

      5:01

    • 47.

      (Minecraft) Créer un nouvel article alimentaire

      8:05

    • 48.

      (Minecraft) Créer un nouvel ensemble d'outils

      21:03

    • 49.

      (Minecraft) Événements dans la modélisation de Minecraft

      23:17

    • 50.

      (Minecraft) Ajouter des conseils aux articles

      8:29

    • 51.

      (Minecraft) Créer un nouvel ensemble d'armures

      14:27

    • 52.

      (Minecraft) Créer des escaliers, des boutons, des plaques de pression et des clôtures

      18:16

    • 53.

      (Minecraft) Les configues de mod

      11:55

    • 54.

      (Minecraft) Exporter votre mod

      4:44

    • 55.

      (Minecraft) Utilisez Github pour les exemples de code source

      6:16

    • 56.

      (Minecraft) Utilisez GitHub comme système de contrôle de version

      8:52

    • 57.

      (Minecraft) Version actuelle des orge et des minéraux (1.16.4)

      3:40

    • 58.

      (Minecraft) Cartographie actuelle

      3:25

    • 59.

      (Minecraft) les tables de pillage avancées

      5:45

    • 60.

      (Minecraft) Les cultures personnalisées

      15:41

    • 61.

      (Minecraft) Fluides personnalisés

      17:15

    • 62.

      (Minecraft) Nettoyage et réusinage

      10:45

    • 63.

      (Minecraft) modèles de blocs personnalisés (y compris le banc de bloc)

      23:50

    • 64.

      (Minecraft) Créer une nouvelle entité de tuile

      15:44

    • 65.

      (Minecraft) Créez une interface graphique personnalisée

      42:18

    • 66.

      (Minecraft) La production de minerais dans le monde

      13:08

    • 67.

      (Minecraft) Créer un arbre personnalisé

      23:50

    • 68.

      (Minecraft) Créer une mob personnalisée

      30:18

    • 69.

      (Minecraft) Faire de notre Mob fait apparaître à l'intérieur du monde

      16:25

    • 70.

      (Minecraft) Créer un biome personnalisé

      49:58

    • 71.

      (Minecraft) les événements sonores et les sons personnalisés

      10:55

    • 72.

      (Minecraft) Créer des enchantements personnalisés

      20:42

    • 73.

      (Minecraft) Générateurs de données pour les éléments et les blocs

      23:18

    • 74.

      Générateur de données (Minecraft) pour les tables de butin et le langage

      21:42

    • 75.

      Générateur de données pour les recettes et les progrès réalisés

      29:27

    • 76.

      (Minecraft) Correction et capacités des entités de tuile

      22:56

    • 77.

      (Minecraft) Créer des commandes personnalisées

      24:10

    • 78.

      (Minecraft) Faire notre propre dimension

      28:13

    • 79.

      (Minecraft) Créer une entité de tuile de grande poitrine

      51:25

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

1 228

apprenants

8

projets

À propos de ce cours

Voulez-vous toujours créer un mod Minecraft ? Ce cours vous apprendra à fabriquer vos propres mods Minecraft ! Vous apprendrez non seulement le langage de programmation Java, mais aussi l'API Mod Minecraft pour rendre vos mods compatibles avec tous les autres Mod dans Minecraft : MinecraftForge !

Dans ce cours, je vous apprendrai les premières étapes en vous présentant à Java. Même sans expérience, vous serez en mesure de réaliser des Mods à la fin. Vous apprendrez tout comment fabriquer des blocages, des articles, des outils et des armes dans le minecraft. Vous apprendrez également à créer différents types d'événements.

Avec un peu de créativité et l'application des leçons que vous obtenez de ce cours, vous pourriez simplement faire frayer le prochain Mod Minecraft !

Ce cours est accessible aux débutants complets. Même si vous n'avez jamais programmé votre vie ! La seule condition est que vous possédiez Minecraft et que vous êtes très familier avec le jeu et quelques mods Minecraft populaires ou même les mods Minecraft modpacks.

Le code source entier sera disponible pour que vous puissiez suivre tout ce que je fais dans les vidéos.

Si vous avez des questions ou des suggestions, n'hésitez pas à me contacter ici. Je suis heureux de vous aider à apprendre à Code en Java et à créer votre propre mod Minecraft.

Veuillez noter que ce cours est destiné à 1.16. X. 1.17+ n'est pas pris en charge par ce cours !

EXCLUSION : PAS UN PRODUIT MINECRAFT OFFICIEL. N'APPROUVEZ PAS LE MOJANG, OU QUI EST ASSOCIÉ À CELUI-CI.

Rencontrez votre enseignant·e

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Enseignant·e

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

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

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

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction au cours: Très bien, bienvenue à ce cours le plus complet sur la modélisation Minecraft ici sur le partage des compétences. Et dans ce cours, nous allons apprendre tout, de la création de blocs et d'objets à des outils, des armures et même des entités de tuiles. Donc c'est une sélection de choses que nous allons réellement apprendre et créer ici, nous allons créer des choses à base de cuivre. Donc du cuivre ou nous allons créer des blocs de cuivre et des lingots. On va créer des fils de cuivre. Et nous allons aussi nous assurer que cette réponse à l'intérieur du monde au monde, Jen, nous allons créer des outils à partir d'eux et d'armure. Nous allons créer nos propres cultures personnalisées et comment assurer qu'elles s'affichent correctement et comment tout cela fonctionne. Nous allons créer notre propre fluide personnalisé. Dans ce cas, c'est du pétrole. Et bien sûr, une entité de tuile, comme je l'ai déjà dit, cette entité de tuile aura une interface graphique personnalisée et cela aura également une fonctionnalité personnalisée. Dans ce cas, nous allons créer des diamants, que nous allons avoir pour que les diamants créent réellement de l'énergie. Et puis ces diamants peuvent être, cette énergie peut ensuite être transformée en émeraudes en utilisant des fils de cuivre. Allaient également créer notre propre arbre personnalisé et avoir cet arbre personnalisé généré à l'intérieur du monde. Et le dernier mais non le moindre, et nous avons notre propre onglet personnalisé. Et à l'intérieur d'ici, nous allons aussi pouvoir engendrer des monstres que nous avons fait nous-mêmes. Donc les emplois de clients, nous allons également être ajoutés au jeu. Celles-ci peuvent aussi frayer dans le monde entier. Et nous ajoutons aussi un frai, ou c'est ce qui va arriver dans ce cours. J' espère que ça vous intéresse. Et j'ai hâte de vous voir à l'intérieur du parcours. Et ils oui. 2. Télécharger IntelliJ et Java: Ou y a-t-il deux choses que vous devez télécharger pour cette classe. Le premier est le JDK ouvert, qui est simplement le langage Java, pour ainsi dire, de sorte que vous pouvez l'utiliser et le programmer avec. Et très important que vous utilisiez le JDK huit. Alors choisissez cette version, puis choisissez le hotspot JVM. Il suffit de cliquer sur Related to release et puis il va télécharger. Et une autre chose que nous voulons aussi télécharger IntelliJ idea. Et c'est très important que vous utilisiez la version de la communauté ici. Ceci est gratuit et open source, pas de login ou quoi que ce soit requis. Et ça va nous donner assez de pouvoir pour faire tout ce qu'on veut faire. Et les deux liens se trouvent en haut de la description du projet. 3. Configuration IntelliJ et Java: Très bien, bienvenue à cette première conférence sur la façon de configurer Java et l'idée IntelliJ. Maintenant, quand vous commencez l'intelligence pour la première fois, c'est la fenêtre avec laquelle vous allez être accueillis. Et nous voulons simplement cliquer sur Nouveau projet parce que nous voulons créer un nouveau projet. Important, assurez-vous que vous choisissez. Java apparaît en haut à gauche. Et puis quand il s'agit du SDK du projet, nous voulons sélectionner l'Open JDK que nous avons téléchargé précédemment. Maintenant, ici, j'ai déjà un point une version Java ici. Il se peut que ce soit là pour vous. Il devrait le trouver automatiquement et vous devriez juste être en mesure de le sélectionner. Si ce n'est pas le cas et que vous l'avez toujours installé, vous pouvez cliquer sur ce bouton Ajouter JDK puis le rechercher partout où vous avez. Mettez-le. Donc, partout où vous l'avez installé dans le répertoire et cliquez simplement sur OK là. Si cela ne fonctionne pas, sorte que vous ne le trouvez pas. Vous pouvez toujours télécharger à partir d'ici en choisissant adopter Open JDK, puis en sélectionnant le 1.8. Oh, c'est très important que ce soit la version que vous sélectionnez, non ? Ensuite, il vous suffit de cliquer sur télécharger à l'emplacement où vous voulez l'installer. Et puis cela fonctionnerait aussi bien, non ? Donc, avec cette sélection, ensuite, nous cochons effectivement cette case. Donc, créez un projet à partir du modèle parce que nous voulons avoir l'application de ligne de commande comme modèle. Cela signifie simplement qu'il va générer pour nous un peu d'aide, disons que cela va nous faire commencer beaucoup plus vite que si nous n'avons pas cela généré automatiquement. Nous pouvons cliquer à nouveau sur Suivant. Et dans cette fenêtre, nous devons en fait spécifier le nom du projet et l'emplacement, ainsi que le nom du paquet de base. Au nom du package de base est généralement un domaine inversé. Donc, par exemple, pour Google.com, rouge, il deviendrait dot google, n'est-ce pas ? Et pour nos besoins, pour moi, je vais faire com.com Joe, ou vous pouvez faire ce que vous voulez. Ou VR. C' est certainement la convention de le faire comme ça. Donc aussi, faites les points calmes et puis un nom ou un point net ou quoi que ce soit le cas. Quelque chose qui est également très important à mentionner est que c'est en minuscules, une base, un paquet de base et tous les paquets et les noms sont tous en minuscules. Et alors, nous allons juste cliquer sur Terminer et puis voyons ce qui se passe. Donc ça va faire un tas de trucs. Et comme vous pouvez le voir, cela a déjà généré des choses pour nous. Nous pouvons maintenant étendre cela ici à gauche. Et puis si nous développons le dossier source, nous pouvons réellement voir que voici notre package de travail KM.com. Il y a deux choses que je veux mentionner. C' est une fois ici dans le menu des options. Parfois, il se peut que les paquets aplatis soient d'un autre côté, ça va ressembler à quelque chose comme ça. Ça va avoir l'air un peu bizarre et ça pourrait devenir un problème. Je conseille de désactiver les paquets plats pour les besoins de tout ce cours. Et oui, et c'est fondamentalement tout. C' est essentiellement le, le, ce dont vous avez besoin. Et si cette configuration a été faite, alors vous pouvez suivre le cours Java à un T. Et oui. 4. (Java) Datatypes dans Java: Alors bienvenue à l'introduction de Java. Et dans cette conférence, nous allons parler des types de données. Maintenant. Que sont les types de données ? C' est essentiellement un moyen de stocker des informations. Et bien sûr, il y a différents types d'informations, non ? Cela va donc être une approche plus théorique pour expliquer les types de données. Et puis on verra plus tard, OK, qu'est-ce qu'on peut faire avec eux ? Comment peut-on les manipuler ? Comment sont-ils en quelque sorte interchangeables ? Et on va juste les parcourir et voir ce qu'on peut voir. Donc, d'abord les choses, il y a un nombre de types. Et les types de nombres devraient avoir du sens. Il y a deux types de nombres principaux, je dirais que c'est un entier et un flotteur. Un entier est un nombre entier. Et dans ce cas, c'est le nominé avec le, avec le mot int I-N-T. Ensuite, vous obtenez le nom de la variable, puis vous lui attribuez une valeur spécifique. Donc en ce moment, dans un nombre, 42 est écrit là-dedans. Et j'ai également ajouté un niveau commun, donc entier ou nombre entier. Et vous pouvez stocker n'importe quoi entre ces deux numéros. Donc moins 2 milliards à 2 milliards là-dedans. Et il y a des nombres à virgule flottante. Ce sont essentiellement quatre nombres décimaux, pas tout à fait. Ainsi, les nombres à virgule flottante ou les flotteurs sont stockés en notation scientifique. Et ceux-ci, dans ce cas, les flottants ou précis, ou 7 décimales précision ou sept nombres de précision. Donc, dans ce cas, nous avons quatre chiffres. Et si nous devions ajouter trois d'entre eux auraient, bien sûr avoir sept numéros et n'importe quel nombre après cela est effectivement coupé. C' est pourquoi ont été arrondis vers le haut ou vers le bas. Ouais, donc c'est important à savoir. Si vous avez un flotteur qui est plus long, cela va en fait causer certains problèmes. Maintenant, comme vous pouvez le voir ici, il y a aussi d'autres types de types de nombres sont d'autres types de variables qui peuvent être utilisés. Ainsi, une morsure, par exemple, n' est qu'un octet ou huit bits. Tu l'as peut-être entendu avant. Et il ne peut stocker que des numéros de moins un 128127. Donc c'est pour de très petits nombres. C' est pourquoi j'ai écrit le nom de la variable en tant que petit nombre. Et un court est un petit nombre. Il peut stocker des nombres de moins 32 mille à environ plus 32 mille. Et puis il y a aussi un long, qui est pour vraiment grand nombre. Et comme vous pouvez le voir, c'est comme une quantité folle de nombres que vous pouvez ou non quantité de nombres, mais la gamme de nombres que vous pouvez stocker là-dedans. Donc vous pouvez stocker de, euh, je dois parce que je ne suis pas sûr, neuf quadrillions idoles, je ne sais pas ce que c'est, mais c'est un grand nombre, habituellement, à mon avis et selon mon expérience, c'est très rarement vu que l'on utilise le long. Il est très probable qu'un, un entier utilisé dans presque tous les cas. Parce que quand est-ce qu'il arrive vraiment que vous obtenez des nombres qui sont plus grands que ça ? Ce n'est pas très souvent le cas. Donc, en général, je dirais que ces deux sont les plus importants. Un autre qui pourrait être utile est le double. Et comme son nom l'indique, est en fait un nombre plus précis. Donc, cela a en fait une précision de 15 décimales. Donc celui-ci peut avoir 15 places jusqu'à ce que la 16e place soit coupée ou arrondie. Donc, au lieu d'avoir seulement les sept avec le flotteur, le double peut en avoir un peu plus, non ? Donc, ce sont les types de nombre. Ensuite, nous avons Booléens ou fondamentalement le type logique. C' est pour nos conditions de test. Et pour qu'on puisse avoir un booléen, non ? Donc, le nom aussi booléen. Le nom de la variable dans ce cas est ceci est cette note de cours, et il est égal à true. booléens peuvent stocker soit vrai, soit faux. Donc, cela est aussi parfois montré avec un ou un 0. Et puis nous pouvons aussi écrire, par exemple, est ce HTML. Et nous disons, Non, c'est faux parce que c'est Java. Et puis il y a des personnages. Donc, un seul caractère est un char, CH, AR, et il peut stocker un seul caractère. Toutefois, cela peut également inclure des caractères spéciaux tels que des virgules, des tirets et des espaces. Ce sont tous des personnages. Donc, par exemple, nous pouvons simplement écrire quelque chose comme ça. Et il ne va pas lancer d'erreur parce qu'un espace est un personnage de je vais mettre deux espaces dans et il va lancer une erreur parce que ce sont deux caractères. Donc, c'est fondamentalement un seul caractère, un caractère. Maintenant, si plusieurs caractères l'un à côté de l'autre, alors ce que nous allons utiliser est une chaîne. Une chaîne stocke ici une séquence de caractères. Donc, dans ce cas, il stocke helloworld. C' est quelque chose que vous voyez très souvent, surtout dans les cours de programmation débutants ou partout où vous allez commencer à programmer. Hello World est une sorte de chose qui, c'est une sorte de la première chose que vous essayez de sortir en tant que variable. Donc, pour dire, Hey, bonjour monde, j'ai maintenant commencé à programmer. C' est moi. Et très important à savoir. Donc, un caractère est essentiellement écrit avec ces guillemets simples l'entourant. Et puis quel que soit le personnage que vous voulez à l'intérieur. Et une chaîne est écrite avec des guillemets doubles. Et tout ce qui est à l'intérieur de ces guillemets fait essentiellement partie de la chaîne. Il est également très important de noter que si vous voulez avoir une double citation à l'intérieur de cela, vous pouvez réellement utiliser une année comme une barre oblique inverse. Et celui-ci peut ensuite être utilisé pour créer un, une double citation à l'intérieur de votre chaîne si vous le souhaitez. Et cela est également utilisé pour toutes sortes d'autres choses à l'intérieur d'une chaîne. Oui, donc ce sont les principaux types de données que nous allons utiliser dans ce cours. Et ce sont aussi, je pense, ceux qui sont les plus répandus qui sont utilisés essentiellement toujours. Et c'était tout pour la conférence sur les types de données. Et oui. 5. (Java) Comment lire le code Java: Bon, bienvenue à l'introduction de Java. Et dans cette conférence, nous allons rapidement parler de la façon de lire le code. Donc, si vous n'avez jamais lu de code nulle part, nous allons en fait regarder quelques exemples ici. Et les deux premières choses sont des commentaires. Donc, un commentaire d'une ligne est juste fait avec deux barres obliques. Et un commentaire multi-ligne est fait en faisant une barre oblique, puis une étoile et une autre étoile et une barre oblique. Et ce que ça va faire, c'est créer un commentaire multi-lignes. Maintenant, une déclaration d' une variable est simplement le type de la variable, puis le nom de la variable. Et puis en terminant la ligne avec le point-virgule. Si nous assignons ensuite une valeur à cette variable, ce serait simplement faire le nom de la variable, alors l'opérateur égal, aussi l'opérateur d'affectation nommé opérateur Simon. Et puis juste la valeur que nous voulons stocker dans cette variable. Encore une fois, en terminant la ligne par un point-virgule. C' est essentiellement ce qu'on va faire. Toujours à chaque fois. Quand on aura une déposition, on finira par un point-virgule. Ensuite, nous avons l'initialisation, qui est simplement la Déclaration et l'affectation en même temps. Donc, dans ce cas, nous allons déclarer un entier x et nous allons immédiatement lui assigner la valeur de dix. Parfois, nous voulons peut-être accéder aux variables ou aux méthodes d'un objet. Que sont, quelles sont les méthodes ou quels sont les objets ? On en parlera dans les conférences ultérieures. Mais juste pour que vous sachiez, nous le faisons avec un point après le nom de la variable. Donc, quand nous avons la chaîne ici, si nous faisons S dot et nous allons nous faire suggérer tout un tas de méthodes que nous pouvons appeler. Et ces méthodes font des choses dont on parlera, comme je l'ai dit dans les conférences ultérieures. Mais il est très important que vous utilisiez l'opérateur point. Ce n'est pas tout à fait un opérateur, mais c'est un point après le nom. Et quand vous voyez les parenthèses ouvertes et fermées après quelque chose avec un point, c'est toujours une méthode qui est appelée. Et quand vous ne l'avez pas, alors ce serait une variable. Cependant, dans ce cas, la variable n'existe pas, donc elle affiche une erreur. Mais s'il n'y a pas de parenthèses après, alors en tant que variable, s'il y a des parenthèses, alors c'est un appel de méthode ici comme un petit addendum à la fin. C' est un bloc de code. Il peut être décrit comme un bloc de code. Et si nous entendons initialiser une variable à l'intérieur de ce bloc qu'à l'extérieur de celui-ci, il ne vient pas que vous reconnaissez, n'est-ce pas ? Donc, ici, nous disons , oh, entier l est égal à 0. Et là, nous disons, hé, je suis égal à L plus deux. C' est maintenant le travail parce qu'en dehors de ce bloc, L n'existe pas. Donc, cela fonctionne pour les deux classes, les méthodes, et aussi juste ces V blocs de code circulant , que j'ai rarement vu celui-ci que vous utilisez juste comme ça. Mais il est très important qu'entre les crochets bouclés, si vous initialisez quelque chose qu'en dehors des crochets bouclés, ce n'est pas inexistant. Il y en a quelques-uns, comme la spécialité est dans des règles spéciales. Mais en général, ils ne sont pas accessibles en dehors de cela. Et oui, c'est juste un bref résumé de la façon de lire le code et oui. 6. (Java) La méthode principale: Bon, bienvenue à l'introduction de Java. Et ce dont on va parler maintenant, c'est ce que ça veut dire. Donc, c'est aussi appelé la méthode principale. Et comme vous pouvez le voir, j'ai écrit un commentaire ici qui dit que le code va ici. Et qu'est-ce que ça veut dire ? Donc, le code de base va entre les crochets bouclés, deux dans celui-ci et celui-ci. Ils sont également mis en surbrillance lorsque je survole ou les prends, prend le curseur sur eux. Et fondamentalement ce qui se passe est que tout dans cette méthode principale est exécuté de haut en bas. Donc quelque chose écrit ici, il va être exécuté en premier. Et quand je descends ici, celui-là, celui-ci est deuxième, par exemple, n'est-ce pas ? Donc d'abord celui-ci est exécuté, puis celui-ci est exécuté et est très simple, fondamentalement de haut en bas. Et cela est vrai dans la méthode principale. Et nous allons voir que ce n'est pas toujours vrai que c'est simplement linéaire ou de haut en bas. Vous savez, vous pouvez avoir, disons, des directions générales qui vont changer le déroulement du fonctionnement du programme ou la façon dont le programme évalue et exécute le programme. Mais en général, vous avez besoin d'une méthode principale dans votre programme Java parce que c'est ce qui va être appelé, c'est ce qui va être exécuté. Et c'est là que fondamentalement la plupart du code, pas la plupart du code, mais vous savez, une partie du code dit qu'il est exécuté. Et dans cette introduction, plupart du code au début en particulier va aller dans cette méthode principale. Parce que c'est fondamentalement la façon dont nous pouvons, que nous pouvons utiliser le programme que nous pouvons programmer et ensuite le faire exécuter, n'est-ce pas ? Qu' est-ce que tous ces noms signifient ? Donc statique publique, vide. Nous allons découvrir lentement ce que ces termes signifient. ce moment. Ce que je veux que tu fasses, c'est que tu vides ça et que tu dises, ok, on est à l'intérieur de la méthode principale. Et c'est là que notre code est exécuté. Qu' est-ce que tout ça veut dire, toutes ces autres choses. On va en parler. Certainement. Il va venir dans des conférences plus tard. Mais en ce moment, l'essentiel est la chose principale. Voyez ce que j'ai fait là-bas, ok, maintenant l'essentiel est que quoi que ce soit dans la méthode principale qui va être exécutée, c'est fondamentalement la seule chose que vous devez savoir en ce moment. Dans toutes les autres choses que vous allez voir écrites ici, l'orgue à expliquer. Mais avec le temps, parce que nous avons d'abord besoin de quelques composants supplémentaires que nous apprenons pour vraiment comprendre ce que les autres choses signifient. Donc, oui, c'est juste une courte idée ce qu'est la méthode principale et pourquoi elle est importante et pourquoi. Ça dit, hé, le code va ici. Et oui. 7. (Java) Utiliser println pour produire des choses dans Java: Bienvenue à l'introduction de Java, et cette fois nous allons réellement écrire du code. Maintenant, ce que nous voulons faire dans cette conférence, c'est que nous voulons sortir quelque chose sur la console. Donc, tout d'abord, nous voulons sortir une chaîne. Et ce que nous allons écrire est system.out.print, LN, print Ellen signifie « print line ». Et puis on va faire un, un support ouvert. Et ce qui va arriver, c'est que ça va générer automatiquement la fin. Et puis nous allons entre guillemets et nous mettrons dans le monde bonjour. Donc ce que nous voulons faire, c'est que nous voulons sortir Hello World. Maintenant, nous terminons le, l', essentiellement l'instruction avec un point-virgule. C' est normalement comme ça que vous terminez une instruction. Et bien, il ne jette pas de flèches. Donc, on va juste commencer ça et voir ce qui se passe. Donc, je vais à droite ici à ce bouton de lecture en gros et dire courir le principal, nous allons le faire. Et ce qui va se passer, c'est qu'on va voir ici, Bonjour monde. Quelle belle chose. Peut-être que si vous n'avez jamais exécuté un programme avant, et c'était la première fois, félicitations. Je sais que ce n'est peut-être pas censé être condescendante. En fait, je le pense. C' est certainement plus que la plupart des gens obtiennent avec cela parce que la programmation, alors que les premières étapes peuvent sembler faciles, vous savez, plus vous le faites, c'est, c'est, il a une certaine profondeur et, vous savez, faire la première étape et ensuite s'engager à suivre quelque chose comme ça, un cours comme celui-ci. C' est génial. C'est vraiment, c'est vraiment bon. Alors, ok, parlons un peu de ce qui se passe ici. Donc en ce moment, nous sommes des sorties, sortant. Mettre une chaîne est une chaîne, comme je l'ai dit dans les types de données vidéo, une chaîne et les chaînes helloworld, fondamentalement la première chose que vous voulez sortir. Maintenant, nous pouvons également produire différentes choses. Donc, nous pouvons également économiser, par exemple, ligne d'impression de sortie 42, n'est-ce pas ? Et nous allons, allons courir celui-là. Et puis il va sortir 42. Donc, cela est juste de sortir un entier. Alors, oh, oh mon seigneur. Sortir un terme int, n'est-ce pas ? Ceci sort un entier que nous pouvons essentiellement sortir n'importe quel type de données que nous voulons aussi. Et c'est ce qu'on verra plus tard. Nos propres types de données essentiellement. Et puis que se passe-t-il si nous voulons sortir un Float ? Et celle-là ? Nous allons faire ce système en ligne d'impression. Et comme vous pouvez le voir, il a déjà beaucoup de suggestions ici. Et nous pouvons en fait descendre ces suggestions et dire, hé, je veux sortir un flotteur pour que nous puissions juste appuyer sur Entrée et il fait automatiquement des choses pour nous. Et peut-être que quand on veut faire le flotteur, on va écrire quelque chose comme ça. Et ça va aussi marcher. Laissons juste faire ce 155.32. Et puis le dernier est peut-être que nous voulons réellement avoir une variable. Alors peut-être qu'on n'était pas Int. On va appeler ça, moi. Et ça va être 1137, bien sûr. Et puis ce qu'on va faire, c'est qu'on va faire la ligne system.out.print. Et puis on va mettre, oh, non, ce n'est pas ce qu'on veut. Nous voulons sortir, sortir moi. Et comme vous pouvez le voir, dès que j'écris, il dit déjà, hey, voulez-vous peut-être sortir la sortie variable moi et je dis, bien sûr, donc nous allons entrer et terminer automatiquement, puis exécuter à nouveau la méthode principale. Comme vous pouvez le voir maintenant, il sort tout ce qui est écrit dans cette variable, sortez-moi. Ouais, donc celui-ci serait sorti en mettant une variable, variable dans les mers, entier, non ? Ouais, donc c'est essentiellement la sortie, comment vous sortez quelque chose, une chaîne et une variable float entière. Dans ce cas. Dans ce cas, il s'agit d'une variable entière, mais il peut s'agir de n'importe quelle variable que vous voulez une variable de chaîne, une variable flottante, un court long d'un char. Et oui, c'est la méthode de sortie. Donc, la ligne system.out.print est un addendum court à cela est comme il y a aussi un system.out.print, non ? Et que se passe-t-il si je fais ça ? Disons que je veux et ensuite sortir mille. Et si on fait ça, tout d' abord, rien ne se passera. Mais maintenant, la chose intéressante est que si je mets un 1000 à nouveau, alors tout d'un coup, qu'est-ce que c'est ? Donc, la ligne d'impression ajoute fondamentalement un saut de ligne à la fin de la sortie d'impression et l'impression ne le fait pas. C' est pourquoi il est généralement préférable d'utiliser la ligne d'impression simplement parce que vous pouvez juste avoir plusieurs lignes d'impression en-dessous de l' autre et qu'elles ne vont pas interférer les unes avec les autres. Maintenant celui-ci, ça va être vraiment intéressant si vous vous attendez à des fois 1000 au lieu de, vous savez, le plus grand nombre. C' est donc très important de garder à l'esprit pourquoi imprimer la ligne, pourquoi j'ai utilisé la ligne d'impression et YB devrait utiliser la ligne d'impression au lieu d'une impression, non ? Et comme un petit addendum ici, vous pouvez également imprimer plusieurs choses. Donc, ce que vous pouvez faire est, par exemple, lorsque vous écrivez système ligne d'impression, vous pouvez, par exemple, créer une chaîne. Ainsi, à titre d'exemple, réécrire la variable de sortie. Et puis on va derrière la ficelle et on fait un plus. Et puis par exemple, la sortie, MY variable. Et cela fonctionne aussi, et cela fonctionne de la façon que nous voulons. Donc, par exemple, nous pourrions aussi dire, peut-être que nous voulons, cette variable de sortie que nous avons juste sortie est kilogrammes ou livres, ou c'est peut-être le taux de verges ou de mètres. Ensuite, nous pouvons simplement ajouter quelque chose derrière lui aussi. Et puis quand nous sortons ceci, ils sont écrits ensemble. Maintenant, ici, dans ce cas, un espace serait probablement assez intelligent. Et puis la sortie semble vraiment un peu décent. Et cela fonctionne avec soit juste les variables entre les deux, soit vous pouvez aussi le faire avec des chaînes en théorie. Maintenant, dans ce cas, ça n'a pas vraiment de sens de le faire. Vous pouvez également simplement en faire une chaîne. Mais si vous voulez mettre des variables à l'intérieur de là, cela fonctionne aussi très utile et en fait comme très facile à utiliser. Oui. 8. (Java) des inscriptions et des opérateurs arithmetic: Bon, bienvenue à l'introduction de Java. Et maintenant, nous allons parler d'entiers et d'opérateurs arithmétiques. Alors qu'est-ce que ça veut dire ? Cela signifie essentiellement, ok, que pouvons-nous faire avec des entiers dans ce cas ? Et comment peut-on les manipuler ? Donc, la première chose que nous pouvons bien sûr, c'est que nous pouvons ajouter le taux. Donc, si nous avons, disons un, en plus, nous voulons ajouter premier, deuxième, ou nous allons écrire ceci en premier. Et puis on va faire un symbole plus. Et puis deuxièmement, si entre une fois de plus avec un point-virgule à la fin. Et maintenant, en plus, il devrait être stocké un 300. C' est logique, on peut vérifier ça. Sortie, ceci, disons. Et puis nous allons sortir addition. Et on va faire ça. Comme vous pouvez le voir, 300 est en plus, comme nous l'avons pensé, ok. Nous pouvons aussi dire que ce que nous voulons est une autre somme où nous voulons réellement avoir, vous savez, pas qu'il ajoute deux variables, mais peut-être autre chose. Donc, nous avons, par exemple, nous prenons plus, c'est 300 et plus 200 ou 2200 plus 500. Cela fonctionne aussi. Nous pouvons ajouter plusieurs choses dans la même ligne, pas un problème. Et puis je vais juste copier ça. Et je vais en mettre un ici et on va voir que c'est un 1000. Oui, bien sûr, c'est génial. Donc maintenant, nous allons avoir 1000 dans quelque 300 et plus et 1000 et certains. C' est génial. Que pouvons-nous faire d'autre ? Eh bien, peut-être que tu veux vraiment soustraire quelque chose. Donc nous allons avoir la première moins seconde. Intéressant. Qu' est-ce que ça va céder ? Eh bien, ça devrait donner un moins 100. D'accord. C' est impossible ? Bien sûr. Ce n'est pas un problème. On va juste avoir une autre ligne d'impression. On va imprimer le sous-marin juste pour voir ce qu'il y a dedans. Et nous voyons que c'est moins un 100, aucun problème. Il y a du bien. Que pouvons-nous faire d'autre ? Peut-être qu'on veut multiplier quelque chose. On dirait que ça a du sens. Multiplions d'abord. Et c'est, ça devrait alors donner un 400. Et on va juste vérifier ça aussi. Juste pour être sûr. J' espère que les maths n'ont pas encore changé, mais je ne pense pas que quatre fois 100 soit encore 400. Saluez. Et puis le dernier, disons chose facile ou chose que vous savez probablement de l'école est diviser. Donc nous allons juste diviser deuxième, divisé par premier. Ça devrait être deux. Et puis on vérifiera ça à nouveau. Et on va voir ce que ça fait. Il est en effet un aussi, c'est génial. Il y a encore une chose que nous pouvons faire ici qui est probablement un peu différente. Et c'est essentiellement le module ou le reste, non ? Nous avons donc du reste. Donc, si nous prenons 25 de deux, donc c'est 25 mod, module ou mod2, alors cela devrait en donner un. Et la raison pour laquelle c'est un, c'est si nous voulons diviser 25, donc 25 divisé par deux ne fonctionne pas correctement ? Mais ce qui se passe, c'est que, quel nombre pourrions-nous ajouter au reste pour qu'il soit divisible par deux. Et ce serait bien sûr un. Alors vérifions que le reste ici. Est un et il l'est, c'est un un. Et puis si nous vérifions juste un autre reste par exemple, et nous allons juste exécuter un 115 puis le module dix, par exemple, ce serait un cinq. J' espère que c'est 5F. Je suis presque sûr que c'est cinq. Parce que quoi, ce qui va se passer, c'est qu'on peut diviser un 110. Juste 11 fois dix, non ? Mais alors 155 sera le reste, n'est-ce pas ? C' est essentiellement l'opérateur restant, également appelé module. Et cela peut être utile. Donc, par exemple, le module deux est incroyablement génial parce que vous pouvez juste vérifier, hey, est-ce égal à 0, non ? Ainsi est le module deux à 0, alors vous savez que vous avez un nombre pair. Ou si vous voulez en vérifier un, alors vous savez que vous avez un nombre impair. C' est pourquoi l'opérateur du module est vraiment bon. Et maintenant, parfois, tu sais, on a cette somme. Et peut-être que ce que nous voulons, c'est le tsunami. Nous avons un entier que nous appelons I et c'est ce que nous voulons faire est que nous voulons fondamentalement avoir plus un pour cela. Donc, ce que nous pouvons faire, c'est que nous pouvons dire, eh bien, je suis égal à i plus un. Ça marche très bien. Et maintenant deux est écrit dans IE. Il est également possible de le faire un peu, encore plus facile. Et ça va être si tu fais I plus égal à un. Parce que maintenant, il va faire le travail de s'ajouter aussi bien. Donc, c'est fondamentalement le même que ça. Donc, ceux-ci sont équivalents. Et maintenant, il va être écrit un trois. Parce que tu te rappelles, on en a deux, non ? On irait de haut en bas. Donc, dans cette ligne, nous avons un deux écrit en i, et maintenant nous avons un trois écrit sur i parce que nous avons ajouté un autre. Maintenant, cela, en passant, tient peut être n'importe quel nombre, bien sûr ce que vous voulez. Et donc ce n'est pas un problème. Mais nous pouvons aller même, disons, plus facile pour incrémenter et décrémenter. Donc, incrémenter et décrémenter est fondamentalement ajouter ou soustraire un. Donc on peut juste faire plus, plus ou moins, moins. Et cela va immédiatement faire puis entendre un quatre. Et ici, nous allons en avoir un trois à nouveau, parce que dans ce cas nous allons en fait soustraire de l'A1. Et oui, maintenant cette façon d' écrire est très utile parce que nous pouvons aussi faire des choses différentes. Donc, nous pouvons aussi avoir des égaux moins raisonnables. Nous pouvons avoir des temps égaux, nous pouvons avoir des égaux de division, et nous pouvons aussi avoir le module égal. Donc celui-ci est vraiment, celui-là est vraiment bon. Je vais mettre ça ici. Eh bien, non, alors tout va changer. Alors gardons-le là. Et ça va juste en faire un autre. Donc le I plus est égal à dix. Et celui-là sera un 13, non ? Et nous avons différents types de choses que nous pouvons faire ici, comme de courtes façons d'écrire ceci. C' est génial que vous l'utilisiez ou non à la fin. Ça n'a pas vraiment d'importance. Cela a tout à voir avec la lisibilité du taux de code, facilité avec laquelle vous allez voir le code, et la facilité avec laquelle il est facile de comprendre le code. Parce que ce que je crois que ce n'est pas aussi compréhensible que ça. Comme OK, je vais juste en ajouter un à moi et je vais l'écrire dans moi et celui-ci , bien sûr, fait exactement la même chose. Je pense que c'est un peu plus facile à lire. Mais en Inde, à la fin de la journée, vous pourriez totalement utiliser l'un ou l'autre. Mais il est important de savoir que ces choses existent parce que peut-être vous allez parfois lire une citation d'une autre personne. Et s'ils utilisent seulement celui-ci, ce type d'ajout ou de soustraction, alors vous aurez un problème si vous ne connaissez pas ces choses. C' est pour ça que je voulais juste le mentionner. Il y a d'autres choses d'autres façons de le faire et oui. 9. (Java) Booleans) et opérateurs de comparaison: D' accord, continuons avec l'introduction Java et regardons les opérateurs booléens et de comparaison. Ainsi, par exemple, nous pouvons initier des mensonges un booléen avec le mot-clé Boolean. Et puis, par exemple, nous appelons ça un b. Et à l'intérieur, nous pouvons soit écrire vrai, vrai, soit faux. C' est la seule chose qui va à l'intérieur d'un booléen, soit vrai ou faux. Et nous pourrions imaginer quelque chose comme dans un jeu, par exemple, un jeu de plateforme 2D. Probablement, vous savez, soudainement comme Mario, vous avez probablement tous vu quelque chose comme ça. Et nous pourrions imaginer un booléen qui est, qui demande, accord, est Mario en ce moment sur le sol ou n'est-il pas sur le terrain ? Et ce booléen pourrait, par exemple, être appelé, est mis à la terre. Donc, c'est quelque chose qui est un peu plus concret que d'avoir juste un booléen appelé B ou C. Et dans le cas où Mario saute, évidemment, je pense qu'il est assez clair que c'est fondé serait faux. Et dès qu'il touche à nouveau le sol, il est, il est ancré serait vrai. C' est donc un exemple où un booléen pourrait être très utile. Mais il y a aussi des choses que vous pouvez faire avec les booléens qui sont très intéressantes. Donc, comme je l'ai dit, l'intérieur d'un booléen, vous pouvez soit stocker un vrai ou un faux. Maintenant, une fois que vous pouvez également faire si nous, par exemple, avons un x booléen, vous pouvez également stocker. Vous pouvez également regarder les expressions et voir comment elles évaluent. Donc, par exemple, je pourrais comparer quelque chose. Donc, je peux comparer deux à, disons cinq et dire, eh bien, la question qui est posée est de, est de moins de cinq. Et puis la réponse est, eh bien, est-ce vrai ou est-ce faux ? Bien sûr que dans ce cas serait, excusez-moi, il serait vrai que vous partiez. Et puis à l'intérieur de x, true serait stocké. Maintenant, nous pourrions aussi faire quelque chose comme peut-être dire y, et ensuite nous avons dix, c'est plus grand que 50. Et ce sera bien sûr faux parce que dix est en fait pas plus grand que 50. Et voilà quelques-unes des choses que nous pouvons faire. Ce sont des opérateurs de comparaison. Et il y a, il y en a d'autres, par exemple. Donc il y a plus petit que, plus grand que, il y a plus grand ou plus petit ou égal et égal à lui-même. Donc celui-ci, par exemple, ressemblerait à quelque chose comme ça. Booléen. B est égal à, et puis nous aurions un 100100. Et celui-ci ne le fait pas, ce n'est pas la mission. L' assignation est un seul signe égal et deux signes égaux moyens, moyens, hey, est-ce égal l'un à l'autre ? Donc, il y a un 100 égal à 100 dans ce cas, oui, donc, c'est vrai. Et puis il y en a un autre qui est inégalé, mais qui va aussi jeter un oeil à celui-là. Donc, si nous avons alors, par exemple, 50 non égaux, 51, cela serait vrai parce que 50 n'est pas 51. Donc, cela revient vrai si les deux côtés ne sont pas égaux l'un à l'autre, juste là derrière, inégal et c'est égal, non ? Voilà donc une partie de l'atmosphère aussi. Ce sont quelques-uns des opérateurs de comparaison et Booléens que vous pouvez utiliser. Et comment nous, comment allons-nous continuer avec les booléens ? On va voir ça dans une conférence plus tard. Mais c'est une très bonne base à avoir pour comprendre ce qui se passe ensuite. Et donc oui. 10. (Java) Booleans et opérateurs logique: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons regarder à nouveau les booléens, mais cette fois nous allons aussi examiner les opérateurs logiques. Donc, dernière conférence, nous avons fini avec cela, et cette conférence, nous allons examiner trois types d'opérateurs. Trois opérateurs que nous pouvons utiliser. Nous allons regarder l'opérateur et, qui va être deux esperluettes science. Nous allons regarder l'opérateur ou, qui va être deux de ces lignes verticales. Et nous allons regarder l'opérateur qui n'est pas, ce qui va simplement être un point d'exclamation, non ? Alors voyons le premier. Donc, ceci est une fois de plus stocké dans un nouveau booléen. Donc on va juste appeler ça B2 booléen. Par exemple, avec ces opérateurs, nous pouvons enchaîner différentes expressions booléennes ensemble. Donc, par exemple, nous pouvons faire x et y. Donc, dans ce cas, il est demandé, d'accord, quel est le résultat de x et y ? L' opérateur et a besoin que les deux expressions soient vraies, n'est-ce pas ? Donc, si x est vrai et si y est vrai, alors l'instruction entière est vraie. Maintenant, dans ce cas, nous savons que y est faux. Et donc on sait vraiment que ça va être faux, non ? C' est l'opérateur et. Le. Ensuite, regardons un autre, par exemple, B3, qui va le stocker dans v3. Et cela va être l'opérateur OR. Donc, l'opérateur ou, disons par exemple, nous allons, nous allons dire est à la terre ou, ou être, lire b apparaître, est à la terre ou B va être vrai. Et la raison pour laquelle cela va être vrai est que si l'une des variables ou l'une des expressions est vraie, alors l'instruction entière est vraie, n'est-ce pas ? Parce que nous demandons, ok, est puni ou B. Et si l'un d'eux est vrai, alors B3 va aussi être vrai. Ceci est l'opérateur ou. Et puis le dernier avant sera l'opérateur NOT ou la négation. Et c'est simplement écrire le point d'exclamation et ensuite quoi que ce soit, par exemple, le type booléen que vous voulez avoir, et cela l'inverse fondamentalement. Donc, cela va transformer cela vrai en un faux. Et ce n'est pas l'opérateur. Nous avons déjà vu ce genre de avec l'opérateur unequals ici et ici. Et celui-ci retourne simplement ou inverse tout ce qui est écrit dans la variable. Ou aussi, par exemple, si j'écris pas vrai, ce serait tout simplement faux. Ce sont donc deux choses qui fonctionnent et qui sont très importantes. Vous pouvez aussi les enchaîner ensemble, je veux dire, infiniment fondamentalement. Donc, vous pouvez dire B2 et B4, ou b3, e3, et x, ou boeuf avant de nouveau, eh bien, cela n'a aucun sens. Ou pourquoi ? Ou C, par exemple, n'est-ce pas ? Donc, cela aurait maintenant l'air hideusement compliqué. Il y a quelques mathématiques que vous pouvez utiliser afin de regarder fondamentalement ce que vous pouvez, vous pouvez le simplifier, n'est-ce pas ? Donc, c'est une, fondamentalement une fonction. Vous pourriez éventuellement simplifier cela s'il y a de l'intérêt, je peux certainement vous montrer quelques-uns de ces trucs et astuces et ce que vous pouvez utiliser. Juste un droit une question ou pose-moi. Et je serai sûr de faire aussi de l'électron que s'il y a assez d'intérêt pour cela. Ouais, donc c'était essentiellement pour les opérateurs booléens et logiques. Et oui. 11. (Java) et méthodes de chaîne et de cordages dans Java: Bon, bienvenue à l'introduction de Java. Dans cette conférence, nous allons parler des chaînes et des méthodes de chaîne. Donc, tout d'abord, on va parler de ficelle. Donc, nous avons une chaîne juste ici. Ça s'appelle Sentence et Helloworld écrit. Ce cours est merveilleux. Super. Maintenant, peut-être que ce qu'on veut savoir, c'est combien de temps dure cette corde ? Combien y a-t-il de personnages ? Ce n'est pas un problème. Nous pouvons immédiatement, d'ailleurs, imprimer aussi cela. Et ce sera, alors disons que nous disons que la longueur est, et ensuite vous faites un plus afin de sortir ceci. Donc, nous allons avoir la phrase, la longueur des points de phrase. Et cela va ensuite sortir, fondamentalement tout va sortir la longueur de cette chaîne. Appelons ça. Et on va voir la longueur est 38. Intéressant. En gros. Nous avons 38 caractères dans cette chaîne est assez bon. Donc c'est une bonne chose de savoir que nous pouvons comprendre cela, longueur des points et ensuite les parenthèses. C' est en passant, un appel de méthode. C' est fondamentalement quelque chose comme, vous savez, la méthode principale dont nous avons parlé, la méthode principale. Et ce sont des méthodes que nous pouvons faire sur nos chaînes individuelles que nous avons. Et en voici quelques autres qui sont très utiles pour certaines choses. Donc je vais les copier. D' habitude, je n'aime pas faire ça. Cependant, dans ce cas, je pense que c'est, c'est plus logique parce que toujours exécuter la ligne d'impression et alors la méthode ne semble pas être, vous savez, précieuse. Mais je vais vous expliquer. Donc, fondamentalement, peut-être que nous voulons est que la phrase soit en majuscules ou en minuscules. Et nous pouvons utiliser la méthode en majuscules ou minuscules. Maintenant, cela devrait être explicatif. On va juste faire ça et on ne verra pas crier. Et puis nous avons tout en majuscules, si nous chuchotons qu'avec tout en minuscules. Donc, même les choses qui ont été capitalisées, les mots qui capitaliseront avant ne sont pas maintenant, pas capitalistes. Ce qui est aussi très important à savoir, et je vais le démontrer en tirant la phrase elle-même par la suite, c'est que lorsque nous faisons cela, la phrase n'est pas changée. La phrase variable ne change pas. Lorsque vous appelez, par exemple pour APA ou pour baisser. En fait, il crée fondamentalement une nouvelle chaîne qui a les changements que vous voulez. Par exemple, mettez tout en majuscules, il y a une nouvelle chaîne. Donc, si vous voulez alors changer la phrase elle-même, alors vous devez l'enregistrer à nouveau dans la variable, quelque chose comme ceci. Donc, la phrase est égale à point de phrase en majuscules. Alors la phrase bien sûr, deviendrait majuscule. Sinon, la phrase elle-même n'est pas modifiée. Note rapide, parce que c'est un peu important, non ? Peut-être que quand on veut savoir est hey, alors où dans la, dans cette phrase est le mot cours trouvé, non ? C' est ce qu'on appelle l'index de et ce que nous appelons ensuite En fait, vous savez quoi, mettez-les en une ligne, s'il vous plaît. D' accord. Et ce que nous allons appeler ici va être condamné index de et ensuite nous avons juste réussi le cours. Donc nous allons écrire entre parenthèses. Je vais écrire ça juste pour le rendre un peu plus clair. Donc, nous écrivons l'index de phrases de. Ensuite, vous pouvez voir que nous avons une chaîne entière, nous voulons est une chaîne. Donc, nous voulons essentiellement demander, d'accord, où dans cette phrase, où la phrase est la suivante, printemps trouvé et ce que nous allons écrire les pores. Et puis si nous exécutons celui-là, nous verrons que le mot cours se trouve à la position 18. Ok, pourquoi est-ce important ? Eh bien, ce n'est pas nécessairement important, mais c'est important que, tu sais, d'accord, on puisse regarder d'abord, combien de temps dure une chaîne. Et puis ici, nous pouvons vraiment regarder, d'accord, où est une partie particulière de la phrase ? Où est-il écrit ? Et nous allons voir assez tôt ce que nous pouvons faire avec fondamentalement bien partout où le bureau de l'index. Mais tout d'abord, on va être comme, eh bien, tu sais quoi ? En fait, je ne veux pas dire bonjour monde, vous savez, je veux dire bonjour les étudiants. Et que nous pouvons utiliser la méthode de remplacement. Donc, nous utilisons la phrase point Remplacer. Et là, nous avons mis deux cordes et nous allons regarder ça une fois de plus. Donc on va faire remplacer. Et là, nous avons l'idée. Ceci est écrit dans la séquence de caractères. Ne vous inquiétez pas pour ça. C' est essentiellement une ficelle. Donc on va dire remplacer. Et nous allons dire, eh bien, nous voulons remplacer. C' est la cible. C' est donc ce que nous voulons remplacer le monde. Et puis on fait une virgule et on dit, eh bien, quel remplacement, qu'est-ce qu'on veut remplacer une largeur dans ce cas, je vais faire des étudiants. Et si nous sortons ensuite celui-ci, nous allons voir que maintenant il dit, bonjour les étudiants, ce cours est merveilleux. Nous avons donc remplacé chaque instance du mot, monde des mots par le mot étudiants. Maintenant très important, cela remplace toutes les instances du mot. Juste ainsi, c'est vrai. Donc celui-ci, je vais l'écrire à nouveau, remplace toutes les instances du mot, non ? Juste pour que tu le saches. Et je crois que c'est aussi écrit ici. Donc, vous pouvez toujours, si vous ne savez pas quelque chose, vous pouvez toujours passer la souris dessus. Et ça va te donner un géant comme tant d'informations, c'est incroyable. Ainsi, par exemple, ici, comme vous pouvez le voir, nous pouvons voir remplace chaque sous-chaîne d'une chaîne qui correspond la séquence cible littérale par une séquence de remplacement littérale spécifique. Maintenant, c'est comme incroyable, incroyablement compliqué parler pour dire, hey, chaque fois que le monde est au printemps, il va être remplacé par ce que vous mettez ici. C' est tout ce que ça veut dire. Donc, c'est essentiellement la traduction en anglais normal, je suppose. Et peut-être ce qu'on veut voir, hé, comme si on avait une ficelle ici. Disons qu'on va avoir une chaîne, on va faire une nouvelle chaîne. Et on va dire, hé, il y a quelque chose là-dedans où on peut demander ça ? Et c'est fondamentalement, nous pouvons le mettre dans un booléen. On pourrait dire, hé, cette chaîne n'est pas vide. Et maintenant bien sûr dans ce cas, oui, il est vide parce que cette chaîne est vide. La phrase ne serait pas vide. Mais je veux juste montrer ça. Il est en effet vide. Ce n'est pas ce que je voulais. Je voulais imprimer une ligne B. Merci. Alors, et ensuite on va le faire. Et ça va être vrai parce qu'il demande, hé, cette bague est vide ? Oui, c'est le cas. Et nous pouvons aussi avoir ça ici. Donc nous avons notre chaîne s, et nous allons juste mettre les guillemets sans rien à l'intérieur quand vous voyez que S est vide. Et c'est en effet toujours vrai parce que rien n'est écrit en S. Alors peut-être que ce que nous voulons savoir est ce qu'une chaîne commence par, se termine par. Et c'est exactement le nom de la, des méthodes que nous pouvons utiliser. Et cela commence par et se termine par, commence par une nième racine. Et en ce moment, nous demandons, ok, est-ce que la phrase de chaîne commence par un h et se termine par un a ? Et bien sûr, cela commence par un H, mais cela ne se termine pas par un a. Et alors si nous faisons juste cela et nous verrons vrai pour celui-ci, puis faux ou se termine par. Et c'est aussi une ficelle, non ? Donc, nous pouvons avoir plusieurs caractères à nouveau là-dedans. Et on va dire, Hey, ne commence pas par, par exemple, bonjour, ou est-ce que ça commence par comment, et bien sûr que ça ne commence pas par comment, hein ? Donc, celui-ci, bien sûr maintenant, serait faux. D' accord, donc c'est fondamentalement comment vous pouvez utiliser les commence par et se termine par les méthodes. Nous pouvons également demander, eh bien est quelque chose à l'intérieur de la chaîne. Donc on peut dire, hé, est-ce que cette chaîne contient, par exemple, World, non ? Et je vais copier ça à nouveau. Donc, c'est fondamentalement la méthode contains. Et nous allons demander, d'accord, est-ce que la phrase contient Monde, vrai ou faux ? En fait, c'est vrai. Parce que ça inclut le monde. Maintenant, vous pourriez être comme, attendez une seconde, n'a pas remplacé le monde par des étudiants. Aha. Encore une fois, oui, nous l'avons fait. Mais tout comme avec les majuscules et les minuscules, ce qui se passe est que nous avons réellement une nouvelle chaîne créée ici. Donc, la phrase ne change pas. Encore une fois, très important à savoir. Je pense que je ne suis pas sûr si chaque méthode de chaîne est, ne change pas la chaîne, mais je le crois. Je crois que chaque méthode que vous pouvez appeler sur une chaîne ne la change pas réellement, elle crée une nouvelle chaîne. C' est donc très important à savoir et cela, vous savez, parfois et je parle d'expérience ici. Cela a conduit à des maux de tête parfois quand vous pensez, eh bien, pourquoi n'avez-vous pas changé et vous avez réalisé 30 minutes après avoir tout vérifié et vérifié votre code. Oh, bien sûr, je dois le faire. En fait, fondamentalement, j'ai une nouvelle variable et, et enregistrez cela aussi. C' est pourquoi dans ce cas, le monde contient est vrai. Alors peut-être que tu veux dire hé, alors on a une autre chose. Alors peut-être qu'on veut dire « hé », OK. Donc, le caractère, donc le personnage à la dixième position, qu'est-ce que c'est ? Je veux savoir que nous pouvons voir que c'est AD. Maintenant, si nous regardons la chaîne, c'est probablement le D du monde. Oui, bien sûr, c'est un monde différent parce qu'ici nous serions déjà à 0.30 ou quelque chose comme ça. Donc, c'est pourquoi c'est, c'est aussi appelé l'index. Ensuite, cela dirait comme un index de si nous écrivons ici index de d. Ensuite, nous pouvons chercher et nous pouvons voir ici le mot, dans ce cas cœurs, bien sûr ce n'est pas, juste. Je veux voir D. Alors faisons-le correctement cette fois. Ce que nous allons voir, c'est que le mot D se trouve à la position 10. Et ici, nous avons regardé char à la position dix. Et voici, c'est aussi d. Donc c'est fondamentalement comment ils sont liés les uns aux autres. Et je pense que c'est plutôt bon. Je pense que c'est plutôt bon, non ? D' accord, donc nous avons beaucoup appris sur ce que nous pouvons faire avec les cordes et leurs méthodes, mais il y a encore quelques choses que nous pouvons faire. Et l'une de ces choses, par exemple, est que nous pouvons prendre une sous-chaîne. Alors peut-être que nous ne voulons pas de ce Hello World dans l'année. Peut-être que nous voulons que ce cours est merveilleux. Et pouvons-nous ensuite utiliser, est que nous pouvons utiliser la méthode de sous-chaîne. Et comment fonctionne la méthode de sous-chaîne ? Ce qu'on va faire, c'est qu'on va prendre ce taux. Donc, comme nous l'avons établi, l'index est fondamentalement l'endroit où nous sommes dans la chaîne. Donc on va prendre la 12e position. Et puis c'est le début des sous-chaînes. Donc, la nouvelle chaîne que nous voulons créer, et la dernière, donc c'est aussi un entier, est la dernière position que nous voulons aller. Dans ce cas, nous voulons juste aller à la fin de la chaîne. Et c'est pourquoi nous pouvons juste prendre la longueur. Parce que bien sûr, le dernier caractère à l'intérieur de la chaîne va correspondre. Donc, la position, l'index du dernier caractère va correspondre à la longueur d'une chaîne va exactement être la même. Parce que si vous comptez 1-2-3 et un haut, alors vous arrivez à dire, d'accord, cette chaîne est si longue, et évidemment c'est la dernière position. Par conséquent, c'est la position égale à sa longueur. Donc on va juste faire ça et regarder ce qui va sortir. D' accord ? Et ce qui va sortir, c'est qu'on a maintenant un bar spatial ou un espace. Et puis ce cours est merveilleux. Maintenant, la façon dont nous pouvons nous débarrasser de l'espace est évidemment juste de faire un 13 est plus de 12. Mais cela va être parfait parce que cela va conduire à une autre des fonctions que nous allons examiner. Et il va être coupé. Et taillé fait très facile. Au début et à la fin de la phrase ou de la chaîne. Il va juste dans n'importe quel espace blanc. Donc tout, vous savez, n'importe quel espace, fondamentalement il va juste enlever. C' est ça. C'est tout ce qu'il fait. Garniture. D' après mon expérience. Probablement utile parfois, mais oui. Oui. Donc, en résumé, ce sont essentiellement les méthodes que je voulais montrer pour les chaînes. Donc, il y en a beaucoup, et il y en a beaucoup d'autres qui ne sont pas toujours aussi utiles. Ou parfois ils le sont. Mais je pense que c'est fondamentalement un bon aperçu à savoir. D' accord ? Que pouvons-nous faire avec les cordes ? Quels sont les, quelles sont quelques-unes des méthodes que nous pouvons utiliser pour les manipuler fondamentalement et essentiellement jouer avec eux un peu. Et oui. 12. (Java) Casting en cas de casting en cas de: Bon, bienvenue à l'introduction de Java. Et dans cette conférence, nous allons parler de casting. Donc, comme vous l'avez probablement vu, si nous avons un entier et que cela va être seul. Nous allons donc obtenir un prêt de $750 juste pour des raisons de discussion. Et puis évidemment, nous allons avoir un taux d'intérêt. Taux d'intérêt. Et dans ce cas, le taux d'intérêt sera de 5,25 %. Et nous allons enregistrer ceci comme un flotteur, bien sûr, car un entier ne peut pas enregistrer les points décimaux. Et donc nous devons le faire. Et maintenant, ce que nous pouvons faire, curieusement, comme nous pouvons le dire, d'accord, intérêts que la seule fois le taux d'intérêt. Oh, non, pas intra, inter entier mais taux d'intérêt. Et ça va marcher. Parce que dans ce cas, oui, c'est un entier et c'est un flotteur. Et si nous sortons alors tout ça, nous allons dire, hé, quel est l'intérêt qui a réellement montré ? Mais ça va être fou ouais, c'est 39,375. Donc 39$. Et dans ce cas, je dirais probablement 0,38$. Donc on va arrondir. Et cela fonctionne parce que l'entier est fondamentalement sur le vol converti, pour ainsi dire, en un flotteur. Et ça marche. Maintenant, bien sûr, si on dit int, ça ne va pas marcher parce qu'il va être comme non, ça ne marche pas à ça. C' est un flotteur, ce travail. Et c'est pourquoi ce filet qui doit être un flotteur. Nous pouvons fondamentalement convertir ça. On peut forcer la conversion, pour ainsi dire. Si nous écrivons float devant lui entre parenthèses, et alors celui-ci est traité comme un flotteur. Maintenant, voici un entier, mais maintenant dans son intégralité, il est traité comme un flotteur. C' est déjà ce qui se passe, non ? Mais c'est, dans ce cas, c'est, c'est assez bon pour que ça fonctionne à la volée, non ? Donc on n'a pas à y penser. Et si nous avons un, un exemple où il est en fait un port. Donc quand on aura un index, on l'appellera X. et il y a 50,5, f plus 20. Disons 235 ou F pointu. Maintenant, cela va être, ne fonctionne pas parce que c'est un, c'est un flotteur, est un flotteur, mais nous voulons un problème de nombre entier. Ce qu'on peut faire, c'est juste dire hey int. Et c'est tout aussi. Et puis il va traiter ces deux nombres comme des entiers. Mais ce que nous pouvons voir alors, en fait, c'est mettre un six ans qui va être plus intéressant. Donc on va sortir le X et ce qu'on va trouver, c'est qu'il est 70. Et puis on va réfléchir une seconde. On va être comme, attendez, un 20.5.6, ça devrait être 71.1. Mais ce n'est pas correct, parce que ce qui se passe, c'est si nous avons un flotteur et que nous le jetons en un entier, n'est-ce pas ? Donc, c'est fondamentalement la prise du flotteur et fondamentalement, vous savez, l'échanger en un, en un entier. Alors ce qui va se passer, c'est tout après que la virgule va juste être coupée. On va juste ignorer ça, non ? Donc, c'est fondamentalement le casting d'un, d'un flotteur à un entier. Cela signifie essentiellement que vous perdez des informations. Principalement ce qui est écrit après la virgule décimale. Oups, désolé. Qu' est-ce qui est écrit après la virgule, n'est-ce pas ? C' est pourquoi le, quand vous coûtez, vous devez faire attention à perdre parfois des informations. Donc, dans ce cas, d' un, d'un flotteur à un entier, ça va perdre des informations d'un entier à un flux. Eh bien, vous n'allez pas gagner d'informations parce que l'entier n'avait pas quelque chose comme après les points décimaux stockés. Mais maintenant, vous pouvez l'utiliser en tant que tel. Et donc c'est fondamentalement une instance de juste, eh bien, fondamentalement ce n'est pas vraiment implicite casting dans ce cas parce qu'il peut juste gérer cela. Mais c'est le casting explicite. Donc c'est là que nous sommes, ok, cela doit être traité comme un entier. Et je voulais juste souligner ce coût. Et comment vous le faites est simplement avant la variable, vous écrivez juste entre parenthèses, quel que soit le type de données que vous voulez que cela coûte. Maintenant, certains coûts, les choses ne fonctionnent pas. Donc, par exemple, si je suis comme, faisons un int y et nous disons 50 plus. Et puis nous sommes allés coûter Helloworld. Qu' est-ce que ça veut dire ? Taux, vous ne pouvez pas convertir une chaîne en entier. Parce que tu ferais quoi ? Fait intéressant, et je vais juste mentionner cette année, peut-être que nous voulons demander à un personnage qui fonctionne, qui fonctionne. Et la raison pour laquelle cela fonctionne est parce que les caractères en arrière-plan, pour ainsi dire, sont essentiellement stockés sous forme d'entiers. Et donc cela va fonctionner, mais une chaîne qui n'a aucun sens. C' était donc un très bref aperçu du casting. Et comme toujours, si vous avez des questions, hésitez pas à les poser et je répondrai et j'y répondrai. Et oui. 13. (Java) des éléments et méthodes de maths: Bon, bienvenue à l'introduction de Java. Et dans cette conférence, nous allons parler encore un peu des entiers et des méthodes mathématiques. Donc on va utiliser les maths, je sais, mais ne vous inquiétez pas pour ça. Ça ne va pas être fou. Donc, tout d'abord, nous allons sortir quelque chose et nous allions sortir ces actes Math.min. Et puis on va faire x et y. donc ça va évidemment sortir 225 parce que le maximum de ces deux-là est 225. Cela fait, j'espère que cela a du sens. Et puis fondamentalement complètement analogique à cela, nous pouvons juste utiliser min et cela sortira ensuite un 100. Donc c'est un moyen très facile de dire, accord, quel est le maximum ? Quel est le minimum de deux nombres maximum, minimum ? Alors peut-être que nous voulons avoir la racine carrée de quelque chose. Maintenant, ça va être quelque chose qui va être complexe, non ? Non, on va juste faire des maths, racines carrées, donc SQRT. Et puis on va mettre, par exemple y et ça va donner 15 parce que la racine carrée de 225 est 15. On va juste regarder ça. On va faire ça et on va voir, comme vous pouvez le voir, deux cent vingt-cinq, cent quinze. Maintenant, vous allez également noter qu'il s'agit d'un point décimal a été ajouté. Hmm, pourquoi c'est ? Parce que la racine carrée, si nous survolons réellement, nous pouvons voir que c'est un double. Donc, cela renvoie une valeur double, et il attend également une valeur double. Mais nous pouvons aussi le passer dans un entier parce que ça va se passer. Et oui, donc c'est en fait une double valeur. Maintenant, comme nous l'avons vu dans la dernière conférence, nous pouvons réellement coûter cela à un entier. Et ce que nous allons voir, c'est que nous allons en avoir 15, par exemple. Donc si nous savons que la racine carrée que nous allons prendre va bien se passer. Ça va être un numéro entier, alors c'est bon. Mais juste au cas où, qui sait ? Si nous traitons avec beaucoup de chiffres négatifs, peut-être aussi avec des gens négatifs. Mais dans ce cas avec des nombres négatifs, nous pouvons utiliser absolue, la valeur absolue. Donc, la valeur absolue de moins 5 mille est évidemment juste 5 mille. Donc ça va prendre tout ce qui est. On va supprimer le signe négatif. C' est tout. Et si nous voulons arrondir ou descendre, nous avons quelques options pour cela. Et ce sont les options qui sont généralement utilisées pour cela. C' est la fonction ceil. Donc, si nous avons 22, par exemple, pour quelque chose comme ça, 22.413, la fonction ceil va alors l'arrondir à l'entier le plus proche. Donc ça va être un 23. Et si nous avons la fonction de plancher qui est exactement le contraire, alors nous allons avoir le même numéro. Alors ce que nous allons faire, c'est que nous allons réellement arrondir à l'entier le plus proche, peu importe si la règle avec, eh bien, si c'est un cinq et plus que nous allons arrondir. Non, le sceau s'arrondit toujours à l'entier le plus proche et le plancher va toujours descendre au pouce le plus proche. Comme vous pouvez le voir, c'est 23 et c'est 22. Notez encore une fois, cela renvoie un double dans ce cas et dans les deux cas. Alors. Parfois, cela peut conduire à des résultats différents. Nous pouvons également toujours constituer un entier parce que cela est toujours, va toujours retourner une valeur entière dans le sens où il va toujours être quelque chose avec rien après la virgule décimale. Et puis peut-être, vous savez, nous avons fait la racine carrée, mais je veux dire, soyons honnêtes. Nous voulons aussi avoir quelque chose au pouvoir de quelque chose. Donc, nous allons avoir le Math.Pow, qui est bien sûr la meilleure et la plus drôle chose à avoir. Et ce qu'on va faire, c'est qu'on va avoir dix à la puissance de deux. Donc, fondamentalement, cela va être dix pour la puissance de deux. Et j'espère que nous savons tous ce que c'est. Bien sûr, c'est un 100. Mais juste comme ça, plutôt, la dernière méthode dont nous allons parler en regardant la fonction mathématique va être quelque chose qui est vraiment intéressant et important pour la programmation web en général. Et ça va être les méthodes aléatoires. Donc, point mathématique aléatoire. Et maintenant, qu'est-ce que la méthode aléatoire faire ? Eh bien, il génère essentiellement un nombre entre 0 et 1,00. Donc on va juste, on va juste faire ça. Donc ça va être 0.64 et la folie. Et puis on va, et si on recommence ça ? Et ça va être 0.907. Et encore une fois, ça va être différent. Si alors nous voulons peut-être avoir un nombre différent, ce que nous pouvons faire est, donc par exemple, si nous voulons des nombres entre 0 et quelque chose d'autre sera dû aussi. Donne-moi quelque chose comme ça, disons un 100, non ? Et ça va être un flotteur. Je crois que nous pouvons juste faire un entier en fait. Et puis on en aura 50. Et puis nous pouvons lancer tout cela dans un entier. Et puis nous avons un moyen facile de passer de 0 à, de 0 à 100 et cela, donc si nous coûtons tout le truc dans un entier, maintenant, la raison pour laquelle je casse le tout dans un entier au lieu de simplement faire au hasard. Parce que si je, si je ne coûte pas si un cousin en entier, alors ce sera toujours fondamentalement un 0. Donc ça ne va pas être vraiment utile pour moi. Mais dans ce cas, nous avons alors un entier et cela va toujours être différent. 58, eh bien ça va en avoir 41 de plus. 98, eh bien c'est plutôt bon. Droit ? Et c'est les fonctions aléatoires de chaque fois qu'on appelle, on va avoir un numéro différent. Et c'est vraiment utile pour toutes sortes de choses. Vous savez, si vous voulez, par exemple, programmer un jeu plutôt qu'au hasard, les choses sont vraiment importantes. Maintenant ça va aussi être, il va dire ça, c'est pseudo-aléatoire. Ne vous inquiétez pas pour ça. Tant que vous ne faites rien de fou avec la chose aléatoire, comme déchiffrer, chiffrer quelque chose ou quelque chose comme ça, alors ça n'a pas d'importance. Le pseudorandom, si c'est quelque chose qui vous intéresse ou que vous voulez avoir un peu plus d'informations, alors n'hésitez pas à me demander et peut-être que je vais vous fournir un peu court, vous savez, comme la vidéo du site, conférence sur le site à ce sujet. Mais en général, ça n'a pas d'importance pour nos buts. C' est aléatoire. C'est juste un nombre aléatoire qui est généré et oui. 14. (Java) Si et d'autres déclarations dans Java: Bon, bienvenue à l'introduction de Java. Dans cette conférence, on va parler de « if » et « else ». Et dans les conférences précédentes, nous avons déjà vu un booléens et des opérateurs de comparaison et comment ils sont liés les uns aux autres. Et maintenant, nous allons voir, d'accord, comment pouvons-nous les utiliser pour changer fondamentalement notre programme ou changer le fonctionnement d'un programme. Donc la première chose qu'on va faire, c'est qu'on va utiliser une déclaration if. Et la déclaration if demande essentiellement ce qui est entre parenthèses, ok, est-ce vrai ou est-ce faux ? Donc, si c'est faux, alors nous allons exécuter du code. Et puis nous allons voir ce que cela implique. Par exemple, on pourrait se demander si x est plus grand que y ou plus grand que Y. et je vais le faire, je vais mettre deux crochets bouclés. Et tout dans ces parenthèses bouclées. Tout ici, à droite, ici est exécuté. Exécuté, ok ? Oui, ils y vont si vrai, non ? Donc, si c'est vrai, si cette expression, ce qui est entre parenthèses, et cela peut être une expression vraiment longue, mais il peut être x est plus grand que y et, ou tout cela. Tant que c'est un booléen, fondamentalement là-dedans, alors, et si c'est vrai, alors ceci est exécuté. Donc, nous pouvons, par exemple, dans ce cas, juste imprimer peut-être quelque chose comme x est plus grand que y parce que c'est certainement quelque chose qui se passe si, si c'est le cas. Ce que nous voulons peut-être, c'est que nous voulons vraiment l'affaire exactement opposée. Donc peut-être que vous voulez dire, eh bien, si c'est vrai, alors nous allons le faire. Mais si ce n'est pas le cas, donc si ce n'est pas vrai, alors nous peut-être quand autre chose et puis vous allez autre est exactement le bon mot. Parce qu'alors on peut juste ajouter un autre ici. Encore une fois avec des parenthèses et, ou avec un, avec un crochets bouclés plutôt. Et là-dedans, maintenant, tout va bien ? Donc si on met ça ici, ici, tout s'exécute. Si elle est fausse, n'est-ce pas ? Si cela, cette instruction est fondamentalement fausse, alors l'instruction else s'exécute. Et puis nous pouvons écrire, par exemple, nous allons juste copier ceci sur x n'est pas plus grand que y, n'est-ce pas ? Et comme nous pouvons le voir clairement, x est un 100 et y est 1000. Donc, évidemment, cette expression est fausse. Et ce que nous attendrions ici, c'est de voir celui-ci imprimé. Donc, nous voulions voir X n'est pas plus grand que Y. On va juste faire ça et voir ce qui se passe. Et c'est exactement ce que nous allons voir. X n'est pas plus grand que Y. C' est tout serait aussi toujours génial. Ou une, une bonne idée lorsque vous écrivez du code et que vous attendez quelque chose, exécutez-le simplement. Et si vous ne comprenez pas ce que vous attendiez, c' est évidemment parfois qu'il y a un dollar là-dedans ou parfois il y a peut-être peut-être que vous avez mal tapé quelque chose, toujours une affaire ou pourrait être le cas. Et donc c'est toujours génial. Il suffit de l'exécuter. Pense, d'accord, je m'attends à ça. Si ça sort, c'est vraiment bien. Maintenant, c'est un peu plus long que ce qui pourrait être nécessaire. Donc, ce que nous pouvons faire est que nous pouvons aussi écrire si et puis nous avons un booléen ici. C' est un bon cours, et on va juste écrire ça là-dedans. Et puis je vais juste mettre le curseur derrière la parenthèse, et je vais juste appuyer sur Entrée. Et vous voyez la carotte essentiellement dans dense immédiatement. Et je vais juste écrire une ligne ici, les ennemis de la ligne d'impression peuvent dire, oui, plutôt bien. Donc c'est fondamentalement, donc c'est bien sûr. Si c'est le cas, alors je vais imprimer, oui, c'est plutôt bon. Et vous pouvez voir que je ne reçois aucune erreur. Et je n'ai pas les crochets bouclés. Pourquoi c'est ça ? Eh bien, vous pouvez avoir une ligne après une instruction if, puis else qui va être exécutée. Et puis il n'a pas besoin de l'être, eh bien, il n'a pas besoin de prendre autant, autant d'espace. Vous pouvez bien sûr également mettre les supports bouclés sur le dessus. Mais bien sûr, au début du cours, j'ai déjà parlé de pourquoi mot que je préférais comme ça. C' est évidemment un choix complètement personnel en gros. Et ça ne change rien du tout sur le code. Droit ? Donc c'est, dans ce cas, que nous avons ceci en une seule ligne. Maintenant, nous ne pouvons pas faire une autre ligne qui va être exécutée. Donc, dès que nous avons deux lignes que nous voulons exécuter dans une instruction if, cela ne fonctionne plus. Maintenant, je veux dire quelque chose au truc booléen, non ? Donc, dans ce cas, le booléen est vrai, non ? Donc celui-ci est juste comme si c'est bon. Et c'est fondamentalement un, une abréviation de la question est bien sûr égale vrai, non ? Et parfois certaines personnes, et parfois ça a du sens, je vais juste les copier. Pourtant, c'est toujours assez bon. Je le dis comme ça. Donc d'abord, il va au marché et il sera comme un, c'est, bien sûr que c'est vrai, peu importe. Et vous pouvez aussi écrire le booléen ici. Parfois, certaines personnes préfèrent l'écrire comme ça pour le rendre un peu plus explicite. Pour dire, Hey, c'est, si c'est vrai, alors on va aller de l'avant. Parce que peut-être, tu sais, pense à ça comme ça. Non, non, nous avons 32 lignes de code en ce moment, 700 lignes de code. Et tu passes à travers, et à un moment donné tu vas juste lire quelque chose comme ça. Et si le, si les variables ne sont pas nommées correctement, n'est-ce pas ? Ensuite, nous allons rencontrer un énorme problème parce que généralement, vous savez, les variables booléennes, si elles commencent par est ou a ou quelque chose comme ça, fonctionne comme ça, alors vous pouvez le plus facilement les repérer, n'est-ce pas ? Vous pouvez facilement voir comment c'est un booléen. Et bien sûr, vous pouvez toujours planer dessus, voir ce qu'il fait, ce que c'est. Certaines personnes utilisent ça. Certaines personnes ne le font pas. Aussi la préférence, n'est-ce pas ? C' est juste une préférence. Je voulais juste montrer que ces deux choses sont totalement valables. Les deux travaillent. Et la chose la plus importante est à la fin, quand vous écrivez le code, que vous pouvez le lire, non ? C' est la chose la plus importante. Donc, quelle que soit la version que vous voudriez, vous préférez personnellement ou que c'est plus clair pour vous, utilisez celle-ci. Et puis comme la dernière chose. Donc, nous avons vu si et puis une déclaration else. Mais on peut le faire encore plus. Disons, par exemple, que nous avons un sous comme celui-ci. Donc x est plus petit que 50 et nous allons imprimer x est plus petit que 50 juste pour des raisons d'argument. Et puis nous allons être comme, eh bien, faisons une déclaration d'autre. Mais en fait, je veux demander quelque chose de plus précis. Nous pouvons en fait après le reste, nous pouvons juste en mettre un autre si, d'accord, alors nous pouvons dire OK, si c'est plus grand ou égal à 50, et si x est plus grand ou plus petit qu'un 100, alors ce que nous allons écrire sur est fondamentalement dans ce cas aussi ce que nous avons écrit là-bas. Mais on pourrait imaginer quelque chose, quelque chose qui s'exécute. Eh bien, nous voulons voir si X est exactement entre 5000 et ensuite nous le ferions peut-être pour, donc par exemple, cette bonne, bonne idée serait, vous savez, peut-être, un bon taux, une note de pourcentage. Donc, si vous avez 50 ans, vous avez moins de 50 ans. Eh bien, malheureusement, tu n'as pas réussi la note. Ici. Tu réussis la note et peut-être que dans 100 ans, tu l' as vraiment bien fait, non ? Donc, c'est quelque chose qui fonctionne. Et oui, et bien sûr, tu pourrais le laisser comme ça ou tu peux même en mettre un autre. Et dans ce cas, alors ce serait juste un 100. Eh bien, dans ce cas un 100 de plus, plus grand ou égal, bien sûr, comme ça, oui. Et de cette façon, vous pouvez simplement passer par plusieurs questions, plusieurs déclarations if et x. Eh bien, si, si c'est vrai, alors faites-le. Si ce n'est pas vrai, alors il va à l'état L, alors le programme va essentiellement à la déclaration else. Et c'est comme d'accord, sinon. Et puis il est genre, oh, ok. Si et puis cela va être exécuté. Si c'est le cas, sinon d'autre. Et puis cette production. Et donc c'est essentiellement le petit aperçu des déclarations if et if else. Et oui. 15. (Java) l'opérateur Ternary dans Java: D' accord, continuons avec l'introduction de Java. Dans cette conférence, on va parler de l'opérateur ternaire. Et tout d'abord, la première chose qui me vient à l'esprit est, oh mon Dieu, ça a l'air fou. Compliqué. Doit bornes n'est pas compliqué du tout. Donc, ici, par exemple, nous avons un entier qui est une excellente lecture. Ainsi, par exemple, votre note à un test ou à un examen sera de 69. Et puis nous pourrions avoir un booléen qui est passé, non ? Et c'est juste un booléen qui signifie, ok, avez-vous réussi le test ou non ou de l'examen ou peut-être tout le cours. Et bien sûr, ce qu'on peut faire c'est dire, hé, si la note est plus grande ou égale à 15, alors on va juste passer est égal à vrai. Et puis nous faisons d'autre passé comme égal à faux. Ça marche parfaitement bien. Cependant, dans ce cas, nous avons effectivement utilisé quatre lignes de code. Et bien sûr, c'est lisible. Et c'est génial. Cependant, il y aurait une autre façon de le faire. Et l'autre façon de le faire, je vais rapidement me débarrasser de tout ça. Et l'autre façon de le faire est l'opérateur ternaire. Et puis nous pouvons écrire ceci en une seule ligne. Donc opérateur ternaire est bien sûr dérivé de trois. Il y a donc trois parties à ça. La première partie est les états booléens, non ? Donc, ce que nous voulons savoir, c'est, eh bien, si x est plus grand ou égal à 50, alors bien sûr nous avons réussi. Alors ce que nous allons l'écrire comme un point d'interrogation, puis tout ce que nous voulons revenir, si c'est vrai dans ce cas vrai, alors nous allons écrire un, un deux-points, et ensuite nous allons écrire faux. Donc, fondamentalement, quoi qu'il arrive si cela ne nous vient pas, bien sûr, ce n'est pas x, désolé, c'est génial. Et c'est fondamentalement déjà tout dans cette ligne. La même chose se produit avec l'instruction if else. Maintenant, parfois, cela n'est pas propice à un bon code parce que vous ne pouvez pas le lire aussi clairement. Cependant, parfois avec des choses simples comme celle-ci, il devrait devenir assez évident ce qui se passe ici. Et, mais cependant ceux-ci peuvent être, vous savez, vous pouvez également mettre un autre opérateur ternaire à l'intérieur de l'opérateur ternaire de la buse et ainsi de suite. Et à un moment donné, ça devient fou, follement complexe à lire. De toute façon. Donc c'est une des choses qui est possible et ça ne doit pas seulement être booléen ici, n'est-ce pas ? Tu peux faire ce que tu veux. Ainsi, vous pouvez avoir, par exemple, un nombre entier. Et nous pourrions dire quelque chose comme, eh bien, vous savez, si la note, par exemple, est exactement 100, alors peut-être quelque chose que nous voulons avoir dans le nombre est comme neuf. Et si ce n'est pas 100, donc si c'est autre chose qu'un 100, alors peut-être qu'on veut 100 ans quoi, quoi que ce soit, quoi que ce soit, quoi que ce soit, quelle que soit la logique qui est derrière, vous savez, comme je l'ai dit, bien sûr, vous pouvez également avoir une déclaration if. Si le grade est égal à 100, alors le nombre est égal à neuf. Le nombre Else est égal à 100 dans ce cas. Et donc vous pouvez, c'est fondamentalement juste une, une autre façon d'utiliser les instructions if. Mais dans une ligne, très important que vous ayez vu cela parce que cela est certainement utilisé dans de nombreux programmes et il est probablement aussi utile parfois où l'instruction if prendra juste trop de place, trop d'espace et n'est pas très complexe. Donc c'est l'opérateur ternaire pour vous. Oui. 16. (Java) Le déclaration du commutateur: Très bien, introduction de Java. Nous avons vu deux façons de dire, hé, si c'est le cas, alors c'est le cas, alors ceci soit avec des déclarations if et else, soit avec l'opérateur ternaire là-bas, il y a un troisième, eh bien, choix que nous avons, et c'est l'instruction switch. Et pour cela, nous allons juste taper l'interrupteur. Et puis entre parenthèses, nous allons taper la, fondamentalement la variable que nous voulons évaluer. Disons que ça va seulement taper X. et qu'il faut que ça marche. Parenthèses ou non parenthèses, encore une fois, crochets bouclés et les crochets bouclés. Maintenant, nous allons écrire essentiellement des cas, n'est-ce pas ? Nous devons donc dire explicitement chaque cas que nous voulons. Donc, par exemple, si x est dix, alors ce qui se passe, par exemple, c'est que nous voulons fermer le système, imprimer la ligne x est certainement juste. Bien sûr. Maintenant, ce que nous voulons terminer ici, c'est break est juste un mot-clé que nous aurions besoin d'utiliser à la fin de la ligne. Et c'est essentiellement l'instruction switch. Maintenant, évidemment, nous allons avoir plus de cas que ça parce qu'une affaire n'a tout simplement aucun sens. Nous allons avoir une autre ligne d'impression où, par exemple, Access 20. Et puis encore une fois, n'oubliez pas le frein, sinon cela ne fonctionnera pas. Maintenant, que se passe-t-il, par exemple, si nous disons, eh bien, OK. Maintenant x est dix. C' est le taux d'exécution. D' accord ? Nous avons plus de 20. Ceci est exécuté aussi grand. Mais que se passe-t-il si x n'est ni dix ni 20 ? Nous pouvons avoir un, un autre mot-clé qui est par défaut. Et ceci est écrit comme ça. Et puis nous avons fondamentalement si système que sur et puis tout est exécuté si ce n'est exactement pas l'un des autres cas mentionnés. Et puis tu dis juste, je ne sais pas, d'accord. Parce que tu ne sais pas ce que c'est. Eh bien, vous pouvez le savoir, mais vous avez choisi de ne pas dire dans une déclaration switch. Donc, l'instruction switch est certainement utile pour des cas spécifiques. Ce n'est pas très utile si vous voulez avoir, disons, une gamme de nombres, comme nous l'avons vu auparavant avec, par exemple, la note que vous avez. Et puis si vous deviez utiliser chaque cas, vous savez, vous obtenez comme une note à l'échelle, disons de 0 à un, c'est-à-dire de 0 à 100, disons. Et puis vous êtes comme, ok, c'est 0 cas 1, cas 2, comme c'est celui de Madden, ça, ce n'est pas une bonne idée. Comment l'instruction switch, comme je l'ai dit, peut être vraiment utile dans certaines circonstances, comme c'est avec beaucoup de ces choses en Java, fondamentalement. Oui, c'est la déclaration switch essentiellement en un mot. Et oui. 17. (Java) en boucle pendant la boucle: Bon, continuons. Donc, dans cette conférence, nous allons parler de la boucle while. Que faire si nous voulons avoir un morceau de code que nous voulons exécuter, vous savez, x quantité de fois par exemple, ou si un certain si une certaine déclaration ou si un certain critère est rempli, condition est remplie, alors nous voulons arrêter d'utiliser ou arrêter d'exécuter cette code. Comment peut-on faire ça ? Eh bien, l'une des façons de le faire est avec une boucle while. Donc, nous allons juste taper le mot-clé tout. Et puis nous allons ajouter entre parenthèses une condition. Donc, une condition booléenne, fondamentalement, dans ce cas, ce que nous allons dire est, eh bien si ou alors que x est inférieur à dix. Et puis nous allons ajouter les crochets bouclés une fois de plus. Et dans ces crochets bouclés, tout ici va être exécuté alors que x est plus petit que dix. Donc, il est très utile que cela se lit parfois vraiment comme une phrase ou une instruction, non ? Alors que x est plus petit que dix, tout ce qu'il y a là-dedans, exécutez, exécutez, exécutez. Il va le faire encore et encore jusqu'à ce que cette condition ne soit plus remplie. Maintenant, si on devait faire ça, disons que je vais faire cette ligne d'impression par points, et ensuite on va dire X. Donc on va juste éteindre n'importe quel excès, pas vrai ? Qu' est-ce qui va se passer, c'est que ça va sortir 555 jusqu'à la fin des temps, non ? Parce que nulle part dans ce programme ne change jamais x. Ce serait une très mauvaise idée. Ensuite, nous aurions une boucle infinie. Et une boucle infinie, c'est toujours un mauvais moment. Donc on ne va pas faire ça. On n'utilisera pas ça parce que ça pourrait planter le programme. Mais ce qu'on va faire, c'est qu'on va juste incrémenter x ici. Et en faisant cela, ce qui va se passer, c'est que nous allons réellement produire 56789. Et puis la boucle while se terminera. On va regarder ça et on va faire ça et on va voir 56789. Nous sortons ces nombres qui étaient en X. Donc, fondamentalement, ce qui se passe ici est où nous écrivons cinq dans X. Ensuite, nous allons dire, ok, pendant que l'accès à plus de dix, faire tout cela, exécuter ceci. Donc, ce qui se passe alors est x est égal à cinq. Il est certainement plus petit que dix. Par conséquent, nous allons l'imprimer et ensuite nous allons l'incrémenter. Maintenant, il est six et ça vérifie encore, hé, c'est plus de dix. Oui. Ensuite, nous allons imprimer six et ensuite nous allons l'incrémenter maintenant il est sept, puis il est huit et puis neuf. Et quand il est dix, ici, va vérifier, hé, si c' est plus petit que dix va savoir qu'il n'est pas moins que dix, il est dix. Donc c'est, donc il n'est pas plus petit que dix. Donc on va juste sauter hors de la boucle. C'est ça. Ouais, donc il y a un autre type de boucle, essentiellement, presque le même que la boucle y et c'est la boucle do-while. Et là, on va écrire du. Et puis on va juste mettre ce qu'on veut là-dedans. Et puis nous allons écrire le mot while du mot clé while après les crochets bouclés. Et puis une condition là-dedans. Très important, celui-ci doit en fait être terminé par un point-virgule. Donc, ce qui se passe ici est quelle que soit la condition, le do, alors que ce n'est pas une boucle qui le fait. Quoi qu'il y ait entre parenthèses du mot clé Duke qui va être exécuté quoi qu'il arrive, une fois, non ? Donc, même si tout à coup on dit x est égal à 1000, évidemment pas plus petit que 50, non ? Ça va encore être exécuté une fois et il ira bien. C' est plus petit que 15 et il sera comme Non. D' accord. Et je ne vais pas répéter ça. Donc, si nous faisons cela, comme nous pouvons le voir, nous faisons effectivement la sortie 1000, même si x n'est pas inférieur à 50. Parce que ce que fait la boucle do while, c'est qu'elle va exécuter la partie do de la boucle une fois, puis elle vérifie la condition. Et c'est essentiellement l'essentiel de la boucle do-while. Oui. Et c'est un bref aperçu essentiellement des boucles while et do-while. Oui. 18. (Java) pour la boucle: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons parler de la boucle quatre. C' est un autre type de boucle à côté de la boucle while essentiellement. Et la boucle for est incroyablement utile pour, par exemple, itérer sur quelque chose un certain nombre de fois. Comment nous allons lire ça comme nous allons écrire pour. Et puis nous allons écrire entre parenthèses int. Et puis vous pouvez juste utiliser n'importe quel nom. Mais d'habitude, vous commencez avec IJ KL. C' est une sorte de nomenclature que nous utilisons. Parfois, X et Y peuvent également être utilisés, mais c'est généralement ainsi que vous l'écrivez. Donc int i est égal à 0. Alors on va faire un point-virgule. Et puis on va demander, OK, quoi qu'il soit écrit ici, c'est encore une déclaration booléenne, non ? Et tant que cela est vrai, la boucle for passe par. Donc, la boucle for va à une boucle. Et puis nous allons faire une autre déclaration ici. Et cela va être un accroissement dans ce cas. Et puis nous avons aussi besoin, bien sûr, des supports bouclés. Et c'est tout le taux de quatre boucles. Donc, nous initialisons d'abord une variable i à 0. Alors on va dire, d'accord, tant que j'ai plus petit que cinq, on va exécuter ce qui est dans la boucle for, et ensuite on va augmenter I d'un. Maintenant, dans ce cas, nous pourrions aussi augmenter y de I de deux, ou trois, ou huit, ou 16 ou 55. Ça n'a pas d'importance. Mais généralement, nous voulons itérer de 0 à quatre dans ce cas. Donc, ce que nous allons voir, c'est que nous allons juste sortir cette ligne d'impression de points externes. Et puis quand nous allons juste sortir i, parce que pourquoi pas ? Et je vais voir, et vous pouvez voir que nous allons sortir 01234. Maintenant, la première question pourrait être, eh bien, attendez, pourquoi n'avons-nous pas sorti cinq ? Et pourquoi avons-nous sorti 0 ? Eh bien, la boucle for-commence quand on initialise ça. D' accord, donc c'est l'initialisation. Alors ça va vérifier, hé, je suis moins de cinq ans ? Oui. D' accord, les cadres, c'est ça ? On va sortir ça. Par conséquent, je suis au moment de l'exécution. Et puis il sort 0. Ensuite, nous allons augmenter i et nous ajoutons. On le demande encore, hé, c'est encore moins de cinq ? Bien sûr. D' accord. Et puis on va faire ça jusqu'à ce que ce ne soit plus vrai. Et quand ce n'est plus vrai, la boucle va se briser en gros, et nous allons être en dehors de la boucle. Et en passant, aussi générer cela comme une sorte de automatiquement, ce qui est génial. Vous allez juste taper quatre i si vous utilisez également l'ID IntelliJ. Et puis comme vous pouvez le voir, c'est comme créer une boucle d'itération. On va juste frapper Entrée, bam, tout est déjà là. Nous avons juste besoin de choisir fondamentalement un nombre ou une variable ici qu'il vérifie. Donc, disons par exemple dix. Et nous pouvons maintenant aussi le faire dans l'autre sens. Donc, dans ce cas, on va juste en faire dix. Et puis on va dire que si c'est plus grand que 0, on va continuer et on va diminuer quelque chose, donc on va le décrémenter. Et de cette façon, nous allons réellement compter à rebours de dix à un dans ce cas. Donc, comme vous pouvez le voir, une boucle pour, très intéressante à utiliser. Et je dirais un peu plus de contrôle que la boucle while. Au moins, c'est comme ça que je l'imagine parfois, non ? Donc, la boucle for est fondamentalement plus contrôlable while loop. C' est au moins ma conceptualisation. Tu sais, ça pourrait être différent pour toi, mais oui, donc c'était juste un bref aperçu de la boucle pour et oui. 19. (Java) et continuez: Très bien, c'est juste un addendum rapide essentiellement pour deux mots-clés, pause et continue. Ils sont importants pour les boucles. Et dans ce cas, nous allons regarder notre exemple pour la conférence for loops et nous allons regarder ce que la pause et continuer à faire réellement. Donc, disons par exemple, nous voulons ne pas compter cinq, mais disons à dix par exemple, dans ce cas à neuf bien sûr, parce que dix n'est pas inclus. Mais oui, on va compter de 0 à 9. Et puis on dit, on va juste mettre une déclaration « if » ici. Et nous disons, d'accord, si je suis égal à deux pour continuer, non ? Et avec cela maintenant fait, est, si j'ai quatre ans, nous continuons. Maintenant. Qu' est-ce qui me continue ? Continuer signifie que tout ce qui se passe par la suite n'est pas exécuté, mais il va sauter immédiatement dans la, dans cette partie de la boucle for. Ça va s'incrémenter, décrémenter ou tout ce qu'il fait à l'œil. Et puis ça va continuer. Donc, ici, nous nous attendons à voir est que nous attendions à la sortie 0 à trois, puis sauter les quatre et la sortie cinq 59. Je vais juste supprimer cela, pas pour encombrer notre sortie. Aucun, on va exécuter ça. Et comme nous pouvons le voir, absolument ce qui se passe de 0 à 3, puis il va sauter les quatre et ensuite cinq à neuf. Maintenant, comme je l'ai dit, il y a un autre type de mot-clé, c'est le mot-clé break. Et nous l'avons déjà vu dans l'instruction switch, mais je n'ai pas vraiment expliqué ce que signifie le mot-clé break. Je viens de dire, OK, c'est en gros, on a besoin de ça. Et ce que fait le mot-clé break est dans quelle que soit la portée que nous sommes. Donc, dans ce cas, nous sommes dans la portée de la boucle for, non ? Donc, tout entre ici est la portée fondamentalement. Et quelle que soit notre portée, nous allons nous en sortir. Peu importe ce que je suis, quoi, quoi que ce soit. Dès que la pause est appelée, où hors de la boucle for. Donc dans ce cas, ce que nous allons voir c'est que nous allons voir 0123 et c'est le, c'est tout. Rien de plus. Donc on va appeler ça. Et comme vous pouvez le voir, on ne compte que jusqu'à trois parce que dès que j'étais pour nous, on se casse. Et si nous appelons le mot clé break, alors nous sortons. Nous sortons de la boucle for, pour ainsi dire. Ouais, c'est juste un petit addendum pour les deux mots-clés. Et oui. 20. (Java) tableaux dans Java: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons parler de domaines. Maintenant, les zones sont, je ne dirais pas une question compliquée, mais ça va être difficile à saisir au début. Il est donc possible que vous ayez à regarder cette conférence deux fois, ou s'il y a des questions, hésitez pas à les poser. C' est une chose cruciale à apprendre. Et je voulais juste raconter rapidement une petite histoire quand j'ai appris des domaines. Et le truc, c'est que j'ai dit, eh bien, je n'ai jamais besoin de zones. Je ne vais pas en avoir besoin parce que d'abord, je ne les ai pas bien compris la première fois qu'on a eu ça en classe et j'ai dit, je n'aurai jamais besoin de tableaux, quoi que ce soit que je vais faire à ma façon, non ? Bien sûr, c'est complètement la mauvaise approche. Même si ce n'est pas utile, vous savez, peut-être que ce n'est pas utile, mais vous devriez toujours vouloir le comprendre. C' est juste une petite histoire de ma vie. Et si important de comprendre les domaines au moins. Et c'est ce que nous allons essayer avec cette conférence. Donc, tout d'abord, ce que nous voyons ici, c'est que nous avons trois cordes. Donc, ce sont essentiellement des e-mails imaginaires des étudiants, disons, par exemple. Et dans ce cas, nous n'en avons que trois. Nous pourrions bien sûr en avoir plus. Et maintenant la première chose qui me vient à l'esprit aussi, je veux dire, nous voulons écrire les emails et ensuite peut-être demain comme envoyer des mails. En quelque sorte. Je ne sais pas comment, mais peut-être que ça marche. Non, ça ne marche pas. Nous pouvons itérer sur cela. On ne peut pas aimer dire que les étudiants soulignent i, ça ne marche pas. Donc c'est un peu maladroit et on ne peut pas vraiment l'utiliser. Donc, nous devrions réellement envoyer chaque e-mail comme dans une ligne. Et si on a un moyen de 1000 étudiants ou quelque chose comme ça, alors envoyer cet e-mail sera, je veux dire, ça va être ridicule, non ? Ça ne va pas marcher. Qu' est-ce que cela va fonctionner cependant, c'est que si nous utilisons un tableau, un tableau est, vous pouvez fondamentalement penser à cela comme une liste, non ? Ou oui, en gros comme une liste. Et on va juste en initialiser un. Donc on va écrire une chaîne. Donc, c'est un tableau de chaînes, donc une liste qui contient des chaînes. Et j'appellerai ça des étudiants de sexe masculin. Et puis on va écrire ça. Donc on va avoir des crochets bouclés. Et dans ces crochets bouclés, nous allons dire essentiellement ce qu'est chacun des éléments de la liste. Donc, le premier dans cet exemple, ce serait Jonah gmail.com. Et puis nous allons avoir Juillet sur gmail.com. Et à la fin, le dernier est Ryan sur gmail.com. Et puis on finira par un point-virgule. Et maintenant celui-ci ici, nous avons maintenant initialiser fondamentalement un, un tableau de chaînes, non ? Et ce tableau de chaînes, le premier élément est John at gmail.com, puis July at gmail.com, puis Reiner geometrical. Donc si je vais sortir ça, on peut juste le regarder, non ? Donc on va dire ligne d'impression. Et puis la façon dont nous sortons les choses comme nous allons avoir des mails d'étudiants. Et puis nous avons besoin des crochets ici à nouveau. Et dans ces parenthèses, nous allons écrire l'index dont nous voulons sortir. Donc, par exemple, nous allons en écrire un. Et maintenant ce que vous attendez probablement, c'est que John sur gmail.com a une sortie et nous allons juste voir si c'est vrai. Ce n'est pas vrai. Pourquoi ce n'est pas le cas ? Parce que dans les domaines où nous commençons à finir le plus souvent dans la programmation informatique informatique, nous allons commencer à 0. Donc, on veut 0 ici. Et puis si nous exécutons ceci, alors nous allons voir qu'il sort John sur gmail.com. Donc c'est en fait le, fondamentalement c'est la première entrée, mais dans ce cas ce sera la 0 entrée, ou son index est 0, mais c'est la première entrée. Mais c'est l'indice est 0. Ici. Si vous entendez ça pour la première fois, ça pourrait être un peu déroutant. Rappelez-vous, généralement quand nous avons des listes et des chaînes et ces choses, disons que les tableaux puis B commencent à compter à 0. C' est aussi souvent pourquoi le for-loops ou initialisé avec un 0, n'est-ce pas ? L' entier et la boucle for sont initialisés avec un 0 de sorte qu'il aide avec ce comptage. Et donc fondamentalement, on peut en faire un autre. Disons par exemple, nous avons un tableau entier qui va être quelques nombres. Et au lieu de lui dire explicitement, ok, c'est, c'est ce qui est écrit dans le tableau. On va juste écrire du nouveau. Et puis il dit déjà tableau entier avec un crochet. Et puis ça va dire, eh bien, ça va mettre la carotte comme dans leur curseur là-dedans, non ? Ça va se passer. Qu' est-ce que je suis censé faire ici ? Vous devez réellement écrire dans quelle taille de la zone va être. Donc, disons, par exemple cinq. Et je vais finir ça avec un point-virgule. Et maintenant ce tableau ne peut avoir que cinq entrées. À ce stade, cette zone ne peut avoir que trois entrées, n'est-ce pas ? Nous ne pouvons pas ajouter au tableau. Il y a des solutions de contournement pour cela plus tard, mais dans ce cas, nous ne pouvons pas le faire. Donc, si on dit camarades étudiants trois, non ? En fait, il va déjà le voir. Hey, Array est hors des limites. Donc, le compilateur ici et l'IDE est assez intelligent pour être comme, ouais, oh non, non, cela ne fonctionne pas. On peut encore le faire. Et puis on va avoir une flèche, comme vous pouvez le voir, une exception. Et cela signifie que chaque index hors limites, parce que l'index 3 n'existe pas, n'est-ce pas ? 012 et 3 n'existe pas. Et nous ne pouvons pas non plus y ajouter le troisième ou le quatrième. Dans ce cas, nous disons, bien celui-ci, ce tableau de nombres de somme, il peut avoir cinq entrées. Et je vais juste copier rapidement quelque chose. Donc on va juste remplir ce numéro juste ici. Et ce qu'on peut faire. Donc c'est fondamentalement comme ça que tu dirais, ok, je n'étais pas la première entrée ou la 0ème place, pas vrai. Le 0ème index pour avoir un certain nombre. C' est essentiellement comme ça que tu attribues ça, non ? Donc, vous prenez presque exactement la même chose que vous auriez ce qui est écrit dans le tableau, n'est-ce pas ? Vous écrivez le nom de la variable de tableau que les crochets. Et puis à l'intérieur des parenthèses, vous donnez l'index que vous voulez. Et ce cas, vous pouvez juste lui assigner un nouveau. Cela fonctionne aussi bien sûr si c'est déjà quelque chose écrit là-dedans qui n'a pas de problème. Et en gros, en quelque sorte, vous savez, le golf va plein cercle. Nous avons eu ce problème un, Nous voulions envoyer les e-mails ou au moins, vous savez, mettre votre sortie eux. Et nous allons juste prendre la même chose, la même boucle à partir d'ici. Et on va être comme d'accord, assez facile. On va juste à la ligne system.out.print. Et ensuite, on dira les étudiants. Et on va utiliser le i ici. Et le I, bien sûr, prend n'importe quel numéro ici. Donc, il va juste faire une boucle à travers l'étudiant mâle 0123. Rappelez-vous n'est pas touché fondamentalement. Dès que I X3, ce trimestre n'est plus exécuté. Et si nous avons exécuté maintenant, nous allons voir que nous avons John July et Ryan et John nous avons deux fois parce que rappelez-vous, nous allons mettre ça ici. Ne vous inquiétez pas pour celle-là. Et oui, donc c'est une des choses qu'on peut faire. Et une petite chose que j'ai aussi mentionné est peut-être, vous savez, Ryan a arrêté d'aller en classe et maintenant nous n'avons John qu'en juillet. Et si nous utilisons ensuite ceci, ce que nous allons avoir est une autre flèche, parce que celle-ci est maintenant la boucle for n'est plus en quelque sorte valable pour les étudiants mâles. Mais nous pouvons réellement contourner cela si nous faisons des étudiants mâles, longueur des points est même comme l'IDE est assez intelligent pour être comme, oh, je pense que c'est ce que vous voulez. Oui. La longueur des points mâles étudiants est fondamentalement la longueur du tableau. Donc, il représente la longueur du tableau. Dans ce cas, ça va être deux, non ? Donc, 12. C'est la longueur de la quantité de choses dans le tableau. L' indice est différent de la longueur, non ? Donc, vous devez toujours penser à l'index. L' indice maximum est toujours la longueur moins un, non ? Donc, ça a du sens. J' espère parce que si nous commençons à compter à 0 au lieu d'un, nous avons fondamentalement déplacé un dans la pente négative parler, non ? Donc, alors que c'est le premier élément a l'index 0, et c'est le deuxième élément et c'est l'index un. Comme je l'ai dit. Cela peut être un peu déroutant au début. Je conseille certainement, vous savez, de regarder ça dans, vous savez, calme et, vous savez, peut-être vraiment regarder ça une ou deux fois ou même trois fois. Parce que parfois ce n'est pas le plus facile. Je répondrai à toutes vos questions. N' hésitez pas à leur demander. Et oui, j'espère que dans l'ensemble, cela a été éclairant pour le tableau. Comment cela fonctionne, un peu de ce que vous pouvez faire avec, et comment cela rend certaines choses incroyablement faciles. Oui. 21. (Java) Des tableaux multidimensionnels dans Java: Bon, continuons. Donc, dans cette conférence, nous allons parler du tableau multidimensionnel ou des tableaux multidimensionnels. Eh bien, la première chose qui vous apparaît probablement dans l'esprit est, Oh mon Dieu, j'ai eu tellement de problèmes même comprendre les domaines. Peut-être. De quoi parles-tu ? zones multidimensionnelles, c'est ridicule. Ok, réfléchissons vite à ça un par un, non ? Donc nous pouvons avoir un tableau. Et nous pourrions imaginer ce tableau. Ce ne sont que des chiffres. Et on pourrait juste avoir ce RAB, par exemple, chaque numéro sur la ligne de numéro, non ? Donc, ce serait en principe un taux de tableau unidimensionnel. Tout comme une ligne est unidimensionnelle, non ? Vous pouvez avoir un numéro et il peut essentiellement exprimer où que vous soyez sur cette ligne. J' espère que c'est un peu compréhensible. Et je pense que la meilleure façon de conceptualiser cela est avec la ligne numérique. Et maintenant, l'ajout d'une autre dimension est fondamentalement quand vous avez des graphiques à l'école, quand vous faites les fonctions et le f de x et tout ce jazz, vous savez, ce n'est généralement pas un très, vous savez, ce n'est pas un sujet qui est comme facilement digéré parfois, mais vous l'avez probablement tous vu. Maintenant. Une façon encore plus facile de penser comme deux dimensions, par exemple, est fondamentalement avec une table. Une table n'est rien d'autre que deux dimensions, non ? Si vous avez plusieurs colonnes et plusieurs lignes, vous avez plusieurs dimensions. Donc, nous pouvons, par exemple, faire un tableau à deux dimensions en ce que nous, vous savez, nous faisons la zone normale, nous l'écrivons dans un autre crochet, puis un autre crochet. Et puis nous allons juste nommer ça quelques chiffres, par exemple. Et la façon dont nous initialisons celui-ci est, eh bien, vous savez, nous avons un tableau, fondamentalement, ce moment c'est un tableau vide. Et à l'intérieur de ce tableau, pour ainsi dire, nous avons un autre tableau, mais pas seulement un mais plusieurs. Donc, disons par exemple, que nous avons celui-ci est juste quelques chiffres ici. Disons 25. Et puis cela pourrait être, par exemple, la première ligne. Et puis on pourrait avoir une autre rangée juste ici. On pourrait avoir 5 505 000 par exemple, non ? Donc ça peut sembler désespéré. Un peu bizarre, ça a l'air bizarre. Ne vous inquiétez pas pour ça. On va voir et on va voir ce que ça veut dire. Donc on va juste imprimer le, le premier. Donc on va dire 0. Maintenant, que fait le 0 ? Imprimantons celui-ci et voyons ce qui se passe. Si on l'imprime. On va voir un tas d'ordures. Pourquoi c'est ça ? Eh bien, c'est parce que le, cela imprime réellement le tableau. Et le tableau ne peut pas être facilement. Affiché dans une impression. C'est très bien. Ce n'est pas un problème. Maintenant, qu'est-ce que ce 0 fait réellement ? Alors, qu'est-ce que nous sélectionnons de base ? Nous sélectionnons le premier tableau ici, non ? Donc si maintenant on écrit les trois, qu'est-ce qu'on s'attendrait à sortir les 25, non ? Rappelez-vous que nous commençons à 00123. Donc si on appelle ça, on s'attendrait à la 25. C' est ce que nous attendons. Et voyons si nos attentes ont été satisfaites. Bien sûr, il est 25. Donc, avec le premier crochet, vous sélectionnez essentiellement le tableau que vous voulez sélectionner. Et avec le deuxième crochet, vous choisissez quel élément dans ce support, où dans ce tableau vous voulez sélectionner, n'est-ce pas ? Donc, si nous, par exemple, ils vont juste copier celui-ci. Et nous allons dire, eh bien 12. Alors qu'est-ce qui se passe, c'est qu'on va en avoir 5 000, non ? Parce que maintenant nous avons sélectionné le, celui-ci, ce tableau ici, et l', l'élément avec le deuxième index, donc 012. Donc ce serait 5 000. Comme nous pouvons le voir, c'est 5 mille. Qu' est-ce qui est vraiment génial ? Bien, et ce qui est vraiment génial est en fait. Dans ce cas, il s'agit d'un tableau à deux dimensions. Habituellement, il n'aime pas, vous pouvez, bien sûr avoir trois dimensions et même plus. À un moment donné, ça devient un peu, ça devient difficile à gérer, non ? Donc, trois dimensions que nous pouvons bien sûr encore visualiser. Et dès qu'il aura quatre ans, nous allons rencontrer des problèmes. Et d'habitude, je pense que d'après mon expérience, vous savez, tableaux unidimensionnels et bidimensionnels sont fondamentalement tout ce dont nous avons vraiment besoin dans la plupart des cas. Donc ce qu'on va faire, c'est qu'on va avoir une boucle pour qu'on appellera X ici. Et puis nous allons dire quelques chiffres longueur point. Et à l'intérieur de ça, nous allons avoir une autre boucle pour i et ça va être y et celui-ci. Maintenant, il y aura un très intéressant, nous allons vraiment avoir ça. Donc on va avoir une longueur de nombre x point, hmm. Intéressant. Comment ça marche ? Eh bien, dans celui-ci, nous allons réellement itérer sur tout le tableau. Donc on va dire, d'accord, combien de zones l'air a à l'intérieur ? Deux dans ce cas. Donc nous allons avoir cette longueur est de deux. Et cette longueur dépend de la zone que nous choisissons, non ? Parce que celui-ci a une longueur de quatre et celui-ci a une longueur de trois. Donc, si nous sortons juste ceci, j'ai préparé la sortie ici parce que cela va être plus facile à lire. Donc, en gros, avoir des coordonnées X et Y, pour ainsi dire. Et puis nous pouvons sortir ces nombres. Donc si on fait ça et qu'on va voir que non 00 est 10. Ça correspond parfaitement. 01 est 15, puis 2025, ou 03. Et puis on passe à la prochaine zone, pour ainsi dire, n'est-ce pas ? L'erreur suivante ici. Et c'est alors l'index. Et à l'intérieur du deuxième tableau, le premier élément avec l'index 0 est 50. C' est donc essentiellement un moyen d'utiliser des zones multidimensionnelles. Et encore une fois, même avec les zones normales. Au début, il peut être un peu difficile d'envelopper la tête autour. Ok, comment ça marche vraiment ? Les deux choses qui sont les plus importantes, c'est juste essayer par vous-même, essayer quelques choses et toujours aller avec, ok, qu'est-ce que je m'attends à sortir ici ? Et qu'est-ce que je m'attends à ce qu'il se passe ici ? Et si ça arrive, c'est génial. Si ça n'arrive pas, pensez à, ok, pourquoi est-ce arrivé maintenant ? Et c'est le numéro un. Et numéro deux, s'il y a un problème ou, vous savez, vous progressez avec quelque chose ou quelque chose, vous savez, vous avez un problème. N' hésitez pas à demander. J' ai toujours essayé de répondre aux questions qui se posent. Et oui, j'espère que les flèches multidimensionnelles sont au moins un peu plus claires. Et oui. 22. (Java) la liste (Array): D' accord, continuons avec l'introduction de Java. Dans cette conférence, nous allons parler de listes ou d'ArrayLists. Alors rappelez-vous le tableau où nous avions des étudiants, hommes, en particulier était un tableau de chaînes. Et nous avions plusieurs valeurs d'un certain type, dans ce cas chaîne, comme je l'ai dit. Maintenant, il y avait quelques inconvénients que nous avions. Nous devions spécifier le nombre de valeurs que nous voulons avoir enregistrées dans ce tableau. Et si nous ne pouvions pas en ajouter. Maintenant, c'est là que les listes entrent et que les listes sont beaucoup plus faciles à utiliser en ce sens. Il y a plus dynamique. Et donc ce qu'on va faire, c'est qu'on va taper la liste. Et puis la première chose qui apparaît, la première suggestion était simplement d'appuyer sur Entrée et puis quelque chose apparaît ici. C' est un paquet qui est important. Comme si nous avions notre propre paquet ici, non ? C' est mon paquet, joule de coton communiste. C' est mon propre paquet. Et c'est un paquet qui est maintenant importé afin que nous puissions utiliser cette classe, sorte que nous puissions utiliser la liste, non ? Et les cours et les paquets seront discutés dans une conférence ultérieure. Très important, c'est juste que c'est ici. Si ce n'est pas le cas, en passant, alors vous allez voir que la liste devient rouge et vous pouvez simplement passer le curseur dessus et vous pouvez simplement cliquer ici sur la classe d'importation, puis assurez-vous de sélectionner le java.util. Et puis il obtient, il est importé et puis il n'y a aucun problème. On va faire ces crochets et on va faire une liste de cordes. On va juste appeler ça des hommes. Et maintenant, nous voulons faire une nouvelle liste. Et maintenant ici, nous avons en fait suggéré ArrayLists. C' est pourquoi cela est appelé liste de tableau ou liste. Et nous allons choisir des listes aérées dans ce cas. Ensuite, quelque chose d'autre est importé ici, à savoir l'ArrayList. Maintenant, l'idée est que vous pourriez bien sûr, aussi faire un ArrayList qui fonctionne totalement bien et fonctionnerait. Cependant, beaucoup de choses qui sont utilisées en Java retournent en fait comme celles-ci, disons des listes de base. Mais en arrière-plan, un ArrayList est enregistré. Maintenant, cela a quelque chose à voir avec les interfaces et le polymorphisme. Ce sont de très grands mots que nous ne voulons pas vraiment penser en ce moment. Nous allons juste penser à, ok, quand nous voulons une liste, sur le côté gauche, nous faisons une liste et ensuite sur les droits que nous faisons une nouvelle ArrayList. Habituellement, c'est ce que l'IDE suggère d'une façon ou d'une autre. Donc, ce n'est pas si difficile de penser. Maintenant. Comme vous pouvez le voir, nous n'avons pas réellement spécifié le nombre d'éléments que nous voulons dans ces listes, nombre de valeurs que nous voulons avoir chez les hommes. C' est parce que nous n'avons pas besoin de le faire. Parce que ce que nous pouvons faire est que nous pouvons faire des mâles dot add, et ensuite nous pouvons simplement ajouter de nouveaux mâles. Donc, disons, par exemple, nous allons ajouter John à yahoo.com est peut-être John a changé son courrier et puis juste aller ajouter un peu plus était également ajouter July et Ryan, puis peut-être aussi maria. C' est vrai ? C' est à quel point il est facile d'en ajouter un peu plus. Points de données ou quelques autres valeurs de cette liste. Maintenant, voyons ce qui se passe quand nous, quand nous sortons cette liste, non ? Donc nous allons juste sortir cela, les mâles de sortie. Mais c'est comme ça. Laissons ça et voyons ce qui se passe. Et ce que nous allons réellement obtenir, c'est que nous pouvons réellement voir chacune des valeurs de cette liste clairement écrite, qui est très bon de voir immédiatement, OK, ce qui est réellement dans cette liste. Et maintenant, la première question qui me vient à l'esprit est savoir comment allons-nous accéder à chaque membre ? Et cela ne va pas fonctionner avec le, avec ces crochets que nous avons utilisés auparavant, mais en fait avec une méthode appelée gatt. Très facile. Ici, nous écrivons juste l'index. Encore une fois, l'index est le même qu'avec le stockage de la baie avec 0, puis compte vers le haut. Donc, le premier élément est John at yahoo.com, qui a un index de 0. Maintenant, peut-être que vous voudriez supprimer un élément, qui est en fait avant de déplacer un élément, que diriez-vous de changer un élément ? Si on veut changer l'article, on ne fait qu'arrêter le courrier. Et puis nous devons d'abord spécifier l'index. Disons que John change son adresse e-mail. Alors, nous voulons vraiment avoir Jon dot gmail.com à nouveau, n'est-ce pas ? Donc, cela change simplement le premier, le premier élément à cela, ce qui nous est donné la chaîne. Donc John sur gmail.com, et si vous voulez supprimer quelque chose, alors disons que nous voulons mails point supprimer, sous-liste que. Alors nous pouvons spécifier, hey, dans quelle salle d'index, quelque chose peut-être un, peut-être que July a cessé d'être étudiant ou quelque chose comme ça. Une autre chose importante est de savoir comment obtenir la taille de la liste. Maintenant, je dis spécifiquement la taille parce que c'est un, c'est aussi la méthode, ce qu'elle s'appelle. C' est tout simplement la taille des points mâles. Et cela renvoie la taille. C' est la même chose avec la longueur pour le tableau. Maintenant, peut-être qu'on est comme si c'était une nouvelle année. Tous les autres étudiants sont partis. Éliminons la liste entière, n'est-ce pas ? Et puis cela va simplement effacer la liste entière et ensuite elle est vide. Maintenant, ajoutons quelques choses ici. Je vais copier rapidement quelque chose parce que c'est un peu plus facile. Donc, nous allons juste ajouter E sur yahoo.com, ATF en général, aléatoire ou disons. Et ce que nous allons faire maintenant, c'est que nous allons utiliser le tri par points des collections pour trier cela. Maintenant, cela va être vraiment bon parce que nous pouvons faire est littéralement juste écrire collections.tri élections par la façon, aussi importer quelque chose ici. C' est parce que j'ai mal tapé quelque chose, ne t'inquiète pas de ce que je veux. Et ceci est un Java util collections. Et cela nous permet de trier cela ici. Donc ce qu'on va faire, c'est qu'on va sortir ça une fois avant et une fois après à ce sujet. Faisons-le comme ça. Et puis on verra ce qui se passe, pas vrai ? Donc d'abord est e a t f d, et maintenant c'est un D, E F T. Donc nous avons effectivement trié par ordre alphabétique. N' est-ce pas génial ? Maintenant, j'ai encore une chose à dire sur les listes et les ArrayLists. Donc on a fait une liste de cordes, non ? Faisons quelque chose comme ça. Juste pour le moment. Maintenant, ça marche. Si je veux une liste d'entiers, cela ne fonctionnera pas car il va dire que l'argument de type ne peut pas être de type primitif. Donc, vous vous souvenez que nous avons des entiers, nous avons le double booléen. Tous ces types sont primitifs. Et maintenant, nous devons tous utiliser les classes wrapper pour ça, non ? Et ce sont simplement le nom du type précisé et commencé avec un M. majuscule Donc, dans ce cas, c'est juste entier. Et puis cela fonctionne de la même manière qu'avec n'importe quel autre entier du tout. C' est juste quelque chose que nous devons penser. Et si on veut utiliser un double, on peut utiliser le double. Si nous voulons utiliser un flotteur, nous pouvons utiliser un flotteur est juste écrit un peu différemment. Et c'est dans la nomenclature, est une classe wrapper. Et qu'y avait-il d'autre ? Flotteur double. Oui, booléen est le même. Grand avec des majuscules lettre au début. Il y avait juste quelque chose que je voulais dire juste pour que, vous savez, ouais, et ce serait essentiellement une introduction à court terme aux listes et aux ArrayLists. Alors, ouais. 23. (Java) HashMaps dans Java: D' accord, continuons avec l'introduction de Java. Dans cette conférence, nous allons parler de HashMaps. Maintenant, un HashMap est, disons similaire à une liste. Cependant, c'est encore mieux à certains égards qu'une liste. Donc, nous allons juste écrire HashMap à nouveau. Et puis il va, comme vous pouvez le voir, d'autres paquets importants, comme je l'ai dit, les paquets seront discutés plus en détail plus tard dans la ligne. Maintenant, un HashMap a aussi les crochets angulaires, mais maintenant nous allons mettre deux choses. Dans ce cas, nous allons mettre deux chaînes, donc chaîne, puis chaîne de virgule. On va appeler ça capitales. Et puis on va faire New HashMap et finir ça avec un point-virgule. Maintenant, que se passe-t-il ici ? Donc, fondamentalement, l'idée d'un HashMap est en comparaison avec un tableau ou une liste. Dans la liste des tableaux pour obtenir un élément de cela, nous devions mettre dans l'index, non ? Dans ce cas, nous pouvons effectivement avoir une clé spécifique mappée à une valeur spécifique. C' est pourquoi, c'est pour ça que ça s'appelle la carte. Et je vais juste copier rapidement quelques exemples de ce que nous allons mettre là-dedans. Donc, la méthode à appeler afin de mettre une autre paire de valeur de clé, c'est ce qu'elle s'appelle. Le Mexique est donc la clé. Et Mexico, dans ce cas, serait la valeur. Pour le mettre, nous utilisons la méthode mise, n'est-ce pas ? Et si nous allons juste le faire rapidement, je vais le mettre juste par souci de simplicité. Donc il y a moins de capitales juste mis. Et voyons ce qui se passe ici. Donc, comme vous pouvez le voir, ce qui se passe, c'est que les États-Unis sont égaux à Washington DC. On obtient le Mexique, Mexico, on obtient la France égale Paris, l'Allemagne est Berlin. Donc, nous pouvons voir que le, il y a une relation entre la clé et la valeur. Je vais juste écrire rapidement un commentaire ici pour que ce soit fondamentalement une clé mappe à une valeur spécifique, non ? Et cela s'appelle aussi une paire clé-valeur. Donc, la paire de valeur clé est, dans ce cas, nous l'avons spécifié pour être une chaîne à une chaîne. Alors on lui donne une ficelle. Donc, nous donnons au HashMap une chaîne, et nous obtenons une chaîne et retournons. Maintenant, cela pourrait être un entier. Ensuite, nous avons essentiellement mis en œuvre quelque chose de très similaire à un, à un, un ArrayList, mais pas tout à fait. Ainsi, par exemple, les clés entières que nous pourrions avoir, pourraient, par exemple, être un ID étudiant, n'est-ce pas ? Et puis ce que nous étions tour, c'est, par exemple, le nom de l'étudiant. Ce serait alors la carte d'identité de l'étudiant à nom d'étudiant. Et c'est quelque chose que nous voulons penser quand nous utilisons la carte, non ? Donc, il mappe toujours une clé à une valeur spécifique. Maintenant, disons que nous voulons, par exemple, imprimer la capitale de l'Allemagne. Alors ce que nous faisons, c'est que nous obtenons. Donc nous utilisons la méthode get et nous mettons la clé, ils sont à l'intérieur ou la clé écrite et la clé est l'Allemagne. Et si j'écris ça, on aura Berlin. Parce que c'est exactement une sorte de réponse, non ? Donc, vous pouvez également y penser car la clé est une sorte de réponse et que votre valeur est l'inverse. Désolé, la clé est la question et la valeur est la réponse à cette question, n'est-ce pas ? Alors, dans ce cas, les capitales, d'accord, quelle est la capitale de l'Allemagne ? C' est le taux de Berlin. Et c'est aussi quelque chose que nous pouvons penser. Il est possible, comme avec toutes les listes, que nous puissions simplement supprimer un objet. Dans ce cas, peut-être voulons-nous supprimer la France. Encore une fois, on a mis la clé, n'est-ce pas ? Et nous pouvons également imprimer, si nous voulons le faire, la taille de celui-ci avec des majuscules taille point. Après avoir retiré la France, nous avons trois objets là-dedans. Maintenant, quand une autre chose spéciale est, il y a une sorte spéciale de boucle à travers HashMaps. Et je vais le montrer rapidement pour que, comme vous pouvez le voir, il dit déjà, pour chaque gars veut foreach loop. Maintenant, la façon dont il formate cela est absolument hideux. Donc on va le faire tout seul. Donc on va en faire quatre. Et ce que nous voulons est une chaîne S. Ensuite, nous faisons un deux-points, et ensuite nous disons majuscules dot keyset. Maintenant. Et on va faire des crochets bouclés aussi. Donc, nous avons ça. Maintenant, ici. C' est très important. S est maintenant un taux clé. Donc S passe par chaque clé qui est dans le HashMap. Ce type de quatre boucles est appelé une boucle foreach pour chacun. Et dans la prochaine conférence, nous allons en parler un peu plus en détail. Mais je veux juste te montrer, je vais juste copier ça à nouveau parce que c'est juste une sortie. Il y a un plus qui manque. Et nous allons juste regarder ça, ce que ça fait. Donc, si nous faisons cela, nous pouvons voir que dans S, nous avons chaque fois de la boucle, nous avons USA, Mexique, en Allemagne, chaque fois écrit là-dedans, juste en S, parce que ce sont toujours les clés. C'étaient nos clés, non ? Rappelez-vous que la France a été supprimée de la liste ou de la HashMap. Et donc nous passons par les États-Unis, le Mexique, en Allemagne. Et puis on fait des majuscules dot get s. et dans la méthode get, comme je l'ai dit, vous mettez la clé et ensuite vous sortez la valeur. Donc, c'est une sorte de vue d'ensemble pour HashMap, n'est-ce pas ? Où nous pouvons mapper une clé spécifique à une valeur spécifique. Et c'est très utile pour toutes sortes de choses. Et oui. 24. (Java) pour chaque boucle: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons parler de la boucle pour chaque boucle ou d'une boucle pour les collections. Et dans la dernière conférence, nous avons déjà vu le, ce type de boucle pour le HashMap. Je vais juste regarder à quoi ça ressemble, par exemple, pour ArrayList, non ? Mais tout d'abord, rappelons-nous, d'accord, une chaîne, un tableau de chaînes, non ? Un tableau de chaînes, par exemple, juste, nous avons des noms là-dedans. Par exemple, nous avons Johnny, Johnny, Johnny l'ego, et nous avons Martin, et peut-être même quelque chose comme George. Et c'est tout. Droit ? George. Écrit comme ça. Merci. On aura trois noms là-dedans. Et nous nous souvenons que la façon dont nous pouvons parcourir celui-ci est juste de prendre une boucle normale, prendre des noms longueur point, puis par exemple, de les imprimer. Donc impression, impression système et ensuite nous allons avoir des noms. Et puis j'aime ça. C' est quelque chose que nous avons déjà vu pour les tableaux. Maintenant, les grandes questions, ok, et nous le faisons aussi pour un ArrayList par exemple, ou d'autres collections. Maintenant, nous pouvons bien sûr, utiliser exactement la même méthode que nous avons utilisée pour les zones pour ArrayList. Parce que nous pouvons aller avec les index, les indices et mettre cela contrairement à les sortir. Mais ce n'est pas tout à fait la meilleure méthode ou la seule méthode. Parce que nous pouvons également utiliser la boucle for-each. Maintenant sera juste là, au lieu d'initialiser un entier, nous allons réellement initialiser n'importe quel type de données que nous avons à l'intérieur de la liste du tableau. Donc, dans ce cas, une chaîne, qui va donner à cela un nom S S. Nous pourrions aussi nommer ceci, par exemple, mâle parce que nous savons que les hommes sont là dedans. Donc, nous allons juste appeler ce mail par exemple. Et puis on fait un deux-points. Il peut le faire avec ou sans espace entre, peu importe. Et puis nous voulons donner le nom de la variable de la collection. Maintenant, dans ce cas, nous pouvons faire des hommes et puis juste avoir un système de sortie, ligne d' impression de Mail, par exemple. Et puis quand nous faisons cela, nous allons voir qui est sortie tous les mâles des mâles plus âgés dans l'ArrayList. Fait intéressant, nous pouvons aussi le faire avec les noms, non ? Donc nous pouvons aussi dire nom, et ensuite nous pouvons dire des noms. Et nous pouvons également sortir, utiliser une boucle foreach pour le tableau, non ? Comme vous pouvez le voir, il fait exactement la même chose qu'ici. Parce que c'est fondamentalement aussi une collection, une collection, fondamentalement une sorte de terme large pour les listes et le tableau. Toutes ces structures de données. Mais oui, donc c'est le, pour chaque boucle, vraiment puissant. Si vous travaillez avec des listes et des cartes et même des tableaux. Il est parfois plus facile d'utiliser cette boucle, la pour chaque boucle, parfois c'est plus facile à utiliser. Une boucle normale. Ça dépend vraiment de la situation. Mais oui, c'est fondamentalement le pour chaque boucle. 25. Méthodes Java Java: Bon, donc dans cette conférence, on va parler des méthodes Java. On a déjà parlé de la méthode principale, non ? Où nous mettons tout notre codage. Nous avons parlé des méthodes de chaîne. Nous, nous avons vu quelques méthodes pour les collections, principalement le hashmap et le ArrayList. Et maintenant, nous allons parler en termes généraux d'une méthode. Et nous allons en quelque sorte montrer cela en implémentant le factoriel. Donc, le factoriel d'un nombre est juste, par exemple, si j'ai un factoriel d'un nombre, n'est-ce pas ? Donc, par exemple, comme quatre ou quelque chose comme ça. Nous écririons ceci comme quatre points d'exclamation. Et c'est tout simplement quatre fois trois fois deux fois une. Et en fait, nous n'allons pas en prendre quatre, nous allons en prendre cinq parce que c'est un meilleur exemple. Je l'ai fait, et ça va être un 120. Pourquoi cette chose importante, son truc mathématique ? Et moi, nous pourrions avoir un factoriel. Nous n'avons pas de factoriel ici implémenté, donc vous ne pouviez même pas l'utiliser. Donc, si nous le voulions vraiment, nous aurions vraiment besoin de le mettre en œuvre. Disons qu'on a un numéro et qu'on a un factoriel, non ? On va initialiser ça. Et dans ce cas, notre numéro sera cinq. Maintenant, la première chose que nous faisons pour la fonction factorielle, disons que nous allons définir factoriel sur le nombre lui-même. Et puis nous allons mettre en œuvre un loping très intéressant à la recherche de boucle, non ? On va initialiser I avec le numéro minus1. Et je devrais être plus grand ou égal à un, je moins moins. Donc, en fait, va compter à rebours. Et puis factoriel sera temps égal à i. Maintenant, quand tu regardes ça pour la première fois, tu vas être comme, ce qui se passe ici. Même si je ne sais même pas ce que ça veut dire. Ok, passons vite à travers ça et réfléchissons à ça. Donc factoriel au début de la boucle, factoriel et nombre sont exactement les mêmes que les deux cinq, ok ? Ensuite, nous initialisons i num moins un. Je vais donc avoir quatre ans pour la première fois. Donc, la première fois que la boucle passe, nous allons en fait à des fois cinq, fois quatre. Très bien, c'est plutôt bien. Ensuite, la boucle se termine et nous allons diminuer i, qui est maintenant un trois. Et le chèque est en gros, hé, quand on arrive à l'un, alors on va arrêter parce qu'on ne veut pas le 0 parce que si on multiplie par 0, tout sera 0. Ça ne va pas être bon. Donc, fondamentalement, nous comptons à rebours, nous en factoriel avec chaque boucle. D' abord, nous avons sauvé cinq fois quatre. C' est cinq fois quatre fois 35 fois quatre fois quatre fois trois fois deux. Et puis cinq fois quatre fois trois fois deux fois une. Et puis c'est fait. Et on a sorti le factoriel. Donc on va juste faire le système, la ligne d'impression. Et on va dire quelque chose comme Turiel. Et on va écrire un plus. Voyons ce qui se passe. Et en effet, c'est un 120. C' est génial. Maintenant. C'est vraiment bien. Mais disons que je veux vraiment aimer avoir ceci dans cette partie du programme. Et puis je vais écrire comme 100 lignes de code de plus. Et puis j'aurais ceci encore et encore et encore, encore et encore. Alors je devrais toujours copier cette partie. Je devrais toujours changer le nombre et peut-être que parfois j'oublierai de changer le nombre et ensuite de calculer quelque chose d'autre. C' est, ce n'est pas vraiment une bonne chose. Et c'est pourquoi nous pouvons écrire notre propre méthode. Donc, jusqu'à maintenant, nous avons toujours été à l'intérieur de la méthode principale et maintenant nous allons nous en sortir. Je sais une chose effrayant, mais ne vous inquiétez pas, on ira bien. Et nous allons écrire en public. Public. On va bien jouer ? Statique et un entier, int, puis factoriel. Et à l'intérieur des parenthèses, nous allons écrire en numéro. Et maintenant la grande question devient, qu'est-ce que c'est ? Et qu'est-ce qu'on a une erreur ? Je vais l'expliquer assez tôt. Donc, tout d'abord, comme je l'ai déjà dit au début du cours, le public et l'esthétique ne nous intéressent pas en ce moment. C' est exactement ce dont nous avons besoin pour le moment. Il sera expliqué très prochainement. Maintenant, l'entier est tout simplement ce que cette méthode retourne, n'est-ce pas ? Nous avons déjà vu quelques méthodes avec, par exemple, les chaînes, et elles retournent toujours une nouvelle chaîne. Et donc dans ce cas, il retournerait un entier. C' est le nom de la méthode. Et puis nous avons des paramètres à l'intérieur des parenthèses ici, qui sont fondamentalement doivent être donnés pour que cette méthode fonctionne, non ? D' accord ? Et puis nous allons simplement copier ça parce que ce n'est pas si intéressant. Ce qui est interlock initialisé. Intéressant. Ok, ça s'étend. Et oh, qu'est-ce qui s'est passé là-bas ? D'accord ? Donc, l'initialiser un nombre, un facteur entier, et cela va être introduit nombre moindre, exactement comme nous l'avons fait ici. Et puis je veux passer par exactement la même boucle. Nous n'avons pas les crochets bouclés et ensuite nous allons retourner les faits. Et maintenant, comme vous pouvez le voir, la flèche a aussi disparu. Il y a eu une erreur ici. Il a disparu parce que maintenant nous avons effectivement retourné un entier, non ? Donc, afin de retourner quelque chose d'une fonction, nous devons utiliser ce mot-clé return et ensuite n'importe quelle variable nous retournerons. Et maintenant, nous pouvons aussi retourner cinq. Donc, nous pouvons aussi retourner quelque chose comme ça est fixé dans la pierre. Mais ça n'a pas vraiment de sens parce que quoi que nous mettions ici, ça sera toujours cinq. Ça n'a pas vraiment de sens. Maintenant, si nous copions ceci et utilisons la même méthode, mais au lieu de simplement prendre cette variable, nous prenons effectivement cette fonction, non ? On peut double-cliquer et ensuite il va dire, hé, je veux un numéro ici. Je vais dire OK, cinq, non ? Et puis il a en fait un cinq à l'intérieur. Et puis nous allons voir factoriel est un 120 aussi. Et maintenant, ce qui est génial, c'est qu'on peut l'appeler pour six aussi pour sept. Et c'est une ligne, non ? C' est très souvent le cas. Quand je dirais que lorsque vous utilisez un code, le même code deux fois, pourrait être correct d'être juste comme OK, je n'en ai besoin que deux fois. Copions ce code, collez-le là. Mais normalement, dès que vous copiez comme de gros morceaux de code, il est parfois que vous me faites probablement voir juste en ce moment, j'ai, j'ai copié la ligne d'impression et coller Sadat. Ce n'est pas si mal parce que c'est une ligne. Comme une chose spécifique qui se passe, je ne peux pas vraiment écrire une fonction qui rend cela moins que cela. Mais si je copierais fondamentalement comme 1020, même cinq lignes de code, c'est une très bonne indication que vous devriez probablement prendre le, prendre le code que vous vouliez copier et le mettre dans une fonction, et puis utilisez cette fonction. C' est un très, très bon comme heuristique à utiliser pour savoir, ok, quand devrais-je utiliser une fonction et nous ne sommes pas ou une méthode, désolé, une méthode, une méthode et une fonction est fondamentalement un synonyme, non ? C' est interchangeable. Quand nous, quand nous voulons utiliser une méthode qui est une bonne lecture juridique. Je voulais juste le souligner pendant une seconde pour que tu saches, ouais. Et c'est fondamentalement un, un exemple pour une méthode Java que nous pouvons écrire en dehors de la méthode principale et que nous pouvons ensuite appeler quand nous le voulons. Oui. 26. Déchargement de méthode (Java): Bon, donc dans cette conférence, on va parler de surcharge de méthode. Donc, nous avons déjà vu une seule méthode fondamentalement. Et dans cet exemple, nous avons une méthode qui implémente fondamentalement se multiplier. Maintenant, évidemment ce n'est pas le meilleur exemple, mais je vais juste vous montrer sur un très semblable, sur un exemple très facile pour que vous puissiez simplement saisir le concept. D'accord ? Nous avons donc cette méthode multiplier que nous pouvons appeler. Nous pouvons lui donner deux entiers en tant que paramètres, puis il va s'exécuter. Voyons voir. Et bien sûr, il renvoie la bonne réponse. Maintenant, je peux avoir la même chose. Et si j'ai une autre méthode, et je vais aussi appeler cela multiplier. C'est vrai ? Maintenant. Je vais aussi avoir int a et en B. Ça ne va pas marcher parce que maintenant nous avons la même méthode deux fois. Cependant, je peux surcharger la méthode afin que je puisse le faire si je mets un autre paramètre, par exemple, ou un type différent de paramètre, ou un nombre différent de paramètres, non ? Pour que je puisse le mettre en C ici. Et tout d'un coup cette erreur ou cette erreur a disparu. Et puis je peux juste faire une partie de ça. Il est une fois b fois c. Ensuite, si nous regardons cela, si nous écrivons multiplier, multiplier, alors nous avons en fait deux choses qui sont suggérées pour nous taux à signatures de méthode est le terme. Et donc on peut prendre celui-là et on peut dire, eh bien, je veux, par exemple, cinq fois, deux fois quatre, non ? Et il le fait juste. Il sait lequel utiliser parce qu'il sait combien de paramètres sont pris pour quel type de fonction, n'est-ce pas ? Et puis nous pouvons, par exemple, aussi faire quelque chose de similaire avec flotteur. Donc, nous pouvons aussi dire multiplier, multiplier cela. Et il y a un flotteur, un, flotteur b. et il n'aura pas de problème avec celui-ci aussi. Et on va juste rendre celui-là. Et puis si nous appelons celui-ci, donc par exemple, si nous disons ensuite un système, Upsilon, système de ligne d'impression, nous disons multiplier. Ensuite, maintenant on a trois choses qu'on peut obtenir, on peut se faire suggérer, oui, et ici on voit toujours le type de retour, non ? Donc, et ces deux-là, c'était des entiers. Sur celui-ci, c'est un flotteur. C' est logique. Donc je vais juste double-cliquer dessus et ensuite on lui donne deux flotteurs. Donc, par exemple, 3.512.4, F, C'est flottant. Et puis quand nous exécutons ça, nous voyons que tout fonctionne parfaitement bien. Même si les trois méthodes ont exactement le même nom. Quelle est la différence ? La différence est dans le nombre de paramètres ou les types de paramètres ici, le type est différent et ici les nombres différents. Et c'est fondamentalement ce qu'on appelle la surcharge de méthode, vraiment important et peut être incroyablement utile pour tant de choses. Oui. 27. (Java) Cours et objets dans Java: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons parler de cours et d'objets. Et la première chose qu'on va faire, c'est d'aller dans notre dossier de projet. On va aller dans notre source et ensuite quel que soit le paquet que nous avons, vous savez, quel que soit le nom que vous l'avez appelé. Et puis nous allons faire une nouvelle et nouvelle classe Java. Donc, je vais réellement créer un nouveau fichier. Et ce fichier, dans ce cas, nous allons simplement appeler fruit et nous assurer que la classe est sélectionnée ici. Et je vais frapper Entrée. Et on y va. Et je vais juste zoomer un peu. Et maintenant, nous avons une nouvelle classe, fruits de classe publique dans notre paquet. Et qu'avons-nous fait en ce moment ? Nous avons donc créé une nouvelle classe. Quand on retourne ici, on a deux onglets. En ce moment, la classe principale Java et la classe de fruits. Nous avons brièvement parlé de la méthode principale, mais maintenant nous pouvons également regarder la classe principale. Dans ce cas, la clause principale est simplement pour nous, peu comme une classe fictive, juste pour que nous ayons la clause principale, une méthode principale quelque part, non ? Donc c'est quelque part. Nous avons la méthode principale qui est démarrée au début du programme. Mais la classe des fruits est un peu différente. Donc, dans la croix de fruits en ce moment, nous voulons réellement un créer des objets hors de cela. Qu' est-ce que ça veut dire ? Eh bien, pensons, tout d'abord, à un fruit. Quoi, qu'est-ce qu'une moitié de fruits ? Peut-être qu'un fruit a un nom. a du sens, n'est-ce pas ? Donc une pomme, une banane, orange, une mangue, ce sont des noms pour les fruits, ok, ça, ça pourrait être quelque chose maintenant, ça pourrait aussi avoir une teneur en sucre parce que peut-être tu veux vivre sainement et tu veux savoir, ok, quelle est la teneur en sucre d'un fruit en particulier ? Et puis aussi pour regarder quelqu'un d'autre, la couleur, non ? Cela pourrait donc être trois attributs d'un fruit. Et c'est exactement ce que cette classe attribue. Donc ce sont des variables qui sont associées à une classe particulière, dans ce cas, fruit, non ? Parce que ceux exactement mappés aux attributs qu'un fruit pourrait avoir. Maintenant, il pourrait aussi y en avoir beaucoup, beaucoup, beaucoup plus. Cela pourrait être la longueur, la largeur, la hauteur. Vous savez, il pourrait y avoir toutes sortes d'attributs qu'une classe ou un objet particulier a. Mais dans ce cas, nous allons simplement nous en tenir à ces trois en ce moment comme exemple. Maintenant, qu'est-ce qu'on peut faire avec ça ? À ce stade, nous pouvons réellement faire quelque chose et nous pouvons réellement créer un nouveau fruit. Donc, nous allons juste taper des fruits et ensuite nous voyons que immédiatement est suggéré. Et on va créer un nouveau fruit, et on appellera ça une banane. Ça va être un nouveau fruit. Et je vais juste expliquer rapidement ce qui se passe ici. C' est donc une variable aussi normale que vous pouvez le voir, n'est-ce pas ? Parce que par exemple, int x, exactement le même, juste que le type de données en ce moment est fruit au lieu d'une chaîne entière et les autres que nous avons vus. Et puis nous l'assignons immédiatement, un nouveau fruit. Qu' est-ce que ça veut dire ? Eh bien, le nouveau mot-clé est utilisé pour créer un nouvel objet. Et dans ce cas, nous créons un nouvel objet fruitier. Maintenant, ça a l'air un peu bizarre. Peut-être. C' est ce qu'on appelle une construction. Maintenant, dans ce cas, il n'y a rien dans les parenthèses, donc aucun paramètre n'est donné au constructeur. Donc, et c'est le constructeur par défaut avec rien dedans, n'est-ce pas ? Aucun argument n'est passé ou aucun paramètre n'est passé. Mais ce qu'on peut déjà faire, c'est quand on va chercher une banane prête, tu le suggère déjà. Et puis nous pouvons accéder aux trois attributs que nous avons spécifiés et déclarés dans la classe fruit dot Java dans la classe de fruits. Donc, par exemple, le nom, nous pouvons maintenant définir ceci à, par exemple, la banane. Et maintenant un nom de point de banane. C' est ainsi que vous y accédez. C' est le nom de banane. Mais ça semble un peu maladroit. Parce que maintenant, quand je veux continuer et que je veux mettre, vous savez, la teneur en sucre à Illinois 15 et ainsi de suite et ainsi de suite. Je dois faire les trois attributs, et peut-être que je dois faire 20 attributs s'il y a encore plus. Et c'est pourquoi nous pouvons réellement avoir non seulement un constructeur par défaut, mais aussi notre propre constructeur ou constructeur personnalisé pour ainsi dire. Donc, pour cela, nous écrivons public et puis le nom de notre classe, dans ce cas fruit et juste des parenthèses. Et c'est fondamentalement comme une fonction sans valeur de retour. Au contraire, la valeur renvoyée est le nom de la classe elle-même. Maintenant, entre parenthèses, nous allons écrire toutes les choses, les problèmes connexes. Ne vous inquiétez pas pour ça. On va y arriver dans une minute. Cela arrive et je vais vous expliquer cela dans un court moment. Maintenant, nous allons juste copier presque fondamentalement les noms parce que ce que nous pouvons faire est que nous pouvons écrire ce nom de point égal à nom égal. Et puis nous pouvons écrire ce point teneur en sucre est égal teneur en sucre et cette couleur de point est égale à la couleur. C' est souvent ainsi que je le fais parce que le nom ici est le même que le nom ici car les attributs de la classe ont le même nom que les paramètres dans le constructeur. Et vous pouvez ensuite spécifier, ok, je veux réellement cet attribut ici. Lorsque vous utilisez le mot clé, this, the, this. Parce que ce mot-clé dit fondamentalement, hey, je veux cet objet, cette classe, quoi que ce soit. Donc c'est encore ça, non ? Et puis le nom Il est ou l'IDE est assez intelligent. Le compilateur est assez intelligent pour savoir, oh, ouais, ceci, c' est ça, c'est ce que ça veut dire par son nom. Et c'est ce que vous voulez dire quand vous dites this.name, vous référencez la classe elle-même. Maintenant pourquoi ont commencé un problème connexe ? Nous pouvons effectivement cliquer dessus. Et on va voir que ça va être comme, hé, on s'attendait à trois arguments parce que maintenant. Le constructeur que nous utilisons ici, le constructeur par défaut n'est plus valide parce que nous avons déclaré notre propre constructeur, n'est-ce pas ? Parce qu'avant quand nous avons eu ce pas de problèmes connexes. Je veux dire, pas de problèmes connexes. Merci. Parce que fondamentalement ce qui se passe implicitement, quelque chose comme ça a créé, désolé, celui-là. Donc celui-ci, un constructeur par défaut toujours en arrière-plan. Cependant, si nous remplacons ensuite cela en faisant notre propre constructeur, alors l'autre est supprimé, en quelque sorte parler. Ou ce n'est pas plus implicite, nous devons le faire explicitement. Donc si nous créons ensuite celui-ci, c'est tout à fait bien, alors ça marche. C' est donc une chose très importante à noter, que le constructeur par défaut est uniquement valide tant que Jusqu'à ce que vous créez votre propre constructeur personnalisé. Ou vous pouvez également simplement explicitement indiqué aussi. Et puis ça marche. C' est vrai ? Alors faisons peut-être un autre fruit. Faisons une pomme, une pomme, de nouveaux fruits. Prenons réellement notre autre constructeur et passons immédiatement tous les attributs que nous voulons. Donc le nom va être contenu en sucre d'Apple, il va être dix. Et que la couleur est rouge. Et comme vous pouvez le voir très bien, le fait, l'IDE intelligent en fait vous donne déjà les noms des paramètres, ce qui est incroyablement utile. Et c'est pourquoi je suggère toujours, vous savez, rester avec les bons noms de variables. Très probablement la même chose que les attributs parce que, vous savez, parce que si c'était n SCC, je veux dire, vous savez, si vous regardez cela dans trois mois, vous n'avez aucune idée de ce que représente SC qui était sc. Alors tu dois aller regarder. Et rappelez-vous ce sont trois paramètres et trois attributs sur le fruit. On pourrait imaginer 20 ou 30 attributs, et ils sont tous nommés NSC b0, b2. C' est ridicule. Faites donc vos noms de variables aussi expressifs que possible. Et, ouais, et puis voyons un, peut-être une impression. Ce serait une bonne idée. Donc, une pomme. Et puis nous pouvons, par exemple, dire un nom de point pomme. Alors imprimons ça et voyons ce qui se passe. Le nom de point Apple est un nom de point Apple est Apple, n'est-ce pas ? Que diriez-vous d'imprimer la teneur en sucre ? Donc, notre contenu est dix. Magnifique. Donc, en général, une classe, donc dans ce cas, une classe de fruits peut être utilisée pour, pour condenser les données en un seul objet, non ? Si une banane ou une pomme. Et il peut ensuite être récupéré de cette façon, ou aussi d'autres façons, que nous allons voir dans les conférences ultérieures. Mais tous dans toutes les classes et les objets sont une partie très importante de Java parce que java est un langage de programmation orienté objet, non ? Oup, langage de programmation orienté objet. Et c'est une sorte de partie essentielle de toute la structure. Et c'est aussi pourquoi il est très important de le comprendre. Nous allons continuer à parler de choses différentes avec les cours. Donc, les choses qui ont à voir avec les classes et les objets et ce qu'il faut faire avec eux. Mais il est important que vous ayez les fondations prêtes. Donc, encore une fois, s'il y a quelque chose que vous n'avez pas compris ou avez des questions, hésitez pas à poser. Et aussi s'il y a quelque chose qui pourrait être ajouté, vous savez, si vous dites, eh bien, je veux dire, j'ai entendu parler de ce sujet quelque part, mais vous ne l'avez pas fait. N' hésitez pas à me demander aussi. Et soit si je pense que j'ai peut-être manqué ça, soit c'est un sujet important aussi. Je vais faire une autre conférence à ce sujet. Juste, assurez-vous de demander et je reviendrai vers vous. Mais il est important que c'est une autre de ces choses comme les tableaux, qui est vraiment important d'être compris, non ? Objets et classes. Ils sont une chose fondamentale à comprendre, non ? 28. (Java) Public, protégé et privé: Très bien, bon retour à l'introduction à Java et nous retrouverons nos classes et nos objets. Cependant, cette fois, nous parlerons de l'accès. Que signifie Access ? Eh bien, jetons un coup d'œil à notre classe de fruits. Donc, au début, les attributs que nous possédons déjà, nous avons toujours écrit public, public. Et pourquoi ça ? Eh bien, tout d'abord, vous n' avez pas nécessairement à écrire en public devant, car par défaut, il est toujours public. Cependant, personnellement, il ne s'agit là encore que d'un choix personnel, d'une préférence personnelle. J'écris en public devant. Juste pour que ce soit parfaitement clair. Il y a deux autres choses que nous pouvons écrire. Nous pouvons d'abord, par exemple , être privés, et nous pouvons également écrire de manière protégée. Maintenant, qu'est-ce que cela signifie ? Eh bien, tout d'abord, public signifie que cette variable ou cet attribut est accessible par n'importe quelle classe, n'importe où. Donc, dès que j'ai ce fichier Java Fruit Dot, c'est vrai, je peux accéder à cette chaîne, à la couleur. D'accord ? Alors, qu'est-ce qui est protégé si ce n'est le moyen ? Eh bien, protégé signifie qu' il n'est accessible que dans le même package et à partir de sous-classes et de superclasses. Maintenant, que sont les sous-classes et les superclasses ? Nous le saurons dans une conférence ultérieure. Mais il ne sera pas tard, car c'est quelque chose que nous allons avoir très bientôt. La question de la protection sera ensuite abordée un peu plus en détail. Et en privé, je pense que c'est presque la plus importante. Cela signifie que cette variable n'est accessible que dans la classe fruit elle-même. Donc, cet attribut n'est accessible que dans le fruit lui-même. Donc seulement dans celui-ci, qui est marqué autour. Cela n'est accessible nulle part ailleurs. Bonjour. La première idée qui me vient à l'esprit est également le problème connexe, car à l'heure actuelle, nous avons ici un point, un nom de banane point. Et c'est comme si, d'accord, on ne pouvait pas le faire maintenant parce que le nom est privé. Donc il dit : « Hé, car l'accès privé ne fonctionne pas ». Cela ne fonctionne pas. Je ne peux pas y accéder. Teneur en sucre. Je peux y accéder même s'il est protégé. Mais nous sommes toujours dans le même package. Et comment pourrions-nous régler ce problème ? Nous corrigeons ce problème avec des getters et des setters. Les getters et les setters que nous examinerons dans la prochaine conférence. 29. (Java) Getters et configurations: D' accord, continuons avec l'introduction Java. Et dans cette conférence, nous allons parler de getters et setters, comme déjà mentionné dans la dernière conférence. Comment allons-nous résoudre ce problème que nous ne pouvons pas accéder à ce nom d'attribut privé ? Eh bien, pas de problème. On va voir comment on va faire ça. Donc tout d'abord, on va faire pour la démonstration, on va en fait rendre les trois attributs privés. Et puis dans le premier, pour le premier attribut, le nom, je vais montrer comment les getters et setters sont faits manuellement. Et puis pour les deux autres, je vais vraiment montrer un truc très soigné qui va nous permettre de les générer automatiquement. Nous voulons donc une fonction publique qui ne renverra rien si vide. Et nous allons nommer ce nom de jeu, entre parenthèses. Donc, en tant que paramètre, nous allons passer une chaîne appelée nom. La fonction va faire ce nom de point égal nom. Et ce n'est pas juste. C' est comme ça que nous voulons le faire. D' accord ? Mais le nom de la méthode, dans ce cas, le centre va être défini en petit, donc en minuscules. Et puis le premier, le premier auteur char, le premier caractère du nom de la variable va être majuscule, non ? Et puis au getter, le geta sera aussi public, mais cela va retourner quel que soit le type de variable, le type de données, dans ce cas chaîne. Et puis nous allons obtenir le nom et aucun paramètre n'a être donné. Et cela, nous allons juste retourner le nom. Et c'est à quel point c'est facile. Setname, getName. C' est ça. Et maintenant ce que nous pouvons faire, au lieu de faire le nom, nous pouvons réellement faire getName. Et tout va bien. Cela retournera ensuite Apple dans ce cas. Et ici, nous pouvons faire la même chose, setName. Et puis on passe juste la banane. Et c'est fait. Et puis il donne le nom à la banane. Maintenant peut-être que nous ne voulons pas que d'autres classes définissent cela. Alors bien sûr, nous n'avons pas besoin d'un setter, mais dans ce cas, nous allons réellement vouloir les deux. Et comment pouvons-nous avoir cette astuce qu'il génère automatiquement ? Eh bien, nous avons juste un clic droit et puis nous avons ce show contextes actions. On va cliquer dessus. Et puis ici, nous voyons créer un getter et setter pour la teneur en sucre. On va cliquer dessus et immédiatement ça va créer exactement ce qu'on veut. Fondamentalement exactement ce que nous avons fait ici. Juste avec la teneur en sucre. On peut faire la même chose pour la couleur. Nous allons juste cliquer avec le bouton droit de la souris montrer les contextes, les actions, créer getter et setter pour la couleur. Et puis il fait aussi un getter et setter pour la couleur. Exactement de la même façon que nous l'avons écrite. Juste qu'il est généré automatiquement, ce qui est beaucoup plus facile, surtout si vous avez une quantité folle d'attributs que ça va être sympa. Et puis nous pouvons juste être mis contenu plus court 15. Et tout le monde est heureux, il n'y a plus d'erreurs. Et ça marche. Et c'est la beauté ou la magie des getters et setters. Alors, oui. 30. Packages (Java): Très bien, poursuivons avec l'introduction à Java. Et dans cette conférence, il y aura une courte conférence où nous allons parler de packages. Nous avons donc déjà vu que notre propre package ici ressemble essentiellement à un dossier, n'est-ce pas ? Donc, dans notre package actuel, nous avons la classe des fruits et la classe principale. Et vous devez le considérer comme un dossier dans un répertoire. C'est essentiellement tout ce que c'est. Et si nous importons ensuite quelque chose, vous l'avez déjà vu. Ainsi, par exemple, nous avons importé java.util, util point a realist. C'est quelque chose que nous avons importé lorsque nous parlions de ArrayLists. Et puis cela nous a permis d' utiliser la ArrayList dans ce cas. Et il y avait d'autres choses comme le HashMap, où nous devions également importer un utilitaire pour le HashMap. Le java point util est donc essentiellement le nom du package. Et la HashMap est une classe parce que c' est celle à partir de laquelle nous avons réellement créé des objets. Alors, comment pouvons-nous peut-être rendre cela un peu plus facile ? Eh bien, nous pouvons en fait dire qu'au lieu de simplement importer la liste des tableaux et le HashMap, nous pouvons créer un magasin et ensuite tout importer depuis ce package util. Nous avons donc maintenant le HashMap, HashMaps et rien n'est importé avec l'ArrayList. Et rien n' est important parce que tout ce qui se passe en Utah sera en fait important avec les étoiles, donc nous pouvons les remplacer. Et l'ensemble du package est si important, n'est-ce pas ? Donc, en gros, c'est tout ce qu' il faut dire à propos des packages. Ils n'ont rien de particulièrement fou ou d'étrange. Si vous avez peut-être des packages ou des bibliothèques d'autres personnes à télécharger, vous devrez peut-être vous demander, d' accord, où se trouve quelque chose ? Mais en général, cela est importé automatiquement. Et si ce n'est pas le cas, vous pouvez toujours le faire explicitement et manuellement. Mais en général, cela devient automatiquement important. Mais ce n'est qu'une toute petite chose que je voudrais dire à propos des packages. Oui. 31. (Java) Héritage): Très bien, continuons avec l'introduction à Java. Et dans cette conférence, nous allons parler de l'héritage. L'héritage, un sujet très intéressant. Et pour cela, nous allons en fait créer quelques classes supplémentaires. Tout d'abord, nous allons créer une classe d'animaux. Un animal qui a du sens, non ? Qu'est-ce qu'il contient ? Eh bien, peut-être que oui Avons-nous une chaîne protégée et ce sera l' espèce de classe, n'est-ce pas ? Voici donc l'espèce de l'animal. Donc, quels que soient les interrupteurs, nous avons un oiseau, tu sais, un crocodile. Et c'est tout ce que nous allons faire pour l' instant, en ce qui concerne la classe des animaux. Mais maintenant, nous voulons avoir quelque chose qui soit un animal. Mais c'est un peu plus précis. On pourrait donc penser à un chien. C'est une bonne idée. Créons un chien de classe. Maintenant. Quel est le lien entre ce chien et un animal ? Eh bien, je veux dire, le chien est un animal, non ? Alors, comment pouvons-nous relier la classe des chiens à la classe des animaux ? Eh bien, derrière la classe, nous écrivons des extensions, puis des animaux. Et de cette façon, le chien est désormais aussi un animal. C'est ce qu' on appelle l'héritage. Le chien hérite donc de l'animal. Et on peut aussi dire que le chien est une sous-classe d'animaux. Et les animaux sont la superclasse. La superclasse est essentiellement le cluster ci-dessus. Le chien. Et le chien est une sous-classe d'animaux car il est entre guillemets en dessous de l'animal héréditaire. Alors peut-être que ce qu' un animal peut réellement faire, c'est certaines choses. Peut-être qu'un animal peut réellement courir. Nous allons avoir une méthode appelée run qui va simplement imprimer ce début. L'espèce court. C'est, c'est tout ce que ça fait, non ? Et puis peut-être que nous aurons une deuxième classe. Donc je vais courir, ce sera peut-être manger. Ensuite, il va juste imprimer à partir de cela que ces espèces mangent. D'accord ? C'est tout ce qu' un animal peut faire dans notre modèle en ce moment. Maintenant, le chien le fera, il peut adopter, le faire. Eh bien, tout d'abord, ce que nous allons faire, c'est créer un constructeur pour le chien. Ce sera cette espèce. Et puis la première chose à laquelle vous allez penser, c'est d'attendre une seconde. Nous n'avons même pas déclaré d'espèce chez le chien. Exactement. Mais le chien a aussi un animal. Donc, tout ce qu'un animal peut faire, un médecin peut le faire aussi. C'est aussi l'ensemble de ses attributs. Le chien aussi. Ainsi, tous les attributs de la classe animale sont accessibles au chien tant qu'ils sont publics ou protégés. S'il est privé, seule cette classe peut y accéder, comme nous l'avons déjà indiqué. Alors maintenant, créons simplement un nouveau chien. Alors peut-être un chien, Fluffy est un nouveau chien. Maintenant, que peut faire Fluffy ? Eh bien, Fluffy peut courir et Fluffy peut manger, non ? Parce que ce sont des classes, des méthodes, désolée qu'un animal puisse le faire. Et parce que Fluffy est un animal, parce que le chien hérite de l'animal, Fluffy peut faire tout ce qu'un animal peut faire. Il peut donc courir et manger. Commençons par cela et voyons ce qui se passe. Donc le chien court et le chien mange. Cela fonctionne. Aucun problème. C'est plutôt bien. Maintenant, qu'est-ce qu' un chien peut faire d'autre ? Cela pourrait et peut faire, c'est aboyer. C'est logique. Eh bien, élaborons un système. Imprimer une ligne avec peut-être Wolf, Wolf, I like it. Et tout cela est très bien. Mais peut-être voulons-nous aussi un chat. Créons donc une nouvelle classe Java qui sera un chat. Les excréments prolongent également l'animal. Et ici, nous aurons le même constructeur si cette espèce est égale à chat. Et puis un chat peut faire un miaulement public. Et nous allons également sortir le système, imprimer en ligne, miaou. À l'heure actuelle, tout est terminé. Nous allons donc laisser Fluffy aboyer ici. Fluffy peut aboyer parce que c'est un chien, pas parce que c'est un animal. Et quand on en fabriquera un , un objet, ce sera le chat. Nous allons donc l' appeler moustaches, disons celui-ci chapeau. Et puis, bien sûr, les moustaches peuvent aussi courir. Les moustaches peuvent aussi manger. Et les moustaches ne peuvent pas aboyer, mais les moustaches peuvent miauler. Ensuite, voyons ce qui se passe ici. Le chien court, le chien mange, ouah , le chat court, chat mange et miaule. Nous avons donc vu ici qu'un chien, le chien de classe, hérite d'un animal. Et la classe Cat hérite également de l'animal. Et puis toutes les méthodes que l'animal peut utiliser dans ce cas. De plus, tous ses attributs protégés et publics sont hérités de la sous-classe, dans ce cas, chien et chat. Et cela peut s'étendre au nombre de niveaux que vous souhaitez. Donc, en théorie, nous pourrions par exemple avoir une autre classe, le chihuahua, qui étende les chiens. Et puis un chihuahua est à la fois un chien et un animal. Nous pouvons changer cela autant que nous le souhaitons. Dans ce cas, un niveau est probablement suffisant. Voici, disons, les bases de l'héritage. Il y a peu d'autres choses intéressantes que nous pouvons faire et changer et qui se sont produites. Et nous les examinerons dans des conférences ultérieures. Mais ce sont les bases de l'héritage, également un sujet très important en Java et dans la programmation en général. C'est également un outil très puissant. Et oui. 32. (Java) méthodes statiques et non statiques: D' accord, continuons avec l'introduction Java. Et dans cette conférence, nous allons parler du mot-clé statique. Donc on va résoudre le mystère. Que signifie ce mot-clé statique ? Et pour ça, nous allons entrer dans notre classe d'animaux. Et tout ici, nous allons en fait ajouter un nouvel attribut, qui va être un entier statique public. Et on va appeler ça num animaux. Et nous allons le mettre à 0 au début. Et que fait cet entier maintenant ? Comme ce qui est spécial à ce sujet ? Rien n'a vraiment changé. Alors pensons à créer un nouvel animal, non ? Donc nouvel animal, juste comme ça. Et puis peut-être qu'on pourrait juste imprimer le nouvel entier statique. Donc nous allons faire un et la première chose que nous allons remarquer est que ça ne vient pas vraiment dans la suggestion. C' est un peu bizarre, non ? Donc si on fait des animaux num, on va vraiment avoir ce point culminant et ça va être comme, hé, en fait, ce n'est pas la meilleure façon de le faire. Parce que la façon dont nous y accédons, la variable statique n'est en fait pas avec une instance, donc avec cet objet, mais avec la classe elle-même. Donc ce que nous allons taper, c'est si nous allons taper le nom de classe Animal dot num animals. Donc, cela est effectivement accessible avec le nom de la classe, pas un objet ou l'instance de cette classe. Donc, quand nous lancerons ça, nous verrons que c'est 0. Et vous pourriez imaginer que ce qu'on veut c'est quelque chose comme, eh bien, chaque fois que je fais un nouvel animal, ce qu'on va faire c'est augmenter le nombre d'animaux pour qu' on sache combien d'animaux existent actuellement, disons. Donc, nous allons juste détourner le constructeur par défaut. Et on va juste faire num animaux plus, plus. Donc, nous allons juste augmenter le, cet entier chaque fois que nous créons un nouvel animal. Donc, après que nous avons fait celui-ci en num animaux, A1 devrait être écrit. Voyons voir. Et bien sûr un ce qu'on est à l'intérieur sur num animaux. Maintenant, ce serait un attribut statique statique ou un champ statique. Maintenant, nous pouvons également faire une fonction statique ou une méthode, désolé, méthode statique. Et ce que nous allons faire, c'est que nous allons faire quelque chose qui est souvent utilisé comme méthode statique. Et ça va être de générer un animal, non ? Et puis on va juste rendre un nouvel animal. Donc, par exemple, peut-être que nous ne voulons pas réellement que les gens utilisent le constructeur. Peut-être qu'on veut faire toutes sortes d'autres choses. Et puis nous avons cette méthode statique où nous pouvons fondamentalement créer un nouvel animal. Donc ce qu'on peut faire, c'est dire qu'on a un animal B. Ce ne sera pas un nouvel animal, mais ça va être animal, chien génèrent animal. Et cela renvoie simplement un nouvel animal. Et si nous imprimons les num animaux après ça, nous devrons le faire. Parce qu'à l'intérieur de cette méthode, savoir, la construction a également été appelée. Donc, le mot-clé statique, vous pouvez également penser à, pensez à cela comme une sorte de variable globale. Parce que peu importe combien ou quel animal j'ai, l'animal num n'a rien à voir avec un animal spécifique, non ? Il, le seul changement dans cette variable vraiment, est qu'il augmente avec chaque animal. Mais ce n'est pas différent pour a et b, non ? C' est donc une sorte de variable globale et non spécifique à un certain type d'objet qui est instancié. Donc oui, c'est le mot-clé statique. Et oui. 33. (Java) Polymorphisme: Très bien, poursuivons avec l'introduction à Java. Et dans cette conférence, nous allons parler du polymorphisme. Maintenant, la première chose est que cela semble incroyablement compliqué, mais c'est en fait très facile. Une fois que tu l'auras compris. Nous allons revenir à la classe des animaux. Et nous allons en fait changer cela pour manger quelque chose parce que nous voulons détourner la méthode de consommation dès maintenant. Ce que nous allons faire, c'est créer une nouvelle méthode à la fois pour le chien et pour le chat. Il va donc y avoir un vide public, mange. Et ce sera alors System.out, print out, par exemple Cette espèce de départ, c'est maintenant, ou elle mange un steak. Parce qu'un chien mange un steak et que le chat boit peut-être du lait. Je l'aime bien. C'est plutôt bien. OK, maintenant, à quoi nous attendons-nous ici lorsque nous appelons les fonctions de restauration ? Eh bien, voyons ce qui se passe. Que va-t-il se passer ? Ce chien mange un steak et le chat boit du lait. Donc, ce qui se passe, c'est que la fonction Eat de l'animal va être froide, mais la fonction Eat du chien, et comme vous pouvez le voir, manger en classe des animaux écrasent, n' est-ce pas ? Donc ceci, cette classe, cette méthode ici dans cette classe. Ils mangent donc, ce qui remplace en fait la chaleur de la classe animale. Parce que celui-ci est plus proche de ce que nous avons déclaré ici. Donc, en gros, c'est tout ce que cela représente pour le polymorphisme. Donc, les mêmes méthodes une super et une sous-classe de la superclasse se trouvant dans l'animal, et pour une sous-classe étant le chien et le chat, n'est-ce pas ? Vous pouvez utiliser la même méthode sur les deux et les faire en sorte qu'elles soient complètement différentes. Dans ce cas, ce n'est pas si différent, mais ils peuvent être complètement différents. Et pourtant, nous pouvons avoir les deux. Et l'accès se fait toujours par la sous-classe. Donc, sur celui que nous avons spécifié ici. Mais le polymorphisme, c'est en fait très simple. La même méthode s'applique à la super et à la sous-classe. Vous pouvez les déclarer complètement différemment. Ils peuvent faire des choses complètement différentes. Et il peut toujours avoir les deux, non ? C'était pour le polymorphisme. Donc, oui. 34. (Java) Cours et méthodes abstraites dans Java: D' accord, continuons avec l'introduction Java. Et dans cette conférence, nous allons parler de classes abstraites et de méthodes. Alors, qu'est-ce qu'une classe abstraite ou une méthode abstraite ? On va voir en faisant de celui-ci une classe abstraite. Donc nous allons avoir un animal de classe abstrait public. Et qu'est-ce que ça fait maintenant ? Eh bien, une classe abstraite ne peut pas avoir d'instance. Parce que quand on y pense, un animal, qu'est-ce qu'un animal ? Eh bien, je veux dire, vous devez spécifier quel type d'animal vous voulez, non ? Donc, vous avez un chien est un animal, un guépard est un animal. Mais par exemple, un ordinateur n'est pas un animal, n'est-ce pas ? Donc, une classe abstraite peut avoir des méthodes implémentées, et elle peut aussi avoir des méthodes abstraites. Donc maintenant, ce qu'on va faire, c'est qu'on va avoir celle-là, la méthode IJ, l'abstrait. Et puis nous ne voulons rien spécifier ici, donc nous ne voulons pas le déclarer. Nous ne le laisserons pas fondamentalement inimplémenté et vraiment juste avoir ce vide abstrait public manger. Maintenant, la bonne chose est que nos chiens et nos chats ont déjà mis en œuvre cette méthode de repas, non ? Et comme vous pouvez le voir ici avec ce nouveau symbole ici, ce qui signifie fondamentalement que celui-ci est une méthode abstraite que les sous-classes, donc animal comme les sous-classes de superclasse qui héritent de Animal doivent implémenter droit ? Maintenant, nous pouvons également supprimer cela. Et puis immédiatement nous voyons, hey, vous devez avoir cette méthode implémentée. Ensuite, nous pouvons, par exemple, dire des méthodes d'implémentation. Et ça dit IID. Alors oui, bien sûr. Nous n'avons pas besoin du remplacement, certainement dans ce cas, mais nous pouvons aussi revenir à ce que nous avions auparavant et que tout va bien. Maintenant, si nous allons entrer ici, maintenant, ce que nous allons avoir, c'est dans ce cas, l'animal peut toujours être créé comme un objet si c'est un cad. Cependant, si nous avons un animal a, oh, désolé, un animal a, et nous voulons faire un nouvel animal. Et ça va être comme non, ça ne marche pas parce qu' une classe abstraite ne peut pas être instanciée. Ce qui signifie simplement que nous ne pouvons pas avoir un objet de cette classe. Nous ne pouvons pas créer une nouvelle classe avec cela. Donc, dans ce cas aussi, la classe abstraite peut à la fois avoir les méthodes abstraites qui ne sont pas implémentées, mais doivent ensuite être implémentées par toutes les sous-classes. Mais nous pouvons, comme vous pouvez le voir, aussi la méthode de course qui est mise en œuvre et que le chien et le chat peuvent tout simplement appeler. D' accord, donc on va recommencer ça une fois de plus. Et comme avant, tout fonctionne parfaitement bien. Le chien qui mange un steak, le chat boit du lait. Cela fonctionne toujours parfaitement bien et est toujours parfaitement valide. La chose que je suis avec une classe abstraite est simplement que nous pouvons avoir ces méthodes non implémentées qui le sont, ce qui peut être vraiment utile. Et aussi nous ne pouvons pas avoir une instance de cette classe, ce qui, quand on y pense, n'a pas vraiment de sens parce qu'est-ce qu'un animal ? Et l'animal est juste le concept quand on parle et c'est un animal. Je veux dire, ça n'a aucun sens quand tu penses à ça. Et donc oui, ce sont des classes et des méthodes abstraites. Alors oui. 35. (Java) Interfaces: Très bien, continuons avec l'introduction à Java. Et dans cette conférence, nous allons parler des interfaces. Alors, qu'est-ce qu'une interface ? Eh bien, tout d'abord, nous allons en créer un. Nous allons donc aller dans Nouveau, puis dans la classe Java, puis nous allons sélectionner l'interface. Et cette interface, nous appellerons une discussion. Je parle d'interfaces, c' est généralement ainsi que vous nommez une interface. Vous avez donc soit un I majuscule au début, soit vous terminez le nom de l'interface par interface. C'est l'une des deux méthodes. Je préfère le I devant, car il est généralement très clair. Qu'est-ce donc qu'une interface ? Une interface ressemble presque à une classe abstraite, n'est-ce pas ? Donc, si nous revenons à l'animal , c'était un animal. C'est ce qu'est une classe abstraite dans ce cas. Et nous avions ici une méthode abstraite, chacune étant mise en œuvre par les sous-classes pour les animaux. Mais nous avions également cette méthode d'exécution, qui était en fait quelque chose que nous n'avions pas nécessairement à implémenter. Et nous pourrions utiliser cette classe à partir de la méthode de la classe Animal. Maintenant, cela ne fonctionne pas dans les interfaces. Les interfaces n' ont en fait que des méthodes abstraites entre guillemets et guillemets. Nous ne pouvons donc rien implémenter à l'intérieur de cela. Si nous avons, par exemple, une méthode de conversation vide, cela a du sens, alors nous ne pouvons rien y faire, n'est-ce pas ? On ne peut pas dire « imprimer » et ensuite faire quelque chose comme « Hé, parle », n'est-ce pas ? Cela ne fonctionne pas. Parce que, comme vous pouvez le voir ici, l'interface, les méthodes abstraites ne peuvent pas avoir de corps et c'est le corps. Nous pouvons donc réellement tout mettre en œuvre. Ils doivent toujours être déclarés. Il ne peut s'agir que de méthodes non implémentées. Donc, par exemple, nous pourrions avoir une discussion sur le voyage. Peut-être. En fait, continuons à parler du vide pour l'instant. C'est peut-être la chose la plus intéressante. Alors, que pouvons-nous faire en parlant, n'est-ce pas ? Donc, l'idée ici est que le Bell fonctionne, par exemple, on pourrait imaginer un RPG, n'est-ce pas ? Encore une fois, nous pouvons nous déplacer et vous pouvez parler à des gens, mais vous pouvez aussi parler à certains objets. Et ce n'est pas vraiment une discussion, alors c'est plutôt une momie. Le personnage dit quelque chose, mais c'est une conceptualisation intéressante. Nous pourrions donc peut-être même imaginer que nous avons un chien qui, dans notre RPG, en ce moment, dans notre RPG imaginaire, peut nous parler à ce chien. Et tout cela est très bien. Mais pour l'instant, celui-ci s'étend à un animal. Comment pouvons-nous ensuite l'ajouter à l'interface ? Eh bien, nous allons simplement écrire des outils et ensuite nous le ferons. J'ai parlé du fait que nous allons maintenant avoir une grosse flèche parce que nous devons en fait implémenter à nouveau la méthode Talk. Pareil pour ça. C'était avec l'animal abstrait. Et nous allons mettre en œuvre des méthodes. Ce sera Talk, oui, quand je l'implémenterai et tout redeviendra parfait. Donc, ce que nous pouvons faire, c'est dire, par exemple la ligne system.out.print. Nous y déclarons donc quelque chose. Nous implémentons en fait quelque chose dans cette méthode de conversation. Donc, par exemple , nous pourrions dire que ce chien vous aime vraiment, vous aime vraiment. vois, tu y es. Maintenant, ce que nous pouvons faire, c'est dire : eh bien, nous pouvons partir avec, nous pouvons créer un nouveau chien. Donc, par exemple, refaisons du moelleux, peut-être pas du tout. Voilà. Qui est un nouveau chien. Alors Fluffy peut parler. Ce n'est pas un problème. Faisons celui-ci. Et allons-y. Ce docteur t'aime vraiment, c'est plutôt sympa. Cependant, peut-être en tant que personne qui se promène, non ? J'ai donc ce personnage de RPG et je voudrais parler . Peut-être qu'il y a 100 classes différentes qui peuvent me parler. Il y a peut-être un chien ou un chat. Il pourrait y avoir un être humain, non ? Une autre personne, un autre personnage, un PNJ. Il peut s'agir de plantes ou d'arbres avec lesquels je souhaite interagir. Et puis, bien sûr, cela ne fonctionne pas parce que je ne sais pas dans quelles classes cette interface est implémentée, n'est-ce pas ? Je sais juste, d'accord, je sais que dès que quelque chose est attaquable, je peux en parler. Donc, ce que je peux dire, c'est : OK, je veux et j'en parle, et ce sera le chien. Et ce sera un nouveau chien. Parce que le chien est à la fois un chien et un animal. Et j'en parle en ce moment. Et donc, si je choisis Dark Dot, je peux, par exemple ne pas aboyer parce que pour le moment, chien est peut-être pas le meilleur nom pour cela. Disons simplement une chemise foncée ou un esco encore une fois avec du duvet, pourquoi ne pas du duvet ? Mais nous savons que dans Fluffy, Fluffy est accessible à pied. Ensuite, nous faisons Fluffy et Fluffy peut parler. Et si nous l'analysons ensuite, cela dira que ce médecin vous aime vraiment parce que c'est un chien. Mais nous craignons juste d' avoir un œil, Taco Bell. On s'en fout vraiment de savoir s'il est désolé. Peu nous importe ce qui est écrit ici. Peu importe qu'il s'agisse d'un chien, d'un robot, d'un chat, d'un PNJ. Nous savons juste, d'accord, que ce n'est pas attaquable. C'est définitivement un œil Taco Bell. Et quoi qu'il arrive ici, d' accord, que ce ne soit pas, comme je l'ai dit, un chien ou une plante. Nous savons que la méthode de discussion est toujours mise en œuvre sur ce dont je parle. Donc, en gros, vous pouvez également imaginer l'interface comme étant quelque chose comme un plan pour une certaine chose. Dans ce cas, nous l'utilisons en fait pour implémenter une méthode très spécifique sur de nombreuses choses différentes, n'est-ce pas ? Donc, comme je l'ai dit, on pourrait aussi imaginer l'avoir sur le fruit ou sur le chat, ou sur toutes sortes d'autres choses. Et il peut implémenter l'interface, puis il est possible d'interagir avec elle, par exemple. Maintenant, bien sûr, il y a beaucoup de choses différentes que vous devez faire pour faciliter cela. Ce n'est qu'un exemple. Pour l'interface. Les interfaces peuvent être vraiment très puissantes. Et une autre remarque est que dans ce cas, nous avons en fait étendu ce chien, étendu l'animal pour en avoir un, nous avons un héritage et nous avons également implémenté une interface. Maintenant, nous pouvons implémenter plusieurs interfaces sur une classe, mais nous ne pouvons pas avoir plusieurs classes à partir desquelles une classe s'étend. Il est donc également très important de noter que nous pouvons avoir 1 000 interfaces différentes, gros, en les implémentant sur un nœud de classe. Vous devez cependant implémenter chaque méthode déclarée à l'intérieur de l'interface dans la classe qui l'implémente. Il est donc très important de le noter. Oui, c'est une très courte introduction aux interfaces. Encore une fois, s'il y a des questions, hésitez pas à les poser et j'y répondrai. Et oui. 36. (Java) Enums: D' accord, continuons avec l'introduction de Java et cette conférence. Ça va être rapide. On va parler d'enums. Alors, enums, que sont les énumérations ? Yams sont des structures de données très intéressantes que nous pouvons utiliser pour bien modéliser fondamentalement certaines choses intéressantes. Il y a donc deux façons d'implémenter des énumérations. Donc la première chose qu'on va faire, c'est en cours. Dans ce cas, nous allons juste le faire dans la clause principale. Et nous allons mettre en œuvre une énumération appelée difficulté. Comment nous implémentons cela est en lisant assez, alors le nom du fondamentalement M est court pour l'énumération fondamentalement. Et nous voulons avoir ENUM que le nom de l'enum, puis les crochets bouclés. Et dans ces parenthèses bouclées, nous allons écrire tout ce que nous voulons énumérer. Et nous avons des difficultés faciles, nous avons des difficultés moyennes, et nous avons entendu des difficultés. Et c'est tout. C' est ainsi que nous déclarons une énumération. Et maintenant c'est fondamentalement un type de données que nous pouvons utiliser pour créer de nouveaux objets de la difficulté de type. Donc maintenant on peut faire de la difficulté si on est même quelque chose comme une difficulté de jeu, non ? Pour être complètement. Donc, quand on pense à un jeu, par exemple, on peut avoir un jeu. Vous serez un mode facile, moyen ou dur. Et alors ce que nous pouvons faire, c'est que nous pouvons avoir de la difficulté de jeu, du mal à la difficulté point. Maintenant, la grande chose est que les valeurs de cette énumération sont réellement écrites comme facile, moyen et dur. Donc nous n'avons pas à nous soucier de quelque chose comme, vous savez, vous pouvez penser à une difficulté à avoir 01234 et vous êtes genre, ok, c'est quoi la difficulté ? On aurait du mal pour peut-être, vous savez, dans quatre mois, quand vous revenez au projet, vous ne vous souvenez pas, mais de la difficulté, facile. C' est facile à retenir. Et cela fonctionne aussi, vous savez, vous pouvez faire si les déclarations avec elle, vous savez, difficulté de jeu est égale et alors vous pouvez dire difficulté facile. Et puis vous pouvez faire quelque chose, vous savez, vous pouvez être comme, hé, les difficultés faciles. Donc peut-être que le joueur a plus de santé ou plus d'armure ou que les ennemis ont moins d'attaques, des choses comme ça. Et les énumérations ici sont vraiment bonnes parce que non seulement elles sont facilement, facilement implémentables, réalisables et facilement changeables, non ? Donc nous pouvons facilement dire quelque chose, eh bien, faisons un cheval aussi, et rien ne change. Il se peut que nous ayons juste à avoir une autre déclaration if ou un autre cas dans notre déclaration switch que nous voulons. Et oui, donc c'est une façon d'avoir cette énumération et implémentée. Nous pouvons aussi faire une nouvelle classe. Et là, nous pouvons choisir une énumération. Et par exemple, on peut faire quelque chose comme, je ne sais pas. Disons peut-être prendre des difficultés. Et maintenant, nous allons réellement supprimer celui-là. Nous allons supprimer cette difficulté. Et ici, nous avons une énumération publique, et cela fonctionne de la même manière. Donc, nous avons facile, moyen, dur. Et puis Horace par exemple. Et cela fonctionne exactement de la même façon. Donc difficulté, si sa nouvelle difficulté, désolé, pas nouvelle difficulté, c'est ridicule. Bien sûr, difficulté, par exemple, facile. Et c'est tout. Donc, c'est fondamentalement le même que ici, juste ici, il faisait partie de la classe principale. Et peut-être alors ce que vous feriez est que vous auriez à y accéder par toujours avoir une difficulté main.out. C' est parfois, il est préférable d'avoir cela dans son propre fichier. Parfois, il vaut mieux l'avoir à côté d'une autre classe. C' est-à-dire, je dirais surtout la préférence. Mais la prise de conscience de la situation est également très importante. Ils dépendent de la fréquence à laquelle il est utilisé dans d'autres classes. Et si votre nom de classe aussi long, vous savez, il peut devenir assez long. Vous pouvez obtenir des déclarations assez longues à partir de ça. Mais oui, c'est une énumération très utile pour beaucoup de choses. Et oui. 37. (Java) et tentez-vous et saisissez la déclaration: Très bien, poursuivons avec l'introduction à Java. Dans cette conférence, nous allons parler des exceptions et essayer de les comprendre. Maintenant, qu'est-ce qu'une exception et que cherchons-nous à comprendre ? Nous allons examiner cela très bientôt. Donc, tout d'abord, j'ai préparé ici un tableau d'entiers. Et ce que nous allons faire, c'est que nous allons simplement utiliser le système la ligne d'impression, puis nous allons dire des chiffres. Et puis deux. Bien sûr, cela ne fonctionne pas car il n' y a pas de nombre d'index deux dans ce tableau. Donc, si nous exécutons ce code, nous obtenons une exception. Maintenant, cette exception signifie simplement que le tableau est hors limites. Et pourquoi, qu'est-ce qu'une exception ? L'exception est essentiellement un taux d'erreur. C'est-à-dire que cela ne doit pas faire planter le programme. Donc, si dans ce cas le programme tombe en panne, si nous avons quelque chose comme ça. Donc, par exemple, oh, désolée. Si quelque chose comme HelloWorld est peut-être écrit ici, n'est-ce pas ? Nous écririons donc Hello World. Alors tout ce qui suit l'erreur est pas ou l'exception dans ce cas n'est pas froide. OK, c'est bon. Maintenant, nous allons implémenter notre propre petite méthode rapide ici, qui sera un flottant statique public. Et cela va diviser, cela va diviser a par B. Et nous allons simplement renvoyer a divisé par b. Maintenant, comme certains d'entre vous le savent peut-être, si vous divisez par zéro, c'est une très mauvaise idée parce que cela ne fonctionne pas. Et nous pouvons vérifier cela à l'avance. Nous pouvons donc dire : « Hé, si b est égal à zéro », alors lancer une nouvelle, puis une exception. Et puis, dans cette exception, nous pouvons réellement écrire certaines choses. Nous pouvons donc, par exemple, ne pas diviser par zéro. Hein ? Maintenant, cela va nous générer une erreur. Parce que ce qu'il veut vraiment savoir, c'est que cette méthode génère une exception, n'est-ce pas ? Donc, ici, nous devons en fait écrire exception, exception. Vous y voilà. Alors tout fonctionne bien. Parce qu'elle a besoin de savoir, hé, cette méthode de division peut en fait générer une exception. C' est très important. Donc, si nous essayons ensuite de l'utiliser, disons, par exemple nous voulons diviser dix par cinq, quelque chose comme ça, n'est-ce pas ? Et il va faire huit heures. Cela ne fonctionne pas car nous n'avons pas géré cette exception. Qu'en est-il de cette exception ? C'est comme si c'était bon, donc nous voulons également créer une exception pour la méthode principale, juste pour que tout soit clair. Maintenant, si on le fait maintenant, ça marchera parce que ça va juste en retourner deux parce que rien ne t' est arrivé. Ou si vous voulez y mettre zéro, alors tout à coup, nous lançons une exception. Et cette exception, nous l'avons rejetée. Et ça dit simplement qu'on ne peut pas diviser par zéro. C'est vraiment ce qui est intéressant à ce sujet. Mais ce qui est encore plus intéressant, c'est ceci. Nous pouvons donc réellement résumer cela par une déclaration d'essais et d'erreurs, n'est-ce pas ? Nous pouvons donc arrêter de lancer cette exception pour la méthode principale et dire, eh bien, d'accord, essayons ceci, le mot clé try, puis les crochets. Et puis il y a du catch. Et à l'intérieur de tout cela, nous allons avoir l'exception e parce que c'est ce que nous voulons attraper et c'est ce que nous allons essayer. Nous allons donc essayer de nous diviser ici, n'est-ce pas ? Nous allons donc simplement le formater rapidement. C'est très beau. Nous pouvons donc en avoir plusieurs, disons par exemple 10/5, 40/4, puis 22/0. Maintenant, ça va être le cas, ça va simplement fonctionner. Ça va être deux, ça va être dix, et puis c'est l'exception. Sauf que tu y es. Permettez-moi de saisir cette exception. Nous pouvons réellement le sortir, n'est-ce pas ? Nous pouvons donc dire que le système sort une ligne d'impression par points. Et on pourrait dire E, par exemple, vrai. Il ne fait donc que générer l'exception. Et ensuite, peut-être que ce que nous voulons faire est system.out.print, line point, puis helloworld. Hein ? Voyons donc ce qui se passe ici lorsque nous exécutons cela. Eh bien, ce qui va se passer, c'est que nous allons le faire. Nous allons en imprimer deux, nous allons en imprimer dix. Et puis l'exception se produit, n'est-ce pas ? On ne peut pas diviser par zéro. Mais comme nous l'avons fait dans une déclaration d' essai , que s'est-il passé ensuite ? Après, en fait, toujours exécuté, non ? Et c'est vraiment le pouvoir de l'essayer et de l'attraper. Parce que si nous n'avions pas d'abord essayé l' attraper ou de l'attraper dans ce cas, cette méthode n'aurait pas été appelée ainsi dans ce cas. Mais il fait froid parce que nous avons fait en sorte que les appels soient sûrs. Ainsi, lorsqu'une exception est levée, nous pouvons essayer de la détecter. C'est pourquoi il est important de savoir qu' une méthode spécifique génère une exception. Parce que si vous savez ce que c'est, nous pouvons toujours le mettre dans une déclaration essayée. Et puis, même si une exception est déclenchée, nous pouvons toujours continuer si le programme ne plante pas simplement. C'est l'une des choses les plus importantes. Mais nous avons toujours la possibilité d' imprimer l'erreur de l' exception dans ce cas. Et nous apprenons toujours, d' accord, ce qui s'est passé ici. C'est donc vraiment un excellent moyen de s' assurer que le code est solide et que le programme ne plante pas simplement. Parce que pensez-y comme ça. Si chaque fois que quelque chose de mal arrive au programme, certaines exceptions sont déclenchées. Chaque fois que cela se produit, le programme fait pression. Nous aurions de nombreux programmes qui se bloqueraient constamment parce qu'ils peuvent toujours se produire. Et surtout si vous prenez en compte les entrées de l'utilisateur, vous pourriez lui demander, hé, donnez-moi un chiffre à diviser, n'est-ce pas ? Donc, par exemple, la calculatrice, non ? Je dis, eh bien, le programme 22/0 BAM se bloque. Ce n'est pas ce que nous voulons. C'est pourquoi nous pouvons détecter les exceptions avant qu'elles ne bloquent le programme. Donc oui, c'est quelque chose pour les exceptions et essayez de comprendre et oui. 38. (Java) Lambda Expressions (Java Lambda: D' accord, continuons avec l'introduction de Java. Et dans cette conférence, nous allons parler des expressions lambda. Maintenant, j'ai déjà préparé essentiellement le fichier Java entier ici parce que c'est un peu plus compliqué. Et je veux juste passer en revue quelques-uns des exemples que j'ai écrits ici. Et on va juste passer par le code un par un. Ceci est également disponible en tant que ressource. Ce code particulier, parce qu'il est plus important que vous le compreniez plutôt que vous me voyez écrire. Je pense que c'est plus approprié dans ce cas. Donc, tout d'abord, nous avons une liste d'entiers ici, et nous ajoutons juste quelques nombres. Et ce que nous pouvons ensuite faire avec une expression lambda, par exemple, c'est que nous avons transformé cela en un flux. Donc nous faisons le flux de démarrage numérique, non ? Cela le transforme en un flux de nombres. Et puis nous pouvons utiliser quelque chose appelé la fonction de carte. Et la fonction de carte prend en fait quelque chose qui a l'air vraiment bizarre, non ? Donc celui-ci dans ce cas serait une fonction, non ? Nous avons donc beaucoup parlé des méthodes, et maintenant nous parlons de fonctions. Et une méthode est fondamentalement quelque chose qui appartient à un objet ou à une classe. Et une fonction est un peu comme une méthode fluide, pour ainsi dire. Donc, il n'appartient pas à une classe particulière. Et dans ce cas, ce que nous voulons c'est que nous disions, ok, donc quand nous utilisons la méthode de la carte, ce qui se passe, c'est qu'il faut une fonction et c'est la fonction. Et il applique cette fonction à chacun des membres ou à chacun des, chacune des valeurs stockées dans cette liste, dans ce cas. Donc, fondamentalement, chacun des nombres, à droite, va, donc c'est fondamentalement comme for-loop. Dans ce cas. Ça va dire OK pour chacun des numéros, non ? On va dire, d'accord, c'est furieux. Maintenant, c'est moi, c'est moi, c'est moi, ça, je veux faire ça. Et on va juste appeler I plus égal à 4. Alors que devrait-il se passer quand on y pense comme ça ? Et puis le reste ici est juste à la liste. Donc nous écrivons ça en chiffres. Donc quand on appelle ça ici, on s'attend à un 10021069420. Et puis ici, nous nous attendons à tous ces chiffres, mais nous avons ajouté quatre. Donc on va juste appeler ça et on va regarder les deux premières lignes juste ici. Et comme vous pouvez le voir, chaque valeur à l'intérieur de la liste, nous y avons ajouté quatre. Et c'est un moyen vraiment facile de le faire en une seule ligne de code, ce qui est incroyablement efficace lorsque vous regardez écrire du code. Maintenant, plus le scat de collection ou vos listes est grand, plus vous devriez faire attention aux expressions lambda sont généralement, il ne devrait pas y avoir de problème. Donc il y a beaucoup de choses différentes que vous pouvez faire avec ça. Mais nous allons regarder en ce moment est fonctions en tant que variables, non ? Donc c'est quelque chose de fou. Il y a cinq choses dont je veux parler en ce moment, qui est une fois les fournisseurs, lorsque les consommateurs appellent double runnable, puis les fonctions. Nous avons donc vu un exemple de fonction ici, mais nous allons commencer par les fournisseurs. Donc, un fournisseur est fondamentalement une variable qui s'y est stockée, une fonction qui s'y est stockée. Une fonction sans paramètre mais une valeur de retour, n'est-ce pas ? Et nous pourrions écrire ceci, par exemple, comme ça, non ? Ouvrez les parenthèses sans rien dedans. Donc il n'y a pas de paramètre. Et puis vous avez cette flèche, puis x. Donc ici nous déclarons un fournisseur, je l'appelle juste fournisseur, et puis cela est égal à cette expression. Ce serait une expression lambda, et c'est essentiellement un fournisseur. Donc, un fournisseur, comme je l'ai dit, a une valeur de retour, dans ce cas une valeur entière, et renvoie dix. Si vous voulez savoir pour quoi le fournisseur doit nous fournir, disons, alors nous utilisons simplement la méthode get sur le fournisseur lui-même. Donc, quand nous regardons la troisième rangée juste ici, nous avons un dix qui est retourné en utilisant le get. Et c'est génial parce que dans ce cas, nous pouvons réellement stocker une fonction à l'intérieur d'un taux variable. Donc, le fournisseur ici, nous pourrions aussi passer à une méthode et nous pourrions faire des choses avec elle. C' est, c'est le, les possibilités sont presque infinies, non ? Quand tu y penses. Nous avons également un consommateur et un consommateur a un paramètre mais aucune valeur de retour. On pourrait écrire ça comme ça. X ne va à rien. Donc, dans ce cas, nous avons un consommateur qui est, a une valeur de chaîne. Et ceci est ensuite écrit comme ça. Donc ce S va à la fonction e ici. Et puis nous pouvons faire point consommateur sauf et ensuite juste passer une chaîne. Dans ce cas, c'est HelloWorld. Et si nous faisons ça, alors nous voyons Helloworld. Mais nous pourrions aussi passer tout ce que nous voulons vraiment ici. C' est donc une excellente façon de l'utiliser. Ensuite, il y a un appelable. Maintenant, un callable n'a pas de paramètres mais une valeur de retour et il lève une exception. C' est pourquoi nous, dans ce cas, nous avons en fait entouré d'une déclaration d'essai et de capture. Parce que si nous ne le faisons pas, si nous le faisons simplement, alors ce sera comme à l'exception de la signature de la méthode. Mais nous ne voulons pas que notre méthode principale ait l'exception de lancements. C' est pour ça que nous sommes comme OK, essaye juste d'appeler. Maintenant, cela, dans ce cas ne fait rien parce que nous jetons une exception. Et je pense qu'il a attrapé ça avant. Et oui, ce serait un appel. Donc appelable, c'est fondamentalement la même chose qu'un fournisseur, mais il lève également une exception. Peut être utile parfois dépend vraiment de ce que vous faites. La prochaine chose. Un runnable. Un runnable est une fonction sans méthodes ni valeurs de retour. Donc, dans ce cas, le deuxième pourrait aussi être écrit comme ça. Et puis le runnable est juste la parenthèse ouverte avec rien dedans. Et puis juste faire quelque chose. Et il peut être exécuté en faisant simplement l'exécution, en appelant la méthode run. Très facile. C' est le similaire à juste une méthode de vide normale, non ? Une méthode plus vide. Et c'est juste la, disons la partie fonction de cela. Et puis enfin, nous avons la fonction qui a des paramètres et la valeur de retour. Ainsi, vous pouvez penser à une fonction comme une, un taux de fonction mathématique. Si vous avez f de x, alors évidemment l'accès quelque chose que vous passez à la fonction et ensuite le y que vous obtenez est quelque chose qui est le, le, le, le résultat fondamentalement, non ? Donc ici, nous avons x, y, c'est comme ça que nous pouvons l'écrire. Et dans ce cas, la fonction a un double comme entrée et un double comme sortie. Nous obtenons, nous mettons notre dedans et nous sortons. Fondamentalement, vous savez, ce serait une fonction deux, donc ce serait pi, c'est le taux de rayon. Ce n'est donc qu'un exemple. Et nous pouvons utiliser le système de sortie, imprimer la ligne, puis juste faire le point de fonction appliquer avec un dix par exemple. Et on pourrait l'appliquer. Alors courons vite ça. Et comme vous pouvez le voir ici, nous avons eu Bonjour à nouveau, Bonjour monde à nouveau, runnable. Ça a bien fonctionné. Et puis celui-ci retourne juste 31.41 et ainsi de suite et ainsi de suite. Parce qu'il est juste calc, parce que juste fois dix cela mais une fois de plus, nous pouvons mettre n'importe quel double ici avec ce que nous voulons. Et oui, donc c'est un très court aperçu et un très résumé pour certaines des choses que les expressions lambda peuvent faire le long des expressions vont beaucoup, beaucoup plus loin que cela. Même. Donc, seules les fonctions que nous pouvons faire appel aux collections sont nombreuses et incroyablement profondes et parfois vraiment utiles. Et même ceux, les fournisseurs et les fonctions en tant que variables, même là, il y a encore plus de types d'entre eux. Mais je me limite à ces cinq personnes parce que après mon expérience, je pense que ces cinq sont principalement les plus importantes. Pas nécessairement le plus important, mais le plus utilisé. Et, mais cela dépend aussi toujours de ce que vous faites bien ? Maintenant, le gros est que vous n'avez pas vraiment besoin d'utiliser des expressions lambda. Si vous avez un programme, vous commencez à partir de zéro et vous n'utilisez pas de paquets supplémentaires tiers ou tiers ou quelque chose comme ça. Vous n'avez pas vraiment besoin de les utiliser. Tu pourrais, en théorie, faire tout le reste sans ça. Mais il est très important d'au moins regarder et certaines choses que vous pourriez vouloir faire, surtout si vous travaillez avec du code que d'autres ont écrit. Donc, d'autres paquets, alors ils pourraient utiliser ces expressions lambda et alors il est très important d'avoir au moins vu cela et de pouvoir alors peut-être se rappeler. Donc oui, c'est une très courte introduction. Encore une fois, s'il y a des questions, hésitez pas à les poser et je vais y répondre. Et oui. 39. (Minecraft) Forge Installation et configuration: Bon tout le monde, bienvenue au cours Minecraft. Et la première chose qu'on va faire est de télécharger Minecraft 4j. Donc, vous allez dans les fichiers d'adresse Web dot.net. Le lien est bien sûr disponible en tant que ressource ici. Et vous allez télécharger le plus récent, le téléchargement recommandé ici. Dans ce cours, on va faire 1.16.3. Et la version recommandée en ce moment est 34.1 est 0. Nous allons télécharger le SDK ici, donc nous allons simplement cliquer sur OK et nous devons attendre quelques secondes. Et là, c'est le bouton Skip. On va juste cliquer dessus. Et puis un fichier ZIP va télécharger ce fichier zip que nous allons mettre dans un répertoire de notre choix. J' ai déjà préparé un répertoire ici. Donc on va faire quelque chose rapidement, un peu de magie comme ça. Et on va mettre ça ici. Maintenant, nous avons notre forge un port et 1.16.3 m dk dans notre, dans notre répertoire. Et nous allons simplement extraire ici. Pour cela, vous avez besoin soit quand RAR ou un autre programme. Je suis sûr que tu l'as déjà. Et si ce n'est pas le cas, n'hésitez pas à poser n'importe quelle question. Je peux alors vous diriger ou vous pouvez juste Google Vin rar, WIIFM RAR, juste après tout est extrait, nous pouvons effectivement supprimer le fichier zip ici. Et la première chose que nous devons faire est d'ouvrir l'intelligence, non ? Si tu ouvres l'intelligence pour la première fois, tu auras ça. Bienvenue dans l'intelligence. Si ce n'est pas le cas, vous pouvez simplement aller dans Fichier en haut à gauche et juste importer ou ouvrir. Et ce qu'on va faire, c'est qu'on va ouvrir plus d'importation. Maintenant. Nous sommes déjà ici dans notre répertoire Minecraft et nous allons importer le fichier build.gradle. Et ce qu'on va faire, c'est qu'on va s'ouvrir en tant que fichier en ce moment. Et comme on peut le voir, un fichier s'est ouvert. Une fois que nous avons ouvert le fichier Gradle, nous devons changer quelques choses. Et ici, nous devons réellement spécifier le paquet R. Et ça va être calmé Colton Joe Dot MC cours pour moi. Donc, l'ID de mod dans ce cas va être bien sûr Mc. Et une autre chose que nous devons changer ici est le mode exemple. Et ce que nous allons faire là, ce que nous allons faire, c'est que nous allons juste appuyer sur Control R. Et puis nous allons changer l'exemple mod2 en cœurs MC et nous allons tout remplacer et enregistrer avec Control une fois de plus S cette fois. Et puis tout devrait être mis en place comme il est censé être. Ne vous inquiétez pas s'il y a des erreurs ou quelque chose ici. On va arranger ça assez tôt. Ce qu'on va faire, c'est aller au dossier et fermer le projet. Et maintenant celui-ci est en fait ici dans l'histoire, peut en fait juste X dehors de cela. Et maintenant, nous pouvons réellement importer l'ensemble du projet. Donc maintenant, nous allons aller à l'importation et nous allons une fois de plus cliquer sur le fichier construit ou Gradle. Mais maintenant, nous allons ouvrir comme projet. Ça va faire un tas de trucs ici, peut en fait juste cliquer sur l'arrière-plan et ensuite ça va commencer tout en arrière-plan. Ne vous inquiétez pas s'il y a des erreurs ici. On va tous arranger ça maintenant et l'un après l'autre. Droit ? Alors. Tout d'abord, allons en fait ici à Minecraft et ouvrez ce dossier, puis ouvrez la source, puis le Java et les ressources. Et comme vous pouvez le voir, certaines choses commencent à se produire ici. Comme je l'ai dit, cela peut prendre environ une minute en fonction de la vitesse de vos ordinateurs. Mais bien que cela fonctionne en arrière-plan, nous pouvons en fait changer quelques choses déjà. Et c'est dans les ressources et meta dans le dossier. Il y a un fichier HTML point de correspondance. Et ce fichier, nous pouvons changer quelques choses. Donc, d'abord, nous allons vraiment commenter certaines choses. Donc, le tracker de problème, vous pouvez voir que certains d'entre eux sont facultatifs et certains d'entre eux sont obligatoires. Et certains des optionnels que nous allons simplement commenter. Donc, dans notre d mod ID moderne, nous allons une fois de plus écrire cours Mc. Ensuite, nous avons le nom d'affichage. Ça va être Mc Horse. Et puis nous n'aurons pas d'URL JSON mise à jour. Nous n'aurons pas d'URL d'affichage et nous n'aurons pas de logo en ce moment. Le reste va juste être gardé comme il est. Nous allons encore enregistrer ceci avec Control S. Et puis ce fichier est également mis à jour. Vous pouvez fermer ça maintenant et juste attendre que ce soit fait. Droit ? Donc j'ai maintenant une coche et tout fonctionne bien. Il pourrait y avoir un point où quelque chose ne fonctionne pas est la meilleure chose serait me poser une question et je vous répondrai très bientôt. Cependant, la première chose que vous pouvez essayer est que vous pouvez aller au terminal et vous pouvez taper Gradle, Gradle w slash moins, arrêter. Essayez ceci 1 d'abord, puis reconstruisez-le. Vous pouvez le faire en allant dans le fichier Gradle. Et ici, il y a un petit éléphant avec un drapeau que ce signe de rechargement. Et si vous, si vous cliquez sur celui-là, alors il va se recharger. Et si cela ne fonctionne toujours pas après que vous l'avez fait, vous avez tapé celui-ci entrée et puis quelque chose va se passer. Et puis si cela ne fonctionne toujours pas, alors bien sûr, hésitez pas à poser une question, mais essayez cela d'abord parce que c'était un problème que j'avais définitivement lors de la première mise en place. Exact, qu'il y a une chance que vos paquets ressemblent ceci où ils ont tous les noms dans une rangée, disons, et ensuite les séparer par un point. Pour contrecarrer cela, vous pouvez aller ici pour projeter dans ce menu Afficher les options. Et puis les paquets aplatis doivent être désactivés. Et puis les paquets intermédiaires compacts devraient également être désactivés. Ensuite, une fois que vous créez les dossiers d'actifs qui vont créer juste après cela, cela juste en épissure en ce moment, alors ils devraient être affichés correctement. Il y avait quelques étudiants qui avaient ce problème, et je voulais juste épisser cela pour que vous ne couriez pas sur ce problème aussi. Droit ? Donc la seule chose qu'on va faire maintenant c'est qu'on va juste mettre en place quelques choses. Nous allons donc créer quelques dossiers et nous allons rapidement changer certaines choses ici. Donc la première chose que nous allons changer, c'est les modes d'exemple. On va ouvrir ça. Et bien sûr, ce n'est pas le nom que nous avons choisi. Donc, en fait, va remplacer cela par juste un clic droit, Refactor, Rename. Et nous allons renommer ça en, appelons-le EMS MC CourseSmart, parce que ce sera Ahmad. Ici va notre Mat ID. Donc ça va être Mc cours tous écrits ensemble. Maintenant, je conseille de simplement faire essentiellement copier, pas copier, mais de programmer avec moi. Et puis après avoir appris les bases de quoi, comment vous pouvez créer un bloc et comment il équipe créer un objet, etc. Cela utilise alors réellement créer votre propre mod. J' encourage que si tu ne veux pas faire ça, c'est bien aussi. Vous pouvez également suivre et créer votre propre modèle immédiatement. Alors on veut changer ce paquet. Donc nous voulons changer cela pour venir coton j2. Et puis celui-ci est bien sûr MC, non ? Ça va être, j'aimerais qu'on aille déplacer ça au paquet. Et puis ça va, il va créer un nouveau paquet ici pour nous. Et nous pouvons alors aussi simplement supprimer ce dossier exemple. Et tout est configuré ici comme il se doit. C' est génial, non ? Alors regardons la structure des dossiers en ce moment. Nous allons créer quelques photos. Maintenant, dans les conférences futures, nous allons en fait créer encore plus de dossiers. Mais en ce moment, les dossiers que nous allons créer pour des choses comme des blocs et des objets, et ce sont des textures, un peu de choses de langage. Donc, afficher le texte essentiellement. Donc la première chose qu'on va faire est d'aller dans le dossier Ressources. Je vais créer un nouveau répertoire et on appelle ça des actifs. Maintenant, dans ce répertoire d'actifs ou plus de répertoires vont en fait dans ce 1. d'abord, votre dossier va qui a le nom de votre Mat ID, n'est-ce pas ? Dans notre cas ici, mc cœurs et dans ce dossier, pour plus de dossiers vont. Le premier sera Bloch States. Et puis le prochain sera Lang l, N, G, et ensuite un autre, qu' on appellera Modals. Et puis le dernier ici sera des textures. Maintenant, à l'intérieur du dossier des modèles, nous allons aussi créer un dossier appelé Block. Et un autre dossier, nous allons créer un article froid. Dans les textures on va faire exactement la même chose, un dossier appelé Block et un dossier ancien élément. Et c'est essentiellement la configuration pour l'instant. ce moment, comme nous en avions besoin. Comme je l'ai dit, nous allons ajouter d'autres photos à l'avenir, mais c'est comme une structure de base dont nous allons avoir besoin, disons les prochaines conférences. Et oui, donc si tout est configuré et si tout fonctionne bien, ce qu'on peut faire, c'est aller à Gradle, et ensuite on peut aller à Tâches. Fg s'exécute, puis ce client d'exécution double-cliquez sur celui-ci. Et puis beaucoup de choses vont arriver. Et si tout fonctionne bien que Microsoft Minecraft va réellement commencer et nous pouvons bien, nous pourrions théorie des plaques. Donc ça commence sur le mauvais moniteur. Désolé. Mais ce n'est pas un problème. Et ça va ouais, c'est ça. Maintenant que vous y allez. Et voyons ce qui se passe. Bien sûr, est-ce qu'il est là. Les sons apaisants de la micro musique, que je vais immédiatement éteindre parce que d'habitude, surtout dans ces cours, peut-être pas la meilleure étude pour avoir une musique en arrière-plan. Et si nous allons des tomates ici, nous pouvons vraiment voir que notre MOD MC CourseSmart est ici. Ce n'est qu'un espace réservé qu'on pourrait placer qu'on pourrait remplacer plus tard. Mais oui, il a en fait Armand chargé et tout fonctionne. Et oui, je pense que c'est plutôt bon. Et c'est essentiellement toute la configuration dont nous allons avoir besoin en ce moment. C' est tout ce qu'il fallait faire pour ce moment. Et oui. 40. (Minecraft) Note sur l'utilisation de Minecraft 16.5: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, je veux juste mentionner rapidement que si vous utilisez un 605 dans probablement ci-dessus, cependant, 165 en ce moment est la question principale. Vous devrez changer votre canal de mappages. Ça devrait ressembler à ça. Donc mappings canal officiel, puis la version un 605. Et à l'intérieur de la fenêtre de construction ici, vous devriez également obtenir que cela est sous licence par Microsoft Corporation parce que ce sont les mappages officiels que Minecraft et morphogen utilisent. Et cela ne sera pas vraiment compatible avec le matériel de cours qui suit cela. Parce que certaines méthodes, en fait beaucoup de méthodes attributs et de variables sont complètement, ont un nom complètement différent. Et donc vous devrez changer cela exactement ici. Il peut ne pas s'agir de la version la plus récente des mappings. Lorsque vous voyez cette vidéo, cependant, vous pouvez vérifier ou aller dans les ressources, dans la description de la classe. Et là, vous devriez trouver sous assez haut 165 mappings. Vous pouvez ensuite simplement le copier, puis le coller dans. Assurez-vous que trop bas pour les changements Gradle ici. Et puis cela devrait prendre un peu de temps, construire tout. Cela pourrait vous prendre un peu plus de temps si vous le faites la première fois. Et puis une fois que vous obtenez la tique et que tout est réussi, assurez-vous que dans votre fichier MOD normal. Donc, quand nous faisons cela, ce devrait être le fichier MTT du cours MC. Je viens de mettre en place un nouveau dépôt 165. C' est pourquoi il s'agit d'un exemple de modèle. Dans ce cas, vous devrez avoir une erreur ici. Supprimez simplement cette ligne ou supprimez la méthode entière, peu importe. Cependant, l'erreur ici avec les options, vous pouvez juste laisser cette ligne et tout fonctionnera à partir de ce point et vous pouvez suivre la classe presque au t. Je crois que la plupart des autres mappages devraient alors fonctionner. Mais c'est très important. Si vous ne le faites pas, alors vous ne serez pas en mesure de suivre correctement la classe. Cela n'a vraiment pas d'importance parce que le canal de mappings est, je ne dirais pas nécessairement mieux, mais c'est simplement ce que nous allons utiliser pour cette classe. Donc juste pour que vous soyez au courant et juste pour que vous sachiez que c'est le cas. Oui. C' était tout en fait, et c'était tout pour cette conférence. Je t'implore vraiment de faire ça. Sinon, je vais simplement vous référer à cette leçon si vous ne l'avez pas changée. Alors oui, c'était ça. Bonne chance et amusez-vous sur le reste du parcours. Alors oui. 41. (Minecraft) Créez notre premier élément: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer un nouvel élément. Donc, d'abord, nous devons d'abord faire quelques choses. Et la première chose que nous allons faire est de créer une chaîne finale statique publique ici, que nous allons appeler mod ID. Et ce sera tout simplement notre devise d'identification. Et puis on peut le remplacer ici aussi. Donc, nous pouvons juste écrire la devise Mc Corps mod ID. Et parce que cet ID de nœud va en fait être utilisé dans beaucoup d' endroits différents à l'intérieur de notre modèle. Donc, ce qui doit arriver, c'est que nous voulons réellement créer un nouveau paquet. Et ça va être dans, à l'intérieur de notre forfait de cours MC. On va juste faire un nouveau paquet. Et on va appeler cet article. Et à l'intérieur de là, nous allons créer une nouvelle classe Java, et ça va faire froid. Naca est juste plus d'articles. Vous pouvez l'appeler comme vous voulez, mais il devrait avoir une certaine ressemblance avec plus d'articles, mes articles, des articles enregistrés, quelque chose comme ça, juste pour que vous sachiez, ok, c'est la classe où j'enregistre mes atomes. Et maintenant, nous allons écrire du code et je vais, tout d' abord expliquer que je vais le long, puis dans un peu plus de détails tout au long. Donc, il va, nous allons créer un objet de Registre final statique public de type élément. Et nous allons créer des lingots de cuivre. Donc, nous voulons ajouter peut-être couvert au jeu. C' est juste quelque chose que j'ai pensé en ce moment. Et si quelque chose est lu, nous pouvons juste l'importer. Ceci est important pour le faire point point point point point Microsoft point point point point. Et ça va avoir l'air un peu funky, mais ne vous inquiétez pas pour ça. Et nous avons besoin d'une autre chose avant de pouvoir le faire. Et ça va être une inscription. Donc on a sauté le requin ici. Et ce qu'on va faire, c'est qu'on va retourner en arrière et faire un autre paquet, qu'on appellera Util. Et là-dedans, et nous allons créer une nouvelle classe Java, que nous appellerons inscription. Bien sûr. Et cette inscription, nous devons d'abord enregistrer r ou nous devons placer un registre différé. Donc, nous allons utiliser des registres différés ici. Et cela s'est déjà produit avant. Nous pouvons réellement faire les objets, mais ne vous inquiétez pas à ce sujet. Nous le ferons, nous pouvons le faire. Donc nous allons avoir une finale statique publique. Et cela va être un registre différent de type bloc. Donc c'est pour les blocs bien sûr. Mais faisons-le dès maintenant déjà pour que nous l'ayons. Importez également le blog de la classe. Et puis faire un registre différé, point créer, porche registres blocs. Et puis nous avons besoin du CMR, ID du cours, de l'ego. Et ensuite, on peut faire la même chose. Nous pouvons simplement copier ceci et remplacer l'ensemble par des articles et des articles afin que nous puissions simplement le faire. Et là, ce sont des objets. Et puis nous avons simplement besoin d'un registre de vide statique public, fonction ou d'une méthode plutôt, qui va avoir un bus d'événements. Et ce que nous allons parler de ces 11 secondes. Ce sera un modèle Java FLM FML chargement contextes dot get, dot get, mod event bus. Et puis il va simplement le faire, les deux registres différés vont s'inscrire avec ce bus événementiel. Et dans ce cas, ce sera des objets. Et puis bam, et dans ce cas, tous les articles sont enregistrés. Et nous devons simplement appeler ça dans notre constructeur ici. Donc on va juste faire l'inscription, l' inscription, le DOT, l'inscription, leur ego. Et maintenant, nous pouvons réellement faire l'objet. C' est ouais, parce que maintenant on voulait appeler l'inscription, c'est ça ? Nous voulons donc appeler cela le premier registre que nous avons réellement créé. Nous voulons enregistrer un nouvel article, qui va être Cuivre Ingrid. Maintenant, c'est, c'est le nom de la, fondamentalement l'ID de l'élément pour ainsi dire. Et c'est toujours en minuscules. Et entre les mots, il y a des soulignements au lieu d'espaces ou quelque chose comme ça. Et puis ça va prendre un fournisseur. C' est donc simplement une méthode lambda qui va fournir un nouvel article. Donc on va créer un nouvel objet. Et pour créer un nouvel élément, nous devons en fait spécifier des propriétés. Dans ce cas, ce que nous allons juste faire est que nous allons seulement spécifier la propriété de l'élément, le groupe de propriétés, afin que nous puissions réellement le voir en mode créatif. Et cela va juste entrer dans, disons, un matériau pour le bien de maintenant. Et je veux vraiment que cela soit indenté un peu différemment. Ils y vont, ça a l'air un peu mieux. Et puis nous avons aussi besoin d'une fonction publique de registre de vide statique avec rien dedans juste pour l'appeler. Donc ça, pour que tout se passe bien. Alors faisons les objets Mott DOT s'inscrire. Et puis l'objet va être déjà dans le jeu. Juste comme ça. Regardons ça. Et puis nous découvrirons, bien sûr, qu'il y a un peu plus parce que, vous savez, vous avez peut-être remarqué que nous n'avons pas vraiment ajouté de texture, par exemple, ce qui va bien sûr être nécessaire. Sinon, ça va avoir l'air un peu bizarre. Et je peux te promettre que ça va avoir l'air un peu bizarre. Alors créons un nouveau monde. Nous allons faire un monde créatif et paisible et je suis juste nouveau monde, c'est bon. D'accord. Très bien, nous voilà à Minecraft. N' est-ce pas beau ? Et voyons voir. Donc ça devrait être une variété ou la croyance qu'ils vont aller article par Mc forcer cuivre, Ingrid, n'est-ce pas ces beaux cuivre et il ne l'est pas vraiment, n'est-ce pas ? Non. Non, pas vraiment. D'accord. Donc, nous allons devoir réparer quelques autres choses ou il est correctement dans le jeu, les renflements dans le jeu néanmoins. Donc, la première chose que nous devons faire est que nous voulons aller dans le dossier pulmonaire ici sous ressources ressources que notre devise AD MC cœurs, puis le dossier longueur. Et nous allons créer un nouveau fichier, que nous allons appeler Yan nous souligner et point JSON, JSON. Et ça va être formaté comme ça. Nous avons besoin de ces supports bouclés. Et puis à l' intérieur de, à l'intérieur des citations, nous allons faire des noyaux MC, Harper, lingot, puis un deux-points. Et puis la couverture. C' est essentiellement le nom que nous voulons afficher à l'intérieur du jeu. Et puis nous allons aller dans les modèles et dans l'article. Et ici, nous allons avoir, un fichier qui est nommé exactement comme le nom de l'élément que nous avons spécifié, n'est-ce pas ? Donc cuivre soulignent le lingot et le point JSON une fois de plus. Et ça va avoir quelque chose comme ça. Cela va être parent, une barre oblique d'élément générée. Et puis nous allons spécifier les textures. Donc, ne texturez pas un crochet bouclé, puis calque 0. Voir les pores. Tenez un élément barre oblique lingots de cuivre. Voilà, tu y vas. Donc, la principale à emporter ici est que le, ici nous spécifions les textures. C' est essentiellement la partie la plus importante. Et nous pouvons avoir essentiellement des éléments multicouches, multi-couches. On ne va pas s'inquiéter pour ça maintenant. C' est cependant la façon importante de l'écrire. Et en fait, la seule chose dont nous avons besoin est une texture. Et maintenant, j'ai préparé une texture sur mon autre écran. Je vais mettre ça dans l'article et je vais dire, oui, c'est la texture que j'ai préparée. Et en théorie, notez aussi que le nom de la texture ici. Tout d'abord, il doit s'agir d'un fichier PNG. Dans mon cas, j'ai un 16 par 16. Il ne devrait pas être plus grand que 32 sur 32. Mais, tu sais, il pourrait y avoir des moyens de contourner ça. Mais dans ce cas, je conseille de toujours faire 16 fois 16 textures parce que ce sont aussi les sites des textures des micro textures normales. Et le nom du fichier sera exactement le même que celui que nous avons spécifié dans nos éléments de mod ici, non ? Donc, c'est toujours le, fondamentalement l'ID de l'élément. C' est partout où nous allons, en gros, ce sera la même chose. Et en théorie, si tout a fonctionné, espérons que ça l'a fait. Ensuite, nous allons voir, et j'espère que ça va déjà marcher. Mais je suis assez certain que tout ira bien. Maintenant. Pas vraiment mon, mon idée ici est que je ne vais pas couper si j'ai peut-être fait une erreur et qu'on va juste couper et te montrer où je l'ai fait parce que je pense que parfois, tu sais, tu fais une erreur, Je fais une erreur quelque part et c'est mieux pour toi de voir qu'il y a eu une erreur. Et puis vous pourrez apprendre de ça. Mais en fait, nous n'avons même pas besoin de le faire parce que ici ce sont nos lingots de cuivre. Dans notre jeu. Ça s'appelle le cuivre en colère et ça a l'air assez bon. J' aime ça. Ça a l'air sympa. Oui, c'était tout ce que nous avions à faire pour créer un objet dans Minecraft. Si vous avez des questions, hésitez pas à les poser. Et mais c'était fondamentalement tout. Alors oui. 42. (Minecraft) Créer notre premier bloc: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre nouveau bloc, non ? Nous allons créer notre propre bloc. Et ça va être un peu plus compliqué que l'article, mais pas beaucoup. Donc la première chose que nous allons faire à la place du paquet r mod ID. Donc, notre forfait de cours de MC ici, nous allons créer un nouveau paquet. Et ça va s'appeler bloc. Et à l'intérieur de ce paquet, nous allons créer une nouvelle classe Java, et ce sera plus de blocs. Ici. On va s'amuser un peu. Donc peut-être qu'on veut un bloc de cuivre qui va avec nos lingots de cuivre qui pourrait être utile. Maintenant, nous devons d'abord avoir une sorte de méthode d'aide. Et je vais écrire ça et m'expliquer que ça va paraître un peu fou au début, mais ne t'en fais pas. Donc, c'est un T étend blog et nous avons réellement besoin d'importer cela. Oh, désolé, attendez, on va verrouiller. Et puis cela va retourner un objet de registre de type T registre. Et il va avoir des péramètres, de la chaîne, du nom et de l'approvisionnement rapidement. Modèle il y a un peu, fournisseur T, et le nom du bloc, non ? Ok, on y va. Nous devons également importer la classe fournisseur ici à partir de Java Util. Et on y va. Et puis à l'intérieur de cela, nous allons créer un nouvel objet de registre de type T. C'est celui que nous allons retourner. Donc je vais appeler ça pour revenir. Et maintenant, nous allons en fait aller pour les blocs de points d'enregistrement, registre, le nom et le bloc. Et la raison pour laquelle nous le faisons dans cette fonction est en fait parce que nous avons également besoin d'enregistrer un élément pour cela pour chaque bloc. Donc on va faire des points d'enregistrement pas s'enregistrer. Et ça va être le même nom. Et puis nous, au lieu de créer une âme, retournant un nouvel élément ici, nous allons réellement créer un nouvel élément de bloc. Et cela va juste être retourné pour retourner point get. Et puis nous avons besoin d'un nouvel élément, les propriétés des points. Ceux-ci sont les mêmes qu'avec l'article. Donc, dans ce cas, nous ne ferons que le groupe en ce moment afin de le classer en un groupe dans les onglets créatifs. Donc ça va être des blocs de construction. C' est un bloc, donc ça a du sens. Et puis nous allons revenir, pour revenir. Et c'est notre fonction d'aide. Donc, fondamentalement, prend dans un type. Donc, il a fondamentalement un type de bloc que nous devons fournir ici. Et puis il retourne un bloc. On va juste, on va juste l'utiliser plus simple que de l'imbécile ici. Donc, nous allons faire un objet de registre. Donc, une fois de plus, j'ai l'objet de registre, la somme du bloc de type. Il va y avoir un bloc de cuivre. Et maintenant, nous allons juste appeler le registre parce que cela retournera un objet de registre pour nous. Et ça va être un bloc de cuivre. Et puis nous devons aussi faire le fournisseur. Et ça va être. Un nouveau bloc dans ce cas. Et maintenant, nous avons en fait au lieu de propriétés de bloc avec epsilon bascule les propriétés, les propriétés dot créent. Maintenant, nous devons spécifier un matériau d'abord. Maintenant, pensant que c'est comme un bloc de cuivre, c'est probablement du fer à points matériels. Et puis derrière cela, nous pouvons réellement spécifier encore plus de propriétés. Ainsi, par exemple, nous pouvons faire de la dureté et de la résistance, ce qui va passer à la ligne suivante ici. Et ça va probablement être comme, faisons quelque chose comme 310. Et puis on va faire du son, ça va être un type de son. Oui. Très bien. D' accord. Et puis c'est fait. Maintenant, c'est aussi, en passant, quelque chose pour les articles aussi. Vous pouvez juste derrière le groupe, vous pouvez ajouter encore plus d'éléments, n'est-ce pas ? Il y a quelque chose que, par exemple, la rareté, les dégâts maximaux, la taille Mixtec, et toutes sortes d'autres choses que nous pouvons faire ici. Maintenant, si je ne me trompe pas, j'ai besoin d'un, un autre PABA, public , statique, vide, registre, une fonction vide. Et si je ne me trompe pas, ça devrait déjà suffire pour l'avoir ici. Donc plus de blocs qui s'enregistrent. Mais avant de regarder dans le, dans Minecraft, quoi il ressemble, nous allons réellement faire la texture correctement cette fois et passer par elle. Donc la première chose que nous allons faire est d'ouvrir le Yen US Jason à nouveau dans notre dossier. Je vais ajouter ça. Donc ça va être le loc dot AMC cours sur fil de cuivre. Désolé, fil de cuivre. De quoi je parle ? C' est un spoiler. C' est un gros spoiler. Fil de cuivre. C'est bien sûr un bloc de cuivre. Oui. Et c'est déjà ça. Nous allons aussi avoir besoin de fournir quelque chose dans les modèles. C' est un nouveau fichier et ce sera JSON de bloc de cuivre. Et je vais vite copier ça. C'est un peu plus facile. Et ce sera, donc au lieu que le parent soit élément, élément généré, ce parent, il est en fait bloqué tout cube. Et puis la technologie dans les textures que nous avons en fait c'est une sorte de couche 0. Nous avons tous. C' est essentiellement pour spécifier que tous les côtés ont la même texture. Nous pouvons bien sûr utiliser des textures différentes pour différents côtés, mais c'est quelque chose pour une autre conférence. Et puis nous avons aussi besoin des états Bloch. Donc ça va être un point de trémie Jason. Et je vais aussi l'obtenir rapidement ici. Et cela fait simplement référence au fichier modèle que nous venons de créer. Cependant, nous avons réellement besoin de créer un fichier nother dans les modèles et c'est sous les éléments. Et ça va être aussi le bloc de cuivre. Jason. C' est pourquoi j'ai dit que c'était un peu plus compliqué que la normale parce qu'il y a quelques étapes supplémentaires pour créer un bloc. Donc MC, pire bloc slash bloc de cuivre. Et ça devrait être ça. Je le crois. Maintenant, nous avons juste besoin de renvoyer le ou je dois le mettre rapidement ici. On va faire ça. C' est ma texture pour le bloc de cuivre. Et en théorie maintenant tout devrait bien fonctionner. C' est, eh bien, d'accord, allons juste faire tourner le micro-ondes et voir si ça marche. Nous avons donc les états Bloch, nous avons les modèles, les modèles noirs, l'article et la texture. Et nous avons aussi mis le lang. Donc, tout dans tout ce qui devrait fonctionner déjà je crois. Voyons si j'ai raison ou pas. Droit. Asco solo Nouveau Monde. Allons là-bas et voyons ce qu'on peut voir. Donc une couverture ou est bien sûr toujours là. Et puis dans les blocs de construction ici, il est là, le bloc de cuivre. Vous pouvez le placer. Et nous pouvons aussi le jeter si vous voulez. Ouais, c'est génial. C' est incroyable. Donc c'est en fait tellement, comme je l'ai dit, c'est un peu plus compliqué que l'article, mais ce n'est pas encore compliqué fou. Et pourtant, c'est essentiellement comme ça que nous ajoutons un barrage routier dans Minecraft. Et après cela, il y a une petite mission où vous ajoutez réellement un autre élément et un autre bloc à Minecraft. Vous pouvez soit faire le vôtre, soit vous pouvez simplement faire celui que je vous donne. Je vous fournit deux textures. Et vous devriez en fait ajouter du fil de cuivre et un cuivre ou au jeu aussi bien. Et je, donc je, je conseille de faire l'assignation comme aveugle, copiant tout ce que nous avons fait jusqu'à ce point et ensuite le faire sans regarder la vidéo. Cependant, bien sûr, c'est gratuit pour vous. Je te conseille juste de le faire. Et puis la prochaine conférence, je vais en fait avoir tout cela déjà à l'intérieur du jeu. Donc, le fil de cuivre et le cuivre ou vont déjà être là dedans. Donc si vous ne faites pas ça, vous pourriez être derrière. J' aborderai rapidement cette question lors de la prochaine conférence. Cependant, juste pour que vous soyez là où les devoirs sont toujours repris dans la conférence par la suite. Donc, et les devoirs vont toujours faire partie des prochaines conférences qui viennent après cela. Ouais, c'était essentiellement tout ce que je voulais dire. Encore une fois, s'il y a des questions ou si vous avez des flèches de quelque nature que ce soit, hésitez pas à me le demander et j'essaierai de vous aider dès que possible. Et oui. 43. (Minecraft) : Approfondissement dans nos cours: Ou je juste comme une note rapide que cette conférence est juste d'aller un peu plus en profondeur dans les cours que nous avons déjà créés. Ainsi, les modes, les éléments, les blocs de mod et l'enregistrement et la classe principale. Et c'est une conférence très théorique. Donc si ça ne vous intéresse pas, vous pouvez l'ignorer. n'y a rien de trop fou ou important qui soit ici. C' est peut-être juste pour solidifier un peu de vos connaissances et c'est fondamentalement tout. Donc, vous pouvez l'ignorer si vous le voulez. Bon, bienvenue aux minerais de Minecraft et je suis là du futur. Eh bien, fondamentalement, j'ai eu une question posée par un étudiant qui disait, hé, pouvez-vous peut-être aller un peu plus en profondeur à la fois dans la classe principale et aussi les éléments de mod d'inscription. Qu' est-ce qu'on fait là ? Je tape ça souvent. Je ne comprends pas vraiment ce que je fais ici et c'est essentiellement la conférence pour cela. Et donc tout d'abord, nous allons passer par la classe MC CourseSmart et regarder presque chacune des lignes ici. Donc, le premier est cette annotation, bien sûr est le mode add, puis l'ID mod. C' est très simple. Donc, que l'orange comprend fondamentalement, OK, c'est la classe principale pour ce mode avec l'étude que nous avons, alors bien sûr, vous êtes réellement initialisé comme une chaîne, simplement mc cours. Ou peut-être que vous avez choisi un autre nom. Mais c'est la même idée. Et aussi très important, c'est aussi écrit ici. La valeur ici doit correspondre à une entrée dans la méta en tamoul. On a fait ça. Je crois à la première conférence ici quand on a commencé avec le Minecraft et la sélection de fortune, non ? Alors nous avons une référence ici au journal pour j logger. Maintenant, en fait très facilement expliqué. Donc, log for J est simplement une, une bibliothèque externe qui forge utilise pour enregistrer certaines des choses qui se passent bien, que ce soit dans le jeu ou lors de l'initialisation et ainsi de suite. Et le journal pour j est juste une excellente bibliothèque pour le faire. Qu' il n'a vraiment aucune incidence sur quoi que ce soit qui se passe dans le jeu ou quoi que ce soit vraiment. Donc, c'est juste à des fins de débogage et pour sortir des choses sur la console, disons, oui, juste à côté, nous avons le constructeur. Donc, c'est simplement un constructeur normal, comme dans toute autre classe Java. C' est juste pour notre classe de modèles. Bien sûr, ici, nous avons nos trois méthodes de registre que nous appelons réellement pour l'enregistrement, les éléments MOD et les blocs MOD. C' est bien sûr explicite dans la façon dont nous l'avons fait. Maintenant, nous allons passer par trois de ces cours aussi. Mais regardons tout d'abord à travers toute la multi-classe mc. Alors venez ensuite ces quatre appels de méthode intéressants qui sont un peu bizarres et pourraient être comme, ok, intéressant. Donc, ça ressemble à une configuration folle, disons. Donc, tout d'abord, nous faisons ce FML Java contextes de chargement qui obtiennent dot-dot-dot mod, mod event bus annonce écouteur. Et puis on l'a mis dans ce truc bizarre où on écrit ça et ensuite. Deux, vous savez, deux points et un nom de méthode ici, non ? Tout ça semble un peu bizarre. Mais pour l'expliquer dans les termes les plus simples, fondamentalement, ce que fait Forge est Forge a différentes étapes pour mettre en place certaines choses, non ? Donc, dans la configuration par exemple, généralement ce que vous feriez ici serait quelque chose comme un mettre dans les configurations et peut-être mettre en somme. Quoi d'autre déclarant capacités. Donc, il y a différentes choses que vous faites à différentes étapes, ce qui est logique bien sûr. Et ce que nous faisons avec ce trou ici est simplement dire, ok, hey, cette méthode devrait être appelée quand il est temps de l'installation, et cette méthode devrait être appelée quand il est temps de mettre en file d'attente IMC est et de traiter IMC. Et puis à la fin, ça devrait être vieux quand il est temps pour les choses à faire déclinées. Et c'est essentiellement ce que veut dire tout ça ici, non ? Donc obtenir les contextes de chargement, obtenir Mode, Event, Bus, ajouter des écouteurs est simplement un moyen de s'assurer que certaines choses se produisent à certains moments. Parce que si nous avons plusieurs modes et qu'ils s'initialisent quand ils le veulent, vous savez, certains initialisent les recettes au début, autres initialisent les recettes à la fin. C' est de la folie. Que ça ne marche pas vraiment. C' est pourquoi le fourrage rationalise cela en utilisant ces auditeurs. Et ils sont, la seule vraie chose qui nous intéresse est la première et la dernière. Ceux au milieu étaient en fait comme tout. Nous ne parlerons jamais de tout le cours parce que ce sont des communications inter-mod. Ce qui signifie que c'est, ce sont des méthodes pour communiquer avec d'autres mods. Et parce qu'on ne construit qu'un seul mod ici dans ce cours, on ne va pas y aller du tout. Donc, il est en fait possible de supprimer cela. Et je suis en fait comme supprimer cette fin les deux méthodes dans une conférence ultérieure dans la section avancée. Juste à noter, cela restera là pour la longueur de la, disons le, Je pense que c'est les débuts du modding Minecraft. Mais vous pourriez déjà supprimer si vous le souhaitez. Mais tu n'as pas à le faire. Bien sûr, vous pouvez juste le laisser rester comme il est et rien ne changerait. Maintenant, la configuration et les trucs du client sont en fait des choses que nous allons utiliser. Maintenant, plus tard dans la section avancée, nous allons en fait examiner une autre façon de faire les choses du client. Mais dans le but de ça, nous allons le garder comme ça. Et pourtant, c'est fondamentalement ce que ces constructions signifient ici. suite, comme le commentaire le dit déjà, écrivez nous inscrire pour le serveur et d'autres événements de jeu qui nous intéressent. Cela signifie simplement que nous avons effectivement accès à ce que nous avons ici, événements d'abonnement V, que nous allons voir plus tard dans la ligne. Et c'est simplement de nous enregistrer une fois de plus en termes d'événements qui se produisent. Alors bien sûr, nous avons les deux méthodes qui sont appelées pour ajouter des écouteurs. Ensuite, nous avons une action comme événement d'abonnement M où nous avons sur les serveurs de démarrage. Donc, cela se produit seulement lorsque le service démarre. Et puis ici, nous avons en fait des événements de registre. Maintenant, c'est une méthode que nous avons effectivement supprimé ou va supprimer dans une prochaine vidéo. Maintenant, je ne suis pas sûr à 100% en fait, mais ça devrait juste être parti. Idem avec le stockage du serveur dans ce cas. Parce qu'une fois de plus, dans les conférences futures , en particulier dans la conférence avancée, nous allons réellement passer à travers et nettoyer et refactoriser un peu du code. Et là, nous allons également découvrir une nouvelle façon ou une autre de faire la séparation côté client et serveur. Mais c'est une sorte d'aperçu de base de la classe principale MC CourseSmart. Et oui, regardons ensuite la classe d'inscription, n'est-ce pas ? Donc, à l'intérieur de notre classe d'enregistrement, nous avons les deux registres différents de type bloc et de type élément. Et puis nous avons cette méthode de registre où nous avons effectivement enregistré cela aussi. Donc, nous allons juste y penser tout d'abord, ici pour que le registre différé. Donc, une chose que vous pouvez faire, si jamais vous vous sentez coincé, vous pouvez également simplement maintenir la touche Contrôle et passer le curseur sur n'importe quelle classe ou méthode, puis cliquez dessus. Et vous serez en fait immédiatement pendant que la classe s'ouvrira immédiatement. Et comme vous pouvez le voir, il y a des choses ici qui pourraient aider. Donc, les communes sont en fait là dedans. Et donc on peut voir, OK, qu'est-ce que c'est ? Donc, le registre différent est une classe d'utilitaire pour aider à gérer le registre. Tenue une liste de tous les fournisseurs pour les entrées et les enregistre lors de l'événement de registre approprié. Donc, comme vous pouvez le voir, nous avons presque déjà la réponse de ce que cela écrit. Il a simplement une liste de tous les fournisseurs. Et c'est quelque chose que nous allons voir dans les éléments de mod, juste cette année où nous avons enregistré quelque chose. C' est là que nous avions un fournisseur pour un nouvel article et un nouveau bloc, par exemple. Et c'est exactement ce que le troisième registre garde une trace. Et puis s'assure simplement que le jeu connaît, hey, ce sont les blocs que j'ai, ce sont les éléments que j'ai. Et c'est là que les registres différés entrent en jeu. Donc, fondamentalement, ils sont donc en train de s'assurer que le jeu connaît ces choses. Et ce que je peux vous montrer rapidement, par exemple, c'est si nous avons un nouveau registre différé ici, et nous allons juste rapidement tout cela, peu importe. Et nous allons examiner différents registres qui créent. Ce que nous pouvons voir ici, c'est les registres de port point. Et ce sont tous les types de registres que nous pouvons réellement regarder. Donc, nous pouvons faire de nouvelles potions, nous pouvons faire de nouveaux fluides, des entités, nous pouvons créer de nouvelles entités de tuiles. Et certains d'entre eux, bien sûr, sont aussi des choses que nous allons ajouter plus tard dans les conférences ultérieures. C' est essentiellement l'idée derrière les différents registres est simplement une liste ou disons un enregistrement de toutes les choses que nous voulons que le jeu sache. Et dans ce cas, nous les définissons par le type que nous voulons savoir, que nous voulons enregistrer, n'est-ce pas ? Donc, d'abord, nous disons un, c'est un registre pour les blocs. Donc disons une liste de blocs. Ce n'est pas tout à fait une liste, mais réfléchissons comme ça. Nous avons donc tous les blocs que nous voulons définir, puis nous avons tous les éléments que nous voulons définir. Dans le futur. Nous allons ajouter way, way, way, plus de types que nous voulons définir. Et puis à chaque fois que nous allons créer un nouveau registre différé. Et maintenant cette méthode de registre ici, comme vous pouvez le voir, il y a quelque chose. Etrilement semblable à celui-là. Et c'est exactement ce que nous avions ici, non ? Donc on a déjà ça, on l'a déjà vu avant, non ? Il s'agit simplement des contextes de chargement Java FML dot get, dot-dot-dot bus d'événement, dot-dot-dot écouteur. Et au lieu de faire l'apprenant de l'atlas, ce que nous allons faire en fait, c'est de le faire, de le retourner. Donc on va prendre ce bus événementiel et dire que les blocs s'enregistrent et ensuite donner le bus de l'événement. Maintenant, cela fait exactement la même chose que l'inverse. On va le faire de cette façon. Parce que, bien signifie simplement que c'est la façon dont c'est censé être fait. Et puis, pendant que ces registres différés, quand nous allons dans les boues et dire, hey, c'est le troisième registre, c'est là que nous avons la liste dans le registre différé sait maintenant à ce sujet. Mais alors forge a aussi besoin de connaître ces différents registres. Et c'est pourquoi nous enregistrons ceux avec le bus d'événement dans la méthode de registre ici à l'intérieur de la classe d'enregistrement. Maintenant, en allant de l'avant dans les éléments de mod, nous y avons déjà pensé un peu, non ? Donc, le registre des points d'enregistrement appelle simplement le registre une fois de plus. Et dans ce cas, nous disons simplement huit. Donc, nous voulons enregistrer cela à l'intérieur des articles différents registre. Et nous avons bien sûr besoin de prendre fourni le fournisseur. Et c'est ce qui se passe alors, est également besoin de créer un nouvel élément pour cela. Et cela s'assure essentiellement qu'il est, est connu par le jeu, mais peut également être donné un nouvel élément propriétés ici. Et bien sûr, dans ce cas, nous lui donnons seulement un groupe d'articles ajouterait bien sûr encore plus. Droit ? Et alors pourquoi utilisons-nous le type d'objet de registre ici ? Eh bien, je suis dans le bateau brusquement. C' est fondamentalement simplement le type de retour de la méthode de registre ici à partir de l'écriture différée du registre. Et nous pouvons également voir là-bas, il ajoute un fournisseur à la liste des entrées à enregistrer, retourne un objet de registre qui sera rempli avec l'entrée créée automatiquement. Donc, fondamentalement fait tout le travail pour nous automatiquement afin que nous puissions utiliser ce lingots de cuivre sont des exemples de son objet de registre. Donc nous pouvons vraiment l'utiliser. Eh bien, n'importe dans le modèle où nous le voulons, nous devons l'utiliser, n'est-ce pas ? Nous avons donc une référence, une référence statique à cet élément déjà en place. Eh bien, nous n'avons pas référencé à l'objet de registre, mais il est aussi bon que l'élément parce que nous pouvons simplement obtenir l'élément en utilisant .gov, par exemple. Et c'est en quelque sorte la raison pour laquelle nous utilisons l'objet de registre ici. Le Y que nous avons cette méthode de registre est simplement lié à la façon dont lorsque vous avez statique, lorsque vous avez des membres statiques sur une classe et que vous n'avez pas encore appelé de méthode dessus. Ensuite, il y a un peu bizarre avec le, avec le chargement, avec le chargement dans l'ordre différent. Donc c'est, tu sais, c'est vraiment nécessaire. Et quand il s'agit des blocs MOD, Eh bien, c'est, je veux dire, presque exactement la même chose, mais nous avons encore un objet Registry, juste cette fois avec des blocs, non ? Et ici, nous avons fait une autre méthode. Maintenant, cela pourrait aussi être un peu déroutant au début, mais je crois que je l'ai expliqué dans les blocs. Et les blocs un, peut-être pas assez bien. Donc, l'idée ici est simplement qu'au lieu d'appeler la méthode Blocks dot Register directement, nous allons en fait mettre tout cela dans une méthode privée. Parce que nous aussi, en plus du bloc, nous voulons aussi enregistrer l'élément qui appartient à ce bloc, non ? Ce qui est un élément de bloc. Bien sûr. Maintenant, pour ce faire, nous disons simplement, hey, faisons juste cela dans cette méthode de registre parce que c'est beaucoup plus facile que d'écrire ceci d'abord et puis d'écrire la seconde chaque fois que vous faites un bloc, nous pouvons juste dire, eh bien, refactorisons simplement cela en une méthode. Et c'est pourquoi cette méthode est en année. Et ça a l'air un peu différent par rapport à la classe MOD Items, non ? Ce genre de finit tout ça. J' espère que cela vous a été utile. Je comprends qu'il y a des concepts qui étaient bien sûr un peu plus avancés peuvent être jetés ici. Et donc c'est une sorte de vidéo d'explication supplémentaire. J' espère qu'il est clair au moins quelques choses. Et à l'avenir, j'espère que d'autres conférences seront plus éclairantes, disons de toute façon, s'il y a des questions à ce sujet, donc concernant toute autre chose, bien sûr, c'était un peu plus théorique, disons dans la nature. Et nous venons de passer un peu par les cours. Mais oui. Donc s'il n'y a pas de questions, bien sûr, hésitez pas à poser et je serai plus court S1. Et oui. 44. (Minecraft) Notre propre onglet créatif créatif personnalisé: Bon, continuons avec le parcours Minecraft. Et comme mentionné dans la dernière conférence, j'ai déjà ajouté le cuivre ou, et les fils de cuivre dans le jeu. Et assurez-vous de, si vous ne l'avez pas fait, assurez-vous de regarder la dernière conférence. Vous pouvez également trouver un fichier texte dans cette conférence avec toutes les choses que vous deviez ajouter et les classes dans lesquelles elles doivent être ajoutées. Et oui, assurez-vous de suivre ça et ça dans le jeu car ça va être important maintenant. Mais cependant, dans cette conférence, nous allons réellement créer notre propre onglet. Donc, notre propre onglet dans le menu, dans le menu créatif. Et ce n'est en fait pas si dur. Donc ce qu'on va faire, c'est créer un groupe d'éléments finaux statiques publics, que nous allons appeler, disons bien sûr onglet. Faisons cet onglet de cours. Et cela va simplement être un nouveau groupe d'élément. Et puis ça va générer automatiquement tout un tas de choses ici. A l'intérieur de ces parenthèses, nous allons avoir le nom. Donc ça va être pire, disons. Et puis ici, il fait une fois une, une icône. C' est donc une pile d'éléments que nous retournons et nous allons simplement retourner une nouvelle pile d'éléments. Et nous allons faire les éléments de mod qui font le point de fil de cuivre obtenir. Donc, en fait, nous allons juste rendre notre fil de cuivre. Et ici, nous avons aussi besoin d'un point-virgule à la fin. Et puis nous avons déjà créé, maintenant pour l'utiliser, nous devons entrer dans nos blocs de devise et objets Ahmad et changer le groupe ici pour notre nouveau groupe que nous avons créé. Donc MC CourseSmart point onglet Cours. Et puis ici aussi, MC dot-dot-dot onglet Cours. On va juste copier ça et le mettre ici aussi. Donc maintenant les deux sont lingot et notre fil et aussi notre bloc et notre ou, ou tout nous aussi toujours et chaque élément que nous créons par la suite va toujours être à l'intérieur de notre propre onglet. Et nous pouvons bien sûr créer encore plus d'onglets. Mais dans notre cas, je pense qu'un onglet suffira aux fins de ce cours. Nous ne créerons pas 1000 objets. Et on va le garder, tu sais, peut-être en trois chiffres. Non, je plaisante. Bien sûr. Nous ne créerons pas autant d'éléments ou de blocs. Oui, voyons si ça a vraiment fonctionné et comment ça va regarder à l'intérieur de notre jeu. Tout d'abord, notre bloc et notre Ingrid sont toujours là. Et puis nous pouvons voir que nous avons une deuxième page ici. Et ici, on peut voir que ça marche. Maintenant. Il y a en fait un point de regroupement d'articles onglet Cours n'est pas encore localisé, mais nos articles et nos blocs sont tous là. Donc c'est génial. Mais en fait, nous avons encore besoin de localiser ça. Et cela se passe bien sûr dans l'EN nous, Jason. Et ce n'est pas si difficile. Nous allons juste faire l'article Point Point Onglet Cours. Et ça va être l'onglet Cours, et c'est tout. Et puis cela est localisé et c'est essentiellement tout ce que nous devons faire pour que lorsque vous passez le curseur sur elle, vous obtenez en fait un texte différent affiché. Ouais, et c'est tout. C' est en fait à quel point il est facile de créer un nouvel onglet de cours et un nouveau groupe d'éléments. Alors, oui. 45. (Minecraft) Créer une nouvelle recette: Bon, continuons avec le parcours Minecraft. Et dans cette conférence, nous allons réellement créer de nouvelles recettes, non ? Nous allons donc créer nos propres recettes. Et ils peuvent être ce que nous voulons, ce que vous pouvez imaginer. Mais tout d'abord, nous devons créer quelques nouveaux dossiers. Et le premier dossier est à l'intérieur du dossier des ressources, nous devons ajouter un répertoire, ce qui va me donner des données appelées. Et puis ceci, dans ce répertoire, nous créons à nouveau le répertoire des cours MC. Donc, c'est fondamentalement le nom de votre identifiant de mod. Donc, l'aide. Et à l'intérieur de cela, nous avons une recette, des recettes, donc dossier pluriel. Et à l'intérieur de cela va E, va les recettes. Donc, par exemple, disons que nous voulons créer une recette pour le bloc de cuivre, non ? Cuivre blog.js Jason. Et fondamentalement comment c'est la façon, de cette façon, cela est structuré, est fondamentalement avec le type de recette. Donc, dans ce cas, ce sera une recette en forme, donc l'artisanat en forme. Et puis nous devons spécifier un motif. Maintenant, ce modèle ressemble à ceci. Non, c'est en fait ces parenthèses. Et puis ce modèle est fondamentalement trois cordes. Et vous voulez généralement les écrire comme ça, car alors il devient plus facile à imaginer. Et puis nous aurons un modèle. Alors disons XXX, XXX, XXX. Et c'est en gros ta table de bricolage, non ? C' est donc la première rangée, la deuxième rangée, la troisième rangée. Et si nous laissons alors, par exemple, celui-ci vide, cela signifierait alors que la partie médiane du, de l'artisanat, la table est en fait vide. À ce moment-là. On va faire XXX tout autour. Et maintenant, nous devons en fait spécifier ce que c'est. Donc, nous avons réellement besoin de spécifier une clé, encore une fois ici avec des crochets bouclés. Et puis nous voulons spécifier, ok, qu'est-ce que X, o, qu'est-ce que X ? Et x est un article. Et dans notre cas, c'est bien sûr mc. Pire. Lingot de trémie, non ? Parce que c'est logique d'avoir neuf lingots de cuivre pour faire un bloc de cuivre. Mais où spécifions-nous le bloc de cuivre ? Nous allons, nous allons spécifier cela dans le résultat ici. Et ça va être un autre article. Et ça va être Mc, pire. Donc, c'est notre ID MOD à nouveau, puis le nom de cet article. Et ça l'a déjà. Quand il s'agit de créer une recette en forme. On va jeter un coup d'oeil à ça. Nous allons en fait jeter un oeil à la recette sans forme ainsi. Donc nous allons créer un nouveau fichier et ce sera le point de lingot de cuivre JSON. Donc fondamentalement le, exactement l'inverse. Donc ici, nous tapons réellement, une fois de plus un type et qui va être Minecraft rafting, sans forme cette fois. Et puis nous pouvons spécifier le groupe, mais nous n'avons pas besoin de le faire, donc nous allons juste garder ça vide maintenant. Et puis il a effectivement tiré dans les ingrédients. Et ici, nous avons une telle chose. Et maintenant je ne sais pas, Nueve l'a formaté si bizarrement, mais OK. Et puis ils vont avoir des objets dedans. Donc article et puis MC, cours, bloc de cuivre. Une autre raison pour laquelle nous voulons que ce soit sans forme est fondamentalement parce que nous voulons qu'il puisse le mettre n'importe où dans la table d'artisanat. Dans un quatre par quatre, dans un trois par trois, quelle que soit la table d'artisanat que nous avons et que nous l'avons encore, renvoyez ça. Et cela va être le résultat de l' article MC cours Cuivre dedans, n'est-ce pas ? Et puis nous pouvons réellement spécifier combien. Donc on peut spécifier le compte neuf dans ce cas, n'est-ce pas ? Parce qu'il nous faut un neuf pour fabriquer un bloc de deux. Et ensuite, on peut en utiliser neuf. Et puis on utilise un bloc de cuivre pour récupérer le neuf. Donc, vous pouvez, en passant, chaque fois que vous faites un résultat, vous pouvez le faire comme ça aussi. Donc, en théorie, tu pourrais dire compter dix et tu en obtiendrais dix blocs de cuivre. Bien sûr, ça n'a pas beaucoup de sens. Donc, cela devrait vraiment fonctionner. Maintenant, totalement bien. Essayons. allons courir et nous allons nous voir au micro-ondes une fois qu'il aura chargé. Alors oui. D' accord. Maintenant, nous sommes à Minecraft et j'ai déjà mis une table de bricolage et nous allons voir si cela a fonctionné. Donc si nous remplissons ça, vous pouvez faire un bloc de cuivre. Et on peut aussi mettre le bloc de couverture et sortir les neuf lingots. Et c'est d'ailleurs, également ajouté ici. Donc, cela fonctionne très bien. Et celui sans forme signifie en fait que, comme je l'ai dit, nous pouvons le mettre partout où nous le voulons. Et nous pouvons aussi, si nous sommes dans non, désolé. De cette façon, si on est sur la survie et qu'on peut le mettre ici et aussi sortir les neuf pièces, pas de problème. Donc oui, c'est fondamentalement comme ça que vous pouvez créer de nouvelles recettes. Et encore une fois, après cela, il y a une tâche très courte qui ne devrait pas être si compliquée où vous devez réellement créer deux de vos propres recettes. Comme je l'ai dit, ça ne devrait pas être si fou ou si difficile. Et oui. 46. (Minecraft): Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons parler des tables de butin et de ce qui se passe quand les blocs sont détruits et qu'ils devraient laisser tomber des objets. Donc, dans nos mock blocks, nous avons deux blocs en ce moment, le bloc de cuivre et le bloc de cuivre ou de bloc. Et ce que nous voulons créer fondamentalement, c'est une sorte de système où quand nous cassons le bloc de cuivre, le cuivre ou le bloc, alors il laisse tomber l'élément en fait. Maintenant, comment nous faisons cela est avec des tables de butin, et ce n'est en fait pas si difficile. Nous allons créer un nouveau dossier ici sous les cœurs de données MC. Et ce dossier, ce répertoire va s'appeler tables de soulignement de butin. Et puis à l'intérieur de ce répertoire, nous allons créer un autre répertoire, et ça s'appellera blocs. Et à l'intérieur de là, nous allons créer un nouveau fichier, et ce sera un trait de soulignement en cuivre ou ainsi. Encore une fois, notre nom ici, Jason. Et je vais rapidement copier quelque chose qui ont déjà préparé et ensuite nous allons parler rapidement. Donc, la première chose que nous spécifions comme fondamentalement le type que nous voulons retourner. Et puis nous devons créer une sorte de ou plutôt le type qui est qui a été la table de butin pour ainsi dire. Donc on détruit un bloc, non ? Et puis nous rendons autre chose. Maintenant. Ensuite, nous devons spécifier un pool. Et cette piscine est fondamentalement, en un sens, nous roulons, dans ce cas une fois. Et puis vous pouvez, par exemple, un endroit certain trans à avoir quelque chose être abandonné. Et dans ce cas, on va juste rouler 1 et on va dire, quoi qu'il arrive, ça va toujours laisser tomber un type de cuivre ou d'article, non ? Donc, ici, nous spécifions, hey article. Donc, c'est un article, la guerre du cuivre. C' est fondamentalement la magie en ce moment sur les gouttes de bloc. On va juste regarder ça une seconde et je vais voir ce que ça apporte. Ça va commencer le microscope. Et nous voilà dans notre monde. Maintenant, passons en mode créatif et donnons-nous quelques blocs de cuivre couplés ou blocs. Et aussi obtenir un bon acte de cochon avec lequel nous pouvons miner cela. Alors posons juste ces serrures et ensuite reconvertis en mode survie, non, mode survie, ego. Et puis nous pouvons aveugler et mettre tous les 0 ou effectivement gouttes comparables ou blocs. Donc on peut juste s'en occuper. Et on y va. Maintenant, avec les blocs de cuivre eux-mêmes, ils ne laissent rien tomber parce qu'ils n'ont pas de table LU associée à eux. Et c'est aussi quelque chose qui doit être fait en tant que mission. C' est une très petite mission. Il est fondamentalement juste de changer une variable dans le fichier JSON et de l'ajouter. J' ajouterai cependant aussi. C' est très important. À chaque fois. Laisse-moi finir rapidement de tout ça. Chaque fois que nous ajoutons un nouvel élément dans les blocs MOD ou un nouveau bloc dans la classe blocs. Dans le futur. Je ne spécifierai pas comme je ne spécifierai pas spécifiquement comme ajouter une nouvelle table Lu. Je vais juste laisser cela faire essentiellement est entre les conférences. Parce que pour nos besoins, les tables LU pour les blocs ne sont pas si difficiles. Et il est fondamentalement juste copier le fichier, en changeant comme fondamentalement juste le nom. Et puis c'est tout. C' est pourquoi chaque fois que nous allons ajouter un autre bloc, je ne vais pas enregistrer pourquoi j'ajoute la table LU. Je vais peut-être dire rapidement que vous devez ajouter cette nouvelle table vous-même. Mais je le ferai. Lorsque vous téléchargez les modifications de sorte que lorsque vous pouvez regarder les changements pour chacune des conférences, vous pouvez effectivement voir que j'ai fourni les tables LU pour tous les blocs également. Cependant, je ne vais pas spécifiquement enregistré parce que je n'ai pas impression que cela va en tirer une quelconque valeur. Voyez moi copier et coller quelque chose, puis changer un nom. Ça ne semble pas être si important, non ? Ouais, c'est essentiellement tout ce qu'il y a à ajouter une table de toilettes en ce moment et à ajouter une goutte de bloc. Alors oui. 47. (Minecraft) Créer un nouveau élément (Minecraft): Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre propre aliment. Pour ce faire, nous allons créer une nouvelle classe à l'intérieur de notre paquet d'articles. Et cela va être une nouvelle classe Java refroidi cuivre Apple. C' est la meilleure chose que j'ai trouvée, si je suis absolument honnête avec ça. Et cela va étendre l'élément. Et puis nous allons créer un nouveau constructeur ici sans rien dedans. Et nous allons simplement rendre notre réellement nous allons faire super, c'est même, encore mieux. Et à l'intérieur d'ici, on va faire de nouvelles propriétés. Donc, c'est fondamentalement les mêmes propriétés d'article que nous avons fait à l'intérieur de nos éléments de mod ici. Mais nous allons juste le faire ici parce que nous voulons aussi préciser quelques autres choses. Parce que c'est, eh bien, cela sera considéré comme un aliment et donc, nous voulons vraiment le faire cette année. Donc on va tout d'abord faire quelque chose comme si on allait faire un groupe de points, pas de groupe. Et ce sera juste cours Mc, onglet Cours à nouveau. Et maintenant, nous voulons ajouter la propriété alimentaire ici. A l'intérieur, nous allons créer un nouveau constructeur de données alimentaires. Et il ya la construction alimentaire sont fondamentalement vous permet de grouper un tas de propriétés ainsi. C' est la même chose avec les propriétés, mais dans ce cas, nous voulons réellement créer des propriétés alimentaires. Donc, par exemple, peut-être faim cinq. Et puis nous allons juste formaté un peu différemment. Voilà, tu y vas. Et puis nous allons faire la saturation 1.5. Et puis on va faire un effet. Donc ça va être intéressant. L' effet est fondamentalement n'importe quel effet de potion que nous pouvons mettre dans n'importe quel effet de potion pour que nous avons besoin d'un fournisseur d'un, d'une instance d'effet. Donc nous allons juste faire une nouvelle instance d'effet. Au lieu d'ici, je pense que souffler pourrait être le meilleur. C' est la durée et c'est l'amplificateur. Donc on va juste en faire un. Nous allons zoomer un peu et être un peu petit probablement, mais j'espère toujours lisible. Et puis après l'instance d'effet, ici nous allons créer, nous allons écrire dans une probabilité flottante. Et puis après l'effet à bec de canard, je vais aussi mettre cette ligne suivante. Et puis si près, et c'est tout. On y va. Apple d'entreprise. C' est essentiellement tout ce qu'on avait à faire pour que ce soit un aliment. Maintenant, bien sûr, nous devons également enregistrer cela dans notre classe mod Items. Donc nous allons faire final, statique, final que l'enregistrement, l'objet de registre, vous connaissez l'élément de forage. Et ça va être la pomme de cuivre. Et cela va être des points d'enregistrement, DOT registre. Et maintenant on va faire le cuivre, le cuivre, le cuivre à Apple. Et puis c'est au lieu de retourner un nouvel article, nous allons réellement retourner une nouvelle entreprise Apple, et c'est tout. Donc, nous ne allons pas vraiment transmettre quoi que ce soit parce que nous avons déjà fait ça ici. Maintenant, bien sûr, ce que nous pourrions faire est que nous pourrions également donner au constructeur un périmètre de propriétés, puis le passer et le faire comme ça. Je dois être honnête, cela fonctionne très bien aussi. Vous pouvez cependant le changer si vous le souhaitez ou vous pouvez également expérimenter un peu. C' est aussi quelque chose que je dois mentionner est extrêmement important. J' expérimente juste quelques choses. Si vous pensez pourquoi, pourquoi est-ce fait comme ça ? Alors peut-être essayer une autre façon et peut-être que ça va marcher ou peut-être qu'il va lancer une flèche qui, espérons-le, vous dira pourquoi. Peut-être que l'approche à laquelle vous avez pensé ne fonctionnait pas, ne fonctionnait pas ou peut-être que vous deviez changer quelque chose. Il est très important d'expérimenter de temps en temps. D' accord ? Mais il y a bien sûr quelques autres choses que nous devons ajouter. Nous devons donc ajouter, bien sûr, notre belle texture. Nous allons donc ajouter de la texture, mais ici nous allons rapidement copier cela. Oui. Et puis nous allons également ajouter le JSON pour le modèle. Ça va être un nouveau dossier. Ce sera le point de pomme de cuivre JSON. Et puis je vais le copier rapidement parce que nous l'avons vu plusieurs fois maintenant. Ça ne devrait pas être une surprise. Et puis nous, et ensuite nous avons juste besoin d'ajouter ceci ici. Et on va le faire. Et puis j'ai celui-là là. Item.Name scores points cuivre. Apple va être copié. Pomme. Droit ? Maintenant. Nous pourrions aussi ajouter immédiatement la recette, mais nous n'en avons pas besoin pour l'instant. Commençons par Minecraft et voir ce que nous avons là-dedans. Et comme une autre note pour cette expérimentation, ou vraiment, je pense vraiment que c'est une chose importante à faire. Eh bien, Minecraft commence ici. Je vais juste le mentionner. Expérimentez un peu. Comme, je pense que c'est bien si tu suivais le cours une fois, quelle expérience. Et il y a quelques autres conférences où je vais en parler un peu plus en détail, surtout à la fin. Mais l'expérimentation, c'est comme ça que vous aimez vraiment, a vraiment appris les tenants et aboutissants absolus à la fin. Parce qu'il y a parfois des choses spéciales que tu veux faire qui ne sont pas couvertes ici. Et ils vont aller à la pomme d'entreprise. Et maintenant ce que nous pouvons faire, nous pouvons en fait, revenons à la survie, puis en mangeons un. On peut le manger. Et c'est probablement parce que nous n'avons pas de faim. Donc, en fait, sommes faciles. Sinon, vous ne vous construirez pas un peu, infligerez des dégâts et ensuite, et nous allons voir. Très bien, donc c'est, ça devrait, à un moment donné de notre faim. Va. On y va. D'accord. Et maintenant que pouvons-nous faire ? Si on l'a fait ? Maintenant, nous n'avons pas eu la chance de 50% maintenant, parce que ce n'est qu'une chance de 50% d'obtenir l'effet lumineux. C' est très, très important parce que c'est ce que nous avons spécifié. Je vais le montrer une fois de plus. Et on l'a vraiment eu. Et espérons que nous l'aurons. Voyons voir, on y va. Maintenant sont brillants. N' est-ce pas génial ? C' est gentil, non ? Donc, c'est essentiellement comme ça que vous ajoutez un aliment. Maintenant, je veux revenir rapidement en arrière parce que nous, c'était dans l'entreprise Apple et c'est juste ici. Écrivez la probabilité vers le bas. Donc, cette instance affecte. Et c'est, donc c'est en fait l'effet lui-même. Nous devons en fait spécifier une probabilité. Maintenant, c'est 50%, non ? 0,5 était juste 50 %. Si on en met un, il va tirer tout le temps. Maintenant, comme je l'ai dit, j'ai mis 50%. On pourrait, par exemple, imaginer que ça pourrait être quelqu'un qui est configurable, non ? Donc nous avons un fichier de configuration, dont nous allons aussi parler dans une conférence ultérieure. Et nous pourrions alors dire, eh bien, par défaut, ce serait 50%, mais peut-être que quelqu'un le veut. Hey, en fait, je voulais 100 % du temps. Je veux avoir l'effet lumineux quand vous le mangez. Donc ça va être une chose intéressante à considérer. Et c'est essentiellement comme ça que vous ajoutez un aliment. Ce n'est pas si différent de simplement ajouter un élément normal. Dans ce cas, il suffit d'ajouter cette propriété alimentaire à l'article. Et oui. 48. (Minecraft) Créer un nouveau ensemble d'outils: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer nos propres outils. Donc ça va être intéressant définitivement. Et aussi ça va être un peu fastidieux parce qu'on va faire une chose très similaire cinq fois. Cependant, je vais passer par la création d'une pelle, d'une épée, d'une pioche, d'une hache et d'une hache. Tout dans cette conférence. Et bien, je suppose qu'on va commencer. Donc, dans les éléments de boue, nous allons créer un objet de registre nother. Donc, une nouvelle statique publique, objet de registre final de type élément. Et le premier que nous allons essayer, c'est la pelle de cuivre dans ce cas. Donc, et cela va être l'enregistrement des points points points points, puis donnez-lui le nom pelle de soulignement de cuivre. Et ça va être un nouvel article de pelle dans ce cas. Maintenant, nous devons en fait lui fournir un niveau d'article ici. Et avant de pouvoir continuer avec cela, nous devons en fait ajouter un nouveau niveau d'élément pour notre mode parce que cela n'a aucun sens. Donc, ce que nous pourrions faire, je peux juste vous montrer pour que nous puissions faire le niveau de l'article. Et puis nous avons Woodstock une autre écriture, fer, or et diamant. Mais que peut-être, vous savez, nous voulons nos propres objets ici parce que, eh bien, je veux dire, pourquoi être lié aux autres choses que nous pouvons créer complètement à partir de zéro, notre propre truc. Nous allons donc le faire dans nos éléments de carte complètement en bas, en dessous de la fonction de registre. On va créer une énumération publique, et ça s'appellera l'article Mart ici. Et cela va implémenter la très belle interface des éléments ici. Et puis nous allons mettre en œuvre des méthodes. Maintenant, ce sont les méthodes que nous allons mettre en œuvre. Ce sont aussi les différentes choses que nous devons préciser. Donc c'est en gros la première chose nous allons faire dans ce cours, c'est qu'on va avoir du cuivre. Donc, c'est fondamentalement le cuivre enum. Et puis nous allons spécifier aussi quel type de valeurs de retour il a pour chacune de ces différentes variables, que nous allons maintenant créer. Donc ça va être privé final niveau de récolte int, non ? Donc, c'est fondamentalement ce que vous pouvez miner à la fin. Ensuite, vous allez créer un int max privé final utilise. C' est à quelle fréquence vous pouvez l'utiliser. Donc, la, donc fondamentalement la durabilité de l', de l'outil. Et tu vas avoir un dernier flotteur. Efficacité. C' est essentiellement le modificateur de vitesse. À quelle vitesse nous pouvons vraiment nous occuper de quelque chose. Les dégâts d'attaque vont être, eh bien, les dégâts d'attaque assez drôlement. Et puis nous avons un int, qui est l'enseignabilité d'Incheon. C' est juste à quel point vous pouvez mettre sur une bonne chose d'un transmet. Et puis nous allons avoir un gradient qui va être réparé. Un matériau de réparation, en fait matériel. Et c'est qui spécifie quel type de matériel nous pouvons utiliser pour réparer ces types d'articles ou ce oui, cet article. Donc on a un tas de flèches ici. Ne vous inquiétez pas, ce que nous pouvons faire est que nous pouvons juste, maintenant, après avoir spécifié tous ceux-ci, vous pouvez réellement passer le curseur sur eux et dire Ajouter des paramètres du constructeur. Et maintenant, nous pouvons simplement les sélectionner tous. Donc, nous pouvons simplement sélectionner un ou Shift, puis sélectionner l'autre, à droite, comme ceci et qu'il va tous les sélectionner. Alors on va dire, d'accord, et tout va bien. Dis juste refactoriser. Et maintenant, nous avons en fait un nouveau constructeur créé ici qui a déjà tout dedans, ce qui est vraiment bon. Et maintenant celui-ci, bien sûr, nous devons spécifier quelques choses ici, mais ce n'est pas pour vous inquiéter. Donc c'est la première chose. Alors peut-être que le niveau de récolte, on va en faire deux. Max utilise un 150. Je vais juste mettre quelques chiffres. La liste sera lacune à 0,5. On n'aura pas de dégâts d'attaque tout seul. Et l'interprétabilité va être comme un 15, donc pas trop mal. Et puis on va créer un nouvel ingrédient, en fait, excusez-moi, l'ego. Cela va être un ingrédient et cela va être à partir de piles, nouvelle pile d'éléments. Et puis cela va fournir les éléments de mod commencent à couvrir parce que tasse et puis point GET très important. Juste pour créer une pile d'éléments, nous avons réellement besoin d'avoir un fournisseur d'articles dans ce cas. Et cela est fait avec l'utilisation de la méthode get ici sur notre article. Ouais, c'est fondamentalement qu'on va devoir faire pour spécifier le cuivre. Maintenant, par exemple, si nous avons un, oups, si nous en avons un autre dans un avenir, peut-être que nous voulons ajouter, vous savez, aluminium aluminium aluminium aluminium. Eh bien, ça va déchirer des gens, de l'aluminium ou de l'aluminium. Et puis nous pouvons, par exemple, avoir quelque chose de nouveau, très important. Alors nous n'entrons pas celui-ci avec un point-virgule, mais avec une virgule. Parce que c'est fondamentalement toujours une énumération. C' est juste, tu sais, comme une note de côté en gros. Mais oui, en ce moment, on va le garder au cuivre. Et maintenant, nous avons également besoin de retourner ces variables ici. Donc, nous pouvons réellement retourner le niveau de récolte, puis retourner l'efficacité, retourner l'attaque, dégâts, le niveau de récolte, la capacité d'enchantement, et juste ici, le matériel de réparation, n'est-ce pas ? Et c'est tout ce que nous avons à faire pour notre devise ici. Comme je l'ai dit, vous pouvez ajouter autant d'années que vous voulez. Vous savez, vous pouvez ajouter du cuivre, puis peut-être du zinc et de l'aluminium et toutes sortes d'autres choses que vous pourriez vouloir ajouter. Dans ce tutoriel, nous allons juste ajouter des oranges conférence. Plus précisément, nous allons simplement ajouter COP. D' accord ? Alors revenons ensuite ici et ensuite dire en fait mod élément tier point cuivre. Et c'est la beauté de ce que nous avons fait. Au lieu d'avoir à utiliser le fer ou d'autres choses, nous pouvons réellement utiliser le nôtre. Maintenant, donc on va faire 00 pour ça et ensuite on va aller rapidement à de nouvelles propriétés d'article ? Non, certainement pas que je ne sache pas ce qu'il fait ici. Item.Nom, propriétés, s'il vous plaît. Merci. Et ça va être ça ouais, en fait, ouais. Les dégâts par défaut des macs seront de 150. Ensuite, nous allons ajouter un type d'outil. C'est Lake. chose la plus importante est d'être une pelle à points de type outil, bien sûr, et le niveau va être deux. Et à la fin, nous allons ajouter un groupe. Et ça va être notre, bien sûr, notre propre onglet. Et c'est déjà l'ID. Maintenant, ces dégâts d'attaque à ce modificateur de vitesse ou en gros, vous savez, comment, à quelle vitesse vous pouvez frapper quelque chose et combien de dégâts il fait. Je dirais qu'une pelle dans ce cas ne fait pas autant de dégâts. Et nous allons terminer la pelle et ensuite nous allons ajouter les autres après. Donc juste que nous avons fait cela. Donc, pour ajouter la pelle, nous devons bien sûr aussi le faire ici. D' accord, donc on sait que c'est sous le point, mais je vais rompre ça du groupe principal parce que c'est comme un article spécial. Disons que ce sera la pelle en cuivre, et ce sera le taux de pelle en cuivre. Et puis à l'intérieur de nos modèles d'articles, nous devons bien sûr avoir cela aussi. Donc, la pelle de soulignement de cuivre db.json. Et ça va ressembler à ça. Juste une seconde que nous y allons. C' est ça, non ? Comme vous l'avez déjà vu, cet élément a été généré. Et puis dans la couche 0, nous allons juste avoir m scores élément, flash, pelle en cuivre. Et puis, bien sûr, nous devons fournir la texture aussi bien. On va faire ça. Je vais juste copier rapidement celui-ci sur 2p. Et oui, bien sûr. Et puis nous avons la pelle en cuivre là-dedans aussi. Et puis la pelle elle-même devrait déjà fonctionner parfaitement bien. Voyons voir. Et voyons ce que c'est. Maintenant. Le plus gros, c'était le palier simulé, pour faire ça. Et puis les autres sont fondamentalement un peu de copie et coller le même code que nous avons déjà, non ? Nous créons simplement différents types d'objets. Donc on va créer un objet d'épée, piquets, et ainsi de suite. C' est donc tout ce qui est vraiment nécessaire là-bas. Voyons ce qui se passe ici quand on entre ici. Donc, tout d'abord, passez en mode créatif. Et voyons voir. Aha, il y en a. Donc, nous avons vraiment ça. Cela n'a pas été Oh, ai-je mis un article à la place de l'article ? Article MCQ, pelle en cuivre. J' ai oublié à la fin, donc c'est la raison pour laquelle ça ne marche pas, mais c'est bon. Voyons voir et voyons si nous pouvons vraiment nous embêter de la saleté avec nous. Et oui, on peut. Certainement beaucoup plus rapide que ce n'est pas beaucoup plus rapide, mais c'est un peu Foster. Et voyons du sable. Oui. Ponceuses nettement plus vite qu'avec une main. Et nous pouvons également voir que cela a des dégâts d'attaque de 100 en vitesse technique de quatre. Donc, en fait, le manuel est assez élevé. Toutes les choses considérées. Ok, donc, mais ce n'est pas très efficace en tant qu'outil pour tuer des gens. Tuer des gens. Je veux dire, tuer d'autres joueurs de Minecraft ou des monstres dans ce cas, mais oui, mais ça marche. Donc, nous pouvons réellement l'utiliser pour extraire des objets. Et comme vous pouvez le voir, il a également une durabilité. Donc, cela va se briser comme les autres aussi. Mais ce que nous pouvons aussi faire, c'est que nous pouvons examiner rapidement, par exemple, si nous savons que ce n'est pas ce que je veux. En fait, je voulais une enclume. Désolé. C' est ce que je voulais une enclume. Et je vais faire, c'est qu'on puisse regarder ça, on peut le mettre ici. Et si on met ensuite nos lingots de cuivre, on peut réparer ça. C' est essentiellement ce que nous avons spécifié avec l'ingrédient là-bas. Et c'est, cela fonctionne aussi parfaitement bien. Donc c'est plutôt bon. On va sauver ça et arrêter le jeu ici. Tout d'abord, nous allons arranger celui-ci parce que c'est juste que c'est juste embarrassant. Oui. Et puis fondamentalement, le reste est un peu de copier-coller. Donc on va juste faire ça ensemble parce que, pourquoi pas ? Et puis on aura une épée trémie. Ça va être un objet. Et puis vous devez réellement spécifier, eh bien peut-être ici. Et c'est en passant, pas un flotteur sur un, un entier parce que le court fait beaucoup plus de dégâts. Et puis celui-ci, très important, doit être fait. En fait, nous n'avons pas besoin d'un type d'outil pour la source car la source est celle qui n'a pas de type d'outil. Et puis on a une hache en cuivre. Droit ? Comme je l'ai dit, c'est un peu de copier-coller. Dans ce cas, nous ajoutons une gamme complète d'outils, et il s'agit d'un élément pioche. Celui-ci est aussi un entier pour l'attaque. Et puis on va créer un, Et une prise en cuivre ? Et je veux dire l'outil, s'il vous plaît garder PG ici. Et ça va être un trou de cuivre. Et c'est un oh, article. Celui-ci, comme vous pouvez le voir, certaines des choses ne sont pas localisées, mais cela n'a pas d'importance parce que nous savons réellement ce que cela est basé sur les autres choses que nous avons déjà créées. Donc, les autres constructeurs, et ceci est alors la hache de cuivre. Et la hache de cuivre. Oups. Que diriez-vous d'un 6EI de cuivre axonal ? On n'est pas l'enfant d'Elon Musk, désolé. Actes article. On y va. Et puis c'est une hache aussi. Très bien fait. D'accord. Ouais, donc c'est essentiellement les enregistrements d'objet effectués. Maintenant, bien sûr, nous devons aussi avoir les modèles. Je vais simplement les copier et les montrer rapidement parce que c'est beaucoup plus facile. Bien sûr, ces fichiers sont tous fournis là où c'est le X cuivre, c'est tout de même ici. Tous les fichiers sont fournis comme toujours dans, en fait dans le premier téléchargement, chaque conférence y a également été fournie. Donc, faisons en fait les textures aussi bien. Et puis nous devons encore ajouter ceci. Et je vais aussi copier ça parce qu'une fois de plus, juste en me tapant, comme me voir taper ça n'aide probablement personne vraiment. Ok, alors maintenant ils sont à l'intérieur d'ici. Nous avons fait l'article des modèles. Nous les avons localisés dans l'EN nous. Nous les avons tous enregistrés. Peut-être simplement ajouter celui-ci aussi. Alors peut-être dire quelque chose comme les actes. Un peu plus de dégâts ici, mais un peu moins de vitesse, peut-être comme moins trois ou quelque chose comme ça pour que c'est un peu plus lent, ce qui est généralement comme ça que les micro fissures fonctionnent, je crois. Et puis voyons ce que nous pouvons voir quand nous allons réellement chercher ces articles. Maintenant, bien sûr, ces articles n'ont pas de recettes pour le moment. Je pense bien sûr que les recettes ne sont, dans notre cas, pas si importantes parce qu'elles ne devraient pas être que C'est difficile à mettre en œuvre sur pourrait. Montre-toi l'un d'eux maintenant. Après avoir démontré que le reste fonctionne. Alors voyons, nous allons juste nous débarrasser de ces choses. En fait, gardez ça. Et puis voyons ce que nous avons. On a une épée. C' est plutôt bien. On a une hache, on a une hache, et on a un tout. Voyons si on peut tenir. On peut, c'est vraiment bien. Et aussi le temps fixé. Ils s'il vous plaît. Merci. Et on verra que celui-ci fonctionne. Bien sûr, cela fonctionne parce que j'ai peur de Mode. On y va. Ok, ouais, celle-là fonctionne aussi pour qu'on puisse dire le sol. Voyons voir. On peut deviner que ce n'est pas très rapide, mais peut-être qu'on ne veut pas que le cuivre soit très rapide. Nous pouvons également le mien avec cela parce que ce n'est pas très rapide. Je pense que c'est un peu plus rapide que la pierre, mais plus lent que le fer, je crois. Et puis prenons aussi l'épée et tuons rapidement ce cochon là-bas. Droit ? Et bien sûr, ce que nous pouvons faire, c'est que nous pouvons toujours préciser les différences ici. Eh bien, nous pouvons aussi regarder ça. Alors allons vite faire comme peut-être, je veux dire, peut-être pas plus bas, non ? Peut-être comme une épée ionique. Et puis peut-être aussi une pioche, juste à titre d'exemple. Donc le x anthropique a en fait beaucoup plus, beaucoup moins de vitesses fiscales, non ? Donc, la vitesse technologique ici est certainement beaucoup trop élevée et un peu plus endommagée. Et puis un six, juste dans notre manuel, il y a aussi beaucoup trop haut. Mais encore une fois, peut-être que c'est quelque chose qui est comme spécial pour les articles en cuivre, non ? Qu' ils sont comme la vitesse d'attaque folle du four, non ? , la durabilité et aussi des dégâts d'attaque peut-être Vous savez, la durabilité et aussi des dégâts d'attaque peut-être, exact, de sorte que vous pouvez attaquer avec eux comme très vite, mais vous ne pouvez pas vraiment faire autant de dégâts avec eux. Et puis on va regarder rapidement peut-être une recette, pas vrai ? Donc on va juste copier un de ceux-là pour remuer rapidement, juste pour contrôler c et contrôler v. et ensuite on va changer ça en, disons que le cuivre agit pour des raisons d'argumentation. Et puis c'est bien sûr, la forme était celle qui n'était pas la chose la plus intelligente jamais pour prendre le bloc ici. Alors prenons le blog et puis disons C, C, C, C, et puis prenons celui-ci. Oui. Ça, X va être Minecraft et ça va être bâton. Si je le dis moi-même. Je crois que c'est Laisse-moi juste double vérification rapide parce que je veux finir oui, bien sûr que c'est le je veux dire, à quoi je pensais ? Bien sûr que ça colle. Quoi d'autre serait froid sauf peut-être des bâtons, non ? C' est ça, c'est ma faute. Donc les cœurs MC et Alice vont le couvrir. Et bien sûr, c'est ainsi que nous ferions cela. Bien sûr aussi faire cela. Cela fonctionnerait également. faire de cette façon, aura également l'autre côté fait là-bas déjà aussi bien. Alors faisons-le rapidement et voyons si cela a réellement fonctionné. Et puis, je pense que nous aurons fini avec cette conférence, ouais, avec comment ajouter les éléments. C' est comme je l'ai dit, un peu de, vous savez, je dis grognement travail. Vous devez taper beaucoup de choses et vous devez copier beaucoup de fichiers. Maintenant, je fournit tout et comme ressource, bien sûr, donc ça ne va pas être un problème. J' espère. En fait, revenons ici. Et voyons voir. Alors donne-moi aussi des bâtons. Les bâtons et les pierres peuvent cuivre mes os. Et voyons si cela a fonctionné. Et bien, c'est hilarant, n'est-ce pas ? Qu' avons-nous oublié ? Bien sûr, la seule chose que nous sommes que nous ayons oublié en fait dans l'axe du cuivre d'avoir le résultat est la hache de cuivre. Alors, voilà. Oui. Mais bien sûr, ce n'est pas si important. Nous avons en fait vu que la, cette recette a fonctionné. Il retourne juste le mauvais élément. Mais c'est bon. Et l'ensemble, c'est fondamentalement comment vous ajoutez des outils au jeu. La première chose que nous avons faite, bien sûr, a été le niveau de l'article qui est très important. Et c'est aussi une façon de regarder fondamentalement comment, comment le, pour fondamentalement déchirer vos objets, n'est-ce pas ? Donc il est possible que vous puissiez cuivre, comme je l'ai dit, et ensuite peut-être obtenir du bronze, ce qui est encore mieux, et ainsi de suite et ainsi de suite. Donc, si vous avez déjà vu ou joué d'autres modes populaires, alors vous avez certainement vu la façon dont cela fonctionne et que ceux-ci sont également très intéressants. Quoi qu'il en soit, c'était fondamentalement tout. Et si vous le souhaitez, vous pouvez, bien sûr, ajouter les recettes vous-même. Je ne vais pas les ajouter parce qu'ils devraient être triviaux à ce stade pour les ajouter. Et aussi ils sont si importants dans ce cas parce que, comme je l'ai dit, ils devraient être triviaux à ajouter. Et nous allons tester beaucoup de choses dans la création à ce stade de toute façon. Donc oui, oui, oui, comme je l'ai dit, aussi, les textures et les Jason sont tous fournis aussi bien. Et oui, c'était essentiellement comme ça que vous ajoutez des outils à Microsoft. Alors oui. 49. (Minecraft) dans Minecraft: Bon, bienvenue au cours de Minecraft. Dans cette conférence, nous allons parler des événements. Maintenant, les événements vont de tout un tas de choses qui peuvent arriver dans Minecraft que nous pouvons réellement, disons, amener les auditeurs à. Alors, nous pouvons répondre à cela et faire en sorte que les choses se produisent. Donc la première chose que nous allons faire est au lieu de notre forfait de cours de MC, nous allons créer un nouveau paquet que nous allons appeler événements. Et à l'intérieur de ce paquet, on va créer une nouvelle classe. Et nous appellerons ça les événements de devise. Donc, cette classe d'événements mod va être vraiment intéressante parce que là-dedans, nous allons spécifier deux événements. Et ce sont des exemples d'événements. Et puis nous allons parler de quelques choses. Donc la première chose qu'on va faire, c'est que ça va être un vide public. Et nous allons appeler ce cours de moutons découvert. Et maintenant, tout ce que nous passons en tant que paramètre sera l'événement qui déclenche réellement cela. Alors quand on descend, on ne peut pas les voir comme ça, mais on peut voir comme ça. Donc, dans ce cas, un événement d'entité d'attaque se produit chaque fois qu'une entité est attaquée. Et puis il y a, comme vous pouvez le voir, dans ce cas, il n'y a pas d'événement d'attaque vivant. Il y a, il existe de nombreux types d'événements. Dans ce cas, nous allons utiliser ceci, l'événement d'entité d'attaque parce que nous voulons savoir quand quelque chose est attaqué. Et maintenant, comment traitez-vous ça ? Disons, eh bien, tout d'abord, nous devons réellement ajouter l'événement subscribe en plus de cela. C' est de sorte que voir réellement si l'info-bulle a quelque chose. Oui, c'est vraiment le cas. Donc, fondamentalement, l'idée est que cette classe, alors il peut être pour cette classe et alors cette méthode dans cette classe peut réellement être froide via cet événement qui est déclenché. C' est une explication très basique ici. Et qu'est-ce qu'on veut ? Eh bien, découvert pas cher, fondamentalement, nous avons mis en œuvre le fait que lorsque vous mangez de la pomme découverte, alors vous obtenez brillante. Que diriez-vous de ce que nous implémentons est que lorsque vous aimez un mouton taka avec cette pomme, alors ils obtiennent aussi l'effet lumineux. C' est quelque chose qui pourrait être intéressant à faire. Et rappelez-vous ces événements que vous pouvez, je veux dire, vous pouvez presque faire tout ce que votre imagination, vous savez, arrive à faire. Cependant, vous savez, plus l'événement que vous voulez mettre dans est compliqué , plus le code sera complexe, plus il sera complexe. Mais on va juste passer par ça. Donc, tout d'abord, nous voulons obtenir l'événement et là nous pouvons réellement obtenir le joueur. Et puis nous obtenons l'objet retenu, principal point de la main GetItems. Écrivez ceci simplement retournera l'article comme un article. Et puis nous pouvons juste dire, hey, si cela est égal à point com de l'article mod ou point Apple obtient droit. Donc, en gros, c' est juste que le joueur tient la pomme du placard dans sa main ? Et si oui, on y va. Super. La prochaine chose dont nous voulons parler, ou nous voulons demander, c'est essentiellement la cible. Donc si la cible est vivante, non ? Ce serait le bon marché dans ce cas. Donc nous attaquons quelque chose et puis le mouton, le mouton est toujours en vie. C' est génial. Nous devrons alors utiliser l'entité vivante ici. Donc ce serait Target. La cible est égale au point d'événement d'entité vivante, cible point d'événement. Donc ce qui se passe ici, c'est que je vais juste coûter la cible, qui est une entité en entité vivante, non ? Et je garde ça parce que dans ce cas, nous avons besoin de l'entité vivante. Donc, nous demandons réellement si l'instance cible de l'entité mouton. Et c'est fondamentalement juste demander, OK, si c'est cette cible, un mouton, c'est tout ce que cela demande parce que le mouton, comme vous pouvez le voir, étend effectivement l'entité animale et les entités animales entité éligibles et son entité de créature et c'est l'entité de vadrouille et c'est l'entité vivante. Il y a beaucoup, comme vous pouvez le voir, beaucoup d'héritage qui se passe ici. Mais fondamentalement, une entité vivante est aussi une entité de moutons ou plutôt l'inverse. Je ne suis pas sûr maintenant, mais ce n'est pas ce qui est très important, mais ils sont cependant liés dans, dans l'héritage. Et si c'est le cas, alors ce que nous avons frappé en ce moment, quand nous arrivons ici, c'est un mouton. Ce qu'on veut, c'est le joueur. Allons juste obtenir rapidement le joueur. Parce que pourquoi ne pas l'événement dot votre joueur ? Et puis ce qu'on va dire, c'est le point du joueur, l'objet, la main principale. Et puis on va réduire ça d'un. Donc, ce que ça fait, c'est que ça va, disons, supprimer un des objets détenus, non ? Donc, dans ce cas, nous allons en fait utiliser une des pommes de placard pour ça parce que, vous savez, juste le frapper et ensuite avoir cet ajout, cet effet ne serait probablement pas que, vous savez, quoi que ce soit et j'ai équilibré idée. Mais dans ce sens, vous savez, nous ne parlons pas vraiment d'équilibre. Et puis nous allons faire la cible et nous pouvons réellement faire ADD effet de potion et nous pouvons ajouter un, un autre. Par exemple, ici, c'est fondamentalement la même chose que nous avons fait avec lorsque nous mangeons la pomme, où nous avons eu des effets points brillants. Et puis nous avons la durée que nous devions réellement spécifier. Faisons 600 juste pour des arguments en ce moment. Et oui, et c'était en gros tout. Et puis je vais aussi ajouter, juste parce que ça va être intéressant de voir, nous allons faire est distant. Donc, cela vérifie simplement si oui ou non nous sommes sur un serveur ou non. Et je dois juste après que nous ayons fait ça, je dois dire autre chose pour ça. Donc, nous allons juste avoir une sortie d'un message à l' intérieur de notre chat dans, dans le jeu, non ? Donc, cela va être point de mise en forme du texte. Faisons juste un autre, tu sais quoi, faisons quelque chose comme le jaune, oui, comme ça. Et puis nous allons faire moutons est maintenant brillant, brillant, acide légal comme ça. Et puis nous allons jouer R dot, envoyer le message. Et puis nous allons faire un nouveau composant texte de chaîne. Et au lieu de ça, on peut juste mettre le message. Et puis nous devons également lui fournir l'ID unique, l'UE, l'UID, l'UUID du joueur. Et c'est essentiellement l' événement Un qui va maintenant se déclencher. Donc nous allons déclencher cette méthode chaque fois qu'une entité est attaquée. Et ça va demander, bien, est-ce qu'on a un placard Apple en main ? Si oui, alors on se demande si la cible est vivante ? Alors on demande, eh bien, c'est le mouton ciblé. Et si c'est le cas, alors nous allons passer par ici et en fait à l'effet de potion de souffler à travers le pas cher ou la durée de 600. Et nous devons aussi ajouter quelque chose ici à l'intérieur de notre classe mod mod. Donc, le mode de cours MC, et qui va être Minecraft ou bus d'événement, qui s'inscrivent. Et puis nous voulons réellement créer une nouvelle instance d'événements mod ici. Et nous pouvons en fait planer dessus, je crois que c'est le taux de registre. Donc, nous pouvons soit avoir l'instance d'un objet ainsi créée avec nouveau ou nous pouvons simplement faire une instance de classe. Et puis nous devrions le faire en statique. Donc, cela devrait être une méthode statique. Dans ce cas, on va juste en faire un nouveau. Je pense que c'est très bien. Ça va bien marcher. Et cela devrait déjà être tout ce que nous avons à faire pour cet événement particulier. Comme je l'ai dit, nous allons ajouter un autre événement, un second après avoir vérifié si cela fonctionne. Et puis j'ai aussi quelque chose à dire sur le côté serveur et ensuite quelque chose à dire sur la prochaine affectation, qui va être un peu plus créative, mais je prends de l'avance sur moi-même. Tout d'abord, voyons. Oups, tellement. Oui, c'est ce qu'on veut. Voyons ce que nous pouvons voir ici avec l'événement. Donc A-LC e va d'abord passer ici et ensuite on va y aller, ou un mouton. C' est ça. Et maintenant, peu importe que nous soyons créatif ou non. Donc c'est un bon marché et maintenant si je le frappe avec l'Apple couverte, nous allons obtenir le moins cher lumineux. Maintenant ça, lui, elle a passé l'effet lumineux et on a perdu une pomme. La pomme a été consommée. Tu peux vraiment le voir à nouveau, non ? Je sais que j'ai 605958. Donc, chaque fois que je frappe un mouton avec, une pomme est réellement consommée. Ouais, et on a aussi le message que les moutons sont maintenant rayonnants. C' est plutôt bien. Donc, cela fonctionne sans problème. Et comme vous pouvez le voir, c'est comme, c'est un événement très simple. Disons, eh bien, vous pouvez déjà imaginer qu'il y a un tas de choses que nous pouvons faire avec ça. Tu sais, tu pourrais faire toutes sortes de choses. Vous pouvez modifier la position d'une entité. Tu pourrais le tuer. Tu peux peut-être même le guérir. Vous pouvez faire toutes sortes de choses avec des objets et, et différents événements qui se produisent. Maintenant, la deuxième chose que je veux faire, c'est à chaque fois qu'on a un mouton qui brille, n'est-ce pas ? Alors ce que je veux vraiment arriver, c'est qu'on veut avoir une goutte, un lingot de cuivre, non ? C' est juste une, vous savez, comme une petite idée mignonne, je pense encore une fois, c'est probablement quand vous sortiez un modèle comme celui-ci, ce ne serait probablement pas si génial. Et appelons ça sur les gouttes de moutons. Et ça va être un événement de gouttes vivantes quelque part. Je ne suis pas sûr à 100%. Il y a une liste des événements que vous pouvez appeler ici. Et ceci, soit dit en passant, détaille également quelques choses de cet événement. C' est vraiment bien. Mais il y a une liste quelque part. Je vais voir si je le trouve ou non. Si je le trouve, alors je vais probablement le lier ou pas probablement je vais certainement lier il a des ressources sur cette conférence parce que c'est, vous savez, vous ne pouvez pas savoir quels événements se passent ici, non ? Donc, il y a aussi un événement undef. Donc, quand le joueur meurt ou vous pouvez avoir un événement quand un, une entité régimes. Il y a tellement de choses qui peuvent arriver. Et comme l'événement de gouttes vivantes lorsque nous passons en fait au-dessus, nous pouvons effectivement voir que cela est déclenché quand une entité est mort provoque des éléments abandonnés à apparaître. Donc, cela fondamentalement, avant que ces éléments apparaissent, puis l'événement se déclenche et ensuite, donc nous pouvons réellement changer quelques choses. Donc ce qu'on va faire, c'est faire une entité vivante. Ça va être notre entité. Et puis on va faire l'événement point obtenir entité vivante, entité vivant là-bas. Yo. Et puis, tout d'abord, nous avons demandé s'il s'agissait d'un mouton, simplement parce qu'en ce moment nous ne sommes concernés que par les moutons qui brillent et rien d'autre. Et nous allons opter pour une entité World, World II, désolé, données d' entité, monde DT. Et nous devons importer la perte du monde ici. Et puis nous allons réellement sauver le, il va y avoir un peu compliqué et donc ce sont les gouttes qui se frottent. Donc, en gros, nous disons, d'accord, quelles gouttes auraient chuté des moutons, n'est-ce pas ? Par exemple, la laine et qu'est-ce que c'est, la viande de mouton en fait, en ce moment, ne sait pas comment ça s'appelle. Je vais vérifier maintenant est dès qu'il est plus chaud dans le jeu. En fait, je ne sais pas, peu importe. Donc ça allait tomber. Et puis nous allons réellement sauver ces gouttes et puis acheter en ajoutant aux gouttes, nous pouvons en fait ajouter quelque chose d'autre aussi bien. Donc ça va le faire. Maintenant. Je vais faire quelque chose juste pour que nous puissions simplement, maintenant c'est ce que je veux. Gestionnaire point obtenir enregistreur. Et puis nous allons déboguer. Et ça va être Entity dot, obtenir des effets océaniques actifs juste pour que vous sachiez quoi, quel est le problème ici ? Pourquoi cela ne fonctionne-t-il pas avec le gestionnaire de journaux ? méthode non statique ne peut pas être référencée à partir d'un contexte statique. Oh, eh bien, je veux dire que je ne savais pas qu'on l'était juste n'a aucun sens. Très certain que nous faisons exactement la même chose ici. Eh bien, ça n'a absolument aucun sens. Mais voilà. Parfois, ces choses qui n'ont tout simplement pas de sens que ça change quelque chose ici. Eh bien, quoi que ce soit. Maintenant, nous pouvons en fait avoir un journal c. C'est parfois, parfois ces choses dingues. C' est pour ça que je ne coupe pas ça maintenant. Parce que c'est parfois quelque chose de contaminant fou. Je suis genre, ok. Personne ne sait vraiment ce qui s'est passé là-bas. Quelqu' un sur cette planète sait probablement, mais dans ce cas, c'était juste un bug bizarre. Eh bien, et puis nous voulons réellement demander est si un certain effet, donc dans ce cas affecte sombre, lumineux est actif, non ? Donc, j'ai cet enregistreur ici afin que nous puissions réellement voir dans le quand est, quand le microphone est en cours d'exécution que nous pouvons réellement voir dans le journal ce qui se passe. Donc à chaque fois qu'on frappe un mouton, on va faire imprimer ça et on peut voir quelle partie active affecte le mouton. C' est juste une façon intéressante de le faire. Et tant que c'est le débogage, c'est génial. C' est aussi une chose très importante à faire. Parfois, amenez l'enregistreur là-bas et puis juste, vous savez, verrouillez quelque chose et puis nous allons faire des gouttes dot add. Cela va être nouvel élément entité et élément, entité. Entité article en fait. Ça va être dans le monde. On va faire un, ça va être en position. C' est un peu t est une fois de plus parce que alors nous devons réellement spécifier chacune des trois coordonnées. Donc, nous devons faire en fait comme y et aussi Entity dot z, où z. et puis nous allons faire une nouvelle pile d'élément de point de mod le couvrant. Non, pas le cuivre de classe. Cuivre en bon point obtenir. Bien sûr, une fois de plus, parce que nous créons une nouvelle pile d'éléments, maintenant devrait déjà l'être. Pourtant, c'est tout ce que nous avons besoin d'ajouter. Pour ajouter cela très intéressant, mais en fait assez spécifique. Excusez-moi. C'est tout ce qu'il faut ajouter. Ce comportement intéressant et en fait assez spécifique à ce stade, non ? Ce n'est pas comme ça. On verrait ça partout, dans tous les modes. Et c'est en gros, vous savez, comment vous pouvez penser à ces événements. Donc tu as l'idée d'Ahmad et tu es genre, oh, je veux cette annonce et peut-être que je n'étais pas comme ça. Peut-être fin, fin pioche C'est vraiment bon au début, mais peut-être qu'il vous téléporte à chaque fois que vous cassez un bloc et vous pouvez le faire. Vous pouvez vraiment le faire. C' est pour ça que je dis que, tu sais, ton imagination est vraiment la limite ici. Et maintenant ce qu'on va voir, c'est si on crée un nouveau vaisseau, non ? Rien ne se passe en ce moment. Si nous le tuons, nous allons juste obtenir ça maintenant veulent savoir comment ça s'appelle. Ça s'appelle du mouton. Oh, je n'étais pas sûr de celui-là. En fait, par ici jusqu'au sable et on va l'adapter ici. Elle était en train de charger et on va le tuer. Et regarde ça. On l'incorpore en fait. Maintenant, bien sûr, la chose que nous pourrions faire est probablement quelque chose comme avoir le, avoir la, avoir une probabilité pour un lingot de cuivre de tomber, vous savez, peut-être comme 1% ou quelque chose comme ça. Et puis bien sûr, équilibre serait rétabli, pour ainsi dire. Maintenant, si on y retourne et qu'on peut vraiment, oh, eh bien, tellement pour celui-là. En fait, on peut le voir ici. Là, nous avons en fait le débogage ici de nos événements MOD comme vous pouvez le voir. Et là, il est, effet minecraft point luisant. Et puis nous avons la durée aussi. Et là, quand on a frappé le bon marché et qu'on tue les moutons à l'avance, on n'avait rien ici, non ? Donc c'était complètement vide. Et après qu'on l'ait frappé ici, on a eu un ou on l'a tué. Nous avons effectivement eu les effets actifs et l'un des plus effet minecraft point soufflage. C' est donc aussi très important. Sachez, parfois vous voulez déboguer quelque chose et ensuite vous utilisez simplement le gestionnaire de journal. Maintenant, ce n'est pas nécessairement la meilleure façon de, de référencer un budget de gestionnaire de lot obtenir l'allocation de sciatique enregistreur, mais cela va être bien pour nos fins dans ce cas. Encore une chose que certains événements doivent être faits côté serveur et certains événements doivent être faits côté client. À ce stade, cela va fonctionner à la fois sur le serveur et sur le client. Mais il y a des choses, disons, très spécifiques. Mais encore une fois, il y a tellement d'événements qui peuvent être référencés qu'il est difficile de faire comme un bref résumé ou, vous savez, de les résumer. Et toutes les ressources supplémentaires que je trouve intéressantes pour ceci ou qui vont vous aider avec cela. Je vais mettre les ressources ici. Et aussi le, vous savez, il peut parfois être un peu délicat. Mais encore une fois, ce qui est important quand vous ne le faites pas, comme quand quelque chose ne se produit pas, utilisez le gestionnaire de débogage ou le gestionnaire de débogage, l'AlarmManager, et déboguez certaines choses. Et aussi, je crois que ce serait que c'est dans son intégralité. J' ai donc une petite mission supplémentaire après celle-ci. Et je veux aborder rapidement ce sujet avant la fin de cette conférence. Et c'est là que vous devez créer votre propre événement. Et c'est une liberté totale. Vous pouvez créer ce que vous voulez. Tu peux faire des trucs dingues, tu peux tout faire, tout ce que tu veux. Mais ça devrait être une méthode, non ? Donc, un, fondamentalement un événement ici. Et ça peut être n'importe quoi. Il peut être que vous sautez vers le haut et puis tout d'un coup un 1000 GoldieBlox a chuté du ciel. Et ce que tu veux faire n'a pas d'importance. Mais ça doit être, tu sais, plus créatif, mieux c'est. Ce n'est pas nécessairement classé, disons, mais je vais les regarder. Et je suis vraiment excité par ce que tu as trouvé, non ? Comme je suis, je suis en fait comme un peu excité parce que j'espère en fait que certains événements fous seraient assez cool si les événements sont, vous savez, un peu comme cette longueur, vous savez, ou même plus, mais pas comme pas comme deux lignes. Je voudrais être un peu pas triste, mais ce ne serait pas la meilleure chose si nous ne sommes que deux lignes, mais bien sûr, vous pouvez faire ce que vous voulez. La mission est très ouverte. C' est pourquoi il n'y a vraiment pas de solution. Comme tant que l'événement fonctionne, vous avez fait la mission. Donc je suis très intéressé par ce que vous pouvez trouver. Et c'était essentiellement tout pour la conférence de l'événement. J' espère que tu en as tiré quelque chose. Et aussi, s'il y a des questions, encore une fois, n'hésitez pas à poser à tout moment. Et aussi, si vous avez impression d' avoir réalisé quelque chose et d'être allé plus loin dans le développement d'un modèle. J' apprécierais vraiment si vous pouviez me laisser un avis. Et oui, c'est fondamentalement tout ce que nous avons à dire. Merci d'avoir écouté. Et oui. Ou, ou juste un petit addendum ici sur ce mod événements un. Et j'ai en fait un moyen plus facile de comprendre quels événements il y a. Vous pouvez réellement survoler, par exemple, cet événement d'entité d'attaque. Et puis vous passez par l'arbre des extensions jusqu'à ce que vous trouviez des événements, non ? Et puis vous allez simplement à sa source juste ici. Et puis l'événement du fichier Java que nous allons réellement ouvrir. C' est quelque part dans le, quelque part dans les autres fichiers, comme dans les bibliothèques externes. Ne vous inquiétez pas pour ça. Eh bien, ce qu'on peut faire, et c'est comme en fait, on peut juste contrôler l'âge. Et puis toute la hiérarchie s'ouvrira. Maintenant, vous pourriez être comme, oh mon Dieu, c'est beaucoup d'événements. Ouais, c'est encore plus parce qu'il y a des événements de bloc auxquels on peut faire référence, non ? Et puis sans événements de piston, événements lieu d' entité, vous pouvez avoir rogné des événements de croissance. Nous pouvons avoir des événements mondiaux où Shang, Vous savez, et puis ceux que nous avons réellement utilisé où une entité événements et nous utilisons les événements d'entité vivante, comme vous pouvez le voir beaucoup ici. Et puis il y a aussi des événements de joueur. Et comme vous pouvez le voir aussi, beaucoup d'événements que vous pouvez référencer. Donc et en théorie, quand vous avez les événements que vous voulez, vous n'êtes vraiment pas limité par quoi que ce soit ici. Comme vous pouvez le voir, il y a tellement, tant de choses que nous pouvons faire, et surtout vous pouvez faire pour l'affectation. Donc oui, c'est juste vite que je voulais mentionner. Et oui. 50. (Minecraft) Ajouter des conseils à des objets aux: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer une info-bulle pour un élément. En fait, ce n'est pas si compliqué. Et ce que nous allons faire, c'est nous allons créer une info-bulle pour notre entreprise Apple, parce que nous avons déjà un dossier Apple d'entreprise. Donc, une classe qui est dédiée à cet article. Et nous avons réellement besoin d'une classe ou pour cette méthode que nous allons ajouter. Donc, nous ne pouvons pas simplement le faire dans les éléments R mod. En fait, nous devons avoir une classe spécifique. Et moi aussi d'habitude, c'est quelque chose qui peut être pensé. Parfois, nous voulons réellement que nos articles aient une classe distincte, et parfois nous ne le faisons pas. Maintenant, au cours de notre application, dans le cas de notre Apple, désolé, nous l'avons réellement parce que nous voulions avoir un produit alimentaire. Et parfois, si nous voulons un comportement plus spécialisé sur les articles, alors bien sûr, il est logique d'avoir une bonne classe pour eux. Mais pourtant, nous allons juste utiliser la pomme de cuivre comme cochon d'Inde une fois de plus pour ça. Et ce qu'on va faire, c'est qu'on va avoir un vide public. Et cela pourrait être ajouter des informations. Ça va prendre une pile d'éléments. Retour, va avoir un monde, un monde, une liste de composants de texte TIC, qui va être l'info-bulle et aussi un drapeau d'info-bulle d'IA, vieux drapeau, non ? Donc, tout d'abord, nous devons importer quelques classes, classe d'importation, puis la classe mondiale et bien sûr la classe de composants de texte ICT. On y va. Et c'était déjà tout. Maintenant, nous avons aussi besoin d'avoir une sorte de, oh désolé, la liste aussi. Désolé, il y a un. java.util. Oui, on y va. Maintenant, ça marche. Et cela va être un écrasement aussi. Sur la droite ? Maintenant, nous voulons avoir une sorte de classe d'aide et nous allons créer ça dans notre Util. Et ça va être les claviers, l'aide du clavier. Je vais juste l'appeler « Helper ». Vous pouvez l'appeler l'util du clavier. Vous pouvez également l'appeler clavier. Clavier Utility Board aide. Aide d'entrée peut-être. Mais ça va se passer. Ouais, et celui-ci aura en fait deux choses aussi. Et cela va avoir un booléen statique public. Et ça va être, c'est tenir le quart de travail. L' idée est que vous avez probablement vu si vous avez joué quelques manpacks avant, que, parfois il dit, hey, vous pouvez maintenir le décalage pour pour plus d'informations ou vous pouvez tenir, vous pouvez maintenir le contrôle pour plus d'informations. Et c'est essentiellement ce que nous allons mettre en œuvre ici. Donc, en fait, ça ne va pas être si différent. Donc on va revenir et ensuite on va avoir tout un tas de trucs. Donc, ce sera des mappages d'entrée. Dot est la clé en bas. Donc, cela détecte simplement si une clé est éteinte ou non. Et maintenant ce que nous voulons, c'est que nous voulons avoir minecraft point getInstance, point get fenêtre principale qui sont gérés. Donc, cela va retourner le genre de la, l'adresse, disons. Et puis celui-ci sera la touche Maj gauche. Oui. Droit ? Malheureusement, ce n'est pas le cas, ce n'est pas mappé dans ce cas. Mais oui, et c'est très important que c'est incroyablement important. Ce sera seulement dans ce point client dist dot ligné. Et cela doit être importé. C' est vraiment important parce que c'est quelque chose qui ne se produit que pour le client car un serveur peut vraiment maintenir Maj enfoncé, non ? C' est comme très important et cela va être maintenez le contrôle. Et cela va être, nous devons simplement changer cela pour contrôler. C' est tout ce que nous avons à faire ici. Ouais, et c'est essentiellement notre aide au clavier. Maintenant, ça va juste nous aider pour que nous n'ayons pas à le faire. Chaque fois qu'on veut dire, hé, si, tu sais, tenir le quart, celui-là, c'est un peu plus facile à faire. Les citoyens seront aussi blancs dans la classe util. Tu sais, c'est juste une petite chose qui nous aide avec les services publics. Fondamentalement, c'est un utilitaire. Oui. Oui. Et puis ici, on va demander l'aide du clavier. Donc, l'aide du clavier qu'ici. Là, nous allons, va être est de tenir le quart. C' est la question. Et si c'est le cas, alors on va faire une chose. Et si vous ne l'êtes pas, alors nous allons réellement afficher une autre chose qui est fondamentalement intéressant est une façon très intéressante de formater ceci une fois de plus. Donc, ajoutons tout d'abord celui quand nous sommes en train de tenir le décalage. Donc c'est la chose que nous allons voir quand nous tiendrons Shift, non ? Donc, cela va être un nouveau composant de texte de chaîne. Et à l'intérieur, nous pouvons simplement ajouter une chaîne, ceci fondamentalement tout ce que nous allons ajouter. Donc, disons que quand nous maintenons le décalage sur la pompe, le résit, la pomme, alors nous voulons dire, transforme les moutons en lingots de cuivre. Que diriez-vous de ça ? Comme ça, n'est-ce pas ? Et puis l'autre, je ne sais vraiment pas pourquoi il donc nous sommes dans le formatage à ce stade, Hurd. D' accord. Et quand il n'a pas ça, on peut avoir quelque chose de générique. Qui quand vous y pensez, comme ceci est quelque chose que vous pourriez aussi avoir comme un bébé dans les éléments de mod. Vous pouvez avoir dans les éléments mod une chaîne statique qui a toujours ceci, n'est-ce pas ? Parce que c'est pour chaque élément qui va être le même. Mais ça va être un peu bizarre. Donc, c'est en utilisant sept e. et ensuite on veut tenir le quart de travail. Désolé. Eh bien, à l'intérieur comme quand on va, je vais t'expliquer assez tôt. Je vais juste devoir rejouer. Copiez ça. Et c'est 77. Et puis ça va être ou plus de formation. Bien sûr. En quatre majeur. D'accord. C'est ça. Oui. D'accord. Et c'est simplement une couleur qui est ajoutée pour le composant de texte, n'est-ce pas ? Donc ce sont, ce sont des couleurs. Je vais fournir un comme une ressource ici, Je vais réellement fournir un, la couleur. Comme je pense que c'est une image où vous pouvez réellement voir quelles couleurs vous pouvez faire. C' est presque le même que le, Je pense qu'il est en fait le même que les couleurs que vous pouvez avoir dans le chat. Oui, exactement. À droite. Et puis nous voulons aussi faire des informations super dot-dot et ils veulent juste ajouter tout cela. Donc, l'info-bulle du monde et aussi le drapeau, ils allaient, à droite. C' est tout pour l'addition du total. Ça devrait être ça. Donc, ce n'est que l'aide au clavier et l'Apple en cuivre. Et voyons si vous voyez vraiment ça. Comme je l'ai dit, quelqu'un comme ça, l'ensemble du décalage, c'est probablement quelque chose qui devrait être aussi comme une chaîne statique de chaîne statique publique et les éléments mod par exemple. Ou vous pourriez imaginer avoir une, une autre classe ou une classe util où vous avez réellement ces chaînes toutes sauvegardées. Donc, cela peut les référencer quand vous en avez besoin. Parce que l'ajout de cette chaîne à chaque fois n'a aucun sens. Ok, alors on est, maintenant, voyons. Donc, tout d'abord, vous savez, tout est normal et là, oh, maintenez le décalage pour plus d'informations. Et quand nous tenons Shift transforme les moutons en couvertures. Et c'est plutôt cool, n'est-ce pas ? C'est ça ? Ajoute, j'aime ça. C'est plutôt sympa. On peut tenir Shift et ensuite on obtient de nouvelles informations. Maintenant, nous allons en fait aussi vous que maintenant il ne va pas être si proche de la, à l'autre phrase. Ouais, en gros, seulement l'aide au clavier et l'Apple d'entreprise. Mais dans l'ensemble, je pense que c'est encore assez simple. Et oui, c'était essentiellement ça pour ajouter l'info-bulle. Et oui. 51. (Minecraft) Créer un nouveau ensemble d'armure.: Bon, bienvenue au cours de micro-ondes. Et dans cette conférence, nous allons ajouter notre propre armure, non ? Que pouvons-nous faire de notre armure ? Et nous avons déjà vu qu'avec les objets, les tuples, c'était, vous savez, assez simple. Tu sais, il y avait quelques choses, mais rien de trop fou. La seule chose qui était un peu fastidieuse était le niveau d'article plus. Cependant, ce quelque chose que nous devons faire à nouveau. Nous devons donc créer notre propre matériel d'armure mod. Donc, ce sera un matériel d'armure mod enum public. Mais c'est réel. Et cela va mettre en œuvre un matériel d'armure. Et nous allons rapidement obtenir les méthodes ici une fois de plus. Et c'est essentiellement la, presque la même chose que nous avions avec ceux que nous avions dans les articles Mott ici. Maintenant avec l'armure. Ok, il y a, encore une fois , quelques choses que nous devons préciser ici. Donc, tout d'abord, on va refaire le cuivre. Ensuite, nous allons créer quelques variables privées. Encore une fois. Cela va être une durabilité entière finale privée. Et puis nous allons avoir un tableau entier final, qui sera le tableau de réduction des dégâts. C' est une bouche à dire que trois fois vite après un autre hibou. Et le charme de la capacité comme troisième, que nous allons avoir un événement sonore final privé, qui va être un événement sonore. Et puis nous avons un ingrédient final privé, qui est le matériel de réparation. Et nous aurons un nom de chaîne privé phi o final privé. Celui-ci est très important. Et puis un flotteur privé, privé, la ténacité, qui devrait être connu, mais c'est alors un flotteur final privé renversé résistance. D' accord. Comme vous pouvez le voir, beaucoup de choses encore une fois, mais pour ne pas vous inquiéter, nous serons en mesure de comprendre cela. Donc, tout d'abord, bien sûr, nous allons le survoler à nouveau et nous allons réellement créer un nouveau constructeur avec tous ces, avec toutes ces variables immédiatement. Et de cette façon, nous nous épargnons un peu de temps à écrire ce constructeur. Et puis nous pouvons aussi faire quelque chose comme ça. Oui, c'est bien, non. Donc, la durabilité, je vais juste mettre quelques choses dans votre, donc cela va être un nouveau tableau entier. Et je vais immédiatement mettre quelque chose là-dedans. Donc, nous allons vraiment avoir la réduction des dégâts est différente pour chaque vêtement, ainsi dire, lutter pour le casque, le pectoral, les leggings et les bottes. Ce sera un numéro différent. Disons que quelqu'un aime flèches, disons 75. Et il peut y en avoir trois ou quelque chose comme ça. Tu sais, tu peux, bien sûr, choisir ce que tu veux. Et la traçabilité va être dix. L' événement sonore va être des événements sonores que cela va être l'équipement d'armure d'objet. Faisons de l'armure. Ceci est l'objet armure équiper fer. Là, on y va. matériel de réparation qui va immédiatement obtenir de pile à nouveau et juste faire nouvelle pile d'article à partir d'une fois de plus, le point de l'élément mod, couvrant obtenir. Donc c'est à peu près ce qu'on a toujours fait. Et puis le dernier sera nommé. Maintenant celui-ci est important ici, parce qu'ici, nous devons faire mc cours dot nulle identification. Et puis nous devons faire un deux-points et ensuite appeler ce petit cuivre. Et c'est parce que sinon il cherchera, c'est essentiellement pour spécifier l'endroit pour le lieu et le nom du modèle. Donc, le modèle 3D pour l'armure a un motif de texture très spécifique, que je vais montrer assez tôt. Et cela doit avoir un nom spécifique. Et si nous ne le spécifions pas comme ça, alors nous allons réellement regarder dans un répertoire différent. Et cela doit également être le cas du cuivre dans tout en ténacité minuscule, nous allons juste faire un 0 et frapper la résistance BEC. On va y mettre un peu de résistance, et ça va se passer. Et nous devons aussi rendre ces choses. Donc, on va aller à la durabilité. Dans la réduction des dégâts. Nous allons en fait avoir certains des différents, ce sera le tableau de démonstration. Et puis nous allons juste prendre n'importe quelle fente nous obtenons l'index de la fente, non ? Donc la fente est tout simplement, vous savez, c'est 0 pour le casque et 3 pour les bottes. Et c'est comme ça qu'on accède à la zone de réduction des dégâts dans ce cas, non ? Enchanter la capacité. Nous obtiendrons les événements sonores, le matériel de réparation, le nom comme un ensemble d'incroyablement important la ténacité. Et dans ce cas, ce Funk qui n'est pas cartographié ici, est simplement le, cela demande la résistance BEC frapper. Et puis on peut juste faire des cours de Nochlin. Mais il doit soudainement être resté ceci, sinon cela ne fonctionnera pas. Donc, vous ne pouvez pas changer le nom de cette fonction ou de cette méthode plutôt, désolé, ouais. C' est donc notre MOD, matériel d'armure créé. Et maintenant, nous pouvons créer notre première pièce d'armure. Mais dans ce cas, nous allons en fait les créer tous même temps au lieu d'utiliser les outils. Ça va encore être un, un article où n, ça va être le casque de cuivre. Ce sont les points d'enregistrement qui enregistrent les casques en cuivre O E. Et je veux dire, tu as vu ça un tas de fois maintenant. Ceci est maintenant un nouvel objet d'armure où nous fournissons le matériel d'armure mod dot cuivre. Ensuite, il demande une fente d'équipement. C' est bien sûr, la tête de lot des équipements. Et puis nous devons également fournir de nouvelles propriétés. Dans ce cas, nous allons juste faire l'onglet Cours MCMC point point. C' est ça, c'est ça. Et c'est déjà pour la tête et puis nous pouvons juste copier ceci. Et maintenant, bien sûr, encore une fois, nous devons avoir quelques choses où nous changeons certaines choses ici. C' est le point, point de poitrine. Et c'est très bien. Comme je l'ai dit, parfois ça peut devenir un peu fastidieux parce qu'il faut faire beaucoup de choses pareilles. Cependant, il n'y a vraiment pas de contournement. Donc on va faire ça, c'est des jambes. Et puis la dernière sera les bottes. Et ça va être des bottes de soulignement en cuivre. Et ceux-là sont pour le là où nous allons. Magnifique. Ok, donc il y a déjà enregistré ici. Maintenant, nous devons ajouter la localisation. Alors allons à l'IIT et nous. Et nous allons ajouter l'IO, mon lambda, ce n'est pas MC, le plus pauvre casque en cuivre. Commençons par le haut. Et puis ça va être le casque de cuivre. Et je vais rapidement copier cela aussi. Et changez ça. La plaque de poitrine. Sans fin. La plaque de poitrine. Ça va être les leggings. Oh, excusez-moi. Capable les leggings. Ça va être les leggings. Et la dernière sera des bottes petites et ici des bottes grandes. Magnifique. Ok, ça va être tout ça. Maintenant, bien sûr, nous devons aussi ajouter une autre chose, et ce sera les modèles d'article, n'est-ce pas ? Donc on va aller aux modèles et on va créer un nouveau fichier. Ça va être le casque de cuivre. On y va. Oh, ab.js. Et bien sûr, très important. Et puis je vais le copier rapidement une fois de plus, c'est comme la chose standard que nous avons déjà vu dans les modèles aussi. Et nous allons copier cela à nouveau de la même manière avec Control C , puis contrôler V pour le coller dans le même répertoire. Et je vais changer ça en plaque thoracique. Et puis changez ça en plaque de poitrine, assidez une veuve. Et ensuite, on pourra recommencer la même chose. Où sont les liens ? Leggings, leggings ils allaient et puis une dernière fois ou des bottes. Bottes et ici la même chose. Très bien. Ok, donc les modèles sont réglés et nous avons bien sûr besoin des textures. Donc maintenant le, maintenant je vais fournir les textures de l'objet juste ici, non ? Et ça va être vous refactoriser. Voici la plaque de poitrine, les bottes, les leggings et le casque. Magnifique. Maintenant, la prochaine chose dont je vais avoir besoin est que nous allons maintenant mettre les textures pour l'apparence quand nous la portons. Donc ça va être la prochaine chose et nous avons vraiment nouveau dossier dans les textures pour ça. Ce sera des mannequins. Et au lieu de celui-là, nous allons créer un nouveau répertoire appelé armure. Et à l'intérieur de là, deux autres dossiers vont être que ces deux-là vont en fait oui, voilà. C' est pour les leggings et c'est essentiellement pour le torse et le casque. Et je crois aussi les bottes. Oui. Quelque chose comme ça. Je ne suis pas sûr à 100%, mais cela semble logique et cela doit également être nommé de cette façon. Rappelez-vous donc le nom que nous avons spécifié. Cela n'a pas été cuivre et ensuite il doit être une couche de soulignement, soulignent un PNG. Et oui, ces fichiers aussi toujours seront fournis sont d'abord, fournis au début, dans les sources et aussi comme une ressource, votre taux. Donc, si je ne me trompe pas, je crois que c'est déjà tout ce que nous sommes censés faire. Alors, lançons ceci et voyons si vous avez réellement créé avec succès une armure de cuivre, ce qui serait plutôt cool. Toutes les choses considérées. Bon, alors voyons ce qu'on peut voir. On y va. Il l'est. Et bien sûr, une fois de plus, il n'y a pas de recettes pour ceux-ci. Comme je l'ai dit, je vais omettre les recettes pour cela simplement parce qu'elles devraient être assez triviales pour ajouter. D' accord, voyons. Donc, tout d'abord, passons à notre étape principale. Eh bien, ils sont tous là. C'est plutôt bien. Allons les chercher tous. D'accord ? Et maintenant la grande question est, quand on change de tack, la survie, si on peut juste le mettre, on peut le faire. Eh bien, on y va. Je suis plutôt gentil. Nie. Maintenant, cela a beaucoup de défense. Je suis désolé. On y va. Ça dit beaucoup de différence en fait. Comme c'est le cas, toute l'armure a en fait un peu de défense. Mais c'est quelque chose avec lequel vous pouvez bien sûr jouer, non ? Oui. Comme il y a beaucoup de choses que nous pouvons, vous pouvez ajouter une fois de plus. Et il y a un tas de paramètres avec lesquels vous pouvez jouer et dire, eh bien, en fait peut-être un peu moins ici et un peu plus ici. Et oui, mais en même temps, ça marche. C' est en fait juste bien, c'est bien, passons rapidement à nouveau et puis en fait juste sauté d'un peu de hauteur. En fait, je ne l'ai pas bien endommagé, tant pour celui-là. Donc la monosomie. Et celle-là ? Quelques zombies. Tu vas brûler immédiatement ? Ouais, eh bien, ça compte. Mais je veux refuser ça un peu parce que mon dieu, vont-ils être bruyants ? Droit ? Et puis l'armure est blessée aussi bien que vous pouvez le voir. Donc c'est plutôt bon, non ? Donc, dans l'ensemble, c'est essentiellement comme ça que vous ajoutez l'armure à Minecraft. Ça ou non, je ne pense pas que c'était si dur. Cependant, il y a peu de choses à considérer et c'est principalement les modèles, le nom ici. Donc c'est l'une des plus grandes flèches que je pouvais prévoir. Vous devez vraiment le faire, le nom ici correctement, sinon, cela ne fonctionnera pas. Cela doit être le même, écrit de la même manière que le premier mot ici. Et puis doit être soulignement couche de soulignement un PNG, non ? Oui, c'était ça. Si vous avez des questions, si vous avez des flèches ou, vous savez, des suggestions, peut-être des sujets que vous voulez encore voir. N' hésitez pas à me contacter, m' a posé une question et oui, nous vous répondrons dès que possible. Et oui. 52. (Minecraft) Créer des (Minecraft) bouttons, pressions et (Minecraft): Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer des escaliers, des clôtures, barrières, des boutons, une plaque de pression, et aussi une dalle. Maintenant, ce sont des blocs non-blocs, je dirais. Et je vais aussi vous montrer comment créer fondamentalement les autres. Mais il doit être un peu d'ingéniosité vient de vous-même. Mais d'abord, on va faire ce que j'ai dit. Nous allons tout d'abord créer les objets de registre de tous d'entre eux. Ensuite, on va terminer les escaliers. Et puis je vais essentiellement copier quelques autres choses parce qu'à la fin, beaucoup de copies vont se produire ici. Mais tout d'abord, faisons les objets de registre ici. Donc, tout d'abord, cela va être une fois de plus un objet de registre. Notez un objet de Registre du bloc type. Et d'abord, on va faire les escaliers de cuivre. Donc, disons juste pour notre bloc de cuivre, nous voulons vraiment que la série de cuivre aille avec. Mais on va appeler le registre et ensuite ça va être un escalier de soulignement en cuivre comme toujours. Et, et nous allons nous approvisionner avec de nouveaux bornes de vue. Leur bloc. Et un escalier veut un fournisseur d'un certain bloc. Donc, cela signifie essentiellement que nous voulons une sorte de référence bloquée. Dans ce cas, nous allons juste prendre le point de bloc de cuivre, point obtenir l'état par défaut parce que le fournisseur ici fait une fois un état par défaut. Et puis nous voulons aussi les propriétés du bloc. On va juste faire 3h. Et puis avec du fer matériel, encore une fois, un point-virgule. Et en théorie, les séries de cuivre sont faites. Maintenant qu'on a déjà appris, ce n'est pas si facile que toujours, mais on va voir. Donc la prochaine chose que nous allons faire est de faire un objet de registre final statique public soudain. Une fois de plus du bloc de type vont toujours être de type chance. Bien sûr qu'on est dans les blocs de boue et il y aura des ailettes en cuivre. Et nous allons réellement le faire une fois et ensuite nous allons copier cette fonction spécifique ou spécifique, disons que l'initialisation ici nous allons réellement copier parce que cela va rendre notre vie un peu plus facile. clôture, bloc abstrait , point, nope, points propriétés, créer un AM veut obtenir et je dirai matériel que le fer, il me semble être le plus sensible ici. Et je vais en fait copier celui-ci parce qu'à l'exception la plaque de pression, les autres sont assez simples comme gaspillage aussi. Donc la porte est simplement ceci, qu'au lieu d'une clôture, nous allons en fait avoir un bloc de barrière. C' est ça. Oh, c'est bizarre. A tu vas, ok. Et assurez-vous aussi de changer le nom ici. C' est très important que tu ne l'oublies pas. Et là, nous allons avoir les plis de soulignement de la pression de cuivre. Et la même chose bien sûr ici, juste à l'intérieur. Une minuscule au lieu de majuscule. Et puis on aura un nouveau bloc de plaque de pression. Et ça va être que ça va avoir quelque chose de différent ici. Et on va commencer par une plaque de pression. On va avoir une plaque de pression, un point, un point de sensibilité. Et puis on va tout dire. Donc tout signifie simplement que tout ce que nous jetons sur les touches, la plaque de cuivre va réellement l'activer. Et là, nous allons avoir une dalle de cuivre. Et ça va être une dalle de cuivre et aussi un bloc de dalle. Ils y vont. Et c'est tout l'enregistrement nécessaire pour le, pour les blocs. Bien sûr que ce n'est jamais aussi facile. Parce que maintenant, nous allons vraiment devoir créer un tas de modèles différents et, et des choses pour les escaliers, tout d'abord, et ça, nous allons simplement aller dans nos états noirs ici. Et nous allons copier ce fichier JSON. On va nommer cet escalier en cuivre parce que je, comme je l'ai dit, on va faire les escaliers en premier. Et je vais, tu sais, nous sommes qu'on le sait, non ? C' est comme une variante. Oui. Eh bien, l'amour dur. C'est, c'est comme ça que ça ressemble pour les escaliers. Donc, le, l'essentiel de ceci est, en gros, cela définit l'apparence des escaliers, non ? Le modèle de l'escalier est essentiellement défini par ceci. Ouais, c'est, c'est un peu plus de taux. C' est pour ça que j'ai dit que ça va être beaucoup de copies à la fin de la journée, ça va être un peu plus que ce que tu penses. Mais bien sûr, nous n'avons pas encore fini parce que ce ne sont que les états Bloch. Nous devons en fait copier quelques choses en blocs aussi. Donc la première chose que nous allons avoir, c'est les escaliers de cuivre. Et assurez-vous qu'il est écrit correctement. Esquive Jason. Oui. Et ça va être ça. Et en fait, ce n'est pas trop mauvais taux. Il ne s'agit essentiellement que de regarder quelles textures sont affichées sur le fond, sur le dessus, sur, sur les côtés. Ce n'est pas trop mal. Et puis nous avons besoin de deux autres dans ce bloc. Donc, dans les modèles un, nous avons besoin d'escaliers, entrez. Et ce sera fondamentalement le seul changement va être que cela va arriver, cela va avoir des escaliers de soulignement intérieurs au lieu d'escaliers. Et puis nous allons avoir, encore une fois aussi les sphères extérieures. Et cela est nécessaire, bien sûr, quand vous avez quelque chose qui se connecte à autre chose aussi. La dernière chose dont on aura besoin, c'est la définition de l'article ici. Et c'est heureusement comme nous pouvons effectivement copier de celui-ci. Ce sera en fait le plus facile de tous. Je vais faire du cuivre Sears est le seul 11, que je ne vais pas copier parce que c'est si facile. Et puis je vais faire des bouvillons, puis des bouvillons de trémie. Donc, il est fondamentalement juste des références, une fois de plus, au modèle de celui-ci, qui fait essentiellement référence aux textures. Et pour les escaliers, c'est ça. Maintenant, c'est, il est bien sûr un terme relatif, non ? Parce que c'est, c'est un peu. Et ensuite, nous avons 12345 différents, cinq fichiers différents dont nous avons besoin juste pour les escaliers. Et pour beaucoup d'autres, il y aura aussi au moins quatre, peut-être même cinq fichiers JSON différents que nous devons créer. Mais d'abord, on va regarder les escaliers. Et ce que je vais faire, c'est que je vais te montrer la clôture parce que c'est l'une des autres qui est un peu plus difficile. Et puis les autres, les fichiers sont tous, bien sûr encore une fois, comme ressources disponibles. Et puis tu devrais essayer de les faire toi-même. Parce que comme je l'ai dit, beaucoup d'entre eux se contentent de copier. Donc, il n'y a grand-chose à la magie. Ok, on va créer plus et s'éloigner des zombies. Et voyons, on y va. Donc les autres sont en passant, d'accord. Nous avons donc la dalle, la plaque de pression, la barrière et la clôture. Et mais seulement les escaliers ont le comme à la fois un modèle d'article, comme nous le voyons et il semble bon. Vous pouvez réellement les placer et cela fonctionne sans problème. Ils se connectent aussi. Et on peut les placer comme ça. Non, tu vas comme ça. Et comme ça, on y va. Droit. Donc, ils fonctionnent en fait comme des escaliers complètement normaux, comme vous aimeriez tout autre Sears. Maintenant encore une fois, bien sûr, à la fin, si nous les avons, ils ne laisseront rien tomber parce qu'aucune table Lu qui nous arrivera. C' est donc très, très important à ajouter, bien sûr. Et il n'y a pas encore de recette d'artisanat pour eux. Donc, cela devrait également être ajouté. Si c'est quelque chose qui est important. Quand vous avez vraiment lancé le mode, alors vous êtes conscient comme, comme je le ferais notre recette, non ? Donc les escaliers, comme vous pouvez le voir, pas la chose la plus folle. Donc on va fermer tout ça et ensuite on va faire l'attaque de cuivre et la porte de défense. Et je vais faire un peu plus facile pour moi. Je vais juste copier ceux qui ont été complètement supervisés. Ça va être l'état du bloc. Désolé. On va nous arracher. Je vais leur montrer. Donc il va y avoir des copies. Oui, s'il vous plaît. Donc la clôture ressemble à ceci. Encore une fois, tous les fichiers sont disponibles en tant que ressource. Et puis nous avons aussi la barrière, ce qui est un peu plus comme, un peu plus compliqué. Disons que c'est en fait un multipart dans ce cas. Bien sûr, peut également vous assurer que c'est votre MIT ID, n'est-ce pas ? Donc, si vous n'avez pas utilisé le cours de MC malady, bien sûr, changez cela et assurez-vous que le, ces noms sont réellement corrects. Maintenant, le alors nous avons aussi besoin de la clôture. Maintenant, tu vas me dire, c'est fou, non ? Donc, dans les blocs pour la clôture, nous avons besoin. La clôture Gate Defense s'ouvre. La clôture obtenir le mur et le mur de clôture ouvert. Donc ce sont ceux dont nous allons avoir besoin ici. Ce sont tout simplement pour celui-ci, celui-ci, celui-ci et celui-ci. Droit. Alors porte ouverte, porte mur et mur ouvert. Et puis pour la clôture, nous aurons besoin de trois autres. Nous allons avoir besoin de l'inventaire de clôture, poteaux de clôture et côté Fen, comme je l'ai dit, en eux-mêmes seuls les états Bloch sont vraiment les fous avec le contenu d'eux est fou. Les autres sont, sont très faciles à comprendre, vous savez, et ce sens que seul le parent change vraiment. Donc, c'est l'inventaire de la clôture, donc c'est à quoi ressemblerait la clôture dans l'inventaire. C' est à quoi ressemble le poteau de clôture. C' est à quoi ressemble le côté de la clôture. Et maintenant, pour la clôture, nous avons vraiment besoin de bien, tout d' abord, nous avons besoin des articles aussi. C' est encore une fois, pas ça. Je veux dire, un très important pour la clôture Ka'apor, vous utilisez l'inventaire un et pour la porte d'opération dans l'inventaire, vous utilisez un trait de soulignement en cuivre normal, soulignement 8 pour référence en tant que parent. Il y a encore une chose que nous devons ajouter dans ce cas, que nos clôtures soient réunies ensemble. Et c'est-à-dire que nous allons avoir besoin d'un nouveau dossier à côté de notre dossier de données ici. Et ça va être un répertoire appelé Minecraft. Peut-être que vous en avez entendu parler. Je ne suis pas sûr de ça, mais on sait que c'est un petit jeu que tu joues comme 120 millions de personnes sont du foie sévère. À l'intérieur de ce dossier, nous allons créer un autre dossier appelé tags. Et à l'intérieur de ce dernier dossier, on va appeler des blocs. Et en cela, cette fois, il doit en fait être pluriel. Donc, il doit avoir le S aux blocs d'extrémité. Et à l'intérieur de là, je vais créer un nouveau fichier appelé Fancies dot JSON. Et ici, nous avons simplement besoin d'ajouter la, cette ligne où la valeur à l'intérieur des valeurs sont clôture de cuivre est effectivement ajoutée dans. Et puis si tous les fichiers ont été ajoutés, et si je n'ai rien manqué, alors nous devrions pouvoir voir les clôtures en action à l'intérieur de Minecraft. Maintenant, comme je l'ai dit, sont beaucoup de fichiers qui doivent être créés et ajoutés. C' est pourquoi je vais les avoir toutes comme ressources. Et il vaut mieux pour vous de simplement les prendre, les copier, probablement les regarder. Et après qu'on aura vu notre clôture à l'intérieur du jeu, je vais vous montrer où vous pouvez aussi les obtenir si par exemple, ils sont jamais perdus ou, vous savez, si vous ne pouvez pas les trouver ou quoi qu'il arrive, je vous montrera où les trouver réellement. Voyons voir. Donc c'est plutôt bon. Déjà. On va voir ça et ça. Maintenant bien sûr, les noms peuvent être changés très facilement avec l'intérieur de notre dossier Lang, ils nous EN fichier adjacent où nous avons ajouté les noms. À chaque fois. J' ai juste sauté cette étape en ce moment. Alors ajoutons cela puis conduit à la porte et laissez un autre. Donc, cela fonctionne parfaitement bien. Et bien sûr, la porte est ouverte, impossible, comme on s'y attendrait. Et maintenant, plaçons une autre clôture et ils se connectent. N'est-ce pas génial ? Donc, ils se connectent à la fois aux 12 blocs, comme c'est d'habitude avec les infractions. Et ils se sont connectés aux clôtures elles-mêmes. Maintenant, ils ne se connecteraient pas à d'autres clôtures en bois ? Je crois. Alors. Allons juste une clôture ici. On a une infraction. Ils ne devraient pas être connectés. Oui, ils ne le font pas. Droit ? Donc, ils ne se connecteraient pas. C' est une chose très importante à noter, non ? Où trouvez-vous les autres choses dont vous avez besoin ? Flux d'abord, pour les autres ici. Donc pour la plaque de pression dans la dalle, tu vas vraiment prendre le bouton de fin ? Oui, le bouton, j'ai en fait ajouté un bouton ici. Incroyable. C'est C, c'est ça. Je veux dire, mais le bouton est en fait assez facile aussi, va à ce tranquillement ici et veulent voir le bouton NAT. Maintenant, on va faire le bouton de cuivre juste ici. Je veux dire, à ce stade, toujours un bloc de boutons et c'est tout. Je veux dire, ne devrait pas être trop fou pour ajouter n'importe quel additif, vous savez, n'importe laquelle de ces choses. De toute façon. Donc, ce sont quelques-uns de ceux qui sont ces blocs non-blocs. Et où trouvez-vous, par exemple, ces états Bloch ? Eh bien, vous pouvez en fait aller ici à des bibliothèques externes. Et puis quand vous ouvrez le dossier 1.8em juste à l'intérieur de là, nous allons en fait descendre à en fait, ce n'est pas correct. Ce n'est même pas le dossier 18. En fait, on va aller plus loin, mais on doit passer le dossier 18. Et nous allons chercher un client Minecraft net supplémentaire et puis bien sûr la version Minecraft. Et à l'intérieur il y a un pot supplémentaire client, c'est la racine, puis il y a des actifs et puis ce Minecraft, et puis il y a des états Bloch. Et puis vous avez tous les blocs de toutes les choses différentes, non ? Donc ce sont tous les fichiers adjacents qui sont en fait pour Minecraft, vanille. D' accord. Donc tu peux aller aux acacia. Par exemple, vous pouvez dire voir la porte d'acacia. Et puis vous pouvez simplement copier cela. Maintenant, comme vous pouvez le voir, la porte, folle compliqué aussi, parce qu'il y a aussi des charnières et ils ont besoin savoir où tourner et, et toutes sortes de choses. Donc, vous savez, copiez tout ça. Nous devrions changer Minecraft pour votre ID MOD. Et aussi, bien sûr, alors le nom de l'acacia, probablement deux, par exemple, le cuivre. Si vous voulez avoir une porte en cuivre ou tout ce que vous voulez ajouter au jeu. Donc toutes ces choses peuvent simplement être ajoutées. Assurez-vous bien sûr, par exemple, si vous voulez ajouter un taux de trappe, alors allez également dans les données. Non, ce n'est pas juste. Non, non, c'est juste. Dans le modèle. Désolé, bien sûr, je véritable agence, le bloc de plusieurs modèles. Et puis cherchez aussi l'Acacia. Et puis on verra de l'acacia piégé en bas, en haut ouvert, à droite. Donc, ce sont des choses que vous devez surveiller. Chacun de ces fichiers a été ajouté à votre propre répertoire, n'est-ce pas ? Donc, c'est juste quelque chose de très bon à noter que vous pouvez réellement regarder les fichiers d'origine, simplement copier et coller. y a vraiment pas d'autre moyen de le faire dans ce cas. Cuz que j'ai pris correctement, comme saisir tout ce qu'il y a ici. Ça va prendre comme un autre cours de 20 heures, non ? Parce que c'est bien sûr exactement comment quelque chose gère dans ce cas. On ne va pas se préoccuper de ça. Ce qu'on va faire, c'est qu'on sait ajouter ces choses. Maintenant, comme je l'ai dit, nous avons ajouté l'escalier, attaque et la porte de défense. Maintenant, le bouton de bloc appuie sur joué et la dalle. Je suppose que vous pouvez probablement le faire vous-même. Encore une fois, si vous rencontrez des problèmes, n' hésitez pas à me contacter ou à me poser une question. Très important pour les dalles. Ce que je veux simplement mentionner, vous devez également les ajouter dans le dossier blocks pour les balises. Mais c'est heureusement aussi quelque chose que l'intérieur du net Minecraft un, vous pouvez réellement voir ce qu'ils ont eux-mêmes ajouté dans leurs balises de blocs. Donc, vous pouvez réellement voir qu'il y a beaucoup de choses qu'ils ont ajoutées et certaines choses doivent être ajoutées, d'autres pas. Et oui, donc globalement, sont les, disons blocs non-blocs. Et comme toujours, n'hésitez pas à demander s'il y a des questions. Et oui. 53. (Minecraft) Configs de mod: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer nos propres fichiers de configuration. Peut-être que vous allez ajouter quelque chose dans votre mod, que vous voulez réellement avoir le contrôle sur l'utilisateur, n'est-ce pas ? Ainsi, par exemple, la vitesse à laquelle une culture pousse ou un objet sent ou quelque chose de cette nature. Et ce que nous pouvons réellement faire est que nous pouvons réellement créer votre fichier de configuration que l'utilisateur final peut alors changer r modifier. Vous avez probablement vu ça. Et pour cela, nous allons créer une nouvelle classe Java à l'intérieur de notre paquet util, que nous allons appeler config. Et maintenant il y a clause de conflit va avoir l'air un peu bizarre, mais ne pas s'inquiéter, nous pouvons en fait, nous pouvons réellement passer par le, donc tout d'abord, nous allons faire une statique publique et ensuite nous allons avoir un forge une spécification de conflit sur une spécification fixe, n'est-ce pas ? Et ce sera le conflit de serveur car nous aurons besoin d'un conflit séparé pour le serveur et le client. Dans ce cas, il n'a pas encore touché les choses du serveur. Cependant, ne vous inquiétez pas à ce sujet. Il est préférable de le faire dans ce cas, pour tout, afin qu'il soit plus facile d'être ajouté à plus tard, non ? Et puis nous allons avoir une valeur de point spec. C' est un, c'est l'exemple que je vais donner. Donc ce qu'on va faire, c'est qu'on aura une durée de la lueur. Donc, si vous vous souvenez de retour, nous avons ajouté l'événement que quand vous frappez un mouton avec et avec l'entreprise Apple, alors ils vont avoir un effet de lueur. Et cet effet, nous avions une durée définie. Et aussi lorsque vous mangez la pomme, vous avez également 50% de chances d'obtenir cet effet. Et dans ce cas, ce que nous allons faire, c'est que nous allons avoir cette durée de lueur de cuivre comme un conflit qui peut être changé, non ? Alors on va créer un bloc statique ici. Et à l'intérieur de ce que nous allons faire, nous allons créer un, quatrième constructeur de spécifications de conflit, qui va être le constructeur de serveur. Ça va être un nouveau constructeur. Et puis on copiera ça. Et cela va être le client construit dans le constructeur. Et nous allons avoir une nouvelle méthode ci-dessous, qui peut être privée, statique, vide, lumineux, durée. C' est comme ça que je vais l'appeler. Vous pouvez en théorie l'appeler où vous voulez. Et cela va avoir des constructeurs de spécifications de conflits de fusion. Donc, cela va prendre un constructeur de serveur. Et aussi un constructeur. Pas le constructeur de conflits, mais un client, un constructeur, un ego Bilder ? Oui, monsieur. Hé, on y va. Et à l'intérieur de là, nous allons en fait spécifier maintenant ceci. Donc, ce sera la durée de charge conquise égale. Et maintenant, nous allons utiliser le client builder.com. Et maintenant, c'est très important. Ce que nous allons faire ici, c'est que nous ne allons pas lire, eh bien, nous allons lire dans un fichier de configuration, cependant, nous allons aussi écrire un fichier de conflit, non ? C' est donc très important car le fichier de conflit n'existe pas. En fait, on a raison, si elle existe, on va le lire. Donc, c'est fondamentalement le commentaire au-dessus de la valeur ci-dessus ou la variable que nous allons définir. Donc, c'est, par exemple, combien de temps la lueur dure pour quatre pommes de cuivre, non ? Et je vais dire les apports parce que c'est le temps qu'il faut. Et puis nous allons aussi faire définir dans la plage. Donc, c'est très important, ou ce n'est pas important, mais c'est une bonne idée de le faire. Donc ci-dessous, la durée va être le nom de l', ce que l'utilisateur. Fondamentalement, ça va voir, on va le voir assez tôt. Et nous avons une valeur par défaut d'une feuille. Notre valeur par défaut était 600, si je ne me trompe pas. Eh bien, il y en a 300. A l'intérieur de nos événements, il est probablement 600, juste oui, voici 600. Donc on va rester avec 600. Nous allons dire que le minimum doit être 100. Et puis le maximum va simplement être entier cette valeur max. Donc c'est fondamentalement, vous savez, on voit vraiment ce que c'est. Ouais, ouais, 2 milliards et quelques autres. Donc, ouais, en théorie, que ce serait la valeur maximale. Vous pourriez aussi dire, eh bien, je veux dire, si cela n'a pas de sens d'avoir quelque chose comme ça, mais, vous savez, pour nos besoins, nous allons faire une valeur maximale en fonction de la façon dont vous, quelle variable vous voulez définir. Deux, c'est le sensé. Et la méthode suivante que nous implémentons est un vide statique public. Et nous allons appeler ceci le fichier de configuration de chargement. Ici, nous allons passer une spécification de conflit, qui va être conflit et un ressort qui SNP avec un chemin vers le fichier. Maintenant, cela va être une configuration de fichier commenté, qui va être le fichier. On va à toute l'année du constructeur avec un nouveau fichier. Avec le chemin donné. On va faire une synchronisation, une sauvegarde automatique, puis un mode d'écriture, un mode d' écriture, un point Remplacer. Et puis on va construire ça. En fait, je dois aussi implémenter la classe de java.io, donc le fichier java.io. Et puis une fois que cela est écrit, nous devons réellement écrire par chargement. Et puis le fichier de configuration de point de conflit. Ils, on y va, d'accord. Nous allons en fait appeler cela de notre cours MC CourseSmart, mais nous ne sommes pas encore un 100% fait. Donc, dans un résumé très court, ce que cela fait fondamentalement est comme, hey, si le fichier existe, remplacez, si le fichier existe, lisez-le, s'il ne l'écrit pas. C' est comme les formes les plus élémentaires que nous prenons ici ou que je peux l'expliquer. Nous allons appeler la durée du globe avec le constructeur de serveur, puis le constructeur de client qui tissent. Je suis implémenté ici. Et puis à la fin, nous allons aussi dire le conflit du serveur de configuration du serveur, pas le serveur. La configuration du serveur sera égale à la génération du constructeur du serveur. Et la même chose va se produire avec le conflit de clients ici. Donc, ce sera le point du constructeur client. Droit. Maintenant, le fichier de configuration est complètement fait. Si vous voulez ajouter une nouvelle variable, bien sûr, vous devez d'abord l'ajouter ici comme une spécification statique publique, forge, conflit, puis une valeur int ou une valeur double ou tout type de valeur que vous voulez. Et puis aussi vous devez le faire ici pour qu'il soit réellement ajouté dans le. Tout ce que tu veux. Maintenant, soit ce que vous pouvez faire est que vous pouvez créer une méthode ici et ne pas appeler cette durée brillante. Appelez-le en fait, par exemple, pas d'initialisation int, peut-être IntValue ou quelque chose comme ça. Ou, cependant, vous pouvez créer une nouvelle méthode pour chacune de vos variables configurables, chacune de vos configurations, qui dépend de vous. C' est, tu sais, il n' y a pas de chemin en ce sens. Tout ce que vous préférez et cependant vous pouvez lire ce meilleur serait mieux pour vous maintenant au MC, pire MOD plus. Tout d'abord, au tout début, nous allons charger à cela. Nous allons faire le modèle de chargement de contexte dot get. Et puis on va enregistrer les conflits, les conflits boue, ce genre. Nous devons en fait spécifier le type de client ou de serveur. Maintenant, il y a un autre type qui est, que nous allons voir ici. Donc, si je change cela, nous avons aussi commun. C' est quelque chose qui serait configuré à la fois sur le serveur et le client. Cependant, les ceux-là sont, je dirais aussi des choses un peu plus avancées. Ensuite, nous devons faire quelque chose entre ces deux-là. Et ce sera le fichier de conflit de chargement de point de configuration. Je vais dire conflit impair, conflit client, chemins FLM. Donc, c'est fondamentalement le chemin config cher spécifie simplement le répertoire dans lequel les conflits sont dot get, puis nous allons résoudre. Et à l'intérieur d'ici, nous pouvons simplement écrire un, le nom de notre fichier de configuration client. Ainsi, par exemple, MC cours dash client point Tamil. Mais ça devrait être une diatomée, un fichier. Et puis on va faire deux cordes. Oui, on y va. Et puis nous allons copier ceci et faire de même pour le serveur une fois de plus avec votre, et ensuite nous allons juste appeler ça les serveurs EMC humiliés. Et maintenant, si on a fait quelque chose, tout va bien ? Et je crois que nous l' avons fait, nous allons diriger le jeu. Et puis je vais vous montrer où le Hmmm FEC est généré et comment aussi, comment nous pouvons également implémenter dans, par exemple, le placard sur les événements Apple MD d'entreprise. Laissons juste cette charge pour trier. Nous avons donc le menu principal ici. Et puis nous allons arrêter immédiatement. Et maintenant à l'intérieur du dossier d'exécution ici, au lieu du dossier de configuration ici, nous voyons en fait que nous avons client de force AMC et le serveur MC4. Et à l'intérieur d'ici, exactement ce qu'on a fait. Combien de temps la perte brillante pour le niveau de la tasse et les tiques varie plus d'un 100. Et ensuite, nous pouvons vraiment changer cela aussi. Maintenant, nous voulons aussi le changer ici, n'est-ce pas ? Donc, cette durée, et c'est aussi facile que la saisie de point de conflit couvrait la durée de charge. Maintenant, c'est une valeur int et nous voulions, c'est pourquoi nous devons le faire. Et on y va. C'est ça. C' est tout ce qu'on a à faire. Plus d'événements. Nous pouvons faire exactement la même chose. Donc, nous avons un point de conflit Hubbard faible dans la durée, point get. Et puis on y va. C' est-à-dire que c'est tout ce que nous devons faire. Et maintenant, l'effet a en fait une durée variable que nous pouvons définir ici, non ? Donc on peut dire, eh bien c'est 600 ou on peut dire que c'est 50 000 ou 500 000 n'a pas d'importance. On peut, on peut faire ce qu'on veut. Et dans ce cas, l'utilisateur peut aussi faire ce qu'il veut. Ce qui est plutôt cool en fait pour beaucoup de choses. Et c'est aussi facile que de simplement faire un conflit. Et puis le nom de la variable que vous avez spécifiée. Et c'est tout. La bonne chose pour cela est aussi parce que sont des morceaux de code totalement différents. Dans ce cas, nous pouvons nous assurer qu'ils ont toujours la même valeur. Tu pourrais penser qu'on avait peut-être cette lueur de placard. La durée est peut-être référence à 18 endroits différents. Eh bien, si vous avez le numéro écrit à chaque fois, non. Comme un nombre de 300 ou 600. Eh bien, changer ça serait bien, un peu de travail simplement parce que peut-être vous ne savez même pas où, dans quels endroits vous avez réellement, vous savez, commis ce numéro. Donc c'est très utile pour cela aussi, et aussi pour avoir des conflits, n'est-ce pas ? Ouais, donc c'est essentiellement tout pour le fichier de configuration que je voulais couvrir ici. Et encore une fois, n'hésitez pas à demander s'il y a des questions. Et oui. 54. (Minecraft) Exporter votre Mod: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, je vais en fait vous montrer comment exporter votre MOD add dans un fichier jar, que vous pouvez ensuite utiliser dans un pack MOD ou dans, ou une version normale de Minecraft. Et cela va en fait être assez facile. Tu vas juste aller jusqu'au terminal et tu vas taper Gradle w, Build. C' est ça. Entrez. Et puis on va juste attendre un peu. Donc il va faire toutes sortes de choses en arrière-plan qu'il va compiler. Et c'est-à-dire que c'est essentiellement tout ce qui devait arriver. Et maintenant, nous devons réellement naviguer vers le répertoire ici. Et si nous faisons ça, nous pouvons vraiment le voir. Donc on va juste vite, je vais vite partir de l'autre jour où on va là-bas, c'est ça, donc c'est le répertoire. Et à l'intérieur d'ici, nous pouvons aller dans le dossier Build. Au lieu de la facture pour Rho, nous allons à la vie et au lieu d'ici, nous avons MC pire et puis inversion un pot. Maintenant, comment on peut vraiment utiliser ça, eh bien, ce que je vais faire, c'est que je vais aller au lancement de Twitch. Je vais réellement créer un profil personnalisé. Je vais te montrer ça. Donc, c'est le lancement twitch où, par exemple, nous avons quelques packs de plus que j'ai déjà joué. Et puis à l'intérieur d'ici, nous allons réellement créer un nouveau profil avec la version 3 là-bas. Et nous utilisons réellement le, nous avons effectivement utilisé 3410 parce que c'était la version que nous avons téléchargée au début du cours. Et profil, ça va être Mc. Pire, testez, créez cette charge de peu de choses. Et puis ici, nous pouvons réellement ouvrir le dossier et ensuite obtenir un nouveau dossier ici. Et au lieu de mods, vous pouvez simplement faire ce qui suit. Vous pouvez simplement prendre ce pot, copier, le coller dans des modèles, et c'est tout. Et puis jouez. Voyons maintenant si cela fonctionne réellement. Donc ici, nous pouvons voir que c'est le profil que nous voulons faire. En fait, je suis déjà connecté. Vous devrez peut-être vous connecter d'abord, puis jouons. Et voyons ce qui se passe réellement ici. Donc quelque chose va se charger et quelqu'un va ouvrir. Mais c'est ce que nous voulions ? On va voir ça. On va voir ça très bientôt. Donc, tout d'abord, bien sûr, nous allons une fois de plus obtenir de la musique qui s' éteint pour les besoins de cette démonstration ici. Et bien que nous ayons trois Maslow et regardez ce mode MC, c'est fou. En fait, nous allons simplement créer un nouveau monde. Créatif aussi bien. Oui, créons un nouveau monde et voyons si ça marche vraiment. Donc, vous pouvez imaginer que cela pourrait aussi être, bien sûr, un tarif MEDPAC avec un 120 mois, tous les modes ou quoi que ce soit. Et puis nous pouvons nous retrouver quelque part pendant que nous répondons dans une île qui est, c'est celle d'Hilary. Ok. Eh bien, voyons voir. Bien sûr, l'étape principale est là dedans. Et tout ce que nous avons fait ou pas fait, comme les boutons sur les dalles. J' espère que vous avez fait ça. Ils sont en fait en jeu sans aucun problème. On peut les placer. Vous avez les blocs de trémie biotiques et nous avons a0, le casque par exemple. Le casque, attendez, on y va. Il est en fait mis ça. On y va. Eh bien, n'est-ce pas génial ? Et c'est plutôt sympa en fait. Je veux dire, c'est comme ça que vous exportez le modèle. Comme je l'ai dit, ce n'est pas une chose difficile ou assez compliquée. C' est une, fondamentalement une commande que vous devez mettre en place. Et, et si vous voulez ajouter ceci à un certain mods, pack fou, ou un profil, ou si vous voulez donner cela à quelqu'un d'autre. Vous pouvez donner, donnez-leur simplement le pot. Et puis ils peuvent l'utiliser simplement comme ils le feraient dans n'importe quel autre modèle, fondamentalement. Écrivez. Cela résume également la majeure partie du cours. J' ai encore une conférence après ça. On va juste parler un peu d'un pourboire que j'ai pour beaucoup d'entre vous. Et puis il y aura aussi essentiellement la conférence où je vais vous dire comment vous, comment ce cours va se terminer et tout cela. Donc oui, j'espère que tout ici vous a valu de la valeur. J' espère que ça vous a plu. J' apprécierais, bien sûr, un examen. Et oui. 55. (Minecraft) Utilisez des exemples de Github pour le code source: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, je ne suis pas à l'intérieur de l'IDE. Je suis en fait sur GitHub. Et la raison pour laquelle je suis sur GitHub est en fait parce que je veux vous montrer quelques conseils qui pourraient vous aider dans le développement futur de votre mode. Lorsque vous portez réellement faire un mode sérieux avec des choses réelles et vous voulez réellement le créer afin qu'il puisse être publié au public et dire juste. Donc, ce que vous devriez faire est que vous devriez aller à GitHub, vous pourriez obtenir, vous devriez obtenir un compte, c'est gratuit. Et puis vous pouvez réellement rechercher vos mathématiques préférées, non ? J' ai choisi trois de mes mathématiques préférées. Il y a donc l'ingénierie immersive, le mécanisme et l'agriculture mythique. Et ces trois sont en fait tous mis à jour pour la dernière version dans notre cas où 1.16, trois en ce moment. Et dans ce cas, nous pouvons réellement regarder le code source qu'ils ont écrit, n'est-ce pas ? Que les gens de ces matchmakers là-bas ont écrit. Donc on peut juste entrer dans la source ici. Donc, dans l'ingénierie immersive, et vous pouvez aller à main, puis Java. Et c'est fondamentalement les mêmes choses que nous avons faites par nous-mêmes, non ? C' était, c'était Java et celui-ci pour nous était calme Copan Joe et une ingénierie immersive était cours MC pour nous. Et puis nous n'avions pas l'API, client et la différence commune ici ou les dossiers, mais nous avions notre propre fichier Java, non ? Et on peut juste examiner ça. Alors on peut regarder comment ils ont fait quelque chose, non ? C' est donc ce que nous avons fait aussi. On avait une carte d'identité publique au printemps. Nous n'avions pas le nom du MOD, nous n'avions pas la version simulée. C' est, par exemple, quelque chose que vous pourriez faire. Et puis il y avait beaucoup de choses ici que nous n'avons même pas abordées parce que d'autres choses sont folles compliquées qui ont besoin de beaucoup plus de connaissances sur les fondamentaux et ici. Mais la meilleure façon d'apprendre est d'essayer quelque chose de nouveau. Vous pouvez également essayer de fourcher ceci. Donc, vous pouvez simplement télécharger le déforest, le code source de l'un de ces modes, puis le lancer vous-même, n'est-ce pas ? Donc, vous avez un, vous avez fondamentalement le code source des smarts puis téléchargé et vous pouvez simplement jouer avec elle, non ? Donc, vous avez une copie locale de ceci. Vous pouvez jouer avec. Vous pouvez réellement changer le code, voir ce qui se passe. Donc c'est une vraie chose à propos, vous savez, dans huit heures, vous n'allez pas créer, disons la prochaine ingénierie immersive le prochain mécanisme ou la prochaine agriculture mystique. Ça ne va tout simplement pas marcher comme ça. Vous allez devoir travailler un peu plus sur vous tous que vous avez appris et vous devez miser sur ce taux. Et c'est, je pense que l'une des meilleures façons de le faire. Passez par ces fichiers, pensez à votre masse préférée que vous avez. Regardez-les, regardez comment ils l'ont fait. Vous pouvez aussi retourner dans le passé en gros, n'est-ce pas ? Ainsi, vous pouvez également aller dans un précédent, versions précédentes ici taux, par exemple. Ou vous pouvez revenir dans le passé avec ce bouton historique essentiellement. Donc vous pouvez regarder ce qui a changé, dans quelle version et tout cela est que vous pouvez juste passer par et voir, ok, comment est-ce que c'était le travail de Harris et ça va être difficile parfois, non ? Ça va être ou je ne comprends pas ça, je ne comprends pas ça. Tu sais, ça, tout vient avec le temps. C' est aussi, bien sûr, pourquoi j'ai dit que Java est simplement une exigence. Sinon, vous serez perdu dans celui-ci. Certainement. Bon, alors allons juste pour le mécanisme, juste pour l'argument aussi. Donc mécanisme et celui-ci est que je crois en client je ne suis pas sûr. Non, c'est en fait commun. Eh bien, ils le feront. Carmen et le mécanisme point Java. Et puis nous pouvons aussi voir certaines choses qu'il a. Donc les gestionnaires de paquets, l'enregistreur, nous, nous, nous, nous avons déjà vu le logarithme avant. Et il a aussi un gestionnaire de radiations parce qu'il a ajouté irradiation et un mécanisme prêts et genre de choses là où nous allons. Nous avons donc ces auditeurs, nous en avons trois, vous avez vu quelque chose de très similaire à cela. Il y a des événements qui sont enregistrés. Donc vous oh, vous verrez toujours une sorte de similitudes de choses que vous avez déjà vues. Mais aussi bien sûr, vous verrez peut-être tout ce que j'ai vu, que je ne l'ai pas vu, c'est intéressant. Et dans ce cas, vous pouvez aussi, c'est vraiment cool parce que ce que vous pouvez faire, c'est que vous pouvez réellement passer le curseur sur ceux-ci et ensuite cliquer sur eux. Et puis, par exemple, si vous voulez savoir, comment fonctionnent les données multi-blocs de réservoir ? Vous savez, vous pourriez juste y aller et maintenant vous êtes sur les données multi-blocs de réservoir, java, le fichier java. Et puis tu pourrais juste le regarder, non ? Vous pouvez regarder toutes sortes de choses. Maintenant, encore une fois, ce ne sera pas une chose où vous le regarderez. Et dans un cas, vous allez tout comprendre correctement. Vous devrez réellement travailler à travers cela et, et regarder un peu et aussi essayer quelque chose, non ? Parce que vous ne pouvez pas apprendre quelque chose si vous ne l'essayez pas, et si vous n'adaptez pas quelque chose et si vous y travaillez , c'est fondamentalement un peu comme un élan que je veux vous donner aussi. Juste pour, juste essayer, juste essayer des choses pour être créatif avec cela et pour ne pas être découragé même si parfois cela ne fonctionne pas. Et si vous voulez vraiment créer un modèle, je vous recommande fortement de regarder cela, regardant les modes que vous aimez. Peut-être même cela, peut-être que vous voulez avoir ce mod et que vous voulez changer un peu ou juste votre créativité vraiment les limites étranges à cela autre que votre créativité, ce que vous pouvez penser. Alors allez là-bas, vous savez, créez un modèle tueur. J' adorerais ça. Et bien sûr, la chose la plus importante si vous avez réellement créé un vraiment, vraiment Janvier, s'il vous plaît envoyez-moi un lien ou un aperçu ou même un repo GitHub à cela parce que j'aimerais le voir. J' adorerais le voir. Donc, et oui, je pense que c'est tout pour l'instant. J' espère que le cours a été d'intérêt pour vous et en fait vous a obtenu. Peut-être qu'un incendie a commencé. Et que vous voulez vraiment créer quelque chose et que vous apprenez quelque chose ici. Et oui. 56. (Minecraft) utilisez GitHub comme système de contrôle de version: Bon, bienvenue au cours de micro-ondes. Et dans cette conférence, nous allons jeter un coup d'œil sur la façon dont vous pouvez importer ou télécharger votre dépôt Git. Donc, votre mod Minecraft à un dépôt GitHub. Maintenant, il y a deux choses qui sont très importantes. Comme je ne vais pas vous donner un, disons une compréhension théorique de GitHub. Ce n'est pas le bon en général. Ce n'est pas le but de cette conférence. Le but de cette conférence est juste de vous montrer comment vous pouvez l'ajouter à GitHub. Et je vais vous donner cependant, trois liens comme une ressource. L' un bien sûr est github.com. Je dirais que cela a le plus de sens. Vous aurez besoin d'un, un compte là-bas, mais il est complètement gratuit, donc pas de soucis là-bas. Je vais également vous donner ce lien vers le JetBrains.com. Donc, c'est une idée intelligente, fondamentalement comment mettre en place un dépôt Git. Là. Il est expliqué fondamentalement exactement ce que j'explique ici est expliqué là dans beaucoup plus de détails en fait. Et puis je vous donnerai aussi le lien de téléchargement. Oubliez, maintenant je ne suis pas sûr à 100% que vous en avez besoin parce que je pense que jusqu'à ce que j vienne avec Git lui-même, mais je ne suis pas sûr à 100%. Donc, si quelque chose ne fonctionne pas, vous devrez peut-être télécharger ceci, mais passez par le. Nous sommes probablement avec cela, avec le, ce tutoriel ou avec ma conférence ici d'abord. Et puis si, par exemple, dit, hey, vous n'avez pas installé Git, alors vous pouvez installer Git. Sinon, je ne m'en occuperais pas. droite. Donc, c'est essentiellement le préambule ici. Et puis, allons-y, faisons ça. Donc, tout d'abord, nous voulons créer un nouveau dépôt. Donc, sur GitHub, nous voyons ce nouveau bouton ici. On va cliquer dessus. Et nous allons dire cours de dépôt MC. Bien sûr. C' est logique. On va laisser la description vide et on va rendre ça privé. Ainsi, vous pouvez choisir de rendre un public ou privé juste pour être sûr qu'un public, n'importe qui peut le voir. Et en privé, vous pouvez choisir qui peut le voir, n'est-ce pas ? Tout ce dont on n'a pas besoin. Donc, nous allons simplement créer un dépôt. Et on y va. Configuration si rapide, cela signifie simplement qu'il n'y a rien ici en ce moment. Donc nous n'avons pas de succursale, nous n'avons rien là-dedans, et c'est exactement ce que nous voulons. Alors ce qu'on va faire, c'est qu'on va copier celui-là, non ? Donc, nous pouvons simplement cliquer sur ce bouton de copie et puis il va copier ce HTML. Il y a plutôt l'URL. Et puis nous allons dans notre projet de cours MC MOD. A l'intérieur d'ici, nous voulons, tout d' abord aller à Paramètres de fichier. Et puis sous contrôle de version dans GitHub, vous voulez ajouter votre compte GitHub.com. Il vous suffit de cliquer sur le bouton plus. Et puis quand vous allez, je suppose que vous pouvez faire l'un de ces jetons via GitHub et ensuite cela va vous inviter à vous connecter à GitHub. Donc, tout fonctionne est médicalement, vous n'avez pas besoin d'entrer votre mot de passe nulle part sauf pour GitHub lui-même. Et ça devrait alors fonctionner et vous devriez avoir votre compte là-dedans, n'est-ce pas ? Et une fois que cela est là, vous pouvez aller ici à VCS tel que pour le système de contrôle de version. Et puis lorsque vous allez dans le contrôle de version d'importation, vous dites créer un référentiel Git. Et ce que vous pouvez faire est que vous allez sélectionner votre, votre répertoire où vous avez votre mod i_n. Donc, devrait être réellement sélectionné par défaut. Cliquez sur OK. Et ce qui va se passer, c'est que beaucoup de choses vont devenir rouges. Ne vous inquiétez pas pour ça. C' est tout normal. Et puis ici où vous allez voir dans de nouveaux boutons apparaître. Ce sont de bons boutons. Et en bas à droite, vous allez voir celui de ce maître. Donc c'est votre branche que vous allez avoir. Beaucoup de choses vont apparaître. Ne vous inquiétez pas pour ça. C' est, tout va bien. Maintenant, le rouge ne veut pas dire qu'il y a des flèches. Cela signifie simplement que vous ne les avez pas engagés. Et on va le faire tout de suite. Donc ce qu'on va faire, c'est aller à celui-ci, à la, à la coche et dire « commit ». Et on va juste cliquer dessus. Et puis il va dire que nous avons un 182 fichiers d'inversion. On va juste les sélectionner. Et puis nous allons dire que c'est notre engagement initial. En bas, vous pouvez voir les maîtres de cela va être à l'intérieur de la branche maître. C' est tout à fait bien. On peut laisser ça. Et puis nous allons cliquer sur Commit. Maintenant, il va ajouter les fichiers au système de contrôle de version. Maintenant, il regarde l'analyse va aimer dire, oh, voici le code, très bien. Y a-t-il des flèches là-dedans ? a-t-il les avertissements là-dedans. Il va nous dire qu'il y a quelques avertissements en ce moment. Ne vous inquiétez pas pour ça. On va juste s'engager. Les avertissements sont surtout les choses que nous avons, nous avons ignorées. Parce que parfois il y a des avertissements que nous devons ignorer. Et parfois, je ne supprime pas les avertissements avec un, avec une annotation. On devrait probablement le faire, mais ce n'est pas nécessaire, non ? Et maintenant, comme vous pouvez le voir, plus rien n'est lu. Mais si nous revenons à la, si nous revenons au GitHub, si nous rechargeons ceci, il n'y a rien ici. Donc, et nous avons eu un n'a même pas mis le, mettre l'URL n'importe où, n'est-ce pas, alors, pourquoi ? Qu'est-ce qui se passe ? Eh bien, nous devons ajouter l'URL, donc nous avons maintenant un contrôle de version local, mais nous n'avons pas le contrôle de version à distance. Et à distance veut dire quelque part ailleurs, non ? Donc, c'est celui qui est sur GitHub et nous devons l'ajouter aussi. Maintenant, comment ajouter cela ? Eh bien, on peut juste ajouter ça en disant « push ». Et puis il dira, eh bien, tout d' abord, tu devais trouver une télécommande. Je ne sais pas où le pousser. Et nous allons juste cliquer dessus, puis coller dans l'URL que nous avons copiée à partir de GitHub et dire, OK, il va vérifier si oui ou non tout va bien et bien sûr tout va bien. Et puis on va dire « pousser ». Maintenant, il télécharge tous les fichiers pour se lever. Donc, vous pouvez voir ici qu'il pousse et puis il dit pousser maître à la nouvelle branche origine slash muscle. Et si vous allez au cours MC maintenant sur ce, sur GitHub ou sur notre dépôt GitHub et rechargez. Comme vous pouvez le voir maintenant tout est ici et tout va bien droit ? Maintenant. La bonne chose ici est qu'une fois que vous changez quelque chose dans votre code, alors disons , par exemple, juste à titre d'exemple, nous allons ajouter un commentaire vraiment important, non ? Et nous allons sauver ça, comme vous pouvez le voir, maintenant, ce fichier est bleu. C' est parce qu'il y a eu une modification à ce fichier. Et puis disons qu'on va ajouter une rage. Lee, commentaire très important ainsi, juste, juste pour des raisons d'argumentation. Donc on va avoir deux dossiers. Voyez qu'ils seront bleus quand vous les aurez modifiés. Et la façon dont vous pouvez maintenant télécharger ceci est simplement en commettant une fois de plus, n'est-ce pas ? Et puis vous pouvez dire ajouté des commentaires importants, n'est-ce pas ? Et puis vous pouvez dire commit ou vous pouvez cliquer sur cette petite flèche et dire commit et push, puis il va immédiatement le pousser dedans. On va dire que je me fiche des avertissements. Comme je l'ai dit, nous ne nous en soucions pas. Vous pouvez superposer. Vous pouvez également simplement examiner ce qui a changé et inconstant. D' accord, poussez-le et, et en le poussant, ça va te dire, tout va bien se passer. Maintenant, en ce moment, si nous rechargeons ici, nous pouvons voir ça s'en aller. Importantes Communes. Maintenant, l'important est que nous ne travaillons actuellement que sur une branche. Mais comme je l'ai dit, je ne veux pas que cela, disons dévolue dans un tutoriel GitHub complet. Je voulais juste te montrer comment tu peux le sauver. Et c'est une bonne idée de regarder à la fois le dépôt GitHub ici. C' est en fait une bonne ressource à avoir aussi. Et puis je verrai si je peux trouver une bonne ressource. Je pense que sur GitHub il devrait y avoir quelques exemples sur la façon savez-vous comment brancher certaines choses et donc oui. droite. Oui. Et c'était essentiellement tout ce que je voulais vous montrer comment vous pouvez télécharger votre MOD GitHub et nous allons nous assurer qu'il enregistre correctement que vous avez un bon système de contrôle de version. Et oui, donc s'il y a des questions bien sûr 3-3 poser, je tiens à vous rappeler que c'était juste une petite introduction ou un aperçu. Je doute que je vais aller beaucoup plus dans tout ce qui concerne, pour obtenir, parce que ça ne devrait vraiment pas être l'accent principal ici sur ce cours. Mais oui, non, mais comme je l'ai dit, j'espère que ça fonctionnait pour toi. S' il y a des problèmes, bien sûr, hésitez pas à demander et je serai sûr de répondre. Et oui. 57. (Minecraft) et version d'orge en courant et minecraft (16.4): Bienvenue à cette conférence spéciale dans le cours Minecraft. Et ici, nous allons réellement mettre à jour vers la dernière version de Minecraft. Donc 1.16.4. Et j'ai déjà localisé le site de la forge Minecraft. Il y a juste sur le site des microformes normales et puis assurez-vous que vous êtes à 1164. Comme nous pouvons le voir, la dernière version est 1164 puis 30, 5.0.2. Et nous n'avons pas besoin de télécharger quoi que ce soit. Nous pouvons changer cela dans notre fichier de construction Gradle. Maintenant, notez très important que ce n'est que la dernière version et qu'il a ce petit bug ici, ce qui signifie que c'est une sorte de version bêta et une version de débogage. Et cependant, nous allons l'utiliser pour l'avenir et il ne devrait rien casser et tout ce que nous allons faire devrait fonctionner pour les deux versions. Il peut y avoir des mappings qui sont changés à l'avenir, mais tout cela est fait dans une autre, dans une conférence différente aussi. Donc on va passer par ici. Et comme on peut le voir, c'était l'ancienne version. Et puis on va changer ça à 4350, puis a2. Et puis on va sauver ça. Et nous allons juste charger les changements Gradle. Ça va prendre un peu parce qu'il doit tout télécharger. Et nous allons réellement ouvrir ça dans la construction. Et puis il va télécharger un tas de trucs, télécharger l'instantané et tout ce jazz. Et une fois que c'est fait, nous avons mis à jour. Bon, donc tout semble être fait et ça a pris environ deux minutes, comme vous pouvez le voir ici. Donc, selon la vitesse de votre ordinateur, cela peut prendre un peu plus de temps ou peut-être que cela va être plus rapide. Et nous pouvons juste exécuter ceci et voir si oui ou non tout a fonctionné. S' il y a des choses, alors ils devraient apparaître comme des flèches et le client ne devrait même pas courir. Mais je crois que tout va bien se passer. Donc on va juste voir qu'il est déjà ouvert ici. Donc je crois que tout va marcher et nous allons voir les premières choses ici, avertissement forge, bêta. Donc, comme je l'ai dit, c'est la version bêta des mots. Cependant, en général, il n'y a pas autant d'erreurs et de folie. Et s'il y en a, alors vous pouvez toujours mettre à jour. Donc, surtout pendant que vous êtes dans le Veda, il est bon de vérifier périodiquement le site pour les mises à jour et peut-être même pour une version stable. Donc, je conseille certainement de le faire. Et une fois qu'une version stable est notre, alors vous devriez utiliser cette version stable. De toute façon. Alors allons juste dans, d'accord. Donc c'est parce que nous avons joué ce monde et 1163 et maintenant nous avons mis à jour. On va juste dire, je sais ce que je fais. Si le monde se brise, je doute que ce soit des pauses parce que nous n' avons rien de fou qui pourrait se briser. Je ne pense pas. Oui. Donc tout fonctionne. Et tout est encore là ? Tout semble encore fonctionner très bien. Oui. Alors que tout semble fonctionner assez bien. Et c'est essentiellement comme ça que vous mettez à jour, comme je l'ai dit, de 1 16, de 3 à 1, 16 pour rien n'a vraiment changé autant pour nous en ce moment. Et tout le reste va être fait en 116 Pour donc oui. 58. (Minecraft): Bon, bienvenue au cours de Minecraft, à cette conférence spéciale pour mettre à jour les mappings. Et cela va être une très courte conférence. Et ici, je vais juste mettre à jour la cartographie. Donc je vais le montrer une fois avec cette vidéo. Et puis en tant que ressource ici, je vais avoir les mappages mis à jour que vous pouvez utiliser, qui seront les plus à jour. Fondamentalement, ceux-ci devraient être mis à jour. Je ne sais pas combien de fois ils sont mis à jour en fait, en termes de forge. Cependant, je vais probablement mettre à jour cela environ une fois par semaine. Donc le pire des scénarios, vous êtes parti d'une semaine environ. Mais je suis sûr que ça va se passer. De toute façon ou tu peux, tu pourrais les chercher toi-même. Ce n'est pas la chose la plus importante de mettre à jour les mappings que souvent. Cependant, cela peut être utile. Donc, nous allons juste relancer ça rapidement. Donc j'ai collé ça. Comme je l'ai dit, ceci est disponible en tant que ressource. Et vous pouvez simplement taper le type à partir de l'écran. Je veux dire, ça ne va pas être, je vais être la souffrance la plus folle si on est absolument honnête, voyons. Donc, il va télécharger le mappé. Les mappings encore une fois. Et ce qu'ils sont fondamentalement juste pour que nous n'ayons pas ces méthodes de soulignement Fung 2869 soulignement BY, mais ils ont en fait des noms. Et je crois que nous avons un exemple que nous devons changer si je ne me trompe pas, et ce sera dans le plus d'éléments, je suis assez certain qu'ils le sont. Nous avons la résistance BEC frapper et c'était un, c'était une méthode funk sans nom propre. Et on peut juste réparer ça. Mais nous verrons qu'une fois la, une fois que les mappings ont vers le bas. Et à noter, peu importe que ce soit 1163. Cela va également fonctionner en 1164. Et maintenant, si nous allons réellement aux éléments de mod, je crois que oui, nous avons une flèche ici parce que ce fonds a été mis à jour et cela est en train de se faire renverser la résistance. Et ils y vont, oui, et c'est essentiellement tout ce que vous devez savoir. Une autre ressource que j'ai également fournie est la cartographie officielle des forges. La feuille officielle de cartographie de forge ex Excel, où vous pouvez, par exemple, si vous ne saviez pas que ce n'était pas une grande résistance, vous pouvez le prendre, copier et le trouver dedans. Et puis ça va dire ce que c'est. Donc oui, alors tout est que tout le reste va très bien fonctionner. Je crois que c'est rien d'autre. Je vais juste commencer juste pour le juste pour que nous puissions voir que tout va marcher. Mais je crois que c'est le cas. Sinon, on ouais. D'accord. Tout va marcher. D' accord. Tout fonctionne. Je l'ai juste arrêté. Donc, aucun autre mappage n'a réellement à être mis à jour. Et oui, ce n'est qu'une courte vidéo. Il suffit d'échanger rapidement cette chaîne ici. Et oui. 59. (Minecraft) Des tableaux de séance avancés: Bon, bienvenue au cours de micro-ondes. Et dans cette conférence, nous allons examiner certains types de tables de butin avancés. Donc la première chose que nous allons examiner est comment pouvons-nous, par exemple, avoir une goutte d'un bloc semblable à Redstone, n'est-ce pas ? Donc, quand vous cassez un Redstone ou un bloc, vous pouvez avoir deux ou jusqu'à cinq ou six morceaux de Redstone en fait tomber. Et puis cela est également modifié par la statistique de chance. Cependant, nous allons voir comment nous pouvons définir un compte. Combien d'objets vont tomber d'un bloc ? Et je vais juste copier ça et passer par là. Donc, comme vous pouvez le voir, ce n'est pas si similaire. Très similaire en fait, ce n'est pas si compliqué et différent de la chute normale. Ce que nous avons changé ici, c'est que nous avons ajouté cette liste de fonctions. Et ici, nous pouvons définir plusieurs fonctions. Dans notre cas, nous n'avons qu'une seule fonction définie. Et c'est la fonction setCount. Je vais, à la fin de la conférence, je vais vous montrer toutes les fonctions qu'il y a. Et je vais vous donner une ressource qui vous permettra d' approfondir les connaissances sur le fonctionnement des tables Lou. Oui, et cela signifie simplement que le compteur minimum est deux. Donc, à chaque fois que je casse le bloc de cuivre, deux à cinq tasses tombent. Bien sûr, dans ce cas, ça n'a pas vraiment de sens. C' est, cependant, juste une démonstration, n'est-ce pas ? Je ne vais pas montrer ça maintenant, donc je ne vais pas jouer. Mais cependant cela fonctionne Et aussi important, c'est une distribution uniforme. Si ça te dit quelque chose, alors tu sais ce que ça veut dire. Si tu n'as aucune idée de ce que ça veut dire, ça n'a pas vraiment d'importance. Vous pouvez regarder ça. Je voulais juste te le dire. D' accord. C' est l'une des choses. Donc, plusieurs éléments ou comment savez-vous le chaud définissant combien d'éléments tombent ? Mais que diriez-vous de plusieurs gouttes fonctionne alors aussi. Donc, nous pourrions imaginer que peut-être nous voulons un bloc de cuivre perde 20 % du temps et 80 % du temps que nous voulons réellement que le fil de cuivre tombe. Et c'est tout ce qu'on a fait ici. Donc, à l'intérieur des entrées, nous venons d'ajouter une nouvelle entrée. Et on leur a donné des poids tous les deux, non ? Ils sont donc maintenant dépendants les uns des autres dans le sens que 20% du temps un bloc de cuivre tombe et 80% du temps que le fil de cuivre tombe. Maintenant, dans ce cas, avec la fonction proche, nous pouvons juste garder ça là-dedans. C' est donc très modulaire. Disons qu'avec une fonction ici, nous pouvons réellement avoir ce soit exactement la même chose. Ainsi, 80% du temps que le fil de cuivre tombe et 20% du temps entre 25 blocs de cuivre tombent. Donc c'est la chose géniale ici. Peut-être que nous ne voulons pas non plus ou laisser tomber ce que nous voulons tous les deux et avoir une chance indépendante, disons. Nous allons donc aussi examiner cette question. Donc c'est un peu plus comme vous pouvez le voir. Donc, ça devient un peu plus complexe, plus on descend ici. Et ce qui se passe ici, c'est que nous avons en fait plusieurs pools cette fois. Donc avant qu'on ait plusieurs entrées, non ? Maintenant, nous n'avons qu'une seule entrée. Maintenant, nous avons plusieurs piscines, n'est-ce pas ? Donc, chacun de ces pools, nous pouvons réellement spécifier à l'intérieur d'une entrée ici. Hey, c'est une chance aléatoire de, par exemple, une condition chance aléatoire 0,5. Donc, ici, la couverture, pourquoi va toujours tomber ? Ça va toujours arriver. Et ici, le bloc de cuivre, donc entre 35 va tomber 50% du temps avec cette condition de chance aléatoire. Et la grande chose que j'ai en tant que ressource est en fait ici dans les tables de jeu PDR Lu, à savoir. J' admets que c'est comme les ressources de premier ordre pour voir comment les bandes en boucle fonctionnaient fondamentalement. Et ici, vous avez toute la taxe et cela va prendre peut-être un peu de temps, donc quelques instants pour savoir comment cela est organisé. Mais une fois que vous avez appris à lire cela, c'est vraiment, vraiment non seulement intéressant, mais aussi très utile. Donc, il, par exemple, il ya des fonctions qui peuvent être utilisés appliquer le bonus est pour les enchantements. Par exemple, nous avons, qu'est-ce que nous avons enchant au hasard. Donc, c'est quand nous, comme vous pouvez le voir, quand nous avons des objets qui sont abandonnés que nous aimerions enchanter cela. Donc, quand les articles ont chuté, à droite, nous pouvons limiter les comptes afin que nous puissions dire, hey, c'est peut-être le spécifier combien, combien de gouttes tombent réellement. Il y a tellement de choses ici, comme vous pouvez le voir. Nous avons aussi des conditions dans le prédicat ici où nous avons différentes choses que nous pouvons utiliser. Nous pouvons regarder les propriétés. On peut voir si quelque chose a été tué ou non par le joueur. Nous avons la chance aléatoire que je vous ai déjà montrée à partir des conditions. Donc il y a beaucoup de choses ici. Et je recommande fortement si vous voulez tables Lu très spécifiques qui ne sont pas du type que j'ai montré. Ensuite, vous devez passer par ceci et utiliser ceci. Bien sûr encore une fois, vous pouvez également passer par le GitHub de mods qui pourraient avoir des fonctionnalités similaires que vous voulez utiliser. Mais c'est une très bonne ressource pour les choses générales si vous ne trouvez rien là-bas. Ouais, c'était quelque chose pour les tables Lu avancées. Et oui. 60. (Minecraft): Bon, bienvenue au cours de Microsoft et dans cette conférence, nous allons créer nos propres cultures. J' ai donc préparé une nouvelle récolte. Donc ça va être une culture de courgettes. La première chose que je vais dire, c'est que les textures ont été faites soi-même, mais je ne suis pas un artiste. Donc ils n'auront pas l'air super. Mais ce sera quelque chose pour plus tard dans la conférence. Tout d'abord, nous allons aller sur notre paquet de blog et nous allons créer notre classe de culture de courgettes. Cela va s'étendre à partir de blocs de cultures. Et nous allons simplement obtenir le correspondant, le constructeur correspondant. Et nous allons remplacer les deux méthodes. On va être le fournisseur d'article, qui va être l'élément get seats. Cela va essentiellement juste retourner la graine. Maintenant, bien sûr, nous n'avons pas encore cela dans nos articles MOD. Donc, nous allons le faire dans un peu de temps. Et puis on voudra aussi une forme de voxel. Et ça va être en bonne forme. Avec un état de bloc. Non, oui, en fait, c'était l'état sauvegardé de bloc correct. Un lecteur de bloc I, qui va être le monde. Une position de bloc, une position et un contexte de sélection des yeux. Celui-ci, qui va être contexte, la position du robot doit en fait être importée. On va juste faire ça avec les vieux et entrer. Et cela va retourner quelque chose et nous avons réellement besoin des formes et de les importer. Vous pouvez simplement faire le contrôle, puis cliquez avec le bouton gauche de la souris sur le bloc de cultures. Et ici, nous avons en fait cette forme de H. et ça va être quelque chose que nous allons utiliser cette traction, ces formes, ces formes. Et cela définit fondamentalement comment le, à quoi ressemble le bloc. C' est la même chose que le blé. Et ça va être des formes. Et puis ça va être à l'intérieur. Nous allons faire état encore ce point obtenir la propriété H. Et ce que cela fait essentiellement, c'est qu'il obtient la forme qui correspond à chacun des âges de la, de la, dans ce cas, la culture de courgettes. Donc, il va grandir de plus en plus comme vous l'avez probablement vu avec le bloc de blé aussi. Droit ? Et puis on va aller dans les modèles et on va créer nos courgettes. Et on va faire ça sous l'armure. Cela va être un objet de Registre final statique public de type élément. On va être la graine de courgettes. Et puis tu allais faire l'inscription. Inscription que les éléments. Maintenant, c'était exact. Articles. Le registre va être le bloc de courgettes. Non, c'est un siège piquant, bien sûr. Désolé. Et cela va être un nouvel élément de verrouillage en fait. Et puis nous devons fournir les blocs MOD, culture de courgettes ainsi. Donc ça va être un peu sauter d'avant en arrière, mais ne nous inquiétons pas. Donc, dans les blocs de carte, nous devons également spécifier cela aussi. En fait, on va savoir qu'on va faire ça sous les vieux escaliers et ainsi de suite. Donc, ce sera un objet de registre final statique public de type bloc, qui est émis courgette culture. Et ça va être lu juste ration. Donc, dans ce cas, on ne va pas faire ça. Cela va être, donc nous n'allons pas utiliser cette méthode de registre ici parce que nous ne voulons pas réellement un bloc qui correspond à la culture ou un élément qui correspond à la culture. En fait, nous voulons avoir un article différent et ce sera les graines. En gros. Ce sera un registre normal de la culture de courgettes. Et cela va faire une nouvelle culture de courgettes avec le noeud abstrait, avec des propriétés de point de bloc abstraites de. Ça va être un peu différent et ça ne va pas juste sauver du blé. Donc nous allons juste prendre exactement les mêmes propriétés que nous. C' est tout à fait logique dans ce cas. Et puis dans les articles, nous pouvons réellement fournir cet élément bloc avec un bloc maintenant, qui va être des blogs Mott, courgettes point, Rob dot, obtenir. Et puis ici, nous voulons réellement des propriétés de l'article, comme nous l'avons vu beaucoup de fois. Et nous allons juste définir le groupe EMC. On est intelligents. Premier onglet, lu, non ? Ainsi, la graine de courgette est maintenant déjà mise en œuvre. Dans les blocs de carte, nous avons la culture implémentée. Et à l'intérieur ici, nous pouvons en fait simplement retourner les éléments mod ou les éléments commencent zucchini sceau. Ça fait l'objet de lecture. Droit ? Maintenant, vous penseriez que le serait déjà. Bien sûr, nous devons encore faire les états Bloch et les fichiers JSON. Maintenant, ce sont, comment puis-je le dire délicatement ? Un peu de travail, disons comme ça. Donc, les états Bloch n'est pas si mal en fait. Mais le et les textures et le modèle, les modèles pour le bloc vont être quelque chose d'une œuvre libérale organisée. Faites la culture de courgettes, le point JSON dans les états Bloch, oui. Donc, il est un bloc rein, est l'opinion crop dot JSON. Et nous allons juste copier ça et sûrement expliquer. Donc, cela va simplement à la, exactement cet âge. Donc à l'intérieur de ce poids, cette propriété H, non ? Donc, cela s'étend bien sûr du bloc de cultures. Et le bloc de cultures a une propriété entière qui est appelée âge. Et. À ce stade, les états Bloch peuvent bien sûr, regarder cet âge, puis modifier le modèle qui est utilisé. Et dans ce cas, nous allons en fait avoir huit ans, donc 0 à sept ans. Et donc nous avons aussi besoin de tous ces huit modèles de blocs, dans les modèles. Et je vais les copier. Ceux-là. Celles-ci sont bien sûr encore une fois fournies. Et aussi, je vais passer en revue un exemple. Donc on va juste les copier en une seconde. Désolé. Oui. Alors, vas-y. D' accord. Et maintenant tous sont comme je l'ai dit, ils doivent tous être faits. Comme vous pouvez le voir, ils ne sont pas si compliqués aussi. Ils sont juste un peu fastidieux de les faire tout seul. C' est pourquoi il vaut mieux le copier parce qu'il n'y a pas de vraie magie ici. Le parent va être bloqué slash crop. Et puis à l'intérieur d'ici, nous allons en fait faire recadrer les textures. Et puis nous disons, eh bien, nous voulons la culture de soulignement de courgettes, étape de soulignement. Et puis en fonction de ce que nous sommes, nous allons ajouter un 012 ou jusqu'à sept. Et ça va être le même pour tous. Nous voulons également ajouter l'article. Donc, la graine de courgettes JSON pour l'élément, la plupart vont rapidement copier cela et le regarder. Encore une fois, c'est juste un article normal. n'y a rien de particulièrement fou à ce sujet. Le fait que nous puissions le planter est déjà fait dans la culture de courgettes. En gros. Tout est déjà défini. Et puis les textures que j'ai redouté de regarder, si je suis absolument honnête. Et ça va être dans le bloc d'abord. Ça va être les étapes. Je vais rapidement les copier et voir cette étape 0 à 7. Et je vais les regarder, nous allons les regarder quand nous serons en jeu. Et puis nous avons aussi bien sûr besoin d'une courgette, une texture de graines de courgette. Donc je vais mettre ça aussi. Et une fois que nous avons fait ça, il y a une autre chose que nous devons faire, bien sûr, c'est-à-dire il y a deux choses à faire en fait. Tout d'abord, nous allons rapidement définir cela. Donc on va avoir un point AMC, courgettes à pois, du rap. On va juste être des graines de courgette. Et puis une virgule ici. Oh, bien, comme ça, bien sûr. Et la dernière chose dont nous aurons aussi besoin, ou qui pourrait être intéressante ici, serait une autre table de butin pour la culture de courgettes en fait. Et je vais aussi copier ça et je vais le parcourir pendant une seconde. Donc ça va être des courgettes découpées et Jason, et comme vous pouvez le voir, ça l'est. Un gros. Et quoi, ce qui se passe ici est fondamentalement, donc au lieu de tomber une courgette, dans ce cas, nous allons juste laisser tomber un bloc d'or pour la démonstration en ce moment. Et l'autre truc, c'est en gros dire, d' accord, on va avoir un blog Gold et on va avoir une graine. Et puis il y a une chance, une probabilité associée à l'obtention de quelques sièges supplémentaires. C' est, et ceci est juste copié à partir du JSON de blé. Donc on peut vraiment y aller. Bibliothèques externes, je crois que je l'ai montré avant, le client net Minecraft supplémentaire et dans les actifs Minecraft, puis dans Non, il n'est pas là. Il est en fait dans les données Minecraft bien sûr, encore une fois, il tables Lew et puis nous avons des blocs. Et quelque part ici, nous avons du blé. Et comme vous pouvez le voir, c'est presque basique. Fondamentalement exactement le même juste battre est l'échange avec MCQ, culture de courgettes. Et oui, donc ceci, vous pouvez toujours utiliser ces beaucoup plus facile que le Googling à votre façon même nous posons des questions parce que c'est très accessible ici et vous pouvez toujours voir un exemple ici de quelque chose que vous pourrait vouloir mettre en œuvre, n'est-ce pas ? Je crois que cela devrait être le cas. Voyons juste, voyons ce qui se passe, non ? Je veux dire, le pire des scénarios, on va avoir une centaine de flèches. Mais je crois que ce n'est pas le cas. Je ne pense pas qu'on va avoir une centaine de flèches. Peut-être qu'on allait avoir une flèche, mais pas une centaine. Ok, donc ça a l'air bien. Espérons que tout commence et que tout commence, non ? On va retourner dans le monde et espérer le meilleur. Mais je crois que tout devrait se dérouler sans heurts. Alors, prenons juste un seau d'eau et puis allons-y et regardons bien. Donc, la graine est définitivement dedans. Il n'a pas pris le oh, c'est parce que c'est un bloc et ajouter un élément. Eh bien, ça n'a pas de sens en fait, mais assez juste. Ok, alors voyons si on peut planter ça. Eh bien, nous ne pouvons pas faire quel est le problème ici ? Ça ne va pas être un problème très longtemps. Vous pouvez réparer ça en fait, très, très vite. Mais on ne peut pas atterrir. Cependant, il y a une autre chose que nous devons faire avant que cela ne semble correct, disons. Et ça va être à l'intérieur de notre normale. Au lieu de notre MC CourseSmart. On doit aller dans les affaires du client une fois, une fois ici. Et nous allons ajouter la déclaration suivante. Nous allons ajouter le type de rendu, couche de rendu HLOOKUP dot set. Et puis pour la récolte de courgettes Matlock Stat et obtenir, nous allons définir le type de rendu pour être découpé, non ? Et cela assure simplement que, eh bien, ça ne ressemble pas à ce que nous voyons. Et puis nous pouvons aussi rentrer ici. Et ce ne sera pas un objet mais un verrou en fait pour les graines. C' est un peu bizarre, mais c'est la façon dont cela fonctionne parce que c'est un, nous devons en fait spécifier la culture de courgettes au lieu des graines comme élément de verrouillage. C' est un peu bizarre, mais je pense que ça va marcher. Je veux dire, ce n'est pas ça, ce n'est pas si fou. Donc, comme en fait voir, je crois que le rendu devrait être un voleur. Maintenant, allons-y, c'est l'espoir. Mais je crois que cela devrait fonctionner maintenant. Voyons voir. Et oui, ça marche. Ils vont maintenant chaque fois que tout où tout va bien, si c'est vraiment très bon. Donc, comme vous pouvez le voir, c'est tout à fait bien. Et ce qu'on va faire c'est qu'on va juste vite, qu'est-ce que c'est, vitesse de tique aléatoire, je vais juste mettre la vitesse de la tique comme 22 000 juste pour qu'on puisse voir grandir. Et là, nous pouvons voir grandir. Regarde cette beauté. N' est-ce pas beau ? Et puis a donné règle aléatoire tics vitesse 20. Donc maintenant, tout est entièrement cultivé. Et puis nous allons juste aussi passer à la survie rapidement et puis brise-glace et comme vous pouvez le voir, quelques graines tombent et un, et un bloc d'or ici. Et oui, pour que tout fonctionne. Bien sûr, une fois de plus, vous ne voudriez probablement pas que beaucoup d'or tombe de vos accessoires. Acheté un article peut-être ou quelque chose que vous spécifiez. Eh bien, oui, c'est comme ça que vous ajoutez vos propres récoltes dans Minecraft. Alors oui. 61. (Minecraft): Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre propre fluide personnalisé. Et pour ce faire, nous avons d'abord besoin d'une nouvelle classe à l'intérieur de notre paquet bloc, qui va être appelé les fluides. Donc là-dedans, tous nos liquides vont s'en aller. Et c'est très similaire aux blocs MOD et à la classe Mode Items. Et nous devons également enregistrer un nouveau registre par défaut. Et ça va être un statique public. Finale diffèrent, pas un registre différé, qui va être froid ou type de liquide, bien sûr. Et ça va être des fluides froids. Comme on aurait pu le deviner. B, registre point créer, mot, registres, fluides. Et puis une fois de plus MC dot id. Et puis nous allons juste importer rapidement ceci. Et aussi très important ajouté ici. Sinon, cela ne va pas fonctionner, pas enregistrer un bus événementiel. Droit ? C' est l'enregistrement dont il est question. Et puis vient les fluides de carte, qui va être un peu partout. Mais on va juste commencer et ensuite on va comprendre ça. Donc, tout d'abord, nous avons besoin de trois emplacements de ressources. Nous devons spécifier les emplacements des ressources. Un pour l'alambic. Donc pour tout d'abord, nous allons créer un fluide qui va être du pétrole. Je vais juste créer du pétrole. Et je pense que ça va bien avec le, avec une sorte de style de cuivre, disons. Et la première chose dont nous aurons besoin, c'est un endroit où trouver le pétrole, non ? Donc ça va être fondamentalement le nom de votre trait de soulignement fluide. Toujours souligner Errol, Bien sûr, vous pouvez renommer ce que vous voulez. Ce serait juste le pétrole immobile et ensuite l'emplacement des ressources. Et ça va être un nouvel emplacement de ressources. Et nous allons mettre notre ID MOD, Match ID. Et puis on va mettre un chemin et ça va être bloqué. Slash huile soulignement, soulignement encore. Et c'est fondamentalement, nous pouvons simplement copier ceci deux fois et faire couler celui-ci. Nous devons donc créer deux blocs. quelque sorte, ce n'est pas si simple. C' est une sorte de deux pâtés de maisons, un bloc encore. C' est essentiellement le bloc d'eau qui, vous savez, ne coule pas et puis il y a un bloc qui coule. Et ils sont aussi deux. Nous avons également besoin de texture pour cela, et c'est essentiellement ce que nous définissons ici dans les emplacements de ressources. Et puis nous avons aussi besoin d'une superposition. Et ça va être la superposition d'huile soulignée RL, non ? Et ce sont les trois emplacements de ressources que nous devons spécifier. Et puis nous pouvons réellement commencer et regarder certains objets de registre. Et ce seront des objets de registre de type fluide. Parce que, bien sûr, c'est un fluide que nous voulons couler. Et la première chose que nous allons avoir, c'est le liquide de pétrole. Et c'est le bloc de pétrole lui-même. comme je l'ai dit, Un peucomme je l'ai dit, c'est un peu partout, les fluides, mais je suis sûr qu'on peut s'en sortir. C' est donc le registre des fluides d'enregistrement. C' est le liquide d'huile. Donc, nous sommes en train de définir la source du liquide pétrolier. Ce sera une nouvelle source de données fluide forge. Et ici, nous devons spécifier les propriétés que nous n'avons pas encore spécifiées. Parce que comme je l'ai dit, on doit passer par ça. C' est un peu, c'est un peu, je dirais que c'est rond, quelque sorte sa somme. Parce que lorsque nous spécifions les propriétés après celui-ci, alors nous devons effectivement mettre dans les fluides fluides aussi. C' est vraiment un peu bizarre, mais comme je l'ai dit, ce n'est pas un problème. Ça va être un autre objet de registre de fluides fluides. Et cette fois, ce n'est pas du liquide d'huile mais de l'huile qui coule. Donc, c'est fondamentalement la partie qui coule du fluide. s'agit du registre, de l'enregistrement, du registre des fluides par points. Et c'est du pétrole qui coule. Et cela va avoir un fournisseur d'un nouveau liquide de forge, pas de sources assemblées, qui coule. Et au lieu de la peur, aussi les propriétés vont aller et celles vont être traitées ensuite. Et ce sont la fortune qui coule les propriétés de point. Et ce sont la rampe d'huile ou taquinerie, de nouvelles propriétés. Et ça va être fou aussi. Donc, la première chose est, comme vous pouvez le voir, une fois un immobilisation de ce fluide. Donc on va lui fournir le liquide de soulignement d'huile, non ? Donc, cela va être fourni. Et ici maintenant, vous pouvez réellement mettre dans le mod fluides point ou les propriétés. Et même avec vos fluides MOD, les propriétés de l'huile. Maintenant, il est important que vous en fassiez un pôle statique avec la classe devant. Si tu fais ça, ça ne marchera pas. Référence avancée illégale. Donc très important que vous ne mettez réellement dans les liquides de boue, les propriétés de l'huile, tout comme une chose rapide. Et ça doit être un get. Et puis nous devons fournir ou pour le pétrole qui coule. Aussi point obtenir. Et nous avons besoin d'attributs fluides et ça va être très intéressant. Donc les attributs fluides sont générateurs. D' abord, nous allons mettre dans la texture encore qui va être huile encore RL. Et puis nous allons avoir du pétrole qui coule du RL. Et puis nous pouvons définir les propriétés. Et comme vous pouvez le voir, il y a quelques choses que nous pouvons réellement faire. Je suggère certainement aussi, avec ces quatre un peu, je vais juste mettre quelques valeurs. J' ai regardé la luminosité à, et je vais avoir une rareté point rare, disons. Et on va avoir un événement sonore. Événements sonores, point, objet, miel, bouteille, boisson. J' aime ça. Ça semble vraiment intéressant. Et ça ressemble un peu à l'huile. Et puis on aura une viscosité qui est un nombre arbitraire. Et puis, et c'est intéressant. Ensuite, nous allons effectivement fermer la parenthèse des propriétés. Et puis nous avons quelques autres choses que nous pouvons spécifier. Et les deux qui sont très intéressants, c'est la pente trouver la distance, ce qu'on va faire trois. Et puis une diminution de niveau par bloc trois. Et ce qu'ils sont, c'est essentiellement la diminution de niveau par bloc signifie juste que lorsque vous placez le fluide, il va voyager autant de blocs. Et la distance de pente trouvé est fondamentalement la distance où il se déplace. Deux mots, une pente vers le bas. Comme je l'ai dit, il est préférable de jouer avec ces chiffres et se faire une idée pour eux. Et j'espère que lorsque vous jouez un peu avec eux, alors vous obtenez le résultat souhaité de tout fluide que vous essayez de mettre en œuvre. Nous devons également spécifier un bloc. C' est un bloc que nous n'avons pas encore mis en œuvre. Donc, nous allons juste ne rien mettre dedans. Et puis cela va être le seau de points aussi bien. Et c'est quelque chose que nous n'avons pas non plus mis en œuvre. Comme je l'ai dit, c'est blanc. Le, tout à fait le défi ici de le faire dans un, parce que ce n'est pas vraiment une chose linéaire, non ? Parce que nous ne pouvions pas d'abord faire les propriétés car alors nous n'avions pas les objets de registre ici. Donc oui, c'est un peu, c'est un peu rude. Mais comme toujours tout, le code entier ici est disponible en tant que ressource. Et soit l'objet de registre est maintenant un fluide qui coule et ce sera un bloc d'huile. Et nous voulons réellement faire un point d'enregistrement blocs cette fois DOT registre. Et encore une fois, nous n'allons pas avec la méthode Register blocs de carte. Mais un autre parce que nous ne voulons pas une, disons une traduction one-to-one entre un bloc d'huile et c'est, c' est, c'est l'article parce que l'article va bien sûr être un seau au lieu d'un puits, je vais juste un bloc élément. Droit. Le point de fluides va fluidifier. C' est le liquide normal. Et puis nous allons ajouter des propriétés de bloc abstraites. C' est donc juste des propriétés normales que nous allons créer à partir de matériaux. L' eau, vraie eau. Et puis nous allons faire, nous allons faire un ne bloque pas le mouvement et la dureté et la résistance. Cela va être comme un 100100 g, mais un 100 et pas de gouttes parce que le bloc n'a pas de gouttes. Ensuite, nous pouvons déjà spécifier cela dans le premier ici. Ceci est encore une fois avec le nom de la classe en avant tandis que les fluides. Liquide d'huile. Non, ce n'est pas juste. Bloc d'huile bien sûr, point get. Et puis nous avons également besoin d'une méthode publique de registre de vide statique, que nous avons déjà vu dans les blocs de mode et les fluides de mode. Celui-ci, nous allons juste ajouter après cela, après que les blocs enregistre un peu de fluides DOT registre. Et puis nous avons encore besoin d'ajouter l'article. Et c'est, je crois, presque tout ce que nous avons à faire. Nous avons également besoin d'ajouter les textures et ce serait tout. Donc, nous allons juste ajouter ceci après ces opinions, semer l'article. Il est un élément normal, objets de registre de type élément. Et ça va être un seau à huile. Avec des points d'enregistrement. Inscrivez-vous. Ça ne devrait pas être bien, quelque chose de fou ? Ça va être un nouvel article de seau. Et un élément de seau est en fait défini avec un fluide aussi. Donc mod fluides point de poids de fluide. Et puis nous allons utiliser l'expression lambda ici. Nouvelles propriétés point d'article, et nous sommes sortis. Donc on va juste remettre ça à l'intérieur de notre onglet. Et on va en ajouter un autre. Une autre propriété qui va être maxed access un parce que c'est généralement comme ils comment vous définiriez un compartiment. Habituellement, les seaux ne s'empilent pas avec des fluides, n'est-ce pas ? Et puis nous pouvons ici en fait très simplement mettre dans les éléments de mode, points, bien seau, que bon. Et oui, c'est, je crois tout. Maintenant, bien sûr, nous devons également ajouter les textures. Et moi aussi, oui, et nous devons aussi ajouter une balise aussi. Alors faisons tout d'abord les textures. Ça va être dans les textures de bloc. Et encore une fois, je vais les copier. Ça va être dans les textures de blocs. Ça va être cinq fichiers copiés. Oui. Ça va être le pétrole qui coule. On va faire couler le pétrole. Mc Mehta et un autre MC Mehta. C' est juste pour l'animation. Et la superposition d'huile. Comme je l'ai dit, toutes les textures sont toujours fournies en tant que ressource ou il va obtenir un seau. Et il y a encore deux fichiers JSON que nous devons faire dans les modèles. Donc le premier sera le seau à huile. Ce n'est pas un problème. Nous allons ramasser JSON. Ce n'est rien. C' est juste un fichier JSON normal pour un élément, non ? Ce n'est pas quelque chose que nous n'avons jamais vu auparavant. Et puis pour le bloc, nous devons réellement spécifier le bloc de ce modèle. Et ça va être du vieux JSON à point d'huile. Et cela va également être simplement un fichier JSON très facile à voir. Et nous avons aussi besoin d'un Bloch états parce que nous avons ajouté un bloc. Cela va être huilé JSON une fois de plus, oh, Jason, ego et surprise, surprise. Tout cela est très similaire à toutes les autres choses. Donc, la plupart des définitions des fluides sont en fait dans les fluides de forge. Et je crois que cela devrait être tout. Les textures ont été ajoutées, le modèle a été ajouté, enregistrement. Voyons donc dans le jeu si notre liquide a été ajouté correctement. Mais tout devrait bien fonctionner. Eh bien, je veux dire, j'ai déjà vu une faute de frappe ici. Alors, vous voilà. Cependant, je crois que cela devrait être le cas. Oui. Maintenant, le nom ici, pétrole, ceci, bien sûr, doit être le même que l'indique Bloch ici et le même que ce modèle de bloc. Et puis le seau d'huile, bien sûr, est l'élément qui correspond au bloc d'huile. C' est pourquoi nous avons ajouté un élément de modèle, le fichier JSON du seau d'huile au lieu d'un fichier que nous allons déposer par exemple, il n'y a pas d'élément d'huile dans ce sens. Voyons donc si tout a été ajouté correctement et bien, tout d'abord, nous allons fixer l'heure aujourd'hui afin que nous puissions réellement voir quelque chose. Je vais passer en mode réactif. Et donc le seau à huile a été ajouté. Bien sûr que ce n'est pas localisé. C' est quelque chose qui devrait être très facile après tout, après tout ce que nous avons localisé. Et voyons si je peux vraiment placer le liquide. Je peux. Magnifique. Ok, donc on va voir que je viens le placer ici. Tu vois vraiment ça. Donc, il se déplace sur trois pâtés de maisons. Le bloc source est toujours aussi quelque chose qui est compté. Maintenant, je peux juste marcher à travers ça. C' est parce qu'il n'a pas encore été ajouté au réservoir d'eau. C' est ce que j'ai dit. Nous devons donc ajouter une balise dans les balises Minecraft, puis au lieu de blocs, nous voulons avoir un autre répertoire appelé fluids. Et à l'intérieur de là, nous avons un fichier JSON ou point d'eau JSON. Et je vais rapidement copier ça. Rien de fou excitant. C' est juste que cela ajoute une balise. Oui. Et puis il va effectivement avoir une certaine résistance et il va, bien se comporter un peu comme de l'eau, au moins quand vous y entrez. Donc, il porterait également des entités et des articles. Mais nous allons le voir bientôt. Et on y va, on y va. Ok. Et oui. Et maintenant, il a une certaine résistance à elle. Et si on entre, ça ressemble beaucoup à être sous-marin, non ? C' est génial. Oui. Et c'est déjà tout ce que nous devons faire pour ajouter un nouveau liquide à Minecraft. Alors oui, j'espère que ça vous intéressera. Et s'il y a des questions comme toujours, hésitez pas à poser. Et aussi si le cours a été une valeur pour vous, j'apprécierais vraiment un avis ou une note. Et oui. 62. (Minecraft) Nettoyer et Refactoring: Bon, continuons avec le parcours Minecraft. Et dans cette conférence, nous allons réellement refactoriser le code un peu parce qu'il y a quelques choses que nous avons réellement besoin d'ajouter et peut-être changer pour qu'à l'avenir, les sujets les plus complexes seront bien faisables et un peu plus facile à suivre et à comprendre. Donc la première chose que nous allons faire est d'aller dans la classe Java d'enregistrement. Je vais en fait refactoriser cette méthode et la renommer en init. Tout simplement parce que je sens que le rouge appelant ce registre est blanc, comme il enregistre les registres différés dans le bus d'événement. Cependant, je crois que init a un meilleur est un meilleur nom pour cela. Je crois que c'est le cas. Ensuite, on va aller dans notre modèle de cours de MC et on va supprimer ces deux-là. Donc, la mise en file d'attente IMC et le processus IMC. Ceci, ces méthodes sont pour les communications intermédiaires. Alors c'est ce que je suis. C signifie. Et vous pouvez également voir l'événement de mise en file d'attente intermodale. Donc, ce sont des communications interconnectées. Pour le moment, nous ne le sommes pas, nous ne voulons pas communiquer avec d'autres modèles. Donc, nous pouvons également supprimer ceci, ce truc de déclin que nous allons comprendre bientôt et la configuration que nous voulons réellement garder. Donc, dans la configuration, nous pouvons réellement effacer la configuration. Et au lieu de la configuration, nous voulons mettre quelques choses, principalement la configuration, donc nous voulons les copier dans la configuration. Et puis nous voulons aussi mettre en place, mais nous d'abord bien sûr, cette façon, oui, abord nous voulons charger les configurations. Dans l'autre sens. Nous voulons d'abord les enregistrer, puis les charger. Et maintenant c'est la première chose que nous pouvons faire, c'est aussi, eh bien, je veux dire, c'est bien. Mais si vous lisez ça que vous aimez, je ne suis pas sûr à 100%. C' est pourquoi nous allons vraiment retirer cela de cette méthode et nous allons créer deux nouvelles méthodes. Donc ça va être un conflit d'enregistrement. Donc, c'est quelque chose qui est beaucoup où je pense qu'il est très difficile d'expliquer et, ou même de savoir que vous pourriez probablement écrire beaucoup de livres de connaissances à ce sujet. Mais c'est très difficile à obtenir. Obtenez quoi, pourquoi c'est une bonne chose ou comment c'est une bonne chose. Donc, de cette façon, si vous lisez maintenant la méthode d'installation, vous pouvez réellement voir OK, donc d'abord nous allons enregistrer un conflit et ensuite vous pourriez faire quelque chose d'autre ici. Et puis on va charger les conflits. Et si nous avons juste ça, l'effort mental pour comprendre ce qui se passe ici est juste un peu plus. Et vous pourriez dire, eh bien, je veux dire, ça n'a pas d'importance, c'est le petit effort ici n'a pas d'importance. Eh bien, quand tu l'as fait, disons 200 cours. Et dans chacune de ces classes, il y a un petit effort pour le lire. Et puis ça va avoir de l'importance, non ? Donc, c'est fondamentalement ce que c'est. Quelque chose qui devrait être, devrait être noté. Nous allons également ajouter une autre méthode privée, et je vais appeler cela les ajouts en mode registre. C' est fondamentalement, une fois de plus, ceci, ces noms sont tous, diraient. Ce sont tous des tarifs personnalisés. Donc vous pouvez, si vous pensez que je veux nommer ça différemment ou quelque chose comme ça, c'est tout, vous avez la liberté de le faire. chose la plus importante est que vous pouvez lire le code source. Et j'espère que d'autres personnes pourront aussi lire la source de ce qui est, est la chose que nous voulons avoir lieu. Et on va prendre tout ça. Donc, l'inscription en elle et toutes nos méthodes enregistrées, et même le bus d'événement mod. Et on va mettre ça ici. Et je vais vraiment séparer ça un petit peu. Et nous allons ajouter quelques commentaires. Et c'est l'enregistrement de nos ajouts. Ajouts, ils vont. Et c'est alors les registres, les éléments, les blocs, ETC. Ajouté par notre mode. Et celui-ci va enregistrer les événements MOD, non ? Cela aussi et puis bien sûr doit être ajouté à l'instructeur ici. Ensuite, on va supprimer les trucs Duke Client. Je vais mener ce commentaire. Et en fait, nous allons l'enregistrer après l'installation. Et il y a une autre chose à faire est que nous pouvons également supprimer ce commentaire. On n'a pas besoin de ça. Et nous allons créer de nouvelles classes aussi. Donc, à l'intérieur de notre package de cours MC, nous allons d'abord créer un nouveau package appelé setup. Encore une fois, vous pourriez, vous pourriez peut-être aussi mettre cela en util. C' est une question de savoir comment vous voulez organiser vos paquets afin que vous vous sentiez à l'aise. Nous allons créer une nouvelle classe Java, qui va être une interface, et ça va être appelé proxy IP. Et puis nous allons créer une deuxième classe qui sera le proxy client. Et puis un troisième plus a tiré le serveur. Roxy. D' accord, donc je, un proxy n'est pas vraiment fou d'une interface. Alors on y va. Cela va avoir une méthode qui va être appelée vide dedans. Et puis une autre méthode obtenir monde pliant à savoir d'importer celui-ci. Et puis les deux bien sûr, implémenter le proxy oculaire, mettre en œuvre des méthodes. Et pour l'instant, nous n'avons rien dans la désolation. Dans l'année, nous pouvons simplement retourner minecraft point instance monde. Et puis ici dans l'init En fait, nous pouvons ajouter quelque chose. Et ce sera le type de rendu pour la culture de courgettes. Et nous pouvons également supprimer cette méthode ici. Donc nous pouvons ajouter ce droit. On y va. Et puis le proxy du serveur, cela implémente également I proxy. Et le, eh bien, tout d'abord, mettre en œuvre les méthodes de cours. Et ici, nous allons lancer une nouvelle exception. Et sur le serveur d'exécution, parce que nous ne devrions pas obtenir le monde client côté serveur. Et l'init va juste être gardé vide en ce moment parce qu'il n'y a rien dans ce que nous faisons sur le serveur en ce moment dans le temps. Nous allons également ajouter l'abonné du bus événementiel. Donc ça va être l'abonné du bus d'événement MOD, mod id, dot mod ID plus. Ceci est math.pi point d'abonné du bus d'événement. Et c'est la chose la plus importante, juste point, point dépendant. Et on y va, je vais copier ça ou le proxy du serveur. Et la seule différence ici, c'est que ce sera un serveur dédié, non ? Droit. C' est donc tout ce que nous devons faire ici. Et puis à l'intérieur du cours de MC, encore une fois, nous allons créer un, je crois que le licenciement doit être public. Oui, il s'agit d'un proxy IP statique public. Et nous allons initialiser ça ici. Et ça va avoir l'air un peu fou. Mais ne vous inquiétez pas pour ça. Dist exécuteur, point safe, exécuter pour la liste. Et puis nous allons créer ces clients Roxy nouveau et proxy serveur, nouveau proxy serveur, New Evil. Oui, comme ça. Et aussi importer ces deux. Et je crois que cela devrait être tout. On veut tricoter ça ici. Donc, point proxy dedans dans la méthode de configuration entre les conflits de registre et les conflits de charge. Ouais, je pense que ça devrait déjà être tout. Maintenant, nous avons en fait un peu arrangé ici. Donc, le, cette classe a l'air un peu différent. Et pour s'assurer que tout fonctionne quand je lance ça, juste pour que nous soyons sûrs que tout fonctionne bien et que nous n'avons rien cassé. C' est toujours une excellente idée, surtout lorsque vous refactorisez votre code pour vous assurer que tout fonctionne toujours. Si vous avez des tests écrits, ce qui, bien sûr, le serait. Je ne pense pas que cela soit logique d'écrire des tests, surtout pour quelque chose de cette taille. Mais si vous écrivez des tests, assurez-vous que les tests fonctionnent toujours et le programme fonctionne toujours, c'est quand important. Donc, par exemple, une des choses que nous pourrions vouloir examiner est de savoir si le type de rendu a probablement été activé et a donc c'est assez bon. Ou les articles semblaient être tout à la place de la chose dort, être très bien fonctionner. Donc oui, c'est génial. C' est plutôt bien. Et c'était essentiellement tout ce qu'il fallait faire pour le nettoyage. Alors juste nettoyer un peu et que ça soit un peu plus lisible, non ? Alors oui. 63. (Minecraft) des modèles de bloc personnalisés (y compris le blocage): Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons examiner les formes Brock des clients et comment nous pouvons faire un bloc qui n'est pas dans la forme ou la forme d'un bloc. Donc, ce dont nous allons avoir besoin pour ça, c'est un autre programme qui s'appelle banc de bloc. Certains d'entre vous en ont peut-être déjà entendu parler. Le lien vers le programme est disponible en tant que ressource. Et si tu l'ouvres, quelque chose comme ça devrait apparaître. Et ce que nous voulons est un nouvel élément barre oblique de bloc Java. Donc on va cliquer dessus. Et puis on pourra lui donner un nouveau dossier. Je vais juste appeler ce test. J' ai déjà tout préparé. Et puis on va juste dire, accord, et ensuite on se retrouve ici. Pour que nous puissions zoomer avec la souris, nous allons faire un clic droit, nous pouvons. Donc, en maintenant droit, le bouton droit de la souris va transformer notre vision ici. Et puis si nous maintenons le clic gauche et nous pouvons tourner autour. Et c'est en fait l'un des programmes 3D les plus faciles à utiliser. Et cela se traduit très bien à Minecraft. Donc nous pouvons juste ajouter un cube ici et ensuite nous avons un cube. Maintenant, ce serait le, donc le t entier de cette grille ici est un bloc et un cube est 1 16ème d'un bloc fondamentalement. Donc, par exemple, nous pourrions dire ici la taille x, et ensuite nous pouvons dire 16. Et maintenant, ce serait en fait la longueur d'un bloc. Et puis nous pourrions dire, eh bien, en fait, je veux aussi l'avoir dans cette direction aussi. Et maintenant, le calque inférieur, sorte que le pixel inférieur de la texture du bloc, pour ainsi dire, est maintenant rempli de ce modèle 3D. Et oui, et ensuite on peut, par exemple, dire, Eh bien, alors on va le pomper ici aussi. Et maintenant, nous aurions un bloc complet, 16 par 16. Et oui, donc avec ça, on peut construire des trucs. Donc nous pouvons dire, eh bien, nous en avons fait un ici, un ici, un ici, et ensuite nous pouvons le construire avec ces blocs individuels ou nous pouvons avoir de plus gros blocs et, vous savez, construire quelque chose. Donc la créativité n'a vraiment pas de limites ici. Vous pouvez aussi le faire pivoter, non ? Dépend si le pivot est. Donc, ce pivot est fondamentalement le point où tourne autour. Donc, si nous avons ensuite centré le pivot, alors il va se centrer à l'intérieur d'ici. Et puis on peut le faire tourner comme ça. Donc, nous pouvons réellement faire les formes qui sont des nano tubes qui ne sont pas liés au bloc. Et en fait faire ça dans ce cas. Mais maintenant, nous pouvons le faire, par exemple, n'est-ce pas ? Donc on peut faire des choses assez dingues ici. Cependant, j'ai déjà préparé un modèle à vous montrer. Et ça ressemble à ça. Ce n'est rien de spectaculaire. Cependant, c'est un non, c'est une forme de bloc irrégulière, disons. J' ai également mis en trois textures, ne sont que des couleurs dans ce cas. Bien sûr, si vous vouliez avoir un vrai bloqué et vous auriez besoin d'importer le voyant de texture. Cependant, c'est très facile. Comme vous pouvez le voir si, par exemple, je vais ici et je sélectionne, disons ce cube ici. Vous pouvez voir qu'il y a des côtés différents, non ? Donc le côté nord serait de ce côté. Et je peux déplacer cela maintenant si c'était un fichier de texture que j'ai créé, et vous pourriez dire fondamentalement, ok, cette partie du PNG devrait maintenant être affichée là. Il l'est. Je pense, très simple d'utiliser ce programme et vous devriez être, comme, je dirais dans environ une heure, vous devriez être en mesure de créer assez bien, de beaux modèles ici. Et oui, donc c'est en fait très gentil et très bien fait. Cependant, il y a quelques autres choses que nous devrions faire pour que cela fonctionne. Supposons donc que vous ayez créé votre modèle. En fait, nous devons regarder quelques autres choses. Et ça va être fait à l'écran en haut à droite. Et c'est comme ça que ça va regarder dans les mains des joueurs et à la troisième personne et ainsi de suite. Il y a donc quelques choses que nous devons mettre ici. Ainsi, par exemple, ces échelles, par défaut, il est, eh bien, très grand. Vous aurez donc probablement besoin d'ajuster l'échelle de plusieurs façons. Et vous devez passer par toutes les machines à sous ici. Donc, la troisième personne, et vous pouvez voir à la première personne gauche tour à la première personne, vous pouvez le regarder, comment il ressemble sur la tête, comment il ressemble sur le sol. Donc, la référence ici est un bloc. Donc vous pouvez dire, en fait, je suis peut-être, je veux avoir ça vraiment grand ou pas si grand. Et on peut le regarder dans un cadre. Vous pouvez le changer dans un, un cadre d'île et aussi dans l'interface graphique. Donc, à quoi il ressemble dans l'inventaire, vous pouvez tous changer cela. Et tout ça va marcher assez facilement. Et oui, donc aussi, pour exporter cela, vous devez ensuite aller à Export de fichier et un modèle d'élément bloc d'exportation. Cela va alors générer un fichier JSON et le fichier adjacent peut ensuite être utilisé comme un modèle de bloc. Cependant, il y a peu d'autres choses que nous devons également examiner. Et c'est à l'intérieur de la classe que nous allons créer. Et cependant, nous allons finir cela, ce dont vous avez besoin, c'est que vous avez besoin d'un plug-in qui s'appellera Mott utils. Donc, vous pouvez simplement aller aux utils mod disponibles, puis l'installer. Je l'ai déjà dans solide bien sûr. Cela vous permet alors d'exporter ceci comme une forme voxel et vous allez en avoir besoin. Donc forme voxel, c'est, c'est aussi un fichier JSON. Il crée la forme pour le bloc de sorte que le, que vous avez fondamentalement les limites du bloc dans exactement ce modèle, n'est-ce pas ? Donc, vous pourriez imaginer, par exemple, un bloc que nous avons peut-être. Par exemple, vous pouvez, vous savez, une dalle. Et une dalle, bien sûr, n'a pas sa limite dans tout le bloc, mais c'est seulement un demi-bloc. Et c'est exactement la même chose que nous voulons qu'il soit arrivé avec ça. Donc, pour cela, nous devons créer un groupe ici appelé formes voxel. Et puis nous mettons tous les cubes ou les pièces que nous avons faites au-dessous de cela. Et puis on peut l'exporter. Et nous devons en fait exporter ça quatre fois. Nous, parce que nous voulons explorer celui-ci est face au nord. C' est pourquoi j'ai créé ce genre de chose avec cette plus grande partie ici, face au nord. Donc, nous savons vraiment ce que le visage où C. Et puis nous voulons toujours savoir, nous voulons travailler avec tout et nous voulons faire tourner cela autour et puis exporter ceci comme une forme voxel. Exportez ceci en tant que forme voxel, exportez ceci en tant que forme voxel. Et puis on est de retour ici. Donc, nous pouvons effectivement, car, une fois de plus, pour cet exemple particulier, tout est fourni comme une ressource. Pour cette conférence. Cependant, si vous voulez le vôtre, alors vous devrez exporter ces choses. Et je vais vous montrer les fichiers, quoi ils ressemblent et ce qu'il faut faire avec eux. Et juste une seconde. Donc, nous allons revenir à notre intelligent ici. Et puis nous allons rapidement jeter un coup d'oeil, par exemple, à la forme voxel que vous allez obtenir. Cela va être le fichier a.java et ça va ressembler à ceci. Donc ça va juste être un flux de forme voxel. Et nous allons mettre en œuvre ce puits très bientôt. Et je vais te montrer comment faire ça. Mais nous devons d'abord créer un nouveau bloc. Donc, pour cela, nous allons créer un bloc. Je vais appeler ça le feu électrique électrifiant. Oui. Et c'est aussi la base d'autres choses que nous allons faire, qui pourraient être des entités de tuiles dans les conférences futures. Mais en ce moment, ça va juste être une rupture avec une forme nouvelle et personnalisée. Ça va étendre le bloc. Mais cela va aussi étendre le bon bloc. C' est très important. Parce que parfois il prend le mauvais bloc. C' est un peu ennuyeux. Mais voilà. D' accord. Donc c'est joli, assez bien déjà. On l'a fait là-dedans. Et puis on va immédiatement ouais, on va immédiatement mettre tout ça ici. Donc, la première chose que nous devons ajouter est une propriété de direction finale statique privée fera face. Et cela va être égal à un point de bloc horizontal face horizontale. Comme la première chose qu'on va faire, oh, voilà. Et puis nous pouvons ajouter quelques écritures. Donc la première chose que nous allons remplacer est la forme voxel publique. Publiques. voxel publique devient forme. Celui-ci. Je ne m'inquiète pas pour ça. La flèche ici. Nous pouvons également faire une suppression des avertissements. C' est de la dépréciation, non ? Oui. Dépréciation comme ça, non ? Oui. D'accord. Oui. Ce n'est pas le gros problème ici, c'est qu'il ne devrait pas être appelé, mais vous pouvez le remplacer. Donc ce n'est pas la pire chose. Et puis nous voulons également remplacer l'état bloqué, l'état bloc public, obtenir l'état pour le placement. Et cela a comme élément de paramètre, utilisez des contextes. contexte a déjà retourné quelque chose et cela va retourner ce point obtenir l'état par défaut avec face. Et puis le contexte dot-dot placement, face horizontale, puis le contraire. Et on va aller Override ici. Non, ce n'est pas ce que je voulais faire. C' est ce que je voulais faire, l'ego. Et puis il y a deux autres méthodes, en fait trois autres que nous devons mettre en œuvre. L' un d'eux est une étape de blocs. On va juste tourner. Ça va prendre un état de bloc, un état et une rotation. Mais cela va aussi être un remplacement autre. Et vous obtenez rapidement la rotation ici. Encore une fois, cela dit une dépréciation. Nous allons juste supprimer cet avertissement parce que ce ne sera pas la pire chose. En ce moment. Nous allons retourner l'état avec le parement, puis la rotation dans le sens du parement. Donc, toutes ces méthodes que nous implémentons en ce moment sont essentiellement pour savoir quelle direction nous plaçons le bloc. Il est très similaire à quand vous placez un four, par exemple, Le côté de savoir si le four brûle toujours est face à vous. C' est fondamentalement très similaire à ce que nous faisons en ce moment. Ce sera la même chose ici, le miroir. Et puis nous allons retourner l'état DOT rotation puis miroir dans la rotation DO2. Et cela va être state.gov face une fois de plus. Et c'est tout. Et puis la dernière, dernière méthode que nous avons réellement besoin d'implémenter est un conteneur de remplissage vide protégé et protégé. Ça va être un conteneur d'État. Et un conteneur, non. Un générateur O dot d'état de verrouillage et de bloc. Et ça va être un peu plus compliqué ici. Mais ce n'est pas ça. Eh bien, ça a l'air compliqué, mais en fait, nous allons juste dire « Builder dot add », basing. C' est tout ce qu'on a à faire. Et je veux importer cette classe. Dites que c'est un écrasement aussi pour que nous sachions. Et c'est tout. Maintenant, nous devrons changer celui-là aussi. Parce que maintenant nous allons prendre les parements que nous avons obtenus. Donc, ce serait pour les fichiers et que nous obtenons lorsque nous exportons les formes voxels de roche pliée, comme je l'ai dit, basique nord, est, sud et ouest. Et je vais prendre le contrôle de l'un d'eux. Donc, c'est quelque chose à quoi ça ressemblerait. Bien sûr, cela pour nous en ce moment n'a pas de sens. Mais ne vous inquiétez pas, nous allons comprendre ça. C' est juste quelque chose que vous avez besoin d'une copie. J' ai déjà préparé ceci pour tous les côtés et je vais vous expliquer rapidement une fois que je l'ai copié. D'accord ? formes voxel doivent donc être importées. Booléen, fonction et flux aussi. Et puis ça marche très bien. Ok. Alors que se passe-t-il ici ? Eh bien, nous définissons une forme voxel statique finale privée. Et puis nous voulons définir le voxel en forme pour le nord, l'est, le sud et l'ouest. Et puis on copie sur le flux. Très important. Le flux est sans le point arriver ici à la fin. Donc, vous devez ajouter ceci pour que cela fonctionne. Et puis nous devons aussi ajouter ceci à la forme du ghetto juste ici. Et on va faire ça en faisant une déclaration de commutation. Donc on va changer et on va dire que ça fait face. Donc on dépend essentiellement du parement, on va lui donner une forme de voxel différente. Donc le premier que nous allons avoir est Case North, qui va retourner le trait de soulignement de forme n. Et puis quoi ? Je vais le copier rapidement quelques fois. Et le mouvement dit à l'est va alors tourner forme, c'est à dire. South va retourner la forme S et West va revenir. Tu peux deviner ? En forme de W ? Et puis nous allons également ajouter une valeur par défaut, qui va retourner la forme. Et il va dire, hé, on peut laisser ça dehors. On va juste le laisser comme ça. Ça va bien se passer. Et cela définit la forme du bloc. Maintenant, nous devons également ajouter les états Bloch et le modèle. Mais ce ne sera en fait pas trop terrible. Tout d'abord, nous allons enregistrer ceci ici. Cela va être public statique, objet de Registre final du type bloc. Et ça va être le feu électrique. Oui. Ce qui va être qui va être enregistrer le feu électrique. Dans ce cas, nous pouvons utiliser à nouveau la méthode de registre normale. Et cela va être une nouvelle électrifiée avec des propriétés abstraites bloquées. Propriétés. Et puis on va dire, matériel sûr, matériel ce fer. Prenons celui-là. Et puis faisons des partenaires en résistance ou formons cela un peu plus agréable. Et quoi d'autre ? Que diriez-vous de l'outil de récolte ? Oui. Je pense que cela a du sens. Ça va être, je dirais, choisir X a du sens. Et puis quelque chose d'autre dont nous avons besoin ? Oui, nous avons besoin du groupe où je veux le groupe. Je ne sais pas que le groupe va être défini automatiquement parce que nous l'avons fait ici. Donc oui, je pense que c'est bon pour l' inscription. Et puis nous voulons ajouter l'état de bloc. Donc maintenant, les états Bloch sont, ce n'est pas difficile ou quoi que ce soit. Cependant, je vais juste copier ça et l'expliquer encore une fois. Donc, ce sera le point de feu électrique JSON. Et ici, nous avons en fait différentes variantes en ce moment parce que nous voulons changer la rotation de ce modèle en fonction de l'endroit où il est confronté. Donc cette face ici fait référence à cette face ici, non ? Donc, quand c'est au nord, alors nous allons juste afficher le modèle normal. Et quand lui-même, nous allons le faire tourner de 180 degrés et ainsi de suite et ainsi de suite. Mais c'est essentiellement une brève explication de cela. Ce n'est rien de trop fou. Et puis nous avons besoin du modèle de bloc. Et ça va être celui qui est le plus fou. C' est celui que je vais juste passer à l'autre, celui-ci. Et ça va être celui que vous allez exporter ici. Donc l'exploit a cassé le modèle d'élément. Et ce sera le fichier JSON que vous allez voir là-bas. Et ça va être fou parce que celui-ci va ressembler à ça. Je vais copier ça et vous allez tous tomber de vos chaises. Je vais copier. Et c'est à ça que ça va ressembler. C' est un peu juste. C' est, c'est un peu de choses. Cela définit simplement le, chaque élément, non ? Donc, chaque élément que vous êtes, est simplement un bloc, fondamentalement que nous avons défini dans le banc de bloc. Et puis il dit quelle texture chaque visage a. Et oui, donc c'est juste quelque chose que vous copiez. Très important que l'intérieur des textures Ici tout est OK. Cela peut également avoir un problème. Donc, les noms de texture sont les mêmes noms que ceux qui sont ici. Donc en ce moment, le, ici, ils seraient appelés Texture un et texture à elle x trois. J' ai renommé cette année pour électrifier notre soulignement 123 parce que c'est textural 123 ne sont vraiment pas si bon d'un nom simplement parce que, eh bien, qu'est-ce que c'est que et aussi ce que vous devez ajouter est vous aurez besoin d'ajouter cours MC ou votre ID mod devant ici. C' est très important. Et je crois que de la valeur par défaut que le banc de bloc crée est Brooks et ne pas bloquer pour la texture est très important. Nous avons nommé notre texture dans notre texte ou nos mots. En d'autres termes, notre texture, textures, dossiers, bloc et élément, singulier, pas pluriel. Très important. Et donc, nous allons aussi obtenir le JSON électrifié pour l'élément qui est un élément normal qui renvoie au bloc, c'est tout. Ensuite, nous aussi, une fois de plus, chaque fichier, même si j'ai aussi le fichier de banc de bloc, le JSON, et toutes les quatre formes voxel, ainsi que les textures, sont toutes à nouveau disponibles en tant que ressource. Et nous voulons aussi ajouter les textures dans le bloc ici. Copier dessus. Oui. Nous avons aussi les voitures électriques. Ce ne sont que des carrés rouges, verts et bleus. Donc ce n'est pas une vraie texture en ce sens, mais oui, oui, et je crois que c'est tout. Maintenant, c'est un peu plus bien sûr. Cependant, pour les blocs spéciaux, disons que ce n'est pas si compliqué. Toutes les choses considérées, commençons juste et voyons si tout fonctionne. Ce sera le meilleur cas. Bien sûr, nous n'avons pas encore ajouté de localisation. Mais encore une fois, la localisation devrait être assez facile à ajouter si vous voulez ajouter cela plus tard, c'est méchant trivial à ce stade, je le crois. D' accord, regardons ici et voyons à quoi ça ressemble dans le jeu. Avec. Plus les sujets sont complexes, plus ils risquent d'être sujets aux erreurs, n'est-ce pas ? C' est pourquoi il est toujours bon de vérifier si tout a fonctionné et voyons. Donc tout d'abord, c'est plutôt bon. Donc, nous pouvons déjà voir que le modèle a été mis en œuvre. Nous pouvons aussi le tenir dans notre main. C' est plutôt sympa. Et maintenant, la grande question est : peut-on la placer ? Oui, on peut. Et comme vous pouvez le voir, les bordures noires quand je passe sur ceci sont en fait exactement la forme du bloc. Même chose avec, par exemple, l'enveloppe comme vous pouvez le voir. Et là, ce serait tout le bloc. Donc c'est la ligne très, très comme la ligne noire, les lignes noires fondamentalement. Et c'est exactement ça. Donc si on marche dessus, je pense qu'on va, on va couler si on y va un peu. C' est à peine perceptible là-bas. D' accord. Donc, il est perceptible. Et une autre grande question est de savoir si le visage est toujours correct, donc nous voulons toujours cette plus grande partie ici, nous faisons face à nous. Et cela fonctionne aussi. Alors regardons ça comme ça. On y va. Donc, il fait face à la bonne façon. La forme voxel conserve. , oh, il y a une, il y a une minuscule URL, je crois. Regarde ça. Donc c'est que je pense qu'un pixel a tort. Cela a probablement quelque chose à voir avec. Celui-ci est correct. Donc, il y a probablement une erreur dans les parements. Cependant, il est à peine perceptible. Et je crois que ce n'est pas la pire chose à se produire. De toute façon. Donc, ce sont les modèles de blocs personnalisés sont très intéressés par les modèles de blocs personnalisés que vous venez avec. Donc ça pourrait être, bien sûr, des choses folles ou, vous savez, ou des machines normales peut-être, ou des appareils magiques, qui sait ? Et oui, c'est essentiellement comme ça que vous créez les modèles de blocs personnalisés avec l'aide de banc de blocs. Et oui, s'il y a des questions, hésitez pas à les poser. Et si vous avez apprécié ce cours jusqu'à présent, alors bien sûr, j'apprécierais vraiment un commentaire critique. Et oui. 64. (Minecraft) Créer une nouvelle entité de mosaïque : Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons ajouter une entité de tuiles à notre MOD et spécifiquement au feu électrique ici. Donc, la première chose dont nous avons besoin est un nouveau paquet. Encore une fois, nous pouvons appeler cette tuile ou entité de tuile. Cela n'a vraiment pas d'importance, mais l'entité tuile ou tuile est une sorte d'endroit où vous devriez aller avec cela. Et puis nous avons besoin de deux nouvelles classes. L' un va être les entités de tuile MOD, les entités que nous allons. Et l'autre sera l'électrifier ou la tuile. Donc, fondamentalement, l'électro déclenche le bloc. L' électrifier ou la tuile est l'entité de tuile qui lui est associée. Il pourrait aussi, quelque chose que nous pourrions faire est, par exemple, d'appeler cela l'électrifier notre bloc pour que nous soyons même sûrs de cela. Ok, c'est le bloc et l'autre est l'entité de tuile. C' est quelque chose qui pourrait être fait. On va le garder comme ça, mais c'est quelque chose que tu voudras peut-être penser. Donc, tout d'abord, nous voulons à l'intérieur de notre enregistrement un nouveau registre par défaut. Et cela va être public, statique, dernier registre différé de type, type d'entité de tuile. Et puis on va mettre un point d'interrogation à côté de là. Et puis cela va être des types d'entités tuilées. C' est égal à la création de points de registre différents. Ford enregistre ces entités de tuiles. Mc mod, mod OD. Magnifique. Et puis ici, nous allons juste ajouter ceci à notre registre pour la méthode init. Et c'est que les entités Mott que nous allons examiner en ce moment sont là dedans. Nous avons bien sûr besoin d'ajouter un objet de registre final. Encore une fois, c'est très similaire à toutes les autres choses que nous avons ajoutées, les éléments, les blocs et le fluide. Cela va être de type. Et puis en quelque sorte un point d'interrogation ici, nous allons réellement spécifier le type de feu électrique. Ça va être élu feu électrique dans T. Laisse-moi zoomer un peu. C' est égal au registre des entités de tuile point d'enregistrement. Et ça va être comme un feu électrique, entité Tyler. Cela va être un point constructeur de points de type d'entité Tyler créer. Et puis nous avons besoin de fournisseur pour une nouvelle électrifier notre tuile. Et puis ici mod blocs, point ou nous n'avons pas encore de blog. Je ne sais pas. Nous avons plusieurs, Bien sûr, nous avons l'électrifier sont déjà remplis. Et puis à l'intérieur d'ici, nous voulons spécifier un null et qui peut ensuite être supprimé ici. Un non de plus. Quelque part. Quel est le problème ? Je bien sûr, l'électrifier notre titre n'est pas encore une tuile. Cependant, cela devrait être très bien. Donc, nous avons aussi besoin de notre registre public des vides comme ça. Et nous pouvons enregistrer ceci au lieu d'ici, où nous n'avons pas simplement dit des entités de tuiles mod qui s'enregistrent. Et c'est génial. Et puis à l'intérieur de l'électrifier notre tuile. Et bien sûr, nous voulons que cela étende l'entité de tuile. Entité tuile. Alors que l'entité a nous allons, oui, celui-ci. Et cela va créer un instructeur. C' est très bien. Vous avez également besoin d'un second instructeur qui va être électrifié ou tuile sans paramètre. Et à l'intérieur, nous voulons prendre les entités mortelles, style.css électrifié. Donc, ce constructeur appelle ce constructeur avec le, avec cette entité de tuile. Et puis la flèche ici est chemin, puis l'erreur ici est aussi un moyen. Et puis nous pouvons continuer à remplir cela. Donc pour l'instant, ce que nous allons créer à l'intérieur de notre feu électrique est simplement un gestionnaire de pile d'éléments. Donc, je vais créer un gestionnaire de pile d'élément final privé et c'est quatre. Tout en manipulant des objets. Assez fou, je vais appeler ce gestionnaire de création. Et c'est une méthode que nous allons lire ici. Articles Stan, article, pile, gestionnaire. Et qui va être tiré créer poignée est et il. Donc, l'entité de tuile est fondamentalement juste un bloc ou son, ses données associées au bloc qui peut stocker des données dynamiques, n'est-ce pas ? Donc ce n'est pas, il n'a pas besoin d'avoir un, n'a pas besoin d'avoir une interface graphique. C' est quelque chose que nous allons examiner aussi. Cependant, il n'a pas à le faire. Donc, dans ce cas, nous allons juste faire ça pour que nous puissions passer objets dans le feu électrique et les sortir à nouveau. Et on va faire ça avec des trémies, mais on va le voir assez tôt. Donc, juste ici va réellement créer un nouveau gestionnaire de pile d'éléments avec soupirs One et aperçu. Nous devons remplacer quelques choses. Vide protégé sur le contenu, sur le contenu modifié dans la fente. On va marquer sale. Donc, c'est juste pour s'assurer que c'est quelque chose à voir avec le, avec les troncs et s'assurer que c'est sûr correctement. Boolean est valide, est l'élément valide, c'est r1. Je l'ai laissé. Donc, cela définit simplement si oui ou non nous pouvons réellement mettre dans un élément. une fente spécifique. À ce stade, nous allons simplement retourner vrai. Et puis le dernier est en fait la méthode où nous insérons l'élément dans un emplacement spécifique. Encore une fois, une pile d'éléments non nulles, une pile et une simulation booléenne. Et la simulation booléenne est juste pour que nous, si c'est vrai, alors nous simulons seulement mettre l'élément dans. On ne met pas vraiment l'objet. Et donc généralement, ce serait faux s'il entre, mais il doit toujours être là. Ceci est non nul et un remplacement. On y va. Et là, on peut finir ça. Et cela semble déjà très bon. Nous devons également nous assurer que nous avons spécifié le ceci comme un optionnel paresseux car nous devons spécifier les capacités. Ainsi, les entités de tuiles fonctionnent avec des fonctionnalités. Et dans ce cas, nous voulons un gestionnaire d'élément. Et voici ce gestionnaire, et c'est un optionnel paresseux de et puis nous lui fournissons le gestionnaire d'objet Evo. Oui. Et puis nous voulons rendre ça. Je suis avec un autre override ici qui va être public. Paresseux, optionnel. Et obtenons des capacités. Capacités. Oui, je pense que c'est juste. Et être une capacité non nulle, capacité t et un côté de direction nullable. Vous pouvez donc imaginer que différents sites peuvent avoir des capacités différentes. C' est une fois de plus un remplacement. Et cela va simplement être grotte, capacité est égale à un gestionnaire d'élément de probabilité. Donc, nous vérifions si oui ou non ce qui tient pour est que l'élément gère une capacité. Et si c'est le cas, nous allons retourner le point de gestionnaire. Et si rien d'autre le cas, nous allons juste retourner la capacité git super dot, capacité et le côté ça ira. C' est tout ce que nous devons faire ici. Donc, les capacités et vous pouvez aussi, Je crois les regarder année i stockage. Et laissez-moi juste voir rapidement la capacité, gestionnaire d'élément. Eh bien, ce sont des spécifiques en fait. Ouais, donc il y a différentes capacités, comme je l'ai dit. Et dans ce cas, le gestionnaire d'élément est celui qui est, je pense que le plus intéressant en ce moment. Et une que nous allons examiner, il y a cependant deux autres choses que nous devons ajouter. Ça va être une fonction d'écriture et de lecture. Donc ça va prendre l'état de bloc, état. Et un composé, peut-être que vous en avez entendu parler avant. Ce sont les données nvt dont beaucoup de gens parlent en regardant des éléments et ainsi de suite. Et nous allons avoir ce gestionnaire d'élément point désérialiser MVT. Cela fonctionne déjà parfaitement bien. Pourtant composé avec un inventaire de chaînes. On va rapidement écrire ça, quelque chose là-dedans. Alors lisez et c'est la balise d'état. Donc, c'est fondamentalement une lecture. Donc il va lire l'inventaire ou, le, ce qu'on dit. Il va lire quelque chose avec le nom assez. Donc l'inventaire dans notre cas. Et puis nous avons aussi besoin d'un MPT Humboldt public. On va juste avoir raison, ça va être compilé et B t tag. Et c'est l'inverse. Donc, ici, on va mettre le dedans. Cela va être le gestionnaire d'élément point désérialiser. Désolé, sérialisé, en fait sérialiser. Et puis nous allons retourner Super.onCreate avec un nom de balise. Nous allons aussi écraser celui-là juste pour que nous sachions. Et je crois que c'est l'entité de tuile créée avec la capacité de gérer des éléments afin que nous ayons réellement que nous puissions réellement y mettre des éléments. Et il a une fente, quatre éléments maintenant nous ne pouvons pas voir cette fente. Et nous pouvons, nous ne pouvons interagir avec elle que de l'extérieur. Il y a encore une chose ou deux choses que nous devons ajouter ici au feu électrique. Et c'est deux méthodes pour remplacer les méthodes. L' un d'eux est, voyons si je peux le trouver ici. C' est beaucoup de méthodes en passant, que vous pouvez implémenter. Donc, il y a beaucoup de choses que nous pouvons faire. Cela va être une entité de tuile publique, lire, lire entité de tuile, bloc , état, état, et un lecteur iBook qui va être le monde. Et ça va revenir, retour, entité mod tuile, entités tuiles, talents électrifiés dot github, V8. C' est un surpoids aussi bien à cela. Donc, nous sommes sûrs que, et puis le meilleur remplacement de tous d'entre eux est a entité tuilée. Eh bien, si elle a une entité de titre, nous savons et c'est bien sûr, qu'elle en a une. Et on y va. D'accord. Fait. Je crois donc que cela devrait être tout cela. Nous avons ajouté ceci. Je crois que c'était tout. Essayons de voir si cela fonctionne déjà ou non. On l'a enregistré. Nous avons ajouté les identités ici. Encore une fois, la pire chose qui puisse arriver est qu'on ait une flèche, mais je ne pense pas qu'on en aura une. Je pense que ça devrait être bien. Et oui, donc il y a, les, les capacités sont intéressantes. Mais voyons si la capacité de l'élément a été ajoutée à cela. Donc, de l'extérieur, le bloc n'aura pas changé. Et tant que ça l'a fait, nous aurons changé de l'intérieur. Donc, comme vous pouvez le voir, le bloc est toujours là. Détruisons simplement ça parce que parfois quand on change le bloc, puis ça, ça, puis parfois il y a des choses bizarres qui peuvent arriver. Alors posons ça et essayons de prendre la trémie ou deux trémies en fait. Tout d'abord, nous allons mettre cette année. C' est plutôt bien, non ? On peut donc voir qu'il veut y mettre quelque chose. Et nous allons aussi en mettre un ci-dessous. Et puis mettons les trémies et nous pouvons voir qu'il y a inséré dans votre labo. Un clic droit ne fonctionne pas. Et il y a aussi être que j'ai sorti là-bas. Donc, un clic droit ne fonctionne pas car il n'a pas d'interface graphique et il n'a pas la capacité pour le moment d'être cliqué avec le bouton droit de la souris. Et nous pouvons l'ajouter bien sûr, mais, et nous allons l'ajouter dans la prochaine conférence. Mais en ce moment, comme on peut le voir, les blocs sont, ou les objets passent par ce bloc ici. Et c'est fondamentalement ce que nous voulions démontrer que, oui, en effet, cela a une capacité de gestionnaire de blocs d'élément maintenant. Et c'est une entité de tuile et enregistre les éléments qui s'y trouvent. Et regarde ça. Le lapin va aussi se montrer. N' est-ce pas gentil ? C'est génial. C'est vrai ? Donc, c'est essentiellement la façon dont vous créez une entité de tuile. Bien sûr, ce n'est pas encore tout à fait fait fait. Cependant, ceux-ci seraient similaires à des choses comme des tuyaux que nous pourrions voir ou un élément peut largeurs ou quelque chose comme ça dans différents modes. Lorsque ces entités peuvent également être des entités de tuile, mais sans un Gy spécifique, parce qu'elles seulement, elles ont seulement besoin d'enregistrer une sorte de données. Et ils n'ont pas nécessairement besoin d'avoir une interface graphique, n'est-ce pas ? Voici donc comment créer une entité de tuile. Encore une fois, s'il y a des questions, n'hésitez pas à poser. Et oui. 65. (Minecraft) Créer une GUI personnalisée: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre propre interface graphique personnalisée pour notre feu électrique que nous avons créé pour notre entité de tuiles. Et il y a peu de choses dont nous avons besoin. Il nous faut deux paquets de plus. Le premier paquet que nous allons créer va être un conteneur froid. Et le deuxième paquet va être refroidi écrans. Maintenant, ces écrans on peut se demander si oui ou non nous voulions avoir ça ailleurs et le conteneur aussi. Encore une fois, c'est quelque chose qui est personnalisable, disons deux, mais vous voulez briser cela, même avec les liquides de boue. Quelques conférences en arrière. Peut-être que vous voulez votre propre paquet personnalisé pour les fluides et ainsi de suite et ainsi de suite. C' est, c'est vraiment un style plutôt que quelque chose qui doit être ce cas. Je vais le faire comme ça. Mais vous êtes bien sûr libre de le faire presque comme vous le voulez. Donc, cela va créer, cela va avoir une nouvelle classe Java appelée conteneurs MAD. Conteneurs un ego. Très bien. Et c'est une fois de plus l'une de ces classes comme les blocs de boue et les fossés. Pas quelque chose que nous n'avons pas vu auparavant. d'abord, bien sûr, nous devons entrer dans notre registre et l'enregistrement et obtenir un registre public statique final différé une fois de plus de type conteneur. Et ce sera en fait ce n'est pas de conteneur, mais c'est de type conteneur avec un point d'interrogation ici, des conteneurs. Et ça va être différent. Enregistrer point créer quatre registres. On l'a vu beaucoup de fois auparavant. Et ça va être des conteneurs, scores mod, mod ID, non ? Ça ne devrait plus être un mystère. Et puis bien sûr ajouté ici, très important. Comme toujours. Ce sont, sont le genre d'erreurs que vous, que l'on fait pour l'ajouter ici. Et puis il faut environ une heure pour comprendre pourquoi cela ne fonctionne pas chez un nouveau PDG. J' ai juste oublié de l'enregistrer. Et c'est toujours, c'est toujours quelque chose qui pourrait arriver. Et ce sont les pires erreurs. D' accord, donc tout d'abord, on va immédiatement mettre ça dans votre finale statique publique. Et ça va être un objet de registre. Objet Registre en fait ne pas enregistrer, enregistrement objet de type, type conteneur. Et puis nous avons besoin du conteneur de feu électrique de la jambe. Maintenant, cela n'existe évidemment pas encore, mais nous allons créer ce conteneur de feu élu et nous assurer que j'écris ceci correctement parce que. Je ne sais pas pourquoi j'ai choisi électrifier ou comme nom, mais je veux dire, je sais pourquoi j'ai choisi, mais parfois il peut y avoir une faute de frappe là-dedans, mais oui, ça va être de type II conteneur forge type dot create. Et que nous pouvons déjà créer quelques choses ici. Et bloc, bloc poss, pos égale à data.frame, Blog. Monde, Monde équivaut à l'inventaire point joueur, point obtenir monde Entité, puis retourner un nouveau conteneur de feu élu avec fenêtre IID monde. Pause dans le lecteur de points points. Encore une fois, cela n'existe pas encore. Eh bien, nous avons également besoin est une méthode publique de registre vide statique. Encore une fois, comme toujours. En outre, nous devons importer quelques choses. Cela peut bien sûr être importé qui n'existe pas encore. Alors on va ajouter ça ici. Ce sera les conteneurs mod. Les conteneurs s'enregistrent, écrivent o, n'est-ce pas ? Puis à l'intérieur de notre conteneur, nous allons maintenant créer ça, électrifier notre conteneur. Donc, ce sera le conteneur de feu électrique. Espérons que je l'ai écrit correctement. Sinon, nous allons finir dans de graves ennuis. Bien sûr, nous pouvons toujours le refactoriser si ce nom est faux. est très important que ce soit le bon conteneur qu'on va prendre. Le conteneur d'inventaire net Minecraft et non celui du Java peuvent interagir avec. Oui. Nous allons le faire et ensuite nous avons besoin d'un constructeur. D' accord. Je veux dire, je ne m'excuse pas. Non. Je ne veux rien faire de cette façon. Pourquoi ça ne marche pas comme ça ? C'est bizarre. D' accord. On n'a même pas besoin de ça. C' est le, c'est un truc dingue. Nous n'avons pas vraiment besoin de ce constructeur de toute façon. Nous allons créer notre propre constructeur qui va être électrifié ou conteneur avec les choses que nous avons déjà faites. Nous allons donc avoir besoin d'un identifiant de fenêtre. On va avoir un monde, un monde. Il va y avoir une pause bloquée, pause. It, inventaire des joueurs, joueur, inventaire des joueurs, et un joueur, entité du joueur, joueur. Et puis cela doit être importé. Cela doit être importé. Et que faut-il faire d'autre ? Quelques choses que je crois. Nous devons insérer super Oui, avec balai conteneur point électrifié get et l'ID de la fenêtre. Et puis tout va être maladroit comme le disent les enfants. Oh, le type de conteneur doit être importé et puis je crois que cela n'a plus oui, cela n' a plus de taux de flèches et, et cela n'a plus d'erreurs. Et puis tout le monde va bien. C'est génial. Donc, dans le conteneur, on va juste passer par le conteneur d'abord. Nous allons obtenir l'entité de titre ou bien, c'est quelque chose que nous devons réellement spécifier ici. Il y a donc trois choses que nous allons avoir. tuile privée, entité de titre. Nous allons avoir une entité de joueur privé, une entité de couche. Et nous allons avoir ungestionnaire d'objets d'oeil privé, gestionnaire d'objets d'oeil privé, qui sera l'inventaire des joueurs. Et ce sont les trois choses que nous allons immédiatement mettre ici. Donc, cette entité de tuile point est égale à l'entité de tuile WorldCat à la position que nous spécifions dans, dans ce constructeur. Et cette entité de joueur point est égale à un joueur. En fait, c'est assez facile. Et à moins que l'inventaire des joueurs ne soit égal à un nouvel emballage de l'inventaire des joueurs. Ok, c'est génial. Ensuite, et c'est quelque chose que nous allions juste faire et ensuite je vais l'expliquer comme nous continuons comme toujours. Donc, si l'entité de titre n'est pas nulle, donc cela garantit simplement que nous avons réellement une entité de titre. Alors ce qu'on va faire, c'est qu'on va dire, hey, donc le point d'entité de tuile obtient la capacité. C' est ce que nous avons déjà défini. Et si l'élément point du gestionnaire d'élément de capacité et la capacité si elle est présente, alors un que nous allons faire est que nous allons créer des choses. Et cela a en fait quelques consommateurs. Et ce qu'on va faire, c'est ajouter des créneaux horaires. Ce sont les fentes que nous voyons dans. Ainsi, par exemple, l'inventaire où vous mettez dans les articles, chacun de ceux-ci est une fente. Et nous allons créer ces slots maintenant à l'intérieur de l'interface graphique elle-même. Et je vais juste mettre des souris, des trucs que j'ai déjà préparés ici. Je vais t'expliquer rapidement après. Et la meilleure chose pour cela serait aussi de déjà démarrer Photoshop, juste pour que je l'ai en espérant qu'il commence sur l'écran de droite. Oui, parce que c'est quelque chose que nous devons examiner. Nous devons donc regarder l'interface graphique. Et comment sauriez-vous quelles sont ces positions ? Et ne vous inquiétez pas, vous n'avez pas nécessairement besoin d'avoir Photoshop pour cela. Vous pouvez également utiliser, par exemple, GIMP ou quelque chose comme painted.net. Je ne suggérerais pas de peinture parce que la peinture n'est pas la meilleure pour cette raison, plus de fonctions et de méthodes d'aide plutôt. Donc, tout d'abord, nous avons besoin d'un emplacement publicitaire arrangé. Encore une fois, tout ce code est également disponible en tant que ressource. Si vous ne voulez pas le taper. Cependant, je pense qu'il est logique passer par cela avec moi dans votre et de le taper, parce que parfois le taper se solidifie réellement. Donc, ici, nous ajoutons réellement une plage de fente. Ceci est une fonction d'aide pour ajouter plusieurs slots à la fois. Donc, cela est nécessaire pour que nous ayons le, nous pouvons ajouter l'inventaire un peu plus rapidement. Et puis nous avons la fente d'annonce, le nouvel élément de fente et avocat. Handler index les x, y. et cela va être alors x est plus égal à dx. Dx n'est bien sûr que le changement, l'indice va augmenter. Et nous allons juste retourner l'index. C' est la plage de fentes publicitaires. Maintenant, nous ne serions pas privés dans la boîte de fente d'annonce. Encore une fois avec un gestionnaire d'élément, va gestionnaire, je pense. Et en fait celle-là. Et la seule chose qui doit changer est que c'est en fait pourquoi, et c'est le montant vertical. Il nous faut un autre, un autre entier, vieux. Eh bien, c'est en fait après, mon Seigneur, ma terre. Je vais copier ça de l'autre. Désolé. On y va. Donc, nous avons besoin dans l'index x, y, puis le montage horizontal dans le changement de x, puis le mode vertical, puis le changement de y, donc dx en d y. Et au lieu d'ici, nous allons réellement avoir un int i, j 0, j est plus petit que la quantité verticale. Donc, nous allons passer par combien, combien, et en gros, combien de lignes il y a. Et l'index va être d'ajouter la plage de fente. Alors maintenant, on va l'appeler. Et l'idée ici est qu'une fois que j'ai tapé ceci, que y est n équivaut à deux d, d y bien sûr. Donc le changement là, et ensuite nous allons retourner l'index. Donc, l'idée ici est que cela ajoute fondamentalement la, la ligne. Donc, c'est bon. C' est ce qu'on appelle pour chaque rangée, non ? Donc, les plages de fentes d'annonces essentiellement appelées pour chaque ligne et ajouter boîtes à sous appelées Dans combien de lignes il y a. Et cela est nécessaire pour la mise en page vide privée. Mise en page, emplacements d'inventaire des joueurs. Donc, cela rend simplement beaucoup plus facile de juste immédiatement à l', à l'inventaire des joueurs, non ? Donc on va s'asseoir leur inventaire, puis neuf, puis on a quitté le col, et ensuite on va dire le premier rang et on va dire neuf. Et puis, on va dire 18 ans. Et puis on va dire 318. Et c'est plus parce que ce n'est pas une fente mais une boîte S LAB. On y va. Joli. Et puis nous voulons aussi ajouter la barre chaude. Alors on va faire le premier rang plus égal à 58. Et puis nous allons ajouter une autre plage de machines à sous avec l'inventaire des joueurs est 0 ligne supérieure d'appel gauche, 9180, pas 1980. Merci beaucoup, Diego. Droit ? Donc, cela est fondamentalement juste pour le fait que nous voulons disposer l'inventaire des joueurs et cela rend beaucoup plus facile. Et je ne dirais pas que ce n'est pas nécessaire de comprendre comment il ne pouvait pas. Vous pouvez bien sûr passer par là et comprendre ça peu à peu. Cependant, il est très important de savoir que c'est, c' est juste quelques fonctions d'aide ont la santé. Encore une fois, les méthodes d'aide. Ils vont y aller. Oui. Et une autre chose, juste à l'intérieur de notre tête, interagir avec sont en fait va revenir est à distance utilisable. Et nous allons dire que je vais passer appelable de tuile entité, entité, point, get world. Ensuite, nous allons spécifier la position. Et puis nous allons spécifier l'entité du joueur. Et puis on va dire que c'est dans le mod blocks d'air électrifié. On y va. On y va. C'est juste dans cette distance utilisable que nous allons juste dire, hey, nous pouvons interagir avec cela si c'est dans la distance qui est spécifiée à l'intérieur de cette méthode qui est dans la classe conteneur elle-même. Et cela, c'est logique, que c'est bon à utiliser. Ok, donc dans ce, nous avons effectivement spécifié ici, donc la disposition de l'inventaire des joueurs, nous avons également ajouté les emplacements du conteneur lui-même. Et il y a une autre chose que nous devons faire, et je vais vraiment copier cela parce que c'est une méthode très importante. Et cela va être ajouté entre ces deux-là. Comme je l'ai dit, une très longue. Et dans ce cas, l'essentiel de ceci est simplement que cette méthode est appelée lorsque nous transférons un deck dans une fente d'index en O d'index, index fondamentalement. Et cela fait en sorte que, eh bien, s'il y a déjà une pile là-dedans, donc s'il y a déjà un élément là-dedans, bien sûr, nous ne pouvons pas juste y mettre un autre élément. Ça ne marche pas. Nous ne pouvons jamais fusionner la pile si le si c'est le même. Et oui, et c'est maintenant. Ici. Nous avons également l'élément spécifié sur l'index un de sorte que cela, que seuls les articles peuvent être des diamants, articles de l'histoire. Les diamants peuvent être placés dans l'index 1. Cependant, nous allons voir que c'est aussi quelque chose que nous devons spécifier à côté de la au lieu de la je crois que c'est l'entité de tuile. Si je ne me trompe pas. Idée à l'intérieur d'ici, est un élément valide, est quelque chose que nous pouvons également utiliser pour cela. Alors la prochaine chose, c'est le conteneur, et le conteneur est fait. La prochaine chose que nous devons faire est que nous devons réellement enregistrer le conteneur. Cependant, nous ne pouvons pas encore le faire parce que nous avons besoin de l'écran. Donc, l'écran est le, c'est, Je veux créer une nouvelle classe Java refroidi l'écran de feu de voyage. Et cela va s'étendre, s'étendre de. Écran de type Conteneurs. Électrifie notre conteneur. Comme vous pouvez le voir, cela devient un peu plus compliqué qu'avant. La seule méthode que nous avons réellement besoin d'implémenter ici est la couche d'arrière-plan du médicament nous conteneur. Et puis bien sûr, nous avons aussi besoin d'un constructeur. On va faire tout seul. Cela va être d électrifie écran. Et ça prend un conteneur électrifié, vieux conteneur, un inventaire des joueurs, assez vieux. Et je composant texte nommerait. Droit ? Et puis on va appeler le super pour ça. Et ça va être tout. Nous avons également besoin d'un emplacement de ressource ici pour notre fichier GUI. Nous allons avoir une ressource finale privée, l'emplacement des ressources. Laissez-moi tenir l'interface graphique. Nouvelle ressource, emplacement des ressources. Nous MC, mod mar ID et textures. Gui, feu électrique, GUI, PNG. Je vais le montrer assez tôt, l'interface graphique. Cependant, en ce moment, nous allons terminer cet écran que je vais aller dans l'interface graphique et ensuite aussi expliquer d'où j'ai obtenu ces chiffres et comment cela fonctionne. Donc, la première chose à l'intérieur d'ici est en fait rien parce que nous avons aussi besoin de deux autres méthodes que nous devons remplacer. Et ce sera en fait, faisons-le comme ça. Allons le faire, appelons-le ou rendons. Et ce sera le premier rendu ici. Et puis disons aussi dessiner l'interface graphique, couche de premier plan du conteneur. Oui, je crois que c'est le cas. Ok, ici, nous voulons faire cette collation matricielle de rendu de points. Et ici, nous voulions avoir rendu hover, sac de matrice d'info-bulle, souris x, souris y. cela rend fondamentalement juste le, l'écran lui-même. Ensuite, dans le calque d'arrière-plan, il dessine un calque d'arrière-plan. Tout d'abord, nous voulons la couleur du système de rendu, la couleur 4F. Donc cette couleur, c'est ça, ça compte. Il dit aussi qu'il n'a pas vraiment besoin d'être là. Je conseille de le mettre là. Faisons ça, puis nous avons ce point minecraft et obtenons le gestionnaire de texture. Avec cela, nous sommes en train de définir la texture. Donc, c'est le, nous avons fourni l'emplacement des ressources de notre, de notre texture. Et je vais dire int i, ceci. On est partis. Nous avons cet int j, ce haut GUI. Et puis on dira ce doublet. Et ce doublet découpe fondamentalement une partie de l'image et l'affiche avec le, ces décalages et avec la taille. Maintenant, ça peut être un peu compliqué en ce moment, mais ne t'inquiète pas, on va passer par ça, ok ? Donc, c'est tout sauf que nous voulons aussi et label énergétique. Je vais juste copier rapidement ça. Ça va être au premier plan et on n'a pas besoin d'appeler super. Bien sûr que nous n'avons pas encore ça. Donc nous allons juste dire, disons énergie 0, eh bien, le moment venu. Et ensuite, nous allons ajouter ceci lorsque cela est approprié. Et en ce moment, cela devrait déjà fonctionner. Donc, nous allons rapidement, je vais rapidement copier sur la texture de l'interface graphique. Donc, cela doit être à l'intérieur des textures. Et puis nous avons besoin d'un nouveau répertoire, un nouveau répertoire appelé GY. Et en quelque sorte on va mettre celui-là, on va le copier. Et je vais rapidement tirer ceci sur Photoshop et vous montrer cette boutique d'informations à quoi cela ressemble. C' est ainsi que le, comment l'interface graphique ressemble à ce moment dans le temps. Et je vais expliquer le jaune et le gris ici après avoir traversé les machines à sous. Donc fondamentalement, la fente, comme nous pouvons le voir à l'intérieur de notre conteneur, encore une fois, nous avons effectivement spécifié le premier slot avec l'indice 0 à 3057, non ? Donc 0-0 est là-haut, non ? Donc, en haut à gauche. Et puis quand nous allons avec cela, la première partie de la fente est 13. On peut voir. Et puis ici, on peut voir que c'est 57 hauteur, non ? Donc, cela définit alors la pente est à cette position. Et les deux autres sont exactement les mêmes, non ? Encore une fois, cela est également fourni à savoir. La barre jaune et la barre grise sont pour les niveaux d'énergie. C' est ce qu'on va faire aussi vite. Mais tout d'abord, nous allons vérifier si tout fonctionne avec des machines à sous. Parce que nous devons encore faire quelques choses pour que cela fonctionne. Cependant, c'est ainsi que vous obtenez ces postes. Comme je l'ai dit, vous pouvez également utiliser de la peinture sur le net. Cela fonctionne fondamentalement exactement la même chose. Et bien sûr, vous pouvez également faire votre propre type d'interface, n'est-ce pas ? Ça n'a pas à ressembler à ça. Ça peut sembler fou différent. Il peut avoir une couleur ou des symboles différents entre les deux. Ou vous pouvez, vous pouvez, vous savez, dessiner dessus. Tout fonctionne. C'est juste un fichier PNG. Maintenant, ce que nous devons maintenant ajouter est à l'intérieur de notre, Donc tout d'abord, à l'intérieur de notre proxy client, c'est la première chose que nous devons ajouter. A l'intérieur du fichier init. Méthode d'initialisation. Nous voulons ajouter le gestionnaire d' écran, registre de points de gestionnaire d'écran, conteneurs de mod d' usine, électrify conteneur point get. Et puis nous voulons dire électrique premier écran. Et puis tu allais utiliser la construction lambda là-bas, non ? C' était l'une des choses que nous devons ajouter. Et puis à l'intérieur de notre tuile, Eh bien, tout d'abord, à l'intérieur du bloc, nous devons en fait ajouter la possibilité de cliquer avec le bouton droit de la souris. C' est très important. Donc, à l'intérieur de l'électrifie lui-même, nous voulons ajouter, je crois, une seule méthode, mais ce sera à nouveau un doozy. Donc ça va être un bloc activé. Encore une fois, peu importe que ça dise, Oh, c'est obsolète. Nous pouvons simplement ajouter cette application à nouveau parce que pour nos besoins, ce n'est pas si important. Et on va dire, si le monde est éloigné. Donc si le monde n'est pas éloigné, on va le faire. Et cela va être l'entité de tuile, le titre, l'entité, entité de tuile de points du monde à la position qui a été spécifiée. Et puis on va dire, hé, si cette entité de tuiles est une instance de l'entité de feu électrique et de tuile, alors on va faire quelque chose. Et ce qu'on va faire, c'est dire que j'ai nommé fournisseur de conteneurs. Le fournisseur de ténor est égal à un nouveau fournisseur de pré-impression IE nommé. Et puis ça va devenir fou et lire quelque chose ici, ce qui est vraiment génial parce que c'est exactement ce dont nous avons besoin. Ici. Nous voulons créer un nouveau composant de traduction de textes. Et puis c'est le point de l'écran MC, pire point feu électrique. Donc, c'est fondamentalement le, c'est la chose que nous utilisons dans notre fichier de localisation EN us. Et encore une fois, vous n'avez pas besoin de le faire, le nullable nécessairement. Et nous allons vraiment les lire, renommer parce que ça n'a pas besoin de l'être. On y va. Ok, alors ne revenons pas non plus nulle, mais un nouveau conteneur d'air électrifié, électrifié avec tout un tas de choses. Je monde, oh, c'est moi, au fait. Je monde POS, inventaire des joueurs et entité de joueur que nous allons. Et puis le monde n'est pas là parce que c'est dans ça que nous sommes. Eh bien, ce n'est pas la pire chose jamais. On y va. Et il doit ensuite faire quelque chose de très intéressant. Et ce sera un réseau de livres point ouvert GUI. Et nous allons dire des points d'entité de joueur de serveur, de joueur, de fournisseur de conteneur et d'entité de tuile. Pourtant, OS. Si ce n'est pas un cas de feu électrique, nous allons lancer une exception. Cependant, ils le font parfois. question ma santé mentale avec ça. Retournons simplement le type de résultat réel de succès. Et je partirai alors il saura que ça ne va toujours pas les faire. Parfois, je ne sais pas pourquoi il ne le fait pas comme je le voulais, mais d'accord. Lancer une nouvelle exception d'état illégal. Et c'est fondamentalement notre conteneur est manquant. C' est le fournisseur de conteneurs, mais oui. Rho vita. Ok, en théorie, ça devrait être tout. A cela s'assure juste que cela est ouvert du côté client aussi. Alors qu'il y a ceci, encore une fois, la différence du client du serveur. De toute façon. Ainsi, le débloquer activé est froid lorsque vous cliquez avec le bouton droit sur le bloc. Et je vais juste vérifier si tout est fait. Et je crois que tout est fait pour au moins faire en sorte que nous puissions ouvrir l'interface graphique. Je crois que cela devrait fonctionner en ce moment. On va juste essayer. En fait. Nous aurions une erreur. Parce qu'une chose que nous devons faire est de mettre ça à trois. Parce que bien sûr, nous avons trois emplacements que nous avons spécifiés à l'intérieur de notre conteneur ici. Et cela doit correspondre à ces trois créneaux horaires. Exécutons ceci et voyons si cela fonctionne ou non. Et comme vous pouvez le voir, plus c'est compliqué, plus nous devons regarder. Et voilà, nous avons effectivement une erreur. D' accord, j'ai réussi à corriger la flèche et ça avait quelque chose à faire en tant que propriétaire de cette conférence ou de la conférence avant, où l'annotation bizarre était, il voulait en quelque sorte ajouter quelque chose. Et il a ajouté ceci dans le fichier de construction Gradle. Et ça, je veux dire, je ne dirais pas que c'était corrompu, mais ça n'a plus fonctionné. Donc, je l'ai corrigé en supprimant simplement cela du fichier de construction Gradle. Et oui, c'était une flèche qui n'avait rien à voir avec ce que nous avons fait ou fait. Alors, oui. Vérifions simplement si l'écran fonctionne maintenant. Et si nous pouvons réellement voir l'interface utilisateur EEG ici, voyons. Donc, tout d'abord, il est préférable de, si vous avez encore l'écoute, si vous avez encore le bloc quelque part supprimé et le placer à nouveau. Parce que sinon, il pourrait y avoir un peu bizarre. Donc, voyons si cliquez avec le bouton droit de la souris si oui ou non ça va planter ou si ça marche. Ça marche, c'est plutôt bon. Nous aimons voir ça. C' est très bien en fait. Et maintenant, nous pouvons placer les choses en tout. Pour que nous puissions jouer toutes sortes de blocs dans chacune de ces choses. On va changer ça très bientôt. Tout d'abord, nous allons, j'avais quelque chose à l'esprit où ce que je veux faire ça Ça fait aussi cette étiquette énergétique ici. Il crée cela automatiquement. Donc, cela est fait avec le, avec le avec ce conteneur graphique de dessin premier plan juste ici. Et la première chose que nous allons faire est d'ajouter à l'entité de tuiles de feu électrique. Et nous allons ajouter deux choses. Donc numéro un, nous allons ajouter. Est-ce que nous allons réellement implémenter, oh, nous allons implémenter l'entité de tuile cliquable, qui va faire. Et puis nous devons implémenter la méthode tick. Et c'est, disons ça un peu plus haut. En fait. Mettons ça ici. Et cela s'appelle chaque tique fondamentalement. Et nous allons aussi prendre deux choses. Je vais juste copier sur s2, deux entiers, une tique et un niveau d'énergie. Donc le niveau d'énergie dans ce cas, je ne l'appellerais pas, je ne dirais pas que c'est le niveau d'énergie, comme dans les machines nécessairement. C' est juste quelque chose comme un exemple ici. Et nous allons aussi descendre ici et nous allons dire, d' accord, est-ce que l'article est valide ? Et maintenant, nous voulons vraiment dire, eh bien, ça dépend de la fente dans laquelle nous sommes. Donc, nous allons réellement créer un commutateur de fente. Et ça va avoir une affaire 0. Encore une fois, nous avons commencé avec commencer à compter à 0. Et ils le sont, nous avons en fait un objet get. Stack dot GetItems est égal aux diamants points Adams. Donc je veux seulement revenir, donc je veux retourner ça. Donc, cela renvoie true si l'article est diamant. Donc, seuls les diamants peuvent être mis dans cette fente. Et on va dire 12. Et ici, nous allons dire par défaut. Et dans ce cas, nous allons retourner faux. Et dans ce cas, nous allons dire le fil de cuivre point de mod article, non, pas couvrir x fil de tasse. Commencez. Et ici, l'Adam va être une émeraude. Donc, l'idée ici est que nous voulons créer est une machine qui peut, qui peut diamant un fil de cuivre et les transformer en émeraudes. Bien sûr, il n'y a peut-être pas la chose la plus logique, mais c'est quand même, c'est bien sûr, juste un exemple de ce que cela pourrait ressembler. Et ici, dans l'élément d'insertion, nous allons réellement dire si et puis est l'article valide et puis nous, et alors nous voulons réellement avoir cela ne se produira pas. Donc si l'article n'est pas valide, nous allons juste retourner la pile. Donc rien ne change. Et donc nous allons retourner le super insérer un élément si l'élément est réellement valide pour cette fente. Donc c'est quelque chose que nous devons faire. Et puis nous aussi, je crois, une possibilité de pâte de lire les niveaux d'énergie. Donc on va faire cet int public, obtenir le niveau d'énergie. Et ça va retourner le niveau d'énergie. Et puis nous devons ajouter cela à côté de la méthode arctique aussi. Donc à chaque fois que cela est refroidi, nous allons en fait augmenter la tique d'un. Et puis nous disons, par exemple, si la tique est dix, donc ce serait tous les 2,5. Nous voulons qu'il arrive quelque chose. Et puis nous nous demandons, que voulons-nous arriver ? Et c'est bien sûr, quelque chose que nous devons penser à nous-mêmes. Donc, par exemple, je pourrais dire, eh bien, si La pile dans l'emplacement 0. Donc c'est là que nous mettons les objets si c'est vraiment un article là-dedans, non ? Donc, le diamant à pois. Et par exemple, le niveau d'énergie de cette machine est inférieur à 64. Disons que nous voulons dire, eh bien, 64 est le niveau d'énergie le plus élevé que nous voulons avoir. Alors ce que nous pouvons faire est que nous pouvons dire, bien extraire l'élément de la fente 0 par la quantité d'un et nous ne voulons pas simuler, nous voulons réellement le supprimer. Donc c'est quoi, cela supprime fondamentalement l'élément, non ? Et puis nous voulons avoir le niveau d'énergie. Ainsi, le niveau d'énergie augmente par chaque diamant qui est détruit. Et puis nous pouvons économiser aussi pour chaque tique. Si nous avons une fente dans, si nous avons un élément dans la fente 1, qui pourrait être, par exemple, les fils de cuivre, n'est-ce pas ? Donc objets MOD, fil de cuivre, point get. Et, et c'est très important et le niveau d'énergie, niveau d'énergie est supérieur à 0. Et aussi si l'autre, c'est aussi très important. Si l'article manipulé drogue est coincé dans la fente pour obtenir le compte et ne pas obtenir l'article, mais si le nombre n'est pas égal à 64, eh bien, en fait, nous pouvons dire est plus petit que 64. Oui. Oui. Et cela dit essentiellement, eh bien, vous savez, nous voulons que le niveau d'énergie, l'énergie ait un certain niveau afin de créer de nouvelles émeraudes dans ce cas. Cependant, c'est quelque chose que cela doit être pensé. Et le, c'est fondamentalement la logique de cela, de cette machine, disons. Et nous allons dire que c'est, extrait un article ici. Et puis il va insérer un nouvel élément dans celui-ci. Et ça va être une nouvelle pile d'éléments. Les nouveaux objets s'empilent avec le point émeraude de l'article. Ça va en devenir un. Nous ne voulons pas seulement le simuler, mais nous voulons vraiment que cela arrive. Et puis le niveau d'énergie devrait aussi diminuer, savoir, moins moins, et puis la tique est réinitialisée à 0. Maintenant celui-ci devrait être configurable, n'est-ce pas ? Donc, vous devriez vous référer à la conférence sur les conflits où nous avons réellement mis en config. Cela devrait être quelque chose qui devrait être configurable. Comme avec le niveau d'énergie, je le crois. Cela devrait être quelque chose comme le niveau d'énergie Max. Et vous pourriez aussi penser à, vous savez, avoir le montant être configurable que vous auriez besoin de changer quelques choses ici, mais ce serait toujours similaire. Donc, pour dire fondamentalement, en ce moment dans le niveau d'énergie est fondamentalement exactement équivalent à un diamant. Dans ce cas. Peut-être que tu veux changer ça. Nous devons également aller dans le conteneur et ajouter une autre méthode de Milan fonction ainsi en bas. Et ça va être un int public niveau d'énergie. Et cela va simplement retourner un titre sûr, this.title et t parce qu'il ne sait pas ce que c'est This Is ce bon niveau d'énergie de la Thaïlande. Sans celui-ci encore, et ce n'est que dans le client de bureau. En passant, cela ne devrait être fait que dans le client parce que nous avons seulement besoin de mettre à jour ceci ou le client. Quel est le problème ? Et le conteneur ? C' était un à plusieurs. Ok, ils y vont. Et à l'intérieur de l'écran, maintenant nous pouvons réellement ajouter ceci. Donc, nous pouvons réellement dire conteneur point obtenir niveau d'énergie. Et puis le niveau d'énergie va y aller comme une mise à jour là-bas aussi. Et puis nous allons aussi ajouter un autre, une autre billette. Je vais rapidement mettre ça ici. Donc, l'idée ici est que si nous revenons à l'interface graphique, l'interface graphique, comme vous pouvez le voir, elle est toujours pleine. Donc, si la barre jaune est en haut, alors elle est essentiellement pleine. Et ce qu'on va faire, c'est que cette chose va être posée dessus. Donc je vais faire rapidement quelque chose comme ça. Donc, cela va être posé dessus, et il va être supprimé pour chacun. Donc, chaque pixel va être supprimé pour chaque niveau d'énergie que nous avons. Donc, c'est exactement 64 pixels de haut en passant. Et c'est une façon de le faire, par exemple. Et oui, on va juste regarder comment ça, et ça a vraiment l'air dans le jeu et si ça marche ou non. Donc, c'est fondamentalement l'idée au décalage. Encore une fois, voici, ce sont des mathématiques simples. Je dirais que le x et y est le coin supérieur gauche de la, de l'où cela devrait être placé, ceci, cette découpe. Et la découpe est définie par le décalage vous et le décalage V. Et puis comme une certaine largeur et hauteur associée à elle. Et la hauteur bien sûr, est dynamique avec le niveau d'énergie, parce que nous voulons la, la barre grise pour être plus ou plus bas en fonction du niveau d'énergie. Mais c'est une sorte d'idée. Nous allons détruire ça une fois de plus et en obtenir une nouvelle juste pour que nous soyons clairs avec, vous savez, une sorte de bizarre. Allons chercher des diamants, des fils de cuivre, et voyons si ça marche. Donc, tout d'abord, cela a fonctionné avant qu'il ne soit jaune. Et maintenant, nous voyons réellement que le que la superposition a fonctionné. Nous allons juste dire que nous sommes les premiers pour une femme qui a essayé de mettre autre chose là-dedans. D' accord. Ça ne marche pas. Ça ne marche pas. Ça ne marche pas. C' est plutôt bien. Et je vais juste mettre les diamants ici et voir ce qui se passe. Eh bien, l'énergie augmente et les diamants meurent. Et il ressemble à la, cela augmente. N' est-ce pas gentil ? Et ce qu'on va faire, c'est mettre les fils de cuivre ici. Et ils se sont ensuite transformés en diamants et bien sûr, en deux émeraudes. Et puis l'énergie n'augmente plus parce qu'il s'agit essentiellement d'une relation individuelle. Donc, si nous enlevons les diamants et que l'énergie diminue en fait à ce stade. Et les fils de coupe sont transformés en émeraudes ici. Et une fois que cela est fait, l'énergie est épuisée et plus d'animaux sont créés parce que, bien sûr, nous avons spécifié que l'énergie doit être supérieure à 0 pour que cela fonctionne. Droit ? On y va. Oui, c'est une machine simple. Donc ce n'est pas une machine compliquée folle. Non, des machines compliquées folles pourraient l'être. Les exemples, bien sûr, une fois de plus, sont dans GitHub et dans les modes populaires ils sont. J' encourage toujours à regarder cela. Mais c'est ainsi que vous créez un Gy, comment vous créez une sorte d'entité de tuile avec un peu de fonctionnalité. Comme je l'ai dit, la fonctionnalité est dans la fonction tick fondamentalement. Et il y a aussi d'autres choses. Capacités que vous pouvez ajouter, bien sûr encore. Et vous pouvez faire face à ces capacités. Mais ce n'est qu'une introduction générale à cela. Et oui, encore une fois, sable, c'est un sujet un peu plus compliqué et plus complexe et aussi un conférencier plus compliqué. Donc, s'il y a des questions, n'hésitez pas à poser. Encore une fois, tout le gy et aussi le code source sont tous disponibles en tant que ressource. Et si cela vous a été utile et que vous l'avez aimé, j'apprécierais beaucoup un examen du cours jusqu'à présent. Et oui, c'est ainsi que vous créez une interface graphique personnalisée. Et oui. 66. (Minecraft) La génération d'oxygène dans le monde: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons parler de ou de génération. Nous allons donc générer le minerai de cuivre que nous avons créé il y a beaucoup de conférences. Et nous allons réellement générer ça dans le monde. Donc, pour cela, nous allons, tout d' abord créer un nouveau nœud, pas un paquet intellectuellement. Nous voulons créer un nouveau paquet. Et ça va être un monde. Et à l'intérieur de ce paquet, nous allons créer un autre paquet qui va tenir Jen. Encore une fois, c'est, disons un style ou personnalisable. C' est juste logique de l'avoir dans un monde. Donc, au moins, le paquet mondial devrait être fait. Le généreux, en quelque sorte optionnel. Et nous allons créer une énumération en fait, qui sera de type Guerre froide. Maintenant, c'est quelque chose qui va être très similaire à ce que nous avons fait avec l'armure et le, et les armes et le matériel. Mais on va passer par ça, donc on va avoir un bloc ici. Nous allons aussi avoir un, un entier qui va être appelé taille Sylvain max, une finale en hauteur min de travail. Il s'agit de la hauteur minimale à laquelle le et qui génère. Et le côté Mac, fondamentalement la hauteur de bloc max où cela générerait le bloc correct, oui. Et nous allons avoir un bloc de minerai, bloc ind, max, taille de veine. Nous voulions int min-height et un entier i, max H. Et puis ce bloc, donc c'est juste une normale, encore une fois, une déclaration normale et un constructeur normal. Maxwell incise ce point. La hauteur minimale est égale à la hauteur minimale. Et ce point de hauteur max est égal à max a belle. D'accord ? Et puis, bien sûr, nous avons aussi besoin de quelques getters pour ceux. Je crois que je peux les créer ici à nouveau, créer un getter pour bloc, lire, ghetto pour max vein, et un getter ici. Et je sais que ce n'est pas juste. Je voulais avoir un getter. Voilà, tu y vas. D' accord. Alors les getters pleins de nous et ensuite nous allons avoir un statique ou un type public, ce qui est, nous allons obtenir avec le bloc. Et on va passer par ça. Donc, pour chaque type de mot ou dans les valeurs, si le bloc est égal à word.lower, OK. Ensuite, nous allons retourner ça ou et si ce n'est pas le cas, nous allons juste retourner null. Nous pourrions aussi lancer une flèche, mais c'était une exception, mais c'est bon. Droit ? Et puis ici, là-haut, on va créer le cuivre, et ça va être plusieurs points de bœuf. Bloc de cuivre obtient, et puis on va juste, je vais juste mettre quelques chiffres en ce moment. Donc la taille maximale de la veine va être de huit. Il se produit au niveau Y 25 jusqu'au niveau Y 50. Et la grande chose à ce sujet est que nous avons seulement besoin d' ajouter une nouvelle énumération ici si nous voulons en ajouter une autre. Donc, par exemple, nous pouvons simplement faire quelque chose comme ça et ensuite dire, par exemple, bloc de cuivre. Et puis c'est aussi du cuivre ou au fait, pas du bloc de cuivre, non ? Et puis nous pouvons dire, Eh bien nous en fait, Donc l'ajout d'un nouveau ou est littéralement juste ajouter cela. C' est ça. C'est pourquoi je trouve que c'est une idée intéressante de le faire. Et puis nous allons créer une nouvelle classe en fait, parce que c'est maintenant fait, que nous allons appeler boue ou génération. Et votre génération va en fait avoir un abonné MOD Dot bus événement, importer MOD immédiatement. Que ça va être un peu plus facile. Mod ID, laissez-moi l'ID de cours MC et puis le bus va être point si c'était MOD abonné. Et puis nous allons avoir une grosse méthode ici qui va être régénérée pire avec un événement de chargement FMLA, FML terminé, non gagné pour d'autres parenthèses de coureur que ce n'est pas nécessaire. Et ce sera un événement d'abonnement. Et à l'intérieur d'ici, je crois que ce que nous allons avoir est une méthode appelée add feature to biome. Donc, je vais juste copier cela parce que c'est un, c'est une méthode qui décompose simplement les, les caractéristiques du biome, puis y ajoute quelque chose. Et nous pouvons réellement l'utiliser à notre avantage. Et cela va être, nous allons passer par chaque ou taper des valeurs de point de type mot, n'est-ce pas ? Donc dans ce cas, nous allons juste fouiller tous les minerais et nous allons passer par des choses. Donc, la première chose est que nous allons créer une configuration de fonctionnalité ou, qui aura un nouveau conflit Orfeo. Cela va être intéressant fonctionnalité type de bloc de remplissage de point de conflit. Donc ici, qui disent, quel est le bloc de remplissage ? Donc si tu l'as, c'est possible. Nous allons, nous voulons en créer huit. Nous avons mis les veines max doit manger dans ce cas. Mais peut-être que nous l'avons fait, vous pourriez imaginer que c'est alors un cube deux par deux. Mais peut-être que c'est la taille maximale de la veine, donc il est possible que seulement six ou sept génèrent. Et puis la question est, eh bien, quoi voulons-nous remplir le reste ? Et c'est essentiellement fait avec ce bloc de remplissage. Nous voulons obtenir la ressource effectivement commandée. La ressource ne possède pas son effectivement être bloqué. Oui, tu as raison. Obtenir l'état par défaut. Et puis nous sommes DOT GetMax taille veine. C' est la fonction où. Ensuite, nous voulons un placement configuré configuré et un placement de figure, qui va être des placements. Non, en fait, ce sera juste un placement. Placement, profondeur de point, moyenne, point configure. Et ici, nous allons créer une nouvelle configuration moyenne sourde. Et ça va simplement prendre min-height et ou côté Mac comme ça. Et la dernière chose, les deux, eh bien, pas tout à fait perdu, mais presque perdu. Nous allons faire un registre pour enregistrer un monde. Jen, les registres qui ont configuré la fonctionnalité ou point obtenir bloc, dot-dot-dot nom de registre, il nom de registre. Et puis nous allons avoir un point de fonctionnalité ou avec la configuration. Et pour implémenter le CS, l'ego, ou la configuration de largeur de points ou le conflit de fonctionnalités, nous l'avons déjà configuré. C' est la grande chose avec le placement que nous avons également configuré celui-ci. Et puis on a un point. Il ira point carré, points. Je crois que ce n'est pas encore comme cartographié. Ça va être ça. Et c'est encore une fois ou point la taille maximale de la poubelle une fois de plus. Et c'est tout. On y va. Et la grande chose est maintenant ce que nous pouvons faire, c'est que nous pouvons juste passer par chaque biome et le charbon dans un registre de forge qui biomes. Et à l'intérieur de là, chaque biome est fondamentalement écrit dans. On vient de lire ça. Et nous, par exemple, ne voulons pas de biomes aussi. Nous ne voulons pas que cela soit généré dans, par exemple, category.net, n'est-ce pas ? Parce que ça n'a aucun sens. Et nous ne voulons pas non plus que cela soit refroidi et obtenir catégories égales, puis la catégorie de points biomiques. Et ce serait la fin, non ? Donc nous allons seulement générer ça. Nous allons donc seulement ajouter des fonctionnalités au biome du biome et au stade de génération. C' est de la décoration souterraine ou juste ici. Et puis le dernier va être des registres Jen du monde, point configuré fonctionnalité, obtenir par défaut ou aucun, ou point get block, obtenir le nom enregistré. Donc c'est ce que nous avons enregistré ici. Et cela va être ajouté en tant que fonctionnalité au biome. Vous pouvez, bien sûr, aussi au lieu de, disons ce négatif ici où nous ne le faisons pas si c'est le bas ou la fin. Vous pouvez également spécifier des biomes spécifiques. Alors peut-être que vous voulez que des rames spécifiques génèrent uniquement dans des biomes spécifiques. Vous pouvez bien sûr, tout le faire avec certains si les déclarations sur ce est en fait déjà tout ce qui est nécessaire pour la génération ici. Le, ceci est appelé automatiquement. Alors nous allons juste exécuter ceci et voir dans un, dans un nouveau monde ce que cela apporte. Et si nous pouvons trouver, eh bien, dans notre cas, à la fois le minerai de cuivre et le bloc de cuivre. J' ai bien sûr, à titre d'exemple, également généré des blocs de cuivre. Juste pour montrer comment nous en fait facile, il est d'ajouter de nouveaux ou dans ce cas. Donc, bien sûr, le sang doit être ajouté, mais si vous avez ajouté tous les blocs, alors vous pouvez juste faire cette fin. C' est super facile. Alors créons un nouveau bloc. Newton connaissait le bloc, le nouveau, le nouveau monde , bien sûr, en mode créatif pour le moment. Donc ça génère, ce qui est un bon signe, bien sûr. Et le fait que rien ne s'est encore écrasé est aussi un très bon signe. Aussi quelque chose qui est toujours quelque chose qui, tu sais, pourrait arriver. Et nous allons juste aller en mode spectateur et voler vers le bas. Et peut-être qu'on peut trouver que j'ai mis le, là on y va. On a déjà trouvé les deux. C'est génial. Allons droit. Donc ici, nous avons quelques blocs de cuivre, 123, c'était une petite veine. Et ici, nous avons un autre de cuivre ou 1-2-3, 4-5-6, non ? C' est génial. Et donc tu peux, bien sûr, jouer un peu avec les chiffres, n'est-ce pas ? C' est toujours quelque chose à faire. Eh bien, pour que je puisse juste écrire ça. Ça aiderait probablement. Voyons si je peux trouver des L. Y a-t-il un autre 11234. Ça fait quatre. La girouette. Et oui, comme vous pouvez le voir, il y a, bien sûr, quelques choses. Il dépend également, bien sûr, de la, sur la hauteur. Et on y va. Il y en a d'autres. Donc, à ce stade, nous sommes la hauteur 2020 à ce à peine juste fait dans 12. Moi, en voici encore trois. Donc, c'est un très bon mangé. La génération est assez facile à comprendre et c'est en fait une grosse veine. C' est sympa. Et bien sûr, vous pouvez jouer avec les chiffres. C' est la meilleure chose que tu puisses faire. Rentrons en cercle. Et c'est la meilleure chose que tu puisses faire, non ? Donc, jouer avec les chiffres un peu et juste voir ce que vous pouvez faire évaluer. Donc, c'est la pointe ici pour la ration d'origine, mais c'est fondamentalement déjà ce n'est pas ça, ce n'est pas si compliqué, surtout par rapport à l'interface graphique ou à l'autre le truc de l'entité de tuile. Donc oui, c'est fondamentalement tout. S' il y a des questions, n'hésitez pas à les poser. Et oui. 67. (Minecraft) Créer un arbre personnalisé: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre propre arbre personnalisé. Maintenant, ce dont nous avons besoin pour un arbre personnalisé est bien sûr, des plancks, des bûches, des feuilles et un gaule. Et c'est la première chose qu'on va faire. On va aller dans nos mod blocks, la classe et créer exactement ces objets. Objet de Registre de type bloc. Ils sont tous de type bloc. Et j'ai décidé de créer un séquoia. Et il va être record planche est égal à enregistrer les planches de bois rouge. Et puis ici, nous allons faire un nouveau bloc avec quelques propriétés de bloc abstraites, qui vont être du point de Locke, OK. Des planches. Très facile. Nous allons juste prendre ce que les propriétés des planches de o planches causent ne fait rien de spécial dans ce cas à leur sujet. Et aussi avoir le journal de bois de séquoia ici. Et je me connecte ici. Et ça va être un bloc pilier tourné. Et les propriétés vont être, bien sûr d'OK. Ok, tu y vas ? Et là, nous allons avoir des feuilles de Redwood. Et n'oubliez pas de changer le nom à l'intérieur de la méthode de registre également. Mais ici, parce que sinon vous allez rencontrer des erreurs, laisse aussi. Et ça va être un bloc de feuilles. Et puis un dernier, qui va être un peu différent parce qu'il est logique de copier ceci. Oui, cela n'a toujours pas de sens de copier ceci et ça va être le séquoia. Et c'est celui qui va être le plus intéressant, disons, ou celui qui a le plus de travail associé. Disons que, en fait, nous allons nous débarrasser de ça. Et ça va être un nouveau bois rouge, qui bien sûr n'existe pas encore. Mais on peut déjà remplir ça parce que je sais déjà à quoi ça va ressembler. Et ça va être un nouvel arbre de bois rouge, qui n'existe pas encore. Donc, il y a quelques choses dont nous avons réellement besoin pour créer des propriétés à partir de. Et ici, nous allons prendre des serrures à pois de chêne gaule. Soudain, tu y vas, et c'est tout. Et bien sûr, ils doivent être créés. D' abord, nous allons créer l'échantillonnage du séquoia. C' est à l'intérieur de l'emballage de bloc à nouveau, l'échantillonnage de bois rouge. Et le bois de séquoia va étendre le bloc Bush et il va mettre en place un rouleau d'œil. Ok, nous allons tout d'abord, faire implémenter les méthodes. Peut grandir, peut utiliser les os, la farine et grandir. Et puis la suivante. Et puis aussi bien sûr, un constructeur avec le super à l'intérieur ici. En fait, nous voulons aussi un fournisseur d'arbre, qui va être arbre dedans. Et c'est aussi quelque chose que nous devons avoir comme champ final ici, un fournisseur de trois, fournisseur d'arbre, que nous allons juste appeler arbre. Ou on doit en prendre trois, réimporter ça. Très important qu'il soit arbre, net Minecraft blocs arbres et non l'autre. Et ça va être le fournisseur normal. Et c'est alors cet arbre est égal à trois. Et nous pré répondons également à l'UE. Et puis nous avons aussi besoin d'une propriété entière. Integer, propriété appelée stage. Il s'agit simplement de l'état de verrouillage des propriétés point état, point étape 01. Donc, cela signifie fondamentalement qu'il a une propriété entière, qu'elle soit cultivée ou non. Et à l'intérieur de la boîte de croissance, nous allons juste revenir vrai parce que ce bloc peut corde, peut utiliser la farine d'os. Nous allons créer un nombre aléatoire en gros. Donc on va faire un double et ça va être monde en point aléatoire. La charge suivante est la suivante. Je veux dire, on pourrait aussi utiliser un flotteur, mais c'est très peu important. Donc, en gros, ça a 50 % de chances que la farine d'os fonctionne, n'est-ce pas ? Donc celui-ci dit fondamentalement ça. Et puis nous avons une méthode de culture qui doit être, quelques choses doivent être faites. Donc ici, nous avons réellement besoin d'un état, l'état point get stage est égal à 0. Et ici, on va dire monde en état de bloc. Et je ne sais pas mon ajoute ces parenthèses qui ne sont pas nécessaires. État, et ensuite nous devons utiliser la fonction 235. Celui-ci, oui, celui-là, je crois, est la bonne. Il n'est pas mappé. Et dans ce serait en fait cycle d'état DOT, juste pour que vous le sachiez. Et je vais faire autre chose. Encore une fois, la, la lutte avec un formatage de formulaire. Et puis ici, nous allons dire, pardonné point d'usine, arbre de culture, monde en position aléatoire. Oh, non, ce n'est pas la position. Merci. Et si c'est le cas, alors nous reviendrons à tour. Et ce n'est pas le cas. Et nous allons voir ce point trois, point obtenir tentative monde rho arbre dans, monde dans encore fournisseur de morceaux obtenir générateur de tronc, passe, état et aléatoire. Ils y vont. Ça a l'air fou, mais ce n'est pas si fou. Nous voulons également remplacer le conteneur de remplissage, que nous allons juste sauver Builder dot add stage. Et on y va. Et nous devons également remplacer la méthode tick. Et nous allons ajouter ces supprimer, encore une fois supprimer les avertissements parce que la réinstallation, parce que ce n'est pas si important. Donc nous allons dire si le monde dans cette zone a chargé la position 1. Donc, si la position autour de l'arbre est réellement chargé, n'est pas chargé. Au contraire, on gagne, on annule le SIR et on ne va rien faire. Cependant, si cela est chargé et si alors le feu à cette position, donc si le feu au-dessus de cette position est au-dessus d'un niveau lumineux neuf. Et puis nous avons aussi mis un nombre aléatoire. Nous allons prendre un entier en fait, suivant int avec sept lié. Si c'est 0, alors on va faire grandir cette étoile avec la position aléatoire du monde et l'état, non ? C' est faux parce que le test ressemblait à ceci. Si la position au-dessus de la chose est au-dessus de neuf et si l'entier aléatoire est égal à 0, Donc fondamentalement comme à propos d'un, quelle est cette chance de plus de 7% de croître à chaque fois que la, la, la tique entre, non ? Quelque chose comme ça. Bien. Maintenant, ce n'est pas, en passant, cela ne se produit pas seulement dans comme sept tiques ou quelque chose comme ça, alors cela signifierait qu'il grandit fondamentalement chaque seconde ou il tente de croître chaque seconde. Ce n'est pas ce qui se passe, mais oui, c'est bien. Regardons ensuite l'arbre. Donc celui-ci fonctionne, mais nous n'avons pas encore mis en place un séquoia. Maintenant, où mettre le séquoia est une sorte de chose, ce que je ne sais pas où cela a le plus de sens parce que c'est en fait quelque chose à voir avec le monde, mais c'est aussi une sorte de bloc. Et si vous avez, si vous savez, vous faites un mod avec beaucoup d'arbres, par exemple, agir il est logique d'avoir peut-être même un paquet supplémentaire pour cela. Cependant, si vous avez comme un ou deux arbres supplémentaires, alors il est également logique de simplement les mettre dans le paquet blocs. Ce serait le séquoia. Et cette classe va étendre l'arbre. C' est presque un choc, je sais. Et tout d'abord, je vais copier sur quelques variables statiques, les mêmes variables statiques ici parce qu'elles vont être vraiment utiles pour ou faire. Nous voulons la fonctionnalité de l'arbre du ghetto comme écrasement ? Et ça va retourner quelque chose avec une configuration. Et ce sera la configuration de base finale statique publique trois fonctionnalités, qui est également appelée config de l'arbre de Redwood. Et ça va être un vrai travail. Mais ne vous inquiétez pas, nous allons pouvoir le faire est d'être la configuration de l'arbre de base, config. Constructeur de points. Et puis on commence, et maintenant ça devient fou. Donc, c'est un nouveau bloc simple, fournisseur d'état. Les blocs de points lus se connecteraient. Donc, tout d'abord, nous devons lui donner la serrure de séquoia et nous devons leur obtenir l'état par défaut. Ensuite, nous avons un autre fournisseur d'état de bloc simple, qui va être les blocs Mott. Feuilles de séquoia. Cela obtient, qui obtient l'état par défaut. Ensuite, nous allons avoir un nouveau feuillage, plus agréable. Donc avec ça, on va placer les feuilles. Cela va être une fonctionnalité spread funk 2.4.2 TO HIV2 AES est correct. Et ça va être le rayon des feuilles que nous allons prendre. Maintenant, mettez-les en fait pour qu'il soit beaucoup plus facile d'avoir un bien cohérent la configuration de w1. Et au lieu de simplement mettre des nombres aléatoires, disons que ce sera le décalage de la feuille. Puis virgule feuille hauteur. Ensuite, nous avons un nouveau laser de tronc droit. Donc, c'est fondamentalement l'endroit où le placement des journaux dans une ligne droite vers le haut. On va voir une hauteur de base. Ensuite, nous allons avoir une première hauteur aléatoire et une seconde hauteur aléatoire. Donc, si les arbres sont aléatoirement haut ou bas, où deux entités à fonctionnalité plus tard, qui va juste être 101. Et puis rajoutez-les ici, nous allons dire Construire. Et tout d'un coup, tout fonctionne. Nous avons utilisé partout ici et tout le monde est heureux. C' est aussi quelque chose que nous allons revenir. Nous allons donc retourner le point de fonctionnalité, configuration de largeur de point, l'itération. Et bien sûr, fonctionnalité a mis en œuvre ou plutôt important. Et puis le bois rouge config, bam, c'est tout. C' est tout l'arbre. Déjà fait. Et je crois que c'est exact. Ouais, tout devrait aller bien ici. Droit ? C' est tout pour les cours. Maintenant, bien sûr, nous voulons aussi une génération. Je vais bientôt arriver à la génération, mais d'abord nous allons réellement implémenter l'ou importer, disons les modèles et les états bloc. Donc, une fois de plus, je vais copier ces fichiers sur tous les fichiers, une fois de plus, disponibles en tant que ressource. Donc on va copier les états Bloch. Et les états Bloch sont, pour la plupart, ils sont très faciles à comprendre et trouvent que la bûche est un peu plus compliquée, bien sûr, parce que nous avons une bûche horizontale et verticale que nous pouvons placer de différentes manières. Et le gaule, comme pour les états du bloc, facile. Mais bien sûr, quand il s'agit du modèle, alors nous allons avoir une autre chose. Donc on va aller dans, je vais copier sur les modèles de bloc. Donc là, vous allez réellement avoir besoin des feuilles de séquoia verrouillage, verrouillage soulignement horizontal, puis planches et gaules. Comme vous pouvez le voir, si je vais à la bûche et à la bûche horizontale, ce n'est pas trop fou. Je veux également dire une fois de plus que vous pouvez toujours descendre ici pour net client Minecraft supplémentaire dans une sorte de bibliothèques externes. Et regardez tous les états Bloch et les modèles de choses qui ont déjà été faites. Ainsi, le journal d'acacia, par exemple, feuilles d' acacia, les planches, l'échantillonnage de vacances. Donc, tout cela est disponible pour vous aussi. Donc, c'est essentiellement là que vous pouvez obtenir comment le faire correctement, disons. Et l'échantillonnage de séquoia, une fois de plus dit seulement, Hey, allez à la croix supplémentaire de gaule bien sûr, parce que nous le sommes, quand j'ai ceci dans les modèles, pour ainsi dire. Et les modèles d'article, nous allons aussi les obtenir. Et ceux-là sont là. Feuilles de séquoia, des trucs normaux, normaux. Rien de trop hors de l'ordinaire. Droit ? Et puis nous avons également besoin d'ajouter les nouvelles balises. Et je vais les copier aussi. Je vais les mettre ici. Donc, ce sera essentiellement des feuilles, des bûches, des bûches qui brûlent des planches et des bûches de séquoia. Et ils ressemblent à ça. Donc, à l'intérieur des bûches et des bûches qui brûlent, nous avons en fait. Cela fait référence à Minecraft est parce que bien sûr les balises Minecraft de données sont ici , puis les journaux de séquoia eux-mêmes renvoyés à l'élément lui-même. C' est un peu fou, mais encore une fois, tout est fourni. Et puis nous mettons également dans les textures à l'intérieur du bloc. Je veux mentionner encore une fois que je ne suis pas un artiste, donc ce ne sont pas la meilleure chose, mais je pense qu'ils sont assez décemment pour que ça marche. Et maintenant, je crois que tout a été ajouté, sauf pour la génération, mais nous allons regarder la génération dans une seconde. Tout d'abord, nous allons regarder si la banane a été ajoutée. Maintenant, une fois de plus, comme je l'ai fait dans les conférences précédentes, je n'ai pas ajouté le, la localisation de la langue. Cela, cependant, cela ne devrait même pas être un problème. C' est littéralement une ligne ajoutée. J' omet d'habitude cela hors d'ici parce que cela ne change pas vraiment beaucoup pour les besoins de la conférence au moins. Voyons donc si tout a été ajouté et si nous pouvons vraiment tout voir. Donc c'est plutôt bon. Donc, toutes choses ont été ajoutées. Donc c'est un bon premier signe. En fait, nous allons aussi prendre un peu de repas d'os. Donc, c'est le Planck. Nous avons les bûches que nous pouvons également placer horizontalement. On a les feuilles. C' est plutôt sympa, et on a le gaule. Et c'est bien sûr la grande question de savoir si le gaule pousse ou non. Alors plaçons ça ça. Pourtant fait une autre chose que nous devons ajouter, mais ce sera encore une fois très facile. Et voyons si on peut la faire pousser avec des farines d'os. Et il grandit. C' est plus petit que je ne m'attendais qu' en fait, je pense qu'ils devraient être un peu plus gros. Eh bien, c'est un très petit arbre. Wow. Celle-là poussent sont ce genre de la taille que je m'attendais. Tu y vas. C' est plutôt bien. Ok. Je veux dire, c'est comme deux rôles très bas. C' est probablement comme la hauteur normale que je voulais avoir. La moitié. À droite. Super. Ouais, donc ça marche vraiment. Encore une fois, c'est la même chose, disons flèche ou problème que nous avons eu avec ceux-ci. Nous avons juste à ajouter cela dans le déclin de la procuration. Donc nous allons le faire d'abord et ensuite nous allons regarder la génération aussi. Ceci est à l'intérieur du proxy client. Là, nous avons juste besoin d'ajouter le type de rendu HLOOKUP set couche de rendu. Ce sera les blocs de modèle, points, Redwood, gaule, point get. Et ceci est rendu type obtenir découpé. Encore une fois, tout comme les cultures de courgettes. Droit ? Et maintenant, nous pouvons ajouter la génération aussi. Et cela va être très, très similaire à la génération Mordor. Nous allons créer un nouveau mod refroidi de classe 3 génération. Cela va encore une fois de mod Dot abonné de bus événement. Ensuite, il suffit de mettre l'ID de mod et c'est tout. Je suis scores mod, mod IID. Et ici, nous allons avoir un, un événement est vide statique public sur la charge de biome. Et celui-ci prend un biome chargement impuissant. Un événement cool. Il s'agit bien sûr d'un événement d'abonnement. Est-ce que le mot événement vous semble déjà bizarre ? Ok, voyons voir. Nous allons donc avoir une clé de registre de type biome. Donc, c'est presque la même chose que nous sommes, que nous faisons dans cette méthode. Un peu différemment. Disons comme ça. C' est presque la même chose. Mais on va le faire manuellement. Disons que le registre qi dot obtenir ou créer la clé de registre dot biome clé. Donc, nous cherchons un biome et nous allons chercher le biome qui porte ce nom. Ils seraient définis, nous allons aussi avoir un ensemble de biome, type de dictionnaire biomé. Commençons par importer du biome. Nous allons également être mis importé. Maintenant, gardons cela en une seule ligne en fait et juste un petit zoom arrière. Je pense que ce serait bien. Oui, il va y avoir le genre. Donc, ce sera tous les biomes, fondamentalement. Biome, ça va être biome dictionnaire point obtient des types avec la clé. Et puis nous allons passer par les types de dot contient biome, dictionnaire biome. Et juste pour se disputer maintenant, on va prendre des avions. Donc je veux que mes arbres frayent dans des avions pour des raisons d'argumentation en ce moment. Bien sûr, les avions n'ont généralement pas autant d'arbres. Sinon, ils ne seraient pas des avions bien sûr soulever. Cependant, c'est une sorte de, une sorte d'idée ou assez. Il s'agit d'une liste de fournisseurs de fonctionnalités configurées. Et cela peut être un point d'interrogation, interrogation en fait un ego. Il va y avoir la base. Et c'est l'événement point obtient génération. Maintenant. Oh Seigneur, non, bonne génération. Dot obtenir des fonctionnalités de génération de type. Déclaration, durée, déclaration d'étape, décoration végétale. C' est donc l'étape de la génération où vous ajoutez le fournisseur non fourni. C' est le point de génération où la végétation est essentiellement ajoutée. Et puis nous allons avoir besoin de la liste comme une seule. Et puis à cette liste, nous allons ajouter quelque chose. Et nous allons ajouter à cela la configuration de la largeur de trois points de fonctionnalité. Et ça va être la configuration de l'arbre de séquoia à points de séquoia avec un placement spécifique. Et maintenant, nous allons juste prendre le placement dans une autre configuration de chêne foncé, pas d'instance de configuration de placement. Donc, fondamentalement, nous sommes juste copier sur importe quelle configuration de placement de l'arbre de chêne foncé a. Il est que je vous conseille de simplement prendre celui-ci et de jouer un peu avec lui, non ? Donc, à l'intérieur de ce placement. Donc, vous pouvez soit prendre le placement droit ? Il y a beaucoup de choses ici que vous pouvez configurer. Et il y a aussi des placements. Placements, que vous pouvez également prendre les placements déjà faits essentiellement, et juste jouer avec cela un peu. C' est jusqu'à ce que vous obteniez le résultat souhaité. Encore une fois, cela devrait déjà être fait. Je crois que c'est tout. Nous avons également ajouté cela dans le proxy de déclin, donc tout devrait fonctionner. Oui, tout devrait bien fonctionner. Voyons donc si cela fonctionne ou non. Et voyez ce que nous pouvons voir quand nous générons un nouveau monde. Cela devrait certainement générer certains des arbres à l'intérieur des plans biomes, comme je l'ai dit. Voyons maintenant si ça marche. Donc, nous devons en fait en créer un nouveau fait une fois de plus. Et voyons voir. Si ça marche vraiment. Ce serait un peu sympa. Parce que la génération de note aucune erreur. Jusqu' à présent. Donc c'est plutôt bon. Et on y va. Nous sommes dans des avions, et c'est maintenant plein de ces arbres. Maintenant, encore une fois, il est important de mentionner que, bien sûr, les avions que nous n'aurions vraiment pas, tout d'abord, autant d'arbres et deuxièmement, pas vraiment d'arbres du tout, si nous sommes absolument honnêtes. Donc, c'est, bien sûr, ce sont tous les avions. C' est bien sûr une manière folle, trop d'arbres ou d'avions. Comme je l'ai dit, la chose à ce sujet est qu'il est préférable de juste jouer un peu avec le placement et de voir ce que vous pouvez voir sur ceci est comment vous pouvez générer des arbres de votre type. Et oui, ceci, c'est l'arbre personnalisé, le gaule personnalisé et aussi comment ensuite tourner et ensuite aussi générer ceux à l'intérieur du monde. Oui, donc c'est plutôt bon. S' il y a des questions comme toujours, n'hésitez pas à les poser. Et oui. 68. (Minecraft) Créer une Mob personnalisée: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons créer notre propre mafia, ou aussi connu comme une entité à l'intérieur du jeu. Et la première chose dont nous allons avoir besoin pour ça, c'est que nous allons créer un nouveau paquet. Ça va s'appeler entité. Et à l'intérieur du paquet, nous allons déjà préparer deux autres paquets dont nous avons besoin et qui va être le modèle. Et puis à l'intérieur du paquet d'entité, encore une fois, rendre le NICU, pas éperonné, mais rendre un ego. D' accord ? Et la première chose que nous allons faire, cependant, c'est que nous allons aller à l'enregistrement et déclarer un autre registre différé. Et ce sera est public statique final registre différent de type, ce type d'entité. Et puis un point d'interrogation à nouveau. Et on va juste appeler ça des entités. Vous pouvez également appeler ce mobs si c'est quelque chose que vous préférez, mais peu importe comment il est appelé registres de falsification, puis entités. Parce qu'en quelque sorte le code des jeux, ils sont appelés entités et pas des monstres, mais généralement des gens qui jouent Minecraft, mais ne regardent pas vraiment le code. Ils les connaissent comme des monstres. Ce seraient des vadrouilles passives et actives. Ensuite, bien sûr, ajoutez également les entités DOT registre avec le bus d'événements ici dans la méthode init. Et puis l'enregistrement est terminé. Ok, alors nous devons créer notre entité. Et cela va être à l'intérieur de notre paquet d'entités ou d'une nouvelle classe Java, et nous allons créer une entité buffalo. Donc, le schéma de nommage est le nom de l'entité et vient de se terminer par l'entité. Et cela étend la classe d'entités animales. Nous allons mettre en œuvre les méthodes. Nous n'avons besoin que d'une seule méthode. Apparemment. Ce n'est pas le cas en ce moment. Je bien sûr, et aussi le constructeur. Et ça va rester comme ça. Et c'est une entité admissible. On va regarder ça assez tôt. Mais la chose principale avec une entité est la méthode des objectifs de registre. Et c'est celui qui est fondamentalement le cerveau de l'entité, non ? Donc, à l'intérieur d'ici, nous définissons des objectifs pour que l'entité fasse quelque chose, non ? Donc, cela a beaucoup d'objectifs. Nous allons juste en créer quelques-uns maintenant. Donc, l'intérieur de celui-ci est que vous allez écrire ce point but, sélecteur, point add goal, puis une priorité et un entier. Ce n'est donc qu'une priorité. Lorsque vous comparez deux objectifs, ce qui serait, ce qui serait fait en premier et en bas serait à une priorité plus élevée. Donc, disons, par exemple, un but de natation et puis ceci, et c'est le premier but en ce moment. Il nageait simplement. Maintenant, vous pouvez réellement aller à l'intérieur de votre droite lorsque vous maintenez la touche Contrôle, puis cliquez avec le bouton gauche de la souris. Donc, vous pouvez vraiment regarder ce qui est, ce qui se passe et ce que je conseille vraiment. Donc, je vais construire un, juste un exemple, un buffle ici. L' entité avec quelques objectifs. Cependant, si vous voulez vraiment y aller, vous pouvez aller dans la classe de but elle-même, puis appuyez sur Contrôle H et regarder tous les différents objectifs qu'ils sont. Comme vous pouvez le voir, juste avec les événements, il y a beaucoup d'objectifs ici que vous pouvez utiliser. Et c'est encore une fois, une sorte de chose où vous avez juste à jouer avec quelques-uns de ces objectifs. Et si tu dis, eh bien, je veux quelque chose comme ça et ça devrait ressembler à ça. Ensuite, vous pouvez juste passer par ça et regarder ce que nous avons. Éviter les objectifs d'entité. Donc, par exemple, c'est quelque chose qui se passe dans la droite, l'oscillation, par exemple, il s'enfuit quand vous y arrivez. Et il y a tellement de choses qui sont ici qui sont déjà des objectifs définis que c'est, en fait, c'est stupéfiant, comme si c'était beaucoup d'objectifs. Et c'est certainement, si vous voulez construire un type d'entité plus compliqué et plus complexe, les objectifs sont incroyables et bien sûr, vous pouvez également ajouter vos propres objectifs plus tard. Si c'est quelque chose que vous vouliez faire, est-ce pas, faisons un objectif de race de ceci. Et puis la vitesse est un, d un, c'est le modificateur de vitesse. Dans ce cas. Nous allons également créer un objectif de modèle. C'est le but. C' est quelque chose que vous ajoutez. Par exemple, quand vous avez un Cochon, je crois que vous pouvez les tenter avec des carottes, je crois. Oui, je le crois. Et les poulets avec des graines, c'est la tentative de viser. Donc, ils, une fois de plus, vous spécifiez la créature. Ensuite, vous spécifiez la vitesse à laquelle il se déplace. Prenons plus de vitesse. Et puis à l'intérieur d'ici, nous allons avoir un ingrédient et ce sera un ingrédient à partir d'articles, plus d'articles en mode article, plus d'articles, s'il vous plaît. Voilà, tu y vas. Articles de mod. J' ai trois actifs qui le couvrent. Prenons juste la couverture et ce que L point obtenir. Et puis ici, nous avons faux. Donc, la force est effrayée par les mouvements des joueurs. Ce serait, une fois qu'il a commencé à être quelque chose où le, où si vous n'avez pas l'élément TMD, alors ils ont peur de votre mouvement. Dans ce cas, nous ne voulons pas que le buffle soit, qu'il ait peur. Donnons également au buffle un but d'ajouter avec priorité libre savait suivre l'objectif parent, suivre l'objectif parent. C' est ça. Et puis on aura un peu plus de vitesse. Donc, c'est fondamentalement modificateur de vitesse à la vitesse d'origine de l'animal. Donc ça va bouger 10% plus vite. Et puis nous allons ajouter un autre qui va être livré objectif de marche évitant l'eau ? Oui. Marche aléatoire aussi, quand il bascule aléatoirement autour, alors il essaie de ne pas aller dans l'eau. Et ce sont, disons certaines des choses que nous pouvons ajouter. Nous pouvons également ajouter. Allons avec le but de regard. Regardez le but ou le butin à bien, je veux dire, ce serait un but intéressant, certainement. Et à l'intérieur d'ici, nous pouvons alors par exemple, disons, hey, regardez la classe de points d'entité joueur. Donc, nous pouvons spécifier ce qu'il regarde. Et c'est en fait la distance maximale est un flotteur. Disons par exemple huit f. Donc il va nous regarder même s'il est à huit pâtés de maisons. Et puis à l'intérieur d'ici, nous pouvons également ajouter un regard au hasard objectif. Et ça prend juste lui-même. On y va, non ? Mais pourquoi c'est huit ? Qui sait ? Ça va être six. Ok, donc ce sont quelques-unes des choses que l'entité fait maintenant. Ce sont quelques-uns des objectifs, comme je l'ai dit, meilleure chose si vous voulez regarder les objectifs est de passer par ici et réellement regarder certains d'entre eux. Essayez certains d'entre eux si, qu'ils soient ou non ce que vous voulez. Et aussi, ce que je peux aussi dire, c'est que vous pouvez aussi aller dans l'entité animale et appuyer sur Control H ici et voir réellement les autres entités. Donc le B, le cochon B, le renard, et tout ce que vous voudrez. Donc, disons, par exemple, le poulet, vous pouvez vraiment voir ce que le poulet a comme objectif, non ? Il a presque la même chose que nous avons en ce moment. Nous avons juste un but de panique ajouté. Parce que je dirais maintenant que peut-être le, peut-être que le bison ne paniquait pas quand on les attaque. Et c'est ainsi que vous pouvez vraiment très bien construire une nouvelle entité. Je ne peux donc que des conseils pour le faire. Ajoutons également les sons que cette entité a. Donc, le premier est obtenir un son ambiant. Et nous allons juste retourner le son pour la vache parce que ceci, dans ce cas, l'entité de point d'événements sonores, ambiante. Parce que cette entité est en fait très similaire à une vache. Je vais représenter, je vais vous montrer mon entité bientôt dans le banc de bloc et vous serez étonné par l'incroyable créativité que j'ai inventée. Mais je pense que c'est en fait, ce n'est pas si mal. En fait, ce n'est pas si mal. Mais oui, alors on va avoir un son ambiant. Nous allons mettre le son de la mort, obtenir le son blessé est aussi quelque chose que nous allons mettre dans. Ça va être les événements sonores que la vache a fait mal. Et puis je crois encore un oui, le son de pas et ça va être proche. C' est placé le son de l'étape. En fait, on va dire ce point, ce point joue son. Je veux le son normal. Oui, celui-là, je vais dire des événements sonores, pas de vache. Et puis on va dire que le volume est un peu plus élevé peut-être. Donc, vous pouvez imaginer qu' un buffle est un animal assez important, assez important. Alors peut-être que les marches seront un peu plus fort, quelque chose comme ça. Et puis une autre chose importante sera un modificateur d'attribut statique public, map, dot-dot-dot attribut mutable. Ce sera la cause de définir un attribut personnalisé. Je dirais en fait qu'il est défini des attributs personnalisés, je dirais que c'est plus logique. Je crois que c'est le cas, mais oui. Ecrivez-le à l'intérieur ici, nous pouvons réellement mettre dans un certain retour, certains attributs que cette entité a une entité balai point funk. Oui. Et puis nous allons dire créer un attribut mutable. Et puis à l'intérieur de l'annonce hommages point, et puis nous pouvons voir réellement quel type de choses nous avons. Donc, max santé, nous pouvons définir, par exemple, quelque chose comme 20 d. Et puis, oups, comme celui-ci, puis un autre, par exemple, la vitesse de déplacement serait une bonne idée. Attributs, attributs, attributs, vitesse de déplacement des points. On y va. Et ça va être, disons le point zéro 3D 35, non ? Quelque chose comme ça. On peut vraiment avoir ça. C' est un non, je ne pense pas. Je pense que c'est bon. D'accord. Et puis oui, et ici, comme je l'ai dit dans le quand on va dans le poids, celui-là, beaux attributs. Non, ce n'est pas juste dans l'attribut, désolé, celui-ci, bien sûr, et que nous pouvons réellement voir les différents attributs qui sont présents dans le jeu lui-même. Donc, la vitesse de vol, l'attaque, les dégâts, et toutes sortes de choses que vous pouvez définir pour cette entité. Et oui, je crois que c'est fondamentalement tout. Maintenant, nous avons réellement besoin de spécifier cela dans une classe d'entités MOD. Donc, nous allons avoir beaucoup de types d'entités. C' est donc une fois de plus très similaire à notre, aux classes que nous avons faites avant. Le mod, mod blocs et tout ça, nous allons dire un objet de registre statique public, final de type, type d'entité. Et puis à la fin qu'aucun type, un type d'entité va être une entité de buffle qui va être le buffle. S est égal à l'enregistrement. Les entités Dod s'enregistrent avec le nom Buffalo. Et puis un fournisseur de type entité constructeur. En fait, on va créer un nouveau buffle. Utilisons le est une expression lambda ici, entité, créature de classification. Et puis nous pouvons définir d'autres choses aussi bien. Donc, nous pouvons définir la taille. Donc ça va être la taille de la boîte aux lettres. Rendons juste un peu plus grand. Et cela va être un barattage et construire un peu plus de choses que nous ne pouvons faire. Donc, certains d'entre eux sont malheureusement pas cartographiés ici. Mais il y a d'autres choses que nous pouvons faire. Par exemple, il y a une immunité contre le feu. On peut mettre ça à l'abri du feu. Donc c'est, par exemple, quelque chose qu'une tige de flamme serait, n'est-ce pas ? Il est à l'abri du feu. Ressource d'une nouvelle ressource. Non, ce n'est pas juste. Un emplacement de ressource en fait. Et ça va être Mc Courts mod, mod ID plus le Buffalo. Donc c'est juste une fois de plus qu'il dit un, où est le, où est la ressource pour ça ? Et ça va être deux cordes en fait. La lecture c'est déjà ça. Nous devons également ajouter, bien sûr, notre vide statique public, un registre. Méthode et qui doit être appelé à l'intérieur de notre méthode ici, entités Mott, types d'entités, trois si trois points et ces points trop. Et ça s'est enregistré, non ? Donc, une fois de plus, cela enregistre simplement le buffle et ensuite nous pouvons effectivement mettre celui-ci dans. C' est donc l'âge mélangé t. C'est ce qui se crée quand 22 buffles s'accouplent ou une race. Et ceci, nous pouvons simplement en récupérer un. Donc, ce monde de points, donc cela simplement retourne alors un nouveau buffle et crée un nouveau buffle. Ce qui aurait du sens. Et oui, ce serait ça. Et puis nous devons aussi nous préoccuper de l'aspect de l'entité et bien, ouais, à quoi elle ressemble et quelle est sa texture ? Maintenant ? Tout d'abord, quand vous allez à banc de bloc, donc j'ai préparé quelque chose, mais quand vous allez à bloquer, quand elle peut réellement entrer ici et avoir cette entité modélisée, une, vous pouvez créer une nouvelle entité. Notre conseil pour tester d'abord cela, réessayer, puis regarder la texture plus tard, parce que c'est exactement la même chose. Mais le plus important, vous devriez certainement définir les groupes comme quelque chose qui a du sens. Donc les groupes devraient être la tête, puis il y a le corps, la jambe, l' avant, la jambe droite, la jambe gauche en arrière, droite et le sac de jambe gauche. Parce que c'est sur cela que le modèle d'entité est basé. Je vais te montrer ce que j'ai trouvé pour Buffalo. Maintenant, vous allez probablement rire, mais en même temps, je suis plutôt heureux avec ça. En fait. En fait, je l'aime un peu. Donc ce n'est pas ça, ce n'est pas fou. Mais j'ai ajouté ces petites cornes et j'ai fait le corps aussi. Quand un peu plus grand, QPR puis une autre extrémité, votre détecteur ultime. J' ai pris la phase de la vache et je l'ai modifiée un peu, puis je lui ai donné une texture. Ce n'est pas si mal sur amino dirait qu'avant que je vais sortir ça pour un jeu, je le changerais probablement un peu, mais je ne pense pas vraiment que c'est si mauvais. Une chose qui est très importante en fait, c'est les points pivots des conteneurs ici, les groupes. Donc, ils devraient être là où vous voulez que cela tourne autour. Ainsi, le point de pivot est toujours situé à quel point le, le groupe tourne autour. Donc, si je tourne cette tête en ce moment, tournez de l'endroit où ils avaient lu le corps. Et c'est bien sûr exactement ce que vous voulez arriver. C' est pourquoi vous devez réellement spécifier cela, disons, au bon point. même chose avec la jambe avant. Encore une fois, le groupe est la chose la plus importante. Et celui-là, si je devais tourner, il l'aurait aussi amené ici. Donc ça va ressembler à un peu pire de cette façon. Ensuite, la chose sur la façon de l'exporter, vous avez réellement exporté en allant simplement exporter et exporter l'entité Java. Alors quelle est l'exportation quelque part ? Et puis nous allons voir à quoi ça ressemble réellement. Si nous exportons ceci. Ce serait à l'intérieur d'ici et ensuite l'exportation de buffles. Donc, c'est un point d'exportation de buffle Java. Et ce que vous voulez, c'est tout à l'intérieur d'ici. On veut copier ça. Et nous allons créer une nouvelle classe pour cela cependant. Nous allons donc créer la classe moyenne des buffles. Et nous allons créer ceci à la place de l'entité, puis modéliser. Ça va être un nouveau modèle de buffle de classe. Ensuite, nous allons et ce sera avec un T qui étend entité ou entité buffle. Et puis cela prolonge le modèle d'entité avec un t. Et nous allons juste prendre tout à l'intérieur d'ici, copier ceci, et le coller ici. Et nous devons importer quelques choses. Entité micro-ondes, vous importez le rendu du centre commercial, le moteur de rendu, la pile de matrice, le sommet un générateur. Et cette méthode peut effectivement être supprimée. Et on va en trouver un nouveau. On va l'obtenir de. En fait, nous devons supprimer cela. Je veux dire, nous avons certainement besoin de supprimer cela. En fait, je pense que ça va être un t, non ? Ce n'est pas suffisant. Oui, il en a assez. D' accord. Nous devons changer cela d'un modèle, ce qui était une entité modèle, entité à t. Et puis à l'intérieur d'ici, nous pouvons réellement faire un très beau tour. Nous pouvons aller dans le modèle Entity et ensuite nous pouvons réellement regarder, par exemple, le modèle éligible. A, ceci est une citation, modèle quadrupèdes. Et à l'intérieur d'ici, nous avons en fait les angles de rotation définis et nous pouvons juste copier celui-ci. On prend juste le livre et on peut dire, voilà, ce n'est pas le bon. Celle-là peut dire que tu y vas. Et ce serait alors la tête et une sorte de modèle avait. Ça aurait été eu. Et puis on y va. Et à l'intérieur d'ici, quel est le problème ici ? Nous voulons des constructeurs pour cela. Et ce n'est en effet pas le cas d'autres, parce que le constructeur n'a pas été nommé correctement. Et je vais nommer ça au modèle Buffalo que ça ne marche vraiment, pas vrai ? Donc maintenant, c'est important dans le jeu. Mais d'abord, nous avons aussi bien sûr, besoin d'écrire un moteur de rendu pour cela. Maintenant, le moteur de rendu n'est pas si compliqué. Le moteur de rendu définit essentiellement l'endroit où les textures. Donc, nous allons dire que c'est une nouvelle classe, buffalo renderer, et c'est à l'intérieur du paquet de rendu de point d'entité. Cela étend le rendu de vadrouille de type entité buffalo, puis le modèle buffalo, buffalo. Et puis j'ai tapé entité de buffle parce que nous ne l'avons pas fait, nous n'avons pas encore spécifié que c'est un buffle assez. Ouais, et à l'intérieur d'ici, nous avons simplement l'emplacement des ressources pour la texture de l'entité. Et nous avons également besoin d'ajouter un constructeur avec le super. Et ici, nous allons juste retourner un nouveau site de ressources avec le modèle EMC Corps Ahmad ID, oop, pas mon ID. Et puis le chemin va être à l'intérieur de textures slash, slash d' entité, buffle, P et G. Assurez-vous de fermer cela. Tu y vas, non ? Donc c'est simplement spécifié, ok, alors que c'est où est la texture ? Et je crois que j'ai la texture ici, oui, quatre, donc nous allons rapidement déplacer ça pour que cela soit fait. Cela va être dans un répertoire appelé entité. Et puis nous allons copier sur la texture. Oui, s'il vous plaît. Et il y a encore quelques choses que nous devons faire, mais nous avons presque fini. Et puis nous allons voir si oui ou non la même chose se passe, quand j'utilise ça comme c'est arrivé. Pour moi, c'est une chose importante. Donc il y avait une petite, disons, ce n'était pas une flèche, mais c'était une sorte d'erreur qui s'est produite. Et je ne suis pas sûr à 100% de pourquoi, mais on va arranger ça. Nous avons réellement besoin d'ajouter à l'intérieur de notre proxy client un registre de rendu, entité de registre de points aide de rendu. Et puis nous voulons ajouter le type d'entité mod, point de buffle get, puis le rétro de buffle. Donc, cela s'assure juste que nous en fait, le jeu connaît réellement les types d'entités en mode de rendu de buffle, point de buffle obtenir. Turner savait, ai-je manqué quelque chose ici ? Il y a une autre chose que nous devons ajouter, mais je serais vraiment étonné que ce soit tout. Donc, nous voulons réellement ajouter une file d'attente de travail différé plus tard ici. Et cela va être quelque chose qui va être une sortie d' attributs de type d'entité globale. Et au lieu d'ici, nous spécifions réellement les attributs que nous voulons que ce buffle ait point get. Et cela va être entité buffle, dot set attributs personnalisés, dot create. Et puis nous y voilà. On y va. D' accord, en fait, j'ai compris quel est le problème. Il n'y a pas eu une telle affaire en fait. C' était tout simplement le constructeur ici était un peu faux. En fait, on peut se débarrasser de ça. Et nous pouvons juste dire, eh bien, nous savons ce qu'est le modèle. Ce sera un nouveau modèle de buffle. Et la taille de l'ombre que nous pouvons simplement définir en tapant simplement le flotteur ici et alors plus d'erreur ne sera pas là dedans. C' était juste un petit quelque chose. Mais une fois de plus, je vais laisser au moins la petite chose parce qu'une fois de plus, à la fin de la journée, ces choses se produisent et parfois les erreurs, je veux dire, je peux vous dire un peu anecdotique dire, quand j'ai fait ça, c'était vraiment fou. La glace a oublié de le faire. Donc, comme vous avez pu le voir, ce taux a été retourné null, retournant un null. Et j'ai oublié de mettre dans l'emplacement des ressources ici. Mais le problème était que j'ai eu une flèche non spécifiée. Eh bien, c'est juste que c'était juste terrible parce qu'alors. Tu dois tout faire jusqu'à ce que je trouve si bien, c'était qu'il y en avait. C' est pourquoi je pense parfois que certaines flèches devraient être conservées. Parce qu'une fois de plus, connu sous le nom d'infaillible et numéro deux, ça pourrait aider avec certaines des choses que vous allez faire et les flèches que vous rencontrez. Mais encore une fois, s'il y a des erreurs, des questions ou des erreurs en cours de route, vous pouvez toujours vous sentir libre de poser des questions et je répondrai dès que possible. Voyons si oui ou non on peut voir le buffle en jeu. Parce que comme je l'ai déjà mentionné, le modèle avait une chose bizarre après l'avoir exporté de, après l'avoir exporté du banc de bloc. Donc, nous allons voir si oui ou non c' est aussi le cas ou que cela fonctionne réellement immédiatement. Alors faisons tout d'abord la date fixée. Et puis on va voir si on peut vraiment résumer ça. Donc quelqu'un M marque Buffalo, Swan aussi. Et comme vous pouvez le voir, pour une raison quelconque, ce n'est certainement pas ce que nous avions en tête, non ? Et donc c'est définitivement, disons, un peu bizarre à dire le moins. Donc c'est dans le jeu, on peut le frapper. Donc c'est plutôt bon, non. Mais bien, le corps n'est certainement pas censé l'être. Qu' as-tu fait ? Dis-moi ce que tu as fait. Ok. Donc, en fait, va regarder ça. Donc, c'est bien sûr un problème avec la bouteille, avec le type de modèle de corps. Donc, les textures Ici, les boîtes qui sont embauchées ne sont certainement pas au bon endroit. Maintenant, je l'ai vraiment réparé ici, donc on peut tout simplement s'en sortir rapidement. Donc je vais copier ça et on va regarder ça. Donc numéro un, ceux-là sont follement faux, n'est-ce pas ? Donc, le, donc, comme vous pouvez le voir, ce sont les positions par rapport à la position y et la position Z du corps de la boîte. Ils ne sont certainement pas là où ils sont censés être leur chemin. Et aussi, j'ai également tourné autour parce qu'il a été tourné de 90 degrés et c'est un puis tourner autour de 90 degrés. Donc, nous allons vraiment regarder celui-là en ce moment. Ainsi, le fixe ainsi que la hauteur et la profondeur ont été changées. Je ne suis pas sûr que par le modèle de bloc ait fait ça. Cependant, la bonne chose à ce sujet est que les paramètres ici ne sont pas si difficiles à comprendre. Ceci est juste la coordonnée x, y et z de la boîte spécifique. Et puis vous avez ajouté la largeur, la hauteur et la profondeur de la boîte. Donc, en théorie, même s'il y a une petite flèche ou un peu bizarre qui se passe avec cela, vous pouvez toujours le réparer et vous pouvez aussi toujours aller dans le banc de bloc et voir, par exemple, quand vous prenez le Bollinger de temps en temps, par exemple, faisons pivoter comme ça, comme dans Endgame. Et vous le tournez comme ça, puis vous l'exportez. Vous pouvez en fait voir ce que cette rotation ferait. Donc je le ferais encore une fois, s'il y a quelque chose qui est bizarre, ça pourrait être une des choses qui se produisent là-bas. Et lançons cela en fait et voyons si cela l'a réellement corrigé. Parce que comme je l'ai dit, c'est un peu bizarre. Donc, du banc de bloc à ça, il y a un peu de bizarre que je ressens en exportant. Mais comme je l'ai dit, vous pouvez le réparer. Il devrait en fait être assez facile à réparer. Et puis nous allons voir si oui ou non le modèle a été corrigé ou si oui ou non il semble toujours bizarre. Ils vont, ok, le modèle a été réparé. Comme je l'ai dit, c'est parfois un peu bizarre. Donc, il y a aussi un petit problème de texture là-bas. Donc, comme vous pouvez le voir dans les behooves, disons que ce n'est pas vraiment prendre la texture. Je peux vous montrer la texture rapidement. La texture est là. Et le buffle. Et ce que j'ai fait, c'est que j'ai entouré cette largeur. La largeur tout comme un rose vif ou magenta, quelque part entre rose, image rouge douce. Et un put est là juste pour signifier. Ok, où sont les textures ? Parce qu'à l'intérieur du banc de bloc, je vais y retourner une fois de plus. Vous pouvez bien sûr, spécifié cette année. Et chaque bloc sur lequel vous cliquez, vous pouvez réellement spécifier OK, où est cette texture ? Et puis ce d secteurs doivent simplement être faits, surtout pour cela. Mais ce n'est pas si difficile ou compliqué, je dirais. Parce que si la, si la tête, par exemple, c'est 666. Donc, fondamentalement, vous avez six côtés et chacun d'eux a six pixels de chaque côté. Donc, vous pouvez vraiment calculer, d'accord, quelle est la taille de texture dont j'ai besoin ? Mais la meilleure chose ici est quand vous voulez vraiment du texte ou quelque chose est trop peu, faire le taux d'essai et d'erreur parce que vous pouvez, comme vous pouvez le voir, vous pouvez simplement déplacer ce tour et ensuite la texture change. C' est un peu bizarre de faire ça, mais ça marche. Donc mon conseil, encore une fois, c'est juste pour essayer quelques choses. Juste essayé jusqu'à ce que ce que vous voulez faire fonctionne. Et puis vous pouvez également couper la texture en taille, n'est-ce pas ? Donc, bien sûr, cela pourrait être rendu un peu plus efficace dans l'espace. Mais je crois que cela va bien se passer. C' est vrai ? Donc, dans l'ensemble. Et c'est tout. Comme je l'ai dit, l'ajout de monstres ou d'entités est certainement un peu plus compliqué et complexe que certaines autres choses. Parce que nous le faisons réellement, nous avons réellement écrit un rendu personnalisé. Maintenant, bien sûr, ce n'est vraiment pas, il n'y a vraiment pas un client et réel, soyons honnêtes. Il facilite simplement de mettre dans l'endroit où les textures. Mais oui, c'est les entités de mode. Encore une fois, s'il y a des questions ou si vous avez des flèches, hésitez pas à le poser. Et je serai sûr de répondre. Et oui. 69. (Minecraft) Faire notre spawn personnalisé Mob à l'intérieur du monde: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons réellement faire naître nos entités. Donc le bison va frayer les deux à l'intérieur du monde. Et nous allons également créer un élément de sorte que le, donc l'œuf de frai pour le Buffalo. Donc la première chose qu'on va faire, c'est de créer l'œuf. Et cet œuf va simplement entrer dans les articles ici. Donc, au lieu de notre paquet d'objets, nous allons créer l'élément d'oeuf mod spawn. Maintenant, c'est vraiment une bonne chose parce que ça va être tous à la fois. Donc, si nous en avons plusieurs, cela peut effectivement servir de multiples, différents oeufs pour plusieurs, nous disons plusieurs entités. Donc, en fait, nous devons seulement créer ceux-ci. Et puis nous pouvons réutiliser cette classe pour différentes entités. Et la façon dont nous allons l'utiliser est en faisant une liste protégée, protégée effectivement fait statique et finale de cet élément de génération de modèle. On va appeler ces oeufs de MOD. Ça va être une nouvelle ArrayList. Exactement comme ça. Et puis nous avons également besoin d'importer la classe de liste, et c'est tout. Maintenant à l'intérieur de celui-ci va en fait être un peu différent. Donc, nous allons vraiment faire cela différemment. Ce qu'on va faire, c'est qu'on va avoir un objet de registre final. Et nous allons mettre ici avec une classe qui étend le type d'entité. Point d'interrogation. Ça va être le fournisseur des entités. Et puis la couleur primaire va rester dans la bobine secondaire et les propriétés vont rester dans. Nous allons appeler ceci avec un null et ne veut pas corriger cela, cette entité .tab, les types d'entité de joueur i, nous devons réellement le mettre dans. Bien sûr, il va y avoir une finale privée, paresseuse d'un point d'interrogation de type, puis étend le type d'entité. Nous allons faire remarquer que cela va être appelé fournisseur de type entité. Et nous avons aussi besoin d'obtenir Entity plutôt paresseux. Et puis ce fournisseur de type d'entité point sera égal au fournisseur d'entité. Et on y va, oh, bien sûr que ça va être paresseux du fournisseur de l'entité. On y va. Et pourtant, je crois que c'est la meilleure chose à faire. Et puis le mod egg dot ajouter ceci. Cela ajoute simplement la, la classe qui vient d'être créée avec le constructeur dans notre liste statique que nous avons ici. Et puis nous avons besoin d'une méthode statique. On va juste utiliser la liste des oeufs pour initialiser le x en gros. Et ce qui va se passer ici, c'est qu'on va prendre une carte, une carte finale, type d' entité et un objet de frai. Donc c'est un peu, c'est un, c'est juste la carte. Cela va être fait avec l'aide de réflexion obfuscation, obtenir une valeur privée. Donc, cela nous permet fondamentalement d'obtenir une valeur privée d'une classe. Il va y avoir une instance nulle que le nom du champ va être x. Importons la carte rapidement, puis je vais parler rapidement de cela. Donc, à l'intérieur de l'élément d'oeuf de frai, nous, Comme nous pouvons le voir, il y a une carte finale statique privée, exactement ce que nous avons spécifié, qui s'appelle x. Maintenant, c'est bien sûr privé. C' est pour ça que nous ne pouvions pas sortir. Mais avec l'obfuscation de l'association, la réflexion, assistant peut réellement obtenir cette variable privée et dans ce cas la valeur de ceci. Et puis on peut l'utiliser pour y ajouter des choses. Et puis il va juste ajouter cela pour nous automatiquement. Donc la première chose que nous allons faire ici, en fait, nous allons taper le type d'entité publique, interrogation, il devient type, sorte que c'est fait hors du chemin. Cela prend un NVT composé et BT, et il va simplement retourner ce paradoxe des entités point. Pourtant, c'est en passant, un remplacement aussi. Alors c'est fait. Alors on a seulement besoin d'ajouter quelque chose à l'entrée des oeufs frayés, non ? Et maintenant, nous allons spécifier le comportement qui va se produire pour le distributeur. Donc, nous allons créer une valeur par défaut au comportement de l'élément spins. Bientôt appelez ce comportement de l'élément de distribution. Donc être un nouvel élément de dépense, distribuer le comportement de l'article, par défaut, n'est-ce pas ? Et au lieu d'ici, nous devons remplacer une nouvelle méthode et ce sera la pile de distribution. Oui, exactement celle-là. Et ce qu'on veut faire, c'est qu'on retourne pile. Cependant, il y a peu de choses qui doivent se produire d'abord, la première chose que nous faisons est que nous voulons obtenir la direction. Eh bien ce n'est pas la bonne direction et la direction de lecture est la direction. Et ça va être source dot-dot-dot getter, bloc, point d'état, get. Non, ne prenez pas cette direction, mais faites face à un bloc de distribution. Donc, ici, il est juste que nous voulons savoir dans quelle direction le distributeur fait face. Ensuite, nous voulons spécifier le type d'entité. Donc, nous obtenons juste le type d'entité qui est dans l'élément d'oeuf de frai. Donc, ce point de pile obtenir élément, o, élément, ils allaient point obtenir type, pile point, get, hag. On y va. Et ceci, ceci, cela me donne simplement le type d'entité que nous voulons générer et ensuite nous voulons générer cette entité afin que ce type spawn aperçu du monde que nous avons besoin de spécifier la spécification, eh bien le frai, pas de joueur. La position à laquelle il s'agit de la raison de naissance qui est bien sûr distributeur. Et puis on voudra dire que la direction est inégale à la fermeture directe et non pas vers le bas, mais vers le haut. Et le dernier est faux. Donc, cela s'assure simplement que cela ne se produit pas vers le haut lorsque le, lorsque le Spitzer est pointé vers le haut. Empiler les points rétrécir par un, non ? Alors l'œuf est réellement consommé, disons. Et nous voulons, une fois que cela sera fait, vous voulez vraiment ajouter ceci ici. Donc, cela va être l'élément de génération, l' oeuf de génération dans tous, tous les types d'entités. Mais nous voulions mod frai article, les oeufs de mod. Et pour chacun de ceux que nous voulons ajouter le, donc x-dot. Mettez. Ce sera le daguerréotype d'oeuf de frai sans et BT et le frai. Et nous voulons aussi que le distributeur bloqué à enregistrer le comportement. Et là, nous avons dit que spawn EG et le comportement de distribution que nous avons spécifié ici. Et puis à la fin, quand nous avons fait tout cela et tout initialiser, alors nous voulons juste effacer le mod x. Donc, fondamentalement, cela doit être appelé, allons nous débarrasser de quelques choses ici. Cela doit être refroidi dans le proxy du client de plaque. On peut déjà mettre ça ici. Donc, c'est tout simplement élément de frai mod en elle, spore suivante. Donc, cela est maintenant appelé dans le proxy client. Et nous devons d'abord lire un nouvel article. Donc, ce sera le frai réel, par exemple. Et comme je l'ai dit, quand nous avons un, un autre exemple, si vous voulez créer une autre entité au lieu d'un buffle, je ne connais pas une hyène par exemple, ou quelque chose comme ça. Ensuite, vous pouvez simplement ajouter presque exactement la même chose que nous allons ajouter ici maintenant. Et ça va marcher immédiatement. Donc, cela va être l'objet de registre du type modèle spawn egg. J' ai pris une sorte d'article. Ça va être un objet monotonique. C' est l'œuf désossant de Buffalo. Oh, non, ce n'est pas un montage. L' oeuf. Et ça va être dans les éléments d'inscription. Donc ça va être une île normale, disons que le bison fraye par exemple. Et ça va être un nouveau mode, un acte de type, mode, types d'entité, Buffalo. Et puis nous avons spécifié les couleurs et nous devons réellement spécifier ces couleurs dans le code hexadécimal. Donc on va faire un 0 x et ensuite le code hexadécimal, je vais juste prendre quelques couleurs qui pourraient ne pas être la meilleure chose que vous pouvez. Si vous pouvez réellement jouer avec elle un peu et essayer quelques couleurs différentes. Et ce ne sont que le code hexadécimal pour la couleur derrière le Xerox. Et puis les propriétés de l'élément vont simplement être une fois de plus, le groupe, qui est bien sûr l'onglet de cours de métadonnées mc cœurs. Et cela conclurait l'œuf. Cependant, avant d'aller en jeu, nous allons faire rapidement le frai à l'intérieur du monde. A l'intérieur de notre dossier gen ou d'un paquet, nous allons créer une entité simulée spawn plus. Ceci, une fois de plus va être un abonné MOD DOD bus événement avec MOD ID MC cours que déjà. On y va. Et c'est tout ce dont nous aurons besoin. Et puis nous allons avoir une prise vide sur la charge de biome par OMA nob sur la charge de biome ils oh, c' est un événement de chargement de biome. Événement. Et c'est un événement d'abonnement. Et je vais rapidement copier cela parce que cela va fondamentalement être exactement le même. Comme je suis important qu'ils partent, il va y avoir presque exactement la même chose qui s'est passé avec l'arbre, je crois, oui. Mais c'est presque le même que ce qui s'est passé avec l'arbre va se produire ici. Juste au lieu d'une liste de fonctionnalités configurées, nous allons avoir une liste de générateurs de points d'information sur la foule. Donc on va avoir les géniteurs avec la créature classificateur d'entité. C' est le classificateur que nous avons mis le tube de buffle. Et puis on va créer un nouveau générateur ici. On peut vraiment aller ici et voir ce qu'il y a là-dedans. Donc, nous allons juste spécifier le type, le poids, le min, et le nombre maximum. Le poids ici signifie simplement combien de fois cela va être engendré. Et je crois que ce que c'était un mouton et des choses comme ça sont dix. Je l'ai juste mis à 30 pour qu'on soit sûr, accord, en fait, quelque part qu'ils génèrent. C' est encore une fois quelque chose que vous devez jouer avec un peu avec les chiffres. Et aussi année très importante, j'ai en fait précisé qu'ils ne fraient pas dans le biome océanique, sinon ils seraient probablement noyés très rapidement. Et puis le compte min tout simplement ok, quelle est la taille du troupeau, disons dans ce cas, et oui, voyons si oui ou non cela fonctionne réellement. Et l'élément de frai, la plupart d'un oeuf fonctionne également, mais les deux devraient juste fonctionner. La bonne chose ici est que vous pouvez également spécifier, bien sûr, disons peut-être un, le buffle seulement pour frayer sur les avions. Nous pouvons déjà le faire en spécifiant ici que les types ne contiennent que le type a des plans orbitaux. Oui, exactement. Donc, c'est quelque chose qui est très facile à faire en fait. Voyons voir. Alors créons un nouveau monde et voyons si nous pouvons tous les deux voir ceux déjà engendrés. Et puis aussi l'article que nous avons préparé, l'œuf. Ne serait-ce pas sympa ? Eh bien, ce serait très gentil. Oui. Voyons voir. Oh, on a frayé dans une jungle. C' est fascinant. O a, nous avons l'œuf sans texture. Eh bien, ce n'est certainement pas ce que vous voulez voir. Cependant, nous ne pouvons pas engendrer le bison qui, c'est plutôt sympa. Alors volons en fait autour de l'extérieur de la jungle. Je ne suis pas sûr. On peut même les voir s'ils sont dans la jungle. Allons voir si on peut voir certains d'entre eux. Je crois qu'ils le sont, ils sont lâchés. Certains d'entre eux sont en fait engendrés à l'intérieur du monde. Mais ne vous inquiétez pas, ils n'ont pas marché d'ici à là-bas plus vite que je ne peux voler. Comme ça, ce serait fou. Ils génèrent en fait un meurtrier ou quelque part où vous allez même sur la tortue, allons-y et exercices. D' accord. Mais ils frayent dans le monde. Maintenant, l'œuf n'a pas un, n'a pas une texture appropriée parce que bien sûr, nous n'avons pas encore ajouté le modèle pour cela. Alors comment peut-il avoir une texture ? Si elle n'a pas de modèle ? C' est une très bonne idée pour une question en fait. Alors ajoutons le modèle pour cela. Je vais juste copier ça et le regarder à nouveau. Eh bien, ce n'est pas si compliqué. Mais encore une fois, parfois la seule ligne suffit pour ne pas le faire fonctionner correctement. Je crois qu'une fois que l'élément ici sera ajouté, alors ça va marcher. Nous n'avons pas vraiment besoin de fournir une texture parce que nous avons bien sûr fourni la texture, pour ainsi dire, avec celle-ci. Donc, c'est l'oeuf de frai modèle a tout simplement NO2 deux numéros qu'il associe avec couleurs et puis il va rayonner que sur son propre. Et on y va. Maintenant, il a en fait ces deux couleurs dedans. Bien sûr, vous choisiriez probablement d'autres couleurs. Mais une fois de plus, les couleurs que vous pouvez jouer avec eux si vous voulez ou avez besoin. Et puis vous pouvez ajouter votre propre hélice personnalisée. Donc on est, mais j'aime bien ça en fait. Quand ils courent. Ouais, c'est plutôt cool. Oui. Et c'est ainsi que vous ajoutez de nouvelles entités. C' est ainsi que vous les faites apparaître dans votre monde, et comment vous pouvez ajouter les objets de génération. Encore une fois, la localisation est la chose la plus facile jamais, simplement à l'intérieur du fichier de localisation comme toujours. Cependant, ce que vous devriez également faire avec l'entité elle-même, c'est que vous devriez certainement ajouter l'entité. Donc, vous devriez certainement ajouter celui-ci. Donc ça devrait être une entité sur MC, pire, Buffalo et ensuite un buffle, non ? Et bien sûr, le petit cou. Ça va être assez trivial d'ajouter ça, n'est-ce pas ? C' est ainsi que vous générez les foules et comment vous pouvez créer un sperme et un ovule. Je crois que c'est tout. S' il y a des questions, n'hésitez pas à poser. Et si vous avez trouvé quelque chose d'utile ici et que vous avez réellement créé quelque chose, alors j'apprécierais beaucoup un commentaire de votre part. Sinon. C'était tout pour l'instant. Et oui. 70. (Minecraft) Créer un (Minecraft) personnalisé: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons parler de créer notre propre biome personnalisé. Donc, en fait, on avait un étudiant qui me demandait , d' accord, comment puis-je créer mon propre biome ? Et c'est un moyen des sujets avancés. Donc c'est beaucoup plus compliqué que d'autres choses que nous avons faites. Mais ne vous inquiétez pas pour ça. On va y passer un par 11 pièces à la fois. Et puis je pense qu'on peut le gérer. Donc tout d'abord, à l'intérieur de notre paquet mondial, nous allons créer un nouveau paquet, que nous allons appeler biome. Et puis directement après cela, un deuxième paquet aussi dans ou un paquet mondial. Et ça va être ou vedette. Maintenant, nous commençons avec le paquet biome. Et là, nous allons créer une nouvelle classe Java appelée le constructeur de surface de journalisation. Et en veillant à ce que le o est petit jour aller forestier constructeur de surface. Ça a l'air bien. Donc, c'est fondamentalement une sorte de classe d'aide bien afin que quand notre biome naît, nous pouvons réellement voir, ok, c'est là qu'il a engendré. Donc, c'est fondamentalement tout ce que c'est. Donc, tout d'abord, ce sera tout un tas de génériques là-dedans aussi. Donc ça va être C, prolonge le conflit de constructeur de surface oculaire. Et aussi comme qui étend un constructeur de surface, surface construire histoires constructeur de surface Voir, là vous allez. Et puis aussi revenir en arrière. Et cette classe elle-même étend aussi les piliers de surface, non ? Alors, tout d'abord, nous allons avoir quelques flèches ici. Il suffit d'implémenter les méthodes comme nous le voyons ici. Nous avons en fait étendu le constructeur de surface plus. Nous avons donc bien sûr besoin de la, nous avons besoin d'une méthode et ce sera la méthode de surface construite. Ceci est essentiellement appelé lorsque le déversement de surface réelle, nous pouvons juste cliquer sur le milieu de la souris ou Contrôle, puis cliquer sur la surface. Et nous pouvons vraiment voir ça au lieu de la surface. Mais quand on descend, on a cette surface construite. C' est une méthode abstraite et abstraite. Et c'est, comme je l'ai dit, tenir quand la chose réelle est générée, disons. Maintenant, ce que nous voulons à l'intérieur d'ici est en fait que nous faisions juste cette classe comme une sorte de, ce n'est pas une classe wrapper plus large à une sorte de classe qui fonctionne juste pour que nous puissions réellement verrouiller quelque chose d'une manière efficace et facile. Alors prenons un enregistreur ici. C' est le journal pour j logger, va logger, et ce sera le gestionnaire de journal de journal. Ce n'est pas le bon gestionnaire de journal. Gestionnaire de journaux, ce point devient plus long, ils vont. Ensuite, nous aurons aussi une finale privée puis un paresseux de type S. Donc c'est le type qui est donné ici, qui doit étendre la surface ci-dessous. Et ça va être le constructeur de surface délégué. Et puis aussi un booléen privé appelé logged, sorte que nous ne nous sommes connectés qu'en tant que tel et pas à chaque fois que nous continuons à construire des choses. Et oui, alors faisons un beau constructeur ici. Donc nous allons trouver un fournisseur de type S qui sera le constructeur de surface délégué du flou de surface. Et puis aussi un Kodak final avec codec C. Et on va juste appeler le super constructeur. Donc pour la clause de construction de surface elle-même, et nous allons lui donner le codec ici. Et puis ce pilier de surface délégué par point est égal au flou de surface délégué. Nous avons également besoin d'importer le codec plus c'est la sérialisation Mo Geng, très important. Et c'est, bien sûr, parce que c'est un point paresseux et paresseux. Tout ce que nous passons dans votre, leur ego. Ou alors, c'est le constructeur ou monté. Et, et nous avons seulement besoin de finir ça. Et c'est tout simplement le long du chemin de Hayward. Prenez le générateur de surface délégué. On va juste avoir ça. Et puis on appellera la surface de construction. Et puis on va mettre tous les paramètres là-bas. Nous pouvons en fait déjà juste autocompleter ça. C'est vraiment sympa. Et cela appelle alors fondamentalement simplement le constructeur de surface normal qui sera refroidi de toute façon. Mais comme je l'ai dit, il y a beaucoup de pièces mobiles ici. Ne vous inquiétez pas s'il y a quelque chose qui n'est pas clair. On va passer par là. Tout d'abord, classe par classe, et ensuite on va voir comment ils vont tous ensemble. Donc nous allons juste dire, hé, si journalisé n'est pas vrai comme quand la surface est construite, tout d' abord, nous allons le définir sur true. Et puis nous allons simplement à la pause de morceau de chemin de tronc. Et ça va juste être le morceau de point passé. Donc, c'est juste le morceau qui est actuellement en cours, qui est en cours de construction. Et puis on va dire des infos sur le point d'enregistreur. Et puis ça va être comme en générant actuellement à. Et puis je peux le faire, ouais, exactement. Entrer dans la présente loi. Et puis deux ordonnées ici. Et nous allons juste dire biome dot, obtenir le nom du registre. Et puis une pause en morceaux. Je vais prendre x départ. Est-ce que cela n'existe pas parce que nous n'avons pas les chemins de bloc dedans et le point passé get X stocké. Et puis les chemins de morceaux pas obtenir y étoile, y, Je reçois z, désolé, z stocké parce que y est bien sûr le haut, tandis que l'axe qui va de bas en haut du monde. Et c'est le constructeur de service de journalisation. Comme je l'ai dit, c'est une sorte de classe d'assistance en ce sens qu'il est juste plus facile que nous puissions réellement vérifier le terminal et la console pour être comme, OK, c'est là qu'un biome du nôtre a généré. Et puis la partie suivante, ce que nous voulons réellement, nous voulons maintenant que le constructeur de surface ait, eh bien, nous voulons vraiment un bon soumissionnaire de surface 42 que nous allons créer une nouvelle classe. Encore une fois, nous allons être les constructeurs de surface de Mott. Important. C'est au pluriel, non ? Tellement multiples. Et à l'intérieur d'ici, c'est quelque chose que nous avons vu plusieurs fois auparavant. Nous allons en fait créer un nouvel objet de registre. Et ce sera le registre final. Lire l'historique. Vérifie. L' ego du constructeur de surface de type avec un conflit de constructeur de surface. Et ce sera la journalisation par défaut. Donc c'est parce que, comme je l'ai dit, nous allons juste créer ceci comme une sorte de pilier de surface par défaut que nous allons utiliser pour qu'il crache toujours les ordonnées. Et je vais bien sûr aussi devoir faire, nous devons également aller dans notre inscription et effectivement ajouter le nouveau registre par défaut ici. Nous devons en fait ajouter deux nouveaux registres. Nous pouvons le faire immédiatement. Donc, le premier que nous allons ajouter est en fait, nous allons ajouter le Registre de type a biome. Donc c'est le genre où nous avons, eh bien, nos biomes, bien sûr, non ? Donc biomes, et cela va être faire le mot-clé def Enregistrer point, créer, puis forger des registres. Nous l'avons vu plusieurs fois déjà. Donc ça, bien sûr, ne devrait plus être une énigme. Allons avec ce biome. Et puis aussi, oops, puis aussi un registre public statique final différé de type constructeur de surface. Et puis un point d'interrogation parce que nous voulons réellement spécifier la configuration nous-mêmes. moment, nous allons seulement utiliser un point spécifique, mais comme je l'ai dit, nous allons y arriver en un rien de temps différé Register dot. Et ce sera quatre registres que les constructeurs de surface. Et puis encore une fois avec le modèle Ahmad, le mal, non ? Donc, ils sont déjà là. Assurez-vous toujours de les mettre dans l'unité. C' est comme certaines des choses qui peuvent arriver que tu oublies ça et puis, eh bien, tout le monde est un peu déconcerté. Pourquoi ça ne marche pas ? Vous savez, assurez-vous de mettre le loup, le constructeur de surface de biomasse méthode Register dans l'index, dans l'enregistrement interne. Et maintenant, nous pouvons déjà aller ici et dire l'enregistrement, les points, le constructeur de surface, les constructeurs de surface DOT registre. Et on veut un nom. Encore une fois, cela va être la journalisation par défaut, comme je l'ai dit, ce sera juste notre par défaut. Et puis vous avez besoin d'un fournisseur d'un nouveau constructeur de surface. Et puis nous allons faire le pilier de service de journalisation que nous venons de créer. Sans taper ici. Au lieu d'ici, nous avons également besoin d'un fournisseur. Ça va être. Point de déversement par défaut, puis une surface en dessous ou en conflit. Et nous allons choisir ce champ ici. Laisse-moi voir. Cela va être un rendement de 37 à o. Cela n'existe pas réellement. Je suppose que cela signifie que nous avons effectivement un défaut ici. Je sais pourquoi parce que ce n'est pas la surface photorésiste, conflits de surface, désolé Diego. Et il y a le terrain, bien sûr. Droit ? Et puis assurez-vous également à l'intérieur de notre, des constructeurs de surface MOD plus d'ajouter notre confiance l'ancienne méthode de registre vide statique que nous pouvons ensuite appeler à l'intérieur d'ici. Faisons ça après que les fluides ont été faits. Ceci est un registre DOT des constructeurs de surface maud. Et puis c'est aussi bien fait. Droit ? Et après que celui-ci a été créé, nous pouvons maintenant examiner quelque chose d'autre. Et ça va être une autre classe au lieu de biome ici. Et ce sera le MOD plus gros constructeurs de surface. Maintenant je, vous pourriez être comme, ce qui se passe ici. Et ne vous inquiétez pas pour ça. On va passer à travers ça. Donc c'est une clé de registre en fait, non ? Il s'agit donc d'une clé de Registre de type configurée Surface Builder avec un point d'interrogation. Et c'est, on va appeler ça la surface du pétrole. Maintenant, cela va être clair très bientôt. Et cela va être égal à Registry e dot e ou créer une clé avec la clé de constructeur de surface configurée par point de Registre. Et puis un nouvel emplacement de ressource avec notre ID MOD intelligent MC, puis nous allons faire surface. Donc et comme je l'ai dit, il y a plusieurs étapes et chemins pour passer par cela. Nous allons passer par là et vérifier chacun des composants individuellement. Oui. Il y a donc maintenant deux choses que nous devons faire. Une chose est à l'intérieur de notre fonctionnalité. Caractéristiques. Donc, c'est l'assurance que nous pourrions vouloir ajouter et nous n'avons pas encore besoin de cela. Nous pouvons en fait, tout d'abord, le microbiome. Allons donc dans nos biomes et créons la classe des biomes modernes. Et cela va être comme une classe de maître où tous nos biomes sont bien à. Donc, nous commençons en fait avec l'objet de Registre final statique. Donc c'est maintenant le registre biomes appropriés. Donc c'est votre, nous sommes en train de définir nos biomes maintenant. Et ça va être le biome de l'huile. Alors, bien sûr, nous avons créé du pétrole et j'ai dit, pourquoi ne pas faire un biome comme une atmosphère de terre morte qui a comme le pétrole Petrus. Je pensais que c'était une idée intéressante est juste pour montrer comment cela fonctionne. Et puis je vais vous montrer comment personnaliser ces choses au fur et à mesure. Donc, bien sûr, nous allons encore une fois, tous les biomes d'enregistrement ou d'enregistrement, puis le registre des biomes différés. Et ça va l'être. Le biome de l'huile. Et puis on va avoir un appel de méthode, on va refroidir, faire du biome de l'huile. Maintenant, c'est une méthode que nous n'avons pas encore créée, mais je vais rapidement finir le, le, ce que nous voulons pour cela et ensuite nous allons voir, donc ce sera des registres doux du monde, point configuré, constructeur de surface. On y va. Et puis obtenir la valeur Rho. Donc, cela va fondamentalement maintenant au constructeur de surface configuré. Essayons de formater. C' est un peu plus agréable pour qu'il soit en fait lisible. Ce sont des déclarations très longues. En fait, ce n'est pas si facile de tout mettre ici. Ce sera les filtres de surface configurés par mod. C' est ce que nous venons de faire avec la surface de l'huile. Et on peut fermer ça. Et puis en fait un seul. Oui. Et puis nous avons la profondeur, puis l'échelle. Comme je l'ai dit, nous allons créer la, la méthode juste après cela, importer, l'objet de registre. Et puis bien sûr, on va avoir une erreur parce que le gros biome de l'huile n'existe pas encore. On va faire une nouvelle statique privée. Biofilm fera du biome d'huile avec un fournisseur final de type constructeur de surface configuré avec un point d'interrogation une fois contre ce constructeur de surface. Et puis un flotteur. Et un flotteur, pas de hauteur, mais ils vont. Et puis nous devons faire entrer le fournisseur en tant que fonction utilitaire Java de classe. Et puis quelque part il y a probablement un, oui, on y va. Ok, maintenant ça marche déjà. Bien sûr, nous ne rendons pas encore un biome. Et c'est aussi une méthode qui est certainement ce que vous devriez regarder quelqu'un d'autre pour cela. Donc je vais juste mettre ça dedans. Donc bio maker. Et si nous contrôlons une fois de plus le clic ou le bouton du milieu de la souris, nous arrivons effectivement à la classe de biomarqueurs de Minecraft. Et à l'intérieur d'ici, nous avons effectivement ces méthodes statiques qui ont, qui sont disponibles pour nous ou sont, elles sont utilisées pour faire certains biomes, non ? Alors faites ici géant, géant , biome de tigre géant, n'est-ce pas ? Et comme vous pouvez le voir, il y a beaucoup de choses ici. Et nous allons juste copier ce qu' y a dans l'un de ceux-ci et ensuite le changer un peu. Donc on va prendre le marais et on va prendre ça comme un, comme un basique, disons. Et on va copier tout ce qu'il y a à l'intérieur. Et puis on va juste le coller. Et nous allons avoir quelques erreurs. Probablement. La première chose que nous voulons faire ici, la variante de la colline. Dans notre cas, j'ai décidé de ne pas avoir la variante Hill sur notre biome. Mais bien sûr, vous pouvez aussi changer cela. Mais comme je l'ai dit, c'est juste une brève introduction dans les biomes pour les rendre vraiment spécifiques et les rendre vraiment client. Vous devez jouer avec tous les outils qui vous sont donnés. Mais tout d'abord, créons le continent bio. Voyons ce qui se passe ici. Alors. En haut, nous allons réellement faire un réglage final de génération de biome là-bas, yo dot builder. Et cela va être notre générateur de paramètres de génération de biome. Et nous allons en créer un nouveau. Donc nouveau et nous obtenons réellement cela suggéré ici, ce constructeur de surface de largeur, et c'est le constructeur de surface. On va l'abandonner ici, non ? Que nous avons fourni là-dedans. Donc c'est la surface en ce moment. Et ça va être utilisé à la place de ces paramètres de génération biologique ici. Donc, c'est fondamentalement celui-là. Vous pouvez aussi simplement changer cela. En fait, c'est probablement un peu plus facile. Alors changez celui-là. Et puis cela fonctionne aussi avec l'ego. Il s'agit donc des paramètres de génération de biome. Oui. Ok, mais comme, et comme vous pouvez le voir, il y a quelques choses qui se sont déjà produites ici, non ? Donc, les fonctionnalités de biome par défaut avec des mobs passifs. C' est très intéressant en tout. Eh bien, allons tout d'abord par ici. C' est donc un très long, comme vous pouvez le voir, une déclaration de retour très longue ici. Alors essayons de configurer cela un peu pour que vous puissiez réellement le voir un peu mieux. Donc il y a une chose, comme vous pouvez le voir, qui a en fait une, une flèche ici. Et ça va être la couleur du ciel avec modificateur de température. Maintenant, il y a plusieurs choses que vous pouvez faire. Je dois être honnête. La chose la plus simple personnellement est simplement de prendre cette méthode privée qui calcule réellement la couleur du ciel sur la base la température et il suffit de le coller dans vos biomes de la bouche. Pour moi, juste la façon la plus simple de le faire. Bien sûr, il y a des façons plus intelligentes et vous pouvez utiliser la réflexion pour masquer ceci et tout cela. Ça n'a vraiment pas d'importance. Je pense que c'est tout à fait bien et c'est, eh bien, eh bien, d'accord. D' accord. Regardons ce faire biome de l'huile maintenant et voir ce qui se passe réellement. Avant de faire cela, s'il vous plaît ajouter une autre méthode qui va être cette méthode publique statique Registre vide ici avec rien dedans. Pour que nous puissions réellement enregistrer le, les biomes aussi. Et ils devraient être enregistrés avant ce registre DOT biomes. Juste au cas où. Et maintenant, le biomarqueur, débarrassons-nous de celui-ci et voyons. Donc les biomes de la carte. moment, cela ajouterait simplement un nouveau biome appelé le biome de l'huile avec cette surface d'huile juste ici. Mais il y a encore une chose qui est, ça ne manque pas, mais c'est, eh bien, ça ne fait rien en ce moment, n'est-ce pas ? Donc, il n'y a rien de vraiment excitant qui se passe est fondamentalement juste de créer un nouveau, un nouveau biome des marais. Parce que c'est essentiellement ce que nous avons, ce que nous avons copié ici, non ? Et donc la vraie question est, eh bien, où pouvons-nous obtenir la prochaine chose que nous pouvons changer ? Et ça va être à l'intérieur des fonctionnalités. Alors ajoutons tout d'abord une nouvelle fonctionnalité, une nouvelle classe. Donc, ce sera la marche sur les fonctionnalités déclenchées. C' est ainsi que la classe va être refroidie et à l'intérieur de votre travail va effectivement avoir quelques fonctionnalités de configuration. On va commencer par un, puis en ajouter un autre, et ensuite on va regarder ça. C' est donc un statique public. fonctionnalité de configuration finale était une marque de commerce occidentale. Et puis on appellera ça le lac d'Euler. Maintenant, ce que j'ai fait et comment j'ai réellement, eh bien, vraiment, disons que je viens prendre les fonctionnalités de biome par défaut, non ? Donc, ils sont également toutes les fonctionnalités configurées. Et encore une fois, clic de souris du milieu, vous pouvez vraiment entrer ici. Et vous pouvez voir que c'est une classe où il y a beaucoup de méthodes statiques. Au lieu d'ici, nous avons Builder dot avec mangeur. Et c'est toujours quoi, ce qui est refroidi. Et si nous regardons, par exemple, dans le bois, ce n'est pas tout à fait correct dans le Builder. Et nous voyons qu'il y a quelques choses qui se passent ici. Donc, par exemple, on peut dire qu'on veut des lacs, n'est-ce pas ? Donc, avec des lacs de lave et d'eau , à droite, amant modal x, vous avez probablement vu ça. Dis OK. Cela signifie simplement que nous devons appeler avec lacs de fonctionnalité et les enseignants de l'eau du lac. Et c'est une fonctionnalité que nous avons en fait une nouvelle fonctionnalité de bras. C' est donc intéressant de savoir et c'est comme ça que nous faisons ça. Alors faisons le registre, registre des points. Ce sera un registre mondial des genres qui configurent la fonctionnalité, n'est-ce pas ? On va appeler ça du pétrole tardif. Et ça va être une fonctionnalité. Nous avons déjà vu cette fonctionnalité avec la génération. Et ça va être le lac, non ? C' est aussi facile qu'avec la configuration. Maintenant, la fonctionnalité doit réellement être importée une configuration de largeur de points Eagle Lake. Et au lieu d'ici, nous avons besoin d'un nouveau bloc. État, un fournisseur, un conflit de fonctionnalité de site de blocage en fait. Et ça va finir. Puis à l'intérieur d'ici, nous allons réellement spécifier OK, quel type de quel type de bloc ou voulons-nous. Donc on peut aller dans le lac ici. Et nous verrons que cette méthode de registre est exactement la même, exactement la même chose, mais c'est une chose très similaire. Vous pouvez voir vos nouvelles caractéristiques du lac. Vous pouvez ensuite aller dans les caractéristiques du lac. Et maintenant c'est, c'est tout un tas de choses qui ne nous intéressent pas nécessairement. Cependant, vous pouvez réellement voir, N'y a-t-il pas une caractéristique de lac est similaire à l'eau. Nous y sommes. C'est donc dans les fonctionnalités, pas dans la fonctionnalité qui, c'était le problème. Et ici, vous avez vraiment l'absolu. Donc, la méthode de registre que nous venons d'appeler, vous avez exactement la même méthode ici. Donc on peut dire, tu sais quoi ? Copions ça, n'est-ce pas ? Alors prenons ça du lac. Copie la méthode des boues et dis, d'accord, on va juste copier ça. Donc, voyons, nous devons réellement obtenir ce registre de points de registre que vous allez, accord, et puis le reste est déjà fait. Donc nous venons aux enchères veulent aussi changer le nom de l'huile de lac, n'est-ce pas ? Et puis ici, nous avons des intérêts points Etats, bloc d'eau. C' est bien sûr, le bloc que nous voulons y mettre. Donc, ce sera mod fluids point bloc d'huile dans ce cas, point obtenir encore l'état par défaut parce que nous avons besoin d'un état par défaut en elle. Et puis ce qui semble être les problèmes que nous ne résolvons pas cela, ne vous inquiétez pas à ce sujet. S'inscrire. Et c'est parce que nous avons notre, nous avons également besoin de la règle, désolé, les registres du monde point ce sont des fonctionnalités configurées ou sont-ils mauvais ? chauffage figuré. Et puis la fuite d'huile, l'huile, ils vont. Comme vous pouvez le voir, nous pouvons en fait simplement copier le et c'est un à plusieurs, c'est bien. Et nous pouvons en fait simplement copier à partir des fonctionnalités. Et s'il y a des choses similaires que vous voulez faire, eh bien, vous pouvez simplement les prendre à partir des fonctionnalités ici et les modifier comme bon vous semble. Maintenant, il s'agit d'une fonctionnalité trans. Mettons ça à dix, juste pour des raisons d'argumentation en ce moment. Et c'est quelque chose que nous pouvons maintenant utiliser et mettre dans notre modèle. Maintenant, comment peut-on faire ça ? Allons-nous entrer ici, dans notre microbiome et ensuite n'importe où vraiment. Mais mettons-le ici pour que vous sachiez où c'est, disons, le générateur de paramètres de durée du biome. Donc, c'est une chose que nous passons toujours dans ces méthodes statiques ici. Ce que nous voulons, c'est que nous voulons cette fonctionnalité de largeur. Et puis nous pouvons juste dire, eh bien, tout d'abord, à quel stade, alors nous disons génération, puis lacs, déclaration, lacs, non ? C' est la scène à un moment. Ceci est ajouté. Et cela va être à l'intérieur de nos fonctionnalités configurées mod, parce que c'est une fonctionnalité que nous voulons ajouter et ce sera le huileux. ce moment. Ce qui est important ici, c'est que, bien sûr, il serait probablement logique de faire aussi une autre classe appelée fonctionnalités de biome mode , puis que les méthodes statiques soient cool là-bas et y aient aussi. Cependant, en ce moment, je veux vous montrer comment faire vraiment le, le biome fonctionne et tout, disons refactoring, peut-être même certaines choses plus efficaces sont, ce n'est pas toujours le meilleur d'être préoccupé par faire tout si inefficace au début. Maintenant, ici, dans le constructeur de biome, nous avons aussi beaucoup de choses que nous pouvons faire. Donc, par exemple, nous avons ici la catégorie biome que nous pouvons choisir, n'est-ce pas ? Donc nous pouvons dire, oh, quelles catégories il. Et donc disons par exemple, en fait, vous savez quoi, gardons la catégorie chez Swan. C'est très bien. Et puis nous avons le type de précipitation. Donc, s'il pleut, si son nez ou s'il n'y a rien là-bas, sorte que vous pouvez changer ici, alors vous pouvez changer la chute. Maintenant, la plupart d'entre eux ne sont pas réellement commentés, donc vous devez jouer un peu avec cela, mais ce sont beaucoup de choses que vous pouvez changer ici, ce qui est assez cool. Et oui, maintenant on a fait beaucoup de souffrance. Et c'est une autre classe que nous devons faire. Et puis nous pouvons réellement voir ce biome en action à l'intérieur de notre jeu. Et c'est bien sûr la génération parce qu'en ce moment elle ne générerait même pas. Maintenant, nous créons le biome MOD. Generation, je t'ai dit que c'était un peu plus que, disons que nous sommes habitués. Et dans cette classe va effectivement obtenir l'abonné mobile à nouveau. Et nous allons avoir à des événements pour s'abonner à des événements. Le premier va être un vide statique public, registre, registre, pas d'ego avec un événement de registre final, lire, histoire, événement, registre, un pèlerin de surface. Donc, cela va enregistrer un constructeur de surface appelé événement. C'est très bien. Et puis on va dire, je vais te dire que je suis sur l'accompagner encore une fois. C' est donc juste pour que nous ayons une priorité faible, de sorte que l'ordre dans lequel nous faisons ces mesures soit bien propice à ce que nous voulons réellement. Et puis nous avons un autre événement d'abonnement, qui va être une ville. Nous mettrons en place Biome final FML, événement de configuration commun, événement. Et ici, nous allons faire la file d'attente du travail. Donc, cela est simplement fait de sorte qu'il se déclenche une fois de plus d'une manière qui fonctionne. Que diriez-vous ? Alors qu'il se déclenche dans le bon ordre, disons événement d'abonnement, n'est-ce pas ? Et maintenant, nous avons besoin de méthodes plus privées qui sont une sorte de méthodes d'aide. Et ce sera les biomes du registre. Donc, cela va enregistrer le biome avec un emplacement de ressource, biome RL avec un état de bloc. Ce sont donc trois blocs que nous spécifions réellement. Donc ce sont les blocs qui vont être utilisés à l'intérieur de ce myo. Donc, nous avons une loi supérieure. Nous allons avoir un bloc de remplissage et nous allons avoir un bloc sous-marin. C' est l'état de bloc sous l'eau. L' ego et la façon dont cela fonctionne, statut de chance déjà important, c'est génial. Que tu y vas. Et la façon dont cela fonctionne, c'est que nous allons aller dans le registre des points de registre. Encore une fois le mot registre. Et cela va être configuré surface un constructeur. Ensuite, nous allons lui passer l'emplacement des ressources que nous allons lui passer, les constructeurs de surface mod dot lobbing, par défaut, point get. Et puis nous allons appeler cette méthode ici Funk vingt-quatre, vingt neuf, vingt neuf. Et à l'intérieur d'ici, nous faisons un nouveau conflit de constructeur de surface. Donc le conflit brutal d'argent Xenu, en ce moment, ça va être le bloc supérieur, le bloc inférieur, et le bloc sous-marin. Et puis on peut aussi, oups, ce n'est pas ce que je voulais faire. Et puis nous pouvons aussi obtenir ce fait apparaître des lois terminées. agit de la méthode de registre biome nécessaire pour enregistrer le biome. Et puis il y a une autre méthode privée et c'est la méthode appelée add biome. Et cela ajoute fondamentalement le biome au dictionnaire et aux gestionnaires. Donc, nous avons le biome, nous avons le gestionnaire de biome, points pionniers, MY mis en œuvre premier gestionnaire bio. D' accord. Mon OEM. Directeur. Celle-ci par type M. Non pas que ce n'est pas le bon, je suppose. Type de biome. Dactylographions. Ok, alors ce n'est pas le bon responsable bio. On veut vraiment ce responsable bio alors. Oui, c'est la bonne. Nous voulons le responsable de la bio. Où est-il parti ? Là, il est de Minecraft, quel type de gestionnaire de spam commun. Nous avons un poids intégral. Nous avons le type de point de dictionnaire biome, puis nous faisons des types dot-dot pour que nous puissions, donc tout ce qui est ajouté par la suite est simplement. Et donc chaque paramètre qui est ajouté après le poids est alors simplement pris comme un type avec la clé de Registre, biome. Donc clé, donc c'est très similaire à ce que nous avons fait dans la génération du mot, cette génération d'arbres déjà. Juste ça. Maintenant, au lieu de simplement obtenir les clés, sont en fait en créer une nouvelle, qui enregistre les clés dot biomes. Donc, c'est tout simplement pour que nous puissions créer un biome puis des objets. Nous allons effectivement faire cela correctement exiger pas null. Donc, cela s'assure juste qu'il n'y a pas d'exception levée, quelque chose comme ça, qui enregistre à biomes point obtenir de la chaleur par L. Donc c'est le biome qui le passe. Et puis c'est génial. Et puis ici, nous avons seulement besoin d'ajouter un dictionnaire au type avec la clé et les types. Alors que maintenant les types sont associés au biome que nous avons choisi. Et puis le responsable de la bio. Espérons que le bon a ajouté biome que nous ajoutons le type de biome , puis une nouvelle entrée biome avec la clé et le salaire. Droit ? Et ce sont les méthodes dont nous avions besoin. Maintenant à l'intérieur du travail Enqueue, c'est là que nous ajoutons le biome et qui va être dans mod biomes, dot oil, biome dot get. Donc ici, nous devons en fait spécifier le biome que nous voulons. Ensuite, nous avons besoin du type biome pour que nous puissions avoir la volonté chaude déserte. Il y a le CI hérité. On va faire un biome chaud. Choisissons le poids d'un 100, puis ajoutons le type. Alors tapez, Hot, Mort, mort et sec. Maintenant, ce que nous pouvons aussi faire, au lieu d'avoir toujours à taper cela, nous pouvons réellement importer ceci comme statique, nous pouvons réellement dire import statique, que Minecraft ou pas de microphone, répertoire biome commun. Et puis, et puis il suffit de taper et puis une étoile, ils vont stocker. Et ce qu'on peut faire ici, c'est écrire chaud, mort et sec comme ça. C' est un peu plus facile. Au lieu de notre méthode Register, nous voulons appeler le registre biome. Et là, nous devons dire une fois une surface d'huile de constructeur de surface point-point getLocation parce qu'il y a un emplacement de ressource, n'est-ce pas ? Et ce qu'on va faire, c'est qu'on va faire partie du sable de l'âme arrêté. Juste pour des raisons d'argumentation en ce moment, nous allons juste créer quelque chose de bloqué. Arrêtez le sable, disons. Et bloque également les points. C' est le sous-marin aussi du sable. Trouvons des sandales. Obtenir égaux dire très important, c'est l'état par défaut parce que nous voulons les états Brock et pas les blocs réels là-bas, non ? Et maintenant, si je ne me trompe pas, tout devrait être fait. Maintenant, il y a bien sûr beaucoup de pièces mobiles. Donc ce qu'on va faire, c'est qu'on va faire ça, l' essayer, et qu'on va voir ce qui se passe. Je suis en fait assez confiant que cela va marcher. Mais quand même, il pourrait y avoir toujours, vous savez, une petite chose. Parce que comme je l'ai déjà dit, c'est en fait un sujet beaucoup plus avancé que, je pense presque tout ce que nous avons couvert avant. Je pense que les arbres étaient en quelque sorte le long de la ligne, mais oui. Donc, on a quelque chose ici. C' est un bon début. Voyons maintenant si le jeu commence aussi bien. On dirait ça. Eh bien, c'est un bon premier départ, et créons ensuite un nouveau monde. Alors appelons ça 1-2-3 créatif et juste, oui, eh bien, voyons si ça crée aussi un nouveau monde. Et bien sûr serait aussi fascinant et aussi grand. Tout ce qui fonctionne sur le premier essai est toujours un bon signe. D' accord ? Ok, donc on a commencé et on y est. Ils peuvent déjà voir ce que nous avons créé. Donc c'est le, quand on va par ici, c'est des avions à micro-ondes, comme vous pouvez le voir ici, taux rivière micro-ondes. Ensuite, on va ici et c'est le biome de l'huile. On y va. Et si nous passons par cela, j'espère que l'air est, nous avons déjà ces seront ces lacs pétroliers qui génèrent à l'intérieur de la bio, par exemple. Droit ? Donc, c'est une idée de base de la façon de faire une bio. Maintenant, sortons et créons réellement une deuxième fonctionnalité juste à des fins de démonstration à cause des fonctionnalités. Donc, ce serait à côté de, nous allons juste fermer tout en ce moment sont infinies ici. Ce serait à l'intérieur de la fonctionnalité MOD configure fonctionnalités. Parce que les fonctionnalités vont être la seule chose qui va être vraiment puissante. Comme je l'ai dit, vous pouvez aller dans les fonctionnalités, non ? Donc micro fonctionnalités ici et en fait voir beaucoup de fonctionnalités qui sont présentes. Et vous pouvez les ajouter au plus biome alors, n'est-ce pas ? Donc, au lieu de l'année, par exemple, il y a des choses que nous ne voulons peut-être pas vraiment, non ? Donc peut-être qu'on ne veut pas, on ne veut pas de modes passifs. Peut-être qu'on dit, en fait, je ne veux pas de surmenage ou d'être là, ou je ne veux pas de la génération de champignons, je ne veux pas de marais. Vous pouvez obtenir tout cela d'ici et utiliser uniquement vos propres fonctionnalités. Cela fonctionne bien sûr. Mais oui, c'est certainement quelque chose avec lequel tu dois jouer un peu. Et il y a tellement, disons, couches que vous pouvez découvrir avec cela et tant de choses que vous pouvez faire avec ça que c'est, je veux dire, c'est presque, c'est presque inépuisable. Maintenant, créons un nouveau, un nouveau. La chose à laquelle je viens de penser que ça va être comme une boîte de cuivre. Donc ça va être juste quelques blocs, comme le trône quelque part sur le biome. Et cela va être un conflit d'entités de cluster de blocs. Maintenant, la façon dont j'ai compris ça, je vais te le montrer dans un instant. Mais ça va être un conflit de propagation du cuivre. Conflit. Voilà, tu y vas. Ce sera un nouveau conflit de cluster de blocs. Chaque conflit de Builder, nouveau bloc simple StateProvider. Et là, nous allions dire mon bloc Sadat, bloc de cuivre, point, point, obtenir l'état par défaut. Et puis ici, nous avons un nouveau placeur de bloc simple. Et ça va être quelque chose que tu n'es pas. Celle-là. Rise, oui, essaie 25 et puis construire. Magnifique. Et puis ici, nous avons réellement la fonctionnalité configurée parce que nous avons besoin d'un conflit ou que ce sera un Fisher configure. Encore une fois, point d'interrogation, point d'interrogation. Ça va être le bloc de cuivre. Et c'est une fois de plus le registre point de registre avec un registre mondial configuré. Celui-ci est cool, étalé en cuivre. Et puis nous allons avoir un point de fonctionnalité, patch aléatoire. Il y a donc beaucoup de fonctionnalités ici aussi. Donc, dans la fonctionnalité, il existe différents types de fonctionnalité configurée. Les options que nous avons, nous avons la même chose que nous avons vu avec le placement des arbres, qui aussi vous avez à jouer avec un peu. Et puis à l'intérieur d'ici, vous voulez réellement la fonctionnalité de cluster de blocs. C' est pourquoi le conflit, c'est pourquoi j'ai déjà fait le conflit. Et puis le placement en largeur, on va juste sauver le placement. Possibilité de point de placement avec une nouvelle configuration de chance de disons 200. Et nous allons aussi obtenir cela ici juste pour un peu meilleure lisibilité. Et n'oubliez pas le point-virgule en ce moment, ce n'est bien sûr pas encore là. On doit y aller. Nous pouvons simplement copier ceci, disons et ensuite dire point de déclaration. Disons que ce sont des structures de surface. Il pourrait être entretenu, précipité, ça pourrait être autre chose. Et puis dire la propagation du bloc de cuivre et est donc déjà tout ce que vous devez ajouter. Disons une autre fonctionnalité de configuration. La façon dont j'ai compris cela est fondamentalement si à l'intérieur de la fonctionnalité et bien sûr avoir les différents types de choses, comment ils apparaissent. Donc, par exemple, vous savez, vous savez comment les blocs de pierre luisante apparaissent à l'intérieur, à l'intérieur d'une extrémité plutôt que vers le bas. Et tu vois quoi d'autre ? Il y a certains, par exemple, le bambou Wow, qui engendre la surface de la poitrine des os pire. Donc, il y a beaucoup de fonctionnalités que la façon dont ils apparaissent. Et dans le placement, vous avez quelque chose de similaire à cela aussi. Donc, là, vous pouvez jouer autour de la façon dont le, comment vous avez été configuré fonctionnalités apparaissent. C' est vraiment beaucoup d'essais et d'erreurs ici. Et en essayant. Encore une fois, conseille de regarder des exemples dans, dans GitHub, à droite, pour la façon dont d'autres personnes ont fait des choses similaires. Parce que ça va être, c'est juste une idée très intelligente de voir comment les autres l'ont fait. Et pour essayer de jouer un peu avec ça, disons, d'accord, comment ça marche ? Je ne suis pas sûr de comment ça marche. Oui. Et cela devrait alors que c'est une idée vraiment intelligente de jouer avec ça un peu. Et puis nous allons voir si en fait quand nous chargeons un nouveau monde. Donc, nous allons créer un nouveau monde. Est-ce que celle-là ? Pour l'instant ? Radiatif ? Oui. Et voyez quand le nouveau, quand les biomes fraye à nouveau, si oui ou non que réellement le cuivre se répand là existe. Il y aura une sorte de gentil. Ok, voyons voir. Oh, c'est là. Ok, il y a un biome et au fait, on peut aussi descendre ici et regarder la course. Tu vois en fait celle-là, tu es enfermé avec, désolé, ce n'est pas l'ion de l'entité. Et en fait, je voulais le générateur. Je viens de voir le genre de coordonnées et j'étais comme, oh, c'est là. Maintenant, c'est vraiment bien avant ça. Il y a actuellement un biome d'huile MCT à moins 28 et moins 272. Donc de cette façon, vous pouvez vraiment voir et dire, eh bien, c'est à peu près exactement où nous sommes. Et jetons, passons par là et voyons s'il y a des tartinades de cuivre. Y a-t-il, ils sont là est le premier. Donc, il y a en fait assez rare toutes les choses considérées. Et vous pouvez faire un encore plus rare ou pas, ou plus commun. Et c'est tout simplement la chose que j'ai trouvée en quelque sorte comme un, comme un autre exemple de la fonctionnalité configurée que vous pouvez ajouter. Comme je l'ai dit, ils le sont, il y a tellement de choses que vous pouvez faire avec ça. Et il y a tellement, eh bien, disons des boutons que vous pouvez tourner dans toutes sortes de directions qui sont que vous avez juste à passer par un peu. Essayez les fonctionnalités par défaut. Essayez vos propres fonctionnalités. Jouez avec tous les numéros avec lesquels vous pouvez jouer et juste, continuez à expérimenter. Mais généralement cela vous donne au moins une, une estimation approximative de la façon de créer un biome. Maintenant, nous allons aussi, juste pour résumer, passons par chacune des étapes que nous avons faites. Donc, l'idée du constructeur de surface de journalisation était juste que nous puissions réellement sortir et où le, où notre biome est réellement généré à. C' est l'idée de cette classe tout simplement pour que nous ayons un moyen de savoir. Ok, il y a le biome Allons juste là-bas. C' est beaucoup plus facile à la fois à des fins de débogage et, vous savez, probablement , vous savez, à l'avenir, si je publiais réellement ce mod, je mettrais probablement ceci au débogage ou peut-être même. Je veux en fait publier ceci, peut-être même désactiver la connexion ici, simplement parce que peut-être je ne veux pas que les gens regardent dans la console et disent, Oh, il y a le biome. Mais bien sûr, ça ne fait pas beaucoup de différence. Non, pas vraiment. Maintenant, Nous avions alors un constructeur de surface configuré. Maintenant, c'est le ceci est fondamentalement une clé pour cela pour la surface de l'huile. Nous avons donc un constructeur de surface configuré et ensuite nous avons notre constructeur de surface ici. 71. (Minecraft) Des événements du son et sons personnalisés: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons parler des événements sonores et comment faire nos propres sons personnalisés, non ? Donc, la première chose que nous devons aller dans le fichier d'enregistrement où nous avons tous nos registres différés et créer un nouveau registre différé. Cette fois pour le type d'événements sonores ou un événement plutôt. Et on va appeler ça des événements sonores. Et ce sera égal à un point de Registre différé créer des registres dot événements son, MC, Smart MOD ID, non ? Encore une fois, ne pas oublier de réellement enregistré ici avec l'événement était. Sinon, ça ne marchera pas. Et ensuite, on va avoir besoin d'un nouveau paquet. Et ça va être à l'intérieur des scores MC, un nouveau paquet, de vieux sons. Maintenant, on va l'appeler Sound singulier. Et nous allons créer une nouvelle classe qui s'appelle les événements sonores Ahmad, événements sonores, cet ego. Et cela, bien sûr, nous avons vu beaucoup de fois. Nous allons, tout d'abord créer une méthode publique de registre vide statique. Et cela va être appelé à l'intérieur de nos éditions de devise du registre ici n'a pas vraiment d'importance où il est. Oui, je pense ici que les événements sonores en mode fin DOT registre. Et puis nous pouvons créer notre objet de registre. Donc, cela va être un peu différent, mais pas tout à fait, pas, pas aussi différent que peut-être d'autres choses. Donc, tout d'abord, bien sûr, statique public, final, objet de registre de type, événement sonore. On va appeler ça les sons du test. Ou en fait, appelons-le, appelons-ça une petite explosion, parce que c'est ce que j'ai préparé. Et c'est bien sûr, égal à l'enregistrement des événements sonores point, DOT registre. Et maintenant ce que nous allons mettre, tout d' abord, bien sûr, la, appelons-ça encore une petite explosion. Et l'oreille d'autres fournisseurs est un peu différente de ce à quoi nous sommes habitués. Ce sera un nouvel événement sonore et cela doit être net Minecraft util, très important. Et pour ce faire, nous avons réellement besoin d'un nouvel emplacement de ressources. Donc c'est un peu différent de ce à quoi nous sommes habitués. Et cet emplacement de ressource, bien sûr, commence par l'ID MOD et se termine par le nom, qui va juste être une petite explosion à nouveau. Donc le nom ici et le nom ici devraient être le même. Vous pouvez faire une chaîne privée en théorie et le faire aussi. Tu sais, il y a un point à dire. Peut-être, vous pouvez aussi peut-être faire une méthode pour cela. Mais on va le faire comme ça. C' est très bien comme ça. Et pourtant c'est déjà comme cela que le son est réellement dans. Donc nous l'avons enregistré, c' est maintenant dans le jeu, cependant, nous n'avons pas de fichier à cet endroit. Donc c'est la prochaine chose que nous devons faire. Et pour cela, nous devons aller aux ressources, aux biens. Ou pire, ou votre ID et créer un nouveau répertoire appelé Sons, cette fois pluriel. Très important. Et là, nous devons mettre le dossier. Maintenant, j'ai fourni le petit point d'explosion OGG comme un fichier. On va simplement mettre ça là-dedans. Il doit s'agir d'un fichier OGG, sinon cela ne fonctionnera pas. Et nous avons aussi besoin, et c'est fondamentalement au niveau du cours MC ici, nous avons besoin d'un nouveau fichier JSON et ce sera des sons point JSON. Et je vais rapidement copier quelque chose. En fait, on n'a pas besoin d'une copie. En fait, ce n'est pas si compliqué. Nous démarrons juste le fichier JSON et ensuite nous avons le nom de notre clé. Donc, ce serait une petite explosion de soulignement, puis un deux-points, puis des crochets bouclés. Au lieu de cela, nous avons une catégorie. Pour nos besoins, nous utilisons des blocs. Je vais vous montrer une fois que nous aurons fini avec ce fichier JSON, je vais vous montrer quelles sont les catégories. Et on va avoir un sous-titre. C' est un son de test de points mc pores. Donc, ce serait quelque chose que tu mettrais dans le truc de la langue. Le sous-titre est ce qui est affiché si vous avez des sous-titres sur et ensuite affiché dans une discussion. Et puis les sons, c'est une liste. Extrêmement le mettre dans une chose et ce sera Mc contraction ou c'est en fait notre test de quelqu'un de façon. Ce serait en fait une petite explosion. Et à l'intérieur d'ici, nous avons aussi une petite explosion. Il est donc important que le nom ici et le nom ici soient bien sûr le même. Personnellement. Je veux dire, ça n'a pas besoin d'être pareil. Personnellement. Je pense que c'est le plus logique d'avoir la clé et le nom sonore. Et tous ont le même nom. Juste pour que vous ayez un peu de cohérence ici. Oui, et si vous voulez, par exemple, ajouter de nouveaux, nous en ajoutons un autre. Et puis, par exemple, vous savez, une grosse explosion, puis satellite, et ainsi de suite et ainsi de suite. Vous pouvez simplement copier celui-ci. Et oui, c'est déjà tout ce qu'il y a à faire. Maintenant, bien sûr, nous devons avoir cette explosion ou le son doit être entendu. Et ce qu'on va faire, on va créer un bloc de cuivre. Donc, l'idée est que disons par exemple, nous allons créer un nouveau bloc, une classe ici à l'intérieur de notre paquet bloc. On va appeler ça le cuivre-cuivre-cuivre-short ». Et cela va étendre le bloc. Donc, c'est quelque chose qui est, ce n'est pas le bon bloc. Encore une fois, il va être bloc Minecraft net. Ils y vont. Et puis passons juste au-dessus et créons le constructeur ici. Et puis dans nos blocs de modèles, au lieu de faire un nouveau bloc ici, nous allons faire un nouveau papier ou donc c'est fondamentalement la même chose que nous avons vu avec l'élément mod où nous avons fait la pomme d'entreprise. A, Eh bien, nous avons un cours supplémentaire ici. Et nous allons faire en sorte que lorsque le bloc sera détruit, alors un endroit sain. Donc, c'est une méthode que nous pouvons remplacer, qui est sur la destruction du joueur. Et à l'intérieur, on va jouer ce son. Donc, tout d'abord, ce que nous voulons vérifier, c'est si ce monde qui y pénètre est éloigné ou non. Cela vérifie simplement, hé, c'est un serveur ? Où n'est-il pas serveur ? Et nous voulons jouer ceci, dans ce cas, si ce n'est pas côté serveur, parce que nous voulons que seul le joueur qui a cassé le bloc entende réellement le son. Sinon, chaque, il pourrait être que chaque joueur à l'intérieur du serveur entendu, entend le son dans une certaine distance ou un rayon. Bien sûr, c'est quelque chose qui pourrait marcher. Mais ce n'est pas ce que nous faisons et je vais juste vous le montrer rapidement. Donc, le monde dans ce monde, dans ce cas, et là, nous avons une méthode sonore de jeu. Et nous, comme vous pouvez le voir, le joueur ici est nullable si nul le joueur et va simplement jouer à cette position. Et puis ça va jouer si le monde est un monde de serveurs, il va jouer pour tout le monde et un certain rayon. Si le joueur est en fait là, et alors il va jouer pour tout le monde sauf le Joueur. J' ai une excellente ressource à ce sujet. La documentation officielle pour le son est vraiment bonne. Donc, je vais, bien sûr, avoir cela comme ressource disponible. Mais cette pièce, on n'utilisera pas le monde ici. Nous allons en fait utiliser un point minecraft et GetInstance. Et puis on va chercher le joueur. Et on va jouer le son comme ça. Donc ça va être placé du son et ça va être le son dans. Nous avons donc besoin de l'événement semé qui va simplement être des événements sonores mod. Petite explosion, point, obtenez. Et puis nous avons besoin d'un volume qui va être un et le terrain va aussi être un. Et il va dire, ooh, vérifions si c'est nul ou non. Nous pouvons le faire, nous n'en avons pas forcément besoin. Donc, vous pouvez, bien sûr, pour la surface, ce n'est pas nécessairement tout ce qui est important. Oui, gardons ça comme ça pour l'instant. Et en théorie, si tout a fonctionné correctement et que je n'ai rien oublié et je ne crois pas que je l'ai fait. Nous devrions entendre une petite explosion quand nous détruisons le cuivre ou la serrure. Oui. Donc, je suis très intéressé par si cela a déjà fonctionné ou non, mais je pense que cela devrait. Je crois que tout est là-dedans. Donc ce n'est pas si compliqué. Donc, dans l'ensemble, je pense que l'ajout de nouveaux est, je veux dire, je dirais presque plus facile que d'ajouter de nouveaux éléments ou blocs. Comme juste aller dans ce monde ici. Et voyons ce qui va se passer. J' espère que ce n'est pas trop fort. Sinon, si c'est trop fort pour moi, je vais juste l'éteindre un peu pour toi. Allons chercher une trémie ou un bloc, non ? Donc, ils s'en éloignent. La plupart des buffles. Et voyons voir. Donc, casse-le et voyons ce qui se passe. Eh bien, je l'ai certainement entendu et ce n'est certainement pas trop fort. C' est en fait un bon volume. Droit ? Et c'est ainsi que c'est fondamentalement tout ce qu'il y a à faire. Je n'ai même pas répondu. Je vais bien. Et voilà. Donc oui, c'est tout ce qu'il y a. Donc, c'est à quel point il peut être facile d'ajouter de nouveaux sons à Minecraft et aussi de les jouer essentiellement quand quelque chose, des habitudes particulières. Donc oui, c'était fondamentalement tout. J' espère que c'était instructif pour vous. S' il y a des questions, bien sûr, n'hésitez pas à poser. Je voudrais bien sûr, toujours apprécier un avis ou une note. Et, euh, ouais. 72. (Minecraft) Créer des Enchantments personnalisées: Bon, bienvenue au Minecraft. Pire. Et dans cette conférence, nous allons chercher à créer notre propre enchantement. Donc c'était en fait un, quelque chose qu'un étudiant a demandé et j'ai trouvé que c'était un sujet intéressant. Et bien, c'est pour ça que nous faisons cette conférence maintenant. Donc, ce sera un enchantement très spécifique dans ce cas. Donc, nous allons également créer un nouveau, disons, groupe d'éléments pour cela. Mais la façon générale nous faisons cette mesure est en fait comment vous feriez n'importe quel IN aiguisé. Donc, il peut, Vous devriez être en mesure de simplement l' abstraire ou disons généraliser à des environnements normaux si vous voulez. Donc, la première chose que nous allons créer ici est un nouveau paquet comme si souvent. Et on va appeler ça Incheon menthe, pour s'assurer qu'on la lise correctement. Ce n'est pas le mot le plus facile, non ? Et puis nous voulons avoir deux nouvelles classes. L' un d'eux est l'enchantement lui-même. Cela va égaler l'enchantement émoussé. Et l'idée est simplement que, Eh bien, nous avons un, nous aurons un club bientôt, non ? Comme une arme contondante. Et au lieu d'avoir de la netteté dessus, nous voulons de la netteté dessus. C' est, c'est fondamentalement le vieux tout ce que vous devez savoir comme la réalisation de cela. Et puis nous voulons un autre cours qui sera des enchantements de Mott. Et c'est bien sûr aussi dans le paquet enchantement, non ? Donc, tout d'abord, l'enchantement émoussé doit être étendu. Et nous devons étendre cela avec enchantement. Il y a bien sûr, ça a du sens car c'est un enchantement. Et ce qu'on va faire, c'est lire le, lire le constructeur. Et ce qu'on va faire, c'est qu'on va cliquer sur le milieu de la souris sur l'enchantement. Ensuite, on va se faire enchanter, et c'est le cours de base de Charlton. Et je vous ai déjà montré cette astuce, mais encore une fois, si vous tenez Control H, nous pouvons voir tous les Champions présents dans le jeu, y compris le nôtre, mais ce sont tous ceux qui sont ajoutés par minecraft. Et nous cherchons le c'est l'enchantement endommagé. Parce que ce qu'on va faire, c'est qu'on va être vraiment sournois. Nous allons juste copier tout dans cet enchantement de dégâts. Et nous allons le coller ici parce que nous devons nous assurer que nous ne le faisons pas et nous n'avons pas deux constructeurs ici. Et on va prendre les membres et les mettre en place. Et ce type devra être ajouté au constructeur. Et il y a encore une chose que nous devons faire. En fait, nous avons besoin de mélanger un peu autour des périmètres dans le constructeur. Donc, le type endommagé devrait être après le type d'enchantement. Et puis les fentes devraient en fait être au lieu d'un pur, un pur. Nous disons tableau. Nous faisons en fait trois points de sorte que tout ce qui est donné après le type de dégâts compterait comme une fente. Alors la grande chose est que nous ne pouvons aussi donner qu'une seule fente dans ce genre d'idée. Et maintenant, le reste de tout ça. Bien sûr, peut être changé. Par exemple, niveau Mx, vous savez, c'est fondamentalement comme la netteté. Vous avez la chartreuse 12345. On pourrait en faire 10 ou 11. Et ces instabilités, comme vous pouvez le voir, il y a ces fonctions bien, plutôt petites. Mathématique, mathématique. Que diriez-vous des calculs, c'est le mot, non ? Donc, les calculs, vous pouvez aussi dire calculer les blessures par créature. Il y a donc quelques choses que vous pouvez faire. Et nous avons aussi cela peut s'appliquer, et cela peut s'appliquer à un élément de hache ou autre chose. Maintenant, nous allons regarder ça assez tôt. Et nous avons aussi un peu de jeu ensemble. Cela revient simplement. Donc, il est donné un enchantement et puis dit, eh bien peut désenchantement. Et donc le mélange et Troutman et puis peu de temps donné ici être appliqué ensemble. C' est essentiellement l'idée de cette méthode. Et puis ici, on peut juste nettoyer un peu ça et continuer. Entité endommagée a simplement un, comme vous pouvez le voir, froid chaque fois que je suis des dégâts opus avec un objet qui a ceci en commun dessus. Et puis nous pourrions, en théorie aussi faire quelque chose d'autre ici. Il y a donc beaucoup de choses que nous pouvons faire avec cet instrument. Nous n'avons pas besoin de ces noms de dégâts parce que ce n'est pas réellement utilisé. Et oui, donc c'est la façon dont nous pouvons je le fais en passant, j'encourage aussi à juste parfois quand vous ne savez pas où aller, il suffit de copier un cours de Minecraft et de le changer un peu parce que tant que ça fonctionne, c'est bon. Oui. Donc, c'est bien et le Chatman de Londres est presque complètement terminé. Ce dont nous avons besoin maintenant, c'est que nous devons maintenant ajouter cela à nos chamans modernes. Mais d'abord, nous devons créer le nouvel élément. Et le nouvel objet que nous allons entrer dans l'article et ensuite nous allons créer un nouveau paquet là-dedans. On va appeler cette arme. Maintenant, c'est vraiment un choix stylistique. Vous n'avez pas vraiment à faire ça, mais je pense personnellement que c'est logique et on va appeler ça l'objet contondant. Maintenant, l'élément de mélange va être très similaire à l'élément de l'épée. Et nous pouvons juste regarder cela en appuyant sur Shift, Shift control f. Ensuite, nous pouvons réellement chercher partout. Et puis si nous allons à la portée et ensuite, par exemple, chercher un article de tri, alors nous allons, eh bien, tout d' abord, nos affaires, mais à un moment donné, nous allons aussi trouver l'élément de l'épée. Eh bien, Par exemple ici, donc nous pouvons juste cliquer sur le milieu de la souris et ensuite nous sommes à trier l'élément. Donc, tant que nous arrivons à la classe d'élément de tri, alors tout va bien. Et comme vous pouvez le voir, cela étend l'élément hiérarchisé et met en œuvre la IV punissable. Maintenant, je disparais problème bien sûr est juste que. Quand tu le balançais tout d'un coup, c'est parti. C' est que je disparaît bulle et l'élément hiérarchisé, nous pouvons regarder dans nos éléments de mod et réfléchir, c'est il y a assez longtemps, mais nous avons réellement créé un niveau d'élément fictif. Eh bien, c'était du cuivre. Nous avons un matériel d'armure et nous avions aussi ce niveau d'élément de mode. Nous l'avons, nous en avions différents. Donc, nous avons créé du cuivre, à droite, avec les niveaux de récolte et les utilisations de Max et tout ça. Et nous pouvons simplement créer un nouveau type d'article, non ? Donc, au lieu d'une sorte, on va faire un objet contondant. Et nous allons étendre à la fois l'élément hiérarchisé et également mettre en œuvre les problèmes i disparaissent. Nous allons donc étendre I Tier I, votre élément hiérarchisé. Oh, ce n'est pas de la glace. Juste un élément hiérarchisé. Eh bien, voilà. Bien sûr. Je le prolonge. Ils vont des instruments. J' ai puni un aller. Ensuite, nous passons dessus et nous allons créer un constructeur correspondant super. Et cela devrait, eh bien, nous allons changer cela de toute façon, parce qu'une fois de plus, nous allons juste copier l'élément de tri entier plus. Et ensuite, on va tout remplacer. Nous allons juste changer ceci pour être un article groupé. Et on va sauver ça et on ne devrait pas avoir de flèches. Il y a cependant quelques choses que nous devons examiner. Et donc, par exemple, ici, vous savez, obtenir la vitesse de destruction. Donc, si nous ne voulons pas que les toiles d'araignée soient rapides pour ce type d'article, nous pourrions changer cela. Et qu'y a-t-il d'autre ? Il y a des constructeurs, dégâts d' attaque et des modificateurs de manuels techniques qui sont de la réalité ou nous pourrions simplement le laisser comme ça parce qu'à la fin de la journée c'est tout à fait bien. Et je crois que, oui, en fait, c'est tout ce qu'il faut faire. Nous avons maintenant seulement besoin de créer un nouvel article dans notre classe Mod Items. Et donc on va juste mettre ça dedans. Allons-y, disons entre l'épée et la pioche, on va copier l'épée pour l'instant. On va appeler ça le club de cuivre. J' ai, en passant, créé une nouvelle, ce que nous disons, une nouvelle texture pour elle. Et je dois être honnête, toutes les textures que j'ai créées jusqu'à présent, j'ai trouvé que c'était vraiment bon. J' ai trouvé ça vraiment sympa. D' accord ? Bien sûr, cuivre Club n'a pas encore été créé en tant que, en tant que classe. Mais cela va être presque comme les autres classes d'articles vont juste augmenter le coût. Lub en cuivre. Vous pourriez bien sûr aussi en faire un nouvel article plombé qui fonctionnerait également. Mais je pense que dans ce cas, il est logique de le rendre, disons explicite. On va juste correspondre à ça. Et c'est tout ce qu'il nous faut faire. Sauvegardez ça. Et on y va. Et tout d'un coup ça marche. Et c'est donc entre là et là. Et maintenant, nous avons simplement besoin de retourner à l'endroit où il se fondre, évité. Et ici, nous avons eu le premier peut postuler ensemble. Donc, c'est bien sûr, une, encore une fois, un choix que vous devez faire. D' accord ? Qu' est-ce qui peut arriver ? Donc, en théorie, si vous avez un enchantement de netteté, vous ne pouvez pas mettre une autre brièveté et Chapman dessus. C' est essentiellement ce que cela dit parce qu'auparavant c'était un enchantement endommagé. Et on peut dire, eh bien, je veux dire, nous ne voulons pas vraiment avoir ça là-dedans aussi. Donc, ce qu'on peut faire c'est, eh bien, tu sais, on ne veut pas que ça soit appliqué avec un enchantement endommagé et on ne veut pas ça. Donc, si un autre enchantement est mis là, nous ne voulons pas que cela soit enchanté par grumeaux. Article non planifié, c'est émoussé et chapman. droite. Donc si c'est un dommage au chocolat ou un enchantement émoussé, alors on ne peut pas l'appliquer avec une autre blonde et Shannon. C' est essentiellement l'idée ici. Et ici, sur la main appliquer, nous allons mettre dans l'article de la faute maintenant, notre propre créé à l'article hiérarchisé. droite. Et je crois que c'est tout au long de l'année que nous devions changer. Bien sûr, encore une fois, si vous voulez avoir plus de niveaux ou moins, maintenant vous voulez aller dire faire dix ou quelque chose comme ça. Et bien sûr n'hésitez pas à le faire. Mais on va rester avec cinq en ce moment. Et maintenant, nous arrivons enfin à la classe des enchantements mode. Et avant de pouvoir le faire, bien sûr, nous devons aller à notre inscription et créer notre bon vieil ami un nouveau registre différé. Comme sans un registre différent, ce ne serait pas une bonne vidéo. J' ai l'impression que, tu sais, c'est une bonne vidéo quand on a créé les quatre registres, cette fois de boucles serrées d'enchantement type, bien sûr, en chant Mint, voilà. On va tirer cet enchantement avec un S à la fin. Et puis on va faire un autre point de registre V8. Ou il enregistre qui enchantent. Mc, mod de force, ID de mod. De bons vieux favoris. Et nous allons juste ajouter ceci en bas dans le registre DOT de Chopin avec même plus le taux. Et maintenant, nous pouvons créer notre objet de registre. Donc, nous allons avoir un public statique, objets de registre finaux de type enchantement et minutes. Et ça va être appelé Nece forfaitaire. Ça va être égal aux points d'inscription dans le registre de Chopin. Et on va lui donner le nom de « brutalité ». Bien sûr. Tu es plutôt mélangé aujourd'hui. Dans un nouvel enchantement émoussé. N' est-ce pas génial ? Et puis nous devons spécifier quelques choses. Donc, l'une des choses est la rareté. Rendons les choses communes. Donc, c'est juste à combien de fois il apparaîtrait. Sur le côté de la table. Nous allons avoir des points aiguisés modernes, désolé, c'est o, ça n'existe pas encore. Ok, on va juste l'ignorer maintenant. Ensuite, nous avons le type endommagé, et puis nous avons fente d'équipement E. Et ça va être le chapeau principal. Maintenant, comme vous pouvez le voir, nous avons laissé une de ces choses ouverte ici. Et ce serait le type enchantement parce que nous allons aussi créer un Sharman à taper ici. Et il va y avoir un type d'enchantement final statique privé, déjeuner, type NAS. Maintenant, l'idée du type, et nous allons rapidement il a également entré pour importer le type d'enchantement. Le type intermédiaire ne suffit pas. Et ça dit essentiellement, alors regardons, par exemple, le considérant qu'il n'y a pas d'arme de dégâts, n'est-ce pas ? Retournez vrai si cela peut être passé, désenchantement ne peut pas être incroyable. Si l'objet donné, cet enchantement peut-il être à Charlotte sur cet objet ? Et l'idée est que, bien, une arme, on peut être chargé à un objet épée et une excavatrice peut être l'outil, etc. Maintenant. Et c'est essentiellement ce que nous faisons avec son type d'émoussement. Nous disons juste le type d'enchantement, la création de points points-points. Donc on en crée un nouveau. Maintenant le nom ici, je ne suis pas sûr à 100% si oui ou non nous devons fournir le corps des MC. Étaient le, disons la maladie ici avant. Ou si on peut juste le refroidir, émousser. Je n'en suis pas sûr à 100%. Cela a fonctionné dans les deux sens, mais je pense personnellement que cela a plus de sens parce que sinon dans le type Sharma n'a aucune idée d'où cela vient. Et puis nous devons fournir un, c'est un prédicat, Oui, un article. Faisons l'objet et ensuite l'élément, instance de l'élément contondant. Donc, l'idée ici est que la méthode create prend un nom, puis un prédicat est délégué, est fondamentalement exactement cet élément de tir de canon ici. Et c'est ce que nous l'avons lu ici. Et ce qu'on peut faire, c'est en faire plus dans les mois de Sean. Type de boiterie. Maintenant, il est très important que vous écriviez le nom de la classe ici parce que si vous ne faites type d' émoussage et que vous obtenez la référence avancée illégale obtenir la flèche. Et ce n'est pas ce que nous voulons. Nous voulons nous assurer que vous avez le nom d'une classe en face d'elle comme un appel statique. Ensuite, nous bien sûr, ajoutons également notre favori statique public, vide, registre, registre, registre un ego. Et c'est alors tout à l'intérieur de notre MC. Pire mod, les enchantements mod ne s'enregistrent pas. Droit ? Et c'est, je sais que ça a l'air fou, mais c'est tout. Je trouve que c'est assez simple. Tout considéré, ou le fait que nous venons créer un nouvel enchantement avec un nouveau type d'objet. Disons. Bien sûr, ce dont nous avons également besoin, ce sont les différents fichiers. Donc on va juste pour l'instant, on va juste obtenir le lang En fait, je vais rapidement copier ça parce que c'est quelque chose qui est, donc pour le nom de l'enchantement, nous avons un point d'enchantement mod ID, donc les cœurs MC et ensuite le nom que nous avons donné, l'enchantement ici. Alors celle-là. Et puis ça va être boiterie. Et pour le club, que j'ai créé est juste élément dans SQL, il y a club de cuivre. Et bien sûr, nous avons également besoin du modèle d'article pour cela. On va juste copier ça. Oui, s'il vous plaît, écrivez, ne devrait pas être quelque chose de fou. L' article est intéressant et maintenant vous allez voir ma création absolument incroyable du club de cuivre. Et je dois être honnête avec toi, j'aime vraiment ça. Oh, nous voyons permettre ou devrions-nous le regarder dans le jeu ? On va le regarder dans le jeu. J' aime vraiment ça, mais c'est d'abord, je pense que c'est l'une de mes meilleures créations, ou disons mes meilleures créations. Et je crois que c'est tout ce que nous devons faire pour que tout soit en jeu. Laisse-moi juste passer rapidement par non, il devrait être tout. Alors commençons et voyons ce qui se passe. Et bien sûr, encore une fois, ce que je voulais mentionner, c'est que la chose avec l'objet contondant n'est pas nécessairement nécessaire. Parce que bien sûr, le ceci est juste un, disons un exemple premier ou un pas un exemple premier. Plutôt un exemple précis qu'un étudiant avait. Vous vouliez qu'ils voulaient un objet précis, un objet contondant. Je veux avoir un ballon. Je ne veux pas, je veux qu'il soit responsable avec Londres, avec brièveté mais plutôt franchement. Et j'étais genre, ok, ça sonne vraiment une idée intéressante. Et c'est pourquoi nous l'avons fait. Donc, nous allons simplement créer un nouveau monde avec le mode créatif. Et puis voyez ce qu'on peut voir. Très bien, allons juste mettre en place ça rapidement. Donc tout d'abord, le club regarde ça. N' est-ce pas beau ? Ce club n'est pas la plus belle chose que tu aies jamais vue ? Bien que peut-être pas, mais c'est quand même, j'aime ça. Mais je l'aime bien. Prenons un enjambement, un MOOC. Allons chercher des bouteilles de enchanteur. Et maintenant, vous pouvez voir les livres enchantés ici. Et si nous descendons, nous pouvons réellement voir la fluntness 12345 car ils sont automatiquement ajoutés. Et si nous avions maintenant augmenté le niveau, cela augmenterait également le nombre de livres que nous avons. Prenons juste l'émoussement S1 et S2. Et prenons aussi l'OSU. Nolan. Je voulais de la netteté, non ? C' est juste prendre NO2 Shortlist, trois livres. Et aussi, prenons une épée. Ça va au tri normal. Et avons-nous besoin de quelque chose d'autre ? Peut-être une bibliothèque, Omar mime. Vous avez aussi besoin d'un animal. Beaucoup de choses dont on va avoir besoin. Voilà, tu y vas. Mettons-le en place rapidement. Montre-toi que ça marche vraiment. Et puis nous pouvons passer en mode survie était de quelques niveaux. Donc d'abord, si on met ça dedans. Donc, vous pouvez obtenir un freinage, comme vous pouvez le voir. Parce que c'est, cela fonctionne sur la rupture et la rupture. force serait un peu sympa si nous avons aussi un treillis a. Si vous êtes en mode créatif, alors il y a un peu de drôle. Cela pourrait être, pourrait ne pas être bon parce que E et briser non écrit et écrit. Et voyons voir. Donc, si nous entrons cependant ici, pour que nous puissions enchanter cela avec émoussement, comme vous pouvez le voir sous l'épée, nous ne pouvons pas n-canal de l'émoussement. Nous pouvons le faire avec netteté. Ça marche. Et la netteté sur celui-ci ne fonctionne pas. Donc c'est un bon test pour, tout d' abord, que cela, que cela fonctionne. Et si nous nous donnons quelques livres, peut-être que nous pouvons, eh bien, nous pouvons le faire. Et puis voyons, la planéité, c'était la brutalité. C'est plutôt sympa. Maintenant, la grande question est, peut-on en avoir l'autre ? C' est maintenant que nous avons enfin un peu d'émoussement ici. On y va. Une boiterie, non ? Et c'est déjà tout ce que nous avons à faire pour que cela soit spécifique à quelque chose, quelque chose comme ça parce que c'est comme notre propre article. Et si nous regardons cela, à droite, un normal a attaqué l'image trois, cela a maintenant attaqué les dommages ou parce qu'il a la cécité. Droit ? N' est-ce pas génial ? Oui. Et c'était tout pour ajouter un, un enchantement. Et aussi, disons que simultanément sont UNE classe d'article, notre propre marque unique d'article, disons. Et oui, c'était en gros tout. S' il y a des questions, bien sûr, n'hésitez pas à poser. Et oui. 73. (Minecraft) des générateurs de données pour des objets et des blocs: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons y jeter un oeil, les générateurs de données. Maintenant, les générateurs de données sont fondamentalement un moyen facile de générer l'intégralité de tous nos fichiers adjacents que nous avons fait manuellement tout ce temps. Et c'est essentiellement un moyen automatique de les générer. Et il rend la vie sur, je dirais environ un 120% plus facile. Surtout si vous avez beaucoup de blocs, beaucoup d'articles. Il est incroyablement facile de tout générer. Et donc la première chose que nous allons faire ici, c'est que nous allons vraiment renommer l'onglet Cours deux noyaux, tabou, petit t. Et puis juste pour nous assurer qu'au lieu de notre dossier linguistique, nous allons aussi changer cela. Donc, au lieu d'actifs, MC noyaux, Lang, puis à l'intérieur de EN soulignent nous fonctionne. On va changer ça en cours, taper avec un petit t. Parce que sinon on va avoir une erreur dans les conférences à venir. Et ce n'est bien sûr pas ce que nous voulons. Ce que nous voulons cependant, c'est, bien fondamentalement tout comprendre. En fait, nous n'aurions même pas besoin de changer ça. Parce que ce qu'on va faire maintenant c'est qu'on va juste diriger, on va juste tout supprimer. Bloch déclare, Lang, mannequins. Tous les trois. Supprimer, oui, loin de moi. Mc cours butin tables, recettes, tout cela entièrement. Sors d'ici. Je ne veux pas de toi ou je veux te voir. Donc maintenant nous n'avons pas de textures, nous n'avons rien, nous n'avons rien quand il s'agit de nos blocs. Et nous devons comprendre comment nous pouvons fondamentalement restaurer ça. Maintenant, en passant, il y a quelques choses où cela, bien sûr, tout d'abord, ne le supprime pas simplement. C'est le plus pliant. Ne le supprimez pas simplement. En fait, c'est sûr de soutenir ça parce que tu en as fait ceux de Jason. Donc c'est un peu important. Aussi quand vous avez, en particulier à l'intérieur de nos données de bloc personnalisées. Donc, l'entité de notre titre que nous avons fait l'électrifier ou assurez-vous que vous ne jetez pas cette façon Jason parce que c'est bien généré donc à partir de workbench. Donc ça ne va pas être facilement reproduit, disons comme d'autres pourraient l'être, n'est-ce pas ? Mais maintenant, nous allons commencer avec le générateur de données. C' est, bien sûr, la suppression ici est bien sûr juste pour, disons, quelque part entre des fins comiques et une valeur de choc. Et nous allons créer un nouveau package dans notre cours de MC, package MB appelé Data. Et à l'intérieur de ça, tout ce que nous allons faire se passe maintenant. Donc la première chose va être les données dégénérer taux de Jenna vers la classe de l'ego. Je vais ajouter ceci bien sûr. Et puis nous allons simplement avoir ce soit un, ajouter un point mod, même un abonné. C' est bien sûr, encore une fois quelque chose que nous avons déjà vu. C' est mc cours MOD id, puis le bus va être mod, mod Dot abonné de bus événement, point de bus. Nous avons alors aussi besoin d'un générateur de données privé avec rien, le constructeur. Et puis nous voulons détourner fondamentalement. Maintenant c'est, c'est correct. Je suis, j'en suis assez certain. Eh bien, que diriez-vous de celui-ci ? Si c'est le bon nom, alors ça va marcher. Et puis nous allons avoir un vide statique public recueilli des données. Donc c'est l'événement que nous allons détourner. Il s'agit de l'événement ou de l'événement de données collectées dans ce cas. Et cela ici est bien sûr un souscrire. Maintenant, c'est tout ce que nous avons vu avec les événements mod. En fait, nous allons avoir besoin de ça. Merci donc que là-dedans, l'intérieur d'ici, ce que nous voulons c'est un générateur de données. Cela va être le générateur égal au générateur de point d'événement. Donc, cela nous donne simplement le générateur de données. Au lieu de cet événement de données rassemblées ensemble événement de données. Voyons s'il n'a pas d'explication à l'endroit où il est. L' idée est juste que, eh bien, il recueille des données. Je veux dire, ce n'est pas difficile à comprendre, mais l'ego, et c'est l'assistant de fichiers existant. Vous pouvez également comprendre que c'est juste quelque chose dont nous allons avoir besoin parce que nous voulons essentiellement vérifier si certains fichiers existent déjà ou non. C' est en quelque sorte l'essentiel de tout ça. Mais nous allons juste nous assurer que c'est fondamentalement ce que nous avons, n'est-ce pas ? Donc, nous allons commencer par, si vous pensez que la première chose que nous allons faire est le fournisseur d'état bloc. Et c'est fondamentalement, fait en sorte que nous avons des états Brock. Donc, faisons une nouvelle classe appelée le fournisseur d'état de bloc mod. Bien sûr, les noms ici r peuvent être choisis par vous-même. Cependant, avoir un clair qui est une nomenclature pour eux fait beaucoup de plaisir. Cela étendra le fournisseur d'état de bloc. Assurez-vous que c'est le bon et que le bon est dans le client. Donc, mes microformes réseau, nous voulons celui-ci, les générateurs de modèle client est très important que vous choisissiez le bon. Sinon, nous allons rencontrer beaucoup de problèmes. Et comme vous pouvez le voir, il veut que nous implémentions une méthode spécifique, qui est la méthode des ensembles de registres et des modaux. On va faire ça et on a toujours une erreur. Et c'est bien sûr parce que nous n'avons pas de constructeur. Maintenant, ce que nous pouvons faire ici dans le constructeur, c'est que nous pouvons juste nous débarrasser de cet ID de mod comme nous savons quelle est notre devise. Et on peut y accéder en allant au cours MC Dartmouth. Assez facile. Maintenant, au lieu d'ici, nous pouvons maintenant enregistrer nos blocs. Maintenant. Le fait est que ces blocs, un fournisseur bien sûr, ont quelques belles choses. Donc, si je mets en bloc, par exemple, comme vous pouvez le voir, regardez combien de choses il y a que nous pouvons réellement très facilement enregistrer ici. Nous avons des blocs d'accès, blocs directionnels, des blocs de porte, des clôtures. Nous avons quatre blogs, horizontaux, horizontaux, verrouillage de phase, douleur, dalles. Il y a des trappes, des murs. Tous ceux très faciles à enregistrer avec simplement en utilisant ces appels de méthode. Nous allons bien sûr utiliser le bloc de symboles ici. Et ce qu'on va faire, c'est dire plus de blocs. Faisons le point de bloc de cuivre obtenir. Et puis on va juste copier ça. Et puis on va prendre le fil de cuivre aussi. Alors prenons ça. Ils y vont, eh bien et c'est déjà tout. Ou fondamentalement comment faire les modèles de bloc. Je veux dire, on a juste besoin de l'ajouter ici et ensuite, et ensuite on a fini. Et c'est vraiment facile à ajouter. Donc, nous avons simplement besoin de le dire point générateur chez Provider. Maintenant, nous venons de créer un fournisseur, donc nous allons juste dire nouveau mod, bloc fournisseur d'état. Et puis le fournisseur. Le fournisseur a besoin d'un générateur et d'un assistant comestible de fichier existant. C'est ça. C' est tout ce qu'on a à faire. Et puis ça va générer pour nous les états mod Bloch. Ouais, c'est fondamentalement l'ensemble de l'affaire. Et nous allons continuer, tout d'abord, avec le modèle et quel article, parce que c'est quelque chose qui est très intéressant aussi. Parce que bien sûr, avec les modèles d'article, ce dont nous avons besoin, c'est que nous avons besoin de la, nous en avons besoin pour les articles normaux et ensuite aussi pour les articles de bloc, non ? Et c'est aussi simple que ça. Nous allons juste dire, Hey, quel fournisseur de modèle d'article. Et nous allons dire, prenez ce fournisseur de modèle d'article une fois de plus des générateurs modaux du client de microformes réseau, très important. Je veux vraiment souligner cela parce que sinon si vous prenez le mauvais et oui, ce n'est tout simplement pas bon. Bien sûr que ça ne m'est jamais arrivé. Bien sûr que non. Peut-être, peut-être, peut-être au début. Nous avons tendance à arriver parfois c'est pourquoi je veux souligner cela encore une fois ici, même, même accord. Il suffit de prendre MC cours dot-dot-dot ID pour l'ID MOD. Et puis tous, tout le monde est heureux à ce sujet. Maintenant, les modèles de registre. On veut quelques choses ici. Donc, tout d'abord, nous voulons appeler le parent existant largeur. Et nous voulons l'utiliser parce que c'est essentiellement crée notre modèle de bloc. Désolé, pas Eh bien, oui. Utilisez le modèle de bloc. Il fait l'élément pour le bloc. Donc, c'est l'élément bloc. En gros. Ça va être le bloc de cuivre. Et puis nous allons utiliser le verrouillage de mode ici, qui va juste être bloc slash bloc de cuivre. Et puis on va copier ça. Alors ou aussi bien parce que c'est ce que nous avons créé à l'intérieur de notre bloc, homme d'État bloque son fournisseur. Et ce que vous voulez, c'est essentiellement quelques façons différentes de le faire. Et je vais juste faire une nouvelle méthode ici. Ce n'est pas nécessairement nécessaire, mais c'est bien. Nous allons donc retourner un élément ModelBuilder constructeur. Et puis cela nécessite un élément de fichier mono généré, puis une chaîne avec le nom. Et nous allons retourner get builder avec le nom du chemin. Et puis le parent va être généré élément. Et puis la texture va être couche 0. Et puis la texture est située dans la barre oblique de l'élément. Et puis le nom. Ego. Zoom arrière un peu. Et c'est juste un peu plus facile de remplir ça. Il y a plusieurs façons de le faire. Donc, par exemple, en ce moment, nous allons faire le fichier modèle, l'élément généré. Un. C'est juste quand vous avez en haut du fichier JSON où nous disons boues d'article générées. C' est essentiellement presque tous nos articles étaient ça. Et oui, c'est tout simplement ce qu'on fait ici. Et puis ce que nous allons dire est un constructeur et un élément généré. Et puis le nom ici serait, par exemple, des lingots de cuivre. Donc on va créer nos lingots de cuivre. Il mod modèles d'article, non ? Et c'est alors bien sûr, doit également être ajouté dans notre classe de générateurs de données ici. Et ça arrive tout simplement ici. Donc, copions simplement cela et disons des éléments mod. Quel fournisseur de modèle d'article. Et bien sûr prend également un générateur, prend assistant de fichier existant. Et dans l'ensemble, ce sont les deux premières choses que je voulais montrer de toute façon. Alors que diriez-vous de ce qu'on va faire, c'est qu'on va faire ça et voir ce qui se passe. Maintenant, on est en jeu et regarde ça. Qu' est-ce que c'est ? Ce que rien n'a rien, même pas notre étape fondamentale. Rien n'a de texture. Eh bien, ce n'est pas ce qu'on voulait exactement. Parce que ce qu'on doit faire, c'est qu'on ne peut pas juste diriger le client ici. Eh bien, nous voulons en fait, c'est qu'on veut diriger autre chose. Et ce sont les données d'exécution. Donc nous avons juste besoin d'aller à Gradle sur le côté droit ici, tâches micro-ondes, si elle exécute, puis exécuter ces données, puis double-cliquer sur celle-ci. Et puis en ce moment, nous avons cette apparence. Et une fois que cela aura traversé, nous verrons quelque chose de très intéressant. Nous allons voir un nouveau répertoire se former à l'intérieur de notre répertoire source. Comme vous pouvez le voir, généralement, cette époque est normale. Maintenant, cette erreur n'est pas normale. Nous pouvons donc voir ce qui se passe ici. Donc il y a quelque chose là-bas. Ainsi, la texture MC blocs de cours, bloc de cuivre n'existe pas dans aucun paquet de recherche connu. Maintenant, nous pouvons vraiment vérifier, vérifier ça, et aller dans les ressources, ressources, l'histoire, c'est des textures. Non, c'est définitivement là-dedans. C' est aussi dans leur bloc Hopper, point PNG. Donc c'est définitivement là-dedans. Il doit y avoir autre chose qui ne va pas. Laisse-moi vérifier ce qui se passe. Est bien sûr, je sais vraiment ce que le problème est ici et il est en fait très bon. C' est quelque chose que j'ai en fait en testant cela aussi oublié, mais il est très important que cela soit réellement fait. Et c'est pour ça que c'est très bien que c'est un peu comme au milieu ici, peut-être. Donc, l'erreur ici est qu'à l'intérieur de notre Gradle accumulation, nous avons réellement besoin d'ajouter quelques choses. Et c'est le point de vue numéro un. Quand nous descendons ici à nos arcs, nous devons ajouter ceci afin que nous puissions fondamentalement remplacer ces arcs par ceci. Il est fondamentalement juste assurez-vous qu'il ya aussi. Donc fondamentalement que lorsque nous exécutons les données. Donc, cette exécution de données que nous avons une sortie à la source générée ressources, mais qu'il y a aussi une source principale ressources et les ressources générées par la source les deux comptent fondamentalement comme un ensemble de ressources. Nous devons également ajouter entre la fin de cela. Donc, entre la fin de ce Minecraft ouvert ici, ici, et puis avant les dépendances, nous allons ajouter à cela, ces choses bien sûr, disponibles comme ressources aussi pour télécharger et tout ce jazz. Et oui, exactement. Et puis nous pouvons essentiellement laisser la construction fonctionner à nouveau. Il suffit de cliquer sur le petit éléphant avec un bouton de rechargement et cela devrait fonctionner très rapidement pour le construire. Oui, voilà. Et si nous exécutons à nouveau ces données, nous pouvons simplement appuyer sur le bouton Exécuter, le bouton Play ici, alors tout devrait fonctionner très bien. Maintenant, nous allons toujours obtenir une erreur d'annulation de devis. Maintenant, ce n'est pas vraiment une erreur, donc ce n'est pas vraiment arrogant. Je veux dire, il est clair qu'il a été généré. Je ne l'exécuterais pas encore. Parce que c'est très bizarre que ça n'ait aucun sens du tout. Pourquoi ce serait le cas. Bien sûr, maintenant ça marche parce que c'est comme ça que nous le faisons. Droit. Ok, c'est génial. Donc, si tu comprends ça, c'est une sorte de flèche ici. Donc, fondamentalement, si vous, si c'est une erreur et alors c'est comme si l'hôte distant était fermé, c'est probablement quelque chose qui est mieux pour vous. Ensuite, si vous regardez cela, tant que l'exécution de la tâche terminée les données d'exécution sont définies ici et que tous les fournisseurs ont pris quoi que ce soit, combien de millisecondes, alors tout va bien. Et c'est très bizarre. C' est probablement parce que le fichier JSON n'a pas encore été généré. Donc un peu bizarre qu'ils sont, si vous obtenez ça aussi, ne vous inquiétez pas à ce sujet. Ce ne sera probablement pas un problème. Mais de toute façon, donc maintenant nous avons généré, comme vous pouvez le voir, généré Maine. Et si nous allons ici, les ressources, les actifs, MC cours Bloch, états et modaux, et article et les modèles de bloc. Et ils sont essentiellement générés pour nous. Maintenant. En fait, nous devons passer ici pour exécuter le client, et ensuite nous devons exécuter le client. Alors maintenant, le jeu va commencer. Il est très important de garder à l'esprit où vous êtes là-dessus. Et qu'une fois que vous changez quelque chose à l'intérieur de votre structure de données, vous laissez juste les données d'exécution une fois, puis commencer. Donc c'est comme si je ne pouvais pas insister assez sur ça. Exécutez d'abord les données, puis regardez les modifications. Sinon, les changements ne seront pas vus. Et si nous regardons cela par exemple, vous pouvez voir que le cuivre en bon, le bloc de cuivre et le cuivre ou le bloc ont tous des textures. Maintenant, ils seulement, ils ont la texture parlée. Ce n'est pas ce qu'ils veulent. Ils vont, ils les deux architectures comme un bloc et aussi comme un élément. Donc, cela fonctionne parfaitement bien sans nous avoir à faire les fichiers JSON manuellement car ils sont tous ici générés comme vous pouvez le voir. Donc c'est juste un bloc de cuivre, non ? Généré automatiquement. Le, regardons l'Angleterre de l'entreprise par exemple. Généré automatiquement. Donc, c'est la grande chose à propos des données génère le fondamentalement juste générer tout automatiquement. Nous allons également ajouter rapidement les tags de bloc et les éléments modaux, tags, générateurs pour les fournisseurs. Donc nous allons créer une nouvelle classe à l'intérieur de notre paquet de données, qui va être bloqué. Étiquettes modales, rho vita. Maintenant, nous n'avons pas beaucoup utilisé la taxe. Cela va étendre le fournisseur de balises de bloc. C' est un, c'est une fois. C' est le réseau réellement Minecraft les données un. Dans ce cas, le constructeur. Nous allons obtenir le deuxième constructeur, pas celui qui est barré. Une fois de plus, l'ID de mode, nous pouvons simplement prendre EMC, nous sommes intelligent ID. Et puis nous voulons aussi, ou nous voulons remplacer la méthode ou enregistrer la taxe. Donc, si nous mettons dans le registre et appuyez sur l'onglet, alors nous pouvons juste le faire. Et puis nous allons juste faire un simple pour obtenir ou créer un constructeur. Et je vais lui donner une étiquette. Donc on peut aller à des blocs de balises, et on va prendre des ors. X doit être importé ton ego. Et nous allons ajouter les blocs de minerai de cuivre. Et c'est tout, non ? Nous allons donc simplement ajouter le travail d'entreprise aux balises or parce qu'il s'agit d'un ou. Et puis nous allons également créer un plus d'étiquettes d'élément. On ne va rien y mettre, mais on va le créer pour l'Halloween. Donc mod fournisseur de balises d'élément à cela aussi, et cela va étendre son plus proche loin. Étendu le fournisseur de balises d'élément une fois de plus, ce réseau de données Minecraft. Cette fois, nous allons créer une déconstruction. Ou encore une fois, avec plus je suis ici, juste hors de ça. Mc, pire, AID, oups. Mc, identification intelligente, l'ego. Et il est également des textes enregistrés remplacer. Et nous ne allons tout simplement pas remplir celui-ci dans ce cas parce que nous ne le faisons pas, je ne pense pas que nous ayons encore utilisé le plus d'étiquettes d'article ou les tags pour les articles. Nous avons utilisé des étiquettes pour les blocs, je crois. Mais rien de trop fou, Cependant, il est là si vous avez besoin. Donc c'est plutôt bon. Et ça va être fait ici après tout le reste. Donc, ce point générateur a généré un fournisseur dot-dot-dot. C' est le nouveau. Faisons les balises d'élément mod. Un fournisseur. Cela a besoin d'un générateur et maintenant, comme vous pouvez le voir, cela a également besoin d'un fournisseur de balises de bloc, ce qui est très important. Donc on doit faire un peu maladroit, mais c'est bon. Nous devons faire une nouvelle variable. Donc mode Bloquer fournisseur d'impôt, vous allez juste appeler cela quelque chose comme les balises de bloc égale de nouvelles balises de bloc, générateur de fournisseur et l'assistant de fichier existant ici. Et puis cela peut être fait deux fois. Donc, nous pouvons faire fournisseur d'annonces avec les réservoirs de blocs ici parce que nous avons bien sûr besoin des balises de bloc et ensuite nous devons également fournir les balises de bloc au lieu de nos étiquettes d'article. Et puis aussi le port de fichiers existant, et c'est tout. Ce sont les choses que je voulais ajouter ici. Donc, ce que nous pouvons faire, c'est que nous pouvons simplement exécuter les données à nouveau. Juste ici. Il va vouloir souligner très important, si vous changez quoi que ce soit à l'intérieur de vos générateurs de données, vous ajoutez plus de balises. Ou si vous ajoutez un modèle d'élément, il s'agit toujours de données d'exécution. Je veux dire, je sais que la question va se poser, hé, j'ai ajouté quelque chose et ça n'apparaît pas. Exécutez les données. C' est, je ne répondrai qu'avec des données d'exécution sur des questions comme ça. Et comme vous pouvez le voir, vous y allez. Donc, au lieu de générer la ressource principale, nous avons maintenant un dossier de données aussi. Et à l'intérieur, nous avons les étiquettes Minecraft. Maintenant, il va réellement ajouter chaque Jason pour chaque balise, juste fondamentalement avec les valeurs principales qui sont déjà dedans. Et puis si nous allons aux rames par exemple, alors nous allons voir, eh bien, ce ne sera pas ici en fait qui est à l'intérieur de l'intérieur de prévisible VSA vous, donc c'est le remplacement fondamentalement, donc les orbites et comme vous pouvez le voir, MC contraction, cuivre ou c'est là dedans. Alors il va, c'est une sorte de, un moyen intéressant et bien, très facile et efficace de générer de nouveaux fichiers JSON pour vos éléments. Pour votre, si vous voulez ajouter des balises ou si vous voulez ajouter les états Bloch ou les blocs, c'est très facile à faire. Il est, je pense, incroyablement utile et il l'a sauvé. Surtout si vous avez, sont comme un 100 articles. Je veux dire, à un moment donné, vous allez vous énerver avec le copier-coller que nous devrons faire juste à cause des défauts JSON. Et là, c'est un moyen facile de les générer automatiquement. J' espère donc que cela vous a été utile. S' il y a des questions, bien sûr, toujours sentir pré-tâche et je serai sûr de répondre. Et oui. 74. (Minecraft) Générateur de données pour des tables de vues et Langue de: Bon, bienvenue au cours de micro-ondes. Et dans cette conférence, nous allons jeter un oeil à un autre générateur de données, en fait deux d'entre eux, et nous allons faire les tables de luth et ensuite aussi le fichier de langue générer automatiquement. Donc, en fait, nous allons simplement créer une nouvelle classe au lieu du paquet R que nous avons déjà créé la dernière conférence. Et cela va être le fournisseur de table de butin MOD. Encore une fois, le nom est, n'est-ce pas, vous devez être exactement le même ? Mais il est logique de garder tout au moins dans le même quartier. Donc, cela va l'étendre le fournisseur de table de butin à partir des données Minecraft net. Ensuite, nous allons créer un constructeur qui a ceci. Et maintenant il va y avoir quelque chose d'un peu bizarre ici parce qu'on va avoir quelque chose. Donc, si nous allons dans la table de butin, souris du milieu, clic sur le bouton. Et comme vous pouvez le voir, il a cette liste finale, qui est une liste de paires de fournisseurs, de consommateurs, de vélos, de consommateurs de l'emplacement des ressources, constructeur de table de butin, qui est, je veux dire, c'est une construction c'est absolument ridicule dans mon esprit. Je dois être honnête avec toi, mais d'accord. Et si nous allons ensuite ici, comme vous pouvez le voir qu'il ya des tables de butin de pêche. Il y a par exemple, table de butin, Lu, table Lu, table entité Lu et ainsi de suite et ainsi de suite. Et c'est aussi quelque chose dont nous allons avoir besoin. Parce que ce que nous avons c'est que nous allons avoir un, Donc tout d'abord, nous allons avoir une autre chose ici, qui va être des tables de butin de bloc de mod. Donc une nouvelle classe au lieu de notre paquet de données. Cool MCH Block tables butin. Et cela prolonge les tables de luth baroques. Bon, maintenant il n'y a rien ici. Je vais y mettre quelque chose bientôt. Tout d'abord, on va, je vais copier ça parce que c'est absolument de la folie. C' est donc la liste d'une paire d'un fournisseur, d'un consommateur d'un vélo, consommateur de boucles d'emplacement de ressources, constructeur de table. Et là, il y a des périmètres de table de butin. Il s'appelle des tables de soulignement de butin et est une liste mutable de exactement la paire de tables lâches cassées que nous venons de créer ici, cette classe et un ensemble de paramètres de luth. Maintenant, ce que c'est, je dois être honnête avec toi. Je ne m'inquiéterais vraiment pas à ce sujet. C' est juste une façon folle de s'assurer que c'est un exemple fou d'accord, peut-être qu'il aurait pu être mieux fait ici Southern. Mais ça marche. Juste vraiment, je veux dire, vous savez, je pourrais probablement l'expliquer à la fin, mais à ce moment dans le temps, je dirais, juste, juste prendre, juste dire ok, comme juste un peu bizarre qu'on n'a pas pour entrer dans. Maintenant, ce que nous voulons, c'est que nous voulons prendre ça. Donc, si on met get, on voit ça protégé, et ensuite on obtient les tables. C' est ce que nous voulons remplacer. Et ce que nous voulons retourner, c'est en gros ces tables de point lou. Non, ce n'est pas du tout ce qu'on veut faire. On veut faire ça, il faut qu'ils s'en aille. Et puis l'autre chose que nous voulons remplacer est la validation. C' est la méthode de validation et nous ne voulons pas appeler super, nous ne voulons pas appeler quoi que ce soit ici. Un peu comme tout ce qui devient, hé, est-ce une chose valide ? Oui, c'est une chose valable. Je, je ne suis pas sûr à 100% de ce qu'il faut pour l'écraser avec rien. Je crois que cela a quelque chose à voir avec une sorte de bizarre micro-ondes où si ce n'est pas à l'intérieur d'un répertoire de micro-ondes, alors cela ne valide pas ou quelque chose de proche de cela. Assurez-vous juste que c'est aussi là dedans. Et c'est essentiellement le fournisseur de table de butin mode. Maintenant, nous pouvons déjà ajouter ici. Cela sera ajouté. Voyons, cela sera ajouté ici. Donc c'est générateur dot-dot-dot fournisseur, nouveau fournisseur de table de butin avec un générateur ? Non, un générateur et un fichier existant jusqu'à ce moment, nous n'avons pas vraiment besoin de l'assistant de fichier existant, mais nous avons besoin d'un autre, nous avons besoin d'une parenthèse de fin o. et maintenant nous avons là où nous avons réellement ajouté les tables LU est à l'intérieur de nos tables de bloc de devise LU, chose très importante encore une fois, aussi, si nous regardons en arrière le fournisseur de table LU, moment nous avons seulement ce mod block tables LU. Si nous voulons bien sûr ajouter une table de boucle à, par exemple, des monstres ou de la poitrine ou autre. Je vous conseille d'aller dans la classe de fournisseurs de tables de butin ici que nous avons étendue et de regarder ce domaine, non ? Donc, cette paire folle, la folie des fournisseurs. Et comme vous pouvez le voir, vous pouvez aller dans les tables de boucle de poitrine. Nous avons les tables Lu entité et vous pouvez les regarder. Donc, si vous le bouton du milieu de la souris cliquez dessus, alors il va ouvrir la, la classe réelle. Et comme vous pouvez le voir, il y a , par exemple, ici, je vous conseille de regarder cela. Et c'est fondamentalement une façon de faire des tables Lu pour d'autres choses. Comme, vous savez, d'autres choses, pas seulement des blocs. Donc, si tu y vas, tu pourras le voir. Et puis c'est fondamentalement juste étendre cette classe et ensuite ajouter des trucs ici. Et nous allons ajouter la méthode add tables. On va écraser ça. Et nous allons également l'écraser la méthode get known blocks. Maintenant, cela va retourner la boîte de point d'enregistrement, point get entrées, flux dot map. Je vais juste vite et ce que ça fait. Et puis on va faire à l'itérateur de Colin. Donc celui-ci est un itérable de type de bloc. Maintenant, nous avons tous nos blocs à l'intérieur du registre différé de Brooks. Et cela a essentiellement la liste, pour ainsi dire, des blocs. Maintenant, quand on aura les entrées, on va juste avoir une, comme vous pouvez le voir, une collection de ceci est fondamentalement une liste. Ensuite, nous convertissons cela en un flux et puis écran nous pouvons cartographier. Et la carte essentiellement, comme vous pouvez le voir, renvoie un flux constitué du résultat de l'application d'une fonction donnée à l'élément du flux. Donc fondamentalement pour chacun des éléments ici, donc ceux-ci sont bien sûr en ce moment. Et des blocs. Au lieu de notre registre différé, ici, il y a une collection d'objets de registre. Donc, nous avons les objets de registre dans un flux. Et puis ce qu'on va dire, d'accord, pour chacun de ceux qu'on va faire Dot get. Et comme nous le savons, nous avons vu plusieurs fois, si nous faisons nos blocs MOD, point obtient, donc impraticable, Brock point obtenir et nous obtenons le bloc réel. Et puis nous allons transformer tout cela en itérateur. Et puis ça marche. C' est l'essentiel de tout ça. Encore une fois, c'est quelque chose où il n'est pas nécessairement important que vous compreniez tout ce qui se passe ici. Sachez juste que les blocs connus sont fondamentalement tous les blocs que nous avons enregistrés. C' est tout ce dont nous avons besoin. Maintenant, je vais vous montrer ça avec deux ou deux blocs et eux, je vais copier ça parce que ce très important en fait, chaque bloc que vous avez ici, vous avez besoin d'un bloc comme une table de butin pour. Sinon, le jeu ne va pas commencer. C' est un peu ennuyeux. Je ne vais pas mentir, mais c'est comme ça. Donc, les premières choses d'abord, vous pouvez simplement faire cette table de butin de registre. Alors le bloc tombe lui-même. Bloque le bloc de cuivre par exemple. Et puis bien sûr pas bon, non ? Donc, cela signifie simplement que le bloc de cuivre au freinage, nous allons se laisser tomber. C' est tout le truc ici. Ensuite, nous avons, par exemple, si nous faisons cette table de butin de registre, nous pouvons prendre celle-ci. Ensuite, nous pouvons, par exemple, dire si nous avons, disons E, Faisons mod blocs, dalle, Cooper, dalle point get. Et puis nous pouvons avoir une fonction ici qui est un bloc. Et puis on va ouvrir ça. Cela va alors retourner une dalle tombante. Ne pas laisser tomber les graines, étayer la dalle avec exactement ça. Donc, les blocs Ma'at, pas le point de gifle de cuivre obtenir. Et nous devons le faire, bien sûr, parce que c'est une dalle et pas un, eh bien, ce n'est pas un bloc normal, non ? Il doit donc fonctionner comme une dalle. C' est là que nous devons le faire, il est très important que nous mettions fondamentalement cela dans cette table de butin de registre 1. Et c'est presque fondamentalement toute l'idée encore. Je vais juste copier le reste maintenant. J' espère que tout est ici, mais je suis assez certain que c'est le cas. D' accord. Donc s'il y a quelques choses que nous n'avons pas dans votre tableau. Et puis la dalle de Cooper, n'avons-nous pas juste aimé faire ça littéralement. Oh, eh bien, oh, c'est trois pièces. Voilà, tu y vas. C'est bien, c'est un peu embarrassant. Eh bien, peu importe. Donc c'est, ça devrait être tous les blocs. Nous allons voir si oui ou non c'est une fois que ça marche ou non. Mais oui, c'est l'idée. Vous devez ajouter une table pour chaque bloc. Au moins, c'était une chose qui ne s'est pas produite. Comme cela n'a pas fonctionné pour moi si je n'en ai pas ajouté, tous les blocs qui étaient fondamentalement dans les non-blocs. Donc, exécutons simplement les données et voyons ce qui se passe que nous avons déjà ajouté le fournisseur de table de butin Mott ici. Et c'est bien sûr, les tables LU bloc sont bien sûr, fondamentalement dans cette liste ici. Voyons ce qui se passe ici. Et nous allons en fait avoir une erreur. Très probablement, il y a un bloc que j'ai manqué. C' est la chose la plus probable. Donc, il est certainement les tables LU ainsi que vous pouvez le voir quand vous avez une flèche dans ces données d'exécution, vous pouvez toujours voir ok, balises d' élément terminé, puis commencer les tables Lu fournisseur. Et puis tu sais, d'accord, c'est quelque chose à voir avec les tables de Lou. Et généralement, cela ne va pas vraiment donner beaucoup d'idées sur ce qui s'est passé. En fait, tu devras monter un peu. En fait, c'était une partie du manquant et c'est la plaque de pression. Je ne sais pas à partir de mes tests de mon référentiel de tests, fondamentalement, mon projet de pré-test. Il y a probablement une faute de frappe là-dedans aussi. Voyons voir. Donc il y a probablement encore quelque chose qui manque. Et cela va être nous allons voir. On peut aussi MC, non, on doit aller dans celui-ci et ensuite je suis scores. Et puis voyons, ce serait mc. Ok. Voilà, tu y vas. Donc manquant table boucles pour les planches de bois rouge. Aussi juste un nom qui était faux. Planche. Ok, c'est intéressant. Alors j'appelle la planche ici. C'est très bien. Ce n'est pas un problème. Au moins là. Donc c'est un peu un oubli probablement. Mais si nous lançons maintenant ça, je pense que maintenant ça devrait marcher. S' il n'y a plus de bloc manquant. Et nous ne devrions pas avoir d'erreurs. Ça a l'air bien. Et puis, oh, les fournisseurs ont pris n'importe quelle millisecondes. Et puis bien sûr, comme nous le savons, lorsque nous obtenons l'ère des devis, la connexion de l'hôte distant a été fermée. C' est très bien. Et puis si vous regardez ici dans nos cœurs MC de données, tables de boucle, nous pouvons réellement voir que tout, chaque table de boucle ici a été ajouté correctement. Eh bien, c'est plutôt bien. Et puis allons aussi vers le fournisseur de langues. C' est quelque chose qui est très intéressant. Donc, nous allons juste ajouter une nouvelle classe à notre paquet de données, refroidi le fournisseur de langage mod mod. Cette classe étend le fournisseur de langue cette fois par net Minecraft données communistes, très important. Cela va implémenter les traductions EPS, la méthode ici. Et puis nous avons aussi bien sûr besoin d'un constructeur. Nous n'avons plus besoin de l'aide. C' est donc très similaire à beaucoup d'autres choses que nous avons utilisées. Bien sûr, point-point. Et à l'intérieur d'ici, ce que nous allons faire, c'est faire une chaîne appelée locale, this.name remplacer par Lang, Lang Guan sagas langages. Et puis remplacé par rien. Et puis on va faire un changement de paramètres régionaux. Et puis ici, on a une affaire. Donc on va faire le yen US, donc comme ça. Et puis ils se cassent ici. Et puis un cas par défaut avec fondamentalement rien parce que je m'excuse, je n'ai aucune idée pourquoi il est passé, mais ils vont, c'est ce qui arrive. Et puis à l'intérieur d'ici, nous utilisons juste l'ajout. On va juste utiliser la méthode add pour ajouter des choses, non ? Donc, comme vous, je l'ai vu, vous pouvez soit vous pouvez aussi mettre en blocs ou quelqu'un d'autre, ou vous pouvez mettre dans les clés. Donc, par exemple, nos clés seraient quelque chose comme. Donc, nos clés sont quelque chose comme, par exemple, l'article MOOC cours, le lingot de cuivre. Et cela se traduirait par l'exploitation. Je veux dire, que je me sens comme ça a du sens. Maintenant, nous devons aussi faire deux choses dans notre générateur de données. Donc, nous allons juste ajouter ceci et voir si cela fonctionne. Mais je suis assez certain que ça le fera. Nous devons ajouter quelque chose ici. Il s'agit d'un tableau de chaînes final statique privé appelé codes locaux. Maintenant, ce sont les codes de localisations que nous sommes fondamentalement, eh bien, nous voulons soutenir. Dans notre cas, on va juste nous faire de l'EN. Vous pouvez bien sûr, également ajouter votre propre une fois. Donc, par exemple, je crois que l'Allemagne serait quelque chose comme d, d, je crois, je ne suis pas sûr en fait. S' assure que vous regardez ça, qui est facilement trouvé. Ou si vous l'avez fait, je ne suis pas sûr si c'est EN GB pour la Grande-Bretagne. Je ne suis pas sûr. Mais oui, c'est essentiellement là que vous ajouteriez tous les codes locaux. C' est juste le même nom que nous avions dans notre site sur le dossier des actifs Lang, non ? Et puis nous allons également ajouter un vide statique privé chez les fournisseurs de langage avec un générateur de données, le générateur comme paramètre. Et à l'intérieur d'ici, nous allons utiliser un paramètre local de chaîne pour boucle sur les codes locaux. Donc, cela fait essentiellement en sorte que nous passions à travers chacun des codes locaux que nous avons. Et puis nous allons générer notre fournisseur dot-dot-dot, nouveau fournisseur de langage mod, le générateur et le belvédère. ce moment, bien sûr, nous avons seulement l'EN nous, mais c'est très bien. Comme je l'ai dit, vous pouvez ajouter vos propres langues ou même plus de langues comme très facilement en fait dans ce cas. Et puis nous allons juste exécuter ceci et voir si cela génère le, eh bien, il ne va pas générer cela. En fait. Arrêtez-le parce que nous avons réellement besoin d'ajouter ceci ici aussi. Bien sûr, ajoutez des fournisseurs de langues avec le générateur. Et puis ça va le faire, puis on va courir et voir si ça marche. Maintenant, c'est une partie importante de tout ça. Et puis nous allons également regarder dans, dans le jeu, si tout ce que nous avons ajouté ici va fonctionner ou non. Donc, tous les fournisseurs ont pris toutes les millisecondes. C' est génial. Donc, cela signifie que tout au moins semblait fonctionner important. En fait, nous devons laisser cela courir jusqu'à ce que ce message arrive. Sinon, rien ici n'est généré. Alors voyons. Cela a été généré à l'intérieur des actifs, MC cours lang, Mais il est pas en ce moment. Mais voyons simplement si oui ou non cela, les paramètres régionaux ont toujours eu lieu. Alors allons exécuter le client et ensuite exécutons-le. Bon, voyons, commençons la partie. Et tout d'abord, nous allons voir si oui ou non, donc le lingot de cuivre n'a pas pris son nom, mais c'est bon. Parce que je pense en fait que je sais pourquoi ça n'a pas non plus généré la chose gauche, ça, c'était une des choses. Et ajoutons une pioche et voyons si je peux miner ça, bien sûr aller à la survie. Et puis si nous avons miné c'est bien sûr encore sont sonores que nous avons ajouté. Et comme vous pouvez le voir, nous obtenons les choses que nous voulons. Et si nous revenons aux dalles par exemple, qui, bien sûr, en ce moment, n'ont pas de dalle. Voilà, tu y vas. C' est en fait comme pile de, c'est vrai. Donc, bien sûr, génial. Ça a l'air incroyable. Mais comme vous pouvez le voir, lâchez deux d'entre eux. Et nous pouvons, bien sûr, le faire et ensuite en laisse tomber un. Donc, ça marche. Maintenant, bien sûr, sans les modèles, ça n'a pas vraiment de sens. Maintenant, ceux-ci, bien sûr, doivent être ajoutés à côté de nos modèles, ou plutôt les états bloc, bloc. Et bien sûr, oui, l'homme d'État du bloc. Et puis bien sûr à l'intérieur de nos modèles d'articles aussi. Donc, c'est là que cela serait ajouté aussi. Et maintenant, revenons à la langue. Donc une erreur vraiment stupide. En fait, ça doit être un grand L. Donc, euh, donc un L. majuscule et je crois que ça répare déjà tout. C' est comme vraiment stupide à ce sujet est le problème. Parfois, lorsque vous utilisez des chaînes codées en dur, elles ne le sont pas toujours. Là, peut souvent conduire à de mauvaises choses. Et comme vous pouvez le voir, les langues E, N, U, S ont terminé à dix millisecondes. Et une fois que cela est épuisé, ils s'en vont. Ensuite, un dossier linguistique est créé ici. A l'intérieur de celui-ci, nous avons l'EN soulignent l'article US MC cours couvrant le lingot de cuivre. Et puis juste pour que nous soyons clairs et que nous allons voir ce travail à l'intérieur de notre jeu. Nous allons voir ça ici, et c'est le vrai facile comme ça aussi est vraiment facile à ajouter, non ? On peut tout ajouter ici. Vous savez, avoir plusieurs langues supportées très facilement, il suffit de faire un nouveau cas à tous les éléments. Et oui, et puis ça marche juste. Donc c'est vraiment facile et vraiment sympa. Et puis voyons. Donc, si nous allons à l'article ici, ils vont le planer et c'est tout. C' est tout ce qu'il y a. C' est très facile. Très facile aussi. Ajoutez les langues dans ce cas. Et oui, ouais, c'était tout pour le fournisseur de langue Mod et aussi pour les tables bleues. Et dans la prochaine conférence, nous allons essentiellement finir le générateur de données 4k, pour ainsi dire. Nous allons jeter un oeil aux recettes et aussi aux avancées, c'est qu'elles sont en quelque sorte liées entre elles. Ils sont un peu un chevauchement. Et oui, alors c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile. S' il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 75. (Minecraft) Générateur de données pour les recettes et les progrès: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons jeter un oeil sur les recettes de mode et aussi sur les avancées pour les générer à l'intérieur de nos générateurs de données. Donc, d'abord, nous allons créer une nouvelle classe. Encore une fois, ce sera le fournisseur le plus de recettes. Et cela va prolonger le fait un peu plus complexe cette fois. Donc, cela va être étend le fournisseur de recette à partir des données Minecraft net. Et aussi, il implémentera le constructeur de condition. Et on va voir ce que ça a à voir assez tôt. Tout d'abord, bien sûr, il suffit d'importer le fournisseur de recette. Et puis nous allons écraser la méthode des recettes de registre ici. Et nous allons créer la, disons, une recette en forme pour notre bloc de cuivre. Donc, ça va être vraiment facile. Et tu vas dire que c'est incroyable, exactement. Constructeur de recette en forme, pas de recette en forme. Et alors ce que nous voulons, c'est le résultat. Donc, ce sont des blocs de mod, ce bloc de cuivre, point get. Et puis on fait juste une nouvelle ligne sans fermer ça. Et puis on va faire des points. Et puis on dira clé. Ou la clé est ce que nous sommes, ce que nous donnons un aperçu des recettes ainsi que des clés. Donc c'est, par exemple, disons qu'on va faire un gros C. et ça va être de ce point de lingots de cuivre. Quelqu' un comme un autre leggings le lingot en fait ils vont dot get. Et puis nous allons dire que la bande, la lumière et la ligne de motif est une corde et c'est le motif que nous devons faire. Donc dans ce cas, ce serait une table pleine et une table de bricolage, non ? Si nous devions le faire, le milieu serait vide. Donc, cela devrait être en fait très facilement compris avec la même idée avec les recettes que nous avons faites avec des fichiers adjacents. Alors ce dont nous avons besoin, c'est d'un critère d'application. Et un critère est fondamentalement une façon de spécifier quand vous avez cette recette déverrouillée dans votre livre, n'est-ce pas ? Donc vous avez ce livre et là vous avez ces critères. On peut donner ces noms. Donc, par exemple, on pourrait dire que la coopération devient un nom de théorie, non ? Et puis nous avons besoin d'une instance de critère. C' est pourquoi le constructeur de condition est un peu agréable aussi. A l'article est un, quelque chose que nous pouvons faire. Et a article littéralement est exactement cela. Il vérifie, hé, on a cet article ? Et si nous avons cet article, alors cette recette est ajoutée à notre inventaire ou oui, fondamentalement comme ça. Et puis à la fin. bec de canard avec le consommateur que nous avons ici. Et c'est tout. C' est essentiellement comme cela que nous ajoutons une recette en forme pour le bloc de cuivre dans ce cas. Et ça va apparaître à l'intérieur du livre. Donc, en quelque sorte un livre de recettes, dès que nous avons un lingot de cuivre dans notre inventaire. C' est ça. Maintenant, vérifions quand nous allons dans les générateurs de données et nous allons ajouter ceci. Donc, nous allons ajouter ceci entre les balises d'élément et les tables de boucle juste ici. Fournisseur d'application point de générateur, un nouveau fournisseur de recette de mode avec le générateur que vous allez. Et puis nous allons lancer des données et voir si cela nous génère une recette ici ou si oui ou non, encore une fois il y avait quelque chose manqué. Ce n'est pas improbable, mais je pense que cette fois, vous pourriez avoir de la chance. Et on a eu de la chance. Peut-être que c'était de la chance ou peut-être que c'était de l'expérience. Qui sait ? Quoi que ce soit, ça a fonctionné. Alors voyons. Une fois que cela est parti, ils vont des recettes de cours MC et aussi des avancées. Parce que l'avancement fait toujours partie de la recette fondamentalement. Donc, si vous entrez ici, comme vous pouvez le voir, c'est exactement la même chose que nous avons déjà vu. C' est une recette en forme avec tout ce qui est le lingot de cuivre et le résultat étant le bloc de cuivre. Et cette avancée fait partie des recettes. Et c'est aussi la raison pour laquelle nous devions changer le nom de l'onglet du cours. Si vous n'avez pas changé le cours ont visé à ce moment, vous aurez une erreur. Vous avez simplement besoin de changer cela en un cheval et un petit onglet. Vous pouvez également le faire mettre dans un, un trait de soulignement entre ces deux mots. Mais quoi que ce soit, il doit être fondamentalement conforme à la convention de nommage du du puits, comme les ID. Oui. C' est le mot que je cherchais. Ils y vont, c'est ça. Donc c'est une chose que nous pouvons ajouter. Et bien sûr, il y a plein d'autres choses, non ? Donc, nous pouvons, bien sûr, aussi, si nous mettons juste constructeur, si nous pouvons les obtenir, plus facile, il y a beaucoup de constructeurs, comme vous pouvez le voir très clairement. Ok, que diriez-vous comme recette, probablement plus facile d'obtenir cette recette de forme. Ok, on va encore construire des recettes de moutons. Nous pouvons aussi y aller, c' est en fait là que je voulais aller, constructeur de recettes sans forme. Et puis nous pouvons également faire une recette sans forme, par exemple, bien sûr, mais très facilement fait. Mais une chose qui est intéressante est de copier ceci et disons, eh bien, vous savez, nous pouvons utiliser tous les lingots de cuivre pour ça. Mais si je peux, vous savez, le vol comme des fils de cuivre ici, ça marche aussi pour un ou deux livres. Je ne sais pas pourquoi, mais c'est peut-être le cas. Nous pouvons, par exemple, simplement copier cette clé. Nous pouvons avoir, je pense que autant de clés que 31, mais plus de neuf n'a aucun sens dans ce cas parce que c'est le nombre de blocs d'artisanat possibles que nous pouvons réellement avoir. Alors ajoutons un fil de cuivre ici. Et puis, par exemple, nous pourrions ajouter un autre critère pour avoir, hey, vous devez avoir du fil de cuivre. C' est très, c'est pour ça que c'est un constructeur, non ? C' est un constructeur. Et la chose géniale à propos du constructeur, c'est qu'il est très facile de s'additionner, non ? On peut juste ajouter des trucs et dire hey you, c'est un autre critère sur et ainsi de suite et ainsi de suite. Maintenant, dans ce cas, ce qui va arriver, c'est que ça ne va pas marcher parce que maintenant nous avons un bloc de cuivre adjacent et puis un autre couple, Dr Jason, à cause du nom, est toujours le nom du résultat. Par conséquent, ce dont nous avons besoin, nous devons réellement ajouter un nouvel emplacement de ressource ici. Donc nouvel emplacement de ressource. Ce sera Mc cours AID, AID. Et puis nous allons appeler ça, par exemple, bloc de cuivre, ancien, alternative ou quelque chose comme ça. Et une autre parenthèse. Ils y vont. Tu sais, quelque chose comme ça. Ce n'est pas le même nom parce que sinon, comme je l'ai dit, ça ne fonctionnera pas. Réexécutons ceci et puis il va créer une nouvelle recette une fois de plus. Et aussi dans de nouveaux progrès, même si ce sont les deux, ils se produisent tous les deux au même moment où vous avez un lingot de cuivre à l'intérieur de votre inventaire, il est toujours, je crois, va ajouter un nouveau annonce si déclaration. Donc, voyons si oui ou non ça fonctionne réellement. Mais je suis assez certain que c'est le cas. C'est le cas. Et comme vous pouvez le voir, le soulignement de cuivre Block, vieux. Un. Une chose très importante. Si vous voulez que vos recettes aient le même, Donc pour occuper le même espace, par exemple, si vous ajoutez quelque chose comme coloré, quelque chose de coloré, non ? Alors vous voulez que chacune des recettes soit dans le même groupe, alors vous pouvez juste définir le groupe et avoir le même nom ici, non ? Donc ensemble groupe, je ne sais pas fff. Je vous conseille de prendre votre carte d'identité, le mettre avant le deux-points et ensuite vous pouvez faire le groupe que vous voulez. Dans ce cas, on va juste le laisser s'asseoir comme ça. Et nous allons juste, commençons juste et voyons si oui ou non les recettes que vous avez travaillé. Mais je suis assez certain qu'ils l'ont fait. Ils ont généré complètement bien et je crois que alors les recettes vont fonctionner très bien. Et c'est la raison, bien sûr, pour laquelle les avancées vont venir après cela dans cette conférence aussi, c'est parce que, comme vous l'avez vu, les avancées sont très étroitement liées à cela. Et voyons si c'est une chose. Donc pour l'instant, je n'ai pas le vol planant sur je suppose. Je crois non, je ne le crois pas. Alors prenons la couverture et jetons-les sur le sol. Et puis je reviendrai à la survie. Et dès que je les aurai, nous verrons nouvelles recettes disponibles. Comme vous pouvez le voir, revenons ici et nous éloignons de ce type. De nouvelles recettes sont donc disponibles. Et quand on ouvre ça et qu'on va sur notre droite, oui, ce n'est nulle part parce que bien sûr on peut fabriquer ça. Nous voulons aller à la table d'artisanat d'aujourd'hui, ils vont. Et puis si on regarde ça, ils vont au port, soit avec les fils de cuivre ici, soit avec les Anglais ou juste les lingots. Et on peut le faire. Donc on peut faire ça, BAM. Et là, tu y vas. Ouais, c'est comme ça, comment vous ajoutez les recettes vraiment faciles à utiliser ici. La meilleure chose, encore une fois, est de jouer un peu avec elle, de se sentir pour elle. Et oui, alors regardons comment les avancées, une peau, sont un peu plus compliquées. Peut-être même quand ils devraient l'être, mais c'est bon. Donc la première chose dont nous allons avoir besoin est que nous allons avoir besoin d'un cours appelé le mod it Vance mois fournisseur d'avancement. Maintenant, cela va implémenter dans l'interface. J' ai fait un fournisseur. C' est ceci que le bon fournisseur devrait prendre parce que je ne suis pas sûr à 100%. Il s'agit en fait des méthodes d'implémentation du fournisseur Minecraft to data.frame. C' est quand nous avons la méthode act et la méthode getName que nous devons implémenter ici. Et il y a d'autres choses que nous voulons aussi. Ainsi, par exemple, nous voulons un constructeur de fournisseur d'avancement de mode public avec le générateur de données. Et le générateur. Et nous allons juste dire ce générateur .name, qui n'existe pas encore. Donc, nous devons ajouter le générateur de données finales privées des marais, générateur , générer déchiré, désolé, l'ego. Et ce générateur est égal au générateur. Ensuite, nous devons encore ajouter cela aussi. Alors ajoutons simplement le bas aussi bien. Donc, bien sûr, enregistreur final statique, Cela va être l'organisation Apache logging. Recherchez J logger, gestionnaire de verrouillage point obtenir enregistreur. D' habitude, nous avons ce que nous avons fait, c'est que nous avons juste un gestionnaire de verrou, un point, un enregistreur et puis éteindre quelque chose. Bien sûr aussi faire cela. Les deux travaillent. C'est probablement un peu plus propre. Non seulement c'est probablement un peu plus propre, mais c'est très bien. Et puis qu'est-ce qu'un dernier fils gay statique privé. Donc, c'est un G SON de Google. Et puis il y a un G, certains pas adjacents, mais un JSON. Donc peu confus équivaut à un nouveau constructeur JSON. Jeu de points, joli point d'impression créer. On va avoir besoin de ça pour quelque chose. On va voir ça dans une seconde. Tout d'abord, à l'intérieur du nom. Nous allons revenir aux avancées de var. Assurez-vous que c'est correct, faites avancer les avancées de l'ego et faites-le. Et puis nous voulons aussi une moitié sceptique privée. Maintenant, ce chemin va être le chemin du nouveau fichier Java. C' est exact. C' est obtenir chemin, chemin avec Puffin. Nous avons, et puis vous avez aussi avec nous pas encore fait, mais c'est très bien. Donc, nous avons le fini. avancement, qui n'est qu'un chemin de retour de l'avancement dans cette détermination. Non, ne résolvez pas. Résolvez l'ego, qui est des données, puis l'avancement, obtenir l'ID. Maintenant, tout ce n'est pas encore fait, mais nous allons juste à l'espace de noms. Et puis une barre plus sur, sur le ciment. Avancements, très importants. Avancement Plural Plus, point GetID. Qu' est-ce qui obtient PAF, point plus point JSON. Ça a l'air fou. Bien sûr, disponible pour vous en tant que ressource. Encore une fois, il s'agirait de l'avancement. Ils y vont, eh bien, c'est un cours que nous allons aussi faire. Je n'arrive pas à croire que c'est toujours le E après le C, c'est un manquant là. Et donc ce n'est pas trop bon, mais c'est bon. Et puis je crois qu'on a besoin du ciment fini aussi. Oui. Donc on va créer ça maintenant. Donc, c'est un fini incroyable. Le genre E est toujours avalé. Et ce sera en fait, nous allons juste copier ça juste pour l'Halloween en ce moment parce que c'est beaucoup plus facile. Et je vais bientôt vous expliquer ce qui se passe ici. Donc, cela nous permet essentiellement d'avoir un emplacement de ressource et comme vous pouvez le voir, un constructeur d'avancement. Pour que nous puissions construire un progrès avec cela. Et comme vous pouvez également le voir, nous avons un objet JSON. Et cela sérialise fondamentalement. Cela renvoie le constructeur, qui à son tour le rend afin que nous puissions l'utiliser à l'intérieur de notre classe de fournisseurs d'avancement. Nous avons en fait une liste de, ce ne sont pas trop dingues listes. Donc, si nous regardons notre fournisseur de données, il y a des choses ici, mais si nous l'utilisons, je crois que nous pouvons vraiment voir les progrès aussi, non ? Donc, le fournisseur Advancement, donc c'est le fournisseur d'exécution de Minecraft. Nous pourrions bien sûr, aussi juste prendre cela et faire en sorte que nous étendons à partir de cela. Au lieu de mettre en œuvre le fournisseur de données. Les deux fonctionnent comme si ce n'était pas le cas. Une chose n'est pas juste et une chose est mauvaise fonctionne dans les deux sens. Mais la grande raison pour laquelle nous faisons cela essentiellement par nous-mêmes, parce que le fournisseur d'avancement a quelques choses qui ne nous sont pas ouvertes. Si nous l'étendons. Laisse l'essentiel de tout ça, on va juste le laisser comme ça. Cependant, ce que nous voulons, c'est cette liste ici, alors nous allons simplement copier ceci. Copiez cette liste. Et puis voyons ce que c'est. C' est donc une liste immuable de certains types d'avancées ici. On va juste faire une nouvelle histoire. Fondamentalement onglet ou pas un nouvel onglet, nous allons y ajouter. Donc on va faire, c'est qu'on va maintenant aussi créer une nouvelle classe. Encore une fois, ce sera l'histoire de Mod chez Van ciments. Et ceux-là vont être, cela va mettre en œuvre quelque chose de fou aussi. Cela va mettre en œuvre le consommateur avec le consommateur avec l'avancement fini. Non, ce n'est pas du tout. Ce que je veux. Celui-ci est ce que je veux terminer l'avancement d'un aller et mettre en œuvre des méthodes. Nous allons implémenter la méthode d'acceptation. Et c'est tout ce dont nous avons besoin. Et je vais demander, je vais copier ça aussi. En fait, tu sais quoi, non, allons-y, faisons-le. Donc ça va être, appelons ça le consommateur, un peu plus facile. Donc, ce que nous voulons est fondamentalement que nous voulons aller pour terminer les avancées dot builder. Donc c'est le constructeur que nous venons de créer à l'intérieur d'ici. Et ce constructeur, nous pouvons dire constructeur de points. Et puis nous pouvons aller de l'avancement et ensuite des avancées, constructeur, constructeur de points. Et puis nous créons une base. Donc, avec l'ID parent, non, ce n'est pas correct avec l'ID parent. Il s'agit de l'emplacement de la ressource. En gros. C' est sous quoi ? Sous quoi ? L'avancement est faux. Donc, fondamentalement, chaque avancement a une avancée qui vient avant. Sinon, c'est la première avancée dans le groupe. Et cela spécifie ce que l'Avancement se trouve avant. Donc, dans ce cas, disons, par exemple, Histoire, outils de fer. Nous allons juste prendre cela comme exemple ici. Ensuite, nous avons avec affichage. Maintenant, les informations d'affichage peuvent être toutes sortes de choses. Tout d'abord, bien sûr, ce sera un point spécifique. Donc on va juste prendre les blocs de mod, mod blocks, point, bloc de cuivre, point obtient. Donc on va prendre le bloc de cuivre et ensuite on pourra avoir un, un nom et une description. Donc, nous allons juste faire un nouveau composant de texte de traduction. Et au lieu de cela, nous devons en fait spécifier une clé de traduction. Je vais juste faire de l'avancement, de l' avancement, de l'histoire, du cuivre, du titre de point de bloc, quelque chose comme ça. Et puis nous pouvons copier ça à nouveau. Donc un autre plus calme que de copier ça. Oh mec, ce n'est pas comme ça. Et ça va être ça. Et cela, nous pouvons maintenant ajouter à l'intérieur de notre fournisseur de langues ici. Copions ça deux fois. Assurez-vous que c'est correct. Il y a quelque chose à dire à propos de mettre le, mettre le, il est ici, dans des variables de chaîne comme. Mais appelons ça la couverture. Et puis ça va être quelque chose comme des blocs de trémie de chœur. Bien sûr. Pourquoi pas ? Et puis nous allons faire aussi, il y a aussi d'autres choses qui arrivent ici. Ce sera le type de trame nul. Donc, dans ce cas, nous pouvons spécifier un temps d'image. On va faire de cette nonne une autre tâche Goldman. Et c'est vrai, c'est un toast. Donc, c'est la chose qui apparaît dans le coin supérieur droit. Lorsque vous avez ceci, vous voulez l'annoncer au chat. Et puis se plie aussi pour savoir si oui ou non cela va être aussi c'est comme un plus bas. L' édition EO est fausse et nous avons alors critère de largeur. C' est une fois de plus le critère que nous voulons. On va appeler ça le bloc de cuivre. Ensuite, nous voulons avoir le déclencheur de changement de stock. Je sais que c'est une quantité folle de choses. Je conseille juste de jouer une fois de plus avec elle pendant un certain temps parce que ce n'est qu'un exemple. Donc nous voulons que cela se produise si nous avons quelques blocs dans notre inventaire. Et puis une fois que tout est fait ici, nous pouvons construire avec le consommateur, puis un nouvel emplacement de ressource. Bien sûr Mc. Mc étaient Smart MOD ID. Et puis aussi à l'intérieur de bloc trémie de boues histoire. Maintenant, ils n'écrivent plus personne. Pas tout à fait. nouvel emplacement de ressource construit vraiment juste une parenthèse quelque part, trop ou trop peu. Trouvé. Deux. Vous êtes sûr de celui-là ? Pas construire. Je suis assez certain que c'est correct. Je suis probablement la construction du mauvais pour le mauvais constructeur. Encore une parenthèse ? Oui, une parenthèse de plus et une de moins ici. Comme je l'ai dit, c'est pour ça que je voulais le copier parce que oui, c'est tout un tas de Qu'est-ce que l'enfer. Mais oui, cela crée maintenant une nouvelle avancée à l'intérieur de l'histoire. Avancements. Et voyons ce qu'on peut voir. Nous devons également ajouter cela aux générateurs de données. Cela va être ajouté tout en bas ici. Donc nous allons juste dire des trucs de générateur et de fournisseur, puis de nouveaux progrès de mod, fournisseur et générateur. Et gardons ça. Et je crois que c'est tout ce que nous devons faire. Non, ce n'est pas tout à fait ce que vous devez faire. Nous devons également entrer dans R. Nous pouvons effectivement entrer dans les fournisseurs de données et chercher le fournisseur d'avancement. Et en gros, il suffit de copier l'ensemble de la méthode d'acte ici. Et puis il suffit de le coller ici. Je pense que cela devrait fonctionner très bien avancement. Donc c'est probablement juste le laissez-moi juste vérifier. Moi, ce n'est pas l'avancement, mais fini , avancé, mais dans notre cas, l'ego. Et puis c'est au lieu de juste, au lieu de copier, nous allons juste sérialiser. Et puis à la fin ici, nous avons aussi un consommateur d'avancement non fini, mais de même avec celui-ci. Je suis l'avancement, mais j'ai fini l'avancement. Et puis ici, nous aimerions l'image, désolé, des avancées. Alors nommez les avancées de finition. Peut-être, peut-être que les avancées de mode ont en fait plus de sens dans ce cas. Mais nous allons trouver, voyons. Je peux voir. Oui. Et puis une fois que cela a été fait aussi, une fois de plus, toutes les pertes ou à télécharger, parfois un peu plus facile. Et puis juste en passant par le passé, exécutons les données. Donc, exécutez des données et voyez si cela fonctionne ou non. J' hésite à dire que cela fonctionnera immédiatement parce que nous avons rencontré des problèmes les deux dernières fois. Mais je suis vraiment un là vous allez. Donc, tous les fournisseurs ont pris 136 millisecondes. C' est plutôt sympa. Et puis nous allons aussi voir que de nouvelles avancées, ça va être généré à l'intérieur d'ici, je crois. Voilà, tu y vas. Il s'agit donc d'un avancement de recette, puis de l'avancement de magasin, de blocs de cuivre, et c'est à quoi ressemble l'avancement dans ce cas. Oui, alors nous allons diriger le client et je crois qu'on devrait obtenir cette avance immédiatement. Eh bien, commençons juste un nouveau, nous allons commencer un nouveau monde où nous n'avons pas cette avancée et ensuite nous serons en mesure de voir ça. Et puis le générateur de données, disons que l'Odyssey est en fait terminé. Enfin, ce qui est important que je, surtout comme les avancées pourrait être un peu compliqué pour le moment. Ce que je peux vraiment dire, c'est qu'une fois de plus, c'est juste une question d'essayer les choses et de dire, ok, je veux le faire. Essayer ça ne marche pas. Ok, laisse-moi essayer d'une autre façon. Tout d'un coup, ça marche et puis c'est compris. Alors, laisse-nous dire que, je ne sais pas, allons juste chercher du fer à repasser. Et je crois que dès que j'aurai le fer, j'ai besoin de quelques progrès, bien sûr. Et puis nous regardons les progrès, ils vont donc n'est-ce pas les outils de fer ? Et comme vous pouvez le voir, qu'est-ce que cette couverture acquiert des blocs de coupe. Et dès que j'aurai mon bloc de cuivre, ils vont faire des progrès, couvrir et découvrir ici, apporter, acquérir quelques blocs. Nous regardons les progrès. Maintenant, il est rempli. Donc, c'est aussi facile que de faire ça. Maintenant, comme je l'ai dit au début, cela peut être un peu intimidant, mais dans l'ensemble, encore une fois, tout est disponible en tant que ressource. Et cela rend les choses un peu plus faciles. Si tu en veux plus. Si vous voulez ajouter ces catégories indifférentes, disons alors bien sûr que vous devez ajouter ces éléments indifférents ici, donc Story et ainsi de suite. Donc c'est important à noter. Et en dehors de cela, je crois que chaque année générateur de données a été couvert dans ce cas. Oui. Donc c'est ça, c'est ça. Et bien sûr, dans notre cas, c'est pourquoi j'ai dit, ne supprimez pas tout ce que vous avez fait ici, que tous les fichiers adjacents. Parce que bien sûr, nous venons d'ajouter fondamentalement le bloc de cuivre et le cuivre ou le bloc et la copie et c'était tout. Donc, le reste, soit vous devez ajouter ou vous pouvez simplement garder vos ressources là dedans. Parce que sinon nous allons avoir un peu noir et violet dans votre jeu. Aussi très important que pour votre, pour votre propre bloc. Donc, pour un blocs personnalisés, par exemple, pour nous, c'était le feu électrique. Très important que vous ne supprimiez pas cela à l'intérieur de votre dossier d'actifs, car c'est quelque chose de spécial. Et d'habitude, tu veux que ces choses soient là dedans. Ils ne sont pas écrasés, donc il n'y a pas de problème. Si vous avez des choses dans vos actifs et que vous les avez faites manuellement et que quelque chose est généré automatiquement. Ce n'est pas comme ça que ce n'est pas un problème. Le jeu fonctionne juste. Quel est ce qui est plus logique de prendre quelqu'un comme ça. Et oui, c'était ça pour les générateurs de données. J' espère que cela vous a été utile. Peut-être pour surtout en fin de compte ici, c'est un peu plus compliqué, mais je pense que nous avons traversé assez bien. S' il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 76. (Minecraft) Entièrement entièrement de carrelage et capacités: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons jeter un oeil à notre entité de tuiles. Et nous allons en fait corriger un peu parce qu'il y a quelques choses qui n'étaient certainement pas qui n'ont pas fonctionné correctement et bien, l' une des choses est d'abord, le niveau d'énergie. Donc, je ne suis pas sûr à 100% que j'ai essayé d'être intelligent en étant comme un et ajoutons juste cet entier et ce niveau tôt et ça va aller. Ça ne marche pas vraiment. Le problème étant que le niveau d'énergie actuel n'est lié que dans le client. Donc, le serveur sorta ne le sait pas. Il le sait en quelque sorte, mais il n'est pas vraiment étrange, juste pas une bonne idée. Donc la première chose que nous allons faire est de supprimer le niveau d'énergie i. Nous allons avoir un tas d'erreurs. Cela va arriver quelques fois pendant cette conférence, mais c'est bon. Parce que ce que nous voulons, c'est que nous voulons utiliser une, une, une, une autre capacité. C' est aussi une sorte de conférence sur les capacités, regardant un peu plus sur les capacités. Personnellement, je dois être honnête, je les trouve un peu confus et beaucoup de façons parce que je ne sais pas, j'aurais probablement fait un peu différemment. Il y a peut-être quelque chose que je ne comprends pas, mais je ne sais pas. Je les trouve un peu confus. Quoi qu'il en soit, créons à l'intérieur de notre dossier d'entité de titre, ou un paquet ou une nouvelle classe appelée le stockage d'énergie personnalisé. Maintenant, le stockage d'énergie personnalisé va faire deux choses. Tout d'abord, il va s'étendre à partir du stockage d'énergie plus au lieu de l'énergie nette du microphone. Maintenant, c'est la façon dont fonctionne le système d'alimentation flux Redstone. Et puis il va aussi implémenter I nb t sérialisable du composé nb t. Donc assurons juste que nous pouvons, nous pouvons fondamentalement sérialiser et désérialiser. Donc, faisons implémenter des méthodes s. C'est le sérialisé. Donc, au lieu d'ici, nous avons une étiquette froide NVT composée, nouveau composant Vt. Et à l'intérieur de cette balise, nous allons mettre un entier. Et cela va s'appeler l'énergie. Énergie stockée. Ce n'est pas en fait quelque chose que nous pouvons vraiment oui, c'est bon. Et puis désérialiser va être réglé énergie, ce qui est en fait quelque chose que nous n'avons pas encore fait. Et BET point GetInt énergie. Assez fou. Je vais mettre de l'énergie. On peut juste voir ce qu'il y a ici. Tout ce que nous avons également besoin de retourner la balise ici. Et au lieu d'ici, nous devons créer un nouveau vide public. Réglez l'énergie, définissez l'énergie, l'énergie entière. Cette énergie stockée, énergie. Et puis sur l'énergie a changé. C' est juste quelque chose qui arrive qui fait froid quand l'énergie change l'objectif. Donc c'est protégé. Le vide sur l'énergie a changé sans rien dedans. Au fait, en ce moment. Parce que nous allons écraser ça. Que quand nous descendons, quand nous, quand nous continuons avec cela. Et puis nous allons également créer un constructeur avec cela, je crois. Oui, capacité, puis transfert max. On va appeler le super. Et puis nous allons aussi dire que cette réception maximale est égale à 0. Et maintenant, c'est en fait quatre. Sortir aussi quelque chose. Donc, quand nous sortons quelque chose d'un générateur, donc par exemple, générateur bien sûr, vous ne recevrez jamais rien. Vous seriez toujours transféré. Dans ce cas, nous avons en fait un système confiné où nous allons l'utiliser. Et si nous regardons dans le système énergétique, alors vous pouvez réellement voir, par exemple, recevoir de l'énergie. Si nous ne pouvons pas recevoir, alors nous allons juste retourner un 0 ici. Si nous pouvons recevoir, alors nous allons dire, hé, nous avons la capacité et aussi un maximum de réception. C' est juste, juste une façon de, ok, qu'est-ce qu'on fait ici ? C' est juste un tas de maths, en s'assurant que tout fonctionne bien. Maintenant, nous allons en fait remplacer presque toutes les méthodes que nous avons. Donc, voyons, c'est, donc d'ici à fondamentalement ici, je vais copier cette somme. Donc nous allons avoir quelques méthodes ici. Ainsi, par exemple, peut générer de l'énergie et consommer de l'énergie. Générer de la puissance a du sens est juste augmente la puissance, puis consommer de la puissance diminue juste la puissance. Maintenant, bien sûr, on ne peut pas aller en dessous de 01 chose qui est important. Et nous ne pouvons pas dépasser notre énergie maximale stockée. Et je crois que c'est fondamentalement tout. Nous avons aussi quelques écrasements ici. Notre vie de minuscules perles ici, mais seulement un peu. Et puis à l'intérieur de notre entité de tuiles, nous allons créer un nouveau stockage d'énergie privé et personnalisé final. Stockage d'énergie. Cela va appeler la méthode de stockage de l'énergie de création que nous n'avons pas encore créée. Nous voulons aussi un privé. Final paresseux optionnel est le de stockage à haute énergie. C' est l'énergie, appelons-ça le gestionnaire d'énergie. Bien sûr. C' est un optionnel paresseux du stockage d'énergie. Maintenant, c'est bien sûr la capacité que nous avons, que nous devons donner ici. Donc, à l'intérieur de la capacité Get, nous ajoutons maintenant une déclaration else if, qui va être à la capacité égale à ceci, l'énergie de capacité, l'énergie pour assez facilement. Et si c'est le cas, alors nous retournerons les filets moulés à points du gestionnaire d'énergie. Pas tout à fait ce que je veux. C' est ce que je veux. Droit ? Donc, si c'est le cas, alors nous allons retourner le compte de la poignée d'énergie que c'est un coût. Et puis nous voulons aussi la méthode où nous créons cela. Nous voulons donc le coût du stockage de l'énergie. Donc ça va être un client privé. Stockage d'énergie, créer un stockage d'énergie. On n'a rien ici. Nous allons retourner un nouveau stockage d'énergie personnalisé avec, disons, une capacité de 100 et, et le mex d'un, le transfert n'a pas vraiment d'importance. Mais aussi, nous allons passer outre à l'énergie changée. Et on va dire Mark sale. L' idée ici étant que nous allons marquer la marque sale marque essentiellement la direction qu'ils vont intérêts qui sont Chung continuellement dire à MC que vous enregistrez sur disque plus tard afin que nous nous assurons que cela est réellement sauvegardé. C' est l'idée approximative de ce que Mark sale fait sur enlever. Avons-nous la méthode remove ici en fait ? Eh bien, je n'ai jamais ajouté ça apparemment. Donc, nous allons juste écraser la méthode remove aussi et nous assurer juste que nous invalidons à la fois le laser et les options ici. Au lieu d'une tique, c'est le premier point du monde est distant. Retour. Pourquoi est-ce le cas que nous ne voulons pas prendre le client ? Donc, à distance signifie que nous sommes sur le client et nous ne voulons pas prendre pour se produire sur le client. Par conséquent, nous allons revenir si nous sommes sur le client, sur le serveur, le reste va fonctionner. Nous avons donc besoin d'un niveau d'énergie. On va dire le stockage d'énergie, l'énergie stockée. Donc le stockage de l'énergie, l'énergie stockée. Et puis cela, dans ce cas, devrait également être géré. Donc l'idée de, eh bien, nous ne pouvons stocker que 64 est déjà gérée par la capacité. On va le garder ici pour le moment, pour le moment. Mais cela ne devrait pas vraiment être nécessaire. On va le garder ici. Néanmoins. Stockage d'énergie, point point point point génère de l'énergie un. Donc pour chacun un diamant où générer une puissance dans ce cas. Ici, encore une fois, ce sera le stockage d'énergie, l'énergie stockée. Et je, bien sûr, le fichier modifié ici est disponible en tant que ressource une fois de plus, sorte que vous n'avez pas à taper tout. Et je vais aussi faire une erreur quelque part. Ce n'est pas ce qu'on veut. Donc extraire l'énergie un. Et puis important que nous disons vraiment faux ici c'est la simulation. Donc, cela simulerait la même chose avec l'élément d'extraction. Il y a aussi un booléen pour la simulation là. Donc oui, le niveau d'énergie dont on n'a plus besoin. Et je crois que la seule chose que nous devons ensuite faire est la lecture et l'écriture et le stockage de l'énergie. L' autre chose qui était une chose, c'est que quelqu'un a remarqué que quand ils sont sortis, alors ils ont économisé et sont sortis de leur jeu et sont retournés dans le fait que le stockage d'énergie n'a pas économisé. C' est bien sûr vrai. C' est pourquoi nous allons nous assurer qu'il sauve. Donc ça va être de l'énergie. Nous allons aussi mettre la tique ici aussi. Donc Tic Tac Toe, compteur GetInt je crois est le nom ou je l'ai tiré prendre taux. Oui. Chemise et appelons-le, gardons ça comme compteur. Je pense que c'est bon. Juste pour que nous ayons le Aussi bien. Habituellement, ça ne fait pas d'importance, mais ce serait vraiment stupide si nous avons la tique réglée à dix mille, vingt mille ou quelque chose comme ça. On doit attendre comme un tas de temps. Et puis juste parce que nous recommençons la partie, nous avons réellement réinitialisé le tic. Ce serait stupide. Et c'est pourquoi nous voulons probablement mettre la tique actuelle là aussi. Ce n'est vraiment que quatre choses quand vous l'avez un peu, une avance plus tard ou plus longue. C' est ce que je voulais dire. Un peu plus longtemps. Donc, faisons aussi l'énergie de sortie étiquetée. Et le stockage d'énergie sérialise nb t, et puis c'est tout. Et je crois que l'autre chose que nous voulons est que nous voulons marquer sale ici juste au cas où cela ne devrait pas être techniquement nécessaire parce que nous commercialisons 30 chaque fois que nous extrayons de l'énergie ou régénérons de l'énergie, juste dans , marquez-le 30 ici aussi. n'y a pas de vraie raison de ne pas appeler ça. Maintenant, tout va bien. Mais cela aurait dû faire en sorte que l'écran et le conteneur soient un peu confus à propos de quelques choses. Donc, les écrans ne confondent pas du tout. Le conteneur, cependant, devrait être confondu. Oui. Oui, le conteneur est confus parce qu'il n'a plus le niveau d'énergie ici. Et il y a aussi quelques autres choses que nous devons faire dans le conteneur qui vont être très intéressantes en fait. Maintenant, la première chose est que nous allons réellement ajouter une nouvelle méthode à l'intérieur d'ici. Je vais le copier et je vais l'expliquer du mieux que je peux. Parce que c'est un peu fou si je le dis moi-même. Alors mettons ça ici. Copions-le. Obtenir de l'énergie est une autre méthode que nous aussi oui, obtenir de l'énergie. Bien sûr, il y a aussi une nouvelle méthode dont nous avons besoin et c'est essentiellement le remplacement pour cela est le remplacement du niveau d'énergie ici bas. On va juste supprimer ça. On va garder ça et tout va bien. Donc, et puis attirer la puissance va être appelé ici, puissance de piste, froid à l'intérieur de notre constructeur pour cela. Maintenant, l'idée de la piste Power est la suivante. C' est quelque chose de nouveau pour moi aussi. Mais comme vous pouvez le voir, nous avons cette méthode de référence, qui est, vous savez, a un peu bizarre comme obtenir entier et puis avec ces codes ici, et puis nous avons un grand décalage de 16 bits. Qu' est-ce qui se passe ? Eh bien, l'idée étant ça, et c'est généralement quelque chose que je ne savais pas aussi bien. Apparemment, les serveurs dédiés sur site, les entiers sont réellement convertis en courts métrages. Qu' est-ce que ça veut dire ? Eh bien, un entier est un 32 bits. Nombre, un court est un nombre 16 bits. Et c'est pourquoi nous avons apparemment besoin de les séparer en deux entiers 16 bits. C' est pourquoi nous avons peu décalé ici afin que nous puissions fondamentalement prendre les 16 premiers chiffres, puis mettre les 16 premiers bits du nombre, les mettre dans le premier. Et puis le second, nous avons décalé 16 bits vers la droite, je suppose, et puis prendre les 16 autres. C' est en quelque sorte l'idée ici. Je dois être honnête avec toi. Je n'y réfléchirais pas trop longtemps. C' est juste quelque chose que nous devons faire. Et si cela arrive vraiment, je vous conseille de simplement examiner quelques choses de comment cela fonctionne. La puissance de piste est nécessaire, la méthode pour que le client sache ce qui se passe sur le serveur. Donc, dans ce cas, nous faisons tout sur le serveur. Et le serveur est comme huit. Voilà, client. C' est ce qui se passe. C' est un peu bizarre pour moi que nous devons faire ça, mais c'est apparemment ce que nous devons faire. Alors ok. Quand on regarde dans l'énergie, on obtient juste la capacité de la tuile dans T. Donc, l'énergie. Et nous allons juste être, et nous rendons ça, le stockage d'énergie. Donc, ils ont de l'énergie stockée. Et si cela n'existe pas, alors nous allons juste retourner un 0. Mais bien sûr, il existe, donc ça va se passer. Maintenant, à l'intérieur de notre écran, nous avons maintenant le niveau d'énergie qui ne fonctionne pas. Mais la bonne chose, c'est que ce n'est pas un problème parce que maintenant nous avons l'énergie get. Donc, nous avons vraiment de l'énergie. Obtenez de l'énergie. Et je crois, si je ne me trompe pas que c'est tout ce que nous devons faire, et puis ça marche. Espérons que c'est le cas. Mais je suis en fait, non, je pense que c'est tout ce dont nous avons besoin. Et surtout, je crois que c'est cette méthode de puissance de piste, ce qui est un peu bizarre. Je ne vais pas mentir, mais on va essayer. Commençons. Voyons voir si ça marche ou non. Mais en fait, je pense que ça va bien marcher. Et vous, je ne suis pas sûr à 100% pourquoi j'ai eu l'idée que le niveau d'énergie soit juste un entier ici. Ça ne marchera pas de toute façon. Mais tu sais, parfois, parfois, tu as une idée et ensuite tu es genre, c'est bizarre que ça n'ait pas dû être fait comme ça. Mais c'est bon. C' est pour ça que nous sommes là, c'est ce que nous allons arranger pendant que nous allons jeter un coup d'oeil à ça. Donc, fondamentalement, j'ai également ajouté tous les fichiers JSON pour chacune des choses sauf pour la langue. Et posons l'électrifié et regardons dedans pour que tout fonctionne. Prenons un diamant où prenons deux piles de diamants. Prenons aussi comme une pile de fils de cuivre et voyons si nous le plaçons dans si nous allons ou non obtenir de l'énergie. Nous recevons de l'énergie, donc c'est plutôt bon. Les diamants diminuent. Alors avant. C' était le problème que, parfois, vous pouviez doubler vos diamants en les sortant. Et si la tique était au bon moment, alors le serveur et le client, le DD de Dieu se sont synchronisés. Et puis, fondamentalement, vous avez été capable de doubler votre pile. Ça ne marche plus. Si nous mettons dans l'eau du placard, comme vous pouvez le voir, les émeraudes sont traitées, mais l'énergie ne diminue pas. Donc c'est intéressant. Maintenant, je crois que la seule chose qui ne diminue pas est l'énergie parce qu'elle n'aime pas qu'elle ne se montre pas. Donc je crois que si on est à 32 ans , ça va s'arrêter. Ça ne s'arrête pas. Très intéressant. Voyons pourquoi c'est le cas. En dehors de cette somme sont une sorte de jeu. D' accord, en fait, j'ai pu arranger ça. Donc, comme vous pouvez le voir, cela augmente l'énergie ici. Et quand je l'ai mis dans les fils de cuivre, ils diminuent en fait. Et puis il s'arrête à 0 et il ne génère plus d'émeraudes. La raison pour laquelle ça n'a pas marché, je peux vous montrer que je n'ai pas utilisé l'énergie consommée ici. Donc j'utilise le pouvoir d'extraction. Je crois que ça s'appelle de l'énergie d'extraction. C' était ce que c'était. Je ne suis pas sûr à 100% pourquoi ça n'a pas marché. Parce que j'utilise la méthode d'énergie d'extraction dans mon scénario de testeur parce que j'ai toujours testé que tout. Et là, ça a marché. Mais dans ce cas, ce n'est pas le cas. Je ne sais pas pourquoi. Je sais juste que consommer de l'énergie est quelque part comme il fait froid quelque part dans mon scénario de testeur. Mais il ne faisait pas froid à l'intérieur de la, au lieu de ce projet ici. Et je ne suis pas sûr à 100% pourquoi. Maintenant, il peut y avoir quelque part où avoir supervisé ou, ou je ne l'ai pas vu. Donc comme quelque part où je n'ai pas appelé ça. Un peu bizarre. Un peu bizarre. Si jamais je le trouve là où c'était, je vais bien sûr certains, vous savez, peut-être ajouter un peu plus quelque part. Mais oui, maintenant ça fonctionne avec l'énergie consommée. Encore une fois, il est seulement quelque chose comme très mineur, mais il devrait aussi l'être, devrait également fonctionner. Dans ce cas, est qu'il va réellement stocker l'énergie d' une fois que vous ouvrez Minecraft à l'autre. Donc ce que nous pouvons faire, c'est que nous pouvons juste vérifier cela aussi. Parce que c'était quelque chose qui était un problème avec un étudiant qui a demandé, eh bien, vous savez, il y a, j'ai de l'énergie là-dedans, mais si je ferme le monde, mon énergie est tout d'un coup partie, ce qui bien sûr, eh bien que vous ne voulez pas ça. Alors voyons. Donc, si nous mettons un peu d'énergie sont justes. Donc disons quelque chose comme, je veux dire, faisons-le comme ça et allons juste sortir de votre sauver le monde. Et puis revenons-y et voyons si tout a été sauvé ou non. Mais il a été sauvé. Et aussi les diamants avaient été sauvés et l'énergie aussi. Mais il ne l'a pas détruit accidentellement là-bas. Mais oui, alors et ensuite vous pouvez entrer, mettre les lingots de cuivre ou le fil de cuivre ici et les émeraudes. Oui, c'est fondamentalement ça. Pour le fixe à l'électrifier sont ici. Et Yan est aussi comme une courte exploration d'un peu des capacités ici. Dans ce cas, l'énergie. Globalement. Les capacités sont un peu plus complexes que le premier pensé, surtout de moi-même personnellement. Donc oui, c'est la vue d'ensemble générale ici pour cela et aussi comment réparer l'entité de tuile. Il y avait quelques bien, je veux dire, littéralement des choses qui n'étaient pas synchronisées correctement. Alors oui, j'espère que ça t'a été utile. J' espère que cela fixera le puits, les questions concernant le pouvoir là-bas. Je vous conseille également de jeter un oeil, jeter un oeil sur la classe de stockage d'énergie ici et aussi sur le stockage de haute énergie. C' est essentiellement ce qui se passe, ce que la mise en œuvre de ce très utile à regarder. Et ça va vraiment aimer faire croire que certaines choses sont plus claires, non ? Donc, ça le rend beaucoup plus clair. Et vous serez probablement capable de supposer beaucoup de ce qui se passe de ça aussi. Donc oui, j'espère que ça t'a été utile. S' il y a des questions concernant quelque chose qui a été fait ici, bien sûr, n'hésitez pas à demander et je serai sûr de répondre. Aussi, rappelez-vous toujours que l'intégralité du code source est disponible en téléchargement, en tant que ressource. Et oui, c'était tout pour cette conférence. Et oui. 77. (Minecraft) Créer des commandes personnalisées: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons jeter un oeil sur la façon de créer vos propres commandes personnalisées. C' était essentiellement suggéré, ou c'était une demande dans la Q et une section de ce cours. Et quelqu'un a dit, Hey, je veux essentiellement avoir une commande maison et une commande retour à la maison. Pour que je puisse fondamentalement sauter d' une partie du monde à une autre partie du monde. Et oui, nous allons mettre en œuvre ceci. Et c'est fondamentalement aussi comment faire vos propres commandes personnalisées. Commençons par ça. Alors lisons à nos yeux notre MC pire, un nouveau paquet, qui va être le paquet de commande. Maintenant, c'est bien sûr une fois de plus, juste la structure ici peut être changée et changée autour. Mais je pense qu'un paquet de commande ici a du sens. Et au lieu de cela, nous allons faire deux nouvelles classes. L' un est la commande set home, et l'autre sera la commande return home. Donc, ce seront deux commandes différentes que nous allons implémenter. Maintenant, il y a, je vais vous montrer comment j'ai compris comment ça marche. Parce qu'au début, je pensais que ce serait vraiment compliqué parce que les microbes ont changé la façon dont les commandes fonctionnent et comment vous pouvez réellement les enregistrer. Mais après avoir creusé un peu, j'ai trouvé un moyen très, très facile de le faire. Et j'ai compris cela par, faisons juste ce qui suit. Donc, si nous appuyons sur Contrôle Shift F, Ensuite, nous allons et fondamentalement avoir ce chemin trouver, trouver des chemins. Et si nous allons à la portée, alors nous pouvons chercher quelque chose dans toute la portée. Et ils sont le commandement de la forge est la chose que nous voudrions vraiment regarder. Et cela va être entendre la commande de mots si nous double-cliquez dessus. Et comme vous pouvez le voir, c'est toutes les commandes que vous pouvez faire essentiellement avec la barre oblique. Et puis tu as des choses différentes pour ça. Ainsi, par exemple, deux barre oblique TPS, puis vous obtenez la sortie TPS. Et si nous puis bouton du milieu de la souris cliquez sur l'une de ces commandes. Ainsi, par exemple, la commande TPS, et vous pouvez voir comment cela est construit. Maintenant, nous allons le construire d'une manière un peu différente, mais presque la même. Et comme vous pouvez le voir, la commande elle-même est simplement enregistrée auprès du répartiteur de commandes. Donc, cette commande a simplement dans son constructeur un répartiteur de commandes. Donc c'est exactement ce que nous allons aussi avoir. Et puis il appelle la méthode de registre. Maintenant, on va le faire un peu différemment. Donc, au lieu d'appeler réellement ces méthodes de registre qui sont à l'intérieur d'ici, par exemple, ce serait qui rend une sorte de constructeur d'arguments. On va faire l'argument nous-mêmes. Pour l'instant. Ça a l'air un peu, oh, qu'est-ce qui se passe ici ? Que s'est-il passé ici ? Ne vous inquiétez pas pour ça. On va passer par là. Je pense qu'en fin de compte, ça dépend de ce que vous voulez bien sûr faire. Ça pourrait devenir plus ou moins compliqué. Mais je peux vous le dire dans l'ensemble, faire une nouvelle commande, pas si compliquée, selon ce que vous voulez en faire. Je veux dire, si vous je ne sais pas si tout d'un coup, vous n'aimeriez pas qu'un village entier apparaisse. Ça pourrait être un peu plus compliqué. Cependant, si vous, comme je l'ai dit, vouliez simplement réduire le retour à la maison, ça va être très facile et nous allons jeter un coup d'oeil à ça. Et maintenant mon premier numéro et c'est pour ça que je te dis que je ne savais pas. D' accord. Où pourrais-je enregistrer ces commandes ? Parce que je ne savais pas, où est ce froid maintenant, si on y pense, c' est un constructeur. Et bien sûr, ce constructeur doit être appelé quelque part. Et nous pouvons réellement comprendre cela en appuyant sur Alt F7. Et puis nous pouvons voir cela à l'intérieur du gestionnaire interne fort dans un petit événement abonné appelé sur l'événement de registre des commandes. Avec l'événement de commandes de registre. Ceci est essentiellement initialisé avec le répartiteur d'événements ici. Donc c'est le, c'est le constructeur qui est appelé. Et puis nous disons fondamentalement config command register et ensuite bam, c'est tout. Donc c'est le truc vraiment cool. Maintenant, c'est essentiellement comme ça que j'ai compris comment cela fonctionne réellement. Je voulais juste le mentionner rapidement au début de la vidéo pour que vous sachiez où ça venait parce que je ne pouvais rien trouver ailleurs. Et oui, alors faisons d'abord un constructeur ici. Donc public set home commande avec, comme nous l'avons dit, le répartiteur de commande de type une source de commande. Et ça va être le répartiteur. Et au lieu d'ici, donc ce que nous pourrions faire, par exemple, c'est que nous pourrions copier quelque chose. On va construire tout seul et bien, on verra à quoi ça ressemble. Donc, tout d'abord, nous avons le répartiteur, ce registre de points absolus. Et à l'intérieur d'ici, nous construisons maintenant notre, notre commande et ensuite nous avons des commandes dot littéral. Donc c'est le printemps, donc c'est le nom de la chaîne que nous devons taper, donc barre oblique, et alors que devons-nous taper ? On va rester à la maison, par exemple. Et puis à la fin des commandes littérales, nous allons faire un autre point et ensuite nous allons les dire. Et nous aurons un autre littéral. Donc, en gros, ça va être slash à la maison et ensuite mis en place. Et cela est fondamentalement définit la position du joueur actuellement. Et ensuite, nous aurons une autre commande qui sera le retour à la maison, et ensuite nous rentrerons à la maison. C' est essentiellement comme ça que nous allons faire ça. Donc, oh, désolé, pas alors, mais nous avons vraiment besoin de définir une nouvelle commande ici, désolé. Donc, c'est aussi la commande point littérale, et ceci est ensuite défini. Et encore une fois au littéral ici, nous allons exécuter quelque chose et ce ne sera que les exécutions. Une méthode, disons que nous allons appeler la méthode execute. Et à l'intérieur d'ici nous avons besoin, si nous survolons ça, nous avons vraiment besoin d'une commande. Donc, comme vous pouvez le voir, c'est le constructeur d'arguments qui sera retourné dans les commandes de forage ici. Et nous le construisons juste à l'intérieur de notre structure ici même. Donc, cela peut prendre un commandement croyait que cet Oman, ils égo. Et puis on peut en faire un nouveau. Comme je l'ai dit, c'est un peu plus compliqué. Vérifions rapidement cela. Donc c'est la commande. Et puis on en aura un ici. Et puis à l'intérieur d'ici, nous allons retourner quelque chose et ce sera la méthode privée et nouvelle, intérêts privés à la maison. Et ça va faire froid ici. Et nous avons aussi besoin de la source de commande. Source. Et ça va être la source du Commandement. Voilà, tu y vas. Bon, donc c'est fondamentalement ce que nous voulons pour le répartiteur, l'enregistrement ici, comme je l'ai dit, vous pouvez soit regarder les commandes dans les commandes de forge pour voir comment cela fonctionne. Ainsi, vous pouvez également exiger certaines choses comme le niveau d'autorisation et, et exécuter où il s'exécute. Donc il y a quelques choses que vous pouvez faire ici. On ne va pas devenir trop fou là-dedans. Si vous voulez comprendre quelque chose d'autre, alors vous devrez le faire vous-même. Je le ferai. Je suis juste ici pour te dire, ok, c'est comme ça qu'on va faire un nouveau commandement. Et puis toute fonctionnalité au-delà, ce sera votre truc à comprendre, non ? C' est donc la commande set. Maintenant. Et tout d'abord, on peut en retourner un ici, et ensuite ça ira bien. Donc, en gros, nous allons juste retourner un 1 et ensuite nous allons construire, ok, comment pouvons-nous définir la position réelle de la maison ? Eh bien, la bonne chose est que cette source de commande, si nous ouvrons ceci avec le bouton du milieu de la souris, cela a en fait beaucoup de choses. Par exemple, le monde. Nous avons aussi le, nous devrions avoir le joueur quelque part. Je crois, joueur, joueur, joueur, entité séparée en tant que joueur. Donc on peut avoir quelques choses ici. Ainsi, par exemple, nous pouvons arriver au lecteur du serveur dans t, qui va être le joueur. Et quand on dit source comme joueur, voilà. Donc, il convertit fondamentalement le ne converge pas, ok ? Oui, je le ferai, nous le ferons assez tôt. Donc, il convertit fondamentalement la source en un joueur, parce que la source de la commande peut être soit le joueur, soit il pourrait bien sûr aussi être un bloc de commande. Maintenant, dans ce cas, on va juste dire en tant que joueur. Maintenant, si nous survolons cela, vous pouvez voir que nous avons une exception non gérée. Si nous ajoutons ceci à la signature de la méthode et qu'il va enregistrer lève une hypothèse de syntaxe de commande. Et maintenant je crois, et je n'ai en fait pas un test à 100 pour cent de cela, mais je crois que cela serait lancé si la source de la commande, donc si la commande est réellement appelée par un bloc de commentaire, et ce la conversion ne fonctionnerait pas, n'est-ce pas ? Donc, si la source en tant que joueur ne fonctionnerait pas, et bien sûr, c'est une exception. Une exception sera levée. Mais c'est juste quelque chose à se méfier. Et puis nous avons réellement besoin de la position du joueur, ce que nous pouvons simplement faire en bloc Pause. Il s'agirait d'une pause, lecture ou d'une pause égale à un point de joueur. Accédez à la position, à la nouvelle position, en fait, à la position. Voilà, tu y vas. Maintenant, nous devons également importer des laissez-passer de sang. Il suffit de mettre le chevauchement de la carotte, puis d'appuyer sur Alt et Entrée. Et puis je veux construire une chaîne que nous allons également éteindre. Donc nous allons sortir ça dans le chat. Et il est fondamentalement dire quelque chose comme une position à la maison fixé ou mis à la maison à. Et cela va être fait avec le pas aussi fort mais une chaîne Pause, qui va être ceci plus le bloc. En fait, c'est le joueur, POS, Joueur pos point getx perte. Donc, ce n'est pas strictement nécessaire. Cependant, je pense que c'est une bonne idée de sortir cela aussi. Ils sont évanouis obtenir pourquoi ? Parce que c'est aussi pourquoi je l'ai fait pendant que je testais juste pour m'assurer. D' accord. Est-ce que la position de bloc est en fait comme s'il obtenait la position réelle du joueur, obtenir z. et puis nous allons le fermer avec une parenthèse ici. C'est très bien. Et puis comment allons-nous enregistrer les données ? Eh bien, nous allons tout d'abord, la sortie de la maison réelle, le genre, la position. Et puis nous allons voir, donc ça va être la source. Envoyer des commentaires est essentiellement ce que nous voulons. Et à l'intérieur d'ici, nous avons un nouveau composant de texte de chaîne mis à la maison à. Et puis on va dire pause. Et puis nous allons dire vrai ou autoriser la journalisation. Donc en ce moment, avec ce que nous avons construit, vous devriez être en mesure de, après avoir enregistré cette commande, nous devrions être en mesure de faire ce qui suit. Nous devrions être en mesure de slash home, slash home, puis un jeu de barre d'espace, puis terminer le message devrait apparaître avec essentiellement la position du joueur actuel. Et maintenant, la question se pose, eh bien, comment pouvons-nous sauvegarder ces données ? Et la façon dont nous allons enregistrer ces données est fondamentalement si nous allons dans le lecteur, désolé, l'entité du lecteur de serveur ici, nous utilisons réellement quelque chose qui est appelé les données persistantes. Maintenant, c'est en fait qu'on doit aller dans l'arbre ici. Nous devons donc aller à l'entité du joueur. Et je peux fermer ça, et nous pouvons aller à l'entité vivante et nous fermons ça et ensuite nous entrons dans l'entité. Parce que l'entité a quelque chose qui est les données persistantes, non ? Donc c'est juste ici. C' est un composé privé NVT. Donc, ces données MPT, nous avons seulement un peu comme jeter un coup d'oeil sur les données NVT. Mais c'était essentiellement un moyen de stocker des données. Et dans ces données de l'entité du joueur, nous allons stocker notre position. Maintenant, comment peut-on faire ça ? Nous le serons, nous sauverons joueur, obtenons des données persistantes. Comme vous pouvez le voir, nous y allons, nous obtenons le MBT composé de cela. Et nous pouvons faire les mêmes choses que nous avons déjà faites avec les MBT. Nous pouvons, par exemple, mettre un tableau int. Et c'est exactement ce que nous voulons faire parce que nous avons trois positions différentes ou trois parties du vecteur XYZ que nous voulons sauver. Donc, ce serait les chemins de la maison, par exemple, pourrait également appeler cette position à la maison ou autre chose. Et puis nous avons besoin d'un nouveau tableau int avec les trois choses suivantes. Et ce sera le joueur pos point obtenir X, les pars de deux couches point y. et aux chemins de calque. Votre point passé obtenir z, en fait pas ce Zed. Et de cette façon, la position est maintenant sauvegardée à l'intérieur du ghetto, données persistantes du joueur réel. Et nous pourrons le lire plus tard dans la commande retour à la maison juste ici. Une fois que nous écrivons cela, maintenant c'est tout ce dont nous avons besoin pour cette chose particulière que nous voulons. Donc, c'est déjà pour la commande set home. Comme je l'ai dit, ce n'est pas si difficile. Cela dépend vraiment de ce que vous mettez dans cette méthode ici, non ? Donc, si vous voulez quelque chose de plus fou et plus compliqué, ça remonte en quelque sorte aux événements que nous avons eus. Événements en soi. Vraiment, vraiment cool et vraiment puissant. Même chose avec les commandes, bien sûr. Fondamentalement une chose très similaire à un événement, juste que le joueur peut, tout en exécutant fondamentalement qu'un événement sur un caprice en tapant dans le chat. C' est juste que selon votre cas d'utilisation et ce que vous voulez faire. Ouais, c'est qu'il y a peut-être beaucoup d'Else, sinon à comprendre ici, mais c'est bien sûr à vous maintenant comment peut-on réellement envoyer une commande à domicile enregistrée ? Eh bien, nous allons simplement dans les événements, événements mode, et ensuite faisons quelque chose comme ça. Alors faisons un nouvel événement. Et cet événement sera le vide public ou non, ce n'est pas le cas. Ce que je veux, c'est que je veux le registre des commandes on et puis cela a l'événement de commandes de registre, quel événement. Et au lieu d'ici, nous allons réellement faire exactement ce que la commande fait ici, qui est ici sur les commandes s'enregistrent ici. Donc on va juste dire nouvelle commande de la maison. Permettez-moi de clore rapidement quelques choses. Alors les événements MOD. Voilà, tu y vas. Nouveau. Définissez la commande home avec le répartiteur d'événements. Et puis à la fin ici, nous pouvons dire la commande config, commande que vous allez vous inscrire. Et puis nous disons Events dot get dispatcher. C' est donc tout ce que nous devons faire. Et maintenant, nous allons faire la commande retour à la maison. Et puis on a déjà fini. Donc c'est ça, c'est le truc cool. Maintenant, pour la commande retour à la maison, le truc cool est que nous pouvons presque copier cela parce que la chose ici est très, très similaire. Donc, cela va simplement être retourné commande home. Et puis au lieu d'une maison fixe, nous allons avoir un nouvel int privé. Et cela va être retourné à la maison avec fondamentalement aussi une source de commande, une commande ou la source désolé, bien sûr l'ego et ça comme ça. Et puis nous allons appeler ça au lieu de rentrer chez nous. Et ici, au lieu de fixer, nous allons dire retour, parce que c'est ce que nous voulons rentrer à la maison maintenant. Et puis la chose qu' on va faire, c'est qu'on va d'abord avoir le joueur une fois contre. C' est encore une fois que la couche d'entité du lecteur de serveur est égale au point source en tant que joueur. Ce qui nous invite encore une fois à ajouter l'exception à la, à la commande ici ou à la méthode. Sauvons. Et maintenant ce que nous allons vérifier, c'est en fait parce que. Nous pourrions faire est que nous pouvons dire, hé, obtenir le tableau int de données persistantes et puis allons-y facilement. Mais le truc à ce sujet, c'est que nous allons vraiment vérifier si oui ou non c'est vide ou non. Donc, nous allons dire si le point de joueur obtient des données persistantes, obtenir des données persistantes, obtenir un tableau int. Donc, nous allons dire entrer dans la zone et nous savons que la clé ici est le PaaS maison. Et si la longueur de ce tableau n'est pas 0, non ? Donc, cela signifie que dans ce cas, donc pas 0 signifie qu'il contient quelque chose, non ? Donc pour l'instant, nous ne voulons pas vraiment savoir, nous ne voulons pas sauver ça. En fait, nous voulons seulement savoir d'accord, ne contient rien. Ce que nous avons découvert, je crois et si je me souviens correctement, l'idée est que si vous obtenez une erreur ici, il retournera toujours un nouveau tableau même si quelque chose n'existe pas. C' est pourquoi nous vérifions pour la longueur et non pour savoir si elle a ou non null. Et puis nous avons aussi un autre, juste pour que nous puissions essentiellement dire point source, envoyer des commentaires. Et puis nous pouvons dire un nouveau composant de texte de chaîne et dire qu'aucune position d'accueil n'a été définie. Et puis nous disons aussi vrai ici. Et puis nous reviendrons, Laissez-moi zoomer un peu. Renvoie un négatif, négatif. Voilà, tu y vas. C' est parce que nous avons deux fois plus pour, vous savez, comprendre les commentaires. Je suis folle ? Oui, je suis folle. Voilà, tu y vas. C' est ce que c'est. Et puis nous avons un à plusieurs. Voilà, tu y vas. D' accord. Envoyer des commentaires, composant texte de printemps, aucune position d'accueil n'a été définie. Parce que bien sûr, s'il n'y a pas de données dans le tableau, alors nous n'avons pas vraiment installé la maison là-bas. Et maintenant ce que nous voulons, c'est que nous voulons un nouveau tableau int. C' est la position du joueur une fois de plus. Et nous pouvons essentiellement lire ceci en disant couche dot-dot données persistantes. Dot, get int array, get int array avec la pause d'accueil de la clé. Et puis nous avons en fait cela à l'intérieur de cette variable. Et puis nous pouvons utiliser le jeu de points du joueur et la position de jeu et la mise à jour. Très belle chose qu'on peut utiliser. Et puis nous pouvons simplement dire joueur Pos 0, couche 1 et couche 2. Voilà, tu y vas. Et maintenant, la position du joueur sera définie sur, eh bien, exactement ce qui est écrit à l'intérieur des données persistantes. Et puis nous pouvons dire une source, Envoyer des commentaires peut dire nouvelle chaîne, couche de composant de texte, retourné à la maison, retourné à la maison, ils ego. Et puis aussi dire vrai ici. Et puis à la fin, la seule chose que nous devons faire est de retourner un 1 et tout le monde est heureux, non ? Et maintenant, comme je l'ai dit, c'est une façon de le faire. Il y a probablement une multitude de façons de téléporter un joueur à une position différente. Dans ce cas, cela va être très bien en utilisant la position set et la méthode update. Et en fait, je pense que ça va être très, très bon. Et oui, c'est essentiellement tout ce qu'on a vraiment besoin de faire. Et nous possédons aussi juste besoin de définir cette année. Donc nouvel événement de commande retour à la maison. Vous allez Répartiteur d'événements. Et c'est tout. Eh bien, très important à l'événement d'abonnement, ils vont tout de suite, ça devrait être amusant, non ? C' est en fait tout ce que nous avons vraiment besoin de faire pour ajouter notre set home et retour à la maison événement. Et je suppose qu'on va commencer et voir ce qu'on peut voir. C' est probablement la chose la plus intéressante. Si cela revient réellement, ramène-nous à la maison et nous pourrons régler notre maison. Donc ça va être vraiment le test. Maintenant, dans l'ensemble, je pense vraiment que les commandes sont assez faciles à mettre en œuvre, dépend vraiment de ce que vous voulez en faire. Comme je l'ai dit, c'est très, très similaire aux événements que nous avions auparavant, où si vous avez une idée intéressante pour un événement, c'est plutôt bon. Mais ils peuvent devenir vraiment complexes en fonction de ce qui veut vraiment en faire. Mais oui, c'est fondamentalement tous les outils dont vous avez vraiment besoin pour faire vos propres commandes. Donc c'est plutôt bon. Et voyons ce qu'on peut voir. Donc, tout d'abord, nous frayons ici dans une sorte de forêt de séquoia. Alors passons à un peu de la lumière et passons à cette colline ici. Et puis tout d'abord, ce qu'on va dire, c'est qu'on va rentrer chez nous. Donc, comme vous pouvez le voir, c'est déjà ici comme une suggestion. Donc, nous pouvons essentiellement terminer automatiquement. Et comme vous pouvez le voir, nous avons aussi les deux littéraux. Donc, disons tout d'abord slash retour à la maison. Mais comme vous pouvez le voir, aucune position à domicile n'a été définie parce que nous n'avons pas défini de position à domicile. Donc, notre déclaration if, si nous regardons en arrière simplement ici, notre déclaration if a fonctionné exactement comme nous le voulions. Donc c'est vraiment, vraiment sympa. Et maintenant, ce que nous voulons, c'est que nous voulons fixer notre position ici. Donc, nous voulons dire slash maison, slash maison installés, ils vont et maintenant il a, a mis à la maison à la position négative 718200120. Voyons maintenant si nous appuyons sur F3, vous pouvez voir négatif 2, 34, 91 et 120. Donc c'est exactement là qu'on en est. Donc c'est plutôt sympa. Maintenant, nous allons nous envoler. Je vais regarder ça. Un joli village paisible ici avec quelques buffles aussi. C' est plutôt sympa. Et puis, ouais, allons juste, en fait, nous allons juste voler ici. On devrait y retourner si on appelle le retour à la maison. Voyons si ça marche. Donc, nous pouvons bien sûr aussi appuyer sur la touche Tab pour compléter automatiquement cela. Et si nous faisons cela, comme vous pouvez le voir, couche retournée à la maison. C' est comme ça que c'est facile. C' est tout ce qu'il y a à faire pour que vous puissiez faire vos propres commandes. Dans ce cas, la commande set home et return home. Et oui, c'est essentiellement tout ce que je voulais te montrer. Une autre chose que je veux vous laisser, c'est les autres commandes qu'il y a. Donc si on est juste en fait, si on peut faire ça comme ça. Donc, je crois qu'il y a une commande temporelle qui est comme la plus facile à y arriver. Oui, exactement. Donc, si nous, par exemple, mettons dans le temps commande ici. Donc, une fois de plus, Control Shift F, puis ouvrez la commande time. Comme vous pouvez le voir, c'est un peu plus compliqué ici. Mais c'est une chose que vous pouvez jeter un oeil avec les commandes, essentiellement ce qu'elles peuvent faire. Et puis vous pouvez également suivre cette méthode de registre. C' est une méthode de registre statique dans ce cas. Et si nous regardons cela, alors à l'intérieur de la, à l'intérieur de la classe de commandes, il y a toutes les commandes normales ou les commandes vanille, disons. Et vous pouvez ouvrir chacun d'entre eux une fois de plus avec le bouton central de la souris. Ainsi, par exemple, quelque chose comme le Mode Jeu. Et puis vous pouvez regarder tout ce qui se passe ici. Et vous pouvez fondamentalement juste, bien soit copier ou développer sur ce, ce qui est vraiment bon et vraiment sympa. Jetons un coup d'oeil à ceux-là. Donc oui, c'est ce que je voulais te laisser. Une très belle chose et des commandes. Je dois être honnête. Bien plus facile que ce que je pensais personnellement. Mais oui, encore une fois, c'était tout. Mais s'il y a des questions, bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 78. (Minecraft) Faire notre propre dimension: Bon, bienvenue au cours de Minecraft. Et dans cette conférence, nous allons jeter un oeil sur le sujet le plus demandé que j'ai obtenu depuis probablement le premier jour. Et c'est ainsi que vous pouvez créer votre propre dimension personnalisée. Oui, on est enfin là, ça arrive enfin. Et encore une fois, comme la dernière conférence avec les commandes, il était beaucoup plus facile que je ne l'avais prévu. Il y a beaucoup de changements entre les versions Minecraft avec le monde, la génération mondiale et la génération de dimension aussi bien. Maintenant heureusement, ce qui s'est passé est que la génération de dimension a déménagé pour n'avoir que le, donc vous pouvez pratiquement tout faire à l'intérieur des fichiers JSON. Maintenant c'est plutôt cool. Si vous voulez faire des packs de données Pour nous, c'est également très facile car nous n'avons qu'à avoir deux fichiers JSON qui définissent quel type de dimension il s'agit. Et puis aussi à quoi ça ressemble. Le, je ne dirais pas qu'il y a quelques inconvénients là-bas, mais bien, voyons juste comment cela fonctionne. La seule chose que je vais mentionner au tout début, parce que certaines personnes pourraient être un peu déçues. Nous n'allons pas jeter un oeil sur la façon de créer votre propre portail. Ce ne sera pas une conférence. Dans ce cas. La façon dont nous allons nous téléporter est en cliquant avec le bouton droit de la souris. On va probablement en finir avec le cuivre juste parce que je trouve ce genre de, euh, un peu drôle. Mais nous allons faire un clic droit sur un bloc, puis nous téléportons vers l'autre monde, Fondamentalement l'autre dimension. Ouais, si tu étais un portail, alors statistique pour dire ça, mais alors tu devras le comprendre par ton propre. Mais je crois que cela devrait être faisable parce que la téléportation elle-même se produit dans le bloc lorsque nous cliquons avec le bouton droit de la souris. Et ce n'est pas si compliqué. Eh bien, ouais, voyons ce qu'on peut voir et stocker en faisant un nouveau paquet dans une sorte de paquet mondial appelé dimension diamant Xian. Ils y vont. Et puis à l'intérieur d'ici, nous allons faire une nouvelle classe détient la classe mod di mentions. Maintenant, cela va être un peu différent de notre autre MOD bien et puis quelque chose clauses. Cela va avoir une statique publique, puis une clé de registre en fait de type monde. Et on va juste appeler ça le « Que diriez-vous comme KJ ? Dim ? Bien sûr, c'est génial. Aj. Comme ça. Oui, j'adore le comte et dessiner des dimensions. Pourquoi pas ? Et puis nous allons également importer tout cela en appuyant sur Alt et Entrée sur cela. Ensuite, nous avons également besoin d'une méthode de registre de vide statique public. Une méthode de registre. Et celui-ci fera réellement ce qui suit. Nous dirons. A j Dim est égal à la clé de registre en pointillés podium 38. Et cela va avoir le registre lu juste re, pas une clé du monde. Et je vais avoir un nouvel emplacement de ressources avec bien sûr notre MC force.html vendredi. Et puis c'est le chemin dans est fondamentalement le nom, qui serait chemise KJ. Maintenant, c'est tout ce dont nous avons besoin pour enregistrer notre dimension ici. Et au lieu de MC bien sûr, nous allons bien sûr ajouter tout en bas, le registre des dimensions mod. Donc, la chose géniale ici, ou l'autre chose que nous sommes, la façon dont nous allons créer ceci est sans un registre différent dans ce cas, mais c'est totalement bien parce que cela fonctionne tout aussi bien. Et ce dont nous allons avoir besoin à l'intérieur de notre dimension ici est fondamentalement un. Et ce serait, je vais appeler ça les téléporteurs du KJ. Déchirure téléportante. Voilà, tu y vas. Oui, c'est un. Et cela implémentera l'IA dire une interface quart. Et ce téléporters est fondamentalement alors que ce qui va nous téléporter. C' est la chose que nous allons appeler lorsque nous cliquerons sur notre bloc plus tard. Et ça va avoir quelques choses. Maintenant, j'ai adapté ceci à partir d'un très, très beau dépôt GitHub, qui était la dimension lumière du jour. Si je ne me trompe pas, ce sera certainement ce serait certainement lié ou blog post. Ce n'est pas tout à fait exact. Voilà, tu y vas. Et cela sera lié comme une ressource parce que c'était inestimable. Parce que d'habitude, j'ai essayé de jeter un oeil aux dimensions. Et le problème est que, par exemple, avec des outils RF, super mod, absolument génial, incroyable, même base de code, non ? C'est vraiment bon. Je veux seulement la dimension. Il y a environ 180 classes différentes qui sont pour la dimension parce que le pack MOD réel ou l'autre mode est si vaste que gros. C' est si énorme que c'est ouais, c'est un peu trop. Et c'est pourquoi la dimension lumière du jour, parce que c'est la seule chose que le mode ajoute est une nouvelle dimension. Et c'est vraiment sympa. Donc statique public, booléen, ça va être à l'intérieur d'une dimension. J' ai mentionné la règle. On va le laisser. C' est ce que nous voulons. Oui. Et puis nous avons un téléporteur public de K, J. Donc, c'est un et nouveau dans la nouvelle intrigue ici. Désolé. C' est un nouveau constructeur avec le booléen ici. Donc, c'est simplement à l'intérieur des dimensions. Et puis nous pouvons fondamentalement définir ce point, cette position est égale au passé, et ensuite aussi ce point à l'intérieur. Désolé, c'est statique. Ça ne marche pas. Bien sûr qu'on ne peut pas faire ça, mais ne sois pas fou. La dimension intérieure est égale à dans les colonies qu'ils ont obtenu. Et puis nous aurons la seule chose que nous allons remplacer. Et ça va être un, nous devons vraiment renommer ça à l'intérieur de la chemise. Peut-être pas. Quelque chose comme ça. C' est pour ça qu'ils y vont. Et puis la seule chose que nous avons besoin d'avoir ici, c'est une entité publique, placera entité. Et ça va avoir une entité. Entité. Il a un monde de serveurs, qui est le monde de l'apprentissage profond. Nous allons avoir un monde de serveurs. Juste le monde de destination. Nous allons avoir le flotteur, vous tous. Nous allons avoir une fonction de booléen et un type d'entité de retour. Et puis c'est l'entité repositionnée. Et ça va être ça. Oui. D'accord. Tout d'abord, entité, oui. Les rôles de serveur anciens et puis la fonction Java util fonction que vous allez. Donc, c'est la méthode de remplacement ou la méthode que nous devons remplacer ici. Et c'est essentiellement la chose qui est responsable de notre téléportation. Et maintenant, nous avons beaucoup de choses à faire. Donc, tout d'abord, que l'entité qui nous est donnée ici va tomber ou repositionner le point d'entité s'applique avec un défaut ici. Et puis on aura un double. Donc ce double est, si je ne me trompe pas, le y, excusez-moi, pourquoi je me demandais pourquoi ils allaient. Position y où se trouve le calque supérieur. Bien essentiellement disponible pour la téléportation. C' est une sorte d'idée ici. Alors nous allons dire, si c'est le cas, n'est pas à l'intérieur de la dimension que ce que nous allons faire , c'est dire que y est égal à ce point, et ensuite nous allons rester ce qui suit. Nous allons avoir le, nous allons avoir un poste qui sera le médecin de la nation de bureau. Pause, c'est mieux. Ce qui est une nouvelle passe de bloc, qui va être les x et y de cette position. Tellement bien. Et ce point obtenir z histoire. Ils vont et ensuite le y sera juste le Y que nous avons calculé à l'avance. Et puis il y a quelques choses que nous devons faire, et c'est le numéro un et entier avec essais. Maintenant c'est là, je crois, sorte que nous pouvons essentiellement essayer de dire vers le haut et parfois cela pourrait ne pas fonctionner. Et si ça ne marche pas, alors nous l'arrêterons fondamentalement. Donc nous avons une boucle while et ça va être une boucle folle, comme la chose là-dedans. Donc nous allons avoir un monde de destination, désolé, la destination où bagel. Et nous allons dire, d'accord, obtenir les blocs suivants, son état de bloc à la position suivante, et ce sera la position de destination. Donc, c'est la position où nous voulons fondamentalement il apparaîtra. Et puis nous disons matériel git. Et si ce n'est pas égal à material.ai, alors nous devrons changer certaines choses. Et ça va être, nous allons fondamentalement aller vers le haut. Donc, ce ne sera pas seulement l'air, c'est aussi nous pouvons, donc nous ne voulons pas frayer autrement. On veut frayer dans l'air. Mais il ne devrait pas non plus être de l'eau, donc il est ne peut pas être destiné. Faisons quelque chose comme ça. Et puis déplaçons ça ici. Désolé, le monde de destination est verrouillé. État à la position de destination. Encore une fois, je vais dire, cela va dire qu'il est remplaçable par le point de liquide d'eau. Et cela ne devrait pas être le cas. Ensuite, nous allons avoir une autre fin, qui va être le monde de destination et obtenir une position noire, une histoire d'état de bloc. Et puis nous allons avoir la position de destination, qui monte. Donc, c'est une position en place. Donc c'est Yets off offsets. Ce bloc était par un, et c'est dans la direction ascendante. Et ça va être, désolé, c'est ici, qui va aussi obtenir du matériel. Et je vais dire ceci, si ce n'est pas égal à l'air. Et la dernière chose que tu aurais pu deviner c'est probablement celle-là. Copiez à nouveau, annulez simplement. Et cela va être, est remplaçable. Et puis pas de fin ici. Et puis celui-ci, et puis l'ego 0. Et puis il y a aussi une autre fin et cela va être frites est moins 25. Qu' est-ce que ça fait, c'est en gros dire, Ok, écoute, on doit trouver la destination où on peut frayer à l'intérieur de ce monde. Et nous allons fondamentalement remonter. Et c'est ce qu'on fait ici. Donc, nous disons que la position de distillation est égale à la position de destination optimisée par deux. Donc on va monter deux pâtés de maisons à chaque fois. Et on va essayer ça 25 fois. Et deux étaient comme, baise-le, c'est bon. Donc, l'idée étant que nous essayons de trouver une position dans laquelle les deux blocs où le joueur apparaîtrait est l'air. C' est essentiellement ce que nous essayons de faire ici. C' est la façon la plus simple de l'expliquer rapidement. Disons que c'est tout cela, est-ce qu'il vérifie fondamentalement si une position particulière est valide ou non. Oui, c'est plutôt bien. Et alors ce que nous pouvons faire est que nous pouvons dire entité, définir, positionner et mettre à jour. Et cela va être la position de destination, ydx, position de destination get y et la position de destination get est le E ou Z. Et c'est exactement ce que nous avons vu dans la conférence de commande personnalisée de commande également. Donc c'est vraiment, vraiment sympa. Et maintenant, nous devons faire une dernière chose. Et ce sera, nous allons dire si à l'intérieur de la dimension, alors nous voulons faire quelques choses et ce sera un bloc booléen à définir. Maintenant, l'idée est que nous allons, bien sûr, si nous cela fondamentalement la téléportation retour. Donc nous voulions mettre un bloc où nous frayons, parce que sinon nous allons passer un mauvais moment. Donc, ce sera pour une boucle for. Cela va être une boucle foreach fondamentalement. On est bloqués devant la maison de contrôle. Ça va être bloqué. Pause, fais tout le truc de la folie mutable de Mark. Ne t'en fais même pas. Je vais vous expliquer ce que c'est. Ce n'est pas dans l'ouest et c'est 10. Donc on va faire ça dans un rayon de dix par dix, dix par dix, je suppose. C' est après, après ça ou dans l'ego. Donc, après cela, la virgule Ouest et puis un autre chemin de destination de haut de 10, puis Est de 10. Et puis une fois que nous avons ceci, alors nous pouvons aller et avoir une boucle for. Donc, nous allons essentiellement vérifier chaque position de bloc dans un cube de dix par dix. Et puis nous allons dire ce qui suit. Si la position de destination point-point encore, désolé, monde de destination, qui distinction très importante là, obtenir l'état bloqué à la position, vérifier la position. Donc, c'est la position que nous traversons fondamentalement la boucle for que nous traversons. Si le théorème de Bloch est bloqué est une instance de cuivre ou parce que ce qu'on va faire, c'est qu'on aura le travail de l'entreprise. C' est très important. Et vous direz remplacer le cuivre ou avec votre bloc de commande Taleb ? Maintenant, c'est très important. Le cuivre ou dans ce cas nous mettons seulement cela parce que nous avons une instance de ce bloc de carte ici en tant que classe. Et nous pouvons facilement accéder à ce qui va être votre bloc téléporté. C' est le bloc clic droit qui a essentiellement la possibilité de se téléporter. Donc, nous allons ensuite aussi casser. Donc, une fois qu'on a trouvé un bloc de cuivre, recette comme Ok, Ok, on n'a pas besoin de mettre un bloc. Maintenant, si nous ne trouvons pas cela, alors nous allons dire si vous mettez le verrou, désolé, Voilà vous allez. On va dire le monde de destination, le cadenas, l'état de la position de destination. Et ça va être des blocs de boue, point ou point get. Cela obtient l'état par défaut. Oh, regarde ça. Il a déjà fait ça pour moi. C'est très gentil. Et à la fin, nous allons juste retourner l'entité. Aucune entité. Vous y allez déjà. Alors qu'avons-nous fait ici ? Si nous sommes téléportés à notre dimension ? Nous voulions mettre un bloc de cuivre parce que c'est le bloc qui nous amène à la dimension et nous avons besoin de quelque chose pour revenir. Et c'est exactement ce qu'on fait ici. Si le, si nous trouvons réellement ce bloc de cuivre, nous n' avons pas besoin de faire quoi que ce soit. Si on ne trouve pas le bloc, alors exactement où on se téléporte, on va mettre ce bloc. C' est tout ce qu'on fait avec ça. Maintenant, les téléporteurs du KJ, comme je l'ai dit un peu. En fait, c'est bon. Ce n'est pas trop fou. Si nous, si il a pris d'abord jeter un oeil à elle, pourrait être un peu fou, mais dans l'ensemble, j'espère que ce n'était pas trop fou. Celle-là, nous vérifions juste que nous pouvons réellement engendrer. Et celui-ci, nous mettrons simplement un bloc particulier à notre bloc de cuivre pour que nous puissions nous téléporter. Et maintenant, ce que nous devons faire, c'est d'entrer dans ce bloc de cuivre et de modifier cela. Maintenant, la tasse, de quoi avons-nous besoin ? Nous avons besoin d'un type de résultat d'action publique. Ceci est activé par bloc ou débloquer. Oui. C'est beaucoup trop. Bien trop. Allons le remplacer et allons-y, ils y vont. Parce que dactylographier ça serait absolument ridicule. Il y a, donc, ok, sur le journal activé, cela signifie qu'on fait un clic droit sur le bloc. De quoi avons-nous besoin ? Nous avons besoin de la première chose que nous voulons que le monde soit éloigné ne devrait pas être le cas. Si ce n'est pas le cas, si ce n'est pas le cas, allons-y. La prochaine chose. Si le joueur est accroupi, forme ronde est accroupi un ego. Si ce n'est pas le cas. Ainsi, le joueur ne peut cliquer que sur le bloc de couverture. Si ce n'est pas le cas. S' ils ne sont pas accroupis, alors nous avons le serveur. Vous avez besoin du serveur Minecraft Server, qui est le serveur, est égal à Berlin point Git serveur. Fait intéressant. Et maintenant, nous devons regarder ça. Et puis nous disons, d'accord, si le serveur n'est pas nul, alors nous pouvons continuer. Et puis nous allons regarder cela. On va dire, d'accord, voyons, quel est ce monde maintenant, on devient intéressant. Donc, si ce monde points-points dimensionnellement. Donc maintenant, nous vérifions essentiellement dans quelle dimension où si c'est le mod di multi-dimensions mentionne que KG dip, n'est-ce pas ? Si nous sommes à l'intérieur de notre dimension personnalisée, alors ce que nous voulons faire, eh bien, nous voulons dire ceci, nous voulons rester le monde des serveurs submergé est égal à serveur point get monde. Nous allons passer par ceci un par un après avoir fini votre World.org. Mais nous allons juste vite, rapidement, nous allons faire ça. Donc, nous allons avoir le monde des serveurs. Ce sera l'écrasement. Et maintenant, le gros est que si ce surmenage n'est pas nul, sorte que nous pouvons réellement nous téléporter à cela. Et on va dire, d'accord, le point du joueur a changé. J' ai mentionné une très belle commande. Notre méthode. Je dois être honnête. On va aller au surmenage et on va faire un nouveau téléporteur KJ avec ce qui suit. Position à laquelle ce bloc se trouve. Et avec un faux, un faux parce que nous ne sommes pas, fondamentalement, il se téléporte à l'intérieur de nos dimensions. D' accord ? Ok, si, et maintenant réfléchissons à ça. Oui, c'est bon. Maintenant, il faut qu'on le veuille, désolé. C' est un peu trop. Et puis on a un autre. Et cela est très important. Le formatage ici toujours le même. Donc, cela va se produire si nous sommes à l'intérieur de nos dimensions. Si nous ne sommes pas à l'intérieur de notre dimension et nous faisons un clic droit sur un bloc de cuivre. Eh bien, ça devrait probablement nous amener à cette dimension. Donc on va dire le monde des serveurs. Et ça va être la dimension clé k-j. Dim, bien sûr, c'est bon. Il ne l'a pas fait. Et puis on va dire serveur, ce monde. Et c'est une bonne chose. Beaucoup de dimensions point KJ dim, n'est-ce pas sympa ? Donc, au lieu d'utiliser le monde qui a submergé la faiblesse, dire multi-dimensions que AJ dim. C' est vraiment sympa. Je dois être honnête. Et puis nous vérifions aussi si oui ou non c'est nul, juste au cas où vous ne le savez jamais. Donc, c'est unégal null. Et si c'est le cas, alors nous allons dire que le joueur changera de dimension. Je vais dire que c'est le peu de KJ. Nouvelle commande téléphonique KJ. Position. Et puis nous allons dire vrai parce que nous sommes téléportés à l'intérieur de la dimension maintenant. Et une fois que cela est fait, en fait une fois tout cela fait, donc c'est juste ici. Nous allons retourner le résultat du type d'action du succès parce que nous réussissons. Maintenant, après tout, en fait. Oui, après tout, oui, nous voulons retourner l'activateur de superbug. C'est très bien. Et c'est tout. Je sais ce qui se passe fou. Ok, passons à travers ça. Tout d'abord, nous vérifions si oui ou non nous ne sommes pas à distance. Donc, nous sommes essentiellement sur l'exécution de ceci sur le serveur. La prochaine chose que nous ne sommes pas accroupis devrait être les deux. Assez facile. Ensuite, nous obtenons le serveur et nous assurons qu'il existe réellement. Si le serveur existe, on vérifie, d'accord ? Sommes-nous à l'intérieur de notre dimension prédéfinie ? Où en sommes-nous dans une autre dimension ? Si nous sommes à l'intérieur de notre dimension, alors la, alors la destination que nous voulons va être l'écrasante. Par conséquent, nous obtenons le monde souterrain, vérifiant si oui ou non c'est nul et ensuite essentiellement téléporté dans le par-dessus bord. Toutefois, si nous ne sommes pas dans notre dimension, alors nous voulons nous téléporter à cette dimension. Et ensuite, on va faire exactement la même chose ici. Maintenant quelque chose comme ça pourrait probablement être extrait dans sa propre méthode. Probablement avec quelques utils. Dans ce cas, tout à fait bien. Je vais vous laisser le soin, surtout si vous avez plusieurs dimensions. Et maintenant, la dernière chose dont nous avons besoin, c'est la dimension réelle. Eh bien, en quelque sorte, comment ça génère. Et nous allons avoir ça dans notre dossier de données. Donc données m scores. Et puis nous aurons un nouveau répertoire appelé Diamond. Et puis nous aurons un autre répertoire qui va être refroidi. Die mention type de soulignement. Très important. Maintenant, la première chose ici va être un nouveau fichier, KJ db.json. Encore une fois, très important que le adjacent suit. Et je vais copier quelques choses, que oui, je vais copier et ensuite on va regarder ça rapidement. Donc, tout d'abord, nous avons un type. C' est tout simplement notre MC, donc notre mélodie. Et puis le nom que nous avons spécifié ici, Oh, chemin Stella juste ici doit être le même là-bas. Et puis on a le générateur. Et le générateur est vraiment la chose qui est très folle. Donc, dans ce cas, ce que nous allons faire ici est simplement un terrain plat essentiellement avec le, à la hauteur, on aura un substrat rocheux, puis de la hauteur un à 60 aura du grès. C' est ça. Tout va être des avions, euh, pas de structures, pas de traits, rien, non ? Si vous voulez votre propre dimension et que vous voulez quelque chose de fantaisie, j'aurai une ressource là-dedans qui va être à la, encore une fois au Minecraft fandom.com, qui a la dimension personnalisée, quelque sorte comme un JSON et a la syntaxe entière en surbrillance. C' est incroyablement utile. Et si vous voulez vraiment plus de contrôle et que nous voulons vraiment spécifier ce qui se passe là-bas. Alors vous pouvez jeter un oeil à ça. Pour cette conférence, nous allons le laisser là. On va faire une nouvelle dimension. La façon dont vous le construisez. Encore une fois, vous devez jeter un coup d'oeil à cela de votre temps libre, mais je suis sûr que vous serez en mesure de le faire. J' ai tous les, J'ai la confiance totale que vous type de dimension. Nous avons besoin d'une chose de plus et ce sera un nouveau fichier, encore une fois, également nommé KJ db.json. Et je vais rapidement copier ça aussi. Et ce ne sont que quelques variables ou paramètres de base que le monde ici a fondamentalement. Et comme le temps. Si les paris fonctionnent, ce genre de choses. Encore une fois, ici avec le nom de très important que c'est l'ID MOD et vous avez été spécifié nom. Et c'est tout. Bien sûr, tout ce que nous avons fait, les nouveaux fichiers JSON ainsi que les classes sont disponibles comme une ressource comme toujours. Et maintenant, regardons si cela a réellement fonctionné, si notre travail acharné a porté ses fruits. Commençons donc ce client et voyons si nous pouvons entrer dans notre nouvelle dimension en cliquant avec le bouton droit sur une trémie ou c'est un peu drôle, mais c'est à prévoir. D' accord. Voyons voir. Allons-y, en fait, qu'ils le doivent, d'accord. Et maintenant, je suis très intéressé à savoir si nous avons tout fait en ce moment, il semble que nous avons vraiment besoin de créer un nouveau monde pour cela. Alors créons un nouveau monde ici en mode créatif. Et puis créons un nouveau monde. La première chose qui va se produire est que vous allez obtenir ce genre de monde en utilisant les paramètres d'expérience ne sont pas pris en charge. Maintenant, c'est parce que nous avons une nouvelle dimension. Et Minecraft, tu es sûr de vouloir faire ça ? Maintenant ? Nous en sommes sûrs. Pour que nous puissions continuer. Pendant que vous testez cela, vous allez probablement devoir faire face à cette flèche lorsque vous créez un nouveau monde. Et je crois aussi que lorsque vous chargez dans un monde, c'est exactement comme ça que ça va se passer. Vous pouvez cliquer sur Continuer et tout va bien fonctionner. Si vous êtes modeste, chaque démotique, Il y a une carte qui dit, c'est comme aucune erreur de génération mondiale expérimentale ou avertissement. C' est certainement quelque chose que vous devriez inclure dans un simulacre de dos si vous voulez, si vous deviez utiliser votre amorphique moderne. Mais oui, c'est, c'est fondamentalement tout. Et voyons, prenons le cuivre ou le bloc. Ça va être très intéressant. Donc, on va mettre ça en place. Et maintenant, tu es prêt, chat ? Es-tu prêt ? Faites un clic droit Tout. Et nous y voilà. Et nous y sommes. Un monde plat avec un tas de grès, comme on l'a fait. Et puis si nous jetons un oeil à cela, donc si nous appuyons sur F3, alors vous pouvez réellement voir ici MC cours KJ dim. C' est donc notre dimension. Ce sont des avions comme nous avons fondamentalement mis en tant que fichier JSON. Et oui, c'est fondamentalement tout. Et maintenant, nous ferions un clic droit sur celui-ci. Nous allons en fait être retardés, téléportés exactement là où ce blocket. Donc, nous pouvons fondamentalement se téléporter de l'autre et obtenir également toujours l'effet sonore agréable. Ouais, c'est, c'est fondamentalement comme si je, je pense que dans l'ensemble, la dimension est plus facile que je ne l'aurais prévu si j'étais absolument honnête, parce qu'il y avait beaucoup de choses qui l'entouraient. Mais dans l'ensemble, en ce moment, je pense que c'est assez simple. J' espère que cela vous a été utile et que vous apprenez quelque chose de nouveau. Mais oui, encore une fois, tout est disponible en tant que ressource ainsi que le lien vers le GitHub de la dimension lumineuse, ce qui est absolument incroyable, la dimension lumière du jour. Et ainsi que le lien le fandom Minecraft pour les dimensions personnalisées afin que vous puissiez fondamentalement personnaliser vos fichiers JSON comme vous le souhaitez. Oui, j'espère que cela a été utile pour, comme je l'ai dit, s'il y a des questions, bien sûr, toujours se sentir libre de poser et je serai sûr de répondre. Et oui. 79. (Minecraft) Créer une entité d'un grand coffre de (Minecraft): Bon, bienvenue au cours du micro-ondes. Et dans cette conférence, nous allons ajouter un nouveau gros échecs. Maintenant, je vais vous avertir que cette conférence, sans aucun doute, va être 40 partout un peu plus rapidement. Et vous ne comprenez peut-être pas tout ce qui se passe. Maintenant. C' est parce que l'ajout d'un nouveau coffre est en fait, je ne dirais pas nécessairement difficile, mais c'est très impliqué parce qu'il y a beaucoup, beaucoup, beaucoup, beaucoup de composants différents que nous avons fondamentalement besoin d'obtenir. Nous devons les arranger pour que tout fonctionne. Et puis une des choses, malheureusement, qui va être l'ouverture et la fermeture du couvercle. Ça ne marche pas. Maintenant, je ne sais pas pourquoi j'ai revérifié et revérifié tout. Et je ne peux pas le faire fonctionner. S' il y a quelqu'un là-bas qui, après avoir regardé ça, sait pourquoi. Je suis très heureux d'ajouter un addendum à cette conférence ou comme conférence suivante pour dire fondamentalement, ok, c'est ainsi que nous pouvons corriger cela. Mais pour l'instant, nous allons seulement, seulement entre guillemets ont un coffre que nous pouvons ouvrir et qui affichera une interface graphique, et ce sera la semaine suivante. J' ai déjà préparé cela. C' est celui-là. Donc, c'est une poitrine plus grande. Et oui, voyons juste ce qu'on peut voir et comment on peut construire un coffre plus grand. Tout d'abord, bien sûr, ce qu'il nous faut, c'est qu'on va avoir besoin d'un nouveau T. Thaïlande et il y aura des entités fertiles. Tu es une nouvelle classe appelée la grosse poitrine serrée. J' adore ça. Maintenant, cela va hériter ou il va étendre l'entité de tuile thoracique suivante étend. Et il va implémenter les deux interfaces suivantes. Ihs, couvercle et le, IT, le pilote identique. Et nous pouvons réellement vérifier les entités de tuiles de poitrine. Donc, si nous le bouton de la souris du milieu cliquez sur cela, alors nous allons réellement entrer dans ce. Et maintenant, le vrai truc amusant commence. On peut tout prendre ici et le copier. Nous allons changer quelques choses, mais la plupart resteront exactement les mêmes. Donc c'est ce que tu vas faire. Vous allez descendre à l'entité de tuile de poitrine à la ligne 277, quel est votre curseur là-bas. Et puis vous allez monter et essentiellement aller jusqu'ici, appuyez sur la touche Maj et appuyez sur le bouton gauche de la souris, puis appuyez sur Ctrl C. Aller ici, contrôler V, et tout est ici. C'est beau. Maintenant, nous aurons un certain nombre de flèches ici, que nous allons réparer. Ne vous inquiétez pas pour ça. Tout cela va être réparé en cours de route. La première chose, bien sûr, est le nom du réel, le nom du constructeur réel est faux. Donc, nous pouvons simplement copier celui-ci et le mettre dans les deux ici. Et puis c'est quelque chose que nous devons changer un peu, la taille en bas de la ligne. En dehors de cela, la seule chose que nous voulons changer est le nombre d'éléments qui sont stockés. Ça va être 66. Maintenant, je le sais parce qu'une fois de plus, si je rouvre notre interface utilisateur thoracique, nous pouvons réellement voir que nous avons 1, 2, 3, 4 , 5, 6, 7, 8, 9, 10, 11. Dans une rangée et 123456 lignes. Par conséquent, cela nous donne 66 éléments que ce test peut stocker cette image. Et c'est fondamentalement ceci. Et puis comme je l'ai dit, nous allons aussi, cet inventaire de taille va aussi être 66. Donc, je ne sais pas pourquoi on a besoin de ça à deux endroits. C' est apparemment comment la poitrine réelle est construite et dans l'ensemble, et c'est presque bien. Maintenant est la chose qui va probablement être un peu bizarre est parce que généralement quand nous avons des coffres à côté de l'autre, les coffres combinés à un dans un nouveau coffre. Maintenant, nous ne voulons pas cette année, mais c'est bien parce que ça va bien se passer, en gros, vous savez, ça n'arrivera pas de toute façon. Donc, partout où nous avons, par exemple, votre coffre, nous devons, après avoir fait notre grand conteneur d'échecs et notre grand écran de poitrine, nous devons changer cela, mais maintenant nous pouvons simplement le garder comme c'est le cas. En fait, c'est bien. Presque fondamentalement copier sur tout de l'entité de confiance. Ensuite, la prochaine chose sera 1 à l'intérieur de nos écrans et puis savoir, et à l'intérieur de notre conteneur, nous voulons d'abord un conteneur, comme va être le nouveau conteneur de classe, l'ego, le grand conteneur de stress. Ça ne devrait pas être trop fou. Cela ne devrait pas être quelque chose qui est hors de l'ordinaire est simplement étend la classe de conteneur. Conteneur. Ce n'est pas le bon conteneur. Et le conteneur que nous voulons est le conteneur d'inventaire net Minecraft. Très important. Peut arriver à tout moment. Peut parfois arriver aussi avec le bonheur avec un bloc qui est vraiment stupide, mais un aller. Ok, on va déplacer la boîte, peut interagir avec, on va juste retourner ce qui suit. On va revenir, on a besoin d'un, d'accord ? Tout d'abord, nous aurons besoin de ce qui suit. Nous aurons besoin d'un int final privé, qui va être num potes. Et nous allons être nécessaires si int final privé, nombre de rôles. Nous avons également besoin d'une entité de tuiles privées, entité de tuiles, d'une entité de tuiles de tribunaux et d'un gestionnaire d'éléments d'œil privé, qui est la couche d'inventaire des joueurs dans. C' est très bien. Nous allons, ouais, en fait, juste des paramètres du constructeur donc nous assurerons que tout ici est sélectionné et nous dirons, ok, et ensuite nous devrons changer un peu le constructeur. Nous avons également besoin d'un int id, d'un monde, d'un monde et d'un système d'exploitation, d'un système d'exploitation. Et puis je veux ça dans l'autre sens. Donc, je veux d'abord l'entité queue , puis l'inventaire de la couche, puis le nombre de colonnes et de lignes. Oui. Et puis la passe de verrouillage est juste mal écrite. Voilà, tu y vas. Et puis nous l'avons. Ok, donc c'est bon. C' est en fait o file. Ce que nous voulons, c'est que l'autre ne peut pas encore faire. Eh bien, nous pouvons faire cependant est que nous pouvons définir l'entité de tuile déjà en obtenant le monde qui obtient l'île à la position donnée ici. Et que l'inventaire des joueurs. Fait intéressant, nous ne voulons pas de gestionnaire d'élément ici. Ce que nous voulons en fait, c'est l'inventaire réel des joueurs, parce que c'est ainsi que nous l'obtenons. Et pour le convertir, nous voulons réellement un nouveau wrapper d'inventaire avec l'inventaire de couches. Comme je l'ai dit, certaines de ces choses sont un peu dingues. Mais oui. Et ce que je vais faire, c'est, euh, oui. Donc fondamentalement, nous allons alors vérifier, ok, s'il y a même une entité de tuile là. Donc, si le talent est inégal à null, alors nous allons à t dot talentueux obtenir des capacités. Nous avons vu les capacités et c'est la vitesse du gestionnaire d'élément. Et si c'est présent, alors ce qu'on va faire c'est faire ce qui suit. On va dire « gestionnaire ». Et puis nous allons faire deux nouvelles méthodes. Parce que si nous jetons un oeil à une famille, revenant au grand titre et nous allons au bouton du milieu de la souris cliquez sur le conteneur de désajustement. Alors tout d'abord, nous allons voir qu'il y a, il y a beaucoup de statique comme des envies. Et puis aussi le constructeur de conteneur de confiance a ce qui suit. Cela construit les fentes de la poitrine. Maintenant, c'est comme, je veux dire, c'est un peu dur de critiquer le code des autres, mais c'est comme, je ne sais pas ce qui se passe ici. Même chose avec ceci et même avec ceci. Maintenant, ce que cela fait est simplement cela crée l'inventaire de la poitrine, et cela crée l'inventaire du joueur. Et puis cette dernière chose crée les fentes pour la barre, la, la barre d'inventaire. Je ne sais pas pourquoi. Ce n'est pas soigneusement emballé dans quelques méthodes privées parce que c'est exactement ce que nous allons faire, c'est que nous allons devoir faire des méthodes privées. Nous allons juste être le vide privé, générer des emplacements d'inventaire de la poitrine avec le gestionnaire d' article, le gestionnaire d'article, l'ancien gestionnaire. Et puis on va l'avoir exactement la même chose. C' est le truc drôle. Comme si on pouvait prendre ça, non ? Et nous pouvons copier le contrôle C et le mettre dans notre conteneur ici, juste ici. Et nous avons seulement besoin de changer un très, très, très peu de choses. Je ne suis pas sûr à 100% que ce soit bien. Et puis ce sera le nombre d'appels. Et puis au lieu de faire un nouveau slot, nous allons faire un nouveau gestionnaire d'élément de slot. Et puis ici, nous avons simplement mis dans la poignée. Et c'est fondamentalement tout. Maintenant, nous devons faire quelques choses ici. Et c'est principalement l'index est en fait k plus j fois this.com appels. Et puis la position, cette position est en fait correcte et cette position n'est pas correcte. Ça va être 14 ans. Maintenant, je vais vous expliquer comment j'arrive à ce poste dans un peu de temps. Nous voulons dire ligand 0, 1, gardons cela actuellement comme il est. Et puis nous allons expliquer comment j'ai trouvé la position dont nous avons besoin. Et puis nous pouvons avoir un nouveau vide privé, qui va être le générer plus tard, inventer des créneaux d'inventaire. Cela va avoir un gestionnaire d'élément appelé gestionnaire et un inventaire de couches. Inventaire des couches. Et puis. Faites la même chose que nous l'avons fait avant. Vous pouvez simplement prendre ceci et copier ceci et le mettre ici. Et puis nous devons faire quelques choses. La première chose est que nous avons besoin d'avoir l'int I égal à ce point num lignes moins 4 fois 18. Nous voulons d'abord soustraire les 4 ici, puis faire ceci. Maintenant, c'est fondamentalement l'idée est que nous avons les quatre dernières lignes ou l'inventaire. J' ai pris ça d'exactement ici. Comme je l'ai dit, c'est absolument partout. Je dirais qu'il pourrait probablement utiliser un certain refactoring. Mais il va trouver, donc cela va maintenant avoir l'inventaire des joueurs au lieu du gestionnaire à l'intérieur d'ici. Parce que le joueur, l'inventaire des joueurs que nous sommes donnés ici. S' il vous plaît Parce que pourquoi, en fait, pourquoi pas ? Je suppose que non. Tu y vas, je suppose que je me trompais. Non. En fait, nous n'avons pas besoin de ça. On n'a pas besoin de ces deux. Tellement pour celle-là. Et puis nous allons garder les positions ici aussi. Et les positions vont être à moitié pour changer aussi. Cependant, comme je l'ai dit, nous allons jeter un coup d'oeil à ça dans un peu de temps. Alors appelons ceci avec le gestionnaire, puis générons des emplacements d'inventaire de couche. Et c'est très bien. Et oui, puis après que nous avons fait ça, quels sont les créneaux horaires qui sont générés, quel est le problème ici ? Oui, nous avons besoin d'insérer super qui est tout à fait bien. Le reste, Fait intéressant, nous pouvons simplement prendre afin que nous ne savons pas, Nous en fait, nous ne voulons pas la cela. On ne veut pas ça. Nous voulons le transfert et la fente, cependant, vous voulez le conteneur fermé. Et nous voulons aussi le nombre de lignes dont nous n'avons pas vraiment besoin. Nous avons cependant besoin de l'inventaire de la poitrine. Alors prenons ça pour qu'on puisse copier tout le reste et le mettre dans. Et nous pouvons alors aussi nous en débarrasser. Et puis nous avons besoin de l'inventaire, qui va être le suivant. C' est le, cela va être l'entité de tuile plus tard sur la ligne. Donc, ce sera essentiellement la grande tuile de poitrine, cette entité de tuile. Ils y vont. Donc il y a l'inventaire, je dirais en fait, ou nous pouvons renommer ceci pour obtenir l'inventaire de la poitrine parce que l'inventaire est inférieur. Je ne sais pas pourquoi c'est le nom, mais oui. D' accord. Je suis désolé de la poitrine, ça a l'air bien. Inventaire du coffre. On peut le savoir. Il est plus facile de dire, encore une fois, de dire entité de tuile. Oui, talentueux t, désolé, voilà. Tile entité point cast et puis il va lancer cela à l'entité, désolé, grande chaîne et grande poitrine serré. Ils y vont. Et puis on va rapprocher l'inventaire. C' est tout ce qu'il nous faut ici. Quand il s'agit du minimum, nous pouvons également nous débarrasser de ce commentaire. Et puis la fente de transferrin, c'est bon. Cela gère le clic Maj. C' est tout à fait bien. Cette somme, nous pouvons simplement garder cette année, sauf celle-ci. Cela doit être fait avec ces appels num point. Et puis celui-ci est cette.name appels. Oui. Et puis c'est quoi ? This .name car le nombre de colonnes dans ce cas. Plus de neuf. Donc, ce n'est pas codé en dur là-dedans. Peut interagir avec est la dernière chose que nous devons faire fondamentalement. Et ça va être le suivant. Ce sera un gros titre de coffre, cette entité .title. Et puis nous allons entourer les deux de cette largeur avec quelques parenthèses. Désolé, je suis l'ego. Et puis nous disons que le point est utilisable par joueur. Joueur. Je crois que ce serait pour le conteneur, la seule chose que nous devons ajouter est le super-héros. Mais nous ne pouvons pas encore à cela parce que nous n'avons pas encore défini à l'heure le conteneur à l'intérieur de nos conteneurs à bouche. Mais on peut le faire tout de suite. On peut le faire maintenant ? Oui, on ne peut pas. On devrait être en mesure de le faire. Donc nous pouvons dire final statique public. En fait, tu sais quoi, copions ça. Soyons honnêtes. C' est plus facile de copier ça. Ce sera le grand conteneur de coffre de type, grand conteneur de poitrine avec le nom grand conteneur de poitrine. Ensuite, nous allons créer un nouveau grand conteneur de schistes avec un monde IDA fenêtre, une position dans l'inventaire. Et puis au lieu de l'interatrial, le joueur, nous allons dire un six, 11. C' est, désolé. Oui, nous avons encore une chose. Intéressant. Qu' est-ce qu'on a ? Nous avons l'entité de tuiles. Nous n'avons pas besoin de l'entité de tuile. C' est ridicule. Un numéro légal de ok. Rien de tout ça. Six, c'est ça ? Nombre de colonnes est 11 et nombre de lignes. Oui, je l'espère. On va voir parce qu'il y avait un peu bizarre avec les colonnes et les rangées. Je ne suis pas sûr à 100 %. On va le garder comme ça. Oui. Je pense que c'est bon. Oui. Et puis cela fonctionnera déjà bien. Donc c'est plutôt sympa. Le conteneur est terminé. Et puis on peut aussi retourner dans la poitrine juste ici. Et puis nous avons le conteneur de coffre. Maintenant, nous pouvons en fait simplement sélectionner ceci, le copier, puis appuyer sur Control R. Et puis partout avec ça, c'est juste un conteneur. Nous pouvons simplement dire grand conteneur de coffre et ensuite remplacer tout. Tout d'abord, nous allons avoir une flèche, mais c'est simplement parce que le gros conteneur d'échecs pour l'Italie n'est pas comme s'il n'était pas là. Excusez-moi. S'il vous plaît Ai-je écrit ça mal ? J' ai j'ai manqué types. Tom et moi n'avons pas mal tapé quelque chose. Donc je ne suis pas sûr à 100% pourquoi il a un problème avec OK. Pour quelque raison que ce soit, c'est vrai. Je veux dire d'accord. Je suppose que le remplacement n'a pas tout à fait fonctionné, mais ils vont. Ainsi, vous pouvez tout simplement partout s'il y a un conteneur de stress météo, vous remplacez simplement par un grand conteneur. Oui. Pour toujours raison qu'il n'a pas tout à fait travaillé. Intéressant. Eh bien, d'accord. Bien sûr. Oui. En dehors de ça, on va s'inquiéter de ça dans un peu de temps. Donc, le conteneur thoracique a été bien nourri. En bas. Oui, en bas. Nous avons également besoin de changer quelque chose alors que, comme vous pouvez le voir, le générique est tiré ici et ce n'est pas ce que nous voulons. Ce que nous voulons, c'est que nous voulons retourner les conteneurs MOD, docker, conteneur, qui se fait. Et puis avec la carte d'identité et le joueur, Oh, c'est sympa. N' avez pas réellement besoin de ce swap, la méthode contents. Nous n'avons pas non plus besoin des bons joueurs qui l'utilisent. Nous pouvons aussi mener cela. Et maintenant, voici, nous avons déjà une classe d'entités de tuiles sans erreur. Maintenant, cela ne va pas marcher encore, mais que vous êtes maintenant à l'intérieur, retour à l'intérieur de notre grand conteneur de coffre, nous appelons le super. Et ça va être les conteneurs MOT, docker, conteneur, pas la porte avec un ID. L'ego. C'est ça. C' est tout pour le conteneur a terminé la Thaïlande T. Maintenant, nous aurons besoin de changer ces positions ici plus tard en bas de la ligne et après nous avons mis en œuvre l'écran ainsi. Eh bien, fondamentalement le doux, ouais, c'est tout. Ok, alors faisons l'écran. Et ça va être le grand écran de poitrine. Grand écran de coffres au lieu de votre grand écran de poitrine va s'étendre. Et ça va être un écran de conteneur. Pour entrer dans l'écran avec le type, grand, grand conteneur de poitrine. J'adore ça. Cela va avoir des méthodes implémentées, celle-ci et ensuite a été implémentée le constructeur, oui, bien sûr. Et il y a quelques choses que nous devons faire. Et ce que nous devons faire d'abord et avant tout, c'est parce que nous avons un, donc je vais ouvrir les briefers électrifiés. Donc c'était l'interface graphique. C'est la taille normale d'une interface graphique à laquelle nous sommes habitués dans Minecraft. Et c'est la taille de l'interface graphique dans les grands échecs. Évidemment, c'est plus grand. Par conséquent, si nous regardons l'écran du conteneur, si nous avons le bouton du milieu de la souris, cliquez dessus. Vous pouvez effectivement voir que la taille ici est, est la prédéfinie à l'intérieur des conteneurs. Donc, si nous avons quelque chose qui est plus grand, nous le spécifions juste ici. Donc, nous avons ce point x taille est égale à 212. Cette taille de point y est égale à 221 parce que ce sont les pixels que, l' interface graphique est grande, n'est-ce pas ? Donc, le gros test est de 212 pixels dans la direction x et de 221 pixels dans la direction y. Et puis nous pouvons également ajouter cela déjà afin que nous puissions aller dans l'interface graphique des oiseaux de texte et ajouter à cela ici. Assurez-vous de le copier là, pas simplement le déplacer. Et puis c'est quelque chose que nous pouvons également mettre en tant que ressource, privé, emplacement de ressource final pour l'interface graphique, nouvel emplacement de ressource. Mc cours Math.min DID, comme nous sommes très bien conscients de. Et puis c'est à l'intérieur de textures slash poitrine et nous points PNG. Quelle belle, quelle belle chose. Ok, c'est bon. Et le droit, c'est bon pour l'instant. Ensuite, nous avons besoin de la méthode de rendu. Et ceci, bien sûr, nous pouvons regarder en arrière dans notre écran électrophile et nous pouvons fondamentalement retirer quelques choses de celui-ci. Ainsi, par exemple, la méthode aléatoire est exactement la même. Donc, nous pourrions, par exemple, simplement copier ça. Totalement bien, parce que c'est presque toujours la même chose, la méthode aléatoire. Et dans ce cas, nous avons seulement besoin du conteneur Mac fond rond ici. Et ce que nous voulons faire est fondamentalement aussi. Copiez également les informations de cet écran électrophile. Parfois, c'est plus facile, on n'a pas besoin de ça en fait, on ne veut qu'un seul coup. Et cette division ici est simplement, bien fondamentalement l'interface graphique elle-même. Et c'est en fait ça. Comme si c'était tout ce qu'il nous fallait. Nous devrons également définir quelque chose d'autre ici. Mais nous ne le ferons pas encore parce que je veux vous montrer pourquoi nous devons changer si vous autres choses. Et en gros, comment trouver comment les changer. Maintenant, on pourrait penser, eh bien, je veux dire, c'est génial, on a fini. Et je dois vous dire que nous n'avons malheureusement pas encore fini parce que nous aurons réellement besoin d'un moteur de rendu nous-mêmes. Donc, nous devons, numéro un, faire un nouveau rendu d'entité de tuile. Et nous avons également besoin de faire un nouveau rendu d'entité tactile des éléments. C' est pour ça que j'ai dit que nous allons être partout, mais pas de soucis, nous allons passer à travers ça. Donc entité de tuile, ajoutons une nouvelle classe. Ça va être la grande entité du titre de coffre et rendre notre ego. Cela va être une classe générique qui étend l'entité de tuile, fin I, poitrine, couvercle. Et puis aussi cette classe étend le rendu d'entité de tuiles de poitrine de l'enfant. Comme vous pouvez le voir, vraiment sympa. Créez un constructeur. Ce sera en fait ce que nous pouvons faire, c'est le bouton du milieu de la souris sur celui-ci. Et une fois de plus, montez en haut et allez tout en bas, Contrôle C. Et retournez ici et fondamentalement collez-le. Et nous n'aurons que quelques choses de plus là-dedans. Et c'est seulement parce que le nom du constructeur est à nouveau faux. Et puis nous n'aurons en fait aucune erreur. Maintenant, nous aurons besoin de changer, je crois qu'une seule chose si je ne me trompe pas. Et c'est juste vérifier rapidement parce que c'est, comme je l'ai dit, c'est de la folie ici. En fait, je ne pense pas qu'on ait besoin de changer quoi que ce soit. Et en ce moment, juste ici. Oui. Je ne pense pas qu'on ait besoin de changer quoi que ce soit pour le moment. Gardons-le comme ça. Et s'il y a une erreur, alors nous allons vérifier ça. Oui, parce qu'on est exactement parce qu'on a le 0. On n'a pas encore de bloc. C' est pourquoi nous devons faire un bloc qui obtient le bloc de stress supplémentaire étendu. Donc c'est la prochaine chose que nous allons faire. Donc, c'est le moteur de rendu. Et puis nous aurons besoin d'un bloc, qui va être un gros bloc thoracique. La poitrine, s'il vous plaît, ils le feront. Et le gros bloc de blog de la poitrine, pas blog, va étendre schiste abstrait, bloc schiste. Et ça va être de type coffre, gros coffre, tuile. Belle méthode d'implémentation, une nouvelle entité ? Oui, assez facilement. Et cela va être les entités de tuile Mode. Nous n'avons pas fait les entités de tuiles. Donc je le suis si je ne me trompe pas désolé, pas l'électrophile. Les entités multiples. Oui. On y va. Nous ne l'avons pas encore fait, comme je l'ai dit, un peu partout parce qu'il y a tellement de choses. Je ne peux que vous implorer de télécharger les fichiers et probablement de les jeter un oeil. Tu sais, au lieu de V, eh bien, on a programmé l'amorçage, mais je veux dire, peut-être, c'est peut-être, peut-être que c'est un exercice amusant. Permet de copier cela à nouveau parce que parfois c'est plus facile. Ça va être une grosse poitrine, une grosse tuile de poitrine. Et cela va être la grande entité de soulignement du titre de soulignement de la poitrine. Et cela va être l'entité de soulignement soulignement. Et ça va être une nouvelle grande tuile de poitrine avec un nouveau bloc. Nous ne l'avons pas encore défini dans nos blocs de carte. Incroyable. Donc, ce sera les entités de tuile Mode. La minuscule entité poitrine obtient V8. Oui. Très bien. Et c'est un peu plus de blocs que nous pouvons simplement ajouter pour le cuivre ou nous allons juste faire un public vraiment avoir à revérifier cela parce que je ne suis pas un Ciara 100 pour cent. On fait ça. C'était le gros échecs. Oui. Pire registre final statique public. Registre, objet de type chance, bien sûr, grand coffre. Le grand juste, j'aime ça. Et maintenant, inscrivez-vous, faisons-le comme ça. Copions le registre ici. Grand test de soulignement. Et puis on va avoir un gros bloc thoracique ici, un gros bloc de chance. Et cela, bien sûr, a encore une chose. Oui, génial. On va avoir ça bien. Débarrassons-nous de ça. Et je vais aussi avoir les entités de tuile MOD, désolé, petites entités. Choisissez le point p talentueux de la poitrine, obtenez les arguments 0 attendus mais trouvé à, eh bien, c'est probablement parce que ce que nous n'avons pas encore de constructeur ici. Eh bien, c'est ouais, je me défendrai toute la journée. C' est une chose très compliquée. Alors faisons croire que nous devrions être en mesure de créer un constructeur oui, l'IPO. Et puis ce constructeur, il corrigera également immédiatement cette erreur. Très gentil. Et nous devrons changer cette méthode de registre dans un peu de temps parce que sinon nous n'aurons pas l'élément rendu. Mais ne nous inquiétons pas pour ça maintenant. Comme vous pouvez le voir, nous avons déjà un, une quantité folle de différents endroits ouverts. Donc la prochaine chose que nous devons faire est le bloc. En fait, nous pouvons aller dans l'abstrait bloqué par un clic du milieu de la souris, puis appuyez sur Contrôle H. Nous pouvons voir la hiérarchie supérieure. Maintenant, nous pouvons également voir le, voir le livre de test. Si nous double-cliquez sur le bloc stress, nous l'ouvrirons. Et c'est un autre de ceux où fondamentalement juste prendre tout à l'intérieur d'ici. On va le copier et tout ce dont on a besoin, on va changer. Donc tout ce que nous avons besoin de changer, nous allons changer et tout ce que nous ne faisons pas, nous ne le ferons pas. Eh bien, copions ça. Alors contrôlez C encore une fois, puis contrôlez V ici. Nous allons également prendre nos méthodes de chaîne que nous avons prédéfinies, y compris le constructeur d'instructeur. Et on va déplacer ça après celui-là. Ensuite, nous pouvons supprimer le constructeur du bloc thoracique. Et puis nous avons ys méthodes, un doublet, mais nous avons déjà défini une de ces méthodes. On n'a pas besoin de ce talent créatif, où sommes-nous ? Prends celui-là. En dehors de ça. Nous pouvons aussi nous débarrasser de quelques-unes de ces choses. Tu es oui, c'est bon. C' est très bien. C'est très bien. Donc, le remplissage de son conteneur, c'est en fait l'une des choses les plus importantes. La fourrière, le comparateur, l'impulsion, l'écrasement d'entrée. Nous pouvons simplement supprimer cela pour l'instant parce que nous n'avons pas nécessairement besoin de la même chose avec celui-ci, puis le même conteneur. Donc, c'est le conteneur GET. Nous allons également supprimer simplement la méthode combine. On en a deux fois, je crois en ce moment. C' est pour ça que cela arrive. L' inventaire de la poitrine, nous pouvons également supprimer l'OpenStack. Nous pouvons également supprimer cela. Le large déblocage activé, c'est la méthode du clic droit. On va jeter un coup d'oeil à ça dans un petit moment. Mais il y a quelques choses que nous pouvons essentiellement nous débarrasser sur Remplacé. Nous pouvons nous en débarrasser, je pense que c'est en fait quelque chose dont nous avons besoin. Je sais qu'on n'a pas besoin cette directive on n'a pas besoin de ça parce qu'on ne veut pas que ça s'attache dans ce cas. Et c'est aussi par nous obtenons un placement. Ça va avoir l'air un peu différent. En fait, on va juste avoir et tout après ça. Nous allons supprimer, je crois. Oui, celui-là. Donc fondamentalement tout après l'état fluide. Oups, qu'est-ce que j'ai fait maintenant, j'ai ouvert le bloc. Tout après l'état fluide ici, nous pouvons supprimer de sorte que le bon état pour placement n'a que le retour de l'état par défaut avec les différentes choses ici. Pour que le type de poitrine reste toujours célibataire. Direction trop attachée. Aussi se débarrasser de cette forme ? Non, en fait, désolé, ce n'est pas que nous ne voulons pas nous en débarrasser parce que nous voulons être en forme pour être en mesure d'afficher une bonne forme. Mettre à jour le congé post-placement est quelque chose que nous n'avons pas non plus besoin, mais je ne suis pas sûr à 100%. On n'a pas besoin de ça. Eh bien, ils vont chercher le type de rendu. Je dois être honnête. Je crois que c'est la raison pour laquelle ils n'ont pas vieilli. Mais je ne suis pas sûr. Je ne pense pas que ça l'est, mais oui, comme je l'ai dit, c'est un peu, c'est un peu fou. Un type de fusion. En fait, nous n'avons pas besoin de ça. Et puis la seule chose que l'on est la méthode combinée, qui va être la chose suivante. Et je ne suis pas sûr à 100% d'où on tire ça. Prends ça d'ici, je crois. Alors. Combiner, la méthode combine est exactement la suivante. Donc, cela doit réellement être copié à nouveau. On va encore copier ça. Et puis nous avons eu cette valeur nulle ici. Et nous prendrons cela parce que sinon il y aura une flèche. Et comme je l'ai déjà dit, c'est un peu, eh bien ne dirait pas tout à fait tricher. Je dirais juste que c'est beaucoup. Cela devra certainement être nettoyé un peu. Et le créer comme ça, c'est tout. C' est définitivement partout. Comme si je devais être honnête. Je suis un peu je ne dirais pas tout à fait gêné à ce sujet, mais la façon dont le bloc thoracique est fait est comme une folie absolue. Je pense que ça pourrait être rendu un peu plus facile. Mais de toute façon, voyons vite, donc le conteneur majeur, nous n'avons pas besoin de cela ainsi que de la fusion d'inventaire. Nous n'avons pas besoin de ça. Et maintenant, je crois qu'on est enfin là. On peut se débarrasser de tout ce qui est à l'intérieur de son octet de débloquer activé. Parce que la façon dont nous allons le faire est de nouveau, la façon dont nous avons fait ça. Si on ferme ça et ça, comme on l'a fait dans l'électrophile. Non, pas le flux molaire, mais l'électrophile. Donc si nous allons ici à l'intérieur de celui-ci, et nous pouvons copier tout l'intérieur de la liste. Et puis nous pouvons aussi faire ceci et ceci. Et puis nous pouvons sauver ce serait, par exemple, écran MC, pire, peut-être gros coffre. Et puis au lieu du conteneur électrophile nous sommes, nous dirons grand conteneur de coffre. Et au lieu de l'entité de couche, on va dire 6 et 11, tu sais 116, non ? Oui. Je l'espère. Je ne suis jamais sûr à 100% ici, mais je pense que c'est juste. droite. D'accord. Maintenant, réfléchissons à ça. Je crois que nous l'avons presque fait, et je le sais, mais nous n'avons pas encore tout à fait fini. Alors réfléchissons à ça. Nous avons les tests ici, c'est bon. Nous devons spécifier le ceci ici. Donc mod blog.config poitrine. Ok, c'est bien, c'est bien. C' est maintenant fait. Oui, 100%, c'est fait. Nous n'avons plus besoin du rendu de l'entité de tuile. Nous l'avons déjà fait. C' est très bien. Et je pense en fait que nous sommes d'accord avec ça. On peut aussi le fermer. C'est plutôt bien. C' est une chose importante que nous avons faite. Je ne suis pas sûr que nous ayons fini avec ça. Non, nous ne le sommes pas. Cette tuile de poitrine entités ici. Et je ne pense pas qu'on les veuille vraiment à l'intérieur de celui-ci. Nous les voulons. Combien avons-nous ? On n'en a que six. C' est bon. C'est permis. Sticks est la bonne quantité. Et d'accord. D'accord. D'accord. Laisse-moi juste regarder ça rapidement. Donc nous l'avons fait, rouvrons l'écran un instant. Bon, maintenant nous devons ajouter les modèles. Bloquer un élément. Oui. Ainsi que les états de bloc. Maintenant, il semble États est vraiment facile. Donc, le bloc indique un nouveau fichier. Ça va être grand. Poitrine, la poitrine point-point JSON. Si j'avais fait ça dans les blocs, désolé, quelqu'un l'a fait, quelqu'un n'a pas été un gros morceau de ce coffre de soulignement. Faisons-le réellement. Elle est sûre. Pourquoi pas ? Gardons-le comme ça. C'est très bien. Refactor Renommer gros échecs de soulignement. Et ça va être le suivant. Et ça va être vraiment intéressant. Bloc modèle et échecs slash. Ce n'est pas tout à fait exact. Ça va être grand, juste l'ego. Maintenant, je l'ai pris des fichiers JSON des microphones à nouveau. Donc ici, au lieu d'un supplément, alors nous pouvons aller à Assets, Minecraft, blocs, dates, et ainsi de suite et ainsi de suite. Et nous pouvons essentiellement chercher ça. Donc, si nous tapons simplement dans la poitrine, alors un petit chemin vers le bas nous pouvons voir le test, et c'est exactement ça. Donc, c'est aussi comment Microsoft EMC pire. Eh bien. Maintenant, c'est un peu bizarre. Ils sont égo. Et un modal. Modals est, désolé, j'ai fait ça à mi-chemin dans le modèle. Je le suis. C'est beaucoup, c'est beaucoup comme je l'ai dit, cela bien sûr ne va pas dans le bloc des modèles. Ça va dans les États noirs. Désolé. Oui, on peut copier ça. Oui, s'il vous plaît. D' accord. Maintenant, un bloc au lieu des modèles et bloc, nous voulons ce qui suit. Nous voulons un peu, comme je l'ai dit, c' est un peu plus, c'est un peu plus que vous êtes probablement habitué. C' est un peu plus, ce sera tout simplement la chose la plus facile. Cela va simplement être textures, particules, Minecraft, bloc o. merci. Donc, quand nous détruisons le bloc, nous voulons que les particules soient 0 planches. Assez facile. Et maintenant, le modèle de l'article va complètement éteindre vos chaussettes. Parce que c'est comme ça que Chris, ai-je fait ça avec un trait de soulignement ? Tu l'as dit. Ça va être un fichier de soulignement de la poitrine point-point Jason. Et je vais copier ceci une fois de plus, c'est, c'est construit dans l'entité. Maintenant, c'est une fois de plus des modèles ici bas. Donc, vous pouvez revérifier ça. Donc c'est exactement la même chose. Et pour l'utiliser, nous avons réellement besoin de notre propre moteur de rendu de pile d'éléments, comme je l'ai dit, c'est toujours un très beau. Et, et ce sera, je vais créer ceci au lieu des éléments ici. Cependant, je crois que cela, vous savez, comme plus tard en bas de la ligne, cela devrait probablement être ailleurs, surtout si vous avez plusieurs de ces gros éléments de coffre, pile, titre, entité, rendu. Je vais juste le dire, tu l'as demandé. Maintenant, mais pour être honnête, ce n'est pas si difficile à comprendre. Donc, c'est un titre étendu, cet élément, pile, moteur de rendu d'entité de tuile, ils vont. Et si nous allons dans cela, cela n'a en fait qu' une seule méthode ici de cela serait en fait appelée la méthode de rendu. Cependant, quelle que soit la raison ou il n'est pas encore mappé. Et nous allons juste copier la signature de la méthode ici. Et puis nous allons ajouter un, un autre support bouclé. Et la seule chose que nous devons appeler à l'intérieur d'ici est le titre. Et à votre répartiteur de rendu, cette instance, cet élément de rendu, Désolé, nœud de rendu, il est l'élément de rendu réellement élément de rendu. Et puis avec la nouvelle grande tuile de poitrine, puis la casse-croûte matricielle. Nous voulons le tampon, nous voulions la lumière combinée, et nous voulons combiner superposition et, et c'est tout. C' est tout ce qu'il faut faire ici. Allons juste pour l'enfer, ajoutez le remplacement aussi. Parce que le mien et oui, c'est en fait tout ce qu'on a à faire. Nous entendons, nous devons bien sûr tenir cela et l'endroit où nous devons appeler cela à l'intérieur de nos blogs modèles. Et quels blocs. Je ne sais pas pourquoi je l'appelle mes blogs comme si nous étions, nous sommes, nous bloquons. On ne l'est pas en fait. Donc mod blogs, blocs. Oui. Aha, ouais, exactement. C' est parce que la méthode de registre ne fonctionnera pas car nous avons réellement besoin d'ajouter une nouvelle propriété d'élément. Et nous avons fait qu'il y a quelque chose de similaire ici, mais nous en voulons un nouveau ici. Ça va être une tuile d'enregistrement. Et après l'onglet du cours, on appellera le set de Pâques. C' est le, c'est exactement le rendu d'entité tactile éléments. Et puis on va dire qu'il y a un séparateur de gros objet de poitrine empilé autre que son côlon, le côlon neuf. Et puis celui-ci va être froid ici au lieu de la méthode de registre. Oui. Maintenant, on a presque fini. On doit tout revérifier, mais je pense qu'on a presque fini. Bien sûr, nous ajoutons quelque chose, quelque chose, quelque chose que quelqu'un positionne. Ça va arriver. Mais à part ça, je crois qu'on devrait commencer ça et ne pas le comprendre. On n'aura pas de terre. Essayons ça. Je ne suis pas sûr parce que, comme je l'ai dit, c'est de la folie. Mais je pense que ça pourrait marcher. Voyons voir. Oh, je crois qu'il y avait déjà une flèche là-dedans. ne chargeons pas de mobile. Donc c'est plutôt sympa. On est en train de charger. On a même un écran de chargement. D' accord. Alors le menu principal, c'est plutôt sympa. Allons dans notre monde. Oui, nous le ferons. Je sais ce que je fais. C' est une fois de plus, les paramètres de travail expérimental en raison de notre dimension personnalisée. Ok, on se retrouve dans le monde. Voyons maintenant. Si on a un coffre. Et ça ressemble à un coffre. Si on le place, ça ne ressemble pas à un échecs, mais c'est bon parce que je sais vraiment comment réparer ça. C' est parce que nous n'avons pas ajouté cela. Si je fais un clic droit, rien ne se passe. Ok, c'est, c'est ce qu'on va bien. Voyons voir. Quel est le problème que nos fournisseurs de conteneurs manquent ? Eh bien, ce n'est pas bon. Ce n'est pas bon. On n'a pas appelé super ? On a appelé le super. Eh bien, oh, c'est ce qui se passe. Et cela arrive si exactement, eh bien, si notre talent n'est pas un exemple d'électrophile, n'est-ce pas ? Sachez, bien sûr que ce ne serait pas le cas. C' est de type. Grande poitrine, serrée. Voilà, tu y vas. C'est donc le problème ici. Et puis nous allons aussi immédiatement parce que je me souviens de cela, réparer le oh, en fait j'ai obtenu quelque chose d'autre de toute façon. Et ça va être le suivant à l'intérieur de notre client. Des rochers. Ici, nous devons ajouter ce qui suit. Gestionnaire d'écran, gestionnaire d'écran, enregistrez les conteneurs mod d'usine. Pas que les conteneurs ne reçoivent pas. C' est le grand conteneur de coffre. Nouveau. Belle. Ça ne marche pas parce qu'il n'aime pas que je ne suis pas sûr à 100 %. Blanc l'est. Pourquoi le poids que je fais écran Container Instances. Eh bien, ce serait la raison pour laquelle écran, écran, écran, non, non, non, non, non, non, c'est gentil. Maintenant aussi, bien sûr, important ce cours est vous, êtes-vous en colère ? Et puis nous en avons besoin. Ayez également l'entité que vous rendez, et cela va se poser dans le mode de rendu de l'entité de tuile de liaison point de Registre, entités de tuile, pas de gros points d'entité de tuile poitrine et de grand rendu d'entité de tuile de poitrine, deux-points, num deux-points. Ceci et ceci doit également être ajouté au proxy client. Celui-ci va simplement s'assurer que l'écran est affiché. Donc quand, une fois que nous faisons un clic droit et celui-ci assurera que le bloc est effectivement rendu à l'intérieur du monde. C' est plutôt sympa. Et je pense que cela devrait maintenant fonctionner. Comme je l'ai dit, encore une fois, c' est un peu plus lâche d'un épisode, je dirais, d'une conférence.