Modding por Kaupenjoe: Modding de Minecraft para principiantes (versión 1-16-X) | Kaupenjoe (Nico) | Skillshare

Playback Speed


1.0x


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

Modding por Kaupenjoe: Modding de Minecraft para principiantes (versión 1-16-X)

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

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introduction to the Course

      1:55

    • 2.

      IntelliJ & Java Download

      0:40

    • 3.

      IntelliJ & Java Setup

      3:28

    • 4.

      (Java) Datatypes in Java

      6:32

    • 5.

      (Java) How to Read Java Code

      3:39

    • 6.

      (Java) The Main-Method

      2:52

    • 7.

      (Java) Using println to output things in Java

      6:31

    • 8.

      (Java) Integers and arithmetic operators

      7:37

    • 9.

      (Java) Booleans and comparison operators

      3:54

    • 10.

      (Java) Booleans and logical operators

      3:43

    • 11.

      (Java) Strings and String-Methods in Java

      13:43

    • 12.

      (Java) Casting Variables

      5:38

    • 13.

      (Java) Integers and Math-Methods

      6:46

    • 14.

      (Java) If and Else Statements in Java

      8:36

    • 15.

      (Java) The Ternary operator in Java

      3:35

    • 16.

      (Java) The Switch Statement

      2:49

    • 17.

      (Java) While Loop

      4:25

    • 18.

      (Java) For Loop

      3:45

    • 19.

      (Java) Break and Continue

      2:34

    • 20.

      (Java) Arrays in Java

      10:06

    • 21.

      (Java) Multidimensional Arrays in Java

      7:43

    • 22.

      (Java) The (Array) List

      8:02

    • 23.

      (Java) HashMaps in Java

      6:00

    • 24.

      (Java) For Each Loop

      3:24

    • 25.

      (Java) Java Methods

      8:07

    • 26.

      (Java) Method Overloading

      3:12

    • 27.

      (Java) Classes and Objects in Java

      11:40

    • 28.

      (Java) Public, Protected and Private

      2:30

    • 29.

      (Java) Getters and Setters

      3:26

    • 30.

      (Java) Packages

      2:28

    • 31.

      (Java) Inheritance

      7:13

    • 32.

      (Java) Static and Non-Static Methods

      3:54

    • 33.

      (Java) Polymorphism

      2:42

    • 34.

      (Java) Abstract Classes and Methods in Java

      3:52

    • 35.

      (Java) Interfaces

      7:58

    • 36.

      (Java) Enums

      4:43

    • 37.

      (Java) Exceptions & Try and Catch Statement

      6:40

    • 38.

      (Java) Java Lambda Expressions

      10:02

    • 39.

      (Minecraft) Forge Installation and Setup

      11:06

    • 40.

      (Minecraft) Note on using Minecraft 1.16.5

      2:48

    • 41.

      (Minecraft) Create our first Item

      10:31

    • 42.

      (Minecraft) Create our first Block

      9:47

    • 43.

      (Minecraft) Theory: Going in depth into our Classes

      15:40

    • 44.

      (Minecraft) Our own Custom Creative Tab

      3:43

    • 45.

      (Minecraft) Create a new Recipe

      5:46

    • 46.

      (Minecraft) Block Drops with Loot Tables

      5:01

    • 47.

      (Minecraft) Create a new Food Item

      8:05

    • 48.

      (Minecraft) Create a new Set of Tools

      21:03

    • 49.

      (Minecraft) Events in Minecraft Modding

      23:17

    • 50.

      (Minecraft) Add Tooltips to Items

      8:29

    • 51.

      (Minecraft) Create a new Set of Armor

      14:27

    • 52.

      (Minecraft) Creating Stairs, Buttons, Pressure Plates and Fences

      18:16

    • 53.

      (Minecraft) Mod Configs

      11:55

    • 54.

      (Minecraft) Exporting your Mod

      4:44

    • 55.

      (Minecraft) Use Github for Source Code examples

      6:16

    • 56.

      (Minecraft) Use GitHub as a Version Control System

      8:52

    • 57.

      (Minecraft) Current Forge and Minecraft Version (1.16.4)

      3:40

    • 58.

      (Minecraft) Current Mappings

      3:25

    • 59.

      (Minecraft) Advanced Loot Tables

      5:45

    • 60.

      (Minecraft) Custom Crops

      15:41

    • 61.

      (Minecraft) Custom Fluids

      17:15

    • 62.

      (Minecraft) Clean up and Refactoring

      10:45

    • 63.

      (Minecraft) Custom Block Models (Including Blockbench)

      23:50

    • 64.

      (Minecraft) Creating a new Tile Entity

      15:44

    • 65.

      (Minecraft) Create a Custom GUI

      42:18

    • 66.

      (Minecraft) Ore Generation in the World

      13:08

    • 67.

      (Minecraft) Creating a Custom Tree

      23:50

    • 68.

      (Minecraft) Creating a custom Mob

      30:18

    • 69.

      (Minecraft) Making our custom Mob spawn inside the World

      16:25

    • 70.

      (Minecraft) Creating a custom Biome

      49:58

    • 71.

      (Minecraft) Sound Events and Custom Sounds

      10:55

    • 72.

      (Minecraft) Creating custom Enchantments

      20:42

    • 73.

      (Minecraft) Data Generators for Items and Blocks

      23:18

    • 74.

      (Minecraft) Data Generator for Loot Tables and Language

      21:42

    • 75.

      (Minecraft) Data Generator for Recipes and Advancements

      29:27

    • 76.

      (Minecraft) Tile Entity Fix and Capabilities

      22:56

    • 77.

      (Minecraft) Creating Custom Commands

      24:10

    • 78.

      (Minecraft) Making our own Dimension

      28:13

    • 79.

      (Minecraft) Creating a Big Chest Tile Entity

      51:25

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

1,214

Students

8

Projects

Acerca de esta clase

¿Siempre querías crear un Minecraft Mod? Este curso te enseñará a hacer tus propios Minecraft Mods! No solo aprenderás el lenguaje de programación Java, sino también la API de Modding de Minecraft para hacer tus mods compatibles con todos los demás Mod en Minecraft: MinecraftForge!

En este curso te enseñaré los primeros pasos introduciéndote en Java. Incluso sin experiencia podrás crear Mods al final. Aprenderás a hacer bloques, artículos, herramientas y armas en Minecraft. También aprenderás a crear diferentes tipos de eventos.

Con un poco de creatividad y aplicación de las lecciones que obtienes de este curso, ¡solo puedes hacer que el próximo Mod de Minecraft llegue a juego!

Este curso es accesible para principiantes completos. ¡Incluso si nunca has programado en tu vida! El único requisito es que seas dueño de Minecraft y estás vagamente familiarizado con el juego y algunos populares Minecraft Mods o incluso Minecraft Modpacks.

El código fuente completo estará disponible para que puedas seguir todo lo que hago en los videos.

Si tienes alguna pregunta o sugerencia, también no dudes en ponerte en contacto conmigo aquí. Estoy encantado de ayudarte a aprender a codificar en Java y hacer tu propio Minecraft Mod.

Ten en cuenta que esta clase es para 1.16. ¡X. 1.17+ no es compatible con esta clase!

AVISO LEGAL: NO UN PRODUCTO OFICIAL DE MINECRAFT. NO APROBADO POR MOJANG, NI ASOCIADO CON MOJANG.

Meet Your Teacher

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Teacher

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... See full profile

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción al curso: Muy bien, bienvenidos a este curso más extenso sobre modelado de Minecraft aquí en cuota de habilidad. Y en este curso, vamos a aprender de todo, desde crear bloques y artículos hasta herramientas, armaduras, e incluso entidades de azulejo. Entonces esta es una selección de cosas que realmente vamos a aprender y crear aquí, vamos a crear algunas cosas basadas en cobre. Entonces cobre o vamos a crear bloques de cobre y lingotes. Vamos a crear unos alambres de cobre. Y también vamos a asegurarnos de que esta respuesta dentro del mundo al mundo, Jen, Vamos a crear herramientas a partir de ellas y armaduras. Vamos a crear nuestros propios cultivos personalizados y cómo asegurarnos de que se muestren correctamente y cómo funciona todo eso. Vamos a crear nuestro propio fluido personalizado. En este caso, se trata de petróleo. Y por supuesto una entidad de mosaico, como ya he dicho, esta entidad de mosaico tendrá una GUI personalizada y esto también tendrá una funcionalidad personalizada. En este caso, vamos a crear diamantes, que lo vamos a tener para que los diamantes realmente creen energía. Y entonces esos diamantes pueden ser, esta energía puede luego transformarse en esmeraldas mediante el uso de alambres de cobre. También iban a crear nuestro propio árbol personalizado y tener este árbol personalizado generado dentro del mundo. Y por último pero no menos importante, y tenemos nuestra propia pestaña personalizada. Y dentro de aquí, en realidad también vamos a poder engendrar turbas que hicimos nosotros mismos. Entonces empleos de clientes, también nos van a sumar al juego. Estos también pueden engendrar en un lado del mundo. Y también estamos agregando un desove, o eso es lo que viene en este curso. Espero que sea de su interés. Y estoy deseando verte dentro del curso. Y ellos sí. 2. Descarga de IntelliJ y Java: O hay dos cosas que debes descargar para esta clase. El primero es el JDK abierto, que es simplemente el lenguaje Java, por así decirlo, para que puedas usarlo y programar con él. Y muy importante que uses el ocho JDK. Entonces elige esta versión y luego elige el hotspot de JVM. Basta con dar click en Relacionado con el lanzamiento y luego se va a descargar. Y otra cosa también queremos descargar idea de IntelliJ. Y esto es muy importante que utilices la versión de comunidad aquí. Esto es gratuito y de código abierto, no se requiere inicio de sesión ni nada. Y esto nos va a dar suficiente poder para hacer cualquier cosa que queramos hacer. Y ambos enlaces están en la parte superior de la descripción del proyecto. 3. Configuración de IntelliJ y Java: Muy bien, bienvenidos a esta primera conferencia sobre cómo configurar Java y la idea de IntelliJ. Ahora, cuando inicias la inteligencia por primera vez, esta es la ventana con la que te van a saludar. Y simplemente queremos dar click en Nuevo Proyecto porque queremos crear un nuevo proyecto. Importante, asegúrate de que elijas. Java aparecen en la parte superior izquierda. Y luego cuando se trata del proyecto SDK, queremos seleccionar el Open JDK que hemos descargado previamente. Ahora, aquí ya tengo el uno-punto una versión Java aquí. Podría ser que esté aquí abajo para ti. Debería encontrarlo automáticamente y solo deberías poder seleccionarlo. Si ese no es el caso y aún lo has instalado, puedes hacer clic en este botón agregar JDK y luego buscarlo donde tengas. Ponlo. Entonces donde sea que lo hayas instalado en el directorio y solo tienes que hacer clic en Aceptar ahí. Si eso no funciona, así que no lo encuentras. Siempre puedes descargar también desde aquí eligiendo adoptar Open JDK y luego seleccionando el 1.8. Ah, eso es muy importante que esta sea la versión que seleccionas, ¿verdad? Y luego solo tienes que hacer clic en descargar en cualquier ubicación en la que quieras instalarlo. Y entonces eso también funcionaría bien, ¿verdad? Entonces con eso seleccionado, continuación, en realidad marcamos esta casilla. Entonces crea proyecto a partir de plantilla porque sí queremos tener la aplicación de línea de comandos como plantilla. Esto simplemente significa que va a generar para nosotros un pequeño ayudante, digamos que eso nos va a hacer empezar mucho más rápido que si no tenemos esto generado automáticamente. Podemos volver a hacer click siguiente. Y en esta ventana, realidad tenemos que especificar el nombre del proyecto y la ubicación, así como el nombre del paquete base. En el nombre del paquete base suele ser un dominio invertido. Entonces, por ejemplo, para Google.com, rojo se convertiría en dot google, ¿verdad? Y para nuestros propósitos, para mí, voy a hacer com.com Joe, o puedes hacer básicamente lo que quieras. O VR. Esta es definitivamente la convención para hacerlo así. Así también, hacer los puntos tranquilos y luego un nombre o punto neto o lo que pudiera ser el caso. Algo que también es muy importante mencionar es que esto es en minúsculas, un paquete base, base y todos los paquetes y los nombres están todos en minúsculas. Y así vamos a hacer clic en terminar y luego vamos a ver qué pasa. Entonces esto va a hacer un montón de cosas. Y luego como pueden ver, ya nos ha generado algunas cosas. Ahora podemos ampliar esto aquí a la izquierda. Y luego si ampliamos la carpeta fuente, en realidad podemos ver que aquí está nuestro paquete de trabajo de KM.com. Hay dos cosas que quiero mencionar. Eso es una vez aquí en el menú de opciones. A veces podría ser que los paquetes aplanados esté por otro lado, se va a ver un poco algo como esto. Se va a ver un poco raro y esto podría convertirse en un tema. Yo sí aconsejo apagar paquetes planos para los efectos de todo este curso. Y sí, y eso es básicamente todo. Esto es básicamente el, el, lo que necesitas. Y si esta configuración se ha hecho, entonces puedes seguir el curso de Java a una T. Y sí. 4. (Java) Datatypes en Java: Así que bienvenido de nuevo a la introducción de Java. Y en esta conferencia vamos a hablar de los tipos de datos. Ahora. ¿ Cuáles son los tipos de datos? Es básicamente una forma de almacenar información. Y por supuesto que hay diferentes tipos de información, ¿verdad? Por lo que este va a ser un enfoque más teórico para explicar los tipos de datos. Y luego vamos a ver más tarde, OK, ¿qué podemos hacer con ellos? ¿ Cómo podemos manipularlos? ¿ Cómo son una especie de intercambiables? Y sólo vamos a ir a través de ellos y ver qué podemos ver. Entonces lo primero es lo primero, hay un tipo de números. Y los tipos de números deben tener sentido. Hay dos tipos de números principales, yo diría que es un entero y un flotador. Un entero es un número entero. Y en este caso, es el nominado con el, con la palabra int I-N-T. Después obtienes el nombre de la variable y luego le asignas un valor específico. Por lo que ahora mismo en un número, está escrito ahí dentro 42. Y también he agregado un nivel común, por lo que entero o número entero. Y se puede almacenar cualquier cosa entre estos dos números. Entonces menos 2 mil millones a 2 mil millones ahí dentro. Y luego hay números de punto flotante. Estos son básicamente cuatro números decimales, no del todo. Por lo que los números de punto flotante o flotadores se almacenan en notación científica. Y éstos, en este caso los flotadores o precisos, o 7 decimales de precisión o siete números de precisión. Entonces en este caso tenemos cuatro números. Y si tuviéramos que sumar tres más de ellos tendrían, por supuesto tener siete números y cualquier número después de eso realmente se corta. Entonces, por eso fueron redondeados hacia arriba o hacia abajo. Sí, así que eso es importante saberlo. Si tienes un flotador que es más largo, eso en realidad va a causar algunos problemas. Ahora, como se puede ver aquí abajo, también hay otros tipos de tipos de números son otros tipos de variables que se pueden usar. Entonces una mordida, por ejemplo, es sólo un byte u ocho bits. Tal vez ya has oído eso antes. Y sólo puede almacenar números desde menos un 128127. Entonces esto es para números muy diminutos. Por eso he escrito el nombre de la variable como minúsculo número. Y un corto es un número pequeño. Puede almacenar números desde menos 32 mil hasta cerca más 32 mil. Y luego también hay un largo, que es para números realmente grandes. Y como puedes ver, esto es como cantidad loca de números que puedes o no cantidad de números, pero el rango de números que puedes almacenar ahí. Entonces puedes almacenar desde, um, tengo que porque no estoy seguro, ídolo de nueve cuadrillones, no sé qué es, pero es un gran número, por lo general, en mi estimación y en mi experiencia, es muy raramente visto que uno utiliza a lo largo. Es muy probable que a, un entero utilizado en casi cualquier caso. Porque ¿cuándo realmente sucede que obtienes números que son más grandes que esto? No es muy frecuente el caso. Entonces, en general, yo argumentaría que estos dos son los más importantes. Otro que podría resultar útil es el doble. Y como el nombre aquí sugiere, en realidad es un número más preciso. Por lo que esto en realidad tiene 15 puntos decimales de precisión. Por lo que éste puede tener 15 lugares hasta que el lugar 16 sea cortado o redondeado. Entonces en lugar de solo tener los siete con el flotador, el doble puede realmente tener unos cuantos más, ¿verdad? Entonces estos son los tipos de números. Entonces tenemos booleanos o básicamente el tipo lógico. Esto es por nuestras condiciones de prueba. Y para que podamos tener un booleano, ¿verdad? Por lo que el nombre también booleano. El nombre de la variable en este caso es este es este grado del curso, y es igual a verdadero. booleanos pueden almacenar ya sea verdadero o falso. Por lo que esto también se muestra a veces con uno o un 0. Y entonces también podemos escribir, por ejemplo, es este HTML. Y decimos: No, esto es falso porque esto es Java. Y luego hay personajes. Entonces un solo carácter es un char, CH, AR, y puede almacenar un solo carácter. Esto, sin embargo, también puede incluir caracteres especiales como comas, guiones y espacios. Esos son todos personajes. Entonces, por ejemplo, simplemente podemos escribir algo como esto. Y no va a lanzar un error porque un espacio es un personaje de voy a meter dos espacios y va a arrojar un error porque son dos personajes. Entonces eso es básicamente un solo carácter, un char. Ahora si múltiples caracteres uno al lado del otro, entonces lo que vamos a usar es una cadena. Aquí una cadena almacena una secuencia de caracteres. Por lo que en este caso almacena helloworld. Esto es algo que se ve muy a menudo, sobre todo en cursos de programación para principiantes o en cualquier lugar donde se va a empezar a programar. Hola Mundo es una especie de cosa que, eso es una especie de lo primero que intentas generar como variable. Entonces para decir, Hey, hola mundo, ya he empezado a programar. Este soy yo. Y muy importante saber. Por lo que un personaje se escribe básicamente con estas comillas simples que lo rodean. Y luego cualquier personaje que quieras dentro de él. Y se escribe una cuerda con comillas dobles. Y todo dentro de esas comillas dobles es básicamente parte de la cuerda. También es muy importante tener en cuenta si quieres tener una cotización doble dentro de esto, en realidad puedes usar un año like a backslash. Y éste puede entonces ser usado para crear una, una cita doble dentro de tu cadena si quieres. Y esto también se usa para todo tipo de otras cosas dentro de una cuerda. Sí, así que esos son los principales tipos de datos que vamos a estar usando en este curso. Y esos son también, creo, los que son los más prevalentes que se utilizan básicamente siempre. Y eso fue todo para la conferencia sobre los tipos de datos. Y sí. 5. (Java) cómo leer el código Java: Muy bien, bienvenido de nuevo a la introducción de Java. Y en esta conferencia vamos a hablar rápidamente de cómo leer código. Entonces si nunca has leído código en ninguna parte, realidad vamos a ver algunos ejemplos aquí. Y las dos primeras cosas son comentarios. Por lo que un comentario de una línea se acaba de hacer con dos barras. Y un comentario de varias líneas se hace haciendo una slash y luego una estrella y otra estrella y una slash. Y lo que eso va a hacer es que va a crear un comentario multilínea. Ahora, una declaración de una variable es simplemente el tipo de la variable y luego el nombre de la variable. Y luego terminando la línea con el punto y coma. Si entonces asignamos un valor a esa variable, eso sería simplemente hacer el nombre de la variable, entonces el operador igual, también el operador de asignación llamado operador Simon. Y luego sólo el valor que queremos almacenar en esa variable. Una vez más, terminando la línea con un punto y coma. Esto es básicamente lo que vamos a hacer. Siempre en cada tiempo. Nosotros, cuando tengamos una declaración, vamos a terminar eso con un punto y coma. Entonces tenemos la inicialización, que es simplemente la Declaración y la asignación al mismo tiempo. Entonces en este caso vamos a declarar un entero x y le vamos a asignar de inmediato el valor de diez. En ocasiones tal vez queremos acceder a variables o métodos de un objeto. ¿ Cuáles son, cuáles son los métodos o qué son los objetos? Vamos a hablar de eso en conferencias posteriores. Pero para que lo sepas, lo hacemos con un punto después del nombre de la variable. Entonces cuando tengamos la cadena aquí, si hacemos S dot y nos van a sugerir un montón de métodos a los que podemos llamar. Y esos métodos hacen cosas de las que como dije en conferencias posteriores vamos a hablar. Pero es muy importante que utilices el operador de puntos. No es todo un operador, pero es un punto después del nombre. Y cuando ves los paréntesis abiertos y cercanos después de algo con un punto, este siempre es un método que se llama. Y cuando no lo tienes, entonces esto sería una variable. No obstante, en este caso la variable no existe, por lo que muestra un error. Pero si después no hay paréntesis, entonces como variable, si hay paréntesis, entonces es una llamada de método justo aquí como un breve adenda al final. Este es un bloque de código. Se puede describir como un bloque de código. Y si escuchamos inicializar una variable dentro de este bloque que fuera de él, no se acerca usted reconoce, ¿verdad? Entonces aquí decimos, oh, entero l es igual a 0. Y aquí decimos, oye, yo es igual a L más dos. Eso ahora es trabajo porque fuera de este bloque, L no existe. Entonces esto funciona para ambas clases, métodos, y también solo estos bloques V fluidos de código, que yo, rara vez he visto este que usas así como eso. Pero es muy importante que entre los corchetes rizados, si inicializas algo que fuera de los corchetes rizados, no sea inexistente. Hay unos cuantos, como la especialidad está en reglas especiales. Pero en general, no son accesibles fuera de eso. Y sí, eso es sólo un breve resumen rápido de cómo leer código y sí. 6. (Java) el método principal: Muy bien, bienvenido de nuevo a la introducción de Java. Y de lo que vamos a hablar ahora es de lo que significa esta cosa. Por lo que a esto también se le llama el método principal. Y como pueden ver, aquí he escrito un comentario que dice código va aquí. ¿ Y qué significa eso? Entonces el código central va entre los corchetes rizados, dos en éste y éste. También se destacan al pasar el cursor sobre ellos o los llevo, toma el cursor sobre ellos. Y básicamente lo que sucede es que todo en este método principal se ejecuta de arriba a abajo. Entonces algo escrito aquí, se va a ejecutar primero. Y cuando voy aquí abajo, éste, éste es segundo, por ejemplo, ¿verdad? Entonces primero éste se ejecuta, luego éste se ejecuta y es muy sencillo, básicamente de arriba a abajo. Y esto es cierto en el método principal. Y vamos a ver que no siempre es cierto que sea simplemente lineal o de arriba a abajo. Ya sabes, puedes tener, digamos, sucursales que van a cambiar el flujo de cómo opera el programa o cómo evalúa y ejecuta el programa. Pero en general, necesitas un método principal en tu programa Java porque eso es lo que se va a llamar, eso es lo que se va a ejecutar. Y ahí es donde básicamente la mayoría del, no la mayoría del código, pero ya sabes, parte del código va que se ejecuta. Y en esta introducción, La mayor parte del código al principio especialmente va a entrar en este método principal. Porque esa es básicamente la forma en que podemos, que podemos usar el programa podemos y luego hacer que se ejecute, ¿verdad? Entonces, ¿qué significan todos estos nombres? Tan público estático, vacío. Vamos a descubrir lentamente qué significan estos términos. Ahora mismo. Lo que quiero que hagas es una especie de espacio en blanco esto y solo digas, está bien, estamos dentro del método principal. Y aquí es donde se ejecuta nuestro código. Qué significa todo esto, todas estas otras cosas. Vamos a hablar de esto. Definitivamente. Va a venir en conferencias posteriores. Pero ahora mismo, lo principal es lo principal. Ve lo que hice ahí, vale, ahora lo principal es que sea lo que sea en el método principal que se va a ejecutar, eso es básicamente lo único que necesitas saber ahora mismo. En todas las demás cosas que vas a ver escritas aquí, el órgano a explicar. Pero con el tiempo, porque primero necesitamos unos componentes extra que aprendamos para entender realmente lo que significan las otras cosas. Entonces, sí, eso es solo una idea corta sobre cuál es el método principal y por qué es importante y por qué. Dice, oye, el código va aquí. Y sí. 7. (Java) el uso de println para emitir cosas en Java: Bienvenido de nuevo a la introducción de Java, y esta vez en realidad vamos a escribir algún código. Ahora lo que queremos hacer en esta conferencia es que queremos dar salida a algo a la consola. Entonces, en primer lugar, queremos dar salida a una cadena. Y lo que vamos a escribir es system.out.print, LN, print Ellen solo significa línea de impresión. Y luego vamos a hacer un, un corchete abierto. Y lo que va a pasar es que va a generar automáticamente el final. Y luego vamos a comillas y vamos a poner en hola mundo. Entonces lo que queremos hacer es que queremos dar salida Hola Mundo. Ahora terminamos el, el, básicamente la instrucción con punto y coma. Esa es normalmente la forma en que se termina una instrucción. Y bueno, no arroja ninguna flechas. Entonces solo vamos a empezar esto y a ver qué pasa. Entonces subo a la derecha aquí a este botón Play básicamente y digo correr el principal, Vamos a hacer esto. Y entonces lo que va a pasar es que vamos a ver justo aquí, Hola mundo. Qué cosa tan bonita. Simplemente tienes tal vez si nunca has ejecutado un programa antes, y esta fue la primera vez, felicitaciones. Sé que esto puede que esto no se supone que sea condescendiente. En realidad lo digo en serio. Esto definitivamente es más de lo que la mayoría de la gente GET con esto porque la programación, mientras los primeros pasos podrían parecer fáciles , ya sabes, cuanto más lo hagas, es, es, tiene algo de profundidad y, ya sabes, hacer el primer paso y luego también comprometerse a tomar algo como esto, un curso como este. Eso es genial. Es realmente, realmente es bueno. Entonces, está bien, hablemos de un poco de lo que está pasando aquí. Entonces ahora mismo aquí estamos salidas, dando salida. Poner una cadena es una cadena, como he dicho en el video de tipos de datos, una cadena y las cadenas helloworld, básicamente lo primero que quieres dar salida. Ahora también podemos dar salida a diferentes cosas. Por lo que también podemos ahorrar, por ejemplo, salida de impresión de la línea 42, ¿no? Y vamos, vamos a correr ese. Y entonces va a salir 42. Entonces esto es solo generar un entero. Así que fuera, oh, mi señor. Sacando un término int, ¿verdad? Esto está dando salida a un entero que básicamente podemos generar cualquier tipo de datos que queramos también. Y eso es lo que vamos a ver más adelante. Nuestros propios tipos de datos básicamente. Y entonces, ¿qué pasa si queremos dar salida a un Float? ¿Qué tal ese? Vamos a hacer ese sistema fuera de línea de impresión. Y como pueden ver, aquí ya tiene muchas sugerencias. Y en realidad podemos bajar estas sugerencias y decir, oye, quiero dar salida a un flotador para que solo podamos golpear enter y automáticamente hace cosas por nosotros. Y entonces tal vez cuando queramos hacer el flotador, vamos a escribir algo como esto. Y eso también va a funcionar. Vamos a correr ese 155.32. Y entonces la última es tal vez queremos tener realmente una variable. Entonces tal vez no éramos Int. Vamos a llamar a eso salida de mí. Y va a ser 1137, claro. Y entonces lo que vamos a hacer es que vamos a hacer system.out.print line. Y luego vamos a poner, oh, no, eso no es lo que queremos. Queremos dar salida, me da salida. Y como puedes ver, en cuanto escribo, ya dice, hey, ¿tal vez quieras dar salida a la salida variable yo y yo digo, por supuesto, así que vamos a entrar y autocompletar y luego ejecutar de nuevo el método principal. Como se puede ver ahora, da salida a lo que esté escrito en esta variable, me dé salida. Sí, entonces éste estaría fuera poniendo una variable, variable en los mares, entero, ¿verdad? Sí, así que esto es básicamente de salida, cómo se genera algo, una variable de cadena y flotador entero. En este caso. En este caso esta es una variable entera, pero puede ser cualquier variable que desee una variable string, una variable float, un corto a lo largo de un char. Y sí, este es el método de salida. Entonces system.out.print line es breve adenda a esto es como también hay un system.out.print, ¿verdad? ¿ Y qué pasa si hago esto? Digamos que quiero y luego salida mil. Y si entonces hacemos esto, primer lugar, no va a pasar nada. Pero ahora lo interesante es que si vuelvo a poner un 1000, entonces de repente, ¿qué es esto? Por lo que la línea de impresión básicamente agrega un salto de línea al final de la salida de impresión y la impresión no. Esta es la razón por la que generalmente se prefiere usar la línea de impresión simplemente porque entonces solo se pueden tener múltiples líneas de impresión una debajo otra y no se van a interferir entre sí. Ahora éste, eso va a ser realmente interesante si esperas veces un 1000 en lugar de, ya sabes, el número más grande. Entonces eso es muy importante tener en cuenta por qué la línea de impresión, por qué usé la línea de impresión y YB debería usar la línea de impresión en lugar de una impresión, ¿verdad? Y como un pequeño adenda corto aquí, también puedes imprimir múltiples cosas. Entonces lo que puedes hacer es, por ejemplo, cuando escribes sistema hacia fuera la línea de impresión, puedes, por ejemplo, hacer una cadena. Entonces como ejemplo, reescribir variable de salida. Y luego vamos detrás de la cuerda y hacemos un plus. Y luego por ejemplo, la salida, MY variable. Y esto también funciona, y esto funciona de la manera que queramos. Entonces, por ejemplo, también podríamos decir entonces, tal vez queremos, esta variable de salida que tenemos apenas salida es kilogramos o libras, o tal vez sea yardas o metros tasa. Entonces simplemente podemos agregar algo detrás también. Y luego cuando salimos esto, se escriben juntos. Ahora aquí en este caso, un espacio probablemente sería bastante inteligente. Y entonces la salida en realidad se ve un poco decente. Y esto funciona ya sea con solo las variables intermedias o también podrías hacerlo con cuerdas en teoría. Ahora esto, en este caso, realmente no tiene sentido hacer esto. También puedes simplemente hacer que sea una cuerda. Pero si quieres poner variables dentro de ahí, eso también funciona muy útil y en realidad como muy fácil de usar. Sí. 8. (Java) integers y operadores arithmetic: Muy bien, bienvenido de nuevo a la introducción de Java. Y ahora vamos a hablar de enteros y operadores aritméticos. Entonces, ¿qué significa eso? Básicamente significa, vale, ¿qué podemos hacer con enteros en este caso? ¿ Y cómo podemos manipularlos? Entonces lo primero por supuesto que podemos hacer es que podemos sumar tasa. Entonces si tenemos, digamos un, además, queremos sumar primero, segundo, o vamos a escribir esto primero. Y luego vamos a hacer un símbolo más. Y luego segundo, si entra una vez más con un punto y coma al final. Y ahora además, debería almacenarse un 300. Tiene sentido, en realidad podemos comprobar esto. Salida, esto, digamos. Y luego vamos a salir adición. Y vamos a correr esto. Como pueden ver, 300 es además, como hemos pensado, bien. También podemos decir tal vez lo que queremos es otra suma donde realmente queremos tener, ya sabes, no agrega dos variables, sino tal vez algo más. Entonces tenemos, por ejemplo, tomamos adición, eso es 300 y más 200 o 2200 más 500. Eso también funciona. Podemos agregar múltiples cosas en la misma línea, no un problema. Y entonces sólo voy a copiar esto. Y voy a poner algunos aquí y vamos a ver que eso es un 1000. Sí, claro, eso es genial. Entonces ahora vamos a tener 1000 en unos 300 y suma y 1000 y algunos. Eso es genial. ¿ Qué más podemos hacer? Bueno, tal vez quieras realmente restar algo. Entonces vamos a tener primero menos segundo. Interesante. Ahora, ¿qué va a ceder eso? Bueno, eso debería ceder un menos un 100. Está bien. ¿ Eso es imposible? Por supuesto. Eso no es un tema. Sólo vamos a tener otra línea de impresión. Vamos a imprimir sub solo para ver qué hay ahí dentro. Y vemos que esto es menos un 100, ningún tema en absoluto. Ahí está bien. ¿Qué más podemos hacer? Bueno, a lo mejor queremos multiplicar algo. Parece que tiene sentido. Multiplicémonos primero. Y eso es, eso debería entonces ceder un 400. Y sólo vamos a comprobar eso también. Sólo para estar seguro. Esperemos que las matemáticas aún no hayan cambiado, pero no lo creo cuatro veces 100 sigue siendo 400. Saluda. Y luego lo último, digamos cosa fácil o cosa que probablemente sepas de la escuela es dividir. Entonces sólo vamos a dividir segundo, dividido por primero. Esto debería ser un dos. Y luego revisaremos esto de nuevo. Y vamos a ver qué hace eso. Efectivamente es un también, eso es genial. Ahora hay una cosa más que podemos hacer aquí que probablemente sea un poco diferente. Y ese es básicamente el módulo o el resto, ¿no? Por lo que tenemos resto. Entonces si tomamos 25 de dos, así que este es 25 mod, modulus o mod2, entonces esto debería ceder uno. Y la razón por la que esto es uno es si queremos dividir 25, entonces 25 dividido por dos no funciona bien? Pero lo que pasa es eso, qué número podríamos sumar al resto para que sea divisible por dos. Y eso por supuesto sería uno. Entonces, solo comprobemos que el resto aquí. Es uno y lo es, es uno. Y luego si solo revisamos otro resto por ejemplo, y vamos a ejecutar un 115 luego módulo diez, por ejemplo, esto sería un cinco. Espero que sea 5F. Estoy bastante seguro de que son cinco. Porque qué, lo que va a pasar es que en realidad podemos dividir un 110. Vamos sólo 11 veces diez, ¿verdad? Pero entonces el 155 va a ser el resto, ¿no? Este es básicamente el operador restante, también llamado módulo. Y en realidad puede ser útil. Entonces por ejemplo, el módulo dos es increíblemente genial porque solo puedes comprobar, oye, es esto igual a 0, ¿verdad? Así es el módulo dos a 0, entonces sabes que tienes un número par. O si quieres chequear uno, entonces sabes que tienes un número impar. Por eso es que el operador del módulo es realmente bueno. Y ahora a veces quizá, ya sabes, tenemos esta suma. Y tal vez lo que queremos es tsunami. Tenemos un entero al que llamamos yo y eso es lo que queremos hacer es básicamente queremos tener más uno a esto. Entonces lo que podemos hacer es decir, bueno, yo es igual a i más uno. Eso funciona totalmente bien. Y ahora dos está escrito en IE. También es posible hacer esto un poco, aún más fácil. Y eso va a ser si lo haces i plus igual a uno. Porque ahora básicamente va a hacer el trabajo de sumarse también. Entonces esto es básicamente lo mismo que esto. Por lo que estos son equivalentes. Y ahora se va a escribir un tres. Porque recuerda, aquí tenemos un dos, ¿verdad? Íbamos de arriba a abajo. Entonces en esta línea tenemos un dos escrito en i, y ahora tenemos un tres escrito en i porque agregamos otro. Ahora esto, por cierto, aguanta puede ser cualquier número, por supuesto lo que quieras. Y entonces eso no es un tema. Pero podemos ir incluso, digamos, más fácil para incrementar y disminuir. Por lo que incrementar y decrementar es básicamente sumar o restar uno. Entonces podemos simplemente hacer i plus, plus o yo menos, menos. Y eso de inmediato va a hacer luego escuchar un cuatro. Y aquí vamos a tener de nuevo un tres, porque en este caso realmente vamos a restar del A1. Y sí, ahora esta forma de escribir es muy útil porque también podemos hacer cosas diferentes. Por lo que también podemos tener menos razonables iguales. Podemos tener tiempos iguales, podemos tener divididos iguales, y también podemos tener el módulo igual. Entonces éste es realmente, éste es realmente bueno. En realidad voy a poner eso aquí abajo. Bueno, no, entonces todo va a cambiar. Entonces vamos a mantenerlo ahí. Y eso sólo va a hacer otra. Entonces el I plus equivale a diez. Y éste va a ser un 13, ¿verdad? Y tenemos diferentes tipos de cosas que podemos hacer aquí, como formas cortas de escribir esto. Es genial si lo usas o no al final. Realmente no importa. Todo tiene que ver con la legibilidad de la tasa de código, lo fácil que vas a ver el código y lo fácil que es entender el código. Porque lo que sí creo que esto no es tan comprensible como esto. Al igual que OK, sólo voy a añadir uno a i y voy a escribirlo en I. Y este por supuesto, hace exactamente lo mismo. Creo que es un poco más fácil de leer. Pero en la India, al final del día, podrías total libre de usar cualquiera de esos. Pero es importante saber que estas cosas existen porque tal vez a veces vas a leer una cita de otra persona. Y si solo usan este, este tipo de un sumar o restar, entonces vas a tener un problema si no sabes estas cosas. Entonces por eso solo quería mencionar esto. Hay otras cosas otras formas de hacer esto y sí. 9. (Java) Booleans y operadores de comparación: Muy bien, sigamos con la introducción de Java y veamos los operadores booleanos y de comparación. Entonces por ejemplo, podemos iniciar mentiras un booleano con la palabra clave booleana. Y entonces, por ejemplo, simplemente lo llamamos a b. Y dentro de ella, podemos o escribir verdadero, verdadero, o falso. Eso es lo único que va dentro de un booleano, ya sea verdadero o falso. Y podríamos imaginar algo así como en un juego, por ejemplo, un juego de plataformas 2D. Probablemente, ya sabes, de repente como Mario, probablemente todos ustedes han visto algo así. Y podríamos imaginar un booleano que es, que pregunta, vale, está Mario ahora mismo en el suelo o no está en el suelo? Y este booleano podría, por ejemplo, llamarse, está a tierra. Entonces esto es algo que es un poco más concreto que sólo tener un booleano llamado B o C. Y en el caso de que Mario salte, obviamente, creo que está bastante claro que está a tierra sería falso. Y en cuanto vuelva a tocar el suelo, lo es, está a tierra sería cierto. Entonces este es un ejemplo donde un booleano podría ser muy útil. Pero también hay cosas que puedes hacer con los booleanos que son muy interesantes. Entonces como dije, el interior de un booleano, se puede almacenar un verdadero o un falso. Ahora, una vez que también se puede hacer si nosotros, por ejemplo, tenemos una x booleana, también se puede almacenar. También puedes mirar las expresiones y ver cómo evalúan. Entonces, por ejemplo, podría comparar algo. Entonces puedo comparar dos con, digamos cinco y decir, bueno, la pregunta aquí es, que se está haciendo es, es a menor que cinco. Y entonces la respuesta es, bueno, ¿esto es cierto o es falso? Por supuesto que esto en este caso sería, discúlpame, sería cierto que te vas. Y luego dentro de x, se almacenaría true. Ahora también podríamos hacer algo como tal vez decir y, y luego tenemos diez es más grande que 50. Y esto por supuesto será falso porque diez de hecho no es más grande que 50. Y esas son algunas de las cosas que podemos hacer. Estos son operadores de comparación. Y hay, hay algunos otros, por ejemplo. Entonces hay más pequeño que, más grande que, hay más grande o más pequeño o igual e igual a sí mismo. Entonces éste, por ejemplo, se vería como algo así. Booleano. B es igual a, y entonces tendríamos un 100100. Y éste no lo hace, esta no es la asignación. Asignación es un solo signo igual y dos signos iguales significa, significa, oye, ¿esto es igual entre sí? Entonces hay un 100 igual a un 100 en este caso, sí, por lo tanto, esto es cierto. Y luego hay otra que es inigualable, pero también va a echar un vistazo a esa. Entonces si entonces tenemos, por ejemplo, 50 inigualables, 51, esto sería de hecho cierto porque 50 no es 51. Entonces esto devuelve cierto si ambos lados no son iguales entre sí, justo ahí detrás, inigualables y esto es igual, ¿verdad? Por lo que esos son algunos del ambiente también. Esos son algunos de los operadores de comparación y booleanos que puedes utilizar. ¿ Y cómo nosotros, cómo vamos a seguir con los booleanos? Eso lo vamos a ver en una conferencia posterior. Pero esta es una muy buena base de tener para entender lo que viene a continuación. Y entonces sí. 10. (Java) Booleans y operadores lógicos: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a volver a mirar a los booleanos, pero esta vez también vamos a mirar a los operadores lógicos. Por lo que la última conferencia terminamos con esto, y esta conferencia vamos a ver tres tipos de operadores. Tres operadores que podemos utilizar. Vamos a mirar al operador y, que va a ser dos ampersands ciencia. Vamos a mirar al operador u, que van a ser dos de esas líneas verticales. Y vamos a mirar al no operador, que simplemente va a ser un signo de exclamación, ¿verdad? Entonces veamos el primero. Por lo que esto se almacena una vez más en un nuevo booleano. Entonces, solo vamos a llamar a este booleano B2. Por ejemplo, con estos operadores, podemos encadenar distintas expresiones booleanas juntas. Entonces por ejemplo, podemos hacer x e y. entonces en este caso, se pregunta, bien, ¿cuál es el resultado de x e y? El y operador necesita que ambas expresiones sean verdaderas, ¿verdad? Entonces si x es verdadera y si y es verdadera, entonces toda la declaración es verdadera. Ahora en este caso, sabemos que y en realidad es falso. Y por lo tanto sabemos realmente que esto va a ser falso, ¿verdad? Este es el operador y. El. Entonces veamos otra, por ejemplo, B3, que la va a almacenar en v3. Y este va a ser el operador de quirófanos. Entonces el u operador, digamos por ejemplo, lo haremos, vamos a decir está a tierra o, o ser, leer b aparecer, está a tierra o B va a ser verdad. Y la razón por la que va a ser verdad es porque si una de las variables o una de las expresiones es cierta, entonces toda la afirmación es cierta, ¿verdad? Porque estamos preguntando, vale, está a tierra o B. Y si alguno de ellos es cierto, entonces B3 también va a ser cierto. Este es el u operador. Y entonces el último antes va a ser el operador NOT o la negación. Y esto es simplemente escribir el signo de exclamación y luego lo que sea, por ejemplo, el tipo booleano que quieras tener, y esto básicamente lo invierte. Por lo que esto convertirá esto verdadero en falso. Y este es el no operador. Ya hemos visto este tipo de con el operador inigualable aquí y aquí. Y éste simplemente voltea o invierte lo que esté escrito en la variable. O también, por ejemplo, si no escribo cierto, esto simplemente también sería falso. Entonces esas son ambas cosas que funcionan y muy importantes. También puedes encadenar esos juntos, quiero decir, infinitamente básicamente. Entonces se puede decir B2 y B4, o b3, e3, y x, o carne antes de nuevo, bueno, eso no tiene sentido. ¿ O por qué? O C, por ejemplo, ¿verdad? Por lo que esto ahora se vería espantosamente complicado. Hay algunas matemáticas que puedes usar con el fin de básicamente mirar lo que puedas, puedes simplificarlo, ¿verdad? Entonces esto es una, básicamente una función. Posiblemente podrías simplificar esto si hay interés, definitivamente te puedo mostrar algunos de esos trucos y consejos y qué puedes usar. Apenas un derecho una pregunta o háganme. Y me aseguraré también de hacer electrón que si hay suficiente interés para ello. Sí, así que eso fue básicamente todo para los operadores booleanos y lógicos. Y sí. 11. (Java) y métodos de cuerdas en Java en Java: Muy bien, bienvenido de nuevo a la introducción de Java. En esta conferencia, vamos a hablar de cuerdas y métodos de cadena. Entonces, antes que nada, vamos a hablar de cuerda. Entonces tenemos una cuerda justo aquí. Se llama Sentencia y helloworld escrito. Este curso es maravilloso. Genial. Ahora tal vez lo que queremos averiguar es ¿cuánto tiempo es esta cuerda? Entonces, ¿cuántos personajes hay? Eso no es un tema. Podemos de inmediato, por cierto, también imprimir eso. Y eso va a ser, así que digamos que la longitud es, y luego haces un plus para luego dar salida a esto. Entonces vamos a tener sentencia, longitud de punto de frase. Y esto luego va a salir, básicamente todo el asunto va a dar salida a la longitud de esta cadena. Sólo llamemos a esto. Y vamos a ver la longitud es 38. Interesante. Básicamente. Tenemos 38 caracteres en esta cadena es bastante bueno. Entonces eso es bueno saber que podemos averiguarlo, longitud de puntos y luego los paréntesis. Esto es por cierto, una llamada de método. Básicamente es algo así como, ya sabes, el método principal del que hablamos, el método principal. Y estos son métodos que podemos hacer en nuestras cadenas individuales que tenemos. Y aquí hay algunos más que son bastante útiles para algunas cosas. Entonces los voy a copiar. Por lo general no me gusta hacer esto. No obstante, en este caso, creo que lo es, tiene más sentido porque siempre corriendo la línea de impresión y entonces el método no parece ser eso, ya sabes, valioso. Pero voy a explicar. Entonces básicamente tal vez queremos es que la sentencia sea todo mayúscula o minúscula. Y podemos usar el método para mayúsculas o minúsculas. Ahora esto debería ser autoexplicativo. Nosotros sólo vamos a ejecutar esto y no vamos a ver ningún grito. Y entonces tenemos todo en mayúsculas, si susurramos que con todo a minúsculas. Entonces hasta las cosas que estaban capitalizando, las palabras que antes capitalizarán ahora no son, no capitalistas. Ahora lo que también es muy importante saber, y lo voy a demostrar simplemente sacando la sentencia en sí después, es que cuando hacemos esto, la sentencia no se cambia. La frase variable no cambia. Cuando se llama, por ejemplo a APA o a bajar. En realidad básicamente crea una nueva cadena la cual tiene los cambios que desea. Por ejemplo, hacer poner todo a mayúsculas, hay una nueva cadena. Entonces si quieres entonces o cambiar la frase en sí, entonces tienes que guardar eso en la variable otra vez, algo así. Por lo que sentencia equivale a punto de frase a mayúscula. Entonces sentencia por supuesto, se convertiría en mayúsculas. De lo contrario, la sentencia misma no se cambia. Nota rápida, porque eso es algo importante, ¿verdad? A lo mejor cuando queremos averiguarlo es hey, entonces donde en el, en esta frase se encuentra la palabra curso, ¿verdad? Eso se llama índice de y lo que entonces llamamos En realidad ya sabes qué, pongámoslos en una línea, por favor. Está bien. Y lo que vamos a llamar aquí va a ser sentenciado índice de y luego simplemente le pasamos curso. Entonces vamos a escribir en el curso de paréntesis. Voy a escribir esto sólo para que quede un poco más claro. Por lo que escribimos índice de oraciones de. Entonces puedes ver que tenemos cadena entera, queremos es una cadena. Entonces básicamente queremos preguntar, vale, dónde en esta frase, en donde la sentencia es la siguiente, primavera encontrada y qué vamos a escribir poros. Y luego si ejecutamos esa, vamos a encontrar que la palabra curso se encuentra en la posición 18. De acuerdo, ¿por qué es eso importante? Bueno, no necesariamente es importante, pero es importante que, ya sabes, de acuerdo, podamos ver en primer lugar, cuánto tiempo es una cuerda. Y entonces aquí podemos realmente mirar, vale, ¿ dónde está una parte particular de la sentencia? ¿Dónde está escrito? Y vamos a ver pronto lo que podemos hacer con básicamente bien dondequiera que esté la oficina de índice. Pero antes que nada, vamos a ser como, bueno, ¿sabes qué? En realidad no quiero decir hola mundo, ya sabes, en realidad quiero saludar estudiantes. Y que podemos usar el método de reemplazo. Entonces usamos punto frase Reemplazar. Y ahí ponemos dos cuerdas y vamos a ver esto una vez más. Entonces vamos a hacer reemplazar. Y ahí tenemos la idea. Esto está escrito en secuencia char. No te preocupes por eso. Básicamente es una cuerda. Entonces vamos a decir reemplazar. Y vamos a decir, bueno, queremos reemplazar. Este es el objetivo. Entonces esto es lo que queremos reemplazar mundo. Y luego hacemos una coma y luego dice, bueno, cuál es el reemplazo, qué queremos reemplazar un ancho en este caso, voy a hacer estudiantes. Y si entonces salimos éste, vamos a ver que ahora dice, hola alumnos, este curso es maravilloso. Por lo que hemos sustituido cada instancia de la palabra, mundo de las palabras por la palabra estudiantes. Ahora muy importante, esto sí reemplaza todas las instancias de la palabra. Sólo así, correcto. Entonces éste, voy a escribir esto otra vez, reemplaza a todas, todas las instancias de la palabra, ¿ verdad? Sólo para que lo sepas. Y creo que eso también está escrito aquí. Para que siempre se puede, si no se sabe algo, siempre se puede pasar sobre él. Y te va a dar un gigante como tanta información, es increíble. Entonces, por ejemplo, aquí, como pueden ver, podemos ver reemplaza cada subcadena de una cadena que coincide la secuencia objetivo literal con una secuencia de reemplazo literal específica. Ahora esto es como increíble, increíblemente complicado hablar por básicamente decir, oye, cada vez que el mundo está en primavera, va a ser reemplazado por lo que sea que pongas aquí. Eso es todo lo que significa. Entonces eso es, esa es básicamente la traducción al inglés normal, supongo. Y así tal vez lo que queramos ver, oye, como si tuviéramos una cuerda aquí. Entonces digamos que vamos a tener una cuerda, vamos a hacer una nueva cuerda. Y vamos a decir, oye, ¿hay algo ahí dentro donde podamos preguntar eso? Y esto es básicamente, podemos poner eso en un booleano. Podríamos decir, oye, esta cuerda no está vacía. Y ahora por supuesto en este caso, sí, está vacía porque esta cadena está vacía. Sentencia no estaría vacía. Pero sólo quiero mostrar esto. Efectivamente está vacío. Eso no es lo que yo quería. Quería imprimir una línea B. Gracias. Entonces, y entonces vamos a hacer esto. Y esto va a ser cierto porque pregunta, oye, ¿este anillo está vacío? Sí, lo es. Y también podemos tener esto aquí. Entonces tenemos nuestra cuerda s, Y sólo vamos a poner entre comillas sin nada dentro de ellas cuando veas que S está vacía. Y eso en efecto sigue siendo cierto porque nada está escrito en S. Así que tal vez lo que queremos saber es con qué empieza una cuerda, termina con. Y este es exactamente el nombre del, de los métodos que podemos utilizar. Y eso es empieza con y termina con, comienza con una enésima raíz. Y ahora mismo, aquí estamos preguntando, vale, ¿la frase de cadena empieza con una h Y termina con una a? Y por supuesto que sí empieza con una H, pero no termina con una a. Y entonces si solo hacemos esto y veremos cierto para éste, y luego falso o termina con. Y esto también es una cuerda, ¿verdad? Por lo que podemos tener múltiples personajes de nuevo ahí dentro. Y vamos a decir, Hey, no empieza con, por ejemplo, hola, o empieza con cómo el, y por supuesto no empieza con howdy, ¿verdad? Entonces este por supuesto ahora se pondría falso. De acuerdo, así es básicamente como puedes usar los inicios con y termina con los métodos. También podemos preguntar, bueno es algo dentro de la cuerda. Entonces podemos decir, hey, esta cadena contiene, por ejemplo, Mundo, ¿verdad? Y voy a copiar esto otra vez. Entonces este es básicamente el método contiene. Y vamos a preguntar, vale, ¿esa frase contiene Mundo, verdadero o falso? De hecho es cierto. Porque incluye mundo. Ahora, podrías ser como, Espera un segundo, no reemplazó mundo por estudiantes. Ajá. Una vez más, Sí, lo hicimos. Pero al igual que con las mayúsculas y minúsculas, lo que sucede es que en realidad tenemos una nueva cadena creada aquí. Por lo que la sentencia no se cambia. Una vez más, muy importante saber. Creo que no estoy seguro si cada método de cadena es, no cambia la cadena, pero creo que sí. Creo que cada método que puedes invocar en una cadena en realidad no lo cambia, crea una nueva cadena. Entonces esto es muy importante saber y eso, ya sabes, a veces y hablo de experiencia aquí. Ha provocado algunos dolores de cabeza a veces cuando piensas, bueno, por qué no cambiaste y te diste cuenta 30 minutos después de revisar todo y comprobar tu código. Ah, claro, tengo que hacerlo. En realidad, básicamente tengo una nueva variable y, y guardo eso también. Es por eso que en este caso, el mundo contiene es realmente cierto. Entonces tal vez quieras decir hola, así que tenemos una, otra cosa. Entonces tal vez queremos decir hola, OK. Entonces el char, entonces el personaje en la décima posición, ¿qué es eso? Yo quiero saber que podemos ver que esto es AD. Ahora si nos fijamos en la cuerda, lo más probable es que sea la D del mundo. Sí, claro que es un mundo diferente porque aquí ya estaríamos como 0.30 o algo así. Entonces es por eso que esto es, esto también se le llama el índice. Entonces esto diría como un índice de si escribimos aquí índice de d Entonces podemos mirar hacia arriba y podemos ver aquí la palabra, en este caso núcleos, por supuesto que no lo es, correcto. Yo quiero ver a D. Así que vamos, hagámoslo realmente correctamente esta vez. Lo que vamos a ver es que la palabra D se encuentra en la posición diez. Y aquí miramos el char en la posición diez. Y he aquí, también es d. Entonces así es básicamente como se relacionan entre sí. Y creo que eso es bastante bueno. Creo que eso es bastante bueno, ¿verdad? De acuerdo, así que hemos aprendido mucho sobre lo que podemos hacer con las cuerdas y sus métodos, pero todavía hay unas diminutas cosas que podemos hacer. Y una de esas cosas, por ejemplo, es que podemos tomar una subcadena. Entonces tal vez no queremos este Hola Mundo en año. A lo mejor sólo queremos este curso es maravilloso. Y vamos a poder entonces usar, es podemos usar el método de subcadena. ¿ Y cómo funciona el método de subcadenas? Bueno, lo que vamos a hacer es básicamente vamos a tomar esta tasa de índice. Entonces como hemos establecido, el índice es básicamente el donde estamos en la cadena. Entonces vamos a tomar la posición 12. Y entonces este es el comienzo de las subcadenas. Entonces la nueva cadena que queremos crear, y la última, por lo que este también es un entero, es la última posición a la que queremos ir. En este caso, sólo queremos ir al final de la cuerda. Y es por eso que sólo podemos tomar la longitud. Porque por supuesto el último carácter dentro de la cadena va a corresponder. Entonces la posición, el índice del último carácter va a corresponder con la longitud de una cadena va a ser exactamente la misma. Porque si cuentas 1-2-3 y un arriba, entonces llegas a decir, vale, esta cuerda es así de larga, y obviamente esta es la última posición. Por lo tanto, esta es posición igual a su longitud. Entonces solo vamos a hacer esto y a ver lo que va a salir. ¿ De acuerdo? Y lo que va a salir es que ahora tenemos una barra espaciadora o un espacio. Y entonces este curso es maravilloso. Ahora, la forma en que podemos deshacernos del espacio es obviamente solo hacer un 13 es más de 12. Pero esto va a ser perfecto porque esto va a llevar a otra de las funciones que vamos a ver. Y se va a recortar. Y recortado hace muy fácil. Al principio y al final de la oración o de la cuerda. Simplemente va a cualquier espacio en blanco. Entonces cualquier, ya sabes, cualquier espacio, básicamente se va a quitar. Eso es todo. Eso es todo lo que hace. Recorte. En mi experiencia. Probablemente útil a veces, pero sí. Sí. Entonces en resumen, esos son básicamente los métodos que quería mostrar para cadenas. Entonces hay muchos de ellos, y hay bastantes más que no siempre son tan útiles. O a veces lo son. Pero creo que esto es básicamente una buena visión general para conocer. ¿ De acuerdo? ¿ Qué podemos hacer con las cuerdas? Cuáles son los, cuáles son algunos de los métodos que podemos utilizar para básicamente manipularlos y básicamente jugar un poco con ellos. Y sí. 12. (Java) Variables de casting: Muy bien, bienvenido de nuevo a la introducción de Java. Y en esta conferencia vamos a hablar de casting. Entonces como probablemente has visto, si tenemos un entero y esto va a ser solo. Entonces vamos a conseguir un préstamo de 750 dólares sólo por el bien de la discusión. Y entonces obviamente vamos a tener una tasa de interés. Tasa de interés. Y en este caso la tasa de interés va a ser de 5.25%. Y vamos a guardar esto como flotador, por supuesto, porque un entero no puede guardar los puntos decimales. Y así tenemos que hacer esto. Y ahora lo que podemos hacer, curiosamente como podemos entonces decir, vale, intereses que solos veces la tasa de interés. Ah, no, no intra, integer inter sino tasa de interés. Y eso sólo va a funcionar. Porque en este caso, sí, este es un entero y este es un flotador. Y si entonces acabamos de dar salida a todo esto, vamos a decir, oye, ¿cuál es el interés que realmente mostró? Pero va a ser una locura sí, son 39.375. Por lo que 39 dólares. Y en este caso, yo argumentaría probablemente 0.38 dólares. Entonces vamos a redondear. Y esto funciona porque el entero está básicamente en el vuelo convertido, por así decirlo, a un flotador. Y eso sólo funciona. Ahora claro, si decimos int, eso no va a funcionar porque va a ser como no, eso no funciona en esto. Esto es un flotador, este trabajo. Y es por ello que esta red que necesita ser un flotador. Básicamente podemos convertir esto. Podemos forzar convertidos, por así decirlo. Si escribimos flotador delante de él entre paréntesis, y entonces éste es tratado como un flotador. Ahora aquí hay un entero, pero ahora en su totalidad se trata como un flotador. Esto ya es lo que pasa, ¿verdad? Pero esto es, en este caso, es, es bastante bueno en esto funciona sobre la marcha, ¿verdad? Por lo que no tenemos que pensar en ello. ¿ Qué tal si tenemos un, un ejemplo donde en realidad es un puerto. Entonces cuando tengamos un índice, sólo vamos a llamarlo x. Y ahí tenemos 50.5, f más 20. Digamos 235 o F afilado. Ahora esto va a ser, no funciona porque esto es un, esto es un flotador, es un flotador, pero queremos un tema de número entero. Lo que podemos hacer es que sólo podríamos decir hey int. Y esto es todo también. Y luego va a tratar esos dos números como enteros. Pero lo que podemos ver entonces, vamos en realidad, es poner un sexenio que va a ser más interesante. Entonces vamos a dar salida a la x. Y lo que vamos a encontrar es que son 70. Y luego vamos a pensar por un segundo. Vamos a ser como, espera, un 20.5.6, esto debería ser 71.1. Pero no está bien, porque lo que pasa es si tenemos un flotador y lo echamos a un entero, ¿verdad? Entonces esto es básicamente el tomar el flotador y básicamente, ya sabes, intercambiarlo a un, a un entero. Entonces lo que va a pasar es que todo después del punto decimal se va a cortar. Simplemente vamos a ignorar esto por completo, ¿verdad? Entonces este es básicamente el casting de un, de un flotador a un entero. Básicamente significa que pierdes información. Principalmente lo que se escribe después del punto decimal. Oops, lo siento. ¿ Qué se escribe después del punto decimal, verdad? Entonces es por eso que el, cuando cuesta, hay que tener cuidado de perder información a veces. Entonces en este caso, de un, de un flotador a un entero, eso va a perder información de un entero a un fluido. Bueno, no vas a ganar información porque el entero no tenía un como algo después de los puntos decimales almacenados. Pero ahora puedes usarlo como tal. Y entonces esto es básicamente una instancia de justo, bueno, básicamente no es realmente un casting implícito en este caso porque él sólo puede manejar esto. Pero este es el casting explícito. Entonces aquí es donde estamos como, vale, esto necesita ser tratado como un entero. Y yo sólo quería destacar este costo. Y cómo lo haces es simplemente por antes de la variable, solo escribes entre paréntesis, cualquiera que sea el tipo de datos al que quieras que esto sea costado. Ahora algunos costos las cosas no funcionan. Entonces por ejemplo, si soy como, hagamos un int y y digamos 50 plus. Y luego fuimos a costar helloworld. ¿ Qué significa eso? Calificar, no se puede lanzar una cadena a un entero. Porque ¿qué harías? Ahora, curiosamente, y sólo voy a mencionar este año, tal vez queremos preguntarle a un personaje que funcione, que sí funcione. Y la razón por la que eso funciona es porque los personajes en segundo plano, por así decirlo, básicamente se almacenan como enteros. Y así esto va a funcionar, pero una cuerda que no tiene sentido. Por lo que este fue un resumen muy corto del casting. Y como siempre, si tienes alguna pregunta, siéntete libre de preguntarles y yo responderé y llegaré a ellas. Y sí. 13. (Java) Integers y métodos, métodos.: Muy bien, bienvenido de nuevo a la introducción de Java. Y en esta conferencia vamos a hablar de un poco enteros otra vez y de métodos matemáticos. Entonces vamos a estar usando matemáticas, lo sé, pero no te preocupes por ello. No va a ser una locura. Entonces, en primer lugar, vamos a dar salida a algo y íbamos a dar salida a este actos de Math.min. Y luego vamos a hacer x e y. entonces esto obviamente va a salir 225 porque el máximo de esos dos es 225. Eso hace, espero que tenga sentido. Y entonces básicamente completamente analógico a eso, solo podemos usar min y esto luego dará salida a un 100. Entonces esta es una manera muy fácil de decir básicamente, bien, ¿cuál es el máximo? ¿ Cuál es el mínimo de dos números como máximo, mínimo? Entonces tal vez queremos tener realmente la raíz cuadrada de algo. Ahora esto va a ser algo que va a ser complejo, ¿verdad? No, sólo vamos a hacer matemáticas, raíz cuadrada, así que SQRT. Y luego vamos a poner, por ejemplo y. y esto va a estar dando 15 porque la raíz cuadrada de 225 es 15. Sólo vamos a mirar esto. Nosotros vamos a ejecutar esto y vamos a ver, como pueden ver, doscientos veinticinco, ciento quince. Ahora, también notarás que se ha añadido un punto decimal. Hmm, ¿por qué es eso? Porque raíz cuadrada, si realmente pasamos por encima de ella, podemos ver que esto es un doble. Por lo que esto devuelve un doble valor, y también espera un doble valor. Pero también podemos simplemente pasarlo en un entero porque eso va a estar bien. Y sí, así que esto en realidad es un doble valor. Ahora, como hemos visto en la última conferencia, realidad podemos costarle esto a un entero. Y entonces lo que vamos a ver es que sólo vamos a tener 15, por ejemplo. Entonces si sabemos que la raíz cuadrada que vamos a tomar va a estar bien. Va a ser un número entero, entonces eso está bien. Pero por si acaso, ¿quién sabe? Si tratamos con muchos números negativos, tal vez con gente negativa también. Pero en este caso con números negativos, podemos usar el absoluto, el valor absoluto. Por lo que el valor absoluto de menos 5 mil es obviamente sólo 5 mil. Entonces va a tomar lo que sea. Básicamente vamos a quitar el signo menos el signo negativo. Eso es todo. Y si queremos redondear hacia arriba o hacia abajo, tenemos algunas opciones para esto. Y esas son las opciones que suelen utilizarse para esto. Esta es la función ceil. Entonces si tenemos 22, por ejemplo, para algo como esto, 22.413, la función ceil entonces va a redondearlo hasta el entero más cercano. Entonces esto va a ser un 23. Y si tenemos la función de piso que es exactamente lo contrario, entonces vamos a tener el mismo número. Entonces lo que vamos a hacer es realmente vamos a redondear hacia abajo al entero más cercano sin importar si la regla con, bueno, si es un cinco y más de lo que vamos a redondear. No, el sello siempre redondeará hasta el entero más cercano y el piso siempre va a correr hacia abajo hasta la pulgada más cercana. Como se puede ver, este es 23 y este es 22. Nota una vez más, esto sí devuelve un doble en este caso y en ambos casos. Entonces. En ocasiones eso puede llevar a resultados diferentes. También podemos constituir siempre entero porque esto es siempre, siempre va a devolver un valor entero en el sentido de que siempre va a ser algo con nada después del punto decimal. Y entonces posiblemente, ya sabes, hemos hecho la raíz cuadrada, pero quiero decir, seamos honestos. También a lo mejor queremos tener algo al poder de algo. Entonces vamos a tener la Math.pow, que por supuesto es la mejor y más divertida cosa de tener. Y lo que vamos a hacer es que vamos a tener un diez al poder de dos. Entonces básicamente esto va a ser diez al poder de dos. Y espero que todos sepamos qué es esto. Por supuesto, es un 100. Pero así como eso, más bien, el último método del que vamos a hablar al mirar la función matemática va a ser algo la función matemática va a ser algorealmente interesante e importante para la programación web en general. Y esos van a ser los métodos aleatorios. Por lo que las matemáticas punto al azar. Y ahora ¿qué es el método aleatorio hacer? Bueno, básicamente genera un número entre 0 y 1.00. Entonces sólo vamos a hacerlo, vamos a ejecutar esto. Entonces va a ser 0.64 y locura. Y luego vamos a hacerlo, ¿qué tal si volvemos a ejecutar esto? Y eso va a ser 0.907. Y de nuevo va a ser diferente. Si entonces tal vez queremos tener un número diferente, lo que podemos hacer es, así que por ejemplo, si queremos números entre 0 y otra cosa se va a deber también. Dame algo como este veces digamos un 100, ¿verdad? Y esto va a ser un flotador. Creo que solo podemos hacer un entero en realidad. Y entonces vamos a tener 50. Y entonces podemos lanzar todo esto en un entero. Y entonces tenemos una manera fácil de ir de 0 a, de 0 a un 100 y eso, así que si solo costamos todo el asunto en un entero, ahora, la razón por la que lanzo todo en un entero en lugar de solo hacer aleatorio. Porque si yo, si no cuesto si un primo en entero, entonces siempre va a ser básicamente un 0. Entonces eso no me va a ser realmente útil. Pero en este caso, entonces tenemos un entero y eso siempre va a ser diferente. 58, bueno eso va a tener 41 más. 98, bueno eso es bastante bueno. ¿ Verdad? Y esas son las funciones aleatorias de cada vez que se llama, vamos a conseguir un número diferente. Y eso es realmente útil para todo tipo de cosas. Ya sabes, si tal vez quieres, por ejemplo, programar un juego que al azar, las cosas son realmente importantes. Ahora esto también va a ser, él va a decir esto, esto es pseudo-aleatoriamente. No te preocupes por ello. Mientras no hagas nada loco con lo aleatorio, como descifrar, cifrar algo o algo así, entonces no importa. El pseudorandom, si eso es algo que te interesa o que quieres tener un poco más de información fuera, entonces siéntete libre de preguntarme y tal vez te brinde un poco corto, ya sabes, como video del sitio, conferencia del sitio sobre eso. Pero en general, no importa para nuestros propósitos. Esto es aleatorio. Este es solo un número aleatorio que se genera y sí. 14. (Java) si y las declaraciones de los Else en Java: Muy bien, bienvenido de nuevo a la introducción de Java. En esta conferencia, vamos a hablar de si y de lo contrario las declaraciones. Y en conferencias anteriores ya hemos visto a booleanos y operadores de comparación y cómo se relacionan entre sí. Y ahora vamos a ver, vale, cómo podemos usar esos para básicamente cambiar nuestro programa o cambiar cómo funciona un programa. Entonces lo primero que vamos a hacer es que vamos a usar una declaración if. Y la afirmación if básicamente pregunta lo que esté entre paréntesis, ¿vale, es esto cierto o es falso? Entonces si, si esto es falso, entonces vamos a ejecutar algún código. Y luego vamos a ver qué implica eso. Entonces por ejemplo, podríamos preguntar, bueno, si x es más grande que y o mayor que yY voy a hacer, voy a poner dos corchetes rizados. Y todo en esos corchetes rizados. Todo aquí, bien, aquí dentro se ejecuta. Ejecutado, ¿de acuerdo? Sí, van si es cierto, ¿verdad? Entonces si esto es cierto, si esta expresión, lo que sea que esté entre paréntesis, y puede ser una expresión realmente larga, pero puede ser x es más grande que y y, o todo eso. Mientras sea un booleano, básicamente ahí dentro, entonces, y si eso es cierto, entonces esto se ejecuta. Entonces podemos, por ejemplo, en este caso solo imprimir tal vez algo como x es más grande que y porque eso definitivamente es algo que pasa si, si es así. Ahora tal vez lo que queremos es que realmente queremos el caso opuesto exacto. Entonces tal vez quieras decir, bueno, si esto es cierto, entonces vamos a hacer esto. Pero si no es el caso, así que si no es cierto, entonces nosotros tal vez cuando algo más y luego te vas otra cosa es exactamente la palabra correcta. Porque entonces sólo podemos añadir otra aquí. Otra vez con paréntesis y, o con un, con unos corchetes rizados más bien. Y ahí dentro, ahora aquí, ¿todo bien? Entonces si solo ponemos esto aquí, aquí, todo se ejecuta. Si es falso, ¿verdad? Si esto, esta declaración básicamente es falsa, entonces se ejecuta la sentencia else. Y entonces podemos escribir, por ejemplo, solo vamos a copiar esto sobre x no es más grande que y, ¿verdad? Y como podemos ver claramente, x es un 100 e y es 1000. Por lo que obviamente esta expresión es falsa. Y lo que esperaríamos aquí entonces es ver este impreso. Por lo que queríamos ver X no es más grande que y. imprimirlo. Simplemente vamos a ejecutar esto y ver qué pasa. Y esto es exactamente lo que vamos a ver. X no es más grande que y. genial. Esto es todo también siempre genial. O una, una buena idea cuando escribes algún código y esperas algo, simplemente ejecútalo. Y si no consigues lo que esperabas, quiero decir, obviamente es que a veces hay un dólar ahí dentro o a veces solo hay tal vez has, ya sabes, mal escrito algo, siempre un caso o podría ser el caso. Y así eso siempre es genial. Simplemente ejecútalo. Piensa, está bien, estoy esperando esto. Si sale, eso es realmente bueno. Ahora bien, esto es un poco más largo de lo que puede ser necesario. Entonces lo que podemos hacer es que también podemos escribir si y entonces tenemos un booleano aquí. Este es un buen rumbo, y sólo vamos a escribir esto ahí dentro. Y luego sólo voy a poner el cursor detrás del paréntesis, y sólo voy a presionar Enter. Y se ve la zanahoria básicamente en densa inmediatamente. Y yo sólo voy a escribir una línea aquí, los enemigos de la línea de impresión pueden decir, sí, bastante bien. Entonces esto es básicamente, así que es por supuesto bueno. Si lo es, entonces voy a imprimir, sí, es bastante bueno. Y puedes ver que no estoy recibiendo ningún error. Y no tengo los corchetes rizados. ¿Por qué es eso? Bueno, puedes tener una línea después de un if, entonces else declaración Eso se va a ejecutar. Y entonces no tiene que ser, bueno, no necesita tomar tanto, tanta tasa de espacio. Por supuesto también puedes poner los corchetes rizados en la parte superior. Pero claro que en el inicio del curso, ya he hablado de por qué palabra que prefiero así. Esa es obviamente una elección completamente personal básicamente. Y no cambia nada del código en absoluto. ¿ Verdad? Entonces esto es, en este caso, lo tenemos en una línea. Ahora no podemos hacer otra línea que se vaya a ejecutar. Entonces en cuanto tengamos dos líneas que queremos haber ejecutado en un comunicado if, ya no funciona. Ahora, quiero decirle algo a la cosa booleana, ¿no? Entonces en este caso lo booleano es cierto, ¿verdad? Entonces éste es igual que si es bueno. Y esto es básicamente una, una abreviatura de la pregunta es buen curso igual a cierto, ¿verdad? Y a veces algunas personas, y a veces tiene sentido, sólo voy a copiar esos más. No obstante, sigue siendo bastante bueno. Yo lo digo así. Entonces antes que nada, se va a comercializar y va a ser como un, esto es, claro que esto es cierto, lo que sea. Y también puedes simplemente escribir el booleano aquí. A veces algunas personas prefieren escribirlo así para hacerlo un poco más explícito. A decir: Oye, esto es, si esto es cierto, entonces vamos a seguir adelante. Porque quizá, ya sabes, piénsalo así. No, no, tenemos 32 líneas de código ahora mismo, 700 líneas de código. Y lo pasas, y en algún momento solo vas a leer algo como esto. Y si el, si las variables no se nombran correctamente, ¿verdad? Entonces nos vamos a encontrar con un tema enorme porque normalmente, sabes, las variables booleanas, si empiezan con es o tiene o algo así, funciona así, entonces más fácilmente puedes localizarlas, ¿verdad? Se puede ver fácilmente cómo se trata de un booleano. Y por supuesto siempre se puede pasar el rato sobre él, ver qué hace, qué es. Algunas personas usan esto. Algunas personas no. También preferencia, ¿verdad? Esto es sólo una preferencia. Yo sólo quería demostrar que ambas cosas son totalmente válidas. Ambos trabajan. Y lo más importante es al final, cuando escribes el código, que lo puedas leer, ¿verdad? Esto es lo más importante. Entonces, cualquiera que sea la versión que harías, prefieres personalmente o que sea más claro para ti, usa esa. Y luego como lo último. Entonces hemos visto si y después una declaración else. Pero en realidad podemos hacerlo aún más. Digamos por ejemplo, que tenemos un bajo como este. Entonces x es menor que 50 y vamos a imprimir x es menor que 50 sólo por el bien de la discusión. Y entonces vamos a ser como, bueno, hagamos otra declaración. Pero en realidad quiero preguntar algo más específico. Podemos realmente después de lo demás, podemos simplemente poner otro si, correcto, entonces podemos decir OK, si es más grande o igual a 50, y si x es más grande o más pequeño que un 100, entonces qué vamos a escribir fuera es básicamente en este caso también lo que hemos escrito ahí. Pero podríamos imaginar algo, algo ejecutándolo. Bueno, queremos ver si X está exactamente entre 5000 y entonces tal vez sea para, así que por ejemplo, esta buena, buena idea sería, ya sabes, tal vez una gran tasa, grado porcentual. Entonces si tienes 50 años, eres menor de 50. Bueno, tristemente, no pasaste el grado. Aquí. Pasas el grado y entonces tal vez en un 100 año yo hey, lo hiciste realmente bien, ¿verdad? Entonces eso es algo que funciona. Y sí, y entonces por supuesto, podrías dejarlo así o incluso puedes poner otra más ahí. Y en este caso entonces sería sólo un 100. Bueno, en este caso un 100 más, más grande o igual, por supuesto, así, sí. Y de esta manera básicamente puedes pasar por múltiples preguntas, múltiples si declaraciones y x. Bueno, si, si esto es cierto, entonces haz esto. Si no es cierto, entonces va al estado L, entonces el programa básicamente va a la declaración else. Y está bien, de lo contrario. Y entonces él es como, oh, bien. Si y entonces eso se va a ejecutar. Si ese es el caso, si no más. Y luego esta producción. Y así esta es básicamente la pequeña visión general de si y si más afirmaciones. Y sí. 15. (Java) el operador Ternary de tarlos en Java en Java: De acuerdo, sigamos con la introducción de Java. En esta conferencia, vamos a hablar del operador ternario. Y antes que nada, lo primero que me viene a la mente es, oh Dios mío, eso suena loco. Complicado. Gotta limites no es complicado en absoluto. Entonces aquí por ejemplo, tenemos un entero que es una gran lectura. Entonces, por ejemplo, tu calificación en una prueba o un examen va a ser 69. Y entonces podríamos tener un booleano que ha pasado, ¿verdad? Y eso es solo un booleano que significa, vale, ¿tienes que has pasado la prueba o no o del examen o tal vez todo el curso. Y por supuesto lo que podemos hacer es decir, oye, si el grado es más grande o igual a 15, entonces sólo nos van a pasar es igual a cierto. Y entonces hacemos otra cosa pasó como igual a falso. Eso funciona perfectamente bien. No obstante, en este caso, realidad hemos utilizado cuatro líneas de código. Y por supuesto que es legible. Y eso es genial. No obstante, habría otra forma de hacerlo. Y la otra forma de hacerlo, me voy a deshacer rápidamente de esto. Y la otra forma de hacerlo es el operador ternario. Y entonces básicamente podemos escribir esto en una línea. Por lo que operador ternario es por supuesto de derivado de tres. Entonces hay tres partes para esto. La primera parte son los estados booleanos, ¿no? Entonces lo que queremos saber es, bueno, si x es más grande o igual a 50, entonces claro que hemos pasado. Entonces lo que vamos a escribirlo como signo de interrogación, luego lo que queramos haber devuelto, si es cierto en este caso cierto, entonces vamos a escribir un, un colon, y luego vamos a escribir falso. Entonces básicamente pase lo que pase si esto no nos llega, claro que no es x, lo siento, eso es genial. Y esto básicamente ya lo es todo en esta línea. Sucede lo mismo con la declaración if else. Ahora a veces esto no es propicio para un buen código porque no se puede leer con tanta claridad. No obstante, a veces con cosas simples como esta, debería volverse bastante obvio lo que está pasando aquí. Y, pero sin embargo esos puedan ser, ya sabes, también puedes poner otro operador ternario dentro del operador ternario de la boquilla y así sucesivamente. Y en algún momento sólo se vuelve loco, loco complejo de leer. Cualquiera de todos modos. Entonces esta es una de las cosas que es posible y no sólo tiene que ser booleano aquí, ¿verdad? Puedes hacer lo que quieras. Por lo que puede tener, por ejemplo, un número entero. Y podríamos decir algo así como, bueno, ya sabes, si el grado, por ejemplo es exactamente un 100, entonces tal vez algo que queremos tener en el número sea como nueve. Y luego si no es un 100, así que si es cualquier cosa menos un 100, entonces tal vez queremos como un 100 años qué, lo que sea, lo que sea esto, cualquiera sea la lógica que haya detrás de ahí, ya sabes, como dije, por supuesto también puedes tener una declaración if. Si la calificación es igual a un 100, entonces el número es igual a nueve. El número de Else es igual a un 100 en este caso. Y para que puedas, esto es básicamente sólo una, otra forma de usar las declaraciones if. Pero en una línea, muy importante que hayas visto esto porque esto definitivamente se usa en muchos programas y probablemente también sea útil a veces donde la declaración if sólo ocupará demasiado espacio, demasiado espacio y no es muy complejo. Entonces ese es el operador ternario para ti. Sí. 16. (Java) la declaración de Switch: Muy bien, introducción de Java. Hemos visto dos formas en las que básicamente podemos decir, oye, si este es el caso, entonces este es el caso, entonces esto ya sea con declaraciones if y else o con el operador ternario por allá hay un tercero, bueno, elección que tenemos, y esa es la declaración de cambio. Y para eso sólo vamos a teclear en switch. Y luego en los paréntesis vamos a escribir en el, básicamente la variable que queremos evaluar. Digamos que solo va a teclear x. Y entonces necesitamos que esto funcione. Paréntesis o no paréntesis, otra vez, corchetes rizados y los corchetes rizados. Ahora vamos a escribir básicamente casos, ¿verdad? Por lo que tenemos que decir explícitamente declarar cada caso que queremos. Entonces, por ejemplo, si x es diez, entonces lo que sucede, por ejemplo, es que queremos sistema fuera, imprimir línea x sin duda es correcta. Seguro. Ahora lo que queremos terminar aquí es break es solo una palabra clave que necesitaríamos usar al final de la línea. Y esa es básicamente la declaración de cambio. Ahora, obviamente vamos a tener más casos que éste porque un caso simplemente no tiene sentido. Vamos a tener otra línea de impresión donde, por ejemplo, Access 20. Y luego una vez más, no olvides el freno, lo contrario no funcionará. Ahora, qué pasa, por ejemplo, si decimos, bueno, OK. Ahora x es diez. Esta es tasa ejecutada. ¿ De acuerdo? Tenemos exceso de 20. Esto se ejecuta también genial. Pero, ¿qué pasa si x no es ni diez ni 20? Podemos tener una, otra palabra clave que sea predeterminada. Y esto está escrito así. Y entonces tenemos basicamente tan sistema que fuera y luego todo se ejecuta si no es exactamente alguno de los otros casos mencionados. Y entonces solo dices, no lo sé, bien. Porque no sabes lo que es. Bueno, se podría saber, pero optó por no dejar decir en una declaración de cambio. Por lo que la declaración switch es útil definitivamente para casos específicos. No es muy útil si quieres tener, digamos, un rango de números, como hemos visto antes con, por ejemplo, la calificación que tienes. Y luego si fueras a usar cada caso, ya sabes, obtienes como una calificación escalada, digamos de 0 a uno, eso es de 0 a un 100, digamos. Y entonces estás como, vale, es 0 caso uno, caso dos, como, así como es de Madden , no es buena idea. ¿ Cómo será la declaración switch, como dije, puede ser realmente útil en ciertas circunstancias, como lo es con muchas de esas cosas en Java, básicamente. Sí, esa es la declaración de cambio básicamente en pocas palabras. Y sí. 17. (Java) mientras bucle: Muy bien, sigamos. Entonces en esta conferencia vamos a hablar del bucle while. ¿ Y si queremos tener una pieza de código que queremos ejecutar, ya sabes, x cantidad de veces por ejemplo, o si se cumple una determinada afirmación o si se cumple cierto criterio, se cumple condición, entonces queremos dejar de usar o dejar de ejecutar esta código. ¿ Cómo podemos hacer esto? Bueno, una de las formas en que podemos hacerlo es con un bucle while. Entonces sólo vamos a escribir la palabra clave mientras. Y luego vamos a sumar entre paréntesis una condición. Entonces una condición booleana, básicamente, en este caso, lo que vamos a decir es, bueno si o mientras x es menor a diez. Y luego vamos a añadir una vez más los corchetes rizados. Y en esos corchetes rizados, todo aquí dentro se va a ejecutar mientras que x es menor que diez. Entonces es muy útil que esto a veces realmente se lee como una oración o instrucción, ¿verdad? Entonces mientras que x es menor que diez, lo que sea que haya ahí, ejecute, ejecute, ejecute. Va a hacer esto una y otra vez hasta que ya no se cumpla esta condición. Ahora, si fuéramos a ejecutar esto, digamos, digamos que voy a hacer esto fuera línea de impresión de puntos, y luego vamos a decir x Así que vamos a apagar el exceso, ¿verdad? Entonces ahora qué es, lo que iba a pasar es que va a apagar 555 hasta el final de los tiempos, ¿verdad? Porque en ninguna parte de este programa cambia x alguna vez. Ahora esa sería una muy mala idea. Entonces tendríamos un bucle infinito. Y un bucle infinito, siempre es un mal momento. Entonces no vamos a hacer eso. No vamos a usar eso porque esto podría realmente chocar el programa. Pero lo que vamos a hacer es que sólo vamos a incrementar x aquí mismo. Y al hacer eso, lo que va a pasar es que realmente vamos a salir 56789. Y entonces terminará el bucle while. Vamos a ver esto y vamos a correr esto y vamos a ver 56789. Damos salida esos números que estaban en x. Entonces básicamente lo que pasa aquí es donde escribimos cinco en x Entonces vamos a decir, vale, mientras accedemos a más de diez, haz todo esto, ejecuta esto. Entonces lo que pasa entonces es x es igual a cinco. Definitivamente es más pequeño que diez. Por lo tanto, vamos a imprimirlo y luego vamos a incrementarlo. Ahora son seis y vuelve a comprobar, oye, es más de diez. Sí. Entonces vamos a imprimir seis y luego vamos a incrementarlo ahora son siete y luego son ocho y luego son nueve. Y entonces cuando sean diez, aquí mismo, se va a revisar, oye, si es, es más pequeño que diez va a saber que no es menor que diez, es diez. Entonces eso es, por lo tanto no es menor a diez. Entonces sólo vamos a saltar fuera del bucle. Eso es todo. Sí, así que hay otro tipo de bucle, básicamente, casi lo mismo que el bucle y y ese es el bucle do-while. Y ahí vamos a escribir du. Y entonces sólo vamos a poner lo que queramos ahí dentro. Y luego vamos a escribir la palabra while de la palabra clave while después de los corchetes rizados. Y luego una condición ahí dentro. Muy importante, éste tiene que terminar en realidad con una línea de punto y coma. Entonces lo que pasa aquí es cualquiera que sea la condición, el do, mientras que no es un bucle que lo haga. Lo que sea que esté entre corchetes de la palabra clave Duke que se va a ejecutar pase lo que pase, una vez, ¿verdad? Entonces aunque de repente digamos que x es igual a 1000, obviamente no menor a 50, ¿verdad? Esto todavía se va a ejecutar una vez y luego va a estar bien. ¿ Es más pequeño que 15 y va a ser como No. Está bien. Y no voy a repetir esto. Entonces si hacemos esto, como podemos ver, realmente hacemos salida 1000, pesar de que x no es menor que 50. Porque lo que hace el do while loop es que va a ejecutar la parte do del bucle una vez y luego comprueba la condición. Y eso es básicamente lo fundamental del bucle do-while. Sí. Y eso es un breve resumen básicamente de los bucles while y do do while. Sí. 18. (Java) para bucle: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a hablar del bucle de cuatro. Este es otro tipo de bucle junto al bucle básicamente el while. Y el bucle for es increíblemente útil para, por ejemplo, iterar sobre algo un cierto número de veces. Cómo vamos a leer esto ya que vamos a escribir para. Y luego vamos a escribir entre paréntesis int. Y luego solo puedes usar cualquier nombre. Pero por lo general comienzas con IJ KL. Esa es una especie de la nomenclatura que utilizamos. En ocasiones también se pueden usar X e Y, pero normalmente así es como lo escribes. Por lo que int i es igual a 0. Entonces vamos a hacer un punto y coma. Y entonces básicamente vamos a preguntar, OK, lo que sea que esté escrito aquí, esta es una declaración booleana una vez más, ¿verdad? Y mientras esto sea cierto, el bucle for pasa. Por lo que el bucle for va a un bucle. Y luego vamos a hacer otra declaración aquí. Y esto va a ser un incremento en este caso. Y entonces también necesitamos, por supuesto, los corchetes rizados. Y esta es la tasa completa de cuatro bucle. Por lo que primero inicializamos una variable i a 0. Entonces vamos a decir, de acuerdo, mientras yo sea menor que cinco, vamos a ejecutar lo que alguna vez haya en el bucle for, y entonces vamos a aumentar i por uno. Ahora en este caso, también podríamos aumentar y por I por dos, o tres, u ocho, o 16 o 55. No importa. Pero generalmente queremos iterar de 0 a cuatro en este caso. Entonces lo que vamos a ver es que sólo vamos a dar salida a esta línea de impresión de puntos exteriores. Y entonces cuando sólo vamos a dar salida i, porque ¿por qué no? Y yo voy a ver, y luego se puede ver vamos a la salida 01234. Ahora la primera pregunta podría ser, bueno, espera, ¿por qué no salimos cinco? ¿ Y por qué salimos 0? Bueno, el for-loop comienza cuando inicializamos esto. De acuerdo, así que esta es la inicialización. Entonces se va a revisar, oye, ¿soy menos de cinco? Sí. Muy bien, ejecutivos, ¿verdad? Vamos a dar salida a esto. Por lo tanto, estoy en el momento de la ejecución. Y luego sale 0. Entonces vamos a aumentar i y sumamos. Te preguntamos de nuevo, oye, ¿sigue siendo menos de cinco? Seguro. Está bien. Y entonces vamos a hacer esto hasta que esto ya no sea cierto. Y cuando eso ya no sea cierto, el bucle se va a romper básicamente, y vamos a estar fuera del bucle. Y por cierto, también generar esto como especie de automáticamente, lo cual es genial. Simplemente vas a escribir cuatro i si estás usando el ID de IntelliJ también. Y luego como puedes ver, es como crear bucle de iteración. Sólo vamos a pegarle entrar, bam, todo ya ahí. Basta con elegir básicamente un número o una variable aquí que compruebe. Entonces digamos por ejemplo diez. Y ahora también podemos hacerlo al revés. Entonces en este caso sólo vamos a hacer diez. Y luego vamos a decir que si es más grande que 0, vamos a continuar y en realidad vamos a disminuir algo, así que vamos a disminuirlo. Y de esta manera en realidad vamos a contar atrás de diez a uno en este caso. Entonces, como puedes ver, un for-loop, muy interesante de usar. Y yo discutiría un poco más de control que el bucle while. Al menos así es como me lo imagino a veces, ¿verdad? Por lo que el bucle for es básicamente más controlable while loop. Esa es al menos mi conceptualización. Ya sabes, podría ser diferente para ti, pero sí, así que esto fue solo una breve visión general del for-loop y sí. 19. (Java) rompe y continuar y continuar: Muy bien, esto es solo un adéndum rápido básicamente para dos palabras clave, break y continue. Son importantes para los bucles. Y en este caso, vamos a ver nuestro ejemplo para la conferencia para bucles y vamos a ver qué hacen realmente el descanso y continuar. Entonces digamos por ejemplo, queremos no contar cinco, pero digamos a diez por ejemplo, en este caso a nueve por supuesto, porque diez no está incluido. Pero sí, así que vamos a contar de 0 a nueve. Y luego decimos, sólo vamos a poner una declaración if aquí. Y estamos diciendo, vale, si yo es igual a dos para continuar, ¿no? Y así con eso ahora lo hace, es, si yo es cuatro, seguimos. Ahora. ¿ Qué me sigue? Continuar significa que lo que pase después no se ejecuta, pero va a saltar de inmediato a la, en esta parte del bucle for. Se va a incrementar, disminuir o lo que sea que haga a la vista. Y luego se va a continuar. Entonces aquí esperamos ver es que esperábamos salida 0 a tres, luego saltamos los cuatro y salida cinco 59. Simplemente voy a borrar esto, no a desbaratar nuestra salida. Ninguno, uno va a correr esto. Y como podemos ver, absolutamente lo que pasa de 0 a tres, entonces se va a saltar los cuatro y luego cinco a nueve. Ahora, como dije, hay otra y otro tipo de palabra clave, esa es la palabra clave break. Y ya lo hemos visto en la declaración switch, pero en realidad no expliqué qué significa la palabra clave break. Yo sólo dije, OK, esto es básicamente, necesitamos esto. Y lo que hace la palabra clave break es en cualquier ámbito que seamos. Entonces en este caso, estamos en el ámbito de bucle for, ¿verdad? Entonces todo entre aquí es el alcance básicamente. Y cualquiera que sea el alcance que seamos, vamos a salir de esto. Entonces no importa lo que sea, qué, lo que sea. Tan pronto como se llame a break, donde fuera del bucle for. Entonces en este caso, lo que vamos a ver es que vamos a ver 0123 y eso es el, eso es todo. Nada más. Entonces vamos a llamar a esto. Y como pueden ver, sólo contamos hasta tres porque cuanto yo estaba por lo vamos a, estamos rompiendo. Y si llamamos a la palabra clave break, entonces salimos. Nos escapamos del bucle for, por así decirlo. Sí, eso es sólo un pequeño adenda corto básicamente a las dos palabras clave. Y sí. 20. (Java) Arrays en Java: Muy bien, sigamos con la introducción de Java. Y en esta conferencia, vamos a hablar de áreas. Ahora las zonas es un, yo no diría que asunto complicado, pero va a ser difícil de entender al principio. Por lo que es posible que tengas que ver esta conferencia dos veces, o si hay alguna pregunta, siéntete libre de hacerlas. Esto es algo crucial para aprender. Y quería simplemente contar rápidamente una historia corta cuando aprendí áreas. Y la cosa fue que dije, bueno, nunca necesito áreas. No los voy a necesitar porque antes que nada, no los entendía bien la primera vez que teníamos esto en clase y yo estaba como, nunca voy a necesitar matrices, lo que sea lo que voy a hacer a mi manera, ¿verdad? Por supuesto que ese es completamente el enfoque equivocado. El aunque no sea útil en eso, ya sabes, quizá no sea útil, pero aun así deberías querer entenderlo. Entonces eso es sólo una pequeña historia rápida de mi vida. Y tan bastante importante entender áreas por lo menos. Y esto es lo que vamos a probar con esta conferencia. Entonces, en primer lugar, lo que vemos aquí es que tenemos tres cuerdas. Entonces estos son básicamente correos imaginarios de estudiantes, digamos, por ejemplo. Y en este caso sólo tenemos tres. Podríamos por supuesto tener más. Y ahora lo primero que viene a la mente también, quiero decir, queremos escribir los correos y entonces tal vez mañana como enviar correos. De alguna manera. No sé cómo pero quizá funcione. No, no funciona. Podemos iterar sobre esto. No nos puede gustar decir estudiante subrayado i, eso no funciona. Entonces esto es una especie de torpe y realmente no podemos usar esto. Por lo que tendríamos que realmente hacer enviar cada correo como en una línea. Y luego si tenemos una media de 1000 estudiantes o algo así, entonces enviar este e-mail es, quiero decir, eso va a ser ridículo, ¿ verdad? Eso no va a funcionar. ¿ Qué va a funcionar sin embargo, es si usamos una matriz, una matriz es, básicamente puedes pensar en esto como una lista, verdad? O sí, básicamente como lista. Y sólo vamos a inicializar uno. Entonces vamos a escribir una cuerda. Entonces esta es una matriz de cadenas, por lo que una lista que contiene cadenas. Y solo llamaré a este estudiante varones. Y entonces sólo vamos a escribir esto. Entonces vamos a tener corchetes rizados. Y en esos corchetes rizados vamos a decir básicamente cuál es cada uno de los elementos de la lista. Entonces el primero en este ejemplo, sería Jonah gmail.com. Y luego vamos a tener Julio en gmail.com. Y al final, el último es Ryan en gmail.com. Y luego vamos a terminar con un punto y coma. Y ahora este de aquí, ahora hemos inicializado básicamente una, una matriz de cadenas, ¿verdad? Y este array de cuerdas, el primer elemento es John en gmail.com, luego Julio en gmail.com, y luego Reiner geométrico. Entonces si voy a dar salida a esto, sólo podemos mirarlo, ¿verdad? Entonces vamos a decir línea de impresión. Y luego la forma en que generamos las cosas ya que vamos a tener correos estudiantiles. Y entonces necesitamos de nuevo los corchetes aquí. Y en esos paréntesis básicamente vamos a escribir el índice del que siempre queremos apagar. Entonces, por ejemplo, vamos a escribir uno. Y ahora lo que probablemente esperes es que John en gmail.com tenga salida y solo vamos a ver si eso es cierto. No es cierto. Ahora bien, ¿por qué ese no es el caso? Porque en áreas empezamos a terminar con mayor frecuencia en la programación de informática informática, vamos a empezar en 0. Entonces en realidad queremos 0 aquí. Y luego si ejecutamos esto, entonces vamos a ver que da salida a John en gmail.com. Entonces esta es en realidad la, básicamente es la primera entrada, pero en este caso será la entrada 0, o su índice es 0, pero es la primera entrada. Pero es índice es 0. Aquí. Si estás escuchando esto por primera vez, podría ser un poco confuso. Sólo recuerda, generalmente cuando tenemos listas y cadenas y estas cosas, digamos que las matrices luego B comienzan a contar en 0. Esto también es a menudo por qué los for-loops o inicializados con un 0, ¿verdad? El entero y el bucle for se inicializa con un 0 para que ayude con este conteo. Y así, básicamente, podemos hacer otra. Digamos, por ejemplo, que tenemos una matriz entera que va a ser algunos números. Y en lugar de decirle explícitamente, ok, esto es, esto es lo que está escrito en la matriz. Nosotros sólo vamos a escribir nuevo. Y entonces ya dice matriz entera con un corchete. Y luego va a decir, bueno, va a poner la zanahoria como en su cursor ahí dentro, ¿ verdad? Va a estar bien. ¿ Qué se supone que haga aquí? Tienes que escribir realmente en cuál va a ser el tamaño del área. Entonces digamos, por ejemplo cinco. Y voy a terminar esto con punto y coma. Y ahora esta matriz sólo puede tener cinco entradas. Ahora a ese punto, esta zona sólo puede tener tres entradas, ¿verdad? No podemos anexar a la matriz. Hay soluciones para esto más adelante por la línea, pero en este caso, no podemos hacer esto. Entonces si decimos compañeros de estudiante tres, ¿verdad? En realidad ya lo va a ver. Oye, array está fuera de límites. Entonces el compilador aquí y el IDE son lo suficientemente inteligentes como para ser como, sí, oh no, no, esto no funciona. Todavía podemos hacerlo. Y luego vamos a conseguir una flecha, como puedes ver, excepción. Y eso significa que cada índice fuera de límites, porque el índice tres no existe, ¿verdad? 012 y tres no existe. Y tampoco podemos sumar allí el tercero o el cuarto. En este caso, decimos, bueno éste, este array de suma numérica, puede tener cinco entradas. Y sólo voy a copiar rápidamente algo sobre. Por lo que sólo vamos a poblar este algún número aquí mismo. Y lo que podemos hacer. Entonces esta es básicamente la forma en que dirías entonces, vale, no fui la primera entrada ni el 0th lugar, correcto. El índice 0 para tener algún número. Así es básicamente como asignas esto, ¿verdad? Entonces lo tomas casi exactamente igual que obtendrías lo que está escrito en la matriz, ¿verdad? Se escribe el nombre de la variable de matriz que los corchetes. Y luego dentro de los corchetes das cualquier índice que quieras. Y este caso solo puedes asignarle uno nuevo. Esto también por supuesto funciona si ya es algo escrito ahí que no hay problema. Y para básicamente una especie de, ya sabes, golf ir círculo completo. Teníamos este número a, Queríamos enviar los correos electrónicos o al menos, ya sabes, poner tu salida los mismos. Y sólo vamos a agarrar el mismo, el mismo for-loop desde aquí arriba. Y sólo vamos a estar como OK, bastante fácil. Sólo vamos a la línea system.out.print. Y luego diremos varones estudiantiles. Y vamos a usar el i aquí. Y el yo por supuesto, toma cualquiera que sea el número aquí. Por lo que sólo va a recorrer el alumno masculino 0123. Recuerda no se toca básicamente. Por lo que en cuanto yo X3, este trimestre ya no se ejecuta. Y si ejecutamos ahora, vamos a ver que tenemos a John July y Ryan y John tenemos dos veces porque recuerden, vamos a poner esto aquí fuera. Entonces no te preocupes por esa. Y sí, así que esta es una de las cosas que podemos hacer. Y una cosita corta que también he mencionado es tal vez, ya sabes, Ryan en realidad ha dejado de ir a clase y ahora sólo tenemos a John en julio. Y si entonces usamos esto, lo que vamos a tener es otra flecha, porque esta ahora es el bucle for ya no es una especie de válida para los varones estudiantiles. Pero en realidad podemos trabajar alrededor de esto si hacemos varones estudiantiles, longitud del punto es incluso como el IDE es lo suficientemente inteligente como para ser como, oh, creo que esto es lo que quieres. Sí. La longitud de punto de los machos estudiantiles es básicamente la longitud de la matriz. Por lo que representa la longitud de la matriz. En este caso, van a ser dos, ¿verdad? Por lo que 12. Esta es la longitud de la cantidad de cosas en la matriz. El índice es diferente a la longitud, ¿no? Por lo que siempre hay que pensar básicamente en el índice. El índice máximo siempre es longitud menos uno, ¿verdad? Entonces eso tiene sentido. Espero porque si empezamos a contar en 0 en lugar de uno, básicamente cambiamos uno a la pendiente negativa hablar, ¿verdad? Entonces si bien este es el primer elemento tiene índice 0, y este es el segundo elemento y es índice uno. Como dije. Esto puede ser un poco confuso al principio. Definitivamente aconsejo, ya sabes, mirar esto en, ya sabes, tranquilo y, ya sabes, tal vez realmente ver esto una o dos veces o incluso tres veces. Porque a veces no es la más fácil. Contestaré cualquier pregunta que tenga. Siéntase libre de preguntarles. Y sí, espero que con todo, esto haya sido esclarecedor para la matriz. Cómo funciona, un poco de lo que puedes hacer con él, y cómo hace que algunas cosas sean increíblemente fáciles. Sí. 21. (Java) Arrays multidimensional en Java: Muy bien, sigamos. Entonces en esta conferencia, vamos a hablar de la matriz multidimensional o las matrices multidimensionales. Bueno, lo primero que probablemente aparece en tu mente es, Oh Dios mío, tuve tantos problemas incluso entendiendo áreas. A lo mejor. ¿ De qué estás hablando? Áreas multidimensionales, eso es ridículo. De acuerdo, vamos a pensar rápidamente en esto uno por uno, ¿verdad? Entonces podemos tener una matriz. Y podríamos imaginar esa matriz. Esto son solo números. Y sólo podríamos tener este RAB, por ejemplo, cada número en la línea numérica, ¿verdad? Por lo que esto sería, en principio, una tasa de matriz unidimensional. Así como una línea es unidimensional, ¿verdad? Se puede tener un número y básicamente se puede expresar dondequiera que se encuentre en esa línea. Creo que ojalá eso sea una especie de comprensible. Y creo que la mejor manera de conceptualizar eso es con la línea numérica. Y ahora la adición de otra dimensión es básicamente cuando tienes gráficas en la escuela, cuando haces las funciones y la f de x y todo ese jazz, ya sabes, no suele ser un tema muy, ya sabes, no es un tema que es como fácilmente digerida a veces, pero probablemente todos lo hayan visto. Ahora. Una forma aún más fácil de pensar como dos dimensiones, por ejemplo, es básicamente con una mesa. Una mesa no es más que dos dimensiones, ¿verdad? Si tienes varias columnas y varias filas, entonces tienes múltiples dimensiones. Entonces podemos, por ejemplo, hacer una matriz bidimensional en que nosotros, ya sabes, hacemos el área normal, lo escribimos en otro corchete y luego otro corchete. Y entonces sólo vamos a nombrar a esto algunos números, por ejemplo. Y la forma en que inicializamos este es, bueno, ya sabes, tenemos una matriz, básicamente, este momento esta es una matriz vacía. Y dentro de esta matriz, por así decirlo, tenemos otra matriz, pero no sólo una sino varias. Entonces digamos por ejemplo, tenemos este es solo algunos números aquí. Digamos 25. Y entonces esta podría ser, por ejemplo, la primera fila. Y entonces podríamos tener otra fila aquí mismo. Podríamos tener 5 mil 505 por ejemplo, ¿verdad? Por lo que esto podría parecer desesperado. Poco, un poco raro, eso se ve raro. No te preocupes por ello. Vamos a ver y vamos a ver lo que esto significa. Entonces solo vamos a imprimir el, el primero. Entonces vamos a decir 0. Ahora bien, ¿qué hace el 0? Solo imprimamos este y veamos qué pasa. Si imprimimos éste. Vamos a ver un montón de basura. ¿ Por qué es eso? Bueno, eso es porque el, esto en realidad imprime la matriz. Y la matriz no puede ser fácilmente. Se muestra en una impresión. Eso está bien. Eso no es un tema. Ahora bien, ¿qué es este 0 realmente hacer? Entonces, ¿qué estamos seleccionando básico? Estamos seleccionando la primera matriz aquí, ¿verdad? Entonces si ahora escribimos los tres, ¿qué esperaríamos para apagar el 25, no? Recuerda que empezamos en 00123. Entonces si llamamos a esto, esperaríamos el 25. Esto es lo que esperamos. Y veamos si se cumplieron nuestras expectativas. Por supuesto que son 25. Entonces con el primer corchete, básicamente seleccionas qué matriz quieres seleccionar. Y con el segundo corchete, eliges qué elemento de este corchete, dónde en esta matriz quieres seleccionar, ¿verdad? Entonces si nosotros, entonces por ejemplo, sólo van a copiar este. Y vamos a decir, bueno 12. Entonces lo que pasa es que vamos a conseguir 5 mil, ¿verdad? Porque ahora hemos seleccionado el, este, este array aquí, y el, el elemento con el segundo índice, así 012. Por lo que esto serían 5 mil. Como podemos ver, son 5 mil. Ahora, ¿qué es realmente genial? Bueno, y lo que realmente es genial en realidad lo es. En este caso, se trata de una matriz bidimensional. Por lo general no le gusta, se puede, por supuesto tener tres dimensiones y aún más. En algún momento, se pone un poco, se pone difícil de manejar, ¿verdad? Entonces tres dimensiones que por supuesto todavía podemos visualizar tal vez. Y luego en cuanto sean las cuatro, nos vamos a encontrar con algunos temas. Y usualmente pienso que en mi experiencia, ya sabes, matrices unidimensionales y bidimensionales son básicamente todo lo que realmente necesitamos en la mayoría de los casos. Entonces lo que vamos a hacer es que vamos a tener un, un bucle for que vamos a llamar a x aquí. Y luego vamos a decir unos números de punto de longitud. Y luego dentro de eso, vamos a tener otro for loop para i. Y éste va a ser y. y éste. Ahora habrá un realmente interesante, realidad vamos a tener esto. Entonces vamos a tener algún número x longitud de punto, hmm. Interesante. ¿ Cómo funciona eso? Bueno, en este, realidad vamos a iterar sobre toda la matriz. Entonces vamos a decir, vale, ¿cuántas áreas tiene la aireada dentro de ella? Dos en este caso. Entonces vamos a tener esta longitud es de dos. Y esta longitud depende de qué área elegimos, ¿no? Porque éste tiene longitud de cuatro y éste tiene una longitud de tres. Entonces si acabamos de emitir esto, tengo un preparado la salida aquí porque eso va a ser más fácil de leer. Por lo que básicamente tienen coordenadas X e Y, por así decirlo. Y entonces podemos dar salida a estos números. Entonces si solo hacemos esto y vamos a ver que no 00 es diez. Eso encaja perfectamente. 01 es 15, luego 2025, o 03. Y luego pasamos a la siguiente zona, por así decirlo, ¿verdad? El siguiente error aquí. Y éste es entonces el índice uno. Y dentro de la segunda matriz, el primer elemento con índice 0 es 50. Por lo que esta es básicamente una forma de utilizar áreas multidimensionales. Y una vez más, lo mismo con las zonas normales. Al principio, puede ser un poco difícil envolver la cabeza. De acuerdo, ¿cómo funciona realmente esto? Las dos cosas que son más importantes que hay solo inténtalo por ti mismo, prueba algunas cosas y siempre ve con, ok, ¿qué espero que salga aquí? ¿ Y qué espero que pase aquí? Y si sucede, eso es genial. Si no sucede, piensa en, vale, ¿por qué pasó eso ahora? Y ese es el número uno. Y número dos, si hay algún tema o, ya sabes, tu estás progresando con algo o algo, ya sabes, tienes un problema. Siempre siéntete libre de preguntar. Siempre he tratado de responder a las preguntas que entran. Y sí, espero que las flechas multidimensionales sean al menos un poco más claras. Y sí. 22. (Java) la lista (Array): Muy bien, sigamos con la introducción de Java. En esta conferencia, vamos a hablar de listas o ArrayLists. Entonces recuerda la matriz donde teníamos estudiantes, varones, en particular era una matriz de cuerdas. Y teníamos múltiples valores de cierto tipo, en este caso cadena, como dije. Ahora, había algunas desventajas que teníamos. Teníamos que especificar cuántos valores queremos haber guardado en esa matriz. Y si no pudiéramos agregar ninguno. Ahora, aquí es donde entran las listas y las listas son mucho más fáciles en ese sentido de usar. Hay más dinámicas. Y entonces lo que vamos a hacer es que sólo vamos a escribir lista. Y luego lo primero que aparece, la primera sugerencia simplemente iba a presionar Enter y luego aparece algo aquí arriba. Este es un paquete que es importante. Al igual que tenemos nuestro propio paquete justo aquí, ¿verdad? Este es mi paquete, joule de algodón comunista. Este es mi propio paquete. Y este es un paquete que ahora se importa para que podamos usar esta clase, para que podamos usar la lista, ¿no? Y tanto clases como paquetes van a ser discutidos en una conferencia posterior. Muy importante es sólo que esto está aquí. Si no lo es, por cierto, entonces vas a ver que la lista se pone roja y simplemente puedes pasar el cursor sobre ella y puedes simplemente hacer clic aquí en clase de importación y luego asegúrate de seleccionar la java.util. Y luego se pone, se importa y luego no hay temas en absoluto. Vamos a hacer esos corchetes angulares y vamos a hacer una lista de cuerdas. Sólo vamos a llamar a eso machos. Y ahora queremos hacer una nueva lista. Y ahora aquí en realidad obtenemos ArrayLists sugeridos. Es por ello que esto se llama lista de matriz o lista. Y vamos a elegir listas aireadas en este caso. Entonces algo más se importa aquí, a saber, el ArrayList. Ahora la idea es que podrías por supuesto, también hacer un ArrayList que funcione totalmente bien y funcionaría. No obstante, muchas cosas que se usan en Java realmente regresan así, digamos listas básicas. Pero en segundo plano, guarda un ArrayList. Ahora esto tiene algo que ver con las interfaces y el polimorfismo. Esas son palabras muy grandes en las que realmente no queremos pensar en este momento. Simplemente vamos a pensar, vale, cuando queremos una lista, del lado izquierdo, hacemos lista y luego en los derechos que hacemos un nuevo ArrayList. Por lo general, esto es lo que sugiere el IDE de una manera u otra. Entonces No es tan difícil simplemente pensar en ello. Ahora. Como puedes ver, realidad no hemos especificado cuántos artículos queremos en esas listas, cuántos valores queremos tener en los machos. Esto es porque no necesitamos hacerlo. Porque lo que podemos hacer es que podemos hacer que los machos punten sumen, y luego simplemente podemos añadir nuevos machos. Entonces digamos, por ejemplo, vamos a sumar a John en yahoo.com es tal vez John cambió su correo y luego solo va a agregar unos cuantos más también fue agregar Julio y Ryan, y luego tal vez también maria. ¿ Verdad? Esto es lo fácil que es simplemente agregar unos cuantos más. Puntos de datos o pocos valores más a esa lista. Ahora, vamos a ver qué pasa cuando nosotros, cuando damos salida a esa lista, ¿no? Entonces, solo empecemos eso, machos de salida. Pero así como eso. Vamos a correr eso y veamos qué pasa. Y lo que realmente vamos a conseguir es que en realidad podemos ver cada uno de los valores en esa lista claramente escritos, lo cual es muy bueno para ver de inmediato, OK, lo que en realidad hay en esa lista. Y ahora la primera pregunta que viene a la mente es, bueno, ¿cómo vamos a acceder a cada miembro individual? Y eso no va a funcionar con el, con esos corchetes que usamos antes, pero en realidad con un método que se llama gatt. Muy fácil. Aquí sólo escribimos el índice. Una vez más, el índice es el mismo que con el almacenamiento de matriz con 0 y luego cuenta hacia arriba. Por lo que el primer elemento es John en yahoo.com, que tiene un índice de 0. Ahora, tal vez querrías quitar un elemento, que en realidad es antes de mover un elemento, ¿qué tal si cambiamos un elemento? Bueno, si queremos cambiar el artículo, solo hacemos correo stop, set. Y luego tenemos que especificar primero el índice. Digamos que John realmente cambia su dirección de correo electrónico de vuelta. Entonces en realidad queremos tener de nuevo a Jon dot gmail.com, ¿verdad? Entonces esto simplemente cambia el primero, el primer elemento a esto, lo que se nos da la cadena. Entonces John en gmail.com, y si quieres quitar algo, así que digamos que queremos correos punto eliminar, sublista eso. Entonces podemos especificar, hey, en qué sala índice, algo tal vez uno, tal vez Julio ha dejado de ser estudiante o algo así. Otra cosa importante es cómo obtener el tamaño de la lista. Ahora digo específicamente tamaño porque este es uno, este también es el método, como se llama. Es simplemente talla de punto machos. Y esto devuelve el tamaño. Es lo mismo con la longitud para la matriz. Ahora, tal vez en realidad somos como si fuera un año nuevo. Todos los demás alumnos se han ido. Vamos a limpiar toda la lista, ¿verdad? Y entonces esto simplemente va a borrar toda la lista y luego está vacía. Ahora solo agreguemos unas cuantas cosas más aquí. Sólo voy a copiar rápidamente algo porque eso es un poco más fácil. Entonces solo vamos a sumar E en yahoo.com, ATF en general, al azar o digamos. Y lo que vamos a hacer ahora es que vamos a usar colecciones dot sort para ordenar esto. Ahora esto va a ser realmente bueno porque podemos hacer es literalmente sólo escribir colecciones.ordenar elecciones por cierto, también importar algo aquí arriba. Esto es porque escribí mal algo, no te preocupes por que quiero. Y esta es una colecciones util de Java. Y esto nos permite realmente ordenar esto aquí mismo. Entonces lo que vamos a hacer es que vamos a sacar esto una vez antes y una vez después sobre eso. Hagámoslo así. Y luego vamos a ver qué pasa, ¿verdad? Entonces primero es e a t f d, y ahora es una D, E F T. Así que en realidad ordenamos en orden alfabético. ¿ No es genial? Ahora tengo una cosa más que decir realmente sobre las listas y ArrayLists. Entonces hicimos una lista de cuerdas, ¿verdad? Hagamos algo así. Apenas por el momento. Ahora bien, esto funciona. Si quiero una lista de enteros, esto no va a funcionar porque va a decir que el argumento de tipo no puede ser de tipo primitivo. Por lo que recuerdan que tenemos enteros, tenemos el doble booleano. Todos esos son tipos primitivos. Y ahora todos, necesitamos usar las clases de envoltura para eso, ¿verdad? Y esos son simplemente el nombre del tipo deletreado y comenzado con un M. mayúscula Así que en este caso es sólo un entero. Y entonces esto funciona igual que con cualquier otro entero en absoluto. Es sólo algo en lo que tenemos que pensar. Y si queremos usar un doble, podemos usar el doble. Si queremos usar un flotador, podemos usar un flotador solo se escribe un poco diferente. Y esto está en la nomenclatura, es una clase de envoltura. ¿ Y qué más había? Flotador doble. Sí, booleano es el mismo. Grande con mayúsculas letra en el principio. Solo había algo que quería decir solo para que, ya sabes, sí, y eso básicamente sería una introducción a corto plazo a las listas y ArrayLists. Entonces, sí. 23. (Java) HashMaps en Java: Muy bien, sigamos con la introducción de Java. En esta conferencia, vamos a hablar de HashMaps. Ahora, un HashMap es, digamos similar a una lista. No obstante, es aún mejor en algunos aspectos que una lista. Por lo que sólo vamos a escribir HashMap de nuevo. Y luego va a, como pueden ver, otro paquete importante, como dije, los paquetes serán discutidos con más detalle más adelante por la línea. Ahora, un HashMap también tiene los corchetes angulares, pero ahora vamos a poner en dos cosas. En este caso, vamos a poner en dos cadenas, por lo que string y luego string coma. Vamos a llamar a éste mayúsculas. Y luego vamos a hacer New HashMap y luego terminaremos eso con punto y coma. Ahora, ¿qué está pasando aquí? Entonces, básicamente, la idea de un HashMap es en comparación con una matriz o una lista. En la lista de matriz para sacar un elemento de eso, necesitábamos poner en el índice, ¿verdad? En este caso, en realidad podemos tener una clave específica mapeada a un valor específico. Por eso, por eso se llama mapa. Y sólo voy a copiar rápidamente unos cuantos ejemplos de lo que vamos a poner ahí. Entonces el método a llamar con el fin de poner otro par de valor clave, así se llama. Entonces México es la clave. Y la Ciudad de México en este caso, sería el valor. Para poner eso, usamos el método puesto, ¿no? Y si sólo vamos a hacerlo rápidamente, voy a poner esto sólo por el bien de la simplicidad. Por lo que hay menos sólo poner capiteles. Y veamos qué pasa aquí. Entonces como puedes ver, lo que pasa es que Estados Unidos es igual a Washington DC. Obtenemos México, Ciudad de México, obtenemos Francia igual a París, Alemania igual a Berlín. Entonces podemos ver que el, hay una relación entre la clave y el valor. Sólo voy a escribir rápidamente un comentario por aquí para que sea básicamente un mapa clave a un valor específico, ¿verdad? Y esto también se llama par clave-valor. Por lo que el par de valores clave es, en este caso, hemos especificado que sea una cadena a una cadena. Entonces le damos una cuerda. Entonces le damos una cadena al HashMap, y obtenemos una cadena y regresamos. Ahora esto podría ser un entero. Entonces básicamente hemos implementado algo muy parecido a una, a una, a una ArrayList, pero no del todo. Entonces, por ejemplo, las claves enteras que podríamos tener, podrían, por ejemplo, ser ID de estudiante, ¿verdad? Y entonces lo que nos tocó es, por ejemplo, el nombre del alumno. Este sería entonces el DNI del estudiante al mapa de nombre del alumno. Y esto es algo en lo que queremos pensar cuando usamos el mapa, ¿no? Por lo que siempre mapea una clave de un valor específico. Ahora, digamos que nosotros, por ejemplo, queremos imprimir la capital de Alemania. Entonces lo que hacemos es conseguir. Entonces usamos el método get y ponemos en la llave, están en interiores o llave escrita y la clave es Alemania. Y si escribo eso, entonces vamos a conseguir Berlín. Porque esa es exactamente una especie de respuesta, ¿verdad? Por lo que también puedes pensar en ello ya que la clave es una especie de respuesta y que tu valor es al revés. Perdón, la clave es la pregunta y el valor es la respuesta a esa pregunta, ¿no? Entonces en este caso capitales, vale, ¿cuál es la capital de Alemania? Esa es tasa de Berlín. Y esto también es algo en lo que podemos pensar. Es posible, al igual que con cada lista, que simplemente podamos quitar un objeto. En este caso, tal vez queremos quitar a Francia. Aquí una vez más, ponemos la llave, ¿no? Y también podemos imprimir, si queremos hacer eso el, el tamaño de la misma con mayúsculas tamaño de punto. Entonces podemos ver después de haber quitado Francia, tenemos tres artículos ahí dentro. Ahora, cuando otra cosa especial es, hay un tipo especial de bucle para recorrer HashMaps. Y voy a mostrar eso rápidamente para que como puedes ver, ya dice, por cada chico quiere foreach loop. Ahora la forma en que da formato a esto es absolutamente espantoso. Entonces solo lo vamos a hacer por nuestra cuenta. Entonces vamos a hacer cuatro. Y lo que queremos es una cadena S. Luego hacemos un colon, y luego decimos mayúsculas dot keyset. Ahora. Y vamos a hacer corchetes rizados también. Entonces tenemos eso. Ahora aquí. Es muy importante. S es ahora una tarifa clave. Por lo que S pasa por cada clave que está en el HashMap. Este tipo de bucle de cuatro se llama bucle foreach para cada uno. Y en la próxima conferencia vamos a hablar de esto con un poco más de detalle. Pero sólo quiero mostrarles, sólo voy a copiar esto de nuevo porque es sólo una salida. Hay un plus que falta. Y sólo vamos a ver esto, qué hace eso. Entonces si hacemos esto, podemos ver que en S, tenemos cada tiempo del bucle, tenemos USA, México, en Alemania, cada vez escrito ahí, justo en S, porque esas siempre son las claves. Esas eran nuestras llaves, ¿verdad? Recuerda que Francia fue borrada de la lista o del HashMap. Y así pasamos por Estados Unidos, México, en Alemania. Y entonces en realidad hacemos mayúsculas punto get s. y en el método get, como dije, pones la llave y luego sacas el valor. Entonces, correcto, entonces eso es una especie de visión general para el HashMap, ¿verdad? Donde podemos mapear una clave específica a un valor específico. Y es bastante útil para todo tipo de cosas. Y sí. 24. (Java) para cada bucle: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a hablar del para cada bucle o de un bucle para colecciones. Y en la última conferencia ya hemos visto el, este tipo de bucle para el HashMap. Sólo voy a ver cómo se ve, por ejemplo, para el ArrayList, ¿no? Pero antes que nada, recordemos, vale, una cuerda, una matriz de cuerdas, ¿verdad? Una matriz de cadenas, por ejemplo, solo, tenemos nombres ahí dentro. Por ejemplo, tenemos a Johnny, Johnny, Johnny el ego, y tenemos a Martin, y tal vez incluso algo así como George. Y eso es todo. ¿Verdad? George. Escrito así. Gracias. Entonces tendremos tres nombres ahí dentro. Y recordamos que la forma en que podemos iterar a través esa es simplemente tomar un for-loop normal, tomar nombres longitud de punto, y luego por ejemplo, simplemente imprimirlos. Entonces printout, sistema de impresión y luego vamos a tener nombres. Y luego me gusta esto. Esto es algo que ya hemos visto para las matrices. Ahora las grandes preguntas, ok, y también lo hacemos por un ArrayList por ejemplo, u otras colecciones. Ahora, podemos por supuesto, utilizar exactamente el mismo método que utilizamos para las áreas para el ArrayList. Porque podemos ir con los índices, índices y poner eso a diferencia de salida ellos. Pero ese no es del todo el mejor método ni el único método. Porque también podemos usar el bucle for-each. Ahora estará justo ahí, en lugar de inicializar un entero, realidad vamos a inicializar cualquier tipo de datos que tengamos dentro de la lista de matriz. Entonces en este caso una cuerda, que le va a dar a esto un nombre S S. También podríamos nombrar a esto, por ejemplo, masculino porque sabemos que ahí están los machos. Entonces sólo vamos a llamar a este correo por ejemplo. Y luego hacemos un colon. Puede hacerlo con o sin un espacio entre, no importa. Y luego queremos dar el nombre de la variable de la colección. Ahora en este caso podemos hacer machos y luego solo tener un sistema fuera, imprimir línea de Mail, por ejemplo. Y luego cuando hagamos esto, vamos a ver cuál es la salida todos los machos de machos mayores en el ArrayList. Curiosamente, esto también lo podemos hacer con los nombres, ¿no? Entonces también podemos decir nombre, y luego podemos decir nombres. Y también podemos dar salida, usar un bucle foreach para la matriz, ¿verdad? Como se puede ver, hace exactamente lo mismo que hace aquí arriba. Porque esto básicamente es también una colección, una colección, básicamente una especie de término amplio para listas y array. Todas esas estructuras de datos. Pero sí, así que este es el, para cada bucle, realmente poderoso. Si estás trabajando con listas y mapas e incluso matrices. A veces es más fácil usar este bucle, el para cada bucle, a veces es más fácil de usar. Un for-loop normal. Realmente depende de la situación. Pero sí, eso es básicamente el para cada bucle. 25. (Java) Java: Muy bien, entonces en esta conferencia, vamos a hablar de los métodos Java. Ahora, ya hemos hablado del método principal antes, ¿no? Donde ponemos toda nuestra codificación. Hablamos de los métodos de cadena. Nosotros, hemos visto algunos métodos para colecciones, principalmente el hashmap y el ArrayList. Y ahora vamos a hablar en términos generales de un método. Y vamos a una especie de mostrar esto implementando lo factorial. Entonces el factorial de un número es justo, por ejemplo, si tengo un factorial de un número, ¿verdad? Entonces por ejemplo, como cuatro o algo así. Escribiríamos esto como cuatro signo de exclamación. Y esto es simplemente cuatro veces tres veces dos veces uno. Y en realidad no vamos a tomar cuatro, vamos a tomar cinco porque ese es un ejemplo aún mejor. Yo tengo, y esto entonces va a ser un 120. Ahora bien, ¿por qué es esto importante, su cosa matemática? Y yo, en realidad podríamos tener un factorial. No tenemos un factorial aquí implementado, así que ni siquiera pudiste usar eso. Entonces si realmente quisiéramos esto, en realidad necesitaríamos implementar esto. Entonces digamos que tenemos un número y tenemos un factorial, ¿no? Vamos a inicializar eso. Tú eres, Y en este caso nuestro número va a ser cinco. Ahora, lo primero que hacemos para la función factorial, digamos es que vamos a establecer factorial al número mismo. Y luego vamos a implementar un loping muy interesante buscando bucle, ¿verdad? Vamos a inicializar i con número minús1. Y debería ser más grande o igual a uno, i menos menos. Por lo que en realidad va a contar atrás. Y entonces factorial va a ser tiempos iguales i Ahora, cuando veas esto por primera vez, vas a estar como, qué diablos está pasando aquí. No lo sé aunque ni siquiera sé lo que esto significa. De acuerdo, pasemos rápidamente por esto y pensemos en esto. Entonces factorial en el inicio del bucle, factorial y numérico son exactamente lo mismo que ambos cinco, ¿vale? Entonces inicializamos i num menos uno. Entonces voy a ser cuatro por primera vez. Entonces, en la primera vez que pasa el bucle, en realidad vamos a veces cinco, veces cuatro. Está bien, eso es bastante bueno. Entonces el bucle termina y vamos a disminuir i, que ahora es un tres. Y el cheque es básicamente, oye, cuando lleguemos al uno, entonces vamos a parar porque no queremos el 0 porque si multiplicamos por 0, todo va a ser 0. Eso no va a ser bueno. Entonces básicamente solo contamos atrás, nosotros en factorial con cada bucle. En primer lugar, tenemos dentro de ella ahorrado cinco veces cuatro. Eso es cinco veces cuatro veces 35 veces cuatro veces tres veces dos. Y luego cinco veces cuatro veces tres veces dos veces uno. Y luego ya está hecho. Y sacamos el factorial. Entonces sólo vamos a hacer sistema fuera, línea de impresión. Y vamos a, sólo vamos a decir algo como lo es Turiel. Y vamos a escribir un plus. Bueno, veamos qué pasa. Y efectivamente es un 120. Eso es genial. Ahora. Eso es realmente bueno. Pero digamos que en realidad quiero que me guste tener esto en esta parte del programa. Y luego voy a escribir como 100 líneas de código más. Y entonces tendría esto una y otra vez y otra vez, una y otra vez. Entonces tendría que copiar esta parte siempre. Siempre tendría que cambiar el número y tal vez a veces olvidaré cambiar el número y luego calcular otra cosa. Eso es, eso no es realmente algo bueno. Y por eso podemos escribir nuestro propio método. Entonces hasta ahora, siempre hemos estado dentro del método principal y ahora vamos a salir de él. Sé cosa aterradora, pero no te preocupes, vamos a estar bien. Y vamos a escribir público. Público. Vamos a jugar ¿verdad? Estático y un entero, int y luego factorial. Y dentro de los paréntesis vamos a escribir en número. Y ahora se vuelve la gran pregunta, ¿qué es esto? ¿ Y qué obtenemos un error? Eso lo voy a explicar muy pronto. Entonces, en primer lugar, como ya dije al inicio del curso, el público y la estética no nos interesan en este momento. Eso es justo lo que necesitamos en este momento. Se explicará muy pronto. Ahora el entero es simplemente lo que este método devuelva, ¿verdad? Ya hemos visto algunos métodos con, por ejemplo, las cadenas, y siempre devuelven una nueva cadena. Y así en este caso, devolvería un entero. Este es el nombre del método. Y entonces tenemos parámetros dentro de los paréntesis aquí, que son básicamente se tiene que dar para que este método funcione, ¿no? ¿ De acuerdo? Y luego simplemente vamos a copiar esto porque eso no es tan interesante. El cual se inicializa el enclavamiento. Interesante. De acuerdo, eso se extiende. Y oh, ¿qué pasó ahí? ¿De acuerdo? Entonces el inicializar un número, un factor entero, y eso se va a introducir menor número, exactamente como hicimos aquí. Y luego quieren pasar exactamente por el mismo bucle. Simplemente no tenemos los corchetes rizados y luego vamos a devolver hecho. Y ahora, como se puede ver, la flecha también se ha ido. Aquí hubo un error. Se ha ido porque ahora en realidad hemos devuelto un entero, ¿no? Entonces para devolver algo de una función, necesitamos usar esta palabra clave return y luego cualquier variable que regresaremos. Y ahora también podemos devolver cinco. Por lo que también podemos devolver algo así está ambientado en piedra. Pero eso realmente no tiene sentido porque sea lo que pongamos aquí, siempre van a ser cinco. Realmente no tiene sentido. Ahora si solo copiamos esto y usamos el mismo método, pero en lugar de solo tomar esta variable, realmente tomamos esta función, ¿verdad? Podemos hacer doble clic y luego se va a decir, oye, quiero un número aquí. Voy a decir OK, cinco, ¿verdad? Y entonces en realidad tiene un cinco dentro de ella. Y luego vamos a ver factorial es un 120 también. Y ahora lo grandioso aquí es que sólo podemos llamarlo para como seis también para siete. Y es una línea, ¿verdad? Esto es muy a menudo el caso. Cuando diría que cuando usas un código, el mismo código dos veces, podría estar bien solo estar como OK, solo necesito esto dos veces. Solo copiemos este código, péguelo ahí. Pero normalmente, en cuanto copias como grandes trozos de código, es a veces me tienes probablemente ver justo ahora, he, he copiado la línea de impresión y pegado a Sadat. Eso no es tan malo porque esa es una línea. Como algo específico que sucede, realmente no puedo escribir una función que haga esto menos que eso. Pero si básicamente copiaría como 1020, incluso cinco líneas de código, esa es una muy buena indicación de que probablemente deberías tomar el, tomar el código que querías copiar y ponerlo en una función, y luego usa esa función. Eso es un muy, muy bueno como heurístico para usar con el fin de saber, bien, cuándo debo usar una función y no somos o un método, lo siento, un método, método y función es básicamente un sinónimo, ¿verdad? Es intercambiable. Cuando nosotros, cuando queremos usar un método que sea algún que sea un buen leísta. Yo sólo quería señalarlo por un segundo para que ya lo sepas, sí. Y eso es básicamente un, un ejemplo para un método Java que podemos escribir fuera del método principal y que luego podemos llamar cuando queramos. Sí. 26. (Java) el descargo de los métodos de Overloading: Muy bien, entonces en esta conferencia vamos a hablar de sobrecarga de métodos. Por lo que ya hemos visto un solo método básicamente. Y en este ejemplo, tenemos un método que implementa básicamente se multiplican. Ahora, obviamente ese no es el mejor ejemplo, pero sólo te mostraré en un muy parecido, en un ejemplo muy fácil para que simplemente puedas captar el concepto. ¿De acuerdo? Entonces tenemos este método de multiplicación al que podemos llamar. Podemos darle dos enteros como parámetros, y luego se va a ejecutar. A ver. Y por supuesto devuelve la respuesta correcta. Ahora, puedo tener lo mismo. Y si tengo otro método, y también voy a llamar a esto multiplicando. ¿Verdad? Ahora. También voy a tener int a y en B. Eso no va a funcionar porque ahora tenemos el mismo método dos veces. No obstante, puedo sobrecargar el método para que pueda hacer esto si pongo otro parámetro, por ejemplo, o un tipo diferente de parámetro, o diferente número de parámetros, ¿verdad? Por lo que puedo ponerlo en C aquí. Y de repente ese error o ese error se ha ido. Y entonces sólo puedo hacer algo de eso. Es a veces b veces c. Entonces si miramos esto, si escribimos multiplicar, multiplicar, entonces realmente tenemos dos cosas que se sugieren para nosotros las firmas de tasa a método es el término. Y así podemos tomar éste y entonces podemos decir, bueno, quiero, por ejemplo, cinco veces, dos por cuatro, ¿verdad? Y él sólo lo hace. Sabe cuál usar porque sabe cuántos parámetros se toman para qué tipo de función, ¿no? Y entonces podemos, por ejemplo, también hacer algo similar con float. Por lo que también podemos decir multiplicar, multiplicar esto. Y hay un flotador, a, float b. Y no va a tener un problema con ese también. Y sólo vamos a devolver este. Y luego si llamamos a este, entonces por ejemplo, si entonces decimos un sistema, Upsilon, sistema fuera de línea de impresión, decimos multiplicar. Entonces, ahora tenemos tres cosas que podemos conseguir, nos pueden sugerir, sí, y aquí siempre vemos el tipo de retorno, ¿verdad? Entonces y esos dos, eran enteros. En este es un flotador. Eso tiene sentido. Entonces solo voy a hacer doble clic en eso y luego le damos dos carrozas. Entonces por ejemplo, 3.512.4, F, Eso es flotador. Y luego cuando ejecutamos esto, vemos que todo funciona perfectamente bien. A pesar de que los tres métodos tienen exactamente el mismo nombre. ¿ Cuál es la diferencia? La diferencia está en el número de parámetros o los tipos de parámetros justo aquí, el tipo es diferente y aquí los números diferentes. Y esto es básicamente esto lo que se llama sobrecarga de método, realmente importante y puede ser increíblemente útil para tantas cosas. Sí. 27. (Java) y objetos en Java: Muy bien, sigamos con la introducción de Java. Y en esta conferencia, vamos a hablar de clases y objetos. Y lo primero que vamos a hacer es que vamos a entrar aquí a nuestra carpeta de proyectos. Vamos a entrar en nuestra fuente y luego cualquier paquete que tengamos, ya sabes, como sea que lo llames. Y luego vamos a hacer nueva y nueva clase de Java. Entonces en realidad voy a crear un nuevo archivo. Y este expediente, en este caso, sólo vamos a llamar a fruta y nos aseguramos de que aquí se seleccione clase. Y voy a pegarle entrar. Y ahí vamos. Y voy a acercarme un poco. Y ahora tenemos una nueva clase, fruta de clase pública en nuestro paquete. Y entonces, ¿qué hemos hecho ahora mismo? Por lo que hemos creado una nueva clase. Cuando volvemos aquí, tenemos dos pestañas. este momento, la clase principal de Java y la clase de frutas. Hemos hablado brevemente del método principal, pero ahora también podemos mirar a la clase principal. En este caso, la cláusula principal es simplemente para nosotros, algo así como una clase ficticia, solo para que tengamos la cláusula principal, un método principal en algún lugar, ¿verdad? Entonces eso es en alguna parte. Contamos con el método principal que se inicia al inicio del programa. Pero la clase frutal que es un poco diferente. Entonces en la cruz de frutas ahora mismo, en realidad queremos crear objetos a partir de eso. Ahora, ¿qué significa eso? Bueno, pensemos, en primer lugar, en una fruta. ¿ Qué, qué hace una mitad de fruta? Bueno, quizá una fruta tenga nombre. Eso tiene sentido, ¿verdad? Entonces una manzana, plátano, naranja, mango, esos son nombres para frutas, vale, eso, eso podría ser algo ahora también podría tener un contenido posiblemente de azúcar porque tal vez quieras vivir sano y quieres saber, vale, ¿Cuál es el contenido de azúcar de una fruta en particular? Y luego también para quizá mirar a alguien más, el color, ¿no? Por lo que esos podrían ser tres atributos de una fruta. Y esto es exactamente lo que esta clase atribuye. Entonces estas son variables que se asocian a una clase en particular, en este caso, fruta, ¿no? Porque aquellos exactamente mapeados a atributos que podría tener una fruta. Ahora, también podría haber muchos, muchos, muchos más. Eso podría ser largo, ancho, alto. Ya sabes, podría haber todo tipo de atributos que tiene una clase u objeto en particular. Pero en este caso, sólo nos vamos a quedar con estos tres ahora mismo como ejemplo. Ahora, ¿qué podemos hacer con esto? En este punto, en realidad podemos hacer algo y en realidad podemos crear una nueva fruta. Entonces solo vamos a teclear fruta y luego realmente vemos que de inmediato se sugiere. Y vamos a crear una fruta nueva, y lo vamos a llamar plátano. Esto va a ser fruta nueva. Y sólo voy a explicar rápidamente lo que está pasando aquí. Entonces esta es igual de normal una variable como puedes ver, ¿verdad? Porque por ejemplo, int x, exactamente lo mismo, solo que el tipo de datos en este momento es fruta en lugar de cadena entera y las otras que hemos visto. Y luego lo asignamos de inmediato, una fruta nueva. Ahora, ¿qué significa eso? Bueno, la nueva palabra clave se usa para crear un nuevo objeto. Y en este caso, creamos un nuevo objeto frutal. Ahora esto se ve un poco raro. A lo mejor. Esto es lo que se llama constructo arriba. Ahora en este caso no hay nada entre paréntesis, por lo que no se dan parámetros al constructor. Entonces el, y este es el constructor predeterminado sin nada en él, ¿verdad? No se pasan argumentos o no se pasan parámetros. Pero lo que ya podemos hacer es cuando vamos por un plátano listo, ya estás sugiriendo esto. Y luego podemos acceder a los tres atributos que hemos especificado y declarado en la clase de frutas dot Java en la clase frutal. Entonces, por ejemplo, el nombre, ahora podemos establecer esto como, por ejemplo, plátano. Y ahora un nombre de punto banana. Así es como se accede. Esto tiene el nombre de plátano. Pero esto parece un poco torpe. Porque ahora cuando quiero continuar y quiero fijar, ya sabes, el contenido de azúcar a Illinois 15 y así sucesivamente y así sucesivamente. Tengo que hacer los tres atributos, y tal vez tengo que hacer 20 atributos si hay aún más. Y es por eso que en realidad podemos tener no solo un constructor predeterminado, sino también nuestro propio constructor o constructor personalizado por así decirlo. Entonces para eso escribimos público y luego el nombre de nuestra clase, en este caso fruta y sólo paréntesis. Y es básicamente como una función sin valor de retorno. Más bien, el valor de retorno es el nombre de la clase misma. Ahora en el, entre paréntesis, en realidad vamos a escribir todas las cosas, los problemas relacionados. No te preocupes por eso. Vamos a llegar a eso en un minuto. Esto sucede y voy a explicar esto en breve tiempo. Ahora sólo vamos a copiar casi básicamente los nombres porque lo que podemos hacer es que podemos escribir este nombre de punto igual a nombre. Y entonces podemos escribir este contenido de azúcar de punto es igual contenido de azúcar y este color de punto es igual a color. Esto es a menudo como lo hago porque el nombre aquí es lo mismo que el nombre aquí dentro ya que los atributos de la clase tienen el mismo nombre que los parámetros en el constructor. Y luego puedes especificar, bien, en realidad quiero este atributo aquí. Cuando se utiliza el, esto, el, esta palabra clave. Porque esta palabra clave básicamente dice, hey, quiero este objeto, esta clase, lo que sea esto. Entonces esto todavía, ¿verdad? Y entonces el nombre Él es o el IDE es lo suficientemente inteligente. El compilador es lo suficientemente inteligente como para saber, oh, sí , esto es, esto es lo que significa por nombre. Y esto es a lo que te refieres cuando dices esto.nombre, te refieres a la clase misma. Ahora, ¿por qué han comenzado un problema relacionado? En realidad podemos hacer click en esto. Y vamos a ver que va a ser como, oye, esperábamos tres argumentos porque ahora mismo. El constructor que usamos aquí, el constructor predeterminado ya no es válido porque hemos declarado nuestro propio constructor, ¿verdad? Porque antes cuando teníamos esto no había problemas relacionados. Es decir, no hay problemas relacionados. Gracias. Porque básicamente lo que sucede implícitamente, algo así ha creado, perdón, éste. Entonces este, un constructores por defecto siempre en segundo plano. No obstante, si entonces una especie de anular esto haciendo nuestro propio constructor, entonces el otro se borra, especie de hablar. O no es más implícito, realidad tenemos que hacer eso explícitamente. Entonces si entonces creamos éste, eso está totalmente bien, entonces funciona. Entonces eso es algo muy importante a tener en cuenta, que el constructor predeterminado solo es único válido siempre y cuando Hasta que crees tu propio constructor personalizado. O también puedes simplemente enunciar explícitamente también. Y luego funciona. ¿ Verdad? Entonces hagamos entonces tal vez otra fruta. Hagamos una manzana, una manzana, fruta nueva. En realidad tomemos a nuestro otro constructor e inmediatamente pasemos todos los atributos que queremos. Entonces el nombre va a ser contenido de azúcar de Apple, va a ser diez. Y que el color es rojo. Y como puedes ver muy bien, el realmente, el IDE inteligente en realidad ya te da los nombres de los parámetros, lo cual es increíblemente útil. Y por eso siempre sugiero, ya sabes, quedarme con los buenos nombres de variables. Lo más probable es lo mismo que los atributos porque entonces, ya sabes, porque si esto fuera n SCC, quiero decir , ya sabes, si miras esto en como tres meses, no tienes idea de qué es SC que era sc. Entonces tienes que ir a buscar. Y recuerden estos son tres parámetros y tres atributos sobre el fruto. Es decir, podríamos imaginar tal vez 20 o 30 atributos, y luego todos se llaman NSC b0, b2. Eso es ridículo. Entonces haz que tus nombres de variables sean lo más expresivos posible. Y, sí, y entonces sólo veamos una, tal vez una copia impresa. Esa sería una buena idea. Entonces una manzana. Y entonces podemos, por ejemplo, decir un nombre de punto de manzana. Entonces, solo imprimamos eso y veamos qué pasa. Nombre de punto de Apple es un nombre de punto de manzana es Apple, ¿verdad? ¿ Qué tal si imprimimos el contenido de azúcar? Por lo que nuestro contenido es de diez. Hermosa. Entonces, en general, una clase, por lo que en este caso, una clase de fruta se puede utilizar para, para condensar datos en un solo objeto, ¿verdad? Si un plátano o una manzana. Y luego se puede recuperar de esta manera, o también de otras formas, que vamos a ver en conferencias posteriores. Pero todo en todas las clases y objetos son una parte muy importante de Java porque java es un lenguaje de programación orientado a objetos, ¿verdad? Oop, lenguaje de programación orientado a objetos. Y esto es una especie de parte esencial de toda la estructura. Y por eso también es muy importante entenderlo. Vamos a seguir hablando de cosas diferentes con clases. Entonces cosas que tienen que ver con clases y objetos y qué hacer con ellos. Pero es importante que tengas la fundación lista. Entonces, una vez más, si hay algo que no has entendido o tienes alguna pregunta, siéntete libre de preguntar. Y también si hay algo que pienses que se pueda agregar, ya sabes, si dices, bueno, quiero decir, he oído hablar de este tema en alguna parte, pero no lo has hecho. Siéntase libre de preguntarme también. Y o si creo que tal vez me lo he perdido o es un tema importante también. Haré otra conferencia al respecto. Simplemente, sólo asegúrate de preguntar y te volveré a llamar. Pero es importante que esta sea otra de esas cosas como matrices, eso es realmente importante que se entiendan, ¿verdad? Objetos y clases. Son cosa fundacional para entender, ¿verdad? 28. (Java) y lo privada: Bien, bienvenidos de nuevo a la introducción a Java y nos encontramos de nuevo en nuestras clases y objetos. No obstante, en esta ocasión hablaremos de acceso. ¿Qué significa Access? Bueno, echemos un vistazo a nuestra clase de frutas. Entonces en el inicio de la, los atributos que ya tenemos, siempre hemos escrito público, público, público. ¿Y por qué es eso? Bueno, antes que nada, no necesariamente hay que escribir público frente a él porque por defecto siempre es público. No obstante, yo personalmente, esto es sólo una vez más una elección personal, una preferencia personal. Escribo público al frente. Sólo para que quede absolutamente claro. Hay otras dos cosas que podemos escribir. Primero podemos, por ejemplo , privado, y también podemos escribir protegido. Ahora, ¿qué significan esos? Bueno, antes que nada, public significa que esta variable o este atributo es accesible por cualquier clase siempre en cualquier lugar básicamente. Así que en cuanto tenga este archivo Java fruit dot, correcto, puedo acceder a esta cadena, cadena del color. ¿Bien? Entonces, ¿qué es lo que se protege que el medio? Bueno, protegido significa que solo se puede acceder a él en el mismo paquete y desde subclases y superclases. Ahora, ¿qué son las subclases y las superclases? Aprenderemos en una conferencia posterior. Pero en realidad no va a ser tan tarde porque esto es algo que vamos a tener muy pronto en realidad. Sin embargo protegido se va a hablar entonces con un poco más de detalle. Y privado, esto es, creo que el que es más importante casi. Esto significa que solo se puede acceder a esta variable en la propia clase de fruta. Entonces esto, a este atributo sólo se puede acceder en la propia fruta. Entonces sólo en esto, que está alrededor marcado. En ningún otro lugar se puede acceder a esto. Hola. El primer pensamiento que me viene a la mente es también el problema relacionado porque ahora mismo aquí tenemos un punto, un nombre de punto banana. Y es como, Bien, no podemos hacer esto ahora porque el nombre es privado. Entonces está como, oye, como un acceso privado no funciona. No funciona. No puedo acceder a él. Contenido de azúcar. Puedo acceder aunque esté protegido. Pero seguimos en el mismo paquete. ¿Y cómo arreglaríamos esto? Arreglamos esto con getters y setters. Getters y setters los veremos en la próxima conferencia. 29. (Java) Getters y configuradores: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a hablar de getters y setters, como ya se mencionó en la última conferencia. ¿ Cómo vamos a resolver este problema que no podemos acceder a este nombre de atributo privado? Bueno, no hay tema. Vamos a ver cómo vamos a hacer esto. Entonces, antes que nada, vamos a hacer es por demostración, en realidad vamos a hacer privados los tres atributos. Y luego en el primero, para el primer atributo, el nombre, voy a mostrar cómo se hacen manualmente los getters y setters. Y luego para los otros dos, en realidad voy a mostrar un truco muy limpio que nos va a permitir generarlos automáticamente. Entonces queremos una función pública que vaya a devolver nada tan vacío. Y vamos a nombrar este nombre conjunto en, entre paréntesis. Entonces como parámetro vamos a pasar una cadena llamada nombre. La función va a hacer este nombre de punto igual nombre. Y eso no está bien. Así es como queremos hacerlo. ¿ Todo bien? Pero el nombre del método, en este caso, el centro se va a establecer en pequeño, por lo que en minúsculas. Y luego el primero, el primer autor char, primer carácter del nombre de la variable va a ser mayúscula, ¿verdad? Y luego al getter, la geta también va a ser pública, pero esto va a devolver cualquiera que sea el tipo de variable, el tipo de datos, en este caso cadena. Y luego vamos a conseguir nombre y no hay que dar parámetros. Y esto acabaremos de devolver nombre. Y así es lo fácil que es. Setname, getName. Eso es todo. Y ahora lo que podemos hacer, en lugar de hacer nombre, en realidad podemos hacer getName. Y todo está bien. Esto luego devolverá a Apple en este caso. Y aquí podemos hacer lo mismo, setName. Y luego simplemente le pasamos plátano. Y ya está hecho. Y luego pone el nombre a plátano. Ahora tal vez no queremos que otras clases establezcan esto. Entonces por supuesto no necesitamos un setter, pero en este caso realmente vamos a querer ambos. ¿ Y cómo podemos tener este truco que genera automáticamente? Bueno, solo hacemos clic derecho y luego tenemos este show contextos acciones. Vamos a dar click en esto. Y luego aquí vemos crear un getter y setter para el contenido de azúcar. Vamos a hacer clic en esto y de inmediato va a crear exactamente lo que queremos. Básicamente exactamente lo que hemos hecho aquí. Apenas con el contenido de azúcar. Podemos hacer lo mismo por el color. Simplemente vamos a hacer clic con el botón derecho en mostrar contextos, acciones, crear getter y setter para el color. Y luego también hace un getter y setter para el color. Exactamente de esa misma manera lo hemos escrito. Simplemente que se genere automáticamente, lo cual es mucho más fácil, sobre todo si tienes una cantidad loca de atributos que va a ser agradable. Y entonces sólo se nos puede establecer contenido más corto 15. Y todos están contentos, no hay más errores. Y funciona. Y esta es la belleza o la magia de los getters y setters. Entonces, sí. 30. (Java) Packets: Bien, continuemos con la introducción a Java. Y en esta conferencia va a ser una conferencia corta donde vamos a hablar de paquetes. Entonces ya hemos visto que nuestro propio paquete aquí, básicamente es como una carpeta, ¿verdad? Entonces en nuestro paquete ahora mismo tenemos la clase de frutas y la clase principal. Y hay que pensarlo como una carpeta en un directorio. Eso es básicamente todo lo que es. Y si entonces importamos algo, ya lo has visto. Entonces, por ejemplo, hemos importado java.util, util dot a realista. Esto es algo que hemos importado cuando estábamos hablando de ArrayLists. Y entonces esto nos permitió usar el ArrayList en este caso. Y había otras cosas como el HashMap, donde también tuvimos que importar utilidad para el HashMap. Entonces el java dot util es básicamente el nombre del paquete. Y el HashMap es una clase porque esta es de la que realmente nos han preocupado los objetos creados. Entonces, ¿cómo podemos tal vez hacer esto un poco más fácil? Bueno, en realidad podemos decir en lugar de solo importar la lista de matrices y el HashMap, en realidad podemos hacer una tienda y luego va a importar todo de este paquete util. Entonces ahora tenemos el HashMap, HashMaps y nada se importa con el ArrayList. Y nada se vuelve importante porque todas las cosas que hay en Utah en realidad van a ser importantes con las estrellas para que podamos reemplazar eso. Y todo el paquete es así de importante, ¿verdad? Entonces básicamente eso es todo lo que hay que decir de los paquetes. No hay nada particularmente loco en ellos ni extraño. Si tienes tal vez algunos paquetes o bibliotecas de otras personas que lo descargues, entonces tal vez tengas que investigar, bien, ¿dónde está algo? Pero por lo general esto se importa automáticamente. Y si no lo hace, siempre puedes hacerlo de forma explícita y manual. Pero por lo general se vuelve importante automáticamente. Pero eso es sólo una cosa muy pequeña que quiero decir sobre los paquetes. Sí. 31. (Java) Inherencia: Bien, continuemos con la introducción a Java. Y en esta conferencia, vamos a hablar de herencia. Herencia, un tema muy interesante. Y para esto, en realidad vamos a crear algunas clases más. Primero, vamos a crear una clase de animales. Un animal que tiene sentido, ¿verdad? ¿Qué tiene? Bueno, tal vez tenemos, ¿tenemos una cuerda protegida y esa va a ser la especie de clase, verdad? Entonces esta es la especie del animal. Entonces lo que sea que cambie que tenemos un pájaro, ya sabes, cocodrilo. Y esto es todo lo que vamos a hacer ahora mismo, justo en la clase de animales. Pero ahora queremos tener algo que sea un animal. Pero eso es un poco más específico. Así que posiblemente podríamos pensar en es un perro. Esa es una buena idea. Vamos a crear un perro de clase. Ahora. ¿Cómo se relaciona este perro con un animal? Bueno, quiero decir, el perro es un animal, ¿verdad? Entonces, ¿cómo podemos, cómo podemos relacionar la clase de perros con la clase animal? Bueno, detrás de la clase escribimos extiende y luego animal. Y de esta manera, el perro ahora también es un animal. Esto es lo que se llama herencia. Así que el perro hereda del animal. Y también podemos decir es, perro es una subclase de animal. Y animal es la superclase. La superclase es básicamente el clúster que está arriba. El perro. Y el perro es una subclase de animal porque está en comillas entre comillas debajo del animal en herencia. Entonces tal vez lo que el, un animal realmente puede hacer Son algunas cosas tal vez un animal realmente pueda correr. Vamos a tener un método que se llama run y solo va a imprimir este inicio. La especie está corriendo. Eso es, eso es todo lo que hace, ¿verdad? Y entonces tal vez tengamos una segunda clase. Entonces me van a correr, eso va a ser tal vez comer. Entonces sólo va a imprimirse de esta especie que se está comiendo. ¿Bien? Eso es, eso es todo lo que un animal puede hacer en nuestro modelo ahora mismo. Ahora el perro lo hará, puede adoptar, hacer. Bueno, antes que nada, lo que vamos a hacer es que vamos a hacer un constructor para el perro. Esa va a ser esta especie. Y entonces lo primero que vas a pensar tal vez es, esperar un segundo. Ni siquiera hemos declarado especies en perro. Exactamente. Pero perro también tiene un animal. Entonces, todo lo que un animal puede hacer, un doctor también puede hacer. Eso es también todos los atributos que tiene. El perro también tiene. Por lo que todos los atributos que tiene la clase animal son accesibles en el perro siempre y cuando sea público o protegido. Si es privado, entonces sólo esta clase puede acceder a ella, como ya hemos comentado. Así que ahora vamos a crear un nuevo perro. Entonces tal vez perro, Fluffy es un perro nuevo. Ahora, ¿qué puede hacer mullido? Bueno, mullido puede correr y esponjoso puede comer, ¿verdad? Porque el, porque esto, estas son clases, estos son métodos, perdón que un animal pueda hacer. Y debido a que Fluffy es un en un animal, porque el perro hereda del animal, mullido puede hacer todas las cosas que un animal puede hacer. Para que pueda correr y pueda comer. Empecemos con esto y veamos qué pasa. Entonces el perro está corriendo y el perro está comiendo. Eso funciona. No hay problemas en absoluto. Eso es bastante bueno. Ahora bien, ¿qué otra cosa puede hacer un perro? Así que podría hacer y puede hacer es ladrar. Eso tiene sentido. Bueno, vamos a hacer un sistema fuera. Imprimir línea de tal vez Lobo, Lobo, me gusta. Y todo esto está bien y bien. Pero tal vez en realidad también queremos un gato. Así que vamos a crear una nueva clase Java que va a ser un gato. El scat también se extiende animal. Y aquí vamos a tener el mismo constructor es esta especie es igual a gato. Y entonces un gato puede hacer un maullido de vacío público. Y también vamos a sistema fuera, línea de impresión maullido. Ahora mismo son todo está completo. Entonces vamos a dejar corteza esponjosa aquí. Mullido puede ladrar porque es un perro, no porque sea un animal. Y cuando hagamos un, un objeto, ese va a ser el gato. Entonces le vamos a llamar bigotes, digamos este sombrero. Y luego los bigotes, por supuesto, también pueden correr. Los bigotes también pueden comer. Y los bigotes no pueden ladrar, pero los bigotes pueden maullar. Y luego veamos qué pasa aquí. Perro está corriendo, perro está comiendo, guau, guau, gato está corriendo, gato está comiendo y maullar. Entonces aquí hemos visto que un perro, el perro de clase, hereda del animal. Y la clase Cat también hereda de animal. Y luego cada método que el animal pueda hacer en este caso. Y también todos sus atributos protegidos y públicos son heredados por la subclase, en este caso, perro y gato. Y esto puede extenderse hacia abajo cuantos niveles quieras. Entonces, en teoría, podríamos por ejemplo tener otra clase, Chihuahua, que se extiende perro. Y entonces un Chihuahua es a la vez un perro y un animal. Podemos cambiar esto por mucho que queramos. En este caso, probablemente sea suficiente un nivel. Ahora bien, este es el, digamos los fundamentos de la herencia. Hay pocas cosas más interesantes que podamos hacer y cambiar y que hayan sucedido. Y vamos a verlas en conferencias posteriores. Pero esto es lo básico de la herencia, también un tema muy importante en Java y en, en la programación en general. También una herramienta muy poderosa. Y si. 32. (Java) Méodos estáticos y no estáticos: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a hablar de la palabra clave estática. Entonces vamos a resolver el misterio. ¿ Qué significa esta palabra clave estática? Y para eso, vamos a entrar a nuestra clase de animales. Y cualquiera aquí, en realidad vamos a agregar un nuevo atributo, que va a ser un entero estático público. Y vamos a llamar a este num animales. Y vamos a ponerlo a 0 en el principio. ¿ Y qué hace ahora este entero? Al igual que ¿qué tiene de especial? Nada ha cambiado realmente. Entonces pensemos en solo crear un nuevo animal, ¿verdad? Tan nuevo animal, así como eso. Y entonces tal vez podríamos simplemente imprimir el nuevo entero estático. Entonces vamos a hacer una y lo primero que vamos a notar es que en realidad no aparece en la sugerencia. Eso es un poco raro, ¿verdad? Entonces si hacemos num animales, en realidad vamos a conseguir este punto culminante y va a ser como, hey, esta en realidad no es la mejor manera de hacer esto. Porque cómo accedemos a esto, la variable estática en realidad no es con una instancia, por lo que con este objeto, sino con la propia clase. Entonces lo que vamos a escribir es si vamos a escribir el nombre de clase Animal dot num animals. Por lo que en realidad se accede a esto con el nombre de la clase, no un objeto o la instancia de esa clase. Entonces cuando ejecutemos esto, vamos a ver que esto es 0. Y posiblemente podrías imaginar que lo que queremos es algo así como, bueno, cada vez que hago un animal nuevo, lo que vamos a hacer es que vamos a aumentar ese número de animales para que sepamos cuántos animales hay actualmente en existencia, digamos. Por lo que sólo vamos a una especie de secuestrar al constructor predeterminado. Y en ella sólo vamos a hacer num animales plus, plus. Entonces solo vamos a aumentar el, este entero cada vez que creemos un nuevo animal. Entonces después de que hayamos hecho este en num animales, debería escribirse A1. A ver. Y por supuesto un lo que uno está dentro sobre num animales. Ahora esto sería un atributo estático estático o un campo estático. Ahora, en realidad también podemos hacer una función o método estático, lo siento, método estático. Y lo que vamos a hacer es realmente vamos a hacer algo que se usa con bastante frecuencia como método estático. Y eso va a ser para generar un animal, ¿no? Y entonces sólo vamos a devolver un nuevo animal. Entonces, por ejemplo, tal vez en realidad no queremos que la gente use el constructor. A lo mejor queremos hacer todo tipo de otras cosas. Y entonces tenemos este método estático donde básicamente podemos crear un nuevo animal. Entonces lo que podemos hacer es, digamos que tenemos animal b Eso no va a ser animal nuevo, pero eso va a ser animal, perro genera animal. Y eso simplemente devuelve un nuevo animal. Y si imprimimos el num animales después de eso, vamos a tener que hacerlo. Porque dentro de este método, es decir, también se llamó a la construcción. Entonces la palabra clave estática, también se puede pensar, piense en eso como una especie de variable global. Porque no importa cuántos o qué animal tenga, el num animal no tiene nada que ver con un animal específico, ¿verdad? Es, el único cambio en esta variable realmente, es que aumenta con cada animal. Pero no es diferente para a y b, ¿verdad? Por lo que esto es una especie de variable global y no específica un cierto tipo de objeto que se instancian. Entonces sí, esa es la palabra clave estática. Y sí. 33. (Java) Polymorphism: Bien, continuemos con la introducción a Java. Y en esta conferencia, vamos a hablar de polimorfismo. Ahora, lo primero es que suena increíblemente complicado, pero en realidad es muy fácil. Una vez que lo entiendas. Vamos a volver a entrar en la clase de animales. Y en realidad vamos a cambiar esto a es comer algo porque queremos secuestrar el método de comer ahora mismo. Lo que vamos a hacer es que en realidad vamos a crear un nuevo método tanto en el perro como en el gato. Entonces va a haber un vacío público, come. Y esto entonces va a ser sistema.Fuera, imprima por ejemplo Esta especie de inicio es ahora, o está comiendo un bistec. Porque un, tal vez un perro está comiendo un bistec y que el gato tal vez esté bebiendo algo de leche. A mí me gusta. Eso es bastante bueno. Bien, ahora, ¿qué esperamos aquí cuando nosotros, cuando llamamos a las funciones de comer? Bueno, vamos a ver qué pasa. ¿Qué va a pasar? Este perro está comiendo un bistec y el gato está tomando algo de leche. Entonces lo que pasa es que la función Comer del animal va a estar fría, pero la función Comer del perro, y como puedes ver ahí, comer en clase animal sobrescribe, ¿verdad? Entonces esta, esta clase, este método aquí en esta clase. Entonces comen, en realidad sobrescribe el calor en la clase animal. Porque éste está más cerca de lo que aquí hemos declarado. Entonces esto es básicamente, esto es todo lo que es al polimorfismo. Entonces los mismos métodos en una súper y una subclase de la superclase estando en el animal, y una subclase siendo el perro y el gato, ¿verdad? Puedes tener el mismo método en ambos y que sean completamente diferentes. En este caso, no es tan diferente, pero podrían ser completamente diferentes. Y sin embargo podemos tener a los dos. Y el acceso siempre está en la subclase. Entonces sobre el que hemos especificado aquí. Pero el polimorfismo, en realidad es muy sencillo. El mismo método en la súper y una subclase. Puedes declararlos de manera completamente diferente. Pueden hacer cosas completamente diferentes. Y todavía puede tener a los dos, ¿verdad? Eso fue por polimorfismo. Entonces, sí. 34. (Java) clases y métodos abstractos en Java en Java: Muy bien, sigamos con la introducción de Java. Y en esta conferencia vamos a hablar de clases y métodos abstractos. Entonces, ¿qué es una clase abstracta o un método abstracto? Bueno, vamos a ver haciendo de éste una, una clase abstracta. Entonces vamos a tener animal de clase abstracta pública. ¿ Y ahora qué hace esto? Bueno, una clase abstracta no puede tener una instancia. Porque cuando lo pensamos, un animal, bueno, ¿qué es un animal? Bueno, quiero decir, tienes que especificar qué tipo de animal quieres, ¿verdad? Entonces tienes un perro es un animal, un guepardo es un animal. Pero por ejemplo, una computadora no es un animal, ¿verdad? Entonces una clase abstracta puede tener métodos implementados, y también puede tener métodos abstractos. Entonces ahora mismo, lo que vamos a hacer es realmente vamos a tener este, el método IJ, el resumen. Y entonces no queremos precisar nada aquí, así que no queremos declararlo. Básicamente no lo dejaremos sin implementar y genuinamente solo que este vacío abstracto público coma. Ahora lo bueno es que tanto nuestros perros nuestros gatos ya implementaron este método de comer, ¿verdad? Y como se puede ver aquí con este nuevo símbolo aquí, que básicamente significa que este es un método abstracto que las subclases, así animal como las subclases de superclase que heredan de Animal tienen que implementar ¿verdad? Ahora también podemos eliminar esto. Y luego inmediatamente vemos, oye, hay que tener implementado este método. Entonces podemos, por ejemplo, decir implementar métodos. Y dice IID. Entonces sí, seguro. No necesitamos la anulación, ciertamente en este caso, pero también podemos volver a lo que teníamos anteriormente y que todo está bien. Ahora si entramos aquí, ahora, lo que vamos a tener es en este caso, el animal todavía se puede crear como objeto si es un cad. No obstante, si tenemos un animal a, oh, lo siento, un animal a, y queremos hacer un animal nuevo. Y va a ser como no, eso no funciona porque una clase abstracta no puede ser instanciada. Lo que simplemente significa que no podemos tener un objeto de esta clase. No podemos crear una nueva clase con esto. Entonces en este caso entonces también, la clase abstracta puede tener ambos los métodos abstractos que no están implementados, pero tienen que luego ser implementados por todas las, todas las subclases. Pero podemos, como se puede ver, también el método de ejecución que se implementa y que el perro y el gato solo pueden llamar también. De acuerdo, así que sólo vamos a ejecutar esto una vez más. Y como antes, todo funciona perfectamente bien. El perro comiendo un bistec, el gato está bebiendo algo de leche. Eso sigue funcionando perfectamente bien y sigue siendo perfectamente válido. El asunto que estoy con una clase abstracta es simplemente que podemos tener estos métodos no implementados los cuales son, que pueden ser realmente útiles. Y además no podemos tener una instancia de esta clase, que cuando lo piensas realmente no tiene sentido porque ¿qué es un animal? Y animal es solo el concepto cuando hablamos y este es un animal. O sea, no tiene sentido cuando piensas en ello. Y así sí, esto son clases y métodos abstractos. Entonces sí. 35. (Java) interfaces: Bien, continuemos con la introducción a Java. Y en esta conferencia vamos a hablar de interfaces. Entonces, ¿qué hace una interfaz? Bueno, antes que nada, vamos a crear uno. Así que vamos a ir a Nueva y luego a la clase Java, y luego vamos a seleccionar la interfaz. Y a esta interfaz la llamaremos una plática. Hablo de interfaces es, así suele ser como se le pondría nombre a una interfaz. Entonces, o tienes una I mayúscula al principio o terminas el nombre de la interfaz con interfaz. Esta es una de dos formas. Prefiero el yo al frente de lo que suele ser muy claro. Entonces, ¿qué es una interfaz? Una interfaz es básicamente casi como una clase abstracta, ¿verdad? Entonces, si volvemos al animal aquí mismo, este era un animal. Esto es lo que es una clase abstracta en este caso. Y aquí teníamos un método abstracto, cada uno el cual fue implementado por las subclases para animal. Pero también teníamos este método de ejecución, que en realidad era, en realidad teníamos algo ahí dentro que no teníamos que implementar necesariamente. Y podríamos usar la esta clase del método de la clase Animal. Ahora bien, esto no funciona en interfaces. Las interfaces en realidad solo tienen métodos abstractos entre comillas. Por lo que no podemos implementar nada dentro de esto. Si por ejemplo tenemos un método de conversación vacío, esto tiene sentido, entonces en realidad no podemos hacer nada en él, ¿verdad? No podemos decir imprimir y luego hacer algo como Oye, habla, ¿verdad? Eso no funciona. Porque como puedes ver aquí, la interfaz, los métodos abstractos no pueden tener un cuerpo y este es el cuerpo. Así que en realidad podemos implementar cualquier cosa. Siempre hay que declararlos. Sólo pueden ser métodos no implementados. Entonces, por ejemplo, podríamos tener una charla de viaje. A lo mejor. En realidad, vamos, mantengamos la charla del vacío ahora mismo. Eso podría ser lo más interesante. Entonces, ¿qué podemos hacer con platicar, verdad? Entonces la idea aquí es que la campana corra, por ejemplo podríamos imaginar tal vez un juego de rol, ¿verdad? Así que de nuevo, podemos dar vueltas y se puede hablar con la gente, pero también se puede hablar también con ciertos objetos. Y eso no es realmente una plática, entonces es más como una momia. El personaje dice algo, pero esta es una conceptualización interesante para ello. Entonces podríamos imaginar tal vez incluso que tenemos un perro que en nuestro RPG ahora mismo en nuestro juego de rol imaginario, que podamos hablar con este perro. Y eso es todo genial. Pero ahora mismo este se extiende animal. ¿Cómo podemos entonces agregar el en la interfaz? Bueno, sólo vamos a escribir implementos y luego lo hacemos. Hablé de ahora vamos a conseguir una flecha grande aquí porque en realidad tenemos que implementar una vez más, el método talk. Lo mismo con eso. Fue con el animal abstracto. Y vamos a hacer Implementar Métodos. Va a ser Talk, Sí, cuando implemente esto y todo vuelva a estar genial. Entonces lo que podemos hacer es decir, por ejemplo, la línea system.out.print. Entonces declaramos algo en esto. En realidad implementamos algo en este método de plática. Entonces por ejemplo podríamos decir, a este perro le gustas de verdad, le gustas mucho. Mira, ahí tienes. Y ahora lo que podemos hacer es que podríamos decir, bueno, podemos ir con, podemos crear un nuevo perro. Entonces, por ejemplo, volvamos a hacer esponjoso, puede que no sea esponjoso. Ahí vas. Que es un perro nuevo. Entonces esponjoso puede hablar. Eso no es un problema. Hagámoslo. Y vamos con esto. A este doctor le gustas mucho, eso es un poco agradable. Sin embargo, tal vez como esta persona dando vueltas, ¿no? Entonces tengo este personaje RPG y quiero hablar con tal vez haya 100 clases diferentes que puedan hablarme. Puede haber un perro o un gato. Podría haber un ser humano, ¿verdad? Otra persona, otro personaje, un NPC. Podrían ser plantas o árboles con los que quiero tener una interacción. Y entonces esto por supuesto, no funciona porque no sé en qué clases se implementa esta interfaz, ¿verdad? Yo solo sé, bien, sé que en cuanto algo sea un ataque, puedo hablar con él. Entonces lo que puedo decir es, Bien, quiero y hablo de eso, y ese va a ser el perro. Y ese va a ser un perro nuevo. Porque el perro es a la vez un perro y un animal. Y de una que hablo ahora mismo. Y entonces si luego voy con punto oscuro, puedo por ejemplo no ladrar porque ahora mismo perro tal vez no es el mejor nombre para ello. Digamos solo una, una camisa oscura o esco con esponjosa otra vez, ¿por qué no esponjosa? Pero sabemos que i Fluffy, Fluffy es un caminable. Y luego hacemos esponjoso y luego esponjoso podemos hablar. Y si luego ejecutamos esto, en realidad va a decir que le gustas mucho a este doctor porque es un perro. Pero solo nos preocupa que tengamos ojo Taco Bell. En realidad no nos importa lo que lo siento. En realidad no nos importa lo que esté escrito aquí. No nos importa si es un perro, un planeado, un gato, un NPC. Sólo sabemos, bien, esto no es ataqueable. Esto es definitivamente un ojo Taco Bell. Y pase lo que pase aquí, bien, Ya sea que no sea, como dije, es un perro o una planta. Sabemos que el método de conversación siempre se implementa sobre esto de lo que hablo. Entonces básicamente, también podrías imaginar la interfaz como algo así como un, como un plano para cierta cosa. En este caso, en realidad lo usamos para tener un método muy específico implementado en muchas cosas diferentes, ¿verdad? Entonces como dije, también podríamos imaginar tener esto en la fruta o en el gato, o en todo tipo de otras cosas. Y puede implementar la interfaz, entonces es capaz de ser, por ejemplo, interactuado con. Ahora claro, hay muchas cosas diferentes que tendrías que hacer para facilitarlo. Eso es sólo un ejemplo aquí. Para la interfaz. Las interfaces pueden ser muy, muy poderosas. Y otra nota aquí es en este caso que en realidad hemos extendido a este perro, se extiende animal para que tengamos una, tenemos herencia y además implementamos una interfaz. Ahora, podemos tener múltiples interfaces implementadas en una clase, pero no podemos tener múltiples, múltiples clases desde las que se extiende una clase. Entonces esto también es muy importante tener en cuenta, podemos tener 1,000 interfaces diferentes, básicamente, teniendo esto implementado en un nodo de clase. Tienes que, sin embargo, implementar cada método declarado dentro de la interfaz en la clase que lo implementa. Entonces eso es muy importante tener en cuenta. Sí, esa es una introducción muy corta aquí a las interfaces. Una vez más, si hay alguna duda, siéntete libre de preguntar y responderé a ellas. Y si. 36. (Java) Enums: Muy bien, sigamos con la introducción de Java y esta conferencia. Va a ser una rápida. Vamos a hablar de enumeraciones. Entonces enums, ¿qué son las enums? yams son estructuras de datos muy interesantes que podemos utilizar para bien básicamente modelar algunas cosas interesantes. Por lo que hay dos formas en que podemos implementar enums. Entonces lo primero que vamos a hacer es en realidad en una clase. En este caso, sólo lo vamos a hacer en la cláusula principal. Y vamos a implementar una enumeración llamada dificultad. Cómo implementamos esto es leyendo lo suficiente, entonces el nombre de la básicamente M es abreviado de enumeración básicamente. Y queremos tener ENUM que el nombre de la enum y luego corchetes rizados. Y en esos corchetes rizados vamos a escribir las cosas que queremos enumerar básicamente. Y tenemos dificultad fácil, tenemos dificultad media, y hemos escuchado dificultad. Y eso es todo. Es así como declaramos una enumeración. Y ahora esto es básicamente un tipo de datos que podemos usar para crear nuevos objetos del tipo dificultad. Entonces ahora mismo podemos hacer dificultad si incluso somos algo así como dificultad de juego, ¿ verdad? Estar completamente. Entonces cuando pensamos en un juego, por ejemplo, podemos tener un juego. Serás un modo fácil, medio o duro. Y entonces lo que podemos hacer es que podemos tener dificultad juego dificultad, mal a punto de dificultad. Ahora lo grandioso es que los valores de esta enum en realidad se escriben como fáciles, medianos, y duros. Entonces no tenemos que preocuparnos de algo como, ya sabes, puedes pensar en una dificultad tener 01234 y estás como, bien, ¿qué es lo que es la dificultad? Uno tendría dificultad para tal vez, ya sabes, en cuatro meses cuando regresas al proyecto, no te acuerdas, pero dificultad, fácil. Eso es fácil de recordar. Y esto también funciona, ya sabes, puedes hacer si afirmaciones con él, ya sabes, dificultad de juego es igual y entonces puedes decir dificultad fácil. Y luego puedes hacer algo, ya sabes, puedes ser como, oye, las dificultades fáciles. Entonces tal vez el jugador tiene más salud o más armadura o los enemigos tienen menos ataque, cosas así. Y las enumeraciones aquí son realmente buenas porque no sólo son fáciles, fáciles implementar, implementables y también fácilmente cambiables, ¿verdad? Entonces fácilmente podemos decir algo, bueno, hagamos un caballo también, y nada cambia. Es posible que sólo tengamos que tener otra declaración if u otro caso en nuestra declaración de cambio que queremos. Y sí, así que esta es una forma de tener esta enum e implementada. También podemos hacer una nueva clase. Y ahí podemos elegir una enumeración. Y por ejemplo, podemos hacer algo así como, no lo sé. A lo mejor digamos tomar dificultad. Y ahora en realidad vamos a borrar este. Vamos a eliminar esta dificultad. Y aquí tenemos una enumeración pública, y esto funciona de la misma manera. Por lo que tenemos fácil, medio, duro. Y luego Horace por ejemplo. Y esto funciona igual. Tan dificultad, si su nueva dificultad, lo siento, no nueva dificultad, eso es ridículo. Por supuesto dificultad, por ejemplo, fácil. Y eso es todo. Entonces esto es básicamente lo mismo que aquí, justo aquí formaba parte de la clase principal. Y posiblemente entonces lo que harías es que tendrías que acceder a ella por tener siempre una dificultad principal.out. Esto es a veces, es mejor tener esto en su propio archivo. A veces es mejor tenerlo de lado de otra clase. Es decir, yo diría mayormente preferencia. Pero también la conciencia situacional es muy importante. Dependen de la frecuencia con que se utilice en otras clases. Y si tu nombre de clase tan largo, ya sabes, puede llegar a ser bastante largo. Se pueden obtener declaraciones bastante largas de eso. Pero sí, esta es una enumeración muy útil para muchas cosas. Y sí. 37. (Java) Excepciones y prueba y prueba para captar la declaración de: Bien, continuemos con la introducción a Java. En esta conferencia, vamos a hablar excepciones y tratar de atrapar. Ahora bien, ¿qué hace una excepción y qué estamos tratando y atrapando? Vamos a ver esto muy pronto. Así que antes que nada, he preparado aquí una matriz entera. Y lo que vamos a hacer es que solo vamos a hacer sistema de salida línea de impresión y luego vamos a decir números. Y luego dos. Ahora bien, esto por supuesto no funciona porque no hay número de índice dos en esta matriz. Entonces, si ejecutamos este código, obtenemos una excepción. Ahora bien, esta excepción simplemente significa que el, la matriz está fuera de límites. Y por qué, ¿qué hace una excepción? La excepción es básicamente una tasa de error. Es decir, eso no tiene por qué chocar el programa. Entonces si en este caso el programa se estrellaría, si tenemos algo así. Entonces, por ejemplo, oh, lo siento. Si tenemos algo como HelloWorld quizá escrito aquí, ¿verdad? Entonces escribiríamos Hello World. Entonces todo después del error no es o la excepción en este caso no es fría. Bien, está bien. Ahora, vamos a hacer es que vamos a implementar nuestro propio método pequeño y rápido aquí, que va a ser un flotador estático público. Y eso va a dividir, va a dividir a por B. Y solo vamos a devolver a dividido por b. Ahora, como algunos de ustedes sabrán, si dividen por cero, esa es una muy mala idea porque eso no funciona. Y podemos verificar esto con anticipación. Entonces podemos decir, Oye, si b es igual a cero, entonces lanza nuevo y luego excepción. Y luego en esta excepción, realidad podemos escribir algunas cosas. Entonces podemos, por ejemplo, no se puede dividir por cero. ¿Verdad? Ahora nos va a arrojar un error. Porque lo que realmente quiere saber es que este método arroja una excepción, ¿verdad? Así que aquí en realidad tenemos que escribir lanza excepción, excepción. Ahí vas. Entonces todo funciona bien. Porque necesita saber, oye, este método de división en realidad puede lanzar una excepción. Esto es muy importante. Entonces, si entonces intentamos usarlo, digamos por ejemplo queremos dividir diez por cinco, algo así, ¿verdad? Y van a ser como ocho. No funciona porque no hemos manejado esta excepción. ¿Y esta excepción? Está bien, entonces en realidad también queremos lanzar una excepción para el método principal, solo para que quede todo claro. Ahora bien, si hacemos esto ahora mismo, esto sólo va a funcionar porque solo va a devolver un dos porque no te pasó nada. O si vas a hacer un cero ahí dentro, entonces de repente lanzamos una excepción. Y esa excepción, lanzamos excepción. Y solo dice que no se puede dividir por cero. Eso es realmente lo interesante de ello. Pero lo que es aún más interesante es esto. Así que en realidad podemos encapsular esto mediante una declaración de prueba y error, ¿verdad? Entonces podemos dejar de lanzar esta excepción para el método principal y realmente decir, bueno, bien, probemos esto, la palabra clave try y luego las corchetes. Y luego tenemos captura. Y dentro de esto vamos a tener excepción e porque esto es lo que queremos atrapar y esto es lo que vamos a probar. Así que vamos a tratar de dividir aquí, ¿verdad? Así que vamos a formatear esto rápidamente. Muy bonito. Entonces podemos tener varios, Digamos por ejemplo 10/5, 40/4, y luego 22/0. Ahora esto va a ser, esto simplemente va a funcionar. Esto va a ser dos, esto va a ser un diez, y entonces esta es la excepción. Excepto, ahí tienes. Déjame coger esta excepción. De hecho, podemos producir esto, ¿verdad? Entonces podemos decir sistema de salida de línea de impresión de puntos. Y podríamos decir E, por ejemplo, a la derecha. Entonces solo da salida a la excepción. Y luego después tal vez lo que queremos hacer es system.out.print, line dot, y luego helloworld. ¿Verdad? Entonces veamos qué pasa aquí cuando ejecutamos esto. Bueno, lo que va a pasar es que vamos a hacer esto. Vamos a imprimir dos, vamos a imprimir diez. Y entonces ocurre la excepción, ¿verdad? No se puede dividir por cero. Pero debido a que lo pusimos en una declaración try and catch, ¿qué vino después? Después, en realidad todavía ejecutado, ¿verdad? Y este es realmente el poder del try and catch uno. Porque si no hubiéramos tratado primero de atraparlo o atraparlo en este caso, entonces este no habría sido llamado este método en este caso. Pero ha sido frío porque hemos hecho que sea seguro llamar. Entonces cuando se lanza una excepción, podemos intentar atraparla. Por eso es importante saber que en un método específico arroja una excepción. Porque si sabes lo que esto, entonces siempre podemos ponerlo en una declaración try and catch. Y entonces aunque haya una excepción lanzada, aún podemos continuar en el programa no solo se bloquea. Eso es como una de las cosas más importantes. Pero aún tenemos la posibilidad de imprimir el error de la excepción en este caso. Y aún así llegamos a conocer, bien, qué pasó aquí. Así que esa es realmente una gran manera de básicamente asegurarse de que el código es sólido y que el programa no solo se bloquea. Porque piénsalo así. Si cada vez que le pasa algo malo al programa, se lanzan algunas excepciones. Cada vez que eso sucede, el programa presiona. Tendríamos muchos programas que se estrellarían constantemente porque siempre pueden ser algo que sucede. Y sobre todo si tomas entrada de usuario, podrías preguntarle al usuario, oye, dame un número para dividir, ¿verdad? Entonces, por ejemplo, la calculadora, ¿verdad? Yo digo, bueno, 22/0 el programa BAM se bloquea. Eso no es lo que queremos. Por eso podemos captar las excepciones antes de que puedan chocar el programa. Entonces sí, eso es algo para excepciones y tratar de atrapar y sí. 38. (Java) Lambda Expresiones Java Lambda: Muy bien, sigamos con la introducción de Java. Y en esta conferencia, vamos a hablar de expresiones lambda. Ahora, ya he preparado básicamente todo el archivo Java aquí porque esto es un poco más complicado. Y quiero sólo pasar por algunos de los ejemplos que he escrito aquí. Y sólo vamos a pasar por el código uno por uno. Esto también está disponible como recurso. Este código en particular, porque es más importante que lo entiendas en lugar de que me veas escribirlo. Creo que eso es más apropiado en este caso. Entonces, en primer lugar, tenemos una lista de enteros aquí mismo, y solo agregamos algunos números. Y lo que podemos hacer entonces con una expresión lambda, por ejemplo, es que convertimos esto en un arroyo. Entonces hacemos número start stream, ¿verdad? Esto sólo lo convierte en una corriente de números. Y entonces podemos usar algo llamado la función de mapa. Y la función de mapa en realidad toma algo que se ve realmente raro, ¿verdad? Entonces esta en este caso sería una función, ¿verdad? Entonces hablamos mucho de métodos, y ahora hablamos de funciones. Y un método es básicamente algo que pertenece a un objeto o una clase. Y una función es una especie de método de flujo libre, por así decirlo. Por lo que no pertenece a una clase en particular. Y en este caso lo que queremos es decir, vale, entonces cuando usamos el método de mapa, lo que pasa es que toma una función y esta es la función. Y aplica esta función a cada uno de los miembros o cada uno de los, cada uno de los valores almacenados en esta lista, en este caso. Entonces básicamente cada uno de los números, correcto, va a hacerlo, así que básicamente es como for-loop. En este caso. Va a decir OK para cada uno de los números, ¿verdad? Vamos a decir, está bien, esto es irado. Ahora, esto es yo, esto es yo, esto es yo, esto, quiero hacer eso. Y sólo vamos a llamar a i plus igual a cuatro. Entonces, ¿qué debe pasar cuando lo pensamos así? Y entonces el resto aquí es sólo para enumerar. Entonces sólo escribimos eso de nuevo en números. Entonces cuando llamamos a esto aquí, sólo esperamos, ya sabes, un 10021069420. Y entonces aquí esperamos todos esos números pero sumó cuatro. Entonces sólo vamos a llamar a esto y vamos a mirar las dos primeras líneas aquí mismo. Y como puedes ver que E, cada valor dentro de la lista, le agregamos cuatro. Y esa es una forma realmente fácil de hacerlo en básicamente una línea de código, que es increíblemente eficiente cuando se mira a escribir código. Ahora, cuanto más grande y grande sea la colección scat o tus listas, más debes tener cuidado con las expresiones lambda suelen ser, por lo general hay no debería haber un problema. Entonces hay muchas cosas diferentes que puedes hacer con esto. Pero vamos a ver ahora mismo son las funciones como variables, ¿verdad? Entonces esto es algo que es una locura. Son cinco cosas de las que quiero hablar en este momento, que es una vez proveedores, cuando los consumidores llaman a dobles runnable y luego funciona. Y así hemos visto un ejemplo de una función aquí mismo, pero primero vamos a empezar con los proveedores. Por lo que un proveedor es básicamente una variable que ha almacenado en ella, una función que ha almacenado en ella. Una función sin parámetro sino un valor de retorno, ¿verdad? Y podríamos escribir esto, por ejemplo, así, ¿verdad? Abrir paréntesis sin nada en ella. Entonces no hay ningún parámetro. Y luego tienes esta flecha y luego x. Así que aquí declaramos un proveedor, solo lo llamo proveedor, y entonces esto es igual a esta expresión. Esta sería una expresión lambda, y esto es básicamente un proveedor. Entonces un proveedor, como dije, tiene un valor de retorno, en este caso un valor entero, y devuelve diez. Si quieres saber para qué es el proveedor que nos tiene que suministrar el proveedor, digamos, entonces solo usamos el método get en el propio proveedor. Entonces cuando miramos la tercera fila justo aquí, tenemos un diez que se devuelve usando el get. Y esto es genial porque en este caso realmente podemos almacenar una función dentro de una tasa variable. Entonces el proveedor aquí, también podríamos pasar a un método y podríamos hacer cosas con él. Eso es, esa es la, las posibilidades son casi infinitas, ¿ verdad? Cuando se piensa en ello. También tenemos un consumidor y un consumidor tiene un parámetro pero sin valor de retorno. Podríamos escribir esto así. X va a nada. Entonces en este caso tenemos un consumidor que es, tiene un valor de cadena. Y esto se escribe entonces así. Por lo que este S va a e función aquí. Y entonces podemos hacer punto consumidor excepto y luego simplemente pasar una cadena. En este caso es HelloWorld. Y si ejecutamos esto, entonces vemos helloworld. Pero también podríamos pasar cualquier cosa que realmente queramos aquí. Entonces esa es una gran manera de usar eso. Entonces hay un callable. Ahora un callable no tiene parámetros sino un valor de retorno y arroja una excepción. Entonces por eso nosotros, en este caso, realidad hemos rodeado de una declaración try and catch. Porque si no lo hacemos, si solo hacemos esto, entonces va a ser como a la excepción a la firma del método. Pero no queremos que tal vez nuestro método principal tenga la excepción de lanzamientos. Es por eso que estamos como OK, solo inténtalo y llama. Ahora esto, en este caso no hace nada porque lanzamos una excepción. Y creo que coge esto antes. Y sí, esto sería un callable. Tan callable, básicamente es lo mismo que un proveedor, pero también arroja una excepción. Podría ser útil a veces realmente depende de lo que estés haciendo. Siguiente cosa. Un runnable. Un runnable es una función sin métodos y sin valores de retorno. Por lo que en este caso, el subcampeón también podría escribirse así. Y entonces el runnable es sólo el paréntesis abierto sin nada en él. Y luego sólo haciendo algo. Y se puede ejecutar simplemente haciendo la carrera, llamando al método de ejecución. Muy fácil. Esto es lo similar a sólo un método de vacío normal, ¿verdad? Un método más vacío. Y esto es sólo la, digamos la parte de función de eso. Y luego, por último, tenemos la función que tiene parámetros y el valor de retorno. Por lo que puedes pensar en una función como una, una tasa de función matemática. Si tienes f de x, entonces obviamente el acceso algo que pasas a la función y luego el y te vuelves es algo que es el, el, el resultado básicamente, ¿no? Entonces aquí tenemos x, y, así es como podemos escribirlo. Y en este caso, la función tiene un doble como entrada y un doble como salida. Nos ponemos, ponemos nuestra dentro y salimos. Básicamente, ya sabes, esta sería una función dos, por lo que esto sería pi, esta son las tasas de radio. Entonces esto es sólo un ejemplo. Y podemos usar sistema fuera, imprimir línea y luego simplemente hacer la función punto aplicar con un diez por ejemplo. Y podríamos aplicar esto. Entonces, sólo vamos a correr esto rápidamente. Y como puedes ver aquí mismo, tuvimos Hola otra vez, Hola mundo otra vez, runnable. Eso funcionó bien. Y entonces éste sólo devuelve 31.41 y así sucesivamente y así sucesivamente. Porque solo calc, porque apenas veces diez esto pero una vez más, podemos poner cualquier doble aquí con eso queremos. Y sí, así que este es un resumen muy corto y un resumen muy para algunas de las cosas que las expresiones lambda pueden hacer a lo largo de las expresiones van mucho, mucho más profundo que eso. Incluso. Entonces, solo las funciones que podemos llamar a las colecciones son numerosas y increíblemente profundas y a veces realmente útiles. E incluso esos, los proveedores y las funciones como variables, incluso ahí, hay aún más tipos de ellos. Pero me restrinjo a estos cinco porque en mi experiencia creo que estos cinco son principalmente los más importantes. No necesariamente lo más importante, sino lo más utilizado. Y, pero también siempre depende de lo que hagas ¿verdad? Ahora, lo grande es que realmente no necesitas usar expresiones lambda. Si tienes un programa, comienzas desde cero y no usas ningún paquete extra de terceros o de terceros o algo así. Realmente no necesitas usarlos. Podrías, en teoría, hacer todo lo demás sin esto. Pero es muy importante al menos mirar y algunas cosas que tal vez quieras hacer, sobre todo si trabajas con código que otros han escrito. Entonces otros paquetes, entonces podrían usar estas expresiones lambda y entonces es muy importante haber visto al menos esto y para entonces tal vez poder recordar. Entonces sí, esa es una introducción muy corta. Una vez más, si hay alguna pregunta, siéntete libre de preguntar y yo las contestaré. Y sí. 39. (Minecraft): Muy bien todos, bienvenidos al curso de Minecraft. Y lo primero que vamos a hacer es que vamos a descargar Minecraft 4j. Por lo que vas a ir a la dirección web archivos dot.net. El enlace está por supuesto disponible como recurso aquí. Y vas a descargar lo más nuevo, el Recomendado Descargar aquí mismo. En este curso, vamos a hacer 1.16.3. Y la versión recomendada en este momento es 34.1 es 0. Aquí vamos a descargar el SDK, así que vamos a hacer click en OK y tenemos que esperar un par de segundos. Y entonces aquí mismo está el botón Skip. Sólo vamos a hacer clic en eso. Y luego un archivo ZIP va a descargar este archivo zip que vamos a poner en un directorio de nuestra elección. Ya he preparado un directorio aquí. Entonces sólo vamos a hacer algo rápidamente, alguna magia como esta. Y vamos a poner esto aquí. Ahora tenemos nuestra forja un puerto y 1.16.3 m dk en nuestro, en nuestro directorio. Y simplemente vamos a extraer aquí. Para eso necesitas ya sea cuando RAR o algún otro programa. Seguro que ya lo tienes. Y si no, por favor siéntase libre de hacer cualquier pregunta. Entonces te puedo dirigir o solo puedes Google Vin rar, WIIFM RAR, justo después de que todo se extraiga, en realidad podemos eliminar el archivo zip aquí. Y lo primero que tenemos que hacer es abrir la inteligencia, ¿verdad? Si abres inteligencia por primera vez, entonces vas a conseguir esto. Bienvenido a la inteligencia. Si no, entonces simplemente puedes ir a Archivo en la parte superior izquierda y simplemente importar o abrir. Y lo que vamos a hacer es abrir más importación. Ahora. Ya estamos aquí en nuestro directorio de Minecraft y vamos a importar el archivo build.gradle. Y lo que vamos a hacer es que sólo vamos a abrir como archivo ahora mismo. Y como podemos ver, ha abierto un expediente. Una vez que tengamos abierto el archivo Gradle de acumulación, en realidad tenemos que cambiar algunas cosas. Y aquí en realidad tenemos que especificar el paquete R. Y esto se va a calmar el curso de Colton joe dot MC para mí. Por lo que el mod ID en este caso va a ser curso Mc. Y otra cosa que tenemos que cambiar aquí es el modo de ejemplo. Y lo que vamos a hacer ahí mismo, lo que vamos a hacer ahí es que sólo vamos a presionar Control R. Y luego vamos a cambiar el ejemplo mod2 a núcleos MC y vamos a hacer reemplazar todo y luego guardar con una vez más Control S esta vez. Y entonces todo debería estar configurado de la manera en que se supone que debe ser. No te preocupes si hay algún error o algo por aquí. Eso lo vamos a arreglar muy pronto. Lo que vamos a hacer es ir a archivar y cerrar proyecto. Y ahora éste en realidad está aquí en la historia, realidad puede sólo X fuera de eso. Y ahora realmente podemos importar todo el proyecto. Entonces ahora vamos a ir a importar y vamos a volver a dar clic en el archivo construido o Gradle. Pero ahora abriremos como proyecto. Eso va a hacer un montón de cosas aquí, realidad puede simplemente hacer clic en fondo y luego va a empezar todo en segundo plano. No te preocupes si hay algunos errores aquí. Todos vamos a arreglarlos ahora mismo y uno tras otro. ¿ Verdad? Entonces. Primero lo primero, vamos de hecho aquí arriba a Minecraft y abramos esta carpeta, y luego abrimos la fuente y luego la Java y los recursos también. Y como pueden ver, algunas cosas están empezando a suceder aquí. Como dije, esto puede tardar alrededor de un minuto más o menos dependiendo de qué tan rápido sean sus computadoras. Pero mientras esto se ejecuta en segundo plano, en realidad podemos cambiar algunas cosas ya. Y esto está en los recursos y meta en carpeta. Hay un archivo HTML match dot. Y este archivo, en realidad podemos cambiar algunas cosas. Entonces primero cosas primero vamos a comentar en realidad algunas cosas. Por lo que el rastreador de problemas, se puede ver que algunos de esos son opcionales y algunos de esos son obligatorios. Y algunas de las opcionales que en realidad vamos a comentar. Por lo que en nuestro moderno d mod ID, vamos a volver a escribir curso Mc. Entonces tenemos el nombre para mostrar. Este va a ser caballo Mc. Y entonces no tendremos una URL JSON actualizada. No vamos a tener una URL de visualización y no vamos a tener un logotipo en este momento. El resto sólo se va a mantener como está. Vamos a volver a guardar esto con Control S. Y entonces también se actualiza este archivo. Ya puedes cerrar eso y sólo esperar hasta que esto se haga. ¿ Verdad? Por lo que ahora mismo tengo una marca de verificación y todo funciona bien. Podría haber un punto en el que algo no funciona es lo mejor sería sólo preguntarme y hacer una pregunta y te volveré muy pronto. No obstante, lo primero que podrías probar es que puedes ir a la terminal y puedes escribir en Gradle, Gradle w slash menos, parar. Prueba primero este 1 y luego reconstruirlo. Esto se puede hacer yendo al archivo de Gradle. Y aquí arriba hay un pequeño elefante con una bandera que este signo de recarga. Y si tú, si haces clic en esa, entonces se va a recargar. Y si entonces todavía no funciona después de que has, has escrito este entrar y entonces algo va a pasar. Y luego si entonces todavía no funciona, entonces por supuesto, siéntete libre de hacer una pregunta pero prueba eso primero porque ese era un tema que definitivamente tenía al configurar esto primero. Correcto, que haya una posibilidad de que tus paquetes se vean algo así donde todos tengan los nombres en una fila, digamos, y luego lo separen con un punto. Para contrarrestar esto, puedes ir aquí a proyectar a este menú Mostrar opciones. Y luego los paquetes aplanados deben estar desrevisados. Y luego los paquetes medios compactos también deben estar desmarcados. Entonces una vez que crees las carpetas de activos que van a crear justo después de esto, esto justo en empalme en este momento, entonces deberían mostrarse correctamente. Había unos cuantos estudiantes que tenían este tema, y yo sólo quería empalmar esto para que no te vas a topar con ese tema también. ¿ Verdad? Entonces lo único que vamos a hacer ahora es que sólo vamos a armar unas cuantas cosas. Entonces vamos a crear unas cuantas carpetas y vamos a cambiar rápidamente algunas cosas aquí mismo. Entonces lo primero que vamos a cambiar son los modos de ejemplo. Vamos a abrir esto. Y por supuesto este no es el nombre que elegimos. Por lo que en realidad va a reemplazar esto con sólo hacer clic derecho, Refactor, Renombrar. Y vamos a renombrar esto a, llamémoslo EMS MC CourseSmart, porque ese va a ser Ahmad. Aquí va nuestra Mat ID. Entonces este va a ser curso Mc todo escrito juntos. Ahora bien, yo aconsejaría simplemente hacer básicamente copiar, no copiar, sino programar junto conmigo. Y luego después de que hayas aprendido los conceptos básicos de qué, cómo puedes crear un bloque y cómo él tripulación crea un objeto y así sucesivamente. Eso usa entonces realmente crear tu propio mod. Yo alentaría que si no quieres hacer eso, eso también está bien. También puedes simplemente seguir y crear tu propio modelo de inmediato. Entonces aquí realmente queremos cambiar este paquete. Por lo que queremos cambiar esto para venir algodón j2. Y entonces éste es mc curso, ¿verdad? Va a ser, me gustaría que vamos a mover eso a empaquetar. Y entonces va a, va a crear un nuevo paquete aquí para nosotros. Y entonces también podemos simplemente eliminar esta carpeta de ejemplo. Y todo está montado aquí como debería ser. Eso es genial, ¿verdad? Así que veamos la estructura de carpetas ahora mismo. Vamos a crear unas cuantas fotos. Ahora en futuras conferencias, realidad vamos a crear aún más carpetas. Pero ahora mismo, las carpetas que vamos a crear nuestras para cosas como bloques y artículos, y son texturas, un poco de cosas del lenguaje. Por lo que mostrar texto básicamente. Entonces lo primero que vamos a hacer es ir a la carpeta Recursos. Voy a crear un nuevo directorio y a eso lo llamamos activos. Ahora en ese directorio de activos o más directorios van realmente en ese 1. En primer lugar, tu carpeta a va que tiene el nombre de tu ID de Mat, ¿verdad? En nuestro caso aquí, mc cores y en esa carpeta, para más carpetas vaya. El primero va a ser Bloch estados. Y entonces el siguiente va a ser lang l, n, g. Y luego otro, que vamos a llamar modales. Y entonces la última aquí va a ser texturas. Ahora dentro de la carpeta de modelos, también vamos a crear una carpeta llamada Block. Y otra carpeta, vamos a crear un elemento frío. En las texturas vamos a hacer exactamente lo mismo, una carpeta llamada Block y una carpeta elemento antiguo. Y esa es básicamente la configuración por ahora. Ahora mismo como necesitábamos. Como dije, vamos a sumar más fotos en el futuro, pero esto es como una estructura básica que vamos a necesitar, digamos las próximas conferencias. Y sí, así que si todo está configurado y si todo funciona bien, lo que podemos hacer es subir aquí a Gradle, y luego podemos ir a Tareas. Fg se ejecuta, y luego este cliente de ejecución haga doble clic en ese. Y luego van a pasar muchas cosas. Y si todo funciona bien que microsoft Minecraft en realidad va a empezar y bien podemos, podríamos planear la teoría. Por lo que empieza en el monitor equivocado. Perdón. Pero eso no es un tema. Y va a ser sí, correcto. Ahora como tú ahí vas. Y veamos qué pasa. Por supuesto, ¿están ahí está. Los sonidos calmantes de la micro música, que de inmediato voy a apagar porque normalmente, sobre todo en estos cursos, tal vez no sea el mejor estudio para tener una música corriendo de fondo. Y si vamos tomates aquí, en realidad podemos ver que nuestro MOD MC CourseSmart está aquí. Esto es sólo algunas cosas de marcador de posición que podríamos colocar podríamos reemplazar más adelante. Pero sí, en realidad tiene Armand cargado y todo funciona. Y sí, creo que eso es bastante bueno. Y esta es básicamente toda la configuración que vamos a necesitar en este momento. Eso es todo lo que necesitaba hacerse para este momento en el tiempo. Y sí. 40. (Minecraft) Nota sobre el uso de Minecraft 1.16.5: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia sólo quiero mencionar rápidamente que si estás usando uno 605 en probablemente arriba, sin embargo, 165 en este momento es el tema principal. Tendrás que cambiar tu canal de mappings. Debería verse así. Por lo que mappings canal oficial y luego versión uno 605. Y dentro de la ventana de construcción aquí también debes conseguir que esto sea licenciado por Microsoft Corporation porque esos son los mappings oficiales que usan Minecraft y morphogen. Y esto no será realmente compatible con el material del curso que sigue a esto. Porque algunos métodos, en realidad muchos métodos y atributos y variables son completamente, tienen un nombre completamente diferente. Y por lo tanto necesitarás cambiar esto a exactamente esto aquí mismo. Esta podría no ser la versión más reciente de los mappings. Cuando veas este video, sin embargo, puedes revisar o entrar en los recursos, en la descripción de la clase. Y ahí deberías encontrar bajo bastante alto arriba 165 mappings. Después puedes simplemente copiarlo y luego pegarlo. Asegúrate de que demasiado bajo a los cambios de Gradle aquí arriba. Y entonces debería tomar un poco de tiempo, construir todo. Podría llevarte un poco más de tiempo si lo haces la primera vez. Y luego una vez que tengas la garrapata y todo sea exitoso, asegúrate de que dentro de tu archivo MOD normal. Entonces cuando hagamos esto, éste debería ser el archivo MTT del curso MC. Acabo de configurar un nuevo repositorio 165. Por eso se trata de un modelo de ejemplo. En este caso, tendrá que tener un error aquí. Simplemente elimine esta línea o elimine todo el método, no importa. No obstante, el error aquí con las opciones, solo puedes dejar esa línea y todo va a funcionar a partir de ese punto y puedes seguir la clase casi hasta la t Creo que la mayoría de los demás mappings deberían entonces funcionar. Pero eso es muy importante. Si no haces eso, entonces no podrás seguir correctamente la clase. Realmente no importa porque el canal de mappings es, no diría mejor necesariamente, pero es simplemente lo que vamos a usar para esta clase. Entonces solo para que estés consciente y solo para que sepas que ese es el caso. Sí. Eso fue en realidad, y eso fue todo para esta conferencia. De verdad te imploro que hagas esto. De lo contrario, simplemente te referiré a esta lección si no la has cambiado. Entonces sí, eso fue todo. Buena suerte y diviértete en el resto del curso. Entonces sí. 41. (Minecraft) Crea nuestro primer artículo: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear un nuevo elemento. Entonces lo primero, primero tenemos que hacer algunas cosas. Y lo primero que vamos a hacer es realmente vamos a crear aquí una cadena final estática pública, que vamos a llamar mod ID. Y ese simplemente va a ser nuestro lema ID. Y entonces en realidad podemos reemplazarlo aquí arriba también. Por lo que sólo podemos escribir Mc Corps lema mod ID. Y porque este nodo ID en realidad va a ser utilizado en muchos lugares diferentes dentro de nuestro modelo. Entonces lo que tiene que suceder es que en realidad queremos crear un nuevo paquete. Y eso va a estar dentro, dentro de nuestro paquete de cursos MC. Sólo vamos a ir paquete nuevo. Y vamos a llamar a este artículo. Y dentro de ahí, vamos a crear una nueva clase Java, y eso va a ser frío. Naca es apenas más artículos. Básicamente puedes llamarlo como quieras, pero debería tener algún parecido con más artículos, mis ítems, artículos registrados, algo así, solo para que lo sepas, vale, esta es la clase donde registro mis átomos. Y ahora vamos a escribir algún código y yo voy a, primero de todo explicar a medida que voy y luego con un poco más de detalle a lo largo. Entonces va a, vamos a crear un objeto público de registro final estático de tipo ítem. Y vamos a crear va a ser lingotes de cobre. Por lo que queremos sumar tal vez cubierto al juego. Esto es sólo algo que pensé en este momento. Y si algo se lee, sólo podemos importarlo. Esto es importante para que sea net dot Microsoft dot item. Y eso va a parecer un poco funky, pero no te preocupes por ello. Y en realidad necesitamos otra cosa antes de poder hacer esto. Y eso va a ser un registro. Entonces, en realidad hemos saltado al tiburón aquí. Y lo que vamos a hacer es que realmente vamos a volver y hacer otro paquete, que vamos a llamar Util. Y ahí dentro, y vamos a crear una nueva clase Java, que vamos a llamar registro. Seguro. Y ese registro, en realidad primero tenemos que registrar r o tenemos que colocar un registro diferido. Entonces vamos a usar registros diferidos aquí. Y eso ha sucedido antes. En realidad podemos hacer los artículos, pero no te preocupes por ello. Nosotros lo haremos, podemos hacerlo. Entonces vamos a tener una final estática pública. Y este va a ser un registro diferente de tipo block. Entonces esto es para los bloques por supuesto. Pero hagámoslo ahora mismo ya para que lo tengamos. También importa el blog de la clase. Y luego hacer un Padrón diferido, punto crear, porche registros bloques. Y luego necesitamos RMC, curso id, el ego. Y entonces podemos hacer básicamente lo mismo. Básicamente podemos simplemente copiar esto y reemplazar la totalidad con artículos y artículos para que simplemente podamos hacer. Y luego aquí están los artículos. Y entonces simplemente necesitamos un registro de vacío estático público, función o método más bien, que va a tener un bus de eventos. Y de lo que vamos a hablar de ese 11 segundos. Este va a ser un modelo FLM FML Java cargando contextos dot get, dot get, mod event bus. Y entonces simplemente se va a simplemente, ambos de los registros diferidos se van a registrar con ese bus de eventos. Y en este caso, van a ser artículos. Y luego bam, y en este caso entonces se registran todos los artículos. Y entonces simplemente necesitamos llamar a eso en nuestro constructor aquí abajo. Entonces sólo vamos a hacer el registro, el registro, el DOT, el registro, su ego. Y ahora en realidad podemos hacer el artículo. Eso sí, porque ahora realmente queríamos llamar al registro que los artículos, ¿no? Por lo que queremos llamar a esto el primer registro que realmente creamos. Queremos registrar un nuevo artículo, que va a ser cobre Ingrid. Ahora, esto es, este es el nombre del, básicamente el ítem ID por así decirlo. Y eso siempre es minúscula. Y entre palabras hay subrayados en lugar de espacios o algo así. Y luego se va a llevar un proveedor. Entonces eso es simplemente un, un método lambda que va a suministrar un nuevo artículo. Entonces vamos a crear un nuevo artículo. Y para crear un nuevo elemento, en realidad necesitamos especificar propiedades. En este caso, lo que sólo vamos a hacer es que sólo vamos a especificar la propiedad del elemento, el grupo de propiedades, para que realmente podamos verlo en modo creativo. Y esto sólo va a entrar en, digamos, un material por el bien de ahora mismo. Y en realidad quiero que esto sea sangría un poco diferente. Se van, eso se ve un poco mejor. Y entonces también necesitamos una función pública de registro de vacío estático sin nada en ella sólo para llamarla. Entonces esa e, para que todo vaya a salir bien. Entonces vamos a hacer Mott artículos DOT registro. Y entonces el artículo realmente va a estar en el juego ya. Igual que eso. Sólo vamos a mirarlo. Y entonces, claro que descubriremos que hay un poco más porque, ya sabes, podrías haberte dado cuenta de que en realidad no hemos añadido una textura, por ejemplo, que por supuesto va a ser necesaria. De lo contrario, se va a ver un poco raro. Y te puedo prometer que va a parecer un poco raro. Entonces, solo creemos un mundo nuevo. Vamos a hacer un mundo creativo y pacífico y yo sólo soy nuevo mundo, eso está bien. Está bien. De acuerdo, aquí estamos en Minecraft. ¿ No es eso hermoso? Y vamos a ver. Entonces esto debería ser una miscelánea o creencia que irían artículo por Mc coerce cobre, Ingrid, ¿no son esos hermosos cobre y no lo es realmente, ¿verdad? No. No, en realidad no. Está bien. Entonces vamos a tener que arreglar algunas otras cosas o es apropiadamente en el juego, protuberancias en el juego sin embargo. Entonces lo primero que tenemos que hacer es querer entrar a la carpeta pulmonar aquí bajo recursos activos que nuestro lema núcleos AD MC, y luego la carpeta de longitud. Y vamos a crear un nuevo archivo, que vamos a llamar Yan subrayarnos y punto JSON, JSON. Y eso va a ser formateado así. Necesitamos esos corchetes rizados. Y luego dentro de, dentro de las cotizaciones, vamos a hacer núcleos de elemento MC, Harper, lingote, y luego un colon. Y luego cubriendo. Este es básicamente el nombre que queremos haber mostrado dentro del juego. Y luego vamos a entrar en las modelos y en el artículo. Y aquí dentro vamos a tener, tener un archivo que se nombra exactamente igual al igual que el nombre del ítem que especificamos, ¿no? Por lo que el cobre subrayan lingote y dot JSON una vez más. Y esto va a tener algo como esto. Esto va a ser padre, una slash de ítem generada. Y luego vamos a especificar las texturas. Entonces no textures un corchete rizado y luego capa 0. Ver poros. Sostenga un artículo corte lingotes de cobre. Ahí lo tienes. Entonces la principal comida para llevar aquí es que el, aquí especificamos las texturas. Esta es básicamente la parte más importante. Y podemos tener básicamente artículos de varias capas, de varias capas. No nos vamos a preocupar por eso ahora mismo. Esta es sin embargo, la forma importante de cómo escribirla. Y entonces en realidad lo único que necesitamos es una textura. Y ahora en realidad he preparado una textura en mi otra pantalla. Voy a poner eso en artículo y voy a decir, sí, esta es la textura que he preparado. Y en teoría, tenga en cuenta también que el nombre de la textura aquí. En primer lugar, necesita ser un archivo PNG. En mi caso, tengo un 16 por 16. No debería ser más grande que 32 por 32. Pero, ya sabes, podría haber formas de sortear eso. Pero en este caso, consejo hacer siempre 16 veces 16 texturas porque esos también son los sitios de las texturas de las micro texturas normales. Y el nombre del archivo va a ser exactamente el mismo que el nombre que hemos especificado en nuestros elementos mod aquí mismo, ¿verdad? Por lo que este siempre es el, básicamente el ID del ítem. Esto es por todos lados que vayamos, básicamente va a ser lo mismo. Y en teoría, si todo funcionaba, esperemos que lo hiciera. Entonces vamos a ver, y ojalá ya vaya a funcionar. Pero estoy bastante seguro de que todo va a estar bien. Ahora. En realidad no mi, mi idea aquí es que en realidad no voy a cortar si tal vez cometí un error y sólo vamos a cortar y mostrarte dónde lo hice porque creo que a veces, sabes, cometes un error, Yo cometo un error en alguna parte y entonces es mejor que veas arriba que hubo un error. Y luego se puede aprender de eso. Pero en realidad ni siquiera necesitamos hacer eso porque aquí están nuestros lingotes de cobre. En nuestro juego. Se llama cobre enojado y se ve bastante bien. A mí me gusta. Se ve un poco bonito. Sí, eso fue todo lo que teníamos que hacer para crear un artículo en Minecraft. Si tienes alguna pregunta, siéntete libre de hacerlas. Y pero eso fue básicamente todo. Entonces sí. 42. (Minecraft) Crea nuestro primer bloque: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear nuestro nuevo bloque, ¿verdad? Vamos a crear nuestro propio bloque. Y va a ser un poco más complicado que el artículo, pero no por mucho. Entonces lo primero que vamos a hacer en lugar de r mod ID paquete. lo que nuestro paquete del curso MC justo aquí, vamos a crear un nuevo paquete. Y esto se va a llamar bloque. Y dentro de ese paquete, vamos a crear una nueva clase Java, y eso va a ser más bloques. Aquí. Nos vamos a divertir un poco. Entonces tal vez queremos un bloque de cobre que vaya con nuestros lingotes de cobre que pudiera ser útil. Ahora primero necesitamos tener una especie de método de ayuda. Y voy a escribir eso y explicar a medida que avanza, principio va a parecer un poco loco, pero no te preocupes por ello. Entonces este es un blog T extiende y en realidad necesitamos importar eso. Oh, lo siento, espera, vamos a cerrar. Y entonces esto va a devolver un objeto de registro de tipo T registro. Y va a tener permetros, cadena, nombre, y suministro encendido rápidamente. Modelo hace un poco, Proveedor T, Y el nombre del bloque, ¿verdad? De acuerdo, aquí vamos. También necesitamos importar la clase de proveedor aquí desde Java Util. Y ahí vamos. Y luego dentro de esto vamos a crear un nuevo objeto de registro de tipo T. Este es el que vamos a devolver. Entonces voy a llamar a esto para regresar. Y ahora en realidad vamos a ir por bloques de puntos de registro, registro, nombre, y bloque. Y la razón por la que lo hacemos en esta función es en realidad porque también necesitamos registrar un ítem para esto para cada bloque. Entonces vamos a hacer los artículos de punto de registro no registrarse. Y este va a ser el mismo nombre. Y entonces nosotros en realidad, en lugar de crear un alma, devolver un nuevo elemento aquí, en realidad crearemos un nuevo elemento de bloque. Y esto sólo se va a devolver para devolver punto get. Y luego necesitamos un nuevo elemento, propiedades de punto. Esos son los mismos que con el artículo. Entonces en este caso, solo haremos grupo en este momento para tenerlo ordenado en un grupo en las pestañas creativas. Entonces esto va a ser bloques de construcción. Esto es bloque, así que eso sí tiene sentido. Y luego vamos a regresar, a regresar. Y esta es nuestra función de ayudante. Entonces básicamente toma en un tipo. Por lo que básicamente tiene un tipo de bloque que necesitamos abastecer aquí. Y luego devuelve una cuadra. Solo vamos a, sólo vamos a usarla más simple que solo tontear por aquí. Entonces vamos a hacer objeto de registro. Entonces una vez más tengo objeto de registro, la suma del bloque de tipo. Va a haber un bloque de cobre. Y ahora solo vamos a llamar a registro porque eso nos devolverá un objeto de registro. Y este va a ser bloque de cobre. Y entonces también tenemos que hacer el proveedor. Y eso va a ser. Un nuevo bloque en este caso. Y ahora en realidad tenemos en lugar de propiedades de bloque con epsilon balanceado propiedades, propiedades dot create. Ahora necesitamos especificar un material primero. Ahora, pensando que se trata de un bloque similar a un cobre, este es probablemente Material punto hierro. Y luego detrás de eso, en realidad podemos especificar aún más propiedades. Entonces, por ejemplo, podemos hacer dureza y resistencia, que va a mover eso a la siguiente línea aquí. Y eso probablemente va a ser como, vamos a hacer algo así como 310. Y luego vamos a hacer sonido va a ser un sonido type.me. Sí. Muy bien. Está bien. Y entonces eso se hace. Ahora eso también es, por cierto, algo para los artículos también. Se puede simplemente detrás de grupo, se puede agregar aún más artículos, ¿verdad? Hay algo que así por ejemplo, rareza, máximo daño, tamaño mixteco, y todo tipo de otras cosas que podemos hacer aquí. Ahora bien, si no me equivoco, necesito un, otro PABA, público, estático, vacío, registro, una función vacía. Y entonces si no me equivoco, esto ya debería ser suficiente para tenerlo aquí. Por lo que más bloques que se registran. Pero antes de que vayamos a mirar en el, en Minecraft, cómo se ve, en realidad vamos a hacer la textura correctamente esta vez y pasar por ella. Entonces lo primero que vamos a hacer es que vamos a abrir nuevo el yen US Jason en nuestra carpeta de longitud. Voy a añadir esto. Por lo que este va a ser el curso loc dot AMC sobre alambre de cobre. Perdón, alambre de cobre. ¿De qué estoy hablando? Eso es que es un alerón. Eso es un que es un alerón grande. Alambre de cobre. Es por supuesto bloque de cobre. Sí. Y eso en realidad ya es. También vamos a necesitar abastecer algo en los modelos. Este es un archivo nuevo y ese va a ser el punto de bloque de cobre JSON. Y rápidamente voy a copiar esto. Eso es un poco más fácil. Y va a ser, así que en lugar de que el padre sea el elemento, el elemento generado, este padre, en realidad está bloqueado cubo todo. Y luego la tecnología en las texturas uno que realmente tenemos es una especie de capa 0. Tenemos todo. Esto es básicamente para especificar que todos los lados son de la misma textura. Por supuesto también podemos usar diferentes texturas para diferentes lados, pero eso es algo para otra conferencia. Y entonces también necesitamos a los estados Bloch. Entonces esto va a ser hopper block dot Jason. Y también voy a conseguir eso rápidamente por aquí. Y eso básicamente se refiere de nuevo al archivo modelo que acabamos de crear. No obstante, en realidad necesitamos crear un archivo de otro en los modelos y eso está bajo los elementos. Y ese va a ser también el bloque de cobre. Jason. Por eso dije que era un poco más complicado que solo el normal porque hay unos pasos más para crear un bloque. Entonces MC, peor bloque slash bloque bloque de cobre. Y eso debería ser. Yo creo que sí. Ahora sólo tenemos que referir el o necesito poner rápidamente ese aquí. Vamos a hacer eso. Esta es mi textura para el bloque de cobre. Y en teoría ahora todo debería funcionar bien. Es decir, bueno, está bien, vamos a correr microondas y ver si eso funciona. Entonces tenemos los estados Bloch, tenemos los modelos, modelos negros, artículo y la textura. Y también hemos establecido el lang. Entonces todo en todo eso debería funcionar ya creo. A ver si tengo razón o no. Correcto. Asco para un solo jugador Nuevo Mundo. Entremos ahí y veamos qué podemos ver. Por lo que un encubrimiento o por supuesto está todavía ahí. Y luego en los bloques de construcción aquí abajo, ahí está, el bloque de cobre. Puedes colocarlo. Y también podemos tirarlo por ahí si quieres. Sí, eso es genial. Eso es asombroso. Entonces esto en realidad es así como dije, es un poco más complicado que el artículo, pero aún no es una locura complicada. Y sin embargo, así es básicamente como agregamos un bloqueo de carretera a Minecraft. Y después de esto, hay una pequeña asignación corta donde realmente agregas otro elemento y otro bloque a Minecraft. Puedes o hacer las tuyas o simplemente puedes hacer la que yo proporciono. Proporciono dos texturas. Y en realidad deberías agregar alambre de cobre y un cobre o al juego también. Y yo, entonces yo, aconsejo hacer la asignación especie de ciego, básicamente copiando todo lo que hemos hecho hasta este punto y luego haciendo eso sin ver el video. No obstante, por supuesto que es gratis para ti. Yo solo te aconsejo que lo hagas. Y luego la próxima conferencia, en realidad tendré todo eso ya dentro del juego. Entonces el alambre de cobre y el cobre o ya van a estar ahí dentro. Entonces si no haces eso, podrías estar atrás. Rápidamente tocaré eso en la próxima conferencia. No obstante, sólo para que estés donde las asignaciones siempre se lleven a la conferencia después. Entonces, y las asignaciones siempre van a ser parte de las próximas conferencias que vienen después de eso. Sí, eso fue básicamente todo lo que quería decir. Una vez más, si hay alguna pregunta o si tienes alguna flechas de cualquier tipo, siéntete libre de preguntarme y trataré de ayudarte en cuanto pueda. Y sí. 43. (Minecraft): profundizar en profundidad en nuestras clases: O yo sólo como una nota rápida que esta conferencia es sólo para ir un poco más a fondo en las clases que ya hemos creado. Por lo que los modos, elementos, los bloques mod y el registro y la clase principal. Y esta es una conferencia muy teórica. Entonces si eso no te interesa, puedes saltarte. No hay nada demasiado loco o importante que se esté poniendo aquí. Es sólo tal vez para solidificar un poco de algunos de tus conocimientos y eso es básicamente todo. Por lo que puedes saltarte si quieres. Muy bien, bienvenido de nuevo a los minerales de Minecraft y estoy aquí desde el futuro. Bueno, básicamente, tuve una pregunta que hizo un estudiante que dijo, oye, ¿ puedes quizá ir un poco más en profundidad tanto en la clase principal como también en los artículos mod de Inscripción. ¿ Qué estamos haciendo ahí? Sólo estoy escribiendo esto a menudo. Realmente no estoy entendiendo lo que estoy haciendo aquí y esta es básicamente la conferencia para esto. Y así en primer lugar, vamos a pasar por la clase MC CourseSmart y mirar básicamente casi cada una de las líneas aquí. Entonces la primera es esta anotación, por supuesto es el modo add y luego el mod ID. Esto es muy sencillo. que el naranja básicamente comprenda, OK, esta es la clase principal para este modo con el estudio que tenemos, entonces por supuesto, en realidad estás inicializado como una cadena, simplemente mc curso. O tal vez has elegido un nombre diferente. Pero es la misma idea. Y también muy importante, también está escrito aquí. El valor aquí debe coincidir con una entrada en el meta en tamil. En realidad hemos hecho esto. Yo creo en la primera conferencia aquí sobre cuando empezamos con el Minecraft y la selección de la fortuna, ¿verdad? Justo entonces tenemos una referencia aquí al registro para j logger. Ahora, en realidad muy fácilmente explicado. Entonces log for J es simplemente una, una biblioteca externa que forja usos con el fin de registrar bien algunas de las cosas que suceden, ya sea en el juego o durante la inicialización y así sucesivamente. Y el registro para j es solo una biblioteca realmente excelente para hacer esto. Que realmente no tiene relación con nada que suceda en el juego ni nada realmente. Entonces esto es solo para fines de depuración y para dar salida a las cosas a la consola, digamos, sí, justo a continuación tenemos al constructor. Entonces esto es simplemente un constructor normal, como en cualquier otra clase Java. Es solo para nuestra clase modelo. Por supuesto aquí tenemos nuestros tres métodos de registro que en realidad estamos llamando para el registro, los artículos MOD y los bloques MOD. Esto, por supuesto, se explica por sí mismo en la forma en que lo hemos hecho. Ahora en realidad vamos a pasar por tres de esas clases también. Pero primero que nada busquemos a través de toda la multi-clase mc. Entonces vienen a continuación estas cuatro interesantes llamadas a métodos que son un poco raras y podrían ser como, bien, interesantes. Entonces esto parece una configuración loca, digamos. Entonces, en primer lugar, hacemos este FML Java contextos de carga que obtienen dot-dot-dot mod, mod event bus oyente de anuncios. Y luego lo ponemos en esta cosa rara donde escribimos esto y luego. Un dos, ya sabes, dos colon y luego un nombre de método aquí, ¿verdad? Esto, todo esto parece un poco raro. Pero para explicarlo en los términos más simples, básicamente, lo que hace Forge es Forge tiene diferentes etapas para configurar ciertas cosas, ¿verdad? Entonces en la configuración por ejemplo, generalmente lo que harías aquí dentro sería algo así como un puesto en las configuraciones y tal vez poner en suma. ¿ Qué más declarando capacidades. Entonces hay cosas diferentes que haces en diferentes etapas, lo cual tiene sentido por supuesto. Y lo que hacemos con este agujero aquí es simplemente decir, vale, oye, este método debe llamarse cuando es hora de la configuración, y este método debe llamarse cuando es hora de poner en cola IMC es y luego procesar IMC. Y luego al final, esto debería ser viejo cuando llegue el momento de las cosas por hacer declinadas. Y esto es básicamente lo que significa todo aquí, ¿verdad? Por lo que conseguir los contextos de carga, obtener Modo, Evento, bus, agregar oyentes es simplemente una forma de asegurar que ciertas cosas sucedan en ciertos momentos. Porque si tenemos múltiples modos y simplemente inicializan cuando quieran, ya sabes, algunos inicializan las recetas al principio, algunos inicializan las recetas al final. Todo es locura. Eso eso realmente no funciona. Es por eso que el forraje agiliza esto mediante el uso de estos oyentes. Y lo son, las únicas cosas reales que nos interesan es la primera y la última. Los que estaban en el medio eran en realidad como todo el asunto. Nunca vamos a hablar de todo el curso porque esos son la comunicación inter mod. Lo que significa que esto es, estos son métodos para comunicarse con otros mods. Y como solo estamos construyendo un mod aquí en este curso, realidad no vamos a entrar en eso para nada. Por lo que en realidad es posible eliminar esto. Y en realidad soy como eliminar este fin ambos de los métodos en una conferencia posterior en la sección avanzada. Sólo para tener en cuenta, esto se quedará ahí por la longitud del, digamos el, creo que son los inicios del modding de Minecraft. Pero ya podrías eliminar si quieres. Pero no tienes que hacerlo. Por supuesto, solo puedes dejar que se quede como es y nada cambiaría. Ahora la configuración y las cosas del cliente son en realidad cosas que vamos a usar. Ahora más adelante en la sección avanzada, realidad vamos a ver una forma diferente de hacer las cosas del Cliente. Pero para el propósito de esto, vamos a mantenerlo así. Y sin embargo esto es básicamente lo que significan estos constructos aquí. A continuación, como ya dice el comentario, escribimos registrarnos para servidor y otros eventos de juego que nos interesen. Esto simplemente significa que en realidad tenemos acceso a lo que tenemos aquí abajo, eventos de suscripción V, que vamos a ver más de más adelante por la línea. Y esto es simplemente registrarnos una vez más en cuanto a los acontecimientos que suceden. Justo entonces por supuesto tenemos los dos métodos que se están llamando para agregar oyentes. Entonces tenemos una acción como M suscripción evento donde tenemos en servidores iniciando. Entonces esto es, esto ocurre sólo cuando se inicia el servicio. Y luego aquí abajo en realidad tenemos eventos de registro. Ahora este es un método que en realidad hemos borrado o borraremos en un video futuro. Ahora bien, no estoy 100% seguro en realidad, pero esto simplemente debería haberse ido. Lo mismo con el almacenamiento del servidor en este caso. Porque una vez más, en futuras conferencias, especialmente en la conferencia avanzada, realidad vamos a pasar y limpiar y refactorizar un poco el código. Y ahí dentro también vamos a descubrir una nueva forma o una forma diferente de hacer la separación del lado cliente y servidor. Pero esto es una especie de resumen básico de la clase principal de MC CourseSmart. Y sí, veamos a continuación la clase de registro, ¿verdad? Por lo que dentro de nuestra clase de registro, tenemos los dos registros diferentes de tipo block y de tipo item. Y entonces tenemos este método de registro donde realmente registramos esto también. Entonces pensémoslo antes que nada, aquí arriba para que difiera registro. Entonces una cosa que puedes hacer, si alguna vez te sientes atascado, también puedes simplemente mantener presionada la tecla Control y pasar el cursor sobre cualquier clase o cualquier método, y luego simplemente haz clic en ella. Y en realidad estarás inmediatamente mientras la clase se abrirá de inmediato. Y como pueden ver, aquí hay algunas cosas que podrían ayudar. Por lo que los bienes comunes en realidad están ahí dentro. Y así podemos ver realmente, OK, ¿qué es esto? Por lo que el diferente registro es una clase de utilidad para ayudar con la gestión del registro. Mantiene una lista de todos los proveedores para las inscripciones y los registra durante el evento de registro adecuado. Entonces como puedes ver, casi ya tenemos la respuesta de lo que esto sí escribe. Simplemente tiene una lista de todos los proveedores. Y esto es algo que vamos a ver en los artículos mod, justo este año donde registramos algo. Aquí es donde teníamos un proveedor para un nuevo artículo y un nuevo bloque, por ejemplo. Y esto es exactamente de lo que el tercer registro hace un seguimiento. Y entonces simplemente se asegura de que el juego sepa, hey, estos son los bloques que tengo, estos son los artículos que tengo. Y aquí es donde entran los registros diferidos. lo que básicamente se están asegurando pues que el juego sepa de estas cosas. Y lo que puedo mostrarles rápidamente, por ejemplo, es si tenemos aquí un nuevo registro diferido, y sólo vamos a rápidamente todo esto, lo que sea. Y vamos a buscar en el registro diferido que crean. Lo que podemos ver aquí es los registros portuarios dot. Y estos son todos los tipos de registros que en realidad podemos mirarlo. Para que podamos hacer nuevas pociones, podemos hacer nuevos fluidos, entidades, podemos hacer nuevas entidades de azulejo. Y algunas de esas, por supuesto, también son cosas que vamos a sumar más adelante por la línea en conferencias posteriores. Esa es básicamente la idea detrás del registro diferente es simplemente una lista o digamos un registro de todas las cosas que queremos que sepa el juego. Y en este caso, los definimos por el tipo que queremos conocer, que queremos registrar, ¿no? Entonces primero decimos a, este es un padrón para bloques. Entonces digamos una lista de bloque. No es toda una lista, pero pensémoslo así. Entonces tenemos todos los bloques que queremos definir, y luego tenemos todos los ítems que queremos definirlos. En el futuro. Vamos a sumar forma, forma, forma, más tipos que queremos definir. Y luego cada vez vamos a crear un nuevo registro diferido. Y ahora este método de registro aquí, como se puede ver, hay algo. Eerily similar a éste de aquí. Y eso es exactamente lo que teníamos aquí dentro, ¿verdad? Entonces en realidad ya también tenemos esto, hemos visto esto antes, ¿no? Esto es simplemente el FML Java de carga contextos dot get, bus de eventos dot-dot-dot, oyente punto-punto. Y en lugar de hacer el aprendiz atlas, lo que realmente vamos a hacer es que vamos a hacer dispuestos, dar la vuelta a esto. Entonces vamos a tomar este autobús de eventos y luego decir bloques registrarse y luego dar el autobús de eventos en. Ahora esto hace básicamente exactamente lo mismo que al revés. Simplemente lo vamos a hacer de esta manera. Porque, bueno significa simplemente así es como se supone que debe hacerse. Y esto entonces, mientras que este aplazado se registra, cuando entramos en los artículos de lodo y decimos: oye, este es el tercer registro, aquí es donde tenemos la lista en el registro diferido ahora lo sabe. Pero entonces forja también necesita saber acerca de estos diferentes registros. Y por eso registramos aquellos con el bus de eventos en el método de registro aquí dentro de la clase de registro. Ahora, yendo hacia adelante a los elementos mod, ya lo hemos pensado un poco, ¿verdad? Por lo que el registro de artículos de punto de registro simplemente está llamando al registro una vez más. Y en este caso simplemente decimos ocho. Por lo que queremos registrar esto dentro de los ítems diferentes registro. Y por supuesto necesitamos tomar suministrado el proveedor. Y esto es lo que luego sucede, también es necesario crear un nuevo artículo para esto. Y esto básicamente entonces se asegura de que sea, es conocido por el juego, pero también se le puede dar un nuevo elemento propiedades aquí. Y por supuesto, en este caso sólo le damos un grupo de ítems por supuesto añadiría aún más. ¿ Verdad? Y entonces por qué usamos el tipo de objeto de registro aquí? Bueno, estoy en barca sin rodeos. Es básicamente simplemente el tipo de retorno del método de registro aquí de la escritura de registro diferido. Y también podemos ver ahí abajo, agrega un proveedor a la lista de entradas a registrar, devuelve un objeto de registro que será poblado con la entrada creada automáticamente. Entonces básicamente hace todo el trabajo para nosotros automáticamente para que podamos usar este lingotes de cobre son ejemplos de su objeto de registro. Por lo que en realidad podemos usarlo. Bueno, en cualquier parte del, en el modelo donde queremos, necesitamos usarlo, ¿verdad? Por lo que tenemos una referencia, una referencia estática a este ítem ya en su lugar. Bueno, no hemos hecho referencia al objeto de registro, pero es tan bueno como el ítem porque simplemente podemos obtener el ítem usando.gov, por ejemplo. Y esta es una especie de la razón por la que usamos el objeto de registro aquí. El Y que tenemos este método de registro simplemente tiene que ver con la forma en que cuando tienes estática, cuando tienes miembros estáticos en una clase y aún no has llamado a un método en él. Después hay alguna rareza con el, con la carga, con la carga en el orden diferente. Entonces es, es, ya sabes, esto realmente necesitaba. Y cuando se trata de los bloques MOD, Bueno, esto es, quiero decir, casi exactamente lo mismo, pero tenemos objeto Registry una vez más, justo esta vez con bloques, ¿no? Y aquí abajo tenemos, hicimos otro método. Ahora bien, esto también podría ser un poco confuso al principio, pero sí creo que lo he explicado en los bloques. Y los bloques uno, tal vez no lo suficientemente buenos. Entonces la idea aquí es simplemente que en lugar de llamar directamente al método block dot Register, en realidad vamos a poner todo esto dentro de un método privado. Porque también nosotros, además del bloque, también queremos registrar el ítem que pertenece a ese bloque, ¿no? Que es un elemento de Bloque. Por supuesto. Ahora, para hacer esto, simplemente decimos, oye, vamos a hacer esto en este método de registro porque eso es mucho más fácil que escribir esto primero y luego escribir el segundo cada vez que haces un bloque, solo podemos decir, bueno, vamos a refactorizar eso en un método. Y es por ello que este método es en año. Y se ve un poco diferente frente a la clase MOD Items, ¿verdad? Esa clase de redondea esto. Espero que esto fuera algo útil para usted. Entiendo que hay algunos conceptos que fueron por supuesto un poco más avanzados pueden ser arrojados aquí. Y así esta es una especie de video explicativo extra. Espero que quede claro por lo menos unas cuantas cosas. Y en el futuro, espero que otras conferencias sean más iluminadoras, digamos de todos modos, si hay alguna pregunta sin embargo, respecto a esto, así concerniente a cualquier otra cosa , claro, esto fue un poco más teórico, digamos en la naturaleza. Y acabamos de pasar por el, las clases un poco. Pero sí. Entonces si no hay preguntas, claro, siéntete libre de preguntar y seré más corto S1. Y sí. 44. (Minecraft) Nuestra propia punta creativa creativa personalizada: Muy bien, sigamos con el curso de Minecraft. Y como se mencionó en la última conferencia, ya he agregado el Cobre o, y los cables de cobre al juego. Y asegúrate, si no has hecho eso, en realidad asegúrate de mirar la última conferencia. O también puedes encontrar un archivo de texto en esta conferencia con todas las cosas que necesitabas agregar y las clases a las que necesitan agregarse. Y sí, solo asegúrate de seguir eso y eso en el juego porque eso va a ser importante ahora. Pero sin embargo, en esta conferencia realmente vamos a crear nuestra propia pestaña. Por lo que nuestra propia pestaña en el menú, en el menú creativo. Y esto en realidad no es tan difícil. Entonces lo que vamos a hacer es crear un grupo público de ítem final estático, que vamos a llamar, digamos por supuesto tab. Hagamos esta pestaña del curso. Y esto simplemente va a ser un nuevo ítem Grupo. Y entonces va a generar automáticamente un montón de cosas aquí. Dentro de estos paréntesis, vamos a tener el nombre. Entonces esto va a ser peor tamp, digamos. Y entonces aquí en realidad una vez a, un icono. Entonces esta es una pila de artículos que regresamos y simplemente devolveremos una nueva pila de artículos. Y vamos a hacer los artículos mod que vamos a hacer el punto de alambre de cobre. Entonces en realidad sólo vamos a devolver nuestro alambre de cobre. Y aquí dentro también necesitamos un punto y coma al final. Y entonces en realidad ya hemos creado, ahora para usar esto, realidad necesitamos entrar en nuestros bloques de lema y artículos Ahmad y cambiar el grupo aquí por nuestro nuevo grupo que hemos creado. Así MC CourseSmart dot Ficha del curso. Y luego aquí también, MC dot-dot-dot Tab Curso. Sólo vamos a copiar esto y ponerlo aquí también. Entonces ahora ambos son lingotes y nuestro alambre y también nuestro bloque y nuestro o, o todos nosotros también siempre y cada elemento que creamos después siempre va a estar dentro de nuestra propia pestaña. Y por supuesto podemos crear aún más pestañas. Pero en nuestro caso, creo que un tabulador va a ser suficiente para los fines de este curso. No vamos a crear 1000 artículos. Y lo vamos a mantener, ya sabes, tal vez en tres dígitos. No, sólo bromeo. Por supuesto. No vamos a crear tantos artículos o bloques. Sí, vamos a ver si eso realmente funcionó y cómo se va a ver eso dentro de nuestro juego. Entonces primero lo primero, ya sabes, nuestro bloque y nuestra Ingrid siguen ahí. Y entonces realmente podemos ver que tenemos una segunda página aquí. Y aquí arriba, en realidad podemos ver que eso está funcionando. Ahora. En realidad hay elemento agrupando punto La pestaña del curso aún no está localizada, pero nuestros artículos y nuestros bloques están todos ahí. Entonces eso es genial. Pero en realidad todavía necesitamos localizar esto. Y esto por supuesto está sucediendo en la EN nosotros, Jason. Y eso tampoco es tan difícil. Simplemente vamos a hacer ítem Punto de grupo Ficha del curso. Y esa va a ser la pestaña Curso, y eso es todo. Y entonces esto se localiza y eso es básicamente todo lo que necesitamos hacer para el para que al pasar el cursor sobre él, en realidad obtienes un texto diferente mostrado. Sí, y eso es todo. De hecho, esto es lo fácil que es crear una nueva pestaña del curso y un nuevo grupo de ítems. Entonces, sí. 45. (Minecraft) crea una receta nueva: Muy bien, sigamos con el curso de Minecraft. Y en esta conferencia, en realidad vamos a crear unas nuevas recetas, ¿no? Entonces vamos a crear nuestras propias recetas. Y pueden ser lo que queramos, lo que puedas imaginar. Pero antes que nada, necesitamos crear algunas carpetas nuevas. Y la primera carpeta está dentro de la carpeta de recursos, necesitamos agregar un directorio, que me va a dar datos llamados. Y luego esto, en este directorio, realmente creamos nuevamente el directorio de cursos MC. Entonces este es básicamente el nombre de tu mod ID. Por lo que la AYUDA. Y dentro de eso tenemos una receta, recetas, recetas, tan plural carpeta. Y dentro de eso va E, va las recetas. Entonces, por ejemplo, digamos que queremos crear una receta para el bloque de cobre, ¿verdad? Cobre blog.js Jason. Y básicamente cómo es el camino, esta manera, esto está estructurado, es básicamente con el tipo de receta. Entonces en este caso, esto va a ser una recetas con forma, por lo que la elaboración en forma. Y entonces necesitamos especificar un patrón. Ahora este patrón se ve así. No, en realidad son esos corchetes. Y entonces este patrón es básicamente tres cuerdas. Y por lo general quieres escribirlas así, porque entonces se hace más fácil imaginar. Y entonces realmente tendremos un patrón. Entonces digamos XXX, XXX, XXX, XXX. Y esta es básicamente tu mesa de manualidades, ¿verdad? Entonces esta es la primera fila, segunda fila, tercera fila. Y si entonces dejamos, por ejemplo, este vacío, esto significaría entonces que la parte media del medio del, de la artesanía, la mesa está realmente vacía. En ese punto. En realidad vamos a hacer XXX por todas partes. Y ahora realmente necesitamos especificar qué es esto. Por lo que realmente necesitamos especificar una clave, vez más aquí con corchetes rizados. Y luego queremos precisar, bien, ¿qué es X, o, qué es x? Y x es un artículo. Y en nuestro caso, este es mc curso. Peor. Lingote de tolva, ¿verdad? Porque eso realmente tiene sentido tener nueve lingotes de cobre hacen un bloque de cobre. Pero, ¿dónde especificamos el bloque de cobre? Vamos, vamos a especificar eso en el resultado aquí abajo. Y ese va a ser otro artículo. Y ese va a ser Mc, peor. Entonces este es nuestro MOD ID nuevamente, y luego el nombre de este ítem. Y eso ya lo tiene. Cuando se trata de crear una receta en forma. Vamos a echar un vistazo a eso. En realidad echaremos un vistazo a la receta sin forma también. Entonces vamos a crear un nuevo archivo y ese va a ser el punto de lingote de cobre JSON. Entonces básicamente el, exactamente al revés. Entonces aquí realmente escribimos, una vez más un tipo y eso va a ser rafting Minecraft, sin forma esta vez. Y entonces podemos especificar grupo, pero no necesitamos hacerlo, así que sólo vamos a mantener esto vacío en este momento. Y entonces en realidad ha tirado de ingredientes. Y aquí dentro, tenemos tal cosa. Y ahora no lo sé, nueve lo formateó tan extrañamente, pero OK. Y luego van a tener artículos en ella. Entonces artículo y luego MC, curso, bloque de cobre. Otra de las razones por las que queremos que esto no tenga forma es básicamente porque queremos que sea capaz de ponerlo en cualquier parte de la mesa de manualidades. En un cuatro por cuatro, en un tres por tres, cualquiera que sea una mesa de artesanía que tengamos y aún la tengamos, devuelva eso. Y eso va a ser resultado del ítem MC curso Cobre en él, ¿verdad? Y entonces en realidad podemos especificar cuántos. Entonces podemos especificar el recuento nueve en este caso, ¿verdad? Porque necesitamos un nueve para elaborar una cuadra de pareja. Y entonces podemos usar nueve. Y luego usamos un bloque de cobre para recuperar los nueve. Entonces esto, puedes, por cierto, cada vez que hagas un resultado, puedes hacerlo así también. Por lo que podrías en teoría decir contar diez y obtendrías diez bloques de cobre de ella. Por supuesto, eso no tiene mucho sentido. Por lo que esto realmente debería funcionar. Ahora, totalmente bien. Vamos a probarlo. Vamos a correr y nos vamos a ver en microondas una vez que se haya cargado. Entonces sí. Está bien. Ahora estamos en Minecraft y ya he puesto una mesa de manualidades y vamos a ver si esto funcionó. Entonces si llenamos esto, realidad se puede hacer un bloque de cobre. Y también podemos meter el bloque de tapa y sacar los nueve lingotes. Y esto es por cierto, también agregó aquí. Por lo que esto funciona totalmente bien. Y el sin forma en realidad significa que, como dije, podemos ponerlo en donde queramos. Y también podemos, si estamos en no, lo siento. De esta manera, si estamos en supervivencia y en realidad podemos ponerlo aquí y también sacar las nueve piezas, sin problema alguno. Entonces sí, así es básicamente como puedes crear nuevas recetas. Y una vez más, después de esto, hay una tarea muy corta que no debería ser tan complicada donde realmente tienes que crear dos de recetas propias. Como dije, no debería ser tan loco o que alguna difícil. Y sí. 46. (Minecraft) bloqueos de bloques con mesas de botín: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a hablar de las mesas de botín y de qué pasa cuando los bloques se destruyen y deberían dejar caer objetos. Entonces en nuestros bloques simulados, tenemos dos bloques ahora mismo, el bloque de cobre y el de cobre o bloque. Y lo que queremos crear básicamente es algún tipo de sistema donde cuando rompemos el bloque de cobre, el cobre o bloque, entonces en realidad cae el artículo. Ahora cómo hacemos esto es con mesas de botín, y esto en realidad no es tan difícil. Vamos a crear una nueva carpeta aquí bajo los núcleos MC de datos. Y esta carpeta, este directorio se va a llamar tablas de subrayado de botín. Y luego dentro de ese directorio, vamos a crear otro directorio, y eso se va a llamar bloques. Y dentro de ahí, vamos a crear un nuevo archivo, y eso va a ser subrayado de cobre o así. Una vez más, nuestro nombre aquí, Jason. Y rápidamente voy a copiar sobre algo que ya tenemos preparado y luego vamos a hablar rápidamente. Entonces lo primero que especificamos como básicamente el tipo que queremos devolver. Y entonces tenemos que crear una especie de o más bien el tipo que es que ha sido tabla de botín por así decirlo. Entonces destruimos una cuadra, ¿verdad? Y luego regresamos otra cosa. Ahora. Entonces tenemos que especificar una alberca. Y esta alberca es básicamente, en cierto sentido, rodamos, en este caso una vez. Y entonces se puede, por ejemplo, un lugar cierto trans a tener algo se deje caer. Y en este caso, sólo vamos a rodar 1s y vamos a decir, bueno pase lo que pase, siempre va a caer un tipo de cobre o artículo, ¿verdad? Entonces aquí especificamos, hey item. Entonces este es un artículo, guerra del cobre. Esa es básicamente la magia ahora mismo fuera de las caídas de bloque. Sólo vamos a mirar esto por un segundo y voy a ver qué trae eso. Esto va a iniciar microscopio. Y aquí estamos en nuestro mundo. Ahora, en realidad cambiemos al modo creativo y nos demos un bloque de cobre acoplado o bloques. Y además conseguir un buen cerdo actos con los que podemos minar esto. Entonces, solo pongamos estas cerraduras y luego cambiamos de nuevo al modo de supervivencia, no, modo de supervivencia, un ego. Y entonces podemos sin sentido y poner todos los 0s o realmente cae comparable o bloques. Por lo que sólo podemos importarle esto. Y ahí vamos. Ahora con los propios bloques de cobre, no dejan caer nada porque no tienen una tabla de LU asociada a ellos. Y eso también es algo que se va a hacer como asignación. Es una tarea muy, muy pequeña. Básicamente está cambiando una variable en el archivo JSON y agregando eso. No obstante añadiré también. Esto es muy importante. Cada vez. Déjenme cerrar rápidamente de esto. Cada vez que agregamos un nuevo elemento en los bloques MOD o un nuevo bloque en la clase de bloques. En el futuro. No voy a especificar como no voy a especificar específicamente como agregar una nueva tabla Lu. Simplemente dejaré que esto haga básicamente es entre conferencias. Porque para nuestros propósitos, las tablas LU para los bloques no son tan difíciles. Y básicamente es simplemente copiar el archivo, cambiando de como básicamente solo el nombre. Y entonces eso es todo. Es por ello que cada vez que vamos a añadir otro bloque, no voy a grabar por qué cómo agrego la tabla LU. mejor voy a decir rápidamente que necesitas agregar esa nueva mesa tú mismo. No obstante lo haré. Cuando descargues los cambios que cuando puedas ver los cambios para cada una de las conferencias, en realidad puedes ver que he suministrado las tablas LU para todos los bloques también. No obstante, no voy a grabar específicamente porque no siento que eso vaya a sacar algún valor de ella. Veme copiar y pegar algo en, y luego cambiar un nombre. No parece ser tan grande, ¿verdad? Sí, eso es básicamente todo lo que hay para agregar una tabla de loo en este momento y para agregar una gota de bloque. Entonces sí. 47. (Minecraft) crea un nuevo artículo comida: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear nuestro propio artículo alimenticio. Entonces para hacer eso, vamos a crear una nueva clase dentro de nuestro paquete de artículos. Y eso va a ser una nueva clase Java enfriado cobre Apple. Eso es lo mejor que se me ocurrió, si soy absolutamente honesto con ello. Y esto se va a extender el artículo. Y luego vamos a crear un nuevo constructor aquí sin nada en él. Y simplemente vamos a devolver nuestro realmente vamos a hacer super, eso es incluso, mejor. Y dentro de aquí, vamos a hacer unas nuevas propiedades. Entonces esto es básicamente las mismas propiedades del artículo que hicimos dentro de nuestros artículos mod aquí mismo. Pero sólo lo vamos a hacer aquí mismo porque también queremos precisar algunas otras cosas. Porque esto es, bueno, esto se considerará un artículo alimenticio y por lo tanto, realmente queremos hacer este año. Entonces vamos a hacer en primer lugar algo así como vamos a hacer grupo de puntos, ningún grupo. Y esto sólo va a ser curso de Mc, Pestaña de curso otra vez. Y ahora queremos sumar la propiedad de comida aquí. Dentro de aquí vamos a crear un nuevo constructor de datos de alimentos. Y hay construcción de alimentos son básicamente te permite juntar un montón de propiedades también. Es lo mismo con las propiedades, pero en este caso, realidad queremos crear propiedades alimenticias. Entonces por ejemplo, quizá el hambre cinco. Y luego vamos a formatear un poco diferente. Ahí vas. Y luego vamos a hacer saturación 1.5. Y luego vamos a hacer un efecto. Entonces eso va a ser interesante. El efecto es básicamente cualquier efecto de poción que podemos poner en cualquier efecto de poción para eso necesitamos un proveedor de un, de una instancia de efecto. Entonces solo vamos a hacer nueva instancia de efectos. En lugar de aquí, creo que soplar podría ser el mejor. Esta es la duración y este es el amplificador. Entonces sólo vamos a hacer uno. Vamos a alejarnos un poco y ser un poco pequeños probablemente, pero esperemos que todavía sea legible. Y luego después de la instancia de efecto, aquí vamos a crear, vamos a escribir en una probabilidad de flotación. Y luego después del efecto pato-facturado, también voy a poner esa siguiente línea. Y luego esta cerca, y eso es todo. Ahí vamos. Apple Corporativa. Eso es básicamente todo lo que necesitábamos hacer para que esto sea un artículo alimenticio. Ahora por supuesto, también necesitamos registrarnos esto en nuestra clase mod Items. Entonces vamos a hacer final, estático, final que registro, objeto de registro, ya sabes el elemento de perforación. Y esta va a ser la manzana de cobre. Y esto va a ser artículos de punto de registro, registro DOT. Y ahora vamos a hacer el cobre, el cobre, el cobre en Apple. Y entonces esto es en lugar de devolver un nuevo artículo, en realidad vamos a devolver una nueva Apple corporativa, y eso es todo. Entonces en realidad no vamos a pasar nada porque ya lo hemos hecho aquí. Ahora por supuesto, lo que podríamos hacer es también podríamos darle al constructor un perímetro de propiedades y luego pasarlo y luego hacerlo así. Tengo que ser honesto, esto funciona totalmente bien también. Sin embargo puedes cambiarlo si quieres o también puedes experimentar un poco. Esto también es algo que tengo que mencionar es sumamente importante. Yo sólo experimento con algunas cosas. Si piensas por qué, ¿por qué esto se hace así? Entonces tal vez pruébalo de otra manera y tal vez va a funcionar o tal vez va a lanzar una flecha que ojalá entonces te diga por qué. A lo mejor el enfoque que pensabas no funcionó, no funciona o tal vez tienes que cambiar algo. Es muy importante simplemente experimentar de vez en cuando. ¿ De acuerdo? Pero hay algunas otras cosas por supuesto, que tenemos que añadir. Por lo que necesitamos agregar, por supuesto, nuestra agradable textura. Entonces vamos a agregar textura, pero aquí vamos a copiar rápidamente esto. Sí. Y luego también vamos a añadir el JSON para modelo. Este va a ser un nuevo expediente. Este va a ser el punto de manzana de cobre JSON. Y luego voy a copiar rápidamente esto porque ya lo hemos visto un par de veces. Mira, no debería ser una sorpresa. Y luego nosotros, y luego sólo tenemos que sumar esto aquí. Y en realidad vamos a hacer eso. Y entonces tengo éste aquí. Item.Nombre puntúa punto cobre. Se va a copiar Apple. Manzana. ¿Verdad? Ahora. También podríamos agregar inmediatamente la receta, pero no necesitamos eso ahora mismo. Vamos, en primer lugar, a iniciar Minecraft y ver qué tenemos ahí dentro. Y como otra nota para esta experimentación, o realmente, realmente creo que eso es algo importante que hacer. Bueno, Minecraft empieza aquí. Sólo voy a mencionar esto. Sólo experimenta un poco. Al igual, creo que es bueno si pasas por el curso una vez, qué experimento. Y hay algunas otras conferencias donde voy a hablar de esto un poco, un poco más de detalle, sobre todo al final. Pero la experimentación, esto es como lo que realmente te gusta, realmente aprendió los ins y outs absolutos al final. Porque a veces hay tal vez cosas especiales que quieres hacer que no están cubiertas aquí. Y van a ir manzana corporativa. Y ahora lo que podemos hacer, en realidad podemos, volvamos a la supervivencia, luego comamos uno. En realidad podemos comerlo. Y eso es probablemente porque no tenemos hambre. Entonces vamos a ser realmente fáciles. De lo contrario, no nos construirás un poquito, te llevarás algún daño y luego, y luego vamos a ver. Está bien, así que eso es, eso debería, en algún momento de nuestro hambre. Va. Ahí vamos. Está bien. Y ahora qué podemos hacer? Si lo hiciéramos? Ahora en realidad no hemos conseguido el 50% de probabilidad ahora, porque solo es un 50% de probabilidad de llegar al efecto resplandeciente. Es muy, muy importante porque eso es lo que especificamos. Voy a demostrarlo una vez más. Y en realidad lo hemos conseguido. Y esperemos que lo tengamos. A ver, ahí vamos. Ahora están resplandeciendo. ¿ No es genial? Bonito, ¿verdad? Entonces así es básicamente como se agrega un artículo alimenticio. Ahora en realidad quiero volver rápidamente porque nosotros, esto estaba en la Apple corporativa y eso es justo aquí. Anote la probabilidad justo hacia abajo. Por lo que esto afecta instancia. Y lo es, así que en realidad es el efecto en sí. En realidad tenemos que especificar una probabilidad. Ahora esto es 50%, ¿verdad? El 0.5 fue apenas el 50%. Si ponemos uno, entonces va a disparar todo el tiempo. Ahora pues, como dije, he metido el 50%. Podríamos, por ejemplo, imaginar que esto podría ser alguien que sea configurable, ¿verdad? Entonces tenemos un archivo config, que también vamos a hablar en una conferencia posterior. Y podríamos entonces tal vez decir, bueno, por defecto sería 50%, pero tal vez alguien lo quiera. Oye, en realidad quería un 100% del tiempo. Yo quiero tener el efecto resplandeciente cuando lo comas. Entonces eso va a ser algo interesante a considerar. Y así es básicamente como se agrega un artículo alimenticio. No es tan diferente de simplemente agregar un artículo normal. En este caso, solo es agregar esta propiedad de comida al artículo. Y sí. 48. (Minecraft) crea un nuevo conjunto de herramientas: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear nuestras propias herramientas. Entonces esto va a ser interesante definitivamente. Y también va a ser un poco tedioso porque básicamente vamos a hacer una cosa muy similar cinco veces más. No obstante, voy a pasar por crear una pala, una espada, un pico, Ho, y un hacha. Todo en esta conferencia. Y bueno, supongo que acabaremos de empezar. Entonces en los artículos de barro vamos a crear un otro objeto de registro. Por lo que una noticia pública estática, objeto de registro final de tipo ítem. Y el primero que vamos a probar va a ser la pala de cobre en este caso. Entonces y esto va a ser registro de artículos punto registro y luego darle el nombre cobre underscore pala. Y este va a ser un nuevo artículo de pala en este caso. Ahora, en realidad necesitamos proporcionarle un nivel de artículo aquí. Y antes de poder continuar con esto, en realidad necesitamos agregar un nuevo nivel de elementos para nuestro modo porque no tiene ningún sentido. Entonces lo que podríamos hacer, solo te puedo mostrar para que podamos hacer nivel de ítem. Y luego tenemos a Woodstock otra escritura, hierro, oro, y diamante. Pero eso tal vez, ya sabes, queremos nuestros artículos completamente propios aquí porque, bueno, quiero decir, por qué estar atentos a las otras cosas que podemos crear completamente desde cero, nuestra propia cosa. Por lo que vamos a hacer eso en nuestros ítems de mapa completamente en la parte inferior, debajo de la función de registro. Vamos a crear una enumeración pública, y eso se va a llamar el artículo mart aquí. Y esto va a implementar la muy bonita interfaz de artículos aquí. Y luego vamos a implementar métodos. Ahora esos son los métodos que vamos a implementar. Esas son también las diferentes cosas que necesitamos precisar. Entonces eso es básicamente lo primero vamos a hacer en esta clase es que vamos a conseguir cobre. Entonces esto es básicamente el enum copper. Y luego vamos a especificar también qué tipo de valores de retorno tiene para cada una de esas variables diferentes, que ahora vamos a crear. Entonces esto va a ser privado final int nivel de cosecha, ¿verdad? Entonces esto es básicamente lo que puedes mío al final. Entonces vas a crear una privada final int max usos. Esta es la frecuencia con la que puedes usarlo. Entonces el, así básicamente la durabilidad del, de la herramienta. Y vas a tener un flotador final. Eficiencia. Este es básicamente el modificador de velocidad. ¿ Qué tan rápido podemos realmente importarle algo. El daño de ataque va a ser, bueno, el daño de ataque curiosamente. Y entonces tenemos un int, que es la taza de té Incheon. Esto es justo lo bueno de una transmite que puedes ponerte ahí. Y luego vamos a tener un en gradiente el cual se va a reparar. Un material de reparación, en realidad material. Y eso es que especifica qué tipo de material podemos usar con el fin de reparar este tipo de artículos o este sí, este artículo. Entonces tenemos un montón de flechas aquí. No te preocupes, lo que podemos hacer es simplemente, ahora, después de que hayamos especificado todos esos, realidad puedes pasar el cursor sobre ellos y decir Añadir parámetros de constructor. Y ahora sólo podemos seleccionarlos a todos. Por lo que podemos simplemente seleccionar uno o Shift y luego seleccionar el otro, correcto, así y que se va a seleccionar todos ellos. Entonces vamos a decir, está bien, y esto está todo bien. Sólo di refactor. Y ahora en realidad tenemos un nuevo constructor creado aquí que ya tiene todo en él, lo cual es realmente bueno. Y ahora ésta, por supuesto, necesitamos precisar algunas cosas aquí, pero eso no es de preocuparse. Entonces eso es lo primero. Entonces tal vez nivel de cosecha, vamos a hacer dos. Max usa un 150. Yo sólo voy a poner algunos números dentro. El listado será deficiencia a 0.5. No vamos a tener daños de ataque por sí solos. Y la interpretabilidad va a ser como un 15, así que no tan mal. Y luego vamos a crear un nuevo ingrediente, en realidad, perdóname, el ego. Esto va a ser ingrediente y esto va a ser de pilas, pila de artículos nuevos. Y entonces esto va a abastecer los artículos mod empiezan a cubrir porque taza y luego punto GET muy importante. Solo para crear una pila de artículos, en realidad necesitamos tener un proveedor de artículos en este caso. Y esto se hace con el uso del método get aquí en nuestro artículo. Sí, esto es básicamente que tendremos que hacer para especificar el cobre. Ahora, por ejemplo, si tenemos un, oops, si tenemos un tal vez otro en un futuro, tal vez queremos agregar, ya sabes, aluminio ALU minium. Bueno eso va a reventar a algunas personas, aluminio o aluminio. Y entonces podemos, por ejemplo, tener algo nuevo, muy importante. Entonces no entramos a éste con punto y coma, sino con coma. Porque esto básicamente sigue siendo una enumeración. Eso es solo, ya sabes, como nota al margen básicamente. Pero sí, ahora mismo lo vamos a mantener en cobre. Y ahora en realidad también necesitamos devolver esas variables aquí. Entonces podemos realmente hacer retorno nivel de cosecha, luego devolver eficiencia, devolver el ataque, el daño, el nivel de cosecha, la habilidad encantar, y justo aquí entonces el material de reparación, ¿no? Y eso es todo lo que necesitamos hacer por nuestro lema aquí. Como dije, puedes sumar tantos años como quieras. Ya sabes, puedes agregar cobre y luego tal vez zinc y aluminio y todo tipo de cosas que quizá quieras agregar. En este tutorial, sólo vamos a añadir conferencia de naranjas. Específicamente, sólo vamos a sumar COP. ¿ De acuerdo? Entonces volvamos entonces aquí y luego en realidad digamos mod item tier dot copper. Y esa es la belleza de lo que hemos hecho. En lugar de tener que usar el hierro u otras cosas, en realidad podemos usar las nuestras. Ahora, entonces vamos a hacer 00 por esto y luego vamos a ir rápidamente a nuevas propiedades de artículo? No, definitivamente no es que no sepa lo que está haciendo aquí. Item.Nombre, propiedades, por favor. Gracias. Y esto va a ser este sí, en realidad, sí. daño de macs por defecto va a ser un 150. Y luego vamos a añadir un tipo de herramienta. Este es Lake. Lo más importante que hay va a ser una pala de punto tipo herramienta, por supuesto, y el nivel va a ser de dos. Y luego al final vamos a sumar un grupo. Y esta va a ser nuestra, por supuesto, nuestra propia ficha. Y eso ya es ID. Ahora, este daño de ataque a este modificador de velocidad o básicamente solo, ya sabes, cómo, qué tan rápido puedes golpear a algo y cuánto daño hace. Yo diría que una pala en este caso no hace tanto daño. Y en realidad vamos a completar la pala y luego vamos a sumar las otras después. Entonces sólo que tengamos esto hecho. Entonces para agregar la pala, por supuesto necesitamos hacer esto también aquí. De acuerdo, entonces en realidad sabemos que esto está bajo el punto, pero voy a romper esto con el grupo principal porque esto es como un ítem especial. Digamos que esta va a ser la pala de cobre, y esta va a ser la tasa de pala de cobre. Y luego dentro de nuestros modelos de artículos, por supuesto necesitamos tener eso también. Por lo que el cobre subrayan pala db.json. Y esto va a verse algo así. Tan sólo un rápido segundo que ahí vamos. Esto es, ¿verdad? Como ya has visto, este ítem generó. Y luego en la capa 0, sólo vamos a tener m score item, flash, pala de cobre. Y entonces por supuesto necesitamos suministrar la textura también. Vamos a hacer eso. Sólo voy a copiar rápidamente este sobre 2p. Y sí, claro. Y luego tenemos ahí la pala de cobre también. Y entonces la propia pala ya debería funcionar perfectamente bien. A ver. Y veamos qué es eso. Ahora. El gran cosa definitivamente fue el simulacro de nivel, consiguiendo eso hecho. Y entonces los otros básicamente son un poquito de copiar y pegar el mismo código que ya tenemos, ¿verdad? Simplemente creamos diferentes tipos de objetos. Entonces vamos a crear un objeto de espada, un artículo piquetes, y así sucesivamente. Entonces eso es todo lo que realmente se necesita ahí. Entonces veamos qué pasa aquí cuando entramos aquí. Entonces, en primer lugar, cambia al modo creativo. Y vamos a ver. Ajá, hay. Entonces en realidad tenemos esto. Esto no ha sido Oh, ¿puse artículos en lugar de artículo? Artículo MCQs, pala de cobre. Bueno, me olvidé de l al final, así que esa es la razón por la que eso no está funcionando, pero eso está bien. Entonces veamos y veamos si realmente podemos importarnos algo de suciedad con nosotros. Y sí, podemos. Definitivamente mucho más rápido de lo que no es mucho más rápido, pero es un poco Foster. Y veamos arena. Sí. Sanders definitivamente más rápido que con una mano. Y también podemos ver que esto tiene un daño de ataque de 100 en velocidad tecnológica de cuatro. Entonces en realidad el libro de texto es bastante alto. Todas las cosas consideradas. De acuerdo, entonces, pero no es muy efectivo como, como herramienta para matar gente. Matar gente. Es decir, matar a otros jugadores de Minecraft o turbas en este caso, pero sí, pero sí, está funcionando. Por lo que en realidad podemos usar esto para sacar artículos. Y como puedes ver, también tiene una durabilidad. Por lo que esto se romperá igual que los demás también. Pero lo que también podemos hacer es simplemente mirar rápidamente, por ejemplo, si sabemos que eso no es lo que quiero. En realidad quería un yunque. Perdón. Eso es lo que quería un yunque. Y lo haré es que podamos mirar esto, podemos ponerlo aquí. Y si entonces ponemos nuestros lingotes de cobre, en realidad podemos reparar esto. Esto es básicamente lo que especificamos con el ingrediente ahí. Y esto es, esto también está funcionando perfectamente bien. Entonces eso es bastante bueno. Vamos a guardar eso y luego dejar el juego aquí. En primer lugar, vamos a arreglar este porque eso es sólo que es embarazoso. Sí. Y entonces básicamente el resto es un poco de copiar y pegar. Entonces vamos a simplemente Bobber va a pasar por esto juntos porque, ¿por qué no? Y luego vamos a tener una espada tolva. Este va a ser un artículo. Y entonces en realidad hay que especificar, bueno tal vez hasta aquí. Y esto es por cierto, no un flotador sobre a, un entero porque el corto hace mucho más daño. Y entonces éste muy importante tiene que hacerse. En realidad, no necesitamos un tipo de herramienta para la fuente porque la fuente es la que no tiene un tipo de herramienta. Y luego tenemos un hacha de pico de cobre. ¿ Verdad? Como dije, es, es un poco de copiar y pegar. En este caso, estamos agregando una y toda la línea de herramientas, y este es un artículo de pico. Este también es un entero para el ataque. Y luego vamos a crear una, ¿Qué tal una bodega de cobre? Y me refiero a la herramienta, por favor guárdala PG aquí. Y esto va a ser un agujero de cobre. Y este es un oh, artículo. Esta, como se puede ver, algunas de las cosas no están localizadas, pero eso no importa porque realmente sabemos qué es esto partir de las otras cosas que ya hemos creado. Entonces los otros constructores, y este es entonces el hacha de cobre. Y hacha de cobre. Whoops. ¿Qué tal un 6EI axonal de cobre? No somos hijo de Elon Musk, lo siento. Actos ítem. Ahí vamos. Y entonces esto también es un hacha. Muy bien hecho. Está bien. Sí, así que eso básicamente son los registros de ítem hechos. Ahora por supuesto necesitamos tener también los modelos. Simplemente voy a copiar esos más y voy a mostrarlos rápidamente porque eso es mucho más fácil. Por supuesto, esos archivos se proporcionan todos donde este es el cobre X, aquí es todo lo mismo. Todos los archivos se proporcionan como siempre en, en realidad en la primera descarga, cada conferencia se proporcionó allí también. Entonces hagamos realmente las texturas también. Y entonces todavía tenemos que sumar esto. Y también voy a copiar esto porque una vez más, solo escribirme, como verme escribiendo esto probablemente no ayude a nadie en realidad. Ok, entonces ahora esos están dentro de aquí. Nosotros hemos hecho el artículo de modelos. Los hemos localizado en la EN us. Nosotros los hemos registrado a todos. A lo mejor simplemente agregue éste también. Entonces tal vez decir algo así como los actos. Un poco más de daño aquí, pero un poco menos de velocidad, tal vez como menos tres o algo así para que sea un poco más lento, que suele ser como funcionan las micro grietas, creo. Y luego veamos qué podemos ver cuando realmente entramos y conseguimos estos artículos. Ahora, por supuesto, estos artículos no tienen recetas en este momento en el tiempo. Yo por supuesto creo que las recetas son, en nuestro caso, no tan importantes porque no deberían ser que Es difícil implementar sobre poderío. Sólo muéstrale uno de ellos ahora mismo. Después de haber demostrado que el resto funciona. Entonces vamos a ver, vamos a deshacernos de esas cosas. En realidad guarde eso. Y luego veamos qué tenemos. Tenemos una espada. Eso es bastante bueno. Tenemos un, un hacha, tenemos un pico hacha, y tenemos un todo. Entonces veamos si podemos aguantar. Podemos eso es realmente bueno. Y también tiempo establecido. Ellos por favor. Gracias. Y veremos que éste funciona. Bueno, claro que esto funciona porque le tengo miedo al modo. Ahí vamos. De acuerdo, sí, éste también funciona para que en realidad podamos decir el suelo. A ver. En realidad podemos adivinar ahora no es muy rápido, pero tal vez en realidad no queremos que el cobre sea muy rápido. También podemos el mío con esto porque no es muy rápido. Yo lo haría, creo que es un poco más rápido que la piedra, pero más lento que el hierro, creo. Y entonces tomemos también la espada y acabemos de matar rápidamente a ese cerdo de ahí. ¿Verdad? Y por supuesto, lo que podemos hacer es que siempre podemos precisar las diferencias aquí. Bueno, también podemos ver esto. Entonces vamos a ponernos rápido como tal vez, quiero decir, tal vez no más abajo, ¿verdad? A lo mejor como una espada de iones. Y entonces tal vez también un pico, justo como ejemplo. Entonces la x antrópica en realidad tiene mucho más, mucho menos velocidades fiscales, ¿verdad? Por lo que la velocidad tecnológica aquí definitivamente es demasiado alta y un poco más dañada. Y luego un seis, justo en nuestro libro de texto también hay demasiado alto. Pero una vez más, tal vez esto sea algo que es como especial a los artículos de cobre, ¿verdad? Que son como el horno demente velocidad de ataque, ¿verdad? Pero no tienen tal vez tan alto de a, de a. ya sabes, durabilidad y también del daño de ataque tal vez, correcto, para que puedas atacar con ellos como realmente rápido, pero realmente no puedes hacer tanto daño con ellos. Y entonces vamos a mirar rápidamente a tal vez una receta, ¿verdad? Entonces solo vamos a copiar uno de esos para revolver rápidamente debido solo para controlar c y controlar v. Y entonces vamos a cambiar esto por, digamos que el cobre actúa por el bien de la discusión. Y entonces esto es por supuesto, la forma era una que no fue la cosa más inteligente que en realidad va a tomar el bloque aquí. Entonces tomemos el blog y luego digamos C, C, C. Y luego tomemos éste. Sí. Esto, entonces x va a ser Minecraft y esto va a ser palo. Si lo digo yo mismo. Yo sí lo creo que es Déjame solo rápido doble cheque porque quiero terminar sí, claro que es lo que quiero decir, ¿en qué estaba pensando? Por supuesto que se pega. ¿ Qué más serían los palos fríos excepto quizá palos, verdad? Eso es, eso fue culpa mía. Entonces MC cores y Alice va a estar cubriéndolo. Y por supuesto así es como haríamos esto. Por supuesto también hacer esto. Esto también funcionaría. Hacerlo de esa manera, también tendrá el otro lado hecho ahí dentro ya también. Entonces hagamos esto rápidamente y veamos si eso realmente funcionó. Y luego, entonces creo que en realidad terminaremos con esta conferencia, sí, con cómo agregar los ítems. Es como dije, un poco de, ya sabes, digo trabajo gruñido. Tienes que escribir muchas cosas y tienes que copiar muchos archivos. Ahora, proporciono todo y como recurso, por supuesto, así que eso no va a ser un tema. Espero. De hecho volvamos aquí. Y vamos a ver. Entonces dame algunos palos también. Palos y piedras pueden cobrar mis huesos. Y veamos si esto funcionó. Y bueno, eso es hilarante, ¿no? ¿ Qué hemos olvidado? Por supuesto, lo único que somos que hemos olvidado realmente en el eje de cobre tener el resultado es el hacha de cobre. Entonces ahí lo tienes. Sí. Pero claro que eso no es tan grande de un trato. En realidad hemos visto que el, esta receta funcionó. Simplemente devuelve el artículo equivocado. Pero eso está bien. Y lo general, así es básicamente como se agregan herramientas al juego. Lo primero que hicimos, por supuesto, fue el nivel de ítem que es muy importante. Y esta es también una forma de ver básicamente cómo, cómo el to, para básicamente rasgar tus artículos, ¿verdad? Entonces es posible que pudieras cobre, como dije, y entonces tal vez conseguir bronce, que es aún mejor, y así sucesivamente y demás. Entonces si ya has visto o jugado otros modos populares, entonces definitivamente has visto la forma en que eso funciona y que esos también son muy interesantes. De todos modos, esto fue básicamente todo. Y si lo deseas, puedes, por supuesto, añadir las recetas tú mismo. Ahora no los sumaré porque deberían ser triviales en este punto para agregarlos. Y también son así de importantes en este caso porque como dije, deberían ser triviales para sumar. Y vamos a probar muchas cosas en creativo en este punto de todos modos. Entonces sí, sí, como dije, también, las texturas y el Jason's aquí están todas provistas también. Y sí, así fue básicamente como agregas herramientas a Microsoft. Entonces sí. 49. (Minecraft): Muy bien, bienvenido de nuevo al curso de Minecraft. En esta conferencia, vamos a hablar de eventos. Ahora, los eventos van desde un montón de cosas que pueden suceder en Minecraft a las que en realidad podemos, digamos, conseguir a los oyentes. Entonces podemos responder a eso y hacer que las cosas sucedan. Entonces lo primero que vamos a hacer es en lugar de nuestro paquete del curso MC, vamos a crear un nuevo paquete al que vamos a llamar eventos. Y dentro de ese paquete, vamos a crear una nueva clase. Y llamaremos a ese lema eventos. Entonces esta clase de eventos mod va a ser realmente interesante porque ahí dentro vamos a especificar dos eventos. Y estos son ejemplo Eventos. Y luego vamos a hablar de unas cuantas cosas. Entonces lo primero que vamos a hacer es que sólo va a ser un vacío público. Y vamos a llamar a esta clase de ovejas descubiertas. Y ahora lo que pasemos como parámetro va a ser el evento que en realidad básicamente desencadena esto. Entonces cuando bajamos, de repente no podemos verlos así, pero se puede ver así. Por lo que en este caso, un evento de entidad de ataque ocurre cada vez que una entidad es atacada. Y luego hay, como se puede ver, en este caso, no hay ningún evento de ataque vivo. Hay, hay numerosos tipos de eventos. En este caso, vamos a usar esto, el evento de la entidad de ataque porque queremos saber cuándo se ataca algo. Y ahora, ¿cómo lidiar con esto? Digamos, bueno, en primer lugar, necesitamos realmente agregar el evento de suscripción encima de eso. Esto es para que realmente vea si la información sobre herramientas tiene algo. Sí, eso es realmente lo hace. Entonces básicamente la idea es que esta clase, entonces puede ser para esta clase y luego este método en esta clase en realidad puede ser frío a través de este evento que se dispara. Esa es una explicación muy básica aquí. Y entonces, ¿qué queremos? Bueno, destapado barato, básicamente, hemos implementado el hecho de que cuando comes manzana descubierta, entonces te pones resplandeciente. ¿ Qué tal lo que implementamos es que cuando te gusta una oveja taka con esta manzana, entonces también obtienen el efecto resplandeciente. Eso es algo que podría ser algo interesante de hacer. Y recuerda esos eventos que puedes, quiero decir, básicamente puedes hacer casi cualquier cosa a la que llegue tu imaginación, ya sabes,. No obstante, ya sabes, como cuanto más complicado sea el evento que quieras poner , más, más complejo va a estar el código, un más complejo va a ser de hacer. Pero sólo vamos a pasar por esto. Entonces, en primer lugar, queremos conseguir el evento y ahí realmente podemos conseguir al jugador. Y luego nos agarran artículo, principal punto de mano getItems. Escribe esto simplemente devolverá el artículo como un artículo. Y entonces solo podemos decir, hey, si esto es igual al punto com del mod item o Apple dot se pone bien. Entonces esto básicamente sólo pregunta, Oye, ¿sí, el jugador ahora mismo está sosteniendo la manzana de la alacena en la mano? Y si sí, entonces vamos a entrar. Genial. De lo siguiente que queremos hablar, o queremos preguntar es básicamente el objetivo. Entonces si el objetivo está vivo, ¿verdad? Este sería el barato en este caso. Entonces atacamos algo y luego la oveja, la oveja sigue viva. Eso es genial. Entonces tendremos que usar aquí a la entidad viviente. Por lo que este sería Target. El objetivo es igual al punto de evento de entidad viviente, evento dot target. Entonces lo que está pasando aquí es básicamente que solo le estoy costando al objetivo, que es una, una entidad en una entidad viviente, ¿verdad? Y estoy guardando esto porque en este caso necesitamos a la entidad viviente. Por lo que en realidad preguntamos si Target instancia de entidad ovina. Y esto básicamente es sólo preguntar, OK, si es este objetivo, una oveja, eso es todo lo que esta pidiendo porque la oveja, como se puede ver, en realidad extiende la entidad animal y las entidades animales entidad elegible y su entidad de criatura y esa es entidad trapeadora y esa es entidad viviente. Aquí está pasando mucha, como se puede ver, mucha herencia. Pero básicamente una entidad viviente es también una entidad ovina o más bien al revés. No estoy seguro ahora, pero eso no es lo que es muy importante, pero sin embargo están relacionados en, en herencia. Y si ese es el caso, entonces lo que hemos golpeado en este momento, cuando llegamos aquí es una oveja. Ahora, lo que queremos es el jugador. Vamos a conseguir rápidamente al jugador. Porque ¿por qué no evento dot a tu jugador? Y entonces lo que vamos a decir es jugador punto, conseguir artículo, mano principal. Y luego vamos a encogerlo por uno. Entonces lo que hace esto es que va a, digo, digamos que eliminemos uno de los artículos retenidos, ¿verdad? Entonces en este caso, en realidad vamos a usar una de las manzanas de la alacena para eso porque, ya sabes, solo golpeándolo y después teniendo este add, este efecto probablemente no sería eso, ya sabes, lo que sea y yo balanceé idea. Pero en el, en ese sentido, ya sabes, no estamos hablando de equilibrio realmente. Y luego vamos a hacer objetivo y en realidad podemos hacer AGREGAR efecto poción y podemos añadir un, otro. Por ejemplo aquí, esto es básicamente lo mismo que hicimos con al comer la manzana, donde teníamos afectos de punto resplandeciente. Y entonces tenemos la duración que en realidad teníamos que precisar. Hagamos 600 sólo por el bien de la discusión ahora mismo. Y sí, y eso fue básicamente todo. Y entonces también voy a añadir, sólo porque va a ser interesante ver, vamos a hacer es remoto. Entonces esto básicamente sólo comprueba si estamos o no en un servidor o no. Y tengo que justo después de que hayamos hecho esto, en realidad tengo que decir algo más para eso. Entonces vamos a tener sólo una salida de un mensaje dentro del, dentro del nuestro chat en, dentro del juego, ¿verdad? Entonces esto va a ser punto de formato de texto. Hagamos otra, ya sabes qué, hagamos realmente algo como amarillo, Sí, así. Y luego vamos a hacer ovejas ahora es resplandeciente, resplandeciente, ácido legal así. Y luego vamos a jugar R dot, manda el mensaje. Y luego vamos a hacer un nuevo componente de texto de cadena. Y en lugar de eso, sólo podemos poner el mensaje. Y entonces realmente necesitamos suministrarlo también con el ID único, la UE, el UID, el UUID del jugador. Y ese es básicamente el Un evento que ahora se disparará. Entonces vamos a disparar este método cada vez que una entidad sea atacada. Y va a preguntar, bueno, ¿tenemos un armario Apple en la mano? Si sí, entonces preguntamos, ¿está vivo el objetivo? Entonces preguntamos, bueno, es la oveja objetivo. Y si ese es el caso, entonces vamos a pasar por aquí y en realidad al efecto de poción de soplar a través de lo barato o la duración de 600. Y también necesitamos agregar algo aquí dentro de nuestra clase mod mod. Entonces el modo de curso MC, y eso va a ser Minecraft o bus de eventos, que se registren. Y entonces queremos realmente crear una nueva instancia de eventos mod aquí mismo. Y en realidad podemos flotar sobre esto, creo que es la tasa de registro. Por lo que podemos o bien tener la instancia de un objeto tan creada con nuevo o simplemente podemos hacer una instancia de clase. Y entonces tendríamos que hacer esto en estática. Por lo que este tendría que ser un método estático. En este caso, sólo vamos a hacer uno nuevo. Creo que eso está totalmente bien. Esto va a funcionar bien. Y esto ya debería ser todo lo que tenemos que hacer para este evento en particular. Como dije, vamos a sumar otro evento, un segundo después de comprobar si esto funciona. Y entonces también tengo algo que decir sobre el lado del servidor y luego también algo que decir sobre la siguiente asignación, que va a ser un poco más creativa, pero me estoy adelantando. En primer lugar, vamos a ver. Ups, así que montones. Sí, eso es lo que queremos. Veamos qué podemos ver aquí mismo con el evento. Entonces A-LC e primero cambiará aquí y después nos vamos a ir, o una oveja. Se. Y ahora no importa si estamos o no en un creativo o, o no. Entonces esto es un barato y ahora si lo golpeo con la manzana cubierta, vamos a conseguir más barato resplandeciente. Ahora esto, él, ella pasó el efecto resplandeciente y en realidad hemos perdido una manzana. Se consumió la manzana. En realidad puedes volver a ver esto, ¿verdad? Sé que tengo 605958. Por lo que cada vez que le pego a una oveja con ella, en realidad se consume una manzana. Sí, y también recibimos el mensaje de que ahora las ovejas están brillando. Eso es bastante bueno. Por lo que eso funciona sin problema. Y como puedes ver, esto es como, es un evento muy sencillo. Digamos, bueno, ya se puede imaginar que hay un montón de cosas que podemos hacer con esto. Ya sabes, podrías hacer todo tipo de cosas. Se puede cambiar la posición de una, una entidad. Podrías matarlo de plano. Tal vez incluso puedas curarlo. Podrías hacer todo tipo de cosas con artículos y, y diferentes eventos ocurriendo. Ahora lo segundo que quiero hacer es básicamente cada vez que, cuando tenemos una, cuando tenemos una oveja que está brillando, ¿verdad? Entonces lo que realmente quiero que pase es que queremos tener una gota, un lingote de cobre, ¿verdad? Eso es sólo una, ya sabes, como una idea linda, creo que una vez más, es probablemente cuando lanzarías una modelo como esta, probablemente no sería tan genial. Y llamemos a esto a las gotas de ovejas. Y esto va a ser un evento de gotas vivientes en alguna parte. Creo que no soy un 100% seguro. Se tiene una lista de los eventos a los que puedes llamar aquí. Y esto, por cierto, también detalla algunas cosas de este evento. Eso es realmente bueno. Pero hay una lista en alguna parte. Voy a ver si lo encuentro o no. Si lo encuentro, entonces probablemente voy a vincularlo o no probablemente definitivamente voy a vincularlo tiene recurso en esta conferencia porque es, ya sabes, no puedes saber qué eventos están pasando aquí, ¿verdad? Por lo que también hay un evento undef. Entonces cuando el jugador muere o se puede tener un evento cuando una, una entidad se hace dieta. Entonces hay tantas cosas que pueden pasar. Y como la vida cae evento cuando realmente pasamos por encima de él, en realidad podemos ver que esto se dispara cuando una entidad es la muerte provoca que aparezcan elementos caídos. Entonces esto básicamente, antes de que aparezcan estos artículos, entonces el evento se dispara y luego, así que en realidad podemos cambiar algunas cosas. Entonces lo que vamos a hacer es que vamos a hacer una entidad viviente. Esa va a ser nuestra entidad. Y luego vamos a hacer evento dot get entidad viviente, entidad viviendo ahí. Yo. Y entonces, en primer lugar, preguntamos si se trata o no de una oveja, simplemente por el hecho de que en este momento sólo estamos preocupados por las ovejas que están brillando y no por nada más. Y vamos a ir por una entidad del Mundo, del II Mundo, lo siento, datos de entidad, mundo DT. Y tenemos que importar aquí la pérdida mundial. Y luego en realidad vamos a salvar el, va a haber un poco complicado y así esas son las gotas se pone frotes. Entonces básicamente decimos, vale, ¿qué gotas habrían caído de la oveja, verdad? Por ejemplo, la lana y qué es, la carne de oveja en realidad, ahora mismo, no saben cómo se llama. Voy a comprobar en este momento es tan pronto un más cálido en el juego. En realidad no sé, lo que sea. Por lo que esos caerían. Y luego realmente vamos a guardar esos y gotas y luego comprar agregando a las gotas, en realidad podemos tener algo más agregado también. Entonces esto va a hacer eso. Ahora. De hecho voy a hacer algo sólo para que podamos simplemente, ahora eso es ahora lo que quiero. Gerente dot get logger. Y luego vamos a depurar. Y esto va a ser Entity dot, conseguir efectos oceánicos activos solo para que sepas qué, ¿cuál es el tema aquí? ¿ Por qué eso no funciona con el gestor de registro? No se puede hacer referencia al método no estático desde un contexto estático. Oh, bueno, quiero decir yo no sabía que estábamos simplemente no tiene ningún sentido. Muy seguro que aquí arriba hacemos exactamente lo mismo. Entonces bueno, eso no tiene absolutamente ningún sentido. Pero ahí lo tienes. A veces esas cosas que simplemente no tenían sentido que hace algo cambian aquí. Bueno, sea lo que sea. Ahora en realidad podemos tener un log c. Esto es a veces, a veces estas cosas locas. Por eso no estoy recortando esto ahora mismo. Porque esto a veces algo loco contaminante. Yo soy como, de acuerdo. Nadie sabe realmente lo que pasó ahí. Bueno, alguien en este planeta probablemente lo sabe, pero en este caso, eso fue sólo un bicho raro. Bueno, y entonces queremos preguntar en realidad es si cierto efecto, por lo que en este caso afecta a la oscuridad, resplandeciente está activo, ¿verdad? Entonces tengo este registrador aquí para que realmente podamos ver en el en el cuando es, cuando se está ejecutando el micrófono que realmente podemos ver en el registro lo que sucede. Entonces cada vez que en realidad golpeamos a una oveja, vamos a sacar esto impreso y entonces realmente podemos ver qué porción activa afecta a la oveja tiene. Es sólo una forma interesante de hacer esto. Y mientras sea debug, eso es genial. También es algo muy importante de hacer en realidad. A veces meten al registrador ahí y luego solo, ya sabes, bloqueen algo y luego vamos a hacer gotas dot add. Este va a ser nuevo elemento entidad y elemento, entidad. En realidad entidad de elemento. Esto va a ser en el mundo. Vamos a hacer un, va a estar en posición. Esto es un poco t es una vez más porque entonces realmente tenemos que especificar cada una de las tres coordenadas. Entonces en realidad tenemos que hacer como y y también Entity dot z, donde z. Y luego vamos a hacer una nueva pila de ítem de punto de mod item cubriéndolo. No, cobre de clase no. Cobre en buen punto get. Por supuesto una vez más, porque estamos creando una nueva pila de ítems, ahora ya debería ser. No obstante, eso es todo lo que realmente necesitamos agregar. Para agregar esto muy interesante, pero en realidad bastante específico. Disculpe. Eso es en realidad todo lo que necesitamos agregar. Este comportamiento interesante y en realidad bastante específico en este punto, ¿no? No es así. Eso lo verías en todas partes, en todos los modos. Y esto es básicamente, ya sabes, cómo puedes pensar en estos eventos. Entonces tienes la idea de Ahmad y eres como, oh, quiero este anuncio y tal vez no estaba como esta loca. A lo mejor final, punta piqueta Eso es realmente bueno al principio, pero tal vez te teletransporta alrededor cada vez que rompes una cuadra y puedes hacerlo. se puede hacer genuinamente. Entonces por eso digo que, ya sabes, tu imaginación es realmente el límite aquí. Y ahora lo que vamos a ver es si engendramos una nave nueva, ¿verdad? Ahora mismo no pasa nada. Si lo matamos, sólo vamos a conseguir esto ahora realmente quiero saber cómo se llama esto. Se llama carnero. Ah, no estaba seguro de eso. En realidad por aquí a la arena y luego lo vamos a encajar aquí. Ahora la que estaba cargando y luego vamos a matarla. Y mira eso. En realidad conseguimos incorporarlo fuera de esto. Ahora, claro, lo que podríamos hacer es probablemente algo así como tener el, tener la, tener una probabilidad de que un lingote de cobre caiga, ya sabes, tal vez como 1% o algo así. Y entonces por supuesto, se restablecería el equilibrio, por así decirlo. Ahora si realmente volvemos y podemos realmente, oh, bueno, tanto por eso. Bueno en realidad lo podemos ver aquí. Ahí, en realidad tenemos la depuración aquí de nuestros eventos MOD como puedes ver. Y ahí está, efecto punto minecraft resplandeciente. Y entonces tenemos la duración también. Y aquí, cuando golpeamos el barato de antemano y matamos a las ovejas de antemano, en realidad no teníamos nada aquí dentro, ¿verdad? Por lo que esto estaba completamente vacío. Y luego después de que lo golpeamos aquí, en realidad teníamos un o lo matamos. En realidad teníamos los efectos activos get y uno de los puntos minecraft más efectos soplando. Entonces eso también es muy importante. Conoce, a veces quieres depurar algo y luego solo usas el log Manager. Ahora esta no es necesariamente la mejor manera de, para hacer referencia a un mucho manager presupuestos consiguiendo la asignación de registrador de ciática, pero va a estar bien para nuestros propósitos en este caso. Una cosa más que algunos eventos se tienen que hacer en el lado del servidor y algunos eventos se tienen que hacer en el lado del cliente. En este punto, esto va a funcionar tanto en el servidor como en el cliente. Pero hay algunas, digamos, cosas muy específicas. Pero una vez más, hay tantos eventos que pueden ser que en realidad se pueden referenciar que es difícil hacer como un breve resumen o, ya sabes, para, resumirlos. Y cualquier recurso adicional que me parezca interesante para esto o que te vaya a ayudar con esto. Voy a poner en los recursos aquí. Y también el, ya sabes, puede ser a veces un poco complicado. Pero una vez más, lo importante cuando no lo haces, como cuando algo no sucede, usa el gestor de depuración o el gestor de depuración, el AlarmManager, y depura algunas cosas. Y además, creo que eso sería que es en su totalidad. Por lo que tengo la pequeña asignación adicional después de ésta. Y quiero tocar eso rápidamente antes de que termine esta conferencia. Y aquí es donde realmente tienes que crear tu propio evento. Y esto es libertad completa. Puedes crear lo que quieras. Puedes hacer cosas locas, puedes hacer todo, lo que quieras. Pero debería ser un método, ¿no? Entonces uno, básicamente un evento aquí. Y puede ser cualquier cosa. Puede ser que saltes arriba y luego de repente un 1000 GoldieBlox cayó del cielo. Y no importa nada de lo que quieras hacer. Pero tiene que ser, ya sabes, cuanto más creativo, mejor. No necesariamente se califica, digamos, pero los miraré. Y en realidad estoy muy emocionada por como por lo que se te ocurre, ¿verdad? Al igual que yo, en realidad soy como un levemente emocionado porque en realidad espero que como algunos eventos locos sean bastante geniales si los eventos son, sabes, algo así como esta longitud, ya sabes, o incluso más largos, pero no como no como dos líneas. mí me gustaría que estuviera un poco no triste, pero no sería lo mejor si solo somos dos líneas, pero claro que puedes hacer lo que quieras. El encargo es muy abierto. Por eso realmente no hay, no hay solución para ello. Al igual que mientras el evento funcione, has hecho la tarea. Por lo que me interesa mucho lo que se te ocurra. Y esto fue básicamente por la conferencia del evento. Espero que haya sacado algo de esto. Y además, si hay alguna pregunta, una vez más, siéntete libre de preguntar en cualquier momento. Y también, si lo has hecho, si sientes que realmente has logrado algo y has ido más allá en el desarrollo de un modelo. De verdad te agradecería que me dejaras una reseña. Y sí, eso es básicamente todo nuestro que decir. Gracias por escuchar. Y sí. O, o simplemente un pequeño adenda aquí en este mod eventos uno. Y en realidad tengo una manera más fácil de averiguar qué eventos hay. En realidad se puede pasar el mouse sobre, por ejemplo, este evento de entidad de ataque. Y luego solo pasas por el árbol extiende básicamente hasta encontrar eventos, ¿verdad? Y entonces simplemente vas a su fuente justo aquí. Y luego el evento de archivo Java realmente abriremos. Esto es en algún lugar del, en algún lugar de los otros archivos, como en las bibliotecas externas. No te preocupes por ello. Bueno, lo que podemos hacer entonces, y esto es como en realidad calificar, en realidad podemos simplemente hacer controlar la edad. Y entonces se abrirá toda la jerarquía. Ahora, podrías ser como, oh Dios mío, esto son muchos eventos. Sí, es aún más porque hay eventos de bloqueo que podemos hacer referencia, ¿verdad? Y luego sin eventos de pistón, entidad lugar eventos, puedes haber recortado eventos de crecimiento. Podemos tener eventos mundiales donde Shang, Ya sabes, y luego aquellos que realmente usamos donde una entidad eventos y usamos los eventos de la entidad viviente, como se puede ver bastantes aquí. Y luego también hay eventos de Jugador. Y como también puedes ver, muchos eventos a los que puedes referir. Entonces y en teoría, cuando tienes los eventos por los que vas, realmente no estás limitado por nada aquí. Como puedes ver, hay tantas cosas que podemos hacer, y sobre todo tú puedes hacer por la asignación. Entonces sí, eso es sólo rápido lo que quería mencionar. Y sí. 50. (Minecraft) Añadir consejos de herramientas a los artículos: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear una descripción de herramientas para un elemento. Ahora bien, esto en realidad no es tan complicado. Y lo que vamos a hacer es crear un tooltip para nuestra Apple corporativa, porque ya tenemos un archivo apple corporativo. Por lo que una clase que se dedica a este ítem. Y en realidad necesitamos una clase o para este método que vamos a agregar. Por lo que no podemos simplemente hacerlo en artículos R mod. En realidad tenemos que tener una clase específica. Y yo usualmente también, esto es algo en lo que se puede pensar. A veces realmente queremos que nuestros artículos tengan una clase separada, y a veces no. Ahora en el transcurso de nuestra app, en el caso de nuestra Apple, lo siento, en realidad la tenemos porque queríamos tener un artículo alimenticio. Y a veces si queremos un comportamiento más especializado en los artículos, entonces por supuesto tiene sentido tener una clase adecuada para ellos. Pero sin embargo, así que sólo vamos a usar la manzana de cobre como conejillo de indias una vez más para esto. Y lo que vamos a hacer es que vamos a tener un vacío público. Y esto podría ser agregar información. Se va a llevar una pila de artículos. Atrás, se va a tener un mundo, mundo, una lista de componente de texto TIC, que va a ser el tooltip y también una bandera de punta de herramienta AI, bandera vieja, ¿verdad? Entonces, en primer lugar, necesitamos importar algunas clases, importar clase, y luego la clase mundial y por supuesto la clase componente de texto TIC. Ahí vamos. Y eso ya fue todo. Ahora en realidad también necesitamos tener una especie de, oh lo siento, la lista también. Perdón, hace un tiempo. java.util. Sí, ahí vamos. Ahora funciona. Y esto también va a ser una sobreescritura. Por encima, ¿verdad? Ahora, en realidad queremos tener una especie de clase de ayudante y vamos a crear eso en nuestro Util. Y estos van a ser los teclados, ayudante de teclado. Sólo voy a llamarlo ayudante de teclado. Se puede llamar el teclado util. También puedes llamarlo teclado. Teclado Utility Board ayudante. Ayudante de entrada tal vez. Pero esto va a estar bien. Sí, y ésta en realidad tendrá dos cosas también. Y esto va a tener un booleano estático público. Y eso va a ser es mantener turno. La idea es que probablemente hayas visto si has jugado antes algunos Manpacks, que, a veces dice, oye, puedes mantener turno a para más información o puedes sostener, puedes mantener Control para más información. Y esto es básicamente lo que vamos a implementar aquí. Entonces en realidad va a, bueno, no va a ser tan diferente. Entonces vamos a hacer regresar y luego vamos a tener un montón de cosas. Entonces esto va a ser mapeos de entrada. El punto es clave hacia abajo. Entonces esto básicamente solo detecta si una clave está bajada o no. Y ahora lo que queremos es que queremos tener minecraft dot getInstancia, dot get main window que se manejen. Entonces esto va a devolver el Sort of the, la dirección, digamos. Y entonces ésta va a ser la tecla de turno izquierdo. Sí. ¿ Verdad? Tristemente, esto no lo es, esto no está mapeado en este caso. Pero sí, y muy importante que esto sea insanamente importante. Esto va a ser sólo en este punto cliente dist dot lined. Y esto tiene que importarse. Esto es realmente importante porque esto es algo que sólo sucede para el cliente porque un servidor realmente puede mantener presionado Shift, ¿verdad? Esto es como muy importante y esto va a ser mantener el control. Y esto va a ser, simplemente tenemos que cambiar esto para controlar. Eso es todo lo que tenemos que hacer aquí. Sí, y ese es básicamente nuestro ayudante de teclado. Ahora esto sólo nos va a ayudar para que no tengamos que hacerlo. Cada vez que queremos decir, oye, si, ya sabes, sosteniendo turno, éste, es un poco más fácil de hacer. Los ciudadanos también serán blancos en la clase util. Ya sabes, es sólo una cosita que nos ayuda con las utilidades. Básicamente, es una utilidad. Sí. Sí. Y entonces aquí en realidad vamos a pedir el ayudante del teclado. Entonces el ayudante del teclado que aquí. Ahí vamos, va a haber está sosteniendo turno. Esa es la pregunta. Y si lo estamos, entonces vamos a hacer una cosa. Y si no lo estás, entonces realmente vamos a mostrar otra cosa Eso básicamente interesante es una forma muy interesante de formatear esto una vez más. Entonces, primero que nada sumemos el que en realidad estamos sosteniendo turno. Entonces esto es lo que vamos a ver cuando sostengamos Shift, ¿verdad? Por lo que este va a ser un nuevo componente de texto de cadena. Y dentro solo podemos agregar una cuerda, esto básicamente lo que vamos a agregar. Entonces digamos que cuando mantenemos turno sobre la bomba, el resit, la manzana, entonces realmente queremos decir, convierte a las ovejas en lingotes de cobre. ¿ Qué tal eso? Así, ¿verdad? Y luego la otra, realmente no sé por qué él así estamos en el formateo en este punto, hurd. Está bien. Y luego cuando él no tiene eso, realidad podemos tener algo genérico. Que cuando lo piensas, como esto es algo que también podrías tener como bebé en los artículos mod. Se puede tener en los elementos mod una cadena estática que siempre tenga esto, ¿verdad? Porque esto es por cada artículo que va a ser el mismo. Pero esto va a ser un poco raro. Entonces esto está usando siete e. Y entonces queremos mantener turno. Perdón. Bueno, dentro como a medida que vamos, voy a explicar pronto. Yo sólo voy a tener que volver a jugar. Copia esto más. Y este es el 77. Y entonces va a ser o más formación. Seguro. En cuatro mayores. Está bien. Eso es todo. Sí. Está bien. Y esto es simplemente un color que se agrega para el componente de texto, ¿no? Entonces estos son, estos son colores. Voy a suministrar un como recurso aquí, en realidad voy a suministrar un, el color. Al igual que creo que es una imagen donde realmente se puede ver qué colores se pueden hacer. Es casi lo mismo que el, creo que en realidad es lo mismo que los colores que puedes tener en el en el chat. Sí, exactamente. Correcto. Y entonces también queremos hacer información super punto-punto-punto y solo quieren sumar todo esto. Por lo que el tooltip mundial y también la bandera, se irían, correcto. Eso es todo por el sumar el total. Esto debería ser. Por lo que sólo es el ayudante del teclado y el Apple de cobre. Y vamos a ver si realmente ves esto. Como dije, alguien como este, todo el turno uno, eso es probablemente algo que debería ser también como una cadena estática de cadena estática pública y los elementos mod por ejemplo. O podrías imaginar tal vez tener una, otra clase o clase util donde realmente tienes esas cadenas todas guardadas. Para que eso pueda referirlos siempre que lo necesites. Porque agregar esa cadena cada vez que hay no tiene sentido. De acuerdo, entonces estamos, ahora, vamos a ver. Entonces, en primer lugar, ya sabes, todo esto es normal y luego aquí, oh, sostén turno para más información. Y cuando sostenemos el Turno convierte a las ovejas en un coberturas. Y eso es bastante guay, ¿no? ¿Es? Agrega, eso me gusta. Eso es bastante bonito. En realidad podemos sostener Shift y luego obtenemos nueva información. Ahora, vamos en realidad también tú que ahora no va a estar tan cerca de la, la otra frase. Sí, básicamente sólo el ayudante del teclado y la Apple corporativa. Pero en general, creo que eso sigue siendo bastante sencillo. Y sí, eso fue básicamente por agregar el tooltip. Y sí. 51. (Minecraft) crea un nuevo Set de Armor: Muy bien, bienvenido de nuevo al curso de microondas. Y en esta conferencia vamos a sumar nuestra propia armadura, ¿no? Entonces, ¿qué podemos hacer con nuestra armadura? Y ya hemos visto que con los artículos, las tuplas, fue, ya sabes, bastante sencillo. Ya sabes, había algunas cosas pero nada demasiado loco. Lo único que era un poco tedioso fue el nivel más ítem. No obstante, esto algo que realmente tenemos que hacer de nuevo. Por lo que en realidad tenemos que crear nuestro propio material de armadura mod. Por lo que este va a ser un material de armadura mod enum público. Pero t es real. Y esto va a implementar un material de armadura. Y vamos a conseguir rápidamente los métodos aquí una vez más. Y esto es básicamente lo, casi lo mismo que teníamos con los que teníamos en los artículos de Mott aquí. Ahora con la armadura. De acuerdo, hay, una vez más, algunas cosas que realmente tenemos que precisar aquí. Entonces, antes que nada, vamos a volver a hacer cobre. Entonces vamos a crear algunas variables privadas. Otra vez. Esto va a ser una durabilidad entera final privada. Y luego vamos a tener una matriz entera final, que va a ser la matriz de cantidad de reducción de daño. Eso es un bocado decir que tres veces rápido después de otro Búho. Y encanto a habilidad como el tercero, que vamos a tener un evento de sonido final privado, que va a ser un evento sonoro. Y entonces tenemos un ingrediente final privado, que es el material de reparación. Y tendremos un nombre final de cadena phi o privado privado privado. Este es muy importante. Y luego una flotación final privada, privada, dureza, que debe conocerse, pero eso es entonces una flotación final privada derribó resistencia. Está bien. Como puedes ver, un montón de cosas una vez más, pero no te preocupes, podremos resolverlo. Entonces, en primer lugar, por supuesto, vamos a pasar el cursor sobre él de nuevo y realmente vamos a crear un nuevo constructor con todos esos, con todas esas variables de inmediato. Y de esa manera en realidad nos ahorramos bastante tiempo escribiendo este constructor. Y entonces también podemos hacer algo así. Sí, eso está bien, cierto. Entonces la durabilidad, solo voy a poner algunas cosas en tu, así que esto va a ser una nueva matriz de enteros. Y de inmediato voy a poner algo ahí dentro. Entonces esto es, en realidad vamos a tener la reducción del daño es diferente para cada pieza de ropa, por así decirlo, lucha por el casco, la coraza, las polainas, y las botas. Va a ser un número diferente. Entonces digamos que a alguien le gusta flecha, digamos 75. Y puede que haya un tres o algo así. Ya sabes, puedes, por supuesto elegir lo que quieras. Y la tractabilidad va a ser un diez. El evento sonoro va a ser eventos sonoros que esto va a ser elemento armamento equipar. Hagamos armaduras. Este es artículo armadura equipar hierro. Justo ahí vamos. Reparación de material de reparación que inmediatamente va a obtener de pila otra vez y simplemente hacer pila de elementos nuevos de una vez más, el punto del elemento mod, cubriéndolo llegar. Entonces eso es más o menos lo que hemos hecho siempre. Y entonces se va a nombrar a la última. Ahora éste es importante aquí, porque aquí realmente tenemos que hacer mc curso dot naught ID. Y luego tenemos que hacer un colon y luego llamar a este pequeño cobre. Y esto se debe a que de lo contrario buscará, esto básicamente es especificar el lugar para el lugar y nombre para el modelo. Por lo que el modelo 3d para la armadura tiene un patrón de textura muy específico, que mostraré pronto. Y eso en realidad tiene que tener un nombre específico. Y si no lo especificamos así, entonces realmente buscaremos en un directorio diferente. Y este también tiene que ser el caso del cobre en todo en dureza minúscula, sólo vamos a hacer una resistencia de 0 y golpear BEC. En realidad vamos a poner un poco de resistencia ahí, y eso va a estar bien. Y también tenemos que devolver esas cosas. Entonces vamos a ir durabilidad. En la reducción de daños. En realidad vamos a tener algunos de los diferentes, esta va a ser la matriz de demostración. Y entonces solo tomaremos cualquier ranura que tengamos el índice de la ranura, ¿verdad? Entonces la ranura es simplemente, ya sabes, es 0 para el casco y tres para las botas. Y así es básicamente como accedemos al área de reducción de daños en este caso, ¿verdad? Habilidad encantar. Vamos a obtener los eventos de sonido, el material de reparación, el nombre como un conjunto de increíblemente importante la dureza. Y en este caso, este Funk que no está mapeado aquí, es simplemente el, esto pide la resistencia al golpe BEC. Y entonces sólo podemos hacer cursos de Nochlin. Pero de pronto se tiene que quedar esto, lo contrario no va a funcionar. Por lo que no se puede cambiar el nombre de esta función o de este método más bien, lo siento, sí. Por lo que este es nuestro MOD, material de armadura creado. Y ahora en realidad podemos crear nuestra primera pieza de armadura. Pero en este caso, en realidad vamos a crearlos todos al mismo tiempo en lugar de con las herramientas. Esto una vez más va a ser un, un artículo donde n, ese va a ser el casco de cobre. Se trata de artículos de punto de registro que registran los cascos de cobre O E. Y quiero decir, ya has visto esto un montón de veces. Este es ahora un nuevo artículo de armadura donde suministramos el material de armadura mod punto cobre. Después pide una ranura de equipo. Esto es por supuesto, equipos lot head. Y entonces también necesitamos proporcionar algunas propiedades nuevas. En este caso, solo vamos a hacer la pestaña Curso de MCMC dot. Eso es todo, correcto. Y esto ya es para la cabeza y entonces sólo podemos copiar esto. Y ahora por supuesto, una vez más, en realidad necesitamos tener algunas cosas donde cambiemos algunas cosas aquí. Este es el punto, punto pecho. Y eso está bien. Como dije, a veces puede volverse un poco tedioso porque hay que hacer muchas de las mismas cosas. No obstante, realmente no hay moverse por ello. Entonces vamos a hacer esto son piernas. Y entonces la última van a ser las botas. Y esto va a ser botas de subrayado de cobre. Y esos son para el allá vamos. Hermosa. De acuerdo, entonces en realidad ya están registrados aquí. Ahora, sí necesitamos agregar la localización. Entonces vamos al IIT y a nosotros. Y vamos a añadir el IO, mi lambda, eso no es MC, casco de cobre punto más pobre. Empecemos por la parte superior. Y entonces este va a ser el casco de cobre. Y voy a copiar rápidamente esto también. Y sólo cambia eso. El plato de pecho. Endless. El plato de pecho. Estos van a ser los leggings. Oh, discúlpame. Aable los leggings. Estos van a ser los leggings. Y la última va a ser botas pequeñas y aquí botas grandes. Hermosa. De acuerdo, eso va a ser todos esos. Ahora por supuesto, también necesitamos agregar otra cosa, y eso van a ser los modelos de ítem, ¿verdad? Entonces vamos a ir a las modelos y vamos a crear un nuevo archivo. Este va a ser el casco de cobre. Ahí vamos. Ah, ab.js. Y por supuesto, muy importante. Y luego voy a volver a copiar esto rápidamente una vez más, esto es como lo estándar que ya hemos visto en los modelos también. Y vamos a copiar esto de nuevo de manera similar con Control C y luego controlar V para pegarlo en el mismo directorio. Y voy a cambiar esto a placa de pecho. Y luego cambia esto a placa de pecho, placa a una viuda. Y entonces podemos volver a hacer lo mismo. ¿ Dónde están los enlaces? Leggings, leggings iban y luego una última vez o botas. Botas y aquí lo mismo. Muy bien. De acuerdo, entonces los modelos están configurados y por supuesto necesitamos las texturas. Entonces ahora el, ahora voy a proporcionar las texturas del artículo Justo aquí, ¿verdad? Y ese va a ser tu refactor. Esta es la placa del pecho, las botas, las polainas, y el casco. Hermosa. Ahora, lo siguiente que voy a necesitar es que ahora vamos a poner las texturas para la forma en que se ve cuando lo llevemos. Entonces eso va a ser lo siguiente y en realidad realmente nueva carpeta en texturas para eso. Esto van a ser modelos. Y en lugar de ese, vamos a crear un nuevo directorio llamado armadura. Y dentro de ahí, van otros dos archivos que van a ser esos dos en realidad van a sí, ahí tienes. Estos esto es para los leggings y esto es básicamente para el torso y el casco. Y creo también en las botas. Sí. Algo así. No estoy 100% seguro, pero esto sí parece que tiene sentido y esto también tiene que llamarse así. Entonces recuerda el nombre que especificamos. Esto no ha sido cobre y luego tiene que ser capa de subrayado, subrayado un PNG. Y sí, esos archivos también siempre se proporcionarán son ante todo, proporcionados al principio, en las fuentes y también como recurso, su tasa. Entonces si no me equivoco, creo que esto ya es todo lo que se supone que debemos hacer. Entonces, solo ejecutemos esto y veamos si realmente has creado con éxito alguna armadura de cobre, lo cual sería bastante genial. Todas las cosas consideradas. Está bien, así que veamos qué podemos ver. Ahí vamos. Lo es. Y por supuesto, una vez más, no hay recetas para estos. Como ya he dicho, omitiré las recetas para esto simplemente porque deberían ser lo suficientemente triviales como para agregar. Está bien, vamos a ver. Entonces, antes que nada, vayamos a nuestro paso central. Bueno, todos están ahí. Eso es bastante bueno. Vamos a por todos ellos. ¿De acuerdo? Y ahora la gran pregunta es, cuando cambiamos de tachuela, sobrevivencia, si sólo podemos ponerla, podemos. Bueno, ahí vamos. Soy bastante simpática. Niega. Ahora esto en realidad tiene mucha defensa. Lo siento. Ahí vamos. Dice mucha diferencia en realidad. Al igual que es, todo el traje de armadura en realidad tiene bastante defensa. Pero esto es algo con lo que puedes por supuesto jugar, ¿verdad? Sí. Al igual que hay un montón de cosas que podemos puedes agregar una vez más. Y hay un montón de parámetros con los que puedes jugar y decir, bueno, en realidad tal vez un poco menos aquí y un poco más aquí. Y sí, pero al mismo tiempo esto sí funciona. Eso está realmente bien, eso está bien, vamos a cambiar rápidamente de nuevo y luego en realidad simplemente saltó hacia abajo desde un poco de altura. En realidad no lo dañé bien, tanto por ese. Tan monosomía. ¿ Qué tal ese? Unos zombis. ¿ De inmediato vas a quemar? Sí, bueno, sí importa. Pero sí quiero bajar esto un poquito porque mi dios, ¿van a ser ruidosos? ¿ Verdad? Y entonces el blindaje en realidad se lastima tan bien como se puede ver. Entonces eso es bastante bueno, ¿verdad? Entonces, en definitiva, así es básicamente como le agregas la armadura a Minecraft. Es o no, no creo que fuera tan duro. No obstante, son pocas las cosas a considerar y eso son principalmente los modelos, el nombre aquí. Entonces esta es una de las flechas más grandes que podría prever. De verdad tienes que hacer esto, el nombre aquí correctamente, lo contrario, no funcionará. Eso tiene que ser lo mismo, escrito de la misma manera que la primera palabra aquí. Y entonces tiene que ser subrayado capa subrayado un PNG, ¿verdad? Sí, eso fue todo. Si tienes alguna pregunta, si tienes alguna flechas o, ya sabes, alguna sugerencia, tal vez de temas que también quieres ver. Siéntete libre de contactarme, me hizo una pregunta y sí, nos pondremos en contacto contigo en cuanto pueda. Y sí. 52. (Minecraft) crear Stairs, botones, yetas de presión y veras: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a crear escaleras, vallas, portones de cercas , botones, una placa de presión, y también una losa. Ahora bien, estos son una especie de bloques no bloqueados, diría yo. Y también te mostraré cómo básicamente crear los otros. Pero tiene que ser un poco de ingenio ha venido de ti mismo. Pero antes que nada, vamos a hacer los que dije. En primer lugar vamos a crear los objetos de registro de todos ellos. Entonces vamos a completar las escaleras. Y entonces básicamente copiaré más de algunas otras cosas porque al final, aquí va a pasar mucha copia. Pero antes que nada, hagamos los objetos de registro aquí. Entonces, en primer lugar, esto va a ser una vez más un objeto de registro. Anote un objeto de registro del bloque de tipo. Y antes que nada, vamos a hacer las escaleras de cobre. Entonces digamos que para nuestro bloque de cobre, en realidad queremos que las series de cobre vayan con él. Pero entonces solo vamos a llamar a registro y luego esto va a ser escaleras de subrayado de cobre como, como siempre. Y, y vamos a hacer abasto con nuevos bloques de mirada. Su bloque. Y un bloque de escaleras en realidad quiere un proveedor de cierto bloque. Entonces eso básicamente significa que queremos una especie de referencia bloqueada. En este caso, sólo vamos a tomar el punto de bloque de cobre, dot get default state porque el proveedor aquí en realidad una vez un estado por defecto. Y entonces también queremos las propiedades de bloque. Sólo vamos a hacer 3h. Y luego con hierro material, una vez más, un punto y coma. Y en teoría se hacen las series de cobre. Ahora es que hemos aprendido antes, no es tan fácil como siempre, pero vamos a ver. Entonces lo siguiente que vamos a hacer es hacer un súbito objeto de registro final estático público. Una vez más de tipo block siempre van a ser de tipo suerte. Por supuesto que estamos en los bloques de lodo y van a haber aletas de cobre. Y en realidad vamos a hacer esto una vez y luego vamos a copiar esta función específica o específica, digamos la inicialización aquí que realmente vamos a copiar porque eso va a hacer nuestra vida un poco más fácil. Bloque de valla, bloque abstracto , punto, nope, propiedades de punto, crear una AM quiere conseguir y voy a decir material que hierro, me parece ser el más sensato aquí. Y en realidad voy a copiar este porque a excepción de la, la placa de presión, las otras son bastante simples como derrochadoras también. Entonces la puerta es simplemente esto, que en lugar de una barda, realidad vamos a tener un bloque de portón de cerca. Eso es todo. Oh, esa es una rara. A vas, vale. Y asegúrate también de cambiar el nombre aquí. Eso es muy importante que no lo olvides. Y luego aquí vamos a tener los pliegues de presión de subrayado de cobre. Y lo mismo por supuesto aquí, justo dentro. A minúscula en lugar de mayúscula. Y luego vamos a tener un nuevo bloque de placas de presión. Y eso va a ser que en realidad va a tener algo diferente aquí. Y en realidad vamos a empezar con una placa de presión. Vamos a tener placa de presión, loc, punto, punto de sensibilidad. Y entonces vamos a decir todo. Entonces todo simplemente significa que todo lo que lanzamos en los toques, la placa de cobre realmente lo va a activar. Y entonces aquí vamos a tener losa de cobre. Y eso va a ser una losa de cobre y también un bloque de losa. Se van. Y eso es todo el registro necesario para el, para los bloques. Ahora, claro que nunca es tan fácil. Porque ahora en realidad vamos a tener que crear un montón de modelos diferentes y, y cosas para las escaleras, en primer lugar, y esto, simplemente vamos a entrar en nuestros estados negros aquí. Y vamos a copiar este archivo JSON. Vamos a nombrar a esta escalera de cobre porque yo, como dije, vamos a hacer las escaleras primero. Y yo, ya sabes, estamos estamos estamos sabemos esto, ¿verdad? Es como un modelo variante. Sí. Bueno, amor duro. Esto es, así es como se ven las escaleras. Entonces el, el, lo fundamental de esto es básicamente, esto define cómo se ven las escaleras, ¿no? El modelo de las escaleras básicamente está definido por esto. Sí, lo es, es que es un poco de tasa. Entonces por eso dije que va a ser mucho copiado al final al final del día, va a ser que es un poco más de lo que se podría pensar. Pero por supuesto que aún no hemos terminado porque esto sólo son los estados Bloch. En realidad tenemos que copiar algunas cosas en bloques también. Entonces lo primero que vamos a tener son las escaleras de cobre. Y asegúrate de que esté escrito correctamente. Dodge Jason. Sí. Y eso va a ser esto. Y en realidad esa no es muy mala tasa. Básicamente es sólo mirar qué texturas se muestran en la parte inferior, en la parte superior, en, en los lados. Eso no está tan mal. Y entonces en realidad necesitamos dos más en estos bloques. Entonces en los modelos uno, necesitamos escaleras, entrar. Y eso va a ser básicamente el único cambio va a ser que esto va a ser, esto va a tener escaleras de subrayado interiores en lugar de escaleras. Y luego vamos a tener, una vez más también las esferas exteriores. Y esto se necesita, por supuesto, cuando se tiene algo conectando a otra cosa también. Ahora, lo último que vamos a necesitar es la definición del ítem aquí. Y eso es por suerte como vamos realmente copiar de este. Eso en realidad va a ser el más fácil de todos. Voy a hacer cobre Sears es el único 11 arriba, que no voy a copiar porque eso es tan fácil. Y luego voy a hacer buzos de bloqueo y luego tolva. Entonces básicamente son solo referencias, una vez más, vuelta al modelo de éste, que básicamente que hace referencia a las texturas. Y para las escaleras, esto es todo. Ahora esto es, es por supuesto unos términos relativos, ¿verdad? Porque esto es, esto es bastante. Y entonces en realidad tenemos 12345 diferentes, cinco archivos diferentes que necesitamos sólo para las escaleras. Y para muchos de los otros, también van a haber al menos cuatro, tal vez incluso cinco archivos JSON diferentes que realmente necesitamos crear. Pero antes que nada, vamos a mirar las escaleras. Y entonces lo que voy a hacer es que te voy a mostrar la barda porque esa es una de las otras que es un poco más difícil. Y luego los otros, los expedientes son todos, por supuesto una vez más, como recursos disponibles. Y entonces deberías intentarlos tú mismo. Porque como dije, muchos de ellos simplemente se está copiando. Entonces no hay tanto, tanto a la magia. De acuerdo, vamos, vamos a crear más y alejarnos de los zombies. Y veamos, ahí vamos. Entonces los otros están por cierto, correcto. Entonces tenemos la losa de cooper, la placa de presión, la compuerta de barda y la barda. Y pero sólo las escaleras tienen el como tanto un modelo a a item, como vemos y se ve bien. En realidad puedes colocarlos y funciona sin problema. También se conectan. Y podemos colocarlos así. No, tú vas así. Y así, vamos. Correcto. Por lo que en realidad funcionan como escaleras completamente normales, como te gustaría cualquier otro Sears. Ahora una vez más, claro, al final, si los tenemos, no dejarán caer nada porque no habrá mesas Lu que nos sucedan. Entonces eso es muy, muy importante agregar también, por supuesto. Y también no hay receta de manualidades para ellos todavía. Por lo que también habría que agregar esto. Si esto es algo que es importante. Cuando realmente lanzaste el modo, entonces estás consciente como, como lo haría nuestra receta, ¿verdad? Entonces las escaleras, como puedes ver, no lo más loco. El así vamos a cerrar todo esto y luego vamos a hacer la ofensa de cobre y puerta de defensa. Y en realidad voy a hacerlo un poco más fácil para mí. Yo sólo voy a copiar esos completamente supervisado. Este va a ser el estado de bloque. Perdón. Vamos a detenernos. Yo les voy a mostrar. Entonces va a haber copia. Sí, por favor. Entonces la barda se ve así. Una vez más, todos los archivos están disponibles como recurso. Y entonces también tenemos la puerta de la barda, que se parece un poco más, un poco más complicada. Digamos que esto en realidad es una multiparte en este caso. Por supuesto, también puede asegurarse de que este es su ID del MIT, ¿no? Entonces si no has usado la enfermedad del curso MC, por supuesto, cambia esto y asegúrate de que el, estos nombres sean realmente correctos. Ahora, el entonces también necesitamos para la barda. Ahora te vas a decir, esto es una locura, ¿verdad? Por lo que en los bloques para la barda, necesitamos. El cerco Porton Defense se abren. El cerco consigue muro y el muro de la barda se abre. Entonces esos son los que vamos a necesitar aquí. Esos son simplemente para éste, éste, éste y éste. Correcto. Por lo que la puerta Abrir, Puerta Muro y muro abierto. Y luego para la barda, en realidad vamos a necesitar tres más. Vamos a necesitar el inventario de barda, postes de barda y lado de Fen, como dije, en y por sí solo los estados de Bloch son realmente los locos con el contenido de ellos es una locura. Los otros son, son muy fáciles de, ya sabes, de entender y ese sentido sólo el padre cambia realmente. Entonces este es el inventario de Valla, por lo que así se vería la barda en el inventario. Así es como se ve el poste de barda. Así es como se ve el costado de la barda. Y ahora para la barda, en realidad necesitamos bien, primer lugar, necesitamos también los de artículo. Eso es una vez más, no eso. Es decir, uno muy importante para la barda Ka'apor, se utiliza el inventario uno y para la puerta OR en el inventario se utiliza guión bajo de cobre normal, subrayado ocho para hacer referencia como padre. Ahora, hay una cosa más que realmente necesitamos agregar en este caso, que nuestras vallas realmente se unan. Y es que, vamos a necesitar una nueva carpeta en un lado de nuestra carpeta de datos aquí mismo. Y eso en realidad va a ser un directorio llamado Minecraft. A lo mejor has oído hablar de ello. No estoy seguro de eso, pero sabemos que es un jueguito que juegas como 120 millones de personas son hígado severo. Dentro de esa carpeta, vamos a crear otra carpeta llamada tags. Y dentro de esa última carpeta, vamos a llamar a bloques. Y en esto, esta vez realmente necesita ser plural. Por lo que necesita tener la S en los bloques finales. Y dentro de ahí, voy a crear un nuevo archivo llamado faces dot JSON. Y aquí simplemente necesitamos agregar el, esta línea donde el valor dentro de los valores son cerca de cobre se agrega en realidad. Y luego si se han agregado todos los archivos, y si no me he perdido nada, entonces deberíamos poder ver las vallas en acción dentro de Minecraft. Ahora, como ya he dicho, estos son muchos archivos que tienen que crearse y agregarse. Por eso los voy a tener a todos como recursos. Y es mejor para ti simplemente tomarlos, copiarlos, probablemente mirarlos. Y después de que vamos a ver nuestra barda dentro del juego, en realidad te voy a mostrar dónde también los puedes conseguir si por ejemplo, alguna vez están perdidos o, ya sabes, si no puedes encontrarlos o lo que pase, yo te mostrará dónde encontrarlos realmente. A ver. Entonces eso es bastante bueno. Ya. En realidad vamos a ver esto y esto. Ahora por supuesto, los nombres se pueden cambiar muy fácilmente con dentro de nuestra carpeta Lang, ellos EN nosotros archivo adyacente donde hemos agregado los nombres. Cada vez. Acabo de saltarme este paso ahora mismo. Entonces agreguemos esto luego llevó a la puerta y dejemos otra. Entonces eso funciona perfectamente bien. Y por supuesto la puerta es abrible, imposible, como cabría esperar. Y ahora coloquemos otra barda y se conecten. ¿No es genial? Por lo que se conectan tanto a las 12 cuadras, como es habitual con las ofensas. Y se conectaron a cercas ellos mismos. Ahora no se conectarían con otras vallas de madera? Yo creo. Entonces. Vamos a conseguir una barda aquí mismo. Tenemos una ofensa. No deben conectarse. Sí, no lo hacen. ¿Verdad? Por lo que no se conectarían. Eso es algo muy importante a tener en cuenta, ¿verdad? Entonces, ¿de dónde sacas las otras cosas que necesitas, verdad? Flujo en primer lugar, para los otros aquí. Entonces, para la placa de presión en la losa, ¿en realidad vas a conseguir el botón final? Sí, el botón, en realidad he añadido un botón aquí. Increíble. Eso es C, eso es esto. Es decir, pero el botón en realidad es bastante fácil también, se va a en esto tranquilamente aquí y quiero ver botón NAT. Ahora vamos a hacer botón de cobre aquí mismo. Es decir, en este punto, todavía bloque de botones y eso es todo. Es decir, no debería ser, no debería estar demasiado loco para agregar dos adder, ya sabes, cualquiera de esas cosas. De todos modos. Entonces esos son algunos de los que son estos bloques no bloqueados. ¿ Y dónde encuentran, por ejemplo, estos estados de Bloch? Bueno, en realidad se puede bajar aquí a bibliotecas externas. Y luego cuando abras la carpeta 1.8em justo dentro de ahí, en realidad vamos a bajar a realidad, eso no está bien. Esa ni siquiera es la carpeta 18. En realidad vamos a bajar aún más, pero tenemos que ir más allá de la carpeta 18. Y vamos a buscar una red Minecraft cliente extra uno y luego por supuesto la versión de Minecraft. Y dentro de ahí hay cliente tarro extra, esa es la raíz, y luego hay activos y luego esta Minecraft, y luego está Bloch estados. Y luego tienes todos los conjuntos de bloques de todas las cosas diferentes, ¿verdad? Entonces esos son todos los archivos adyacentes que en realidad son para Minecraft, vainilla. Está bien. Por lo que solo puedes ir a las de acacia. Por ejemplo, se puede decir ver la puerta de acacia. Y luego simplemente se puede copiar de esto. Ahora como puedes ver, la puerta, loca complicada también, porque también hay bisagras y necesitan saber dónde girarla y, y todo tipo de cosas. Entonces, ya sabes, copia todo esto. Deberíamos cambiar Minecraft a tu ID MOD. Y también, por supuesto entonces el nombre de la acacia, probablemente dos, por ejemplo, cobre. Si quieres tener una puerta de cobre o lo que quieras agregar al juego. Por lo que todas esas cosas simplemente se pueden agregar. Asegúrese por supuesto para así por ejemplo, si desea agregar una tasa de trampilla, entonces también entra en los datos. No, eso no está bien. No, no, es correcto. En el modelo. Perdón, claro, yo agencia genuina, los modelos múltiples bloquean. Y luego buscar también la Acacia. Y luego vamos a ver acacia atrapada o fondo, top de extremo abierto, derecha. Entonces esas son algunas cosas que hay que tener en cuenta. Cada uno de esos, cualquiera de esos archivos realmente ha agregado a su propio directorio, ¿verdad? Entonces esto es solo algo muy bueno tener en cuenta que en realidad puedes mirar los archivos originales, simplemente copiar y pegar. Realmente no hay otra forma en este caso de hacerlo. Porque me tomé correctamente, como agarrar todo lo que hay aquí. Eso va a tomar como otro curso de 20 horas probablemente, ¿verdad? Porque esto es, por supuesto, justo como maneja algo en este caso. No nos vamos a preocupar por eso. Lo que vamos a hacer es saber agregar estas cosas. Ahora, como dije, hemos sumado las escaleras, ofensa y portón de defensa. Ahora, la pulsación de botón de bloque jugada y losa. Supongo que probablemente puedas hacerlo por tu cuenta. Una vez más, si hay algún tema con el que te encuentres, eres libre de sentirte libre de contactarme o hacerme una pregunta. Muy importante para las losas. Lo que simplemente quiero mencionar, también necesitas agregarlos a la carpeta de bloques para las etiquetas. Pero eso es por suerte también algo que dentro de la red Minecraft uno, realidad se puede ver lo que se han agregado a sus etiquetas de bloques. Por lo que en realidad se puede ver que hay muchas cosas que han agregado y hay que agregar algunas cosas, algunas no. Y sí, así que en general, Esos son los, digamos bloques no bloqueados. Y como siempre, siéntete libre de preguntar si hay alguna pregunta. Y sí. 53. (Minecraft) Mod Configs: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear nuestros propios archivos de configuración. Posiblemente agregarás algo a tu mod, que en realidad quieres tener tal vez el usuario tenga control, ¿verdad? Entonces, por ejemplo, la velocidad a la que tal vez crece un cultivo o un objeto huele o algo en esa naturaleza. Y lo que en realidad podemos hacer es realmente crear su archivo de configuración que luego el usuario final puede cambiar r modificar. Probablemente has visto esto. Y para eso vamos a crear una nueva clase Java dentro de nuestro paquete util, que vamos a llamar config. Y ahora Hay cláusula de conflicto se va a ver un poco torpe, pero no se preocupe, en realidad podemos, en realidad podemos ir por el, así que primero de todo, vamos a hacer una estática pública y luego vamos a tener un forjar especificaciones de conflicto en especificaciones fijas, ¿verdad? Y ese va a ser el conflicto del servidor porque necesitaremos un conflicto separado para el servidor y el cliente. En este caso, en realidad aún no ha tocado ninguna de las cosas del servidor. No obstante, no te preocupes por eso. Es mejor tenerlo hecho en este, en este caso, para todo para que sea más fácil añadirlo más adelante, ¿no? Y luego vamos a tener el valor spec dot. Este es un, este es el ejemplo que voy a dar. Entonces lo que vamos a hacer es que vamos a tener una, la palabra duración resplandor. Entonces si recuerdas de nuevo, agregamos el evento de que cuando realmente golpeas un, golpeas a una oveja con y con la Apple corporativa, entonces van a conseguir un efecto de resplandor. Y este efecto, teníamos un conjunto de duración. Y también cuando comes la manzana, también tienes un 50% de posibilidades de conseguir este efecto. Y en este caso, lo que vamos a hacer es realmente vamos a tener esta duración de brillo de cobre como un conflicto que se puede cambiar, ¿verdad? Entonces vamos a crear aquí un bloque estático. Y dentro de eso vamos a hacer, vamos a crear un, un cuarto constructor de especificaciones de conflicto, que va a ser el constructor de servidores. Eso va a ser nuevo constructor. Y luego copiaremos esto. Y este va a ser el cliente construido IN builder. Y vamos a tener un nuevo, Nuevo Método a continuación, que puede ser privado, estático, vacío, resplandeciente, duración. Así es como lo voy a llamar. Puedes en teoría Llámalo donde quieras. Y eso va a tener conflictos de fusión spec builders. Entonces eso va a tomar un constructor de servidores. Y también un constructor. No constructor de conflictos, sino un cliente, un constructor, un ego Bilder? Sí, señor. Oye, vamos. Y dentro de ahí, en realidad vamos a especificar ahora esto. Entonces esta va a ser la duración de carga conquistada igual. Y ahora vamos a usar el cliente builder.com. Y ahora esto es muy importante. Lo que realmente vamos a hacer aquí es que no vamos a leer, bueno, vamos a leer en un archivo de configuración, sin embargo, también vamos a escribir un archivo de conflicto, ¿verdad? Por lo que esto es muy importante porque el archivo de conflicto no existe. En realidad tenemos razón, sí, si existe, vamos a leer fuera de ella. Entonces este es básicamente el comentario por encima de la Arriba el valor o la variable que vamos a definir. Entonces esto es, por ejemplo, cuánto tiempo dura el resplandeciente para cuatro manzanas de cobre, ¿verdad? Y voy a decir tomas porque esta es la cantidad de tiempo que lleva. Y entonces también vamos a hacer definir en rango. Entonces esto es muy importante, o no es importante, pero es una buena idea hacer esto. Por lo que a continuación, la duración va a ser el nombre del, lo que el usuario. Básicamente lo va a ver, lo vamos a ver pronto. Y tenemos un valor por defecto de una hoja. Nuestro valor predeterminado era 600, si no me equivoco. Bueno, aquí son 300. Dentro de nuestros eventos, probablemente sean 600, solo sí, aquí están 600. Entonces sólo nos vamos a quedar con 600. Vamos a decir que el mínimo tiene que ser un 100. Y entonces el máximo simplemente va a ser entero ese valor máximo. Entonces es básicamente, ya sabes, en realidad vemos lo que es. Sí, sí, 2 mil millones y algunos más. Entonces, sí, en, en teoría que este sería el valor máximo. También podrías decir, bueno, quiero decir, si no tiene sentido tener algo como esto, pero, ya sabes, para nuestros propósitos vamos a hacer valor máximo dependiendo de la forma en que tú, qué variable quieras establecer. Dos es lo sensato. Y el siguiente método que implementamos es un vacío público estático. Y vamos a llamar a esto el archivo de configuración de carga. Aquí vamos a pasar una spec de conflicto, que va a ser conflicto y un resorte que SNP con una ruta al archivo. Ahora, esto va a ser una configuración de archivo comentada, que va a ser el archivo. Vamos a todo el año constructor con un nuevo archivo. Con el camino dado. Vamos a hacer una sincronización, guardar auto y luego un modo de escritura, modo escritura, punto Reemplazar. Y luego vamos a construir esto. En realidad también tengo que implementar la clase desde java.io, por lo que java.io archivo. Y luego una vez que esto está escrito, en realidad tenemos que escribir por carga. Y luego conflict dot set config file. Ellos, vamos, correcto. En realidad vamos a llamar a esto desde nuestra clase MC CourseSmart, pero aún no estamos un 100% hecho. Entonces en resumen muy corto, lo que esto básicamente hace es como, hey, si el archivo existe, reemplace, si el archivo existe, léelo, si no lo escribe. Eso es como la más básica de las formas que tomamos aquí o en las que puedo explicarlo. Vamos a llamar la duración del globo con el constructor de servidores y luego el constructor de clientes que tejen. Aquí estoy implementado. Y luego al final, también vamos a decir el conflicto del servidor de configuración del servidor, no el servidor. El configurador del servidor va a ser igual a la compilación del constructor del servidor. Y entonces lo mismo va a pasar con el conflicto del cliente aquí arriba. Entonces este va a ser el punto constructor del cliente. Correcto. Ahora el archivo config en realidad completamente hecho. Si quieres agregar una nueva variable, claro que primero tienes que agregarla aquí como estática pública, forja, spec de conflicto, y luego valor int o un doble valor o cualquier tipo de valor que quieras. Y entonces también hay que hacerlo aquí para que en realidad se añada al. Lo que quieras. Ahora, o bien lo que puedes hacer es crear un método aquí y no llamar a esa duración resplandeciente. En realidad llámalo, por ejemplo, no int, tal vez inicialización IntValue o algo así. O sin embargo puedes hacer un nuevo método para cada una de tus, cada una de tus variables de configuración, configurables, eso depende de ti. Es decir, ya sabes, no hay, no hay camino fijo en ese sentido. Lo que prefieras y sin embargo puedes leer esto mejor sería lo mejor para ti ahora al MC, peor MOD plus. En primer lugar, en el principio mismo, vamos a cargar a esto. Vamos a hacer modelo cargando contexto dot get. Y luego vamos a hacer registro conflicto, conflicto lodo, ese tipo. En realidad necesitamos especificar el tipo de cliente o servidor. Ahora hay otro tipo que es, que vamos a ver aquí. Entonces si cambio esto, en realidad también tenemos común. Esto es algo que se configuraría tanto en el servidor como en el cliente. No obstante, los esos son, yo argumentaría cosas un poco más avanzadas también. Entonces tenemos que hacer algo entre estos dos. Y este va a ser el archivo config dot load conflict. Voy a decir conflicto impar, conflicto cliente, rutas FLM. Entonces este es básicamente el path config dear simplemente especifica el directorio en el que los conflictos son dot get, y luego resolveremos. Y dentro de aquí en realidad podemos simplemente escribir un, el nombre de nuestro archivo de configuración del cliente. Entonces por ejemplo, MC curso dash cliente dot Tamil. Pero esto debería ser una diatomia, un archivo. Y luego vamos a hacer dos cuerdas. Sí, ahí vamos. Y luego vamos a copiar esto y hacer lo mismo para el servidor una vez más con su, y luego vamos a llamar a esto los servidores de EMC humillaron. Y ahora si en realidad hemos hecho algo, ¿todo bien? Y sí creo que tenemos, vamos a correr el juego. Y luego les voy a mostrar dónde se genera el Hmmm FEC y cómo también, cómo también podemos implementar en, por ejemplo, el alacena de los eventos corporativos Apple MD. Vamos a dejar que esta carga sólo para ordenar. Por lo que tenemos el menú principal aquí. Y luego vamos a dejar de fumar de inmediato. Y ahora dentro de la carpeta de ejecución aquí arriba, en lugar de la carpeta config aquí realmente vemos que tenemos AMC force client y servidor MC4. Y dentro de aquí, exactamente lo que hemos hecho. Cuánto tiempo la pérdida resplandeciente para el nivel de copa y garrapatas oscila más de un 100. Y entonces realmente podemos cambiar esto también. Ahora, también queremos cambiarlo aquí, ¿no? Entonces esta duración, y eso es tan fácil como escribir punto de conflicto cubrió la duración de la carga. Ahora esto es un valor int y queríamos en, por eso tenemos que hacer. Y ahí vamos. Eso es todo. Eso es todo lo que tenemos que hacer. Más eventos. Podemos hacer exactamente lo mismo. Por lo que tenemos punto de conflicto Hubbard bajo en duración, dot get. Y luego nos vamos. Y eso es, eso es todo lo que tenemos que hacer. Y ahora el, ahora el efecto realmente tiene una duración variable que podemos establecer aquí, ¿no? Entonces podemos decir, bueno son 600 o podemos decir que son 50 mil o 500 mil no importa. Podemos, podemos hacer lo que queramos. Y en ese caso, el usuario también puede hacer lo que quiera. Lo cual es bastante cool en realidad para muchas cosas. Y es tan fácil como simplemente hacer conflicto. Y luego el nombre de la variable que especificaste. Y eso es todo. Lo bueno para esto también es porque estas son como piezas de código totalmente diferentes. En este caso, podemos asegurarnos de que siempre tengan el mismo valor. Tal vez podrías pensar que tal vez teníamos este resplandor de alacena. La duración es quizás referencia en 18 lugares diferentes. Bueno, si tienes el número real escrito ahí cada vez, correcto. En número de 300 o 600. Bueno entonces cambiar eso estaría bien, bastante trabajo simplemente por el hecho de que tal vez ni siquiera sabes dónde, en qué lugares realmente, ya sabes, has comprometido ese número. Entonces es muy útil para eso también, y también para tener conflicto, ¿no? Sí, así que esto es básicamente todo para el archivo de configuración que quería cubrir aquí. Y una vez más, siéntase libre de preguntar si hay alguna pregunta. Y sí. 54. (Minecraft) exportar tu mod: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, en realidad te voy a mostrar cómo exportar tu mod add a un archivo jar, que luego puedes usar en básicamente un paquete MOD o en, o una versión normal de Minecraft. Y esto en realidad va a ser bastante fácil. Simplemente vas a bajar aquí a terminal y vas a teclear Gradle w, construir. Eso es todo. Entrar. Y entonces sólo vamos a esperar un poco. Entonces va a hacer todo tipo de cosas en el fondo que va a compilar. Y es decir, es básicamente todo lo que necesitaba que sucediera. Y ahora en realidad tenemos que navegar al directorio aquí. Y si hacemos eso, en realidad podemos ver esto. Entonces vamos a simplemente rápido, voy a ir rápido desde el otro día vamos allá estamos, cierto, así que este es el directorio. Y dentro de aquí, podemos ir a la carpeta Build. En lugar de la factura por rho, vamos a la vida y en lugar de aquí tenemos MC peor y luego inversión un tarro. Ahora como realmente podemos usar esto, bueno, lo que voy a hacer es ir al lanzamiento de twitch. En realidad voy a crear un perfil personalizado. Te voy a mostrar esto. Entonces este es el lanzamiento de twitch donde, por ejemplo, tenemos unos cuantos packs más que ya he jugado. Y luego dentro de aquí realmente vamos a crear un nuevo perfil con la versión tres allá. Y en realidad usamos el, en realidad hemos usado 3410 porque esa era la versión que descargamos al inicio del curso. Y perfil sólo va a ser Mc. Peor aún, prueba, crea esa carga de pocas cosas. Y entonces aquí podemos realmente abrir carpeta y luego conseguir una nueva carpeta aquí. Y en lugar de mods, simplemente puedes hacer lo siguiente. Simplemente puedes tomar este tarro, copiarlo, pegarlo en modelos, y eso es todo. Y luego jugar. Ahora veamos si eso realmente funciona. Entonces aquí abajo podemos ver que este es el perfil que queremos hacer. En realidad ya estoy conectado. Es posible que tengas que iniciar sesión primero, y luego vamos a jugar. Y veamos qué sucede realmente aquí. Entonces algo se va a cargar y alguien va a abrir. Pero, ¿es lo que queríamos? Eso vamos a ver. Eso lo vamos a ver muy pronto. Entonces antes que nada, claro, vamos a conseguir una vez más música que se apaga para los fines de esta demostración aquí. Y si bien tenemos tres Maslow lo hizo y mira ese modo MC, eso es una locura. De hecho, simplemente creemos un mundo nuevo. Creativo como fino. Sí, vamos a crear un mundo nuevo y veamos si eso realmente funciona. Por lo que se podría imaginar que esto también podría ser, por supuesto, una tasa MEDPAC con un 120 meses, todos los modos o lo que sea. Y entonces podemos encontrarnos en algún lugar mientras respondemos en una isla que es, que es de Hilary. Ok. Bueno, vamos a ver. Por supuesto, el paso central está ahí dentro. Y todas las cosas que realmente hemos hecho o no hemos hecho, como los botones de las losas. Espero que hayas hecho esos. En realidad están en juego sin ningún tema en absoluto. Podemos colocarlos. Tienes los bloques de tolva biótica y nosotros tenemos a0, el casco por ejemplo. El casco, espera, aquí vamos. En realidad se pone eso. Ahí vamos. Bueno, ¿no es genial? Y eso es bastante bonito en realidad. Es decir, así es como se exporta el modelo. Como dije, no es cosa difícil ni bastante complicada. Es uno, básicamente un comando que hay que poner. Y, y si quieres agregar esto a ciertos mods, pack loco, o un perfil, o quieres darle eso a alguien más. Puedes dar, simplemente dales el tarro. Y entonces pueden usar esto simplemente como lo harían en cualquier otro modelo, básicamente. Escribir. Esto también resume la mayor parte del curso. Tengo una conferencia más después de esto. Sólo vamos a hablar un poco de un consejo que tengo para muchos de ustedes. Y luego también va a haber básicamente la conferencia donde voy a decir cómo tú, cómo va a concluir este curso y todo eso. Entonces sí, espero que todo aquí fuera de valor para ti. Espero que te haya gustado. Yo, por supuesto, agradecería una revisión. Y sí. 55. (Minecraft) utiliza Github para los ejemplos de código fuente: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, en realidad no estoy dentro del IDE. En realidad estoy en GitHub. Y la razón por la que estoy en GitHub es en realidad porque quiero mostrarte algunos consejos que podrían ayudarte en el futuro desarrollo de tu modo. Cuando realmente usas haz un modo serio con cosas reales y realmente quieres crearlo para que pueda ser liberado al público y decir bien. Entonces lo que debes hacer es ir a GitHub, podrías conseguir, deberías conseguir una cuenta, es gratis. Y entonces en realidad puedes buscar básicamente tus matemáticas favoritas, ¿verdad? He elegido tres de mis matemáticas favoritas. Por lo que hay ingeniería inmersiva, mecanismo y agricultura mítica. Y esos tres en realidad están todos actualizados para la versión más reciente en nuestro caso donde 1.16, tres en este momento. Y en este caso realmente podemos mirar el código fuente que han escrito, ¿verdad? Que la gente de esos emparejadores de ahí haya escrito. Por lo que sólo podemos entrar en fuente aquí mismo. Entonces en ingeniería inmersiva, y puedes ir a main y luego a Java. Y esto es básicamente todas las mismas cosas que hemos hecho por nuestra cuenta, ¿verdad? Esto fue, este era Java y este para nosotros fue tranquilo Copan Joe y una ingeniería inmersiva fue curso MC para nosotros. Y entonces no teníamos la API, el cliente y la diferencia común aquí ni las carpetas, pero sí teníamos nuestro propio archivo Java, ¿verdad? Y sólo podemos mirar en esto. Entonces podemos ver cómo hicieron algo, ¿verdad? Entonces esto es lo que hicimos también. Teníamos una primavera pública Mar ID. No teníamos el nombre MOD, no teníamos la versión simulada. Esto es, por ejemplo, algo que podrías hacer. Y luego había muchas cosas aquí dentro que ni siquiera hemos tocado porque otras cosas son locas complicadas que necesitan tanto más conocimiento sobre los fundamentos y aquí. Pero la mejor manera de aprender es probar algo nuevo. También puedes probar y bifurcar esto. Entonces simplemente puedes descargar el desbosque, el código fuente de uno de estos modos y luego lanzarlo por tu cuenta, ¿verdad? Entonces tienes un, básicamente tienes el código fuente de los smarts luego descargado y simplemente puedes jugar con él, ¿verdad? Por lo que tienes una copia local de esto. Se puede jugar con él. En realidad se puede cambiar el código, ver qué pasa. Entonces esto es algo real sobre, ya sabes, en un plazo de ocho horas, no vas a crear, digamos la siguiente ingeniería inmersiva o el siguiente mecanismo o la siguiente agricultura mística. Simplemente no va a funcionar así. Vas a tener que trabajar un poco más en todos ustedes que han aprendido y hay que construir a partir de este ritmo. Y esto es, creo que una de las mejores formas en que puedes hacerlo. Pasa por estos archivos, piensa en tu masa favorita que tienes. Míralos, mira cómo lo hicieron. También puedes volver al pasado básicamente, ¿verdad? Por lo que también puedes entrar en una anterior, versiones anteriores aquí tasa, por ejemplo. O puedes volver al pasado con este botón de historia básicamente. Entonces puedes mirar lo que cambió, en qué versión y todo eso es lo que puedes pasar y ver, bien, ¿cómo fue esto el trabajo de Harris y va a ser difícil a veces, ¿verdad? Va a ser tal vez o no entiendo esto, no lo entiendo. Ya sabes, eso, todo viene con el tiempo. Esto también es, por supuesto, por lo que he dicho que Java es simplemente un requisito. De lo contrario, te perderás en este. Definitivamente. Correcto, así que vamos sólo por mecanismo, sólo por el bien de la discusión también. Entonces mecanismo y éste es yo creo en cliente no estoy seguro. No, en realidad es en común. Bueno, lo harán. Carmen y el mecanismo dot Java. Y entonces también podemos ver algunas cosas que tiene. Entonces manejadores de paquetes, el registrador, nosotros, nosotros, ya hemos visto el logaritmo antes. Y también tiene gerente de radiación porque en realidad agregó irradiación y mecanismo listos y tipo de esas cosas ahí mismo vamos. Entonces tenemos a estos oyentes, tenemos tres, ustedes han visto algo muy parecido a esto. Hay eventos que están registrados. Entonces tú oh, siempre verás algún tipo de similitudes de cosas que ya has visto. Pero también por supuesto podrías ver Todo lo que he visto, que no he visto eso, eso es interesante. Y en este caso también se puede, esto es realmente genial porque lo que se puede hacer es realmente se puede pasar sobre estos y luego hacer clic en ellos. Y luego por ejemplo, si quieres saber, bueno ¿cómo funcionan los datos de bloques múltiples del tanque? Ya sabes, podrías simplemente entrar ahí y ahora estás en el tanque de datos de multi bloque, java, el archivo java. Y entonces podrías simplemente mirarlo, ¿verdad? Se puede mirar todo tipo de cosas. Ahora, una vez más, esto no va a ser una cosa donde lo mires. Y en una instancia, vas a entender todo bien. En realidad tendrás que trabajar a través de esto y, y mirarlo un poco y también probar algo, ¿verdad? Porque no puedes aprender algo si no lo intentas, y si no adaptas algo y si trabajas en ello, correcto, eso es básicamente algo como un impulso que te quiero dar también. Sólo para, para sólo intentarlo, sólo probar cosas para ser creativo con esto y no desanimarse aunque a veces no funcione. Y si de verdad quieres crear un modelo, yo altamente, altamente, recomiendo mucho mirar esto, mirando los modos que te gustan. A lo mejor incluso eso, a lo mejor quieres tener este mod y quieres cambiar un poco o simplemente tu creatividad realmente los extraños límites a este otro que a tu creatividad, lo que se te ocurra. Así que sal por ahí, ya sabes, crea una modelo asesina. Me encantaría. Y por supuesto, más importante si realmente creaste uno genuinamente, genuinamente enero, por favor envíame un enlace o una vista previa o incluso un repo de GitHub a esto porque me encantaría verlo. Me encantaría verlo. Entonces, y sí, creo que eso es todo por ahora. Espero que el curso fuera de interés para ti y en realidad te consiguió. A lo mejor comenzó un incendio. Y que realmente quieres crear algo y que aprendas algo aquí. Y sí. 56. (Minecraft) utiliza GitHub como sistema de control de versión: Muy bien, bienvenido de nuevo al curso de microondas. Y en esta conferencia vamos a echar un vistazo rápido a cómo puedes importar o subir tu repositorio de Git. Por lo que su Minecraft mod a un repositorio GitHub. Ahora hay dos cosas que son muy importantes. Al igual que no te voy a dar un, digamos un entendimiento teórico de GitHub. Eso no es lo bueno en general. Ese no es el punto de esta conferencia. El punto de esta conferencia es solo para mostrarte cómo puedes agregarla a GitHub. Y te daré sin embargo, tres enlaces como recurso. Uno por supuesto es github.com. Yo diría que esto tiene más sentido. Necesitarás una, una cuenta ahí, pero es completamente gratis, así que no se preocupe ahí. También te daré este enlace al Jetbrains.com. Entonces esta es idea inteligente, básicamente cómo configurar un repositorio de Git. Ahí. Se explica básicamente exactamente lo que estoy explicando aquí se explica ahí con mucho mayor detalle en realidad. Y luego también te daré el enlace de descarga. Olvídate, ahora no estoy 100% seguro de que necesites esto porque creo que hasta j viene con el propio Git, pero no soy un 100% seguro. Entonces si algo no funciona, es posible que necesites descargar esto, pero pasa por ello. Probablemente estemos con esto, con el, este tutorial o con mi conferencia aquí primero. Y luego si, por ejemplo dice, oye, no tienes instalado Git, entonces puedes instalar Git. De lo contrario, no me molestaría con ello. Correcto. Entonces ese es básicamente el preámbulo aquí. Y entonces vamos, vamos, hagamos eso. Entonces, en primer lugar, queremos crear un nuevo repositorio. Entonces en GitHub, vemos este nuevo botón aquí. Vamos a dar click en esto. Y vamos a decir repositorio MC curso. Por supuesto. Eso tiene sentido. Vamos a dejar la descripción vacía y vamos a hacer el, hacer esto privado. Por lo que puedes elegir hacer un público o privado solo para estar seguro de que sea público, cualquiera puede verlo. Y en privado puedes elegir quién lo puede ver, ¿verdad? Cualquier otra cosa que no necesitemos. Entonces, solo creemos repositorio. Y ahí vamos. Configuración tan rápida, esto simplemente significa que no hay nada aquí en este momento. Entonces no tenemos una sucursal, no tenemos nada ahí dentro, y eso es básicamente exactamente lo que queremos. Entonces lo que vamos a hacer entonces es que vamos a copiar este de aquí, ¿verdad? Por lo que solo podemos hacer clic en este botón de copia y luego se va a copiar este HTML. Ahí está la URL más bien. Y luego vamos a entrar a nuestro proyecto MOD curso MC. Dentro de aquí queremos, primer lugar ir a Configuración de archivos. Y luego bajo control de versiones en GitHub, quieres agregar tu cuenta de Github.com. Solo tienes que hacer clic en el botón más. Y luego cuando te vayas, supongo que podrías hacer cualquiera de esos pedidos de tokens vía GitHub y luego te va a pedir que inicies sesión en GitHub. Por lo que todo funciona es médicamente, no tienes que ingresar tu contraseña en ningún lugar excepto en el propio GitHub. Y eso debería funcionar entonces y luego deberías tener tu cuenta ahí dentro, ¿verdad? Y una vez que esto está ahí, puedes subir aquí a VCS de tal manera que para el sistema de control de versiones. Y luego cuando entras en el control de versiones de importación, dices crear un repositorio de Git. Y lo que puedes hacer es que vas a seleccionar tu, tu directorio donde tienes tu mod i_n Así que deberías estar realmente seleccionado por defecto. Haga clic en Aceptar. Y entonces lo que va a pasar es que muchas cosas aquí se van a poner rojas. No te preocupes por ello. Eso es todo normal. Y luego aquí arriba donde en realidad vas a ver en algunos botones nuevos que aparecen. Esos son algunos buenos botones. Y en la esquina inferior derecha vas a ver este máster. Entonces esta es tu sucursal que vas a tener. Van a aparecer muchas cosas. No te preocupes por ello. Esto es, todo esto está bien. Ahora el rojo no significa que haya flechas. Esto simplemente significa que no los tienes comprometidos. Y sólo vamos a hacer eso ahora mismo. Entonces lo que vamos a hacer es subirnos a éste, a la, a la marca de cheques y decir comprometernos. Y sólo vamos a dar clic en esto. Y luego se va a decir que tenemos un 182 archivos de inversión. Sólo vamos a seleccionar esos. Y entonces vamos a decir que este es nuestro compromiso inicial. En aquí abajo se pueden ver maestros de esto va a estar en el interior de la rama maestra. Eso está totalmente bien. Podemos dejar esto. Y luego vamos a dar clic en Commit. Ahora va a agregar los archivos al sistema de control de versiones. Ahora él está mirando el análisis va a como decir, oh, aquí está el código, Fine. ¿ Hay flechas ahí dentro? Son las advertencias ahí dentro. Nos va a decir que ahora mismo hay algunas advertencias. No te preocupes por eso. Nosotros sólo vamos a comprometernos. Las advertencias son en su mayoría las cosas que tenemos, hemos ignorado. Porque a veces hay advertencias que tenemos que ignorar. Y a veces simplemente no estoy suprimiendo las advertencias con una, con una anotación. Probablemente deberíamos hacer eso, pero no es necesario, ¿verdad? Y ahora como puedes ver, no se lee nada. Pero si volvemos al, si volvemos al GitHub, si recargamos esto, no hay nada aquí. Entonces, así y hemos tenido un siquiera han puesto el, poner la URL en cualquier lugar, correcto, entonces, ¿por qué? ¿Qué está pasando? Bueno, necesitamos agregar la URL, así que ahora tenemos un control de versión local, pero no tenemos el control de versión remoto. Y remoto básicamente solo significa en otro lugar, ¿verdad? Entonces este es el que está en GitHub y tenemos que agregar esto también. Ahora, ¿cómo agregamos esto? Bueno, sólo podemos agregar esto diciendo push. Y luego va a decir, bueno, antes que nada, necesitabas encontrar un mando a distancia. No sé a dónde empujarlo. Y solo vamos a hacer clic en esto y luego pegar en la URL que hemos copiado de GitHub y decir: OK, va a comprobar si todo está bien o no y por supuesto todo está bien. Y entonces vamos a decir empuje. Ahora está subiendo todos los archivos para levantarse. Entonces puedes ver aquí abajo es empujando y luego dice empujar maestro a nuevo origen de rama corte muscular. Y si vas al curso MC ahora en esto, en GitHub o en nuestro repositorio de GitHub y recarga. Como puedes ver ahora todo está aquí y todo está bien ¿verdad? Ahora. Lo grandioso aquí es que una vez que cambies algo en tu código, así que digamos , por ejemplo, solo como ejemplo, vamos a agregar un comentario realmente importante, ¿verdad? Y vamos a guardar esto, como pueden ver, ahora, este archivo es azul. Esto se debe a que hubo una modificación a este expediente. Y entonces digamos que vamos a sumar una rabia. Lee, comentario muy importante también, justo, sólo por el bien de la discusión. Entonces vamos a tener dos expedientes. Ve que van a ser azules cuando los hayas modificado. Y la forma en que ahora puedes subir esto es simplemente cometiendo una vez más, ¿no? Y luego se puede decir agregaron comentarios importantes, ¿verdad? Y luego puedes decir commit o puedes hacer clic en esta pequeña flecha y decir commit y push, y luego lo va a empujar de inmediato. Vamos a decir, no me importan las advertencias. Como dije, no nos vamos a preocupar por esto. Se puede superponer. También puedes simplemente revisar lo que ha cambiado e inconstante. De acuerdo, empuja y, y empujándolo, te va a decir, todo va a estar bien. Ahora, ahora mismo si recargamos aquí, podemos ver que va en ello. Importantes Comunes. Ahora lo importante es que actualmente sólo estamos trabajando en una sucursal. Pero como dije, no quiero que esto, digamos devolve en un tutorial completo de GitHub. Yo solo quería mostrarte cómo básicamente puedes salvarlo. Y es una buena idea mirar quizá tanto el repositorio de GitHub aquí. Este es en realidad un buen recurso para tener también. Y luego voy a ver si puedo encontrar un buen recurso. Creo que en GitHub debería haber algunos ejemplos de cómo hacer ya sabes ramificar algunas cosas y así que sí. Correcto. Sí. Y eso fue básicamente todo lo que quería mostrarte cómo puedes subir tu MOD a GitHub y nos aseguraremos de que guarde correctamente que tengas un sistema de control de versiones adecuado. Y sí, así que si hay alguna pregunta por supuesto 3-3 preguntar, quiero recordarles que esto fue solo un poco de introducción o visión general. Dudo que vaya a meterme mucho más en algo relacionado con, para conseguir, porque realmente no debería ser el foco principal aquí en este curso. Pero sí, no, pero como dije, espero eso, eso estuvo funcionando para ti. Si hay algún problema, por supuesto, siéntase libre de preguntar y me aseguraré de responder. Y sí. 57. (Minecraft) la forja en la actual y la versión de Minecraft (1.16.4): Muy bien, bienvenidos a esta conferencia especial en el curso de Minecraft. Y aquí en realidad vamos a actualizar a la versión más reciente de Minecraft. Por lo que 1.16.4. Y ya he localizado el sitio web de la forja de Minecraft. Solo hay en el sitio web de microformularios normales y luego asegurarte de que estás en el 1164. Como podemos ver, la última versión es 1164 y luego 30, 5.0.2. Y en realidad no necesitamos descargar nada. Podemos cambiar esto en nuestro archivo de compilación de Gradle. Ahora, tenga en cuenta muy importante que esta es solo la última versión y tiene este pequeño error aquí, lo que significa que esta es una especie de versión beta y una versión de depuración. Y sin embargo, lo vamos a usar para el futuro y no debe romper nada y todo lo demás que vamos a hacer debería funcionar para ambas versiones. Podría haber algunos mapeos que se cambien en el futuro, pero todo eso se hace en una conferencia diferente, también en una conferencia diferente. Entonces vamos a cambiar por aquí. Y como podemos ver, esta era la versión antigua. Y luego vamos a cambiar esto a 4350 y luego a2. Y luego vamos a salvar esto. Y sólo vamos a cargar los cambios de Gradle. Ahora esto va a tomar un poco porque tiene que descargar todo. Y en realidad vamos a abrir esto en la construcción. Y luego va a descargar un montón de cosas, descargar la instantánea y todo ese jazz. Y una vez hecho eso, hemos actualizado. Está bien, así que todo parece estar hecho y tardó unos dos minutos, como se puede ver aquí. Entonces, dependiendo de lo rápido que sea tu computadora, puede tardar un poco más o tal vez va a ser más rápido. Y solo podemos ejecutar esto y ver si todo funcionó o no. Si hay cosas, entonces deberían aparecer como flechas y el cliente ni siquiera debería correr. Pero creo que todo va a salir bastante bien. Entonces sólo vamos a ver que ya está abierto aquí. Entonces sí creo que todo va a funcionar y vamos a ver primero las cosas que aquí arriba, advirtiendo forja, beta. Entonces como he dicho, Es la versión beta de las palabras. No obstante, por lo general no hay tantos errores y locura. Y si la hay, entonces siempre se puede actualizar. Entonces sobre todo mientras estás en el Veda, es bueno puro revisar periódicamente el sitio web en busca de actualizaciones y tal vez incluso para una versión estable. Por lo que definitivamente aconsejaría hacer eso. Y una vez que una versión estable es nuestra, entonces deberías usar esa versión estable. De todos modos. Entonces vamos a entrar, ¿verdad? Entonces esto es porque hemos jugado este mundo y 1163 y ahora hemos actualizado. Sólo vamos a decir, sé lo que estoy haciendo. Si El mundo se rompe, dudo mucho que eso se rompe porque no tenemos nada loco en él que pudiera romperse. Yo no lo creo. Sí. Entonces todo esto funciona. Y todo sigue aquí? Todo parece estar funcionando totalmente bien. Sí. Entonces que todo parece estar funcionando bastante bien. Y así es básicamente como actualizas, como ya he dicho, desde el 16, tres a uno, dieciséis por nada realmente ha cambiado tanto para nosotros en este momento. Y todo lo demás adelante se va a hacer en 116 Para así sí. 58. (Minecraft): Muy bien, bienvenidos de nuevo al curso de Minecraft, a esta conferencia especial por actualizar los mappings. Y esta va a ser una conferencia muy corta. Y aquí solo voy a actualizar el mapeo. Entonces voy a mostrar esto una vez con este video. Y luego como recurso aquí, realidad voy a tener las mappings actualizadas que puedes usar, que van a ser las más actualizadas. Básicamente, esos deben actualizarse. No estoy seguro con qué frecuencia se actualizan en realidad, en términos de forja. No obstante, probablemente voy a actualizar esto alrededor de una vez a la semana. Por lo que el peor de los casos, estás fuera alrededor de una semana. Pero estoy seguro de que eso va a estar bien. De cualquier manera o puedes, podrías buscarlos tú mismo. No es lo más importante actualizar los mappings que a menudo. No obstante, puede ser útil. Entonces, sólo vamos a volver a ejecutar esto rápidamente. Entonces he pegado esto. Como dije, esto está disponible como recurso. Y o simplemente puedes escribirlo el tipo desde la pantalla. O sea, eso no va a ser, voy a ser el sufrimiento más loco si somos absolutamente honestos, vamos a ver. Por lo que se va a descargar el mapeado. De nuevo los mappings. Y lo que básicamente son es solo para que no tengamos estos subrayados Fung 2869 subrayado BY métodos, pero en realidad tienen nombres. Y sí creo que tenemos un ejemplo que realmente tenemos que cambiar si no me equivoco, y eso va a estar en los más ítems, estoy bastante seguro de que lo son. Tenemos la resistencia al golpe BEC y eso fue un, ese fue un método funk sin nombre propio. Y sólo podemos arreglar eso. Pero veremos que una vez el, vez que los mappings tengan a la baja. Y como nota, no importa que se trate de 1163. Esto también va a funcionar en 1164. Y ahora si en realidad vamos a los artículos mod, sí creo que sí, tenemos una flecha aquí porque este fondo se actualizó en realidad y esto ahora se está volviendo derribado resistencia. Y se van, Sí, y eso es básicamente todo lo que necesitas saber. Otro recurso que también he proporcionado es el mapeo oficial de fragua. El mapeo oficial de fragua ex hoja excel, donde puedes , por ejemplo, si no sabías que esto no era una gran resistencia, puedes tomar esto, copiarlo y encontrarlo ahí dentro. Y entonces en realidad va a decir qué es eso. Entonces sí, entonces todo es todo lo demás va a funcionar totalmente bien. Yo sí creo eso como nada más. Solo voy a empezar solo por el justo para que podamos ver que todo va a funcionar. Pero sí creo que lo es. De lo contrario, nosotros sí. Está bien. Todo va a funcionar. Está bien. Todo funciona. Yo sólo lo detuve. Por lo que en realidad no hay otras mappings que se tienen que actualizar. Y sí, eso es básicamente sólo un video corto. Simplemente intercambiando rápidamente esta cuerda aquí. Y sí. 59. (Minecraft): Muy bien, bienvenido de nuevo al curso de microondas. Y en esta conferencia vamos a ver algunos tipos avanzados de tablas de botín. Entonces lo primero que vamos a ver es cómo podemos, por ejemplo, tener una caída desde una cuadra que es similar a Redstone, ¿verdad? Entonces cuando rompes un Redstone o bloque, puedes tener tal vez dos o hasta cinco o seis piezas de Redstone realmente caigan. Y entonces esto también se modifica por la stat de la suerte Sin embargo, vamos a ver justo cómo podemos establecer un conteo. Entonces, ¿cuántos, cuántos artículos van a caer de una cuadra? Y yo sólo voy a copiar esto y pasar por ello. Entonces como puedes ver, no es tan similar. Muy similar en realidad, no es tan complicado y diferente a la caída normal. Lo que cambiamos aquí es que agregamos esta lista de Funciones. Y aquí dentro podemos definir múltiples funciones. En nuestro caso sólo tenemos una función definida. Y esta es la función SetCount. Yo voy a, al final de la conferencia aquí, les voy a mostrar cualesquiera funciones que haya. Y les voy a dar un recurso que es muy, muy bueno para que profundicen los conocimientos sobre cómo funcionan las mesas Lou. Sí, y esto simplemente significa que el contador mínimo es de dos. Entonces, para que cada vez que rompo el bloque de cobre, caen de dos a cinco cajas de tazas. Por supuesto que en este caso eso realmente no tiene sentido. Esto es, sin embargo, sólo una manifestación básicamente, ¿no? No voy a mostrar esto ahora mismo, así que no voy a ir al juego. Pero sin embargo esto funciona Y también importante, esta es la distribución uniforme. Si eso te dice algo, entonces ya sabes lo que eso significa. Si no tienes idea de lo que eso significa, realmente no importa. Se puede buscar eso. Yo sólo yo sólo quería decírtelo. Está bien. Esta es una de las cosas. Entonces múltiples artículos o cómo sabes el caliente definiendo cuántos artículos caen? Pero, ¿qué tal gotas múltiples entonces también funciona. Por lo que podríamos imaginar que tal vez queremos un bloque de cobre caiga 20% del tiempo y 80% del tiempo realmente queremos que el alambre de cobre caiga. Y eso es todo lo que hemos hecho aquí. Por lo que dentro de las entradas, en realidad acabamos de agregar una nueva entrada. Y les hemos dado pesos a ambos, ¿verdad? Por lo que ahora dependen el uno del otro en el sentido de que el 20% del tiempo cae un bloque de cobre y el 80% del tiempo cae el alambre de cobre. Ahora en este caso, con la función cerca, podemos simplemente mantener eso ahí dentro. Entonces esto es muy modular. Digamos que con una función aquí dentro, en realidad podemos tener que esto sea exactamente lo mismo. Por lo que el 80% del tiempo cae el alambre de cobre y el 20% del tiempo entre 25 bloques de cobre caen. Entonces esto es lo genial aquí. Ahora bien, podría ser que tal vez en realidad tampoco queremos ni dejar caer lo que queremos que ambos caigan y tengan una oportunidad independiente, digamos. Por lo que también vamos a ver eso. Entonces esto es un poco más como puedes ver. Por lo que se vuelve un poco más complejo cuanto más allá bajamos aquí. Y lo que pasa aquí es que en realidad tenemos múltiples albercas esta vez. Entonces antes teníamos múltiples entradas, ¿verdad? Ahora sólo tenemos una entrada. Ahora tenemos múltiples albercas, ¿verdad? Por lo que cada una de esas piscinas, en realidad podemos especificar dentro de una entrada aquí. Oye, esta es una probabilidad aleatoria de, por ejemplo, una condición probabilidad aleatoria 0.5. Entonces aquí abajo, la portada, ¿por qué siempre caerá? Eso siempre va a pasar. Y aquí dentro, el bloque de cobre, por lo que entre 35 caerá 50% del tiempo con esta condición de casualidad aleatoria. Y lo genial que tengo como recurso es en realidad aquí en el juego mesas PDR Lu, es decir. Admito que esto es como los recursos de primera clase para ver cómo funcionaban básicamente las cintas de bucle. Y aquí tienes todo el impuesto y va a tomar tal vez un poco de tiempo, así que unos momentos para realmente reunir cómo se presenta esto. Pero una vez que has, ya sabes, una vez que has aprendido a leer esto, es realmente, realmente no sólo interesante, sino también muy útil. lo que él, por ejemplo, hay funciones que se pueden utilizar aplicar bono es para encantamientos. Por ejemplo, tenemos, ¿qué tenemos encantar al azar. Entonces es cuando nosotros, como pueden ver, cuando tenemos artículos que se dejan caer que quisiéramos encantar eso. Entonces cuando los artículos cayeron, correcto, podemos limitar los conteos para que podamos decir, hey, este es tal vez el especificar cuántas, cuántas gotas realmente caen. Aquí hay tantas cosas, como se puede ver. También tenemos condiciones en el predicado aquí donde tenemos cosas diferentes que podemos usar. Podemos ver las propiedades. Podemos ver si algo fue asesinado o no por el jugador. Tenemos la oportunidad aleatoria que ya te he mostrado desde las condiciones. Entonces hay un montón de cosas aquí dentro. Y te recomiendo encarecidamente si quieres tablas Lu muy específicas que no sean del tipo que he mostrado. Entonces esto, hay que pasar por esto y usar esto. Por supuesto una vez más, también puedes pasar por el GitHub de mods que podrían tener una funcionalidad similar a la que estás deseando usar. Pero este es un recurso muy bueno para cosas generales si no encuentras nada ahí. Sí, eso fue algo para mesas avanzadas de Lu. Y sí. 60. (Minecraft): Muy bien, bienvenidos de nuevo al curso de Microsoft y en esta conferencia vamos a crear nuestros propios cultivos. Por lo que he preparado un nuevo cultivo. Entonces esto va a ser una cosecha de calabacín. Ahora, lo primero que voy a decir es que las texturas fueron hechas a sí mismas, pero no soy artista. Entonces no se van a quedar geniales. Pero esto va a ser algo para más adelante en la conferencia. En primer lugar, vamos a ir a nuestro paquete de blog y vamos a crear nuestra clase de cultivo de calabacín. Esto se va a extender desde el bloque de cultivos. Y y simplemente vamos a obtener el coincidente, el constructor coincidente. Y vamos a anular los dos métodos. Uno va a ser el proveedor de artículos, que va a ser el artículo get seats. Esto básicamente sólo va a devolver la semilla. Ahora por supuesto que aún no tenemos eso en nuestros artículos MOD. Entonces vamos a hacer eso en un rato. Y luego también querremos una forma de voxel. Y eso va a ser buena forma. Con estado de bloque. No, sí, esto en realidad era el estado guardado de bloque correcto. A I block reader, que va a ser el mundo. Una posición de bloque, posición y un contexto de selección de ojos. Este, que va a ser contexto, posición del robot en realidad tiene que importarse. Eso lo haremos con viejo y entraremos. Y esto va a devolver algo y realmente necesitamos las formas e importarlas. Simplemente puedes hacer Control y luego hacer click izquierdo en el bloque de cultivos. Y aquí mismo, en realidad tenemos esta forma por H. Y esto va a ser algo que vamos a usar este tirón, esta formas, formas. Y esto básicamente define cómo se ve el, cómo se ve el bloque. Básicamente es lo mismo que el trigo. Y esto van a ser formas. Y entonces esto va a estar dentro de ella. Vamos a hacer estado aún este punto conseguir H propiedad. Y lo que básicamente hace es que obtiene la forma que le corresponde a cada una de las edades del, de la, en este caso el cultivo de calabacín. Por lo que va a crecer cada vez más grande como probablemente hayas visto con el bloque de trigo también. ¿ Verdad? Y luego vamos a entrar en los artículos modelo y vamos a crear nuestro calabacín. Y vamos a hacer esto debajo de la armadura. Este va a ser un objeto de registro final estático público de tipo ítem. Sólo vamos a ser la semilla de calabacín. Y luego ibas a hacer el registro. Registro que artículos. Ahora eso fue correcto. Artículos. Registrarse va a ser el bloque de calabacín. No, es asiento diminutos, claro. Perdón. Y este va a ser un nuevo artículo de candado en realidad. Y entonces realmente tenemos que abastecer los bloques MOD, cultivo de calabacín también. Entonces esto va a ser un poco saltando de ida y vuelta, pero no nos preocupemos. Entonces en los bloques de mapa, en realidad también tenemos que especificar esto también. En realidad vamos a saber que vamos a hacer esto debajo de las viejas escaleras y eso. Por lo que será un objeto público de registro final estático de tipo block, cual se emite cultivo de calabacín. Y eso se va a leer sólo ración. Entonces en este caso, realidad no vamos a hacer eso. Esto va a ser, así que no vamos a utilizar este método de registro aquí porque en realidad no queremos un bloque que corresponda al cultivo o un ítem que corresponda al cultivo. En realidad queremos tener un artículo diferente y eso van a ser las semillas. Básicamente. Este va a ser un registro normal de cultivo de calabacín. Y esto va a hacer un nuevo cultivo de calabacín con el nodo abstracto, con propiedades de punto de bloque abstracto de. Va a ser un poco diferente y no sólo va a salvar el trigo loc dot. Entonces sólo vamos a tomar exactamente las mismas propiedades que nosotros. Eso sólo tiene más sentido en este caso. Y luego en los artículos, en realidad podemos abastecer a este elemento de bloque con un bloque ahora, que va a ser Mott blogs, dot calabacín, Rob dot, get. Y entonces aquí realmente queremos propiedades del artículo, como hemos visto muchas veces. Y sólo vamos a definir al grupo EMC. Somos inteligentes. Primera pestaña, leer, ¿verdad? Por lo que la semilla de calabacín ahora está implementada ya. En los bloques de mapa tenemos implementado el cultivo. Y dentro de aquí, en realidad podemos simplemente devolver los artículos mod o artículos iniciar sello de calabacín. Eso se lee. ¿ Verdad? Ahora esto pensarías que ya sería. Por supuesto que aún necesitamos hacer los estados Bloch y los archivos JSON. Ahora esos son, bueno, ¿cómo puedo decir esto delicadamente? Todo un trabajo, digamos así. Entonces los estados Bloch no es realmente tan malo. Pero el y las texturas y el modelo, modelos para el bloque van a ser algo así como unas obras liberales organizadas. Hacer cultivo de calabacín, el punto JSON en los estados Bloch, sí. Por lo que es un bloqueo de riñón, es opinión crop dot JSON. Y sólo vamos a copiar esto y seguramente explicarlo. Entonces esto simplemente va a la, a exactamente esta edad. Entonces dentro de este peso, esta propiedad H, ¿verdad? Entonces esto por supuesto se extiende desde el bloque de cultivos. Y el bloque de cultivos tiene una propiedad entera que se llama edad. Y. En esto, los estados Bloch pueden por supuesto, mirar esta edad y luego modificar el modelo que se está utilizando. Y en este caso, realidad sólo vamos a tener ocho edades, así que de 0 a siete. Y por lo tanto también necesitamos todos esos modelos de ocho bloques en él, en los modelos. Y los voy a copiar. Esos. Esos son, por supuesto, suministrados una vez más. Y también voy a repasar un ejemplo. Entonces, sólo vamos a copiar esos a lo largo de apenas un segundo. Perdón. Sí. Entonces te vas. Está bien. Y ahora todos ellos están como dije, todos tienen que hacerse. Como puedes ver, son mucho no tan complicados también. Solo son un poco tediosos de hacerlas todas por tu cuenta. Por eso es mejor simplemente copiarlo porque aquí no hay magia real. El padre va a ser bloqueado corte slash. Y luego dentro de aquí realmente vamos a tener texturas de cultivo. Y luego decimos, bueno, queremos el cultivo de subrayado de calabacín, etapa de subrayado. Y luego dependiendo de qué JSON seamos, vamos a sumar un 012 o hasta siete. Y eso va a ser lo mismo en todos ellos. También después queremos agregar el artículo. Por lo que la semilla de calabacín JSON para el artículo, mayoría va a copiar rápidamente esto y mirarlo. Una vez más, este es solo un artículo normal. No hay nada particularmente loco en ello. El hecho de que podamos plantarlo todo ya está hecho dentro del cultivo de calabacín. Básicamente. Eso ya está definido. Y luego las texturas que he estado temiendo mirar, si soy absolutamente honesto. Y eso va a ser que va a estar en cuadra primero. Esas van a ser las etapas. Voy a copiarlos rápidamente y ver esta etapa 0 a siete. Y los voy a mirar, los vamos a mirar cuando estemos en el juego. Y entonces también por supuesto necesitamos un calabacín, una textura de semilla de calabacín. Entonces voy a poner eso también. Y una vez que hemos hecho eso, hay una cosa más que tenemos que hacer, claro, que es, bueno, en realidad hay dos cosas más que hacer. En primer lugar, vamos a definir esto rápidamente. Entonces vamos a tener item dot AMC, coerce dot calabacín, rap. Sólo vamos a ser semillas de calabacín. Y luego una coma aquí. Ah, bueno, así por supuesto. Y entonces lo último que también vamos a necesitar, o que podría ser, podría ser interesante aquí mismo sería otra mesa de botín para el cultivo de calabacín en realidad. Y también voy a copiar esto y lo voy a pasar por un segundo. Entonces esto va a ser calabacín recortado y Jason, y como puedes ver, esto es. Uno grande. Y qué, lo que está pasando aquí es básicamente, así que en lugar de caer un calabacín, en este caso, realidad sólo vamos a soltar un bloque de oro por el bien de la demostración en este momento. Y las otras cosas básicamente están diciendo, vale, vamos a conseguir un blog de oro y vamos a conseguir una semilla. Y luego hay una posibilidad, una probabilidad asociada a conseguir algunos asientos extra. Esto es, y esto se acaba de copiar del JSON del trigo. Por lo que realmente podemos ir aquí. Bibliotecas externas, creo que he mostrado esto antes, la red Minecraft cliente extra y en los activos Minecraft y luego en No, no está ahí. En realidad es en datos Minecraft por supuesto, una vez más, se tablas Lew y luego tenemos bloques. Y en algún lugar aquí tenemos trigo. Y como puedes ver, esto es casi básico. Básicamente exactamente el mismo just beat es intercambio con MCQ, cultivo de calabacín. Y sí, entonces esto, siempre puedes usar esos mucho más fáciles que el Google a tu manera incluso estamos haciendo pregunta porque esto es muy accesible aquí y siempre puedes ver un ejemplo aquí de algo que tú podría querer implementar, ¿verdad? Yo sí creo que así debería ser. Solo, vamos a ver qué pasa, ¿verdad? Es decir, en el peor de los casos, vamos a conseguir 100 flechas. Pero sí creo que ese no es el caso. No creo que vayamos a conseguir 100 flechas. A lo mejor íbamos a conseguir una flecha pero no un 100. Está bien, así que se ve bien. Esperemos que todo comience y que todo empiece, ¿no? Vamos a volver al mundo y esperar lo mejor. Pero sí creo que todo debería estar funcionando sin problemas. Así que vamos a buscar un balde de agua y luego vamos también a ver bien. Por lo que definitivamente la semilla está en. No se llevó el oh, es porque es una cuadra y agregar un artículo. Bueno, eso no tiene sentido en realidad, pero lo suficientemente justo. De acuerdo, así que vamos a ver si realmente podemos plantar esto. Bueno, no podemos hacer ¿cuál es el tema aquí? Eso no va a ser un tema desde hace mucho tiempo. Eso se puede arreglar en realidad, muy, muy rápido. Pero en realidad no podemos aterrizar. No obstante, hay una cosa más que debemos hacer antes de que esto parezca adecuado, digamos. Y eso va a ser dentro de nuestra normal. En lugar de nuestros MC CourseSmart. En realidad tenemos que entrar en las cosas del Cliente una vez, una vez aquí. Y vamos a añadir la siguiente declaración. Vamos a añadir tipo de render, HLOOKUP punto set capa de render. Y luego para el cultivo de calabacín de Matlock stat y conseguir, vamos a fijar el tipo de render para que se corte, ¿verdad? Y esto simplemente asegura que, bueno, no se parece a lo que vemos. Y entonces también podemos volver aquí. Y esto no va a ser item sino lock en realidad para las semillas. Eso es un poco raro, pero es, es la forma en que funciona esto porque se trata de un, en realidad tenemos que especificar el cultivo de calabacín en lugar de las semillas como elemento de candado. Es un poco raro, pero creo que va a funcionar. Es decir, no lo es, no es tan loco. Entonces como realmente veo, creo que el renderizado debe ser ladrón. Ahora, vamos, Aquí está la esperanza. Pero sí creo que eso debería estar funcionando ahora. A ver. Y sí, funciona. Se van ahora cada vez que todo a donde está bien, si eso en realidad es muy bueno. Entonces como puedes ver, eso está totalmente bien. Y lo que vamos a hacer es sólo vamos a rápido, qué es, velocidad de garrapata aleatoria, sólo voy a poner la velocidad de garrapata como 22 mil sólo para que podamos ver crecer. Y ahí podemos ver crecer. Mira esa belleza. ¿ No es eso hermoso? Y luego dio regla al azar tics velocidad 20. Por lo que ahora todo está totalmente crecido. Y entonces solo cambiemos también a la supervivencia rápidamente y luego rompehielos y como puedes ver, unas semillas caen y una, y un bloque de oro aquí. Y sí, para que todo funcione. Ahora por supuesto, una vez más, no lo harías, probablemente no querrías que caiga mucho oro de tus utilería. Compró un artículo tal vez o algo que especifique. Bueno, sí, así es básicamente como agregas tus propios cultivos a Minecraft. Entonces sí. 61. (Minecraft) Fluidos personalizados: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a crear nuestro propio fluido personalizado. Y para ello, primero necesitamos una nueva clase dentro de nuestro paquete de bloque, que se va a llamar los fluidos. Entonces ahí dentro, todos nuestros fluidos van a ir. Y esto es muy similar a los bloques MOD y a la clase Modo Items. Y también necesitamos registrar un nuevo registro por defecto. Y eso va a ser una estática pública. Final difieren, no un registro diferido, que va a ser frío o tipo de fluido, por supuesto. Y van a ser fluidos fríos. Como uno podría haber adivinado. B, registrar punto crear, palabra, registros, fluidos. Y luego una vez más MC dot id Y entonces sólo vamos a importar esto rápidamente. Y también muy importante sumado aquí abajo. De lo contrario no va a funcionar, no registrar un autobús de eventos. ¿ Verdad? Ese es el registro tratado. Y luego viene el mapa fluidos, que va a ser un poco por todo el lugar. Pero sólo vamos a empezar y luego vamos a averiguarlo. Entonces, en primer lugar, necesitamos tres ubicaciones de recursos. Tenemos que especificar las ubicaciones de los recursos. Uno para el alambique. Entonces, para antes que nada, vamos a crear un fluido que va a ser petróleo. Yo sólo voy a crear petróleo. Y creo que va bien con el, con una especie de estilo cobre, digamos. Y lo primero que vamos a necesitar es una localización de recursos para el petróleo sin gas, ¿verdad? Entonces este va a ser básicamente el nombre de tu subrayado fluido. Sigue subrayando Errol, Por supuesto, puedes renombrar eso como quieras. Esto sólo sería petróleo todavía y luego ubicación de recursos. Y esa va a ser una nueva ubicación de recursos. Y vamos a poner en nuestro MOD ID, Match ID. Y luego vamos a poner en un camino y eso va a ser bloqueado. Cortar subrayado de aceite, subrayado todavía. Y esto es básicamente, podemos simplemente copiar esto dos veces y hacer que éste fluya petróleo. Por lo que tenemos que crear dos bloques. Algo así, no es tan sencillo. Es, es una especie de dos cuadras, una todavía cuadra. Ese es básicamente el bloque de agua que, ya sabes, no está fluyendo y luego hay un bloque que fluye. Y también son dos. También necesitamos texturizar para eso, y eso es básicamente lo que estamos definiendo aquí en las ubicaciones de recursos. Y entonces también necesitamos una superposición. Y eso va a ser el subrayado de superposición de petróleo RL, ¿verdad? Y esas son las tres ubicaciones de recursos que necesitamos especificar. Y entonces en realidad podemos empezar y mirar algunos objetos del registro. Y esos van a ser objetos de registro de tipo fluido que fluye. Porque claro que este es un fluido que queremos fluir. Y lo primero que vamos a tener es el fluido petrolero. Y este es el este es el propio bloque petrolero. Algo así como dije, es un poco es un poco por todo el lugar, los fluidos, pero estoy seguro que podemos manejarlo. Por lo que este es registro de fluidos de registro. Este es el fluido de aceite. Entonces aquí realmente estamos definiendo la fuente del fluido petrolero. Esta va a ser una nueva fuente de datos de fluidos de forja. Y aquí hay que especificar las propiedades que aún no hemos especificado. Porque como dije, tenemos que pasar por esto. Es un poco, es un poco, yo diría que es redondo, especie de su suma. Porque cuando especificamos las propiedades después de ésta, entonces realmente tenemos que poner también los fluidos que fluyen. Definitivamente es un poco raro, pero como dije, no es un tema. Este va a ser otro objeto de registro de fluidos fluidos. Y esta vez no es fluido de aceite sino aceite que fluye. Entonces esta es básicamente la parte que fluye del fluido. Se trata de registro, registro, registro de fluidos dot. Y este es el petróleo que fluye. Y esto va a tener un proveedor de un nuevo fluido de fragua, no fuentes ensambladas, fluyendo. Y en lugar de miedo, también las propiedades van a ir y esas van a ser tratadas a continuación. Y esas son la fortuna que fluye las propiedades de punto. Y esas son la rampa de aceite o la burla, nuevas propiedades. Y esos van a estar locos también. Entonces lo primero es, como se puede ver, una vez un alambique de este fluido. Entonces en realidad le vamos a suministrar el fluido de subrayado de petróleo, ¿verdad? Por lo que esto se va a suministrar. Y aquí arriba ahora en realidad puedes poner en el mod fluidos dot o las propiedades. Y lo mismo con tus fluidos MOD, propiedades de aceite. Ahora es importante que realmente hagas de esto un poste estático con la clase al frente. Si haces esto, no va a funcionar. Referencia hacia adelante ilegal. Tan muy importante que realmente sí pones fluidos de lodo, propiedades de aceite, justo como una cosa rápida. Y esto tiene que ser un get. Y entonces necesitamos abastecer o para el petróleo que fluye. También dot get. Y necesitamos atributos fluidos y esto va a ser lo muy interesante. Por lo que los atributos fluidos son constructor. En primer lugar vamos a poner en la textura fija que va a ser aceite todavía RL. Y luego vamos a tener petróleo fluyendo RL. Y luego podemos definir las propiedades. Y como puedes ver, hay algunas cosas que realmente podemos hacer. Definitivamente sugiero también, con estos cuatro un poco, sólo voy a poner algunos valores. He mirado la luminosidad a, y voy a tener una rareza de punto rareza raro, digamos. Y vamos a tener un evento sonoro. Eventos sonoros, punto, artículo, miel, botella, bebida. Eso me gusta. Eso en realidad suena realmente interesante. Y sí suena un poco a aceite. Y luego vamos a tener viscosidad que es un número arbitrario. Y luego, y eso es interesante. Entonces vamos a cerrar realmente el paréntesis de Propiedades. Y luego tenemos algunas otras cosas que podemos precisar. Y los dos que son muy interesantes es pendiente encontrar distancia, que vamos a hacer tres. Y luego una disminución de nivel por bloque tres. Y lo que son esos es básicamente es la disminución de nivel por bloque solo significa que cuando coloques el fluido, va a recorrer estos muchos bloques. Y el hallazgo de distancia de pendiente básicamente es la distancia por donde viaja. Dos palabras, una pendiente hacia abajo. Como ya he dicho, lo mejor es jugar con estos números y conseguir un, tener una sensación por ellos. Y esperemos que cuando juegues un poco con ellos, entonces obtienes el resultado deseado de cualquier fluido que intentes implementar. También necesitamos especificar un bloque. Este es un bloque que en realidad aún no hemos implementado. Entonces sólo vamos a no poner nada. Y entonces esto va a ser cubo de puntos también. Y esto es algo que tampoco hemos implementado. Como dije, es blanco. El, bastante el reto aquí para hacer esto en una, porque en realidad no es una cosa lineal, ¿verdad? Porque no podíamos hacer primero las propiedades porque entonces no teníamos aquí los objetos de registro. Entonces sí, es un poco, es un poco áspero. Pero como siempre el todo, el código completo aquí está disponible como un recurso. Y o bien el objeto de registro es ahora un fluido que fluye y este va a ser un bloque petrolero. Y en realidad queremos hacer un registro de bloques de punto esta vez registro DOT. Y una vez más, no vamos con el método de registro de bloques de mapa. Pero otro porque no queremos una, digamos traducción uno a uno entre un bloque de petróleo y es, es, es ítem porque el ítem es por supuesto que va a ser un cubo en lugar de un pozo, voy a sólo un elemento de bloque de bloques. Correcto. Fluidos punto fluirán. Este es el fluido normal. Y luego vamos a añadir algunas propiedades de bloque abstracto. Entonces esto son solo propiedades normales que vamos a crear a partir del material. Agua, agua de verdad. Y luego lo vamos a hacer, vamos a hacer un movimiento no bloquea y dureza y resistencia. Esto va a ser como un 100100 g, pero un 100 y sin gotas porque el bloque no tiene caídas. Entonces en realidad ya podemos especificar esto en el primero aquí. Esto es una vez más con el nombre de la clase al frente mientras fluidos. Fluido de aceite. No, eso no está bien. Bloque petrolero por supuesto, punto get. Y entonces también necesitamos un método de registro de vacío estático público, que ya hemos visto en los bloques de modo y los fluidos de modo. Este sólo vamos a sumar después de esto, después de que los bloques registren algo fluidos DOT registro. Y entonces todavía tenemos que añadir el artículo. Y eso es, creo, casi todo lo que tenemos que hacer. También necesitamos agregar las texturas y eso sería todo. Por lo que sólo vamos a agregar esto después de esas opiniones, sembrar el ítem. Se trata de un artículo normal, objetos de registro de tipo artículo. Y eso va a ser un cubo de petróleo. Con artículos de punto de registro. Registrarse. Esto no debería estar bien, ¿algo loco? Va a ser un nuevo artículo de cubo. Y un artículo de cubo en realidad se define con un fluido también. Por lo que los fluidos mod peso de punto de fluido. Y luego vamos a usar la expresión lambda aquí. Nuevo elemento dot propiedades, y estamos fuera. Entonces sólo vamos a poner esto una vez más dentro de nuestra ficha. Y vamos a sumar otra. Otra propiedad que va a ser de acceso máximo uno porque por lo general es como ellos definirías un cubo. Los cubos no suelen apilarse con fluidos en ellos, ¿verdad? Y entonces podemos aquí realmente muy simplemente poner en el modo artículos, puntos, bien cubo, que bueno. Y sí, es decir, yo lo creo todo. Ahora por supuesto, también necesitamos agregar las texturas. Y yo también, sí, y también necesitamos añadir una etiqueta también. Entonces, antes que nada hagamos las texturas. Eso va a ser en las texturas de bloque. Y una vez más, los voy a copiar. Eso va a ser en texturas de bloque. Eso va a ser copia de cinco archivos. Sí. Eso va a ser el petróleo que fluye. Vamos a tener que fluir petróleo. Mc Mehta y otro MC Mehta. Esto es sólo por animación. Y la superposición de aceite. Como dije, todas las texturas se suministran como siempre como recurso o se va a conseguir cubo. Y aún quedan dos archivos JSON que tenemos que hacer en los modelos. Por lo que la primera va a ser la cubeta de petróleo. Eso no es un tema. Vamos a balde JSON. Eso no es nada. Este es solo un archivo JSON normal para el para un artículo, ¿verdad? Eso no es nada que no hayamos visto antes. Y luego para el bloque, en realidad necesitamos especificar el bloque de este modelo. Y eso sólo va a ser viejo punto petrolero JSON. Y esto también simplemente va a ser un archivo JSON muy fácil de ver. Y también necesitamos un Bloch estados porque hemos sumado un bloque. Esto se va a engrasar hasta JSON una vez más, oh, Jason, ego y sorpresa, sorpresa. Todo es muy similar a todas las demás cosas. Por lo que la mayoría de las definiciones de los fluidos están en realidad dentro de los fluidos de la forja. Y sí creo que esto debería ser todo. Se han agregado las texturas, se ha agregado el modelo, registro. Entonces, veamos en el juego si nuestro fluido se ha agregado correctamente o no. Pero todo debería funcionar bien. Bueno, quiero decir, ya he visto un tipográfico aquí. Por lo que ahí tienes. No obstante, creo que así debería ser. Sí. Ahora, el nombre aquí, petróleo, esto, por supuesto, tiene que ser el mismo que aquí afirma Bloch y el mismo que este modelo de bloque. Y entonces el cubo de aceite, por supuesto, es el rubro que corresponde al bloque petrolero. Por eso hemos agregado un elemento de modelo, el archivo JSON del cubo de aceite en lugar de un que presentaremos por ejemplo, no hay ningún elemento de petróleo en ese sentido. Entonces vamos a ver si todo se ha agregado correctamente y bueno, en primer lugar, vamos a fijar la hora hoy para que realmente podamos ver algo. Voy a cambiar al modo reactivo. Y así se ha agregado la cubeta de aceite. Por supuesto que no está localizado. Eso es algo que se debe hacer muy fácilmente después de todo, después de todas las cosas que hemos localizado. Y veamos si realmente puedo colocar el fluido. Yo puedo. Hermosa. De acuerdo, así que vamos a ver que acabo colocarlo aquí. En realidad se ve eso. Por lo que viaja a tres cuadras. El bloque fuente siempre es también algo que se cuenta. Ahora, sólo puedo caminar a través de ella. Esto se debe a que aún no se ha agregado al al tanque de agua. Entonces esto es lo que dije. Por lo que necesitamos agregar una etiqueta en las etiquetas de Minecraft y luego en lugar de bloques, en realidad queremos tener otro directorio llamado fluidos. Y dentro de ahí tenemos un archivo JSON o punto de agua JSON. Y voy a copiar rápidamente esto. Nada loco excitante. Es sólo que esto agrega una etiqueta. Sí. Y entonces en realidad va a tener algo de resistencia y se va a, bueno comportarse un poco como agua, al menos cuando entras en ella. Por lo que también llevaría entidades y artículos. Pero vamos a ver eso en breve. Y vamos allá vamos. Ok. Y sí. Y ahora en realidad tiene cierta resistencia a ella. Y si entramos, es ser es muy parecido a estar bajo el agua, ¿verdad? Eso es genial. Sí. Y esto ya es todo lo que tenemos que hacer para agregar un nuevo fluido a Minecraft. Entonces sí, espero que eso fuera de su interés. Y si hay alguna pregunta como siempre, siéntete libre de preguntar. Y también si el curso ha sido un valor para ti, realmente agradecería una reseña o calificación. Y sí. 62. (Minecraft) limpiando y refactoring y refactoring: Muy bien, sigamos con el curso de Minecraft. Y en esta conferencia realmente vamos a refactorizar un poco el código porque hay algunas cosas de las que realmente necesitamos agregar y tal vez cambiar para que en adelante, los temas más complejos vayan a ser bien realizables y un poco más fácil de seguir y de entender. Entonces lo primero que vamos a hacer es entrar a la clase java de registro. En realidad voy a refactorizar este método y renombrarlo a solo init. Simplemente porque siento que el rojo llamando a este registro es blanco, como sí registra los registros diferidos en el con el bus de eventos. No obstante, creo que init tiene un mejor es un nombre mejor para ello. Yo sí creo que ese es el caso. Lo siguiente que vamos a hacer, vamos a entrar en nuestro modelo de curso MC y vamos a borrar el, estos dos. Por lo que el Encola IMC y proceso IMC. Esto, estos métodos son serían para comunicaciones intermedias. Entonces eso es lo que soy. C es sinónimo de. Y también se puede ver evento de encola intermodal. Por lo que esos son comunicación entrelazada. En este momento, no lo estamos, no queremos comunicarnos con otros modelos. Entonces también podemos eliminar esto, esta cosa de declinación que vamos a descifrar pronto y la configuración que realmente queremos mantener. Por lo que en la configuración, en realidad podemos despejar la configuración. Y en lugar de la configuración, queremos poner algunas cosas, principalmente la configuración, por lo que queremos copiar esas en la configuración. Y luego también queremos poner pero primero por supuesto, esta manera, sí, primero queremos cargar las configuraciones. De otra manera. Primero queremos registrarlos y luego cargarlos. Y ahora eso es lo primero que podemos hacer es también, bueno, quiero decir, esto está bien. Pero si lees esto que te gusta, no estoy 100% seguro. Por eso en realidad vamos a sacar esto de este método y vamos a crear dos nuevos métodos. Entonces esto va a ser conflictos de registro. Entonces esto es algo que es mucho donde creo que es muy difícil de explicar y, o incluso saber probablemente podrías escribir muchos libros de conocimiento al respecto. Pero es muy difícil de conseguir. Obtener qué, por qué esto es algo bueno o cómo esto es algo bueno. Entonces de esta manera, si ahora lees el método de configuración, en realidad puedes ver OK, así que primero vamos a registrar un conflicto y luego podrías hacer algo más aquí. Y luego vamos a cargar los conflictos. Y si sólo tenemos esto, el esfuerzo mental para entender lo que está pasando aquí es sólo un poquito más. Y se podría decir, bueno, quiero decir, no importa, ese es el pequeño esfuerzo aquí no importa. Bueno, cuando tengas, digamos 200 clases. Y en cada una de esas clases hay un poco de diminuto esfuerzo para leerlo realmente. Y entonces va a importar, ¿verdad? Entonces esto es básicamente lo que es. Algo que debe ser, debe señalarse. También vamos a añadir otro método privado, y voy a llamar a esto las adiciones en modo registro. Esto es básicamente, una vez más, esto, estos nombres son todos, diría. Todos son tarifas personalizadas. Entonces puedes, si crees que quiero nombrar esto de manera diferente o algo así, esto es todo, tienes la libertad de hacer esto. Lo más importante es que se puede leer el código fuente. Y ojalá entonces otras personas también puedan leer la fuente de eso es, eso es lo que queremos que suceda. Y en realidad nos vamos a llevar todo esto. Por lo que el registro en ella y todos nuestros métodos registrados, e incluso el bus de eventos mod. Y vamos a poner esto aquí. Y en realidad voy a separar esto un poquito. Y vamos a añadir algunos comentarios. Y es el registro de nuestras adiciones. Adiciones, van. Y esto es entonces registros, artículos, bloques, ETC. Agregado por nuestra modalidad. Y éste va a registrar eventos MOD, ¿verdad? Esto también y luego por supuesto se necesita agregar al instructor aquí. Entonces lo siguiente, vamos a eliminar las cosas de Duke Client. Voy a liderar este comentario. Y en realidad vamos a registrar esto después de la configuración. Y hay una cosa más para hacer esto es que también podemos eliminar ese comentario. No necesitamos eso. Y en realidad vamos a crear algunas clases nuevas también. Por lo que dentro de nuestro paquete de cursos MC, primero vamos a crear un nuevo paquete llamado configuración. Una vez más, podrías, posiblemente también podrías poner esto en util. Esto se trata mucho de cómo quieres organizar tus paquetes para que te sientas cómodo. Vamos a crear una nueva clase Java, que va a ser una interfaz, y eso se va a llamar proxy IP. Y luego vamos a crear una segunda clase que va a ser el proxy del cliente. Y luego un tercer plus sacó del servidor. Roxy. De acuerdo, así que yo, un proxy en realidad no es tan loco de una interfaz. Entonces ahí vamos. Esto va a tener un método que se va a llamar vacío en él. Y luego otro método conseguir mundo pliant es decir, importar este. Y luego ambos por supuesto, implementar el proxy ocular, implementar métodos. Y ahora mismo no tenemos nada en el perdón. En el año sólo podemos volver minecraft punto instancia punto mundo. Y luego aquí en el init En realidad podemos agregar algo. Y ese va a ser el tipo de render para el cultivo de calabacín. Y también podemos eliminar este método aquí. Por lo que podemos sumar este derecho. Aquí vamos. Y luego el proxy del servidor, esto también implementa yo proxy. Y el, bueno, en primer lugar, implementar métodos curso. Y aquí en realidad vamos a lanzar una nueva excepción. Y en el servidor de ejecución, porque no deberíamos conseguir el mundo del cliente en el lado del servidor. Y el init sólo se va a mantener vacío ahora mismo porque no hay nada en eso estamos haciendo en el servidor en este momento en el tiempo. También vamos a sumar el suscriptor de bus de eventos. Entonces eso va a ser suscriptor de bus de eventos MOD, mod id, dot mod ID plus. Se trata de math.pi event bus suscriptor dot. Y esto es lo más importante, solo punto, punto reliant. Y vamos, voy a copiar esto por encima o el proxy del servidor. Y la única diferencia aquí es que este va a ser servidor dedicado, ¿verdad? Correcto. Entonces eso es todo lo que tenemos que hacer aquí. Y luego dentro de la clase de curso MC, nuevo, vamos a crear un, creo que el despido debe ser público. Sí, este es un proxy IP estático público será proxy. Y vamos a inicializar esto aquí mismo. Y esto va a parecer un poco loco. Pero no te preocupes por ello. Dist executor, dot safe, run for list. Y luego vamos a crear estos clientes Roxy nuevo y proxy de servidor, nuevo proxy de servidor, New Evil. Sí, así. Y también importan estos dos. Y creo que eso debería ser todo. Queremos tejer esto aquí mismo. Entonces punto proxy en él en el método de configuración entre los conflictos de registro y los conflictos de carga. Sí, creo que eso ya debería ser todo. Ahora en realidad hemos hecho un poco de orden aquí. Entonces el, el, esta clase se ve bastante diferente. Y para asegurarnos de que todo funcione cuando ejecuto esto, solo para que estemos seguros de que todo está funcionando bien y no hemos roto nada. Siempre es una gran idea, sobre todo cuando estás refactorizando tu código para asegurarte de que todo siga funcionando. Si tienes pruebas escritas, que por supuesto lo haría. No creo que eso tenga sentido escribir pruebas, sobre todo para algo de este tamaño. Pero si escribes pruebas, entonces asegurándote de que las pruebas sigan funcionando y el programa siga funcionando, ahí es cuando es importante. Entonces, por ejemplo, una de las cosas que podríamos querer ver es si el tipo de render probablemente se ha activado y tiene así que eso es bastante bueno. O los artículos parecían estar todos en lugar de la cosa duerme, estar funcionando totalmente bien. Entonces sí, eso es genial. Eso es bastante bueno. Y esto fue básicamente todo lo que necesitábamos hacer para la limpieza. Entonces solo limpiando un poco y teniendo esto sea un poco más legible, ¿verdad? Entonces sí. 63. (Minecraft) Modelos de bloques personalizados (incluyendo la caja de bloques): Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a ver las formas de Brock del cliente y cómo podemos hacer un bloque que no está en la forma o forma de un bloque. Entonces lo que vamos a necesitar para eso es el, otro programa que se llama banco de bloques. Es posible que algunos de ustedes ya hayan oído hablar de ello. El enlace al programa está disponible como recurso. Y si lo abres, algo así debería aparecer. Y lo que queremos es un nuevo elemento de barras de bloque Java. Entonces vamos a dar click en eso. Y entonces podemos darle un nuevo archivo. Yo sólo voy a llamar a esta prueba. Ya lo he preparado todo. Y entonces sólo vamos a decir, está bien, y luego nos encontramos aquí. Para que podamos acercar con el ratón, haremos clic con el botón derecho, podemos. Por lo que sosteniendo a la derecha, el botón derecho del ratón va a transformar nuestra visión aquí. Y luego si mantenemos presionado el clic izquierdo y podemos rotar alrededor. Y este es en realidad uno de los programas 3D más fáciles de usar. Y se traduce realmente bien a Minecraft. Entonces solo podemos agregar un cubo aquí y luego tenemos un cubo. Ahora este sería el, por lo que toda la t de esta cuadrícula aquí es un bloque y un cubo es 1 16 de un bloque básicamente. Entonces por ejemplo, podríamos decir aquí el tamaño x, y luego podemos decir 16. Y ahora esta sería en realidad la longitud de un bloque. Y entonces podríamos decir, bueno, en realidad también quiero tenerlo en esta dirección. Y ahora la capa inferior, por lo que el píxel inferior de la textura del bloque, por así decirlo, ahora se llena con este modelo 3D. Y sí, y entonces podemos, por ejemplo, decir: Bueno, entonces vamos a bombear aquí también. Y ahora tendríamos un bloque completo, 16 por 16 por 16. Y sí, entonces con esto, básicamente podemos construir cosas. Entonces podemos decir, bueno, fuimos uno aquí, uno aquí, uno aquí, y luego podemos construirlo ya sea con estos bloques individuales o podemos tener bloques más grandes y, y solo, ya sabes, construir algo. Entonces la creatividad realmente no tiene límites aquí. También podrías rotarlo, ¿verdad? Depende de si el pivote es. Por lo que este pivote es básicamente el punto donde gira alrededor. Entonces si entonces centramos el pivote, entonces se va a centrar dentro de aquí. Y entonces en realidad podemos rotarlo así. Por lo que en realidad podemos hacer las formas que son nano tubos que no están relacionados con bloques. Y en realidad hacer eso en este caso. Pero ahora podemos hacer esto, por ejemplo, ¿verdad? Entonces podemos hacer unas cosas bastante locas aquí. No obstante, ya he preparado un modelo para mostrarte. Y se ve algo así. No es nada espectacular. No obstante, es un non, es una forma de bloque irregular, digamos. También he puesto en tres texturas, esos son solo colores en este caso. Por supuesto, si quisieras tener un verdadero bloqueado y necesitarías importar el vidente de texturas. No obstante, esto es muy fácil. Como puedes ver si yo, por ejemplo, entro aquí y selecciono, digamos este cubo aquí. Se puede ver que hay diferentes lados, ¿verdad? Por lo que el lado norte sería este lado. Y puedo mover esto ahora si este fuera a ser un archivo de textura que he creado, y básicamente podrías decir, vale, esta parte del PNG ahora debería mostrarse ahí. Lo es. Creo, muy sencillo usar este programa y deberías ser, como, yo diría en aproximadamente una hora, deberías poder crear modelos bastante bien, lindos aquí. Y sí, así que esto en realidad es muy bonito y muy bien hecho. No obstante, hay algunas cosas más que tendríamos que hacer para que esto funcione. Entonces digamos que has creado tu modelo aún así quieres. En realidad necesitamos mirar algunas otras cosas. Y eso se va a hacer en exhibición hasta la parte superior derecha. Y así es como se va a ver en las manos de los jugadores y en tercera persona y así sucesivamente. Entonces hay algunas cosas que realmente tenemos que poner aquí. Entonces por ejemplo, estas escalas, por defecto, es, bueno, muy grande. Por lo que probablemente necesites ajustar la escala de muchas maneras. Y hay que pasar por todas las ranuras de aquí. Entonces la tercera persona, y se puede ver en primera persona izquierda paseo en primera persona, se puede mirar, cómo se ve en la cabeza, cómo se ve en el suelo. Entonces la referencia aquí es de una cuadra. Entonces puedes decir, bueno en realidad soy tal vez, quiero tener esto realmente grande o no tan grande. Y podemos mirarlo en un marco. Se puede cambiar en un, un marco de isla y también en la GUI. Entonces cómo se ve en el inventario, todos pueden cambiar eso. Y todo esto va a funcionar con bastante facilidad. Y sí, así también, para exportar esto, entonces necesitas ir a Exportar archivos y a un modelo de elemento de bloque de exportación. Esto luego generará un archivo JSON y luego el archivo adyacente se puede utilizar como un modelo de bloque. No obstante, son pocas las cosas más que también necesitamos mirar. Y eso es dentro de la clase que vamos a crear. Y sin embargo, vamos a terminar esto, lo que necesitas es un plug-in que se va a llamar Mott utils. Por lo que solo puedes ir a utils mod disponibles y luego instalarlo. Ya tengo en sólido por supuesto. Eso entonces te permite exportar esto como una forma de voxel y vas a necesitar eso. Entonces forma de voxel, esto es, este también es un archivo JSON. Crea la forma para el bloque para que el, que básicamente tienes los límites del bloque en exactamente este patrón, ¿verdad? Por lo que se podría imaginar, por ejemplo, un bloque que tal vez tengamos. Por ejemplo, se puede, ya sabes, una losa. Y una losa por supuesto, no tiene su límite en todo el bloque, pero es sólo media cuadra. Y eso es exactamente lo mismo que queremos que haya pasado con eso. Entonces para eso, en realidad necesitamos crear un grupo aquí llamado formas voxel. Y luego ponemos todos los cubos o partes que hemos hecho debajo de eso. Y entonces podemos exportarlo. Y en realidad necesitamos exportar esto cuatro veces. Nosotros, porque queremos explorar este de cara al norte. Por eso he creado este tipo de con esta parte más grande aquí, mirando hacia el norte. Entonces en realidad sabemos cuál es el frente donde C. Y entonces siempre queremos saber, queremos trabajar con todo y queremos rotar esto alrededor y luego exportar esto como una forma de voxel. Exporta esto como forma de voxel, exporta esto como forma de voxel. Y luego estamos de vuelta aquí. Por lo que en realidad podemos, pues, una vez más, para este ejemplo en particular, todo se suministra como recurso. Para esta conferencia. No obstante, si quieres las tuyas, entonces necesitarás exportar esas cosas. Y les mostraré los expedientes, cómo se ven y qué hacer con ellos. Y sólo un segundo. Entonces vamos a cambiar de nuevo a nuestro inteligente aquí. Y luego vamos a echar un vistazo rápidamente, por ejemplo, a la forma de voxel que vas a conseguir. Este va a ser archivo a.java y va a verse algo como esto. Entonces esto sólo va a ser una corriente de forma de voxel. Y vamos a implementar este pozo muy pronto. Y te mostraré cómo hacer esto. Pero primero necesitamos realmente crear un nuevo bloque. Entonces para eso vamos a crear un bloque. Voy a llamar a esto el fuego eléctrico electrizante. Sí. Y esta es también la base de algunas otras cosas que vamos a hacer, que podrían ser entidades de azulejo en futuras conferencias. Pero ahora mismo, esto sólo va a ser un roto con una forma nueva y personalizada. Se va a extender bloque. Pero también va a extender el bloque derecho. Eso es muy importante. Porque a veces sí toma el bloqueo equivocado. Eso es un poco molesto. Pero ahí tienes. Está bien. Entonces eso es bonito, bastante bueno ya. Tenemos esto hecho ahí dentro. Y luego vamos a inmediatamente sí, inmediatamente vamos a poner todas las cosas aquí. Por lo que lo primero que necesitamos agregar es una propiedad privada de dirección final estática frente. Y esto va a ser igual a punto de bloque horizontal frente horizontal. Como lo primero que vamos a hacer, oh, ahí tienes. Y luego podemos agregar algunas sobrescribadas. Entonces lo primero que vamos a anular es la forma de voxel pública. Publics. del voxel público pone forma. Este. No me preocupo por esto. Aquí la flecha. También podemos hacer un advertencias de supresión. Esto es deprecación, ¿verdad? Sí. Deprecación así, ¿verdad? Sí. Está bien. Sí. No es el gran problema aquí es que simplemente no se debe llamar, pero se puede anular. Entonces eso no es lo peor. Y luego también queremos anular el estado bloqueado, estado bloque público, obtener estado para la colocación. Y esto tiene como elemento de parámetro, usar contextos. contexto ya devolvió algo y eso va a devolver este punto obtener estado predeterminado con enfrentamiento. Y luego el contexto punto-punto-punto colocación, frente horizontal, y luego lo contrario. Y vamos a ir Anular aquí. No, eso no es eso no es exactamente lo que quería hacer. Esto es lo que quería hacer, el ego. Y luego hay dos más, en realidad tres métodos más que necesitamos implementar. Una de ellas es una etapa de bloques. Sólo vamos a estar rotando. Se va a tomar en un estado de bloque, estado y una rotación. Pero esto también va a ser una anulación otra. Y tú sí obtienes rápidamente rotación aquí. Una vez más, esto dice una depreciación. Simplemente vamos a suprimir esa advertencia porque no va a ser lo peor. Ahora mismo. Vamos a regresar el estado con el frente y luego la rotación en dirección al frente. Entonces esto, todos estos métodos que implementamos en este momento en este momento son básicamente para saber en qué dirección estamos colocando el bloque. Es muy similar a cuando se coloca un horno, por ejemplo, El lado de si el horno quema siempre está frente a usted. Esto es básicamente muy similar a lo que estamos haciendo en este momento. Esto va a ser como lo mismo aquí, el espejo. Y luego vamos a devolver estado DOT rotar y luego espejar en rotación DO2. Y esto va a ser estado.gov enfrentando una vez más. Y eso es todo. Y entonces el último, último método que realmente necesitamos implementar es un contenedor de llenado vacío protegido y protegido. Eso va a ser un contenedor estatal. Y un contenedor, nope. A O dot constructor de bloqueo y estado de bloque. Y esto va a ser un poco más complicado aquí. Pero en realidad no es eso. Bueno, parece complicado, pero en realidad sólo vamos a decir constructor dot add, basing. Eso es todo lo que necesitamos hacer. Y quiero importar esta clase. Diga que esto es una sobreescritura también para que lo sepamos. Y eso es todo. Ahora, tendremos que cambiar este también. Porque ahora vamos a tomar los revestimientos que hemos conseguido. Entonces esto sería para archivos y que obtenemos cuando exportamos las formas voxel de roca doblada, como dije, básico norte, este, sur y oeste. Y yo sólo voy a apoderarme de uno de ellos. Entonces esto es algo como se vería. Por supuesto, esto para nosotros ahora mismo tiene poco sentido. Pero no te preocupes, vamos a averiguarlo. Esto es sólo algo por lo que necesitas una copia encima. Ya he preparado esto para todos los lados y voy a explicar rápidamente una vez que lo haya copiado. ¿De acuerdo? Por lo que las formas de voxel necesitan ser importadas. Booleano, función y arroyo también. Y entonces eso funciona muy bien. Ok. Entonces, ¿qué está pasando aquí? Bueno, definimos una forma de voxel final estática privada. Y luego queremos definir el voxel en forma para el norte, este, sur y oeste. Y luego sólo copiamos sobre el arroyo. Muy importante. El arroyo está sin el punto llegar aquí al final. Por lo que es necesario agregar esto para que funcione. Y entonces también tenemos que añadir esto a la forma del gueto aquí mismo. Y vamos a hacer esto con haciendo una declaración de cambio. Entonces vamos a hacer cambiar y luego vamos a decir que se pone de frente. Entonces básicamente estamos dependiendo del enfrentamiento, Vamos a darle una forma de voxel diferente. Entonces el primero que vamos a tener es caso norte, que va a devolver forma subrayado n. ¿Y luego qué? Voy a copiar esto rápidamente un par de veces. Y el movimiento dice que oriente va entonces a dar forma, es decir. Sur va a devolver forma S y West va a regresar. ¿ Puedes adivinarlo? Con forma de W? Y luego también vamos a agregar un valor predeterminado, que va a devolver forma. Y va a decir, oye, entonces podemos dejar esto fuera. Simplemente lo vamos a dejar así. Esto va a estar bien. Y eso define la forma del bloque. Ahora también tenemos que sumar los estados de Bloch y el modelo. Pero eso va a ser en realidad no demasiado terrible. En primer lugar, vamos a registrar esto aquí. Esto va a ser público estático, objeto de registro final de tipo bloque. Y ese va a ser el fuego eléctrico. Sí. Que va a ser lo que va a ser registro fuego eléctrico. En este caso, podemos volver a utilizar el método normal de registro. Y esto va a ser una nueva electrificada con propiedades bloqueadas abstractas. Propiedades. Y luego vamos a decir, material seguro, material que hierro. Tomemos esa. Y entonces vamos a hacer Socios en resistencia o formato esto un poco más bonito. ¿ Y qué más? ¿ Qué tal herramienta de cosechas? Sí. Creo que eso tiene sentido. Va a ser yo diría, pick X tiene sentido. Y luego algo más que necesitemos? Sí, necesitamos al grupo donde quiero al grupo. No sé que el grupo se va a definir automáticamente porque lo hemos hecho aquí abajo. Entonces sí, creo que eso está bien para el Registro. Y luego queremos agregar el estado de bloque. Entonces ahora los estados Bloch lo es, no es difícil ni nada. No obstante, sólo voy a copiar esto y a explicar eso una vez más. Por lo que este será el punto de fuego eléctrico JSON. Y aquí en realidad tenemos diferentes variantes ahora mismo porque queremos cambiar la rotación de este modelo dependiendo de dónde se enfrente. Entonces este enfrentamiento de aquí se refiere a este enfrentamiento por aquí, ¿verdad? Entonces cuando esto es al norte, entonces sólo vamos a mostrar el modelo normal. Y cuando sí mismo, lo vamos a girar unos 180 grados y así sucesivamente y así sucesivamente. Pero esto es básicamente una breve explicación de esto. Esto no es nada demasiado loco. Y luego necesitamos el modelo de bloques. Y éste va a ser el que más loco es. Este es el que sólo voy a cambiar al otro, éste. Y esta va a ser la que vas a exportar aquí. Por lo que el exploit rompió modelo de artículo. Y ese va a ser el archivo JSON que vas a ver ahí. Y eso va a ser bastante loco porque éste va a verse algo así. Voy a copiar esto y ustedes se van a caer todos de sus sillas. Voy a copiar. Y así es como va a quedar. Eso está un poco bien. Eso es, eso son bastante cosas. Esto básicamente simplemente define el, cada elemento, ¿verdad? Entonces cada elemento que eres, es simplemente un bloque, básicamente que hemos definido en banco de bloques. Y luego dice qué textura tiene cada rostro. Y sí, así que esto es sólo algo que se copia. Muy importante que el interior de las texturas Aquí todo está bien. Esto también podría tener un problema. Por lo que los nombres de las texturas son los mismos nombres que están aquí. Entonces ahora mismo el, aquí, se llamarían Textura uno y textura a ella x tres. He renombrado este año para electrificar nuestro subrayado 123 porque es textural 123 realmente no son tan buenos de un nombre simplemente porque entonces, bueno, qué es eso y también lo que debes agregar es necesitarás agregar curso MC o tu mod ID delante aquí. Eso es muy importante. Y sí creo que desde el defecto que crea banco de bloques es Brooks y no bloquear para la textura es muy importante. Hemos nombrado nuestra textura en nuestro texto o palabras. Es decir, nuestra textura, texturas, carpetas, bloque y elemento, singular, no plural. Muy importante. Y así vamos entonces también a conseguir el JSON electrificado para el artículo que es un artículo normal que se refiere de nuevo al bloque, eso es todo. Entonces también nosotros, una vez más, cada archivo, pesar de que también tengo el archivo banquillo de bloque, el JSON, y todas las cuatro formas de voxel, así como las texturas, están disponibles una vez más como recurso. Y también queremos agregar las texturas en bloque aquí mismo. Copia sobre. Sí. También tenemos los autos eléctricos. Solo son cuadrados rojos, verdes y azules. Entonces no es que no sea una textura real en ese sentido, pero sí, sí, y creo que eso, eso es todo. Ahora, es un poco más por supuesto. No obstante, para bloques especiales, digamos que no es tan complicado. Todas las cosas consideradas, solo empecemos y veamos si todo funciona. Ese será el mejor de los casos. Por supuesto, aún no hemos agregado una localización. Pero una vez más, la localización debería ser bastante fácil de agregar si quieres agregar eso más adelante, eso es medio trivial en este punto, sí lo creo. De acuerdo, veamos aquí y veamos cómo se ve en el juego. Con. Cuanto más complejos se pongan los temas, más propensos a errores podrían ser, ¿verdad? Por eso siempre es bueno comprobar si todo ha funcionado y vamos a ver. Entonces, antes que nada, eso es bastante bueno. Por lo que en realidad ya podemos ver que el modelo se ha implementado. También lo podemos sostener en nuestra mano. Eso es bastante bonito. Y ahora la gran pregunta es, ¿podemos colocarla? Sí, podemos. Y como puedes ver, los bordes negros cuando paso por esto son en realidad exactamente la forma del bloque. Lo mismo con, por ejemplo, el sobre como se puede ver. Y entonces aquí sería toda la cuadra. Entonces esta es la muy, muy parecida a la línea negra, las líneas negras básicamente. Y eso es exactamente. Entonces si lo pisamos, creo que vamos a, nos vamos a hundir si entramos aquí un poco. Es que apenas se nota eso ahí. Está bien. Por lo que es notable. Y otra gran pregunta es si el enfrentamiento siempre es correcto, así que siempre queremos esta parte más grande aquí, nos enfrentamos. Y eso también funciona. Entonces, sólo vamos a verlo así. Ahí vamos. Por lo que se está enfrentando de la manera correcta. El voxel forma conserva. Su, oh, hay un, hay una pequeña URL, creo. Mira eso. Entonces este es yo creo que un píxel está mal. Esto probablemente tiene algo que ver con. Este es correcto. Por lo que probablemente haya algún error en los revestimientos. No obstante, apenas se nota. Y sí creo que eso no es lo peor que puede pasar. De todos modos. Por lo que estos son los modelos de bloques personalizados están muy interesados en qué modelos de bloques personalizados se te ocurre. Entonces esas podrían ser, por supuesto, cosas locas o, ya sabes, o máquinas normales posiblemente, o aparatos mágicos, ¿quién sabe? Y sí, así es básicamente como se crean los modelos de bloques personalizados con ayuda de banco de bloques. Y sí, si hay alguna pregunta, por favor siéntete libre de preguntar. Y si has disfrutado de este curso hasta ahora, entonces por supuesto realmente agradecería una revisión de comentarios. Y sí. 64. (Minecraft) crea una nueva entidad del mosaico: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a sumar una entidad de azulejo a nuestro MOD y específicamente al fuego eléctrico aquí. Entonces lo primero que necesitamos es un nuevo paquete. Una vez más, podemos llamar a esta entidad de azulejo o azulejo. Realmente no importa tanto, pero entidad de azulejo o azulejo es una especie de adónde deberías ir con esto. Y luego necesitamos dos nuevas clases. Una va a ser las entidades de azulejo MOD, entidades a las que vamos. Y el otro va a ser el electrificar o azulejo. Entonces básicamente el electro dispara el bloque. El electrificar o azulejo es la entidad de azulejo asociada a ella. También podría, algo que podríamos hacer es, por ejemplo, llamar a esto el electrificar nuestro bloque para que incluso estemos seguros de eso. De acuerdo, este es el bloque y el otro es la entidad de azulejo. Eso es algo que se podría hacer. Vamos a mantenerlo así, pero esto es algo en lo que tal vez quieras pensar. Por lo que en primer lugar, queremos dentro de nuestro registro un nuevo registro por defecto. Y eso va a ser registro público, estático, final diferido de tipo, tipo de entidad de tesela. Y luego vamos a poner un signo de interrogación a un lado de ahí. Y entonces esto va a ser tipos de entidad en mosaico. Eso es igual a los diferentes puntos de registro crear. Ford registra que entidades azulejan. Mc mod, mod OD. Hermosa. Y luego aquí abajo, sólo vamos a agregar esto a nuestro registro para el método init. Y es que las entidades Mott a las que vamos a ver ahora mismo está ahí dentro. Nosotros, por supuesto, simplemente necesitamos agregar un objeto de registro final. De nuevo, esto es muy similar a todas las demás cosas que hemos agregado, los artículos, los bloques y el fluido. Esto va a ser de tipo. Y luego en especie de signo de interrogación aquí dentro, vamos a especificar realmente el tipo de incendio eléctrico. Esto va a ser electo fuego eléctrico en T. Déjame alejar un poco. Eso es igual al registro de entidades de teselas de punto de registro. Y va a ser como fuego eléctrico, entidad Tyler. Eso va a ser una entidad Tyler tipo dot builder dot create. Y luego necesitamos proveedor para un nuevo electrificar nuestro azulejo. Y entonces aquí mod bloques, punto o en realidad no tenemos un blog todavía. No lo sé. Nosotros sí tenemos múltiples, Por supuesto, tenemos el electrify ya están llenos. Y luego dentro de aquí queremos especificar un nulo y que luego se puede eliminar aquí. Uno más no. En algún lugar. ¿Cuál es el tema? Yo por supuesto, el electrificar nuestro título aún no es un azulejo. No obstante, eso debería estar bien. Por lo que entonces también necesitamos nuestro notado registro de nulidad pública así. Y podemos registrar esto en lugar de aquí, donde no simplemente dijimos entidades de mosaico mod que se registran. Y eso es genial. Y luego dentro de la electrificar nuestro azulejo. Y por supuesto queremos que esto amplíe entidad de azulejo. Entidad de azulejo. Si bien entidad a vamos, sí, éste. Y esto va a crear un instructor. Eso está bien. También necesitas un segundo instructor el cual se va a electrificar o azulejo sin parámetro. Y dentro de aquí queremos tomar las entidades mortales, electrificadas style.css. Entonces esto, este constructor llama a este constructor con el, con esta entidad de teselas. Y entonces la flecha aquí es camino y luego el error aquí también es una manera. Y entonces podemos seguir poblando esto. Entonces en este momento, lo que vamos a crear dentro de nuestro electro fuego es simplemente un manejador de pila de artículos. Entonces voy a crear un manejador privado de pila de elementos finales y esto son cuatro. Mientras se manejan artículos. Lo bastante loco, voy a llamar a este manejador de creación. Y este es un método que vamos a leer aquí mismo. Artículos Stan, artículo, pila, manejador. Y eso se va a tirar de crear mango es y así. Entonces la entidad de teselas es básicamente solo un bloque o su, sus datos asociados al bloque que puede almacenar datos dinámicos, ¿verdad? Entonces no lo es, no tiene que tener una, no tiene que tener una GUI. Eso es algo que vamos a ver también. No obstante, no tiene que hacerlo. Entonces en este caso, realidad sólo vamos a lograrlo para que podamos pasar artículos al fuego eléctrico y sacarlos de nuevo. Y lo vamos a hacer con tolvas, pero lo vamos a ver pronto. Entonces aquí mismo creará en realidad un nuevo manejador de pila de elementos con suspiros One y perspicacia. Tenemos que anular algunas cosas. Vacío protegido sobre contenido, sobre contenidos cambiados en ranura. Vamos a marcar sucio. Entonces esto es sólo para asegurarse de que el esto sea algo que ver con el, con los troncos y asegurarse de que esto sea seguro adecuadamente. Booleano es válido, es ítem válido, eso es r1. Yo lo dejo. Por lo que esto simplemente define si realmente podemos poner en un artículo o no. una ranura específica. En este punto, simplemente vamos a volver verdaderos. Y entonces el último es en realidad el método donde insertamos el elemento en una ranura específica. Una vez más, una pila de elementos no nulos, pila y un booleano simulan. Y el simulado booleano es justo para que nosotros, si esto es cierto, entonces en realidad sólo simulamos poner el artículo en. En realidad no ponemos el artículo. Y por lo general esto sería falso si entra, pero todavía tiene que estar ahí. Esto no es nulo y una anulación. Ahí vamos. Y entonces aquí podemos terminar esto. Y eso parece muy bueno ya. También necesitamos asegurarnos de que hemos especificado el esto como un opcional perezoso porque necesitamos especificar las capacidades. Por lo que las entidades de teselas trabajan con capacidades. Y en este caso, queremos un manejador de artículos. Y aquí este manejador, y este es un perezoso opcional de y luego le suministramos el manejador de artículos Evo. Sí. Y luego queremos devolver esto. Yo estoy con otra anulación aquí abajo que va a ser pública. Perezoso, opcional. Y vamos a conseguir capacidad. Capacidad. Sí, creo que eso es correcto. Y ser una capacidad no nula, capacidad t y un lado de dirección nulable. Por lo que se podría imaginar que diferentes sitios podrían tener capacidades diferentes. Esto es una vez más una anulación. Y eso simplemente va a ser cueva, la habilidad es igual a un manejador de objetos de probabilidad. Entonces estamos comprobando si lo que está aguantando es que el artículo maneje una capacidad. Y si ese es el caso, vamos a devolver punto de manejador. Y si nada más es el caso, sólo vamos a devolver super dot git capacidad, capacidad y lado que irá. Eso es todo lo que tenemos que hacer aquí. Por lo que las capacidades y se puede también, creo mirarlas año i almacenamiento. Y déjame ver rápidamente la capacidad, manejador de elementos. Bueno, esos son específicos en realidad. Sí, así que hay diferentes capacidades, como dije. Y en este caso el manejador de artículos uno es el que es, creo que el más interesante en este momento. Y una que vamos a ver, hay sin embargo, dos cosas más que tenemos que sumar. Esa va a ser una función de escritura y lectura. Por lo que va a tomar el estado de bloque, estado. Y un compuesto nb t Tal vez ya has oído hablar de eso antes. Se trata de los datos nvt de los que mucha gente habla al mirar artículos y así sucesivamente. Y vamos a tener este punto manejador de artículos desserializar MVT. Eso ya funciona perfectamente bien. Sin embargo compuesto con un inventario de cuerdas. Vamos a escribir rápidamente esto, algo ahí dentro. Entonces lee y esa es la etiqueta estatal. Entonces esto es básicamente una lectura. Entonces va a leer el inventario o el, el, lo que decimos. Se va a leer algo con el nombre suficiente. Por lo que el inventario en nuestro caso. Y entonces también necesitamos un Humboldt MPT público. Sólo vamos a tener razón, eso se va a compilar y B t tag. Y ese es al revés. Entonces aquí en realidad vamos a poner el ahí dentro. Eso va a ser manejador de ítems dot desserialize. Perdón, serializado, en realidad serializar. Y luego vamos a devolver Super.OnCreate con un nombre de etiqueta. También vamos a sobrescribir ese solo para que lo sepamos. Y sí creo que esta es la entidad de teselas creada con la capacidad de manejar artículos para que realmente tengamos que realmente podamos poner artículos ahí dentro. Y tiene una ranura, cuatro artículos ahora no podemos ver esa ranura. Y podemos, sólo podemos interactuar con él una especie de fuera. Hay una cosa más o dos cosas más que necesitamos agregar aquí mismo al fuego eléctrico. Y eso son dos métodos para anular los métodos. Una de ellas es, veamos si puedo encontrarla aquí. Es un montón de métodos por cierto, que puedes implementar. Entonces hay muchas cosas que podemos hacer. Esta va a ser una entidad pública de azulejo, leer, leer entidad de mosaico, bloque, estado, estado, y un lector de iBook que va a ser el mundo. Y eso va a regresar, volver, entidad de azulejo mod, entidades de azulejo, talentos electrificados dot github, V8. Esto es un sobrepeso también en eso. Por lo que estamos seguros de que y luego la mejor anulación en todos ellos es tiene entidad de mosaico. Bueno sabe si tiene una entidad de titularidad, sí lo sabemos y eso es por supuesto, que tiene una. Y ahí vamos. Está bien. Hecho. Entonces sí creo que eso debería ser todo eso. Esto lo hemos agregado. Yo sí creo que eso fue todo. Intentemos ver si esto ya funciona o no. Lo hemos registrado. Aquí hemos sumado las identidades. Bueno, una vez más, lo peor que puede pasar es que nos den una flecha, pero no creo que vayamos a conseguir una. Creo que esto debería estar bien. Y sí, así que hay, la, las capacidades son una interesante. Pero vamos a ver si la capacidad del ítem se ha agregado a esto. Por lo que desde el exterior, el bloque no habrá cambiado. Y mientras lo ha hecho, habremos cambiado desde adentro. Entonces como puedes ver, el bloque sigue aquí. Solo destruyamos esos porque a veces cuando cambias el bloque, luego lo, luego a veces tiene algunas cosas raras que podrían suceder. Entonces vamos a bajar esto y luego realmente intentemos tomar la tolva o dos tolvas en realidad. En primer lugar, vamos a poner este año. Eso es bastante bueno, ¿verdad? Por lo que en realidad podemos ver que quiere poner algo ahí dentro. Y también pondremos uno abajo. Y entonces sólo pongamos las tolvas y en realidad podemos ver que ahí se insertan en su laboratorio. Hacer clic derecho no funciona. Y también están siendo yo sacé ahí abajo. Por lo que hacer clic derecho en él no funciona porque no tiene una GUI y no tiene la capacidad en este momento para que se le haga clic derecho. Y podemos agregar eso por supuesto, pero, y vamos a agregar eso en la próxima conferencia. Pero ahora mismo, como podemos ver, los bloques son, o los artículos están pasando por este bloque de aquí abajo. Y eso es básicamente lo que queríamos demostrar que, sí, hecho el, esto tiene ahora una capacidad de manejador de bloques de elementos. Y es una entidad de azulejo y guarda los artículos ahí dentro. Y mira eso. El conejito también va a aparecer. ¿ No es eso bonito? Eso es genial. ¿Verdad? Entonces así es básicamente como se crea una entidad de teselas. Por supuesto, esto aún no se ha hecho del todo. No obstante, esas serían una especie de similar a cosas como tuberías que podríamos ver o un elemento puede anchos o algo así en diferentes modos. Donde esas podrían ser también entidades de teselas, pero sin un Gy específico, porque solo, solo necesitan guardar algún tipo de datos. Y no necesariamente necesitan tener una GUI, ¿verdad? Entonces así es como crear una entidad de teselas. Una vez más, si hay alguna pregunta, siéntete libre de preguntar. Y sí. 65. (Minecraft) crea una GUI personalizado: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a crear nuestra propia GUI personalizada para nuestro fuego eléctrico que hemos creado para nuestra entidad de azulejo. Y son pocas las cosas que necesitamos. Necesitamos dos paquetes más aquí. El primer paquete que vamos a crear va a ser contenedor frío. Y el segundo paquete se va a enfriar pantallas. Ahora, esta pantallas se puede argumentar si queríamos o no tener eso en otro lugar y el contenedor también. Una vez más, esto es algo que es personalizable, digamos dos, sin embargo quieras descomponer esto, mismo con los fluidos de lodo. Algunas conferencias atrás. A lo mejor quieres tu propio paquete personalizado, personalizado para los fluidos y así sucesivamente y así sucesivamente. Es, realmente es un estilo más que algo que tiene que ser este caso. Yo lo voy a hacer de esta manera. Pero tú eres por supuesto, libre de hacerlo casi cualquier forma que quieras. Entonces esto va a crear, esto va a tener una nueva clase Java llamada contenedores MAD. Contenedores un ego. Muy bien. Y esta es una vez más una de esas clases como los bloques de barro y los eventos de foso. No algo que no hayamos visto antes. En primer lugar, por supuesto, necesitamos entrar en nuestro padrón y registro y obtener un registro postergado final estático público una vez más de tipo contenedor. Y eso va a ser en realidad no es de contenedor, pero es de tipo contenedor con un signo de interrogación aquí, contenedores. Y eso va a ser diferente. Registrarse punto crear cuatro registros. Ya hemos visto esto muchas veces antes. Y eso van a ser contenedores, puntajes mod, mod ID, ¿no? Esto ya no debería ser un misterio. Y entonces por supuesto añadido aquí, muy importante. Como siempre. Esos son, esos son el tipo de errores que tú, que uno comete por conseguir que se agregue aquí. Y luego se tarda como una hora en averiguar realmente por qué no funciona en un nuevo CEO. Simplemente me olvidé de registrarlo. Y eso es siempre, eso siempre es algo que podría suceder. Y esos son los peores errores. De acuerdo, así que antes que nada, realidad vamos a poner esto de inmediato en tu final estática pública. Y eso va a ser un objeto de registro. Objeto de registro en realidad no registrando, registrando objeto de tipo, tipo contenedor. Y luego necesitamos el contenedor eléctrico de la pierna. Ahora esto obviamente no existe todavía, pero vamos a crear ese contenedor de fuego electo y asegurarnos de que estoy escribiendo esto correctamente porque. No sé por qué he escogido electrificar o como nombre, pero quiero decir, quiero decir, sé por qué elegí, pero a veces podría haber un error tipográfico ahí dentro, pero sí, esto va a ser de tipo II forge container type dot create. Y que en realidad ya podemos crear algunas cosas aquí. Y block, block poss, pos es igual a data.frame, Blog. Mundo, Mundo es igual a jugador de punto de inventario, dot get Entity world, y luego devolver un nuevo contenedor de fuego electo con ventana IID mundo. Pausa en jugador punto-punto. Una vez más, esto aún no existe. Bueno, también necesitamos es un método de registro de vacío estático público. Una vez más, como siempre. Además, necesitamos importar algunas cosas. Esto por supuesto se puede importar que aún no existe. Entonces vamos a sumar esto aquí abajo. Estos van a ser los contenedores mod. Contenedores de registro, escribir o, ¿verdad? Entonces dentro de nuestro contenedor, ahora vamos a crear esto, electrificar nuestro contenedor. Por lo que será el contenedor de incendios eléctrico. Esperemos que lo haya escrito correctamente. De lo contrario, vamos a terminar en serios problemas. Ahora por supuesto, siempre podemos refactorizarlo si este nombre se equivoca. Muy importante que este sea el contenedor correcto que vamos a tomar. El contenedor de inventario neto de Minecraft y no el del Java puede interactuar con. Sí. Vamos a hacer eso y luego necesitamos un constructor. Está bien. Es decir, no me disculpo. No. No quiero que nada haga de esta manera. ¿ Por qué no funciona así? Eso es raro. Está bien. Bueno, vamos entonces ni siquiera necesitamos eso en realidad. Eso es lo, eso es una locura. En realidad no necesitamos ese constructor de todos modos. Vamos a crear nuestro propio constructor que va a ser electrificado o contenedor con las cosas que hemos hecho antes. Entonces vamos a necesitar un ID de ventana. Vamos a tener un mundo, mundo. Va a haber una pausa bloqueada, pausa. Se, inventario de jugadores, jugador, inventario de jugadores, y un jugador, entidad de jugador, jugador. Y entonces esto necesita ser importado. Esto necesita ser importado. ¿ Y qué más hay que hacer? Algunas cosas creo. Necesitamos insertar super Sí, con contenedor trapeado punto electrificado get y la ventana ID. Y entonces todo va a ser hunky-dory como dicen los niños. Ah, tipo de contenedor tiene que ser tiene que ser importado y entonces creo que esto no tiene más sí, esto no tiene más velocidad de flechas y, y esto no tiene más errores. Y entonces todo el mundo está bien. Eso es genial. Entonces en el contenedor, solo vamos a pasar por el contenedor primero. Vamos a conseguir la entidad titular o bien, eso es algo que realmente necesitamos precisar aquí. Entonces hay tres cosas que vamos a tener. El ente de azulejo privado, entidad de titularidad. Vamos a tener una entidad de jugador privado, entidad de capa. Y vamos a tener un manejador privado de objetos oculares, que va a ser el inventario de jugadores. Y esas son las tres cosas que inmediatamente vamos a poner aquí. Por lo que esta entidad de mosaico de puntos es igual a entidad de teselas de WorldCat en la posición que especificamos en el, en este constructor. Y esta entidad de jugador de puntos es igual a un jugador. Eso en realidad es bastante fácil. Y a menos que el inventario de jugadores vaya a ser igual a un nuevo envoltorio de inventario de inventario de jugadores. Está bien, eso es genial. Siguiente cosa, y esto es algo que sólo íbamos a hacer y luego lo voy a explicar como vamos como siempre. Entonces si la entidad de título no es nula, por lo que esto solo asegura que realmente tengamos una entidad de título. Entonces lo que vamos a hacer es que vamos a decir, oye, así que el punto de entidad de azulejo obtiene capacidad. Eso es lo que hemos definido antes. Y si el elemento de punto de manejador de elementos de capacidad y la capacidad si eso está presente, entonces uno que vamos a hacer es vamos a crear algunas cosas. Y esto en realidad tiene algunos consumidores. Y lo que vamos a hacer es que vamos a sumar ranuras. Estas son las ranuras en las que vemos. Entonces por ejemplo, el inventario donde pones en los artículos, cada uno de esos es una ranura. Y vamos a crear esas ranuras ahora dentro de la propia GUI. Y sólo voy a poner algunos ratones, cosas que ya he preparado aquí. Te voy a explicar rápidamente después. Y lo más grande para eso también sería ya arrancar Photoshop, solo para que lo tenga esperando que empiece en la pantalla correcta. Correcto, porque eso es algo que tenemos que mirar. Por lo que necesitamos mirar la GUI. ¿ Y cómo sabrías cuáles son esas posiciones? Y no te preocupes, no necesariamente necesitas tener Photoshop para eso. También puedes usar, por ejemplo, GIMP o algo así como painted.net. No lo sugeriría pintura porque la pintura no es la mejor por esa razón, más funciones y métodos ayudantes más bien. Entonces, en primer lugar, necesitamos un slot de anuncios arreglado. Una vez más, todo este código está disponible como recurso también. Si no quieres escribirlo. No obstante, sí creo que tiene sentido pasar por esto conmigo en tu y escribirlo, porque a veces escribirlo en realidad se solidifica. Por lo que aquí en realidad agregamos un rango de ranuras. Esta es una función auxiliar para agregar un múltiplo ranuras a la vez. Por lo que esto se necesita para que tengamos el, podemos agregar el inventario un poco más rápido. Y luego tenemos ranura de anuncios, el nuevo artículo de ranura y abogado. Handler indexa el x, y. y esto va a ser entonces x es más igual a dx. Dx es por supuesto sólo el cambio, el índice va a estar en aumento. Y sólo vamos a devolver el índice. Eso es rango de ranura de anuncios. Ahora no seríamos privados en la caja de ranura de anuncios. Una vez más con un manejador de artículos, will handler, creo. Y en realidad éste. Y lo único que necesita cambiar es que esto es realmente por qué, y esta es la cantidad vertical. Necesitamos otro, otro entero, viejo. Bueno, eso es en realidad Después, mi Señor, mi tierra. Voy a copiar esto de la otra. Perdón. Ahí vamos. Entonces necesitamos dentro del índice x, y, luego el montaje horizontal en el cambio de x, luego el modo vertical, y luego el cambio de y, así dx en d y. y en lugar de aquí, realidad vamos a tener un int i, j 0, j es menor que la cantidad vertical. Entonces vamos a pasar por cómo, cuántas, bueno básicamente cuántas filas hay. Y el índice va a ser para agregar rango de ranura. Entonces ahora vamos a llamar a éste. Y la idea aquí es que una vez que he escrito esto, que y es n igual a dos d, d y por supuesto. Entonces el cambio ahí, y luego vamos a devolver índice. Entonces la idea aquí es que esto básicamente suma el, la fila. Entonces esto está bien. Esto se llama para cada fila, ¿verdad? Por lo que rangos de ranura de anuncios básicamente llamado para cada fila y agregar casillas de ranura llamadas En cuántas filas hay. Y esto es necesario para el diseño del vacío privado. Disposición, ranuras de inventario de jugadores. Entonces esto simplemente hace que sea mucho más fácil de inmediato en el, en el inventario de jugadores, ¿verdad? Entonces vamos a sentar su inventario y luego nueve y luego dejamos col, y luego vamos a decir fila alta y luego vamos a decir nueve. Y luego, y luego vamos a decir 18. Y entonces vamos a decir 318. Y esto es más porque esto no es una ranura sino caja S LAB. Ahí vamos. Bonito. Y luego también queremos agregar la barra caliente. Entonces vamos a hacer fila superior más igual a 58. Y luego vamos a añadir otro rango de tragaperras con inventario de jugadores es 0 left call top row, 9180, no 1980. Muchas gracias, Diego. ¿ Verdad? Entonces esto básicamente es solo por el hecho de que queremos diseñar el inventario de jugadores y lo hace mucho más fácil. Y yo no diría que no es necesario entender cómo no pudo. Por supuesto que puedes pasar y entender eso poco a poco. No obstante, es muy importante saber que esto es, esto es solo algunas funciones de ayudante tienen salud. Nuevamente, métodos de ayudante. Se irán. Sí. Y una cosa más, justo dentro de nuestra cabeza, interactuar con realmente van a regresar está a distancia utilizable. Y vamos a decir que pasaré callable de entidad azulejo, entidad, punto, get world. Entonces vamos a precisar la posición. Y luego vamos a especificar la entidad jugador. Y luego vamos a decir que esto es en los bloques mod dot aire electrificado. Ahí vamos. Ahí vamos. Esto solo está dentro de esta distancia utilizable que solo vamos a decir, hey, podemos interactuar con esto si esto está dentro de la distancia que se especifica dentro de este método que está dentro de la propia clase de contenedor. Y eso, eso tiene sentido, que eso es bueno usar. De acuerdo, entonces en esto, realidad hemos especificado aquí, por lo que el diseño del inventario de jugadores, también hemos añadido las ranuras del propio contenedor. Y hay una cosa más que tenemos que hacer, y en realidad voy a copiar esto porque este es un método muy grande. Y esto se va a sumar entre esos dos. Como dije, uno muy largo. Y en este caso, esencial de esto es simplemente que a este método se le llama cuando transferimos una baraja a una ranura de índice en O de índice, índice básicamente. Y esto asegura que, bueno, si ya hay una pila ahí dentro, así que si ya hay un artículo ahí dentro, claro que no podemos simplemente poner otro artículo ahí. Eso no funciona. No podemos nunca fusionar la pila si el si es lo mismo. Y Sí, y eso es ahora mismo. Aquí dentro. También tenemos el ítem especificado en el índice uno para que esto, que sólo los artículos pueden ser diamantes, artículos de cuento. Los diamantes se pueden poner en el índice uno. No obstante, vamos a ver que esto también es algo que tenemos que especificar de lado del en lugar del yo creo que es la entidad de azulejo. Si no me equivoco. Idea dentro de aquí, es un artículo válido, es algo que también podemos usar para eso. Entonces lo siguiente, este es el contenedor, y el contenedor está hecho. Lo siguiente que tenemos que hacer es que realmente tenemos que registrar el contenedor. No obstante, aún no podemos hacer eso porque necesitamos la pantalla. Entonces la pantalla es la, es, quiero crear una nueva clase Java enfrió la pantalla de fuego de viaje. Y esto va a extenderse, extenderse desde. Pantalla de contenedores de tipo. Electrificar nuestro contenedor. Como puedes ver, sí se vuelve un poco más complicado que antes. El único método que realmente necesitamos implementar aquí es el medicamento que contenemos capa de fondo. Y entonces por supuesto también necesitamos un constructor. Lo vamos a hacer solo por nuestra cuenta. Esto va a ser d electrifica pantalla. Y eso toma en un contenedor electrificado, contenedor viejo, un inventario de jugadores, lo suficientemente viejo. Y yo componente de texto nombraría. ¿ Verdad? Y entonces sólo vamos a llamar al super en eso. Y eso va a ser. También necesitamos una ubicación de recursos aquí para nuestro archivo GUI. Vamos a tener un recurso final privado, ubicación de recursos. Déjame sostener GUI. Nuevo recurso, ubicación de recursos. Nosotros MC, mod mar ID y texturas. Gui, fuego eléctrico, GUI, PNG. Voy a mostrar esto muy pronto, la GUI. No obstante, ahora mismo, vamos a terminar esta pantalla a la que voy a entrar en la GUI para luego también explicar de dónde saqué esos números y cómo funciona esto. Entonces lo primero que hay dentro de aquí es en realidad nada porque también necesitamos dos métodos más que necesitamos ser anulados. Y eso va a ser en realidad, hagámoslo así. Hagámoslo, llamémoslo o renderizar. Y ese va a ser el primer render aquí. Y luego digamos también dibujar GUI, capa de primer plano contenedor. Sí, creo que ese es el caso. Ok, aquí dentro, queremos hacer este snack de matriz de punto render de fondo. Y aquí queríamos tener render hover, tooltip matrix sack, mouse x, mouse y. esto básicamente sólo renderiza el, la pantalla en sí. Y luego en la capa de fondo dibuja una capa de fondo. En primer lugar, queremos el sistema de renderizado color, color 4F. Entonces este color lo es, importa. También dice Realmente no necesita estar ahí. Yo sí aconsejaría ponerlo ahí. Hagamos solo este entonces tenemos este punto minecraft y obtenemos el gestor de texturas. Con esto, en realidad estamos configurando la textura. Entonces este es el, suministramos la ubicación de recursos de nuestro, de nuestra textura. Y voy a decir int i, esto. Nos fuimos. Tenemos este int j, este top GUI. Y entonces sólo diremos este doblete. Y este doblete básicamente corta una parte de la imagen y la muestra con el, estos offsets y con el tamaño. Ahora, esto podría ser un poco complicado ahora mismo, pero no te preocupes, vamos a pasar por esto, ¿de acuerdo? Entonces esto es todo excepto por nosotros también queremos y etiqueta energética. Sólo voy a copiar rápidamente esto. Eso va a estar en primer plano y en realidad no necesitamos llamar a super. Por supuesto que aún no tenemos eso. Entonces sólo vamos a decir, digamos energía 0, bueno, siendo el momento. Y luego vamos a añadir esto cuando corresponda. Y ahora mismo, esto ya debería funcionar. Entonces vamos rápido, voy a copiar rápidamente sobre la textura de la GUI. Por lo que esto necesita estar dentro de las texturas. Y entonces realmente necesitamos uno nuevo, un nuevo directorio llamado GY. Y una especie de ahí vamos a poner este, vamos a copiarlo. Y voy a tirar rápidamente esto a Photoshop y mostrarte esta info shop cómo se ve esto. Es así como el, cómo se ve la GUI en este momento en el tiempo. Y voy a explicar el amarillo y el gris aquí después de que hayamos pasado por las ranuras. Entonces básicamente la ranura, como podemos ver dentro de nuestro contenedor, una vez más, en realidad hemos especificado la primera ranura con índice 0 a 3057, ¿verdad? Entonces el 0-0 está aquí arriba, ¿verdad? Por lo que en la parte superior izquierda. Y luego cuando vamos con esto, la primera parte de la ranura es 13. Podemos ver. Y luego aquí arriba, en realidad podemos ver que esto es 57 de altura, ¿verdad? Entonces esto define entonces la pendiente está en esta posición. Y los otros dos son exactamente iguales, ¿verdad? Una vez más, esto también se suministra es decir. El amarillo y la barra gris son para los niveles de energía. Esto es lo que vamos a hacer eso pronto también. Pero antes que nada, vamos a comprobar si todo funciona con ranuras. Porque aún necesitamos hacer algunas cosas para que esto funcione. No obstante, así es como consigues esas posiciones. Como dije, también puedes usar pintura en red. Básicamente funciona exactamente lo mismo. Y por supuesto también puedes hacer tu propio tipo de interfaz, ¿verdad? No tiene por qué verse así. Puede parecer loco diferente. Puede tener un color diferente o símbolos en el medio. O puedes, podrías, ya sabes, dibujar en él. Todo funciona. Es solo un archivo PNG. Ahora, lo que ahora necesitamos agregar está dentro de nuestro, Así que antes que nada, dentro de nuestro proxy cliente, eso es lo primero que necesitamos agregar. Dentro del archivo init. Método Init. Queremos agregar el gestor de pantalla, gestor pantalla registro de puntos, contenedores mod de fábrica, electrificar contenedor dot get. Y luego queremos decir eléctrica primera pantalla. Y entonces solo ibas a usar la construcción lambda ahí, ¿verdad? Fue una de las cosas que necesitamos agregar. Y luego dentro de nuestro azulejo, Bueno, en primer lugar, dentro del bloque, en realidad necesitamos agregar la capacidad de hacer clic derecho. Eso es muy importante. Entonces dentro de lo electrifica en sí, queremos agregar, creo, solo un método, pero va a ser un doozy otra vez. Por lo que esto va a ser un bloque activado. Una vez más, no importa que esto diga, Oh, está en desuso. Simplemente podemos volver a agregar esta aplicación porque para nuestros propósitos, esto no es tan importante. Y vamos a decir, si el mundo es remoto. Entonces si el mundo no es remoto, que vamos a hacer esto. Y esto va a ser entidad de tesela, título, entidad, entidad teselas de punto mundial dot-dot en la posición que se ha especificado. Y entonces vamos a decir, oye, si esta entidad de azulejo es una instancia de la entidad de incendio eléctrico y azulejo, entonces vamos a hacer algo. Y lo que vamos a hacer es decir que llamé proveedor de contenedores. Proveedor de tenor es igual a un nuevo IE llamado proveedor de preimpresión. Y luego se va a enloquecer y leer algo aquí, que en realidad es genial porque esto es exactamente lo que necesitamos. Aquí. Queremos crear un nuevo componente de textos de traducción. Y luego esta es la pantalla dot MC, peor punto fuego eléctrico. Entonces esto es básicamente el, esto es lo que usamos dentro de nuestro archivo de localización EN us. Y una vez más, no hace falta hacer eso, lo nulable necesariamente. Y en realidad vamos a leer, renombrar esos porque no necesita serlo. Ahí vamos. De acuerdo, entonces tampoco regresemos nulo, sino un nuevo contenedor de aire electrificado y electrificado con todo un montón de cosas. Yo mundo, oh, este soy yo, por cierto. I mundo POS, inventario de jugadores y entidad de jugador que vamos. Y entonces el mundo no está aquí porque esto es en lo que estamos. Bueno, eso no es lo peor de la historia. Ahí vamos. Y entonces tiene que hacer también algo muy interesante. Y eso va a ser una red books dot GUI abierta. Y vamos a decir entidad de jugador de servidor, jugador, proveedor de contenedores, y puntos de entidad de mosaico. Y aún SO. Si esto no es una instancia de incendio eléctrico, en realidad vamos a lanzar una excepción. No obstante, a veces lo hacen. Cuestiona mi cordura con esto. Vamos, sólo devolvamos el tipo de resultado real de éxito. Y me iré entonces va a saber que aún no los va a hacer. Bueno, a veces no sé por qué no lo hace como yo quería hacerlo, pero bien. Lanza nueva excepción estatal ilegal. Y este es básicamente nuestro contenedor le falta. Bueno, es el proveedor de contenedores, pero sí. Rho vita. De acuerdo, en teoría, esto debería ser todo. En esto solo se asegura de que esto se abra en el lado del cliente también. Para que haya esta, una vez más, la diferencia del cliente del servidor. De todos modos. Por lo que el desbloquear activado está frío cuando haces clic con el botón derecho en bloque Y yo sólo voy a comprobar si todo está hecho. Y sí creo que todo se hace para al menos hacerlo para que podamos abrir la GUI. Yo sí creo que esto debería funcionar en este momento en el tiempo. Sólo vamos a probarlo. En realidad. Conseguiríamos un error. Porque una cosa que tenemos que hacer es poner esto a tres. Porque por supuesto tenemos tres ranuras que especificamos dentro de nuestro contenedor aquí. Y esto necesita corresponder a estas tres ranuras. Vamos a ejecutar esto y a ver si funciona o no. Y como puedes ver, cuanto más complicado se pone, más necesitamos mirar. Y ahí vamos, en realidad sí tenemos un error. Muy bien, he arreglado con éxito la flecha y tenía algo que hacer como dueño de esta conferencia o de la conferencia antes, donde estaba la extraña anotación, quería una especie de agregar algo. Y agregó esto en el archivo de compilación de Gradle. Y eso, quiero decir, yo no diría que lo corrompe, pero entonces simplemente ya no funcionó. Entonces lo arreglé simplemente borrando eso del archivo de compilación Gradle. Y sí, era una flecha que no tenía nada que ver con nada de lo que hemos hecho o que hemos hecho. Entonces, sí. Vamos a comprobar si la pantalla funciona o no ahora. Y si realmente podemos ver la interfaz de usuario de EEG aquí, vamos a ver. Entonces, en primer lugar, lo mejor es, si aún tienes escuchando, si aún tienes el bloque borrado en algún lugar y volver a colocarlo. Porque de lo contrario, podría haber alguna rareza. Entonces veamos si haga clic derecho si se va a estrellar o no o si funciona. Funciona, eso es bastante bueno. Nos gusta ver eso. Eso es muy bueno en realidad. Y ahora podemos colocar las cosas en todos. Para que podamos jugar todo tipo de bloques en cada una de esas cosas. Eso lo vamos a cambiar muy pronto. En primer lugar, vamos a, realidad tenía algo en mente donde lo que quiero hacer esto También hace esta etiqueta energética aquí. Eso crea automáticamente. Por lo que eso se hace con el, con el con este dibujo contenedor GUI primer plano aquí. Y lo primero que vamos a hacer es que en realidad vamos a sumar a la entidad de azulejo de incendios eléctricos. Y vamos a sumar un dos cosas. Entonces el número uno, vamos a sumar. ¿ En realidad vamos a implementar, oh, vamos a implementar la entidad de mosaico clicable, que va a hacer. Y luego necesitamos implementar el método tick. Y esto es, vamos, pongamos eso un poco más alto. En realidad. Pongamos eso aquí arriba. Y a esto se le llama cada garrapata básicamente. Y también nos vamos a llevar dos cosas. Voy a simplemente a copiar más de s2, dos enteros, un tick y un nivel de energía. Entonces nivel de energía en este caso, no lo llamaría, no diría que este es el nivel de energía, como en las máquinas necesariamente. Esto es sólo algo como ejemplo aquí. Y en realidad vamos a bajar también aquí y vamos a decir, vale, ¿es válido el artículo? Y ahora en realidad queremos decir, bueno, depende de en qué ranura estemos. Por lo que en realidad vamos a crear un interruptor de ranura. Y eso va a tener un caso 0. Una vez más, empezamos con empezar a contar a 0. Y lo son, en realidad tenemos un artículo get. Stack dot getItems es igual a los diamantes de punto Adams. Entonces solo quiero regresar, así que quiero devolverle esto. Por lo que esto devuelve verdadero si el artículo es diamante. Por lo que sólo se pueden poner diamantes en esa ranura. Y luego vamos a decir 12. Y aquí vamos a decir default. Y en este caso vamos a devolver falso. Y en este caso vamos a decir alambre de cobre punto de mod item, No, no cubrir x taza wire.begin. Y aquí el Adán va a ser una esmeralda. Entonces la idea aquí es que queremos crear es una máquina que pueda, que pueda diamantes un alambre de cobre y convertirlos en esmeraldas. Por supuesto, quizá no haya lo más lógico, pero sigue siendo, esto es por supuesto, sólo un ejemplo de cómo podría verse esto. Y aquí en insertar ítem, realidad vamos a decir si y luego es el ítem válido y luego nosotros, y entonces realmente queremos que eso no suceda. Entonces si el artículo no es válido, Sólo vamos a devolver la pila. Entonces nada cambia. Y así vamos a devolver el super insertar un artículo si el artículo es realmente válido para esa ranura. Entonces eso es algo que tenemos que hacer. Y entonces nosotros también, creo uno, una posibilidad de pasta de leer los niveles de energía. Entonces vamos a hacer ese int público, conseguir nivel energético. Y eso va a devolver el nivel energético. Y entonces tenemos que añadir esto de lado del método ártico también. Entonces cada vez que esto se enfría, en realidad vamos a aumentar la garrapata en una. Y entonces decimos, por ejemplo, si tick es diez, entonces esto sería cada 2.5º. Nosotros queremos que algo suceda. Y luego nos preguntamos, ¿qué queremos que suceda? Y esto es por supuesto, algo que necesitamos pensar en nosotros mismos. Entonces, por ejemplo, podría decir, bueno, si La pila en la ranura 0. Entonces aquí es donde ponemos los artículos si esto realmente es un artículo ahí dentro, ¿verdad? Tan punto diamante. Y por ejemplo, el nivel de energía de esta máquina es menor que 64. Digamos que queremos decir, bueno, 64 es el nivel energético más alto que queremos tener. Entonces lo que podemos hacer es decir, bueno extraer el elemento de la ranura 0 por la cantidad de uno y no queremos simular, en realidad queremos eliminarlo. Entonces esto es qué, esto básicamente elimina el artículo, ¿no? Y entonces queremos tener nivel energético. Por lo que el nivel de energía sube por cada diamante que se está destruyendo. Y entonces podemos ahorrar también para cada tick. Si tenemos una ranura en, si tenemos un artículo en la ranura uno, que podría ser, por ejemplo, los cables de cobre, ¿verdad? Por lo que artículos MOD, alambre de cobre, punto get. Y, y esto es muy importante y el nivel energético, nivel energético es mayor que 0. Y también si el otro, esto también es muy importante. Si artículo manejado droga se atasca en ranura para obtener conteo y no obtener artículo, pero si el recuento no es igual a 64, bueno, en realidad podemos decir que es menor que 64. Sí. Sí. Y esto básicamente dice, bueno, ya sabes, queremos que el nivel de energía, la energía tenga realmente algún nivel con el fin de crear nuevas esmeraldas en este caso. No obstante, esto es algo en lo que hay que pensar esto. Y el, esto básicamente es la lógica de esto, de esta máquina, digamos. Y vamos a decir que lo es, extrae un artículo aquí. Y luego se va a insertar un nuevo elemento en este. Y eso va a ser una nueva pila de artículos. Nuevos artículos se apilan con esmeralda de punto del artículo. Eso se va a convertir en uno. No sólo queremos simularlo, en realidad sí queremos que eso suceda. Y entonces el nivel de energía debería disminuir también, saber, menos menos, y luego la garrapata se restablece a 0. Ahora éste de aquí debería ser configurable, ¿verdad? Por lo que debe referirse de nuevo a la conferencia de conflictos donde realmente ponemos en config. Esto debería ser algo que debería ser configurable. Lo mismo con el nivel energético, sí lo creo. Esto debería ser algo así como el nivel de energía Max. Y también podrías pensar en, ya sabes, tener la cantidad sea configurable de lo que necesitarías para cambiar un poco de cosas aquí, pero seguiría siendo similar. Entonces, para decir básicamente, en este momento en el nivel energético es básicamente exactamente equivalente a un diamante. En este caso. A tal vez quieras cambiar eso. También necesitamos luego ir al contenedor y agregar una otra función método de Milán también en la parte inferior. Y eso va a ser un int público obtener nivel energético. Y esto simplemente va a devolver un título seguro, est.title y t porque no sabe lo que Tailandia This Is ese buen nivel de energía. Sin ese todavía, y esto es sólo en cliente de escritorio. Por cierto, esto sólo se debe hacer en el cliente porque sólo necesitamos actualizar este o el cliente. ¿ Cuál es el tema? Y el contenedor? Bueno, fue de uno a muchos. Está bien, se van. Y dentro de la pantalla, ahora en realidad podemos agregar esto. Por lo que en realidad podemos decir punto contenedor obtener nivel de energía. Y entonces el nivel energético va a ir ahí como actualización allí también. Y, y luego también vamos a añadir este otro, otro tocho. Voy a poner esto rápidamente aquí. Entonces la idea aquí es que si volvemos a la GUI, la GUI, como puedes ver, siempre está llena. Entonces si la barra amarilla está hasta arriba, entonces está básicamente llena. Y lo que vamos a hacer es que esta cosa se va a poner encima de ella. Entonces sólo voy a hacer rápidamente algo como esto. Entonces esto se va a poner encima de ella, y se va a eliminar para cada uno. Por lo que cada píxel se va a eliminar por cada nivel de energía que tenemos. Por lo que esto tiene exactamente 64 píxeles de altura por cierto. Y esta es una forma en que podrías hacerlo, por ejemplo. Y sí, sólo vamos a ver cómo esto, y esto en realidad se ve dentro del juego y si esto funciona o no. Entonces esta es básicamente la idea en el offset. Una vez más, aquí está, esas son algunas matemáticas simples. Yo diría que la x e y es la esquina superior izquierda del, del donde se debe colocar esto, este, este recorte. Y el recorte está definido por el offset que y V offset. Y luego como cierta anchura y altura asociada a ella. Y la altura por supuesto, es dinámica con el nivel de energía, porque queremos que el, la barra gris sea mayor o menor dependiendo del nivel de energía. Pero esa es una especie de idea. Vamos a destruir esto una vez más y en realidad conseguir uno nuevo sólo para que quede claro con, ya sabes, una especie de rareza. Entonces vamos a buscar diamantes, vamos por unos cables de cobre, y veamos si esto funciona. Entonces, en primer lugar, esto sí funcionó antes de que fuera un amarillo. Y ahora en realidad vemos que el que la superposición sí funcionó. Sólo vamos a poner estamos primero para que una mujer trató de poner algo más ahí dentro. Está bien. Eso no funciona. Eso no funciona. Eso no funciona. Eso es bastante bueno. Y voy a poner los diamantes aquí y ver qué pasa. Bueno, la energía sí aumenta y los diamantes mueren. Y sí se ve como el, esto va en aumento. ¿ No es eso bonito? Y entonces lo que vamos a hacer es realmente pondremos aquí los cables de cobre. Y luego se convirtieron en diamantes y por supuesto, dos esmeraldas. Y entonces la energía ya no aumenta porque se trata de una relación uno a uno básicamente. Entonces si le quitamos los diamantes y la energía en realidad está disminuyendo en este punto del tiempo. Y los alambres de copa se están convirtiendo en esmeraldas aquí. Y una vez que esto se hace, se agota la energía y no se crean más animales porque por supuesto, hemos precisado que la energía tiene que ser mayor que 0 para que esto funcione. ¿ Verdad? Ahí vamos. Sí, esta es una máquina sencilla. Entonces no es una máquina loca complicada. No, las máquinas complicadas locas podrían serlo. Los ejemplos, por supuesto, una vez más, están en GitHub y en modos populares lo están. Yo siempre animaría a mirar eso. Pero así es como se crea un Gy, cómo se crea algún tipo de entidad de teselas con un poco de funcionalidad. Como dije, la funcionalidad está dentro de la función tick básicamente. Y también hay otras cosas. Capacidades que puedes agregar, por supuesto todavía. Y puedes hacer que esas capacidades sean de lado. Pero esto es sólo una introducción general a esto. Y sí, una vez más, arena, este es un tema un poco más complicado y más complejo y también conferenciante más complicado. Entonces si hay alguna pregunta, siéntase libre de preguntar. Una vez más, todo el gy y también el código fuente está todo disponible como recurso. Y si esto te fuera de ayuda y te gustó, agradecería mucho una revisión del curso hasta el momento. Y sí, así fue como se crea un GUI personalizado. Y sí. 66. (Minecraft) Generación de Ore en el mundo: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a hablar o generación. Entonces vamos a generar el mineral de cobre que hemos creado hace muchas, muchas conferencias. Y en realidad vamos a generar eso en el mundo. Entonces para eso, vamos a, en primer lugar, crear un nuevo nodo, no un paquete intelectualmente. Queremos crear un nuevo paquete. Y eso va a ser un mundo. Y dentro de ese paquete vamos a crear otro paquete el cual va a ser hold Jen. Una vez más, esto es, digamos un estilo o personalizable. Simplemente tiene sentido tenerlo en un mundo. Por lo que al menos se debe hacer el paquete mundial. El generoso, tipo de opcional. Y vamos a crear una enumeración en realidad, que va a ser del tipo Guerra Fría. Ahora esto es algo que va a ser muy similar a lo que hemos hecho con la armadura y la, y las armas y el material. Pero vamos a pasar por esto, así que vamos a tener una cuadra aquí. También vamos a tener un, un entero que se va a llamar tamaño máximo Sylvain, un final en altura min de trabajo. Esta es la altura mínima a la que se engendra el y que se engendra. Y el lado Mac, básicamente la altura máxima del bloque donde esto engendraría el bloque correcto, sí. Y vamos a tener un bloque tipo mineral, bloque ind, max, tamaño de vena. Queríamos int min-height y un entero i, max H. Y luego este bloque, así que esto es solo una normal, una vez más, una declaración normal y un constructor normal. Maxwell incide este punto. Altura mínima es igual a min-altura. Y este punto máximo altura igual a max tiene hermosa. ¿De acuerdo? Y luego nosotros por supuesto, también necesitamos algunos getters para esos. Yo sí creo que puedo crear estos aquí otra vez, crear un getter para block, read, ghetto para max vein, y un getter aquí. Y sé que eso no está bien. Yo quería tener un getter. Ahí lo tienes. Está bien. Entonces getters llenos de nosotros y luego vamos a tener una estática pública o tipo, que es, vamos a llegar con el bloque. Y vamos a pasar por esto. Entonces para cada tipo de palabra o en valores, si el bloque es igual a palabra.lower, OK. Entonces vamos a devolver eso o y si ese no es el caso, sólo vamos a devolver nulo. También podríamos lanzar una flecha pero fueron una excepción, pero eso está bien. ¿ Verdad? Y luego aquí arriba, vamos a crear el de cobre, y éste va a ser punto de buey múltiple. El bloque de cobre se pone, y entonces sólo vamos a, sólo voy a poner algunos números ahora mismo. Por lo que el tamaño máximo de la vena va a ser de ocho. Se genera en el nivel Y 25 hasta el nivel Y 50. Y lo grandioso de esto es que sólo necesitamos sumar en nueva enumeración aquí si queremos añadir otra. Entonces, por ejemplo, simplemente podemos hacer algo como esto y luego decir, por ejemplo, bloque de cobre. Y entonces también esto es cobre o por cierto, no bloque de cobre, ¿verdad? Y entonces podemos decir, Bueno nosotros en realidad, Así que la adición de un nuevo o literalmente es simplemente agregando esto. Eso es todo. Por eso me parece que esto es una idea interesante para hacerlo. Y luego vamos a crear una nueva clase en realidad, porque esto ahora está hecho, que vamos a llamar barro o generación. Y tu generación en realidad va a ser tener un suscriptor de bus de eventos MOD Dot, importar MOD inmediatamente. Que va a ser un poco más fácil. Mod ID, déjame MC curso id. Y entonces el bus va a ser punto si fue suscriptor MOD. Y entonces vamos a tener un gran método aquí dentro el cual se va a regenerar peor con un evento de carga FMLA, FML completo, no ganado lejos para otro paréntesis de corredor que no es necesario. Y esto va a ser un evento de suscripción. Y dentro de aquí, creo que lo que vamos a tener es un método llamado add feature to biome. Entonces solo voy a copiar esto porque esto es un, este es un método que simplemente descompone el, las características del bioma y luego le agrega algo. Y en realidad podemos usar eso a nuestra ventaja. Y esto va a ser, vamos a pasar por cada uno o teclear en valores de punto tipo palabra, ¿verdad? Entonces en este caso sólo vamos a pasar por todos los minerales y vamos a pasar por algunas cosas. Entonces lo primero es que vamos a crear un o feature config, que tendrá un nuevo conflicto Orfeo. Esto va a valer la pena característica Conflict dot relleno tipo bloque. Entonces aquí, que dicen, ¿cuál es el bloque de relleno? Entonces si lo tienes, es posible. Vamos, queremos crear ocho. Hemos establecido las venas max tiene que comer en este caso. Pero tal vez tenemos, se podría imaginar que entonces es un cubo de dos por dos. Pero tal vez sea el tamaño máximo de la vena, así que es posible que solo seis o siete generen. Y entonces la pregunta es, bueno, ¿con qué queremos llenar el resto? Y eso básicamente se hace con este bloque de relleno. Queremos el get the resource realmente ordenado. Recurso no es dueño de su realmente se bloquean. Sí, tienes razón. Obtener el estado predeterminado. Y luego somos DOT GetMax tamaño de vena. Este es el lugar donde característica. Entonces queremos una colocación configurada y colocación de figuras, que van a ser colocaciones. No, en realidad sólo va a ser colocación. Colocación, profundidad de punto, promedio, punto configurar. Y aquí vamos a crear una nueva configuración promedio de sordos. Y eso simplemente va a tomar min-height y o Mac lado así. Y lo último, los dos, bueno, no del todo perdidos, pero casi perdidos. Vamos a hacer registro que Registra un mundo. Jen, registros que configuraron característica o punto get block, dot-dot-dot nombre del registro, it nombre del registro. Y luego vamos a tener punto de función o con configuración. Y para implementar el CS, el ego, o la configuración de ancho de punto o conflicto de características, ya lo hemos configurado. Eso es lo genial con la colocación que también hemos configurado esa. Y entonces tenemos un punto. Se irá a punto cuadrado, puntos. Yo creo que esto no es como mapeado todavía. Esto va a ser esto. Y eso es una vez más o dot max bin size una vez más. Y eso es todo. Ahí vamos. Y lo grande es ahora lo que podemos hacer es que sólo podemos pasar por cada bioma y carbón en una fragua registros que bioma. Y dentro de ahí, cada bioma está básicamente escrito en. Acabamos de leer eso. Y nosotros, por ejemplo, no queremos biomas también. No queremos que esto se genere en, por ejemplo, category.net, ¿verdad? Porque eso no tiene sentido. Y tampoco queremos que esto se enfríe y obtenga categoría igual y luego categoría punto bioma. Y ese sería el final, ¿verdad? Por lo que sólo vamos a generar esto. Por lo que sólo vamos a agregar característica al bioma de bioma y etapa de generación. Esto es decoración underground ors justo aquí. Y entonces el último va a ser registros mundiales de Jen, función de punto configurado, get default o none, o dot get block, get name, get registered name. Entonces eso es lo que básicamente hemos registrado aquí. Y eso se va a agregar como característica al bioma. Se puede, por supuesto, también en lugar de, digamos este negativo aquí donde no lo hacemos si es el inferior o el final. También se pueden especificar biomas específicos. Entonces tal vez quieras remos específicos solo para generar en biomas específicos. Se puede por supuesto, todos hacer eso con algunas declaraciones si sobre esto en realidad ya es todo lo necesario para la generación aquí. El, esto se está llamando automáticamente. Entonces, solo ejecutemos esto y veamos en un, en un mundo nuevo lo que eso trae. Y si podemos encontrar, bueno, en nuestro caso, tanto el mineral de cobre como el bloque de cobre. Yo por supuesto, por ejemplo, también generé algunos bloques de cobre. Tan solo para mostrar cómo realmente fácil es agregar nuevos ors en este caso. Entonces por supuesto que se necesita agregar la sangre, pero si se han agregado todos los bloques, entonces sólo se puede hacer este fin. Esto es súper fácil. Entonces vamos a crear un nuevo bloque. Newton conocía bloque, nuevo, mundo nuevo, por supuesto, en modo creativo por el momento. Entonces está generando, lo cual es una buena señal, claro. Y el hecho de que nada se haya estrellado aún es también una muy buena señal. También algo que siempre es algo que es, ya sabes, podría suceder. Y sólo vamos a entrar en modo espectador y volar hacia abajo. Y tal vez podamos encontrar que puse el, ahí vamos. En realidad ya hemos encontrado ambos. Eso es genial. Vamos a la derecha. Entonces aquí tenemos algunos bloques de cobre, 123, esa era una veta pequeña. Y aquí tenemos otro de cobre o 1-2-3, 4-5-6, ¿verdad? Eso es genial. Y para que puedas, por supuesto, jugar un poco con los números, ¿verdad? Eso siempre es algo que hay que hacer. Bueno, así que sólo podría escribir eso. Eso probablemente ayudaría. A ver si puedo encontrar algunas L. ¿ Hay otro 11234. Eso son cuatro. Vane. Y sí, así como puedes ver, hay, por supuesto, algunas cosas. También depende, por supuesto del, de la altura. Y ahí vamos. Ahí hay algunos otros. Entonces en este punto estamos la altura 2020 a esto apenas lo hizo en 12. Yo, aquí hay unos tres más. Entonces este es un comido realmente genial. La generación es bastante fácil de entender y eso en realidad es una veta grande. Eso es lindo. Y por supuesto se puede jugar con los números. Eso es lo mejor que puedes hacer. Vamos a dar un círculo hacia atrás. Y eso es lo mejor que puedes hacer, ¿verdad? Así que juega un poco con los números y solo ve qué puedes hacer tasa. Entonces esta es la punta aquí para la ración de origen, pero eso básicamente ya no es eso, no estan complicado, tan complicado, sobre todo en comparación con la GUI o la otra la cosa de la entidad de azulejo. Entonces sí, eso es básicamente todo. Si hay alguna pregunta, siéntase libre de preguntar. Y sí. 67. (Minecraft) crear un árbol personalizado: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a crear nuestro propio árbol personalizado. Ahora lo que necesitamos para un árbol personalizado es por supuesto, plancks, troncos, hojas y un arbolito. Y esto es lo primero que vamos a hacer. Vamos a entrar en nuestros bloques mod, la clase y crear exactamente esos objetos. Objeto de registro de tipo bloque. Todos son de tipo block. Y he decidido crear un árbol de secoya. Y va a ser tablón de registro es igual para registrar los tablones de madera rojos. Y entonces aquí vamos a hacer bloque nuevo con algunas propiedades de bloque abstracto, que van a ser del punto de Locke, OK. Tablas. Muy fácil. Simplemente vamos a tomar lo que sean las propiedades de tablón de o tablones causa no hace nada especial en este caso sobre ellos. Y también tener el registro de troncos de secoya aquí. Y yo inicio sesión aquí. Y este va a ser un bloque de pilares girado. Y las propiedades van a ser, por supuesto de OK. Ok, ¿irías? Y aquí vamos a tener hojas de Redwood. Y que no se olvide de cambiar también el nombre dentro del método de registro. Pero aquí, porque de lo contrario te vas a tropezar con errores, también se va. Y eso va a ser un bloque de hojas. Y luego una última, que va a ser un poco diferente porque tiene sentido copiar esto. Sí, todavía no tiene sentido copiar esto y este va a ser el argolla de secoya. Y esa es la que va a ser la más interesante, digamos, o la que tiene más trabajo asociado. Digamos, vamos a deshacernos de eso. Y esto va a ser un nuevo árbol de madera roja, que por supuesto aún no existe. Pero ya podemos llenar esto porque ya sé cómo se va a quedar. Y este va a ser un nuevo árbol de madera roja, que tampoco existe todavía. Entonces hay algunas cosas de las que realmente necesitamos crear algunas propiedades a partir. Y aquí vamos a tomar cerraduras de punto de arveja de roble. De repente te vas, y eso es todo. Y por supuesto esos necesitan crearse. En primer lugar, vamos a crear el muestreo de secoya. Esto está dentro del paquete de bloque otra vez, el muestreo de madera roja. Y el árbol de secoya va a extender el bloque Bush y va a implementar un rollo de ojos. De acuerdo, primero que nada, que se implementen los métodos. Puede crecer, puede usar hueso, comer y crecer. Y luego el siguiente. Y luego también por supuesto, un constructor con el super dentro aquí. En realidad también queremos un proveedor de árbol, que va a ser árbol en. Y esto también es algo que necesitamos tener como campo final aquí, un proveedor de tres, proveedor de árbol, que sólo vamos a llamar árbol. Y O tenemos que tomar tres, reimportar eso. Muy importante que sea árbol, red Minecraft bloquear árboles y no el otro. Y este va a ser el proveedor normal. Y esto es entonces este árbol es igual a tres. Y también pre contestamos a la UE. Y entonces también necesitamos una propiedad entera. Propiedad entera llamada etapa. Esto simplemente es el estado de bloqueo propiedades punto estado, punto etapa 01. Por lo que esto básicamente significa que tiene una propiedad entera independientemente de que se cultiva o no. Y dentro de la lata crecer, sólo vamos a volver verdad porque este bloque puede sobar, puede usar harina de hueso. Vamos a crear un número aleatorio básicamente. Entonces vamos a hacer un doble y va a ser mundo en punto aleatorio. Siguiente carga es esta. Es decir, también podríamos usar un flotador, pero importa muy poco. Entonces esto básicamente tiene un 50% de posibilidades de que la harina de hueso funcione, ¿verdad? Entonces éste básicamente dice eso. Y entonces tenemos un método de crecimiento que tiene que ser, hay que hacer algunas cosas. Entonces aquí mismo realmente necesitamos un estado, estado punto get stage es igual a 0. Y aquí vamos a decir mundo en estado de bloque fijo. Y desconozco mis adiciones estos paréntesis que no son necesarios. Estado, y entonces necesitamos usar la función 235. Este, sí, éste creo que es el correcto. Está sin mapear. Y en esto sería en realidad ciclo DOT estatal, solo para que lo sepas. Y voy a hacer otra cosa. Una vez más, el, los combates con un formato de forma. Y entonces aquí en realidad vamos a decir, perdonado de fábrica de punto arbolado, crecer árbol, mundo en posición aleatoria. Oh, no, esa no es posición. Gracias. Y si ese es el caso, entonces sólo vamos a volver turno. Y ese no es el caso. Y vamos a ver este punto tres, punto get try rho tree world in, world in yet chunk provider get trunk generator, pass, state y random. Se van. Parece una locura, pero en realidad no es tan loco. También queremos anular el contenedor de relleno, que solo vamos a guardar el constructor punto add stage. Y vamos. Y también necesitamos anular el método de tick. Y vamos a sumar estos suprimen, una vez más suprimen las advertencias porque la reubicación, porque eso no es tan importante. Entonces vamos a decir si el mundo en esta zona cargó la posición uno. Entonces si la posición alrededor del árbol está realmente cargada, no está cargada. Más bien, ganamos, negamos el SIR y entonces en realidad no vamos a hacer nada. No obstante, si esto se carga y si entonces la luz en esa posición, entonces si la luz por encima de esta posición está por encima de un nivel de luz nueve. Y luego también ponemos un número aleatorio. Vamos a tomar un entero en realidad, siguiente int con encuadernado siete. Si eso es 0, entonces vamos a hacer que esta estrella crezca con posición aleatoria mundial y el estado, ¿verdad? Esto está mal porque la prueba se veía así. Si la posición por encima de la cosa está por encima de nueve y si el entero aleatorio es igual a 0, Entonces básicamente como sobre a, ¿qué es ese uno sobre 7% de probabilidad de crecer cada vez que el, el, entra la garrapata, ¿verdad? Algo así. Bien. Ahora esto no es, por cierto, esto no sólo sucede en como siete garrapatas o algo así, entonces eso significaría que básicamente crece cada segundo o intenta crecer cada segundo. Eso no es lo que pasa, pero sí, esto está bien. Entonces veamos el árbol. Entonces éste funciona, pero aún no hemos implementado un árbol de secoya. Ahora bien, dónde poner el secoya es una especie de cosa, que no estoy seguro de dónde tiene más sentido porque en realidad es algo que ver con el mundo, pero también es una especie de cuadra. Y si tienes, si lo sabes, estás haciendo un mod con muchos árboles, por ejemplo, actuar tiene sentido tal vez incluso tener un paquete extra para eso. No obstante, si tienes como uno o dos árboles extra, entonces también tiene sentido simplemente ponerlos en el paquete de bloques. Este sería el árbol de secoya. Y esta clase se va a extender árbol. Esto es casi un shock, lo sé. Y antes que nada, voy a copiar sobre algunas estáticas, las mismas variables estáticas aquí porque van a ser realmente útiles para o hacer. Queremos la característica del árbol del gueto como una sobrescribir? Y eso va a devolver algo con una configuración. Y esa va a ser la configuración de tres características de base final estática pública, que también se llama secoya tree config. Y esto va a ser una verdadera pieza de trabajo. Pero no te preocupes, vamos a poder hacer esto es ser base Tree configuration, config. Constructor de puntos. Y luego empezamos, y ahora se vuelve loco. Por lo que este es un nuevo bloque simple, proveedor estatal. Bloques dot read logaría. Entonces, en primer lugar, tenemos que darle la cerradura de secoya y necesitamos que les consigamos el estado por defecto. Entonces tenemos otro simple proveedor estatal de bloques, que van a ser los bloques Mott. Hojas de secoya. Eso se pone, eso obtiene estado por defecto. Entonces vamos a tener una nueva mancha de follaje, por favor. Entonces con esto, en realidad vamos a colocar las hojas. Esta va a ser una característica spread funk 2.4.2 PARA HIV2 AES es correcto. Y este va a ser el radio de la hoja que vamos a tomar. Ahora en realidad poner estos en para que sea mucho más fácil tener un bien coherente la configuración de w1. Y en lugar de simplemente poner números aleatorios, digamos que esto va a ser el desplazamiento de la hoja. Entonces coma hojas altura. Después tenemos un nuevo láser de tronco recto. Entonces este es básicamente el lugar la colocación de los troncos en una línea recta hacia arriba. Vamos a ver una altura base. Entonces vamos a tener una primera altura aleatoria y una segunda altura aleatoria. Para que si los árboles son aleatoriamente altos o bajos, donde dos características para más adelante aparecen, que sólo va a ser 101. Y luego agregarlos aquí de nuevo vamos a decir Construir. Y de repente todo funciona. Hemos usado por todas partes las cosas aquí y todos están contentos. Esto también es algo que vamos a regresar. Por lo que vamos a devolver punto de característica, configuración de ancho de punto, iteración. Y por supuesto, la característica se ha implementado o más bien importante. Y luego el árbol de madera roja config, bam, eso es todo. Ese es todo el árbol. Ya hecho. Y creo que eso es correcto. Sí, todo debería estar bien aquí. ¿ Verdad? Eso es todo para las clases. Ahora por supuesto, también queremos una generación. Voy a ir a llegar a la generación pronto, pero primero vamos a implementar realmente el o importar, digamos los modelos y estados de bloque. Por lo que una vez más, voy a copiar esos sobre todos los archivos, una vez más, disponibles como recurso. Entonces vamos a copiar sobre los estados de Bloch. Y los estados de Bloch son, en su mayor parte, son muy fáciles de entender y encontrar que el registro es un poco más complicado, por supuesto, porque tenemos un registro horizontal y un vertical que podemos colocarlo de diferentes maneras. Y el ardiente, en cuanto a los estados del bloque, fácil. Pero claro, cuando se trata del modelo, entonces vamos a tener una cosa diferente. Entonces vamos a entrar, voy a copiar sobre los modelos de bloque. Entonces ahí realmente vas a necesitar el bloqueo de hojas de secoya, bloqueo subrayado horizontal y luego tablones y arvejas. Como pueden ver, si voy al registro y al registro horizontal, es mucho no demasiado loco. También quiero decir una vez más que siempre se puede bajar aquí a net Minecraft cliente extra en especie de las bibliotecas externas. Y mira todos los estados de Bloch y modelos de cosas que ya se han hecho. Entonces el registro de acacia, por ejemplo, hojas de acacia, tablones, muestreo vacacional. Por lo que todo esto está disponible para ti también. Entonces aquí es básicamente donde se puede conseguir cómo hacerlo correctamente, digamos. Y el muestreo de secoya, una vez más sólo dice: Oye, ve a la cruz extra de arvejas por supuesto, porque estamos, cuando tengo esto en través de patrones, por así decirlo. Y los modelos de artículo, también vamos a conseguir que se acaben esos. Y esos están aquí. Hojas de secoya, cosas normales, normales. Nada demasiado fuera de lo común. ¿Verdad? Y luego también necesitamos agregar las nuevas etiquetas. Y los voy a copiar también. Voy a poner esos aquí. Entonces esto básicamente van a ser hojas, troncos, troncos que queman tablones y los troncos de secoya. Y se ven algo así. Por lo que dentro de los troncos y los troncos que se queman, en realidad tenemos. Esto se refiere a Minecraft es porque por supuesto los datos etiquetas Minecraft están aquí y luego los propios registros de secoya referidos de nuevo al artículo en sí. Es un poco loco, pero una vez más, todo está provisto. Y luego también ponemos las texturas dentro del bloque. Quiero mencionar una vez más no soy artista, así que esos no son lo más grande, pero creo que son decentemente suficientes para que funcione. Y ahora sí creo que todo se ha agregado excepto por la generación, pero vamos a mirar a la generación en tan sólo un segundo. En primer lugar, vamos a ver si se ha agregado el plátano. Ahora una vez más, como lo he hecho en conferencias pasadas, no he agregado el, la localización para el idioma. Esto, sin embargo, ni siquiera debería ser un tema. Es literalmente una línea añadida. Simplemente lo omito fuera de aquí porque realmente no cambia tanto para los propósitos de la conferencia al menos. Entonces vamos a ver si todo se ha agregado y si en realidad podemos ver todo. Entonces eso es bastante bueno. Por lo que se han agregado todas las cosas. Entonces esa es una buena primera señal. En realidad también tomemos algo de harina de hueso también. Entonces este es el de Planck. Tenemos los troncos que también podemos colocar horizontalmente. Tenemos las hojas. Eso es bastante bonito, y luego tenemos el ardiente. Y esa es, por supuesto, la gran pregunta si realmente crece o no el ardiente. Entonces vamos a colocarlo abajo. Y hace otra cosa que tenemos que añadir, pero eso va a ser muy fácil una vez más. Y vamos a ver si realmente podemos tenerlo crecer con harina de hueso. Y sí crece. Eso es más pequeño de lo que espero que en realidad creo que deberían ser un poco más grandes. Bueno, ese es un árbol muy pequeño. Wow. Este crecer son ese tipo de lo que es una especie del tamaño que esperaba. Vete tú. Eso es bastante bueno. Ok. Es decir, eso son como dos papeles muy bajos. Eso es probablemente como la altura normal que yo quería tener. Mitad. Correcto. Genial. Sí, así que eso realmente funciona. Una vez más, el esto es lo mismo, digamos flecha o tema que teníamos con esos. Simplemente tenemos que sumar esto en decadencia de proxy. Entonces vamos a hacer eso primero y luego vamos a mirar también a la generación. Esto está dentro del proxy del cliente. Ahí solo necesitamos agregar el tipo de render HLOOKUP set render layer. Este va a ser el modelo de bloques, puntos, Redwood, ardiente, punto get. Y esto es renderizado tipo get cut out. Una vez más, justo lo mismo que los cultivos de calabacín. ¿ Verdad? Y ahora en realidad podemos sumar también la generación. Y esto va a ser muy, muy similar a la generación Mordor. Vamos a crear una nueva clase enfriado mod de tres generación. Esto una vez más va del suscriptor de bus de eventos mod Dot. Entonces solo pon el mod ID y eso es todo. Soy puntajes mod, mod IID. Y aquí vamos a tener un, un evento es vacío estático público en carga de bioma. Y éste toma un bioma cargando impotente. Evento fresco. Esto es por supuesto, un evento de suscripción. ¿ Ya te suena raro la palabra evento? Ok, vamos a ver. Entonces vamos a tener una clave de registro de tipo de bioma. Entonces esto es casi lo mismo que nosotros, que estamos haciendo en este método. Un poco diferente. Digamos así. Es casi lo mismo. Pero lo vamos a hacer manualmente. Digamos registro qi dot get o create key of registro dot biome key. Entonces estamos buscando un bioma y vamos a buscar el bioma que tiene este nombre. Se irían a set, también vamos a tener un conjunto de bioma, tipo diccionario biomado. Primero que nada hagamos que se importen bioma. También vamos a conseguir set importado. Ahora, vamos a mantener esto en una línea en realidad y simplemente alejar un poco. Creo que eso estaría bien. Sí, va a haber el tipo. Entonces esto va a ser todo biomas, básicamente. Biome, va a ser bioma diccionario dot consigue tipos con la clave. Y luego vamos a pasar por tipos dot contiene bioma, bioma diccionario. Y sólo por el bien de la discusión ahora mismo, vamos a tomar aviones. Por lo que sólo quiero que mis árboles engendren aviones por el bien de la discusión en este momento. Por supuesto, normalmente los aviones no tienen tantos árboles. De lo contrario no serían aviones por supuesto elevar. No obstante, esto es una especie de, una especie de idea o suficiente. Esta va a ser una lista de proveedor de característica configurada. Y esto puede ser signo de interrogación, signo interrogación en realidad un ego. Ahí va a haber la base. Y ese es punto de evento se pone generación. Ahora. Oh Señor, no, buena generación. Dot obtener características de generación de tipo. Declaración, duración, declaración escénica, decoración vegetal. Por lo que esta es la etapa de generación donde se agrega el proveedor no suministrado. Este es el punto de generación donde se agrega básicamente la vegetación. Y luego vamos a necesitar conseguir lista como uno. Y luego a esa lista en realidad vamos a agregar algo. Y vamos a sumar a eso la configuración de ancho de punto de característica tres puntos. Y esa va a ser la configuración del árbol de secoya punto con una colocación específica. Y en este momento sólo vamos a tomar colocación en otra configuración de roble oscuro, sin instancia de configuración de colocación. Entonces básicamente estamos copiando sobre cualquier configuración de colocación que tenga el roble oscuro roble. Es que te aconsejo que simplemente tomes esta y juegues un poco con ella, ¿verdad? Por lo que dentro de esta colocación. Entonces, o bien puedes tomar colocación ¿verdad? Aquí hay muchas cosas que puedes configurar. Y también hay colocaciones. Placements, que también puedes tomar las colocaciones ya hechas básicamente, y simplemente jugar un poco con esto. Es hasta que básicamente obtienes el resultado deseado. Una vez más, esto ya debería hacerse. Yo sí creo que eso es todo. También hemos agregado esto en proxy de declinación, por lo que todo debería funcionar. Sí, todo debería funcionar bien. Entonces, vamos a ver en realidad si eso funciona o no. Y ver qué podemos ver cuando generamos un mundo nuevo. Esto definitivamente debería generar algunos de los árboles dentro de los biomas planos, Como dije. Ahora veamos si eso funciona. Por lo que en realidad tenemos que crear uno nuevo hecho una vez más. Y vamos a ver. Si eso realmente funciona. Sería un poco agradable. Porque generando nota no hay errores. En lo que va de momento. Entonces eso es bastante bueno. Y ahí vamos. Estamos en aviones, y esto ahora está lleno de esos árboles. Ahora, una vez más, es importante mencionar que por supuesto, los aviones que realmente no tendríamos, en primer lugar, que muchos árboles y en segundo lugar, no realmente ningún árbol en absoluto, si somos absolutamente honestos. Entonces esto es, por supuesto, esto es todo aviones. Esta es por supuesto una manera loca, demasiados árboles o aviones. Como dije, lo que pasa es que lo mejor es simplemente jugar un poco con la colocación y ver lo que puedes ver sobre esto es cómo puedes generar algunos árboles de tu tipo. Y sí, esto, este es el árbol personalizado, el arbolito personalizado y también cómo luego girar y luego realmente también engendrar esos y generar aquellos dentro del mundo. Sí, así que eso es bastante bueno. Si hay alguna pregunta como siempre, siéntete libre de preguntar. Y sí. 68. (Minecraft) crear una maf personalizada: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a crear nuestra propia mafia, o también conocida como una entidad dentro del juego. Y lo primero que vamos a necesitar para eso es que vamos a crear un otro paquete. Esto se va a llamar entidad. Y dentro del paquete nos vamos a preparar ya para otros dos paquetes que necesitamos y ese va a ser el modelo. Y luego dentro del paquete de la entidad, nuevo, renderizar la UCIN, no embestida, sino renderizar un ego. ¿ Está bien? Y lo primero que vamos a hacer, sin embargo, es que vamos a ir al registro y declarar otro registro diferido. Y eso va a ser es público estático final diferir registro de tipo, este tipo de entidad. Y luego un signo de interrogación otra vez. Y sólo vamos a llamar a estas entidades. También podrías llamar a esta turba si eso es algo que prefieras, pero importa muy poco cómo se llama registros de forja y luego entidades. Porque en especie del código de juegos, se les llama entidades y no turbas, pero por lo general personas que juegan a Minecraft, pero en realidad no miran el código. Ellos los conocen como turbas. Esos serían trapeadores pasivos y activos. Entonces por supuesto, también agregue las entidades DOT registrarse con el bus de eventos aquí abajo en el método init. Y entonces el registro está completo. De acuerdo, entonces necesitamos crear nuestra entidad. Y esto va a ser dentro de nuestro paquete de entidad o de una nueva clase Java, y vamos a crear una entidad de búfalo. Por lo que el esquema de nomenclatura es el nombre de la entidad y luego acaba de terminar con entidad. Y esto extiende la clase de entidad animal. Vamos a implementar los métodos. Sólo necesitamos implementar un método. Aparentemente. Ese no es el caso ahora mismo. Yo por supuesto, y también el constructor. Y eso va a ser que se va a quedar como es. Y esta es una entidad elegible. Eso lo vamos a ver muy pronto. Pero lo principal con una entidad es el método de metas de registro. Y ese es el que básicamente es el cerebro de la entidad, ¿no? Entonces dentro, dentro de aquí, estamos definiendo metas para que la entidad realmente haga algo, ¿verdad? Por lo que esto tiene muchos goles. Solo vamos a crear unos cuantos ahora mismo. Entonces el interior de la misma es que vas a escribir este punto objetivo, selector, punto add goal, y luego una prioridad y un entero. Entonces esto es sólo una prioridad. Cuando se comparan dos goles, lo que sería, lo que se haría primero y más bajo estaría en una mayor prioridad. Entonces digamos, por ejemplo, un gol de natación y luego esto, y este es primer gol en este momento. Simplemente nadaría. Ahora en realidad puedes ir dentro de tu derecha cuando mantienes presionado Control y luego haz clic izquierdo. en realidad puedas mirar lo que está, lo que está pasando y lo que realmente aconsejo. Entonces voy a construir un, sólo un ejemplo, búfalo aquí. El ente con unos cuantos goles. No obstante, si realmente quieres entrar ahí, puedes entrar a la propia clase de goles y luego presionar Control H y mirar todos los diferentes goles que son. Como puedes ver, justo con los eventos, aquí hay muchos goles que puedes usar. Y esto es una vez más, una especie de cosa en la que sólo hay que jugar con algunos de esos goles. Y si tal vez dices, bueno, quiero algo como esto y debería verse así. Entonces solo puedes pasar por esto y mirar lo que tenemos. Evitar metas de entidad. Entonces, por ejemplo, esto es algo que sucede en la derecha, el oscilado, por ejemplo, se escapa cuando se llega a ella. Y hay tantas cosas que hay aquí que ya son metas definidas que es, en realidad es asombroso, como si fuera un montón de goles. Y eso definitivamente, si quieres construir un tipo de entidad más complicado y más complejo, los objetivos son increíbles y por supuesto, también podrías sumar tus propios objetivos más adelante. Si eso es algo que querías hacer, correcto, hagamos un objetivo de raza de esto. Y entonces la velocidad es uno, d uno, este es el modificador de velocidad. En este caso. También vamos a crear un objetivo de plantilla. Este es el objetivo. Esto es algo que agregas. Por ejemplo, cuando tienes un Cerdo, creo que puedes tentarlos con zanahorias, creo. Sí, creo que sí. Y pollos con semillas, ese es el intento de gol. Entonces ellos, una vez más, especificas la criatura. Después especificas la velocidad a la que se mueve. Tomemos más velocidad. Y luego dentro de aquí vamos a tener un ingrediente y va a ser ingrediente de artículos, más ítems modo ítem, más artículos, por favor. Ahí vas. Elementos mod. Tengo tres activos cubriéndolo. Sólo tomemos el tapizado y lo que L dot consigue. Y entonces aquí tenemos falso. Por lo que la fuerza está asustada por los movimientos de los jugadores. Esto sería, una vez que empezara a ser algo donde el, donde si no tienes el artículo TMD, entonces les da miedo tu movimiento. En este caso, no queremos que el búfalo sea, que se asuste. También vamos a darle al búfalo un gol de agregar con prioridad libre saber seguir meta de padres, seguir meta de padres. Esto. Y luego vamos a tener un poco más de velocidad. Entonces esto es básicamente modificador de velocidad a la velocidad original del animal. Por lo que se va a mover un 10% más rápido. Y luego vamos a sumar una otra que se va a entregar agua gol caminante evadiente? Sí. Caminando aleatorio también, cuando se balancea aleatoriamente alrededor, entonces trata de no entrar al agua. Y esas son, digamos algunas de las cosas que podemos agregar. También podemos sumar. Vamos con la mirada a la portería. Mira gol o botín bien, quiero decir, eso sería un gol interesante, definitivamente. Y dentro de aquí podemos entonces por ejemplo, decir, hey, mirar la clase de punto entidad jugador. Por lo que podemos especificar lo que está mirando. Y esta es en realidad la distancia máxima es un flotador. Digamos por ejemplo ocho f. Así que nos va a mirar aunque esté a ocho cuadras de distancia. Y luego dentro de aquí también podemos agregar un look al azar gol. Y eso sólo se lleva a sí mismo. Ahí vamos, ¿verdad? Pero, ¿por qué es este ocho? ¿ Quién sabe? Van a ser seis. Ok, entonces estas son algunas de las cosas que hace ahora la entidad. Estos son algunos de los goles, como dije, lo mejor si quieres mirar los goles es pasar por aquí y en realidad mirar algunos de ellos. Prueba algunos de ellos si, sean o no lo que quieres. Y además, lo que también puedo decir es que también puedes entrar a la entidad animal y presionar aquí Control H y en realidad ver a las otras entidades. Entonces el B, el cerdo B, el Zorro, y lo que quieras. Entonces digamos, por ejemplo, el pollo, realidad se puede ver lo que tiene el pollo como meta, ¿verdad? Tiene casi lo mismo que tenemos en este momento. Acabamos de tener un agregado el objetivo de pánico. Porque yo discutiría ahora mismo que tal vez el, tal vez el búfalo estaba no se asusten cuando los atacas. Y así es como realmente se puede construir muy bien una nueva entidad. Por lo que puedo mucho sólo consejos para hacer eso. Añadamos también los sonidos que tiene esta entidad. Entonces el primero es obtener sonido ambiental. Y sólo vamos a devolver el sonido para la vaca porque esto, en este caso los eventos sonoros punto entidad, ambient. Porque esta entidad en realidad es muy similar a una vaca. Voy a representar, voy a mostrarte mi entidad pronto en banqueta de bloques y te vas a sorprender la increíble creatividad que se me ocurrió. Pero creo que en realidad es, en realidad no es tan malo. En realidad no es tan malo. Pero sí, así que vamos a tener un sonido ambiental. Vamos a poner el sonido de la muerte, salir herido el sonido también es algo que vamos a poner. Estos van a ser los eventos sonoros que lastimó la vaca. Y entonces creo uno más sí, el sonido de paso y eso va a estar cerca. Eso se coloca sonido de paso. En realidad vamos a decir este punto, este sonido de reproducción de puntos. Quiero el sonido normal de reproducción. Sí, éste, voy a decir eventos sonoros, paso de vaca. Y entonces vamos a decir que el volumen es un poco más alto tal vez. Por lo que podrías imaginar que, ya sabes, un búfalo es un animal bastante grande, bastante grande. Entonces tal vez los pasos sean un poco más ruidosos, algo así. Y luego otra cosa importante va a ser un modificador público de atributos estáticos, mapa, atributo mutable punto-punto. Esto va a ser causa establecer un atributo personalizado. En realidad diría que es atributos personalizados establecidos, diría que tiene más sentido. Yo sí creo que ese es el caso, pero sí. Escríbelo aquí dentro, en realidad podemos poner en algún retorno, algunos atributos que esta entidad tiene una entidad mop dot funk. Sí. Y luego vamos a decir crear un atributo mutable. Y luego dentro de los tributos publicitarios punto, y luego podemos ver realmente qué tipo de cosas tenemos. Entonces max health, podemos establecer, por ejemplo, algo así como 20 d. Y luego, oops, como ese y luego otro, por ejemplo, la velocidad de movimiento sería una especie de buena idea. Atributos, atributos, atributos, velocidad de movimiento de puntos. Ahí vamos. Y eso va a ser, digamos cero punto 3D 35, ¿verdad? Algo así. En realidad podemos tener eso. Es eso un no, no lo creo. Creo que eso está bien. Está bien. Y luego sí, y aquí, como dije en el cuando entramos en peso, éste, hermosos atributos. No, eso no está bien en el atributo, lo siento, éste, por supuesto, y que en realidad podemos ver los diferentes atributos que están presentes en el juego mismo. Por lo que la velocidad de vuelo, el ataque, el daño, y todo tipo de cosas que puedes establecer para esta entidad. Y sí, sí creo que eso es básicamente. Ahora realmente necesitamos especificar esto en una clase de entidades MOD. Entonces vamos a tener muchos tipos de entidades. Entonces esto es una vez más muy parecido a nuestro, a las clases que hemos hecho antes. El mod, los bloques mod y todos esos, vamos a decir una estática pública, objeto de registro final de tipo, tipo entidad. Y luego al final que ningún tipo, un tipo de entidad va a ser una entidad búfalo que va a ser el búfalo. S es igual a registro. Entidades Dod se registran con nombre Buffalo. Y luego un proveedor de constructor de tipo entidad. En realidad, vamos a crear un nuevo búfalo. Usemos el es una expresión lambda aquí, entidad, criatura de clasificación. Y entonces en realidad podemos definir algunas otras cosas también. Entonces podemos definir el tamaño. Entonces este va a ser del tamaño del buzón. Hagámoslo un poco más grande. Y esto va a ser un churned y construir unas cuantas cosas más de las que podemos hacer. Por lo que algunos de ellos son tristemente un no mapeados aquí. Pero hay otras cosas que podemos hacer. Por ejemplo, hay un inmune al fuego. Podemos establecer que esto sea inmune al fuego. Entonces esto es, por ejemplo, algo que sería una varilla de fuego, ¿verdad? Es inmune al fuego. Recurso de un nuevo recurso. No, eso no está bien. Una ubicación de recursos en realidad. Y eso va a ser Mc canchas mod, mod ID más el Buffalo. Entonces esto sólo una vez más dice a, ¿dónde está el, dónde está el recurso para eso? Y eso va a ser de dos cuerdas en realidad. Leyendo eso ya es todo. También tenemos que sumar, por supuesto, nuestro vacío público estático, un registro. Método y eso necesita llamarse dentro de nuestro método aquí, entidades Mott, tipos de entidades, tres si tres puntos y esos puntos demasiados. Y eso registrado, ¿verdad? Por lo que esto una vez más simplemente registra el búfalo y entonces en realidad también podemos poner este dentro. Entonces esta es la edad mezclada t Esto es lo que se crea cuando 22 búfalos se aparean o una raza. Y esto, simplemente podemos recuperar uno de esos. Entonces este mundo de puntos, así que esto simplemente luego devuelve un nuevo búfalo y crea nuevo búfalo. Lo cual tendría sentido. Y sí, eso sería eso. Y entonces también ahora necesitamos preocuparnos de cómo se ve la entidad y bien, sí, ¿cómo se ve y cuál es su textura? ¿ Ahora? En primer lugar, cuando vas a bancada de bloque, así que he preparado algo, pero cuando vas a bloquear, cuando ella realmente puede entrar aquí y tener esta entidad modelada, una, puedes crear una nueva entidad. Nuestro consejo para probar primero esto, reintentar esto, y luego mirar la textura más tarde, porque esto es exactamente lo mismo. Pero lo más importante, definitivamente debes poner a los grupos como algo que tenga sentido. Por lo que los grupos deben ser cabeza, y luego hay cuerpo, pierna, frente, pierna derecha, pierna izquierda atrás, derecha y bolsa de pierna izquierda. Porque en esto se basa el modelo de entidad. Te voy a mostrar lo que se me ocurrió para Buffalo. Ahora probablemente te vas a reír, pero al mismo tiempo, realidad estoy bastante contento con ello. En realidad. En realidad me gusta un poco. Entonces no es eso, no es una locura. Pero añadí estos cuernos y yo también hice el cuerpo. Cuando poco más grande, QPR y luego otro extremo, tu detector definitivo. Tomé la fase de vaca y la modificé un poco y luego le di una textura. No es tan malo en amino diría que antes voy a liberar esto para un juego, probablemente lo cambiaría un poco, pero en realidad no creo que sea tan malo. Algo que es muy importante en realidad son los puntos de pivote de los contenedores aquí, los grupos. Por lo que deben estar donde quieras que esto gire alrededor. Por lo que el punto de pivote siempre se encuentra en qué punto el, el grupo gira alrededor. Entonces si giro esta cabeza ahora mismo, rote desde básicamente donde tenían lee el cuerpo. Y eso es por supuesto exactamente lo que quieres que suceda. Es por ello que en realidad hay que especificar esto en, digamos, el punto correcto. Lo mismo con la pierna delantera. Una vez más, el grupo es lo más importante. Y éste, si yo rotara, también lo traería aquí. Entonces se va a ver algo así como en realidad peor de esa manera. Entonces la cosa acerca de cómo exportarlo, realmente exportaste simplemente yendo exportar y exportar entidad Java. Entonces, ¿cuál es la exportación en alguna parte? Y luego vamos a ver cómo se ve eso en realidad. Si exportamos esto. Esto sería dentro de aquí y luego la exportación de búfalos. Por lo que se trata de un búfalo Export dot Java. Y lo que básicamente quieres es todo dentro de aquí. Queremos copiar esto. Y vamos a crear una nueva clase para esto sin embargo. Entonces vamos a crear la clase media búfalo. Y crearemos esto en lugar de la entidad y luego modelaremos. Eso va a ser nuevo modelo de búfalos de clase. Entonces vamos y esto va a ser con una T que amplíe entidad o entidad búfalo. Y entonces esto extiende el modelo de entidad con una t. Ahí vamos. Y sólo vamos a llevar todo dentro de aquí, copiar esto, y pegarlo aquí. Y necesitamos importar algunas cosas. Entidad de microondas, importas el render del centro comercial, el renderizador, la pila de matriz, el vértice un constructor. Y este método en realidad se puede eliminar. Y vamos a conseguir uno nuevo. Vamos a conseguir eso de. En realidad, tenemos que eliminar esto. Es decir, definitivamente necesitamos eliminar esto. En realidad, creo que sólo va a ser una t, ¿verdad? No es suficiente. Sí, ya tiene suficiente. Está bien. Tenemos que cambiar esto de un modelo, lo que era una entidad modelo, entidad a t. Y luego dentro de aquí, en realidad podemos hacer un truco muy bonito. Podemos entrar en el modelo Entity y luego realmente podemos mirar, por ejemplo, el modelo elegible. A, esto es una cita, modelo cuadrupedos. Y dentro de aquí en realidad tenemos los ángulos de rotación establecidos y podemos simplemente copiar este. Nosotros sólo tomamos el libro y luego podemos decir, ahí tienes, ese no es el correcto. Este derecho uno puede decir que te vas. Y esto sería entonces cabeza y especie de modelo tenido. Esto se tendría. Y luego nos vamos. Y dentro de aquí, ¿cuál es el problema aquí? Queremos constructores para eso. Y ese no es el caso de los demás, porque el constructor no ha sido nombrado correctamente. Y voy a nombrar esto a modelo de Buffalo de lo que realmente funciona, ¿verdad? Entonces ahora esto es importante en el juego. Pero primero también por supuesto, necesitamos escribir un renderizador para esto. Ahora el renderizador en realidad no es tan complicado. El renderizador básicamente define dónde están las texturas. Entonces vamos a decir que se trata de una nueva clase, renderizador de búfalo, y que está dentro del paquete de render de punto entidad. Esto extiende el renderizador mop de tipo entidad búfalo y luego búfalo, modelo de búfalo. Y luego he escrito entidad de búfalo porque no lo hemos hecho, no hemos especificado que es un búfalo suficiente todavía. Sí, y dentro de aquí simplemente tenemos la ubicación de recursos para la textura para la entidad. Y también necesitamos agregar un constructor con el super. Y aquí sólo vamos a devolver una nueva ubicación de recursos con el modelo de EMC Corps Ahmad ID, oop, no mi ID. Y entonces el camino va a estar dentro de texturas slash, entidad slash, búfalo, P y G. Dejemos que asegúrate de cerrar eso. Ahí tienes, ¿verdad? Entonces esto simplemente se especifica, de acuerdo, mientras que esto ¿dónde está la textura? Y sí creo que aquí tengo la textura, sí, cuatro, así que vamos a moverlo rápidamente para que esto se haga. Esto va a ser en un directorio llamado entidad. Y luego vamos a copiar sobre la textura. Sí, por favor. Y hay algunas cosas más que tenemos que hacer, pero casi hemos terminado. Y luego vamos a ver si sucedió o no lo mismo, pasa cuando uso esto como sucedió. Para mí, esto es algo importante. Entonces había una pequeña, digamos, no era una flecha, pero fue una especie de error que ocurrió. Y no estoy 100% seguro de por qué, pero vamos a arreglar eso. En realidad necesitamos agregar dentro de nuestro proxy cliente un registro de renderizado, dot register entidad render ayudante. Y luego queremos agregar el tipo de entidad mod, punto búfalo get, y luego el búfalo retro. Entonces esto sólo se asegura de que en realidad, el juego realmente sabe sobre los tipos de entidad modo de renderizador de búfalo, punto de búfalo get. Turner lo sabía, ¿me he perdido algo aquí? Hay otra cosa que tenemos que añadir, pero en realidad me sorprendería que eso sea. Por lo que en realidad queremos agregar una cola de trabajos diferidos que se ejecute más adelante aquí. Y esto va a ser algo que va a ser una salida de atributos de tipo entidad global. Y en lugar de aquí, en realidad especificamos los atributos que queremos que este búfalo tenga dot get. Y eso va a ser entidad búfalo, dot set atributos personalizados, dot create. Y luego aquí vamos. Ahí vamos. De acuerdo, en realidad descubrí cuál es el tema. En realidad no había tan grande de un trato. Fue simplemente el constructor aquí estaba un poco equivocado. Esto en realidad, en realidad podemos deshacernos de esto. Y sólo podemos decir, bueno, sabemos cuál es el modelo. Este va a ser un nuevo modelo de búfalo. Y el tamaño de la sombra que podemos definir simplemente escribiendo el flotador aquí y entonces no va a haber más error aquí. Fue sólo un poco de algo. Pero una vez más, dejaré al menos lo corto porque una vez más, al final del día, suceden estas cosas y a veces los errores, quiero decir, te puedo decir un poco anecdótico decir, cuando lo hice por primera vez esto, en realidad fue una locura. El hielo se olvidó. Entonces esto fue, como pudo haber visto, esto fue devuelto tasa nula, devolviendo un nulo. Y me olvidé realmente poner en la ubicación de recursos aquí. Pero el tema fue que me dieron una flecha sin especificar. Bueno, eso es solo que fue terrible porque entonces. En realidad tienes que pasar por todo hasta que encontré eso bien, eso fue, había algunos. Entonces es por eso que a veces pienso que algunas flechas en realidad se deben mantener dentro. Porque una vez más, conocida como infalible y número dos, en realidad podría ayudar con algunas de las cosas que vas a hacer y las flechas con las que te encuentras. Pero una vez más, si hay algún error o pregunta o error en el camino, siempre puedes sentirte libre de preguntar y responderé en cuanto pueda. Veamos realmente si podemos ver o no al búfalo en el juego. Porque como ya he mencionado, la modelo sí tenía una cosa extraña con ella después de exportarla desde, después de exportarla desde el banco de bloques. Entonces vamos a ver si ese también es el caso o que realmente funciona de inmediato. Entonces, antes que nada hagamos la fecha fijada de hora. Y luego vamos a ver si realmente podemos sumar en ello. Entonces alguien M anota Buffalo, también lo hace Swan. Y como pueden ver, por la razón que sea, definitivamente eso no es lo que teníamos en mente, ¿verdad? Y entonces esto es definitivamente, digamos, un poco raro por decir lo menos. Entonces está en el juego, podemos golpearlo. Entonces eso es bastante bueno, cierto. Pero bueno, definitivamente no se supone que el cuerpo lo esté. ¿ Qué has hecho? Dime qué has hecho. Ok. Entonces en realidad va a mirar esto. Entonces esto es por supuesto un problema con la botella, con el tipo de modelo de carrocería. Entonces el, las texturas Aquí, las cajas que se contratan definitivamente no están en el lugar correcto. Ahora, en realidad lo he arreglado aquí, así que simplemente podemos acabar rápidamente con esto. Entonces voy a copiar esto y vamos a ver esto. Entonces número uno, estos están locamente equivocados, ¿verdad? Entonces el, así el, como se puede ver esto, estas son las posiciones versus la posición y y la posición Z del cuerpo de la caja. Definitivamente no están donde se supone que deben estar su salida. Y además, también he girado alrededor porque se giró 90 grados y esto es un entonces girar alrededor de 90 grados. Entonces, en realidad vamos a mirar este ahora mismo. Por lo que el fijo y también la altura y la profundidad se ha cambiado al alza. No estoy seguro por el modelo de bloques hizo esto. No obstante, lo bueno de ello es que los parámetros aquí en realidad no son tan difíciles de entender. Esta es sólo la x, la y, y la coordenada z de la caja específica. Y luego tienes el ancho, la altura, y la profundidad de la caja agregada. Entonces en teoría, aunque haya una pequeña flecha o un poco de rareza pasando con esto, siempre puedes arreglarlo y también siempre puedes ir al banco de bloques y ver, por ejemplo, cuando tomas el Bollinger de vez en cuando por ejemplo, vamos a rotarlo así, como lo fue en Endgame. Y lo rotas así y luego lo exportas. En realidad se puede ver lo que haría esta rotación. Entonces lo haría una vez más, si hay algo que es raro, esa podría ser una de las cosas que ahí suceden. Y vamos a ejecutar esto en realidad y ver si esto realmente lo ha arreglado. Porque como dije, es un poco raro. Entonces de banco de bloques a esto, hay alguna rareza que siento al exportar. Pero como dije, realidad puedes arreglarlo. En realidad debería ser bastante fácil de arreglar. Y entonces veamos realmente si el modelo se ha arreglado o no o si sigue pareciendo raro o no. Se van, está bien, el modelo ha sido arreglado. Como dije, a veces es un poco raro. Por lo que también hay un pequeño fallo de textura ahí abajo. Entonces como puedes ver en los behooves, digamos No es realmente tomar la textura. Te puedo mostrar la textura con solo rapidez. Aquí está la textura. Y t búfalo. Y lo que hice fue rodear este ancho. El ancho al igual que un rosa brillante o magenta, en algún lugar entre rosa, imagen roja suave. Y un puesto está ahí sólo para significar. De acuerdo, ¿dónde está el, dónde están las texturas? Porque dentro de banqueta de bloque, voy a volver una vez más. Se puede por supuesto, especificó este año. Y cada bloque en el que haces clic, en realidad puedes especificar OK, ¿dónde está esta textura? Y entonces este d sectores simplemente se tienen que hacer, sobre todo para esto. Pero no es tan difícil ni complicado, diría yo. Porque si el, si la cabeza, por ejemplo, esto es 666. Entonces básicamente tienes seis lados y cada uno de ellos tiene seis píxeles en cada lado. Entonces en realidad puedes calcular, vale, ¿cuál es el, cuál es el tamaño de textura que necesito? Pero lo mejor aquí es cuando realmente quieres escribir texto o algo es demasiado poco, hacer tasa de prueba y error porque puedes, como puedes ver, solo puedes mover esta ronda y luego cambia la textura. Es un poco raro hacer esto, pero en realidad sí funciona. Entonces mi consejo, una vez más, es solo probar algunas cosas. Apenas probé hasta que funcione lo que quieres hacer. Y luego también puedes cortar la textura en tamaño, ¿verdad? Por lo que esto, por supuesto, podría hacerse un poco más eficiente en el espacio. Pero sí creo que eso va a estar bien. ¿ Verdad? Así que todo en conjunto. Y eso es todo. Como dije, la adición de turbas o entidades es definitivamente un poco más complicada y compleja que algunas de las otras cosas. Porque en realidad lo hacemos, en realidad hemos escrito un renderizador personalizado. Ahora por supuesto, esto realmente no es, realmente no hay un cliente y real, seamos honestos. Simplemente facilita poner en donde las texturas. Pero sí, esas son las entidades de modo. Una vez más, si hay alguna pregunta o si tienes alguna flechas, siéntete libre de preguntar. Y me aseguraré de responder. Y sí. 69. (Minecraft): Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia realmente vamos a tener nuestras entidades engendradas. Por lo que el búfalo va a engendrar tanto dentro del mundo. Y también vamos a crear un artículo por lo que el, lo que el huevo de desove para el Buffalo. Entonces lo primero que vamos a hacer es que vamos a crear el huevo. Y ese huevo simplemente va a entrar en los artículos de aquí. Entonces en lugar de nuestro paquete de artículos, vamos a crear el artículo de huevo de desove mod. Ahora esto en realidad es una gran cosa porque esto va a ser todos de una vez. Entonces si tenemos varios, esto en realidad puede servir como huevos múltiples, diferentes para múltiples, decimos múltiples entidades. Por lo que en realidad sólo tenemos que crear estos. Y luego podemos reutilizar esta clase para diferentes entidades. Y la forma en que vamos a usar esto es haciendo una lista protegida, protegida realmente hizo estática y final de este elemento de desove modelo. Vamos a llamar a esos huevos MOD. Eso va a ser un nuevo ArrayList. Exactamente así. Y entonces también necesitamos importar clase de lista, y eso es todo. Ahora dentro de éste de aquí en realidad va a ser un poco diferente. Entonces vamos a hacer esto de manera diferente. Lo que vamos a hacer es que realmente vamos a tener un objeto de registro final. Y vamos a poner aquí con una clase que amplíe el tipo de entidad. Signo de interrogación. Este va a ser el proveedor de las entidades. Y entonces el color primario se va a quedar en la bobina secundaria y las propiedades se van a quedar en. Vamos a llamar a esto con un nulo y poco dispuesto a arreglar esto, esta.tab entidad, entidades tipos de jugador i, realidad necesitamos poner eso en. Por supuesto, va a haber un perezoso final privado de un signo de interrogación de tipo y luego extiende el tipo de entidad. Observemos que se va a llamar proveedor tipo entidad. Y también necesitamos conseguir a Entidad un lugar perezoso. Y entonces este proveedor tipo de entidad punto va a ser igual al proveedor de la entidad. Y vamos, oh, claro que va a ser perezoso fuera del proveedor de la entidad. Ahí vamos. Y entonces sin embargo, sí creo que eso es lo mejor que se puede hacer. Y luego los huevos mod punto añaden esto. Esto simplemente agrega entonces el, la clase que se acaba de crear con el constructor en nuestra lista estática que tenemos aquí. Y entonces necesitamos un método estático. Solo vamos a usar la lista de huevos para inicializar la x básicamente. Y lo que va a pasar aquí es que realmente vamos a tomar un mapa, mapa final, tipo de entidad y elemento de desove. Entonces es un poco, es un, es solo el mapa. Esto se va a hacer con el ayudante de reflexión ofuscación, obtener valor privado. Por lo que esto básicamente nos permite obtener un valor privado de una clase. Va a tener instancia nula de que el nombre del campo va a ser x Vamos a importar mapa rápidamente y luego voy a hablar rápidamente de esto. Entonces dentro del artículo de huevo de desove, nosotros, Como podemos ver, hay un mapa final estático privado, exactamente lo que hemos especificado, que se llama x Ahora esto es por supuesto privado. Por eso no pudimos salir. Pero con la ofuscación de asociación, reflexión, ayudante en realidad puede obtener esa variable privada y en este caso el valor de esto. Y luego lo podemos usar para agregar cosas ahí atrás. Y entonces sólo va a agregar esto para nosotros automáticamente. Entonces lo primero que vamos a hacer aquí abajo, en realidad vamos a escribir el tipo de entidad pública, interrogación, se pone tipo, para que se haga fuera del camino. Esto toma un compuesto NVT y BT, y simplemente va a devolver esta paradoja entidades de punto. No obstante, esto es por cierto, una anulación también. Entonces eso se hace. Entonces sólo necesitamos agregar algo a los huevos engendrados de entrada, ¿verdad? Y ahora vamos a especificar el comportamiento que va a suceder para el dispensador. Por lo que vamos a crear un valor predeterminado en el comportamiento del elemento de giros. En breve llama a ese comportamiento de artículo de dispensación. Así que sé un nuevo artículo de gasto, dispensa el comportamiento del artículo, por defecto, ¿verdad? Y en lugar de aquí tenemos que anular un nuevo método y ese va a ser la pila de dispensación. Sí, exactamente éste. Y lo que queremos hacer es que queremos devolver la pila. No obstante, son pocas las cosas que tienen que suceder primero, lo primero que hacemos es que queremos conseguir la dirección. Bueno esa no es la dirección correcta y la dirección de lectura es la dirección. Y eso va a ser de origen punto-punto-punto getter, block, state dot, get. No, no conseguir esa dirección, pero conseguir que el bloque dispensador se enfrente de punto. Entonces aquí es solo queremos saber en qué dirección se enfrenta el dispensador. Entonces queremos especificar el tipo de entidad. Por lo que sólo obtenemos el tipo de entidad que está dentro del artículo de huevo de desove. Por lo que este stack dot get item, o, item, irían dot get type, stack dot, get, bruja. Ahí vamos. Y esto, esto, esto entonces simplemente me consigue el tipo de entidad que queremos engendrar y luego queremos engendrar esta tan entidad ese tipo engendra perspicacia del mundo que necesitamos especificar la spec, bueno el desove, ningún jugador. El puesto en el que esta es la razón de desove que es dispensador por supuesto. Y entonces vamos a querer decir que la dirección es desigual para dirigir callado y no abajo, sino arriba. Y el último es falso. Por lo que esto simplemente se asegura de que esto no engendra hacia arriba cuando el, cuando el Spitzer se apunta hacia arriba. Apila de puntos de encogimiento por uno, ¿verdad? Entonces el huevo se consume realmente, digamos. Y queremos, una vez hecho eso, en realidad quieres agregar esto aquí. Entonces esto va a ser artículo de desove, huevo de desove en todos, todos los tipos de entidades. Pero queríamos mod elemento de desove, los huevos mod. Y para cada uno de esos queremos agregar el, por lo que x-dot. Poner. Este va a ser el daguerreotipo de huevo desove sin y BT y el desove. Y también queremos que el dispensador bloquee al registrar el comportamiento. Y ahí dijimos que engendran EG y el comportamiento de dispensación que aquí arriba hemos especificado. Y luego al final, cuando hayamos hecho todo esto e inicializamos todo, entonces solo queremos despejar el mod x Así que básicamente, esto necesita ser llamado, vamos a deshacernos de algunas cosas aquí. Esto necesita ser enfriado en el proxy del cliente de placa. En realidad ya podemos poner eso aquí. Por lo que esto es simplemente mod elemento desove en él, espora siguiente. Por lo que ahora se llama a esto en el proxy del cliente. Y nosotros sin embargo, necesitamos leer primero un nuevo ítem. Por lo que este va a ser el engendro real por ejemplo. Y como dije, cuando tenemos un, otro ejemplo, si quieres crear otra entidad en lugar de un búfalo, no conozco una hiena por ejemplo, o algo así. Entonces simplemente puedes agregar casi exactamente lo mismo que vamos a agregar aquí ahora. Y va a funcionar de inmediato. Por lo que este va a ser el objeto de registro de tipo modelo de huevo de desove. Tomé algún tipo de artículo. Va a ser un artículo monotónico. Este es el huevo deshuesado de Búfalo. Oh, no, no es una edición. El huevo. Y eso va a ser en artículos de registro. Entonces va a ser una isla normal, digamos el engendro de búfalos por ejemplo. Y eso va a ser un nuevo modo, un acto de tipo, modo, tipos de entidades, Buffalo. Y luego hemos especificado los colores y en realidad tenemos que especificar esos colores en código hexadecimal. Entonces vamos a hacer un 0 x y luego el código hexadecimal, solo voy a tomar unos colores que tal vez no sean lo mejor que puedas. Si realmente puedes jugar un poco con él y probar unos colores diferentes. Y estos son solo el código hexadecimal para el color detrás del Xerox. Y entonces las propiedades del ítem simplemente van a ser una vez más, el grupo, que por supuesto es mc cores metadata course tab. Y eso concluiría el huevo. No obstante, antes de entrar en juego, vamos a hacer rápidamente el desove dentro del mundo. Dentro de nuestra carpeta gen o de un paquete, vamos a crear un spawn de entidad simulada más. Esto, una vez más va a ser un suscriptor de bus de eventos MOD DOD con curso MOD ID MC que ya. Ahí vamos. Y eso es todo lo que vamos a necesitar. Y luego vamos a tener un vacío de toma en carga de bioma por OMA nob en carga de bioma ellos oh, este es un evento de carga de bioma. Evento. Y este es un evento de suscripción. Y rápidamente voy a copiar esto porque esto básicamente va a ser exactamente lo mismo. Ya que soy importante que vayan, va a haber casi exactamente lo mismo pasó con el árbol, sí creo, Sí. Pero esto es casi lo mismo que ocurrió con el árbol va a suceder aquí. Simplemente en lugar de una lista de características configuradas, vamos a tener una lista de reproductores de puntos mob info. Entonces vamos a conseguir a los spawners con la criatura clasificador de entidad. Este es el clasificador que ponemos el tubo de búfalo. Y luego vamos a crear un nuevo spawner aquí. En realidad podemos entrar aquí y ver qué cosas hay ahí dentro. Por lo que sólo vamos a especificar el tipo, el peso, el min, y el recuento máximo. El peso aquí simplemente significa con qué frecuencia se va a engendrar esto. Y creo que lo que era era una oveja y cosas así son diez. Yo sólo lo puse a 30 para que estemos seguros, de acuerdo, en realidad, en algún lugar donde engendran. Esto es una vez más algo que necesitas para jugar con un poco con los números. Y también año muy importante, realidad he especificado que no engendran en el bioma oceánico, lo contrario probablemente se ahogarían muy rápidamente. Y entonces el min cuenta simplemente ok, cuál es el tamaño del rebaño, digamos en este caso, y sí, veamos si esto realmente funciona o no. Y el artículo de desove, mayoría de un artículo de huevo también funciona, pero ambos deberían funcionar. Lo bueno aquí es que también se puede especificar, por supuesto, digamos tal vez uno, el búfalo solo para engendrar en aviones. Ya podemos hacer eso especificando aquí que los tipos contienen sólo el tipo a de los planos orbitales. Sí, exactamente. Entonces eso es algo que se hace muy fácilmente en realidad. A ver. Entonces vamos a crear un mundo nuevo y veamos si ambos podemos ver los ya engendrados. Y luego también el artículo que hemos preparado, el huevo. ¿ No sería lindo eso? Bueno, sería muy bonito. Sí. A ver. Oh, engendramos en una selva. Eso es fascinante. O a, tenemos el huevo sin textura. Bueno, eso definitivamente no es lo que quieres ver. No obstante, no podemos engendrar el búfalo eso, eso es un poco bonito. Entonces volemos realmente alrededor del exterior de la selva. No estoy seguro. En realidad podemos incluso verlos si están en la selva. Vayamos allá a ver si podemos ver algunos de ellos. Yo sí creo que lo son, se dejan ir. Algunos de ellos en realidad se engendran dentro del mundo. Pero no se preocupen, ellos, no han caminado de aquí para allá más rápido de lo que puedo volar. Al igual que eso sería, sería una locura. En realidad están desovando a un asesino o a algún lugar en el que te vayas incluso tortuga, vamos a hacer ejercicio. Está bien. Pero engendran en el mundo. Ahora el huevo en realidad no tiene una, no tiene una textura adecuada porque por supuesto aún no hemos agregado el modelo para ello. Entonces, ¿cómo puede tener una textura? ¿ Si no tiene modelo? Esa es una muy buena idea para una pregunta en realidad. Entonces agreguemos el modelo para esto. Sólo voy a copiar esto y volver a mirarlo. Bueno, no es tan complicado. Pero una vez más, a veces la única línea es suficiente para que no funcione correctamente. Yo sí creo que una vez que se añada el artículo aquí, entonces va a funcionar. En realidad no necesitamos suministrar una textura porque por supuesto hemos suministrado la textura, por así decirlo, con esta. Entonces esta es la plantilla de huevo desove simplemente tiene a NO2 dos números que asocia con colores y luego se va a irradiar eso por sí mismo. Y ahí vamos. Ahora en realidad tiene esos dos colores en ella. Por supuesto, probablemente elegirías algunos otros colores. Pero una vez más, los colores que puedes jugar con ellos si quieres o necesitas. Y luego puedes agregar tu propia hélice personalizada. Entonces estamos pero me gusta me gusta en realidad. Cuando corren por ahí. Sí, eso es bastante guay. Sí. Y así es como se agregan algunas nuevas entidades. Es así como los haces para engendrar en tu mundo, y cómo puedes agregar los artículos de desove. Una vez más, la localización es lo más fácil de la historia, simplemente dentro del archivo de localización como siempre. No obstante, lo que también debes hacer con la propia entidad es que definitivamente debes agregar la entidad. Por lo que definitivamente debes agregar este. Entonces esto debería ser una entidad en MC, peor, Buffalo y luego un búfalo, ¿verdad? Y por supuesto, el cuello pequeño. Va a ser bastante trivial agregar esto, ¿verdad? Es así como engendras a las turbas y cómo puedes crear un esperma y un huevo. Yo sí creo que eso es todo. Si hay alguna pregunta, siéntase siempre libre de preguntar. Y si usted encontró algo útil aquí y en realidad ha creado algo, entonces le agradecería mucho una opinión suya. De lo contrario. Esto fue todo por ahora. Y sí. 70. (Minecraft) creación de un biome personalizado: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a hablar de crear nuestro propio bioma personalizado. Entonces en realidad teníamos un estudiante que preguntaba, vale, ¿cómo puedo crear mi propio bioma? Y esta es una manera temas avanzados. Entonces esto es mucho más complicado que algunas de las otras cosas que hemos hecho. Pero no te preocupes por ello. Vamos a atravesarlo uno por 11 pieza a la vez. Y entonces creo que podemos manejarlo. Entonces, en primer lugar, dentro de nuestro paquete mundial, vamos a crear un nuevo paquete, que vamos a llamar bioma. Y luego directamente después de eso, un segundo paquete también en o un paquete mundial. Y eso va a ser o contar. Ahora empezamos con el paquete bioma. Y ahí dentro vamos a crear una nueva clase Java llamada el constructor de superficies de registro. Y asegurándose de que el o es pequeño día ir registrando constructor de superficie. Eso se ve bien. Entonces esto es básicamente una especie de clase auxiliar bien para que cuando nuestro bioma engendra, en realidad podamos ver, vale, aquí es donde engendró. Entonces eso es básicamente todo lo que es esto. Entonces vamos, en primer lugar, esto va a ser todo un montón de genéricos ahí también. Entonces esto va a ser C, extiende el conflicto constructor de superficie ocular. Y también como lo que se extiende un constructor de superficies, superficie construir historias constructor de superficies Ver, ahí tienes. Y luego también volviendo atrás. Y esta clase misma extiende también los pilares superficiales, ¿verdad? Entonces, antes que nada, vamos a conseguir unas flechas aquí. Simplemente implementar los métodos como vemos aquí. En realidad hemos extendido el constructor de superficies plus. Entonces por supuesto necesitamos el, necesitamos un método y ese va a ser el método de superficie construida. Esto se llama básicamente cuando el derrame de superficie real, podemos simplemente hacer clic en el medio del ratón o Controlar y luego hacer clic en la superficie. Y en realidad podemos ver eso en lugar de la superficie. Pero cuando bajamos, en realidad tenemos esta superficie construida. Este es un método abstracto un abstracto. Y esto es, como dije, espera cuando se genere lo real, digamos. Ahora lo que queremos dentro de aquí es en realidad que solo estábamos haciendo esta clase como una especie de, no es una clase envolvente más amplia en una especie de clase que solo funciona para que realmente podamos bloquear algo de una manera eficiente y fácil. Entonces vamos a conseguir un maderero aquí. Este es el log para j logger, will logger, y ese va a ser el gestor de log. No es el gestor de registro correcto. Gestor de Log, este punto se hace más largo, van. Entonces también tendremos una final privada y luego una perezosa de tipo S. Así que este es el Tipo que se da aquí, que tiene que extender la superficie abajo. Y ese sólo va a ser el constructor de superficies delegado. Y luego también un booleano privado llamado logueado, para que en realidad solo loguemos como unos y no cada vez que seguimos construyendo cosas. Y sí, así que entonces hagamos un bonito, un bonito constructor aquí. Entonces vamos a conseguir un proveedor de tipo S que va a ser el desenfoque de superficie delegado constructor de superficies. Y luego también un Kodak final con códec C. Y sólo vamos a llamar al super constructor. Entonces para la propia cláusula de constructor de superficies, y le vamos a dar el códec aquí. Y entonces este pilar de superficie delegada de punto es igual a desenfoque de superficie delegativa. También necesitamos importar el códec plus esto es e vienen Mo Geng serialización, muy importante. Y esto es, por supuesto, esto se debe a que se trata de un punto perezoso, perezoso. Sea lo que sea que pasemos en tu, su ego. O así, este es el constructor o montado. Y, y sólo necesitamos terminar esto. Y esto básicamente sólo sube por el camino de Hayward. Toma el constructor de superficies delegado. Sólo vamos a conseguir eso. Y luego vamos a llamar a la superficie de construcción. Y luego vamos a poner en cada parámetro ahí. En realidad ya podemos autocompletar eso. Eso es realmente bonito. Y esto entonces básicamente simplemente llama al constructor de superficie normal que se enfriará de todos modos. Pero como dije, aquí hay muchas partes móviles. Entonces no te preocupes si hay algo que está un poco poco claro. Vamos a pasar por ello. En primer lugar, clase por clase, y después vamos a ver cómo encajan todos. Entonces sólo vamos a decir, hey, si el registro no es cierto como cuando se construye la superficie, primer lugar, vamos a ponerla en verdad. Y luego vamos a simplemente a la pausa de trozo del camino del tronco. Y esto sólo va a ser el trozo en punto conseguir pasado. Por lo que este es sólo el trozo que actualmente va, que actualmente se está construyendo. Y luego vamos a decir logger dot info. Y luego sólo va a ser como actualmente generando en. Y entonces puedo hacer éste, sí, exactamente. Entrando a esta Ley. Y luego dos ordenadas aquí. Y sólo diremos biome dot, obtén nombre de registro. Y luego una pausa de partes. Conseguiré x inicio. Es que no existe porque no tenemos los caminos de trozo ahí dentro y pasamos el punto conseguir X almacenados. Y luego recortar caminos no se ponen y estrella, y, me pongo z, lo siento, z almacenado porque y es por supuesto la parte superior, mientras que el eje que va de abajo a arriba del mundo. Y ese es el constructor de servicios de registro. Como dije, es una especie de clase de ayudante en que es simplemente más fácil que realmente podamos revisar la terminal y la consola para ser como, OK, aquí es donde en realidad se ha generado un bioma nuestro. Y luego siguiente parte, lo que realmente queremos, ahora queremos que el constructor de superficies, bueno, tenga, realmente queremos un postor de superficie adecuado 42 que vamos a crear una nueva clase. Una vez más, sólo vamos a ser los constructores de superficie Mott. Importante. Esto es plural, ¿verdad? Tan múltiples. Y dentro de aquí, esto es algo que hemos visto muchas veces antes. En realidad vamos a crear un nuevo objeto de registro. Y este va a ser el registro final. Leer historia. Check. El ego de tipo constructor de superficies con un conflicto Constructor de superficie. Y este va a ser el valor predeterminado de registro. Entonces esto es porque como dije, sólo vamos a crear esto como una especie de pilar de superficie por defecto que vamos a utilizar para que siempre escupe las ordenadas. Y yo por supuesto también necesitaré hacer, también necesitamos entrar en nuestro registro y en realidad añadir aquí el nuevo registro por defecto. En realidad tenemos que sumar dos nuevos registros. Podemos hacer esto de inmediato. Entonces el primero que vamos a añadir es en realidad, vamos a añadir el Registro de tipo un bioma. Entonces este es el tipo donde tenemos, bueno, nuestros biomas, claro, ¿verdad? Entonces biomas, y esto se va a hacer la palabra clave def Registrar punto, crear, y luego forjar registros. Esto ya lo hemos visto muchas, muchas veces. Entonces esto, por supuesto, ya no debería ser un enigma. Vamos con este bioma. Y luego también, oops, y luego también un registro postergado final estático público de tipo constructor de superficie. Y luego un signo de interrogación porque realmente queremos especificar la configuración nosotros mismos. Ahora mismo sólo vamos a usar uno específico, pero como dije, vamos a llegar a eso en poco tiempo diferido Registrar punto. Y esto van a ser cuatro registros que los constructores de superficie. Y luego una vez más con el modelo Ahmad, el mal, ¿no? Entonces esos ya están aquí. Asegúrate siempre de ponerlos en la unidad. Esto es como algunas de las cosas que pueden pasar que te olvidas de eso y luego, bueno entonces todo el mundo está un poco desconcertado. Bueno, ¿por qué no funciona esto? Ya sabes, asegúrate de poner al lobo, el método del constructor de superficies de biomasa Register en el índice, en el registro interno. Y ahora en realidad ya podemos entrar aquí y decir registro, puntos, constructor de superficies, constructores de superficies registro DOT. Y queremos un nombre. Una vez más, esto va a ser registrando por defecto, como dije, solo va a ser nuestra predeterminada. Y luego necesitas un proveedor de un nuevo constructor de superficies. Y luego vamos a hacer el pilar del servicio de tala que acabamos de crear. Sin mecanografiar aquí. En lugar de aquí, en realidad necesitamos un proveedor también. Eso va a ser. Dot spiller default y luego una superficie por debajo o conflicto. Y vamos a elegir este campo aquí mismo. Déjame ver. Esto se va a ceder 37 a o.Eso no existe en realidad. Supongo que eso significa que en realidad sí tenemos un defecto aquí. Sé por qué porque esto no es la fotorresista superficial, conflictos superficiales, lo siento Diego. Y ahí está el campo, claro. ¿ Verdad? Y luego también asegúrate dentro de nuestro, de los constructores de superficie MOD plus para agregar nuestra confianza el viejo método de registro de vacío estático que luego podemos llamar dentro de aquí. Hagámoslo después de que se hayan hecho los fluidos. Se trata de un maud constructores de superficie registro DOT. Y entonces eso también se hace bien. ¿ Verdad? Y después de que éste haya sido creado, ahora podemos mirar hacia lo más. Y esa va a ser otra clase en lugar de bioma aquí. Y eso van a ser los constructores de superficie más grandes MOD. Ahora yo, tú podrías estar como, qué demonios está pasando aquí. Y no te preocupes por ello. Vamos a pasar por esto. Entonces esta es una clave de registro en realidad, ¿verdad? Por lo que esta es una clave de registro de tipo configurada Surface builder con un signo de interrogación. Y esto es, vamos a llamar a esto la superficie petrolera. Ahora esto se va a dejar claro muy pronto. Y esto va a ser igual al Registro e punto e o crear clave con el punto de registro configurado clave de constructor de superficie. Y luego una nueva ubicación de recursos con nuestro MC smart MOD ID y luego saldremos a la superficie. Entonces y como dije, hay múltiples pasos y caminos para pasar por esto. Vamos a pasar por esto y luego revisar cada uno de los componentes individualmente. Sí. Entonces ahora hay yo creo, dos cosas más que tenemos que hacer. Una cosa está dentro de nuestra característica. Características. Entonces esta es la asegura que podríamos querer agregar y en realidad no necesitamos eso todavía. En realidad podemos, en primer lugar, el microbioma. Entonces vayamos en nuestros biomas y creemos la clase de biomas modernos. Y esto va a ser son como clase magistral donde todos nuestros biomas están bien. Por lo que en realidad comenzamos con el objeto de registro final estático. Por lo que este ahora es el registro de biomas apropiados. Entonces este es tu, en realidad estamos definiendo nuestros biomas ahora. Y este va a ser el bioma petrolero. Entonces por supuesto que creamos petróleo y dije: Bueno, ¿por qué no hacer un bioma así como una vibra de tierras muertas que tiene como el petróleo Petrus. Pensé que esa fue una idea interesante es solo mostrar cómo funciona esto. Y luego te voy a mostrar cómo personalizar estas cosas a medida que avanzamos. Entonces por supuesto vamos a una vez más, todos los biomas de registro o registro y luego los biomas diferidos se registran. Y esto va a ser. El bioma de aceite. Y luego vamos a tener una llamada de método, vamos a enfriar, hacer bioma de aceite. Ahora, este es un método que aún no hemos creado, pero voy a terminar rápidamente el, el, lo que queremos para esto y luego vamos a ver, así que esto va a ser registros gentiles mundiales, dot configurado, constructor de superficies. Ahí vamos. Y luego conseguir vale rho. Entonces esto básicamente ahora va al constructor de superficies configurado. Probemos y formatear. Eso es un poco más bonito para que en realidad sea legible. Esas son como declaraciones realmente largas. En realidad no es tan fácil ponerlo todo aquí. Estos van a ser los filtros de superficie configurados mod. Entonces eso es lo que acabamos de hacer ahora con la superficie petrolera. Y podemos cerrar esto. Y entonces en realidad sólo uno. Sí. Y luego tenemos la profundidad y luego la escala. Como dije, vamos a crear el, el método justo después de esto, importar, el objeto de registro. Y entonces claro, vamos a tener un error porque el bioma de petróleo grande aún no existe. Entonces vamos a hacer una nueva estática privada, privada. Biofilm hará bioma de aceite con un proveedor final de tipo configurado constructor de superficies con un signo de interrogación una vez contra este constructor de superficies. Y luego un flotador. Y un flotador, no altura, pero van. Y luego necesitamos conseguir proveedor en como una clase función util Java. Y luego en algún lugar probablemente haya un, sí, ahí vamos. De acuerdo, ahora que en realidad ya funciona. Ahora por supuesto que aún no estamos regresando un bioma. Y este es también un método que definitivamente es lo que debes mirar a alguien más para esto. Entonces sólo voy a poner esto. Tan bio maker. Y si una vez más Controlamos el clic o el botón medio del ratón, en realidad llegamos a la clase de biomarcadores desde Minecraft. Y dentro de aquí en realidad tenemos estos métodos estáticos que tienen, que están disponibles para nosotros o son, se utilizan para hacer ciertos biomas, ¿verdad? Entonces aquí hacer bioma gigante, gigante, tigre gigante, ¿verdad? Y como puedes ver, aquí hay un montón de cosas. Y en realidad sólo vamos a copiar lo que hay en uno de esos y luego cambiarlo un poco. Entonces vamos a tomar el pantano y vamos a tomar eso como un, así como un básico, digamos. Y vamos a copiar todo lo que hay dentro de ella. Y entonces sólo lo vamos a pegar. Y vamos a conseguir algunos errores. Probablemente. Lo primero que queremos hacer aquí, la variante de colina. En nuestro caso, decidí no tener variante de Hill en nuestro bioma. Pero por supuesto que se puede, también se podría cambiar eso. Pero como dije, esto es sólo una, una breve introducción a los biomas para hacerlos como realmente específicos y hacerlos realmente clientes. Tienes que jugar con todas las herramientas que se te dan. Pero antes que nada, vamos a crear el bio continente. Veamos qué pasa aquí. Entonces. El top, en realidad vamos a hacer una configuración final de generación de biomas allí, yo constructor de puntos. Y este va a ser nuestro constructor de configuración de generación bioma. Y vamos a crear uno nuevo. Tan nuevo y en realidad obtenemos eso sugerido aquí, ese constructor de superficies de ancho, y ese es el constructor de superficies. Vamos a entregarlo aquí, ¿verdad? Eso lo hemos suministrado ahí dentro. Entonces esta es la superficie ahora mismo. Y esto entonces se va a usar en lugar de esta configuración de generación de bio aquí mismo. Entonces este es básicamente éste. También puedes simplemente cambiar esto. En realidad eso probablemente sea un poco más fácil. Entonces, sólo cambia este. Y entonces eso también funciona con el ego. Entonces esta es la configuración de generación de bioma. Sí. Ok, pero como, y como puedes ver, hay algunas cosas que ya pasaron aquí, ¿verdad? Por lo que las características del bioma predeterminado con mobs pasivas. Eso es muy interesante en todos. Bueno, primero que nada vayamos aquí abajo. Entonces esta es una declaración muy larga, como pueden ver, una muy larga, una declaración de retorno aquí. Entonces intentemos configurar un poco esto para que en realidad lo puedas ver un poco mejor. Entonces hay una cosa, como puedes ver, que en realidad tiene una, una flecha aquí. Y ese va a ser el get sky color con modificador de temperatura. Ahora, hay múltiples cosas que puedes hacer. Tengo que ser honesto. Lo más fácil personalmente es simplemente tomar este método privado que realmente calcula el color del cielo en base la temperatura y simplemente pegarlo en los biomas de la boca. Esto para mí, sólo la forma más fácil de hacer esto. Por supuesto, hay formas más inteligentes y puedes usar la reflexión para lo ofuscado esto y todo aquello. Realmente no importa. Creo que esto está totalmente bien y esto es, bueno, bueno, bueno, bien, bien. Está bien. Echemos un vistazo a este bioma de aceite ahora y veamos qué está pasando en realidad. Antes de hacer eso, en realidad por favor agregue otro método que va a ser este vacío público estático Registrar método aquí sin nada en él. Para que realmente podamos registrar el, los biomas también. Y deben estar registrados antes de este registro de biomas DOT. Por si acaso. Y ahora el biomarcador, vamos a deshacernos de ese y vamos a ver. Por lo que el mapa biomas. momento, esto simplemente agregaría un nuevo bioma llamado el bioma de aceite con esta superficie de aceite justo aquí. Pero hay una cosa más que es, no falta, pero es, bueno, realmente no hace nada en este momento en el tiempo, ¿verdad? Entonces, para que no haya nada realmente emocionante pasando básicamente solo va a crear un nuevo, un nuevo bioma de pantano. Porque eso es básicamente lo que tenemos, lo que hemos copiado aquí, ¿verdad? Y así la verdadera pregunta es, bueno, ¿dónde podemos conseguir una cosa lo siguiente que podemos cambiar? Y eso va a ser dentro de las características. Entonces, primero que nada agreguemos una nueva característica, una nueva clase. Por lo que esta va a ser la marcha sobre las características activadas. Es así como se va a enfriar la clase y dentro de tu trabajo realmente va a tener algunas características de configuración. Vamos a empezar con uno, luego añadir otro, y luego vamos a ver esto. Entonces esta es una estática pública. Característica de configuración final fue marca occidental de marca comercial. Y entonces vamos a llamar a esto el lago Euler. Ahora lo que he hecho y cómo he hecho, bueno, realmente esto digamos es que básicamente acabo tomar las y estas características de bioma por defecto, ¿verdad? Por lo que también son todas las características configuradas. Y una vez más, media mouse-click, realidad puedes entrar aquí. Y se puede ver que esta es una clase donde hay muchos métodos estáticos. En lugar de aquí tenemos Builder dot con comedero. Y esto siempre es lo que, lo que se está enfriando. Y si miramos, por ejemplo, en la madera, eso no está del todo bien en el Constructor. Y vemos que aquí suceden algunas cosas. Entonces, por ejemplo, podemos decir que realmente queremos lagos, ¿verdad? Entonces con lava y lagos de agua, derecha, amante modal x, has, probablemente has visto esos. Diga OK. Esto simplemente significa que tenemos que llamar con lagos de características y maestros lago agua. Y esa es una característica que en realidad tenemos una nueva característica de brazo. Entonces eso es interesante saber y así lo hacemos. Entonces hagamos registro, registro de puntos. Esto va a ser un registro mundial de género que configuran característica, ¿no? Vamos a llamar a esto petróleo tardío. Y esto va a ser una característica. Ya hemos visto esta característica con la generación. Y eso va a ser lago, ¿verdad? Eso es tan fácil como lo consigue con la configuración. Ahora característica en realidad tiene que importarse una configuración de ancho de punto Eagle Lake. Y en lugar de aquí necesitamos un nuevo bloque. Estado, un proveedor, una característica de sitio de bloque conflicto en realidad. Y eso se va a terminar. Entonces dentro de aquí, en realidad vamos a especificar OK, qué tipo de qué tipo de bloque o queremos. Por lo que realmente podemos ir al lago aquí. Y veremos que este método de registro es exactamente el mismo, exactamente lo mismo, pero es algo muy similar. Puedes ver tus nuevas características del Lago. Después puedes entrar a las características del lago. Y ahora esto es, esto es todo un montón de cosas que en realidad no nos interesan necesariamente. No obstante, en realidad se puede ver, ¿No hay una característica de lago es similar al agua. Aquí Estamos. Entonces está en características, no en función de eso, ese fue el tema. Y aquí realmente tienes lo absoluto. Entonces el método de registro al que acabamos de llamar, tienes exactamente el mismo método aquí mismo. Entonces básicamente podemos decir, ¿Sabes qué? Vamos a copiar esto, ¿verdad? Entonces, solo tomemos esto del lago. Simplemente copia el método de lodos y di, está bien, sólo vamos a copiar esto. Entonces vamos a ver, en realidad tenemos que conseguir este registro de punto de registro que vas, correcto, y entonces el resto ya está hecho. Entonces subastamos en realidad también queremos cambiar el nombre de aceite de lago, ¿verdad? Y entonces aquí tenemos intereses puntos estados, bloque de agua. Este es por supuesto, el bloque que queremos poner ahí dentro. Por lo que este será mod fluidos dot oil block en este caso, dot get yet default state porque necesitamos un estado por defecto en ella. Y entonces lo que parece ser el tema temas que no resolvemos esto, no te preocupes por ello. Registrarse. Y esto es porque tenemos nuestro, en realidad también necesitamos los gobernados, lo siento, los registros mundiales punto esto es características configuradas o son malvados? Calentador figurado. Y luego la fuga de petróleo, petróleo, van. Como pueden ver, en realidad podemos una especie de simplemente copiar el y eso es uno a muchos, eso es bueno. Y en realidad podemos simplemente copiar de las características. Y si hay cosas similares que quieres hacer, bueno, solo puedes tomarlas de las características aquí y modificarlas como quieras. Ahora esta es una característica trans. Pongamos esto como diez, sólo por el bien de la discusión en este momento. Y eso es algo que ahora podemos usar y poner en nuestro modelo. Ahora, ¿cómo podemos hacer esto? Vamos a entrar aquí, a nuestro microbioma y luego a cualquier lugar realmente. Pero pongámoslo aquí para que sepas dónde está esto, digamos, el constructor de ajustes de duración del bioma. Entonces esto es algo que siempre pasamos a estos métodos estáticos aquí. Lo que queremos es que queremos esta característica de ancho. Y entonces sólo podemos decir, bueno, en primer lugar, en qué etapa, así decimos generación y luego Lagos, declaración, lagos, ¿verdad? Este es el escenario a la una. Esto se suma. Y esto va a ser dentro de nuestras características configuradas mod, porque esta es una característica que queremos agregar y esta va a ser la aceitosa. Ahora mismo. Lo que es importante aquí es que por supuesto, probablemente tendría sentido hacer también otra clase llamada características de bioma de modo y luego tener los métodos estáticos sean geniales allí y tener esto ahí también. No obstante, ahora mismo, quiero mostrarte cómo realmente hacer que el, el bioma funcione y cualquiera, digamos refactorizar, tal vez incluso algunas cosas más eficientes son, no siempre es lo mejor estar preocupado por hacer todo si ineficiente al principio. Ahora, aquí abajo en el constructor de biomas, también tenemos muchas cosas que podemos hacer. Entonces por ejemplo, tenemos aquí la categoría de bioma que podemos elegir, ¿no? Entonces podemos decir, oh, qué categorías lo. Y así que digamos por ejemplo, bueno en realidad ya sabes qué, mantengamos la categoría en Swan. Eso está bien. Y luego tenemos el tipo de precipitación. Entonces si llueve, si su nariz o si no hay nada ahí, para que puedas cambiar aquí, entonces puedes cambiar la caída. Ahora, la mayoría de esas no están realmente comentadas, así que tienes que jugar un poco con esto, pero estas son muchas cosas que puedes cambiar aquí arriba, lo cual es bastante guay. Y sí, ahora en realidad hemos hecho mucho sufrimiento. Y esa es una clase más que tenemos que hacer. Y entonces realmente podemos ver este bioma en acción dentro de nuestro juego. Y esa es por supuesto la generación porque en este momento ni siquiera generaría. Ahora creamos el bioma MOD. Generación, te dije que era un poco más que, digamos que estamos acostumbrados. Y en esta clase realmente va a conseguir de nuevo el suscriptor móvil. Y vamos a tener que eventos como para suscribir eventos. El primero va a ser un vacío público estático, registrarse, registrarse, ningún ego con un evento de registro final, leer, historia, evento, registro, un Peregrino de superficie. Por lo que esto va a registrar un constructor de superficies llamado evento. Eso está bien. Y luego vamos a decir, voy a decir que voy a seguir acompañando esto otra vez. Entonces esto es sólo para que hagamos de esto una prioridad baja para que el orden en que hacemos estos pasos sea bien propicio para realmente lo que queremos. Y luego tenemos otro evento de suscripción, que va a ser una ciudad. Estableceríamos bioma final FML, configuración común, evento. Y aquí en realidad vamos a encola el trabajo. Por lo que esto simplemente se hace para que vuelva a disparar de una manera que funcione. ¿ Qué dirías? Para que se dispara en el orden correcto, digamos suscribir evento, ¿no? Y ahora necesitamos más métodos privados que sean una especie de métodos de ayuda. Y van a ser los biomas de registro. Por lo que esto va a registrar el bioma con una ubicación de recurso, bioma RL con estado de bloque. Entonces esos son tres bloques que en realidad especificamos. Entonces esos son los bloques que se van a utilizar dentro de este myo. Por lo que tenemos una ley superior. Vamos a tener un bloque de relleno y vamos a tener un bloque bajo el agua. Este es estado de bloque bajo el agua. El ego y la forma en que funciona esto, estado de suerte ya importante, eso es genial. Que te vayas. Y la forma en que funciona esto es que vamos a entrar al registro de puntos de registro. Una vez más se registra la palabra. Y esto se va a configurar superficie un constructor. Entonces le vamos a pasar la ubicación de recursos que le vamos a pasar, los constructores de superficie mod dot lobbing, default, dot get. Y entonces vamos a llamar a este método aquí Funk veinticuatro, veintinueve, veintinueve. Y dentro de aquí, hacemos un nuevo conflicto constructor de superficies. Entonces el brutal conflicto de plata Xenu, ahora mismo, Eso va a ser el bloque superior, el bloque inferior, y el bloque submarino. Y entonces también podemos, oops, eso no es lo que yo quería hacer. Y entonces también podemos conseguir que esto realmente aparezcan leyes terminadas. Este es el método de bioma de registro necesario para registrar el bioma. Y luego hay otro método privado y ese es el método llamado add biome. Y esto básicamente agrega el bioma al diccionario y a los gestores. Por lo que tenemos el bioma, tenemos el gerente de bioma, puntopioneros, MI implementado primer bio manager. Está bien. Mi OEM. Gerente. Este por tipo M. No es que esa no sea la correcta, supongo. Tipo de bioma. Vamos a teclear. De acuerdo, entonces no es el bio manager correcto. En realidad queremos este bio manager entonces. Sí, esa es la correcta. Queremos el bio manager de. ¿ A dónde se ha ido? Ahí está de Minecraft, que tipo de administrador de spam común. Tenemos un peso integral. Tenemos el tipo de punto diccionario bioma, y luego hacemos los tipos punto-punto para que podamos, así que cada cosa que se agrega después es simplemente. Y así cada parámetro que se agrega después del peso se toma entonces simplemente como un tipo con la clave de registro, bioma. Tan clave, así que esto es muy similar a lo que hemos hecho en la palabra generación, esa generación de árboles ya. Sólo eso. Ahora en lugar de sólo conseguir las claves, en realidad están creando una nueva, que registra claves de puntos biomas. Entonces esto es simplemente para que podamos crear un bioma y luego objetos. En realidad vamos a hacer esto adecuadamente requieren no nulo. Entonces esto sólo se asegura de que no haya excepción lanzada, algo así, que registra a los biomas punto conseguir calor por L. Así que este es el bioma que le pasa. Y entonces eso es genial. Y luego aquí abajo en realidad solo necesitamos agregar diccionario al tipo con la clave y los tipos. Para que ahora los tipos estén asociados con el bioma que hemos elegido. Y luego el bio manager. Esperemos que el correcto haya agregado bioma que le sumamos el tipo de bioma y luego una nueva entrada de bioma con la llave y el salario. ¿ Verdad? Y esos son los métodos que necesitábamos. Ahora dentro del trabajo de Enquear, aquí es donde agregamos el bioma y eso va a ser en biomes mod, dot oil, biome dot get. Entonces aquí mismo realmente tenemos que especificar el bioma que queremos. Entonces necesitamos el tipo bioma para que podamos tener caliente voluntad desierta. Ahí está el IC heredado. Vamos a hacer un bioma cálido. Escogamos el peso de un 100 y luego sumamos el tipo. Entonces tipo, Caliente, Muerto, muerto y seco. Ahora, lo que también podemos hacer, en lugar de tener siempre que escribir esto, en realidad podemos importar esto como unos estáticos realmente podemos decir importar estática, ese Minecraft o ningún micrófono, directorio bioma común. Y luego, y luego simplemente hacer tipo y luego una estrella, van a tienda. Y entonces lo que podemos hacer aquí es simplemente escribir caliente y muerto y seco así. Eso es un poco más fácil. En lugar de nuestro método Registrar, queremos llamar al bioma de registro. Y ahí tenemos que decir una vez más un constructor de superficies de petróleo de la superficie punto-punto getLocation porque hay una ubicación de recursos, ¿verdad? Y lo que vamos a hacer es pertenecer a arena de alma detenida. Sólo por el bien de la discusión en este momento, sólo vamos a crear algo bloqueado. Detengan la arena, digamos. Y también bloques punto. Ese es el submarino también arena. Vamos, busquemos sandalias. Get equals say muy importante, ese es el estado por defecto porque queremos los estados Brock y no los bloques reales ahí, ¿verdad? Y ahora, si no me equivoco, se debe hacer todo. Ahora hay por supuesto un montón de piezas móviles. Entonces lo que vamos a hacer es que sólo vamos a ejecutar esto, probarlo, y vamos a ver qué pasa. En realidad estoy bastante seguro de que esto va a funcionar. Pero aún así, también podría haber siempre, ya sabes, alguna cosa pequeña. Porque como ya he dicho antes, en realidad es un tema mucho más avanzado que, creo que casi todo lo que hemos cubierto antes. Creo que los árboles estaban como a lo largo de la línea, pero sí. Entonces en realidad conseguimos algo aquí. Ese es un buen comienzo. Ahora veamos si el juego realmente comienza también. Se ve así. Bueno, eso es un buen primer comienzo, y entonces creemos un nuevo mundo. Entonces llamemos a este 1-2-3 creativo y solo, sí, bueno, veamos si también crea un mundo nuevo. Y por supuesto sería tan fascinante y también genial. Todo lo que trabaja en el primer intento siempre es una buena señal. ¿ Todo bien? De acuerdo, entonces en realidad empezamos y ahí vamos. En realidad ya pueden ver lo que hemos creado. Entonces este es el, cuando vamos por aquí, bien, esto son los aviones de microondas, como se puede ver aquí mismo, tasa de microondas río. Entonces vamos por aquí y este es m puntúa bioma petrolero. Ahí vamos. Y si pasamos por esto, ojalá aire lo sea, en realidad ya tenemos esos voluntad estos lagos petroleros que generan dentro de la bio, por ejemplo. ¿ Verdad? Entonces esta es idea básica de cómo hacer una bio. Ahora, salgamos y realmente creemos una segunda característica solo con fines de demostración debido a las características. Entonces esto estaría de lado de, vamos a cerrar todo en este momento son interminables aquí. Esto sería dentro de la característica MOD configurar las características. Porque las características van a ser lo único que va a ser realmente poderoso. Como ya he dicho, puedes entrar en funciones, ¿verdad? Por lo que micro características aquí y en realidad ver un montón de características que están presentes. Y se pueden sumar esos al más bioma entonces, ¿no? Entonces en lugar de año, por ejemplo, hay algunas cosas que quizá no queramos realmente, ¿verdad? Entonces tal vez no queremos, no queremos ningún modo pasivo. A lo mejor decimos, ya sabes, en realidad no quiero sobrecargado o está aquí, o no quiero la generación de hongos, no quiero pantano. Puedes sacar todo esto de aquí y solo usar tus propias características. Eso por supuesto funciona. Pero sí, esto definitivamente es algo que tienes que jugar con un poco. Y hay tantas, digamos, capas que puedes descubrir con esto y tantas cosas que puedes hacer con esto que es, quiero decir, es casi, es casi inagotable. Ahora, vamos a crear una nueva, una nueva. La cosa aquí que acabo de pensar que va a ser como una caja de cobre spread. Entonces eso sólo van a ser unas pocas, un par de cuadras, como el trono en algún lugar del, en el bioma. Y esto va a ser un conflicto de características de clúster de bloques. Ahora, la forma en que me di cuenta de esto, te voy a mostrar en tan solo un momento. Pero esto va a ser un conflicto de propagación del cobre. Conflicto. Ahí lo tienes. Esto va a ser un nuevo conflicto de clúster de bloques. Cada conflicto de Builder, nuevo bloque simple stateProvider. Y ahí íbamos a decir mon block Sadat, bloque de cobre, punto, punto, get default state. Y entonces aquí tenemos un nuevo placer de bloque simple. Y eso va a ser algo que no eres. Este. Sube, sí, intenta 25 y luego construye. Hermosa. Y entonces aquí en realidad tenemos la característica configurada porque necesitamos un conflicto o que esto va a ser un configurador Fisher. Una vez más, signo de interrogación, signo de interrogación. Este va a ser el spread del bloque de cobre. Y este es una vez más el registro de punto de registro con un registro mundial configurado. Este es fresco, esparcido de cobre. Y luego vamos a tener un punto de función, parche aleatorio. Por lo que también hay muchas características aquí. Por lo que en función, hay diferentes tipos de característica configurada. las opciones que tenemos, tenemos lo mismo que hemos visto con la colocación de los árboles, que también hay que jugar con un poco. Y luego dentro de aquí, en realidad quieres la función de clúster de bloques. Por eso el conflicto, por eso ya hice el conflicto. Y luego colocación de ancho, solo vamos a ahorrar colocación. Posibilidad de punto de colocación con una nueva configuración de chance de digamos 200. Y también vamos a conseguir esto aquí abajo sólo para un poquito mejor legibilidad. Y no olvides el punto y coma en este momento esto por supuesto que aún no está. Tenemos que entrar aquí. Podemos simplemente copiar esto, digamos y luego decir punto de declaración. Digamos que se trata de estructuras superficiales. Podría ser atendido, apresurado, podría ser otra cosa. Y luego decir el spread del bloque de cobre y así ya es todo lo que necesitas agregar. Digamos que otra función de configuración. El modo en que he averiguado esto es básicamente así dentro de la característica y por supuesto tener los diferentes tipos de cosas, cómo engendran. Entonces, por ejemplo, ya sabes, ya sabes cómo los bloques de piedra resplandor engendran ahí dentro, dentro de un extremo en lugar de inferior. Y luego ves qué más? Hay algunos, por ejemplo, el bambú Wow, que engendra peor la superficie del pecho de los huesos. Por lo que hay una gran cantidad de características que cómo engendran. Y en la colocación, tienes algo similar a esto también. Por lo que ahí puedes jugar con cómo se generan las características de, cómo te configuraron. Realmente es mucho juicio y error aquí. Y probando. Una vez más, aconsejar mirar ejemplos en en, en GitHub, correcto, por cómo otras personas han hecho cosas similares. Porque esto va a ser, es solo una idea realmente inteligente mirar cómo lo han hecho otras personas. Y para tratar de jugar un poco con él, di, vale, ¿cómo funciona eso? No estoy seguro de cómo funciona esto. Sí. Y eso debería entonces esa es una idea realmente inteligente para jugar un poco con eso. Y luego veamos si en realidad cuando cargamos un mundo nuevo. Entonces vamos a crear un mundo nuevo. ¿ Será ése? Por ahora? ¿Radiativo? Sí. Y ver cuando lo nuevo, cuando los biomas vuelven a engendrar, si eso realmente existe el cobre esparcido ahí. Habrá una especie de agradable. Ok, vamos a ver. Ah, ahí está. De acuerdo, hay un bioma y por cierto, también podemos bajar aquí y mirar la carrera. En realidad ves este con el que estás encerrado, lo siento, ese no es el ion de la entidad. Y en realidad quería la generación. Acabo de ver el tipo de coordenadas y estaba como, oh, ahí está. Ahora, realmente es mucho antes de eso. Actualmente se está generando bioma de aceite MCT en menos 28 y menos 272. Entonces de esa manera en realidad puedes ver y decir, bueno, eso es más o menos exactamente donde estamos. Y lanzemos, pasemos por esto y veamos si hay algún diferencial de cobre. ¿ Están ahí, están ahí es el primero. Por lo que en realidad son bastante raras todas las cosas consideradas. Y se puede hacer un aún más raro o no, o más común. Y esto es simplemente lo que se me ocurrió como una especie de, como otro ejemplo de la característica configurada que se puede agregar. Como dije, lo son, hay tantas cosas que puedes hacer con ello. Y hay tantos, bueno, digamos perillas que puedes girar en todo tipo de direcciones que son por las que solo tienes que pasar un poco. Pruebe las características predeterminadas. Prueba tus propias características. Juega con todos los números con los que puedes jugar y simplemente, solo sigue experimentando. Pero por lo general esto al menos te consigue una, una estimación aproximada de cómo crear un bioma. Ahora, vamos también, sólo para resumir, vamos a pasar por cada uno de los pasos que hemos hecho. Entonces la idea del constructor de superficie de tala Fue sólo para que podamos realmente salir puesto y donde el, donde nuestro bioma realmente se genera en. Esta es la idea de esta clase simplemente para que tengamos una forma de saber. Está bien, ahí está el bioma, vamos a volar por ahí. Es mucho más fácil tanto para propósitos de depuración como, ya sabes, probablemente, ya sabes, en adelante, si realmente publicara este mod, probablemente pondría esto a depurar o tal vez incluso. En realidad quiero publicar esto, tal vez incluso desactivar el inicio de sesión aquí mismo, simplemente por el hecho de que tal vez no quiero que la gente mire en la consola y luego diga: Oh, ahí está el bioma. Pero por supuesto, no hace tanta diferencia. No, en realidad no. Ahora, Entonces teníamos un constructor de superficies configurado. Ahora este es el esto es básicamente una clave para esto para la superficie petrolera. Por lo que tenemos un constructor de superficies configurado y luego tenemos nuestro constructor de superficies aquí. Entonces la diferencia ahí simplemente es que hay una, una de ellas es con básicamente de configuración sin configuración. Eso es una especie de lo que el nombre implica tasa. Y luego se usan de diferentes maneras. Entonces cuando entramos, por ejemplo, cuando podemos ver bien, podemos hacer clic con el botón derecho en esto y decir, hey, encontrar usos. Entonces podemos ver hey, ¿dónde se usa esto? Por ejemplo, se utiliza aquí dentro del make the make oil biome. Y entonces podemos decir, vale, ¿qué significa eso, qué significa eso? Y decimos, bueno, este es un constructor de superficies configurado y éste es un constructor de superficies de figuras. Y aquí es exactamente donde entra esta superficie de petróleo y dice: Está bien, pero es como que puedo conseguir eso. Eso tiene sentido. Entonces preguntamos, bueno, ¿dónde entró este default de registro? Y se ve por def 71. (Minecraft) y sonidos personalizados: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a hablar de eventos sonoros y cómo hacer nuestros propios sonidos personalizados, ¿verdad? Entonces lo primero que necesitamos para entrar al archivo de registro donde tenemos todos nuestros registros diferidos y crear un nuevo registro diferido. Esta vez por el tipo de eventos sonoros o algún evento más bien. Y vamos a llamar a esto eventos sonoros. Y esto será igual a un diferido Registrar punto crear registros dot eventos de sonido, MC, smart MOD ID, ¿verdad? Una vez más, no te olvides de realmente registrado aquí abajo con el evento fue. De lo contrario no funcionará. Y lo siguiente, vamos a necesitar un nuevo paquete. Y esto va a ser dentro de las partituras de MC, un nuevo paquete, viejos sonidos. Ahora lo vamos a llamar Sonido singular. Y vamos a crear una nueva clase ahí dentro llamada eventos sonoros Ahmad, eventos sonoros, ese ego. Y esto, por supuesto que hemos visto muchas veces. Vamos a, en primer lugar crear un método de registro de vacío estático público. Y esto se va a llamar dentro de nuestras ediciones de lema de registro aquí no importa realmente dónde esté. Sí, creo que aquí abajo como modo fino eventos de sonido DOT registrar. Y entonces podemos crear nuestro objeto de registro. Entonces esto va a ser un poco diferente, pero no del todo, no tan diferente como quizá algunas de las otras cosas. Entonces en primer lugar, por supuesto, público estático, final, objeto de registro de tipo, evento de sonido. Vamos a llamar a esto los sonidos de prueba. O en realidad, llamémoslo, llamémoslo pequeña explosión, porque eso es lo que he preparado. Y esto es por supuesto, igual a los eventos de sonido de punto de registro, registro DOT. Y ahora lo que vamos a poner, en primer lugar, por supuesto, el, llamémoslo pequeña explosión otra vez. Y otro oído proveedor es un poco diferente a lo que estamos acostumbrados. Este va a ser un nuevo evento sonoro y esto tiene que ser net Minecraft util, muy importante. Y para hacer esto, en realidad necesitamos una nueva ubicación de recursos. Entonces esto es un poco diferente a lo que estamos acostumbrados. Y esta ubicación de recursos, por supuesto, comienza con el MOD ID y termina con el nombre, que sólo va a ser pequeña explosión otra vez. Entonces el nombre aquí y el nombre aquí deben ser los mismos. Se puede hacer una cuerda privada en teoría y hacer eso también. Ya sabes, hay un, hay un punto a decir. A lo mejor, también puedes hacer tal vez un método para esto. Pero sólo lo vamos a hacer así. Está bastante bien así. Y sin embargo ya es así como se encuentra realmente el sonido. Entonces lo hemos registrado, ahora está en el juego, sin embargo, no tenemos un archivo ese lugar. Entonces eso es lo siguiente que tenemos que hacer. Y para eso necesitamos ir a los recursos, activos. O peor, o tu ID y crea un nuevo directorio llamado Sonidos, esta vez plural. Muy importante. Y ahí dentro tenemos que poner el expediente. Ahora he suministrado el pequeño punto de explosión OGG como archivo. Simplemente vamos a meter eso ahí dentro. Tiene que ser un archivo OGG, así que de lo contrario no funcionará. Y también necesitamos, y esto es básicamente a nivel de curso MC aquí, necesitamos un nuevo archivo JSON y eso va a ser sonidos dot JSON. Y voy a copiar algo rápidamente. En realidad, no necesitamos una copia algo terminado. En realidad no es tan complicado. Acabamos de iniciar el archivo JSON y después tenemos el nombre de nuestra clave. Por lo que esto sería pequeña explosión de subrayado, luego un colon, y luego corchetes rizados. En lugar de eso, tenemos una categoría. Para nuestros propósitos, estamos usando bloques. Te voy a mostrar después de que terminemos con ese archivo JSON, te voy a mostrar cuáles son las categorías. Y vamos a tener un subtítulo. Se trata de mc poros puntosonido de prueba. Entonces esto sería algo que pondrías en lo de dentro del lenguaje. El subtítulo es lo que se muestra si tienes subtítulos activados y luego mostrados en un chat. Y luego suena, esta es una lista. Abrumadamente lo puso en una cosa y esa va a ser Mc coerce o esa es en realidad nuestra prueba de alguna manera. En realidad sería pequeña explosión. Y dentro de aquí también tenemos pequeña explosión. Entonces es importante que el nombre aquí y el nombre aquí por supuesto sea el mismo. Personalmente. Es decir, esto no tiene por qué ser lo mismo. Personalmente. Creo que tiene más sentido tener la clave y el nombre sonoro. Y todo tiene el mismo nombre. Sólo para que tengas un poco de consistencia aquí. Sí, y si quieres, por ejemplo, añadir otros nuevos, solo añadimos otro. Y luego, por ejemplo, ya sabes, una gran explosión y luego satélite entonces, y luego así sucesivamente y demás. Simplemente puedes copiar este sobre. Y sí, eso ya es todo lo que hay que hacer. Ahora por supuesto, necesitamos tener de alguna manera esta explosión o se escuche el sonido. Y lo que vamos a hacer simplemente, vamos a crear un bloque de cobre. Entonces la idea es que digamos por ejemplo, vamos a crear un nuevo bloque, una clase aquí dentro de nuestro paquete de bloques. Vamos a llamar a esto el, vamos a hacer pantalones cortos de cobre. Y esto se va a extender bloque. Entonces esto es algo que es, ese no es el bloque correcto. De nuevo, va a ser bloque neto de Minecraft. Se van. Y luego pasemos el cursor sobre él y creemos aquí el constructor. Y luego en nuestros bloques modelo, lugar de hacer un nuevo bloque aquí, vamos a hacer un nuevo papel o así esto es básicamente lo mismo que hemos visto con el elemento mod donde hemos hecho la manzana corporativa. A, Bueno, tenemos una clase extra aquí. Y lo vamos a hacer para que cuando se destruya el bloque, luego un lugar sonoro. Entonces este es un método que podemos anular, que está en jugador destruir. Y dentro de ella, vamos a tocar este sonido. Entonces, en primer lugar, lo que queremos comprobar es si este mundo que entra ahí es remoto o no. Esto básicamente solo comprueba, oye, ¿es servidor? ¿ Dónde no es servidor? Y queremos tocar esto, en este caso, si no es del lado del servidor, porque queremos que solo el jugador que ha roto el bloque escuche realmente el sonido. De lo contrario, cada, podría ser que cada jugador dentro del servidor escuchó, escucha el sonido en cierta distancia o radio. Por supuesto, eso es algo que podría funcionar. Pero esto no es lo que hacemos y solo te voy a mostrar esto rápidamente. Entonces mundo en este mundo, en este caso, y ahí tenemos un método de sonido de juego. Y nosotros, como se puede ver, el jugador aquí es nula si nula al jugador y simplemente va a jugar en esa posición. Y luego va a jugar si el mundo es un mundo servidor, va a jugar para todos y un cierto radio. Si el jugador realmente está ahí dentro, y entonces va a jugar para todos excepto el Jugador. Tengo un gran recurso en eso. En realidad, la documentación oficial para el sonido es realmente buena. Entonces voy a, por supuesto, tener eso como recurso disponible. Pero esta jugada un poco, no vamos a usar el mundo aquí. En realidad vamos a usar un punto minecraft y getInstancia. Y luego vamos a conseguir al jugador. Y vamos a tocar el sonido así. Entonces eso se va a colocar sonido y este va a ser el sonido dentro. Por lo que necesitamos el evento sembrado que simplemente va a ser eventos de sonido mod. Pequeña explosión, punto, get. Y entonces necesitamos un volumen que va a ser uno y el pitch también va a ser uno. Y va a decir, ooh, vamos a comprobar si esto es nulo o no. Podemos hacer esto, no necesariamente necesitamos hacerlo. Entonces se puede, por supuesto, para la superficie, no es necesariamente todo tan importante. Sí, dejémoslo así por ahora. Y en teoría, si todo ha funcionado correctamente y no he olvidado nada y no creo que lo haya hecho. Deberíamos escuchar una pequeña explosión cuando destruimos el cobre o la cerradura. Sí. Por lo que me interesa mucho si esto ya ha funcionado o no, pero creo que debería. Yo sí creo que todo está ahí dentro. Entonces, en realidad no es tan complicado. Entonces en general, creo que agregar otros nuevos es, quiero decir, argumentaría casi más fácil que agregar nuevos artículos o bloques. Como acaba de entrar en este mundo aquí. Y veamos qué va a pasar. Espero que no sea demasiado ruidoso. De lo contrario, si es demasiado ruidoso para mí, sólo voy a bajarlo un poco para ti. Consigamos una tolva o un bloque, ¿verdad? Para que esos se alejen de esos. La mayoría de los búfalos. Y vamos a ver. Entonces vamos a romperlo y vamos a ver qué pasa. Bueno, ciertamente lo escuché y definitivamente no es demasiado ruidoso. En realidad es un buen volumen. ¿Verdad? Y eso es así que eso es básicamente todo lo que hay a ello. Ni siquiera respondí. Yo estoy bien. Y ahí tienes. Entonces sí, eso es todo lo que hay a ello. Entonces así es lo fácil que puede ser agregar nuevos sonidos a Minecraft y también tocarlos básicamente cuando algo, hábitos particulares. Entonces sí, eso fue básicamente. Espero que eso fuera informativo para usted. Si hay alguna pregunta, por supuesto, siéntase libre de preguntar. Yo por supuesto, siempre apreciaría una opinión o una calificación. Y, uh, sí. 72. (Minecraft) creación de Enchantments personalizados: Muy bien, bienvenido de nuevo al Minecraft. Peor. Y en esta conferencia vamos a mirar a crear nuestro propio encantamiento. Entonces esto fue en realidad un, algo que un estudiante preguntó y me pareció un tema interesante. Y bueno, por eso estamos haciendo esta conferencia ahora. Por lo que este va a ser un encantamiento muy específico en este caso. Entonces en realidad también vamos a crear un nuevo, digamos, grupo de ítems para ello. Pero la forma general que hacemos esta medición es en realidad cómo harías cualquier IN afilado. Para que pueda, Deberías ser capaz de simplemente abstraerlo o digamos generalizar a ambientes normales si quieres. Entonces lo primero que vamos a crear aquí es un nuevo paquete como tantas veces. Y vamos a llamar a esto menta Incheon, asegurándonos de que lo leamos correctamente. Esa no es la palabra más fácil, ¿verdad? Y luego queremos tener dos nuevas clases. Una de ellas es el encantamiento en sí. Esto va a igualar el encantamiento contundente. Y la idea de esto es simplemente que, Bueno, tenemos un, tendremos un club pronto, ¿verdad? Tan como un arma como un arma contundente. Y en lugar de tener nitidez en ella, queremos franqueza en ella. Es decir, ese es básicamente el viejo todo lo que necesitas saber como la realización de esto. Y luego queremos otra clase que va a ser encantamientos Mott. Y esto es por supuesto también en el paquete de encantamientos, ¿no? Entonces lo primero es lo primero, el encantamiento contundente necesita ser extendido. Y necesitamos extender esto con encantamiento. Hay por supuesto, tiene sentido ya que esto es un encantamiento. Y lo que vamos a hacer es que vamos a leer el, leer el constructor. Y entonces lo que vamos a hacer es que vamos a hacer clic en el medio del ratón en el encantamiento. Entonces vamos a llegar al encantamiento, y esta es la clase básica de Charlton. Y ya te he mostrado este truco antes, pero una vez más, si sostienes el Control H, podemos ver a todos los Campeones que están presentes en el juego, incluyendo los nuestros, pero estos son todos los que se añaden por minecraft. Y estamos buscando el it es el encantamiento dañado. Porque lo que vamos a hacer es que vamos a ser realmente astuto. Simplemente vamos a copiar todo en este encantamiento de daños. Y lo vamos a pegar aquí porque tenemos que asegurarnos de que no tenemos y no tenemos dos constructores aquí. Y vamos a tomar a los miembros y ponerlos arriba. Y este tipo tendrá que agregarse al constructor. Y hay una cosa más que tenemos que hacer. En realidad necesitamos barajar un poco alrededor de los perímetros en el constructor. Por lo que el tipo dañado debe ser después del tipo encantamiento. Y entonces las ranuras deberían ser en realidad en lugar de un puro, un puro. Nosotros decimos array. En realidad hacemos tres puntos para que todo lo que se da después del tipo de daño cuente como una ranura. Entonces lo grandioso es que también sólo podemos dar una ranura en ese tipo de idea. Y ahora el resto de esto. Por supuesto que se puede cambiar. Por ejemplo, nivel mX, ya sabes, esto es básicamente como la nitidez. Tienes chartreuse 12345. Podríamos hacer diez u 11. Y estas inestabilidades, como se puede ver, hay estas funciones bien, bastante pequeñas. Matemáticas, matemáticas. ¿ Qué dirías cálculos, esa es la palabra, verdad? Entonces cálculos, también se puede decir calcular el daño por criatura. Entonces hay algunas cosas que puedes hacer. Y también tenemos esto puede aplicar, y esto puede aplicarse a un artículo de hacha u otra cosa. Ahora vamos a ver eso lo suficientemente pronto. Y también tenemos un poco de juego juntos. Esto simplemente regresa. Entonces se le da un encantamiento y luego dice, bien puede desencantar. Y así la mezcla y Troutman y luego dado en breve aquí se apliquen juntos. Esa es básicamente la idea de este método. Y luego aquí abajo, sólo podemos limpiar un poco esto y seguir. Entidad dañada simplemente tiene un, como se puede ver, frío cada vez que soy opus daño con un artículo que tiene esto en común en él. Y entonces podríamos, en teoría también hacer algo más aquí. Por lo que en realidad hay muchas cosas que podemos hacer con este instrumento. No necesitamos estos nombres de daño porque eso no se usa en realidad. Y sí, así que esta es la forma en que podemos yo por cierto, animaría también a que solo a veces cuando no sabes a dónde ir, solo copiar una clase de Minecraft y luego cambiarla un poco porque mientras funcione, está bien. Sí. Entonces esto está bien y el Chatman de Londres está casi completamente hecho. Lo que ahora necesitamos es, ahora necesitamos agregar esto a nuestros chamanes modernos. Pero primero, necesitamos crear el nuevo elemento. Y el nuevo artículo vamos a entrar en artículo y luego vamos a crear un nuevo paquete ahí dentro. Vamos a llamar a esta arma. Ahora bien, esta es realmente una elección estilística. Realmente no tienes que hacer esto, pero personalmente creo que tiene sentido y vamos a llamar a esto el tema contundente. Ahora, el elemento de mezcla va a ser muy similar al elemento de espada. Y podemos simplemente mirar esto presionando turno, control de turnos f Entonces podemos realmente buscar en todas partes. Y luego si vamos al alcance y luego por ejemplo, buscamos el artículo de clasificación, entonces vamos a llegar a, bueno, primer lugar, nuestras cosas, pero en algún momento también vamos a encontrar el artículo de la espada. Bueno, Por ejemplo aquí, por lo que podemos simplemente hacer clic en medio del ratón y luego estamos en ordenar elemento. Entonces, mientras lleguemos a la clase de artículo de ordenar, entonces todo está bien. Y como se puede ver, esto extiende el elemento escalonado e implementa el IV punible. Ahora me desvanezco problemas por supuesto es justo eso. Cuando lo balanceas de repente se ha ido. Eso es que me desvanezco burbuja y el elemento en niveles, podemos mirar en nuestros artículos mod y pensar de nuevo, esto es hace bastante tiempo, pero en realidad hemos creado un nivel de artículo simulado. Bueno, eso fue cobre. Tenemos un material de armadura y también teníamos este nivel de objeto de modo. Nosotros somos, tuvimos diferentes. Entonces creamos cobre, correcto, con niveles de cosecha y usos Max y todo eso. Y solo podemos crear un nuevo tipo de artículo, ¿verdad? Entonces en lugar de una especie, lo vamos a hacer un artículo contundente. Y vamos a extender ambos ítem por niveles y también implementar los problemas de i desaparecer. Por lo que vamos a extender I Nivel I, tu artículo en niveles. Oh, no es hielo. Artículo de apenas niveles. Bueno, ahí tienes. Por supuesto. Yo lo estoy extendiendo. Van implementos. Yo he castigado un go. Después pasamos el cursor sobre él y vamos a crear un constructor que coincida con super. Y esto debería, bueno, vamos a cambiar esto de todos modos, porque una vez más, sólo vamos a copiar todo el artículo de clasificación plus. Y entonces en realidad vamos a reemplazar todo. Simplemente vamos a cambiar esto para ser objeto agrupado. Y vamos a salvar esto y entonces en realidad no deberíamos conseguir ninguna flechas. No obstante, hay algunas cosas que tenemos que mirar. Y así por ejemplo aquí, ya sabes, consigue destruir velocidad. Entonces si no queremos que las telarañas sean rápidas para este tipo de artículo que podríamos cambiar esto. ¿ Y qué más hay? Hay algunos constructores, daños de ataque y modificadores de libros de texto tecnológicos que son realidad o podríamos simplemente dejarlo así porque al final del día eso está totalmente bien. Y creo que, sí, en realidad, esto es todo lo que tenemos que hacer. Ahora solo necesitamos crear un nuevo elemento en nuestra clase mod Items. Y así sólo vamos a meter esto. Suba, digamos entre la espada y el pico, sólo vamos a copiar la espada por ahora. Vamos a llamar a esto el Club de cobre. Yo, por cierto, he creado una nueva, lo que decimos, una nueva textura para ello. Y tengo que ser honesto, todas las texturas que he creado hasta ahora, en realidad me pareció que esto era realmente bueno. Me pareció que esto era realmente agradable. ¿ De acuerdo? Por supuesto, el Club de cobre aún no se ha creado como, como clase. Pero esto va a ser casi como las otras clases de artículos simplemente aumentarán el costo. Lub de cobre. Por supuesto también podrías convertirlo en un nuevo artículo de plomería que también funcionaría. Pero creo que en este caso, tiene sentido hacerlo, digamos explícito. Sólo vamos a igualar esto. Y esto es todo lo que tenemos que hacer. Guarda esto. Y ahí vamos. Y de repente funciona. Y así esto es entre ahí y allá. Y ahora simplemente tenemos que volver al donde se mezcla, rehuida. Y aquí abajo, tuvimos el primero de todos pueden aplicar juntos. Entonces esto es por supuesto, una, una vez más, una elección que hay que hacer. ¿ De acuerdo? ¿ Qué puede pasar? Entonces, en teoría, si tienes un encantamiento de nitidez, no puedes ponerle otra brevedad y Chapman a eso. Eso es básicamente lo que dice esto porque anteriormente se trataba de un encantamiento dañado. Y podemos decir, bueno, quiero decir, realmente no queremos tener eso ahí también. Entonces lo que entonces podemos hacer es, bueno, ya sabes, no queremos que esto se aplique con un encantamiento dañado y no queremos esto. Entonces si se pone otro encantamiento ahí, no queremos que esto quede encantado con agrupado. Artículo no planeado, es contundente y chapman. Correcto. Entonces si es un daño en el chocolate o un encantamiento contundente, entonces no podemos aplicar esto junto con otra rubia y Shannon. Esa es básicamente la idea aquí. Y aquí en la mano aplicar, vamos a poner en el artículo de error ahora, nuestro propio artículo creado a nivel. Correcto. Y sí creo que eso es todo en el año que necesitábamos cambiar. Por supuesto, una vez más, si quieres tener más niveles o menos niveles, ahora quieres ir y decir hacer diez o algo así. Y por supuesto siéntete libre de hacer eso. Pero nos vamos a quedar con cinco ahora mismo. Y ahora por fin estamos llegando a la clase de encantamientos de modo. Y antes de que podamos hacer esto, por supuesto, necesitamos ir a nuestro registro y crear a nuestro buen viejo amigo un nuevo registro diferido. Al igual que Sin un registro diferente, no sería un buen video. Siento que, ya sabes, es un buen video cuando creamos el registro de cuatro, esta vez de bucles apretados de tipo encantamiento, por supuesto, en canto Mint, ahí tienes. Vamos a tirar de este encantamiento con una S al final. Y luego vamos a hacer un punto de registro diferente V8. O registra que encantamientos. Mc, coerce mod, mod ID. Buenos viejos favoritos. Y sólo vamos a sumar esto en la parte inferior en el registro DOT de Chopin con par más la tarifa. Y ahora podemos crear nuestro objeto de registro. Entonces vamos a tener una estática pública, objetos de registro final de tipo encantamiento y minutos. Y esto se va a llamar nublado nece. Va a ser igual a puntos de registro en ese registro de Chopin. Y vamos a darle el nombre de franqueza. Por supuesto. Hoy estás bastante mezclado. En nuevo encantamiento franqueza. ¿ No es genial? Y entonces necesitamos precisar algunas cosas. Entonces una de las cosas es la rareza. Sólo hagámoslo común. Entonces esto es justo con qué frecuencia aparecería. A un costado de la mesa. Vamos a tener puntiagudos modernos, lo siento, esto es o, esto aún no existe. De acuerdo, sólo vamos a ignorarlo ahora mismo. Después tenemos el tipo dañado, y luego tenemos ranura para equipos E. Y este va a ser sombrero principal. Ahora como pueden ver, en realidad hemos dejado uno de esto abierto aquí. Y este sería el tipo de encantamiento porque también vamos a crear un Sharman para escribir aquí. Y va a haber un tipo de encantamiento final estático privado, almuerzo, tipo NAS. Ahora la idea del tipo, y vamos a rápidamente también entró para importar el tipo encantamiento. El tipo interino no es suficiente. Y básicamente dice Así que veamos, por ejemplo, al Considerando que no hay un arma de daño, ¿verdad? Devolver verdadero si esto se puede pasar, desencanto no puede ser increíble. Si el dado un objeto, ¿este encantamiento puede estar en Charlotte en este artículo? Y la idea es que, bueno, un arma, uno se puede cargar a un objeto de espada y una excavadora puede ser el elemento de herramienta y así sucesivamente y así sucesivamente. Ahora. Y esto es básicamente lo que estamos haciendo con su tipo de franqueza. Sólo estamos diciendo tipo de encantamiento, dot-dot-dot crear. Entonces estamos creando uno nuevo. Ahora el nombre aquí, no estoy 100% seguro de si necesitamos o no abastecer al cuerpo de MC. Eran los, digamos el mal aquí antes. O si solo lo podemos enfriar, franqueza. No estoy 100% seguro de eso. Funcionó en ambos sentidos, pero personalmente creo que esto tiene más sentido porque lo contrario en el tipo Sharma no tiene idea de dónde viene esto. Y entonces necesitamos abastecer un, este es un predicado, Sí, un artículo. Hagamos elemento y luego ítem, instancia de elemento contundente. Entonces la idea aquí es que el método de creación toma en un nombre y luego un predicado es delegado, es básicamente exactamente este artículo de tiro de cañón justo aquí. Y esto es lo que lo hemos leído aquí. Y entonces lo que podemos hacer es que podemos hacer más en meses de Sean. Tipo de cojera. Ahora es muy importante que escribas el nombre de la clase aquí porque si solo haces tipo de franqueza y obtienes el get the arrow ilegal forward reference. Y esto no es lo que queremos. Queremos asegurarnos de que tengas el nombre de una clase delante de ella como una llamada estática. Entonces nosotros por supuesto, también agregamos nuestra estática pública favorita, nula, registramos, registramos, registramos un ego. Y esto es entonces todo dentro de nuestro MC. Peor mod, mod encantamientos no se registran. ¿ Verdad? Y es que, sé que suena loco, pero eso es todo. A mí me parece bastante sencillo. Todas las cosas consideradas, o el hecho de que acabamos crear un nuevo encantamiento con un nuevo tipo de objeto. Digamos. Por supuesto lo que también necesitamos son los diferentes expedientes. Entonces vamos a quedarnos todavía, sólo vamos a conseguir el lang En realidad, voy a copiar rápidamente esto porque esto es algo que es, así que por el nombre del encantamiento, tenemos encantamiento dot mod ID, por lo que MC núcleos y luego el nombre que hemos dado, el encantamiento aquí. Entonces éste. Y entonces esto sólo va a ser cojera. Y para el club, que he creado es solo artículo en SQL, hay club de cobre. Y nosotros por supuesto, también necesitamos el modelo de ítem para esto. Sólo vamos a copiar esto. Sí, por favor escribe, no debería ser nada loco. El artículo una vez son interesantes y ahora vas a ver mi absolutamente increíble creación del club de cobre. Y tengo que ser honesto contigo, realmente me gusta esto. Ah, vemos permitir o debemos mirarlo en juego? Lo vamos a ver en juego. Esto me gusta mucho, pero esto es en primer lugar, creo que esa es una de mis mejores creaciones, o digamos mis mejores creaciones. Y creo que esto es todo lo que tenemos que hacer para que todo esté en juego. Déjenme pasar rápidamente por no, debería ser todo. Entonces, solo empecemos y veamos qué pasa. Y por supuesto, una vez más, lo que quería mencionar es que la cosa con el artículo contundente no es necesariamente necesaria. Porque por supuesto, el esto es sólo un, digamos un primer ejemplo o un no un excelente ejemplo. Más bien un ejemplo específico que tenía un estudiante. Querías que quisieran un artículo específico, un objeto contundente. Yo quiero tener un globo. No quiero, quiero que sea responsable con Londres, con brevedad pero más bien franqueza. Y yo estaba como, vale, eso en realidad suena una idea interesante. Y por eso lo hemos hecho. Entonces hagámoslo solo crear un nuevo mundo con modo creativo. Y luego ver lo que podemos ver. Muy bien, vamos a configurar rápidamente esto. Entonces, en primer lugar, el club mira esto. ¿ No es esto hermoso? ¿ No es este club sólo lo más hermoso que has visto? Si bien tal vez no, pero sigue siendo, me gusta. Aunque sí me gusta. Consigamos un enjambment, un MOOC. Consigamos botellas de encantadores. Y ahora puedes ver aquí los libros encantados. Y si bajamos, en realidad podemos ver franqueza 12345 porque se agregan automáticamente. Y si ahora hubiéramos incrementado el nivel, esto también aumentará el número de libros que tenemos. Tomemos solo la franqueza S1 y S2. Y tomemos también la OSU. Nolan. Yo quería nitidez, ¿verdad? Eso es sólo tomar NO2 shortlist, tres libros. Y también consigamos una espada. Se va a clase normal. ¿ Y necesitamos algo más? A lo mejor una estantería, Omar mimo. También necesitas un animal. Muchas cosas que vamos a necesitar. Ahí lo tienes. Vamos a configurar esto rápidamente. Tan solo demuéstrale que en realidad sí funciona. Y entonces podemos cambiar al modo de supervivencia fue algunos niveles. Entonces primero lo primero, si ponemos esto dentro. Para que puedas conseguir un frenado, como puedes ver. Porque esto es, esto sí funciona en romper y romper. Fuerza sería un poco agradable si también tenemos algo de celosía a. Ahora vamos a ver. Si estás en modo creativo, entonces hay algo de diversión. Eso podría ser, podría no ser bueno porque E y romper no escrito y escrito. Y vamos a ver. Entonces si sin embargo entramos aquí, así podemos encantar esto con franqueza, como se puede ver bajo la espada, no podemos franqueza n-canal. Podemos hacer esto con nitidez. Eso funciona. Y la nitidez en este no funciona. Entonces Esa es una buena prueba para, primer lugar, que esto, que esto funcione. Y si nos damos algunos libros, tal vez podamos, bueno, podemos hacer esto. Y luego veamos, planitud, eso fueron los de franqueza. Eso es un poco bonito. Ahora la gran pregunta es, ¿podemos conseguir esta otra? Es ahora por fin tenemos algo de franqueza aquí. Ahí vamos. Cojera uno, ¿verdad? Y eso ya es todo lo que necesitamos hacer para meter esto en chocolate ahí dentro y en realidad tenerlo sea específico de algo, algo así porque es como nuestro propio artículo. Y si miramos esto, correcto, uno normal ha atacado imagen tres, esto ahora ha atacado daño o porque tiene ceguera. ¿ Verdad? ¿ No es genial? Sí. Y eso fue todo por agregar un, un encantamiento. Y también, digamos que simultáneamente son UNA clase de artículo, nuestra propia marca única de artículo, digamos. Y sí, eso fue básicamente. Si hay alguna pregunta, por supuesto, siéntase siempre libre de preguntar. Y sí. 73. (Minecraft) Generadores de datos para artículos y bloqueos: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a echarle un vistazo, generadores de datos. Ahora, los generadores de datos son básicamente una manera fácil de generar la totalidad de todos nuestros archivos adyacentes que hemos estado haciendo manualmente todo este tiempo. Y esto es básicamente una forma automática de generar esos. Y hace la vida alrededor, diría aproximadamente un 120% más fácil. Especialmente si tienes muchos bloques, muchos artículos. Hace que sea increíblemente fácil generar todo. Y así lo primero que vamos a hacer aquí es que en realidad vamos a renombrar el Course Tab dos núcleos, tabú, pequeño t Vamos a guardar esto. Y luego solo para asegurarnos en lugar de nuestra carpeta de idiomas, también vamos a cambiar esto. Entonces en lugar de activos, núcleos MC, Lang, y luego dentro de EN subrayan nos funciona. Vamos a cambiar esto a curso, toque con una t pequeña porque de lo contrario vamos a tener un error dentro de las próximas conferencias. Y eso por supuesto que no es lo que queremos. Lo que queremos sin embargo, es, bueno básicamente resolver todo. En realidad ni siquiera necesitaríamos cambiar esto. Porque lo que vamos a hacer ahora es que sólo vamos a liderar, sólo vamos a borrar todo. Entonces Bloch afirma, Lang, modelos. Los tres de esos. Eliminar, Sí, lejos de mí. Mc curso de botín mesas, recetas, todo ello en su totalidad. Fuera de aquí. No te quiero ni una hora o quiero verte más. Entonces ahora no tenemos texturas, no tenemos, no tenemos nada cuando se trata de nuestros bloques. Y tenemos que averiguar cómo podemos básicamente restaurar eso. Ahora, por cierto, hay algunas cosas en las que esto, por supuesto, en primer lugar, no sólo lo borre. Eso es más plegable. No sólo lo elimines. En realidad se asegura de respaldar eso porque has hecho esos de Jason. Entonces eso es algo importante. También cuando se tiene, sobre todo dentro de nuestros datos de bloque personalizados. Entonces la nuestra entidad titular que hemos hecho el electrificar o asegurarnos de que no lances esa manera Jason porque eso está bien básicamente generado así desde workbench. Entonces eso no se va a reproducir fácilmente, digamos como podrían ser algunos otros, ¿verdad? Pero ahora vamos a empezar con las cosas del generador de datos. Esto es, por supuesto, la eliminación aquí es por supuesto sólo para, digamos, en algún lugar entre propósitos cómicos y valor de shock. Y vamos a crear un nuevo paquete en nuestro curso MC, paquete MB llamado Data. Y dentro de eso, todo lo que vamos a hacer va ahora. Por lo que lo primero va a ser el dato degenerado tasa Jenna hacia la clase ego. Voy a añadir esto por supuesto. Y entonces simplemente vamos a tener esto ser un, añadir un mod dot, incluso un suscriptor. Esto es por supuesto, una vez más algo que ya hemos visto. Este es mc curso MOD id, y luego el bus va a ser mod, mod Dot event bus suscriptor, bus dot. Entonces también necesitamos unos generadores de datos privados con nada en él, el constructor. Y luego queremos secuestrar básicamente. Ahora esto es, esto es correcto. Yo estoy, estoy bastante seguro. Bueno, ¿qué tal éste? Si es el nombre correcto, entonces va a funcionar. Y luego vamos a tener un vacío público estático recogido datos. Entonces este es el evento que vamos a secuestrar. Este es el evento o evento de datos recopilados en este caso. Y esto aquí es por supuesto un suscribirlo. Ahora todo esto es algo que hemos visto con los eventos mod. En realidad vamos a necesitar esto. Entonces gracias que ahí dentro, dentro de aquí, lo que queremos es un generador de datos. Este va a ser el generador igual a event dot get generator. Entonces esto simplemente nos consigue el generador de datos. En lugar de este evento de datos recopilados juntos evento de datos. A ver si es así, no tiene ninguna explicación de dónde está. La idea es que, bueno, recopila datos. Es decir, difícilmente es difícil de descifrar, pero el ego, y este es el ayudante de archivos existente. También puedes conseguir que esto es sólo algo que vamos a necesitar porque básicamente queremos comprobar si algunos archivos ya existen o no. Esa es una especie de lo fundamental. Pero vamos a asegurarnos de que esto es básicamente lo que tenemos, ¿verdad? Entonces vamos a empezar con, si crees que lo primero que vamos a hacer es el proveedor estatal a bloque. Y esto básicamente es, lo hace para que tengamos estados Brock. Entonces hagamos una nueva clase llamada el proveedor de estado de bloque mod. Por supuesto, los nombres aquí r se pueden elegir por su cuenta. No obstante, tener una clara esa es una nomenclatura para ellos sí hace mucho divertido. Esto extenderá el proveedor del estado de bloque. Asegúrese de que es la correcta y la correcta está en cliente. Entonces mis microformas netas, queremos este, generadores de modelo de cliente es muy importante que elijas el correcto. De lo contrario, nos vamos a tropezar con un montón de temas. Y como puede ver, quiere que implementemos un método específico, que es el método de conjuntos de registro y modales. Vamos a hacer esto y entonces todavía tenemos un error. Y esto es por supuesto porque no tenemos constructor. Ahora lo que podemos hacer aquí en el constructor es que solo podemos deshacernos de este mod ID ya que sabemos cuál es nuestro lema. Y podemos acceder a ella yendo al curso MC Dartmouth. Suficientemente fácil. Ahora en lugar de aquí, ahora podemos registrar nuestros bloques. Ahora. El caso es que estos bloques, un proveedor por supuesto, tiene algunas cosas bonitas. Entonces si pongo en bloque, por ejemplo, como pueden ver, mira cuántas cosas hay que realmente podemos registrarnos aquí muy fácilmente. Contamos con bloque de acceso, bloques direccionales, tenemos bloques de puertas, cercas. Tenemos blogs de cuatro vías, horizontal, horizontal, bloqueo de fase, dolor, losas. Ahí hay trampillas, muros. Todos esos muy fáciles de registrar con el simple uso de esas llamadas de método. Por supuesto que vamos a usar el bloque de símbolos aquí. Y lo que vamos a hacer es que vamos a decir más bloques punto. Hagamos el punto de bloque de cobre. Y entonces sólo vamos a copiar esto. Y luego nos vamos a llevar el alambre de cobre también. Entonces, sólo tomemos esto. Se van, bueno y eso ya es todo. O básicamente cómo hacer los modelos de bloque. Es decir, sólo necesitamos agregarla aquí y luego, y entonces básicamente terminamos. Y esto es realmente fácil de agregar. Por lo que simplemente necesitamos decirlo generador punto en Provider. Ahora acabamos de crear un proveedor, así que sólo vamos a decir nuevo mod, proveedor de estado de bloque. Y luego el proveedor. El proveedor necesita un generador y un ayudante comestible de archivo existente. Eso es todo. Eso es todo lo que tenemos que hacer. Y luego va a generar para nosotros el mod Bloch afirma. Sí, ese es básicamente todo, todo el trato. Y vamos a seguir, en primer lugar, con el modelo y qué ítem, porque eso es algo que también es muy interesante. Porque por supuesto, con los modelos de ítem, lo que necesitamos es el, necesitamos esto para ambos artículos normales y luego también para artículos de bloque, ¿verdad? Y esto es tan simple como eso. Sólo vamos a decir, Hey, qué proveedor de modelo de artículo. Y vamos a decir, tomar este proveedor de modelo de ítem una vez más de generadores modales de cliente de microformas netas, muy importante. De verdad quiero recalcar esto porque de lo contrario si tomas el equivocado y sí, eso simplemente no es bueno. Por supuesto que eso nunca me pasó. Por supuesto que no. Tal vez, posiblemente, posiblemente en el principio. Tendremos a pasar a veces por eso quiero enfatizar esto aquí una vez más, mismo, mismo trato. Simplemente toma MC curso dot-dot-dot ID para el MOD ID. Y luego cada, todo el mundo está realmente contento con esto. Ahora los modelos de registro. Queremos unas cuantas cosas aquí dentro. Entonces, en primer lugar, queremos llamar al padre ancho existente. Y queremos usar esto porque esto es básicamente crea nuestro modelo de bloques. Perdón, no Bueno, sí. Utilice el modelo de bloque. Hace el artículo para el bloque. Entonces este es el elemento de bloque. Básicamente. Este va a ser el bloque de cobre. Y luego vamos a usar el bloqueo de modo aquí, que sólo va a ser bloque bloque de barra de cobre. Y luego vamos a copiar esto más. Entonces o también porque esto es lo que hemos creado dentro de nuestro bloque, statesman bloquea su proveedor. Y entonces lo que quieres son básicamente unas cuantas formas diferentes en las que podemos hacerlo. Y yo sólo voy a hacer un nuevo método aquí. Esto no es necesariamente necesario, pero está bien. Por lo que vamos a devolver un artículo ModelBuilder constructor. Y entonces esto necesita un elemento de archivo mono generado, y luego una cadena con el nombre del nombre. Y vamos a regresar get builder con el nombre de la ruta. Y entonces el padre va a ser objeto generado. Y entonces la textura va a ser la capa 0. Y luego la textura se encuentra en barra del artículo. Y luego el nombre. Ego. Vamos a alejarnos un poco. Y esto es solo un poco más fácil para básicamente llenar esto. Hay múltiples formas diferentes de hacerlo. Entonces por ejemplo, ahora mismo aquí vamos a hacer el archivo modelo, el elemento generado. Uno. Esto es justo cuando se tiene en la parte superior del archivo JSON donde decimos lodo de elemento generado. Eso es básicamente casi todos nuestros artículos eran eso. Y sí, esto es simplemente lo que estamos haciendo aquí. Y entonces lo que vamos a decir es un constructor y un artículo generado. Y entonces el nombre aquí sería, por ejemplo, lingotes de cobre. Entonces vamos a crear nuestros lingotes de cobre. Se mod modelos de artículo, ¿verdad? Y eso es entonces por supuesto, también se necesita agregar a nuestra clase de generadores de datos aquí. Y esto simplemente llega aquí abajo. Entonces, solo copiemos esto y digamos artículos mod. Qué proveedor de modelo de artículo. Y por supuesto también toma un generador, toma auxiliar de archivos existente. Y en general, esas son las dos primeras cosas que quería mostrar de todos modos. Entonces, ¿qué tal lo que vamos a hacer es que sólo vamos a ejecutar esto y ver qué pasa. Ahora estamos en el juego y mira esto. ¿ Qué es esto? Lo que nada tiene nada, ni siquiera nuestro paso central. Nada tiene textura. Bueno, eso no es lo que queríamos exactamente. Porque lo que necesitamos hacer es que en realidad no podemos simplemente dirigir al cliente aquí. Bueno, en realidad queremos es que queremos ejecutar otra cosa. Y ese es el dato de ejecución. Entonces solo necesitamos ir a Gradle del lado derecho aquí, tareas de microondas, si corre y luego ejecutar esos datos y luego hacer doble clic en esa. Y entonces ahora mismo tenemos esta aparición. Y una vez que esto haya pasado, vamos a ver algo muy interesante. Vamos a ver que se está formando un nuevo directorio dentro de nuestro directorio fuente. Como se puede ver, por lo general, esta era es normal. Ahora este error en realidad no es normal. Por lo que en realidad podemos ver qué está pasando aquí. Entonces hay algo ahí. Por lo que los bloques del curso de textura MC, bloque de cobre no existe en ningún paquete de investigación conocido. Ahora en realidad podemos comprobar, comprobar eso, e ir a recursos, activos, historia, eso son texturas. No, eso definitivamente está ahí dentro. También está en su bloque Hopper, dot PNG. Entonces eso definitivamente está ahí dentro. Entonces debe haber algo más que esté un poco mal aquí. Déjenme comprobar lo que está pasando. Es Por supuesto, en realidad sé cuál es el tema aquí y en realidad es muy bueno. Esto es algo que en realidad al probar esto también olvidé, pero es muy importante que esto realmente se haga. Y es por eso que es muy bueno que sea como en el medio aquí, tal vez. Entonces el error aquí es que dentro de nuestra acumulación Gradle, en realidad necesitamos agregar algunas cosas. Y esta es la perspicacia número uno. Cuando bajamos aquí a nuestros arcos, necesitamos agregar esto para que básicamente podamos reemplazar estos arcos con esto. Básicamente solo asegúrate de que también hay. Entonces básicamente eso Cuando ejecutamos los datos. Por lo que esto ejecuta datos que tenemos una salida en los recursos generados de origen, pero que también hay una fuente de recursos principales y los recursos generados de origen ambos cuentan básicamente como un conjunto de recursos. También tenemos que sumar entre el final de esto. Entonces entre el final de este Minecraft abrió aquí, aquí abajo, y luego antes de dependencias, vamos a sumar a esto, estas cosas por supuesto, disponibles como recursos también para descargar y todo ese jazz. Y sí, exactamente. Y entonces básicamente podemos dejar que la compilación vuelva a correr. Así que basta con hacer clic en el elefante pequeño con un botón de recarga y esto básicamente debería funcionar muy rápido para construirlo. Sí, ahí tienes. Y si ahora volvemos a ejecutar estos datos, solo podemos pulsar el botón Ejecutar, el botón Play aquí, entonces todo debería salir totalmente bien. Ahora todavía vamos a obtener un error de cotización sin cotización. Ahora bien, esto no es realmente un error real, así que esto en realidad no es realmente arrogante. Es decir, claramente se generó. No volvería a ejecutar esto. Porque eso es muy raro que no tenga sentido en absoluto. Por qué ese sería el caso. Por supuesto ahora funciona porque así es como lo hacemos. Correcto. Está bien, eso es genial. Entonces si lo consigues, eso es una especie de flecha aquí. Entonces, básicamente, si tú, si esto es un error y entonces es igual que se cerró host remoto, eso es probablemente algo que es mejor para ti. Entonces si miras esto, siempre y cuando la ejecución de la tarea terminada se establezca aquí los datos de ejecución y tengas todos los proveedores tomaron lo que sea, cuántos milisegundos, entonces todo está bien. Y eso es muy raro. Probablemente fue porque el, el archivo JSON aún no se generó. Entonces alguna rareza que son, si lo consigues también, no te preocupes por ello. Eso probablemente no va a ser un tema. Pero de todos modos, así que ahora tenemos un generado, como puedes ver, generado Maine. Y si bajamos aquí, recursos, activos, curso MC Bloch, estados y modales, y ítem y modelos de bloques. Y básicamente se acaban de generar para nosotros. Ahora. En realidad tenemos que cambiar aquí para ejecutar cliente, y luego tenemos que ejecutar el cliente. Por lo que ahora el juego va a empezar. Es muy importante que tengas en cuenta dónde estás en esto. Y que una vez que cambies algo dentro de tu estructura de datos, que solo dejas que los datos ejecuten una vez y luego comienzas. Entonces esto es como si no pudiera recalcar esto lo suficiente. Ejecuta los datos primero, luego mira los cambios. De lo contrario no se verán los cambios. Y si miramos esto por ejemplo, se puede ver que el cobre en bien, el bloque de cobre y el cobre o bloque todos tienen texturas. Ahora sólo ellos, tienen textura hablada. Bueno, eso no es lo que quieren. Van, ambas arquitecturas como bloque y también como artículo. Por lo que eso funciona perfectamente bien sin tener que hacer los archivos JSON manualmente porque están todos aquí generados como puedes ver. Entonces esto es sólo un bloque de cobre, ¿verdad? Generado automáticamente. El, echemos un vistazo a la Inglaterra corporativa por ejemplo. Generado automáticamente. Entonces esto es lo genial de los datos genera el básicamente solo generar todo automáticamente. También vamos a agregar apenas rápidamente las etiquetas de bloque y los ítems modales, etiquetas, generadores para proveedores. Entonces vamos a crear una nueva clase dentro de nuestro paquete de datos, que va a ser bloqueado. Etiquetas modales, rho vita. Ahora en realidad no hemos usado mucho el impuesto. Eso va a extender proveedor de etiquetas de bloque. Esta es una, esta es una vez. Este es el realmente redes Minecraft el data one. En este caso, el constructor. Vamos a conseguir el segundo constructor, no el que está tachado. Una vez más, el ID de modo, solo podemos tomar a EMC, somos ID inteligente. Y entonces también queremos, o queremos anular el método o registrar impuesto. Entonces si ponemos en registro y golpeamos tab, entonces solo podemos hacer esto. Y entonces sólo vamos a hacer uno fácil para conseguir o crear constructor. Y le voy a dar una etiqueta. que podamos ir a bloques de etiquetas, y vamos a tomar ors. X necesita ser importado tu ego. Y le vamos a añadir los bloques de punto mineral de cobre todavía. Y eso es todo, ¿verdad? Por lo que sólo vamos a agregar el trabajo corporativo al o etiquetas porque es un o. Y luego también vamos a crear unas etiquetas de artículo más. No vamos a poner nada ahí dentro, pero sólo vamos a crearlo para el Halloween. Por lo que mod item tags proveedor en esto también, y esto se va a extender su más cercano de distancia. Amplió el proveedor de etiquetas de ítem una vez más, esa neta de datos de Minecraft. Esta vez, vamos a crear un deconstructo. O una vez más, con cuanto más d aquí, sólo fuera de eso. Mc, peor, AYUDA, oops. Mc, smart id, el ego. Y también se anulan los textos registrados. Y simplemente no vamos a llenar este en este caso porque en realidad no lo hacemos, no creo que hayamos usado más etiquetas de ítem ni las etiquetas para los artículos todavía. Nosotros hemos usado algunas etiquetas para los bloques, creo. Pero nada demasiado loco, Sin embargo, está ahí si necesitabas. Entonces eso es bastante bueno. Y esto se va a hacer aquí abajo después de todo lo demás. Por lo que este punto generador generó proveedor punto-punto-punto. Esto es lo nuevo. Hagamos las etiquetas de elemento mod. Un proveedor. Esto necesita un generador y ahora, como se puede ver, esto realmente necesita un proveedor de etiquetas de bloque también, lo cual es muy importante. Entonces en realidad necesitamos hacer un poco torpe, pero está bien. Tenemos que hacer una nueva variable. Entonces modo Bloquear proveedor de impuestos, solo vas a llamar a esto algo así como etiquetas de bloque igual a nuevas etiquetas de bloque, generador de proveedores y el ayudante de archivos existente aquí. Y entonces esto se puede hacer dos veces. Por lo que podemos hacer proveedor de anuncios con los tanques de bloque aquí porque por supuesto necesitamos las etiquetas de bloque y luego también necesitamos proporcionar las etiquetas de bloque en lugar de nuestras etiquetas de artículo. Y luego también el archivo existente puerto, y eso es todo. Esas son las cosas que básicamente quería agregar aquí. Entonces lo que podemos hacer es simplemente volver a ejecutar los datos. Aquí mismo. Se va a querer estresar muy importante, si cambias algo dentro de tus generadores de datos, agregas más etiquetas. O si agrega un modelo de ítem, siempre son datos de ejecución. O sea, sé que la pregunta va a salir, oye, yo, añadí algo y no aparece. Ejecutar datos. Esto es, solo responderé con datos de ejecución en preguntas como esa. Y como puedes ver, ahí tienes. Entonces, en lugar de generar recurso principal, ahora tenemos una carpeta de datos también. Y dentro de eso tenemos las etiquetas de Minecraft. Ahora en realidad agregará cada Jason por cada etiqueta, solo básicamente con los valores principales que ya están ahí. Y luego si vamos a los remos por ejemplo, entonces vamos a ver, bueno, no va a estar aquí en realidad que está dentro del interior de previsible VSA tú, entonces esta es la anulación básicamente, así que las órbitas y luego como puedes ver, MC coerce, cobre o eso está ahí dentro. Entonces se va, eso es una especie de, una forma interesante y bien, muy fácil y eficiente de generar nuevos archivos JSON para tus artículos. Para tu, si quieres agregar etiquetas o si quieres agregar los estados o bloques de Bloch, se hace muy fácilmente. Es, creo, increíblemente útil y lo salvó. Especialmente si tienes, son como un 100 artículos. Es decir, en algún momento te vas a enojar con el copiado y pegado que tendremos que hacer sólo por las fallas de JSON. Y ahí, esta es una forma fácil de generarlas automáticamente. Entonces espero que eso les haya sido útil. Si hay alguna pregunta, por supuesto, siéntase siempre pre-tarea y me aseguraré de responder. Y sí. 74. (Minecraft) Generador de datos para los mesas y los lazos de lanzamiento y el lenguaje: Muy bien, bienvenido de nuevo al curso de microondas. Y en esta conferencia vamos a echar un vistazo a otro generador de datos, realidad dos de esos, y vamos a hacer que las tablas de laúd y luego también el archivo de idioma se genere automáticamente. Así que en realidad vamos a crear una nueva clase en lugar del paquete R que ya hemos creado la última conferencia. Y este va a ser el proveedor de mesa de botín MOD. Una vez más, el nombre es, no, ¿tienes que ser exactamente igual? Pero tiene sentido mantener todo al menos en el mismo barrio. Por lo que esto lo va a extender el proveedor de la tabla de botín a partir de datos netos de Minecraft. Entonces vamos a crear un constructor que tenga esto. Y ahora va a haber algo que es un poco raro aquí porque en realidad vamos a tener algo. Entonces si entramos a la mesa de botín, ratón medio, click de botón. Y como pueden ver, tiene esta lista final, que es una lista de pares de proveedores, de consumidores, de bicicleta, consumidores de ubicación de recursos, constructor de tablas de botín, que es, quiero decir, eso es un constructo eso es absolutamente ridículo en mi mente. Tengo que ser honesto contigo, pero está bien. Y si entonces vamos aquí, como se puede ver que hay mesas de botín de pesca. Hay por ejemplo, tabla de botín, Lu, tabla Lu, entidad Lu tabla y así sucesivamente y así sucesivamente. Y esto también es algo que vamos a necesitar. Porque lo que tenemos es que vamos a tener un, Así que antes que nada, vamos a tener otra cosa aquí dentro, que va a ser mesas de botín de bloque e mod. Entonces una nueva clase en lugar de nuestro paquete de datos. Enfriar MCH Block tablas de botín. Y esto extiende las mesas barrocas de laúd. Está bien, ahora no hay nada aquí. Voy a poner algo ahí dentro dentro dentro. En primer lugar, vamos a hacerlo, voy a copiar esto porque esto es absolutamente una locura. Por lo que esta es la lista de un par de un proveedor, de un consumidor de una bicicleta, consumidor de bucles de ubicación de recursos, constructor de tablas. Y entonces aquí tiene perímetros de mesa de botín. Se llama tablas de subrayado de botín y es una lista mutable de exactamente el par de la mafia rompió tablas sueltas que acabamos de crear aquí, esta clase y un conjunto de parámetros de laúd. Ahora, qué es todo esto, tengo que ser honesto contigo. De verdad no me preocuparía por ello. Es sólo una forma loca de asegurarse de que sea un ejemplo loco de bien, tal vez podría haber habido Southern mejor hecho aquí. Pero funciona. Simplemente de verdad, quiero decir, ya sabes, probablemente podría explicarlo al final, pero en este momento en el tiempo, realidad diría, solo, sólo tómalo, sólo di bien, como sólo alguna raridez que no tenemos para entrar. Ahora lo que queremos es que nos quedes con esto. Entonces si ponemos get, vemos esto protegido y luego todo este Obtener las mesas. Esto es lo que queremos anular. Y lo que queremos devolver es simplemente básicamente este punto lou tablas. No, eso no es, eso no es para nada lo que queremos hacer. Nosotros queremos hacer esto totalmente se llevaron. Y luego lo otro que queremos anular es validar. Este es el método de validación y no queremos llamar a super, en realidad no queremos llamar a nada aquí. Algo así como todo lo que se pone como, oye, ¿esto es algo válido? Sí, es algo válido. Yo, no estoy 100% seguro de lo que necesitamos para sobrescribirlo sin nada. Creo que tiene algo que ver con algún tipo de raridez de microondas a donde si no está dentro de un directorio de microondas, entonces no valida ni algo cercano a eso. Tan solo asegúrate de que esto también esté ahí dentro. Y eso es básicamente la tabla de botín de modo Proveedor. Ahora esto ya podemos sumar aquí. Esto se sumará. A ver, esto se agregará aquí. Entonces, ¿este es el proveedor de puntos de punto generador, nuevo proveedor de tabla de botín con un generador? No, un generador y un archivo existente hasta este momento, en realidad no necesitamos el ayudante de archivos existente, pero necesitamos otro, necesitamos un paréntesis final o.Y ahora tenemos donde realmente agregamos las tablas LU se encuentra dentro de nuestro lema block tablas LU, cosa muy importante una vez más, también, si miramos hacia atrás al proveedor de tablas LU, momento sólo tenemos este mod block LU tablas. Si por supuesto queremos agregar un bucle mesas a, por ejemplo, mobs o cofre o lo que sea. Te aconsejo que vayas a la clase de proveedor de tabla de botín aquí que hemos extendido y mires este campo, ¿verdad? Entonces esto, este par loco, locura de proveedor. Y como puedes ver, puedes entrar en las mesas de bucle de pecho. Tenemos las tablas Lu entidad y puedes mirar esas. Entonces si el botón central del ratón hace clic en él, entonces se va a abrir el, la clase real. Y como puedes ver, hay, por ejemplo, aquí dentro, te aconsejo que mires eso. Y esta es básicamente una forma de hacer mesas Lu para otras cosas. Como, ya sabes, otras cosas, no sólo bloques. Entonces si entras ahí, podrás ver eso. Y entonces básicamente es solo extender esa clase y luego agregar algunas cosas aquí. Y vamos a añadir el método add tables. vamos a sobrescribir. Y también lo vamos a sobrescribir el método get known blocks. Ahora esto va a devolver la caja de punto de registro, dot get entradas, stream dot map. Yo sólo voy rápido y qué hace esto. Y luego le vamos a hacer al iterador de Colin. Entonces este es un iterable de tipo de bloque. Ahora tenemos todos nuestros bloques dentro del registro diferido Brooks. Y esto básicamente tiene la lista, por así decirlo, de bloques. Ahora cuando tengamos las entradas, sólo vamos a conseguir una, como pueden ver, una colección de esto es básicamente una lista. Después convertimos esto en un arroyo y luego pantalla podemos mapear. Y el mapa básicamente, como se puede ver, devuelve un flujo que consiste en el resultado de aplicar una función dada al elemento de la corriente. Entonces básicamente para cada uno de los elementos aquí dentro, así que estos son por supuesto en este momento. Y bloques. En lugar de nuestro registro diferido, aquí mismo, hay colección de objetos de registro. Por lo que tenemos los objetos del registro en una corriente. Y luego lo que vamos a decir, vale, por cada uno de esos que realmente vamos a hacer dot get. Y como sabemos, hemos visto varias veces, si hacemos nuestros bloques MOD, dot gets, tan impracticable, Brock dot get y obtenemos el bloque real. Y luego vamos a convertir todo esto en un iterador. Y luego funciona. Esto es lo fundamental de esto. Una vez más, esto es algo donde no es necesariamente como importante que entiendas todo lo que sucede aquí. Sólo tienes que saber que los bloques de obtener conocidos son básicamente todos los bloques que tenemos registrados. Eso es básicamente todo lo que necesitamos. Ahora, te voy a mostrar esto con dos o más bloques y ellos, voy a copiar esto más porque esto muy importante en realidad, cada bloque que tienes aquí dentro, necesitas una cuadra como una mesa de botín para. De lo contrario, el juego no va a empezar. Esto es un poco molesto. No voy a mentir, pero así es. Entonces lo primero es lo primero, solo puedes hacer esta tabla de botín de gota de registro. Entonces el bloque se cae por sí mismo. Bloques punto bloque de cobre por ejemplo. Y entonces por supuesto que no está bien, ¿verdad? Entonces esto simplemente significa que el bloque de cobre al frenar, nos caeremos. Eso es todo el asunto aquí. Entonces tenemos, por ejemplo, si hacemos esta tabla de botín de registro, podemos llevarnos ésta. Entonces podemos, por ejemplo, decir si tenemos, digamos E, Hagamos mod blocks, losa, cooper, losa dot get. Y entonces podemos tener una función aquí que es un bloque. Y luego vamos a abrir esto. Esto luego se va a devolver una losa que cae. No dejar caer semillas, apuntalar losa con exactamente esto. Por lo que Ma'at bloques, no punto de bofetada de cobre conseguir. Y tenemos que hacer esto, claro, porque esto es una losa y no un, bueno, no es un, no un bloque normal, ¿verdad? Por lo que necesita funcionar como una losa. Es aquí cuando necesitamos hacer esto, es muy importante que básicamente pongamos esto en esta tabla de botín de registro uno. Y esta es casi básicamente toda la idea todavía. Yo sólo voy a copiar el resto ahora mismo. Espero que todo esté aquí, pero estoy bastante seguro de que sí. Está bien. Entonces si hay algunas cosas que en realidad no tenemos en tu matriz. Y luego la losa de cooper, no nos gusta literalmente hacer esto. Oh, bueno, oh, eso es de tres piezas. Ahí vas. Eso está bien, eso es algo embarazoso. Bueno, lo que sea. Entonces esto es, esto debería ser cada bloque. Vamos a ver si es o no una vez que funcione o no. Pero sí, esta es la idea. Tienes que agregar tabla para cada bloque. Al menos eso fue una cosa que no sucedió. Al igual que no funcionó para mí si no agregaba ninguno, cada bloque que básicamente estaba en los no bloques. Entonces, solo ejecutemos los datos y veamos qué pasa que ya hemos agregado aquí el proveedor de tablas de botín de Mott. Y esto es por supuesto, las tablas LU de bloque son por supuesto, básicamente en esta lista de aquí. Entonces, solo veamos qué pasa aquí. Y en realidad vamos a conseguir un error. Lo más probable es que haya una cuadra que me he perdido. Eso es lo más probable. Entonces definitivamente son las tablas LU así como se puede ver cuando se tiene una flecha en este dato de ejecución, siempre se puede ver bien, etiquetas de ítem terminadas y luego iniciando tablas Lu proveedor. Y entonces ya sabes, vale, tiene algo que ver con las mesas de Lou. Y por lo general esto no va a ceder en realidad muchas ideas sobre lo sucedido. En realidad tendrás que subir un poco. Ahí en realidad, esto era algunos de los desaparecidos y esa es la placa de presión. No sé por mis pruebas mi repositorio de pruebas, básicamente, mi proyecto de pruebas previas. Probablemente haya un allí probablemente había un tipográfico ahí también. A ver. Por lo que probablemente vuelva a faltar algo. Y eso va a ser vamos a ver. También podemos MC, No, tenemos que entrar en este y luego estoy anotaciones. Y luego vamos a ver, esto sería mc. Ok. Ahí vas. Por lo que falta mesa bucles para los tablones de madera rojos. También sólo un nombre que estaba mal. Tablón. Está bien, eso es interesante. Entonces llamo aquí al tablón. Eso está bien. Eso no es un tema. Al menos ahí. Entonces eso es un poco de descuido probablemente. Pero si ahora ejecutamos esto, creo que ahora debería funcionar. Si no falta más cuadra. Y tampoco deberíamos conseguir ningún error. Se ve bien. Y entonces, oh, los proveedores se llevaron lo que sea milisegundos. Y luego, por supuesto, como sabemos, cuando llegamos a la era de las citas entre comillas, se ha cerrado la conexión de host remoto. Eso está bien. Y luego si miras aquí abajo en nuestros núcleos MC de datos, tablas de bucle, realidad podemos ver que todo, cada tabla de bucle aquí se ha agregado correctamente. Bueno, eso es bastante bueno. Y luego vayamos también al proveedor de Idiomas. Eso es algo que es muy interesante. Por lo que sólo vamos a agregar una nueva clase a nuestro paquete de datos, enfrió el proveedor de lenguaje mod mod. Esta clase extiende esta vez el proveedor de idiomas por net Minecraft datos comunistas, muy importante. Esto va a implementar las traducciones EPS, el método aquí. Y entonces también por supuesto, necesitábamos un constructor. No necesitamos la AID una vez más. Entonces eso es muy similar a muchas de las otras cosas que hemos usado. Curso Mc, punto-punto-punto. Y dentro de aquí, lo que en realidad vamos a hacer es hacer una cadena llamada locale, esto.name reemplazar con lenguajes de sagas Lang, Lang Guan. Y luego reemplazado por nada. Y luego vamos a hacer una locale de switch. Y entonces aquí en realidad tenemos un caso. Entonces vamos a hacer el yen EU, así que así. Y luego se rompen aquí. Y luego un caso por defecto con básicamente nada porque me disculpo, no tengo idea de por qué se cambió, pero van, eso es lo que pasa. Y luego dentro de aquí solo usamos el add. Solo vamos a usar el método add para agregar cosas, ¿verdad? Entonces como tú, yo he visto, puedes o también puedes poner en bloques o a alguien más, o puedes poner en llaves. Entonces, por ejemplo, nuestras llaves serían algo así como. Por lo que nuestras claves son algo así como, por ejemplo, ítem MOOC curso, lingote de cobre. Y esto se traduciría a operarlo. Eso quiero decir, que siento que tiene sentido. Ahora también necesitamos hacer dos cosas en nuestro generador de datos. Entonces solo vamos a agregar esto y ver si funciona. Pero estoy bastante seguro de que lo hará. Tenemos que añadir algo aquí. Se trata de una matriz de cadena final estática privada llamada códigos locales. Ahora estos son los códigos de localizaciones que somos básicamente, bueno, vamos a querer apoyar. En nuestro caso, sólo vamos a hacer EN nosotros. Puedes por supuesto, también agregar las tuyas propias una vez. Entonces por ejemplo, creo que Alemania sería algo así como d, d, creo, no estoy seguro en realidad. asegura de que busques eso, eso se encuentra fácilmente. O si lo tiene, no estoy seguro si es EN GB para Gran Bretaña. No estoy seguro. Pero sí, esto es básicamente donde se agregarían todos los códigos locales. Este es básicamente el mismo nombre que teníamos en nuestro sitio sobre activos carpeta Lang, ¿verdad? Y entonces también vamos a agregar un vacío estático privado en los proveedores de idiomas con un generador de datos, el generador como parámetro. Y dentro de aquí vamos a usar una locale de cadenas for-loop establecida sobre códigos locales. Entonces esto básicamente asegura que pasemos por cada uno de los códigos locales que tenemos. Y luego vamos a generar nuestro proveedor punto-punto, nuevo proveedor de lenguaje mod, el generador y el mirador. Ahora mismo por supuesto, sólo tenemos la EN nosotros, pero eso está bien. Como dije, puedes agregar tus propios idiomas o incluso más idiomas como muy fácilmente en realidad en este caso. Y entonces solo ejecutemos esto y veamos si genera el, bueno, no va a generar esto. En realidad. Deténganlo porque en realidad necesitamos añadir esto aquí también. Por supuesto, agregar proveedores de idiomas con el generador. Y luego se va a, entonces vamos a correr y ver si funciona. Ahora, esa es una especie de parte importante de esto. Y entonces en realidad también vamos a mirar en, en juego si todo lo que hemos agregado aquí va a funcionar o no. Por lo que todos los proveedores se llevaron lo que sea milisegundos. Eso es genial. Entonces eso significa que todo al menos parecía funcionar importante. En realidad tenemos que dejar que esto funcione hasta así, hasta que llegue este mensaje. De lo contrario, aquí no se genera nada. Entonces vamos a ver. Esto se generó dentro de activos, MC curso lang, Pero no es en este momento. Pero vamos a ver si esto o no, la configuración regional aún se llevó a cabo. Entonces vamos a ejecutar cliente y luego vamos a ejecutarlo. De acuerdo, vamos a ver, sólo empecemos el juego. Y en primer lugar, vamos a ver si esto o no, así que el lingote de cobre no ha tomado su nombre, pero eso está bien. Porque en realidad creo que sé por qué tampoco generó lo izquierdo, eso, esa fue una de las cosas. Y agreguemos un piqueta y veamos si puedo mío Esto, por supuesto ir a la supervivencia. Y entonces si minamos esto es por supuesto todavía son sonido que hemos agregado. Y como pueden ver, en realidad estamos consiguiendo las cosas que queremos. Y si volvemos a las losas por ejemplo, que por supuesto, ahora mismo no tienen losa. Ahí vas. Eso es en realidad como pila de, Así es. Entonces como por supuesto, genial. Se ve increíble. Pero como se puede ver caer dos de esos. Y podemos, por supuesto, hacer esto y luego cae uno. Por lo que sí funciona. Ahora por supuesto sin ninguno, sin los modelos, realmente no tiene tanto sentido. Ahora esos por supuesto, necesitan ser añadidos de lado de nuestros modelos, o más bien el bloque, estados de bloque. Y luego por supuesto, sí, el estadista de bloques. Y luego por supuesto dentro de nuestros modelos de artículos también. Entonces ahí es donde se agregaría esto también. Y ahora de vuelta al idioma. Así que error realmente tonto. En realidad, esto necesita ser una L. grande Así que, uh, así que una L. mayúscula Y creo que eso ya lo arregla todo. Es como realmente tonto acerca de esto es el tema. A veces cuando estás usando cadenas codificadas duras, no siempre lo son. Ahí, a menudo puede llevar a cosas malas. Y como se puede ver, el lenguaje E, N, U, S terminó en diez milisegundos. Y luego una vez que esto se haya agotado, se van. Entonces se crea una carpeta de idioma aquí. Dentro de ella tenemos el curso EN subrayado de US item MC cubriéndolo al lingote de cobre. Y luego sólo para que quede claro y vamos a ver este trabajo dentro de nuestro juego. Vamos a ver esto aquí mismo, y eso es lo realmente fácil como esto también es realmente fácil de agregar, ¿verdad? Podemos simplemente ir y sumar todo aquí. Ya sabes, tener múltiples idiomas soportados muy fácil, solo haz un nuevo caso en todos los ítems. Y sí, y luego solo funciona. Por lo que es realmente fácil y realmente agradable. Y luego veamos. Entonces si vamos al artículo aquí, van flotando y eso es todo. Eso es todo lo que hay a ello. Es muy fácil. Muy fácil también. Agrega los idiomas en este caso. Y sí, sí, eso fue todo para el proveedor de idiomas Mod y también las mesas Blue. Y en la siguiente conferencia, vamos a básicamente terminado el generador de datos 4k, por así decirlo. Vamos a echar un vistazo a las recetas y también los avances es que están una especie de vinculados entre sí. Son un poco de superposición. Y sí, así que eso fue todo para esta conferencia. Espero que lo hayan encontrado útil. Si hay alguna pregunta, por supuesto, siéntase siempre libre de preguntar y me aseguraré de responder. Y sí. 75. (Minecraft) Generador de datos para recetas y avances: Muy bien, bienvenido de nuevo el curso de Minecraft. Y en esta conferencia vamos a echar un vistazo las recetas de modos y también los avances para generarlas dentro de nuestros generadores de datos. Entonces primero cosas primero vamos a crear una nueva clase. Una vez más, este va a ser el proveedor de recetas más. Y esto va a extender el realmente un poco más complejo esta vez. Por lo que esto se va a extender el proveedor de recetas de datos netos de Minecraft. Y también implementará el constructor de condiciones. Y vamos a ver qué tiene que ver con eso muy pronto. En primer lugar, claro, solo importa el proveedor de recetas. Y luego vamos a sobrescribir aquí el método de recetas de registro. Y vamos a crear la, digamos, una receta con forma para nuestro bloque de cobre. Entonces esto va a ser realmente fácil. Y vas a decir, esto es increíble, Exactamente. Constructor de recetas tan en forma, no receta en forma. Y entonces lo que queremos es el resultado. Entonces esto es mod blocks, ese bloque de cobre, dot get. Y luego solo hacemos una nueva línea sin cerrar esto. Y luego vamos a hacer punto. Y luego diremos llave. O la clave es lo que somos, lo que damos perspectiva sobre las recetas así como las claves. Entonces esto es, por ejemplo, digamos que vamos a hacer un gran C. Y esto va a ser lo que el punto de los lingotes de cobre. Alguien como otro leggings el lingote en realidad van dot get. Y luego vamos a decir que la línea de patter, luz y patrón es una cuerda y este es el patrón que tenemos que hacer. Entonces en este caso, esto sería una mesa llena y una de manualidades, ¿no? Si hiciéramos esto que el medio estaría vacío. Por lo que esto debería entenderse muy fácilmente con la misma idea con las recetas que hemos hecho con archivos adyacentes. Entonces lo que necesitamos es un criterio de aplicación. Y un criterio es básicamente una forma de especificar cuándo tienes esa receta desbloqueada dentro de tu libro, ¿verdad? Entonces tienes este libro y ahí tienes estos criterios. Podemos dar esos nombres. Entonces, por ejemplo, podríamos decir que cooperando se pone como nombre de teoría, ¿verdad? Y entonces necesitamos tener una instancia de criterio. Esta es la razón por la que el constructor de condiciones es un poco agradable también. Tiene artículo es un, algo que podemos hacer. Y tiene artículo literalmente es exactamente esto. Se chequea, oye, ¿tenemos este artículo? Y si tenemos este artículo, entonces esta receta se agrega a nuestro inventario o sí, básicamente así. Y luego al final. Pato facturado con el consumidor que tenemos aquí arriba. Y eso es todo. Es básicamente como agregamos una receta en forma para el bloque de cobre en este caso. Y esto va a aparecer dentro del libro. Entonces en especie de libro de recetas, cuanto tengamos un lingote de cobre dentro de nuestro inventario. Eso es todo. Ahora vamos a revisar cuándo entramos a los generadores de datos y vamos a sumar esto. Por lo que vamos a añadir esto entre las etiquetas de ítem y las tablas de bucle aquí mismo. Generator dot app provider, un nuevo proveedor de recetas de modo con el generador al que vas. Y luego corremos datos y veamos si nos genera una receta aquí o si o no, una vez más había algo perdido. No es poco probable, pero creo que esta vez, podrías tener suerte. Y sí tuvimos suerte. A lo mejor fue suerte o tal vez fue experiencia. ¿ Quién sabe? Fuera lo que fuera funcionó. Entonces vamos a ver. Una vez que esto se ha ido, van las recetas del curso MC y también los avances. Porque el avance siempre es parte de la receta básicamente. Entonces si entran aquí, como pueden ver, esto es exactamente lo mismo que ya hemos visto. Esta es una receta en forma con todo siendo el lingote de cobre y el resultado siendo el bloque de cobre. Y este avance es parte de las recetas. Y por eso también necesitábamos cambiar el nombre de la pestaña del curso. Si no has cambiado el curso has dirigido en este momento tendrás un error. Simplemente necesitas cambiar esto por un caballo y una pequeña pestaña. También puedes hacer que se ponga en un, un guión bajo entre esas dos palabras. Pero sea lo que sea, necesita ser básicamente conforme con la convención de nomenclatura del del pozo, como los identificadores. Sí. Esa es la palabra que buscaba. Se van, correcto. Entonces esto es una cosa que podemos añadir. Y entonces por supuesto que hay muchas otras cosas, ¿no? Entonces podemos, por supuesto, también, si solo ponemos en constructor, si podemos conseguirlos, más fácil, hay muchos constructores, como se puede ver muy claramente. De acuerdo, qué tal como receta, probablemente más fácil conseguir esa receta de forma. De acuerdo, vamos otra vez constructor de recetas de ovejas. También podemos ir eso, ahí es en realidad donde quería ir, constructor de recetas sin forma. Y entonces también podemos hacer una receta sin forma, por ejemplo, por supuesto, pero muy fácil de hacer. Pero una cosa que es interesante es copiar esto y digamos, bueno, ya sabes, podemos usar todos los lingotes de cobre para esto. Pero si me permite, ya sabes, robo como cables de cobre aquí, eso también funciona para un par de libro. No sé por qué, pero quizá ese sea el caso. Podemos, por ejemplo, sólo copiar esta clave. Podemos tener, creo que tantas llaves como 31, pero más de nueve no tiene sentido en este caso porque ese es el número de posibles los bloques de elaboración que realmente podemos tener. Entonces agreguemos aquí un alambre de cobre. Y luego, por ejemplo, podríamos agregar otro criterio para tener, oye, hay que conseguir alambre de cobre. Todo esto es muy, por eso es un constructor, ¿no? Es un constructor. Y lo grandioso del constructor es que es muy fácil simplemente sumar, ¿verdad? Podemos simplemente agregar cosas y decir hey you, ese es otro criterio sobre y demás y así sucesivamente. Ahora, en este caso, lo que pasará es que esto no va a funcionar porque ahora tenemos un bloque de cobre adyacente y luego otra pareja, el Dr. Jason, por el nombre, siempre es el nombre del resultado. Por lo tanto, lo que necesitamos, necesitamos realmente agregar aquí una nueva ubicación de recursos. Tan nueva ubicación de recursos. Este va a ser Mc curso AID, AID. Y luego vamos a llamar a esto, por ejemplo, bloque de cobre, viejo, alternativo o algo así. Y otro paréntesis. Ahí van. Ya sabes, algo así. Ese no es el mismo nombre porque de lo contrario, como dije, no va a funcionar. Vamos a correr esto otra vez y luego va a crear una nueva receta una vez más. Y también en nuevo avance, pesar de que ambos son, ambos suceden en el mismo momento en que tienes un lingote de cobre dentro de tu inventario, sigue siendo, creo, va a añadir un nuevo anuncio if declaración. Entonces veamos si realmente funciona o no. Pero estoy bastante seguro de que sí. Sí lo hace. Y como puedes ver, subrayado de cobre Block, viejo. Uno. muy importante. Si quieres que tus recetas tengan lo mismo, Así que para ocupar el mismo espacio, por ejemplo, si añades algo como color, algo coloreado, ¿verdad? Entonces quieres que cada una de las recetas esté en el mismo grupo, entonces solo puedes hacer set group y tener el mismo nombre aquí dentro, ¿verdad? Así que set grupo, no sé fff. Te aconsejo que te lleves tu DNI, pongas eso antes de algún colon y luego y luego puedes hacer lo que sea grupo que quieras. En este caso, sólo vamos a dejar que se siente así. Y solo, empecemos y veamos si las recetas que estás trabajando o no. Pero estoy bastante seguro de que lo hicieron. Generaron completamente bien y creo que entonces las recetas van a funcionar simplemente bien. Y esta es la razón, por supuesto, por qué los avances van a venir después esto en esta conferencia también es porque como ustedes han visto, los avances están muy estrechamente relacionados con esto. Y veamos si eso es cosa. Entonces ahora mismo no tengo el flotando en supongo. Yo creo que no, yo no. Entonces, solo tomemos el que nos cubre y los arrojemos al piso. Y luego vuelvo a cambiar a la supervivencia. Y en cuanto los consiga, vamos a ver nuevas, nuevas recetas están disponibles. Como puedes ver, solo volvamos aquí y alejémonos de este tipo. Por lo que están disponibles nuevas recetas. Y mientras abrimos esto y entramos en nuestra derecha, sí, en realidad no está en ninguna parte porque por supuesto podemos elaborar esto. Nosotros queremos ir al funcionamiento hoy mesa de manualidades, van. Y luego si miramos esto, van a bloque de puerto, ya sea con los cables de cobre aquí o los ingleses o simplemente los lingotes. Y en realidad podemos hacer esto. Entonces podemos hacer esto, BAM. Y luego ahí vas. Sí, así es, así es como esto, cómo añades las recetas realmente fáciles de usar aquí. Algo mejor, una vez más, es jugar un poco con él, darle una idea. Y sí, entonces echemos un vistazo a cómo los avances, una piel, son un poco más complicados. Tal vez incluso cuando deberían serlo, pero eso está bien. Entonces lo primero que vamos a necesitar es que vamos a necesitar una clase llamada el mod it Vance meses proveedor de avance. Ahora, esto se va a implementar en interfaz. Hice un proveedor. Este es el proveedor correcto debe tomar porque no soy un 100% seguro. En realidad es el Minecraft to data.frame proveedor implementar métodos. Esto es cuando tenemos el método act y el método getName que necesitamos implementar aquí. Y hay un par de cosas más que queremos también. Entonces, por ejemplo, queremos un constructor de proveedor de avance de modo público con el generador de datos. Y el generador. Y sólo vamos a decir este generador.nombre, que en realidad aún no existe. Por lo que necesitamos agregar el pantano privado generador de datos finales, generador , generar rasgó, lo siento, el ego. Y este generador es igual a generador. Entonces necesitamos todavía sólo sumemos esto también. Entonces, solo sumemos el más bajo también. Tan seguro, registrador final estático, Este va a ser el org Apache logging. Busca J logger, lock manager dot get logger. Por lo general tenemos lo que hemos hecho es que acabamos de tener gerente de candado, punto, conseguir logger y luego poner algo fuera. Por supuesto también hacer esto. Ambos trabajan. Esto es probablemente un poco más limpio. No sólo probablemente sea un poco más limpio, sino que está bien. Y luego qué es un hijo privado estático, último gay. Por lo que se trata de un G SON de Google. Y luego hay un G, algunos no adyacentes, sino un JSON. Tan poco confuso equivale a un nuevo constructor json. Conjunto de puntos, bonito punto de impresión crear. Vamos a necesitar esto para algo. lo vamos a ver en tan solo un segundo. Entonces primero lo primero, dentro del nombre. Vamos a regresar en los avances var. Se aseguró de que eso sea correcto, avance los avances del ego y hágalo. Y entonces también queremos una mitad escéptica privada. Ahora esta ruta va a ser la ruta para Java nuevo archivo. Eso es correcto. Esto es get path, path con Puffin. Tenemos, y entonces también tienes con nosotros aún no hecho, pero eso está bien. Entonces tenemos el acabado. Avance, que es sólo un camino de retorno de avance en esa resolución. No, no resuelvas. Resolver el ego, que son datos, y luego el avance, obtener ID. Ahora bien, todo esto aún no se ha hecho, pero sólo vamos al espacio de nombres. Y luego un plus slash at, sobre cemento. Avancamientos, muy importantes. Plural Plus avance, punto getId. Qué obtener PAF, dot plus dot JSON. Parece una locura. Por supuesto, disponible para ti como recurso. Una vez más, también, esto sería Avance. Se van, bueno, esta es una clase que también vamos a hacer. No puedo creer que siempre sea la E después de la C, eso es un faltante ahí. Y así no es demasiado bueno, pero eso está bien. Y entonces creo que necesitamos el cemento terminado también. Sí. Entonces vamos a crear esto ahora mismo. Entonces esto es un acabado increíble. El tipo E se traga siempre. Y esto en realidad sólo va a ser, solo vamos a copiar esto solo para el Halloween ahora mismo porque es mucho más fácil. Y sólo voy a explicar en breve qué es, qué está pasando aquí. Por lo que esto básicamente nos permite tener una ubicación de recursos y como puedes ver, un constructor de avance. Para que podamos construir un avance con esto. Y como también puedes ver, tenemos un objeto JSON. Y esto básicamente serializa. Esto devuelve el constructor, que luego a su vez lo hace para que podamos usarlo dentro de nuestra clase de proveedor de avance. En realidad tenemos una lista de, no son listas demasiado locas. Entonces si miramos a nuestro proveedor de datos, hay algunas, algunas cosas aquí, pero si usamos esto, creo que en realidad también podemos ver los avances, ¿verdad? Entonces proveedor de Avance, así que este es el proveedor de tiempo de ejecución de Minecraft. Podríamos por supuesto, también sólo tomar esto y hacerlo para que nos estemos extendiendo de esto. En lugar de implementar el Proveedor de Datos. Ambos funcionan como si no lo fuera. Una cosa no está bien y una cosa está mal funciona en ambos sentidos. Pero la gran razón por la que hacemos esto básicamente por nuestra cuenta, porque el proveedor de avances tiene algunas cosas que no nos están abiertas. Si lo extendemos. Deja lo esencial de ello, sólo vamos a dejarlo así. No obstante, lo que queremos es esta lista aquí, así que vamos a copiar esto de nuevo. Entonces vamos a copiar esta lista más. Y luego veamos qué es. Por lo que es una lista inmutable de algunos tipos de avances aquí. Simplemente vamos a hacer una nueva historia avances. Básicamente tabulador o no una nueva pestaña que vamos a añadir ahí. Entonces lo vamos a hacer es que ahora también vamos a crear una nueva clase. Nuevamente, esta va a ser la historia de Mod en Van cementos. Y esos van a ser, esto va a implementar algo loco también. Esto va a implementar al consumidor con consumidor con el avance terminado. No, eso no es para nada. Lo que yo quiero. Este es lo que quiero terminar avance un go e implementar métodos. Vamos a implementar el método de aceptación. Y eso es todo lo que necesitamos. Y voy a preguntar, voy a copiar esto también. En realidad, sabes qué, no, vamos, hagamos eso. Entonces esto va a ser, solo llamemos a esto el consumidor, un poco más fácil. Entonces lo que queremos es básicamente que queremos ir a terminar avances constructor de puntos. Entonces este es el constructor que acabamos de crear dentro de aquí. Y este constructor, podemos decir constructor de puntos. Y entonces podemos ir avance y luego avances, constructor, constructor de puntos. Y luego creamos un básico. Entonces con la identificación de los padres, nope, eso no está bien con la identificación de los padres. Esta es la ubicación del recurso. Básicamente. Esto es bajo qué? ¿ Bajo qué? El avance es falso. Entonces básicamente, cada avance tiene un avance que viene antes. De lo contrario, es el primer avance en el grupo. Y esto especifica lo que Avance yace antes. Entonces en este caso, digamos, por ejemplo, Story, hierro herramientas. Sólo vamos a tomar esto como ejemplo aquí. Entonces tenemos con display. Ahora la información de visualización puede ser todo tipo de cosas. En primer lugar, por supuesto, va a ser un rubro específico. Entonces solo vamos a tomar los bloques mod, mod blocks, dot, bloque de cobre, dot gets. Entonces vamos a tomar el bloque de cobre y luego podemos tener un, un nombre y una descripción. Por lo que sólo vamos a hacer un nuevo componente de texto de traducción. Y en lugar de eso, en realidad necesitamos especificar una clave de traducción. Sólo voy a hacer en avance, avance , historia, cobre, título de punto de bloque, algo así. Y entonces podemos copiar esto de nuevo. Entonces otro más tranquilo que simplemente copiar esto. Oh hombre, no es así. Y esto va a ser esto. Y esto ahora podemos agregar dentro de nuestro proveedor de idiomas aquí mismo. Sólo copiemos esto dos veces. Asegúrese de que esto sea correcto. Hay algo que decir sobre poner el, poner el, está aquí dentro, en variables como string. Pero llamemos a esto cubriendo. Y entonces esto va a ser algo así como bloques de tolva de coro. Seguro. ¿ Por qué no? Y luego también vamos a hacer, también hay algunas cosas más que vienen aquí. Este va a ser tipo de marco nulo. Por lo que en este caso podemos especificar un tiempo de marco. Simplemente vamos a hacer de esta monja otra tarea de Goldman. Y luego cierto, esto es un brindis. Entonces esto es lo que aparece en la esquina superior derecha. Cuando tengas esto, quieres anunciar esto al chat. Y luego también se pliega por si esto va a ser o no también esto es como uno más abajo. El edit EO es falso y entonces tenemos criterio de ancho. Este es una vez más el criterio que queremos. Vamos a llamar a esto el bloque de cobre. Y luego queremos tener el gatillo de cambio de inventario. Sé que esta es una cantidad de cosas locas. Yo sólo aconsejaría jugar una vez más con él durante bastante tiempo porque esto es sólo un ejemplo. Por lo que queremos que esto suceda si tenemos una cuadra de par dentro de nuestro inventario. Y luego una vez que todo se hace aquí, entonces podemos construir con el consumidor y luego una nueva ubicación de recursos. Curso Mc. Mc fueron inteligentes MOD ID. Y luego también dentro del bloque de tolva de lodo de cuento. Ahora ya no escriben a nadie más. No del todo. Nueva ubicación de recursos construir realmente solo un paréntesis en algún lugar, demasiados o muy pocos. Encontrado. Dos. ¿ Estás seguro de eso? No construir. Estoy bastante seguro de que esto es correcto. Probablemente soy la construcción para el mal para el constructor equivocado. ¿ Un paréntesis más? Sí, uno más paréntesis y uno menos aquí. Como dije, por eso quería copiarlo porque sí, eso es todo un montón de Qué demonios. Pero sí, esto básicamente ahora crea un nuevo avance dentro de la historia. Avancamientos. Y sólo veamos qué podemos ver. También necesitamos agregar esto a los generadores de datos. Esto se va a sumar en la parte inferior aquí. Entonces solo vamos a decir cosas de generador y proveedor, y luego nuevo avance mod, proveedor y generador. Y vamos a guardar esto. Y creo que esto es todo lo que tenemos que hacer. No, eso no es exactamente lo que tienes que hacer. También necesitamos entrar en R. En realidad podemos ir a los proveedores de datos y buscar al proveedor de avance. Y básicamente solo copia aquí todo el método de acto. Y luego simplemente pegarlo aquí. Creo que esto debería funcionar avance totalmente fino. Entonces eso es probablemente sólo el déjame solo revisar. Yo, esto no es avance sino terminado, avanzado, pero en nuestro caso, el ego. Y entonces esto es en lugar de solo, en lugar de copiar, sólo vamos a serializar. Y luego al final aquí, también tenemos un consumidor de avance no terminado, pero de igual con éste. Soy avance pero avance terminado. Y entonces aquí quisiéramos imagen, perdón, avances. Así nombre terminar los avances. mejor, tal vez los avances de modo realmente tienen más sentido en este caso. Pero encontremos, veamos. Se puede ver. Sí. Y luego una vez que esto también se ha hecho, una vez más, todas las pérdidas o para descarga, a veces un poco más fácil. Y luego sólo pasando por él, vamos a correr los datos. Así que ejecute datos y vea si esto funciona o no. Yo dudo en decir que sólo va a funcionar de inmediato porque nos hemos topado con problemas las dos últimas veces. Pero yo soy mucho un ahí van. Por lo que todos los proveedores tomaron un 136 milisegundos. Eso es un poco bonito. Y luego también vamos a ver que nuevos avances, se van a generar dentro de aquí, creo. Ahí vas. Entonces esto es un avance de receta y luego avance de tienda, comercio de bloques de cobre, y así es como se ve el avance en este caso. Sí, así que solo manejemos al cliente y creo que deberíamos conseguir este avance de inmediato. Bueno, vamos a empezar un nuevo, vamos a empezar un nuevo mundo donde no tengamos este avance y entonces realmente vamos a poder ver esto. Y luego el generador de datos, digamos que la Odisea en realidad está hecha. Por último, lo que es importante que yo, sobre todo me gustan los avances podría ser un poco complicado por el momento. Lo que realmente puedo decir es que una vez más, es solo, es cuestión de probar las cosas y decir, vale, quiero hacer esto. Intentarlo no funciona. De acuerdo, déjame probarlo de una manera diferente. De repente funciona y luego se entiende. Así que vamos a ponernos como, no lo sé, sólo vamos a conseguir un poco de hierro. Y creo que en cuanto consigo hierro, tengo algún avance requerido, claro. Y luego miramos los avances, van así que ¿no son estas las herramientas de hierro? Y como se puede ver, qué hace esta cobertura adquirir bloques de copa. Y en cuanto consigo mi bloque de cobre, van avance hecho, van avance hecho, cubriendo y destapando aquí abajo, traen, adquieren un par de cuadras. Nos fijamos en los avances. Ahora está lleno. Entonces eso en realidad es tan fácil como hacer esto. Ahora, como ya he dicho al principio, puede ser un poco desalentador, pero en general, una vez más, todo está disponible como recurso. Y esto sí lo hace un poco más fácil. Si quieres más. Si quieres agregar esas categorías indiferentes, digamos entonces por supuesto que necesitas agregar estos elementos indiferentes aquí, así Story y así sucesivamente. Entonces eso es importante tener en cuenta. Y aparte de eso, creo que cada año generador de datos se ha cubierto en este caso. Sí. Entonces eso es básicamente todo. Y por supuesto, en nuestro caso, por eso dije, no solo borres todo lo que has hecho aquí, que todos los archivos adyacentes. Porque claro que acabamos de agregar básicamente el bloque de cobre y el cobre o bloque y el copiarlo y eso fue todo. Por lo que el resto, o bien necesitas agregar o simplemente puedes mantener ahí tus recursos. Porque de lo contrario vamos a tener un poco de negro y morado en tu juego. También muy importante que para tu, para tu propio bloque. Entonces para un bloques personalizados, por ejemplo, para nosotros, fue el fuego eléctrico. Muy importante que no elimines eso dentro de tu carpeta de activos también porque eso es algo especial. Y normalmente quieres que esas cosas estén ahí dentro. No se sobrescriben, así que no hay problema. Si tienes algunas cosas en tus activos y las tienes hechas manualmente y algo se está generando automáticamente. Eso no es como eso no es un tema. El juego simplemente funciona. Cual es lo que tiene más sentido tomar a alguien así. Y sí, así que eso fue todo para los generadores de datos. Espero que te haya sido útil. A lo mejor para sobre todo al final aquí es un poco más complicado, pero creo que lo hemos pasado bastante bien. Si hay alguna pregunta, por supuesto, siéntase libre de preguntar y me aseguraré de responder. Y sí. 76. (Minecraft) Entity la entidad y las capacidades y las capacidades de la Tile: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a echar un vistazo a nuestra entidad de azulejo. Y en realidad vamos a arreglarlo un poco porque hay algunas cosas que definitivamente no fueron que no funcionaron correctamente y bien, una de las cosas es en primer lugar, el nivel de energía. Entonces no estoy 100% seguro de que traté de ser inteligente siendo como un y vamos a añadir este entero y nivel temprano a él y eso va a estar bien. En realidad no funciona. El tema es que el nivel energético en el momento actual sólo está vinculado en el cliente. Entonces el servidor sorta no lo sabe. Es como que lo sabe, pero tampoco realmente no es extraño, solo que no es una buena idea. Entonces lo primero que vamos a hacer es que vamos a eliminar el nivel de energía i Vamos a conseguir un montón de errores. Eso va a pasar unas cuantas veces durante esta conferencia, pero está bien. Porque lo que queremos es que realmente queremos usar una, una, otra capacidad. Esto también es una especie de la conferencia de capacidad, mirando un poco más en las capacidades. Personalmente, tengo que ser honesto, las encuentro un poco confusas y muchas maneras porque no lo sé, probablemente lo hubiera hecho un poco diferente. A lo mejor hay algo que no entiendo, pero no sé. Los encuentro un poco confusos. Sea lo que sea, creemos dentro de nuestra carpeta de entidad de título, o un paquete o una nueva clase llamada el almacenamiento de energía personalizado. Ahora el almacenamiento de energía personalizado va a hacer dos cosas. En primer lugar, se va a extender desde el almacenamiento de energía plus en lugar de la energía del micrófono neto. Ahora esta es la básicamente como funciona el sistema de energía de flujo Redstone. Y entonces también se va a implementar I nb t serializable de compuesto nb t Así que vamos a asegurarnos de que podamos, básicamente podemos serializarlo y desserializarlo. Entonces hagamos implementar métodos s. Este es el serializado. Entonces en lugar de aquí tenemos una etiqueta fría NVT compuesta, componente nuevo Vt. Y dentro de esa etiqueta vamos a poner un entero en. Y esto se va a llamar energía. Energía almacenada. En realidad no es algo que podamos realmente sí, eso está bien. Y luego desserializar se va a establecer energía, que en realidad es algo que aún no hemos hecho. Y APUESTA punto getInt energía. Lo bastante loco. Pondré energía. En realidad podemos simplemente ver lo que hay aquí. Todo lo que también necesitamos para devolver la etiqueta aquí. Y entonces en lugar de aquí, en realidad necesitamos crear un nuevo vacío público. Establecer energía, energía fija, energía entera. Esta energía almacenada, energía. Y luego en la energía cambió. Esto es sólo algo que sucede que se está enfriando cuando la energía cambia la meta. Por lo que esto está protegido. El vacío sobre la energía cambió sin nada en ella. Por cierto, ahora mismo. Porque vamos a sobrescribir esto. Eso cuando bajamos, cuando nosotros, cuando seguimos con esto. Y luego también vamos a crear un constructor con esto, creo. Sí, capacidad y luego transferencia máxima. Vamos a llamar al super. Y entonces también vamos a decir que este máximo de recepción es igual a 0. Y ahora esto es en realidad cuatro. También dando salida a algo. Entonces cuando salimos algo de un generador, así por ejemplo, generador por supuesto que nunca recibirías nada. Siempre te trasladarías. En este caso, en realidad tenemos un sistema contenido donde vamos a usar esto. Y si miramos en el sistema energético, entonces en realidad se puede ver, por ejemplo, ya sabes, recibir energía. Si no podemos recibir, entonces sólo vamos a devolver un 0 aquí. Si podemos recibir, entonces vamos a decir, oye, tenemos la capacidad y también un máximo de recepción. Esto solo, sólo básicamente una forma de, vale, ¿qué estamos haciendo aquí? Esto es básicamente un montón de matemáticas, asegurándose de que todo funcione bien. Ahora en realidad vamos a anular casi todos los métodos que lo tenemos. Entonces vamos a ver es, así que de aquí a básicamente aquí, voy a copiar esta suma más. Entonces vamos a tener algunos métodos aquí dentro. Entonces, por ejemplo, puede generar energía y consumir energía. Generar poder tiene sentido es simplemente aumenta la potencia y luego consumir energía apenas disminuye la potencia. Ahora por supuesto que no podemos ir por debajo de 01 cosa que es importante. Y no podemos ir por encima de nuestra energía máxima almacenada. Y creo que eso es básicamente. También tenemos algunas sobreescrituras aquí. Nuestra vida diminutas cuentas aquí, pero sólo un poquito. Y luego dentro de nuestra entidad de azulejo, vamos a crear un nuevo almacenamiento privado, final personalizado de energía. Almacenamiento de energía. Esto va a llamar al método de almacenamiento de energía de crear que aún tenemos que crear. También queremos un privado. Final perezoso opcional es el de almacenamiento de alta energía. Esta es la energía, llamémoslo manejador de energía. Seguro. Este es un opcional perezoso del almacenamiento de energía. Ahora esta es por supuesto la capacidad que tenemos, que tenemos que darla aquí abajo. Por lo que dentro de la capacidad Get, ahora agregamos una declaración else if, que va a estar en capacidad es igual a esto, la energía de capacidad, energía para bastante fácilmente. Y si ese es el caso, entonces le devolveremos las redes de punto de fundición manejador de energía. No del todo lo que quiero. Ellos, eso es lo que yo quiero. ¿ Verdad? Entonces si ese es el caso, entonces vamos a devolver la cuenta de manejo de energía que un costo. Y entonces también queremos el método donde creamos esto. Por lo que queremos el costo del almacenamiento de energía uno. Entonces esto va a ser un cliente privado. Almacenamiento de energía, crear almacenamiento de energía. Aquí no tenemos nada. Vamos a devolver un nuevo almacenamiento de energía personalizado con, digamos, una capacidad de un 100 y, y el mex de uno, la transferencia realmente no importa. Pero también vamos a hacer es vamos a anular en energía cambiada. Y vamos a decir Mark sucio. La idea aquí es que vamos a marcar la marca sucia básicamente marca el realmente viraje van intereses que son Chung continuamente decirle a MC que guardas en disco más tarde para que nos aseguremos de que esto realmente se guarde. Esta es la idea aproximada de qué de lo que hace Mark dirty en remove. ¿ Tenemos aquí el método remove realmente? Bueno, nunca he agregado esto aparentemente. Así que vamos a sobrescribir también el método remove y sólo asegurarnos de que invalidamos tanto el láser como las opciones aquí. En lugar de una garrapata, este es el primer punto mundial es remoto. Retorno. Por qué es este el caso que no queremos asumir al cliente. Entonces lo es remoto significa que estamos en el cliente y no queremos llevar a que suceda en el cliente. Por lo tanto, vamos a regresar si estamos en el cliente, en el servidor, el resto va a funcionar. Por lo que necesitamos un nivel energético. Vamos a decir almacenamiento de energía, energía almacenada. Entonces almacenamiento de energía, energía almacenada. Y entonces esto, en este caso, también debe manejarse. Entonces la idea de, bueno, sólo podemos almacenar 64 en realidad ya está manejada por la capacidad. Simplemente lo vamos a mantener aquí por el momento, por el momento. Pero esto en realidad no debería ser necesario. Lo vamos a mantener aquí. No obstante. Almacenamiento de energía, punto-punto-punto generar potencia uno. Entonces para cada uno un diamante donde generar un poder en este caso. Aquí, una vez más, esto va a ser almacenamiento de energía, energía almacenada. Y yo, por supuesto, el cambiado el archivo aquí está disponible como recurso una vez más, para que no tengas que escribir todo. Y también, ya sabes, haré un error en alguna parte. Eso no es lo que queremos. Por lo que extrae energía uno. Y luego importante que realmente digamos falso aquí este es el simulado. Por lo que esto simularía lo mismo con el elemento de extracto. También hay un booleano para la simulación ahí. Entonces sí, el nivel de energía que en realidad ya no necesitamos. Y creo que lo único que entonces tenemos que hacer es leer y escribir y el almacenamiento de energía. Otra cosa que era una cosa fue que alguien se dio cuenta de que cuando salieron, por lo que ahorraron y salieron de su juego y volvieron en que el almacenamiento de energía no ahorró. Eso es, por supuesto, cierto. Es por ello que en este momento nos vamos a asegurar que sí ahorre. Entonces esto va a ser energía. También vamos a meter la garrapata aquí también. Entonces Tic Tac Toe, contador GetInt creo que es el nombre o lo he jalado toma tasa. Sí. Camisa y vamos a llamarla vamos a mantenerla como contador. Creo que eso está bien. Sólo para que tengamos el As también. Por lo general no hace materia, pero sería realmente tonto si tenemos la garrapata puesta como diez mil, veinte mil o algo así. Entonces necesitamos esperar como un montón de tiempo. Y luego sólo porque volvemos a empezar el juego, en realidad reiniciamos el tic. Eso sería un poco tonto. Y es por eso que probablemente queramos poner la garrapata actual ahí también. Esto es genuinamente sólo cuatro cosas cuando lo tienes un poco, una ventaja posterior o más larga. Eso es lo que quise decir. Un poco más de tiempo. Entonces hagamos también energía de salida etiquetada. Y el almacenamiento de energía serializa nb t, y entonces eso es todo. Y creo que lo otro que queremos es que lo queremos marcarlo sucio aquí por si acaso esto no debería ser técnicamente necesario porque comercializamos 30 cada vez que extraemos energía o regeneramos poder, solo en caso, vamos a marcarlo 30 aquí también. No hay razón real para no llamar a esto en realidad. Ahora bien, todo esto está bien. Pero esto debería haber provocado ahora que la pantalla y el contenedor estuvieran un poco confundidos sobre algunas cosas. Por lo que las pantallas no se confunden en absoluto. El contenedor, sin embargo, debe confundirse. Sí. Sí, el contenedor está confundido porque ya no tiene el nivel de energía aquí. Y también hay algunas otras cosas que realmente necesitamos hacer en el contenedor que van a ser muy interesantes en realidad. Ahora, lo primero es que en realidad vamos a agregar un nuevo método dentro de aquí. Voy a copiarlo y luego voy a explicarlo lo mejor que pueda. Porque en realidad es un poco loco si lo digo yo mismo. Entonces pongamos esto aquí. Vamos a copiarlo. Obtener energía es otro método que también sí, obtenemos energía. Por supuesto, también hay un nuevo método que necesitamos y este es básicamente el reemplazo para esto es el reemplazo para el nivel de energía aquí abajo. Sólo vamos a eliminar esto. Nos vamos a quedar con esto y luego todo funciona. Entonces, y luego atraer poder se va a llamar aquí mismo, poder de seguimiento, frío dentro de nuestro constructor para ello. Ahora, la idea de la pista Power es la siguiente. Esto es algo nuevo para mí también. Pero como puedes ver, tenemos este método de soporte de referencia, que es, ya sabes, tiene algunos raros como get integer y luego con estos códigos aquí, y luego tenemos un gran turno de 16 bits. ¿ Qué demonios está pasando? Bueno, la idea es que, y esto generalmente es algo que no conocía tan bien. Al parecer, servidores dedicados en el sitio, los enteros se convierten en shorts. ¿ Qué significa eso? Bueno, un entero es de 32 bits. Número, un corto es un número de 16 bits. Y es por ello que aparentemente necesitamos separar esos en dos enteros de 16 bits. Es por ello que mordimos cambiamos aquí para que básicamente podamos tomar los primeros 16 dígitos y luego poner los primeros 16 bits del número, ponerlos en el primero. Y luego el segundo, mordimos desplazamos 16 bits a la derecha, supongo, y luego tomamos los otros 16. Esa es una especie de idea aquí. Tengo que ser honesto contigo. No pensaría mucho y mucho en esto. Es sólo algo que tenemos que hacer. Y si de verdad surge, te aconsejaría que solo mires en algunas cosas de cómo funciona esto. Se necesita el poder de pista, el método para que el cliente sepa lo que está pasando en el servidor. Entonces en este caso, estamos haciendo todo en el servidor. Y el servidor es como ocho. Ahí lo tienes, cliente. Eso es lo que está pasando. Me parece un poco raro que tengamos que hacer esto, pero aparentemente esto es lo que tenemos que hacer. Tan bien. Cuando miramos en el get energy, simplemente obtenemos la capacidad del azulejo en T. Así que la energía uno. Y sólo vamos a ser, y regresamos esto, el almacenamiento de energía. Por lo que consiguen la energía almacenada. Y si eso no existe, entonces sólo vamos a devolver un 0. Pero claro que sí existe, así que eso va a estar bien. Ahora dentro de nuestra pantalla, ahora tenemos el nivel de energía que no funciona. Pero lo bueno es que esto no es un tema porque ahora tenemos el get energy. Entonces en realidad sí obtenemos energía. Obtener energía. Y creo, si no me equivoco que esto es todo lo que tenemos que hacer, y entonces funciona. Ahora, esperemos que ese sea el caso. Pero en realidad lo soy, no, creo que eso es todo lo que necesitamos. Y lo más importante, creo que es este método de poder de pista, que es un poco raro. No voy a mentir, pero sólo vamos a probarlo. Sólo empecemos. Veamos si funciona o no. Pero en realidad estoy, creo que eso va a funcionar bien. Y tú, no estoy 100% seguro de por qué tuve la idea de que el nivel de energía solo sea un entero aquí. Eso no va a funcionar de todos modos. Pero ya sabes, a veces, a veces, a veces te dan una idea y luego después estás como, Eso es un poco raro que eso definitivamente no debería haberse hecho así. Pero eso está bien. Es por eso que estamos aquí, esto lo vamos a arreglar en esto mientras vamos a echar un vistazo a esto. Por lo que básicamente también agregué todos los archivos JSON para cada una de las cosas excepto para el lenguaje. Y pongamos el electrificado y echemos un vistazo a él para que todo funcione. Tomemos un diamante donde llevemos dos pilas de diamantes. Tomemos también como una pila de alambres de cobre y solo veamos si lo colocamos en si vamos a conseguir o no energía. Estamos obteniendo energía, así que eso es bastante bueno. Los diamantes están disminuyendo. Entonces antes. Ese fue el tema que a veces pudiste duplicar tus diamantes sacándolos. Y si la garrapata estaba en el momento adecuado, entonces el servidor y el cliente, el DD de Dios se sincronizaron. Y entonces básicamente fuiste capaz duplicar básicamente tu pila. Eso ya no funciona. Si ponemos en el alacena agua, como se puede ver, las esmeraldas están recibiendo tratamiento, pero la energía no disminuye. Entonces eso es interesante. Ahora, yo creo que lo único que no disminuye es la energía porque no le gusta que no se muestre. Entonces creo que si estamos si estamos en 32, entonces en realidad va a parar. No se detiene. Muy interesante. Entonces veamos por qué ese es el caso. Fuera de esta suma están especie del juego. De acuerdo, en realidad pude arreglarlo. Entonces como puedes ver, aumenta la energía aquí. Y luego cuando lo pongo en los cables de cobre, en realidad disminuyen. Y luego se detiene en 0 y no genera más esmeraldas. Ahora bien, la razón por la que no funcionó, en realidad puedo demostrarte fue que no usé consumo de energía aquí. Entonces uso el poder de extracción. Creo que se llama energía de extracción. Eso fue lo que era. No estoy 100% seguro de por qué no funcionó. Porque uso el método de extracción de energía en mi escenario de probador porque siempre he puesto a prueba que todo. Y ahí funcionó. Pero en este caso, no lo hizo. No sé por qué. Yo sólo sé que consumir energía es en algún lugar como Hace frío en algún lugar dentro de mi escenario de probador. Pero no hacía frío dentro del, en lugar de este proyecto aquí. Y no soy un 100% seguro por qué. Ahora bien, podría haber algún lugar donde tenga como supervisado o, o no lo vi yo no lo vi. Entonces como en algún lugar donde yo, ya sabes, no lo llamara. Un poco raro. Un poco raro. Si alguna vez lo encuentro donde estuvo eso, yo por supuesto algunos, ya sabes, tal vez añadiré un poco extra en alguna parte. Pero sí, ahora funciona con energía consumida. Una vez más, es sólo algo así como muy menor, pero también debe ser, también debe funcionar. En este caso, es que en realidad almacenará la energía de una vez que abres Minecraft a otra. Entonces lo que podemos hacer es que sólo podemos comprobar eso también. Porque eso fue algo que fue un problema con un estudiante que preguntó, bueno, ya sabes, hay, tengo energía ahí dentro, pero si cierro el mundo que mi energía se ha ido de repente, que por supuesto, bueno que no quieres eso. Entonces, vamos a ver. Entonces si ponemos un poco de energía están bien. Entonces digamos algo así como, quiero decir, hagámoslo así y luego vayamos fuera de tu salve al mundo. Y luego volvamos a entrar en él y ver si todo se ha salvado o no. Pero se ha salvado. Y también se habían ahorrado los diamantes y la energía también. Pero no lo destruyó accidentalmente ahí. Pero sí, así y entonces puedes entrar, poner el poner los lingotes de cobre o alambre de cobre aquí y esmeraldas. Sí, eso es básicamente. Para los fijos al al electrificar están aquí. Y Yan también es como una breve exploración de un poco de las capacidades aquí. En este caso, la energía. En general. Las capacidades son un poco más complejas de lo que se pensaba primero, sobre todo de mí personalmente. Entonces sí, esa es la visión general aquí para esto y también cómo arreglar la entidad de teselas. Había unos cuantos bien, quiero decir, literalmente cosas que no estaban sincronizadas adecuadamente. Entonces sí, espero que te haya sido útil. Espero que eso arregle el pozo, los temas concernientes al poder ahí. También te aconsejaría que echaras un vistazo, echaras un buen vistazo a la clase de almacenamiento de energía aquí y también al almacenamiento de alta energía. Esto es básicamente lo que sucede, lo que la implementación de esta muy útil mirar. Y le va a gustar mucho que parezca que algunas cosas están más claras, ¿verdad? Por lo que lo hace mucho más claro. Y probablemente vas a ser capaz de conjeturar mucho de lo que está pasando de eso también. Entonces sí, espero que esto te haya sido útil. Si hay alguna pregunta relativa a algo que se hizo aquí, por supuesto, siéntase siempre libre de preguntar y me aseguraré de responder. También, recuerda siempre que la totalidad del código fuente está disponible como descarga, como recurso. Y sí, eso fue todo para esta conferencia. Y sí. 77. (Minecraft) creación de comandos personalizados: Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia, vamos a echar un vistazo a cómo crear sus propios comandos personalizados. Eso fue básicamente sugerido, o fue una solicitud en la Q y una sección de este curso. Y alguien dijo: Oye, básicamente quiero tener un comando conjunto de casa y un regreso al mando de casa. Para que básicamente pueda saltar de una sección del mundo a otra sección del mundo. Y sí, vamos a implementar esto. Y esto es básicamente también cómo hacer tus propios comandos personalizados. Empecemos con esto. Entonces leamos a nuestra vista de nuestro MC peor, un nuevo paquete, que va a ser el paquete de comandos. Ahora esto es por supuesto una vez más, sólo la estructura aquí se puede cambiar y cambiar alrededor. Pero creo que aquí tiene sentido un paquete de comandos. Y en lugar de ello, haremos dos nuevas clases. El uno es el comando home set, y el otro será el comando de regreso a casa. Por lo que esos van a ser dos comandos diferentes que vamos a implementar. Ahora, lo hay, te mostraré básicamente cómo descubrí cómo funciona esto. Porque al principio pensé que esto sería realmente complicado porque los microbios cambiaron la forma en que funcionan los comandos y cómo puedes registrarlos realmente. Pero después de cavar un poco, en realidad encontré una manera muy, muy fácil de hacer esto. Y me di cuenta de esto por, vamos a hacer lo siguiente. Entonces si presionamos Control Shift F, Entonces tendremos y básicamente tendremos este hallazgo camino, encontrando caminos. Y si vamos al alcance, entonces podemos buscar algo en todo el alcance. Y ellos son el comando de la forja es lo que realmente quisiéramos mirar. Y eso va a ser escuchar palabras comando si hacemos doble clic en esto. Y como puedes ver, estos son todos los comandos que básicamente puedes hacer con el tablero de barras. Y entonces tienes cosas diferentes para ello. Entonces por ejemplo, dos slash TPS y luego obtienes la salida TPS. Y si entonces pulsamos el botón medio del ratón en cualquiera de esos comandos. Entonces, por ejemplo, el comando TPS, y se puede ver cómo se construye esto. Ahora lo vamos a construir de una manera un poco diferente, pero casi igual. Y como puede ver, el comando real en sí simplemente se registra con el despachador de comandos. Por lo que este comando simplemente tiene en su constructor un despachador de comandos. Entonces esto es exactamente lo que también vamos a tener. Y luego llama al método de registro. Ahora lo vamos a hacer un poco diferente. Entonces en lugar de llamar realmente a estos métodos de registro que están dentro de aquí, por ejemplo, esto sería lo que está devolviendo una especie de constructor de argumentos. Nosotros vamos a hacer el argumento constructor nosotros mismos. Por ahora. Esto se ve un poco, oh, ¿qué está pasando aquí? ¿ Qué ha pasado aquí? No te preocupes por ello. Vamos a pasar por ello. Creo que al final depende de lo que por supuesto quieras hacer. Podría ponerse más o menos complicado. Pero te puedo decir eso en general, hacer un nuevo mando, no tan complicado, dependiendo de lo que quieras hacer con él. Es decir, si tú no sé si de repente no te gustaría que apareciera un pueblo entero. Eso podría ser un poco más complicado. No obstante, si tú, como dije, quisieras simplemente slash home slash home home home home slash home return, eso va a ser realmente fácil y vamos a echarle un vistazo a eso. Y ahora mi primer número y es por eso que te estoy diciendo que esto es que no lo sabía. Está bien. ¿ Dónde registraría realmente estos comandos? Porque no sabía, dónde está este frío ahora, si lo pensamos, esto es un constructor. Y por supuesto este constructor tiene que ser llamado en algún lugar. Y en realidad podemos resolverlo presionando Alt F7. Y luego podemos ver que dentro del fuerte manejador interno en un pequeño evento suscrito llamado en comandos registro evento. Con el evento de comandos de registro. Esto básicamente se inicializa con el Despachador de Eventos aquí. Entonces este es el, este es el constructor al que se llama. Y entonces básicamente decimos config command register y luego bam, eso es todo. Entonces esto es lo realmente genial. Ahora así es básicamente como descubrí cómo funciona esto en realidad. Yo sólo quería mencionar esto rápidamente al inicio del video para que sepas de dónde vino eso porque en realidad no pude encontrar nada en ningún otro lugar. Y sí, así que primero hagamos un constructor aquí. Por lo que publico set home command con, como hemos dicho, el despachador de comando de tipo una fuente de comando. Y éste va a ser el despachador. Y en lugar de aquí, así que lo que podríamos por ejemplo, hacer es que podríamos copiar algo. Lo vamos a construir por nuestra cuenta y bueno, ya veremos cómo se ve esto. Entonces, en primer lugar, tenemos al despachador, este registro de punto absoluto. Y dentro de aquí ahora básicamente construimos nuestro, nuestro comando y luego tenemos comandos dot literal. Entonces este es el resorte, así que este es el nombre de cadena que tenemos que escribirlo, así que slash, y entonces ¿qué tenemos que escribir? Nos vamos a quedar en casa, por ejemplo. Y luego al final de los comandos literal, vamos a hacer otro punto y luego los vamos a decir. Y tendremos otro literal. Entonces básicamente va a ser slash home y luego set. Y esto básicamente establece la posición del jugador actualmente. Y luego lo haremos, y luego tendremos un mando diferente que va a ser regreso a casa, y luego regresaremos a casa. Así es básicamente como vamos a hacer esto. Entonces el, oh, lo siento, no entonces, pero en realidad sí necesitamos poner un nuevo comando aquí, lo siento. Por lo que esto también es el comando dot literal, y esto se establece entonces. Y entonces una vez más en lo literal aquí, vamos a ejecutar algo y eso van a ser sólo los ejecutados. Un método, digamos que vamos a llamar al método de ejecución. Y dentro de aquí necesitamos, si pasamos por encima de esto, realmente necesitamos un comando. Entonces como puedes ver, este es el constructor de argumentos que se devolverá en los comandos forrajeros aquí. Y sólo lo estamos construyendo dentro de nuestra estructura aquí misma. Por lo que esto puede tomar un Comando creyó que este Omán, ellos ego. Y entonces podemos hacer una nueva. Como dije, es un poco más complicado. Vamos a comprobar esto rápidamente. Entonces este es el mando. Y luego vamos a conseguir uno aquí. Y luego dentro de aquí vamos a devolver algo y ese va a ser el método privado y nuevo, los intereses privados en casa. Y eso va a estar frío aquí dentro. Y también necesitamos la fuente de mando. Fuente. Y esa va a ser fuente de Comando. Ahí vas. De acuerdo, entonces eso es básicamente lo que queremos para el despachador, el registro aquí, como dije, puedes o mirar los comandos en los comandos de fragua para ver una especie de cómo funciona esto. Por lo que también puedes requerir ciertas cosas como el nivel de permiso y, y ejecutar donde se ejecuta. Entonces hay algunas cosas que en realidad puedes hacer aquí. No nos vamos a enloquecer demasiado en esto. Si quieres descifrar algo más, entonces tendrás que hacerlo por tu cuenta. Yo lo haré. Yo solo estoy aquí para decirte, vale, así es como vamos a hacer un nuevo mando. Y luego cualquier funcionalidad más allá de eso, eso será lo tuyo para averiguarlo, ¿verdad? Entonces este es el comando set. Ahora. Y en primer lugar, básicamente podemos devolver uno aquí, y entonces eso va a estar bien. Entonces básicamente solo devolveremos un 1 y luego vamos a acumular, de acuerdo, ¿cómo podemos establecer la posición real de casa? Bueno, lo grandioso es que esta fuente de comando, si abrimos esto con el botón central del ratón, esto en realidad tiene muchas cosas. Por ejemplo, el mundo. También tenemos el, deberíamos tener al jugador en alguna parte. Yo creo, jugador, jugador, jugador, entidad separada como jugador. Para que podamos conseguir unas cuantas cosas aquí. Entonces por ejemplo, podemos llegar al servidor player en t, que va a ser el jugador. Y cuando decimos fuente como jugador, ahí tienes. Entonces básicamente convierte el no converge, ¿de acuerdo? Sí, lo haré, lo haremos pronto. Por lo que básicamente convierte la fuente en un jugador, porque la fuente del comando puede ser el jugador o por supuesto también podría ser un bloque de comandos. Ahora en este caso, Sólo vamos a decir como jugador. Ahora bien, si pasamos sobre esto, se puede ver que tenemos una excepción no manejada. Si agregamos esto a la firma del método y se va a guardar arroja una suposición de sintaxis de comando. Y ahora creo, y en realidad no tengo un 100 por ciento de pruebas de esto, pero creo que esto se lanzaría si la fuente del comando, así que si el comando realmente está siendo llamado por un bloque de comentarios, y este la conversión no funcionaría, ¿verdad? Entonces si fuente como jugador no funcionaría, y por supuesto, eso es una excepción. Se lanzará una excepción. Pero eso es sólo algo para ser cauteloso. Y entonces realmente necesitamos la posición del jugador, que simplemente podemos hacer por bloque Pausa. Sería pausa de jugador, reproducción o pausa igual a punto jugador. Llegar a la posición, nueva posición, en realidad, posición. Ahí vas. Ahora en realidad necesitamos importar también pase de sangre. Simplemente ponga el solapamiento de zanahoria y luego presione Alt y Enter. Y luego quiero construir una cuerda que también vamos a apagar. Entonces vamos a dar salida a eso en el chat. Y es básicamente decir algo así como un conjunto de posición de casa o conjunto de casa en. Y eso se va a hacer con el no tan fuerte sino una cuerda Pausa, que va a ser esto más el bloque. En realidad este es el jugador, POS, Jugador pos dot getx loss. Por lo que esto no es estrictamente necesario. No obstante, creo que es una buena idea dar salida a esto también. Se desmayan ¿por qué? Porque también es por eso que lo he hecho mientras estaba probando solo para asegurarme. Está bien. Es la posición de bloque en realidad como es que está consiguiendo la posición de jugador real, consigue z Y entonces vamos a cerrarla con paréntesis aquí. Eso está bien. Y entonces cómo vamos a guardar los datos? Bueno, primero que nada, salida del hogar real, similares, la posición. Y luego vamos a ver, así que esto va a ser fuente. Enviar Feedback es básicamente lo que queremos. Y dentro de aquí tenemos un nuevo componente de texto de cadena set home at. Y luego vamos a decir pausa. Y luego vamos a decir verdad o permitir el registro. Entonces ahora mismo con lo que hemos construido, deberías poder, después de que hayamos registrado este comando, deberíamos poder hacer lo siguiente. Deberíamos poder slash home, slash home, y luego un conjunto de barras espaciadoras, luego terminar el mensaje debería aparecer básicamente con la posición del jugador actual. Y ahora viene la pregunta, bueno, ¿cómo podemos guardar estos datos? Y la forma en que vamos a guardar estos datos es básicamente si entramos al jugador, lo siento, la entidad del jugador del servidor aquí, en realidad estamos usando algo que se llama los datos persistentes. Ahora eso es en realidad en realidad tenemos que entrar al árbol aquí. Por lo que tenemos que ir a la entidad jugador. Y puedo cerrar esto, y podemos ir a la entidad viviente y cerramos esto y luego entramos a la entidad. Porque la entidad tiene algo que son los datos persistentes, ¿no? Entonces está justo aquí. Se trata de un compuesto privado NVT. Por lo que estos datos MPT, sólo hemos especie de tener como poner un vistazo superficial a los datos de la NVT. Pero básicamente era una forma de almacenar datos. Y en estos datos de la entidad jugador, vamos a almacenar nuestra posición. Ahora, ¿cómo podemos hacer esto? Estaremos, salvaremos jugador, obtendremos datos persistentes. Como pueden ver, ahí vamos allá sacamos el compuesto MBT de eso. Y podemos hacer las mismas cosas que hemos hecho con los MBTs antes. Podemos, por ejemplo, poner una matriz int. Y eso es exactamente lo que queremos hacer porque tenemos tres posiciones diferentes o tres partes del vector XYZ que queremos salvar. Por lo que estos serían los caminos de casa, por ejemplo, también podrían llamar a esta posición de casa o algo más. Y luego necesitamos una nueva matriz int con las siguientes tres cosas. Y ese será el jugador pos dot get X, el bilayer pars dot y. y en los caminos de capa. Tu punto pasado consigue z, en realidad no lo que zed. Y de esta manera, la posición ahora se guarda dentro del gueto, datos persistentes del jugador real. Y podemos leer esto más adelante en el comando de regreso a casa justo aquí. Una vez que estamos escribiendo eso, ahora esto es todo lo que necesitamos para este particular una cosa que queremos. Por lo que esto ya es para el comando home set. Como dije, en realidad no es tan difícil. De verdad depende de lo que pongas básicamente este método aquí, ¿no? Entonces si quieres algo que sea más loco y más complicado, como que se remonta a los eventos que tuvimos. Eventos en sí. De verdad, realmente cool y realmente poderoso. Lo mismo con los comandos, claro. Básicamente una cosa muy similar a un evento, solo que el jugador pueda, mientras que básicamente ejecutar ese evento por capricho escribiendo en el chat. Es solo que dependiendo de tu caso de uso y lo que quieras hacer. Sí, eso es que podría haber un montón de Else, lo contrario para descifrar aquí, pero eso depende de ti ahora ¿cómo podemos realmente Algún mandó home command registrado? Bueno, simplemente entramos en los eventos, eventos de modo, y luego hagamos realmente algo como esto. Entonces hagamos un nuevo evento. Y ese evento va a ser el vacío público público o no, eso no lo es. Lo que quiero es que los comandos on registren y luego esto tiene el evento de comandos de registro, qué evento. Y en lugar de aquí, en realidad vamos a hacer exactamente lo que hace el comando aquí, que está aquí en los comandos registrarse aquí mismo. Entonces solo vamos a decir nuevo comando de casa. Déjenme cerrar rápidamente algunas cosas. Por lo que MOD eventos. Ahí vas. Nuevo. Establecer comando home con el Despachador de eventos. Y luego al final aquí podemos decir el comando config, comando que vas registrarte. Y luego decimos Eventos punto conseguir despachador. Entonces eso es todo lo que tenemos que hacer. Y ahora vamos a hacer el comando de regreso a casa. Y entonces básicamente ya terminamos. Entonces eso es, eso es lo genial. Ahora, para el comando de regreso a casa, lo genial es que básicamente podemos casi copiar esto porque la cosa aquí es muy, muy similar. Por lo que esto simplemente se va a devolver el mando a casa. Y luego en lugar de un hogar conjunto, vamos a tener un nuevo int privado. Y esto se va a devolver a casa con básicamente también una fuente de mando, mando o la fuente lamentable, por supuesto el ego y eso así. Y luego vamos a llamar a esto en lugar de establecer casa. Y aquí en lugar de set, vamos a decir regreso, porque eso es lo que queremos volver a casa ahora. Y luego lo que vamos a hacer es que primero vamos a conseguir al jugador una vez en contra. Esto es una vez más la capa de entidad del jugador del servidor es igual al punto fuente como jugador. Lo que una vez más nos pide añadir la excepción al, al comando aquí o al método. Vamos a ahorrar. Y ahora lo que vamos a comprobar, en realidad es porque. Podríamos hacer es decir, hey, obtener la matriz de datos persistentes int y luego vayamos fácilmente. Pero lo que pasa es que en realidad vamos a comprobar si esto está vacío o no. Entonces vamos a decir si player dot obtiene datos persistentes, obtiene datos persistentes, obtiene int array. Entonces vamos a decir entrar en zona y sabemos que la clave aquí es el PaaS de casa. Y si la longitud de esa matriz no es 0, ¿verdad? Entonces esto significa que en este caso, entonces no 0 significa que contiene algo, ¿verdad? Entonces por ahora, en realidad no queremos saber, no queremos guardar esto. En realidad sólo queremos saber bien, no contiene nada. De lo que hemos descubierto, creo y si recuerdo correctamente, la idea es que si se obtiene un error aquí, siempre va a devolver una nueva matriz aunque algo no exista. Entonces por eso comprobamos la longitud y no si tiene o no nulo. Y entonces también tenemos una otra, solo para que básicamente podamos decir punto fuente, enviar comentarios. Y luego podemos decir un nuevo componente de texto de cadena y decir No se ha establecido la posición de inicio. Y entonces también decimos verdad aquí. Y luego volveremos, Vamos, déjame alejar un poco. Devolver uno negativo, uno negativo. Ahí vas. Esto se debe a que tenemos el doble que uno para, ya sabes, entender la retroalimentación. ¿ Estoy loco? Sí, estoy loco. Ahí vas. Eso es lo que es. Y entonces tenemos uno-a-muchos. Ahí vas. Está bien. Enviar comentarios, componente de textos de resorte, no se ha establecido posición de casa. Porque por supuesto, si no hay datos en la matriz, entonces en realidad no hemos asentado el hogar allí. Y ahora lo que queremos es que queremos una nueva matriz int. Esta es la posición del jugador una vez más. Y básicamente podemos leer esto diciendo datos persistentes de puntos de capa. Dot, get int array, get int array con la pausa de inicio clave. Y entonces realmente tenemos esto dentro de esta variable. Y luego podemos usar el set de puntos del jugador y la posición establecida y actualización. Muy bien, cosa bonita que en realidad podemos usar. Y entonces simplemente podemos decir jugador Pos 0, capa uno, y capa dos. Ahí vas. Y ahora se establecerá la posición del jugador en, bueno, exactamente lo que está escrito dentro de los datos persistentes. Y entonces podemos decir una fuente, Enviar Feedback puede decir nueva cadena, capa de componente de texto, regresó a casa, regresó a casa, ellos ego. Y entonces también decir verdad aquí. Y luego al final, lo único que tenemos que hacer es devolver un 1 y todos están contentos, ¿verdad? Y ahora, como dije, esta es una forma de hacerlo. Probablemente haya una multitud de formas de teletransportar realmente a un jugador a una posición diferente. En este caso, esto va a estar bien usando el método set position y update. Y en realidad creo que va a ser muy, muy bueno. Y sí, esto es básicamente todo lo que realmente necesitamos hacer. Y nosotros propios también sólo hay que establecer este año. Por lo que nuevo evento de comando de regreso a casa. Te vas Despachador de Eventos. Y eso es todo. Bueno, muy importante en evento de suscripción, se van ahora mismo, debería ser divertido, ¿verdad? Esto es en realidad todo lo que realmente necesitamos hacer para agregar nuestro set home y evento de regreso a casa. Y supongo que solo empecemos y veamos qué podemos ver. Eso es probablemente lo más interesante. Si esto realmente vuelve, bueno, llévanos a casa y podemos poner nuestro hogar eso. Entonces esa va a ser realmente la prueba. Ahora, en general, realmente creo que los comandos son bastante fáciles de implementar, realmente depende de lo que quieras hacer con ellos. Como dije, esto es muy, muy similar a los eventos que tuvimos antes, donde si tienes una idea interesante para un evento, eso es bastante bueno. Pero pueden llegar a ser realmente complejos dependiendo de lo que realmente quieran hacer con ellos. Pero sí, esto es básicamente todas las herramientas que realmente necesitas para hacer tus propios comandos. Entonces eso es bastante bueno. Y veamos qué podemos ver. Entonces, en primer lugar, engendramos aquí en alguna especie de bosques de secoya. Entonces vamos a movernos un poco de la luz y vamos a pasar a este cerro aquí. Y luego antes que nada, lo que vamos a decir es que vamos a rebanar a casa. Entonces como pueden ver, esto ya está aquí como sugerencia. Por lo que podemos básicamente auto completado. Y como pueden ver, también tenemos los dos literales. Así que primero digamos slash regreso a casa. Pero como pueden ver, no se ha establecido ninguna posición de casa porque no hemos establecido ninguna posición de casa. Entonces nuestra declaración if, si miramos hacia atrás simplemente aquí, nuestra declaración if ha funcionado exactamente como queríamos que lo hiciera. Entonces eso es realmente, muy bonito. Y ahora lo que queremos es que queremos fijar nuestra posición aquí mismo. Por lo que queremos decir home slash, slash home asentado, van y ahora tiene, ha puesto casa en posición negativa 718200120. Ahora veamos si presionamos F3, se puede ver negativo 2, 34, 91, y 120. Entonces es más o menos exactamente donde estamos. Entonces eso es bastante bonito. Ahora volemos lejos. Voy a ver esto. Un bonito, bonito, tranquilo pueblo aquí mismo con unos búfalos también. Eso es bastante bonito. Y entonces, sí, vamos a, en realidad volemos por aquí. Ahora deberíamos volver ahí si llamamos al regreso a casa. A ver si eso funciona. Por lo que por supuesto también podemos presionar la tecla Tab para autocompletar esto. Y si hacemos esto, como se puede ver, capa regresó a casa. Así de fácil es. Eso es todo lo que hay que hacer para que hagas tus propios comandos. En este caso, el set home y el comando de regreso a casa. Y sí, esto es básicamente todo lo que quería mostrarte. Una cosa más con la que quiero dejarte son los otros comandos que hay. Entonces si solo en realidad, si podemos hacer eso así. Entonces creo que hay un comando del tiempo que es como el más fácil de llegar. Sí, exactamente. Entonces si nosotros, por ejemplo, ponemos a tiempo comando aquí. Por lo que una vez más, Control Shift F y luego abre el comando time. Como puedes ver, aquí es un poco más complicado. Pero esto es algo que puedes echar un vistazo con los comandos, básicamente lo que pueden hacer. Y luego también puedes seguir este método de registro. Este es un método de registro estático en este caso. Y si miramos eso, entonces dentro de la, dentro de la clase de comandos, hay todos los comandos normales o los comandos vainilla, digamos. Y puedes abrir cada uno de esos una vez más con el botón central del ratón. Entonces, por ejemplo, algo así como el Modo de Juego. Y luego puedes mirar todo lo que está pasando aquí. Y básicamente puedes simplemente, bueno ya sea copiar o ampliar esto, lo cual es realmente bueno y realmente agradable. Echemos un vistazo a esos. Entonces sí, eso es con lo que quería dejarte. Una cosa muy agradable y comandos. Tengo que ser honesto. Mucho más fácil de lo que personalmente anticipé. Pero sí, una vez más, eso fue todo. Pero si hay alguna pregunta, por supuesto, siéntase libre de preguntar y me aseguraré de responder. Y sí. 78. (Minecraft): Muy bien, bienvenido de nuevo al curso de Minecraft. Y en esta conferencia vamos a echar un vistazo al tema más solicitado que he recibido desde probablemente el primer día. Y así es como hacer tu propia dimensión personalizada. Sí, por fin estamos aquí, por fin está pasando. Y una vez más, al igual que la última conferencia con los comandos, fue mucho más fácil de lo que había anticipado. Hay muchos cambios entre las versiones de Minecraft con ambos del mundo, la generación mundial, y la generación de dimensión también. Ahora por suerte, lo que ha pasado es que la generación de dimensión se ha movido básicamente a tener solo el, por lo que básicamente se puede hacer todo dentro de los archivos JSON. Ahora eso es bastante guay. Si quieres tener paquetes de datos hechos Para nosotros, en realidad también es muy fácil porque solo tenemos que tener dos archivos JSON que definan qué tipo de dimensión es. Y luego también cómo se ve. El, yo no diría que hay algunos inconvenientes ahí, pero bueno, vamos a ver cómo funciona esto. De lo único que mencionaré esto desde el principio, porque algunas personas podrían estar un poco decepcionadas. No vamos a echar un vistazo a cómo hacer tu propio portal. Eso no va a ser una conferencia. En este caso. El modo en que vamos a teletransportarnos es haciendo click derecho. Probablemente lo vamos a hacer el cobre por encima sólo porque me parece que ese tipo de, uh, un poco gracioso. Pero vamos a hacer clic con el botón derecho en un bloque y luego teletransportamos al otro mundo, Básicamente la otra dimensión. Sí, si fueras un portal, entonces stat para decir esto, pero entonces tendrás que resolver esto por tu cuenta. Pero creo que esto debería ser factible porque la teletransportación en sí ocurre dentro del bloque cuando hacemos clic derecho. Y tampoco es tan complicado. Bueno, sí, vamos a ver lo que podemos ver y almacenar haciendo un nuevo paquete en una especie de paquete mundial llamado dimensión diamante Xian. Se van. Y luego dentro de aquí, vamos a hacer una nueva clase sostiene la clase mod di menciones. Ahora esto en realidad va a ser un poco diferente nuestro otro bien MOD y luego algo cláusulas. Esto va a ser tener una estática pública y luego una clave de registro en realidad de tipo mundo. Y sólo vamos a llamar a esto el ¿Qué tal como KJ? ¿ Dim? Claro, eso es genial. Aj. Así. Sí, me encanta el conteo y dibujar dimensiones. ¿Por qué no? Y luego también importemos todo esto presionando Alt y Enter en esto. Entonces también necesitamos un método público de registro de vacío estático. Un método de registro. Y éste en realidad hará lo siguiente. Nosotros diremos. A j Dim es igual a clave de registro pasarela punteada 38. Y esto va a tener que leer el registro simplemente re, no una clave mundial. Y voy a tener una nueva ubicación de recursos con por supuesto nuestro MC force.html Viernes. Y entonces este es el camino en es básicamente el nombre, que sería camisa KJ. Ahora esto es todo lo que necesitamos para registrar aquí nuestra dimensión. Y en lugar de MC curso, por supuesto vamos a sumar en la parte inferior, las dimensiones mod se registran. Entonces lo genial aquí, o lo otro que somos, la forma en que vamos a crear esto es sin un registro diferente en este caso, pero eso está totalmente bien porque esto realmente funciona igual de bien. Y entonces lo que vamos a necesitar dentro de nuestra dimensión aquí es básicamente una.Y esto sería, voy a llamar a esto los teletransportadores KJ. Desgarro de teletransportación. Ahí lo tienes. Sí, esa es una. Y esto implementará la interfaz AI tell a cuarto. Y este teletransportador es básicamente mientras lo que nos teletransportará. Esto es lo que vamos a llamar cuando hacemos clic con el botón derecho en nuestro bloque más adelante. Y esto va a tener algunas cosas. Ahora, he adaptado esto desde un repositorio GitHub muy, muy bonito, que era la dimensión de luz diurna. Si no me equivoco, esto definitivamente será esto definitivamente sería enlazado o post de blog. Eso no está del todo bien. Ahí lo tienes. Y esto se vinculará como recurso porque eso fue invaluable. Porque por lo general he tratado de echar un vistazo a las dimensiones. Y el tema es que, por ejemplo, con herramientas de RF, gran mod, absolutamente genial, increíble, incluso base de código, ¿ verdad? Es realmente bueno. Yo sólo quiero la dimensión. Hay alrededor de un 180 clases diferentes que son para la dimensión porque el paquete MOD real o el otro modo es tan vasto como grande. Es tan enorme que sí, es un poco mucho. Y es por ello que la dimensión de luz del día, porque eso es lo único que añade el modo es una nueva dimensión. Y eso es realmente bonito. Tan pública estática, booleana, esto va a ser dentro de una dimensión. Mencioné regla. Lo dejaremos. Eso es lo que queremos. Sí. Y luego tenemos un público K, J teletransportadores. Por lo que esta es una y nueva en nueva trama aquí. Perdón. Este es un nuevo constructor con el booleano aquí. Por lo que esto es simplemente dimensiones interiores. Y entonces básicamente podemos establecer este punto, esta posición es igual al pasado, y luego también este punto dentro. Perdón, esto es estático. Eso no funciona. Por supuesto que no podemos hacer esto, pero no estéis locos. Dimensión interior es igual a en asentamientos que consiguieron. Y entonces tendremos lo único que vamos a anular. Y eso va a ser un, realidad tenemos que renombrar esto dentro de la camisa. Podría no. Algo así. Por eso se van. Y entonces lo único que necesitamos tener aquí, esto es una entidad pública, colocará entidad. Y esto va a tener una entidad. Entidad. Tiene un mundo servidor, que es mundo de aprendizaje profundo. Vamos a tener un mundo de servidores. Justo el mundo de destino. Vamos a tener el flotador ustedes. Vamos a tener una función de booleano y un tipo de entidad de retorno. Y entonces esta es la entidad reposicionada. Y así va a ser. Sí. Está bien. En primer lugar, entidad, sí. El servidor roles viejo y y y luego la función Java util que vas. Entonces este es el método de anulación o el método que necesitamos anular aquí. Y esto básicamente es lo que es responsable de nuestro teletransporte. Y ahora tenemos muchas cosas que hacer. Entonces, en primer lugar, que la entidad que nos dan aquí va a estar cayendo o reposicionando entidad punto aplicar con un faltas aquí. Y luego vamos a tener un doble. Entonces este doble es, si no me equivoco, la y, discúlpame, por qué me preguntaba por qué van. La posición y donde se encuentra la capa superior. Bien básicamente disponible para teletransportación. Esa es una especie de idea aquí. Entonces vamos a decir, si es así, no está dentro de dimensión que lo que vamos a hacer es que vamos a decir y es igual a este punto, consigue yY entonces nos vamos a quedar lo siguiente. Vamos a tener el, vamos a tener un puesto que va a ser el médico de la nación escritorio. Pausa, eso es mejor. Que es un nuevo pase de bloque, que va a ser el x e y de esta posición. Tan bueno. Y este punto conseguir z historia. Se van y luego la y sólo va a ser la Y que hemos calculado de antemano. Y luego hay algunas cosas que tenemos que hacer, y eso es el número uno y el entero con tries. Ahora esto está ahí, creo, para que básicamente podamos tratar de decir hacia arriba y a veces podría no funcionar. Y si no funciona, entonces lo detendremos básicamente. Entonces tenemos un bucle while y esto va a ser un bucle salvaje loco, como la cosa ahí dentro. Entonces vamos a tener un mundo de destino, lo siento, el destino donde bagel. Y vamos a decir, de acuerdo, conseguir los siguientes bloques, su estado de bloque en la siguiente posición, y esa va a ser la posición de destino. Entonces esta es la posición donde queremos básicamente lo aparecerá. Y luego decimos git material. Y si eso no es igual a material.ai, entonces tendremos que cambiar algunas cosas. Y eso va a ser, básicamente vamos a subir. Entonces no sólo va a ser aire también podemos, así que no queremos engendrar de otra manera redonda. Queremos desovar en el aire. Pero también no debe ser agua, por lo que no se puede destinar. Hagamos realmente algo como esto. Y entonces vamos a moverlo aquí abajo. Lo sentimos, el mundo de destino queda bloqueado. Estado en posición de destino. Una vez más, voy a decir, esto va a decir que es reemplazable con el punto de fluidos del agua. Y este no debería ser el caso. Entonces vamos a tener otro fin, que va a ser el mundo de destino y conseguir posición negra, una historia de estado de bloque. Y luego vamos a tener la posición de destino, que está subiendo. Entonces esta es una posición arriba. Entonces esto es yets off offsets. Este bloque fue por uno, y esto está en la dirección ascendente. Y va a ser, lo siento, esto es aquí abajo, que también va a conseguir material. Y voy a decir esto, si esto no es igual al aire. Y entonces lo último que podrías haber adivinado probablemente sea básicamente éste. Vuelve a copiarlo, simplemente negarlo. Y esto va a ser, es reemplazable. Y entonces no hay fin aquí mismo. Y luego éste, y luego el ego 0. Y luego también hay otro fin y esto va a ser papas fritas es menos 25. Lo que hace es básicamente decir, Ok, Escucha, necesitamos conseguir el destino donde podamos engendrar dentro de este mundo. Y básicamente vamos a movernos hacia arriba. Y eso es lo que hacemos aquí. Entonces decimos que la posición de destilación es igual a la posición de destino disparada por dos. Entonces vamos a subir dos cuadras cada vez. Y vamos a probar esto por 25 veces. Y dos fueron como, al diablo, esto está bien. Por lo que la idea es que estamos tratando de encontrar una posición en la que los dos bloques donde engendraría el jugador es el aire. Eso es básicamente lo que estamos tratando de hacer aquí. Esa es la forma más fácil de explicarlo rápidamente. Digamos que eso es todo lo que hace esto, es básicamente comprueba si una posición en particular es válida o no. Sí, eso es bastante bueno. Y entonces lo que podemos hacer es decir entidad, conjunto, posición y actualización. Y esta va a ser la posición de destino, ydx, posición de destino get y y posición de destino get es la E o Z. Y esto es exactamente lo hemos visto en la conferencia de comando personalizado también. Entonces eso es realmente, muy bonito. Y ahora tenemos que hacer una última cosa. Y eso va a ser, vamos a decir si dentro de la dimensión, entonces queremos hacer algunas cosas y eso va a ser un booleano para poner bloque. Ahora la idea es que vamos a, por supuesto, si esto básicamente la teletransportación de vuelta. Entonces queríamos poner un bloque donde engendramos, porque de lo contrario vamos a pasarlo mal. Entonces esto va a ser para un bucle for. Esto va a ser un bucle foreach básicamente. Entonces estamos bloqueados más allá de la casa de cheques. Esto se va a bloquear. Pausa, ponte todo en la mutable cosa loca de Mark. Ni siquiera te preocupes por ello. Voy a explicar esto qué es esto. Esto no es por ese poniente y esto es 10. Entonces vamos a hacer esto en un diez por 1010 por diez por diez, supongo radio. Esto es después, después de esto o en el ego. Entonces después de esto, la coma Oeste y luego otra ruta de destino de arriba por 10 y luego Oriente por 10. Y luego una vez que tengamos esto, entonces podemos ir y tener un bucle for. Entonces básicamente vamos a revisar cada posición de bloque en un cubo de diez por diez. Y luego vamos a decir lo siguiente. Si la posición de destino dot-dot-dot todavía, lo siento, mundo de destino, que distinción muy importante ahí, conseguir estado bloqueado en la posición, comprobar posición. Entonces esta es la posición que básicamente estamos pasando por el bucle for que estamos iterando. Si se bloquea el teorema de Bloch es una instancia de cobre o porque lo que vamos a hacer es que vamos a tener el trabajo corporativo. Esto es muy importante. Y dirás reemplazar cobre o con tu bloque de pedidos Taleb ¿verdad? Ahora esto es muy importante. El cobre o en este caso sólo estamos poniendo esto porque tenemos una instancia de este bloque de mapa aquí como clase. Y podemos fácilmente básicamente acceder este va a ser tu bloque teletransportado. Este es el bloque clic derecho que básicamente tiene la capacidad de teletransportarse. Entonces vamos entonces también a romper. Entonces, básicamente, una vez que tengamos un bloque de cobre encontrado, receta como Ok, Ok, no necesitamos poner un bloque. Ahora si no encontramos esto, entonces vamos a decir si pones candado, lo siento, Ahí tienes. Vamos a decir mundo destino, ese bloqueo establecido, estado de la posición de destino. Y esto va a ser bloques de barro, punto o punto get. Eso obtiene el estado por defecto. Oh, mira eso. En realidad ya lo ha hecho por mí. Eso es muy bonito. Y luego al final, sólo vamos a devolver la entidad. Ninguna entidad. Ahí vas ya. Entonces, ¿qué hemos hecho aquí? Si somos teletransportados a nuestra dimensión? Queríamos poner un bloque de cobre porque este es el bloque que nos lleva a la dimensión y necesitamos algo para volver. Y esto es exactamente lo que estamos haciendo aquí. Si los, si realmente encontramos este cobre los bloquean, no necesitamos hacer nada. Si no encontramos el bloque, entonces exactamente donde nos teletransportamos, vamos a poner este bloque. Eso es todo lo que hacemos con esto. Ahora los teletransportadores KJ, como dije un poco. En realidad está bien. No es demasiado loco. Si nosotros si lo tomó primero echarle un vistazo, podría estar un poco loco, pero en general, espero que no fuera demasiado loco. Este nos limitamos a comprobar que realmente podemos engendrar. Y este simplemente le pondríamos un bloque en particular a nuestro bloque de cobre para que podamos teletransportarnos de vuelta. Y ahora lo que necesitamos hacer es entrar en este mismo bloque de cobre y modificarlo. Ahora, la copa, ¿qué necesitamos? Necesitamos un tipo de resultado de acción pública. Esto está en bloque o desbloquear activado. Sí. Eso es demasiado. Demasiado. Vamos a anularlo y vamos allá van. Porque mecanografiar eso es sería absolutamente ridículo. Ellos hace, entonces, bien, en log activados, esto significa que hacemos clic con el botón derecho en el bloque. ¿Qué necesitamos? Necesitamos lo primero en lo que queremos mundo es remoto no debe ser el caso. Entonces si no, si no es remoto, vamos. Siguiente cosa. Si el jugador está agachado, forma redonda está agachando un ego. Si ese no es el caso. Por lo que el jugador sólo puede hacer clic en el bloque de portada. Si no lo es. Si no están agachados, entonces tenemos el servidor. Necesita el servidor Minecraft Server, que es el servidor, es igual a Berlin dot Git server. Curiosamente suficiente. Y ahora tenemos que mirar esto. Y entonces decimos, vale, si el servidor no es nulo, entonces podemos proceder. Y entonces veremos esto. Vamos a decir, vale, vamos a ver, qué es este mundo ahora, nos estamos poniendo interesantes. Entonces si este mundo dot-dot-dot dimensionalmente. Entonces ahora básicamente estamos revisando en qué dimensión donde si esta es la multi-dimensiones mod di menciona que KG dip, ¿verdad? Si estamos dentro de nuestra dimensión personalizada, entonces lo que queremos hacer, bueno, queremos decir esto, queremos permanecer el mundo del servidor abrumado es igual a server dot get world. Vamos a pasar por esto uno por uno después de que hayamos terminado su world.org. Pero sólo vamos a rápido, rápido, vamos a semiquinona hacer esto. Entonces vamos a conseguir el mundo de los servidores. Ese va a ser el abrumador. Y ahora lo grande es que si este exceso de trabajo no es nulo, para que realmente podamos teletransportarnos a eso. Y vamos a decir, vale, jugador punto cambió. Mencioné muy bonito mando. Nuestro método. Tengo que ser honesto. Vamos a ir al exceso de trabajo y vamos a hacer un nuevo teletransportador KJ con lo siguiente. La posición en la que se encuentra este bloque. Y con un falso, un falso porque no somos, básicamente, se teletransporta dentro de nuestras dimensiones. ¿ De acuerdo? De acuerdo, Si, y ahora pensemos en esto. Sí, eso está bien. Ahora, la necesidad es que queremos éste, lo siento. Eso es un poco demasiado. Y entonces tenemos otra. Y eso más es muy importante. El formateo aquí siempre lo mismo. Entonces esto va a suceder si estamos dentro de nuestras dimensiones. Si no estamos dentro de nuestra dimensión y hacemos clic derecho en un bloque de cobre. Bueno entonces probablemente debería llevarnos a esa dimensión. Entonces vamos a decir mundo servidor. Y esta va a ser la dimensión clave k-j. Dim, claro, eso está bien. No lo hizo. Y entonces vamos a decir servidor, ese mundo. Y esto es algo genial. Muchas dimensiones dot KJ dim, ¿no es agradable? Entonces en lugar de usar mundo que abrumó debilidad, dicen multi-dimensiones que AJ tenue. Eso es realmente bonito. Tengo que ser honesto. Y entonces también comprobamos si eso es nulo o no, acaso porque nunca se sabe. Entonces esto es inigualable nulo. Y si ese es el caso, entonces vamos a decir jugador dot-dot-dot cambio dimensión. Voy a decir que este es el KJ dim. Nueva orden telefónica KJ. Posición. Y entonces vamos a decir verdad porque ahora estamos teletransportados dentro de la dimensión. Y una vez que eso se hace, en realidad una vez todo esto hecho, así que esto está justo aquí. Vamos a devolver el tipo de acción resultado del éxito porque somos exitosos. Ahora, después de todo, en realidad. Sí, después de todo, sí, queremos devolver el activador de superbug. Eso está bien. Y eso es todo. Sé loco lo que está pasando. De acuerdo, vamos a pasar por esto. En primer lugar, estamos comprobando si básicamente no estamos en remoto o no. Entonces básicamente estamos en ejecutar esto en el servidor. Lo siguiente que no estamos agachados deberían ser los dos. Suficiente fácil. Entonces estamos consiguiendo el servidor y asegurarnos de que en realidad es existir. Si el servidor existe, estamos revisando, ¿de acuerdo? ¿ Estamos dentro de nuestra dimensión predefinida? ¿ Dónde estamos en otra dimensión? Si estamos dentro de nuestra dimensión, entonces el, entonces el destino que queremos va a ser el abrumador. Por lo tanto, estamos consiguiendo el inframundo, verificando si eso es o no nulo y luego básicamente teletransportado a la borda. Si sin embargo, no estamos en nuestra dimensión, entonces queremos teletransportarnos a esa dimensión. Y entonces básicamente vamos a hacer exactamente lo mismo aquí. Ahora algo como esto probablemente podría extraerse a su propio método. Probablemente con algunas utils. En este caso, totalmente bien. Te lo dejaré a ti, sobre todo si tienes múltiples dimensiones. Y ahora lo último que necesitamos es la dimensión real. Bueno, una especie de cómo, cómo genera. Y vamos a tener esto dentro de nuestra carpeta de datos. Por lo que data m puntúa. Y luego tendremos un nuevo directorio llamado Diamond. Y luego tendremos otro directorio que se va a enfriar. Die mención de subrayado tipo. Muy importante. Ahora, lo primero aquí va a ser un nuevo archivo, KJ db.json. Una vez más, muy importante que siga el adyacente. Y voy a copiar más de unas cosas, que sí, voy a copiar y luego vamos a mirar rápidamente esto. Entonces, en primer lugar, tenemos un tipo. Este es simplemente nuestro MC, por lo que nuestra melodía. Y entonces el nombre que hemos especificado aquí mismo, Oh, camino de Stella aquí mismo tiene que ser el mismo allá. Y luego tenemos el generador. Y el generador es realmente lo que está muy loco. Entonces en este caso, lo que vamos a hacer aquí es simplemente un terreno plano básicamente con el a la, a la altura, uno tendrá lecho de roca y luego de altura uno a 60 tendrá arenisca. Eso es todo. Todos van a ser aviones, uh, sin estructuras, sin rasgos, nada, ¿verdad? Si quieres tu propia dimensión y quieres algo elegante, voy a tener un recurso ahí dentro el cual va a estar en el, una vez más en el fandom.com de Minecraft, que tiene la dimensión personalizada, especie de JSON archivos allí y tiene resaltada toda la sintaxis. Es increíblemente útil. Y si de verdad quieres más control y realmente queremos especificar lo que está pasando ahí. Entonces puedes echarle un vistazo a eso. Para esta conferencia, la vamos a dejar en esto. Vamos a hacer una nueva dimensión. La forma en que lo construís. Eso una vez más, tienes que echarle un vistazo a eso en tu tiempo libre, pero estoy seguro de que podrás hacer esto. Tengo todo el, tengo total confianza te tipo dimensión. Necesitamos una cosa más y ese va a ser un nuevo archivo, una vez más, también llamado KJ db.json. Y voy a copiar rápidamente esto también. Y esto son sólo algunas variables o parámetros básicos que básicamente tiene el mundo aquí. Y como el tiempo. Si las apuestas funcionan, ese tipo de cosas. Una vez más, aquí con el nombre de muy importante que este es el MOD ID y te especificaron nombre. Y eso es todo. Por supuesto, todo lo que hemos hecho, tanto los nuevos archivos JSON como las clases están disponibles como un recurso como siempre. Y ahora, echemos un vistazo si esto realmente ha funcionado, si nuestro arduo trabajo ha dado sus frutos. Entonces empecemos a este cliente y veamos si podemos entrar en nuestra nueva dimensión haciendo clic derecho en una tolva o es un poco gracioso, pero eso es de esperar. Está bien. A ver. Vamos en realidad, vamos a que se lo deban, está bien. Y ahora me interesa mucho si hemos hecho o no todo en este momento parece un poco encontrar que realmente por supuesto necesitamos crear un nuevo mundo para esto. Entonces, solo creemos un nuevo mundo aquí en modo creativo. Y entonces vamos a crear un mundo nuevo. Lo primero que va a pasar es que vas a conseguir este tipo de mundo usando configuraciones de experimentos no son compatibles. Ahora esto se debe a que tenemos una nueva dimensión. Y Minecraft es como, ¿ estás seguro de que quieres hacer esto? ¿ Ahora? Estamos seguros. Para que podamos proceder. Si bien estás probando esto, probablemente vas a tener que lidiar con esta flecha cuando creas un nuevo mundo. Y creo también cuando cargas en un mundo, así es como va a ser. Puedes hacer clic en Proceder y todo va a salir bien. Si eres modesto, cada Demotic, Hay un mapa que dice, eso es como no hay error de generación mundial experimental ni advertencia. Eso definitivamente es algo que debes incluir en un simulacro de espalda si quieres, si fueras a usar tu amorfo moderno. Pero sí, eso es, básicamente eso. Y vamos a ver, vamos por el cobre o el bloque. Esto va a ser muy interesante. Entonces vamos a bajar esto. Y ahora The, ¿Estás listo, gato? ¿ Estás listo? Haga clic derecho. Todos. Y aquí estamos. Y ahí estamos. Un mundo plano con un montón de arenisca, igual que hemos hecho en. Y luego si echamos un vistazo a esto, entonces si presionamos F3, entonces en realidad se puede ver aquí mismo MC curso KJ dim. Entonces esta es nuestra dimensión. Se trata de aviones como básicamente lo hemos puesto como un archivo JSON. Y sí, eso es básicamente todo. Y ahora haríamos clic con el botón derecho en este. En realidad vamos a ser retenidos, teletransportados de vuelta exactamente donde este bloque. Por lo que básicamente podemos teletransportarnos unos de otros y también siempre obtendremos el bonito efecto de sonido. Sí, eso es, eso básicamente es como yo, creo en general, la dimensión es más fácil de lo que hubiera anticipado si soy absolutamente honesto, porque había muchas cosas rodeándolo. Pero en general, ahora mismo pienso en realidad que es bastante sencillo. Espero que esto fuera de utilidad para ti y aprendas algo nuevo. Pero sí, una vez más, todo está disponible como recurso así como el enlace tanto al GitHub de la dimensión de luz, que es absolutamente increíble, la dimensión de luz del día. Y así como el vinculado el fandom de Minecraft para las dimensiones personalizadas para que básicamente puedas personalizar tus archivos JSON como quieras. Sí, espero que esto fuera útil para, como dije, si hay alguna pregunta, por supuesto, siempre siéntete libre de preguntar y me aseguraré de responder. Y sí. 79. (Minecraft) crea una entity de mosaico de los grandes pezones: Muy bien, bienvenido de nuevo el curso de microondas. Y en esta conferencia vamos a sumar un nuevo gran ajedrez. Ahora, les advertiré que esta conferencia, sin duda va a ser 40 por todo el lugar un poco más rápidamente. Y es posible que no entiendas todo lo que está sucediendo. Ahora. Eso es porque el agregar un nuevo cofre en realidad no diría necesariamente duro, pero está muy involucrado porque hay mucho, mucho, muchos componentes diferentes que básicamente necesitamos conseguir. Tenemos que hacerlos bien para que todo funcione. Y luego una de las cosas, tristemente, esa va a ser la tapa que se abre y cierra. Eso no funciona. Ahora, en realidad no estoy seguro de por qué he vuelto a revisar y volver a revisar todo. Y yo simplemente no puedo conseguir que funcione. Si hay alguien por ahí que después de ver esto, sepa por qué. Estoy muy contenta de agregar un adenda ya sea a esta conferencia o como siguiente conferencia para decir básicamente, bien, así es como podemos arreglar eso. Pero por ahora, sólo vamos a, sólo entre comillas tenemos un cofre que podemos abrir y que mostrará una GUI, y eso va a ser la semana siguiente. En realidad ya he preparado esto. Es éste. Por lo que es un cofre más grande. Y sí, vamos, vamos a ver sólo qué podemos ver y cómo podemos construir esto un cofre más grande. Entonces, en primer lugar, claro, lo que vamos a necesitar es que vamos a necesitar un nuevo T. de Tailandia Y van a haber las entidades fértiles. Eres una nueva clase llamada el pecho grande apretado. A mí me encanta. Ahora esto va a heredar o va a extender la siguiente entidad de azulejo de pecho extiende. Y va a implementar las siguientes dos interfaces. Ihs, tapa y el, IT, el piloto idéntico. Y en realidad podemos revisar las entidades del azulejo del pecho. Entonces si hacemos clic en el botón medio del ratón en esto, entonces realmente nos meteremos en esto. Y ahora empieza la verdadera cosa divertida. Básicamente podemos llevarnos todo aquí y simplemente copiarlo. Vamos a cambiar algunas cosas, pero la mayoría se va a quedar exactamente igual. Entonces esto es lo que vas a hacer. Vas a bajar a la entidad de azulejo del pecho a la línea 277, lo que tu cursor ahí. Y luego vas a subir y básicamente ir hasta aquí arriba, pulsa la tecla Mayús y pulsa el botón izquierdo del ratón, y luego pulsa Control C. Entra aquí, controla V, y todo está aquí dentro. Esto es hermoso. Ahora, vamos a tener una serie de flechas aquí, que vamos a arreglar. No te preocupes por ello. Todo esto se va a arreglar en el camino. Lo primero, por supuesto, es el nombre del real, el nombre del constructor real está mal. Por lo que podemos simplemente copiar este y ponerlo en ambos aquí. Y entonces esto es algo que necesitamos cambiar un poco, cintura por la línea. Aparte de eso, lo único que queremos cambiar es el número de artículos que se almacenan. Esto va a ser 66. Ahora lo sé porque una vez más, si reabro nuestra interfaz de usuario del pecho, en realidad podemos ver que tenemos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. En fila y 123456 filas. Por lo tanto, eso nos da 66 artículos que esta prueba puede almacenar esta imagen. Y eso es básicamente esto. Y luego como dije, vamos a hacerlo también, este inventario de tamaño también va a ser 66. Entonces esto es, no sé por qué necesitamos esto en dos lugares. Al parecer es cómo se construye el cofre real y en general, y esto está casi bien. Ahora es lo que probablemente va a ser un poco raro es porque normalmente cuando tenemos cofres uno al lado del otro, los cofres combinados a un dentro de un pecho nuevo. Ahora en realidad no queremos este año, pero esto en realidad está bien porque esto va a estar bien, básicamente, ya sabes, de todos modos no va a pasar. Entonces en cualquier lugar que tengamos, por ejemplo, tu contenedor de pecho, necesitamos hacerlo, después de haber hecho nuestro gran contenedor de ajedrez y nuestra pantalla de pecho grande, en realidad necesitamos cambiar esto, pero ahora mismo podemos realmente simplemente mantenerlo como lo es. Esto en realidad está bien. Casi básicamente copiando sobre todo desde la entidad de confianza. Entonces lo siguiente será 1 dentro de nuestras pantallas y luego saber, y dentro de nuestro contenedor, queremos un contenedor en primer lugar, como va a ser el nuevo contenedor de clase, el ego, el gran contenedor de estrés. Esto no debería ser demasiado loco. Esto no debería ser nada que esté fuera de lo ordinario es simplemente extiende la clase de contenedor. Contenedor. Este no es el contenedor adecuado. Y el contenedor que queremos es el contenedor de inventario neto de Minecraft. Muy importante. Puede suceder en cualquier momento. A veces también puede suceder con felicidad con un bloque que es realmente estúpido, pero un go. De acuerdo, vamos a mover la lata, puede interactuar con, sólo vamos a devolver realmente lo siguiente. Vamos a regresar, en realidad necesitamos una, ¿de acuerdo? En primer lugar, necesitaremos lo siguiente. Necesitaremos un int final privado, que va a ser num amigos. Y nos van a necesitar si privada final int, número de roles. También necesitamos una entidad privada de azulejo, entidad de azulejo, entidad de azulejo de tribunales, y un manejador de ítems de ojo privado, que es la capa de inventario de jugadores en. Eso está bien. Vamos a, sí, vamos en realidad sólo parámetros constructores así aseguraremos de que todo aquí esté seleccionado y diremos, vale, y entonces realmente tendremos que cambiar un poco el constructor. También necesitamos un int id, un mundo, un mundo, y un sistema operativo de bloque, OS. Y luego quiero esto al revés. Entonces primero quiero la entidad de cola y luego el inventario de capas y luego el número de columnas y filas. Sí. Y luego pase de bloqueo se acaba de escribir mal. Ahí lo tienes. Y luego lo tenemos. De acuerdo, Así que esto está bien. Esto en realidad es o archivo. Lo que queremos es el otro En realidad no podemos hacer todavía. Bueno, podemos hacer sin embargo es que podemos establecer la entidad de azulejo ya consiguiendo mundo que consigue isla en la posición dada aquí. Y que el inventario de jugadores. Curiosamente, en realidad no queremos un manejador de artículos aquí. Lo que realmente queremos es el inventario de jugadores real, porque así lo conseguimos. Y para convertirlo, en realidad queremos un nuevo envoltorio de inventario con el inventario de capas. Como dije, algunas de esas cosas son un poco locas. Pero sí. Y entonces lo que voy a hacer es, um, sí. Entonces básicamente vamos a revisar entonces, vale, si hay incluso una entidad de azulejo ahí. Entonces si el talento es desigual a nulo, entonces vamos a talentosos t dot get capacidades. Hemos visto las capacidades y esta es la velocidad del manejador de elementos. Y si eso está presente, entonces lo que vamos a hacer es que vamos a hacer lo siguiente. Vamos a decir manejador. Y entonces vamos a hacer en realidad dos nuevos métodos. Porque si le echamos un vistazo a una familia, volviendo al título grande y vamos a ir al medio botón del ratón click al contenedor de desajustar. Entonces primero que nada, vamos a ver si hay, hay mucha estática como antojos. Y luego también el constructor de contenedores de confianza tiene lo siguiente. Esto construye las ranuras del cofre. Ahora esto es como, quiero decir, es un poco duro criticar el código de otras personas, pero eso es como, no sé qué diablos está pasando aquí. Lo mismo con esto y lo mismo con esto. Ahora lo que esto hace es simplemente esto crea el inventario del cofre, y esto crea el inventario del jugador. Y entonces esto último crea las ranuras para la barra, la, la barra de inventario. No sé por qué. Esto no está perfectamente empaquetado en unos cuantos métodos privados porque eso es exactamente lo que vamos a hacer, es que vamos a tener a métodos privados. Simplemente vamos a ser el vacío privado, generar ranuras de inventario de cofre con el manejador de artículos, manejador de artículos, manejador viejo. Y entonces lo vamos a tener básicamente exactamente lo mismo. Eso es lo gracioso. Al igual que podemos llevarnos esto, ¿verdad? Y podemos copiarlo el control C y ponerlo en nuestro contenedor aquí, aquí mismo. Y sólo necesitamos cambiar unas cosas muy, muy, muy pocas. No estoy cien por ciento seguro de que eso está bien. Y entonces este va a ser el número de llamadas. Y luego en lugar de hacer una nueva ranura, vamos a hacer un nuevo manejador de artículos de ranura. Y entonces aquí simplemente ponemos en el mango. Y eso es básicamente todo. Ahora tenemos que hacer algunas cosas aquí. Y eso es principalmente el índice es en realidad k más j veces this.com llama. Y entonces la posición, esta posición en realidad es correcta y esta posición no es correcta. Esto va a ser 14. Ahora, voy a explicar cómo llego a esta posición en un rato. Nos referimos a ligando 0, 1, De hecho vamos a mantener esto actualmente como es. Y luego vamos a explicar cómo obtengo la posición real que necesitamos. Y entonces podemos tener un nuevo vacío privado, que va a ser el generar más tarde, inventar ranuras de inventario. Esto va a tener un manejador de artículos llamado handler y un inventario de capas. Inventario de capas. Y luego. Haz lo mismo que lo hemos hecho antes. Simplemente puedes tomar esto y copiar esto y ponerlo aquí mismo. Y entonces necesitamos hacer algunas cosas. El primero es que necesitamos tener el int I igual a este punto num filas menos 4 veces 18. Primero queremos restar los 4 aquí y luego hacer esto. Ahora esta es básicamente la idea es que tenemos las últimas cuatro filas o el inventario. He tomado esto de Exactamente justo aquí. Como dije, esto está absolutamente por todo el lugar. Yo diría que probablemente le vendría bien alguna refactorización. Pero se va a encontrar, así que esto va a tener ahora el inventario de jugadores en lugar del manejador dentro de aquí. Porque el jugador, el inventario de jugadores que nos dan aquí. Por favor. Porque ¿por qué en realidad, por qué no? Supongo que no. Te vas supongo que me equivoqué. No. En realidad no necesitamos eso. No necesitamos ninguno de esos. Demasiado por ese. Y luego vamos a mantener las posiciones aquí también. Y las posiciones van a ser la mitad para cambiar también. No obstante, como dije, vamos a echar un vistazo a eso en un rato. Entonces, solo llamemos a esto con el manejador y luego generemos ranuras de inventario de capas. Y eso está bien. Y sí, entonces después de que hayamos hecho esto, cuáles son las ranuras que se generan en, ¿cuál es el tema aquí? Sí, necesitamos insertar super eso está totalmente bien. El resto, Curiosamente, simplemente podemos tomar para que no lo sepamos, Nosotros en realidad, no queremos el esto. No queremos esto. Queremos el traslado y la ranura, sin embargo, usted quiere el contenedor cerrado. Y también queremos el número de filas que realmente no necesitamos. Nosotros sí sin embargo, necesitamos el inventario de cofre. Entonces tomemos esto para que básicamente podamos copiar todo lo demás y ponerlo dentro. Y entonces también podemos deshacernos de esto. Y luego necesitamos el inventario, que va a ser el siguiente. Este es el, esta va a ser la entidad de azulejo más adelante por la línea. Por lo que esta va a ser básicamente la loseta de pecho grande, esta entidad de azulejo. Se van. Entonces ahí está el inventario, yo diría en realidad, o podemos renombrar esto para obtener inventario de cofre porque conseguir menor inventario. No sé por qué ese es el nombre, pero sí. Está bien. Yo consigo pecho lo siento, esto se ve bien. Inventario de cofre. En realidad podemos saber. Es más fácil decir, una vez más, decir entidad de azulejo. Sí, talentoso t, lo siento, ahí tienes. Entidad azulejo dot cast y luego se va a lanzar esto a entidad, lo siento, cadena grande y pecho grande apretado. Se van. Y luego vamos a acercar el inventario. Eso es todo lo que necesitamos aquí. Cuando se trata de lo mínimo, también podemos deshacernos de este comentario. Y luego la ranura de transferrin, eso está bien. Esto maneja el turno haciendo clic. Eso está totalmente bien. Esa suma, básicamente podemos quedarnos con este año a excepción de éste. Se necesita hacer con este punto num llamadas. Y entonces éste es esto.nombre llama. Sí. Y entonces esto es qué? Esto.Nombre porque el número de columnas en este caso. Más de nueve. Entonces no es difícil codificado ahí dentro. Puede interactuar con es lo último que tenemos que hacer básicamente. Y eso va a ser lo siguiente. Este va a ser un gran título de cofre, esta.entidad de título. Y entonces rodearemos ambos de este ancho con algunos paréntesis. Perdón, yo soy el ego. Y entonces decimos que el punto es utilizable por el jugador. Jugador. Yo creo que eso sería todo por el contenedor, lo único que tenemos que añadir es el superhéroe. Pero aún no podemos en esto porque aún no hemos definido a la hora marca contenedor dentro de nuestros recipientes de boca. Pero podemos hacer esto ahora mismo. ¿ Podemos hacer esto ahora mismo? Sí, en realidad no podemos. Deberíamos poder hacer esto. Por lo que podemos decir pública estática final. En realidad, ya sabes qué, vamos a copiar esto. Seamos honestos. Es más fácil copiar esto. Este va a ser el contenedor de pecho grande de tipo, contenedor de pecho grande con el nombre contenedor de pecho grande. Y luego vamos a seguir creando un nuevo contenedor de esquisto grande con un mundo de ventana IDA, una posición en el inventario. Y entonces en lugar de la interatrial, el jugador, vamos a decir un seis, 11. Esto es, perdón. Sí, Tenemos una cosa más. Interesante. ¿ Qué tenemos? Contamos con la entidad de azulejo. No necesitamos la entidad de azulejo. Eso es ridículo. Un número legal de bien. Nada de esto. Seis, ¿verdad? El número de columnas es 11 y el número de filas. Sí, eso espero. Vamos a ver porque había alguna rareza con las columnas y filas. No soy un 100 por ciento seguro. Vamos a mantenerlo así. Sí. Creo que eso está bien. Sí. Y entonces esto ya funcionará bien. Entonces eso es bastante bonito. El contenedor está hecho. Y entonces también podemos volver al pecho aquí mismo. Y luego tenemos el contenedor de pecho. Ahora en realidad podemos simplemente seleccionar esto, copiarlo y luego presionar Control R. Y luego en todas partes con eso, es solo contenedor. Simplemente podemos decir contenedor de pecho grande y luego reemplazar todo. Ahora antes que nada, vamos a conseguir una flecha, pero esto es simplemente porque el gran contenedor de ajedrez para Italia no es como si no estuviera ahí. Disculpe. Por favor. ¿ He escrito mal esto? Tengo he perdido tipos. Tom y yo no hemos escrito mal algo. Entonces no estoy un 100 por ciento seguro por qué tiene un problema con ok. Por cualquier razón eso es cierto. Quiero decir que está bien. Supongo que el reemplazo no funcionó del todo, pero van. Por lo que puedes simplemente en todas partes si hay contenedor de estrés climático, simplemente reemplazas eso por contenedor grande. Sí. Por siempre razón no funcionó del todo. Interesante. Bueno, está bien. Seguro. Sí. Aparte de eso, vamos a preocuparnos por eso en un rato. Por lo que el contenedor de pecho ha sido bien alimentado. Aquí abajo. Sí, aquí abajo. En realidad también necesitamos cambiar algo entonces es decir, como se puede ver, el genérico se está tirando aquí y eso no es lo que queremos. Lo que queremos es que queramos devolver los contenedores MOD, docker, contenedor, que se haga. Y luego con la identificación y el jugador un, Oh, eso es lindo. En realidad no necesitas este intercambio, el método de contenidos. Tampoco necesitamos que los buenos jugadores usen eso. También podemos liderar esto. Y ahora, he aquí, en realidad ya tenemos una clase de entidad de tesela bien libre de errores. Ahora esto no va a funcionar todavía, pero que ahora estás dentro, vuelta dentro de nuestro contenedor de pecho grande, llamamos al super. Y este va a ser los contenedores MOT MOT, docker, contenedor, NO portón con un id. El ego. Eso es todo. Eso es todo para el contenedor terminó el T. de Tailandia Ahora vamos a necesitar cambiar estas posiciones aquí más adelante por la línea y después haber implementado la pantalla también. Bueno, básicamente lo dulce, sí, eso es todo. De acuerdo, Entonces hagamos la pantalla. Y esa va a ser la pantalla de pecho grande. Pantalla de cofres grandes en lugar de tu gran pantalla de pecho se va a extender. Y esto va a ser una pantalla de contenedores. Para entrar pantalla con tipo, contenedor de pecho grande, grande. Me encanta. Esto va a tener métodos implementados, éste y luego se implementó el constructor, sí, claro. Y hay algunas cosas que tenemos que hacer. Y las cosas que tenemos que hacer en primer lugar es porque tenemos un, así que voy a abrir los briefers electrificados. Entonces esta fue la GUI. Este es el tamaño normal de una GUI a la que estamos acostumbrados en Minecraft. Y este es el tamaño de la GUI en el ajedrez grande. Obviamente esto es más grande. Por lo tanto, si echamos un vistazo a la pantalla del contenedor, si hacemos el botón central del ratón, haga clic en esto. En realidad se puede ver que el tamaño aquí es, es el predefinido dentro de los contenedores. Entonces si tenemos algo que es más grande, en realidad sólo lo especificamos aquí. Por lo que tenemos este punto x tamaño es igual a 212. Este punto y tamaño es igual a 221 porque esos son los píxeles que el, la GUI es grande, ¿verdad? Por lo que la gran prueba es de 212 píxeles en la dirección x y 221 píxeles en la dirección y. Y entonces también podemos agregar esto ya para que podamos entrar en texto pájaros GUI y añadir a esto aquí mismo. Asegúrate de copiarlo ahí dentro, no solo moverlo. Y entonces esto es algo que también podemos poner como recurso, privada, ubicación final de recursos para GUI, nueva ubicación de recursos. Mc curso Math.Min DIJO, como estamos muy bien al tanto. Y entonces esto es dentro de texturas barra pecho y nos punteamos PNG. Qué hermosa, Qué cosa tan hermosa. Está bien, eso está bien. Y la derecha, Eso es, está bien por ahora. Entonces necesitamos el método render. Y esto, por supuesto, podemos mirar hacia atrás en nuestra pantalla electrofílica y básicamente podemos sacar algunas cosas de esta. Entonces, por ejemplo, el método aleatorio es exactamente el mismo. Entonces podríamos, por ejemplo, simplemente copiar esto. Totalmente bien, porque esto es casi siempre lo mismo, el método aleatorio. Y en este caso sólo necesitamos el fondo redondo del contenedor Mac aquí. Y lo que queremos hacer es básicamente también. Copia también los insights de esta pantalla electrofílica. A veces es más fácil, no necesitamos esto en realidad, solo queremos un blip. Y esta división aquí es simplemente, bueno básicamente la propia GUI. Y eso es en realidad. Al igual que eso es todo lo que necesitamos. Tendremos que definir algo más aquí también. Pero no vamos a hacer eso todavía porque en realidad quiero mostrarles por qué necesitamos cambiar si ustedes otras cosas. Y básicamente cómo averiguar cómo cambiar esos hacia arriba. Ahora, podríamos pensar, Bueno, quiero decir, eso es genial, ya terminamos. Y debo decirles que lamentablemente aún no hemos terminado porque realmente necesitaremos un renderizador nosotros mismos. Por lo que necesitamos, número uno, hacer un nuevo renderizador de entidad de teselas. Y también necesitamos hacer una nueva representación de entidades táctiles de elementos. Es por eso que dije que vamos a ser una especie de todo el lugar, pero sin preocupaciones, vamos a pasar por esto. Entonces entidad de azulejo, vamos a agregar una nueva clase. Esta va a ser la entidad de título de cofre grande y renderizar nuestro ego. Esta va a ser una clase genérica que extiende entidad de azulejo, extremo I, pecho, tapa. Y entonces también esta clase extiende el renderizador de entidad de azulejo del pecho del niño. Como puedes ver, realmente agradable. Crear un constructor. Eso va a ser en realidad lo que podemos hacer es botón medio del ratón en este. Y luego una vez más, ponte en la parte superior aquí y ve en la parte inferior, Control C. Y vuelve aquí y básicamente solo pégalo. Y sólo tendremos unas cuantas cosas más ahí dentro. Y eso es sólo porque el nombre del constructor vuelve a estar equivocado. Y entonces en realidad no tendremos ningún error. Ahora tendremos que cambiar, creo sólo una de las cosas si no me equivoco. Y eso es sólo comprobar rápidamente porque esto es, como dije, esto es una locura aquí. En realidad no creo que tengamos que cambiar nada. Y por el momento, aquí mismo. Sí. No creo que tengamos que cambiar nada por el momento. Vamos a mantenerlo así. Y si hay un error, entonces vamos a revisar esto. Sí, porque estamos exactamente porque en realidad tenemos el 0. Todavía no tenemos cuadra. Es por eso que necesitamos hacer un bloque que consiga que se extienda el bloque de estrés extra. Entonces eso es lo siguiente que vamos a hacer. Entonces este es el renderizador. Y entonces necesitaremos un bloque, que va a ser un gran bloque de pecho. El cofre, por favor, lo harán. Y el bloque de blog de pecho grande, no blog, va a extender esquisto abstracto, bloque de esquisto. Y esto va a ser de tipo pecho, pecho grande, azulejo. Agradable método de implementación, ¿una nueva entidad? Sí, con bastante facilidad. Y estas van a ser las entidades de mosaico de Modo. En realidad no hemos hecho las entidades de azulejo. Entonces estoy si no me equivoco lo siento, no el electrofilo. Las múltiples entidades. Sí. Ahí vamos. Todavía no hemos hecho esto, como dije, un poco por todo el lugar porque hay tantas cosas. Sólo puedo implorarle que descargue los archivos y probablemente los eche un vistazo. Ya sabes, en lugar de V, Bueno, programamos cebar esto, pero quiero decir, tal vez, tal vez es, tal vez es ejercicio divertido. Volvamos a copiar esto de nuevo porque a veces eso es más fácil. Esto va a ser un pecho grande, un azulejo de pecho grande. Y este va a ser el gran subrayado pecho subrayado título subrayado entidad. Y esta va a ser la entidad de subrayado subrayado de guiones bajos. Y esto va a ser un nuevo azulejo de pecho grande con un nuevo bloque. Todavía no lo hemos definido en nuestros bloques de mapa. Increíble. Por lo que estas van a ser las entidades de teselas de Modo. El cofre diminuta entidad obtiene V8. Sí. Muy bien. Y es un poco más de bloques que simplemente podemos agregar para el cobre o vamos a hacer un público en realidad hay que volver a revisar esto porque no soy un Ciara 100 por ciento. Nosotros hacemos esto. Este fue el gran ajedrez. Sí. Peor registro final estático público. Registro, objeto de tipo suerte, por supuesto, gran cofre. El gran justo, me gusta. Y ahora lo siguiente, regístrese, hagámoslo así. Sólo copiemos el registro aquí. Gran prueba de subrayado. Y luego vamos a tener un gran bloqueo de pecho aquí, gran bloque de chance. Y esto por supuesto, tiene una cosa más. Sí, Impresionante. Vamos a tener esta multa. Deshacernos de esto. Y también voy a tener las entidades de azulejo MOD, lo siento, entidades diminutas. Pick pecho talentoso p dot, consigue los 0 argumentos esperados pero encontrados, bueno, esto es probablemente porque lo que no tenemos un constructor aquí todavía. Bueno, eso sí, me defenderé todo el día. Es algo muy complicado. Entonces hagamos creer que deberíamos poder crear un constructor sí, la OPI. Y luego este constructor, también solucionará inmediatamente este error. Muy bonito. Y necesitaremos cambiar este método de registro en un rato porque de lo contrario no tendremos el ítem renderizado. Pero no nos preocupemos por eso ahora mismo. Como puedes ver, ya tenemos una, una cantidad demencial de diferentes lugares abiertos. Entonces lo siguiente que tenemos que hacer es el bloque. En realidad, podemos entrar en el abstracto bloqueado por medio del ratón haciendo clic y luego presionar Control H. Podemos ver la jerarquía superior. Ahora también podemos ver el, ver el libro de pruebas. Si hacemos doble clic en el bloque de estrés, lo abriremos. Y este es otro de esos donde básicamente sólo se va a llevar todo dentro de aquí. Vamos a copiarlo y sí, cualquier cosa que necesitemos, vamos a cambiar. Entonces cualquier cosa que necesitemos cambiar, vamos a cambiar y todo lo que no hacemos, no lo haremos. Bueno, vamos a copiar esto. Entonces Control C Una vez más, y luego controlar V justo aquí. También vamos a tomar nuestros métodos de cadena que tenemos predefinidos, incluido el constructor instructor. Y vamos a subir esto después de éste de aquí. Entonces podemos eliminar el constructor del bloque torácico. Y entonces tenemos ys métodos, un doblete, pero ya hemos definido uno de esos. No necesitamos este t creativo, talentoso, ¿Dónde estamos? Agarra esa. Fuera de eso. También podemos básicamente deshacernos de algunas de esas cosas. Tú eres sí, eso está bien. Eso está bien. Eso está bien. Entonces el llenar su contenedor, eso es en realidad una de las cosas más importantes. El embargo, comparador, impulso, sobreescritura de entrada. Simplemente podemos borrar eso por ahora porque no necesariamente necesitamos lo mismo con este, luego el mismo contenedor. Entonces este es el contenedor GET. En realidad también acabaremos de eliminar el método de combinación. Tenemos dos veces, creo que ahora mismo. Por eso sucede esto. El inventario de cofre, también podemos eliminar el OpenStack. Podemos eliminar esto también. El amplio desbloquear activado, este es el método de clic derecho. Vamos a echar un vistazo a eso en un rato. Pero hay algunas cosas de las que básicamente podemos deshacernos en Reemplazado. Podemos deshacernos de los laicos por creo que esto en realidad es algo que sí necesitamos. Sé que no necesitamos esa dirección para adjuntar a no necesitamos eso porque no queremos que esto se adjunte en este caso. Y esto también es por nosotros obtenemos colocación uno. Se va a ver un poco diferente. En realidad sólo vamos a tener y todo después de esto. Nosotros vamos a borrar, creo. Sí, éste. Entonces básicamente todo después del estado fluido. Oops, qué hice ahora, abrí la cuadra. Todo después del estado fluido aquí podemos eliminar para que el buen estado para colocación solo tenga el retorno del estado por defecto con las diferentes cosas aquí. Para que el tipo de pecho siempre se quede soltero. Dirección demasiado apegada. ¿ También deshacerse de esta forma? No, En realidad, lo siento, eso no es que en realidad no quisiéramos deshacernos de esto porque queremos ponernos en forma para poder tener una forma adecuada mostrada. Actualizar licencia de postcolocación es algo que tampoco necesitamos, pero no estoy un 100 por ciento seguro. No necesitamos esto. Bueno, van a conseguir tipo de renderizador. Tengo que ser honesto. Creo que esta es la razón por la que no envejecían. Pero no estoy seguro. En realidad no creo que lo sea, pero sí, como dije, es un poco, es un poco loco. A tipo de fusión. En realidad tampoco necesitamos esto. Y luego lo único último que uno es el método combinado, que va a ser lo siguiente. Y en realidad no estoy cien por ciento seguro de dónde sacamos esto. Saca esto de aquí, creo. Entonces. Combine, el método combine es exactamente esto. Por lo que esto realmente necesita ser copiado de nuevo. Vamos a copiar esto otra vez. Y entonces tuvimos este nulo aquí. Y en realidad vamos a tomar esto porque de lo contrario va a haber una flecha. Y como ya he dicho, esto es un poco, bueno no diría bastante engaño. Yo sólo diría que es mucho. Esto definitivamente tendrá que limpiarse un poco. Y crearlo así es. Definitivamente está por todo el lugar. Como si tuviera que ser honesto. Estoy un poco no diría bastante avergonzado al respecto, pero la forma en que se hace el bloqueo del pecho es como una locura absoluta. Creo que probablemente se podría hacer un poco más fácil. Pero de todos modos, vamos a ver rápidamente, así que el contenedor mayor, no necesitamos esto así como la fusión de inventario. Tampoco necesitamos esto. Y ahora creo que finalmente estamos aquí. Podemos donde realmente podemos deshacernos de todo lo que hay dentro de su octeto de desbloquear activado. Porque la forma en que vamos a hacer esto es una vez más, la forma en que lo hemos hecho. Si cerramos esto y esto, como lo hemos hecho en el electrofilo. No, no el flujo molar, sino el electrofilo. Entonces si bajamos aquí dentro de éste, y podemos copiar todo el interior de la lista. Y entonces también podemos hacer esto y esto. Y entonces podemos salvar esto sería, por ejemplo, pantalla MC, peor, tal vez pecho grande. Y entonces en lugar del contenedor de electrofilos que somos, diremos contenedor de pecho grande. Y entonces en lugar de la entidad de capas, vamos a decir seis y 11, conoce 116, ¿verdad? Sí. Eso espero. Yo nunca estoy un 100 por ciento seguro aquí, pero creo que eso es correcto. Correcto. Está bien. Ahora, pensemos en esto. Yo creo que casi lo hemos hecho, y eso lo sé, pero aún no hemos terminado del todo. Entonces pensemos en esto. Tenemos las pruebas aquí, esto está bien. Tenemos que precisar aquí el esto. Así mod blog.config pecho. Está bien, eso está bien, eso está bien. Esto ya se hace. Sí, al 100%, esto se hace. Ya no necesitamos el render de entidad de teselas. Ya lo hemos hecho. Esto está bien. Y en realidad creo que estamos bien con esto. Podemos cerrarlo también. Eso es bastante bueno. Eso es algo importante que hemos hecho. No estoy seguro de que hayamos terminado con esto. No, no lo estamos. Este cofre entidades de azulejo aquí. Y no creo que queramos esos realmente dentro de éste. Nosotros sí los queremos. ¿ Cuántos tenemos? Sólo tenemos seis. Eso está bien. Eso está permitido. Sticks es la cantidad correcta. Y está bien. Está bien. Está bien. Déjame sólo mirar rápidamente esto. Entonces tenemos, vamos a reabrir la pantalla por un momento. Muy bien, ahora tenemos que sumar los modelos. Bloquear un artículo. Sí. Así como los estados de bloque. Ahora parece Estados es realmente fácil. Por lo que el bloque establece nuevo archivo. Esto va a ser grande. Pecho, el pecho punto-punto-punto JSON. Si hubiera hecho esto en las cuadras, lo siento, alguien lo ha hecho, alguien no ha sido gran trozo este cofre de subrayado. Hagámoslo en realidad. Ella Seguro. ¿Por qué no? Mantengámoslo así. Eso está bien. Refactor Renombrar gran guión bajo ajedrez. Y esto va a ser lo siguiente. Y esto va a ser realmente interesante. Modelo de bloque y ajedrez de corte. Eso no está del todo bien. Esto va a ser grande, sólo el ego. Ahora esto lo he tomado de los archivos JSON de micrófonos otra vez. Entonces aquí abajo, en lugar de extra, entonces podemos ir a Activos, Minecraft, bloques, fechas, etc. y así sucesivamente. Y básicamente podemos buscar esto. Entonces si simplemente tecleamos en el pecho, entonces un poco de caminos hacia abajo podemos ver prueba, y es exactamente esto. Por lo que también es así como peor Microsoft EMC. Bueno. Ahora es un poco raro. Ellos ego. Y unos modales. Modals es, lo siento, estoy a mitad de camino hecho esto en la modelo. Yo soy. Esto es mucho, esto es mucho como dije, esto por supuesto no entra en el bloque de modelos. Esto va a los Estados negros. Perdón. Sí, en realidad podemos copiar esto más. Sí, por favor. Está bien. Ahora un bloque en lugar de los modelos y bloque, queremos lo siguiente. Queremos un poco, como dije, es eso es un poco más, esto es un poco más de lo que probablemente estás acostumbrado. Esto es un poco más, esto simplemente va a ser lo más fácil. Esto simplemente va a ser texturas, partículas, Minecraft, bloque o.Gracias. Entonces cuando destruyamos el bloque, queremos que las partículas sean 0 tablones. Suficiente fácil. Y ahora el modelo de artículo te va a golpear por completo los calcetines. Porque así es Chris, ¿hice esto con un guión bajo? Usted lo dijo. Este va a ser archivo subrayado pecho dot-dot-dot Jason. Y voy a copiar esto una vez más, esto es, esto está construido en entidad. Ahora esto es una vez más de los modelos de aquí abajo. Para que puedas volver a comprobar esto. Entonces esto es exactamente lo mismo. Y para usar esto, en realidad necesitamos nuestro propio renderizador de pila de artículos, como dije, eso es siempre un muy bonito. Y, y esto va a ser, voy a crear esto en lugar de los artículos aquí. No obstante, creo que esto, ya sabes, como más adelante por la línea, esto probablemente debería estar en otro lugar, sobre todo si tienes varios de esos grandes artículos de cofre, pila, título, entidad, renderizador. Yo sólo lo voy a decir, tú pediste esto. Ahora, pero para ser honesto, esto en realidad no es tan difícil de entender. Entonces este es un título extenso, ese elemento, pila, entidad de tesela renderizador, van. Y si entramos en esto, esto solo en realidad tiene un método aquí de esto en realidad se llamaría el método render. No obstante, sea cual sea la razón o aún no está mapeado. Y sólo vamos a copiar aquí la firma del método real. Y luego vamos a añadir un, otro corchete rizado. Y entonces lo único que necesitamos llamar dentro de aquí es el título. Y a su despachador de renderizado, esa instancia, ese elemento render, Lo sentimos , renderizar nodo, es elemento realmente render elemento. Y luego con el nuevo azulejo de pecho grande, luego la merienda matricial. Queremos el buffer, queríamos la luz combinada, y queremos combinar la superposición y, y eso es todo. Eso es todo lo que necesitamos hacer aquí. Vamos sólo por el infierno de ello, agregue la anulación también. Porque la mía y sí, eso es en realidad todo lo que necesitamos hacer. Escuchamos, por supuesto necesitamos sostener esto y el donde necesitamos llamar a esto dentro de nuestros blogs modelo. Y lo que bloquea. No sé por qué lo estoy llamando mis blogs como si estuviéramos, estamos, estamos blogueando lejos. En realidad no lo estamos. Entonces mod blogs, bloques. Sí. Ajá, Sí, exactamente. Esto se debe a que el método de registro no va a funcionar porque realmente necesitamos agregar una nueva propiedad de elemento. Y hemos hecho aquí hay algo similar, pero en realidad queremos uno nuevo aquí mismo. Eso va a ser azulejo de registro. Y T. Y luego después de la pestaña del curso, vamos a llamar al set Semana Santa. Este es el, este es exactamente el renderizador de entidad táctil ítems. Y luego vamos a decir tener un divisor de artículo de pecho grande apilado que no sea su colon, colon nuevo. Y entonces éste va a estar frío aquí en lugar del método de registro. Sí. Ahora, ya casi terminamos. Tenemos que volver a revisar todo, pero en realidad estoy pensando que ya casi terminamos. Por supuesto, agregamos algo, algo, algo que alguien posiciona. Esto va a suceder. Pero aparte de eso, creo que deberíamos empezar esto y no conseguirlo. No vamos a conseguir tierra. Probemos esto. No estoy seguro porque como dije, esto es una locura. Pero creo que esto podría funcionar. A ver. Ah, creo que ya había una flecha ahí dentro. No móvil estamos cargando. Así que eso es un poco bonito. Estamos cargando. Incluso estamos teniendo una pantalla de carga. Está bien. Entonces menú principal, eso es bastante bonito. Vayamos a nuestro mundo. Sí, lo haremos. Sé lo que estoy haciendo. Esto es una vez más, la configuración de trabajo experimental por nuestra dimensión personalizada. De acuerdo, nos encontramos en el mundo. Ahora veamos. Si tenemos un cofre. Y en realidad parece un cofre. Si lo colocamos abajo, no parece ajedrez, pero está bien porque en realidad sé arreglar esto. Esto porque no hemos agregado esto. Si hago clic derecho, no pasa nada. Vale, eso es, eso es, eso es lo que estamos bien. A ver. ¿ Cuál es el tema que faltan nuestros proveedores de contenedores? Bueno, eso no está bien. Eso no es bueno. Ah, ¿no hemos llamado super? Nosotros hemos llamado al super. Bueno, oh, esto es lo que pasa. Y esto sucede si exactamente, bueno, si nuestro talento t no es una instancia de electrofilio, ¿verdad? Conócela, claro que no lo sería. Es de tipo. Pecho grande, apretado. Ahí lo tienes. Entonces este es el tema aquí. Y entonces también lo haremos de inmediato porque recuerdo esto, arregle el oh, en realidad me dieron alguna otra cosa de todos modos. Y eso va a ser lo siguiente dentro de nuestro cliente. Rocas. Aquí mismo, necesitamos agregar lo siguiente. Gestor de pantalla, gestor de pantalla, registrar contenedores mod de fábrica. No sólo contenedor no consigue. Este es el contenedor de pecho grande. Nuevo. Hermosa. Esto no funciona porque no le gusta yo en realidad no soy un 100% seguro. El blanco es. ¿ Por qué peso que hago Pantalla Instancias de contenedor. Bueno, bueno esa sería la razón por la que pantalla, pantalla, pantalla, No, no, no, no, no, eso es dulce. Ahora también, claro, importante esta clase eres tú, ¿Estás loco? Y entonces tenemos que hacerlo. También tiene la entidad que renderiza, y esto se va a poner en el registro dot bind entidad de teselas Modo renderizador, entidades de teselas, no gran cofre entidad de teselas dot gets y big pecho tile entity renderer, colon, colon num. Esto y esto también debe agregarse al Proxy cliente. Esta simplemente asegurará que se muestre la pantalla. Entonces cuando, una vez que hagamos clic derecho y éste se asegurará que el bloque se renderice realmente dentro del mundo. Eso es bastante bonito. Y creo que esto debería funcionar ahora. Como dije, una vez más, es un poco, esto es un poco más flojo de un episodio, diría yo, de una conferencia. Porque no diríamos descubrirlo simultáneamente porque eso hubiera sido como una, no sé, siete horas como una conferencia de siete horas. Probablemente aún más. Pero se van, Así que volvamos a nuestro mundo y veamos si el, si esto funciona ahora. Entonces lo primero que vamos a hacer es que realmente lo vamos a destruir el bloque antes porque a veces este chico, esto, porque a veces se pone un poco raro. De acuerdo, Entonces no lo hace todavía no se rinde. Estoy seguro de que hay una razón para esto, pero si hacemos clic derecho, entonces sí se abre y quiero decir, eso ya está bastante guay. Eso es bastante bonito. Pero como excusa. Gato, ¿por favor? Espera, ¿dónde está mi cuadra? Ahí lo hay. Ahí lo hay. De acuerdo, Entonces funciona, pero como puedes ver, la alineación aquí no es del todo correcta. Y esto es exactamente lo que estaba diciendo con el desplazamiento que tenemos que hacer. Entonces esto es algo que tenemos que hacer dentro de nuestro contenedor.