Modding por Kaupenjoe: Forge Modding para Minecraft 1-18-1 | Kaupenjoe (Nico) | Skillshare
Buscar

Velocidad de reproducción


1.0x


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

Modding por Kaupenjoe: Forge Modding para Minecraft 1-18-1

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.

      Skillsahre en

      0:53

    • 2.

      (Java) Instalación y descarga

      5:52

    • 3.

      (Java) Tipos de datos Java

      8:11

    • 4.

      (Java) Sintaxis de Java

      5:42

    • 5.

      (Java) Salida e entrada

      7:28

    • 6.

      (Java) Errores y cómo no se puede pánico cuando los obtengas!

      6:41

    • 7.

      (Java) Integers y métodos aritméticos y matemáticas

      6:23

    • 8.

      (Java) Operadores de asignación

      4:40

    • 9.

      (Java) Booleans y operadores de comparación

      7:02

    • 10.

      (Java) Booleanos y operadores lógicos

      3:30

    • 11.

      (Java) Si y otras declaraciones

      6:52

    • 12.

      (Java) Declaración de interruptor

      4:08

    • 13.

      ASIGNACIÓN 1: juego de trivia

      2:59

    • 14.

      SOLUCIÓN 1: juego de trivia

      2:32

    • 15.

      (Java) Cadenas y métodos de cadena

      9:41

    • 16.

      (Java) Casting

      3:49

    • 17.

      (Java) Operador Ternario

      4:13

    • 18.

      (Java) Arrays Java

      9:09

    • 19.

      (Java) Loops

      8:55

    • 20.

      (Java) Métodos Java

      10:14

    • 21.

      ASIGNACIÓN 2: juego de Trivia con métodos

      2:30

    • 22.

      SOLUCIÓN 2: juego de trivia con métodos

      5:13

    • 23.

      (Java) Colecciones Java

      16:43

    • 24.

      (Java) Programación orientada a objetos explicada

      7:37

    • 25.

      (Java) Clases y objetos Java

      9:20

    • 26.

      (Java) Modificadores de acceso

      7:42

    • 27.

      (Java) Herencia y polimorfismo

      10:50

    • 28.

      (Java) Interfaces y clases abstractas

      5:52

    • 29.

      ASIGNACIÓN 3: juego de trivia con clases

      1:15

    • 30.

      SOLUCIÓN 3: juego de trivia con clases

      3:08

    • 31.

      ASIGNACIÓN 4: sistema de gestión bancaria

      1:20

    • 32.

      SOLUCIÓN 4: sistema de gestión bancaria

      2:17

    • 33.

      (Java) Clases anónimas

      2:44

    • 34.

      (Java) Enums y Enums avanzados

      3:00

    • 35.

      (Java) Excepciones

      5:14

    • 36.

      (Java) Expresiones de Lambda

      3:24

    • 37.

      (Java) Genéricos

      3:37

    • 38.

      (conceptos básicos de Minecraft) Instalación y configuración y GitHub

      15:11

    • 39.

      (conceptos básicos de Minecraft) usando aplicaciones de pergamino

      4:05

    • 40.

      (conceptos básicos de Minecraft) crea un artículo personalizado

      16:00

    • 41.

      (conceptos básicos de Minecraft) Crea un bloque personalizado

      13:44

    • 42.

      ASIGNACIÓN 5: bloque y artículo

      1:05

    • 43.

      SOLUCIÓN 5: bloque y artículo

      1:09

    • 44.

      (conceptos básicos de Minecraft) personalizada Creative Tab

      2:34

    • 45.

      (conceptos básicos de Minecraft) nuevas recetas

      5:58

    • 46.

      (conceptos básicos de Minecraft) bloquea gotas con tablas de arranque

      7:07

    • 47.

      ASIGNACIÓN 6: tablas de recetas y botines

      1:13

    • 48.

      SOLUCIÓN 6: tablas de recetas y botines

      1:11

    • 49.

      (conceptos básicos de Minecraft)

      12:02

    • 50.

      (conceptos básicos de Minecraft) Bloque avanzado

      5:55

    • 51.

      (conceptos básicos de Minecraft) combustible personalizado

      3:12

    • 52.

      (conceptos básicos de Minecraft) artículo alimenticio

      3:13

    • 53.

      (conceptos básicos de Minecraft) Custom Tooltips

      5:39

    • 54.

      (Minecraft Basics) Todo sobre las etiquetas

      8:16

    • 55.

      (conceptos básicos de Minecraft) Escaleras y losas personalizadas

      6:32

    • 56.

      (conceptos básicos de Minecraft) botones y placas de presión personalizadas

      3:52

    • 57.

      (conceptos básicos de Minecraft) vallas personalizadas y puertas y paredes de cerca

      5:20

    • 58.

      (conceptos básicos de Minecraft) Puertas y puertas personalizadas

      4:45

    • 59.

      (Todo sobre las herramientas) Creación de un nuevo conjunto de herramientas

      5:50

    • 60.

      (Todo sobre herramientas) hacer una multi-herramienta (Paxel)

      5:08

    • 61.

      (Todo sobre herramientas) Armas que aplican efectos

      2:12

    • 62.

      (Todo sobre las herramientas) Creación de un nuevo conjunto de armadura

      7:49

    • 63.

      (Todo sobre herramientas) Efecto de armadura completo

      4:18

    • 64.

      (Todo sobre herramientas) Armadura de caballo personalizada

      3:04

    • 65.

      (Todo sobre herramientas) Encantamiento personalizado

      6:58

    • 66.

      (intermedio) BlockState Properties

      14:37

    • 67.

      (intermedio) ¿Cómo funciona NBT Data?

      8:59

    • 68.

      (intermedio) Propiedades del artículo

      5:28

    • 69.

      ASIGNACIÓN 7: BlockStates y NBT

      0:57

    • 70.

      (intermedio) Cultivos personalizados

      10:13

    • 71.

      (Intermedio) Añade artículos al compostador

      1:38

    • 72.

      (intermedio) Flor personalizada

      2:51

    • 73.

      (intermedio) Custom Flower Pots

      3:51

    • 74.

      (intermedio) sonidos personalizados

      7:06

    • 75.

      (intermedio) Sonidos personalizados para bloques

      3:48

    • 76.

      (intermedio) Discos musicales personalizados

      4:08

    • 77.

      (intermedio) Modelos de bloques personalizados en Minecraft con BlockBench

      19:08

    • 78.

      (intermedio) Modelos de artículos personalizados con BlockBench

      3:08

    • 79.

      (intermedio) Arcos personalizados

      3:34

    • 80.

      (intermedio) comandos personalizados

      9:05

    • 81.

      (intermedio) Partículas de desove

      2:34

    • 82.

      (intermedio) Custom Advancements

      3:45

    • 83.

      (intermedio) Pinturas personalizadas

      3:31

    • 84.

      (intermedio) Modificadores globales de botín

      9:52

    • 85.

      (intermedio) Fluidos personalizados

      6:24

    • 86.

      (intermedio) Eventos básicos

      7:13

    • 87.

      (intermedio) actualización de herraduras y pergaminos

      2:39

    • 88.

      (Avanzado) Entidad de bloque personalizada

      28:29

    • 89.

      (Avanzado) Creación de tipos de recetas personalizadas

      24:03

    • 90.

      Madera personalizada (avanzada)

      8:19

    • 91.

      (avanzado) muestra personalizada

      6:58

    • 92.

      (World Gen) Creación de un árbol personalizado

      9:43

    • 93.

      (Género mundial) generación de árboles personalizados

      11:40

    • 94.

      (Género mundial) generación de flores personalizada

      5:31

    • 95.

      (Gen mundial) generación de mineral a medida

      7:07

    • 96.

      Exporta tu Mod

      1:25

    • 97.

      (temas adicionales) Actualización de Forge (1.18.1)

      5:33

    • 98.

      (temas adicionales) Cómo agregar gotas XP a bloques

      3:26

    • 99.

      (temas adicionales) Cómo agregar una pantalla de menú personalizada

      6:35

    • 100.

      (Temas Adicionales) Agrega configuraciones personalizadas básicas

      10:50

    • 101.

      (temas adicionales) agrega bloques transparentes

      3:45

    • 102.

      (temas adicionales) adición de artículos animados

      5:18

    • 103.

      (Temas Adicionales) Adición de efectos personalizados

      5:43

    • 104.

      (Temas adicionales) agrega pociones personalizadas

      8:44

    • 105.

      (temas adicionales) agrega entidades personalizadas con Geckolib

      25:24

    • 106.

      (temas adicionales) Agrega animaciones de entidades con Geckolib y Blockbench

      11:05

    • 107.

      (Temas adicionales) Adición de variantes de entidades

      9:50

    • 108.

      (Temas adicionales) Entidades Tameable

      11:51

    • 109.

      (Temas adicionales) Entidades Rideable

      8:55

    • 110.

      (temas adicionales) Cómo añadir un barco personalizado

      11:08

    • 111.

      (Temas adicionales) Generación mundial de entidades

      3:20

    • 112.

      (temas adicionales) Cómo agregar transacciones personalizadas a los aldeanos

      4:07

    • 113.

      (1.18.2) Actualización de Forge a 1.18.2

      11:02

    • 114.

      (1.18.2) Estructuras personalizadas (trabajando a través de tutorial)

      31:56

    • 115.

      (1.18.2) Estructuras personalizadas (pieza única)

      8:17

    • 116.

      (1.18.2) Estructuras personalizadas (estructuras de Jigsaw

      13:14

    • 117.

      (1.18.2) Modelos de armadura 3D personalizada

      12:25

    • 118.

      (1.18.2) aldeanos personalizados

      10:06

    • 119.

      (1.18.2) Entidades para bebés

      4:37

    • 120.

      (1.18.2) Geodatos personalizados

      5:49

    • 121.

      (1.18.2) Bloque que interactúa con Redstone

      5:05

    • 122.

      (1.18.2) Renderizador de entidad de bloque personalizado

      13:22

    • 123.

      (1.18.2) Cofres de arranque en estructuras personalizadas

      4:01

    • 124.

      (1.18.2) Solucionar algunos errores

      3:43

    • 125.

      1.18.2 ACTUALIZACIÓN A 1.19

      34:03

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

619

Estudiantes

--

Proyectos

Acerca de esta clase

¡Minecraft! Es el juego más popular de todos los tiempos y el Modding de Minecraft está de vuelta en boca de todos! Algunos Mods de Minecraft se han vuelto tan populares que todo el mundo los conoce. La comunidad de modding de Minecraft sigue creciendo cada día y es una salida genial y creativa!

Este curso te enseñará a hacer tu propio Minecraft Mod! No solo aprenderás el lenguaje de programación Java sino también cómo usar de manera efectiva la forja API de modding de Minecraft.

Para absolutamente principiantes, he añadido una introducción Java para ti, así que incluso sin experiencia en programación puedes empezar a crear Minecraft Mods primero a través de la introducción de Java!

En la parte de conceptos básicos del curso, aprenderás a agregar artículos, bloques, recetas personalizadas, herramienta para Minecraft! Los conceptos intermedios es donde realmente vas a recoger alguna habilidad increíble necesaria para el correcto Modding de Minecraft con Forge! Vamos a hablar de BlockStates y NBT Data, añadir cultivos personalizados y ver cómo puedes agregar modelos de bloques personalizados a Minecraft!

¡Pero eso no es todo! Hacia el final del curso, cubrimos temas avanzados como entidades de bloque, tipos de recetas personalizadas e incluso generación de minerales, entre otros.

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.

Los archivos de ejercicio y el código fuente completo estarán disponibles para que puedas seguir con 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 Mod de Minecraft con Forge.

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

Conoce a tu profesor(a)

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Profesor(a)

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... Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Java
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. Habilidades en la Habilidades: Hola, soy Nico me pilló en Estudiante de Maestría para informática y un ávido jugador de Minecraft. Podría conocerme de mis tutoriales de canal de YouTube por Cotton joe, donde estoy haciendo tutoriales de modelado de microondas. Bueno ahora vamos a ir aún más grande porque esta es mi clase de modelado Minecraft 118 con forja. Aquí aprenderás todo lo que necesitas hacer para hacer un impresionante y sorprendente mod de Minecraft con la API matutina de Minecraft más utilizada, forge. Los principiantes absolutos pueden empezar por pasar por la introducción del proveedor Java, que realmente te va a ayudar a entender algunos de los fundamentos. Al principio, aprenderemos algunos conceptos simples como agregar un elemento, agregar bloques, recetas, e incluso herramientas personalizadas. Después seguiremos mirando modelos de bloques personalizados, cultivos personalizados, y tantas otras características geniales e interesantes. Al final, incluso abordaremos temas avanzados como entidades de bloque y generación mundial. Entonces, ¿a qué esperas? Date de alta a esta clase ahora, y quién sabe tal vez tu MOD va a ser el próximo gran éxito. Te veré en la primera lección. 2. (Java) Instalación y descarga: Bienvenido al curso de tela 118 y aquí a la introducción de Java. Así que básicamente estamos empezando con un poco de una introducción de Java. O bien si no has usado Java en absoluto, esto va a ser muy, muy útil para ti. De lo contrario, si ya has trabajado con otro lenguaje de programación o con el propio Java, entonces esta es una idea muy inteligente tener esto como un buen repaso aquí en un principio. Por lo que recomiendo encarecidamente pasar por toda la introducción de Java. También va a haber algunas asignaciones en el camino, que se pueden hacer para solidificar más básicamente los conceptos que vamos a estar discutiendo en esta introducción aquí. Y va a haber algunos prerrequisitos que vamos a necesitar. El primero va a ser un JDK. Jdk es un Kit de Desarrollo Java, y vienen en diferentes sabores, por así decirlo. Pero lo que vamos a utilizar es el de adoptarlo aquí, y vamos a necesitar usar 16. Por lo que JDK 16 en este caso, esto se llama tamarín 16. Y he vinculado esto en los recursos básicamente que se puede descargar esto. Esto asegura que seleccione su sistema operativo y su arquitectura. Entonces para mí, esta sería arquitectura de Windows y 64 bits. Recomiendo encarecidamente descargar el MSI aquí porque eso es básicamente solo instalador, que luego instala el JDK en tu máquina como básicamente cualquier otro programa, realmente. Bueno, solo instala eso normalmente como lo harías con cualquier otro programa, y luego podemos proceder. Una vez que hayas instalado el JDK, también necesitaremos un IDE. Y IDE es un entorno de desarrollo integrado, que en nuestro caso vamos a estar usando la idea IntelliJ. Esto es, encontré absolutamente una gran herramienta para estar usando para esto, podemos usar la versión de comunidad que es gratuita y construida sobre código abierto, que es más o menos incluye todo lo que nosotros alguna vez podría querer o necesitar. Así que definitivamente asegúrate elegir la versión comunitaria aquí. Una vez más, también solo descarga el EXE si estás en Windows, y como tal vez hayas visto aquí, también puedes Trick check aquí si estás en Mac o Linux, básicamente cambiar e instalarlos también. Y también solo instala esto como lo harías con cualquier otro programa también. Y después una vez que se instala se inicia y luego podemos proceder. Cuando abras inteligencia por primera vez, también te aparecerá una ventana similar a esta. Ahora va a verse un poco diferente, pero tendrá estos tres botones, el botón The New Project con el botón Abrir y el botón get from VCS. Al hacer clic en el botón Nuevo proyecto, puede ver que aparecerá una nueva ventana. Lo importante es que queremos seleccionar el nuevo proyecto aquí mismo. Aquí sólo podemos nombrarlo lo que queramos. Entonces por ejemplo, introducción de Java, puedes elegir una ubicación aquí mismo usando el lenguaje Java Build System intelligence y el JDK siendo 16 para nuestros propósitos aquí para la introducción de Java, el código de muestra tiene que ser revisado por ellos. Con esto hecho, podemos hacer clic en el botón Crear y luego aparecerá una nueva ventana. Ahora en primer lugar, lo que realmente tenemos que hacer en las versiones más nuevas para la inteligencia, cambiaron algunas cosas. No estoy seguro de por qué ese es el caso, porque en realidad sí tienden a cambiar un montón de cosas que es un poco molesto. Pero nuestra clase principal aquí mismo, para que puedas ver esta principal, si hago doble clic en esto, se abrirá. Es posible que ya hayas abierto para ti. Eso también está bien. Ahora, en el futuro, realidad va a estar en algunos paquetes. Entonces en realidad tenemos que hacer esto manualmente para nuestro caso aquí en este caso, pero eso va a estar bien. Pero simplemente hacemos clic con el botón derecho en la carpeta fuente para que pueda ver fuente haga clic derecho en nuevo paquete. Y luego vamos, voy a llamar a esta red. Y luego en esta red voy a hacer clic derecho en nuevo paquete y voy a llamar a esta ayuda. Y Joe, ahora lo vas a llamar como sea tu nombre. Básicamente vas a tener net y luego tu nombre, por ejemplo, voy a arrastrar la clase principal a ella, digamos Refactor, y luego vamos a estar bien. Entonces tienes este paquete aquí arriba también. Esto es muy importante porque hay unas próximas conferencias. Vamos a tener esto también. Ahora bien, si esto se muestra de manera diferente a usted, podría ser el caso de que en realidad se vea algo así. Te voy a mostrar sólo por un segundo que aquí es una especie de pactos, net dot count Joe, todo en una sola línea. Si ese es el caso, se puede ir a este equipo aquí mismo. Para crear un árbol de apariencia, altura, MT, paquetes medios, puede anular la selección de eso y también los paquetes aplanados también deseleccionados. Y entonces vas a tener exactamente lo mismo que nosotros tenemos ahí mismo. Ahora vamos a seguir con Pascal y Joe para el resto de las conferencias. Entonces en este caso, lo que vamos a tener es el, vamos a tener algo llamado main aquí y otro principal aquí. Y entonces esto es un común donde dice escribe tu código aquí. Ahora no vamos a escribir código en esta primera En conferencia aquí mismo. Vamos a empezar básicamente inmediato en la próxima conferencia. Esto es realmente sólo la configuración. Entonces, en general, esto es más o menos todo lo que tenemos que hacer. Todo el código siempre va a estar disponible en cada conferencia. Entonces en cada conferencia vas a encontrar un enlace de recursos o vas a encontrar esto básicamente enlazado en algún lugar donde puedas tener ya sea el repositorio de GitHub. Entonces todo esto se va a guardar en un repositorio de GitHub. Y cada conferencia va a ser un individuo, básicamente una rama individual allí. O también tienes juristas individuales donde cada uno de los diferentes, cada uno del código, todo del código de esta conferencia también está vinculado allí también. Por lo que no se preocupe ahí. Se puede acceder a todo antes de que incluso puedas echar un vistazo a esto porque por supuesto, algunas personas, preferirían tener el código delante de ellos y luego cambiarlo un poco. Algunas personas solo quieren codificarlo, como mientras lo estoy codificando. Y eso está totalmente bien. Ambos enfoques son absolutamente básicamente válidos en este caso. Pero por el momento, esto es básicamente. Por lo que todo el código estará disponible y ojalá lo hayas hecho hasta este punto. Y luego ver si una vez que empiece la siguiente conferencia, se puede ver si todo ha funcionado ahí o no. Pero eso ganaría por esta conferencia aquí mismo. Y te veré en la próxima conferencia. Entonces, sí. 3. (Java) Datatypes Java: Bienvenido de nuevo a la introducción de Java para un modelado de Minecraft. Y en esta conferencia, vamos a estar hablando de tipos de datos. Entonces estamos empezando muy, muy lento. La idea es que en la programación, podemos guardar cosas en variables. Ahora, ¿qué son esas cosas, verdad? Hay diferentes tipos de datos. Y básicamente en esta conferencia vamos a pasar por qué tipos de datos son, básicamente significando los tipos de datos. Por lo que hay algunos tipos diferentes de tipos de datos como incluso ir más allá. Y el primero serían los tipos numéricos, básicamente cómo guardar números. Aquí hay un montón de tipos de datos diferentes. Entonces hay un entero, hay un flotador y el doble. Por lo que esos son los que se utilizan principalmente. Voy a hablar de esos en un rato. Por lo que se puede ver en primer lugar, cuando se crea especie de una nueva variable, que es, se puede pensar en eso como un contenedor que contiene un cierto valor. Y el tipo de valor está determinado por, en este caso aquí, la primera palabra, se puede ver que en realidad incluso está marcado en naranja. Eso no siempre va a ser así. Esto sólo va a ser el caso con los tipos de datos primitivos. Pero qué son esos vamos a ver en un poquito en una conferencia posterior básicamente. Y se puede ver que a esto se le llama un número. Este es el nombre de la variable y luego el valor es 42. Ahora, un entero, como dije, es el tipo particular de tipo de datos de A, un tipo de datos numérico, que es un número entero. Por lo que esto sólo puede guardar números enteros o enteros. Y el rango real que puede ahorrar, va de 2 mil millones negativos a más 2 mil millones como se puede ver. Entonces estos son básicamente los números que puedes guardar que se pueden almacenar en un entero. Esa es la idea. Y luego hay flotador, o cuando necesitas una coma. Ahora, lo que es muy interesante con carrozas y dobles que son casi lo mismo, no del todo, pero casi lo mismo. Ambos son números de punto flotante. Y la idea es que esto en realidad no se almacena así, en realidad se almacena como notación científica. Podría haber visto esto antes en alguna parte. Y esto es algo así como 1.412 veces diez a los cuatro serían entonces 14,120. Y básicamente en esta notación aquí, se almacenan los números de punto flotante. Y lo que es importante con un flotador al usar esos, tienen una precisión de siete puntos decimales, lo que significa que puedes tener siete números. No importa si están o no a la izquierda o a la derecha del punto decimal, sino siete números y luego van a ser precisos, y después de eso se va a redondear. Esta es también la razón por la que normalmente no quieres guardar cosas muy, muy, muy precisas en carrozas. Entonces, por ejemplo, si tienes como diez miles o un 100 miles de Bitcoin, algo así. Eso definitivamente no se debe guardar en un flotador porque eso podría ser muy fácil obtener error de redondeo. Entonces esos son errores de redondeo de punto flotante. Esos son muy comunes. Ahora un doble es un poco mejor en que tiene una precisión de 15 puntos decimales. No obstante, aún así podrían serlo, aún podría llevar a algunos temas de redondeo. Entonces eso es algo de lo que hay que estar al tanto. Normalmente en la mayoría de los casos, por ejemplo, en nuestro caso, esto realmente no importa. Entonces si tienes un flotador, por lo general eso puede representar, por ejemplo, tienes ciertas posiciones de bloque en el mundo escrito esto algo entre esas posiciones de bloque porque por supuesto un bloque es no como un solo punto en el espacio, tiene como un poco de gradiente allí. Y luego hay un poco de algo de redondeo que va a estar totalmente bien. Y esa también es probablemente una de las razones por las que si vas como millones de millones de bloques en una dirección en algún momento, el mundo se pone realmente mal porque errores de coma flotante y cosas como eso. Entonces esa es probablemente también una de las razones. Ahora hay algunos otros tipos numéricos que no se usan con tanta frecuencia, al menos personalmente, no lo he visto con tanta frecuencia. Mucha gente podría decir, bueno, quiero decir que eso no está del todo bien. Por supuesto, hay que estar al tanto de estos. Pero por lo general ya no he visto los utilizados con tanta frecuencia. Por lo que un byte es de ocho bits y puede almacenar números de 128 negativo a 127. Entonces esto, yo llamaría a esto un número minúsculo porque básicamente solo puede almacenar una cierta cantidad de valores. Básicamente aquí en este caso, un corto es un número pequeño que puede almacenar entre 32000 negativo y más 32000. Y entonces por otro lado es un largo que como puedes ver, puede almacenar desde nueve cuatrillones negativos hasta cuatrillones positivos nueve cuadrillones, lo cual es bonito, eso es bastante asombroso. Eso es mucho como ese es un número muy grande, por lo general, muy raramente usado. Como dije, por lo que puedo decir, un entero es el número más común para un número entero. Y luego se usan flotadores o dobles para, bueno, básicamente números decimales o algo así, ¿verdad? El siguiente tipo de datos de paréntesis van a ser los booleanos. Esta es una especie de lógica. Entonces en lo que se puede pensar es, bueno, tenemos un booleano. Un booleano puede ser verdadero o falso, por lo que puede ser uno o 0. Esto se puede representar en un bit porque un poco, si sabes o no sabes, puede ser 0 o uno, Esos son los únicos dos valores posibles que puede tomar. Entonces esto es más o menos lo mismo. Puede ser cierto o falso. Así son estos grandes videos, lo haré espero. Entonces eso es cierto. Y es este HTML. Bueno, eso es, ojalá no pensaras eso porque eso es falso en realidad. Entonces eso es una especie de lo booleano. Y la lógica es en realidad increíblemente poderosa como todo el campo lógico. Porque por supuesto, la totalidad de todas nuestras computadoras y sistemas operativos y todo eso está basado en código binario. Y en teoría, los booleanos no son más que código binario, ¿verdad? Porque un verdadero es uno y una fuerza es un 0. Entonces se aplican especie de las mismas leyes en ese sentido. Se lo puede pensar así, pero en general booleanos, igual que con enteros, vamos a echar un vistazo a esos con un poco más de detalle en el futuro. Pero definitivamente quería presentarte a esos. En el tercer y último tipo de corchete grande aquí, nuestros personajes y cuerdas a un personaje, como puedes ver, anotan un char. Y este es un solo carácter, por lo que esto está marcado con estas comillas simples y simples aquí. Y esto puede almacenar un solo carácter y caracteres especiales, coma regular. Para que pueda poner una coma aquí, está bien. Puedo poner un guión aquí, como un hashtag, la estrella del símbolo más, eso está todo bien. Oh, bueno, incluso puedo poner en un espacio y funciona. No obstante, lo que no puedo hacer es poner dos caracteres aquí, entonces no va a funcionar porque dos caracteres o múltiples caracteres uno al lado otro se llama cadena. A una cadena, como dije, es básicamente sólo una secuencia de caracteres. Y esto está marcado con comillas normales. Por lo tanto, comillas dobles aquí y comillas dobles aquí. Y como probablemente has visto, el final de cada línea siempre tiene los puntos y coma. Ésos también son muy importantes aquí. Y esa es una especie de idea. Por lo que tienes caracteres que son singulares, singulares y un, a, una cadena de caracteres es una cadena. Entonces esa es una especie de idea aquí. Y luego al final, quería mencionar algo que definitivamente vamos a ver también en el futuro, que es nulo, la palabra clave null. Por lo que se puede ver que esta prueba de cadena es igual al valor de null. Y lo que es muy importante es que nulo no es 0. Está literalmente vacío, como si no tuviera valor. Aunque. Esto a veces es al principio, sobre todo un poco difícil de atravesar realmente la distinción entre lo que no entiendo, sin valor. ¿ Qué significa eso? Bueno, simplemente no tiene valor es indefinido, por así decirlo. Es inexistente. Escribe esta prueba como si bien se define aquí, no lo es, no tiene un valor, es nulo. Y definitivamente vamos a mirar eso y ver eso en una conferencia posterior también. Entonces no se preocupe ahí si eso es un poco confuso, no se preocupe. El resto debe ser al menos bastante comprensible en el sentido de que, de acuerdo, tenemos algunos cubos, podemos pensar en eso, algunos contenedores en los que podemos ahorrar algunos valores. Y dependiendo de qué tipo de valor sean, tenemos que escribir cosas diferentes al frente. Entonces esa es una especie de la idea general quería atravesar aquí, pero los tipos de datos , de lo contrario, espero que esto te fuera útil y aprendas algo nuevo y te veré en el próxima conferencia. Entonces, sí. 4. (Java) Sintesis Java: Muy bien, bienvenido de nuevo a la introducción de Java para Minecraft Martin. Y en esta conferencia vamos a echar un vistazo a cómo leer código. O también voy a llamar a esto tal vez sintaxis Java. Entonces la idea es en primer lugar, y esto podría, algunos de ustedes podrían haber sido ya como esperar un segundo. Ha estado ignorando todo esto aquí arriba. ¿ Qué es esto? En primer lugar, vamos a calmarnos ya que vamos a tener que empezar a construir algunos fundamentos más antes hablar de todo lo que sucede aquí arriba. Por lo pronto, lo que te recomiendo es que solo ignores esto. lo único que realmente nos importa es que este cuadro temprano aquí. Y entonces si realmente pongo mi cursor ahí, se puede ver que éste ilumina todo. En primer lugar, bien, ahora tiene que suceder entre estos dos corchetes rizados. Eso es todo lo que nos va a preocupar. No nos importa lo que esto signifique. No nos importa lo que sea esto, lo que todos esos públicos, estáticos, nulos, principales, cuerdas, todo eso, no se preocupe en absoluto. Vamos a resolver todo esto en las futuras conferencias que están por venir por el momento. Vamos a imaginarlo básicamente aquí dentro. Esa es nuestra principal prerrogativa en este momento, aunque, primer lugar, el código se lee de arriba a abajo. Y eso es interesante. Bueno, sí. Por eso también tenemos aquí estas líneas, que es muy útil, pueden ser muy, muy útiles para determinar flechas. Podemos decir, Hey, tienes un tema ahí en la línea 18. Lo miras en línea. 18, Ahí está. Está bien. Suficientemente justa. Eso es muy útil. Y por lo general hay, por supuesto, excepciones a la regla. Pero en general, lees de arriba a abajo. Ahora si tienes dos barras aquí, entonces tienes un comentario de una sola línea. Y si tienes esta slash, estrella y estrella, y puedes tener comentarios multilínea. Entonces eso también es algo de lo que hay que estar al tanto. Y The, Hay algunas cosas diferentes que puedes hacer cuando tienes una variable, ¿no? Entonces volvemos a las variables. Y los hemos visto por supuesto, ¿verdad? Diferentes tipos de datos. Y variable era algo así como un cubo o un contenedor en el que podríamos almacenar un valor de cierto tipo y tenemos que especificar esto. Entonces cuando declaras una variable, entonces declarar una variable significa que declaras el tipo de datos de esa variable y el nombre de la variable. Y tenga en cuenta una vez más que todas las líneas terminan con un punto y coma. Esto es normal. Entonces cada línea, cada instrucción termina con un punto y coma. Esto es por cierto, también muy interesante porque podría en teoría, ¿no? Otra. Entonces en x y yo sólo podría hacer esto. Bueno, esto no funciona del todo porque todos estamos usando este día 0. Entonces y, por ejemplo, yo también podría hacer esto. Esto también funciona porque se trata de una sola instrucción, por lo que no necesariamente tiene que ser cada línea. Y básicamente hacer esto también funcionaría a pesar de que hay dos líneas. Y por cierto, esto es como una cosa horrenda. Esto es como formatear que es del diablo. Nunca hagas algo así. Pero cualquiera que sea el caso. Por lo que no necesariamente son líneas siempre, pero está en instrucciones simples. Esa es una especie de idea. Y por lo general dirás que cada línea tiene que terminar con un punto y coma es un buen comienzo. Básicamente ese es un buen comienzo. No siempre es el caso, pero suele ser el caso. Ahora, esto es declarar una variable y luego también podemos asignar a una variable un cierto valor. Y esto es lo que estamos haciendo aquí. Ya lo hemos declarado. Entonces si ahora existe en algún lugar del éter del programa, digamos, y ahora decimos que soy igual a 30. Entonces ahora le hemos asignado un valor a esta variable, ¿de acuerdo? Ahora podemos hacer ambas al mismo tiempo, declarando y asignando un valor, que es entonces índice igual a 10. Y esto se llamaría inicialización o inicialización de esta variable en este caso. Y eso es muy interesante. Por lo general, la gente no arroja estos términos necesariamente. Es sólo algo de lo que estar al tanto un poco. De acuerdo, he declarado esta variable, ahora la he inicializado aquí, he asignado esta variable, así que es sólo algo tipo de términos aquí deberían ser, al menos guárdelo en el fondo de tu mente. Esa es la parte más importante aquí. Y luego existe la posibilidad de acceder a variables o métodos. Hemos hablado de métodos aún de ciertas variables u objetos. Tampoco sabemos muy bien qué objetos son todavía, pero lo vamos a averiguarlo también en el futuro. Pero por ejemplo, si tenemos una cadena, en realidad podemos obtener la longitud de la cadena. Entonces cuántos personajes hay en esa cadena haciendo punto y luego algo después de ella. Entonces si pongo esto, en realidad se puede ver que enorme cantidad de cosas se me arrojan como sugerencia, conocedores en la pared, vamos a mirar esas cosas en una futura conferencia también. Por lo pronto, sólo sabemos que el operador de puntos también nos hace capaces de acceder a ciertas variables o métodos de una, otra variable. Eso es una especie de lo que deberíamos almacenar por el momento. Y luego la aplicación real de esto lo vamos a ver en una conferencia posterior a un lejos, lejos, para mayor medida y de manera más detalle que ésta. Pero por el momento, esta es una especie de la clave general sobre cómo leer el código aquí. Como dije, esto por supuesto no es exhaustivo. Esto no lo es todo, pero esas son una especie de las cosas principales que quería atravesar por el momento. Por lo que se tiene la idea de declarar una variable, asignar una variable, y luego hacer ambas al mismo tiempo y luego acceder a algo con el operador de punto. Y lo más importante, que escuela de este año debe ser ignorada y todo esto debe ser ignorado y todo lo justo entre esos corchetes rizados realmente se debe prestar atención por el momento ser. Pero como dije, nos vamos a aventurar fuera de esto, estos corchetes rizados vengados, pero eso será todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 5. (Java) Salida y entrada: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de microondas. Y en esta conferencia, vamos a estar echando un vistazo a la salida de cosas e introduciendo cosas. Por lo que esto es tanto sacar algo a la consola como leer algo desde el usuario. Entonces básicamente estamos almacenando para sobrecargar nuestra capacidad de hacer algo en realidad. Y lo primero que vamos a hacer es que sólo vamos a dar salida Hola mundo porque esto es algo que todo programador aprende a primera vez. Y esto es lo que vamos a hacer. Entonces vamos a teclear un sistema. Y se puede ver que en realidad se están sugiriendo algunas cosas para nosotros. Simplemente lo vamos a escribir este sistema con una S mayúscula, fuera muy importante, todo minúscula y luego imprimir línea, imprimir LN. Y luego vamos a hacer un primer paréntesis abierto. Los paréntesis de cierre deben generar automáticamente. Y entonces sólo podemos ir aquí y poner un punto y coma. Ahora este es Oregon. Aquí vamos a estar bien. No obstante, ahora queremos poner algo paréntesis y eso va a salir. Ahora tenemos que hacer de esto una cuerda. Por lo tanto, vamos a escribir aquí las comillas básicamente. Y entonces las segundas comillas deberían generar automáticamente también. Y entonces podemos teclear en hola mundo. Entonces tan simple como eso. Y ahora para empezar realmente este programa, subimos aquí, aseguramos que todo esto esté bien. Esto debería parecer casi exactamente igual. Y sólo vamos a hacer clic en este botón Ejecutar. Y luego después de unos momentos, tienes helloworld. Si esta fue la primera vez que ejecutas un programa donde tienes primera literaria empezando a programar en este momento. Y esta es la primera vez que ejecutas esto. Y todo aquí dice hola mundo y esto dice proceso terminado con código de salida 0. Enhorabuena. Ni siquiera estoy siendo como no estoy siendo, no quiero ser condescendiente aquí porque este es en realidad un paso por el que todo programador pasa. En algún momento, van a escribir un programa helloworld y van a ser como esperar un segundo, puedo hacer que las cosas muestren ese I1. Por lo que podría, por ejemplo, saludar a los estudiantes. Y vas a estar como, manera ese no puede ser el caso. Yo sólo puedo hacer eso. Sí, solo puedo ejecutar esto. Si en realidad ejecuto esto correctamente, Ahí tienes. Está bien, así que corre esto Hola estudiantes, y ahora dice Hola estudiantes, no se preocupe en absoluto. Entonces como puedes ver, esto en realidad es realmente, realmente jodidamente cool y esto se va a sobrecargar aún más porque ahora digamos que tenemos una variable entera x, que es igual a 10. Bueno, ¿por qué no acabamos de dar salida una vez más sistema y puedo empezar a escribir esto y se puede ver que esto es algo así como tiene especie de la tasa seleccionada es una especie de resaltado, por así decirlo. Y cuando presiono la tecla de tabulación, en realidad se autocompleta. Por lo que puedo escribir esto muy rápido. Por lo que se puede ver como también ya, básicamente es un sugerido aquí y luego línea de impresión de puntos también. Y solo puedo meter la x y mirar esto. Todo funciona y a veces va muy rápido. Entonces puedes ver esto así, bueno, eso es tanto por eso, ¿verdad? Por lo que un sistema fuera de línea de impresión, se puede ver lo rápido que a veces funciona. Sin embargo, no se preocupe. Voy a tratar de hacer esto, sobre todo al principio aquí, un poco más lento para que todos puedan estar básicamente al día. Y bueno, podemos simplemente poner en la x aquí, por lo que la variable dentro de estos paréntesis y luego el valor está siendo salida. Eso es realmente genial, ¿no? Donde tienes la capacidad de generar realmente algo que está en una variable. Y ahora nos vamos a enloquecer aún más. Por lo que una vez más, System.out, línea de impresión. Una vez más, solo auto completándolo con la tecla Tab. Y ahora puedo decir algo así como sacar algo de valor. Y ahora mira esto. Puedo ir más allá de la cuerda. Hacer un plus x. sin errores en absoluto. Todo se ve bien. ¿ Qué va a pasar ahora? Bueno, mira esto ahora. Emitir algún valor y luego el valor de la variable se va a salir ahí. Entonces eso es bastante frecuente, enfermo si lo digo yo mismo. Eso en realidad es realmente genial. Otra pregunta entra, bueno, ¿cómo podemos leer algo del usuario? Ahora esto es un poco más complicado. Por lo general, esto es algo, ya sabes, es una especie de, yo diría, semi limitación de Java. Es una especie de fastidio que sea complicado, pero no se preocupe lo que vamos a escribir es lo siguiente. Vamos a escribir escáner y luego simplemente espaciar todo cuando algo se ponga rojo aquí, sin preocupaciones en absoluto. Vamos a mantener la calma. Todo está bien. Entonces Escáner en equivale a un nuevo. Y luego una vez más escáner con una S grande con una S mayúscula dentro de los paréntesis. Entonces vamos a hacer sistema de paréntesis . Y terminando esto con punto y coma. Ahora tanto el escáner aquí el escáner aquí deberían estar listos. Eso está totalmente bien. Lo que tienes que hacer es dar click en esto y presionar Alt y Enter para importar esto aquí arriba. Entonces como dije, generalmente queremos ignorar todo esto, pero podemos hacer un pequeño pico aquí arriba. Por lo que se puede ver importar escáner util Java. Esto es básicamente importado. Entonces eso no son preocupaciones en absoluto. Puedes, si esto es importante mientras escribes esto, porque cuando presionas la tecla Tab, cuando escribes escáner, esto podría ser importante automáticamente, sin preocupaciones en absoluto. Simplemente asegurándose de que esta sea la correcta, bueno, frase, por así decirlo aquí. Y que esto esté escrito así. No nos vamos a preocupar por lo que esto significa. ¿ Qué estamos haciendo aquí? Nada de eso, sólo vamos a saber, vale, necesitamos esto para leer algo en. Entonces vamos a decir sistema fuera línea de impresión de puntos, escriba su nombre de usuario, algo así. Y luego lo que vamos a decir, vamos a hacer una nueva variable de cadena llamada input. Y vamos a hacer que esto sea igual al escáner que. Siguiente. Ahí lo tienes. De acuerdo, Así que a continuación, como se puede ver, tiene que ser escrito así para que lo suficiente para poner siguiente y luego abrir y cerrar paréntesis. Y entonces eso está bien. Entonces esto ahora va a guardar lo que vamos a escribir en la consola en esta variable aquí, y entonces podemos hacer algo con ella. Por ejemplo, sólo vamos a salir inmediatamente de nuevo. Entonces sistema fuera de línea de impresión, tu nombre de usuario es, y luego solo vamos a decir entrada. Entonces solo para el, para probar esto básicamente, así que vamos a almacenar esto. Y lo que deberíamos ver es que muchos estudiantes tienden a sacar algo de valor. Y se puede ver que en primer lugar, el programa no termina automáticamente porque está esperando nuestra entrada. Entonces, solo digamos esto. Bueno, mi nombre de usuario es el conde Andrew. Voy a presionar Enter y luego podrás ver que tu nombre de usuario es verdadero. Entonces eso es un bastante cool como cuando lo piensas. Y esto realmente también comienza donde solo puedes jugar un poco con esto. Ya sabes, tienes algo de intractabilidad con la PC. Ahora puedes hablar realmente con el PC, por así decirlo, lo cual es realmente genial. Entonces este es uno de los primeros pasos. Yo mucho un, básicamente solo te aconsejaría que pruebes un montón de cosas aquí, simplemente escribiendo algunas cosas, escribiendo algunas cosas hacia fuera. En realidad puede ser muy divertido. Pero por supuesto vamos a usar esto en futuras conferencias y las próximas asignaciones también, donde básicamente vamos a leer cosas en evaluadas y luego hacer las cosas dependiendo de cuál sea la entrada es. Entonces todo eso es bastante guay. Pero esto, por ahora, es para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y te veo en la próxima conferencia. Entonces, sí. 6. (Java) Errores y cómo no no se se enfrentes cuando los llegas.: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar viendo algunos errores y cómo puedes pedir ayuda cuando recibas estos errores. Entonces, en primer lugar, básicamente estamos empezando con algún código pre-hecho de nuevo aquí mismo. Pero no se preocupe. Esto es por supuesto, todo disponible para ti en el repositorio de GitHub o como individuo igual de bien. Y esto es muy interesante. Entonces, en primer lugar, estamos básicamente podemos descomentar algunas líneas para encontrar algunos errores. El primer error que vamos a tener es que java no puede encontrar el error de símbolo. Y que básicamente como vas a ver esto es hey, algo está rojo dentro del código. Por ejemplo, solo voy a descomentar esto y vas a ver que a2 31, básicamente una variable a la que estamos intentando acceder o referenciar no está en realidad existente. Entonces esto va a ser rojo. Ahora bien, esto podría ser algo que no te has dado cuenta. Entonces el rojo también va a ser como subrayado aquí y en la clase principal aparecen y vas a tener un símbolo de problema y un problema ahí. Entonces va a haber un montón de señales aquí, pero en realidad podrías simplemente no notar esto, lo cual está totalmente bien. Entonces si entonces aún ejecutas tu programa, lo que te van a saludar es con esto. Entonces lo primero que hay que decir es que cuando recibes un error, no te preocupes en absoluto. Honestamente, conseguir un error al principio podría parecer muy desalentador y podrías estar poniéndote nervioso. Digamos: No te pongas nervioso para nada. Obtener errores es en realidad algo que se espera cuando estás programando para que algo funcione la primera vez en realidad te pone muy sospechoso. Porque es muy raro que cuando estás trabajando en algún código que funcione a la primera vez ejecutándolo. Entonces por favor, en primer lugar, siempre se mantuvo tranquilo cuando se obtiene un error. No es nada como esto. No hay vergüenza en eso en absoluto. No has hecho nada malo y siempre podrás arreglarlo. Entonces esta flecha, en este caso, dice, como dije, java no puede encontrar símbolo. En realidad nos dice cuál es la variable aquí y dónde se encuentra. Y si echan un vistazo a la parte superior de aquí, realidad se puede ver este 1128. Y eso en realidad significa que esto está en la línea 28, en el personaje u otra línea 11, en el personaje ocho. Entonces esto en realidad es realmente jodidamente cool. Por lo que podemos encontrar de inmediato en dónde está esta flecha. Se puede decir, Vale, he hecho un error tipográfico ahí o me olvidé de hacer una variable, algo así. Esta sería esta flecha de aquí. El segundo que podría encontrarse en algún momento es excepción en hilo principal, Java, Lang, NullPointerException. Entonces esto significa que algo es nulo, lo que significa que no tiene valor. Por ejemplo, tenemos una variable de cadena justo aquí. Y ponemos el valor en nulo, que ya les hablé es hace, significa que no tiene valor. No existe prácticamente. Ahora si ahora tratáramos de llamar a la longitud en esto, esto por supuesto no tiene ningún sentido porque la longitud de la nada también es nada como no puedes llamar a una longitud en algo que no existe, lo que significa que vamos a obtener una NullPointerException. Entonces esto se ve un poco así. Y a esto se le llamaría el seguimiento de la pila. Entonces una pila traza en términos como laicos solo en general. Entonces ya saben, de lo que se trata es básicamente de qué código se ha llamado hasta este punto, hasta que se ha producido el error. Y se puede ver que esto sucedió en el dominio de algodón principal y luego 16. Por lo que en realidad podemos hacer click en esto y nos dará la línea exacta y a veces hasta la pieza exacta de código donde ha sucedido esto. Entonces esta es la NullPointerException. Esto es algo que sucede rutinariamente incluso con desarrolladores avanzados, que a veces se olvida de inicializar algo. A veces solo llamas a algo en el orden equivocado, te olvidas de llamar a un método que es algo que sucede con demasiada frecuencia. Una vez más, nada de qué preocuparse, pero esa es la excepción nula. Normalmente se puede arreglar esto asignando correctamente una variable. Y luego lo último que realmente no es como una excepción, pero hemos visto esto también aquí. Entonces este es este proceso terminado con código de salida uno, o a veces también podría decir terminado con valor de salida distinto de cero uno, algo así. O también podría ser algo diferente a 1, 13042, lo que sea. Por lo que podría ser algún número que no sea 0. Eso es lo más importante. Eso significa que hay un error. Nunca debes publicar solo esto. Si solo publicas, hey, obtuve un error y tu post-proceso terminado con código de salida 0 o terminado con valor de salida distinto de cero. Todo el mundo sabe que no conoces Java. Ahora ese no es un tema por supuesto, porque hay que empezar en alguna parte. Pero esto solo si alguien quiere ayudarte, ¿verdad? Entonces por ejemplo, si fueras a entrar a la Q y a y estás como, Oye, mi ya sabes, tengo una flecha y dice esto. Si publicas esto, primero que nada, voy a saber que probablemente no has visto esta introducción de Java, que es por supuesto encuentra tu propia decisión. No obstante, lo que también notaré que esto no lo es, esto no me da ningún valor en absoluto. Esto sólo me dice que ha habido un error. Eso es todo. Eso es todo lo que dice esto. Si el valor de salida no es 0, entonces eso solo significa que hubo un error en alguna parte. No sé cuál es el error. No sé cuál fue la excepción. Yo no sé nada. Significa que en realidad tendré que volver a preguntar. Simplemente puede ser un poco frustrante porque entonces tienes que preguntar de nuevo, Oye, ¿puedes mostrarme el registro de errores es que hay algo de salida ahí. Tan solo pon la flecha ahí también. Por lo general cuando tienes un error, Es mejor dar demasiada información en lugar de muy poca. Entonces ese suele ser el caso. No siempre es así. Al igual que no solo dejes caer como 80 archivos diferentes en alguien que quiera ayudarte o en la Q&A, algo así. Pero usualmente deberías tener algo como esto, ¿verdad? Y excepción y error, algún tipo de registro algo que dice algo en particular como esta excepción. Podría tener una excepción en alguna parte, algo así. Entonces eso debería ser como lo que quieres cuidar. Vamos sólo algo que quería darte, que puede ser muy importante, ¿verdad? Pero eso ya lo es. Entonces esto es una especie de la, sólo una visión general de esos errores. Y por supuesto, no dudes en preguntar si hay errores. Si recibes errores en el camino y pides ayuda, eso está totalmente bien. Yo sólo quería mencionar sobre todo este año porque puede ser frustrante, no sólo a veces para mí porque por supuesto, entonces hay que hacer una pregunta de seguimiento. Y luego dependiendo de cuánto tiempo va a funcionar eso y tal vez solo busques eso. Y otra respuesta no llegó como 20 minutos, así que tienes que ir a hacer otra cosa y luego toma mucho tiempo. Por lo que eso puede ser a veces un poco frustrante. Bueno, cualquiera que sea el caso, esto es todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 7. (Java) Integras y métodos de arte y matemáticas: O volveré a la introducción de Java aquí para el curso de modelado de Minecraft. Y en esta conferencia, vamos a estar viendo enteros. Vamos a estar viendo las matemáticas, y vamos a estar mirando a los operadores aritméticos. Ahora esas son todas palabras muy grandes. No obstante, estoy seguro de que nos las arreglaremos. Lo primero que vamos a hacer es inicializar dos enteros. Esto va a ser int x igual a 100 e int y igual a 20. Por lo que hasta este punto, todo debe ser bastante claro. En general, esto es justo, se trata de dos variables, x e y. tienen el valor 120 respectivamente. Ambos son enteros. Por lo que empezamos con el tablero int. Por lo que eso debería ser bastante sencillo. Y también tendremos un entero llamado resultado. Ahora vamos a realmente sólo declarar esta variable sin realmente asignarle ningún valor, porque vamos a estar usando eso de las siguientes maneras. Lo primero que vamos a echar un vistazo es la adición. Entonces esos son básicamente operadores aritméticos, suma, resta, multiplicación, división, y luego hay un quinto tipo, que vamos a estar echando un vistazo en tan solo un momento. Entonces el resultado aquí de adición es por supuesto que va a ser x plus y. entonces eso no debería ser demasiado loco. Sólo vamos a entrar en x aquí. Y este operador, x adentro desde la izquierda. A, un entero también podría ser un flotador. Por lo que eso también funcionaría. Entonces ambos de esos, ambos de éstos, si X e Y, cuando ambos los carrozas también funcionarían totalmente. Ahora esto, por supuesto entonces el resultado también tendría que estar a flote. Muy importante. Piensa en eso. Vamos a ver un ejemplo en una futura conferencia de eso también. Al igual que si empiezas a mezclar esos, pero eso debería ser justo sensato. Simplemente ponemos el símbolo más y luego básicamente vamos a agregar x plus y. así que vamos a hacer sistema fuera, imprimir línea y luego imprimir el resultado sólo para que vamos a ver, bueno, esta debe ser un 120. A ver. Y por supuesto que es un 120. Todo funcionando perfectamente bien. Podemos por supuesto, también usar una resta por n Lo que voy a hacer es en realidad voy a dejar que todo esto correcto? Entonces solo voy a arrastrar mi ratón por aquí y luego presionar control C para copiar todo esto para mi ratón aquí, control V para pegarlo. Normalmente hago algo así sólo para que, ya sabes, sea un poco más fácil porque esto es por supuesto mucho duplicado en este caso. Ahora por resta, probablemente lo adivinaste. Sólo tenemos que poner un signo menos aquí. Y entonces de repente estamos restando y de x, lo que significa que esto debería ser 80. Y por supuesto está AD totalmente bien. Y en realidad copiemos de estos como completamente. Una vez más va a seleccionar este control C y luego Control V justo aquí. Y entonces también vamos a echar un vistazo a la multiplicación y por supuesto, la visión también. Entonces la multiplicación va a ser una estrella aquí mismo. Y entonces la división es sólo una tajada. Entonces esto debería ser bastante sensato, nada para estar demasiado loco. En general. Esas son solo las formas normales que básicamente bien calcularías cosas. Entonces eso es más o menos. Sólo pasemos por el C 2005. Eso en realidad está todo bien. Y ahora la pregunta se convierte, bueno, ¿cuál es el quinto tipo? Bueno, el quinto tipo es en realidad el resto. Por lo que a veces esto también se le llama el operador de modulo. Eso es en términos matemáticos reales. Pero para nosotros, es el operador restante y eso parece un signo de porcentaje. Entonces, por ejemplo, podríamos decir 20 resto dos, que por supuesto sería 0. Entonces si sólo vamos a copiar esto una vez más, Control C, control V, Esto va a ser 0 porque cuando dividamos 20 por dos, entonces no queda resto. Entonces esta es una muy buena manera en realidad de echar un vistazo a si un número en particular es par o no impar. Entonces eso en realidad es bastante guay. Y esos son los cinco operadores aritméticos. A bastante sencillo todas las cosas consideradas. ¿ Con qué frecuencia se usan? Bueno, quiero decir, vas a usar algunas matemáticas dentro de todo el asunto de la programación. Sea o no estar en el modelado o en la programación en general, hay algunas matemáticas asociadas a ella, por supuesto. Por lo que estas cosas definitivamente son importantes de haber visto antes. Y entonces lo último que vamos a ver aquí van a ser los métodos matemáticos. Ahora, antes que nada, no nos vamos a preocupar por demasiados problemas. Bueno, es un método. Bueno, se puede pensar en eso como una función particular. Entonces por ejemplo, Hagamos una llamada esta matemática. Entonces puedes ver si tipeo en matemáticas, puedes ver Java Lang y conseguir que eso lo sugiera. Y luego si pongo un punto, tengo, me sugieren un montón de cosas a las que puedo llamar. Y hay cosas, por ejemplo, como el método max justo aquí, donde absoluto, correcto. Entonces puedo llamar aquí a max y puedo decir x, y. y entonces me va a devolver el valor máximo de cada uno de estos, que por supuesto en este caso va a ser un 100. Entonces deberíamos ver al final aquí un pop-out de 100 hace. Por lo que en realidad bastante sencillo. Y entonces simplemente duplicemos esto por el bien de argumentos o Control D para duplicar eso. Y vamos a obtener el valor absoluto de, por ejemplo, digamos menos 500, que sería 500. Entonces En Matemáticas, como una matemática, está escrito así. Entonces tal vez has visto algo así antes con estas como líneas absolutas, por así decirlo. Y eso luego se convierte en 500 porque realmente no nos importa el letrero que está enfrente. Entonces vamos a ver como 500 también. Y como ya he dicho, aquí hay un montón más de cosas, como como puedes ver, este sello. Entonces básicamente puedes redondear hacia arriba, redondear hacia abajo. Se puede conseguir el coseno, se consiguen algunos exponentes. Por lo que se puede poner algo al poder de e logaritmo 10. Al igual que aquí hay algunas cosas locas, redondeando aleatoriamente Incluso, incluso al azar, hay como constantes como e y pi. Entonces hay un montón de cosas aquí. Por lo general, Es muy raramente lo que necesitas usar. Muchos de ellos son especialmente algo así como el método max y el método Min y el método absoluto a veces son en realidad bastante útiles. Y es bueno haber visto esto antes, esto para que no te guste cuando te encuentras con esto, cuando quizá estés mirando algunos repositorios de GitHub de otros modos o simplemente frío en general de otras personas. Y usan algo como esto, entonces no estás completamente atrapado fuera de guardia. Pero eso sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 8. (Java) Operadores de proyectos de asignación: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a estar mirando a los operadores de asignación. Ahora hemos visto al operador de asignación normal, que es el símbolo igual. Y en realidad hay algo muy interesante para esto, porque esto en realidad es una especie de operador lateral, ¿verdad? Entonces vamos a asignar el valor correcto que la variable izquierda. Entonces no podíamos simplemente escribir algo como, por ejemplo, 30 igual a y Eso no funciona, ¿verdad? En realidad tenemos que tenerlo en un orden particular en ese caso. Ahora que bien, ¿esa va a ser la conferencia? ¿ Es eso? No, claro que no. Hay algunos operadores de asignación específicos, muy interesantes que, bueno, ya sabes, requieren los operadores aritméticos para una especie de entender. Pero lo que podemos hacer es por supuesto que podemos decir x, por ejemplo, igual a x más y, ¿verdad? Por lo que sólo estamos agregando y a x en este caso. Y luego escribir eso de nuevo en la variable x, eso funciona totalmente. Eso no va a ser una flecha, eso está totalmente bien. No obstante, también podríamos escribir esto de una manera un poco más agradable, y eso va a ser x plus igual a y. entonces eso también funciona justo aquí. Y eso en realidad es cosa realmente genial. Entonces aquí es donde esto es increíble. Ah, esto se parece mucho más fácil que esto. Y por lo general también es un poco más fácil de entender. Ahora si esto realmente te confunde más que esto, eso está totalmente bien. Tendrás, sin embargo, que echar un vistazo a los operadores de asignación, sobre todo si, por ejemplo, si echas un vistazo al código de otras personas, simplemente podrían usar solo estos y no tanto tiempo forma de escribirlo para que tengas que estar al tanto de eso. Entonces a pesar de que quizá no estés usando algunas herramientas de las que estamos hablando aquí, es todo esto básicamente son herramientas, derechos a programar. Todavía tienes que saber de ellos para leer código que otras personas podrían, ¿verdad? Entonces, en realidad solo imprimamos el, la variable x aquí, y luego vamos a pasar por el resto también, ¿verdad? Entonces vamos a seleccionar esto, copiarlo y luego vamos a, ya sabes, sólo pegarlo en como cinco veces. Entonces lo que puede, por supuesto hacer un minuss igual. También podemos por supuesto hacer tiempos iguales. También podemos por supuesto hacer como Ned, como dividir igual. Y luego al final podemos incluso hacer resto igual. Y que nunca antes había visto así es realmente algo que probablemente es un momento muy, muy específico como donde está esto, tiene que ser frío. Pero vamos a ver si esto funciona. Por supuesto que sí funciona totalmente bien para empezar con un 140 porque hemos sumado 20 aquí, ¿no? Por lo que estamos empezando aquí con 120. Un adecuado de nuevo es un 140, y luego restar es un 120 y luego veces 20 es 2400 y luego dividido por 20 es 100120 otra vez, y luego dividiendo o quedando es por supuesto 0 porque podemos dividir un 120 de Wendy perfectamente, que por supuesto sería toma exactamente. Eso está muy bien, Muy bien hecho. Entonces si yo sin embargo, ahora sólo quería agregarle uno, ¿no? Entonces tal vez sólo quiero hacer algo como esto. X es igual a x más 1, ¿verdad? Pero sólo quiero agregarla por una. Esto se llamaría incremento o un incremento x por uno. Bueno, quiero decir, por supuesto que podríamos escribir esto también, ¿verdad? Simplemente podemos hacer esto. Sí, claro, eso también funcionaría totalmente bien. Pero incluso hay una forma más fácil de hacer esto. Y eso será x plus. Mira esto. Esto es bastante loco. Entonces vamos de aquí a aquí, pero en realidad eso es lo loco que puede ser. Y solo imprimamos esto. Y entonces por supuesto, ya sabes, x menos menos, por supuesto también funciona. Eso lo estaría disminuyendo. Entonces esto es, dejémoslo un rato aquí. Las plaquetas, por lo que incrementan, incrementan, y luego también esto sería decrementando. Entonces básicamente solo estamos sumando uno o estamos restando uno. Sólo echemos un vistazo. Empezamos en 0 justo aquí. Agregar uno, agregar dos es dos o agregar otro, a la derecha es 23. Y luego lo estamos imprimiendo y luego lo decrementamos, y luego estamos de vuelta a las 2. Entonces esa es una especie de idea general aquí. Esos son los operadores de asignación y luego también incrementan y disminuyen Europa, lo cual también es algo importante. Pero esos dos van a estar viendo mucho, sobre todo estos X más y x menos menos. Esas son cosas que definitivamente se usan muy a menudo en ciertas capacidades, digamos dentro del código. Pero eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendió a lo Nuevo. Y te veo en la próxima conferencia. Entonces, sí. 9. (Java) Booleanos y operadores de comparación: Muy bien, bienvenido de nuevo a la introducción de Java aquí para la mañana de Minecraft. Y en esta conferencia, vamos a estar mirando a un booleano y operadores de comparación. La última vez miramos enteros, y ahora vamos a seguir adelante y mirar a los booleanos. Entonces los booleanos en general, podemos recordar esto de la segunda conferencia, son básicamente un tipo de datos que puede bien guardar un verdadero o un falso. Bueno, por ejemplo, vamos a hacer un nuevo booleano aquí. Por ejemplo, le gustan las conferencias. Conferencias, se aseguraron de que esto esté escrito correctamente y esto es por supuesto cierto, Esperemos que sí. Y hagamos también un booleano, que es, por ejemplo, pregunta hecha. Y sólo hagamos esto falso por el momento, tal vez eso se vuelva cierto más tarde, pero por el momento, eso es falso. Entonces recordamos a los booleanos, como dije, un verdadero o falso, 1 o 0, esa es la idea. Y hasta podemos imprimir esto, ¿verdad? Por ejemplo, podemos decir que tienes, o te gustan estas conferencias. Digamos que te gustan estas conferencias. ¿ A quién le gustan estas conferencias? Y luego puedo presionar Control D para duplicar esto. Y por ejemplo, se puede decir, usted ha hecho una pregunta en la Q y a. Así que podría, por ejemplo, tomar esto. Y entonces en lugar de como las conferencias, puedo decir hacer preguntas. Si yo fuera a hacer esto, entonces lo que vamos a ver es sólo verdadero y falso, básicamente igual que una salida de cuerda, están totalmente bien. De acuerdo, así que ese es el tipo de idea de los booleanos, ¿verdad? Verdadero o falso, bastante justo. Pero ahora, ¿qué son los operadores de comparación? Bueno, pensemos en estos operadores de comparación, ¿verdad? Bueno, hay algunos de ellos. Y la idea de los operadores de comparación que por supuesto, bueno vamos a comparar dos valores diferentes entre sí. Y eso va a devolver un booleano porque claro, si comparamos algo, por ejemplo, podríamos decir más grande que no? Entonces tenemos algo que es más grande que otra cosa, entonces claro, o va a ser cierto o falso, ¿verdad? Si voy a decir, oye, tengo una manzana que es como el tamaño de un beisbol. Al igual que bien, lo bastante justo. Y luego tengo una manzana tan grande como un balón de fútbol. Bueno, obviamente el tamaño de un balón es más grande, así que va a haber como un verdadero debajo esto también es un más grande o igual. También hay iguales, no hay iguales. Son más pequeños que y más pequeños o iguales a. Entonces esos son los operadores de comparación. No vamos a mirar a cada uno de ellos individualmente. Y vamos a echar un vistazo un poco. Entonces el ejemplo real que vamos a estar viendo es, por ejemplo, tienes una puntuación en, o tal vez hiciste un examen, ¿verdad? Escribiste un examen y tu puntuación es 98. Bueno, muchas gracias. Esa es una muy buena puntuación y en realidad es en realidad tu día de puntuación, entras. Entonces se puede decir, bueno, podríamos escribir en un booleano que se llama clase pasada, ¿verdad? Y pasas esta clase cuando exactamente. Podemos pensar en esto. Bueno, claro que necesitas al menos 50 puntos. Digamos que por el bien de la discusión aquí, se necesitan 50 puntos para pasar esta clase. Bueno, es muy fácil. Simplemente puedes decir que tu puntuación tiene que ser mayor o igual, 50. ¿ Eso tiene sentido? Entonces eso debería tener sentido intuitivo. Todas las cosas consideraban esto, esto sería cierto en nuestro caso, claro, pero si tu puntuación cambia, entonces la respuesta aquí cambia, ¿verdad? Porque en cuanto esto ya no es como si fueran 49, ya no pasas la clase, ¿verdad? Por lo que eso debe pensarse bastante autoexplicativo. Por lo que incluso podemos simplemente imprimir esto. Así que sólo sistema fuera, imprimir línea, digamos por ejemplo, usted preguntó, vamos poner esto en así y luego pasar clase, ¿verdad? Entonces vamos a conseguir un verdadero si es cierto y un falso si no lo es. E incluso podemos decir algo así con tu puntuación más puntos, algo así. Podemos decir esto. Y si ahora corro eso y te veo pasar verdad con 98 puntos. Si yo fuera a poner esto a 49, que por supuesto, en este caso ahora ya no es cierto. Por lo que no 49 ya no es más grande ni igual que 50. Bueno, esto ahora devolverá un falso. Ya verás, ahí tienes. Pasaste falso con 49 puntos. Mantengamos esto como DOE 1998. Y pensemos en esto también. Entonces tomemos otra idea aquí. Entonces también podemos tener un booleano, por ejemplo, tiene puntaje perfecto, ¿verdad? Y esto podría ser entonces igual a tu puntuación es igual a un 100. Este es el operador igual. Muy importante que esos sean dos signos iguales. Y eso es algo que a veces gente se confunde con los conocedor en absoluto. Un signo igual es el operador de asignación donde estamos asignando un valor a una variable. Y dos signos iguales es el operador de comparación donde estamos comparando si este valor de esta variable aquí es o no igual al valor de esta. Eso es muy importante. Y aquí por supuesto, esto es falso. A medida que por supuesto 98 no es igual a un 100. Eso también debería ser bastante sencillo en general. Y hasta podemos hacer algo así que es muy interesante. Incluso podemos negar algo. Entonces esto es básicamente esta la marca de declamación aquí. Aunque. También podemos decir algo así como, hey, pasamos la clase aquí, y luego podemos hacer otro booleano que se llama clase fallida, nos falló. Y esto puede ser igual a, bueno, no pasar clase, ¿verdad? Entonces simplemente negamos si pasamos o no la clase. Y por supuesto eso tiene sentido. Entonces si esto es un poco confuso, lo estás escribiendo, como en realidad escribir un texto de escritor. Si la clase fallida es verdadera, ya que la clase es falsa, por supuesto. Por lo que esos siempre necesitan ser opuestos el uno del otro. Por lo que siempre podemos simplemente negar esto. Esto también podría ser una idea. lo que negar año es por supuesto, negar básicamente significando que los dos ponen el signo de exclamación delante, significa que el verdadero se convierte en falso. Y luego si es falso, se vuelve a la verdad. Donde devuelve verdadero entonces ¿verdad? Esa es una especie de idea. Operadores de comparación. También se puede pensar en esto. Devolven un operador de comparación. Se puede pensar en ello así. Cuando teníamos una calificación más, tomamos un entero a la izquierda, más un entero a la derecha y devolvemos un entero. Nuevamente, tiene sentido absoluto intuitivo. Ni siquiera piensas en ello cuando estás, cuando estás trabajando en matemáticas y calculando cosas. Cuando haces 5 más 5, como por supuesto que lo va a devolver a 10, que es un número. Bueno, el operador de comparación es más o menos el mismo. Acabas de poner, por ejemplo aquí un entero y un entero, y devuelves un booleano. Eso es, eso es todo lo que hay a ello. Pero lo único que realmente cambia es el tipo de retorno, por así decirlo. Pensando en esto y ya está, algo a tener en cuenta aquí. Y esos serían los operadores de comparación. Recomiendo encarecidamente solo jugar un poco con esto. No debería ser demasiado loco. Realmente es sólo comparar dos valores diferentes entre sí. Y eso se expresa entonces como un booleano, que en realidad debería tener sentido es que sólo hay alguna vez una respuesta correcta en este caso, ¿verdad? Si o bien el puntaje es mayor o igual a 150 o no, implica eso. Pero sea cual sea el caso, esto es todo para esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 10. (Java) Booleans y operadores lógicos: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de microondas. Y en esta conferencia vamos a estar mirando a unos operadores lógicos. Por lo que he preparado unos booleanos aquí mismo, ver conferencias, hacer pregunta, terminar tareas y comprometer revisión. Esos están por supuesto relacionados con un curso como escenario, digamos. Y ahora vamos a echar un vistazo a los operadores lógicos. Y son tres de ellos, básicamente a los que vamos a echar un vistazo. Ahí está el final, ahí está el quirófanos y el no. Por lo que hemos visto previamente donde pudimos negar algo y el AND, y el OR también son muy interesantes. Por lo que los operadores lógicos toman dos booleanos y te dan un nuevo booleano. Entonces, por ejemplo, para el final de los booleanos, hay que darlo, hay que ser verdad, y luego vuelve verdadero. De lo contrario devuelve falso. Y para el, o cualquiera de ellos tiene que ser cierto y luego devuelve un verdadero. Por lo que esto sólo devuelve falso si ambos son falsos. Entonces, por ejemplo, se podría pensar en ello así. Entonces Booleano terminó curso, ¿verdad? Entonces si quieres terminar el curso, tienes que haber visto las conferencias y terminado las tareas. Eso debería tener sentido. Esa especie de buen ejemplo concreto aquí. Y entonces también se podría decir, bueno, un fan, ¿verdad? Entonces, digamos que es fan, ¿verdad? Por lo que alguien que sea fan terminaría el curso. Por lo que terminaron los núcleos y la revisión Eva, eso también debería tener sentido en general. Y ahora alguien que podría estar aprendiendo, como tal vez aprendiendo mucho, vieron las conferencias o hicieron la pregunta. Entonces esto es algo alguien que está aprendiendo, ¿verdad? Ya sea viendo las conferencias o haciendo una pregunta. Por lo que cualquiera de ellos podría ser cierto y entonces el aprendizaje también sería cierto. Vamos a una especie de idea general aquí. Y hay una cosa más que tengo y eso va a ser esto aquí mismo. Entonces esto es sólo una visión general de lo que básicamente sucede. También puedes descargar esto como hoja de tramposos. Esto está disponible en los recursos. Y la idea aquí es que simplemente te muestre cuáles son los diferentes tipos de desenlace, eso es básicamente lo que son los resultados. Entonces tienes a y B. Y luego dependiendo de lo que sean, este es el retorno que se da, como dije, ambos tienen que ser ciertos para que las respuestas devuelvan un verdadero. Y aquí, si alguno de ellos es cierto, entonces esto devuelve un verdadero. De lo contrario es falso. También se puede pensar en ello, escribir a o B hacia una especie de, es una especie de realmente horneado en el lenguaje cuando se piensa en la negación, como dije, ya hemos hablado de eso es una especie de lo general ajustar cuando se trata de los operadores lógicos. Hay, por supuesto un poco más allá también sobre eso, ¿es realmente un buen comienzo para esto? Y entonces por supuesto, lo real en lo que se puede pensar es que cuando se tiene uno de esos que devuelve un booleano, se puede por supuesto, después encadenarlos juntos. Entonces también se puede decir, por ejemplo, terminar hacer pregunta, ¿no? Entonces puedes ver que debido a que esto por supuesto devuelve un booleano, ahora podemos usar nuevamente el operador AND. Por lo que esto funciona más o menos muy similar al igual que los operadores aritméticos eran. Por supuesto también se puede plus, plus, plus. Se puede tener 5 más 8 más 7 más 9 más 15. Eso funciona totalmente bien. De manera similar, se puede encadenar también a los operadores lógicos , ¿verdad? Pero eso sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo y te veré en la próxima conferencia. Entonces, sí. 11. (Java) Declaraciones de If y elde las declaraciones y otros: Muy bien, bienvenido de nuevo a la introducción de Java para la mañana de Minecraft. Y en esta conferencia, vamos a estar viendo las declaraciones if y else. Ahora en esta conferencia, básicamente vamos a empezar realmente tener alguna interacción con la computadora. Muchas de las conferencias anteriores fueron muy teóricas, es una especie de mostrar algunos conceptos. Pero en esta conferencia, vamos a estar realmente bien interactuando con la computadora. Empecemos por hacer dos enteros. Examen 1, Digamos por ejemplo 65 y examen 2, que va a ser 51 por el momento. Y podríamos imaginar que, veamos, tenemos que escribir un programa que evalúe esos valores de esos dos exámenes. Y básicamente dice: Oye, has colado o pasado el examen 1, has fallado o pasado el examen 2. Y luego al final, tal vez cuando gente haya aprobado ambos exámenes, tal vez algo esté impreso Como has pasado la clase o algo así. Entonces, ¿cómo podemos hacer esto? Bueno, lo que podemos hacer es hacer una declaración if. Y para eso literalmente nos gusta justo si, aquí mismo. Y entonces podemos hacer lo siguiente. Podemos poner entre paréntesis. Y si lo pones en paréntesis abierto, los paréntesis de cierre deben generar automáticamente. Y dentro de esos paréntesis hay que poner un valor booleano. Por lo que recordamos de nuevo a las dos conferencias anteriores donde teníamos operadores de comparación. Entonces lo que podemos decir es que, bueno, si el examen 1 es mayor o igual a 50, entonces sabemos que hemos aprobado el examen. Y luego cuando ponemos oculto aquí es después de los paréntesis de cierre, ponemos en un corchete rizado. Y si pongo el corchete rizado abierto y presiono Enter, el corchete rizado de cierre debería generar automáticamente para ti. Y ahora lo que podemos hacer es que podemos escribir como otra cosa. Por lo que podemos decir sistema fuera, línea de impresión. Y luego, por ejemplo, tienes uno de examen pasado. No obstante, este todo el código entre estos dos corchetes rizados aquí va a suceder cuando lo que esté dentro de la declaración if. Entonces dentro de estos paréntesis, cierto. Entonces si esto es cierto, entonces esto va a suceder. Entonces eso es bastante guay en realidad. Y entonces podemos especie de supercarga esto agregando una LLC o al final, y también poniendo un corchete rizado. Y una vez más, ponemos el corchete rizado abierto en cualquier prensa Entrar un corchete rizado de cierre debería generar automáticamente aquí. Y luego por ejemplo, podemos simplemente seleccionar este control C control V para pegarlo. Y entonces podemos decir que ha fallado el Examen 1. Entonces este año, ¿verdad? Porque lo demás sucede realmente cuando esto es falso. Eso en realidad nos funciona muy bien. Entonces básicamente podemos usar esto para, bueno, echar un vistazo a si se aprobó o no el Examen 1. Entonces, en realidad ejecutemos esto y deberíamos conseguir uno de examen pasado. Y por supuesto estamos consiguiendo esto porque en este caso el examen 1 es más grande que, mayor o igual que 50. Por lo que se está llamando a esto. Entonces eso es bastante guay. Ahora básicamente podemos hacer exactamente lo mismo para el segundo examen. Entonces vamos a copiar todo esto seleccionado Control C, Control V. Y entonces aquí vamos a decir Examen 2. Aquí vamos a decir Examen 2, y aquí también vamos a decir Examen 2. Eso en realidad es bastante guay. Todas las cosas consideradas. Y entonces la pregunta se convierte en, bueno, quiero decir ahora queremos dar salida cuando en realidad has aprobado ambos exámenes. Entonces, ¿cómo podemos hacer esto? Bueno, ahora nos estamos volviendo bastante locos. Por lo que las dos últimas conferencias parecerán un poco más coherentes, por así decirlo. Vamos a decir examen 2. examen 1 es más grande o igual a 50, ¿verdad? Entonces eso sigue pasando este Examen Final 2, 0, ¿verdad? Este examen 2 de aquí es más grande o igual 50. Y luego si esto, si ambos son ciertos, entonces sabemos que has pasado la clase para que podamos copiar el sistema aquí y entonces solo podemos decir, que has pasado, digamos que la clase solo por el bien de la discusión aquí. Entonces eso es realmente genial, ¿verdad? Tenemos ahora las declaraciones if y si else, y lo que también se puede hacer por cierto, cuando se tiene una declaración else que se puede poner otra declaración if aquí, ¿no? sólo puedas poner este ahí dentro. Básicamente si esto es falso, entonces lo contrario y luego poner otra declaración if es básicamente sólo por el bien del argumento, solo di verdad aquí. Por supuesto que esto también funcionaría, pero, ya sabes, y entonces podemos decir otra cosa y básicamente encadenar los juntos para que puedas hacer si lo contrario, si lo demás, y entonces el último siempre va a ser de lo contrario o también puedes simplemente no tener otra aquí también. Eso también funciona. Yo quería mencionar eso también. Pero ahora lo realmente genial es, bueno, pensemos en esto. Digamos que este es en realidad un programa en el que entra el profesor y en realidad escribe en los resultados de su examen. Ah, ¿qué? Bueno, recordamos cómo podemos leer algo en tenemos que escribir en escáner, escáner, escáner es igual a nuevo escáner. Y luego system.out.print. Y entonces este tipo de simplemente funciona para nosotros. Recordamos que no queremos preocuparnos demasiado de lo que esto significa. Entonces podemos decir algo así como sistema fuera de línea de impresión y decir resultados o examen uno. ¿ Verdad? Y luego vamos a duplicar esto. Hacer resultados para un examen 2. Y entonces sólo podemos decir que el Examen 1 es en realidad igual al scanner dot next int justo aquí, ¿verdad? Entonces vamos a leer en un entero y luego guardarlo en el examen una variable. Y lo mismo que vamos a hacer para ir. Ahora lo que va a pasar es realmente genial. Ahora empezamos esto y ahora en realidad está esperando que pongamos un examen. Bueno tristemente, 32, en realidad no 320 sino 32. Bueno, y luego los resultados para el examen dos, en realidad fueron mucho mejores. Eran 68, tristemente, sólo un poquito, no lo suficiente para 69. Y luego puedes ver que fallaste el examen 1 y el examen 2. Entonces ahora realmente estamos empezando a entrar en una especie de parte de esta introducción de Java donde realmente eres capaz de hacer algo con la computadora. Y realmente vas a ver esto en la primera asignación así para la próxima conferencia va a ser una especie de versión alterna de la sentencia if, que también puede ser muy importante. Y luego la primera asignación, recomiendo encarecidamente hacer las asignaciones aquí para la introducción de Java, sobre todo cuando solo eres principiante porque pueden ser realmente, realmente útiles. Y con esto, por supuesto, el núcleo está disponible hasta repositorio o un justo igual de bien. Pero echa un vistazo a los de los recursos. Y recomiendo encarecidamente jugar un poco con esto, sólo leer algunos números al compararlos, hacer algunas declaraciones if, simplemente hacer un montón de cosas geniales. Con esto, ya puedes hacer más o menos un juego realmente genial. Entonces, pero por el momento, esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo de lo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 12. (Java) de interruptor: O volveré a la introducción de Java aquí para el modelado de Minecraft. Y en esta muy corta conferencia, vamos a estar mirando la declaración de cambio. El enunciado de cambio es una especie de prima pequeña a la declaración if, por así decirlo. Por lo que es muy similar. Sólo echemos un vistazo. Entonces vamos a hacer un entero llamado colocación de metal, que es por el momento sólo uno en. Se podría imaginar esta representando la colocación en, por ejemplo, los Juegos Olímpicos, ¿no? Entonces uno sería la medalla de oro, plata, bronce. Entonces dos es plata y bronce es tres. Y luego cualquier otra cosa como discos, sin metal. Y podríamos hacer esto simplemente haciendo algunas declaraciones if, quienquiera que pudiéramos también hacer una declaración de cambio. Se puede ver si escribo en switch aquí, luego dentro de los paréntesis, pongo la variable que quiero que evaluemos. Entonces una vez más hacer el corchete rizado o el segundo debe generar automáticamente. Y ahora tengo que especificar realmente en cada uno, dentro de estos corchetes rizados, cada uno de los casos que esta variable puede tomar. Por lo que puedo decir caso 1. Entonces esto significa que ha tomado el valor uno, sistema fuera línea de impresión y luego por ejemplo, digamos medalla de oro. Y entonces puedo decir caso dos. Y entonces puedo decir sistema fuera línea de impresión, plata, metal. Y entonces una vez más, al final aquí puedo decir caso tres, sistema. El sistema fuera de línea de impresión. Ahí vas. Medalla de bronce. No obstante, está formateado, eso está totalmente bien. Y entonces también podemos decir default, lo que significa que esto se va a llamar si no es ni este caso, esto se pone más este caso. Por lo que tenemos casos predefinidos aquí. Y luego en el caso por defecto, realidad se va a llamar si es algo más que podamos decir que no hay metal. Y lo primero que notarás es esperar un segundo. Tenemos que definir cada caso individual. Sí, aquí, el tema es que puedes usar algo así como más grande o igual, lo que de inmediato hace mucho más fácil estrechar algo. Si quisiera hacer la evaluación del examen aquí, en realidad tendría que pasar por cada caso. Entonces tengo que pasar por los casos del uno 50 o uno al 49 por decir, oye, fallaste y luego los otros por ti lo lograron o pasaste. Por lo que la declaración switch no siempre es la mejor opción. Puede ser sin embargo, a veces. Entonces, solo echemos un vistazo a esta lista. Debería por supuesto, en realidad imprimir medalla de oro. Pero lo primero que vas a decir es esperar un segundo. En realidad está impreso todo exactamente. Porque hay una cosa más que realmente necesitamos hacer. Y ahí es cuando se tiene el caso, el mismo final, hay que terminar con un descanso aquí mismo. Tenemos que poner en este descanso. De lo contrario, simplemente se irá conservando básicamente. Simplemente pasará por la declaración de cambio sólo va a seguir adelante y sólo sacar todos los casos. Y si tenemos el descanso aquí, entonces verán que en realidad sólo se va a tomar el relevante . Sólo pongamos tres sólo por el bien de la discusión aquí. Entonces como puedes ver, eso ahora funciona. Por lo que esto es muy importante para la palabra clave break aquí se tiene que usar con la sentencia switch. Esto a veces puede ser un poco molesto. Por lo que el interruptor de ellos por lo general para enteros está bien, se puede utilizar. Por lo general se usa para enumeraciones porque enumeraciones tienen valores definidos que pueden tomar y que por lo general es más fácil para los casos entonces lo que es muy raro o que es básicamente imposible. No debes usar flotadores en declaraciones de cambio porque aquí por supuesto tienes que definir el caso exacto. Y debido al redondeo flotante o los errores que pueden ocurrir, esto en realidad podría simplemente nunca funcionar. Por lo tanto, nunca use flotadores y declaraciones de cambio. Básicamente, eso es algo muy importante para recordar. De lo contrario, una declaración de cambio, aunque no lo vaya a usar usted mismo, podría por supuesto aparecer en el código de otra persona. Tendrás, al menos tendrás que haber visto esto antes, ¿verdad? Pero eso ya sería para esta conferencia aquí mismo. Espero que te haya parecido útil esto y neuronas y lo nuevo, te veré en la próxima conferencia. Ah sí. 13. ASSIGNMENT 1: juego de Trivia: Muy bien, bienvenido de nuevo a la introducción de Java para Minecraft modding aquí con la primera asignación. En la primera asignación va a ser un create, un simple juego de trivia. breve explicaré lo que eso conlleva. Si bien la idea es que se debe definir al menos tres preguntas. Te recomiendo hacer tres preguntas, tres respuestas, eso va a ser suficiente. De lo contrario, el código se pondrá muy abarrotado muy rápido. Y lo que quiero que hagas es que le pida al usuario que escriba su respuesta. Puedes usar el escáner para eso para básicamente obtener lo que escribieron y luego evaluaron con un if y else sentencias para comprobar si la respuesta que escribió el usuario era correcta. Por lo que recomiendo volver a ver la conferencia de entrada de salida es que fue muy importante en ese caso. Y la conferencia de declaración if else también podría ser muy interesante mirarla una vez más. Entonces si eran correctos, salida que eran, y si estaban equivocados, entonces dígale al usuario que eran incorrectos y también emita la respuesta correcta. Otra cosa que debes hacer es básicamente simplemente incrementar un total de puntos, lo que significa que cuando el usuario tenga una respuesta correcta que designe aumentada en uno, entonces al final, solo tienes un salida única para cada uno de los diferentes totales de puntos. Entonces básicamente tres, básicamente diciendo, oye, has hecho todo correcto a algo así como 0 minutos, vale, un error, uno y así sucesivamente y así sucesivamente. Entonces básicamente de 0 a tres, teniendo algunas afirmaciones si más al final, hay dos cosas a tener en cuenta. Entonces esos son algunos consejos que tendrás que tener en cuenta cuando estés leyendo en una cadena del usuario, por favor usa scanner dot next y no scanner dot next line. Porque si estás usando scanner dot next line, eso a veces mete la forma en que esto se lee. Pero recomiendo encarecidamente hacer esto. Y luego cuando estás leyendo en una respuesta de esto, terminó a continuación, tenemos una cadena y quieres comparar eso con una cadena. No use iguales, iguales, pero use el punto de entrada igual y luego ponga la respuesta, la respuesta correcta dentro de paréntesis aquí. Esto también devolverá un valor booleano, y hará que esto sea un poco más fácil. Entonces de lo contrario, porque hay a veces no funciona y esto definitivamente funcionará. Entonces eso es tener eso en cuenta. Y esa es más o menos la asignación aquí mismo. Esto también está escrito como texto aquí también. Y sospecho que para un principiante, esto es algo alrededor de 45 a 60 minutos. Definitivamente recomendaría tomarte tu tiempo con esto. Probablemente volviendo a las viejas conferencias, echando un vistazo a la conferencia de entrada de salida, if y else declaraciones conferencia. Y con eso, deberías estar casi completamente hecho. Básicamente, eso es más o menos lo que necesitas. Y luego una vez que hayas terminado, tendrás acceso a la, a la solución, por supuesto, y también pasaré por la solución en otro video. Entonces eso sería todo. N, Buena suerte. 14. Solución 1: juego de Trivia: Está bien, así que lo has hecho a través la primera asignación y aquí está la solución paso a paso. Por lo que probablemente ya has visto cómo se ve como una hora apenas va a pasar. Entonces por supuesto, las preguntas aquí en este caso realidad se hacen como cuerdas. Eso por supuesto tiene mucho sentido, ¿verdad? De lo contrario, realmente puedes guardar las preguntas de cualquier manera. Y la respuesta de una es en realidad en un entero, eso sí funciona. No obstante, también veo el punto de hacer esto una cadena normal también. Por encima de las respuestas sería correcto. Entonces no se preocupe. Ahí. Tenemos un número entero de puntos y luego un escáner, y luego simplemente iniciamos, damos salida a la primera pregunta. Entonces decimos el usuario número de entrada 1. Sólo vamos a poner esto aquí. Vamos a ver si eso es igual a la primera respuesta. Si lo es, vamos a incrementar los puntos, salida que fue correcto y tienes esos muchos puntos. Y entonces de lo contrario vamos a decir incorrecto y dar salida a la respuesta correcta. Después de eso, más o menos estamos haciendo exactamente lo mismo. Voy a poner la segunda pregunta, a obtener la entrada del usuario volver a obtener la entrada del usuarioe igualarla o decir: Oye, ¿ esto es igual a la respuesta aquí, incrementando los puntos si es correcto, dando salida a eso y luego decir que no, es incorrecto, esta es en realidad la respuesta correcta. Y luego la tercera vez otra vez. Y luego al final aquí se puede ver que básicamente pasa por una especie de cascada aquí. Por lo que puntos pasando por tres a 0. Entonces también tengo una especie de huevo de Pascua aquí. Cuando tienes menos de 0 puntos que obtienes, ¿cómo consigues incluso puntos negativos? Porque no hay forma de conseguir esos. Podrías por supuesto también algo donde obtienes algunos puntos negativos si haces una respuesta particularmente como estúpida o algo así, eso también funcionaría. Pero no he implementado nada aquí. Fue sólo un ejemplo. Entonces, en realidad así podría funcionar eso. Entonces este es un ejemplo. Una vez más, si el programa real funciona bien? Entonces si esto funciona para ti y puedes jugar este juego y funciona, pero se ve diferente a esto. Eso está absolutamente bien. Al igual No se preocupe en absoluto. Entonces esa es la belleza aquí. Hay múltiples formas de hacer esto, y lo veremos en las próximas asignaciones así como básicamente vamos a utilizar siempre este juego de trivia también, una especie de plantilla. Y vamos a rediseñar estas próximas asignaciones básicamente de una manera diferente. Y eso es, espero que ustedes puedan ver que se hace más fácil y diferente, digamos en las futuras conferencias y las futuras asignaciones. Pero eso será todo para esta solución aquí mismo. Espero que te haya parecido útil esta asignación y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 15. (Java) Strings y métodos de formación (de cuerdas: O volveré a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar buscando cuerdas y algunos métodos de cadena. Bueno, básicamente todo alrededor de la cuerda por así decirlo. Y vamos a primero que nada, empezar por hacer una nueva variable de cadena llamada frase. Y esto va a ser igual a, es una maravillosa introducción de Dava. Bueno, esperemos que eso también sea cierto. Pero sea cual sea el caso, esto es lo que es el valor de nuestra variable string aquí. Y sólo vamos a imprimir esto. Entonces sentencia aquí mismo, sistema fuera de línea sentencia. Y ahora la pregunta es, ¿qué más podemos hacer aquí? Bueno, lo primero que vamos a hacer es que realmente lo vamos a duplicar. Vamos a alinearnos. Y lo que vamos a decir esto lo hace el Control D por cierto. Y lo que vamos a hacer es que vamos a decir longitud es, vamos a decir algo así como plus. Y entonces podemos decir frase longitud de punto. Entonces como pueden ver, puedo llamar a la longitud del punto con los paréntesis aquí, lo que significa que esta es una llamada de método. No estamos 100 por ciento seguros aún de qué es eso, pero hemos visto esto antes un par de veces, y esto es básicamente sólo nos devuelve la longitud. Y si alguna vez vuelvo sobre esto, puedes ver en un entero devuelve la longitud de la cadena, longitud es igual al número de caracteres en esa cadena. Por lo que se trata básicamente de unidades Unicode. No nos preocupemos por eso. Simplemente es básicamente igual a los caracteres de esa cadena. A ver. La longitud es de 35. Entonces eso es interesante aquí. Y entonces también por supuesto generamos la cadena real también. Pero, ¿qué más podemos hacer? Tenemos que poder hacer algunas cosas interesantes. Por supuesto, podemos. De hecho, obtengamos esta salida aquí. De hecho, solo duplicémoslo tres veces. ¿ Por qué no? Y lo primero va a ser gritar. Entonces eso va a significar que todo aquí, me voy a convertir en mayúsculas. ¿Cómo hacemos esto? Bueno, podemos hacer sentencia dat a mayúsculas aquí mismo. Esto en realidad ya sugería. Y entonces por supuesto lo mismo simplemente sería susurrar, ¿verdad? Y luego vamos a hacer sentencia que a minúsculas justo aquí. Entonces eso sólo va a primero de mayúsculas y minúsculas alternas. Y luego sólo por el bien de muy medio, eso también es sólo dar salida a la frase una vez más. Añadamos también un comentario, ¿no? Entonces esto es mayúscula y minúscula. Tan bastante sencillo. Podemos simplemente convertir toda la cadena en mayúsculas, una cadena entera en minúsculas. Y entonces aquí, bueno, sólo deberíamos conseguir la cadena minúscula también, ¿verdad? Entonces si solo apagamos esto, se puede ver gritando todo en letras grandes, así que todo en mayúsculas, luego todo en minúsculas. Y entonces aquí está, es la cuerda normal. Eso es extraño, ¿no? Bueno, aquí está la parte muy interesante de esto. Estos métodos realmente devuelven una copia de esta variable de frase. No cambian la variable en sí mismos. Entonces cuando teníamos cosas como x es igual a x más 1, en realidad cambiamos x es 0 o x más es igual a 1. Eso cambió la variable x. En este caso, estamos devolviendo una copia. Entonces eso es muy importante y realmente hay que tener eso en cuenta. Pero en lo siguiente, Digamos, te digo, Oye, ¿qué posición es que Java encontró la palabra Java. Vas a estar como, no sé, es exactamente. Entonces lo que vamos a hacer es simplemente copiar otra vez sobre la línea de impresión. Y vamos a decir lo siguiente. Vamos a decir la palabra Java o algo así se encuentra en posición. Ahora podríamos contar, no vamos a llamar todavía. Vamos a contar en sólo un momento. Vamos a decir índice de punto de frase de, podemos ver que hay un par de diferentes tipos de índice de aquí, pero queremos esta cadena 1. En realidad no importa por cierto, cuál elijas aquí puedes ver que tan pronto como el cursor esté dentro de los paréntesis en realidad va a sugerir cuáles quieres hacer. Vamos a tomar básicamente, y voy a decir Java aquí. Entonces Java, Vamos a ver cuando es eso? Al igual que ¿dónde sucede? 17, vale, sólo contemos. Entonces voy a empezar aquí. Por lo que mi cursor siempre va a estar del lado izquierdo del personaje con el que cuento, 123456789, 10, 11, 12, 13, 14, 15, 16, 17, 18. Y todo el mundo va a ser como Espera un segundo. Pero eso decía 70, ¿no? Sí. Sí dijo 17. Ahora bien, ¿por qué es este 18 sin embargo? Aha, mira, esto es algo muy interesante porque en Java o en la mayoría de los lenguajes de programación, realidad estamos contando a partir de 0. Ahora esto podría ser absolutamente loco para ti, sobre todo si fueras mucho principiante. Eso está totalmente bien. No te preocupes por ello. El asunto al respecto es que te acostumbras muy rápidamente en realidad termina. Hay algunos otros lugares donde tenemos que usar esto. Pero si empezamos a contar a 0, se puede ver que es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17. De repente, la j es exactamente el personaje 17, o más bien es el personaje con índice 17, ¿verdad? Entonces porque este es por supuesto el índice, el índice de esto, el índice de esta palabra. Y básicamente estamos buscando al primer personaje aquí. Eso sí es muy interesante, cuando realmente pensamos en esto. Y bueno que si vamos en realidad somos, somos, no somos, esto no es correcto. Donde estamos es en realidad queremos reemplazar algo. Entonces sistema fuera de línea de impresión y queremos decir una frase que reemplace, y queremos reemplazar Java con, digamos C Sharp. Pero, ¿por qué no? ¿ Verdad? Por lo que se puede ver el objetivo que queremos reemplazar como Java, y con lo que lo reemplazaremos es C agudo. Entonces si yo fuera a correr esto ahora. Veríamos que es una maravillosa introducción C-sharp como no está bien, Eso no está bien. Pero en este ejemplo, claro, eso está totalmente bien. Entonces este es el método de reemplazo y eso también es muy interesante. Una vez más, esto no lo reemplaza en la frase. Ha devuelto una nueva cadena, una copia de ésta que básicamente reemplaza a ésta. Muy importante. Es, a lo mejor queremos ver si una cierta frase empieza o termina con algo. Eso es muy fácil en realidad, sólo vamos a duplicar el reemplazo tu una vez más con Control D. Y lo que podemos decir que empieza con, puedes ver, y yo sólo podría decir, oye, Escribo y eso sería cierto en este caso. Y entonces también podemos, puedes adivinar con qué es el otro, por supuesto, termina, que sería, digamos un a mayúscula, que por supuesto es falso en este caso, esto sería cierto, esto debería ser falso. Entonces, sólo veamos por el bien de la discusión. Y ahí se puede ver verdadero y falso. Muy fácil de hacer. Ahora que pasa si tenemos un, una cuerda y solo vamos a llamar a esta S por el momento, y sólo va a ser una cadena vacía, ¿verdad? Entonces una cuerda sin nada en ella. ¿ Cómo podemos comprobar que esto está vacío? Bueno, podemos hacer un booleano vacío. Por ejemplo, sólo decimos que S está vacía. Y ahí tienes. Eso es más o menos todo lo que necesitamos. Y si fuéramos a sistema fuera, imprimir línea que está vacía, podríamos por supuesto también poner S dot está vacío dentro de su, por qué molestarse, eso está totalmente bien. Y se van, esto es en realidad ¿dónde es verdad? Es cierto. Por supuesto que es cierto. Perdón. Ahí tienes, ¿verdad? Por supuesto que es cierto porque esto está vacío. Y hay una cosa más que es realmente interesante cuando se trata de ordenar los métodos booleanos para las cuerdas. Y ese es el contiene, uno. Eso es muy interesante. Entonces sistema fuera frase de línea de impresión que contiene, digamos Java. Y esto es por supuesto cierto, ¿verdad? Debido a que esto contiene Java, deberíamos ver r2 aquí también. Hermosa. ¿ Y al revés? ¿ Cuándo pensamos en los gastos generales de índice? ¿ Y un cierto personaje en cierta posición? Absolutamente ningún tema. Sistema fuera línea de impresión, frase, char en qué posición? Digamos 17. Entonces sabemos que va a ser una. Entonces saben que va a ser una j Eso va a ser muy importante y hay un J. Lo bastante fácil. Una vez más, empezamos a contar a 0. Por lo tanto, si bien este es el personaje 18, es el personaje con índice 70, muy importante. Es decir, podría ser difícil, pero después de un poco de tiempo usándolo, estoy seguro de que te acostumbrarás. Y sólo hagamos una cosa más. Y esa va a ser la subcadena. Interesante subcadena. ¿ Qué hace eso? Bueno, hagamos sistema fuera de línea de impresión, y digamos solo subcadena de punto de frase. ¿ Y por dónde empezamos? Bueno, empecemos en el índice 17. Pero lo que ahora va a pasar es que va a tomar todo a partir de como 17 y sólo va a devolver todo después. Entonces esto ahora la subcadena 17-año debería decir Java introducción, signo de exclamación. Y por supuesto que también lo hace. Eso es muy bonito. Entonces si tomamos otra frase mirada que se puede ver que por supuesto hay un montón más de métodos que se podría llamar no, esta no es una lista exhaustiva que he mostrado. Acabo de mostrar algunos que podrían ser interesantes aquí. Siempre recomiendo probar un poco. Estás probando un montón de cosas. Esto grandioso aquí es que en realidad sólo está escribiendo un montón de cosas, haciendo clic en el botón Ejecutar y simplemente viendo lo que pasa. Y si algo pasa, eso es genial, aún mejor. Y si no, si hay una flecha junto al, trabaja a través de ella y ve si no puedes arreglarla. Pero eso sería más o menos por las cuerdas y estas clases de método de cuerdas. Espero que te haya parecido útil esto y aprendas algo nuevo si hiciste nuestro muchísimo aprecio una crítica de ti. De lo contrario, te veré en la próxima conferencia sin embargo. Sí. 16. (Java) Casting: O doy la bienvenida de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar mirando al casting. También puedes pensar en eso como convertir tipos de datos entre sí. ¿ Qué significa eso realmente? Bueno, echemos un vistazo. Entonces, por ejemplo, queremos tener un préstamo entero, que es, digamos $750 Euros, cualquiera que sea el caso. Y entonces tenemos una tasa de interés, que por supuesto está en flotación, ¿no? Y esto va a ser 0.0525, digamos. Por lo que esto sería igual a 5.25% tasa de interés en este punto, todo debería tener sentido. Por lo que ahora queremos calcular realmente los intereses. Ahora el interés, debemos calcular eso como un flotador por el momento. Y te voy a mostrar por qué en un segundo. Por lo que el interés es igual a la tasa del préstamo veces la tasa de interés. Eso también debería tener sentido. Se puede ver que a pesar de que estoy tomando un, un entero veces un flotador, todo funciona porque estamos guardando esto en un flotador. Interesante. De acuerdo, Hagamos sistema fuera, imprimir línea e imprimir los intereses, el mar. Y debería ser algo así como 39, eso está bien. Entonces por supuesto, si sientes aquí también, Eso está totalmente bien. Ahora la pregunta es, ¿cómo podemos simplemente hacer como multiplicar un entero y un flotador y sacar un flotador de él. Eso es bastante loco, ¿no? Bueno, lo que pasa es básicamente que este entero en el fondo se convierte en un flotador. Podemos hacer esto explícito escribiendo el modo entre paréntesis frente a la variable real. Y entonces tenemos esto explícitamente. Entonces este es un elenco explícito antes de que fuera un elenco implícito. Ahora, lo que pasa es que vamos aquí de un entero a un flotador. ¿ Qué pasa si hacemos los intereses reales en entero? En primer lugar, lo que va a pasar es que esto va a mostrar un error porque en cuanto tengamos un flotador en una, en una expresión matemática aquí, todo se va a convertir en flotador porque los flujos tienen más información, ¿verdad? Porque todo después del punto decimal es más información, por lo tanto, todo se convierte en una carga. Ahora, en realidad vamos a lanzar explícitamente esto a un entero. Ahora vamos a saber Mori, el fondo aquí siendo amarillo significa que esto es un, es básicamente una advertencia. No nos vamos a preocupar por esto porque en realidad quiero mostrarte básicamente cuál es la advertencia, advirtiéndonos porque de repente es un gordo 0 grande y vas a estar como, espera, ¿cómo se convirtieron en un 0? Bueno, cuando lanzamos un flotador a un entero, lo que va a pasar es que todo después del punto decimal se acaba de cortar. Entonces básicamente es así. Entonces, de repente, la tasa de interés va a ser 0 cuando lo echemos a un entero, que significa que solo vas a decir que los tiempos de préstamo 0 es por supuesto 0. Y se puede ver que esto también es lo que dice la advertencia aquí. Por eso queremos volver al flotador aquí mismo. Entonces van. Y entonces en lugar de hacer de esto un entero, sólo vamos a mantener esto a la tasa de interés y normal. Y eso va a estar bien sin embargo. Esta es una especie de idea cuando pasas de entero a flotador. Entonces de un, básicamente de menos información a más información, eso suele estar bien. Pasar de flujos a número entero. Entonces para más información a menos información, eso puede tener algunas consecuencias, digamos sólo. Entonces eso es siempre lo que hay que tener en cuenta. Y esto también es una cosa. Entonces básicamente esta idea de escribir un tipo de datos diferente frente a una variable para convertirlo en un tipo de datos diferente es algo que vamos a ver un poco más adelante en una conferencia posterior también. Entonces eso es algo que básicamente también hay que tener en cuenta. Bueno, pero eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 17. (Java) Operador tutor: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a estar mirando al operador ternario. Ahora el operador ternario a primera vista suena como algo completamente loco, realmente complicado, pero de hecho, en realidad no lo es. Entonces vamos a hacer dos enteros. Uno de ellos va a ser el examen. Este sólo va a ser el resultado del examen como ejemplo aquí. Y entonces un entero llamado regalo para esto es, digamos que nuestro Padre nos quiere dar un regalo de X cantidad. Vamos a precisar que cuando realmente aprobemos este examen, sin embargo, cómo podríamos hacer esto de la siguiente manera. Podemos decir si el examen es más grande o igual a 50. Entonces básicamente estamos aprobando el examen, entonces vamos a decir que el regalo es igual a 10 y entonces lo contrario el regalo es igual a 0. Ahora no necesariamente necesitaríamos esto más aquí, pero sólo voy a añadir esto justo ahí. Y entonces sólo vamos a sistema fuera de línea de impresión si dos. Entonces no se preocupe ahí. Todo esto debería tener sentido. Pero ahora lo que podemos hacer es realmente podemos escribir todo este año en una sola línea. Y lo que podemos hacer es decir que el regalo es igual a. Y entonces lo primero que tenemos que hacer es escribir una expresión booleana. Entonces, por ejemplo, el examen es más grande o igual 50. Entonces vamos a escribir un signo de interrogación. Y entonces lo que queremos devolver si la expresión booleana aquí es cierta. Entonces 10, luego un colon, y luego lo que quisiéramos devolver si la expresión booleana es falsa, entonces fue 0. Y este es el operador ternario, signo de interrogación colon. Y eso más o menos es exactamente lo mismo que esto. Entonces lo que podemos hacer es básicamente simplemente copiar esto. Solo comentemos los dos para que independientemente de lo que pase aquí, esto no esté asignado. Vamos a tener primero una salida 0 y luego una 10. A ver. Ahí vas. Entonces el 0 es por supuesto este 0 aquí mismo que hemos asignado aquí arriba. Y entonces el 10 aquí es el operador ternario. Entonces eso en realidad es bastante guay. Ahora por lo general se utiliza el operador ternario. No recomendaría usarlo demasiado básicamente, pero a veces con cosas como bastante simples como esta. También se podría pensar en tal vez tomar esta expresión booleana, hacer un booleano fuera de ella diciendo como examen pedido. Y entonces esto lee un poco más agradable justo pasado examen, son que es 10, de lo contrario es 0. Por lo que se puede pensar en esto también. Por lo que probablemente no lo mantendría así porque esto es algo así para no redoblar tasa. Hay demasiado poder cerebral que entra en mirar el examen igual, poco más grande equivale a 50. ¿ De acuerdo? Está bien. Ah, lo tengo. Si tienes algo como un is, sí pasa examen o algo así como un booleano que tiene sentido en este caso. Pero sea cual sea el caso, este es el operador ternario y básicamente lo mismo en las declaraciones if. Ahora, sólo porque todo esto esté en una línea no significa que necesariamente sea mejor también. El conteo de líneas no es ninguna indicación de código de calidad, ¿de acuerdo? Y quiero que lo hagas, quiero que esto sea muy, muy claro. No importa. Un gran programa puede ser de 1000 líneas. Si tiene que ser de 1000 pies de largo, tiene que ser de 1000 noches de largo. hecho de que puedas hacer que ese programa 800 líneas no significa necesariamente que sea mejor. Eso es muy importante. Porque lo más importante a la hora de escribir código es que puedes leerlo y alguien más lo pueda leer, lo que te incluye dentro de seis meses. Porque estás en seis meses va a ser una persona diferente porque habrás olvidado todo lo que escribiste en tu código. Por lo tanto, tienes que hacer que tu código legible u otras personas, esa es la parte más importante. Y si un operador ternario tiene sentido en ese caso, eso es genial. Yo nunca, definitivamente te aconsejaría que nunca pongas múltiples operadores de terminales en la misma línea. Porque por supuesto se podría poner en otro operador ternario en lo verdadero o falso aquí. Definitivamente no hagas eso porque entonces se pone muy, muy complicado, muy rápido. Apegarse a si las declaraciones. En ese caso, cualquiera que sea el caso, esto ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y los veré en la próxima conferencia. Entonces, sí. 18. (Java) Arenas de Java: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de microondas. Y en esta conferencia, vamos a estar buscando matrices. Las matrices son definitivamente el, digamos, el tema más complicado que vamos a estar viendo, ya sabes, hasta este punto. No obstante, lo que primero quiero decirles es que si luchan con esto, no se preocupe en absoluto. Esto es totalmente normal. También lucho con es, cuando aprendimos esto. Y al final de la conferencia, en realidad voy a contar un poquito de una historia sobre eso. Pero por el momento, Recordemos atrás teníamos cuerdas E3, ¿verdad? Estamos en la pregunta 1, pregunta 2, pregunta 3, y respuesta uno, respuesta a respuesta tres. Ahora, concedido, la primera respuesta fue en realidad un entero, pero en este caso es una cadena. Eso está totalmente bien porque eso es para fines de demostración. Es un poco más fácil de mostrar. Y lo que teníamos aquí fue la idea de que, bueno, teníamos esas preguntas. Digamos, te digo, ya sabes qué, tu juego de trivia que estaba en la primera asignación, realidad deberías hacer que esto tenga unas 150 preguntas. Ahora vas a estar sentado ahí va a haber como, discúlpame. Sí. A 150 pregunta. Bueno, bien. Después comienzas a duplicar esto y luego a cambiar cada uno de ellos. Ahora, entonces tal vez, ya sabes, yo, yo sé cosa que puedes mantener todo presionado y, ya sabes, cambiar múltiples cosas al mismo tiempo, pero luego todas cambian al mismo número y es todo tipo de solo metido la pata. No es muy bueno. Entonces eso no funciona del todo. Está bien. ¿ De qué otra manera podríamos ser capaces de hacer esto? Bueno, lo que podemos usar es una matriz. Ahora una matriz, se puede pensar en eso como una lista. No es un 100 por ciento de lista, ¿verdad? Es un poco diferente porque en realidad hay algo llamado lista en Java también. No obstante, lo vamos a pensar como una lista. Y tú ibas a hacer una cadena de preguntas y un área de cuerdas de respuestas. Y sólo vamos a echar un vistazo lo que eso implica básicamente. Entonces, ¿cómo hacemos una matriz? Bueno, solo tecleamos el tipo que queremos. Entonces el tipo de datos que queremos, y luego estos corchetes aquí, y esto van a ser preguntas y es igual a nuevo. Por lo que tenemos que tomar la nueva palabra clave y se puede ver que esto ya se nos está sugiriendo. Voy a escribir esta cadena y luego una vez más, el ángulo de los corchetes aquí y luego terminando con punto y coma. Ahora esto no se hace todavía porque dentro de estos corchetes, en realidad tenemos que suministrar la longitud de esta matriz. Entonces, ¿cuántos elementos van a estar ahí dentro? En nuestro caso? Bueno, eso es más o menos. Entonces eso es bastante guay. Ahora. Eso es todo. Es como si, eso es más o menos. Y ahora por supuesto necesitamos asignar algo. Entonces lo que podemos decir son preguntas. Se puede ver que básicamente autocompleto eso con la tecla Tab, ¿verdad? De nuevo los corchetes y luego asignan, por ejemplo, uno es igual a dos. Y entonces tomemos esto aquí mismo, ¿verdad? Entonces algo así. Y yo sólo puedo seguir con esto, ¿verdad? 23. Y entonces vamos sólo, bueno, ¿cómo puedo dar salida a este derecho? ¿ Cómo, cómo es esto posible? Bueno, sistema fuera de línea de impresión, y entonces sólo podemos decir preguntas, sin preguntas, ahí tienes. Y entonces por ejemplo, tres años ahora a mi medio es todo lo mismo, ¿verdad? Ahora, vamos a cambiar esto, en realidad copiar esto. Entonces selecciona este control C control V, como este Control C Control V. Y solo saquemos los tres aquí. Eso es sólo C y O ¿saben qué pasó aquí? Bueno, lo que pasó aquí es que quizá nos olvidamos. Ahora, no lo olvidé, en realidad quería mostrarles esto. Pero lo que pasó aquí es que tenemos que empezar a contar a 0. Entonces aquí es donde volvemos cuando vimos las cuerdas donde empezamos a contar a 0 año, contamos 0 también. Pero esto significa que cuando tenemos tres elementos en esta matriz de preguntas, el primer elemento es del índice 0, el segundo es del índice uno, y el tercero es del índice 2, lo que significa que tres no existe aquí, y entonces obtenemos una excepción. Vamos a ver esto al final de la conferencia otra vez, porque quiero que te guste ver la excepción y quiero entiendas lo que eso significa. Pero por el momento, así es como asignas diferentes cadenas, en este caso, diferentes valores a la matriz. Y también puedes leerlo más o menos así. Pero eso es en realidad lo que hace falta. Y también sólo copiemos esto por el bien de la discusión y llamemos a esto las respuestas, ¿verdad? Y luego vamos a copiar el oleaje. Entonces seleccionaré este RP aquí, aquí y aquí. Y entonces sólo vamos a cambiar esto por las respuestas aquí. Entonces esto va a ser 50. Esto, por supuesto, va a ser Londres. Y entonces el último va a ser F e. Muy interesante efectivamente. Y entonces lo que podemos hacer es, por ejemplo, podemos dar salida a las respuestas aquí. Entonces solo vamos a ver respuestas una en las preguntas 1. Y entonces de repente dice algo así como, bueno, ¿cuál es la capital del Reino Unido? ¿ Londres? Muy fácil. Y en realidad cambiemos esto a, en realidad, no necesitamos cambiar esto a un 0. Eso está totalmente bien. Todo lo que podemos hacer es ahora, bueno, bien, entonces podemos simplemente reasignar esto para que ella así podamos tomar esto. Yo sólo voy a tomar esto. En realidad, voy a escribirlo esas preguntas. Una vez más, el corchete 0 es igual, por ejemplo, ¿qué edad tiene Ian? Msc, Gregor, justo en 2020. Eso es sólo salgamos con nosotros mismos. ¿ Por qué no? Eso está totalmente bien. Y luego acabamos de dar salida a esto otra vez. Ahora el 0, digamos, y el 0 aquí. El interrogante. Aquí hemos reasignado, y entonces la respuesta sigue siendo correcta. Por cierto, eso es algo que he comprobado. Por cierto, como sí quería que esto fuera correcto. Eso es bastante guay. Todas las cosas consideradas. Lo realmente genial es que aquí todo es una especie de tipo de datos, ¿verdad? Entonces preguntas ahora tiene todas las preguntas. En lugar de tener tres cadenas diferentes, realidad tenemos todo en esta matriz de cadenas de preguntas. Eso es bastante guay. También podemos obtener el tamaño de la longitud de esta matriz, de esta lista, por así decirlo, haciendo preguntas de esa longitud como se puede ver aquí. Y sólo podemos echar un vistazo a esto. Esto es por supuesto 3 porque esto es lo que hemos suministrado aquí mismo, ¿verdad? Entonces en esto, tuvimos que abastecer la longitud. Por lo tanto, esto es más o menos así. Y podría haber visto también muchas sugerencias aquí. No nos vamos a preocupar por ninguno de esos en este momento porque todos esos son muy, muy complicados. Y entonces también tenemos es en realidad voy a copiar sobre sólo el pedacito más pequeñito aquí. Entonces este es el índice de matriz fuera de límites excepción justo aquí. Es más o menos lo que ya hemos visto, pero voy a mostrar esto una vez más. Entonces si ponemos un número en el corchete que en realidad no existe, vamos a obtener un índice de matriz fuera de límites excepción. Para que se lo piense así. Bueno, esto es una matriz y tiene un cierto encuadernado, bien, bastante justo. Al igual que un índice. Entonces el índice que estamos pasando, este es el índice tres. Yo quiero la pregunta con índice tres. Está bien, bastante justo. Pero eso está fuera de límites porque esta zona sólo tiene tres elementos y empezamos a contar a 0. Por lo tanto, no existe el índice o el elemento con índice tres. Y una vez más, obtienes el rastro realmente bonito de pila aquí para que puedas obtener la ubicación exacta donde se ha producido el problema. Entonces eso también es algo que quería mencionar aquí. De lo contrario, eso sería más o menos la clave general de las matrices. Y ahora por supuesto, el tipo de cosas que te dije al principio. Entonces cuando aprendí áreas en la universidad, lo interesante fue que no las entendía completamente. Entonces dije, Sabes qué, no necesito áreas. Nunca voy a usar áreas, nunca. No importa. Yo sólo me voy a quedar con esto. Voy a hacer variables individuales. Pero claro, te vas a tropezar con temas muy duros en cuanto alguien diga, bueno, entonces haz como 20 diferentes y luego igual que dame sacarlos, ponlos en un orden aleatorio. No va a funcionar porque definitivamente hay que aprender estas cosas. Este tampoco es el enfoque correcto, blanco. Oh, no lo entiendo. Por lo tanto, no tengo que aprenderlo. Por lo tanto, no es importante, ninguno. Y por supuesto, si existe, le tiene algún mérito en ese sentido en la programación aquí. Por lo que definitivamente recomiendo echar otro vistazo a esto. Simplemente mantenerme tranquilo, intentando algunas cosas para entender esto. Y también una vez más, si recibes algún error, no te preocupes en absoluto. Los errores son totalmente normales de obtener cuando se programan. hay nada como que no haya vergüenza, no le gusta que sea totalmente normal, genuinamente todo programador, se pone múltiples flechas todos los días cuando programan. Incluso los programadores veteranos aún obtienen flechas todos los días. Entonces nunca te sientas mal por eso en absoluto. Y sí, así que esa es una especie de idea general de las zonas aquí. Espero haber sido capaz de una especie de sacar la idea que esto es realmente muy parecido a una lista, ¿verdad? No es una elipse del 100 por ciento, pero se puede pensar en ella como una lista. Pones diferentes elementos en, básicamente con diferentes índices o índices, ya sabes, algo así, ¿verdad? Pero de lo contrario, esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 19. (Java) bucles de bucles: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a estar hablando de bucles. Lo que vamos a necesitar para esta conferencia son ambas de estas matrices de cadenas que hemos hecho previamente para las preguntas y las respuestas de todos modos. Pero antes de que hagamos algo con las áreas, primer lugar, quiero que hagan lo siguiente. Salida. Cada número del 0 al 99, ¿verdad? Vas a ser como, Vale, sistema fuera, imprimir línea 0, entonces podrías ser como duplicar uno, duplicar dos. Ahora vas a estar sentado ahí todo el tiempo así. Seamos honestos, eso va a llevar mucho tiempo. Bueno, y luego vienen bucles. Por lo que los bucles son algo donde se puede ejecutar una pieza de código varias veces. Y el primer tipo de bucle que vamos a estar viendo es el for-loop. Para eso vamos a escribir cuatro y luego paréntesis. Una vez más, los paréntesis de cierre deben generar automáticamente. Y luego vamos a escribir en int I igual 0 punto y coma I es más pequeño que un 100 punto y coma I plus, más paréntesis de cierre y luego un corchete rizado abierto. Entonces el corchete rizado de cierre debería generar una vez que pulses Enter, cuando sacas el sistema la línea de impresión y lo pones dentro de los corchetes rizados aquí. Y voy a cambiar el 0 a un ojo y ahora ver las maravillas de la programación. Como puedes ver claramente, todo es de salida desde 0 hasta 99. Pero, ¿qué está pasando aquí? Bueno, en un for-loop, la idea es que lo que estamos haciendo es que estamos definiendo, como se puede ver, estamos inicializando un, un entero i e al 0. Y entonces estamos diciendo que estamos teniendo alguna clase de expresión booleana aquí y luego un incremento. Lo que pasa es que estoy establecido en 0. Lo que se está comprobando es si soy o no menor que un 100. Si esto es cierto, continuamos con este bucle. Entonces si esto es cierto, todo lo que dentro de ustedes pasa, entonces vamos a aumentar yo y luego esto se vuelve a revisar. Y entonces estamos haciendo esto otra vez, incrementando yo, chequeando aumentando i y así sucesivamente y así sucesivamente. Por lo que esto básicamente se hace para siempre hasta este año. Esta expresión booleana es falsa. Y una vez que es falso, lo que significa que ya no es más pequeño que un 100, que pasa una vez yo es un 100, entonces esto ya no se ejecuta y todo después, después del corchete rizado aquí empieza a suceder. Es por eso que se detiene en 99 y no en 100, porque cuando tengo 99, esto sigue siendo cierto. 99 es menor que un 100. Todos están de acuerdo, sí. Pero tan pronto como es un 100100 no es menor que un 100. En realidad es igual a un 100. Por lo tanto, esto ya no es verdad básicamente. Por lo tanto, esto ya no se ejecuta por un 100. Y esa es una especie de idea. Y eso es realmente genial, ¿no? Al igual que podemos hacer esto muy fácilmente? Y ahora te voy a volar la cabeza absolutamente. Hazlo ahora te voy a decir, bueno, salida todas las preguntas y respuestas y solo vas a ocupar sistema fuera de línea de impresión. Ahora pregunta 0, respuesta 0, igual que teníamos antes. Bueno, esto va a ser más fácil para int I igual a 0. Yo es más pequeño que preguntas longitud punto I plus, plus. Y entonces lo que voy a hacer es que en realidad voy a copiar este dos veces. Y entonces en lugar de esto, voy a llamar preguntas yo oh, eso es interesante, ¿no? Y contesta I. Ahora esto, eso es bastante guay. Por lo que básicamente puedes pasar el entero aquí entre corchetes y acceder, bueno, cualquier índice que quieras y cualquier índice que tome este entero. Otra cosa realmente loca es porque en realidad estamos mirando la longitud aquí, ¿no? Porque tenemos la longitud, esto inmediatamente nos salva de cualquier error. Ahora el único error que podría ocurrir es si de repente hacemos estos cuatro aquí, ¿verdad? Porque estamos tomando la longitud de las preguntas mientras que las respuestas no son las mismas. Entonces podríamos encontrarnos con un error. Una vez más, el área fuera de límites excepción o el índice de matriz fuera de límites excepción. Pero por el momento, cuando utilicemos el más largo, eso va a estar totalmente bien. Y si solo ejecuto esto, puedes ver que imprime todo. Harmony se sienta en la capital estadounidense AIR 50 de Reino Unido, Londres. Y entonces símbolo químico para el hierro es Fe. Para que todo funcione. Entonces eso es bonito, eso es bastante loco, ¿verdad? Eso es bastante guay. O bucles increíblemente valiosos y se pueden utilizar para todo tipo de cosas. Hay otro tipo de bucle que es muy similar al for-loop, que es el para cada bucle. Ahora ya puedes ver si realmente puedo escribir eso y podría presionar la tecla Tab para autocompletar esto. No obstante, no lo haré, porque el formateo es un poco raro para mí. No sé, sé muy bien cuál es ese el caso. Sólo vamos a escribir para eso puedo decir cuerdas preguntas de Polonia Occidental. Y la forma de leer esto es para cada pregunta de cuerda en preguntas, así es como lo leerías. Y entonces solo puedes hacer un sistema fuera, imprimir línea, pregunta. Y sólo puedo imprimir aquí cada pregunta individual. Una vez más, eso sólo va a funcionar. Entonces como pueden ver, ahí van, uh, básicamente ahora tienen acceso a lo que los elementos individuales dentro de esa lista o matriz en este caso, y no tengo que especificarlo a través del índice aquí. De hecho los estoy consiguiendo a todos bien individualmente. Entonces este es el para cada bucle y esto para cada uno que vayas, Ese es otro tipo de bucle que es interesante. Y entonces el último tipo de bucle que quiero mostrarte es el bucle while. Ahora, tengo una preferencia personal a muy raramente utilizado el bucle while simplemente por el hecho de que puede ser, bueno, puede meterte en problemas. Entonces podemos decir algo así como mientras que cierto y luego corchetes rizados. Entonces lo que pasa es que todo dentro de aquí va a suceder mientras esto es cierto. Ahora obviamente, cuando piensas en esto por un segundo, espera un segundo. Si pongo en verdad, entonces esto siempre va a ser verdad exactamente. Esto ahora es un loop while y un while loop e interminable, ¿verdad? Entonces este es un bucle interminable y este es el peligro con el que podrías tropezar con un bucle while. Podrías encontrarte con el tema con para bucles también en teoría, pero es muy raro que en realidad son sucede. Pero en while loops, es muy a menudo el caso o puede ser el caso que tengas un bucle interminable. Ahora todo el mundo tiene que pasar por eso en algún momento. Solo digo que mi sesgo es que realmente no me gusta mientras bucles. Pero lo que podemos hacer es, bueno, hagamos lo siguiente. En realidad agreguemos una entrada para la persona. Por lo que Escáner aquí, escáner equivale a nuevo sistema de escáneros.in y luego hecho. Pero lo que vamos a hacer es que sólo vamos a decir algo como el siguiente sistema fuera de línea de impresión. ¿ Quieres continuar? Pero entonces sólo vamos a decir, Hey, ¿la persona quiere seguir usando? Queremos continuar. Y entonces sólo vamos a decir, oye, si el escáner punto siguiente, ¿verdad? Si eso es igual a sí. Entonces lo que vamos a hacer es que sólo vamos a continuar, ¿verdad? Entonces continúa la palabra clave real lo contrario nos vamos a romper. Este es un ejemplo aquí de la palabra clave Continuar y la ruptura. La palabra clave continue básicamente ignora todo lo que viene después dentro del bucle y salta de nuevo a la parte superior del bucle donde la palabra clave break sale del bucle. Entonces básicamente va a fin de año y todo después se ejecuta de nuevo después. Esto sería lo mismo si todo de repente se vuelve falso. En este caso, esto es por supuesto un bucle sin fin, ¿verdad? Entonces, para que mientras escriba, sí, esto va a continuar y en cuanto escriba cualquier otra cosa, se va a salir de ella. Entonces esa es una especie de la idea de este while loop aquí. En realidad echemos un vistazo a esto para que pueda teclear. Sí. Y puedo teclear, sí. Y podría teclear. Sí. Y entonces voy a cometer un error aquí y un OH, no, De repente el código se detiene. Esa es una especie de idea. Por lo que esto podría ser un bucle sin fin con una especie de sistema de frenado. Ahora lo que es muy importante es que la palabra clave continue y the break probablemente solo se deba usar con moderación porque hay muchos desarrolladores a los que no les gusta esto. Porque si tienes como, digamos un bucle FOR más largo o más largo while loop y tienes un montón de Continuar y se rompe ahí. A veces puede ser un poco confuso. Me gusta leerlo, ¿verdad? Porque vas a tener más sucursales por así decirlo. Entonces puedes pensar, si puedes pensar en forma de hacerlo de una manera un poco diferente que suele ser mejor. Cualquiera que sea el caso. Esos son los bucles que quería mostrarles. realmente bastante cool. Y realmente estamos empezando a conseguir algunas herramientas muy, muy geniales en nuestra caja de herramientas para trabajar realmente con código y solo programar algo que es realmente genial. Entonces, pero por el momento, esto es todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo si lo hicieras, te agradecería mucho una opinión tuya. De lo contrario, los veré en la próxima conferencia. Entonces, sí. 20. (Java) Médicos Java: Bienvenido de nuevo a la introducción de Java para el modelado de Minecraft. Y en esta conferencia, vamos a estar echando un vistazo a unos métodos. Por lo que en primer lugar, una vez más requerimos las áreas de cuerdas aquí. No necesariamente los requerimos, sin embargo, los vamos a utilizar en esta conferencia. Y bueno, métodos. ¿ Cuáles son los métodos? Bueno, hemos visto esta palabra lanzada unas cuantas veces antes con los métodos de cadena. Y también algo así como sistema fuera línea de impresión también es un método. Y podría haber dicho una o dos veces antes del método principal. Entonces hay algo a esto. También hemos visto los métodos matemáticos, así que definitivamente hemos escuchado esa palabra antes. ¿ Qué es realmente? Bueno, en teoría, un método, se puede pensar en él como unas pocas líneas de código, una línea de código o unas 100 líneas de código en teoría, que se ejecutan cuando se llama a ese método. Entonces llamas a un método como por ejemplo, cuando escribimos en un sistema, sistema fuera de línea de impresión, ¿verdad? Y digo Hola, lee esto. Es algo de fondo, pasa, ¿verdad? Entonces esta línea de impresión, cuando llamamos a esto, este método aquí, algo en segundo plano sucede. Ahora no lo sabemos, en este caso necesariamente sabemos qué sucede exactamente. Pero algo le pasa a eso este hola, ¿no? Una vez que ejecuto esto, para que cuando esto suceda, algo suceda en segundo plano que este hola ahora se está mostrando en esta ventana Ejecutar. Entonces realmente no sabemos qué, pero algo en segundo plano sucede, por lo que se ejecuta algún código. Entonces si tenemos un trozo de código que podríamos querer reutilizar, digamos un 100 veces en nuestro código. Entonces se podría decir, bueno, sólo podemos hacer un for-loop, ya sabes, un 100 veces. Bueno, pero y si quiero hacer esto en diferentes ubicaciones en mi código, ¿verdad? Entonces a lo mejor quiero hacer una pregunta en este caso, ¿no? Y una salida y respuesta para luego comprobar la respuesta. Entonces quiero volver a hacer preguntas. Es como, bueno, quiero decir, podrías hacer un bucle for, pero bueno, tal vez queremos hacer algunas declaraciones si ahí dentro. Se va a complicar un poco. Entonces esto no siempre funciona. Entonces digamos, por ejemplo, lo que quiero hacer es solo quiero, no sería sólo algo que pueda escribir en que pueda dar, digamos un, un array aquí, rojo. Entonces el array string de preguntas, un área de cadena de respuestas, y que solo salidas cumplen con todas las respuestas y todas las preguntas. Por lo que todas las preguntas, respuestas justo en inscribir. Por lo que podría por supuesto escribir algo como esto. Ojo derecho para bucle int I es igual a 0. Yo es más pequeño que las preguntas que enlaza, Digamos que yo plus, plus. Y entonces podría simplemente decir sistema fuera, imprimir preguntas de línea. Escribo algo como esto y luego duplico esto y luego digo respuestas. Yo podría hacer eso. Bueno, digamos una vez más, quiero que esto se haga un 100 veces a lo largo de nuestro código. Ahora el observador de ustedes podría decir, bueno, ¿por qué no simplemente ponemos este for-loop en otro bucle for. Y tú estarías absolutamente en lo correcto. Podrías hacer eso también. No obstante, no nos pongamos demasiado astutos. Pensemos en esto y hagamos de esto un método. Ahora, lo que vamos a hacer es que antes les dije que sólo estamos operando entre estos dos corchetes rizados. Estamos, estamos expandiendo nuestro mundo ahora y moviéndonos fuera de estos corchetes rizados. Porque ahora nuestros nuevos corchetes rizados son esos dos básicamente. Entonces ahora este es nuestro nuevo hogar. Y esto, podría haber pensado algo en esto. Bueno, este es el método principal que básicamente se está ejecutando cuando presionamos el botón Run, entonces se ejecuta el método principal. Ahora vamos a añadir un nuevo método. Y antes que nada, va a escribir esto. Y luego voy a explicar lo que pasa aquí. Entonces vamos a escribir estática pública, nula. Y voy a llamar a esta salida preguntas y respuestas. Entonces voy a escribir entre paréntesis, los paréntesis de cierre deben generar automáticamente. Y luego voy a hacer una matriz de cuerdas aquí. Entonces estas van a ser las preguntas y luego una, otra matriz de cadenas responde, ¿verdad? Y luego voy a hacer un corchete rizado. Y ves que el segundo corchete rizado ya ha generado. Simplemente puedo presionar la tecla Enter y luego el formateo también debe estar completo. Y con esto, se ha creado un método más nuevo. Entonces por el momento, vamos a ignorar es este público y estático. Todavía no sabemos muy bien qué es eso, pero estamos muy cerca de resolverlo con esto en una futura conferencia. En realidad vamos a averiguar qué significa eso por el momento. Simplemente sabemos que se trata de un modificador de acceso. Todavía no sabemos qué hace. Simplemente sabemos que necesitamos tener estática pública escrita aquí y entonces todo va a estar bien. Hay vacío aquí es en realidad el tipo de retorno de este método. Por lo que algunos métodos devuelven algo y lo veremos en tan solo un momento. Entonces después de que hayamos hecho este método, vamos a hacer otro que realmente devolverá un entero. Entonces vamos a tener el nombre del método. Ahora esto es algo que puedes decidir tú mismo. Por lo general, las variables de nomenclatura y los métodos de nomenclatura deben ser muy expresivos. Entonces, a pesar de que esto podría muy largo para ti no te alejes de los nombres largos de métodos o de los nombres de variables largos. Si describen exactamente lo que están haciendo, eso va a ser lo mejor. Entonces después del nombre, ven, aquí los paréntesis. Y dentro de los paréntesis, básicamente también definimos un tipo variable de hablar. Y esos se llaman parámetros. Entonces tenemos dos parámetros aquí, y ambos son de tipo string array. Y en general, todo esto de aquí. Entonces todo esto, derecho, los modificadores de acceso, el tipo de retorno, el nombre del método, y los parámetros es lo que se llama la firma del método. Entonces porque necesitamos saber esto, las firmas de métodos tienen que serlo. Significado único no puedo tener lo mismo. Entonces voy a seleccionar todo esto. Y luego voy a decir Control C y luego Control V. Y se puede ver que si me cierro sobre esto ahora vamos a decir ya está definido aquí mismo. Entonces esto es exactamente lo mismo y ya está definido. Eso no funciona, ¿verdad? Entonces eso es muy importante. No obstante, si cambio la firma del método, es decir, hago uno menos, pongo aquí un parámetro menos que funciona. Tendrás, tienen el mismo nombre, tienen una firma diferente. Por lo que esto, en este caso, ahora se llamaría sobrecarga de método porque tenemos el mismo nombre, esto con una firma diferente off. Entonces, por ejemplo, diferente número de parámetros, diferentes tipos de parámetros, diferente tipo de retorno. Esa es una especie de las formas en que puedes alternar año por tener métodos del mismo nombre. Esto se va a poner interesante, tal vez más tarde por el momento, vamos a eliminar este y sólo vamos a mantener el método uno justo aquí. Y lo que vamos a hacer es que en realidad sólo vamos a tomar este Control X para cortarlo, Control V para pegarlo. Y de repente se puede ver todo está funcionando totalmente bien porque por supuesto, estamos teniendo los parámetros aquí, Westerns y respuestas. Y la idea es que vamos a pasar esos adentro. Entonces porque ahora mismo por supuesto estas preguntas, esto contesta, esas no son las mismas que estas dos. Yo puedo llamar a esto, digamos Q0, Q, Q u, e, sólo por el bien de la discusión. Y voy a llamar a esto E&S sólo para que no haya malentendido. Este año no es lo mismo porque podría llamar a esto con, por supuesto, un array de cadena diferente de preguntas en un área de respuestas de cadena diferente. Entonces esto va a ser muy general. Esto sólo va a hacer esto por cualquier área que voy a poner. Entonces eso es lo realmente genial. Entonces lo que puedo hacer es que puedo llamar a esto, puedo decir salida. Y se podía ver en cuanto escribo fuera, el método real está siendo reconocido por el programa. En realidad sugirió aquí. Por lo que sólo puedo poner en la tecla de tabulación. Puedo presionar la tecla tabulación y automáticamente genera tu y solo puedo decir Q0 y ANS. Así que ahora he pasado en la matriz de cadenas de preguntas como el perímetro de la pregunta y la matriz de cadenas de respuesta como el parámetro de respuesta. Podría, lo que también pudo haber visto es que el método pasó de gris a amarillo. Esto simplemente significa que este método se está utilizando en realidad, así que se está llamando. Y eso también es una, una idea importante. Y si ahora ejecuto esto, verán que realmente funciona . Se puede ver cuántos conjuntos. EU, tienen 50 capitales, Reino Unido, Londres, y símbolo químico para el hierro es F, e. Así que sale esto y simplemente llama básicamente a todo el código de esto dentro de aquí. Y ahora, por supuesto, los métodos pueden llamar a los métodos, y los métodos pueden llamar a otros métodos. Entonces esto, por supuesto, sí se complica bastante en algún momento. No obstante, por el momento, esto es realmente genial. Ahora, también vamos a hacer un método que es, podría ser muy complicado. Entonces lo que vamos a tener como uno va a público static int. Entonces ahora vamos a estar devolviendo un entero y vamos a sumar dos números juntos. Entonces para eso, ¿qué necesitamos? Bueno, por supuesto un entero x y un entero y Ahora, una vez más, los nombres de los parámetros, por cierto, también pueden ser lo que elijas. Por lo general quieres que también sean muy expresivos en general. Ahora tenemos este método de suma aquí mismo. Y lo que vamos a hacer es que vamos a escribir en la palabra clave de retorno x plus y. ahí tienes. Entonces sólo vamos a devolver x plus y porque esa es por supuesto la suma de estos dos enteros en ese caso, nada demasiado espectacular. No obstante, lo que sí quería mostrarte es básicamente la palabra clave return y que también puedes devolver diferentes tipos. Entonces el método SAM en este caso, sólo podemos echar un vistazo a esto, ¿verdad? Entonces sistema fuera de línea de impresión, y luego vamos a decir unas diez y digamos 12. Y luego si corro esto y debería decir 22, ahí tienes. Entonces no se preocupe en absoluto, que todo funcione. Y esa clase de la idea general aquí que tienes con métodos. Por lo que puede o devolver algo o puede nab devolver algo, entonces hay que escribir en un vacío. Pero esa es una especie de mirada tentativa a los métodos. Por supuesto, una vez más, realmente hay que aplicar también esto un poco para realmente conseguir aquí el entendimiento. No obstante, ese es un gran segue a la asignación que va a estar arriba a continuación. Recomiendo encarecidamente hacer como hacer la siguiente asignación porque eso va a ser básicamente métodos. Y aunque no consigas a Sue básicamente hará todo ahí dentro, al menos mirando la pregunta y luego la solución a la misma esperemos que ilumine también la forma en que puedes usa métodos en tu propio código. Pero por el momento , esto va a ser todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo y te veré en la próxima conferencia. Entonces, sí. 21. ASSIGNMENT 2: juego de Trivia con métodos: Muy bien, Bienvenido a la segunda asignación de la introducción de Java aquí. Y en este breve video, básicamente quiero explicar la asignación. Entonces en general, la asignación no es en realidad tan complicada sobre todavía quiero básicamente guiarte a través de esto. Entonces la idea es que deberías recrear el juego de trivia desde la primera asignación. Entonces básicamente más o menos lo mismo. Pero esta vez deberías tener cinco preguntas y cinco respuestas. Y la forma en que debes salvarlos es en dos áreas. Uno para las preguntas y las respuestas. Y lo que también debes hacer es al menos crear dos métodos para que el código sea más legible y más fácil de seguir. Y básicamente como una pista, lo vas a pensar así. Cuando tengas algún código duplicado, probablemente deberías convertirlo en un método. Pensaremos en eso. Piensa en dónde podrías estar llamando a algo dos veces y luego básicamente puedes hacer un método con eso. Y lo que también debes hacer es hacer un bucle interminable y luego algunas declaraciones if ahí en alguna capacidad. Entonces alguna lógica, que hacen que el usuario pida al usuario que siga jugando o no si ya no quieren. Te recomiendo encarecidamente volver a echar un vistazo a la conferencia de bucles porque en realidad están teniendo volver a echar un vistazo a la conferencia de bucles porque en realidad están un caso de uso muy similar que están conscientes tuvimos un bucle while interminable que puedes parar con ellos Declaraciones IF y el break y las palabras clave continue. Por lo que esos podrían venir muy bien aquí. De lo contrario, en general, esto debería ser bastante sencillo. El juego en sí mismo debería jugar de manera muy similar en realidad que el primero. Simplemente debería verse un poco diferente. Entonces en general, esa sería toda la idea. Por supuesto, no olvides cosas como los puntos también. También el, ya sabes, sumar esos también. De lo contrario, esto es casi todo lo que realmente necesitas hacer. Te sugiero rondar alrededor una hora más o menos para esta asignación, dependiendo por supuesto de tu nivel, también podrías hacerlo en como 30 minutos, 45 minutos, ¿quién sabe? Pero no te estreses. Tómate algo de tiempo para cavar realmente en esto. Ver un par de conferencias otra vez, la conferencia de bucle, recomiendo encarecidamente métodos conferencia fue áreas muy agradables si no entiendes del todo esas, recomiendo encarecidamente esto. Y de lo contrario, por supuesto, la solución estará disponible para usted también. Entonces no se preocupe ahí. De lo contrario, le deseo la mejor de las suertes para esta asignación, sin embargo. Sí. 22. Solución 2: juego de Trivia con métodos: O doy la bienvenida de nuevo a la segunda asignación y la solución a la asignación real aquí. Por lo que una vez más, el código está por supuesto disponible para ti. Y como, bueno, básicamente descargo de responsabilidad aquí, si tu código no coincide un 100 por ciento con el código que tengo, eso está por supuesto totalmente bien. No hay vergüenza en eso porque siempre hay múltiples soluciones a esto. Y sí creo que mi solución puede ser usa algunos, demasiados métodos. En realidad, curiosamente, pero por el momento, sólo vamos a atravesarlo. Entonces, por supuesto, las matrices de cadenas, preguntas y respuestas deberían ser bastante autoexplicativas aquí. Lo mismo con el escáner una vez más para leer cosas en, y luego un total de puntos aquí, sólo puntos centrales. Entonces eso es bastante sencillo. Tenemos un bucle while que siempre es cierto. Por lo que puedes ver esto es básicamente todo el bucle while aquí. Y antes que nada echemos un vistazo al mismo fondo aquí. Entonces este print play otra vez, método imprime, Hey, ¿ quieres jugar de nuevo? Si pones una y aquí, entonces básicamente restablece los puntos y luego continúa con este while loop nuevamente. De lo contrario, simplemente se rompe del bucle while. Y entonces príncipe de adiós aquí. Esa es una especie de idea. De lo contrario puedes muy fácilmente realmente seguir esto. ¿ Los nombres de los métodos describen casi en su totalidad lo que están haciendo y luego ver Imprimir título, Suficiente justo. Y luego vamos a pasar por cada una de las preguntas aquí para este for-loop, muy, bastante sencillo también. Y tenemos la pregunta de impresión aquí para la pregunta que actualmente básicamente se está haciendo POR entonces leer en la respuesta del usuario. Y entonces tenemos una declaración if que llama a otro método aquí. Entonces es la respuesta correcta de esta respuesta del usuario. Y básicamente compara esto con la respuesta que es correcta para esta pregunta. Si este es el caso, entonces si este método devuelve verdadero, entonces estamos imprimiendo, tenías una respuesta correcta donde entonces cada vez más puntos totales y escribiendo eso nuevo en la variable de puntos. Y entonces aquí también estamos imprimiendo el total de puntos actuales básicamente. Y si esta no fue la respuesta correcta, entonces estamos imprimiendo que tenías una respuesta incorrecta y también estamos imprimiendo la respuesta correcta real. Eso más o menos es todo lo que realmente necesitamos aquí. Y se puede ver entonces al final aquí sólo estamos imprimiendo el total de puntos y luego pidiendo al jugador que básicamente si quieren o no jugar de nuevo. Entonces esa es toda la lógica aquí. Y luego si bajamos, podemos ver que aquí hay muchos métodos. Y todas son muy, muy simples, ¿verdad? Casi todos ellos solo una luz, básicamente todos ellos solo una línea. Ahora, puedes hacer un muy buen caso que, eso podría ser un poco demasiado de algo bueno, también puede ser algo malo en este caso, ¿verdad? O demasiados métodos podrían ser demasiado. No obstante, esto definitivamente es muy fácil de seguir aquí. También hay puntos en decir, bueno tal vez podríamos simplemente tomar toda esta declaración IF y hacer un método. ¿ Son eso también, podríamos tal vez tomar todo el bucle for, hacer un método completo de eso. Podemos tomar esta parte y hacer un método otro. Por lo que hay múltiples ideas que puedes seguir y aún podrías, por supuesto hacer más métodos con esto o menos. Eso está totalmente bien y eso está totalmente bien. Mientras funcione, tienes algunos métodos que hiciste, entonces va a estar absolutamente bien. Entonces, una vez más, si esta no es exactamente tu solución, no te preocupes por eso en lo más mínimo. Una vez más, lo hermoso de la programación es que siempre hay, quiero decir, hay un millón maneras diferentes en las que se puede hacer esto. Por supuesto, algunos de ellos van a estar más optimizados que otros. Pero al final del día, cuando realmente lo pensamos, esto va a estar totalmente bien por lo general. Entonces si esto no es un 100 por ciento correcto como lo tienes, está bien. Si funciona, ya estoy muy contento con eso. De lo contrario, esta más o menos es mi solución. Este código está por supuesto, también disponible para ti. De lo contrario, espero que esta asignación te haya sido útil para profundizar un poco más en la idea de los métodos y cómo utilizarlos. Siempre puedo, por supuesto, también solo sugerir jugar con él en tu propio tiempo, solo probar un montón de cosas. En este punto tienes muchas herramientas diferentes. Tienes sentencias if, tienes bucles, tienes métodos, matrices. Entonces hay un montón de cosas con las que puedes jugar. Se pueden leer cosas en del usuario. Puedes escribir cosas a la consola, que en este punto en realidad solo te abre todo un montón de cosas. Entonces si quieres hacer algo así como un elige tu propia aventura, sólo una cosita pequeña, ¿verdad? Adelante, bien, sólo prueba un montón de cosas. Recomiendo encarecidamente solo ser experimental con ello. Tú, no puedes romper nada aquí, ¿verdad? Mientras escribas tu código aquí es solo para ti, todo va a estar bien. Como ya dije en la conferencia sobre los errores. Si te dan algunos errores, no hay necesidad de preocuparte, este no es el fin del mundo y todo el mundo recibe flechas, verdad. Tengo flechas en cualquier momento, como cuando programa, claro, va a haber flechas y eso está totalmente bien. Mientras trabajes a través de ellos, tratas de entender ¿por qué obtuve este error? ¿Cómo sucedió eso? Y algo así. Pero esto sería todo para la solución aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo y te veré en la próxima conferencia. Entonces, sí. 23. (Java) Colecciones de Java: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar echando un vistazo a las colecciones. Esto incluirá unos mapas y sets realistas. Aunque especialmente sets es algo que se usa bastante extensamente en el modelado de Minecraft en general, pero en la base de código de Minecraft. Entonces los sets son cosas muy interesantes, pero vamos a empezar primero con un ArrayList. Aunque. Pensaremos de nuevo en la matriz de cadenas, que pudimos definir así, ¿verdad? Entonces preguntas por ejemplo, aquí, con una nueva matriz de cadenas, digamos del tamaño dos. Y luego pudimos asignar esas preguntas como esta. ¿ Cómo cualquier estado, ningún Estado? Hace. El medio de Estados Unidos va algo así. Y podríamos duplicar esa línea. El otro también. Por ejemplo, hacer de este capital un poco más corto de Reino Unido. Entonces eso funciona totalmente bien. No hay temas en absoluto tasa. No obstante, una de las cosas que podrías hacerte es acertada, pero ¿y si quiero cambiar el número de preguntas dentro de esta área? Bueno, hay que cambiar este número aquí mismo. Y eso puede ser un poco molesto, ¿verdad? Porque entonces hay que entrar aquí, tener que cambiar esto, asegurarse de que si entonces tienes un área que tenga respuestas, también hay que cambiar el tamaño de eso, y así sucesivamente y así sucesivamente. Entonces tipo de no lo mejor. Y para eso vamos a echar un vistazo a una lista ahora. Entonces vamos a escribir en lst, así lista. Y se puede ver que ya básicamente nos sugiere en este. Y sólo vamos a presionar la tecla Tab, que ahora va a importar algo en la parte superior aquí. Si eso no sucede, te voy a mostrar en tan solo un momento cómo podrías arreglarlo. Y luego vas a poner el soporte angular aquí mismo. Por lo que el soporte de ángulo y el otro deben generar automáticamente también. Y luego vamos a poner una cuerda aquí mismo. Y después vamos a llamar a esto la lista de preguntas. Y esto es igual a un nuevo ArrayList. Se puede ver que esto ya se nos está sugiriendo básicamente. Una vez más, voy a presionar la tecla Tab para generar automáticamente. Y vamos a terminar esto con un punto y coma. Y lo primero que van a ver es que nosotros, no hemos definido ninguna longitud para esta lista. Y esto es exactamente correcto porque no hay necesidad de definir una longitud para una lista, porque una lista es una especie de dinámicamente mientras Lengthen solar hablan. Entonces básicamente podemos simplemente agregarle cosas, agregarle elementos y la lista simplemente expandiremos dinámicamente. Entonces eso es realmente genial. Esa es la primera cosa muy guay. Entonces podemos decir lista de preguntas, punto, agregar, y luego poner una cadena. Entonces, por ejemplo, ¿qué idioma se habla en Alemania? A modo de pregunta aquí. Y entonces sólo puedo duplicar esto. Y por ejemplo, digamos, ¿cuál es la capital de Canadá? Y luego al final aquí tal vez algo como, ya sabes, digamos sólo en qué hemisferio? Hemisferio es Brasil. Pero sólo por el bien de la discusión. Entonces esos ejemplos de tres preguntas, solo agréguelo a la lista, y este ahora será el elemento con índice 0. Este será el elemento con índice uno, y éste será el elemento con índice dos. Entonces eso es realmente genial. Y lo primero que podemos decir básicamente es que listas, ¿no? Básicamente son agregar entradas o elementos dinámicamente. Entonces eso es realmente genial, ¿verdad? Entonces podemos sumar y bien, incluso quitar cosas. ¿ Cómo quitarías cosas? Bueno, en realidad eso también es bastante fácil. Podemos simplemente decir lista de preguntas dot remove, y luego o bien puedo poner en el índice que quiero eliminar o puedo poner en el objeto real que quiero eliminar. Por lo que también podría pasar la cuerda real aquí, o simplemente podría decir una. Y luego se va a quitar la pregunta, ¿cuál es la capital de Canadá? Eso es bastante guay. Ahora, la siguiente pregunta que podría tener es, bueno, ¿cómo podemos básicamente obtener la longitud de esto? Bueno, podemos decir lista de preguntas punto. En primer lugar, vas a conseguir un montón de cosas sugeridas aquí como puedes ver claramente. Muchas cosas la mayoría de las cuales no nos interesan por el momento. En realidad tenemos que usar el método de tamaño justo aquí. Tan tamaño con los paréntesis, lo que significa por supuesto que esta es una llamada de método. Y esto regresa como la longitud o el tamaño de esta lista. ¿ Y cómo puedo sacar un, un elemento de esta lista? Bueno, solo podemos teclear sistema fuera, imprimir línea para imprimir esto. Y entonces podemos decir lista de preguntas que GET. Y entonces aquí tenemos que pasar en el índice. Entonces en este caso 0 por ejemplo. Y si solo ejecuto esto, verás que vamos a conseguir dos por el tamaño porque por supuesto hemos quitado la primera pregunta o la cadena con índice uno. Y entonces el elemento con índice 0 todavía va a ser qué idioma se habla en Alemania. Entonces eso es bastante guay. Todas las cosas consideradas. Ahora, echemos un vistazo a otra cosa. Y eso va a ser una lista de enteros, por ejemplo, ¿verdad? Por lo que los números es igual a una nueva lista de matrices. Y lo que van a ver es que este algún tema aquí. Por lo que ArrayLists califica algo así. Y luego puedes ver que es una especie de, ya sabes, no se comporta del todo bien. Aquí hay como un subrayado rojo. ¿ Qué está pasando? Bueno, si pasamos por encima de esto, se puede ver que el argumento de tipo no puede ser de tipo primitivo. Eso significa que en realidad no podemos usar en booleano y cosas así. No obstante, ante ti. Esto puede y decir: Oh Dios mío, eso es lo peor de la historia. No se preocupe. Hay clases de envoltura que puedes usar para que realmente puedas ver reemplazarlo con entero Java Lang. Bueno, puedo hacer click en esto o simplemente puedo escribir un entero aquí mismo. Entonces éste, en este caso. Y si usas eso, entonces todo funciona bien. Entonces estos son esta lista y estos corchetes angulares son lo que se llama genéricos. Y la idea es que se pueda poner cualquier tipo de datos aquí, excepto los primitivos. Eso es muy importante para aquellos que necesitamos esas clases de envoltura. Entonces hay clases de envoltura, ¿verdad? Podemos usar, se puede usar en lugar de lo primitivo, un datatypes primitivo el u. entonces esto es muy importante recordar aquí hay clases de envoltura y deberían existir para cada uno de los primitivos tipos de datos. Entonces no se preocupe ahí en absoluto. Y aquí podemos muy fácilmente sólo decir números en, ya sabes, eran 20 por ejemplo. Y los números agregan algo así como 42. No se preocupe en absoluto. Como puedes ver, solo podemos sumar esos números aquí y son enteros normales y básicamente podemos usar o. eso está totalmente bien. Pero sí quería mencionar esto que no se pueden usar los tipos de datos primitivos en estos genéricos como se les llama. Como dije, los genéricos son estos tour de estos corchetes angulares, ¿ verdad? Estos corchetes angulares. Y todo lo que hay dentro de él se llama genérico porque, bueno, es genérico en el sentido de que podemos poner en cualquier otra clase o cualquier otro objeto, cualquier tipo de datos que queramos aquí. Y sólo va a funcionar. Esto por cierto, incluye una lista también, ¿no? Por lo que podemos tener una lista de una lista. Por supuesto, ¿por qué no? ¿ Verdad? Nosotros múltiples listas que también funcionarían. Pero por el momento, eso será todo para las listas. Echemos un vistazo a los mapas. Por lo que los mapas son muy interesantes. Leer, un mapa es lo siguiente. Un mapa contiene una clave y un valor. Y la clave, la clave en realidad mapea, mapas de claves correctos a un cierto valor que todos deberían tener sentido. A esto se le llama par de valor clave. Está bien, bastante justo. ¿ Qué podemos ver? Bueno como tan solo teclear esto en el mapa como se puede ver, y tenemos dos cosas diferentes en los corchetes angulares esta vez. Entonces vamos a importar esto, ¿verdad? Por lo que se puede ver que esto también se importa aquí. Si esos no son importantes automáticamente, puedes ver que las cosas se ponen rojas y puedes hacerlo muy fácilmente tú mismo. Simplemente puedes hacer click en esto y presionar Alt y Enter, e importará esta clase. Se puede ver que también he tenido que hacer lo mismo con el ArrayList. Y luego aquí abajo para el mapa, en realidad no tengo que hacer esto todavía porque aún no he terminado, pero vamos a ver esto en tan solo un momento. Vamos a tener un mapa que mapea una cadena a otra cadena. Y vamos a llamar a esto el mapa de país a capital, que va a ser igual a un nuevo HashMap en este caso. Y entonces lo que podemos hacer es simplemente presionar Alt y Enter. Y entonces va a ser importante aquí también. Pero esas son muy importantes, esas importaciones básicamente, para que el programa sepa que estamos usando estos tipos de datos, ¿verdad? Entonces la lista, la ArrayList, el mapa, y cosas así. Y lo que podemos hacer ahora es que podemos sumar a este país también al MAB capitalino. Entonces podemos decir simplemente poner y eso pone en nuevos valores. Entonces, por ejemplo, Alemania sería Berlín. Esperemos que supieras esa. Hagamos otra. Entonces, en realidad solo duplicemos esto un par de veces. Y vamos a decir Francia. Ya sabes que uno que es París, por supuesto, temprano directo, Italia, Wu ahora se pone interesante Roma por supuesto. Y luego vamos a tener un USA, y ese va a ser Washington DC. Tan muy sencillo. Todas las cosas consideradas aquí, como pueden ver, puedo poner en dos cuerdas, ¿verdad? Porque esto es lo que he definido aquí. Esos no tienen que ser los mismos. Podría poner en un año entero, un flotador aquí, podría poner una cadena aquí, una lista aquí. Cualquier cosa funcionaría. Esto no tiene por qué ser ambos de lo mismo. Eso es muy importante. Yo también quería mencionar eso. ¿ Y cómo sacamos ahora un valor de un mapa? Bueno, digamos sistema fuera de línea de impresión. Y luego vamos a decir país a capital punto get. Y se puede ver que tengo que suplir una cuerda. Y lo que voy a sacar es por supuesto una cuerda aquí, pero esto es lo que tengo que suplir. Y entonces esto es lo que saco de ella. Entonces el tipo de retorno y pongo en Alemania, y luego Berlín será salida ya Alemania es la clave para el par clave-valor, Alemania, Berlín debería ser bastante directo. También puedo preguntar si el mapa contiene o no cierta clave o contiene cierto valor. Por lo que puedo decir sistema fuera de línea de impresión. Y luego sólo para que todos sepan lo que estamos pidiendo aquí contiene clave Alemania. Y entonces vamos a decir, país a punto capital contiene clave, Alemania, que por supuesto va a ser verdad. Entonces sólo vamos a duplicar esto. Entonces vamos a decir que contiene un valor. Por lo que también podemos pedir valores, Londres por ejemplo. Y entonces podemos llamar al contiene un método de valor aquí mismo, pase y Londres justo aquí. Y entonces si solo ejecutamos esto, deberíamos ver. En primer lugar, aquí mismo, tasa de Berlín es la capital de Alemania y luego contiene clave. El alemán va a ser cierto porque sí contiene esa clave y luego contiene valor. Londres va a ser falso porque por supuesto no tenemos orina de Londres aquí como valor. También podemos eliminar cosas de un mapa. Por lo que una vez más sistema fuera, imprimir línea y conectar para decir, puedo decir país para capitalizar, punto quitar. Y lo genial del Remove que puedes ver es que o bien puedo pasar en la llave o también puedo pasar tanto en la clave como del objeto también. Y luego va a devolver un verdadero si eso se ha eliminado porque tal vez esos no coincidan y quieres una funcionalidad específica aquí. De lo contrario solo puedes pasar en la llave y entonces realmente obtendrás el retorno también. Por lo que obtendrás una última, última tienda de valor año. Entonces esto debería decir ahora París. Y después de eso, las marcas en realidad es, como se puede ver, y después de esto básicamente se retira de este mapa, esa es una idea muy interesante de los mapas. Pueden ser increíblemente útiles. No obstante, lo es, por supuesto a veces es difícil en este tipo de formas abstractas cuando solo muestro a aquellos donde realmente puedes usarlos. Usando estos tipos de datos, a veces puede ser, bueno, no es una ciencia exacta, ¿verdad? Por lo que a veces se quiere usar algo. No estoy seguro si esto encaja. Una vez más, sólo pruébalo. Steve trabaja y luego vas a estar bien. Y luego por último pero no menos importante, lo que vamos a echar un vistazo a los sets. Lo que conjuntos, como he mencionado, son cosas que se usan mucho en la base de código de Minecraft. Y un conjunto es solo una colección, una colección que no contiene duplicados. Bueno, esa es la definición más simple de un conjunto. Simplemente es una, bueno, una lista o una colección que no contiene duplicados. Entonces un conjunto, por ejemplo, de cadena, podríamos tener esto como nombres de usuario, por ejemplo, con cada número que es igual a un nuevo HashSet en este caso, entonces puedes ver esto también ha sido importado y ahora esto se ha convertido en una historia aquí porque todos esos están dentro, bajo el paquete util. Por lo que en realidad no tiene demasiadas importaciones aquí. Es una especie de hace eso por sí mismo. Eso es muy bonito. Entonces ahora tenemos un conjunto y podemos por supuesto añadir a ese nombre de usuario punto agregar, por ejemplo, trabajo de algodón. O podríamos decir usernames dot add, nano tech justo aquí. Y entonces podemos decir, bueno, bien, justo, Esto es realmente genial, pero ¿qué más hace un set? Bueno, una vez más, si ahora queremos agregar algo dos veces, para que puedas, por ejemplo, decir algo como usernames add, digamos FV, ¿verdad? Y luego duplico esto, y quiero agregarle el mismo nombre dos veces, ¿no? En realidad nos van a devolver ocho faltas. Aquí obtenemos un verdadero, aquí obtenemos un falso porque esto ya está ahí dentro, la cadena ya está dentro de la colección. Y debido a que no contiene duplicados, sólo podemos tenerlo una vez. Si realmente todo esto, verán que el primero es cierto porque por supuesto F o V no se agregó todavía. Y luego después de que se haya agregado y tratemos de agregarlo de nuevo, vamos a conseguir un retorno falso. Entonces eso es un muy interesante. Sobre todos los sets, realmente no se puede llamar a cosas individuales dentro del set. El conjunto es realmente una colección que debe usarse una especie de juntos. Y yo sólo quería sólo introducir suavemente los sets aquí sólo para que hayas oído hablar de ellos. Entonces una vez que los veamos dentro del juego básicamente, o dentro del código de Minecraft, entonces no te van a atrapar por completo desprevenido. Entonces la última sección aquí, flechas con las que podrías tropezar, ¿verdad? Entonces eso siempre es una, algo importante sin embargo. Sólo puedes, vamos a hacer esto. Sin comentarios fueron flechas. Acabo de ver donde los errores, por favor, no para terroristas eso, eso no sería bueno. Vamos en realidad copiar esto por el bien de la discusión y sólo vamos a cambiar este C a un pequeño c y n van a estar bien. Entonces el primero es el índice fuera de excepción encuadernada. Entonces, solo hagamos lo siguiente. Descomentemos esto. Y en primer lugar, esta es la lista de preguntas. Ahí lo tienes. No se preocupe en absoluto. Y si hacemos esto, entonces verán que aquí obtenemos una excepción, el índice fuera de límites excepción. Entonces esta es una excepción muy, muy similar al índice de matriz fuera de límites excepción es solo con una lista. Eso es más o menos todo lo que hay. Por lo que tratamos de pasar en un índice al getMethod que no existe para las listas. Entonces por supuesto, cuando sólo tenemos dos elementos, el primero es del índice 0, el segundo es del índice uno. Tan muy importante aquí que por supuesto, pasar dos cualquiera no funcionaría, ¿verdad? Entonces esa es la primera excepción. Y entonces, bueno, la otra cosa no es realmente una excepción, pero va a devolver un nulo. Entonces si pasamos una llave a un mapa que no existe, vamos a conseguir que se devuelva un nulo, ¿verdad? Y eso podría llevar a una flecha abajo de la línea. Entonces si hago esto, entonces verán que si hago eso, vamos a conseguir un nulo en el fondo aquí. Y esto es básicamente correcto, por supuesto, Malta, no tenemos eso en nuestro país a la capital Mab. Esto en realidad va a hacer que nos devuelvan un nulo. Por lo tanto, podría ser muy valioso ver si contiene una clave antes de que realmente intentes conseguirla fue genial. Devolver un nulo no es el fin del mundo. Por supuesto que no más si entonces, si no esperas que esto sea nulo o no manejas esto para ser nulo posiblemente, entonces podrías encontrarte con algunos temas. Bueno, esos son algunos de los errores que definitivamente quería mencionar aquí también. Entonces esas serían, bueno, la suma de las colecciones. Por supuesto, hay mucho más, hay muchos más tipos de datos que podrías usar. Ya sabes, no sólo hay mapas y sets de la lista , Hay mucho más, pero por el momento va a ser suficiente para básicamente empezar. Entonces esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Si lo hicieras, te agradecería mucho una opinión de ti. De lo contrario, los veo en la próxima conferencia. Entonces, sí. 24. (Java) Programación orientada en los objetos se explicó: O doy la bienvenida de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar hablando de programación orientada a objetos. Y como pueden ver, en realidad estamos en PowerPoint. En este caso. En realidad vamos a tener un poco de una presentación de PowerPoint aquí. Entonces, en realidad, sólo empecemos con la idea de qué es esta programación orientada a objetos? Bueno, en esta conferencia, vamos a pasar por un poco de la teoría y algunos de los términos con los que bien necesitarás básicamente familiarizarte para saber qué es pasando y para entender el lenguaje hablar con gente que conoce programación y cuando sigo junto con esto, así que sobre todo en la parte de Minecraft de esta conferencia o este curso, eres va a ver que básicamente voy a usar siempre los términos que son necesarios para usar. Entonces clases, métodos, objetos, cosas así, y debes saber cuáles son esas. Entonces lo primero que podemos pensar es que todo es un objeto. De acuerdo, vamos, vamos a almacenar eso como una información, como una pieza de información y podemos crear objetos personalizados con funcionalidad personalizada. Interesante, De acuerdo, y estos se llamarían clases. Entonces una clase es, podemos crear un objeto a partir de una clase, bien, Interesante. Y en las clases puede heredar funcionalidad, que serían métodos, variables de otras clases. Y vamos a ver dos ejemplos básicamente Teoría de esto. Y luego en conferencias posteriores, vamos a echar un vistazo a algunos ejemplos prácticos también. Bueno, antes que nada, pasemos por los términos muy importantes aquí. Entonces una clase, o clases son tipos de datos personalizados o definidos por el usuario. Pero ahora llegamos realmente al punto en que puedes hacer tus propios tipos de datos. Y esas clases entonces básicamente se pueden usar como plantillas para crear objetos. Y estas clases incluyen métodos y campos que se llaman miembros. Demos este paso a paso. Entonces una clase es un tipo de datos personalizados o definidos por el usuario que bastante cool. Y esos incluyen métodos y campos, que vamos a hablar aquí mismo. Se trata de miembros y cómo se pueden utilizar para crear objetos. Ahora, ¿qué es un objeto? Un objeto no es otra cosa que una instancia de una clase en particular con datos definidos. Vamos a ver un ejemplo de eso en tan solo un momento. Por lo que esto se pondrá mucho más claro. Pero antes que nada, hablemos de los miembros. Esos deben ser bastante autoexplicativos o mucho más fáciles que los objetos. Por lo que los miembros de una clase es ya sea un método o un campo, y también puedes llamar a funciones de métodos. Ahora, las personas que están un poco más en Java podrían saber que esto no es estrictamente necesario. Por lo que las funciones son un poco diferentes a los métodos. Para nuestros propósitos, está totalmente bien. Algunas personas aún dicen funciones, pesar de que hay métodos, va a estar bien y nadie se va a enloquecer con esto. No tenemos que ser demasiado pedantes en esto, ¿verdad? Por lo que los métodos o funciones básicamente definen un comportamiento específico para un objeto, y los métodos se pueden llamar para objetos específicos. Entonces un ejemplo de esto, que ya hemos visto es algo así como el método de tamaño para una lista en particular. Por supuesto, cada lista va a tener el mismo método de tamaño. Lo que se va a devolver es específico de una lista específica. Entonces para ese objeto, pero esa es una especie de la idea general, campos o atributos ya que también se les llama nuestras variables que se definen en la clase que almacenan algunos datos relacionados con esa clase. Entonces, por ejemplo, si tuviéramos una clase de persona que pudiera guardar una cadena llamada nombre, eso también debería tener sentido y debería ser bastante autoexplicativo como este ejemplo aquí. Y una vez más, todo esto lo vamos a ver por supuesto, también en vivo en acción, creo que próxima conferencia de inmediato vamos a empezar a saltar a clases y objetos. Entonces no se preocupe ahí en absoluto. Entonces, en primer lugar, echemos un vistazo a la idea de heredar cosas. Entonces esto, yo quiero, primer lugar prefacio con la idea de que si no consigues esto completamente, eso está absolutamente bien. La herencia es muy complicada. Yo sólo quería mencionar esto que ya lo hayan escuchado una vez antes. Pero la idea es que podríamos tener una clase animal, ¿verdad? Y eso en realidad básicamente hereda toda su funcionalidad y todas sus variables hasta dos clases. Por lo que el animal de dos patas y la clase animal de cuatro patas, y éstos están relacionados de la siguiente manera. El tipo animal es la superclase del animal de dos patas y la superclase para el animal de cuatro patas. En tanto que las clases de animales de cuatro patas y de animales de dos patas son subclases de la clase Animal. Siempre se puede tener una sola superclase, pero como se puede ver, se pueden tener múltiples subclases. Y entonces aquí podemos incluso ir más abajo y heredar incluso una cosa más y agregar más funcionalidad. Entonces vas de una especie muy genérica o muy abstracta, muy específica, ¿verdad? Animal es una categoría muy abstracta. Animal de dos patas. Estamos empezando a meternos realmente en cosas más específicas, humanas y avestruz. Ahora somos muy, muy específicos. Entonces esa es una idea en la que se te ocurre, ¿verdad? Entonces pensemos en una clase de perro ahora, ¿verdad? Entonces tenemos una clase que se llama perro, y eso podría tener algunos atributos o algunos son campos, ¿no? Que va a ser una foto, un nombre, y una edad. Y vamos a estar como, Vale, está bien. Eso está bien, que hay lo suficientemente bueno como para describir a un perro en particular. Y bueno ahora queremos crear un perro nuevo. Por lo que queremos crear una nueva instancia de la clase de perro. Queremos crear un nuevo objeto. Bueno, vamos a hacer eso. Ahí lo tenemos. Ahora mismo hemos creado un nuevo perro. Benji tenía siete años, y aquí hay una foto muy linda de él. ¿ No es eso simplemente agradable? Sí, si lo digo yo mismo, creo que este es un cuadro muy lindo aquí, y este es un perro en particular, ¿verdad? Realmente no hemos cambiado nada aquí. Lo único que hemos hecho es que básicamente hemos creado un objeto. Cuando volvemos aquí una vez cada perro tenga una foto, un nombre, y una edad, y esto es una instancia particular o un objeto particular de la clase de perros. Ahora solo creemos otro. Por ejemplo aquí, Gracie con cinco años de edad y también tiene un cuadro muy lindo ahí mismo. Ahí hay, se puede ver esos son dos objetos diferentes o dos instancias diferentes de la clase Perro. No obstante, ambos son perros. Entonces esta es una especie de la separación que como que quiero atravesar cuando se trata de clases y objetos, que la clase es la plantilla. Y luego una vez que creas un objeto en particular, eso luego se convierte en una instancia de esa clase. Entonces eso a veces puede ser un poco raro, sobre todo para principiantes. Pero no se preocupe en absoluto a la vez. En realidad vamos a empezar a programar con esta temible o cuando realmente ponemos esto en uso práctico va a ser mucho más claro. Estoy seguro de ello, ¿verdad? ¿ Cuál sería ya el final de la conferencia? En realidad, lo más importante de esta conferencia, déjame volver rápidamente aquí es ésta de aquí, ¿verdad? Por lo que esta diapositiva es probablemente la más importante. En realidad, las diapositivas también están disponibles para ti como recurso para que puedas descargar esto también. Entonces no se preocupe ahí. Por lo que sí tienes acceso a ambas fotos lindas de perro también. Entonces eso en realidad va a ser un plus muy grande por supuesto. De lo contrario, esto sería todo para esta conferencia aquí mismo, como dije, un poco más de teoría y en la siguiente conferencia vamos a poner todo eso en práctica. Entonces eso será todo para esta conferencia aquí mismo. Espero que hayan encontrado esto útil y las neuronas sean las nuevas. Y nos vemos en la próxima conferencia. Entonces, sí. 25. (Java) Clases y objetos de Java: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a aplicar básicamente la teoría que hemos aprendido la última vez. En la última conferencia, Vamos a estar hablando de clases y objetos. Entonces, en primer lugar, por supuesto, necesitamos crear una nueva clase, una clase personalizada ahora. Y para eso, vamos a entrar en esta ventana del proyecto aquí mismo dentro de nuestro paquete. Entonces este es el paquete, ¿verdad? Net ayudó a Monroe fue el paquete que creamos u otro que yo creé. Ojalá este sea tu nombre. Entonces en tu paquete de nombres, haces clic con el botón derecho en nueva clase Java. Y luego vas a llamar a esto la clase de perro, asegurándote de que la clase aquí esté seleccionada y luego pulsa Enter. Ahora este año esta ventana sólo aparece para mí porque tengo un repositorio de GitHub asociado a este proyecto. Si no tienes eso, eso está absolutamente bien. No te preocupes por eso en absoluto. Por lo que sólo quería mencionar esto. Y ahora en lugar de estos corchetes rizados, oh, agregarle miembros a esta clase. Entonces, por ejemplo, podríamos agregar algunos campos, ¿no? Entonces podemos decir algo como agregar, agregar algunos campos, ¿no? Y luego volvamos a pensar la presentación de PowerPoint que hemos visto, ¿verdad? Teníamos una imagen pública de String. Estábamos pensando en una imagen. Sólo vamos a decir que una cadena que está totalmente bien por el momento, un nombre público de cadena. Y entonces digamos un entero público, que es la variable de edad. Ahora eso está todo bien por el momento. Aquí vamos una vez más a ignorar al público. Sólo tenemos que ponerlo a público una vez más en un tiempo muy, muy corto. En realidad, vamos a ver los modificadores de acceso. Entonces esa es literalmente la siguiente conferencia también. Y entonces entenderemos lo que esto significa por el momento. Tenemos que ponerlo a público. Y lo que también podemos hacer es, por ejemplo, alguien como un vacío público. Y luego lo haremos por ejemplo, que podamos hacer de campos y también métodos, ¿no? Entonces este es un método aquí, y esto es, por supuesto que esto eran campos aquí. Entonces puedo hacer algo en ese método, que es sólo por el bien de la discusión. Sólo voy a decir justo en eso, en este momento. De acuerdo, Entonces ahora todo esto está listo. Ahora, ¿qué estamos haciendo con su clase de perro, verdad? ¿ Cómo estamos haciendo un nuevo objeto con él? Bueno, podemos hacer lo siguiente. Se podría decir perro, ¿verdad? Logo. Y ahora esto podría al principio podemos decir algo como esto, por ejemplo. Ahora esto podría, por primera vez ser un poco confuso. A lo mejor como esperar, pero quiero decir, pensé en ti como que deberías reconocer esto, ¿verdad? Esta es sólo una variable normal que hemos declarado aquí, ¿no? Es sólo un tipo de perro. Ahora, como dije, porque ahora estás empezando a usar clases personalizadas. Tan personalizados básicamente tipos de datos. Esto podría ser un poco raro, pero esto es lo mismo que si yo hiciera esto, ¿verdad? Realmente cuando pensamos en ello, es sólo una variable. Esta vez de tipo perro. Y otra forma en que realmente puedo inicializar esto es que puedo decir perro nuevo y se puede ver que en realidad genera esto automáticamente para nosotros. Y ahora he creado un nuevo perro. Entonces esta es la idea general de cómo se puede crear un nuevo objeto. Por lo que es necesario utilizar la nueva palabra clave, que en realidad hemos visto anteriormente algunas veces. Por ejemplo, con el escáner, teníamos que crear un nuevo escáner. Y ahora eso también tiene sentido. Scanner es sólo otro objeto u otra clase la cual podemos instanciar un nuevo objeto o una nueva instancia de una pulgada básicamente puede usar eso. Esa es una especie de idea. Ahora bien, la verdadera pregunta sin embargo es que está bien, Como tengo este perro aquí, pero como yo los campos, ¿qué son, cuáles son ahora? Bueno, sólo probémoslo. Escribir sistema hacia fuera, imprimir línea, Togo, nombre de punto por ejemplo. Vamos a ver, bueno, ¿cómo es que ese perro fue nombrado como perro? No, en realidad el nombre es nulo porque no hemos asignado ninguno de esos valores. Por lo tanto, todos son nulos porque aquí hemos usado, derecho, usado el predeterminado, constructor por defecto. Entonces, ¿qué significa eso? Bueno, el constructor es otra parte de una clase que es muy importante, y esto en realidad no está clasificado como miembro en este caso, esto es otra cosa. Entonces el constructor, como su nombre indica, es algo que construye un objeto a partir de esta plantilla, de esta clase, ¿verdad? Pero el constructor predeterminado, cada clase que creas tiene algo como esto. Por lo que se escribe así con un modificador de acceso. Y luego el nombre de la clase seguida inmediatamente después de paréntesis, que no tienen nada en ellos. Y luego básicamente casi como un método normal, solo sin un tipo de retorno o más bien el tipo de retorno es el mismo que el nombre. También puedes pensarlo así. Y este año es el constructor por defecto. Y esto es lo que hemos estado usando para este doc de aquí, ¿verdad? Entonces este es el constructor predeterminado ahora. Y el verdadero problema aquí es por supuesto que se puede ver que no pasa nada en él. Por lo que ninguna de esas cosas tiene algún valor asignado. Podemos, sin embargo, también crear nuestros propios constructores. En este momento podemos crear un constructor personalizado. Entonces por ejemplo, perro público, cadena, imagen, nombre de cadena, y edad, escribir algo como esto y luego podemos asignarlos. Por lo que esta imagen es igual a imagen, esto.nombre es igual a nombre, y esta edad de punto es igual a edad. Y verás, de repente, todo sigue funcionando totalmente bien. Ahora lo primero que podrías preguntar, ¿qué es esto, esta palabra clave? Bueno, esto se refiere al objeto que estamos creando tasa. Entonces, por ejemplo, se puede pensar en ello cuando llamamos a esos método Wolf. Si llamáramos a esto, tendríamos que llamar a esto a un objeto en particular. Entonces cada vez que uso esto dentro de este método, básicamente se está refiriendo a ese objeto en particular. Para que se lo piense así. De la misma manera con el constructor. Cuando uso esto, ese objeto en particular que acabamos de crear se está haciendo referencia porque el nombre del parámetro aquí tiene el mismo nombre que el campo. No necesariamente tienen que hacerlo, pero en este caso sí. Entonces queremos usar esta herramienta mucho especificar, hey, este es el campo y como parámetro. Y ahora lo que puedo hacer es en lugar de crear uno con el constructor predeterminado aquí, en realidad puedo hacer algo como, por ejemplo, perro y Benji, digamos que es igual a perro nuevo, ¿verdad? Y luego se puede ver si espero un segundo aquí, básicamente se puede echar un vistazo a esto. Ahí está. Entonces ahora realmente recibimos una sugerencia aquí, ya sea sin parámetros ni cadena, cadena imagen, nombre, cadena o edad int. Por lo que en realidad nos llega la sugerencia aquí. Digamos Benji dot PNG, ¿verdad? Digamos Benji por el nombre y luego siete por la edad. Y se puede ver que esto es casi lo mismo que solo una llamada al método normal, pero en este caso en realidad crea un nuevo objeto. Y entonces podemos hacer sistema fuera línea de impresión. Ahora nombre de punto Benji, y luego digamos Benji dot h. Y ahora esta salida es Benji y un siete como se puede ver. Entonces eso en realidad es realmente jodidamente genial. Hay una cosa más. Digamos que por el bien de la discusión aquí, cuando tenemos muchos campos, ¿no? A veces puede ser un poco tedioso ponerlos todos aquí en el constructor. Entonces lo que podemos hacer es también podemos hacer clic derecho en generar constructor. Entonces puedes simplemente seleccionar todos los campos que quieres inicializar, lo verías por el constructor y decimos, está bien, y esto genera exactamente lo mismo que hemos hecho anteriormente. Yo quería mencionar esto porque eso a veces puede ser muy útil, ¿no? Por lo que aquí hay muchas cosas que se pueden generar automáticamente. Por lo tanto, ten eso en cuenta también. Pero también hagamos otro oscuro. Entonces solo para ilustrar esto, así que el perro Gracie es igual a un perro nuevo, ¿verdad? Este es el punto grasiento PNG, Gracie, y creo que Gracie tenía cinco o cinco está bien. Ahora, en realidad emprendamos eso también. Entonces estoy seleccionando este Control C, Control V para pegarlo y luego cambiando la variable aquí y especie de Benji a Gracie. Y esto, por supuesto ahora también funciona y va a tener valores diferentes. Por lo que una vez más, esos son ambos perros incursionan, pero son un dos perros diferentes. Por lo que hay dos objetos diferentes. Y espero que la teoría de la última conferencia tipo de lleve muy fácilmente a este ejemplo ilustrativo aquí, una vez que realmente la estamos usando, esperemos que quede muy claro. Y también lo haremos es solo cambiaremos este lobo que realmente eres a este nombre de punto, solo waft. Entonces lo que podemos ver es también que cuando llamamos a este método, una vez más, a este método en particular, realidad tenemos que llamar a un objeto en particular, ¿verdad? Por lo que en realidad tenemos que salvar Benji dot, WAF o racy dot. Todos deberían tener sentido. Y ahora lo que va a pasar es que no va a ser lo mismo para cada uno de ellos, ¿verdad? Por lo que Benji se acaba de mover o Gracie sólo Swift. Por lo que esto una vez más se refiere al objeto real donde se está convocando a esto por así decirlo. Entonces esa es la idea. Y luego una última cosa que podría ser un poco diferente o un poco rara. Es como, bueno, espera un segundo. Edad de punto benji, ¿verdad? Está bien. ¿Puedo simplemente como asignar esto a algo? Sí, puedo. Bueno, eso es muy interesante, ¿verdad? De repente, ¿verdad? Benji se ha convertido en 10 años y podrías ser como, Espera, eso no es, eso no tiene sentido, ¿verdad? Son sólo siete ellos. Eso no está bien, Es que sí, esto ahora ha salvado. Y esto es algo que vamos a ver en la próxima conferencia cuando se trata de modificadores de acceso. Porque todo esto ser público básicamente significa que, bueno, se puede cambiar esto y acceder a él desde cualquier parte del código. Y eso a veces no es lo que queremos. A veces se quiere restringir el acceso a ciertos campos, variables, métodos, todo ese jazz básicamente. Y como dije, vamos a echar un vistazo a eso en la próxima conferencia. No obstante, esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo de lo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 26. (Java) Modificadores de acceso: Muy bien, bienvenidos de nuevo a la introducción de Java aquí para la mañana de Minecraft y en esta conferencia, vamos a estar buscando modificadores de acceso. Por lo que necesitarás todo el código de la última conferencia. No se preocupe, por supuesto, esto está disponible para usted como recurso. Entonces definitivamente échale un vistazo a eso y entonces, bueno, solo saltaremos justo dentro. Entonces la idea era que, bueno, teníamos todos nuestros campos aquí como público, ¿no? Entonces todo aquí fue público. Y estábamos pensando, bueno, de acuerdo, entonces, ¿cómo vamos a usar esto? O cómo podremos no hacer que algunos campos cambien o como modificables aquí fuera de esta clase. Bueno, vamos a pasar por todos los, bueno, digamos modificadores de acceso. Entonces hay público, Hay protegido, y hay privado. Entonces hay dos cosas más que también vamos a ver cuál es estática y la final, bueno, no es realmente modificadores de acceso, pero también son una especie de modificadores que puedes poner frente a campos y, o métodos. Entonces cuando se trata de hacer el nombre, por ejemplo, protegido aquí, esto en realidad no hará nada. Ahora la razón por la que no hace nada es que se puede llamar a un campo protegido o a un método protegido en el mismo paquete. Y debido a que el perro y la clase principal o en el mismo paquete, todavía podemos referirnos a este campo aquí en la palabra clave protegida también funciona o clases que se extienden a partir de esto. Entonces, básicamente, los ácidos que heredan de la clase de perro ahora también serían capaces de usar la variable de nombre. ¿ Y la variable de edad? Bueno, hagamos lo siguiente. Hagamos esto privado. Y de repente podemos ver problemas relacionados, ¿verdad? Todo se está volviendo loco. Todo el mundo está enloquecido porque de repente podemos acceder a esto porque una variable privada y solo se accede en la misma clase, lo que significa que no podemos acceder directamente a esto. No obstante, podemos hacer algo que va a ser un método, devuelve este valor. Entonces esto es lo que se llama guitarra. Y lo que podemos hacer es hacer clic derecho Generar y se puede ver que en realidad podemos generar getters y setters. Setters son más o menos lo mismo donde se establece la tasa variable. Entonces donde básicamente puedes establecer esto y un getter es solo mucho lo que se obtiene esto. Entonces puedo seleccionar la variable de edad y decir, vale, y ver que genera un método para nosotros entero público porque por supuesto ese es el tipo de retorno aquí, obtener la edad. Entonces esta es la forma en que dirías esto o el nombre de esto solía ser conseguir y luego solo el nombre de la variable o el campo. Y luego regresamos la edad en este método. Y entonces en lugar de llamarlo directamente, podemos decir tener edad a la edad, edad. Y ahora aquí está lo muy interesante. Por supuesto que esto no funciona. No podemos asignar algo a un método. Por lo tanto, esto no funciona, ¿verdad? Entonces podemos decir que no funciona. Por lo que no podemos asignar un nuevo valor a esta variable de edad. Entonces eso es realmente lo genial. Y entonces también podemos tener una palabra clave estática y una palabra clave final. De acuerdo, ¿qué es eso? Bueno, la estática va a ser muy interesante. Entonces cuando tenga un int estático público, y voy a llamar a esto el perro al multiplicador del oído humano. Multiplicador, que es igual a siete si no me equivoco aquí. Y esto es lo que podemos pensar así. ¿ Todo perro tiene que tener un campo específico para ellos, que es este multiplicador. Es decir, si somos realmente honestos, no realmente, correcto, cuando lo pensamos. El doctor aquí, el dr. multiplicador del año humano realmente es algo que funciona para cada perro. Exactamente. Por eso es estático. Es variable estática o un método estático y en realidad se llame solo clase y no requiere que se creen objetos específicos. Entonces lo que puedo hacer es, por ejemplo, en lugar de llamar a Benji que ÉL, puedo decir perro, punto, punto, humano, doctor, multiplicador del año humano. Ya puedes ver que llamo a esto a la clase real y no al objeto. Entonces eso es algo muy interesante. Y eso podría estar rompiendo un poco tu cerebro aquí, porque antes que nada, meterte en estática es un poco raro y parece muy contraintuitivo a primera vista tal vez, pero sin preocupaciones en absoluto. Cuando realmente estamos usando esto, Va a estar bien. Y lo esencial general es que, ya sabes, si algo estático suele ser algo que es lo mismo para todos los objetos, ¿verdad? Porque una vez más, tú Dr. multiplicador año humano no cambia de perro a perro. Ahora, ignoremos el hecho de que tal vez cambie si hay diferentes razas y cosas así. Vamos a ignorar eso. Es sólo un ejemplo aquí, claro, ¿verdad? Y entonces la pregunta también es, bueno, espera un segundo. Esto realmente no necesita cambiarlo porque ahora tenemos el mismo tema una vez más tasa por lo que los perros, tu multiplicador y de repente equivale a diez. Podemos simplemente cambiar esto y es como si eso no fuera realmente inteligente, ¿verdad? Eso no tiene por qué pasar. Bueno, por suerte también está la palabra clave final. Y eso lo hace así si en realidad presiono Control Z para volver atrás, se puede ver que no puede asignar un valor a una variable final. Porque cuando es una variable final, entonces el valor nunca puede cambiar después de haber sido asignado. Eso también es muy interesante. No obstante, existe, por supuesto, una diferencia distinta entre una privada y una tasa variable final. Porque una variable final podríamos en teoría cambiar, ¿verdad? Podríamos decir algo así como, por ejemplo, sólo hagamos un vacío público, público. Cumpleaños de vacío público, ¿verdad? Para un perro, donde decimos edad más plus. Pero eso aún funciona a pesar de que es un privado, podemos cambiar esta variable. Nunca podríamos cambiar esta variable una vez que sea definitiva. Entonces esa es la diferencia ahí, que ojalá sea comprensible en ese sentido, ¿verdad? Entonces, en realidad echemos otro vistazo a lo siguiente, ¿verdad? Entonces también podemos decir algo así como, Bueno, quiero decir, solo agreguemos una, solo agreguemos una cosa más, algo así como un int público. Entonces GetAge en años humanos, ¿verdad? Donde podemos usar el multiplicador aquí que vamos a devolver la variable de edad tiempos el doctor aquí, doctor humano, multiplicador del año humano ahí mismo. Ahora solo podemos llamar a esto por lo general se puede por supuesto también decir perro dot esto. No tenemos que hacer eso porque estamos dentro de la clase de perros, así que podemos simplemente llamarlo sin eso. Esa es mucha preferencia personal, solo si quieres o no hacer eso. Pero lo que podemos decir entonces, por ejemplo, es entonces podemos decir Benji dot envejecer en años humanos, y eso será entonces, ¿qué es eso? 49? Sí, 49. Ahí vas. Tan fácil bastante. Esa es una especie de lo fundamental general. Contamos con público, protegido y privado para los modificadores de acceso. Y luego también hay estática y final. Y definitivamente lo estaremos, nos vamos a encontrar a todos aquellos en futuras conferencias, sobre todo cuando nos metamos en el modelado de microondas, eso va a ser muy relevante aquí, sobre todo algo así como la palabra clave final y la palabra clave estática, esas se van a utilizar mucho. Una vez más, si son un poco poco poco claros, eso está absolutamente bien. No se preocupe en absoluto. Una vez que empieces a trabajar con ellos, se va a poner mucho más claro. Y una vez más, puedo mucho solo aconsejarte que pruebes un montón de cosas. Basta con encender la inteligencia. Haz un montón de clases, y sólo prueba un montón de cosas. Hacer algunas clases, hacer algunos campos, montón entero de cosas. No se puede romper nada. En realidad no. Por lo que realmente es cuestión de estar abierto a experimentar básicamente. Entonces eso es mucho un consejo que te puedo dar. Pero de lo contrario, esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 27. (Java) Inherencia y Polymorphism: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a estar hablando de herencia y polimorfismo. Bueno, en primer lugar, un polimorfismo y herencia para palabras muy grandes, ¿no? Pero en general, son conceptos bastante sencillos, sobre todo polimorfismo ¿no es esa locura de un concepto en realidad? Ahora, otro descargo de responsabilidad que quiero decir justo fuera de la puerta es que porque este es un ejemplo, el tipo real de concepto podría no ser un 100 por ciento transparente, lo cual está absolutamente bien. Por cierto, esto es algo que una vez más, tiene que construirse con sólo probar un montón de cosas, ¿verdad? Por lo general tengo alrededor de lo mismo Aquí. Yo lo olvido. Ya veo. Yo recuerdo. Yo sí. Entiendo. Por lo que siempre tiene que haber algo hacer que vaya de la mano. Cualquiera que sea el caso. Digamos, por el bien del argumento de que alguien diga, Sabes qué, realmente quiero una clase de gato también porque no soy una persona de perro, eso está bien. Eso está totalmente bien. Bueno, vamos a añadir una clase de gato aquí también. Entonces una nueva clase, gato. Y ahí tienes. Ahora, lo que rápidamente te darás cuenta es que, bueno, como seamos honestos, el gato renal también debe tener una foto y un nombre y una edad. Y podrías ser como, bueno, quiero decir, vamos a copiar esos campos. Y entonces podrías ser como, bueno, yo también necesito envejecer que el getter y luego el lobo, tal vez el bebé y Mimi Chao y llegas a un punto en el que estás copiando sobre mucho código y por lo general tabbing sobre mucho código es una señal de que puedes optimizar algo. Ahora, la optimización prematura es el camino al infierno. Entiendo eso. No obstante, a veces esto sólo mucho sentido donde tienes como esto copiado, esto copiado, esto copiado más, y es como, vamos a hacer un método o una clase fuera de él o algo más. Y que algo más en realidad va a ser una superclase para el gato y un perro siendo la clase animal. Entonces vamos a hacer una nueva clase llamada animal, y eso ahora va a almacenar esto. Entonces voy a cortar eso con Control X y Control V para pegar esto aquí mismo. Y ahora de repente, lo que podemos hacer es extender la clase de perros por la clase Animal, lo que significa que el, vamos a hacerlo bien? Entonces vamos a heredar todo del animal aquí. Vamos a decir extiende animal, y esto ahora es herencia. Entonces la clase de perros ahora es la subclase del animal, y el animal ahora es la superclase del perro, lo que significa que todo aquí ha sido heredado. Ahora en realidad puedo eliminar literalmente esto. El único que se va a poner rojo va a ser la edad, porque en realidad tengo que hacer esto protegido aquí para que se pueda acceder en la subclase. Pero lo hemos visto en la última conferencia donde dije que cuando se trata de una variable protegida, y entonces realmente se puede acceder a ella desde la subclase también. Entonces esa es una especie de idea. De hecho, nos deshagamos de algunos de estos comentarios aquí también. También podemos deshacernos del constructor predeterminado que también ya no es necesario. Entonces ahora tenemos esta clase de animales, ¿verdad? Y eso es bastante guay. Ahora se puede ver que b-a, esta clase de Perro, todo aquí se está poniendo. No obstante, queremos asegurarnos de que todos, que cada clase que en realidad hereda de la clase Animal también funcione. Entonces solo vamos a hacer un nuevo constructor también. Entonces haga clic derecho, genere un instructor, asegurándose de que todo aquí esté seleccionado y luego presione Ok. Y luego de inmediato nos van a saludar con una flecha aquí mismo. Porque si pasamos el cursor sobre esto, se puede ver que no hay ningún constructor por defecto disponible en un animal zoológico net com. ¿ Qué significa eso? Bueno, cuando realmente agrega un constructor específico aquí, ese no es el constructor predeterminado. El constructor predeterminado ya no funciona. Entonces una vez que tienes un constructor que es, no es el constructor predeterminado, tienes que agregarlo como manualmente otra vez. Entonces podría, por ejemplo, decir animal público, ¿verdad, sin nada en él, no? Entonces algo así. No obstante, claro que eso no. Ahora, ya sabes, que una vez más, en realidad no queremos eso. Entonces esto se va a eliminar y luego el constructor predeterminado ya no funciona. Y ahora qué tenemos que hacer aquí? Bueno, lo que podemos hacer es que podemos llamar al superhéroe, y esto básicamente llama al constructor. Entonces en realidad podemos poner en PI como lo puedes ver en realidad ya por solo decir, tomemos todos los parámetros aquí y los pongamos en año. Y ahora este super ahora está llamando al constructor Animal aquí mismo. Entonces esto es realmente perfecto en este caso. Entonces algo más, tal vez por ejemplo, el, tanto el conseguir edad como el cumpleaños también podrían estar en la clase animal, por ejemplo. Eso también funcionaría totalmente bien. Y el resto aquí en realidad está totalmente bien. Voy a ajustarme, hacer esto un poco diferente. Por lo que usualmente quiero a los constructores en lo más alto de la clase, ¿verdad? Entonces primero vienen los campos y luego los constructores y luego todos los métodos y cosas así. A pesar de que el orden por supuesto es algo que depende completamente de ti, pero esto suele ser la convención 0. Ahora qué pasaría si ahora dijera, bueno, el gato ahora también extiende la clase animal. Vamos, vamos a obtener un error aquí, que es que no hay ningún constructor predeterminado disponible en animal. Y luego tenemos esta solución fueron posibles, que es el constructor de crear coincidencia super, que es algo que vamos a ver muchas veces. Porque si haces clic en esto, simplemente obtendrás un nuevo constructor aquí con todos los parámetros necesarios que necesitas para llamar al constructor de tu superclase. Y eso es más o menos. Eso es realmente genial. Y ahora en realidad podemos crear una nueva clase. Se puede ver todo aquí funciona. Entonces podemos decir que los bigotes de gato son gato nuevo, ¿verdad? Entonces gato nuevo aquí. Y esto es, por ejemplo, entonces bigotes punto PNG. Y entonces el nombre va a ser bigotes, ¿verdad? Y entonces tal vez, tal vez había como 12 años de edad o algo así. Y entonces simplemente podemos llamar, por ejemplo, bigotes punto y se puede ver puedo llamar a todo envejecer. Ahora en realidad tengo acceso a la variable de edad aquí. Esto es simplemente el caso porque estamos en el mismo paquete. Esto por lo general no debe ser el caso. Solo quería mencionar esto porque generalmente cuando realmente estás extendiendo una clase en particular es muy improbable que estés en el mismo paquete. Por lo que sólo quería mencionar esto. Y eso es una, bueno, yo no diría una limitación, sólo es una realidad básicamente. Pero ahora la verdadera pregunta, comunicar, pero ahora ¿qué tiene de interesante tener esto? Bueno, pensemos en esto, ¿verdad? Entonces tenemos aquí el método lobo, ¿verdad? Simplemente eliminemos eso o en realidad seamos tasa aún más inteligente. Vamos a copiar esto o cortarlo, ¿verdad? Y luego agregarle esto al animal. Ahora primero que nada, vas a decir, espera un segundo, no todos los animales, Wolf tiene razón. Sí, eso es bastante justo. Entonces, solo llamemos a esto hace sonido. Y entonces podemos decir este nombre, sólo, digamos que acaba de hacer un sonido, pero no podemos hacer esto. Y otra cosa realmente interesante es que esto es definir la clase animal. No obstante, todavía puedo decir algo así como bigotes, sonido adámico, ¿verdad? Entonces porque los bigotes son un gato y un gato es un animal, puedo llamar a todos los métodos públicos aquí todavía. Y si llamo a esto, se puede ver que los bigotes acaban de hacer un sonido. Entonces eso es bastante guay. Pero ahora vamos a sobrecargar esto porque mientras cada animal hace un sonido, un gato hace un sonido diferente al de un perro, ¿verdad? Entonces lo que podemos hacer es realmente podemos anular la implementación de este método en las subclases. Entonces eso es bastante frecuente, genial. Pero lo que podemos hacer es o bien empezar a escribir el nombre real del método como se puede ver, o podemos escribir una anulación, ¿verdad? Podemos empezar a escribir eso. Y luego se pueden ver todos los métodos posibles que podríamos anular. Vamos a por supuesto, elegir el método mix sound aquí y se le agregará esta anotación. Esto no es estrictamente necesario, sin embargo, es muy valioso para ti si tienes esto y definitivamente te recomiendo guardarlo, porque si pasas por las clases reales, puedes ver muy claramente, ok, Entonces esto fue anulado de una de sus superclases. Entonces eso es muy importante. Entonces en realidad me voy a llevar esta. Entonces en realidad voy a tomar esto y acabo de modificar un poquito, ¿verdad? Entonces voy a decir esto, Sólo me fuera. Digamos que voy a hacer lo mismo. Copia esto al perro aquí. Y yo voy a decir este nombre, sólo acuesta la lentitud, aquí tenemos algo diferente. Y lo que luego verás si en realidad llamo, por ejemplo Benji dot hacer sonido. Y entonces también voy a Gracie, no hagas sonido. ¿ Qué pasará ahora? Bueno, bastante interesante. Miau, guau, guau. Entonces, como puede ver, los métodos anulados ahora están siendo llamados en lugar del uno por la superclase real. Entonces eso es realmente frecuente, genial. Y ahora esta es una especie de idea de herencia, ¿no? Podemos heredar tanto métodos como campos Europa en esto solo lo hace así en primer lugar, todo está un poco más bonito separado, y luego también no tenemos código duplicado. Ahora la verdadera pregunta es, ¿qué es el polimorfismo? polimorfismo es una palabra grande para un concepto muy, muy fácil de entender. En realidad, en el concepto muy fácil de entender es que un perro es simultáneamente un perro y un animal debe tener sentido, ¿verdad? Entonces tienes una clase de perro es vez un perro o un objeto de tipo? Perro es tanto el perro como el animal son suficientes. Está bien. ¿Qué significa eso? Bueno, puedo guardar esto en un animal, ¿verdad? Para que pueda salvar animal, animal es igual a un perro nuevo. Vamos a salvar a Jenny dot PNG. Jenny, tal vez Guinea sea como 15, todo oscuro, pero está bien. Y ahora qué pasaría si hago esto en un lunar hacer sonido. ¿ Qué va a pasar ahora? Bueno, quiero decir que es un animal. Entonces obviamente debería decir que Jenny acaba de hacer un sonido, ¿verdad? Porque eso es lo más lógico. Espera un segundo en el fondo, es un perro. Exactamente. Después se acaba de mudar. Porque a pesar de que guardamos esto en un animal, polimorfismo lo hace para que el objeto perro pueda tomar múltiples formas, o cualquier objeto realmente puede tomar múltiples formas. Eso es lo que básicamente significa polimorfismo. Múltiples foros en una traducción muy suelta, digamos. Y lo grandioso que también puedo hacer es que puedo hacer una lista de animales, por ejemplo, rabia, animales frescos. Y puedo hacer de esto un nuevo ArrayList sólo por el bien del argumento. Importemos esto. Y entonces sólo puedo decir animales, no agregar. Y no sólo tengo que añadir un animal porque por supuesto Benji es un perro, sino que el perro también es un animal. Y luego también puedo agregar Gracie, y luego también puedo agregar bigotes. Entonces como puedes ver, a pesar todos se salvan como animales, ¿no? Si quiero recuperar esos, animales, punto conseguir uno, por ejemplo, hacer sonido. Entonces les hace su trabajo, ¿verdad? Y el método get aquí te devuelve un animal. Pero una vez más, hemos visto que llamar a un método sobre esto realmente causó el, digamos, el método más específico que puede. Entonces a pesar de que esto se está salvando como animal, Gracie se está salvando como animal aquí, el sonido del micrófono lo va a hacer para que Gracie se mueva. Entonces eso es bastante guay. Una vez más, si no ves claramente la aplicación para esto, eso está absolutamente bien. Esta es una introducción justa muy abstracta para esto, por supuesto. No obstante, esto sería, por el momento, por esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 28. (Java) Interfaces y clases Abstract: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia vamos a estar haciendo una mirada tentativa a las interfaces y clases abstractas. Entonces en realidad vamos a empezar primero con la clase abstracta porque ese es un ejemplo muy ilustrativo en realidad. Entonces en lo que podemos pensar es en lo siguiente. ¿ Qué es un perro? Bueno, quiero decir, ya has visto ¿ has visto a un perro antes? Sí, claro. O sea, ya sea como una foto o en algún lugar del mundo podrías haber visto un perro. ¿ Has visto antes a un animal? Ahora se podría decir que es así de bueno, quiero decir, he visto antes a un perro pero no, no. ¿ Has visto antes a un animal? Y te vas a reunir y fusionar, ¿verdad? Porque es como, lo que es un animal en este momento, lo que podemos hacer es decir animal, digamos que un es igual a un animal nuevo, ¿verdad? Con, por ejemplo, al igual que x, p y g x y eso como 10 años o algo así. Y entonces podrías ser como, ¿cómo es un animal? ¿ Qué representa eso realmente tasa en animal es un concepto muy, muy abstracto. Y clases abstractas, ¿verdad? Ve ahí la congruencia, ¿verdad? Entonces realmente no deberíamos poder crear nuevos objetos de la clase Animal porque ¿cómo es realmente un animal? Las cosas se pueden clasificar como animal, pero el animal objeto no existe, ¿verdad? Entonces lo que vamos a hacer es hacer una clase pública abstracta de esto. Y de inmediato vas a ver que tenemos un problema relacionado, que por supuesto es exactamente esto de aquí, porque no podemos crear un nuevo animal si es abstracto, puede ver animal es abstracto, no se puede instanciar, lo que significa que no podemos crear objetos a partir de en clase abstracta en el gato y el perro. Literalmente nada ha cambiado porque por supuesto, el animal sigue en todo aquí, así funciona. Ahora lo que también podemos hacer y eso es realmente genial para una clase abstracta es que podemos hacer que ciertos métodos sean abstractos. Por ejemplo, el método de sonido del micrófono justo aquí. Entonces podemos simplemente básicamente solo, eliminemos esto. Y entonces lo que va a pasar es que podamos decir público, abstracto, vacío, hacer sonido, ¿verdad? Y ahora mira esto, acabamos de terminar. Por lo que aún tenemos que tener un año de firma de método normal. No obstante, la implementación real se deja en manos de las subclases. Y si no anular esto, lo que se puede ver es que también encontraría que perro de clase debe haber declarado abstracto. Entonces o esto tiene que ser también una clase abstracta o tenemos que implementar los métodos abstractos de animal que solo pueden pasar por encima de esto en los métodos de implementación y luego esto se agregará también. Entonces solo voy a volver con Control Z aquí y entonces todo simplemente funciona bien. Entonces esa es una especie de la idea de una clase abstracta. Y una interfaz es amine, algo que también está muy relacionado con esto. Entonces lo que solo vamos a hacer es que sólo vamos a agregar una interfaz, así que aquí una nueva clase, y luego podemos seleccionar interfaz. Vamos a llamar a esto la interfaz de pétalos y la interfaz IP comestible. Estás en interfaces. También solo definimos un método firmas. Tan vacío, mascota Por ejemplo, tasas de símbolo como este, y eso es todo. Entonces no hay modificador de acceso, solo esto. Y si esta interfaz se implementa ahora por ejemplo, en el gato derecho implementa, tenemos el derecho, entonces yo palatoso que lo que vas a ver es un error muy similar al anterior. Implementar los métodos, el método y el ego. Y ahora tengo que tener algún tipo de implementación en esta clase de gato. ¿ Por qué tenemos interfaces y clases, ya sabes, no podría simplemente hacer otra clase? Animal comestible y cosas así? Sí, claro, eso también funciona. Pero la limitación aquí es que siempre sólo se puede extender desde una clase. No se puede, sin embargo, implementar múltiples interfaces diferentes. Entonces eso es realmente lo interesante aquí. Y entonces también la interfaz básicamente es lo que sugiere el nombre. Es un te permite interrelacionarte con algo de una manera particular. Entonces cuando algo implementa una interfaz, especie de tener un, quiero decir, se podría pensar en ello como un contrato no escrito que todo dentro de esta interfaz es definitivamente tiene un cierto aplicación. Entonces, por ejemplo, podría decir algo como, ya sabes, sólo este nombre era mascota, algo así, ¿verdad? Y entonces puedo simplemente copiar esto sólo por el bien de la discusión. Yo también voy a implementa esto en el perro de aquí. Entonces pedaleé y sólo voy a añadir esto y luego vamos a decir algo como fue rayado y rayado detrás de las orejas, por ejemplo, ¿verdad? Y ahora lo que puedo hacer es en lugar de, por ejemplo, hacer una lista de animales, ahora podría, por ejemplo, también hacer una lista de iptable, ¿verdad? Entonces ahora tenemos estas mascotas calificar nueva ArrayList de eso, y podemos sumar esas también, ¿verdad? Mascotas punto agregar. Y entonces solo digamos Benji, y luego digamos bigotes, ¿verdad? Y ahora podemos hacer un zoológico de mascotas si quisiéramos. Eso es realmente genial. Y no importa. Una vez más, con el polimorfismo, no importa si se guardan como pétalos yo. Una vez más, su real implementación se está llamando Cuando íbamos a llamar, por ejemplo, Pets dot get one. Entonces lo que pasaría es que por supuesto que la implementación real se está llamando bigotes fue parcheado en lugar de bigotes se rascó detrás de las orejas. Esa es una especie de idea general aquí. Una vez más, interfaces clases abstractas. Algo así en la misma línea que la herencia y el polimorfismo en general. Donde podría ser un poco raro porque en estos ejemplos, a veces es difícil atravesar realmente la idea. Una vez más, probar un montón de cosas realmente puede ayudar o seguir las asignaciones, también un esfuerzo que vale la pena. Pero por lo demás, por el momento, esto va a ser para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 29. ASSIGNMENT 3: juego de Trivia con clases: Muy bien, Bienvenido a la tercera asignación aquí para la introducción de Java. Y esta es en realidad una asignación bastante sencilla. Como puedes ver, no es tanto tiempo. Una vez más, el tiempo que lo lleve y que esto pueda ser redondo alrededor una hora más o menos como suele ser una estimación muy conservadora también. Entonces hay un poco de espacio de meneo que son podrías ser capaz de hacerlo en 30 minutos, ¿verdad? No se preocupe en absoluto. Pero por el momento, sólo pasemos por aquí. Así trivia juego con clases y objetos. Entonces, una vez más, queríamos el mismo juego de trivia que hemos estado haciendo en las dos últimas asignaciones también. Básicamente quiero que modifiques los juegos de trivia que usa clases también. Ahora esto puede ser de cualquier manera, forma, o forma que pudiera ser el caso. Piensa como cómo podrías hacer algunas clases personalizadas que, ya sabes guarda las respuestas y las preguntas pueden estar juntas. A lo mejor puedes usar una lista, algo así. De verdad depende de ti cómo quieres estructurar esto. Pero solo piensa en cómo puedes hacer esta manera más fácil con clases y objetos, y luego solo prueba eso. Por supuesto, una vez más, la solución estará disponible para ti una vez que hayas terminado, sugiero encarecidamente tomarte una grieta y realmente probar esto. Y supongo que te veré en la solución. 30. Solución 3: juego de Trivia con clases: Muy bien, Bienvenido a la solución para la tercera asignación aquí mismo. Y bueno, quiero decir, supongo que sólo echemos un vistazo. Se puede ver que en realidad sólo tengo dos clases, una clase de juego trivia y una clase trivia. Y la clase de juego trivia básicamente contiene toda la lógica y el bucle de juego. Y la clase trivia contiene las preguntas y las respuestas. Entonces echemos un vistazo a la clase trivial. En primer lugar, permítanme acercar un poco aquí para que podamos ver que tengo una pregunta de cadena, una respuesta de cadena, y solo un constructor que pasa en ambas variables de encogimiento aquí. Y luego tengo un montón de métodos aquí, derecha es la respuesta correcta básicamente saca un booleano y también se asegura que todo esté en minúsculas. Por lo que la entrada como realmente se pone a minúsculas, sin embargo, que básicamente se puede poner en mayúsculas y todavía cuenta como la respuesta correcta. Aquí tenemos la pregunta de impresión, la respuesta de impresión. También tenemos respuesta validada que luego trae una, Hey, esta fue una respuesta correcta, o esta fue una respuesta incorrecta también. Y esta es más o menos la clase trivia. Una vez más, si esto no se parece exactamente al tuyo, eso está absolutamente bien. Este es sólo un ejemplo de cómo hacerlo. Y luego lo mismo con la tasa de juego trivia. Tenemos una lista de trivialidades aquí. Entonces esas son todas las preguntas básicamente que se están poblando aquí mismo. Entonces esto se llama en realidad, lo siento, en el método del juego de inicio, ¿no? Entonces esto es lo primero que sucede, lista de trivialidades poblada. Y este es el donuts justo aquí donde sólo tenemos un nuevo ArrayList y luego agregamos un montón de esos triviales ahí mismo a esta lista real aquí. Y esto es realmente genial porque esto ahora también se podría hacer a través de una lectura en, desde un archivo o, ya sabes, descargando cosas de internet. Por lo que este método aquí podría muy fácilmente ser reemplazado por otra cosa. Y este es realmente el poder cuando haces esto por separado en estas clases, justo antes de que tuviéramos esas variables de cadena individuales, no había manera de que pudiéramos cambiar esto muy fácilmente. En este caso, podríamos cambiar esta base de datos de madera por eso. Podrías poner, como dije, algo en internet. Podrías hacer casi cualquier cosa, leerlo de un archivo. Y eso es realmente lo que quieres hacer con las clases. Se quiere hacer este tipo de genérico en el sentido de que se puede agregar y restar cosas muy fácilmente de ella. Por lo general agrega, por supuesto, ¿verdad? Y luego hay un montón de otras cosas aquí también, ¿verdad? Entonces el bucle de juego es lo principal donde tenemos este infinito while loop justo aquí, justo donde solo pasamos por cada una de las preguntas, validando las respuestas consiguiendo la entrada del usuario y luego la puntuación si la respuesta es realmente correcta. Y luego solo imprimiremos el marcador después de cada una de las preguntas. Entonces al final aquí preguntamos, Hey, ¿deberíamos abortar el juego? Y si el usuario dice que sí, entonces simplemente salimos de ella e imprimimos el marcador final al final del juego también. Eso es bastante guay. Todas las cosas consideradas, esto es casi todo lo que realmente necesitas. Una vez más, si tu respuesta difiere, no te preocupe en absoluto. Pero ojalá tengas esta respuesta por la que puedas caminar y una especie de tratar de entender, bien, bueno, ¿cómo haría esto? ¿ Por qué se hizo esto? Ya sabes, métodos, vale, Eso son clases muy interesantes. Entonces esa es una especie de idea aquí. Pero para esta solución, esta sería. Y espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 31. ASSIGNMENT 4: sistema de gestión Bank: Muy bien, Bienvenido a la cuarta asignación aquí para la introducción de Java. Y en esta asignación, se supone que debes crear un sistema de gestión bancaria. Ahora en general, esto podría ante todo sonar muy complicado, pero sin preocupaciones. Te paso a través de la idea que tuve aquí. Por lo que el sistema de gestión bancaria debería tener algo así como estos componentes, una persona, un banco y una cuenta corriente. Y luego para abrir una cuenta corriente, deberías ir vía un banco, justo en ella podría requerir un cierto depósito inicial aquí. Y los componentes o clases individuales que tienes derechos que una persona podría tener un nombre, medio y apellido, y edad. A lo mejor es algo así como un número de seguridad social no necesariamente se requiere, pero ya sabes, algo así. Un banco podría tener una lista de clientes. Sus cuentas de cheques pueden ser una montura máxima de sobrecalentamiento, algo así. Y entonces una cuenta corriente podría tener el valor actual y los métodos para sacar y depositar dinero en general. Esa es una especie de idea general. Hay un montón de maneras en las que puedes acercarte a esto. Entonces me interesa mucho ver lo que se te ocurre. Y por supuesto, la solución volverá a estar disponible para usted. Creo que esto es probablemente un poco más difícil. Me imagino que algo así como 1.5 horas es probablemente mejor dejar a un lado para esto para que realmente puedas cavar y tratar de entender y hacer algo que sea bastante guay. Así que buena suerte. 32. SOLUCIÓN 4: sistema de gestión Bank: Muy bien, Bienvenido a la solución para la cuarta asignación. Y como pueden ver, tenemos tres clases diferentes, más o menos como dije en la asignación real. Y bueno, sólo vamos a pasar. Entonces tenemos una clase de persona que es bastante simple, lee primero, segundo y apellido, y una edad o privada esta vez, y básicamente accesible vía ghettos aquí. Y entonces también tenemos aquí un booleano, que básicamente sólo devuelve si una persona es mayor o no de lo que aquí se ha suministrado, cual es muy interesante. Y la cuenta aquí también es interesante, ¿verdad? Tenemos un balanceado, tenemos ID de cuenta. En este punto en realidad no se utiliza realmente todo tanto, pero es muy posible que se pueda hacer algo con esto también y luego un titular de cuenta también. Y eso se utiliza en el banco para básicamente obtener aquí una cuenta específica. Para que podamos ver alguna vez tener una lista de cuentas, ¿verdad? Y la forma en que podemos conseguir una cuenta es conseguir cuenta por persona. Pero esa es la forma en que yo personalmente ahora mismo para conseguir las cuentas aquí. Y el resto es más o menos la cuenta bancaria, ¿ no? Entonces, básicamente, si puedes abrir esta cuenta, ¿es ese el caso? Y básicamente valida si alguien tiene o no 16 años o más, y también si el depósito mínimo ha sido realmente golpeado. En realidad hay un poco de bicho aquí dentro, ¿verdad? En este método, eso es muy interesante. Puedes intentar encontrarlo tú mismo. Tan solo un poquito de un ejercicio interesante también. Pero por lo demás, ya sabes, en general, esto es una vez más sólo un ejemplo de esto. Podemos sólo echar un vistazo a esto, ¿verdad? Entonces lo que vamos a tener es que aquí tengo algún código, así que nano tech no tiene edad suficiente para abrir una cuenta bancaria y luego diez, digamos euros o dólares no es suficiente. Necesitamos al menos un 150 y entonces realmente obtenemos el saldo de la cuenta de María, que es 2000. Entonces tratar de retirar 3000 no funciona porque el monto del retiro es en realidad 500 o el sobreempate básicamente. Y por eso esto no funciona. Entonces esa es una especie de idea general aquí. Una vez más, Hay muchas maneras en que puedes hacer esto si se ve completamente diferente a la tuya, pero sigues funcionando, eso está totalmente bien. Independientemente de eso, espero que este fuera un ejercicio útil o una tarea útil dos, terminas y te veré en la próxima conferencia. Entonces, sí. 33. (Java) clases de anonimos (Java): Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a estar mirando a la clase anónima. Entonces, ¿qué es una clase anónima? Bueno, cuando heredamos de algo, entonces pensamos de nuevo la clase de perros, ¿verdad? Eso tenía nombre, derecho, y heredado de la clase animal. Y ahora lo que podemos hacer es por ejemplo, podemos hacer una persona aquí, ¿no? Por lo que todavía tengo la clase de persona de la última asignación. Entonces, por ejemplo, el personal es igual a una persona nueva, pero es tan nano ataque y ocho años, digamos sólo por el bien de la discusión aquí. Ahora bien, todo esto está bien. Si ahora quisiera una clase que amplíe esta clase de persona, que es un gerente. Ahora lo único que vamos a hacer es en realidad sólo hacerlo para que cuando tengas el nombre completo, te imprima el nombre como Gerente. De acuerdo, Entonces, ¿cómo haríamos esto? Haremos una nueva clase, ¿verdad? Y todo eso. Bueno, digamos que en realidad solo necesitamos este. Entonces lo que podemos hacer es hacer una clase anónima. Entonces podemos decir que el gerente de persona es igual a una persona nueva. Pero digamos solo John Smith, ¿verdad? Digamos 42. Y luego terminamos con esto. Ahora qué podríamos hacer en lugar de terminar esto con un punto y coma, después de que terminemos, en realidad vamos a hacer un corchete sagrado y terminar el corchete rizado final con un punto y coma. Se puede ver que aquí no hay flechas. Porque dentro de aquí ahora hemos creado esta clase anónima porque es una clase que extiende la clase de persona. No obstante, no tiene nombre, por lo tanto es anónimo. Y cuando podemos hacer es, se puede ver si empiezo a escribir una anulación aquí, realidad puedo anular todo lo que está dentro de la clase de persona que está sobreescribible. Prefiero ejemplo, puedo decir fullname y luego puedo decir algo como Manager, y luego además obtener el nombre completo. Entonces esto es ahora lo que hace esta clase anónima en particular. Y entonces puedo, si sistema fuera la línea de impresión, por ejemplo, nano dot obtener nombre completo. Y entonces también puedo hacer lo mismo para el manager dot getName. Ya verás que el nano sólo va a ser nano ataque. Y luego va a ser el manager John Smith porque hemos agregado este manager aquí mismo. Este ejemplo podría no ser el más ilustrativo. Me resulta muy difícil mostrarte realmente un ejemplo muy ilustrativo de clases anónimas. Normalmente es lo más lejos en que vas, ya sabes, con interfaces y herencia y cosas así, se vuelve muy difícil si no estás en un entorno muy, en un entorno real donde realmente tienes algunos clases y alguna funcionalidad. Pero esto definitivamente es algo que veremos en la sección de modelado del curso también. Porque aquí hay un montón de cosas que van a ser necesarias para eso. Pero sea cual sea el caso, al menos lo has visto aunque no vamos a entrar en demasiados detalles aquí, espero que hayas encontrado esto útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 34. (Java) Enums y Enums avanzado: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta breve conferencia, vamos a estar echando un vistazo a las enumeraciones y también enumeraciones avanzadas, en general, enumeraciones, puedes pensar en esas como ciertos tipos de datos que tienen valores predefinidos, y tú sólo puede asignar esos valores a esa variable real. Entonces vamos a crear, por ejemplo, una enumeración de dificultad, ¿verdad? Entonces podemos convertirla en una clase y luego simplemente cambiar esto a enumeración aquí mismo. Y entonces la forma en que una enumeración básicamente está estructurada es tiene los valores reales que puede tomarla justo dentro de ella. Entonces por ejemplo, fácil, medio, y duro, por ejemplo, como podrían ser las dificultades de un juego. Y luego para crear una nueva variable para esto, es más o menos una vez más dificultad. Entonces llamemos a esto la dificultad del juego, ¿no? Bajo así. Y entonces esto es igual a 2. Asigna esto, puedes ver punto de dificultad, y luego solo tenemos estos tres valores como opciones posibles. Entonces digamos solo dificultad media aquí. Y podemos entonces normalmente simplemente reasignar este derecho? Nuevamente, dificultad es igual a 2. Dificultad, dificultad difícil por ejemplo. Y luego dos. Por ejemplo, también podemos hacer declaraciones IF de un juego retro, dificultad igual, igual. Ahora eso equivale a algo, por ejemplo, dificultad fácil. Y luego hacemos algo aquí. Entonces eso es casi todo lo que realmente es para enums normales. Y hay algo interesante para lo que yo llamo enumeraciones avanzadas. Entonces para eso, vamos a crear una nueva clase Java. De nuevo, ese es el nivel de herramientas, y eso también se va a renombrar a una enumeración aquí, en realidad voy a copiar algunas cosas del otro monitor aquí mismo. Por lo que esto en realidad también está disponible por supuesto para ti, un repositorio de GitHub o ajustar también. Se puede ver que si bien esto es una enumeración, aquí tiene un constructor y tenemos algunos campos tasa. Eso es muy extraño. Sí. Entonces la idea es que se puedan tener enums definidos. Entonces por supuesto esta es una enumeración de diamantes. Y sólo por ejemplos generales aquí. Y lo genial es que esos funcionan exactamente igual que los otros. Entonces puedo decir que un nivel de dos niveles es igual a, digamos, por ejemplo, el diamante de la punta de herramientas, ¿verdad? Y lo que entonces puedo hacer muy fácilmente es que puedo decir sistema fuera nivel de línea de impresión, por ejemplo, git tag multiplicador, que luego me consigue el multiplicador de ataque de lo que sea que se haya asignado el nivel. Entonces básicamente puedo tener un, no quiero llamarlo lista necesariamente porque una lista es un poco diferente, pero puedes tener valores predefinidos en esta enumeración aquí, en esta enumeración. Entonces esa es la enumeración y luego puedes acceder a esos también. Entonces eso es realmente va a terminar, puede ser realmente útil. Y definitivamente veremos este ejemplo en cuando estemos haciendo herramientas, herramientas personalizadas o Minecraft. Eso definitivamente es algo que vamos a ver. Pero por lo demás eso es más o menos para las enumeraciones. Yo solo quería mostrarte esto y mencionar es que al menos has visto esto antes. De lo contrario esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil en neuronas de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 35. (Java) Excepciones (Java): Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de microondas. Y en esta conferencia, vamos a estar echando un vistazo las excepciones y a la declaración try and catch. Entonces en general, este no es el más interesante, o qué dirías, el tema más emocionante? No obstante, lo es, puede ser bastante importante . No obstante. Si bien excepciones hemos visto algunas de esas. Por ejemplo, el algo así como la IndexOutOfBoundsException y la NullPointerException. Entonces hubo algunas excepciones que hemos visto antes que fueron arrojadas por el código real. Y lo que vamos a hacer es que ahora vamos a lanzar nuestra propia excepción personalizada. Entonces en nuestro paquete vamos a crear una nueva clase, que es la excepción de prueba, porque simplemente realmente nos requiere tener una excepción de prueba aquí. Solo vamos a extender la clase de excepción aquí mismo. Y en realidad voy a copiar sobre los dos constructores que vamos a necesitar aquí para esto. Entonces esto es por supuesto, todo disponible para ti ya sea en el repositorio de GitHub o energizado también. Vamos a tener es vamos a tener un escáner donde podemos simplemente escanear rápidamente en algún sistema de cosas aquí mismo. Y entonces sólo vamos a guardar lo siguiente. Entonces vamos a decir siguiente int, y simplemente vamos a guardar básicamente algo en un entero aquí. Y sólo por el bien del argumento, lo que vamos a hacer es lanzar esta excepción cuando pasemos aquí un número 0 a un método específico. Tan privado, estático, vacío cheque por 0. Eso es muy sencillo en el número. Y lo que vamos a hacer es que vamos a decir si el número, si el número estuviera pasando algún residuo, entonces lo que vamos a hacer es que vamos a lanzar una nueva excepción. ¿ Cómo hacemos esto? Vamos a escribir lanzar nuevas pruebas excepción, y luego sólo vamos a decir que el número es 0. Por ejemplo, algo así. Y eso es casi todo lo que realmente necesitamos hacer aquí. Lo que ves es que esto realmente arroja un error aquí porque Agregar excepción a la firma del método. Entonces en realidad tenemos que tener esto en este método aquí. Por lo que tenemos que agregar la excepción de prueba de lanzamientos a la firma del método, lo contrario no funciona. Y si llamo a esto ahora, ¿verdad? Entonces si reviso 0, i, lo que verán es que esto también tiene que agregarse al método principal también porque esto no se maneja correctamente, por lo que no estamos manejando esta excepción. Entonces lo que puedes hacer es que solo vamos a ejecutar esto. Y si yo, por ejemplo, escribo uno aquí, no pasa nada. El programa termina normalmente más si pongo un 0, puedes ver la excepción y recuento de hilos principales y tu excepción de prueba, números muy interesantes 0. Y entonces se puede ver hasta dónde se ha llamado esto, ¿no? Entonces aquí primero y luego aquí fue la excepción que se arrojó. Entonces eso es muy interesante. Primero que nada, un comentario esto fuera y deshacernos de la sección artística allá arriba. Y lo que podemos hacer ahora es que podemos decir, por ejemplo, digamos que z es igual al punto del escáner siguiente int. O en realidad simplemente saltarle el yo aquí para eso. Eso está bien. Ahora podemos hacer una declaración try. Entonces esto va a ser un intento con los corchetes rizados. Y entonces aquí va a tener una captura con una excepción e dentro de ella. Y esto básicamente es manejar un error, ¿verdad? Entonces la declaración try and catch está ahí para manejar un error. Entonces vamos a probar esto aquí mismo. Escribe un cheque por 0 I. Y si se captura o se lanza una excepción, ¿verdad? Y lo podemos atrapar aquí. Y entonces podemos hacer algo con él. Por ejemplo, podemos simplemente básicamente hacer algo como esto. Entonces GET mensaje entonces solo por ahora, básicamente solo imprime lo que realmente está sucediendo aquí, ¿verdad? Entonces la excepción real, hay por supuesto otras cosas que podrías querer hacer o tener que hacer si se capta una excepción. Y entonces también tienes esto por fin aquí, que sólo vamos a hacer lo siguiente. Simplemente vamos a imprimir básicamente por fin, sólo para ver que esto está impreso y entonces realmente vamos a copiar el out. Y esto va a ser, esto pasa siempre. Pero ahora lo interesante es cuando realmente manejas las excepciones correctamente con una declaración try and catch aquí, entonces lo que pasa es que el programa no sólo se rompe o no acaba de terminar, en realidad continúa a lo largo. Entonces lo que se puede ver es que en primer lugar, cuando llamo, cuando pongo un 1 por ejemplo, ¿verdad? Entonces un día vas por fin, y esto sucede siempre. Entonces el finalmente, como se puede ver, siempre está frío y entonces esto siempre se llama también, ¿verdad? Y entonces lo interesante es que cuando se lanza la excepción, se puede ver que estamos imprimiendo el mensaje. Pero finalmente todavía sucede. Y el, ya sabes, esto sucede siempre, también sigue pasando. Por lo que el resto del programa continúa. Lo que es muy importante es que en general, quieres que tu código falle lo más alto posible simplemente por el hecho de que quieres que los errores se vean muy, muy temprano. Por eso lanzar excepciones puede ser útil. Ahora, otorgado en modelado de microondas, es muy poco probable que tenga que hacerlo, sobre todo al principio, ¿verdad? Es decir, la mayor parte de esto, estoy asumiendo para principiantes, ¿no? Esto no va a ser muy importante para los principiantes. Esto es algo mucho más para las personas avanzadas. Cuando realmente estás ahí sentado, estás como, Vale, voy a hacer como un modo gigante ahora, ¿verdad? Yo quiero que sea como la próxima expansión térmica, Digamos en ese nivel algo así, luego haciendo algunas excepciones personalizadas. Idea muy inteligente, definitivamente. Pero sea cual sea el caso, esto es todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 36. (Java) Expresiones Lambda: Muy bien, bienvenido de nuevo a la introducción de Java aquí para el modelado de Minecraft. Y en esta conferencia, vamos a echar un vistazo tentativo a unas expresiones lambda. Por lo que las expresiones lambda pueden ser muy complicadas. Yo solo quiero darles un resumen muy breve de las que tenemos y cuáles son las expresiones lamda. Entonces en general, y el pueblo veterano va a tres métodos. Básicamente son funciones o métodos como variables. Ahora eso es bastante guay cuando lo piensas. Y vamos a echar un vistazo a estos cinco sólo en detalles muy, muy escasos. Entonces no vamos a entrar en ningún detalle en absoluto. Yo solo quiero que hayas visto esos n para básicamente almacenar eso en el futuro. Porque especialmente en el modelado 4D, esto es algo que es muy importante en realidad en tela, no tanto, bueno, cualquiera que sea el caso. Entonces un proveedor, por ejemplo, aquí mismo, correcto, es algo que no tiene parámetros sino un valor de retorno. Y podría escribirse algo así, ¿no? Entonces no hay parámetros en los paréntesis y una flecha y entonces la x podría ser lo que se esté devolviendo. Se puede ver proveedor de tipo entero significa que se devuelve un entero. Y entonces así es como se ve. El cool de esto es que esto también significa porque cuando podemos hacer una variable fuera de ella, también podríamos pasarla a un método, que significa que podríamos, podríamos pasar en estos proveedores ahí dentro, que podrían tener diferentes funcionalidades. Entonces eso es bastante cool en realidad, esto también se usa en la programación de lujo mucho o modelado forzada, sobre todo porque cuando el proveedor, cuando tienes algo dentro de él, esto es solo se llama cuando se llama al getMethod aquí. Por lo que puedes especie de retrasar la carga de ciertas variables y cosas así. Esa es más o menos la extensión de mis conocimientos en esa área también. Entonces no vamos a entrar demasiado en ello. Y luego después de que hayamos arreglado este error aquí por metro, claro, ¿verdad? Por lo que el consumidor tipo de en el nombre realmente consume un parámetro pero no devuelve un valor. Aquí hay un ejemplo para el consumidor para una cadena, que simplemente básicamente es donde pasas en una cadena y luego hace algo con esa cadena. Un llamable no es perímetro y ningún valor de retorno. Tan muy similar a un proveedor, sin embargo, arroja una excepción, por lo que un callable, es posible que eso llame a un derrocamiento una excepción también. Esa es la idea general. También puedes pasar el rato sobre esto y en realidad puedes encontrar un resumen muy bonito de lo que en realidad son, ¿verdad? Entonces aquí estamos llamando al callable en este caso, entonces un runnable es algo que no tiene parámetros y no tiene valor de retorno. Entonces una función básicamente es literalmente como una función que mapea una cierta entrada a una determinada salida es solo la función para el círculo, básicamente donde acabo de tener el pi aquí. Pero eso es más o menos todo lo que hay realmente a ello. Entonces en general, como dije, realmente sólo quería que pasaras por esto una vez que haya visto esto antes, cuando diga, Hey, vamos a hacer un proveedor que no te sientas ahí y estás como, oh, no tengo ni idea de qué es eso. No. Un proveedor básicamente es un tipo de datos que tiene, ese tipo de más o menos ahorra en una función o un método. No es del todo eso, pero está muy cerca para que, ya sabes, sobre todo para principiantes, sea suficiente pensarlo así. Sea cual sea el caso, esto es en realidad para esta conferencia aquí mismo. Sé que esto fue muy corto, pero como dije, realidad es sólo un resumen muy breve en lugar de explicar realmente cada detalle de la misma. Pero sigo esperando que esto te resultara útil y aprendiste algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 37. (Java) Generics: Muy bien, bienvenidos de nuevo a la introducción de Java aquí para el modelado de Minecraft y para esta última conferencia de la sección de introducción de Java, vamos a estar haciendo una mirada tentativa a los genéricos. Genéricos, claro que los hemos visto antes, ¿verdad? Una lista era un genérico, por ejemplo, donde podríamos poner un entero como cualquier clase básicamente, y básicamente tener los números, por ejemplo, con un nuevo ArrayList aquí. Por lo que todo funcionó muy fácilmente y muy bien. Eso estuvo bien, bastante sencillo. Pero y si tenemos genéricos que queremos usarnos para eso realmente vamos a crear una nueva clase aquí. Nosotros sólo vamos a ser la clase de pareja. Y podrás guardar dos valores diferentes en ella. Entonces solo vamos a hacer esos corchetes angulares y luego x, y. y la idea es que X e Y ahora son y la idea es que X e Y ahora sonmarcador de posición para ciertos tipos de datos. Entonces vamos a tener una x privada al cuadrado primero y una mentira privada llamada segunda, ¿verdad? Y esto es, la idea es que ahora tienes que pensar en esto como, vale, esos son genéricos, lo que significa que esos son solo marcador de posición, como dije, ¿verdad? Y solo generemos un constructor para esto. Así que haga clic derecho en generar constructor. Y luego para los dos vamos a simplemente leer el constructor. Y entonces en realidad también vamos a hacer clic derecho Generar getters y setters para ambos. Y ahí tienes. Esa es básicamente toda la clase ya hecha. Y puedes ver que siempre usa la x y la y porque esos son básicamente solo marcador de posición para los valores de datos reales o tipos de datos que se están utilizando. Ahora lo que es muy interesante, lo que también puedes hacer es decir que cierto tipo de datos como para extenderse de uno diferente. Entonces podemos, por ejemplo, decir extiende flotador, lo que significa que el y ahora tiene que extender el flotador, lo que significa que puede ser un flotador o cualquier otra subclase de esa clase que se definieron aquí. Eso también es muy interesante. Es algo que puedes hacer y que se hace en el modelado de Minecraft extensamente también. Y lo que también puedes hacer, hagamos un nuevo par aquí, ¿no? Entonces par, Digamos que son como enteros, enteros flotantes por el momento, como este término igual a un nuevo par de ellos. Vamos a decir algunos como 2250.55. Claro, eso está bien. Asegurándose de que esto es una f aquí, entonces debería funcionar. Ahí vas. Esto ahora está funcionando totalmente bien. Y lo que también puedes hacer, en lugar de pasar un cierto valor real o cierto tipo de datos, también puedes hacer de esto un signo de interrogación. Y entonces el genérico simplemente lo descubrirá. Esto es lo que se llama un genérico comodín. No vamos a entrar demasiado en detalles sobre esto. Esto es algo que también verás en Minecraft modelando un poco también. No obstante, esto es, no hay necesidad real de entender esto. Es enteramente porque los genéricos definitivamente es algo que es camino, muy avanzado, como tema muy avanzado que incluso como programadores calificados no les gusta mucho de ellos ni siquiera entienden esto. Al igual que no me incluiría en esa descripción por cierto, como, conozco genéricos lo suficientemente buenos para que básicamente pueda lidiar con ellos. No obstante, haciendo como una verdadera clase genérica yo mismo, seré honesto, esto es muy, muy duro, ¿verdad? Entonces este es un tema muy complicado, así que no hay preocupaciones ahí en absoluto. Yo sólo quería mencionar esto y quería que vieras que esto existe y que también puedes hacer tus propios genéricos. Pero eso sería todo para la introducción de Java en esta sección del curso. Espero que esto te resulte útil y aprendas algo nuevo si eres un principiante completo, espero que ahora tengas la fundación Java que vas a necesitar para poder seguir junto con el microondas modelado. Entonces la mejor de las suertes, y espero que disfruten la sección microbiótica de este curso. 38. (conceptos básicos de (Minecraft Instalación y configuración y GitHub: Muy bien, Bienvenido a la porción de microbios para el curso de forja 118. Y en esta conferencia vamos a descargar todo y configurar el entorno de desarrollo para que pueda iniciar el modelo de microbios. Bueno independientemente de si ha visto o no la introducción de Java, vamos a necesitar descargar el JDK 17 esta vez. Porque, porque Minecraft 118 y arriba probablemente iba a usar listo cueva y adolescente aquí mismo. Por lo que una vez más, he vinculado adoptarlo aquí. Simplemente descargues el último lanzamiento, asegurándote de que estés en tamarin es 17 justo aquí. Si estás en uno diferente, debería, en teoría, detectar tu sistema operativo y todo eso. De lo contrario, todavía puedes ir siempre a las otras versiones y luego elegir tu sistema operativo y tu arquitectura, y deberías estar bien. Recomiendo en Windows solo descargues el MSI y luego básicamente instalas esto en tu PC como cualquier otro programa. Una cosa que recomiendo encarecidamente es decir, hey, sí, queremos que la variable Java home se establezca aquí mismo, porque eso solo va a ahorrar muchos problemas más abajo de la línea. Porque cuando la variable de inicio Java se establece una vez, básicamente son sólo hace nuestra vida un poco más fácil después de que eso se instala, también necesitamos un Entorno de Desarrollo Integrado IDE y vamos para usar idea IntelliJ. Recomiendo encarecidamente usar esto también porque de lo contrario podría haber algunas diferencias en cualquiera de las bandas que tienen que presionar como atajos. También estamos donde encuentras ciertas cosas dentro de tu entorno de desarrollo. Elegirás la versión comunitaria porque es gratuita y construida sobre código abierto. Entonces es perfecto para nosotros. No tendrás que pagar nada por esto. Es absolutamente gratis. Simplemente descarga esto y una vez más, instala cualquier otro programa en tu PC antes de que abriremos hasta hoy por primera vez, ahora tenemos que descargar micro Forge, en este caso para un microbio 1800s uno. Entonces si estás viendo esto en el futuro, quizá ya estemos a ciento, ochocientos dos o incluso versión superior. ¿ Quién sabe? Lo que definitivamente será más alto es esta versión aquí mismo, ahora mismo estamos en 39.5 ahora, eso está totalmente bien. Lo que vamos a hacer es que vamos a descargar el NDK. Pero antes de hacer esto, un aviso muy importante aquí desde el futuro. Por favor, utilice ciento ochocientos uno al iniciar el curso. Recomiendo encarecidamente esto. Si no haces esto y usas 1800s dos, entonces algunas cosas no funcionarán como las etiquetas, el elemento avanzado que básicamente vamos a usar con las etiquetas así como con la generación mundial. Ahora, una vez que llegue a ella, quiero llegar a ella muy pronto. Pero ojalá en el futuro al final del curso, iba a haber una sección que es de 1820, si en realidad sí lo ves. Así que solo echa un vistazo a todas las conferencias. Y si ves una sección al final Eso es como 1182 actualizaciones, entonces puedes entrar ahí y en realidad pasar por todo el curso. Y luego cada vez ahí donde hay un cierto, un tema que no funciona como etiquetas. Serán las etiquetas conferencia y todas las conferencias de generación del mundo. Entonces básicamente puedes saltarte por encima de todo lo demás, ir al final del curso, hacerlo, y luego continuar de regreso. Recomiendo encarecidamente la mejor opción es quedarme con uno 1800s por el momento y luego solo pasar por todo el curso una vez, luego cambiarlo a 182 también será una conferencia que voy a hacer en el futuro al final del curso. Por lo que no se preocupe ahí. Vamos sólo una idea muy inteligente. De lo contrario, por supuesto que eres libre de elegirlo, pero por favor ten en cuenta que algunas cosas no funcionan igual en 1800 como lo hacen en 181. Sólo quería decir eso. Ahora, volvamos a configurar todo. En el futuro. Probablemente tendrás dos ventanas aquí, una de las que es la más reciente y luego recomendada, siempre elige la compilación recomendada actualmente, que aún no se ha actualizado a una versión suficiente. Para que básicamente digan, Hey, esta es la versión recomendada, eso va a estar bien, pero siempre va a ser el M-Cdk que queremos. Y luego aquí sólo tenemos que esperar cinco segundos hasta que podamos descargar el archivo zip. Y luego hacemos clic en el botón Skip en la parte superior y luego se descarga el firewall zip. Ya lo he preparado, así que tengo mi archivo zip aquí mismo. Entonces voy a hacer clic derecho y luego extraer para forjar aquí un nombre loco. Y también voy a renombrar esto por supuesto, uno 1800s, ellos hace. Entonces podemos eliminar el archivo zip aquí mismo. Este es el contenido de la carpeta del proyecto o que vas a tener. Y lo que podemos hacer es que podamos eliminar todos esos, los créditos, el bloqueo de cambio, la licencia, y el Redmi porque hay específicos para forjar eran en realidad o yo personalmente, voy a tener mi propio archivo de licencia y todo eso en apenas un poco sobre después de que eso se configura, ahora podemos iniciar la inteligencia por primera vez. Ahora la ventana con la que serás recibido probablemente te parecerá un poco diferente. No obstante, lo que definitivamente tendrás son tres botones, El botón Nuevo Proyecto, el botón Abrir, y se obtienen desde el botón VCS. Queremos hacer click en el botón Abrir y queremos navegar a este directorio. Así que también puedo simplemente copiarlo, ponerlo aquí, y luego elegir esta carpeta aquí mismo, donde las carpetas fuente dentro de esta de aquí dicen bien, vamos a decir que confiamos en el proyecto, entonces se abrirá una nueva ventana. Ahora las cosas comenzarán a suceder en segundo plano. Podrías recibir errores, tal vez te pongas algo rojo aquí. No te preocupes por eso. Vamos a arreglar todos ellos paso a paso, lo mismo con una advertencia aquí se puede ver rojo, esta advertencia aquí mismo. Eso está todo bien. Sólo deja que esto pase. O vamos a conseguir construido fallido o una construcción exitosa. Cualquiera de ellos en este momento está totalmente bien para nosotros. Muy bien, mira eso. En realidad tengo una construcción exitosa aquí, eso está totalmente bien. Como dije, si te falló un proyecto de ley, vamos a pasar por esto y ver qué podemos cambiar básicamente. Hay algunos pasos que debemos tomar básicamente independientemente de lo que esté sucediendo. Entonces lo que queremos hacer es el número uno, quieres ir a Archivo y luego a la estructura del proyecto, queremos asegurarnos de que en el SDK del proyecto aquí mismo diga 17. Por lo que básicamente queremos elegir el JDK que acabamos de instalar. Igual con el proyecto de lenguaje. Esto debería ser 17. Vamos a golpear aplicar y decir, está bien, también vamos a ir a configuración para construir implementación de ejecución, herramientas integradas Gradle, y asegurarnos de que diga SDK del proyecto aquí mismo con 17. Esos pasos son de suma importancia. Por favor, asegúrate de que todo aquí sea correcto. Después de que eso se hace, hay una modificación más que tenemos que hacer. Ya ves si abro la carpeta java aquí mismo, puedes ver que todo aquí es una especie de extendido. Si la inteligencia está abierta por primera vez, podría parecer algo así para usted simplemente ir a la marcha aquí. asegura de que tanto los paquetes aplanados como los paquetes intermedios compactos estén apagados. Y entonces se va a quedar exactamente igual aquí como lo hace para mí en este momento. Todo aquí ha corrido correctamente, Eso es genial. Entonces lo que vamos a hacer es que vamos a abrir la terminal aquí y vamos a poner en punto slash Gradle w Gen Intel J corre ahí mismo. Y luego vamos a golpear Enter y simplemente dejarlo pasar por esto básicamente solo descarga un montón de cosas más y solo aseguramos de que todo se haga básicamente correctamente. Y luego vamos a construir con éxito. Si tienes una primera píldora exitosa, esto podría no siempre ser necesario. No obstante, es genial hacer esto sin embargo. Y ahora vamos a cambiar algunas cosas. Pero antes que nada, vamos a abrir el archivo DOD Gradle incorporado. Y luego aquí ves que hay una versión de grupo y una base de nombres de archivo. Pero la versión, bueno, vamos a poner en algo así como 0.01. Y entonces por lo general lo que es aconsejable es poner algo en eso dice la versión micro también. Entonces voy a decir mi versión de 0.01 y luego guión 100,801 porque por supuesto estamos en 181 ahora, el grupo aquí es el mismo que los nombres de nuestra estructura de paquetes. Así que para mí eso va a ser neto y por supuesto Joe Mc. Para ti, esto sería neto o calmaría tu nombre. Y entonces por ejemplo, también podrías elegir curso MC, o si tienes otro modelo, también podrías por supuesto elegir una melodía diferente. Aquí solo tomamos nuestra idea de modelo también, y eso resume prácticamente todo lo que necesitamos aquí. Realmente no hace falta cambiar tanto. Lo que no podemos cambiar el suyo aquí mismo se puede ver el modo de ejemplo. Dice aquí, sólo podemos seleccionar esta prensa Control R y luego cambiar esto a curso MC. Se puede ver que aparecerá una nueva ventana en la parte superior. Y luego podemos básicamente poner ejemplo Mater en el curso mc superior aquí y luego solo decir reemplazar todo eso básicamente todas partes donde dice ejemplo mod en este archivo reemplazará con curso de EMC. Y lo que podemos hacer entonces es que podemos cargar los mayores cambios presionando al pequeño elefante en la esquina superior derecha como viste. Y entonces básicamente va a correr otra vez. Esto no debe tomar tanto como la primera vez que vayan Bien exitosos en nueve segundos, eso es genial. Y luego nos vamos a cambiar algunas cosas más y cambiar algunas cosas más que haremos en la clase mod ejemplo. Porque lo que pasa aquí es que, bueno básicamente no tenemos un modo de ejemplo. Lo que tenemos es que tenemos cuerda neta de algodón, curso MC o neto tu nombre, curso MC. Así que lo que vamos a hacer es en la parte superior aquí en el paquete, vamos a decir net out y Joe dot MC curso. Por supuesto esto está marcado con un subrayado rojo y vamos a pasar el puntero sobre esto y decir Move to package net Cotton joe MC curso voy a decir que sí. Y luego se puede ver una nueva estructura de paquetes aquí surgirá. Por lo que ahora podemos eliminar el resto que está vacío. Entonces queremos cambiar el nombre de esta clase. Entonces lo que podemos hacer es que podamos hacer clic en él, presionar Shift F6, y luego vamos a nombrar a esto el curso MC mod day ago. Ahora, es muy importante es que esta clase, la clase de simulacro de curso MC, se referirá posteriormente como especie de la clase principal o su clase mod principal. Entonces si alguna vez digo que esto es lo que quiero decir, entonces venimos al MOD ID. El ID es algo que es muy importante. Así que por favor escuchen atentamente. El ID de MOD solo puede contener caracteres en minúsculas. El ID de formato es básicamente un identificador único para tu MOD. Y va a venir en muchas ocasiones en el futuro. En este muy top aquí en el AdMob, se puede ver que tenemos una cuerda aquí. Entonces lo que vamos a hacer es que vamos a seleccionar toda la cadena con las comillas. Vamos a hacer clic derecho. Vamos a ir a re-factorizar. Vamos a decir introducir constante. Voy a llamar a esto el ID de subrayado mod. En realidad voy a es copiar esto a la parte superior aquí. Este va a ser usado muchas veces en el futuro. Y esto es para el curso US MC. Recomiendo encarecidamente quedarme con esto y poner lo mismo aquí. Este es un curso MC muy importante todo escrito en minúsculas por completo. Esto aquí también tiene que coincidir en la carpeta recursos, meta nth modo Stato Mo. Y se puede ver aquí mod ID, esto también tiene que coincidir. Esto es increíblemente importante, muy importante aquí. Mostrar nombre, digamos por ejemplo, el curso moderno de Minecraft mod. Algo como esto ofrece ¿qué tal hilera de algodón? Esos no son todos necesarios, pero esto es solo un Idealmente, no necesariamente tienes que poner esto. Vamos también, permítanme cambiar la licencia al MIT por si acaso y el ego. Entonces esta es la idea general de básicamente configurar todo. Tendrás que cambiar esta estrella íntima Tom o archivo. Y aquí arriba eso es muy importante. Y por lo general eso debería resolver casi todo lo que tienes. Una vez más, asegúrate revisar la estructura del proyecto en la configuración. Y luego después de que hayas cambiado todo eso, corre, la barra de puntos Gradle, Jen inteligente corre. Y luego después de que hayas hecho eso, estamos más o menos configurados. Esto es más o menos todo lo que tenemos que hacer para la configuración. O ahora podemos hacer es ir a la parte superior derecha a la pestaña Gradle aquí, ampliar las tareas y el ferrocarril de forja corre y luego hacer doble clic en él, ejecutar un cliente. Veamos si Minecraft comienza por primera vez. Ese es el paso más importante. Básicamente, lo que estoy muy seguro de que esto va a funcionar bien. Ahí vas. Ya se ha abierto la ventana y sólo veamos probablemente va a escuchar el sonido muy pronto. Y ahí estamos. De acuerdo, Déjame antes que nada, apague inmediatamente la música y el volumen un poco. Hace ellos. En nuestros modos, se puede ver el modelo de curso moderno microbio. Hay versión del curso MC en este momento 0 porque no lo hemos definido correctamente en el archivo HTML mos dot. Pero eso es más o menos todo lo que necesitas hacer. Si llegas a este punto y Minecraft ha abierto. Bueno, bienvenidos a forjar mañana. Va a ser un viaje genial e impresionante, estoy seguro de ello. Y lo siguiente que vamos a hacer es que vamos a configurar el repositorio de GitHub para este proyecto. Recomiendo encarecidamente no saltarse el paso ya que el repositorio de GitHub me ayudará a ayudarte en las preguntas y respuestas Por ejemplo, si solo me proporcionas tu repositorio de GitHub podrás ayudarte mucho más rápido que básicamente si sólo dices, Oye, tengo esta flecha. Por lo que sólo hace que todas nuestras vidas sean un poco más fáciles. Por lo que recomiendo encarecidamente también configurar un repositorio de GitHub. Pasaremos por los pasos en este momento. Lo que necesitarás para eso es una cuenta de GitHub, pero esta es completamente gratuita y recomiendo encarecidamente hacer esto. Esta es una herramienta que es utilizada por, quiero decir, casi todos los programadores. Hay algunos sitios web diferentes, pero GitHub en sí mismo es de gran reputación y solo recomiendo encarecidamente usarlo también. Entonces después de haber hecho una cuenta ahí, lo que podemos hacer en inteligente es que podemos ir al VCS aquí arriba y podemos decir compartir proyecto en GitHub. Y luego se puede ver que voy a llamar a esto el curso de forja el 18. Eso está bien. Yo personalmente voy a hacer esto privado. Si quieres compartirlo, por supuesto no puedes hacerlo privado. Y ahora si hago clic en el botón Compartir, se puede ver, hey, cuenta está vacía. Vamos a añadir una cuenta nueva. Y lo que voy a decir es que entraré a través de GitHub. Puedo hacer clic en esto y luego esta ventana aquí se abrirá, simplemente di autorizar GitHub. Y porque ya estoy conectado a GitHub aquí mismo, esto ya ha autorizado y se puede ver silla por github.com slash coulomb joule. Ahora diremos Compartir y luego se abrirán un montón de cosas nuevas aquí se pueden ver Agregar Archivos, muebles, comprometerse. Vamos a decir, claro que está totalmente bien. Y luego puedes ver que en realidad se comparte en GitHub y eso es en realidad todo lo que necesitas hacer. Ahora puedo hacer clic en esto y debería abrir el repositorio de GitHub. Y ahí está. Este repositorio de GitHub estará disponible para ti también. Por cierto, esto es muy importante. Tendré cada conferencia separada en diferentes ramas para que básicamente puedas ver y comparar muy fácilmente con lo que has escrito. También tendré gists individuales para cada conferencia. Entonces no se preocupe. Todo el código estará disponible en alguna forma que te va a ser muy útil si ahora haces un cambio aquí. Entonces, por ejemplo, voy a decir algo así como comentario muy importante. Verás que el archivo donde ocurre el cambio, se vuelve azul. Y entonces lo que tengo que hacer es que tengo que ir a esta pestaña commit aquí mismo, habrá que seleccionar todos los cambios que quiero cometer. Entonces digo añadido elemento importante. Entonces esto es sólo un nombre de lo que pasó. Y voy a hacer clic en Commitar. Ahora por lo general puede que también te pongas, oye, tengo como 63 advertencias. ¿ Estás seguro de que quieres comprometerte? Por lo general sí quieres comprometerte. Ahora esto acaba de pasar, fue muy importante, es que sólo porque hayamos comprometido algo no significa que todavía esté en línea, porque para hacerlo en línea, en realidad hay que empujarlo. Entonces en la parte superior aquí, la flecha verde que apunta a la parte superior derecha, tenemos que hacer click en esto. Entonces se puede ver agregado el comentario importante. Podemos ver los cambios básicamente, quién, quién hizo esos cambios y todo eso. Y después podemos simplemente hacer clic en el botón pulsador. Y entonces dice empujó a uno comprometerse al maestro de origen. Entonces si vuelvo a abrir esto y recargo este lado, se puede ver añadido comentario importante. No quiero que esto se devuelva en un GitHub ni obtenga un tutorial aquí mismo. Pero por el momento, eso es más o menos. Eso es más o menos todo lo que necesitas. Y ahora puedes embarcarte en el viaje loco y fresco de Minecraft moderno con 4241801. Pero esto es todo por esta conferencia aquí mismo. Espero que hayas encontrado esto útil y hayas aprendido algo nuevo. Te veré en la próxima conferencia. 39. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al cuarto curso para 118. En esta breve conferencia, vamos a estar cambiando nuestros mappings para que sean mappings de pergamino. Ahora, sólo un poco de explicación aquí. La idea es que si usamos las mappings normales proporcionadas al fusionar el servidor oficial vaya al archivo Gradle acumulación de RI. Ver aquí tengo los mapeos oficiales para 180 uno. Y si bien esto está totalmente bien, lo que sí sucede es que todos los métodos no tienen parámetros de mapa. Esto significa es que cada método que podríamos anular o algo así, el nombre del parámetro siempre va a ser algunos, como P subrayan algunos números y luego subrayan un o lo que sea. Y esto es realmente jodidamente, molesto, sobre todo si tienes métodos que podrían tener 56, 57 parámetros. Y todos tienen estos nombres extraños ya que son fremitus. Por eso recomiendo encarecidamente ir con pergamino. Ahora tengo dos enlaces en los recursos. Uno es el repositorio bibliotecario GitHub aquí desde pergamino, y otro es el repositorio de pergamino. Y lo que encontrarás es que actualmente no existe la versión 118 X. Por lo que no se encuentra que no sea estrictamente cierto hay una instantánea nocturna. Ahora, una instantánea nocturna en este caso significa que definitivamente aún no es un lanzamiento completo. Es, uh, funciona y ya se puede trabajar con él, pero no es muy recomendable, sabes, Aún no está hecho, por así decirlo ahora, todavía lo usaremos. Y lo que diré es que estaré actualizando esta conferencia. O a medida que avanzamos por el caballo, podría tirar una o dos guías de actualización de pergamino en su general, generalmente actualizarlo prácticamente sólo está cambiando. Algo que te mostraré en tan solo un momento. Ahora lo que podemos hacer es en el bibliotecario aquí lo puedes ver básicamente dice todo lo que necesitas hacer. Entonces es muy sencillo. Por ejemplo, lo primero que tenemos que hacer es añadir esto aquí mismo. Por lo que el pergamino del repositorio de pergamino Maven. Déjame copiar esto. Acude al curso de forraje aquí mismo. Y luego en la parte superior, debajo de esto, queremos pegar eso en. Ya puedes ver ahora tenemos el pergamino ahí. Y luego queremos revisar el segundo. Y ese va a ser el bibliotecario sin embargo, el teorema del camino de clase. Por lo que una vez más copió Control C y luego péguelo por debajo del Gradle aquí. Entonces aquí mismo en las dependencias, entonces queremos tomar el plug-in justo aquí, y esto tiene que estar exactamente por debajo de esto. Entonces aquí mismo, justo muy importante. No lo pegues aquí, pero por debajo de la red Minecraft Gradle, lo contrario no funcionará. Muy importante. Y luego por último pero no menos importante, es necesario cambiar los mappings. De hecho copiaré eso de la otra pantalla que tengo aquí porque ya tengo la versión nocturna básicamente hecha. Sólo veamos que hace. Entonces esta sería la versión nocturna del 13 de diciembre, instantánea nocturna en este caso, como dije, si salen versiones más nuevas, vincularé aquí en algún lugar o tendré futuras conferencias o cambio esta conferencia. Y vamos a, sólo a ver, vamos a hacer esto, sin preocupaciones en absoluto. Y en general, esto ahora debería estar bien si tenemos esas cuatro cosas. Entonces el maven, la dependencia de ruta de clase aquí, luego el plugin y cambiando el vidente de mapeo, estarás bien. Entonces lo que podemos hacer ahora es cargar los cambios del Grial. Ahora esto en realidad no debería tardar demasiado. Una vez más, depende de tu PC, depende de la velocidad de conexión a Internet que tengas. Hay un par de factores que podrían, estoy metido en esto, pero una vez más, no debería ser más de tal vez un minuto o dos. Pero seamos pacientes y dejemos que esto pase, ¿verdad? Entonces como puedes ver, construir exitoso en 55 segundos, eso es genial. Y bueno ahora básicamente está hecho. Ya tenemos ahora estamos usando los mapeos de pergamino. Y eso va a ser genial. Esto va a ser mucho mejor. Recomiendo encarecidamente hacer esto también. Realmente sólo cambia los nombres de los parámetros. Entonces hay mapeados ahora es casi todo lo que hace, los métodos y los nombres de las clases y todo eso debería permanecer completamente igual. Pero eso ya es para esta conferencia aquí mismo. Espero que esto te resulte útil en lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 40. (Conceptos básicos de (Minecraft crea un artículo personalizado: O volveré al curso de forraje por 118. En esta conferencia, vamos a estar agregando nuestro primer artículo de cliente a la mente por ahora, esto va a ser algo muy interesante que vamos a hacer. Y lo que haremos es que en realidad añadiremos dos artículos. Vamos a sumar uno, básicamente vamos a pasar por cada paso. Y luego te mostraré inmediatamente después de que hayamos visto el artículo en juego. O puedes añadir un segundo porque a veces es un poco confuso para la gente. Espera, ¿cómo añado ahora una segunda? ¿ Tengo que volver a pasar por cada paso? Y no, hay algunos atajos que básicamente puedes tomar. Bueno, lo primero que haremos y esto es muy importante es en nuestro curso MC MOD o nuestra clase de mod principal, vamos a seleccionar esto aquí mismo. Entonces todo, incluido el bus de eventos GetMethod con los paréntesis, y vamos a hacer clic derecho en este re-factor y luego introducir una variable. Y luego vamos a decir reemplazar las tres ocurrencias. Y vamos a llamar a esto el Bus de Eventos. Así que basta con hacer doble clic en el autobús de eventos. Y entonces vamos a estar bien. También lo haremos es básicamente eliminaremos todo aquí excepto el método de configuración. No queremos los eventos del registro, no queremos la clasificación del servidor, nada de eso. ¿ Necesitamos? Y luego tendremos que leer las cosas aquí para luego poder eliminar ambos también, para que nuestro constructor básicamente se fue con solo el bus de eventos. Eres el oyente aquí mismo, el fondo del bus de eventos regístrate aquí, y el método de configuración, porque este es un método que definitivamente tendrá que usar en el futuro. Hay otro método que lo hará, que tendrá que sumar en una futura conferencia también. Pero vamos a hacer eso una vez que realmente tengamos dos. Por lo que ahora a añadir el artículo. lo que en nuestro paquete del curso MC, vamos a hacer clic derecho en nuevo paquete, que se llama ítem. Entonces en lugar de ahí vamos a hacer clic de nuevo con el botón derecho nueva clase Java llamada la clase de elementos mod. Ahora la clase de elementos de modo va a seguir una especie de esquema o una plantilla determinada que seguirán muchas clases diferentes. Y eso va a ser lo siguiente. Por lo que tendremos un registro diferido. Entonces sólo voy a escribir esto fuera de ellos y ver qué es esto. Esta va a ser una final estática pública, el tercer registro, muy importante, F2, el nuestro. Pero este de aquí de microformas netas registra dos veces comprueba si escribes esto correctamente porque ha habido algunas personas que lo han escrito mal, y entonces eso por supuesto lleva a que no funcione puedes escribirlo y luego simplemente presiona Tab para autocompletar. Y luego necesitamos estos corchetes angulares si lo escribes en el primero y el segundo para generar automáticamente. Y entonces necesitamos artículo aquí. Muy importante que tengamos neto Minecraft artículos del mundo. Tomamos éste una vez más, autocompletar y luego inmediatamente importará la clase aquí arriba. A esto se le llama ítems todo en gorras, muy importante así como este es un campo final, por lo tanto se tiene que escribir en gorras. Eso es solo una convención Java en este caso, esto será igual a un registro diferente. Una vez más, asegurándose de que lo escribes correctamente, puedes auto completado con una pestaña cuando realmente veas la congestión ahí que crean. Y entonces una vez más, podemos simplemente autocompletarlo en el paréntesis luego generaremos. Entonces podemos guardar registros de forja que artículos en mi modelo de curso MC, ese ID de modelo, y luego terminarlo todo con un punto y coma. Por lo que se puede ver que ya estamos usando el ID del modelo. A continuación te presentamos el registro diferente. En los términos más simples, el registro diferido. Se puede pensar en esto como sólo una lista de todos sus artículos que usted con su átomo MOD. Es por ello que necesitamos suministrar la melodía para que forja sepa, vale, todos estos elementos son de este ID de modelo, de este modo. Esa es la idea general. Por supuesto que es un poco más complicado que esto. Pero solo para tu comprensión general, puedes pensar en esto como una lista de todos tus ítems y básicamente tenemos que registrarnos ahí cuando tienes un registro diferido básicamente para cada cosa que ha forjado registros aquí, puedo echar un vistazo a esto. Por todas esas cosas. Básicamente podemos tener otra clase y otro registro diferido. Y cada vez que tengamos un registro diferente, lo que vamos a tener es que vamos a tener un vacío público estático o el método de registro con un Bus de Eventos. Bus de Eventos como su perímetro. Vamos a decir artículos dot registrar bus de eventos. Ahora bien, si en algún momento algo aquí podría ser rojo. Entonces, por ejemplo, es posible que el artículo aquí se ponga rojo. Lo que pasa es que simplemente haces clic en él y presionas Alt y Enter para importar la clase, asegurándote de que eliges ítem mundial de microondas neto aquí, y luego todo debería funcionar. Asegúrese de que las importaciones que esté en lo correcto. Eso también es muy importante. Y ahora tenemos el método de registro y necesitamos volver a llamar a esto en nuestra clase mod curso MC, nuestra clase mod principal dentro del constructor justo aquí, tenemos que decir mas ítems dot registrarse con el Bus de Eventos. Por lo que tenemos que pasar en este bus de eventos al método de registro aquí mismo. Y entonces también se registrará el propio registro diferente . Entonces tenemos que registrar, bueno, nuestras listas, por así decirlo, de todos nuestros artículos. Y ahora ¿cómo hacemos, cómo estamos empezando a agregar un artículo? Bueno, necesitamos un objeto de Registro final estático público. Una vez más con los corchetes angulosos de tipo item. Y este va a ser el lingote de subrayado cobalto. Ahora puedes ver una vez más, tengo algo que está marcado en el objeto Registro rojo. Yo sólo puedo dar click en él. Y entra, y luego importará la clase correcta que vamos a necesitar. Y esto va a ser igual a dos ítems punto registro. El primer parámetro va a ser una cadena. Y este autobús, o como pronto verás, nombre genera automáticamente, no tienes que teclear esto. Muy importante para Walt underscore lingote es el nombre. Esto sigue las mismas reglas que el mod ID. Sólo letras minúsculas, guiones bajos o guiones y números, nada más. Y se puede ver después de que he agregado lo común ahora dice nombre. Una vez más, esto genera automáticamente, esto lo hace el IDE, esto lo hace inteligente. No tienes que teclear esto. Y el segundo parámetro va a ser un proveedor. Por lo que tenemos paréntesis abiertos y cerrados, voluntad por esta flecha, y luego un nuevo elemento. Tan nuevo artículo con las otras cosas aquí dentro. Por lo que las nuevas propiedades del elemento se pueden ver dentro del constructor del ítem, solo voy a autocompletar esto y luego decir la pestaña de puntos. Y luego necesitamos abastecer en una ficha. Entonces esta es la mortalidad creativa que se necesita. Y se puede ver donde es sólo la ficha miscelánea. Simplemente vamos a hacer doble clic en esto y luego vamos a estar bien con ello. Podemos ver que esto es ahora todo lo que necesitamos para registrar el ítem. El artículo ya estaría en Juego. Por supuesto, aún no tiene textura, y tampoco tiene funcionalidad. No vamos a agregar funcionalidad en esta conferencia aquí mismo, pero en las siguientes conferencias por supuesto van a ver, básicamente se puede agregar eso. Ahora, una cosa importante es que las propiedades de este elemento aquí en realidad es un panel constructor, por lo que se puede abofetear en un punto después, después de la pestaña, se puede ver que también puedo llamar a algunas otras cosas como Reparación de centinela, resistencia al fuego, tal vez resto, cosas como esta. Entonces hay algunas cosas geniales que básicamente puedo llamar aquí, y cambió el artículo de esa manera también. Nos vamos a apegar por el momento a sólo tener la pestaña y sólo usar la pestaña miscelánea para esto, y eso van a ser cinco. Ahora. Bueno, ¿qué significa? Bueno, aún no tiene textura. ¿ Cómo vamos a definir eso? No se preocupe en absoluto. Ahora viene la estructura de carpetas, que es muy importante. Por lo tanto, asegúrate de que cuidas y mires esto muy de cerca. Aquí hay algún error ortográfico. En realidad se va a tener que hacerlo para que algo no funcione. En lugar de la carpeta de recursos, vamos a hacer clic con el botón derecho en nuevo directorio llamado activos. Y luego dentro de ahí vamos a hacer clic derecho nuevo directorio llamado curso MC. Este tiene que ser tu MOD ID, exactamente. Muy importante. Dentro de ahí, vamos a hacer un nuevo directorio, viejos modelos. También vamos a hacer un nuevo directorio llamado lang LNG. También vamos a hacer un nuevo directorio dentro del curso MOOC sobre texturas frías. Y una vez más, tenga en cuenta que estos tienen que ser escritos correctamente. Entonces la carpeta de modelos, vamos a hacer un nuevo directorio llamado ítem. Y luego dentro de la carpeta de modelos, de nuevo, vamos a hacer un nuevo directorio llamado bloque. Ahora, lo que puedo hacer es porque vamos a necesitar ambos. Puedo seleccionarlos ambos y luego arrastrarlos a la carpeta de texturas mientras mantiene el control, lo que duplicará esas carpetas. Y porque, porque básicamente necesito el bloque y la carpeta de elementos dentro de la carpeta de texturas también. Ahora empecemos en la parte superior con la carpeta de longitud. En la carpeta de longitud, se van a ubicar las traducciones . Entonces vamos a hacer clic derecho en nuevo archivo. Y este va a ser el EN subrayarnos db.json. Muy importante que añadas el punto Jason, lo contrario no se reconocerá adecuadamente. Eso es muy importante. También E y subrayarnos como para que también se escriban correctamente, pulsa Enter y luego aparecerá el archivo. Aparecerá esta ventana. Si tienes un repositorio de GitHub, si no tienes eso, entonces no verás esto. Eso está totalmente bien. Si sí tienes un repositorio de GitHub, básicamente quieres decir add, porque luego lo agrega al repositorio de GitHub para tu próximo commit básicamente, y el EN nos subrayan archivo JSON se construirá de la siguiente manera. Voy a empezar con un corchete rizado, que de inmediato va a generar el segundo corchete rizado para nosotros. Aquí queremos traducir el artículo. Entonces el tema es que sólo vamos a escribir esto. Elemento dot AMC curso dot o ball, guión bajo, lingote, colon y luego Inglés Antiguo. Entonces la idea general es que este es el nombre localizado desconocido del ítem porque éste de aquí, correcto. El lingote de subrayado cobalto es el nombre que le hemos dado a este ítem. Es un artículo, y lo es, este es nuestro Motet. Todo esto debería tener sentido lógico, ¿verdad? No debería ser como, ¿por qué está pasando eso aquí? No, no, esto debería tener sentido. Este es el, um, nombre localizado. ¿ Por qué siquiera tenemos esto? ¿ Por qué necesitamos definir esto en una especie de archivo JSON? Bueno, hay diferentes idiomas. Y si quieres traducir para cada uno de esos idiomas que tener el, um, nombre localizado y luego un nombre localizado aquí hacen que eso tenga mucho sentido. En realidad. Por eso tenemos que hacerlo así. Una vez más, se asegura de que los nombres de las carpetas estén destrozados y también el nombre de un archivo aquí. De lo contrario, esto se ve bien. Entonces pasemos al archivo de modelo de ítem. Y el modelo de artículo es, bien interesante. Voy a escribir esto fuera. Entonces lo que vamos a hacer es en la carpeta de ítem de modelos, haga clic derecho en nuevo archivo llamado el guión bajo cobalto punto de lingote JSON. El nombre de este archivo tiene que coincidir exactamente con el nombre dado aquí mismo. Esto también es muy importante y luego termina con el JSON. Ahora, como dije, voy a escribir esto una vez. Vamos a hacer esto bastante rápido y luego voy a explicar cada parte del mismo. Entonces vamos a tener un padre aquí mismo , colon, barra de ítem, texturas de munición generadas, caída abierta, corchete rizado, capa 0. Todo un curso MC, artículo caído, corte o guión bajo perno. Podría estar diciendo lo que está pasando aquí la FREC. No se preocupe. Vamos a pasar por esto. El padre aquí determina cómo se muestra esta textura en particular en tu mano. Y también en tridimensional. Adam generado básicamente solo es, va a hacer que la textura se extruya un poco para que tenga una especie de look 3D. Y eso va a ser básicamente. Entonces así es como se muestra cualquier elemento normal. Entonces tenemos que definir todas las texturas. Y esto tiene que ser texturas muy importantes. Asegúrese de que todo esto esté escrito correctamente. Capa 0, también importante. Y entonces esto de aquí está básicamente define el directorio donde se encuentra la textura. Por lo que esto va a ver la carpeta Assets del curso MC. lo que activos Curso MC dentro de la carpeta de texturas, aquí mismo bajo ítem barra cobalto inglés punto PNG, so item. Y entonces no tenemos nada ahí dentro. Voy a copiar sobre el extra ahora mismo, burbujeado en Git dot PNG. Y van, y esto es básicamente ahora la textura que mostrará en el juego. Uno. Detalle muy importante aquí para las texturas es que tenga en cuenta el archivo de créditos aquí mismo. Por lo que todas las texturas se hacen por nano ataque y se distribuyen bajo esta licencia aquí mismo. Entonces si quieres usar esos en un repositorio público de algún tipo, entonces por favor sigue la licencia, solo agrega este archivo a tu proyecto o a tu repositorio, y entonces vas a estar bien. Yo sólo quería mencionar esto es bastante importante sin embargo. Puedes usar las texturas. Sólo ten eso en cuenta ahora mismo para un artículo con realmente hecho todo, hemos registrado el artículo. Hemos agregado una traducción, hemos agregado el archivo JSON modelo de ítem y la textura por ahora, primera vez podemos ver por obras, por cierto, cualquiera de esas flechas rojas que podrías ser conseguir están totalmente bien. Esto a veces puede suceder después de que básicamente agregaste arreglo por primera vez, pero esto está totalmente bien. Deberías poder ignorar esto siempre y cuando siga adelante y el Minecraft en realidad comience, esto no debería ser preocupación. Y esto también sólo sucedió una vez o frente a él, Minecraft. Entonces vamos a ver, vamos a la pestaña miscelánea y vamos al fondo. Y ahí está. El lingote cobalto ha sido agregado con éxito al juego. Eso es un bastante cool Todas las cosas consideradas, ¿verdad? Y para que solo lo hayas visto, agreguemos la pepita también. Entonces la idea básica aquí es que no necesitamos una segunda clase más artículos. Aquí es a veces donde la gente se confunde un poco. Lo único que tenemos que hacer es copiar sobre este objeto de registro. Voy a hacer Control C después de seleccionarlo todo y luego Control V, péguelo aquí. Entonces solo tenemos que renombrar esto a pepita y luego renombrar también la sinagoga. Para cada ítem que registre tendrá asociado un objeto de registro. Esa es la idea general. Y por supuesto también tiene nombre. Entonces necesitamos un nuevo modelo de ítem, JSON, aunque primero vamos a entrar en nuestro oído y subrayarnos el archivo JSON aquí. Y lo que haremos es simplemente duplicaremos esta línea presionando Control D, luego agregando una coma aquí. Y luego una vez más, vamos a renombrar esto a pepita. Esta pepita también. Y ahora en nuestros modelos de ítem, lo que podemos hacer es simplemente tomar este archivo JSON y podemos arrastrarlo a la misma carpeta mientras sostiene Control, y luego lo duplicaremos. Y entonces podemos cambiar el nombre aquí, navegar también. Entonces dentro de aquí, por supuesto, también cambiando esta pepita. Y luego copiaré sobre la textura del artículo una vez más. Y ese es básicamente el proceso de agregar un segundo elemento. Entonces esto es básicamente siempre lo que vas a hacer. Van a haber algunas diferencias, sobre todo cuando se trata de los archivos de modelo. A lo mejor se ven un poco diferentes. Pero en general, esto es casi siempre por lo que vas a tener que pasar en un objeto de registro en la traducción a la E Y subrayarnos archivo JSON en un ítem modelo JSON. Y luego la textura, eso es más o menos todo lo que hay a ella. Ellos sólo por el bien de la finalización, vamos a ver si funciona o si soy tan Minecraft. Como se puede ver, el cobalto también se ha agregado con éxito. El juego, sin embargo, como puedes ver, en realidad es un bastante sencillo una vez que sabes cómo se hace. Y esto es solo una cosa con la que solo tienes que familiarizarte solo tienes que familiarizartey simplemente rutinarte básicamente agregando artículos. Y se va a convertir básicamente en segunda naturaleza para ti, ¿verdad? Pero eso ya será para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Todo el código está por cierto, disponible para ti en el repositorio de GitHub o un individuo igual de bien, que básicamente nunca tienes que escribir todo tú mismo. También puedes copiar algunas cosas por encima si eso es más propicio para el aprendizaje para tu idea en particular. De lo contrario, nos vemos en la próxima conferencia. Entonces, sí. 41. (Conceptos básicos de (Minecraft Crea un bloque personalizado: Muy bien, bienvenido de nuevo el cuarto curso para 118. Y en esta conferencia, vamos a estar agregando bloques personalizados a Minecraft. Los bloques personalizados están un poco más involucrados. Pero debido a que hemos visto básicamente una parte de cómo agregar artículos, los bloques son similares, pero como dije, un poco más involucrados como un poquito diferente, pero no demasiado. Por lo que en nuestro paquete de cursos MC, vamos a hacer clic derecho en nuevo paquete llamado libro. Y dentro de ahí vamos a hacer clic derecho nueva clase Java llamada la clase de bloqueos de modo. Ahora esta clase será un poco diferente, pero antes que nada, tendremos el registro diferido final estático público de tipo de bloque, asegurándonos de que elegimos net Minecraft nivel mundial bloque. Muy importante, no la unicidad OpenJDK jurada eterna, sino el bloque de nivel, bloque que es muy importante. Y entonces decimos bloques es igual al tercer punto de registro crear registros, esa caja con nuestro modelo de curso MC que MID. Y si se trata de un registro diferente, también necesitaremos un público que sea un método de registro de llamadas nula con el Event Bus. Bus de Eventos. Y esto llamaremos Box dot registrarse con el bus de eventos. Y antes de que lo olvidemos, inmediatamente lo llamaremos en nuestro curso MC clase mod aquí mismo, mod blocks dot registrarse con el bus de eventos. Ahí vas. Por lo que ahora se registra el registro diferido. Y ahora lo que realmente necesitamos es hacer dos métodos de ayuda. Voy a escribir todo y luego te explicaré después de haber hecho esto, el código para ti está disponible en el repositorio de GitHub o un individuo igual de bien. No tienes que teclear todo aquí. Básicamente puedes copiarlo también. Entonces cuando tengo una estática privada y luego soporte de ángulo T se extiende bloque vacío. En realidad hagamos este ítem, lo siento, hagamos de este registro objeto de artículos. Entonces el nombre del método es el bloque de registro Atum, que va a tener un parámetro de nombre de cadena y un objeto de registro de tipo T, que va a ser el bloque. Entonces ese es el segundo parámetro. Y esto va a devolver más artículos, artículos que se registran con el nombre. Y luego un proveedor de un nuevo artículo de libro con la pestaña de bloques dot-dot-dot New Item Properties. Y pongamos en la pestaña creativa, MRTK por el momento. Pero en realidad vamos a cambiar esto. Entonces uno de los temas aquí es que ahora básicamente estamos hardcoding, vale, esto siempre va a estar en la pestaña miscelánea, realidad agregará un tercer parámetro, que va a ser el modo reactivo tabulador, tabulador. Y luego vamos a colocar esto justo aquí que básicamente podemos significar, Hey, vamos a hacer más ficha la creativa específica. Y entonces solo formatearé esto un poco diferente. Ahí vas. Y luego tendremos otro método que es una estática privada. Una vez más, el corchete angular T extiende un bloque, que también devolverá un objeto de registro esta vez del tipo T, el método de bloque de registro. Y esto tomará en una cadena, vamos a nombrar es proveedor tipo T, y luego un bloque llamado Brock, y luego ocho y luego un tercer parámetro, vez más, siendo ésta la pestaña de modo creativo. Tab. Ahora éste hará lo siguiente. En primer lugar hará un objeto de registro de tipo T o a devolver, que es igual a bloques de registro de punto, el nombre con el bloque. Entonces se enfriará en el método de elemento de bloque de registro con el nombre a devolver y la pestaña. Y entonces aquí vamos a regresar para regresar. Ahora esos métodos se ven absolutamente locos. No obstante, en realidad no están tan locos. Entonces estos son solo algunos métodos de ayuda para nosotros porque cuando registramos un bloque como este, ¿verdad? Cuando solo llamamos a bloques que se registran, lo que pasa es que crea el bloque, pero no crea un elemento para el bloque. Y esto es una especie de problema porque necesitamos elementos de bloque para cada uno de nuestros bloques. Ahora, hacerlo así, en mi mente tiene mucho sentido. Si alguna vez nos topamos con un bloque que no necesita un elemento de bloque, que lo haremos, simplemente haremos otro método que no llame a este método de elemento de bloque de registro. Y entonces básicamente estaremos bien. Querido es eso ¿qué significa esto, por ejemplo? Bueno, significa que T es solo un genérico y solo significa que lo que sea que se ponga en la T aquí tiene que ser extendiendo la clase de bloque. Básicamente siempre vamos a usar la clase de bloque de todos modos, porque eso es todo lo que realmente vamos a necesitar en este caso. Pero sí, eso sólo se asegura de que este sea el tipo correcto. Tirar del método de elemento del blog de registro también debe tener sentido. Esto básicamente sólo registra el ítem que está asociado a este bloque aquí que básicamente estamos creando un Tiene el mismo nombre básicamente, y eso debería ser más o menos todo que necesitas saber va a poner esto en la pestaña que pasamos aquí. Entonces todo debería estar bien. Vamos a ver esto en acción y vamos a ver. Entonces hagamos un objeto de Registro final estático público de tipo bloque. Será el bloque de subrayado cobalto, que va a ser igual para registrar bloque con una vez más al nombre bloque cobalto, doble subrayado Block fueron importantes este año, genera automáticamente el nombre de la placa 2, por así decirlo. Y luego un proveedor de un nuevo bloque. Y esto va a tomar en bloque propiedades de comportamiento, ese material.me. Y luego si pongo un punto, se puede ver que hay algunas propiedades más que podemos agregar dos bloques aquí. Cuáles son las que quiero agregar las propiedades de fuerza. Entonces este básicamente es el tiempo que se tarda en romper este bloque. Y entonces también muy importante que llamamos requiere herramienta correcta para gotas, que básicamente hará exactamente lo que quería. Además, esto no es copiar estas cosas. Oh, lo siento mucho. El ego. Y entonces el tercer parámetro va a ser el punto tab mode creativo. Hagamos una vez más miscelánea. Pero éste hace exactamente lo que dice en la lata requiere herramienta correcta para gotas porque tenemos que definir herramientas de TI más adelante, básicamente para que el bloque de cobalto realmente se caiga por sí mismo. Esto es algo que veremos en una conferencia posterior. En realidad el bloque cae, esos se hacen con mesas Lou, conocedores. Llegaremos a esto. Pero esto una vez más es el bloque y el elemento de bloque asociado registrado con esto. Te recomiendo encarecidamente también solo jugar con algunas de las propiedades que puedes agregar aquí puedes ver hay algunas aquí que básicamente puedes agregar. Por lo general, veremos a algunos de ellos pasando por las conferencias. Pero ahora veamos los archivos JSON porque esos son muy interesantes porque realmente necesitamos, en la carpeta del curso MC justo aquí, necesitamos agregar un nuevo directorio o estados de bloque. También hay muy importante que esté escrito correctamente. Y voy una vez más un tipo esto fuera. Entonces vamos a hacer un nuevo archivo aquí llamado el bloque de subrayado cobalto dot-dot-dot Jason, una vez más, asegurarnos de que esto esté escrito correctamente y tenga el JSON final. Entonces este es el nombre que necesita tener. Y luego voy a teclear esto. Entonces R1 segundos corchetes rizados, varianza, colon, corchete anticipado, comillas vacías, corchete rizado de colon. Y luego modelar colon, curso MC, bloque de colon, pestañas, cobalto, bloque de subrayado. ¿ Qué está pasando aquí? Bueno, el estado de bloque básicamente define diferentes variantes del mismo bloque. En nuestro caso aquí no tenemos ninguna varianza porque esto sólo va a ser un bloque normal. Y esto aquí mismo apunta ahora a un modelo de bloques JSON. Por lo que en nuestros modelos roto archivo busca un archivo de subrayado cobalto Block JSON. Por lo que vamos a hacer clic derecho en este nuevo archivo, cobalto subrayado blog.js. Y esto en realidad se parece al modelo de artículos que hemos visto antes. Corchetes rizados, padre, caído, bloque, cubo de barra, todas las texturas de coma caídas. Sólo registro. Todo colon, curso MC, bloque de colon, cobalto, bloque de subrayado. El modelo de bloques determina cómo se ve el bloque dentro del mundo. ¿ Qué significa eso? Bueno, mientras que los estados de bloque apuntan a simios con modelo de bloque particular, el modelo de bloque determina las texturas de ese bloque y luego básicamente se refiere a esta textura aquí mismo. Y también necesitamos un modelo de artículo para nuestros bloques. Esto es muy importante. Ah, esto en realidad va a ser un nuevo subrayado de cobalto blog.js. Esto sin embargo, se ve un poco diferente. Esto va a tener corchetes rizados y luego padre caído MC curso todo en Brock slash cobalto underscore block. Por lo que esto luego se refiere de nuevo a este modelo de bloques y hace que aparezca una especie de manera 3D que los bloques aparecen dentro del inventario t0. Copiemos sobre la textura del bloque cobalto aquí mismo en el portador del libro. Y luego también vamos a añadir la traducción. También muy importante. Vamos a copiar estos. Y luego vamos a llamar a esto el bloque MC curso bloque de cobalto. Y esto es por supuesto una cuadra que hace. Ahora eso es todo lo que necesitamos para especie de fuerza recapitular una vez más, necesitamos crear el objeto de registro para ese bloque en particular aquí. Entonces necesitamos un archivo JSON de Estados de bloque, un archivo JSON de modelo a granel, un archivo JSON modelo de ítem y la textura. Esta es una idea general. Y después de que hayamos visto si funciona o no, también veremos un segundo bloque B agregado simplemente básicamente para que tengas otro ejemplo. Pero por ahora, veamos si funciona o nos encontramos en mente para ello. Como puedes ver, se ha agregado el bloque cobol, así que pongámoslo abajo y se vayan, sí se ve bastante increíble, y todo funciona bien. Entonces si hay algún problema con este bloque, ¿no? Entonces si faltan algunas texturas, básicamente podemos ir a través una lista de chequeo que puedes comprobar. Entonces si el bloque solo no tiene una textura dentro del inventario, es el modelo de artículo Jason, eso tiene la culpa. La textura no funciona en el mundo, pero sí funciona en el inventario. Tiene que ser el bloque Estados Jason, eso es culpa. Y si no funciona en ninguno de ellos, bueno, entonces o bien es el modelo de bloque JSON o todos ellos. Entonces esa es una lista de comprobación general por la que puedes pasar y básicamente revisar. Pero ahora, solo por, ya sabes que tienes otro ejemplo, agreguemos otro bloque, ¿no? Entonces, una vez más, esto en realidad sí implica sólo una gran cantidad de copias aquí. Entonces vamos a copiar esto, lo voy a pegar. Este va a ser el cobalto o bloque y luego este va a ser el subrayado cobalto o en lugar de metal, esto va a ser no. Y esto va a ser más que cinco fuerza, sólo fuerza, ¿verdad? Eso va a estar bien. Ahora el resto aquí está bien. Esto ahora ha registrado el bloque. Nosotros por supuesto ahora necesitamos el libro dice Reason trajo modelo Jason y el artículo viejo Jason. Solo copiemos esto arrastrándolo a la misma carpeta mientras mantenemos el control y cambiemos el nombre aquí para bloquear, a cobalto o tema aquí. Esto ahora apunta a un modelo de bloques Jason en la carpeta aquí mismo, eso se llama subrayado cobalto o punto JSON. Vamos a crear eso también en el año de nombre para la textura a la que apunta, que vamos a sumar en tan solo un momento. Añadamos también la traducción de inmediato. Pero qué OR, y por supuesto el nombre aquí que subrayará el ego. También copia sobre el modelo de cobalto o ítem y cámbialo. O y luego subrayado o aquí también. Y entonces sólo necesitamos la textura para ello. Yo también voy a copiar esto. Y ahí lo tienes. Ahora se hace el siguiente bloque. Y sí, una vez más, esta es sólo la forma normal de hacerlo. Simplemente tendrás que pasar por esto en la próxima conferencia. Básicamente, vas a tener una tarea en agregar dos bloques propios. Esto básicamente va a roca bloque de cobalto y al cobol o bloque de estado profundo también. Entonces eso es algo que básicamente hay que tener en cuenta. Aparte de eso, sólo veamos si la búsqueda de terminación, si también se ha agregado o no el bloque o. Muy bien, encontramos esos atrás y microvesículas. Ver el cobalto o bloque también se ha agregado con éxito al juego. Por lo que todo funciona en grande aquí. De hecho eso es lo fácil que es agregar un segundo bloque también, ¿verdad? Como dije anteriormente, en la próxima conferencia se van a incluir algunas asignaciones. Te recomiendo encarecidamente que pases por esto porque puede ser muy, muy positivo y solo una muy buena idea básicamente va a hacer esos solo para que te des un poquito de sensación. Una vez más, todo el código para las conferencias aquí está disponible en el repositorio de GitHub o en un individuo igual de bien. Pero eso sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil cuando aprendas algo nuevo y te veré en la próxima conferencia. Ah, sí. 42. Asignación 5: bloque y artículo: O vendré aquí a la primera asignación para el cuarto curso en la sección de Minecraft. Y como ya he dicho, aquí, básicamente harás dos bloques y un artículo. Esto en realidad no debería ser demasiado loco. Por lo que ojalá encuentres la asignación en algún lugar escrito. Entonces básicamente tienes la asignación como pregunta escrita también. Y la idea es que tendrás que añadir el bloque de cobol de roca así como el cobalto o bloque de pizarra profunda. Ahora, las texturas para esos bloques están disponibles. Lo mismo con el artículo. Por favor, ten en cuenta el archivo de créditos aquí mismo para las texturas seguir una licencia en particular. Entonces si quieres usarlos en un repositorio público o algo así, y por favor ten en cuenta que los acreedores presentan, como dije. Y para el artículo, vas a agregar el elemento de cobalto crudo básicamente, y eso sería más o menos todo. Otros no deberían estar demasiado locos para ti. Esperemos que si has visto las pocas conferencias anteriores de lo que debería ser justa, bastante fácil de hacer. Bueno, buena suerte y diviértete en la asignación. Entonces, sí. 43. Solución 5: bloque y artículo: Muy bien, echemos un vistazo a la solución para la primera asignación aquí. Y por supuesto, ojalá fuera bastante sencillo. Acabas de agregar los dos objetos del registro para los dos bloqueos que queríamos agregar. Lo mismo con el artículo aquí, el cobalto crudo. Y entonces sólo necesitábamos los bloques, estos archivos JSON, que simplemente apuntan a dos archivos JSON modelo de bloque diferentes, que a su vez apuntan básicamente las texturas aquí. Y entonces la traducción que debería ser en este punto ojalá se convierta en rutina. Y entonces solo necesitábamos las cuencas del modelo del artículo también. Y esto también incluye el cobalto de roca, que luego sólo apunta a una textura aquí mismo. El general, ojalá esto se hiciera fácilmente. Y eso es más o menos todo lo que necesitas hacer para tener esto en tu juego. Y vamos a estar usando básicamente el cobalto crudo y todas las demás cosas también en el futuro. Ah, definitivamente es una buena idea tener esto también en tu juego. Todo el código está por supuesto, también disponible en el repositorio de GitHub o en, en, en un individuo igual de bien. Y nos vemos en la próxima conferencia. Entonces, sí. 44. (Conceptos creativos de (Minecraft Pasta creativa personalizada: Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta conferencia, vamos a estar agregando nuestra propia tableta de modos creativos personalizados al juego. Este es en realidad un proceso bastante fácil y sencillo. Por lo que en nuestro paquete de artículos, vamos a hacer clic con el botón derecho en nueva clase Java llamada el modo creativo del modelo, pestañas, o pestaña. Esto va a implementar lo siguiente. Esto va a tener una lectura final estática pública pestaña Mode llamada pestaña de subrayado del cuerpo, que es igual a una nueva. Y puedes ver a Norris solo la pestaña del modo creativo. Y si presionamos la tecla tabulador, generará el, generará una clase anónima para nosotros. En realidad tendremos que entrar a esto con un punto y coma aquí mismo. Y luego en lugar de devolver null aquí, y pasaremos a churn es una nueva pila de ítems. Más artículos dot cobalto, lingote, dot get. Y luego dentro de aquí, vamos a añadir una cuerda. Esta etiqueta aquí genera automáticamente una vez más. Y esta sólo va a ser la pestaña del modelo del curso. Cualquiera que sea el artículo que pongas aquí, también cualquier bloque que pongas aquí va a ser la imagen de visualización para la pestaña real, y esto es necesario para la traducción. Entonces en realidad voy a copiar esto más. Y vamos a ir a nuestro E y subrayarnos archivo JSON hasta el fondo aquí. Y sólo vamos a añadir el, añadir el punto grupo de ítem punto CourseMatch tab colon. Y vamos a llamar a esto el curso MC. No. Eso está bien. Ahora esto es un atípica en los términos de traducción aquí tenemos un gran G para la G mayúscula para el grupo de ítems. Y luego por supuesto mod tab con idea más externa. Pero eso es más o menos todo lo que necesitamos hacer para añadirlo. Ahora agreguemos también nuestros artículos y nuestros bloques a ella. En lugar de decir modo creativo, toca aquí vamos a decir más creativo, más pestaña, punto Ficha de curso. Simplemente voy a copiar esto sobre seleccionado presiona Control C, y luego Control V para pegarlo aquí y hacer lo mismo aquí mismo. Básicamente en todas partes donde tienes la pestaña miscelánea. Ahora vamos a poner en la pestaña Curso. Y ahora todos nuestros artículos y nuestros bloques estarán en los cuatro pasos aunque. A ver si funciona, o nos encontramos de vuelta en Minecraft. Y una muy buena señal es que tenemos una segunda página aquí en puede ver MC cores MOD y todo está aquí exactamente como esperarías que vaya. Eso es perfecto. Y justo todo funcionando exactamente como te gustaría escribirlo que ya es para esta conferencia aquí mismo. Espero que esto te resulte útil en yurtas de lo nuevo, si hizo nuestra muy apreciada revisión de ti. De lo contrario, los veré en la próxima conferencia. Entonces, sí. 45. (Conceptos básicos de (Minecraft: Muy bien, Bienvenido de nuevo ese curso de forraje para 180. Y en esta conferencia, vamos a estar agregando recetas personalizadas a Minecraft, o las recetas personalizadas se hacen a través de archivos adyacentes. No se hacen en la carpeta de activos, sino más bien en una carpeta nueva. Por lo que en los recursos haga clic derecho en nuevo directorio llamado datos o datos dentro de su curso MC, y luego dentro de sus recetas. Ahora lo que es muy importante es una vez más, este directorio tiene que estar completo, escrito completamente correctamente, de lo contrario no funcionará. Y básicamente voy a mostrar un ejemplo de cada año de receta. Como dije, estos están en formato JSON una vez más. Y lo que podemos hacer en realidad es que podemos ir a las bibliotecas externas aquí abajo. Podemos ampliar esto. Y luego encontrarás algún lugar aquí abajo, ya sabes, bajando. Pero finito Minecraft nueve extra 180, uno o lo que sea la versión actual. Si expandes esto y entras en la carpeta de datos, verás Minecraft y luego todos los archivos JSON que están en Minecraft. Entonces, por ejemplo, podemos echar un vistazo a cada uno de esos archivos JSON. Estas son básicamente todas las recetas de vainilla como pagar. ¿Cómo funciona esto? Se puede ver el carbón por voladura fresca o interesante, pero hay, ya se puede ver hay diferentes tipos de recetas. ¿ Cómo funciona el compositor, cómo se hace el combustor? Se puede ver esto. Ves O tag, interesante. De acuerdo, estamos usando etiquetas aquí. tiempo de cocinero podría estar deshilachado. Tenemos cosas como la galleta. Por lo que básicamente puedes encontrar ejemplos de cosas aquí. Recomiendo encarecidamente pasar por esto, entrar aquí. Si alguna vez tienes una receta que básicamente quieres recrear, solo puedes encontrarla. Entonces se puede decir, por ejemplo, para el bloque óseo aquí, ¿no? Oh, eso es como una cosa de verdad que quiero hacer. Básicamente puedes presionar el control C para copiarlo. Vuelve a tus carpetas, entra aquí, controla V para pegarlo. Y entonces por ejemplo, podría decir que bloquean cobalto de lingotes a donde van y luego voy a abrir esto y luego puedes ver ahora puedo por supuesto cambiarlo. Y las ideas generales que bueno, tienes diferentes tipos de aquí, ¿no? En este caso tenemos una receta de forma. El patrón está lleno. ¿ Cuál es el patrón? Será el padre son tres cadenas de longitud tres. Por lo que esto representa la rejilla de artesanía. Esta es la ranura superior izquierda y luego la ranura superior derecha y así sucesivamente y así sucesivamente. Por lo que esto no debería ser demasiado loco para entenderlo. Podemos poner llaves aquí. Por lo que se puede ver que este símbolo hashtag básicamente representa un tazón nuevo artículo en este caso, bueno, vamos a cambiar esto a nuestros artículos de cliente. Entonces vamos a decir MC curso colon o compró lingote de subrayado. Y luego el resultado aquí, por supuesto va a ser MC curso colon o bloque de subrayado negrita. Pero todo esto en realidad debería tener sentido en este momento y no debería estar demasiado loco. Pero esta es una receta con forma, como dije, porque tiene una forma particular. Ahora lo que también funcionaría es algo así. Entonces tendrías que facturar las dos primeras filas o las dos filas inferiores en el banco de manualidades. Por lo que no siempre tienen que ser de longitud tres o tres cuerdas. También hay obras. Entonces algo como esto, que sería el barco, por ejemplo, también funcionaría porque se puede poner el barco en la parte superior o también en la parte inferior. Entonces eso es muy importante. Y en realidad copiaré sobre todo estar disponible para ti en el repositorio de GitHub o un individuo igual de bien. Se puede ver en primer lugar , esta es una receta sin forma porque básicamente podemos poner el ingrediente en cualquier lugar en el banco de manualidades. Y esto es básicamente un bloque de cobalto, ¿verdad? Y luego vamos a conseguir lingotes robot y luego nueve de ellos. Entonces, básicamente, esto es lo mismo que éste justo a cambio, ¿verdad? Entonces a la inversa sin embargo, puedes recuperar los nueve lingotes de un bloque. Y luego tenemos estos dos que son los lingotes o la fundición. Para que veas que puedo oler el cobalto o en un lingote aquí. Lo mismo con esto, pero vamos a fundir o volar será bastante autoexplicativo, todas las cosas consideradas. Y luego justo como ejemplo, también puedes usar, Vamos a múltiples claves. Esta es la forma en que los usas. Y también puedes usar artículos de Minecraft ya sea como resultado o como un artículo de artesanía que funciona totalmente bien. Al igual que no hay problema con esto en absoluto. Entonces esto es una especie de idea general, fin de año, Bueno, en no del todo la siguiente conferencia, pero la conferencia después de eso, si no me equivoco, vas a estar haciendo tus propias recetas personalizadas y básicamente tener algunas ideas de lo que haces. Pero todos son bastante sencillos. A pesar de que, en general, Eso es todo. Muy importante. En realidad las bibliotecas externas recomiendan mucho pasar por esto porque también está la carpeta Activos donde todos los estados de bloqueo, el Lang, las texturas también están termina aquí mismo, las texturas están aquí. Por lo que básicamente puedes echar un vistazo a todo, también a los archivos del modelo. Por lo que recomiendo encarecidamente ir por las bibliotecas externas aquí porque esto es justo lo mejor que puedes como nunca mirar. Si no lo sabes, Hey, ¿cómo puedo hacer una receta que sea exactamente como x en vainilla? Tan solo entra aquí, échale un vistazo. Muy fácil, Sin preocupaciones en absoluto. Pero este es un proceso muy sencillo. Pero por el momento, veamos si funciona o por qué nos encontramos de vuelta en Minecraft. Entonces probemos primero el cobalto interior y van y bloquean cobalto y veamos, puedo recuperar los nueve lingotes también. Y lo que encontrarás también es que lo hará automáticamente como esas, como recetas en el libro de recetas también. Entonces eso es realmente bonito. Y vamos a ver si también podemos oler el cobalto o, y por supuesto que podemos, eso está totalmente bien. Eso también funciona. A pesar de que todo aquí funcionando muy bien. Y también sólo por el bien de la discusión, ¿por qué no tratar de hacer que la pila de diamantes aquí, el ego 64 diamantes funcionando también. Bonito envoltorio, eso ya sería para esta conferencia aquí mismo. Espero que te haya parecido útil e ignorancia de lo nuevo. Una vez más, todos los archivos JSON están disponibles en el repositorio de GitHub o donde un individuo igual de bien. Y te veré en la próxima conferencia sin embargo. Sí. 46. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al cuarto curso para 118. En esta conferencia, vamos a estar echando un vistazo a agregar tablas de rutas personalizadas a Minecraft. O una mesa suelta básicamente define lo que un gotas de un bloque. Esta es también una de las razones por las que agregamos las requiere herramientas correctas para gotas aquí, esto todo ahí. Porque si no tenemos eso, entonces básicamente cualquier herramienta con la que pudieras este bloque dejaría caer la mesa de Lu real o las gotas de roca, por así decirlo. Una vez más en nuestra carpeta de datos, en la carpeta del curso MC, haga clic con el botón derecho en nuevo directorio llamado tablas de subrayado de botín. Una vez más, asegúrate de que esté escrito correctamente. Entonces dentro de ahí un nuevo directorio llamado bloques. Y entonces realmente voy a copiar sobre la tabla de botín para el bloque de cobalto es ver esto. Entonces así es como se ve. Es de tipo block. Hay una alberca y luego básicamente tienes una entradas diferentes en esta alberca. Podemos ver esta varilla una vez ahí está la entrada aquí, una entrada de tipo artículo. Y entonces básicamente dejamos caer un bloque de cobalto o todo esto a veces puede llegar a ser un poco confuso, sobre todo cuando ahora voy a copiar sobre la mesa de botín para el cobalto o bloqueado por curso que funciona un poco diferente. Veremos que esto es más complicado de lo que sería al principio impar. Pero claro que lo que tenemos es que sólo tenemos una entrada. De lo que se trata es de una entrada alternativa, por así decirlo. Y la idea aquí es que, bueno, o se va a soltar esto y va, va a caer esto si se cumple la condición aquí, lo que significa que el encantamiento en nuestra herramienta tiene que ser toque de seda. Y luego deja caer el cobalto o de otro modo, caerá entre 25 Ra. Esa es la idea general aquí. Y se puede ver que también aplica un bono cuando se trata de los encantamientos de la fortuna también. Eso es algo que también se hace en este caso con una función. Recomiendo encarecidamente una vez más, bajando a la unidad de bibliotecas externas, cliente de microondas extra one 1801, en lugar de la carpeta de datos, también encontrarás que la carpeta de tablas aludidas. Y luego dentro de ahí puedes echar un vistazo a todos los bucles, mesas de todos los bloques de vainilla. Recomiendo muy bien. No puedo recomendar lo suficiente para bajar aquí y sólo echar un vistazo a esto. También te daré a otros recursos que son realmente importantes. Uno de ellos siendo la entrada de la tabla luge Wiki aquí desde el micro fan y wiki porque aquí verás en realidad todas las cosas diferentes, todas las cosas diferentes que puedes básicamente poner en. Se puede ver que aquí hay un montón de cosas, recomiendo encarecidamente echarle un vistazo a esto, básicamente cómo funciona. Y luego hay otro y eso va a ser desalineado punto GitHub IO tabla de botín. Y este es un generador de mesa de luge. Tan solo asegúrate de que estás en 118 en la parte superior justo aquí. Y luego cuando tengas eso, básicamente puedes cambiar todas las cosas de aquí. Se puede decir, Hey, quiero algunas funciones específicas. Se puede ver que estas son todas las funciones, ¿no? Les vas a preguntar condiciones específicas como una oportunidad aleatoria. Puedes ser como, Oye, me pregunto si el, si la entidad es asesinada por un jugador, todo eso, todo eso, todo eso. Entonces hay una cantidad loca de cosas que básicamente puedes agregar aquí. Recomiendo encarecidamente estar abierto a la experimentación, probar un montón de cosas. Esto es lo mejor que puedes hacer para las tablas de bucle. Y estoy seguro de que en ese punto entonces lograrás conseguir algo realmente mesa Lu que es exactamente lo que querrías que fuera. Pero esto en realidad no es todo lo que tenemos que hacer porque realmente tendremos que añadir algo más. Y eso es una vez más en nuestra carpeta de datos, haga clic con el botón derecho en nuevo directorio llamado Minecraft, el juego que podría haber oído hablar de él. Y dentro de ahí necesitamos agregar un nuevo directorio, etiquetas viejas. Y luego dentro de ahí, necesitamos agregar un nuevo directorio llamado bloques. Y luego dentro de ahí, necesitamos agregar un nuevo directorio llamado minable. Ahora bien, ¿por qué necesitamos esto? Bueno, necesitamos definir cuáles son nuestros bloques, nuestro ancho mental. Y para eso en realidad vamos a bajar a la carpeta de datos, Minecraft, huevos, bloques, y luego veremos las mandíbulas justo aquí. Lo que voy a hacer es simplemente seleccionarlos todos, presionar el control C para copiarlos. Entonces entraré aquí, presiona Control V para pegarlo. Ten todos esos archivos JSON con todos los bloques de vainilla aquí. Lo que puedo hacer es solo, solo voy a seleccionar también todo esto y simplemente deshacerme de él o de todos esos archivos JSON. Pero estas son etiquetas. Ahora etiquetas por el momento básicamente puedes pensar en ellas como una colección de diferentes bloques o elementos que tienen alguna funcionalidad similar a ellos. Pasaremos por qué bloques están en una conferencia posterior también. Pero por el momento, lo que haremos es solo sumar por todos los bloques que tenemos al Pic X Jason. Por lo que este sería MC curso colon cobalto subrayado block. Y entonces solo duplicaré esto cuatro veces. Esto es entonces una pared de bloque de cobol de roca o y luego también la pizarra del IEP. Pero muy importante es que sólo se pueden definir bloques que existen dentro de su MOD. Aunque si no tuviera el cobalto de capa profunda o si añadí aquí, entonces obtendré un error cuando traté de unirme a un mundo que es muy importante. Y luego hay tres cosas más que necesito. Y esos son, bueno, el nivel de herramienta que necesito para este nivel diferente. Entonces básicamente puedo buscar esto. Por lo que puedes ver bonito diamante 200 necesita hierro para necesitar herramienta de piedra. Una vez más, sólo copiaré los tres de esos más. Muy recomendable hacer lo mismo. Estos son por supuesto, también todos disponibles para ti en el repositorio de GitHub o un individuo igual de bien. Y entonces sólo voy a hacer esto y sólo vamos a decir esto y luego la herramienta de piedra también acaba de deshacerme de. Y así por ejemplo, digamos, ya sabes qué, creo que el cobol y es herramientas de hierro al menos. Entonces lo que vamos a hacer es que voy a decir MSE curso colon o bolt underscore block. Y luego te das cuenta, ¿sabes qué? Tomemos esos, copiarlos, ponerlos aquí. Eso es un poco más fácil. Se van. Por lo que sólo podremos minar los que tengan al menos una herramienta de hierro. Y arriba, Esa es la idea. Por lo que herramienta de hierro y arriba, vamos a poder minar esos ahora, cada nuevo bloque que agreguemos, tendrás que añadir a estas etiquetas. Probablemente no estaré haciendo eso en mientras avanzamos. Definitivamente no lo voy a mostrar porque en este punto, ya sabes, si lo has visto una vez, probablemente deberías ser muy fácil de añadirlos tú mismo. Debe ser bastante sencillo, pero eso debe ser todo lo que tienes que hacer. Y ahora después de haber agregado las etiquetas y las tablas de laúd, Veamos si funciona. O encontramos dice en Minecraft. Entonces vamos a ver si puedo minar esto y ellos van las gotas de bloque. Y aquí deberíamos conseguir algo crudo para Walt y lo hicimos. Para que todo funcione totalmente bien. También probemos esto con un pico de piedra y ya se puede ver que lleva bastante tiempo, por lo que probablemente no funcione. Y se puede ver que no hace lo mismo con el diamante aX. Se tarda tanto en incluso como empieza a ver la animación de ruptura ni siquiera vale la pena intentarlo. Por supuesto que no va a funcionar, justo ahí ya lo estaría para esta conferencia aquí mismo. Espero que esto te resulte útil en cuanto nuevo, una vez más, todos los archivos JSON están disponibles en el repositorio de GitHub o en un individuo igual de bien. Y nos vemos en la próxima conferencia. Entonces, sí. 47. ASSIGNMENT 6: cuadras de presentación y loot: Muy bien, bienvenido de nuevo a la segunda asignación aquí para el curso para 118. Y en esta asignación, se supone que debes agregar algunas mesas sueltas y algunas recetas. Por lo que las recetas que se supone que debes agregar es la número 1. El receta de las pepitas. Para eso puedo poner un lingote y sacar nueve pepitas. Y luego por supuesto el reverso una vez más, donde básicamente puedo poner unas nueve pepitas en el banco de manualidades y luego sacar un lingote. Eso es el número uno. número dos es, también debes agregar las recetas para el pozo de pizarra profunda, o para fundir así como el cobalto crudo o para fundir. Y luego también poder elaborar el bloque de cobalto crudo a él y luego de él de nuevo, básicamente también. Y luego una cosa más es que debes agregar una receta que contenga al menos dos artículos de vainilla. Tan similar a la pila de diamantes de otra estrella. Con eso lo hemos hecho aquí, sólo tiene que contener dos artículos de Minecraft aquí. Y luego el resto básicamente puedes llenar como quieras. Puede resultar en cualquier cosa que te gustaría solo ser creativa que son, y sólo probar un montón de cosas fuera, ¿verdad? Así que buena suerte y diviértete con la asignación. Entonces, sí. 48. SOLUCIÓN 6: retarte y matillas: Muy bien, Bienvenido a esta solución para esta asignación. Y por supuesto, agregar las tablas de luge, Empecemos con esas habría sido bastante sencillo. Año básicamente acabamos de tomar la mesa de botín de bloque de cobalto y reemplazarla por el bloque cobol de fila. Entonces lo mismo va para la mesa de cobalto de pizarra profunda o botín, donde en lugar de cobalto o cae las profundidades tardío cobalto o cobalto de fila aquí todavía debería caer normalmente. Entonces esas son las mesas de laúd. Y luego cuando se trata de las recetas, se puede ver que hay bastantes. Ahora en general, esos también deberían ser bastante simples, ¿verdad? Lo último del cobalto de pizarra profunda o será bastante sencillo, es lo mismo que el normal, solo, ya sabes, con el estado profundo ahí dentro. Y casi lo mismo va para el resto de la misma. Todo ello debe ser bastante autoexplicativo. Todas las cosas consideradas. En todo caso, no queda claro o tienes alguna pregunta, por supuesto, siempre puedes sentirte libre de usar la Q y a que se proporciona. Y responderé las preguntas mejor de mi capacidad. Pero de lo contrario esto sería todo para esta asignación aquí mismo. Espero que te haya parecido útil esto y líderes de lo nuevo. Te veré en la próxima conferencia sin embargo. Sí. 49. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar agregando un elemento avanzado personalizado a Minecraft. Ahora lo que yo lo llamo un ítem avanzado es básicamente un ítem que tiene su propia clase asociada a él. Esto no siempre significa que sea necesariamente loco avanzado, pero básicamente tienes la capacidad de agregar mucho más funcionalidad a este ítem. Entonces, solo veamos cómo hacer esto. En nuestro paquete de artículos. Vamos a hacer clic derecho nuevo paquete llamado Custom. Y luego dentro de ahí no haría un clic derecho nueva clase Java llamada el elemento de varilla dowsing. Te recomiendo encarecidamente terminar cada elemento personalizado con la palabra item para que sepas lo que es. Esto extenderá la clase de ítem aquí mismo, se colocará sobre este create, constructor coincidente super. Y entonces básicamente echaremos un vistazo a lo que podemos hacer. Entonces si hacemos clic en el botón medio del ratón en la clase de ítem, en realidad podremos ver todos los diferentes métodos que podríamos ser capaces de anular. Y se puede ver que hay muchos métodos que podemos anular aquí, lo cual es realmente genial. Y hay incluso en la parte de atrás aquí, fraguo elemento que también podemos hacer clic en el botón central del ratón, y hay aún más métodos que podemos anular. También puedes ver los métodos que podemos anular si escribimos anulación aquí. Y luego puedes ver básicamente todos los diferentes métodos que son posibles para anular. Y esto son muchos métodos como se puede decir claramente. Entonces realmente mucho de esto se reduce a una vez más, probar un montón de cosas, probar un montón de cosas. Y una vez más probando un montón de cosas, estando abierto a la experimentación, probablemente lo mejor que básicamente te puedo decir. Ahora vamos a hacer un artículo de varilla de dowsing. Y quiero hacer con esto es lo siguiente. Quiero poder hacer clic derecho con este ítem en un bloque. Y entonces básicamente se extenderá hacia abajo en el suelo. Básicamente echa un vistazo a cada bloque que está por debajo del bloque en el que acabamos de hacer clic. Y si encuentra un bloque valioso, entonces imprimirá las coordenadas. Eso es todo lo que quiero hacer. Esta ya es una idea bastante interesante. Todo lo que vamos a ver el método de clic derecho al hacer clic derecho en bloques porque hay dos métodos diferentes para hacer clic derecho en Nanoblock y, y hacer clic derecho en el aire por así decirlo. Por lo que sólo podemos poner en uso, y se puede ver este uso aquí mismo. Este es el que se llamaría. Este método se llamaría si solo hacemos clic derecho en el aire para que esto sea lo que quisieras. El método US on aquí es el método que se llama al hacer clic con el botón derecho en un bloque en particular. Pero este es el que vamos a anular aquí y ver que tiene un uso en el contexto. Y lo que vamos a hacer es que sólo vamos a, bueno, voy a poner la funcionalidad en y voy a tratar de explicar mejor a medida que avanza. Entonces vamos a tener una declaración if donde vamos a preguntar básicamente el contexto p que consigue un nivel. Entonces vamos a conseguir el mundo. El nivel aquí, vamos a decir es del lado del cliente. Entonces en esta rara, rara instancia, realmente queremos hacer todo en el cliente en este caso porque en realidad es un poco más interesante para nosotros. Entonces vamos a decir bloqueo Pausa, posición. Clicked es igual a los contextos dot, get position, DIA, get clicked, pause here. Y el módulo va a importar esto presionando Alt y Enter. Entonces queremos al jugador. El jugador va a ser contextos, dot-dot-dot jugador que vas. Y luego una vez más haga clic en jugador y luego importe esto con Alton también. Y luego por último pero no menos importante, tendremos un booleano que se va a encontrar libro, que aquí es igual a falso. Y luego queremos un bucle for. Entonces solo voy a poner este for-loop y luego vamos a ver lo que básicamente hace esto. Pero vamos a empezar aquí. Voy a decir que más igual posición clicó eso, get y i plus. Y entonces lo que quiero hacer es básicamente que quiero conseguir el bloque que está por debajo la manzana que acabo de mirar. Entonces bloque abajo, que es igual al punto de contexto p, una vez más obtener nivel, no obtener bloqueo, fecha en la posición particular, que es la posición clicada punto abajo, por cuánto estoy contando exactamente. Y entonces sólo estamos sacando el bloque de eso e importando el bloque presionando Alt y Enter una vez más. Ahora, lo que quiero entonces es que quiero dar salida a las coordenadas y también tengo que revisar, vale, es este bloque, ya sabes, algo valioso. Entonces para eso vamos a hacer dos métodos de ayuda. Ahora en realidad voy a copiar sobre la salida de las coordenadas, ¿no? Este es el método de salida aquí. Entonces podemos ver que solo estamos sacando el nombre del bloque y luego sacando las coordenadas del mismo. Entonces eso es todo lo que realmente estamos haciendo aquí. Y entonces también queremos un booleano privado, viejo es valioso candado, que apenas toma en una cuadra aquí. Y luego sólo devolveremos un verdadero si este es un libro valioso, lo que vamos a hacer es que vamos a devolver bloque igual a bloques de puntos sondeo o por ejemplo, o LOC es igual, se bloquea o, o. Y entonces vamos a duplicar este va a tener otra naranja aquí. Formatea esto un poco diferente. Aplicar esto. Sí, y entonces también pondremos diamante o y tal vez sólo mineral de hierro aquí también. Y bloque de hierro pero hierro o hace. Por lo que estos son los cuatro bloques valiosos por el momento. Si quieres más, por supuesto puedes agregar más en una conferencia posterior. También vamos a ver una forma más robusta de hacer esto con etiquetas. Pero por el momento, esto va a estar bien. Entonces lo que vamos a decir es que vamos a decir si es valioso, caminar una cuadra abajo. Vamos a dar salida a las coordenadas en la posición clicada que abajo con yo aquí, sin embargo, porque esta es la posición real en la que acabamos hacer clic con el jugador y el bloque de abajo. Entonces estableceremos el bloque encontrado para que sea cierto. Y luego saldremos del bucle for aquí porque encontramos una cuadra. Y ya no necesitamos hacer básicamente ninguna comprobación porque sólo queremos dar salida al primer bloque que encontramos. Y luego una vez que terminemos con el for-loop aquí, vamos a decir, si no encontramos bloques. Por lo que esto significa que no se ha encontrado ningún bloque. Vamos a decir datos de jugador y mensaje con un nuevo componente de texto traducible. Elemento, MC curso dowsing, punto de varilla sin valor de subrayado. Y luego después de los paréntesis, el segundo parámetro va a ser player dot get UUID hace un año. Entonces esta es, por supuesto, una forma de emitir un mensaje en el chat. Ahora, este es un componente de texto traducible, así que tenemos que tomar esto aquí mismo y añadirlo a la ONU subrayarnos archivo JSON. Entonces sólo vamos a agregar esto y sólo decir que no hay objetos de valor fuera. Te recomendaré usar componentes traducibles en todas partes que puedas, básicamente haciendo que tu marca un poco más robusta u otros países hablantes también. Entonces básicamente cuando tienes otro lenguaje que solo hace que sea un poco más agradable leer y usar en este momento. ¿ Cuál es el resto? ¿ Qué está pasando aquí? Bueno, en primer lugar, nos aseguramos de que estamos en el cliente. Este no suele ser el caso. Por lo general queremos estar en el servidor, pero en este caso, porque solo estamos generando algo En el cliente está bien porque este uso en en en realidad será todo dos veces en el servidor y los que el cliente entonces sólo hará dos variables aquí. Entonces la posición en la que hiciste clic y luego el jugador. Y luego vamos a ir desde el fondo del mundo hasta la posición real en la que hicimos clic. Esto va a ser y. y, y vamos a empezar cuando hayamos llegado a esto. Ahora lo que realmente tendremos que hacer es realmente que tendremos que cambiar este pequeño pedacito aquí en el estado de bloque. Porque si pongo un número negativo aquí en el siguiente, por supuesto iríamos por encima de todo de repente. Por lo que realmente puedo entrar en esto también. A ver. Vamos a ir a la posición descendente a, en esta distancia. Ahora el verdadero problema es, por supuesto que esa es la distancia aquí es negativa. Y claro que sólo subiremos en lugar de bajar. Y en realidad queremos sumar un 64 a esto porque por supuesto, en lugar de que 0 sea el límite del mundo, ahora es negativo 64. Es por ello que básicamente necesitamos también esto arriba por un 64 año y luego el resto debería funcionar totalmente bien, porque el primer bloque al que literalmente vamos a echar un vistazo es el propio bloque que acabamos de hizo clic. Y luego a medida que me convierta en uno, entonces vamos a bajar uno y así sucesivamente y así sucesivamente hasta todo el camino a 0 cuando lleguemos a esto. Pero entonces lo que pasa es que entonces podemos continuar. Por debajo de eso. Por eso agregamos un 64 aquí. Entonces en general, esto debe ser todo lo que necesitamos hacer. Vamos a la clase More Items y vamos a crear los ítems. Nosotros sólo vamos a copiar esto, hacer de esto la varilla de dowsing. Y luego aquí la misma varilla de dowsing. Ahora en lugar de un nuevo artículo, se trata de un nuevo artículo de varilla de dowsing. Esto es sumamente importante que hagas esto. Tenga en cuenta que este tiene que ser un nuevo artículo de varilla de dowsing. De lo contrario, por supuesto no obtendrá esta funcionalidad. Muy cuidado con. Añadamos la traducción también. Entonces hay una varilla de dowsing, y luego aquí es una varilla de dowsing. Copiemos aquí el modelo de artículo de Inglaterra para la varilla de dowsing. Y cambia el nombre aquí, varilla de dowsing. Y luego también copiaremos sobre la textura de la varilla de dowsing en la carpeta de artículos aquí mismo. Dowsing varilla hace. Y ahora esto debería ser todo lo que vamos a necesitar. Aunque. A ver si funciona. Muy bien, nos encontramos en Minecraft y como puedes ver, el dowsing o se ha añadido al juego. Vamos a ver si hago clic derecho. Bueno, eso es una gran cosa para ver. Tu, esto por supuesto no es del todo lo que teníamos en mente. No se pueden ver objetos de valor encontrados que funcionen totalmente bien. Esto solo es la salida real es por supuesto, se haría un poco más agradable de leer, pero sin preocupaciones en absoluto. Podemos ver la posición real de la misma. Y bueno, quiero decir, eso es absolutamente perfecto. Esto parece estar funcionando totalmente bien. Y todo está bien. Ahora en realidad hay dos cosas que también debemos agregar, y eso está en las propiedades del artículo, también debo agregar la durabilidad aquí mismo. Y esto sería, digamos por ejemplo, 16, para que podamos usarlo 16 veces. Y entonces también debemos asegurarnos de que realmente dañemos los artículos. Por lo que esto se va a hacer fuera de la declaración if. Vamos a decir contextos P, punto-punto, conseguir artículo en la mano que duelen y se rompan. Por uno. Vamos a decir contextos P, punto-punto, conseguir jugador. Entonces vamos a decir hacer un paréntesis donde ponemos en jugador aquí, luego una, una flecha, y luego decimos jugador dot broadcast, break event con la capa dot get used item hand. Por lo que esto básicamente sumará o restará una durabilidad cada vez que utilicemos este artículo. Y entonces esto básicamente sólo se asegura de que tengamos algo de durabilidad. Son algo que tampoco podemos apilar la varilla de dowsing, que por supuesto sí tiene mucho sentido. Vamos también entonces sólo por el bien del argumento en este, lugar de hacer el getName, hagamos solo como elemento y luego obtenemos el nombre del registro y luego pongamos eso en una cadena. Esto también debería funcionar. Esto creo entonces debería generar colon Minecraft, y luego lo que sea que sea el bloque real, que está totalmente bien también. Esos son sólo algunos ajustes aquí. Todo el código está por supuesto disponible para ti en un repositorio de GitHub e individual igual de bien. Pero esto sería todo para esta conferencia aquí mismo. Espero que esto te haya parecido útil en euros de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 50. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar agregando un bloque avanzado personalizado a Minecraft. Similar al artículo avanzado. Y bloque avanzado necesita su propia clase separada. Por lo que en el paquete de bloque, haga clic derecho en nuevo paquete llamado personalizado. Algo así vamos a hacer clic derecho nueva clase Java llamada el bloque SPD. Y el bloque de espíritu tendrá la siguiente funcionalidad. Si salimos, vamos a conseguir que se nos aplique un efecto. Y esos son los efectos de velocidad de movimiento básicamente van a ser más rápidos. Ahora esto extiende la clase de bloque, asegurándonos de que elegimos un bloque de nivel mundial de Minecraft neto. Muy importante. Y luego pasamos el cursor sobre este constructor credo que coincide super. Y si el parámetro aquí está sin mapear, podemos hacer es que solo podemos hacer click en él, presionar Shift F6, y luego elegir Propiedades aquí, solo para que se vea un poco más bonito. Y entonces el método que queremos anular es el método paso a paso. Entonces solo vamos a escribir eso y luego presionar la Tab dos. Completa esto. Y una vez más, podemos hacer clic derecho en la clase de bloque y podemos ver, bueno, muchos métodos diferentes que podemos anular, probablemente incluso más que en el elemento. Y esto por supuesto no es así porque también hay una interfaz I4 cada bloque que tiene aún más métodos que puedes anular esto. Se puede ver esto es una locura y un montón de métodos que recomiendo mucho. Una vez más, sólo estando abierto a la experimentación. Se puede ver si empecé a escribir anulación aquí. Ahí está el método estadounidense que se utiliza para hacer clic derecho o bloquear. Hay métodos como agregar efecto de aterrizaje en los efectos de ejecución. Esto es algo loco. Bloque de cosecha puede cosechar bloque. Eso es como para un artículo en particular, Lienzo cosecha el bloque. Tenemos una cantidad loca de cosas como claramente se puede decir todo. Ahí está el método de destruir, Ahí está el método de texto de pluma Hover, y luego algunos de ellos que están en desuso aquí. Ahora, por lo general cuando tienes un método en desuso como por ejemplo, el onRemove o el método US. El método estadounidense es un gran ejemplo de esto, no siempre, necesariamente significa que no debes usarlo. Lo que eso significa es que no debes llamar a este método incluyendo el super cool. Pero eso es algo a tener en cuenta aquí. Pero para nosotros, sólo nos interesa el método paso a paso. Y lo que queremos comprobar aquí es básicamente No estamos en el cliente o que habrá que escribir es signo de exclamación P nivel es cliente-lado. Ahora este signo de exclamación aquí es sumamente importante. De acuerdo, No lo hagas sin esto porque sin el signo de exclamación, estamos revisando un extranjero, los clientes que queremos estar en el servidor. Tenemos que negar esto muy importante. Entonces queremos comprobar si la entidad que ha pisado esto es instancia de una entidad viviente. Esto simplemente significa que podemos lanzarlo sin un tema. Entonces podemos decir entidad viviente. Y entidad es igual a E entidad punto cast. Y entonces con mayor frecuencia sugerirá ya entidad viviente. Entonces esto es genial. Y entonces lo que podemos hacer es si es una entidad viviente, podemos llamar a punto efecto add. Y aquí sólo queríamos llamar básicamente a una nueva instancia de efecto mob. Aquí pasamos en una mafia efectos que lo que queramos, en este caso es velocidad de movimiento. Y entonces el segundo parámetro aquí va a ser la longitud. Entonces este es el momento que tiene este efecto. Si ponemos un 200, esto serían 200 garrapatas. Entonces divida esto por 20 para obtener la cantidad de tiempo en segundos básicos. Y también puedes agregar un tercer parámetro, y ese será el amplificador. Entonces esto básicamente es un amplificador aditivo, lo que significa que si no tienes nada aquí dentro, va a ser, ya sabes, uno, esto va a ser sp2, esto va a ser sp3 y así sucesivamente y así sucesivamente. Entonces esa es la idea general aquí. Pongamos un a solo para que podamos ver esto también. Y bueno, eso es casi todo lo que necesitamos hacer en el ámbito de la funcionalidad para la rápida fuerza de bloque. Ahora todavía tenemos que registrarlo. Sólo vamos a copiar sobre el cobol de sueño profundo o aquí y vamos a llamar a esto el bloque de subrayado SPD. Y luego el nombre lo mismo, bloque de subrayado rápido. Entonces muy importante. Una vez más, este es un bloqueo rápido en esta ocasión y no un bloqueo normal. El otro material con el que realmente estoy contento, ahora solo llega a los archivos JSON que voy a copiar. Todos esos están disponibles para ti, por supuesto, en el repositorio de GitHub o en un individuo igual de bien. Ver esto es solo un modelo de bloque normal. Jason. Entonces vamos a copiar sobre este de aquí y digamos ET subrayado bloque. Y entonces el nombre va a ser rápido bloque como copia sobre el modelo de bloque también. Una vez más, a algún modelo de bloque normal que, eso apunta a una textura. Y el modelo de artículo tampoco posee nada loco o espectacular. Es solo un modelo de artículo normal como lo hemos visto para muchos otros bloques que simplemente apuntan al modelo de bloques. último pero no menos importante, por supuesto, vamos también a añadir textura y el ego. Ahora hemos agregado todo lo que necesitamos agregar. Aunque, Veamos si funciona. O ofensas de vuelta y las migrañas pueden ver que la SVD se rompió se ha agregado a los juegos. Vamos a ponerlo abajo. Y lo que es muy importante es que, si bien esta flecha apunta a esta dirección, siempre apuntará a esta dirección sin importar cómo la coloque hacia abajo. Simplemente tendremos eso en mente. Porque esta textura básicamente siempre va a apuntar en la misma dirección. Vamos a ver en una conferencia posterior cómo esto puede cambiar. Vayamos a la escuela aquí y ya puedes ver que ya tengo velocidad para aplicarme mientras estoy ahí. Haré que esto me aplique constantemente. Pero entonces en cuanto me voy, puedes ver ahora yo también tengo velocidad. Esto podría ser un bloque realmente fresco, por ejemplo, para cualquier tipo de mapa de aventura o como mapa parkour posiblemente goma que ya sería para esta conferencia aquí mismo. Espero que esto le resulte útil en cuanto a la nueva fuerza. Una vez más, todo el código está disponible para ti en el repositorio de GitHub o en un individuo igual de bien. Te veré en la próxima conferencia. Entonces, sí. 51. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta conferencia, vamos a estar agregando un elemento de combustible personalizado a Minecraft. Agregar un artículo de combustible personalizado es en realidad bastante sencillo. No obstante, en realidad necesitamos hacer una nueva clase para esto. Entonces en nuestro paquete personalizado justo aquí, haga clic derecho en nueva clase Java llamada el elemento de la astilla de carbón. Y esto va a extender la clase de ítem. Vamos a pasar el cursor sobre este crear, constructor que coincida super. Y entonces realmente lo único que tenemos que hacer es anular un método en particular. Y eso es D conseguir tiempo de quemadura. Aquí mismo. Simplemente haremos doble clic en esto y luego regresaremos cualquiera que sea el tiempo que este artículo real tarda en quemarse. Ahora para nuestros propósitos, vamos a hacer por un 100. Una vez más, este es el tiempo que lleva, así que eso es muy importante. Y por ejemplo, el carbón tiene un tiempo de quemadura de 1600, por lo que esto es exactamente 1 cuarto, bueno como las úlceras frías. Ahora vamos a nuestra clase de más artículos y vamos a copiar sobre la varilla de dowsing. Esta va a ser la astilla de subrayado de carbón. Y el mismo año carbón subrayan astilla, asegurándonos de que no tengamos ninguna durabilidad en esto. Eso es muy importante. Y que estamos creando un nuevo carbón un artículo de astilla aquí mismo. Aparte de eso, eso es todo lo que tenemos que hacer. Por supuesto que todavía necesitamos un modelo de artículo. Solo copiemos sobre el modelo de artículo del lingote cobalto y lo llamaremos la astilla de subrayado de carbón. Y luego cambiando también este año. Enfriar, Vamos a subrayar hígado. No olvides añadir la traducción también. Vamos a subrayar astilla. Peor nombrar esta la fuerza hepática OLS. Y luego por último pero no menos importante, ya que también copia sobre el artículo también. Aquí mismo en nuestra carpeta de artículos para la intro, la carpeta de elementos de texturas que hace. Y eso es en realidad todo lo que necesitábamos hacer. Entonces vamos a ver si funciona o remisiones de vuelta en Minecraft. Y sólo veamos la costa del esposo agregó. Y por supuesto que funciona totalmente bien. Y se puede ver que el fuego básicamente disminuye bien, con bastante rapidez. Todas las cosas consideradas, deberían ser básicamente 20 segundos que haya quemaduras, por lo que debería ser suficiente para exactamente dos artículos. El olía completamente, básicamente exactamente 1 cuarta parte de lo que el elemento núcleo real es que somos capaces de fundir. Entonces yo diría que eso es bastante guay. Está bien, y eso es en realidad lo fácil que puede ser agregar el artículo de combustible personalizado a Minecraft. Y sí, tristemente, lo que tendrás que hacer es siempre tendrás que hacer una nueva clase personalizada aquí, lo que también puedes hacer en teoría es que puedes hacer una clase anónima en los más ítems aquí. Pero solo sugiero hacerlo así porque esto es mucho más fácil de hacer. Seamos honestos, porque esto no es demasiado loco para hacerlo. Y también debería estar bien. Siempre puedes hacer un nuevo paquete disfrazado de artículos de combustible, y luego simplemente poner todos tus artículos ahí si realmente te gusta molesto con esto, con estas clases, Eso también debería ser posible. De lo contrario esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 52. (Conceptos básicos de minúsculos): Muy bien, bienvenidos de nuevo a la Sala del Curso de forraje 118. Y en esta conferencia vamos a añadir un artículo alimenticio personalizado a Minecraft. Para agregar un artículo alimenticio personalizado en realidad no es tan difícil. Básicamente solo necesitas un nuevo artículo normal. Por lo que sólo necesitamos un nuevo artículo aquí. Y esto va a ser un nabo. Y por supuesto lo mismo va aquí, nabo. Y entonces cuando tenemos que hacer es llamar al método de comida punto justo aquí y pasar algunas propiedades alimenticias. Ahora en lugar de agregar esas propiedades de comida en línea, lo que vamos a hacer es hacer una nueva clase y el paquete de ítems haga clic con el botón derecho en nueva clase Java llamada el modo maderas. Y luego ahí dentro, básicamente puedes crear este alimento. El ejemplo de vainilla sería la clase de la comida. Entonces presione turno dos veces y ponga los alimentos aquí. Asegúrate de marcar aquí los elementos no incluidos del proyecto. Y luego podemos abrir esto y se van, ahora tienes básicamente acceso a todas las propiedades alimenticias que Bonilla también ofrece para que básicamente puedas saber qué debes agregar ahí. Entonces vamos a agregar aquí nuestra propia propiedad de comida, así que haremos una estática pública. Final, las buenas propiedades subirán. Y entonces esto es igual a un nuevo alimento de las fiestas que constructor. Y vamos a sumar nutrición. Pero este es el número de AF cumple básicamente que te restaure. El modo de saturación es básicamente lo que sucede en segundo plano. Y luego solo para que lo hayas visto, también puedes agregar un efecto aquí como puedes ver si solo podemos usar aquí un proveedor de una nueva instancia de efecto mob de, por ejemplo, los efectos móviles, esa velocidad de movimiento o digamos 200 garrapatas otra vez. Y entonces también pasas en una probabilidad con qué frecuencia sucede esto. Entonces si tú, por ejemplo, dices, ¿sabes qué? En realidad sólo quiero que suceda el 10 por ciento del tiempo. Después pones en el punto 1 f. Entonces al final, siempre necesitas terminar con un punto construido aquí y el ego. Y eso es básicamente el nabo hecho. Y ahora este año se llamará aquí mismo. Sólo vamos a decir mod de alimentos que aparecen. Y ellos hace, eso es todo lo que tenemos que hacer para agregar el artículo alimenticio personalizado. Ahora por supuesto, todavía necesitamos tanto la textura como el ítem modelo JSON file ls. Ahora olvídate, y la traducción aquí también. El nabo es, por supuesto, un verbo. Y este va a ser el modelo de artículo de nabo es un modelo de artículo normal como hemos visto mucho tiempo ahora, que simplemente apunta a esta singular textura aquí. Y bueno, después de haber agregado todo eso, Vamos a ver si funciona u ofensiva de nuevo en Minecraft. Entonces, solo comamos el nabo. Como se puede ver, se ha agregado y se ha rellenado exactamente una barra de hambre. Entonces la idea es que por supuesto, si pones en dos, eso llenaría dos mitades, es decir, un lago, una pierna de pollo, uno básicamente cumple bar justo ahí. ¿ Verdad? Entonces así de fácil puede ser agregar comida personalizada a Minecraft. ¿ Verdad? Y eso preocuparía poco por esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Te veré en la próxima conferencia. Entonces, sí. 53. (Conceptos básicos de minúsculos) consejos herramientas personalizados: Muy bien, bienvenido de nuevo el curso de forraje para 118. Y en esta conferencia vamos a estar agregando un consejo de herramienta personalizado a Minecraft. ¿ Y para qué es una herramienta personalizada? Bueno, es exactamente eso que se ve cuando se pasa el cursor sobre un artículo en particular. Pero antes que nada, lo que vamos a hacer es que lo vamos a agregar al artículo de varilla de dowsing porque normalmente necesitamos una clase de artículo personalizada para esto. No obstante, también veremos cómo podemos hacerlo y básicamente sumado a los bloques también, porque eso es algo que mucha gente ha estado pidiendo en el pasado. Por lo que quería demostrar eso también. Entonces vamos a empezar por anular el método append Hover Text aquí mismo. Por lo que sólo vamos a escribir un lápiz Hover Text y luego autocompletarlo con la tecla Tab. Y entonces ya no necesitamos esto porque lo que queremos es que queremos rondar sobre la varilla de dowsing real y luego va a decir algo como Redshift para más información. Y luego cuando mantenemos pulsada Mayús, entonces básicamente podemos ver la Tooltip real. Pero, ¿cómo hacemos esto? Bueno, vamos a ver si pantalla eso como cambio hacia abajo, entonces vamos a hacer una cosa más. Vamos a hacer otra cosa. Y lo único que vamos a hacer es que vamos a decir tooltip componentes dot add. Vamos a usar un componente traducible más nuevo aquí mismo. Y la clave va a ser tooltip dot, dot, dowsing, underscore round. Acerca de, sólo diga tooltip, ese turno. Una vez más, muy importante. Estas claves solo sean consistentes con él. Eso es lo más importante. En este caso. Creo que eso está bien. Podemos simplemente copiar esto. Y luego aquí abajo sólo vamos a decir sin el turno. Ahora, ¿dónde definimos esta voluntad una vez más, igual que lo hemos hecho aquí mismo, sólo definimos esto dentro del archivo yen us JSON. Al igual que hemos hecho aquí arriba. Esto lo definimos en la ENR score us archivo JSON. Nosotros sólo vamos a hacer esto en el fondo aquí, éste. Y entonces esto se va a ver algo así como lo siguiente. Entonces el turno uno es el que en realidad aparece cuando mantienes turno. Y se va a hacer clic derecho para encontrar objetos de valor. Y sólo vamos a duplicar la línea presionando Control D y quitando el turno aquí. Y entonces esto básicamente le pide al usuario que presione Shift. Y la forma en que podemos hacer esto es que podemos poner en un símbolo de párrafo justo aquí, E, lift y Párrafo símbolo r. Y esto hará de esto un color diferente. Voy a enlazar en los recursos, un gran recurso para básicamente ver esos códigos de color. Recomiendo encarecidamente echarle un vistazo a eso. Básicamente, son los códigos de formato que también puedes usar cualquier libro de Minecraft. Te recomiendo encarecidamente echarles un vistazo porque entonces básicamente puedes colorear en cualquier cosa que quieras y puedes hacerlo bastante cool, Todas las cosas consideradas. Pero sí, eso es en realidad todo lo que necesitamos para el artículo. Pasemos entonces a las cuadras. Los bloques son un poco diferentes, pero también son bastante sencillos. Entonces no lo vamos a hacer por el bloque rápido, en realidad lo vamos a hacer. Bueno, vamos a anular estos dos métodos, ¿verdad? Entonces, ¿qué significa eso? Bueno, sólo vamos a copiarlos primero, y luego vamos a tener un error porque, bueno, tenemos dos métodos que coinciden con otros métodos. Pero lo que podemos hacer es simplemente añadir un nuevo parámetro aquí. Y eso sólo va a ser una cuerda. Y esa va a ser la clave de tooltip, entonces va a pasar lo mismo. Entonces solo voy a copiar esto al método de bloque de registro. Y luego podrás ver de nuevo todas las obras. Porque entonces lo que vamos a hacer es que también vamos a pasar esto aquí. Entonces el tooltip, lo van a pasar por aquí. Y luego aquí, en lugar de simplemente crear un elemento de bloque normal después de éste, vamos a hacer una clase anónima. Y entonces aquí sólo podemos anexar el texto de desplazamiento. Entonces aquí lo que vamos a decir es que vamos a decir tooltip dot add. Y entonces sólo vamos a decir un nuevo componente traducible con la clave tooltip que hemos pasado ahí. Y ahí tienes. Ahora esto sólo se llamará si realmente agregamos una descripción de herramientas e al final del bloque aquí. Entonces si no lo agrego, entonces, Sólo va a crear el bloque sin él. Si sí lo agrego, solo puedo hacerlo. Entonces, por ejemplo, hagamos el bloque SPD porque eso no tiene mucho sentido. Entonces podemos decir, por ejemplo, herramienta, punta, punto, cerraduras o bloque. Realmente no importa. Bloque rápido, digamos por ejemplo. Y esto agregará luego una punta de herramienta específica con el bloque SPD. Sólo tenemos que ahora poner esto aquí también. Entonces algo así se pone realmente a exceso de velocidad así. Y esto también se mostrará luego cuando pasemos el cursor sobre el bloque SPD. De hecho, eso es lo fácil que puede ser agregar esto también. Bueno, bloques específicos también. Ahora bien, no vamos a tener la funcionalidad particular del turno de celebración. También podríamos por supuesto añadir de una manera particular que también funciona. Pero alguna modificación aquí, verdad con un poco de conocimiento Java, estoy seguro que las manejarás también, ¿verdad? Entonces ahora después de que hayamos sumado ambos, veamos si funcionan o nos encontramos de vuelta en Minecraft. Entonces vamos a ver, Ahí tienes. Dowsing más turno de prensa de más información. Por supuesto funciona ya sea en la pestaña no creativa o en el inventario real. Y si sostengo Shift click derecho para encontrar objetos de valor, exactamente como quisiéramos que lo hiciera. Y luego aquí están el bloque SVD. Se pone realmente rápido, también muestra esto. Entonces eso es realmente impresionante y eso es casi lo fácil que es agregar la información de herramientas personalizada a Minecraft. Está bien, y eso ya sería para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Si lo hicieras, te agradecería mucho que te hicieras una crítica. De lo contrario, te veo en la próxima conferencia sin embargo. Sí. 54. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso de fragua para 118. Y en esta conferencia vamos a estar agregando etiquetas personalizadas a Minecraft. Por lo que las etiquetas personalizadas, esas no son las etiquetas de nombre. Estas son en realidad etiquetas de las que hemos hablado previamente con las etiquetas minables y las etiquetas de herramienta de aguja. Básicamente, lo que vamos a hacer es que ahora vamos a hacer no sólo nuestra propia etiqueta personalizada, también vamos a ver cómo puedes agregar etiquetas al espacio de nombres de forja. Y eso podría ayudar con la compatibilidad entre tu paquete de curso MOD y otros meses MC, vamos a hacer clic derecho en nuevo paquete llamado el paquete util aquí mismo. Y luego dentro de ahí, vamos a hacer una nueva clase Java llamada etiquetas modelo Veeam. Ahora las etiquetas de motor se van a ver de la siguiente manera. Por lo que esto básicamente se modela después de las etiquetas de naranja aquí. Por lo que tienen básicamente dos clases estáticas, cuando bloques clase y cuando clases de elementos. Y aquí también muy interesante mirar básicamente algunas de las etiquetas opcionales que ya tienen predefinidas. Básicamente que también puedes agregar cosas. Entonces eso es muy bueno. Puedo recomendar encarecidamente echarle un vistazo a eso. Entonces lo que vamos a hacer es decir clase estática pública llamada bloques. Y luego debajo de ella una clase estática pública, artículos geniales. Hace y ahora en la clase de bloques vamos a necesitar un privado estático tags dot opcional llamado tag of type block. Solo vamos a llamar a la etiqueta de método con un parámetro de nombre de cadena. Vamos a importar la clase de bloque, asegurándonos de que elegimos el correcto bloque nivel mundial de Minecraft, bloque, por supuesto. Y luego podemos devolver el bloque tags dot read opcional con una nueva ubicación de recursos de nuestro curso MC mod, mod ID y el nombre. Eso es todo lo que tenemos que hacer. Y luego vamos a copiar esto. Y vamos a llamar al otro, la etiqueta naranja está aquí. Creamos una etiqueta forjada. En lugar de r mod ID. Vamos a pasar en el espacio de nombres Forge. Y entonces podemos tomar ambos métodos y simplemente copiarlos al fondo aquí y simplemente cambiar esto a ítem, Lo mismo con éste. Y luego en lugar de etiquetas de bloque, tenemos etiquetas de ítem. El ego, y las clases se construyen básicamente. Ahora la pregunta es, bueno, ¿qué queremos aquí? Bueno, primero que nada agreguemos nuestra propia etiqueta personalizada que va a ser una estática pública. Las etiquetas finales son opcionales con nombre de etiqueta de tipo block. Y este va a ser el subrayado de varilla de dowsing valioso, igual a un nuevo para etiquetar. Y luego dowsing guión bajo, subrayado batalla. Ahora bien, ¿qué hace esto? Bueno por el momento no hace nada, pero luego podemos referirnos esto y todo lo que está dentro de esta etiqueta será evaluado de alguna manera sin embargo. Para agregar cosas a la etiqueta, bajamos a núcleos MC y luego vamos a hacer un nuevo directorio aquí llamado tags. Y luego dentro de ahí, sólo vamos a hacer un nuevo archivo. En realidad hay este nombre, así que dowsing, varilla subrayan objetos de valor. Y es muy JSON, muy importante que los nombres aquí coincidan. Mi vida un poco más fácil. Voy a copiar sobre la, ya sabes, la forma en que está estructurada la cosa. Y entonces también copiaré en realidad la totalidad de los contenidos. Esos están todos disponibles para ti en el repositorio de GitHub e individual igual de bien. Esto lo hace un poco más fácil aquí se puede ver básicamente tengo el cobalto o así como un montón de otros minerales aquí también. Y sigues siendo como Yeah, pero qué hace esto, ok, ahora tenemos una etiqueta para ello. ¿ Cómo podemos hacer algo con él? Bueno, en el elemento de varilla de dowsing, recuerdas que tenemos este es valioso método de bloque donde tuvimos que pasar en bloques manualmente por así decirlo. Y ahora lo que podríamos hacer es decir más etiquetas que bloqueen, ese gaussiano o objetos de valor que contiene bloque. Y esto sólo devolverá si el bloque que hemos pasado aquí está contenido en aquí está contenido en la etiqueta de objetos de valor de varilla de dowsing, y eso es todo. Eso es todo lo que tenemos que hacer. Y ahora podemos expandir esto más o menos infinitamente. Otros modos podrían expandirse. Esto solo hace que nuestro mod 10 veces mejor en términos de compatibilidad. Y mientras estamos en la compatibilidad en los ítems, solo agreguemos también, final estático público, etiquetas, punto-punto, etiqueta con nombre opcional, ítem o perno de guiones de subrayado. Y esto es igual a una etiqueta falsificada. Debajo de lingotes son audaces. Y entonces sólo vamos a duplicar esto. También voy a poner las pepitas solo para show básicamente, entonces este sería su vehículo. Ahora, ¿por qué querríamos hacer esto? Bueno, en primer lugar, hay dos distinciones que necesitamos hacer. Si creamos una etiqueta opcional aquí mismo en este modo clase de impuestos que no necesariamente hace nada. Esto sólo nos permite especificar o hacer referencia a ciertas etiquetas que hemos creado como esta dentro de nuestro código. Esto no siempre es necesario, pero a veces puede ser necesario. Entonces para nuestros propósitos, vamos a crear una nueva carpeta en la carpeta de datos llamada Forge. Y luego dentro de ahí vamos a crear una nueva carpeta llamada tags. Y luego dentro de ahí, vamos a crear una nueva carpeta llamada ítems. Y luego dentro de ahí, vamos a crear otra carpeta nueva, lingotes viejos. Y luego finalmente ahí, haga clic con el botón derecho en nuevo archivo llamado cobaltos JSON. Ahora una vez más, en realidad me limitaré a copiar el contenido de éste aquí mismo para que tengamos la estructura tributaria básica. Y entonces sólo voy a decir MC curso, colon o perno subrayado Inglaterra. Ahora he agregado mi lingote cobalto, los lingotes cobalto forjado etiqueta. Ahora, lo que el LSAT escribir así no nos lleva a ninguna parte. Al igual, ¿por qué haríamos esto? Echemos un vistazo a esto. Si tengo una receta en la que usé el inglés cobalto, tal vez nuestro 1D u otros modos que agregan cobalto también, ya sabes, para que eso se use también. Pero ahora puedo decir en lugar de elemento, digo etiqueta, y luego en lugar de esto digo forja, un nuevo espacio de nombres. Estamos bajo lingotes slash cobalto. Ahora, cualquier cosa que se agregue a esta etiqueta se puede usar aquí mismo para elaborar esta receta. Y eso es insanamente poderoso, sobre todo cuando, ya sabes, tienes un gran pack mod, ya sabes, quieres hacerlo más compatible entre sí. Esto es algo genial, como realmente genial. Definitivamente piensa en esto, echa un vistazo a esto. Y sí, esas son más o menos las dos, bueno, razones medias. Yo diría que tal vez quieras agregar etiquetas aquí, ¿no? Solo agreguemos una sola cosa más aquí mismo. Y eso va a ser un público que a evitar llamado el método de registro. Ya que solo necesitamos registrar ambas clases porque son inicializadores estáticos. Ahí hay algo de onky en EU. Lo son, sólo vamos a tener un bloque de registro etiquetas con básicamente nada en él. Eso está bien. Y el nuevo engranaje, y vamos a llamar a esto las etiquetas de artículo de caballo. Y aquí sólo lo vamos a llamar bloques, no bloquear etiquetas y ítems, registro de datos ítem 10. Y que este método de registro simplemente se llamará aquí mismo. Entonces solo vamos a decir mas tags dot, cual es el ego, ¿no? Y por supuesto hay un poco de error tipográfico aquí. Entonces, en realidad, esto necesita estar bajo la categoría de registros. Ahí vas. Y entonces todo debería funcionar bien. Entonces ahora veamos Por obras o finanzas o empaca y Minecraft. Entonces veamos si funciona el cobol Ingrid. Y ahí tienes. Por supuesto que la artesanía todavía funciona. Eso es genial. Tomemos la varilla de dowsing y vamos a ver, ahí tienes. Hasta puedo encontrar cosas muy temprano e incluso puedo encontrar cosas que antes no pude encontrar, como el, el oro del estado profundo o, o la guerra de Redstone profundamente matada. Por lo que la etiqueta real también funciona. Eso es genial, ¿verdad? Una vez más, todo el código está disponible en el repositorio de GitHub e individual igual de bien. Pero esto ya será para esta conferencia aquí mismo. Espero que hayas encontrado esto útil y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 55. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso forestal por 118. Y en esta conferencia, vamos a estar agregando escaleras y losas personalizadas a Minecraft. Ahora esto inicia una pequeña sección, por así decirlo, de unos bloques no bloqueados como me gusta llamarlos. Esto incluirá, como dije, escaleras y las losas, así como vallas, vallas, muros, botones, placas de presión, la puerta y la trampilla. Entonces va a haber básicamente las próximas cuatro conferencias. Y bueno, sólo empecemos. Entonces en la clase de Modocs, lo que vamos a hacer es que sólo vamos a copiar, digamos el sueño profundo o aquí porque eso es un poco más fácil para nosotros en este momento. Y luego vamos a llamar a esto la escalera de subrayado cobalto. Y luego aquí por supuesto también, subraya el cobalto, los suyos. Ah, entonces copia eso y haz las losas fuera de él. Entonces losas, en realidad losa, muy importante, pero escaleras, es Laurel y con la losa, es singular. Y entonces aquí esto va a ser un bloque de escaleras, mientras que esto va a ser un bloque de losa. Y el bloque realmente toma en un, otro primer parámetro el cual va a ser un aplicador de bloques dot cobalto, block dot-dot obtiene el estado de bloque predeterminado o predeterminado. Esta es sólo la cuadra básicamente de la que están hechas las escaleras. Eso va a estar bien en esto. Hagamos ambos de material metal solo para que tengamos esto. Y luego aparte de eso, en realidad estoy bastante contento con esto. Ahora lo que pasa con todos los bloques no bloqueados es que el registro real? Bueno, ese es un año bastante fácil. Qué es realmente más que yo diría, no necesariamente molesto, pero se va a poner molesto cuando lleguemos a las, ya sabes, las puertas y cosas así porque va a haber muchos archivos JSON. Vamos a copiar los archivos JSON ante el IRS y las losas. Entonces lo que primero que nada, nota con sólo abrir las escaleras de cobalto uno, hay muchas cosas aquí más de lo que ha habido antes. Entonces lo primero que quiero decir es que todos los archivos JSON están disponibles para ti en el repositorio de GitHub o en un individuo. No escriba esto. Eso es locura, vale, No hagas este peor escenario. Si por alguna razón no puedes descargar algo para mí, siempre puedes ir a los Activos, Minecraft, así que básicamente bibliotecas externas y ella microondas cliente extra 181 y luego a la, a los estados del microbloque de activos. Y luego solo puedes tomar las escalinatas freakin Keisha, por ejemplo. Se puede ver que básicamente son exactamente iguales. Aquí la única diferencia es el MOD ID y el nombre. Y te mostraré un truco rápido. Lo que puedes hacer es seleccionar esto y luego presionar Control R. Y aquí, por ejemplo, sólo tienes que cambiar el lema De. Si tienes un ID de modelo diferente es Reemplazar Todo y luego reemplazará a todos ellos. Lo mismo con el nombre de las escaleras reales, derecha, está seleccionado presione Control R y luego se puede cambiar. Tienes titanio, por ejemplo, Twitter al titanio y el ego. Entonces eso es algo muy bueno tener. Te recomiendo encarecidamente hacer eso si realmente quieres cambiar algo, pero definitivamente no teclees esto, eso sería una locura. Ahora, ¿qué hacen todos estos, verdad? Entonces tenemos variantes particulares aquí, y la varianza se definen por propiedades de estado de bloque. Ahora bloques ellos propiedades de las que vamos a hablar en una conferencia posterior por el momento, solo pensemos en la idea de que ciertos bloques en el mundo pueden tener propiedades diferentes. De acuerdo, eso no debería ser demasiado loco. Y luego dependiendo de esas propiedades, derecha, si las propiedades de frente Este y la propiedad media es inferior y las propiedades de forma en nuestra izquierda, entonces vamos a mostrar un particular modelo con una rotación particular aquí. Y luego bloqueo UV, simplemente básicamente bloquea la rotación de la textura para que no gire con el bloque. Eso es solo, ya sabes, no es demasiado importante en este caso. Esos son realmente los más importantes. Y sí, eso es básicamente entonces apunta a un modelo diferente. Y lo que verán es que tenemos las escaleras de cobalto interior y luego aquí repente tenemos las escaleras de cobol afuera y aquí tenemos justo las escaleras de cobalto. Entonces lo que podría haber adivinado ya es que van a haber varios archivos de modelo de bloque para, bueno, las escaleras y también las losas. Pero antes de añadirlas, en realidad agreguemos primero la traducción, sólo para que no la olvidemos porque eso a veces podría suceder. Yo sólo voy a copiar sobre la orden va a ser la escalera de cobol. Y la losa cobol va a ser la losa cobol. Y aquí hay blanco y luego puedo copiar sobre los archivos del modelo JSON. Por lo que los archivos del modelo de bloque Jason, como dije, todos ellos están disponibles para ti en el repositorio de GitHub o en individual igual de bien. Ahora, esos sólo van a ser cinco. En realidad no es tan malo. Y la cosa al respecto, ellos mismos son en realidad bastante sencillos. Al igual que si miras esto, por ejemplo, no hay nada demasiado loco, ¿verdad? Entonces el padre aquí eso es diferente, eso es losa. Y luego tenemos tres texturas diferentes. Pero en realidad el OH apunta al bloque de cobalto porque por supuesto la losa cobol simplemente se ve básicamente como la mitad de un bloque de cobol. Y cuando están encima el uno del otro, lo que se llama bloque. Entonces van y luego lo mismo con la de arriba. Se ve exactamente igual a excepción del padre. También echemos un vistazo a estas escaleras sólo por el bien de finalización. Y rápidamente verás que de repente, realidad no es tan loco. Es solo que el padre es diferente. Y el padre básicamente sólo determina la forma del bloque real que se está mostrando. Podría tener escaleras que son escaleras normales. Cuando agregas escaleras en un ángulo de 90 grados, sabes que obtienen una forma diferente. Eso básicamente es literalmente lo que hace aquí el padre. Y las texturas se mantienen iguales. Y se trata de los modelos de artículo. En realidad son bastante aburridos. Todas las cosas consideradas, son solo modelos de artículo normales. Las escaleras sólo apuntan a las escaleras y la losa sólo apunta de nuevo a la losa normal. Ahora lo que es realmente genial es que no necesitamos agregar ninguna textura porque todas las texturas que usan las escaleras y las losas son el bloque cobol. Por lo que no es necesario agregar ninguna textura. Y con eso, esto en realidad está bien, básicamente hecho. Ah, supongo que por el bien de finalización, vamos a ver si funciona o se refieren en microfinanzas pueden ver tanto las escaleras como estos laboratorios se han agregado con éxito al juego. Y todo aquí está funcionando muy bien. Puedo ponerlos bien en la forma que me gustaría. Entonces, ¿eso no es simplemente genial? De hecho eso es lo fácil que es agregar esos a Minecraft o donde sea que ya fuera para esta conferencia aquí mismo. Espero que fuera útil en el nuevo, una vez más, todo el código en el archivo JSON están disponibles en el repositorio GitHub donde justa un individuo. Y nos vemos en la próxima conferencia. Entonces, sí. 56. (Conceptos personalizados: Muy bien, bienvenido de nuevo al curso forestal por 118. En esta conferencia, vamos a estar agregando un botón personalizado y una placa de presión a Minecraft, ¿verdad? Por lo que una vez más, los botones y las placas de presión son en realidad bastante sencillos, o el registro en sí solo los archivos JSON que son año loco. Pero solo agreguemos un botón aquí y luego todo el botón de guardar. Este va a ser un bloque de botones de piedra porque no hay ningún bloque de botones de metal en este caso. Y entonces muy importante, lo que también necesitamos una llamada es que necesitamos llamar al no colisión aquí mismo. Pero básicamente podemos caminar por la cuadra sin ningún tema. Y luego para la presión del cobalto subrayan tarde. Y aquí, subrayado móvil, presión bajo guión tardío por supuesto va a ser un bloque de placa de presión 0. Y eso de hecho toma en un, otro primer parámetro, que va a ser la sensibilidad. Simplemente vamos a elegir todo. Por botón central del ratón haga clic en el bloque de la placa de presión. El método de fuerza de señal aquí es básicamente responsable de la sensibilidad. Como puedes ver, aquí hay un interruptor , todo y turbas. Y una idea general es que si realmente quieres tener una sensibilidad diferente, puedes lograr esto anulando este método básicamente, y luego cambiando un montón de cosas aquí. Altamente recomiendo algún conocimiento de Java definitivamente se requiere para hacer esto y ser, tener algo de trabajo, pero debería ser viable, ¿verdad? Entonces ahora pasemos a los archivos JSON. Esto primero de todo realmente agregó la traducción porque eso va a ser, bueno, lo más fácil va a llevar esto rápidamente para que puedas ver el botón de cobalto y la placa de presión cobol y luego los archivos JSON locos. Ahora una vez más, todos esos siguen disponibles para ti en el repositorio o un individuo igual de bien como siempre. Y esto va a ser una locura. Entonces la placa de presión en realidad, quiero decir, eso es como, santa multa. Escríbelo en sea falso, por lo que poder o no alimentado. Y luego o mostramos el juego de presión hacia abajo o la placa de presión normal, hay suficientes. ¿ Y el botón? Bueno, el botón es un poco más loco. Entonces el botón aquí, como puedes ver, como una vez más a tres bloques diferentes propiedades de fecha, y dependiendo de ellos, básicamente cambiamos, en primer lugar, a qué modelo apunta y también la rotación aquí. Entonces eso es bastante loco. Pero por suerte, el botón en realidad sólo tiene tres modelos de bloque diferentes, mientras que la placa de presión, como hemos visto, sólo tiene dos. Por lo que una vez más trabajar a las cinco. Vamos a copiarlos y sólo vamos a echarles un vistazo. Pero en general, la placa de presión, como puedes ver, una vez más, solo apunta a la textura del bloque de cobalto es solo un padre diferente. Entonces el modelo de bloques Jason está aquí, No realmente interesante. Lo mismo con todos los botones. No es nada demasiado loco. Entonces esto es algo que va a ser una especie de cosa que sucede para la mayoría de los diferentes archivos JSON reales de modelo de bloques para los bloques no bloqueados. En realidad no son tan interesantes. Solo hay muchas de ellas para que básicamente puedas definir cualquier cosa que te gustaría. Y esto más o menos se extiende también a los archivos JSON modelo de ítem. Esto se puede ver al inventario general de bloques y esto solo apunta a la placa de presión normal. Una vez más, no necesitamos agregar ninguna textura es porque todas las texturas a las que apunta siempre va a ser el bloque de cobalto. Por lo tanto, en realidad ya estamos hechos. Una vez más, todo lo que puedes copiar desde lo esencial. Entonces el GitHub, lo recomiendo encarecidamente. Y vamos a ver si funciona o por qué encontramos sospechoso en micro. Como puedes ver, todo se ha agregado y también funciona totalmente bien. ¿No es genial? Se puede ver todo funcionando exactamente como esperarías que lo hiciera. Y eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 57. (Conceptos básicos de (Minecraft de las Fences y paredes y muros: Muy bien, bienvenido de nuevo al curso de fragua para 118. Y en esta conferencia vamos a estar agregando unas vallas personalizadas, vallas , portones, y muros a Minecraft. Entonces esto es una vez más, un ejercicio bastante sencillo. Todas las cosas consideradas. Ahí está, Vamos a entrar en la clase más bloques y primero vamos copiar sobre el botón tres veces aquí. Y esta va a ser la barda de cobalto. Y entonces esto por supuesto también va a ser los corrales promotores. Esto va a ser una barda. Mira, esta va a ser la barda en ocho. Y esto es entonces por supuesto también la barda subrayan portón, que es una barda de ocho cuadras. Y entonces el último va a ser un muro de fútbol. Pared aquí también. Y este es, por supuesto, un libro mural. Ahora vamos a quitarnos la no colisión aquí. Eso estaría bien, no lo mejor si las cercas de repente no tuvieran colisión sería como derrotar el propósito de ellas. Y el resto va a estar totalmente bien aquí. Ahora una vez más, los archivos JSON están donde está. Primero que nada, la traducción sólo para que tengamos entonces ya no necesitamos preocuparnos por esto. Sólo voy a copiarlo para la barda de cobalto despar ventiladores meten aquí en la pared de cobalto. Y luego agreguemos el bloque s3 no está lejos ya que todos esos están, por supuesto, una vez más, disponibles para ti en el repositorio de GitHub o un individuo igual de bien. Y verás que esto en realidad es un poco diferente. Entonces, en primer lugar, echemos un vistazo a la puerta de la valla. Una vez más, tiene tres bloques diferentes. Se perimetros o propiedades boxy, y sólo apunta a diferentes modelos de bloques. Nada nuevo que no hayamos visto ya en las dos últimas conferencias. Pero la barda sin embargo y la pared. Esos son diferentes porque esos son multiparte. Ahora multiparte. La idea general es que, bueno, como se puede ver eso aquí mismo, ¿no? Y la primera multiparte que hemos aplicado este modelo. Y este modelo siempre se aplicará si esto es sentado. Ahora bien, cuando una propiedad Roxy en particular es cierta, en este caso, si algo es cierto, entonces aplicamos una, otra propiedad. Tú eres otra modelo aquí. Y en este caso va a ser el lado que sabes que si pones por sí mismo el poste de la barda y luego añades un poste de barda al norte. En realidad agregamos el sitio después. Pero esto es una cosa genial muy frecuente que así es como funciona. Y esta es en realidad una forma muy directa de hacerlo. Aunque. Esto definitivamente es un poco diferente. Te recomendaré solo echarle un vistazo, echándole un vistazo a esto. En realidad no debería ser demasiado loco entender todas las cosas consideradas. Simplemente agregamos diferentes modelos dependiendo de si algo es o no básicamente un vecino. Básicamente la idea. Ahora esto tiene, sin embargo, también lo agregado que, bueno, va a haber muchos archivos de Jason ahora. Entonces, solo copiemos a todos ellos porque esto va a ser una locura. Tenemos estos todos ellos. Basta con copiarlos más de 11 de ellos en total. Ahora, sólo vamos a echarles un vistazo muy breve porque honestamente todos son muy aburridos. Básicamente, siempre va a ser el padre el que sea diferente. Se puede ver claramente todo el tiempo llevamos el punto a la misma textura aquí mismo. Se puede ver que sólo va a ser el padre que sea diferente. Y básicamente lo mismo va para todos los demás. Siempre apuntamos a la misma textura es solo el padre que es diferente. Podría sólo una vez más, recomiendo encarecidamente si hay algún interés en otros archivos JSON. Basta con bajar a las bibliotecas externas, unidad, cliente de microondas, dinero extra TIN, y sólo echar un vistazo a todo el rastro y rápido aquí mismo en la carpeta de activos Minecraft, puedes ver todo el archivos JSON de modelo de bloque. Verías todo eso, el bloque dice archivos JSON. Entonces todo está básicamente disponible para ti aquí también. Esto recomiendo encarecidamente copiar cosas y no escribir todo, sobre todo si tienes múltiples paredes y cosas así. Eso sería una locura, ¿verdad? También vamos a conseguir el modelo de tres artículos Jason sintió sobre n. esos no son todos demasiado locos porque tenemos algún inventario de cerca de cobalto y fresco inventario de pared. Esos son básicamente se hace referencia aquí. Y entonces ésta es sólo la puerta normal de la valla de cobalto. Y una vez más, debido a que todas las texturas usan la textura de bloque de pies, no necesitamos agregar ninguna textura. Ahora, en realidad hay una cosa más que sí necesitamos agregar para que las vallas y un vals funcionen correctamente. Y eso van a ser etiquetas. Por lo que dentro de las etiquetas de Minecraft, etiqueta de bloques o carpeta de bloques, quiero crear un nuevo archivo llamado las vallas dot JSON. Una vez más, solo voy a copiar la estructura que estás acabada. Y esto va a ser MC curso, booleano, barda de subrayado cobalto. Entonces me voy a llevar esto y lo voy a arrastrar aquí mientras sostengo Control. Y voy a llamar a esto muros. Y este va a ser el muro de cobalto. Si no tengo esto, entonces las cercas y las paredes no se conectarán entre sí. Pero eso también es muy importante. Sí necesitamos esto. Pero si hemos agregado eso y el resto, entonces veamos si funciona. O si estaba en un asic migrante y ver que todo se ha agregado con éxito y todo se ve jodidamente genial. Puedes ponerlo abajo El uno al lado del otro. Exactamente cómo lo que esperaríamos. Por lo que hace, todo funcionando bien donde sea que ya sea para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 58. (Conceptos básicos de (Minecraft: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar agregando una puerta y trampilla personalizada a Minecraft. Entonces vamos a abrir la clase de buzón y sólo vamos a conseguir el muro de cobalto. Y en lugar de cobalto, esto en realidad va a ser Sherry underscore blossom underscore door. Igual por supuesto en el nombre. Entonces en este caso realmente vamos a tener un material diferente, bueno, otro aquí porque no estaremos haciendo puertas con cobalto, sino con la madera que vamos a sumar en una futura conferencia. Y lo que es muy importante aquí es que agregue el carbón sin oclusión y también que estamos haciendo el material lo haría porque si hacemos el material metal que esta puerta funcionará como una puerta de hierro. Si hacemos esto lo haría, entonces podemos abrirlo haciendo clic derecho. Lo mismo va para la flor de cerezo subrayan trampilla. Sólo voy a copiar el nombre aquí y añadir la trampa aquí en el frente. Y esto es entonces un bloque de puerta trampa. Yo estoy aquí asegurándome de que este material que lo haría y luego agregando la no oclusión también. En la oclusión se necesita frío aquí porque tenemos valores alfa en la textura real. Y debido a esos valores alfa, en realidad también necesitamos entrar en nuestra clase mod del curso MC. Y dentro de ahí necesitamos crear un nuevo método. Por lo que vamos a hacer un nuevo vacío privado llamado el cliente ese método up con un conjunto final de clientes FML de eventos o evento. Y luego dentro de aquí, vamos a llamar a los tipos de render de bloques de ítem, ese dicho render más adelante. Para los bloques de modo, punto, flor de cerezo, dor punto obtener con el tipo de render que adulto, duplicar la línea. Y entonces aquí se asegura de que se pongan las trampillas. Ahora esto no se llama todavía porque lo que necesitamos hacer es decir Event Bus, agregar oyente, este colon, configuración de líneas de colon. Entonces después de que esto se haya hecho, ahora se llama aquí a los clientes FML reales que tienen método, el método y luego estas tribus render se están configurando correctamente antes de agregar todos los archivos JSON locos, primero que nada, agregue la traducción aquí. Bastante sencillo, nada demasiado loco. Y ahora pasemos a los archivos JSON. Entonces, en primer lugar, por supuesto, el bloque Estados Jason. Entonces esto sería sólo la puerta y la trampilla a la que vas. Entonces una vez más, por supuesto, hay bastante locos. En realidad, la puerta tiene cuatro propiedades de estado de bloque diferentes como se puede ver. Por lo que una vez más, todos los archivos adyacentes y todo el código está disponible para usted en el repositorio de GitHub o un individuo igual de bien. Te recomiendo copiar esos más cuando se trata de los modelos de bloque. Bueno, estamos en una golosina porque van a ser siete de ellos otra vez. Entonces eso va a ser bastante loco. Ahora bien, estos son un poco diferentes, como diminuto un poco más complicados pero tampoco del todo tan malos. Por lo que se puede ver una vez más, eso difiere más como el padre. Ahora porque las puertas son de dos bloques de parter, por así decirlo, tenemos una textura superior y una inferior. Se puede ver una puerta de cerezo en flor y un fondo de puerta en flor de cerezo. Y entonces la bisagra aquí se puede ver que sólo es un padre diferente. Pero en general, una vez más, esto les echa un vistazo, sólo pasa por ellos un poco. Ya sabes, cómo se ven, no están demasiado locos en general. El artículo y los modelos también son un poco interesantes. El trampilla debe ser solo un modelo de artículo normal. Pero podemos ver esto. Esto solo apunta a la cuenca del modelo de bloque a lo largo de este año, la puerta en realidad apunta a una textura de artículo específica. ¿ La puerta realmente tiene una textura específica para el artículo también. Entonces vamos a, en primer lugar, una copia de la textura del artículo por aquí. Y entonces por supuesto también necesitamos las tres texturas diferentes en flor de cerezo. Por lo que esto podría ser el fondo de la puerta, la parte superior de la puerta y las texturas de trampilla. Ahora, eso es en realidad todo lo que tenemos que hacer. Muy importante es esta configuración del cliente aquí, que vamos a necesitar en las futuras conferencias también. Pero cada vez que tenemos un bloque que no llena la totalidad del espacio estatal del bloque de rayos X, por así decirlo, entonces básicamente necesitamos agregar esto también. Entonces eso es muy importante. De lo contrario, veamos si funciona. O si sospecho y los microRNA pueden ver tanto la puerta de cerezo como la flor de cerezo atrapada o se han agregado al juego. Y puedo hacer clic derecho y abrirlos. ¿ Quién dice yo con cualquier otra puerta a base de madera o trampilla? Entonces eso es bastante guay. Caucho, eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y alerta lo Nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 59. (todo sobre las herramientas) crear un nuevo conjunto de herramientas: Muy bien, bienvenido de nuevo al cuarto curso para 118. Y en esta conferencia vamos a estar agregando un conjunto de herramientas personalizado a Minecraft. Por lo que esto incluirá la espada, el piquete, la pala, el hacha, y el todo. En realidad vamos a crear una nueva clase personalizada y el paquete de artículos o los niveles modernos. Porque lo que necesitamos definir es un nivel personalizado. Por suerte, la forja nos lo hace muy fácil. Podemos decir simplemente final estático público forjado aquí llamado cobalto, que es igual a un nuevo forjado aquí. Y entonces sólo necesitamos pasar muchos parámetros. El nivel reduce la velocidad, el bono de ataque y el bono de daño de etiqueta, el valor del presidente. Entonces necesitamos pasar las etiquetas de bloque. Dot necesita herramientas de hierro, y luego solo un proveedor de un gradiente. Y vamos a decir ingrediente de más artículos, punto, punto get. Y voy a explicar ahora mismo. Entonces, ¿qué está pasando aquí? Esto es una locura, en realidad no es tan loco. Lo primero es, por supuesto, un nivel. Este es sólo el nivel que básicamente este ítem aquí representa este nivel. Entonces en realidad podemos entrar en esto y se puede ver que hay un montón de cosas aquí. Y el nivel básicamente representa, se puede ver aquí mismo, básicamente representa la idea de, hey, ¿ son estas herramientas de piedra, herramientas hierro, o herramientas de diamante? Ese es básicamente el nivel general, la idea general del nivel aquí. Y tenemos el número de usuarios. Entonces esto es sólo cuántos usos tiene este artículo. A pesar de que, la Durabilidad, básicamente, la velocidad debe ser bastante autoexplicativa. Solo está la velocidad del artículo real. El bono de daño de ataque es solo un bonus para atacar. Esto se pone, pongamos esto en realidad a 3 y el valor Chairman es sólo canal. Estas son las etiquetas de bloque. Eres yo no estoy un 100 por ciento seguro, pero creo que esto es una vez más, estrecha a lo este desgarro forjado real o este nivel de herramientas básicamente puede mío aquí. Y entonces el último, el proveedor del ingrediente aquí, es básicamente solo el ingrediente que puedes usar para reparar los artículos de este ancho de nivel. Entonces ahora que tenemos esto, podemos ir a la clase más ítems y puedo empezar a básicamente tomar el turno aparecer. Sólo tomemos esta y hagamos de ésta la espada de subrayado cobalto también aquí. subrayado de cobalto almacenado. Deshacernos del año completo. Eso es algo importante. Y esto va a ser un artículo de mesa. El primer parámetro va a ser más lágrimas punto cobalto. El segundo parámetro es el modificador de daño de ataque. Y el tercer parámetro va a ser el modificador de velocidad de ataque. Y luego vienen las propiedades reales las cuales van a estar bien. Y vamos a duplicar esto cinco veces y luego sólo conseguir las otras. Entonces vamos a tener el piqueta de pared o perno grande X aquí también. Se trata de un artículo de piquetas. Y tenemos el viaje viajará aquí también. Y este es un artículo de pala. Va a ser el robot actúa. Y el cobalto actúa aquí también. Por supuesto, Item. Y luego último y sin duda menos el cobalto OMS. Pero claro que tenemos que meter todo el asunto aquí, que es el cobalto OMS y todo un artículo, ¿no? Por lo que usualmente puedes por supuesto cambiar estos números, ¿verdad? Se pueden retocar. Entonces por ejemplo, los caseros no tienen modificadores adicionales aquí. El ACS podría tener, ya sabes, éste, pero por lo tanto como tal vez un negativo ser modificador o simplemente como decir un modificador 0 aquí. Y el resto va a estar bien. Entonces esto es algo con lo que definitivamente tienes que jugar por ahí recomiendo encarecidamente solo jugar, estar abierto a la experimentación con los números aquí. Porque eso es solo equilibrar básicamente el modelo. Y en general eso es más o menos el, ya sabes, el registro hecho. Ahora sólo necesitamos la, ya sabes, la traducción aquí, pero solo agreguemos la traducción. Yo sólo voy a copiar esto más. Esto debería ser bastante autoexplicativo, ¿verdad? Al igual que hemos visto un millón de veces, ya podría hablar. Y entonces los modelos de artículo tienen una cosa en particular que es un poco diferente con ellos, que te mostraré cuando los vuelva a copiar, todo esto está disponible para ti en el repositorio de GitHub o individual igual de bien. Se puede ver que el padre aquí es artículo slash mano. Esto es muy importante, de lo contrario, el extra no se mostrará en 3D en vistas de tercera persona. Entonces eso es muy importante que tengas aquí el artículo padre de mano. Y de lo contrario ahora podemos copiar sobre las texturas también. Los cinco también, van. Y eso es más o menos todo lo que necesitamos hacer para agregar las herramientas personalizadas a Minecraft. Entonces, veamos si funciona. Muy bien, nos encontramos de nuevo en las microfinanzas y vemos que todas las herramientas se han agregado con éxito. Entonces vamos a ver si realmente puedo mis cosas con ella. Entonces este año, por supuesto, no funcionará en este caso porque lo hemos definido como nivel uno. Entonces esto debería funcionar. No obstante, veamos un go. Esto funciona totalmente bien. Entonces esa es una buena señal, claro. El ave también debe funcionar. Definitivamente no hay muy rápido, pero eso está totalmente bien por supuesto. Y luego hacer clic derecho aquí también funciona con este clic derecho. El despojo de los troncos debe funcionar bien definido, igual con el pathing. Todo aquí realmente va a ser sólo cinco por la velocidad por supuesto se define aquí. Entonces esto sería, quieres aumentar la velocidad de este sin desgarro real y el nivel aquí, puedes hacerlo así. Y entonces lo que también puedes hacer es en el forjado aquí, si presionas en el nivel aquí y luego presionas Control H y ves las lágrimas del propio Minecraft. Y básicamente puedes echar un vistazo a todos los valores de vainilla de las herramientas aquí. Para eso, básicamente puedes cambiar esos hacia arriba y copiar algunos de ellos, ¿verdad? Pero ya lo serían para esta conferencia aquí mismo. Espero que esto te resulte útil y se aprenda de nuevo y te veré en la próxima conferencia. Entonces, sí. 60. (Todo sobre las herramientas) hacer una multiherramientas (Paxel): Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar agregando un elemento personalizado de Paxil a Minecraft. Eso es exactamente correcto. Vamos a añadir una especie de testamento multiherramienta a Minecraft. Y para eso necesitamos una nueva clase y el paquete personalizado que va a ser el artículo Paxil, que va a extender el artículo excavador aquí mismo. Y esto va a implementar la venerable interfaz. Simplemente pasemos el cursor sobre él y creemos constructor que coincida con super. Ahora en realidad tendremos que cambiar un poco esto porque no necesitamos ninguno de esos. Porque estos dos parámetros en realidad van justo aquí. Deberíamos hacer algo así. Y entonces la etiquetada para los bloques en realidad va a desaparecer porque vamos a agregar eso a nuestras etiquetas de modelo en este momento. Entonces la forma en que estamos haciendo esto es vamos a ir a nuestra clase de impuestos de motor. Entonces sólo vamos a copiar los objetos de valor de la varilla de dowsing. Y aquí vamos a hacer de este el subrayado Paxil minable. Y entonces el nombre de esto va a ser la minable barra Paxil. Y esto ahora será referenciado aquí mismo. Por lo que las etiquetas mod, bloques oscuros. Y así, todo debería estar totalmente bien, ¿verdad? Y ahora esta clase debe hacerse por completo. Y lo grandioso es que debido a que aquí hemos definido estas etiquetas, bueno lo que podemos hacer es ahora podemos ir a nuestra carpeta de datos de C corps, a las etiquetas, a los bloques, y luego hacer clic derecho nuevo directorio llamado minable. Y luego dentro de ahí vamos a hacer un nuevo expediente llamado Paxil, ese JSON. Y entonces lo que vamos a hacer es que sólo voy a copiar este sobre por el bien de la discusión sólo para que tengamos la estructura básica de la etiqueta. Y se podría decir que es, bueno, ¿ahora tenemos que entrar en el artículo de pico y sólo hay que añadir todo eso. Saber, lo que podemos hacer es que también podemos agregar etiquetas a las etiquetas. Pero lo que tenemos que hacer es decir hashtag Minecraft. Entonces este es el espacio de nombres de la etiqueta que queremos agregar. Y luego barra minable, barra minable, pick X, por ejemplo. Y entonces sólo vamos a copiar esto. Vamos a hacer la ACS, añadir comas aquí y luego poner en pala aquí. Por lo que nuestro Paxil va a poder sacar todo lo que un pico puede, un axón y una pala. Y lo más grande aquí es que porque lo hemos agregado de tal manera que estamos haciendo referencia a las otras etiquetas. Si un modo diferente agrega cosas a estas etiquetas, bueno, el elemento Paxil también funcionará para esos bloques. Entonces eso es lo realmente genial. Ahora, ¿cómo creamos el artículo real de Paxil? Bueno, muy fácil. Simplemente vamos a copiar el cobalto OMS y vamos a llamar a esto el cobalto Paxil o lo que empaca capa también. Y entonces esto sólo va a ser un artículo de Axl. Y eso es todo. Ahí vas. Paxil está hecho. De hecho eso es lo fácil que es. En realidad no es tan loco. Entonces por supuesto necesitas saber básicamente que puedes usar diferentes etiquetas en tus propias etiquetas y cosas así. Pero en general, esto es bastante sencillo. Hay un particular, bueno, esa es una limitación que tiene el ítem de packs y no tiene funcionalidad de clic derecho. Ahora podrías agregar la funcionalidad de clic derecho. Si hacemos clic en el elemento de la excavadora y presionamos Control H, podríamos, por ejemplo, entrar en todo el elemento. Y se puede ver aquí los EU en el uso de clic derecho en método. Y podrías anular esto, y podrías poner cosas diferentes ahí dentro. Se podría decir, hey, hagamos un defecto, acción entera, así sucesivamente y así sucesivamente. Y luego haz lo mismo para el, por ejemplo, si te colas, entonces podrías hacer clic con el botón derecho y luego hace el camino, ya sabes, alguien así, y luego haciendo clic derecho. Y también podrías agregar el clic derecho con la funcionalidad AKS. No vamos a hacer eso en este ejemplo aquí mismo. Esto sólo va a ser un artículo Paxil, un artículo de múltiples herramientas que básicamente será mina L2, múltiples tipos diferentes de paseos. Añadamos también la traducción aquí. Esto debería, por supuesto, no ser demasiado loco. Es sólo el cobalto Paxil por supuesto. Y luego lo mismo para el modelo de artículo, nada demasiado loco. Simplemente va a ser el cobol Paxil el que apunta al cobalto Paxil extra, que por supuesto también tengo. Se trata de una a, B, a, una textura fresca que veremos en juego en tan solo un momento. Y bueno, eso es en realidad todo lo que necesitamos para agregar el elemento de barra contraria al juego. Entonces, veamos si funciona. O inferencias atrás y los migrantes pueden ver ha agregado el elemento de barra inclinada contraria y se ve absolutamente Genial. Entonces vamos a ver. Ahí vas. Puedo usarlo como pala, exactamente como esperarías. A ver si puedo extraer esos bloques también. Podrían tomar un poco más de tiempo, pero en general, todavía puedo minarlos perfectamente bien. Y entonces realmente encontremos algo. Pero éste debería funcionar ahora porque una vez más, el nivel de cobalto no es lo suficientemente alto. Pero si sólo cavamos un poquito, deberíamos poder encontrar piedra aquí. Y luego piedra debería poder poder mía también y debería conseguir adoquines. Ahí vas. Tengo algo de adoquín. Entonces como puedes ver, todo trabajando aquí. Totalmente bien. Artículo Axl, absolutamente. Increíble, ¿verdad? Pero eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 61. (todo sobre las herramientas) armas que aplica efectos: O volveré al curso de forraje por 180. Y en esta conferencia vamos a estar agregando una herramienta que agrega un efecto al mapa que está siendo golpeado. ¿ Qué significa eso realmente? Bueno, solo pasemos por esto y veamos qué significa esto realmente en el paquete personalizado. Haga clic derecho en nueva clase Java, o este va a ser el elemento espada de levitación. Y esto extenderá el objeto de la espada se colocará sobre este constructor credo que coincida super. Y entonces lo que haremos es anular el método enemigo herido. Y lo único que tenemos que hacer aquí es decir p atacante punto add effect, nueva instancia de efecto mob, efectos mob, no levitación, digamos por 200 garrapatas. Y luego el, después de los primeros paréntesis P atacante como la fuente de básicamente el ataque aquí. Y eso es más o menos todo lo que necesitamos hacer por las ideas que vamos a agregar una que en realidad va a ser blanco aquí o hace un día, el objetivo en Effect. Y luego aquí P atacante. Entonces la idea es que cuando lastimemos a un enemigo, entonces vamos a sumar los efectos de levitación a ese enemigo cuando lo golpeemos con este tipo en particular. Eso es algo que mucha gente ha pedido un previamente. Pero por eso lo muestro. En realidad es muy, muy sencillo hacer esto. Ahora, por supuesto necesitarás usar esta clase aquí mismo. Por ejemplo, aquí para nuestro tipo de cobol, entonces podemos decir levitación ordenar artículo aquí. Y ahora cada vez que golpeamos a una entidad o un animal con el ítem de ordenar cobalto, debería conseguir levitación durante diez segundos. Eso sería realmente gracioso, pero vamos a ver si funciona. O tu farmacéutico de vuelta en Minecraft. Entonces vamos a ver si golpeo al animal que tenían ido, se pone levitación y se debería conseguir eso por diez segundos. A pesar de que sólo van a estar flotando en la orina. Entonces en algún momento van a bajar de nuevo a la Tierra. Y eso realmente dará como resultado el moribundo también. Entonces eso es algo gracioso. Se trata de un fresco efectos de la espada de levitación podría no ser básicamente el más interesante, pero hay un montón de ideas, diferentes efectos que básicamente puedes agregar en hit con tu arma personalizada, ¿verdad? Pero eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprenda de nuevo y te veré en la próxima conferencia. Entonces, sí. 62. (todo sobre las herramientas) crear un nuevo conjunto de armadura: O doy la bienvenida de nuevo al curso de forraje para 118. En esta conferencia, vamos a estar agregando un conjunto de armaduras personalizadas a Minecraft. Muy similar a las herramientas personalizadas para el conjunto de armaduras, en realidad necesitamos hacer una nueva clase. Esto va a estar en nuestro paquete de artículos. Haga clic derecho en nueva clase Java llamada los materiales de armadura modo. Y esto implementará la interfaz de material de armadura y va a ser una enumeración. Lo que vamos a hacer es hacer clic en el botón central del ratón en esto y luego presionar Control H para llegar a los materiales de armadura aquí mismo. Y lo que voy a hacer es básicamente dar clic en la parte superior aquí, justo al primer corchete, ir a la parte inferior, mantener pulsada Mayús y luego dar clic en la parte inferior y luego presionar el control C para copiar todo, y luego Control V para pegarlo en. Ahora vamos a deshacernos de ese de aquí. Y luego sobre todo, lo único que tenemos que hacer es cambiar el nombre del constructor aquí. Y eso va a estar bien. Ahora lo único que no tenemos es que no tendremos aquí mapeados los nombres de los parámetros. Ahora puedes mapearlos tú mismo. Básicamente, puedes hacer clic en Shift F6 y luego cambiarle el nombre a nombre. Y entonces se puede pasar continuamente, pero en realidad no se necesita necesariamente. En realidad copiaré sobre el constructor porque en realidad tengo esto preparado de la manera mapeada. Materiales que hace. Y ahí tienes. Entonces lo único que no funciona es esto porque en lugar de ser un valor cargado perezoso, sólo vamos a hacer de este un año perezoso. Y entonces todo aquí debería funcionar bien, pero el resto debería estar bien. Esto por supuesto, todo disponible para ti en el repositorio de GitHub o un individuo igual de bien. Entonces no se preocupe ahí. Y bueno, ¿qué hace esto? Bueno, en primer lugar, podemos ver todos los valores de vainilla aquí mismo. Y porque esto es una enumeración, es bastante genial porque esto no está avanzado. Ya sabes, incluso nosotros podemos definir múltiples valores diferentes aquí. Digamos que, por ejemplo, nuestro cobalto va a ser una especie de a nivel del oro. Pero digamos que sabes qué, va a tener un poco más de durabilidad es, digamos algo así como 13. A lo mejor la interoperabilidad va a ser un poco menos, pero no demasiado menos, como tal vez como 21, algo así. El eclipse de meta en está bien. A lo mejor hasta va a tener como un poquito de dureza. No sé, como 0.5, sin resistencia a golpes aunque. Y los ingredientes con los que repararlo va a ser más artículos dot, dot get. Y luego el resto ya no necesitamos. Esto va a ser cobalto. Y entonces el nombre aquí por supuesto, también tiene que ser cobalto. Y estos valores aquí son interesantes porque estos valores se puede ver ese es el tercer parámetro, es un array entero que se llama protecciones de ranura. Ahora las protecciones lentas son básicamente las protecciones de cada pieza de armadura diferente. Esto comienza en la parte inferior. Entonces estas son las botas, leggings, placa de pecho y luego el casco. Eso es muy importante. Y a lo mejor queremos cambiar un poco esto, tal vez algo así. A lo mejor el Talmud es en realidad un poco más fuerte. El plato del pecho también y el ego. Pero una vez más, cuando se trata de los números, jugar con ellos, estar abiertos a la experimentación. Si realmente quieres equilibrar tu modo, va a ser, vas a tener que jugar con esto de cualquier manera. Entonces no se preocupe ahí, hay, sin embargo, una modificación más que tenemos que hacer, y eso está en el método getName justo aquí. Porque lo que queremos volver aquí es MC curso mod, mod a, D plus colon más este nombre. Esto es muy importante que hagas esto. De lo contrario la textura no funcionará de la manera en que la vamos a configurar. Entonces no se preocupe ahí. Pero aparte de eso, cuantos más materiales de armadura se haga, si alguna vez quieres agregar otro material de armadura, lo que necesitas hacer es básicamente necesitas tener todos estos frascos también. Y básicamente luego separarlos con una coma. Entonces, solo llamemos a este cobalto dos por el bien de la discusión, puedes ver, siempre y cuando se llamen manera diferente, Eso va a estar bien. Todos están separados con una coma. Y luego esto termina con un punto y coma. Eso es muy importante. Sólo quería mencionar esto también porque algunas personas se han confundido con esto. En realidad no debería ser tan loco. Es solo un conocimiento muy básico de Java en este caso. Pero sea cual sea el caso, Vayamos a la clase Más Ítems ahora. Y vamos a crear nuestros artículos o armaduras. Solo tomemos el eje aquí y solo hagamos esto al casco cobalto y luego casquemos aquí también. Elemento de subrayado. Y este va a ser el artículo de armadura, muy importante. El primer parámetro va a ser los materiales de armadura modo, cobalto. Y entonces el nodo tiene tres parámetros. Tomado. Uno de ser ranura de equipo. Ranura de equipo en este caso tenía un gol. Y luego las propiedades del artículo nos permiten solo copiar esto tres veces y luego vamos a conseguir aquí la placa del pecho. Este plato. Y entonces lo único que necesitamos cambiar es la ranura del equipo aquí. Eso es muy importante que cambiemos esto. De lo contrario, nos vamos a encontrar algunos temas. ¿ Para qué leggings? Leggings aquí también. Y luego por último pero no menos importante, las botas. Y luego botas aquí también. Extraño este dos piernas y luego este equipo ranura para comer. Y con eso, en realidad se suman todos los cuatro ítems. Eso es lo fácil que puede ser. Ahora lo que queremos hacer es por supuesto, en primer lugar, antes de añadir los archivos JSON, sólo agreguemos la traducción. Esto debería ser en este punto trivial. Es solo que, acabo de copiarlo para ser bastante autoexplicativo. Y cuando se trata de los modelos de artículos, ¿ serán solo modelos de artículos normales también. Porque por supuesto, dentro del inventario, bueno, simplemente se ven como artículos normales. No obstante, hay una cosa interesante. Entonces, antes que nada, puedes ver solo apunta a una textura aquí. Y eso va a estar bien. Copiemos todas las texturas sobre. Pero entonces la pregunta es, bueno, ¿cómo conseguimos esto, la armadura 3D? Bueno, dentro de nuestra carpeta Texturas, haga clic con el botón derecho en nuevo directorio llamado modelos, y en lugar de su nuevo directorio llamado armadura. Y esta es la ortografía americana que es muy importante. Entonces ustedes gente del Reino Unido, lo siento, pero sólo va a ser, entonces vamos a copiar sobre estos dos PNG bien aquí. Esta va a ser la capa de subrayado cobalto 1 y la capa de subrayado fresco 2. Esto es muy importante. Por favor, preste atención aquí. Entonces cuando definimos el más material de armadura, este nombre aquí mismo, cobalto tiene que coincidir con este nombre aquí mismo como exactamente lo mismo. Y luego subrayado capa, subrayado uno básicamente va a ser la representación 3D. Se ve así. Puedes cambiarlo un poco, pero no demasiado. Y esto va a ser se puede ver la placa del pecho, el casco, un poco de las otras cosas. Y entonces aquí mayormente, creo que los leggings y las botas, esto tiene que coincidir exactamente. No puede haber ningún espacio ahí dentro, sin paréntesis 1 porque lo copiaste desde algún lugar. Exactamente así. Ten en cuenta esto, que esto está en el nombre de carpeta correcto correctamente, y tienen todos los nombres correctos. Muy importante. Si alguna vez te estás preguntando dónde las otras texturas o puedes bajar a bibliotecas externas ese microclima extra 118 uno en la carpeta de texturas, y luego en la armadura de modelos, te básicamente tienen acceso a todos los de vainilla y puedes cambiarlos en teoría si quieres. Entonces eso es realmente jodidamente genial. Pero eso es en realidad todo lo que necesitamos agregar. Entonces, veamos si funciona. Muy bien, nos encontramos de vuelta en mindfulness. Se puede ver todo aquí se ha agregado al juego y se ve frecuente, increíble. Ah, esto en realidad es lo fácil que puede ser agregar la armadura. Se pueden ver valores de armadura tempranos así como incluso un poco de dureza ahí dentro. Eso es realmente genial, igual que lo hemos definido en nuestros materiales de armadura. Eso es bastante jodidamente genial. Y hace volar a los cerdos, ¿verdad? Pero eso ya será para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 63. (todo sobre las herramientas) efecto armor: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un efecto de armadura completa personalizado. Ahora, ¿qué significa eso? Bueno, la idea es que si llevamos todos nuestros conjuntos de armaduras, así que todos los materiales de armadura cobalto conjunto aquí. Entonces lo que queremos es añadir un efecto personalizado o simplemente normal, básicamente poción con el jugador. De la forma en que hacemos esto es que en realidad voy a copiar sobre la clase que vamos a necesitar. Esto está disponible para usted en el repositorio de GitHub o en un individuo igual de bien. De acuerdo, así que esta es toda la clase y en general, sólo vamos a pasar y te explicaré a medida que voy. Entonces lo primero que tenemos es por supuesto, un mapa. Por lo que este mapa mapea en material de armadura a una instancia de efecto de modo determinado. Ahora el número uno cosa muy importante es que esta instancia que estamos usando en este mapa en realidad nunca se usa por sí misma. Simplemente le estamos quitando los valores. Para que veas que si me pongo el material de armadura cobalto, me voy a aplicar un efecto suerte con un amplificador de uno. Entonces esto significa que en realidad estoy recibiendo el candado 2 y luego por supuesto también 200 garrapatas. Por lo que esto sería por 10 segundos. Ahora actualmente, esto solo funciona con materiales de armadura mod, por lo que solo tus personalizados y no con los de vainilla. Esa es una limitación muy importante aquí. Ahora, ¿cómo funciona bien esto en garrapata de armadura se llama este método aquí. Estamos anulando esto y esto se llama cada vez que una pieza de armadura en particular, en este caso el artículo de armadura de modo, está dentro de tus ranuras de armadura. Entonces esto se llama, vamos a asegurarnos de que estamos en el servidor, y luego estamos evaluando si el jugador tiene o no un traje completo de armadura. Este es un método personalizado que escribí. No es nada demasiado loco aquí. Básicamente solo estamos consiguiendo el blindaje de las ranuras del 0 al tres, pero todos los antebrazos son ranuras y luego simplemente comprobando si no están vacías o no. Entonces si ninguno de ellos está vacío, entonces vamos a conseguir un verdadero sobre esto y luego vamos a seguir evaluando los efectos de armadura. Para eso, básicamente estamos pasando por la totalidad del mapa aquí del material a afectar mapa. Y sólo asegurándome de que hey, ¿el jugador tiene la armadura correcta en cuatro, básicamente un efecto. Y vamos a ir seguros de que vamos a asegurarnos. Y éste de aquí. Entonces éste sólo dice, oye, ¿ es el material de todas esas armaduras, básicamente el mismo material que éste. Y si ese es el caso, bueno, entonces podemos seguir aún más allá agregando básicamente estos satisfactorios. Nos estamos asegurando de que el jugador no tenga ya el efecto. De lo contrario, básicamente estarías aplicando el hecho cada tick, que podría ser un poco demasiado a menudo. Por lo que acabo de añadir este cheque de cordura básicamente aquí. Entonces también estamos una vez más solo comprobando si la armadura está encendida y si ese es el caso, entonces vamos a añadir el efecto. Entonces vamos a hacer una nueva instancia de efecto de la instancia de efecto real aquí, obtener iteración de efecto puede amplificador, como dije, este pequeño efecto aquí mismo, esta instancia nunca ha usado cuando nosotros definido aquí, esto sólo se usa como plantilla para que básicamente podamos poner también en la duración y el amplificador también. Sí, eso es más o menos todo lo que hay a ello. No debería ser demasiado loco. Ya sabes, si surge la pregunta, estás bien, ¿cómo hiciste esto? ¿ Cómo hiciste eso? Bueno, es justo al final del día en conocimiento de Java que necesitas y probablemente un poco de conocimiento de Minecraft también. Y cómo podemos usar esta clase. Ahora vamos en nuestros artículos mod, personalmente prefiero usar el casco cobalto para hacer aquí un artículo de armadura MOD. Y lo que es muy importante es que solo necesitas hacer uno de tus sets aquí. Entonces un elemento en tu set, el artículo de armadura modo. Como dije, usualmente prefiero el casco. El juego de ajedrez también podría tener sentido, o las botas, lo que quieras, pero solo una de ellas necesita ser un artículo más de armadura. Y si ese es el caso, entonces ya podemos ver si funciona o no o si firmas como en Minecraft. Entonces vamos a ver, ya tengo todo puesto excepto el casco y vamos a ponerlo y ahí está. Tengo suerte para ahora por diez segundos. Y si me quito alguno de esos objetos de armadura, cuanto se desgasta el efecto, no se va a renovar. Como puedes ver, ahí tienes. Y entonces no importa básicamente cuál cuando tengo puesto y cuál cuando no he leído. Es, de verdad básicamente está revisando cada una de las otras piezas y te van de suerte una vez más, ¿verdad? Ciertamente hay algunas limitaciones con esta clase, pero esto esperemos que sea una introducción genial para esto para ti. Se puede, por supuesto, siempre cambiar todo el código está disponible en el repositorio de GitHub o en un individuo igual de bien. Y esto ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil. Y en cuanto a lo nuevo, te veré en la próxima conferencia aunque. Sí. 64. (todo sobre las herramientas) Arma hilado de cabala mano: O volveré a los núcleos forrajeros por 118. En esta conferencia, vamos a estar agregando armadura de caballo personalizada a Minecraft. Para la armadura de caballo personalizada es en realidad un proceso bastante sencillo. No obstante, hay una cosita que hay que tener en cuenta. Bueno, vamos a copiar por encima de las botas de cobalto aquí mismo. Y vamos a hacerlos sólo cobalto subrayado caballo armadura de subrayado. Y lo mismo aquí, Cobalt subrayan armadura de caballo subrayado. Y esto va a ser un artículo de armadura de caballo, ¿verdad? Este. Y entonces lo que queremos es el primer parámetro, digamos algo así como 12. Y el segundo parámetro va a ser una cadena para Bolt. Ahora la cuerda aquí es muy importante porque esto es define el nombre de la textura de armadura de caballo. Entonces, primero que nada agreguemos de nuevo la traducción. Vamos a subrayar armadura de subrayado de caballo. Por armadura de caballo cobalto, claro. El ego y luego un modelo de artículo. Yo sólo voy a copiar el lingote aquí, y sólo voy a llamar a esto la armadura de subrayado de caballo cobalto. Y luego lo vamos a cambiar aquí también. Peor, peor armadura de subrayado. Y luego agreguemos el, digamos modelo de artículo aburrido, como en, esto es solo un artículo normal. Y agreguemos aquí la textura aburrida del artículo. Tan aburrido también, esta es solo la textura normal, sin embargo. ¿ Y la textura 3D? Bueno, eso en realidad va a la carpeta de activos, pero a Minecraft para una nueva carpeta en la carpeta de activos llamada Minecraft. Y luego dentro de ahí necesitamos texturas. Y entonces en lugar de la urna, necesitamos Entidad. Y luego dentro de ahí, necesitamos caballo. Y luego dentro de ahí necesitamos armaduras. Una vez más, la ortografía americana. Y luego voy a copiar esto más. Se puede ver armadura de subrayado de caballo, subrayado cobalto. Este es exactamente el nombre que le estamos dando aquí. Entonces si hacemos clic en el botón central del ratón en el artículo de armadura del caballo, se puede ver que básicamente se necesita exactamente esto aquí mismo. Por lo que se necesitan detectores, entidad , caballo, armadura, subrayado de caballo, subrayado donde sea que el identificador es que ponemos aquí. Y punto PNG, básicamente, esto es lo que apunta a 43, la armadura. Y eso es básicamente todo lo que realmente necesitas tener en cuenta para la armadura del caballo. Que lo otro que podría ser interesante es que si podemos echar un vistazo a esto, que por ejemplo, hierro como cinco protección el oro tiene siete y el diamante tiene 11 con 12. Esto en realidad sería un poco mejor que armadura de caballo de diamante, pero eso está totalmente bien. Por supuesto puedes cambiar esto de la manera que quieras. Pero vamos a ver si funciona. O un hornos de vuelta en Minecraft y como la suerte lo tendría, ya tenemos un caballo domesticado aquí mismo. Démosle la armadura fría de caballo. Y ahí está. Sí se ve muy similar al diamante, pero sí se ve todavía un poco diferente. Aunque. Eso en realidad es realmente impresionante y así de fácil es agregar armadura de caballo personalizada a Minecraft. Escribir eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 65. (Todo sobre las herramientas) Enchante personalizado: Muy bien, bienvenido de nuevo al curso por 118. Y en esta conferencia vamos a estar echando un vistazo a cómo puedes agregar encantamientos personalizados a Minecraft. Por lo que los Encantamientos en y de sí mismos son en realidad bastante sencillos de agregar. Es difícil es la funcionalidad real de los Encantamientos. Pero en el paquete del curso MC, haga clic con el botón derecho en nuevo paquete llamado el paquete encantamiento justo aquí. Entonces dentro de ahí vamos a necesitar dos nuevas clases. uno de ellos se le llama la clase de minutos encantar mod. Y el otro va a ser nuestro real y de presidente que vamos a hacer. Y ese va a ser el romperelámpagos en Shenzhen. También está la clase con la que vamos a empezar. Esto va a extender la clase de encantamiento aquí mismo. Y luego pasemos el cursor sobre el constructor correcto que coincida super aquí. Entonces esto muy importante que cambiemos la diapositiva del equipo aquí a tres puntos en lugar de ser el área real aquí. Y entonces lo que también puedo recomendar encarecidamente es dar click en esto y presidente y el presionante Control H para básicamente poder ver todos los encantamientos de vainilla que tienes. Entonces, por ejemplo, hay, quiero decir, hay tantas cosas diferentes, ¿no? Las espinas de Presidente, sólo echen un vistazo a esto. Ya puedes ver, Oye, ¿cómo funciona esto? Pero, ¿cómo se puede hacer esto básicamente? Y básicamente puedes echarles un vistazo a todos ellos aquí. Altamente, recomiendo mucho echar un vistazo a esto, porque esto realmente es un gran recurso para ver aquí la posible funcionalidad. Y para nuestro presidente, lo que vamos a hacer es que en primer lugar vamos a anular el método de nivel GetMax. Y vamos a regresar a2 porque aquí, esto básicamente determina cuántos libros se generan. Porque los libros, los libros en realidad se generan automáticamente para nuestro encantamiento es realmente genial. Y esto básicamente determina cuántos niveles hay. Ahora, queremos sobrescribir el método do post ataque, que básicamente se llama después de un tiempo el ataque a una entidad. Y sólo vamos a pasar por esto. Entonces voy a tratar de explicar. Entonces vamos a decir que no P nivel atacante no es del lado del cliente. Entonces básicamente asegurándonos de que estamos en el servidor. Tenga en cuenta el signo de exclamación en la parte frontal que niega el lado del cliente. Muy importante que queremos estar en el servidor para esto, queremos decir nivel de servidor, que es igual a, vamos a llamarlo mundo, eso está bien. Entonces un poco acostumbrado a llamar al mundo nivelado. Y sí, atacó nivel de punto pero lanzó al nivel del servidor en realidad no al nivel del cliente, nivel del servidor. Hace y luego terminaron así. Y luego vamos a hacer una capa de servidor para jugador, que va a igualar al punto del atacante P cast al jugador del servidor. Exactamente. Y luego vamos a tener una posición cool pass block, que es igual al punto objetivo, get. En realidad sólo está bloqueado. Posición. Ahí vas. Eso es lo que es. También vamos a importar la clase de publicaciones de blog. Entonces dentro de aquí, se puede ver que obtenemos el nivel P, que básicamente está consiguiendo un nivel aquí, ¿verdad? Entonces vamos a conseguir el nivel de los Encantamientos. Entonces vamos a decir que si el nivel P es igual a uno, esto significa que no vamos a cambiar un rayo. Pero la idea es que queremos llamar a la entidad tipo dot-dot-dot rayo engendrado en el mundo. Posición del jugador Nl, tipo de desove móvil , tipo de punto activado. Y luego cierto y luego cierto. Entonces esta es básicamente una forma que podrías engendrar un perno de aligeramiento. Muy sencillo. Y lo más grande es que esto no sólo es una manera de pequeño rayo rayo, vas literalmente engendrado todo que quieras con él, a, b y Ax, murciélago pequeño, un área, hecho Nube , al parecer, un conjunto de armaduras, lo que realmente quieras. Pero por el momento, vamos a mantenerlo así. Ahora sólo vamos a copiar esto, hacer este nivel dos, y luego vamos a sólo pequeños a los revestimientos. Esa es en realidad toda la funcionalidad que necesitamos. Si quieres una funcionalidad particular para tu encantamiento, solo es cuestión de aprender más Java y solo probar un montón de cosas. Estar abierto a la experimentación. Echa un vistazo a la, los encantamientos lunula, muy recomendable. Básicamente no se puede hacer nada mejor que eso. Por ahora, todavía necesitamos agregar cosas a nuestra clase de encantamientos mod. Y esto va a tener algo que ustedes han visto antes y es un registro postergado final estático público de tipo Enchantments. Esta vez vamos a encantamientos. Y esto es igual a d registro diferente que crean o registran que encantan MC curso mod, mod ID, y si se trata de un registro diferente. También se vierte un método público de registro de vacío estático con un bus de eventos oculares o bus de eventos como su perímetro. Simplemente vamos a llamar a los Encantamientos que se registran con el bus de eventos. Y su método de registro es por supuesto, se llame aquí en este momento bajo la ley, los simulacros de bloques se registra, vamos a decir mod logros dot registrarse con el bus de eventos. Ahí vas. Y ahora esto está registrado. Ahora lo que vamos a necesitar es que sólo vamos a hacer básicamente lo siguiente en realidad va a ser muy sencillo. Simplemente necesitamos un objeto de Registro público estático de tipo encantamiento, por supuesto, que va a ser el delantero de subrayado relámpago, que es igual a encantamientos iniciar registro relámpago subrayado delantero. Entonces en un proveedor de nuevo rayo golpe o encantamiento con la rareza, vamos a hacer poco común aunque? Poco frecuente, sí. Por rareza y la categoría Encantamientos es arma que la ranura del equipo va a ser no alimentación, pero sólo vamos a hacer este equipo Slashdot sobre mano mala. Sí, ahí tienes. Y eso es en realidad. Eso es todo lo que tenemos que hacer para registrar este encantamiento. Esta es la funcionalidad, este es el registro realizado. Ahora lo que sí necesitamos añadir aún es que la traducción en lugar de la e y subrayarnos archivo adyacente, estamos acostumbrados a, ya sabes, voy a poner esto en el fondo aquí. Vamos a copiar esto más. Esto no es nada demasiado loco. Esto es sólo el básicamente encantamiento McQs, relámpago Stryker. Entonces este nombre, por supuesto, una vez más tiene que coincidir con este nombre aquí mismo. Y entonces esto es sólo encantamiento Vermont ID. Y sólo necesitarás de éste a pesar de haya múltiples niveles diferentes, esto se traducirá para cada uno de esos niveles, ¿verdad? Entonces después de haber agregado todo eso, Veamos si funciona o por qué funcionamos de nuevo en microfinanzas podemos ver el rayo o se ha agregado con éxito al juego, los Encantamientos. Entonces, solo agregémoslo a nuestra espada de diamante aquí en este caso, y solo usemos los que es el número uno. Entonces si usamos el número dos, no es darse cuenta de voluntad, pero es algo diferente. Entonces ahí tienes. De hecho, eso es lo fácil que es agregar un cliente canalizado a Minecraft. Y eso ya será para esta conferencia aquí mismo. Espero que esto te resulte útil en la orina. Entonces lo nuevo, y nos vemos en la próxima conferencia. Entonces sí. 66. (intermedio) Propiedades BlockState Propiedades: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar hablando de bloque de propiedad estatal. Entonces block dicen que las propiedades son algo muy interesante. Y básicamente estamos, en primer lugar, vamos a cubrir una especie de la teoría detrás de ella. Y para eso vamos a sacar las diapositivas de PowerPoint. Echemos un vistazo a la distinción entre bloques y estados de bloque. Entonces bloque, se puede pensar en eso como una especie de patrón único. La idea es que para nosotros en nuestra clase más bloques o para los bloques Rindler en la clase de bloques, tenemos diferentes campos para un bloques en particular. Ahora esos se crean una vez que recuerdas son finales estáticos públicos, por lo que se asignan una vez. Siempre sólo existe un campo para un bloque en particular. Por lo que puedes pensar en ellos como un patrón de singleton. Si bien los estados de bloque son las instancias que están dentro del mundo o del nivel, los estados de bloque guardan una posición de bloque, las propiedades de bloque, esas serían la fuerza del bloque. Ya sabes cómo, cuánto tiempo se tarda en romper cosas así, que Básicamente asignamos en la clase de buzón y luego también las propiedades de estado de bloque. Entonces esos son los tres grandes. Por supuesto que hay mucho más de lo que hay detrás de ahí. Esos serían los tres grandes. Y se puede pensar en ello así. Los estados de bloque son salvados por el mundo y sólo pueden ser cambiados por el mundo o el nivel. , por ejemplo, hacer bloqueador solar nivel que poner en algunos parámetros. Esa es la idea general. Tienes un bloque que es un solo patrón es solo la idea de un bloque por así decirlo. Porque si digo Redstone o block, eres como, Vale, sé cómo se ve Redstone o block, pero si entonces tengo tres Redstone o bloques diferentes en el mundo, todos son diferentes, pero todos son del mismo tipo. Esa es una especie de idea. Entonces se puede pensar en un bloque como una clase y el estado de bloque sería el objeto que se crea a partir de él, digamos en términos de lenguaje de programación, por así decirlo, ¿verdad? Entonces, ¿qué son propiedades block sit ahora? Bueno, el pequeño titular aquí, o cómo almacenar datos en bloques no es un 100 por ciento correcto, pero es una especie de la idea de una especie de lo mismo. Entonces en la clase de un bloqueador de calcio en este caso, la pregunta general podría ser, bueno, ¿por qué no acabo de poner un booleano ahí y luego va a funcionar bien, una vez más, piensa en esto. Cuando estamos creando un bloque, escribe el, esta clase aquí se crea una vez. Entonces si tendrías solo un booleano ahí para todos los bloques de ese tipo, será lo mismo. Y entonces por supuesto, no tiene sentido porque si este Redstone o bloque está encendido o no está encendido, no tiene nada que ver con el como a dos cuadras de él. Correcto. Y eso, por supuesto, no tiene sentido. Entonces ahí es donde entra la separación y ahí es donde dice el bloque, las propiedades necesitan ser usadas. Podemos ver aquí tenemos una propiedad booleana llamada lit. Y lo que es muy importante es que definamos esto en la clase de bloque. Y entonces siempre, siempre tenemos que llamar al método de definición de estado de bloque aquí y básicamente agregar las propiedades al constructor. Eso es muy importante es que en general, las propiedades nunca pueden ser nulas. Por lo que siempre tienen un valor por encima, pueden tener múltiples propiedades diferentes. Y estas propiedades pueden luego ser referidas en el bloque Estados archivo JSON para básicamente referirse a diferentes modelos que ya hemos visto esto, ¿verdad? Hemos visto las escaleras dentro de las puertas, todo eso. Básicamente tienen un montón de bloques diferentes, las propiedades, y luego el final dependiendo de sus valores, luego se refieren a un modelo de bloques diferente. Y él fue básicamente un ejemplo, ¿verdad? Esto sería, LET es igual a falso y esto está encendido, es igual a verdadero. Cambiar el estado del bloque. Bueno, ¿cómo se hace eso? Bueno, en realidad se hace muy fácilmente. Sólo necesitamos un nivel aquí. Por lo que necesitamos una variable de nivel en alguna parte, establecer bloque en una posición particular. Después obtenemos el estado actual. Establecemos el valor de lit exactamente lo que hay dentro de aquí, ¿verdad? En este caso cierto. Y entonces los tres son solo una, básicamente una bandera que determina el comportamiento de actualización de la configuración real del bloque. Por lo general, esto se hace en en el servidor. Entonces si solo estás haciendo esto en el cliente no va a funcionar. Básicamente, siempre asegúrate que estás en un hilo de servidor cuando estás cambiando el estado de bloque era por supuesto, si el cliente pudiera simplemente cambiar estados de Bach, o eso podría llevar a algún interesante temas que dicen, y sí, esa es más o menos la idea, ¿verdad? Sucede en una posición particular aquí. El segundo parámetro es el nuevo estado en esa posición de bloque. Y luego tercer parámetro, como dije, cambia el comportamiento de actualización. Básicamente vamos a pasar con 3 4 Amin, básicamente la totalidad de este curso porque tres básicamente solo actualiza a todos los vecinos y actualiza la forma en que se ve y eso va estar bien. Entonces por el momento, no me preocuparía demasiado por esto si realmente necesitas algo más, entonces en ese punto espero que seas lo suficientemente avanzado como para básicamente descifrar esto en los tuyos también, ¿verdad? Pero eso sería más o menos por la teoría aquí. Entonces vamos a entrar en inteligencia y pulsemos la tecla Mayús dos veces y pongamos una piedra o bloque rojo. En realidad vamos a echar un vistazo a esta clase. Y como pueden ver, casi exactamente lo que teníamos aquí, una propiedad booleana llamada lit En la parte inferior, tenemos el método de definición de estado de bloque credo justo aquí, que se llama. Entonces ambos son básicamente las cosas importantes. Ahora la razón por la que he elegido el Redstone o bloque aquí es porque este es el ejemplo más fácil de una propiedad de estado de bloque único. Y no tiene demasiadas otras cosas aquí dentro. Pero hay, por supuesto, algunas otras cosas. Ataque aquí sería si solo haces clic izquierdo en el bloque, entonces empieza a buscar el método Interact, que básicamente está justo aquí. Y esto es muy interesante. Entonces si la propiedad de labio es falsa, entonces la estamos configurando en true. Y se puede ver que este es exactamente el ajuste de verdad que tuvimos en la presentación de PowerPoint también. Ponemos el blog en una posición particular. El estado que estamos estableciendo el valor de LET lo verdadero, y entonces la bandera aquí es tres. Entonces creo que si pasamos por encima de esto, se puede ver que las banderas a nivel mundial son las siguientes. Uno es una actualización de bloque, dos lo enviarán al cliente para evitará que el bloque se vuelva a renderizar y cosas así. Y básicamente puedes agregarlas. Pero si ponemos un tres, entonces lo que va a pasar es que ambos causará una actualización de bloque y enviará los cambios al cliente porque ponemos 1 más 2. Esa es la idea básica. Si necesitas algo más y son básicamente solo echa un vistazo a esto por el momento. No vamos a preocuparnos demasiado por ello. Bueno, todo esto está bien y bien bien, todos podemos echar un vistazo a esto, pero seamos honestos, queremos hacer algo nosotros mismos, y esto es exactamente lo que vamos a hacer. Crearemos aquí una nueva clase. Por lo que en nuestro paquete personalizado, haga clic derecho en nueva clase Java. Y esta va a ser la lámpara cobalto negra. Y esto extenderá la clase de bloque. Por supuesto, aquí mismo, importa esta imagen que hemos elegido, que hemos elegido la correcta sobre o, el constructor de pantalla coincidiendo super. Y si este ruido nos hace, entonces podemos simplemente dar click en él, presionar Shift F6, y simplemente elegir Propiedades aquí. Ahí vas. Muy bien, ahora necesitamos, por supuesto, una cuadra, digamos propiedad. Ahora voy a hacer de esto unapropiedad booleana final estáticapública propiedad booleana final estática llamada clicked, que es igual a la propiedad booleana dot create. Y eso es todo. Y normatividad, has creado una propiedad ID de bloques personalizados. Eso es todo lo que tenemos que hacer. Y por supuesto todavía necesitamos anular el método Create block set definition. Y luego básicamente lo llaman P builder dot add, clicado. Ahí vas. Si tienes múltiples bloques, las propiedades, solo puedes agregarlos básicamente separándolos con una coma. Por supuesto, agregar clicked dos veces aquí no tiene mucho sentido, pero si tenías varios, puedes simplemente separarlos con una coma y agregar tantos como quieras con el código add aquí. Ahora lo que queremos es que queremos poder hacer clic derecho este bloque y luego básicamente se enciende y se apaga. Sólo vamos a tomar aquí el método de Estados Unidos. Vamos a anular eso. Entonces déjame hacer esto un poco diferente. Y luego por supuesto, porque esto está en desuso, puedes ver que no deberíamos llamar a esto. Simplemente vamos a devolver el resultado de interacción que el éxito, eso va a estar bien. Ahora la pregunta es, vale, ¿qué vamos a hacer? Bueno, vamos a decir si el nivel P es del lado del cliente. Entonces básicamente asegurándonos de que tengamos el, esto es muy importante que tengamos el signo de exclamación al frente, básicamente negando esto, ¿verdad? Por lo que queremos estar en el servidor, no en el cliente. Y voy a decir p-hat iguala interacción mano en mano. Nosotros sólo vamos a llamar de esta siempre, Esa es la idea básica. Y esto es muy importante. Por lo que signo de exclamación, tenga en cuenta esto porque he visto esto varias veces. El pueblo ha olvidado el signo de exclamación donde queremos estar en el servidor, no en el cliente. Y luego vamos a decir que el estado actual booleano es igual al estado en el que nos han pasado. Entonces este sería el estado de bloque real que acabamos de hacer clic derecho. Y voy a decir obtener un valor de clicked. Y entonces lo que vamos a hacer es que sólo vamos a decir nivel set block que parece que hemos visto en esta posición en particular que hemos hecho clic derecho con un estado en el que hemos hecho clic derecho y configurando el valor de clicado al estado actual, negado los primeros paréntesis, orientando, poniendo en tres, que son las banderas. Y, y eso es en realidad todo lo que tenemos que hacer para que esta lámpara cambie. Bueno, es estado bloqueado. Y vamos a ver cómo básicamente podemos representar esto o cómo vamos a poder ver esto en tan solo un momento. Pero sí, eso es más o menos todo lo que necesitamos hacer. Se puede ver todo aquí dentro. Esto no debería ser demasiado loco a estas alturas. Sí, Así que en realidad vamos a registrar el bloque también. Entonces en nuestra clase más bloques, solo voy a copiar sobre la trampilla en flor de cerezo y esta va a ser la lámpara de subrayado cobalto porque es lo mismo aquí, lámpara Cobalt. Y esto ahora es un bloque de lámpara de cobalto, que definitivamente va a tomar no madera. Tomemos un tomemos un metal y luego ninguna oclusión tampoco es el caso. Ahora lo que en realidad vamos añadir es algo muy interesante. No seamos estrictamente necesarios, pero quería mostrar esto. Básicamente lo que quiero es que si la propiedad click es cierta, entonces lo que quiero es que esto se encienda ahí. ¿ Cómo hacemos esto? Bueno, se puede ver aquí tenemos este nivel de lago, que es una función a Int de estado de bloque. ¿ Qué significa eso? Bueno, básicamente toma en un estado aquí y luego lo tenemos similar a un. puedes ver esto es similar a un proveedor y luego solo necesitamos devolverlo para que podamos poner en 15, por ejemplo. Independientemente del estado, se puede ver que sólo va a devolver 15. Eso no es exactamente lo que tenía en mente. Lo que tenía en mente es que vamos a decir punto estatal, conseguir un valor de lámpara cobalto punto negro clicked. Entonces básicamente estamos obteniendo el valor y luego vamos a usar el operador ternario. Si esto es cierto, vamos a devolver 15, que es Nivel de luz Max, y luego de lo contrario vamos a devolver 0. Esa es la idea general aquí, es sólo un, algo que añadir básicamente. Y también entonces tú, ahora ya sabes, oye, así es como puedes muy fácilmente solo añadir un nivel de luz ahí a una cuadra si quieres. Y ahora por supuesto, a los archivos JSON. Entonces, antes que nada agreguemos realmente la traducción sólo porque eso va a ser un poco más rápido. Yo sólo voy a copiar por encima de la barda aquí. La lámpara de cobalto. Van sobre lámpara. Y entonces también copiaré sobre los estados de bloque. Esos son por supuesto, todos disponibles para ti en el repositorio de GitHub o individual igual de bien. Y aquí tienes. Entonces haga clic en esta igual a falsa lámpara de cohorte apagado. Entonces vamos a apuntar a este modelo, ellos han hecho clic es cierto. Entonces vamos a apuntar a la lámpara de subrayado cobalto en modelo de bloque. Entonces vamos a copiar ambos modelos de sangre también. No deberían estar demasiado locos, ¿verdad? No, claro que no. En realidad no están demasiado locos. Y mira, acabamos de apuntar a la lámpara de cobalto apagada y luego en la otra, ¿puedes adivinar? Sí, en general, cordero encendido. Entonces es muy sencillo, en realidad. Las texturas que les estamos señalando con el modelo de ítem, ya sabes, solo va a estar apuntando al off, Vamos en realidad apuntando al unimodal. Bueno en realidad, ya sabes qué, hagamos este punto al modelo porque eso es un poco más bonito en este caso. Y luego por supuesto, sólo copia sobre las texturas como hemos visto varias veces. Ahora. Van y bueno, eso es más o menos todo lo que necesitamos hacer, ¿verdad? La mayor parte del levantamiento pesado aquí hecho por la propiedad booleana, y el resto es, bueno, debería ser bastante autoexplicativo. Entonces, veamos si funciona. O nos encontramos de vuelta en Minecraft. Como se puede ver, el cobol M ha sido un abajo no solicitado y ahí está. Empezó en la posición on. Entonces básicamente empieza con una propiedad booleana t siendo verdad, eso está totalmente bien. Por supuesto, ahí no hay preocupaciones. Y lo que en realidad puedes ver, como pongamos a tiempo en noche aquí y veamos si hago clic con el botón derecho en él. Ahora, en realidad podemos ver que la luz es lo que se enciende y apaga. Entonces eso es realmente frecuente, genial. Pero eso de hecho es lo fácil que puede ser también. Pero en solo para que lo tengamos, si tal vez quieres una propiedad por defecto diferente, lo que podemos hacer es que podemos llamar a esto en el constructor, este punto registrar estado predeterminado. Y entonces podemos decir este estado de bloque por defecto de punto, nuestro valor establecido de voluntad clicked a false. Y con eso, básicamente lo que vamos a hacer es que estamos estableciendo que esto sea falso. Por lo que la propiedad clip ahora será falsa por defecto. Pero esa es una especie de la idea general para un, otra cosa interesante es que, por ejemplo, si entramos en la propiedad booleana, por lo que el botón del ratón del medio clic, se puede ver esta es una propiedad de tipo Booleano. Si presiono Control H aquí, ya ves que también son propiedades enteras así como propiedades enum. Una de las más grandes es la propiedad de dirección. Por lo que también puedes usar propiedades de enteros y todas las demás también. Y si realmente echamos un vistazo a la propiedad booleana que crea, por ejemplo, podemos hacer esto, pero entonces también podemos echar un vistazo, por ejemplo, al estado de bloque. Creo que está bloqueado. Tres propiedades. Ir bloque, decir propiedades que clase tiene básicamente todos los bloques de vainilla, las propiedades definidas aquí, podemos ver, por ejemplo, algunas propiedades de enteros, edades, max, edades. Tenemos algún nivel de caldero de nivel, condensador de nivel de abatimiento. Entonces con básicamente algunos ejemplos aquí, recomiendo encarecidamente echar un vistazo a esto si quieres hacer de tus propios bloques personalizados una propiedad. De lo contrario esto ya sería para esta conferencia aquí mismo. Espero que haya encontrado esto útil en cuanto a lo nuevo, y los veré en la próxima conferencia. Entonces, sí. 67. (Intermedio) cómo funciona los datos de NBT: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar echando un vistazo los datos NVT o como ahora se le llama, etiquetas compuestas, básicamente harán etiquetas MVT. Entonces, ¿qué son esos? Bueno, básicamente es una forma de guardar datos en, por ejemplo, pilas de elementos. Ahora, la primera pregunta que viene a la mente son las pilas de artículos de aguas residuales. Bueno, así como los estados de Bloque son las representaciones de un bloque dentro de un mundo, pilas de artículos similares son representaciones de artículos dentro de tu inventario. Entonces si tienes dos espadas de diamante diferentes, bueno ambos son el objeto, espada de diamante, pero ambos son artículos diferentes, pilas, Esa es una idea general. Y para esto, lo que vamos a hacer es que vamos a salvar el resultado que tuvimos de la última varilla de dowsing. Haga clic derecho en un pozo en, en datos NVT. Y lo que vamos a hacer es hacer un nuevo artículo para esto. Por lo que en nuestro paquete personalizado, haga clic derecho en nueva clase Java llamada el elemento de la tableta de datos. Y esto extenderá elemento por supuesto, sobre todo esto crear constructor coincidente super. Y entonces lo que vamos a hacer es que sólo vamos a añadir un montón de cosas. Entonces, en primer lugar, realmente no necesitamos agregar nada para poder agregar datos NVT a esto. Podemos agregar datos NVT a cualquier pila de artículos diferente que queramos. Esto es más o menos así. Lo que vamos a hacer sin embargo, es que vamos a tener las siguientes cosas. Entonces número uno, en realidad quiero que los datos de la NVT se muestren como una descripción de herramientas. Vamos a hacer es vamos a decir anexar Hover Text. Y lo que voy a hacer es básicamente decir, Hey, si la pila real aquí, correcto, tiene etiquetas. Entonces este es el método que comprueba si o no, sabes, datos o ataque de la NVT están presentes aquí. Entonces vamos a decir que las naranjas son sólo una cuerda. Y vamos a leer esto de la pila. Dot se etiqueta, así que esto obtiene la etiqueta NVT o la etiqueta compuesta. Entonces puedes ver que hay diferentes tipos de métodos que básicamente podemos conseguir esto unos get's diferentes. También hay algunos puestos. Bueno, lo que vamos a hacer es que vamos a conseguir una cadena con la siguiente clave, MC course dot last underscore o. Y luego sólo vamos a agregar esto a la descripción de herramientas. Entonces P tooltip componentes, dot add new text component o un All right, así que hemos visto ahora dos de los tres importantes, bueno, los métodos de etiqueta básicamente tiene etiqueta y luego se etiqueta. Y entonces básicamente puedes obtener cualquier etiqueta a través de un año clave en particular. Y también lo haremos es que vamos a hacer esta extremidad. Entonces vamos a tener básicamente el destello encantado en este artículo si hay una cárcel de etiqueta. Entonces vamos a decir que es papel de aluminio y sólo vamos a devolver la pila, no como etiqueta, pero eso es casi todo. Tan pronto como tenga un componente de etiqueta p en esta pila, entonces va a empezar a especie de glitter como si estuviera encantado. Y entonces también anularemos aquí mismo el método estadounidense. Y lo que vamos a hacer es que vamos a decir lo siguiente. Vamos a decir que si el jugador no consigue artículo en la mano, usó mano que tiene etiquetas. Entonces, una vez más, si tenemos una etiqueta, entonces sólo vamos a hacer es vamos a decir getItems jugador en y usó la mano esa etiqueta. Entonces esta es la tercera a una nueva etiqueta compuesta. Porque si solo estamos configurando esto una nueva etiqueta compuesta que no tiene nada asociado con ella, entonces simplemente va a borrar básicamente la etiqueta y el hashtag ahora será falso. Entonces, básicamente si solo hacemos clic con el botón derecho en la tableta de datos del ítem D en el aire, entonces solo se va a borrar todos los datos que hay ahí. Esa es la idea básica aquí. Y bueno, eso es más o menos todo lo que hay a ello, ¿verdad? Tenemos el hashtag, tenemos la etiqueta git, y tenemos el ataque set. Esos son prácticamente todos los tres grandes métodos en los que necesitamos pensar. Y ahora en realidad vamos a hacer es vamos a, por supuesto, cambios de en la barra de dowsing. Pero para esto, vamos a necesitar una clase de ayudante util en nuestro paquete de YouTube. Haga clic derecho en nueva clase Java llamada util de inventario. En realidad voy a copiar sobre ambos métodos porque sólo va a hacer esto un poco más fácil. Entonces puedes ver que es justo, simplemente básicamente como un método booleano y un método entero. Y el método booleano solo dice: Oye, ¿el jugador, este jugador tiene este artículo en algún lugar de su inventario? Y entonces el otro simplemente dice básicamente: Oye, tiene el, ¿dónde está el índice del ítem que estamos pasando? Pero esa es básicamente la idea general aquí. Y lo que vamos a hacer es en nuestro solo artículo Dao, ahora vamos a cambiar esto. Uno de los núcleos está, por supuesto, disponible para ti en el repositorio de GitHub o en un individuo igual de bien. Pero voy a copiar sobre el método principal aquí, que va a ser el anuncio en BT a la tableta de datos. Ahora, como pueden ver, en realidad vamos a necesitar definir la pestaña de datos más ítem también. Entonces no se preocupe ahí. Nosotros sólo vamos a hacer es sólo de inmediato es registrar esto. Entonces tableta de datos. Y luego aquí datos subrayan tableta. Y esto es por supuesto, un elemento de tableta de datos que hace con sólo las propiedades normales. Y luego. Todo aquí debería funcionar bien. Esto no debería ser demasiado loco. En este punto, hemos registrado tantos artículos. Registrar un artículo debe ser casi de segunda naturaleza. Ahora, ¿qué estamos haciendo aquí? Bueno, básicamente estamos obteniendo el artículo del inventario del jugador. Pero al obtener el primer índice entero, estamos obteniendo la primera instancia de este ítem en el inventario. Eso es muy importante. Entonces así es básicamente como va a funcionar. Voy a mostrar, por supuesto, en la manifestación apenas un momento. Y luego vamos a crear una nueva etiqueta aquí, así que datos NVT. Y entonces sólo vamos a poner una cuerda con esta llave. Muy importante que esta clave sea correcta, porque ésta tiene que ser exactamente la misma por, cuando estamos leyendo esto básicamente. Y luego simplemente ponemos, bueno, básicamente las mismas cosas que ponemos aquí mismo. Entonces sólo vamos a imprimir el nombre y básicamente la posición en donde lo encontramos. Y luego aquí solo estamos configurando la etiqueta de la tableta de datos a datos MVT. Y luego dentro de aquí, básicamente justo después de encontrarlo, lo que vamos a hacer es que vamos a decir a lo siguiente, vamos a decir si inventario util dot tiene stack de jugadores y inventario con el jugador y cuantos más artículos obtengan los datos tablet dot. Si ese es el caso, entonces lo que queremos hacer es añadir datos NVT aquí con el jugador, la posición haga clic abajo debajo de I, y luego bloquear abajo también. Ahí vas. Eso es más o menos. Ahora bien, esto por supuesto, no es Importante para los datos de la NVT en general. Esta es básicamente la forma en que lo estamos agregando. Entonces esto realmente es como la parte principal de los datos NVT aquí, en este caso, hacer una nueva etiqueta compuesta y luego establecer la tachuela en esa pila de elementos en particular. Esa es más o menos la idea básica. Ahora por el sake de la finalización, por supuesto, también agreguemos aquí la traducción. Esta va a ser la tableta de subrayado de datos. Tableta de datos aquí. Muy bonito. Y luego también agrega el modelo de ítem justo ahí para que puedas verlo apunta a los datos subrayado de la tableta de subrayado off, extra curioso y de textura off. ¿ Habrá también una textura propia? Sí, lo hay. Pero eso es algo que vamos a ver en la próxima conferencia. En realidad. Sólo vamos a copiar esto. Y eso debería ser más o menos todo lo que necesitamos hacer para agregar bien la tableta de datos y algunos datos de entidad personalizados. Entonces, veamos si funciona. O farsas atrás y microvesículas ver la tabla de datos se ha agregado al juego. Ahora en realidad vamos a tener que cambiar el apilamiento máximo aquí en tan solo un momento, pero eso es por supuesto que va a ser una solución muy fácil. Y vamos a ver si puedo encontrar objetos de valor. Entonces deberíamos ver el primero que una tableta. Ahí vas. Por lo que ahora podemos ver Found Minecraft cobre o en exactamente la posición que teníamos ahí también. Entonces todo funciona. Si ahora hago clic derecho con él. Ahora se ha suprimido. Y lo que es muy importante es que si encuentro otro, se puede ver que lo anula para el primero. Esto es básicamente lo que dije, pero lo va a anular y no ponerle este siguiente. Podrías por supuesto hacer otro bien, inventario método habitual que es como un hallazgo sin datos NVT. Y luego lo vas a agregar al siguiente. Eso también funcionaría, por supuesto, totalmente bien. Pero por el momento, esto es bastante bueno. Ahora arreglemos realmente el apilamiento de esto. Entonces ahora puedes ver que ya no se apilan. Ahí hay uno de ellos tenía datos de la NVT al respecto. Pero puedes ver, aquí solo puedo conseguir unos nuevos y los puedo apilar, que es por supuesto que no es exactamente lo que queremos. Entonces, solo arreglémoslo rápidamente. Pero esto es por supuesto una solución muy fácil, ¿verdad? En las propiedades del artículo, sólo vamos a agregar el impuesto al método aquí mismo, y sólo vamos a poner un 1. Entonces eso debería ser bastante autoexplicativo aquí. Y con eso, básicamente se hace toda la tableta de datos. Y esto ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 68. (intermedio) propiedades de elementos: O volveré al curso de forraje por 118. En esta conferencia, vamos a estar agregando una propiedad de elemento personalizado a nuestra tableta de datos. Ahora, algunos de ustedes podrían decir, Espera ¿Qué demonios es una propiedad de modelo de artículo personalizado o una propiedad de artículo? Nunca he oído hablar de eso. Bueno, básicamente es muy similar a una propiedad de estado de bloque. No obstante, nos permite 0 a un archivo JSON de modelo de ítem diferente si la propiedad cambiará su valor. Entonces lo que podemos hacer es cambiar la textura del ítem de la tableta de datos si, ya sabes, si tenemos, por ejemplo, en datos BT en él. Lo que vamos a hacer es que vamos a hacer una nueva clase en el paquete util llamado las propiedades del elemento mod. Y luego vamos a hacer un vacío público estático llamado add custom item properties method. Y luego vamos a hacer lo siguiente. En primer lugar, vamos a presionar turno dos veces y vamos a poner en las propiedades del artículo y luego asegurarnos de que el tick aquí está marcado básicamente la casilla incluye artículos no producto. Y luego vamos a entrar en esta clase y se puede ver que esta es básicamente la clase de propiedades del ítem. Y si bajamos, se puede ver esto, por ejemplo, el cuenco que tiene el poste y las propiedades del elemento tirante las cuales se utilizan para cambiar la textura dentro del inventario del tazón. Entonces esto es realmente jodidamente genial. Y esta es, bueno, una de esas cosas que si no lo sabes, es muy difícil pensar en esto. Pero una vez que lo sepamos, una vez que hayas visto cómo funciona, en realidad va a ser bastante sencillo. Entonces vamos a decir propiedades de ítem que registran los ítems de modo, tableta de datos, dot get, y luego una nueva ubicación de recursos llamada MC curso mod, mod ID, y luego sucesivamente. Entonces este es sólo el nombre del, de la propiedad básicamente. Y entonces lo que necesitamos es que necesitamos un método loco Well. Y entonces lo que vamos a hacer es que sólo vamos a poner paréntesis y luego API. Y se puede ver que básicamente sólo una vez que todo generó para nosotros la función de propiedad del elemento. Entonces solo vamos a presionar la tecla Tab y entonces esto está bien. Ahora esta función de propiedad de elemento devuelve un flotador y esto básicamente es entonces el valor que toma la propiedad del elemento. Lo que vamos a ver es que vamos a decir P stack dot hashtag, western mark one, f colon 0, F. Y básicamente estamos usando el operador ternario. Una vez más, devolverá uno si ataque está realmente presente y 0 si el ataque no está presente. Bueno entonces eso es más o menos todo lo que necesitamos hacer. Tendré que llamar a esto en nuestra configuración de cliente. Esto es muy importante, eso se llama el método directo aquí propiedades del elemento, más propiedades del elemento que agregan propiedades del elemento personalizadas. Y eso es más o menos. Por cada artículo adicional. Simplemente agregamos una nueva llamada de registro aquí. Y entonces eso va a ser más o menos todo lo que necesitamos hacer. Ahora, ¿dónde usamos esto aquí? Bueno, usamos esto dentro del modelo de artículo. Entonces lo que vamos a hacer es antes que nada, básicamente vamos a tener un nuevo modelo. Entonces la tableta de datos aquí mismo, en realidad voy a copiar esto más. Por lo que voy a arrastrarlo a la misma carpeta mientras sostengo Control. Voy a llamar a esto la tableta de datos encendida. Simplemente voy a cambiar esto a tableta de datos en aquí mismo, no demasiado pronto, sino en el ego. Y luego voy a copiar sobre la otra tableta de datos o los contenidos aquí. Sólo vamos a abrir esto. Ahora tenemos un guión bajo de tableta de datos en solo normal basado en archivo. Y esto, voy a copiar sobre los contenidos y voy a explicar en bien cómo funciona esto básicamente. Entonces por defecto, esta es la textura que elige, la tableta de datos apagada. Ahora hay una anulación aquí. Esto es básicamente una lista de diferentes anulaciones que tiene un predicado. Y el predicado es básicamente se puede pensar en esto como un, si esto es cierto, entonces sólo vamos a sobrescribirlo con este modelo aquí. Y el predicado es, oye, núcleos MC en la propiedad del artículo tiene que ser uno. Y luego lo vamos a anular con esta de aquí, que es la tableta de datos del ítem del curso MOOC en la que acabamos de hacer aquí, que luego básicamente apunta al contexto de la talento de datos. Eso es más o menos todo lo que hay es esto no debería ser demasiado confuso, esto no debería ser demasiado loco. Básicamente lo estamos haciendo de una manera muy similar ya que el bloque dice que las propiedades son solo un poco diferentes. Y sí, eso es más o menos todo lo que hay a ello. Por lo que sólo voy a agregar la otra tableta de datos sobre textura también. Y luego lo que básicamente estamos listos para echar un vistazo a esto. Una vez más, recomiendo encarecidamente solo estar abierto a la experimentación, jugar un poco con esto porque las propiedades del artículo son realmente realmente friking y eso me encanta mucho. En realidad es bastante fácil hacer esto. Por lo que recomiendo encarecidamente echarle un vistazo a esto. Pero por el bien de la finalización, veamos si funciona. Muy bien, nos encontramos de vuelta en Minecraft. Entonces veamos, intentemos encontrar algunos objetos de valor. Y luego en cuanto lo encontremos, ahí está. Y entonces la textura real también ha cambiado. Entonces esto en realidad es realmente genial, y puedo hacer clic con el botón derecho para, eliminaremos los datos de nuevo y luego la textura vuelve a cambiar. Entonces esto en realidad es lo fácil que es, bueno, básicamente cambiar la textura de esto y simplemente algo así como pequeño, ¿verdad? Cambiar la textura en la tableta es solo un efecto tan fresco que seguro, Es como, ¿va a hacer saber todo un mod? Pero si le agregas algo como esto a tu MOD sólo va a ser tan frecuente enfriador, ¿verdad? Y eso ya es todo para esta conferencia aquí mismo. Todo el código en los archivos JSON están por supuesto disponibles para usted en el repositorio de GitHub y un individuo igual de bien. Y te veré en la próxima conferencia sin embargo. Sí. 69. Asignación 7: BlockStates y NBT: Muy bien, Bienvenidos a este ejercicio aquí para el curso de fragua. Y lo que básicamente se supone que debes hacer aquí es que haremos uno como alguna propiedad de estado de bloque y luego un ejemplo de datos de NVT. Básicamente, tu, tu creatividad es justa, puedes hacer lo que quieras. Básicamente solo sé creativo. No te vuelvas demasiado loco, ¿verdad? No pienses que voy a hacer una cosa loca con seis datos diferentes de la NVT. Ah, muy lento, muy fácil, ¿verdad? A lo mejor hacer otra propiedad booleana, tal vez hacer una propiedad entera, lo que sea que haya, esto a algo que es realmente genial, pero también no demasiado loco. No te vayas demasiado por la borda con esto. Tan solo piensa en esto y luego manejarás esta asignación. No hay solución real para esto porque, bueno, básicamente puedes hacer lo que quieras aquí dentro, cual podría ser un poco demasiado grande, pero estoy seguro que te las arreglarás, pero estoy muy interesado en ver con qué se puede llegar y sí. 70. (intermedio) recortes personalizados: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un cultivo personalizado a Minecraft. Por lo que el cultivo personalizado es en realidad un proceso bastante sencillo. Todas las cosas consideradas, hay por supuesto, algunas cosas muy especiales que aún no hemos visto, pero en general, va a estar totalmente bien. Entonces, en primer lugar, necesitamos un pase personalizado en nuestro paquete personalizado, haga clic derecho en nueva clase Java llamada el nabo Rob block. Y bueno, aquí tenemos dos posibilidades diferentes. Podemos o extenderlo desde el bloque de cultivo o, y esto va a ser más fácil primero, en realidad vamos a extender esto desde el bloque de raíz de remolacha. Ahora, la razón de esto va a ser evidente en tan solo un momento. En primer lugar, si el parámetro tu ruido, cambias F6 y luego cambias el nombre a propiedades y botón central del ratón haz clic en el bloqueo de carretera del talón aquí. Cualquiera verá que tiene una propiedad entera llamada edad. Ahora esta propiedad entera va de 0 a tres, que es exactamente el mismo número de edades o valores de edad que tiene nuestro bloque también. Es por ello que básicamente podemos tomar casi la totalidad de esto. Solo necesitamos anular el buen método de ID de semilla aquí mismo en nuestra propia clase. Y el resto básicamente puede quedarse exactamente como está. Ahora si tienes una edad diferente en tu cultivo acostumbrado, echa un vistazo al bloque de cultivos. Se puede ver que la suerte de la cosecha en realidad tiene una persona de siete años en este caso. Si quieres cambiar esto, también, solo puedes cambiarlo usando un diferente cada año o puedes definir tu propia edad si, sabes que 12357 y 15 o 25 no son ninguno de los agentes que quieres. Simplemente puedes hacer tu propia propiedad entera. Esto ya lo hemos visto anteriormente. Entonces esto no debería ser demasiado loco. El único que podría estar un poco loco es esta forma por edad aquí mismo. Así que en realidad puedo alejar un poco y luego simplemente desplazarse y seguir desplazándose y desplazándose. Esto está muy mal formateado en mi mente. Simplemente no me gusta esto, que todo está en una línea. La idea general es que básicamente sólo tenemos una caja en el nivel salvaje de ese cuadro cambia. El cuadro es el contorno negro que tiene un bloque al pasar el cursor sobre él. Y el esquema cambia por la edad del cultivo real aquí. Y entonces lo mismo va para básicamente el bloque de raíz de remolacha. Se puede ver en la 0a edad , son 246 y un ocho. Y básicamente puedes cambiar los de voluntad también. Entonces eso es algo que también puedes hacer. Todo esto no debería ser demasiado loco. Todas las cosas consideradas. Ya sabes, si tienes un cultivo completamente personalizado que quieres implementar con una edad diferente y todo eso, estoy seguro que te las arreglarás porque mayor parte de esto no es demasiado loco. Solo asegúrate de saber, tú, anulas el método de edad GetMax. Básicamente basta con echar un vistazo a la raíz de remolacha. Aquí, echa un vistazo al bloque de cultivos aquí. Echa un vistazo a los cambios que hicieron de uno a otro y luego al resto. Seguro que te las arreglarás y te descifrarás. Y en realidad necesitamos anular el ID de semilla por el momento, lo que vamos a hacer es sólo vamos a hacer esto un, hacer de esto un error. Por lo que no olvido esto. Este es solo un pequeño consejo rápido aquí porque tal vez quiero olvidar cambiar esto y luego vas a tener que volver a pasar por él. Entonces, no hagamos esto. Y entonces agreguemos un, bueno el cultivo aquí en nuestra clase box. Entonces esto va a ser un justo copiando aquí la trampilla. Y vamos a llamar a esto el cultivo de subrayado de nabo. Ahora lo que es muy interesante es que, por supuesto esto también va a ser el cultivo de subrayado de nabo. Ahora esto no es bloque de registro, esto es block dot register. Y la razón por la que estamos llamando a bloques o registrarnos en lugar de hacer el método de bloque de registro es porque en realidad no querríamos un elemento de bloque asociado a esta prop en particular aquí. Lo que queremos es que queremos hacer una semilla más adelante. Entonces vamos a decir bloque de cultivo de nabo. Y entonces esto en realidad va a ser material de, pero vamos a decir copia y mono, digamos bloques punto trigo, tu celda que en realidad, vamos a hacer raíz de remolacha, raíces de remolacha, van y el resto es bien. Creo que la única otra cosa que queremos es que no hagamos colisión también. Entonces, sin colisión, sin oclusión. Longitud 2 que realmente no deberíamos necesitar aquí. Y luego el resto se debe copiar de las raíces de remolacha de todos modos, así que no se preocupe ahí. Entonces este es el bloque realmente hecho y aún necesitamos el artículo. Ahora este artículo, como dije, va a ser sólo las semillas. Por lo que sólo vamos a escoger la tableta de datos y sólo vamos a decir turno IP underscore semillas. Y entonces el nombre aquí por supuesto también aparecía subrayan las semillas. Y este va a ser un artículo, nombre, elemento de bloque. Eso es interesante, sí. Asegurándose de que esto realmente se apile a más de uno. Y entonces sólo vamos a cambiar el nombre aquí también. Entonces este orden, y luego el primer parámetro va a ser bloques de modo bloque dot urllib crop. No obstante, Vamos a cambiar un poco el formato. Es decir, esto va a estar bien. Esto va a ser bueno en la lectura. Pero vamos a necesitar hacer de este un artículo llamado elemento de bloque porque en realidad queremos tomar el turno de nombre de semillas en lugar del BlockName de la basura de nabo. Ahora qué podemos hacer en la clase ya que podemos devolver más artículos, nabo dot, semillas.rb, aquí mismo. Y entonces la clase realmente lo ha hecho, como dije, si tienes alguna edad diferente en particular y cosas así, echa un vistazo a la clase de cultivo, un vistazo a la clase de bloque de remolacha. Te recomiendo encarecidamente esto debe ser básicamente todo lo que realmente necesitas hacer. Y en el curso MC mod a class, también necesitamos agregar el cultivo de nabo a la capa de render específica. Entonces, solo duplicemos esto con Control D. Y luego pongamos a su vez un cultivo aquí mismo. Y eso también se hace. Y entonces los archivos JSON son todo lo que quedó. Ahora, en realidad hagamos primero la traducción porque hay un poco de tendencia a olvidar esto. Entonces hagámosle subir el recorte de subrayado. Y entonces este va a ser el cultivo de nabo aquí mismo. Y entonces lo que vamos a hacer es que sólo vamos a agregar también, esto en realidad van a ser las semillas, van a ser semillas. Y entonces el cultivo realmente se sumará aquí mismo. Por lo que se va a dar vuelta, subrayan cosecha. Vuelve, Rob. Entonces podrías querer esta traducción también, solo para que la tengas cuando tengas la, ¿qué estoy mirando modelo que básicamente muestra cuál es el nombre real de las casillas que estás mirando. Esto a veces puede ayudar allí también. Con la traducción básica. Copiemos sobre el bloque Estados Jason y yo lo explicaremos. Por supuesto, se puede ver esto no es nada demasiado loco, nada que no hayamos visto ya. Básicamente tenemos cuatro edades diferentes, 0 a tres, y solo estamos apuntando a diferentes archivos JSON de modelo de bloque. Entonces esto es básicamente todo lo que hay a ello. Esto no debería ser nada completamente nuevo. Nosotros sólo vamos a copiar esos también. Esos son por supuesto, todos disponibles para ti en el repositorio de GitHub o un individuo igual de bien. Y ya verás que esto es ahora solo cultivo aquí. Y luego las texturas también apuntan a recortar. Y luego solo señalamos diferentes modelos de bloques. Simplemente señalamos diferentes texturas de bloque. Entonces eso es más o menos todo lo que hay a ello. Y también luego copiemos las semillas aquí. También sólo apunta a una textura. No hay nada de locos en ello. Bueno, esto en realidad no es tan loco. Todas las cosas consideradas. Vamos a conseguir la textura de Aedes y luego vamos a conseguir unas texturas de plomo para los bloques también. Apenas 0 a 3 años. Y entonces una cosa más muy interesante va a ser, bueno, la mesa de botín. Ahora, ¿cómo funciona la mesa de Lu? Bueno, para eso, sólo vamos a bajar a las bibliotecas externas. Una vez más, la carpeta de datos aquí mismo, cliente de microondas derecho y extra 1181 a los bloques de laúd tablas. Y entonces sólo vamos a decir, por ejemplo, las raíces de remolacha. Simplemente vamos a abrir esto y se puede ver que esto es un poco más complicado en este momento. Pero lo que podemos hacer es simplemente seleccionar todo el control C, o también podemos seleccionar el archivo JSON Control C. Y luego simplemente subir aquí a nuestro curso MC Lou tablas bloques Control V para pegarlo. Y entonces sólo vamos a decir si Eve aparece subrayado crop, y entonces sólo tenemos que cambiar un montón de cosas aquí. Ahora es muy importante como puedes ver, que en realidad estamos buscando un bloque, digamos, propiedad, vejez, y tiene que ser tres. Y entonces esta es la condición bajo la cual cae la paliza real. Eso es muy importante. Entonces esto va a ser MC curso nabo que vamos a cambiar esto. Y entonces esto es por supuesto que va a ser MC curso. Sube las semillas de subrayado. Ahora muy importante, tenemos que cambiar este bloque también, ¿verdad? Porque este ahora va a ser el curso MC Olin nabo cultivo. Porque estamos revisando la propiedad de edad y el cultivo de nabo ya no el beat, batir raíces bloquean básicamente. Y luego pasa lo mismo aquí abajo, asegurándonos de que cambiemos esto por otra vez el término cultivo. Y luego aquí hay algunas semillas adicionales donde podría caer. Sólo vamos a copiar esto también. Asegúrese de que tanto el ID de modo como los nombres de los elementos y bloques haya cambiado. Es muy fácil mirar por encima del MOD ID aquí. Entonces sí, este, por supuesto archivo también está disponible para ti, así que no te preocupes ahí, pero eso es en realidad todo lo que tenemos que hacer para agregar el cultivo personalizado. Entonces, veamos si funciona. O si Francis espalda y microvesículas ven los asientos de nabo se han agregado con éxito a los juegos. A ver. También los puedo plantar. Ese es un muy buen comienzo. Y vamos a usar algo de harina de hueso sobre ellos y se van Así que están cultivando lácteos es y vamos a cambiar violentos. Mira, hasta puedo conseguir algunos nabos y algunos asientos atrás. Entonces esto es exactamente lo que queremos C, y vamos a ver si también crecen cuando básicamente el tiempo se hace un poco más rápido aquí. Por lo que los tics aleatorios sean solo como 2 mil y ahí están creciendo también. Entonces todo funcionando de manera asombrosa. Por supuesto cuando los rompo en creativo, por eso cambié a la supervivencia. Entonces si vamos a sobrevivir, ahí tienes, Tiene unos nabos bonitos aquí. Y ahí vamos. Y ahora podemos convertirnos en el jardinero de nuestros sueños, ¿verdad? Y eso ya es todo para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 71. (Intermedio) añadir artículos al Composter: Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta muy corta conferencia, les mostraré cómo pueden agregar sus artículos al composter. Por lo que básicamente puedes hacerlos compostables, muy, muy fáciles en el método de configuración que tienes. Esperemos que esto sea con el parámetro de conjunto común de eventos FML. Lo que vas a hacer es que vas a decir event dot y q factible. Y luego vas a poner entre paréntesis, una flecha, y los corchetes rizados. Y dentro de esto, queremos llamar a composter loc dot dot, poner más artículos que semillas de nabo que obtienen, por ejemplo, 0.5, creo, es el número correcto. Después duplica esto con Control D, y luego lo vamos a poner en un nabo aquí también. Voy a poner en 65. Por lo que en realidad podemos echar un vistazo al mapa cómico aquí mismo. Y estos son básicamente los cambios que tenemos. Entonces se puede ver que tres, por lo que el ligando básicamente ver aquí típico 3.5 papa VDD. Supongo que las semillas son en realidad menos, así que en realidad son tres. Cambiemos esto a tres. Eso también está totalmente bien. 0.3. Ahí lo tienes. Eso es más o menos. Eso es todo lo que necesitabas hacer para agregarlos al composter aunque por bien de finalización, veamos si funciona. Ah, bueno si amigos, Hay un Minecraft y ahí tienes. El compositor, ambos trabajando exactamente como lo esperarías. Y ahora tenemos una comida de hueso, o eso ya será para esta conferencia aquí mismo. Espero que esto te haya parecido útil y hayas aprendido algo nuevo y te veré en la próxima conferencia. Entonces sí. 72. (intermedio) Flor: O doy la bienvenida de nuevo al cuarto curso para 118. Y en esta conferencia vamos a estar agregando una flor personalizada a Minecraft. Wiling una flor personalizada es en realidad bastante fácil. Entonces en nuestra clase de bloques modelo, vamos a hacer es sólo vamos a copiar la flor de cerezo, una puerta trampa. Y esto van a ser las filas de subrayado rosa. Y por supuesto para el nombre también, filas de subrayado rosa. Ahora esto va a ser un bloque de flores, que en realidad toma tres parámetros diferentes. El primero es una mafia efectos o efectos que digamos ceguera por ejemplo. Y entonces la duración del efecto, que popular para venir y salir es en realidad en segundos esta vez en lugar de garrapatas. No sé por qué parece muy inconsistente, pero es lo que es y el mapeo real, lo que vamos a hacer es no vamos a necesitar nada de esto. Y luego vamos a copiar de bloques a ese león dandy aquí para que básicamente tengamos todas las propiedades que vamos a necesitar. Entonces las propiedades que vamos a necesitar son básicamente ninguna colisión en extremo seborreico. Además, creo que el material de plan básicamente te consigue la no oclusión. Entonces este de aquí, necesitamos ambos, OK, sin oclusión y sin colisión. Pero al copiar las propiedades de la cualquier línea donde básicamente ya tienen eso aquí. Lo que también vamos a necesitar hacer por la flor está en nuestro método de configuración, necesitamos llamar a esto para la rosa aquí mismo. Por lo que necesitamos establecer la capa del renderizador correctamente y luego, bueno, básicamente está justo fuera de los archivos JSON. Esos son por supuesto, todos disponibles para ti en el repositorio de GitHub o un individuo igual de bien. Él Bloque afirma que Jason es sólo un Bloque normal estados. Jason también agrega la traducción aquí, para no olvidar esto, las filas de subrayado rosa. Y luego rosa rosa aquí mismo. Ahí vas. Y luego agreguemos también el modelo de registro. pasa nada realmente interesante. Tenemos un patrón de cruz esta vez y una textura cruzada también. Se puede ver esta vez el padre es la cruz aquí y luego las texturas también se cruzan. Eso es realmente lo más interesante en este caso. Y el modelo de ítem en realidad también es bastante interesante porque éste apunta a una, bueno, la misma textura de bloque a la que apunta el bloque, porque si bien es básicamente porque si bien es básicamentelo mismo que tienes en tu mano, que también se ve como en el mundo básicamente, solo vamos a copiar esto también. Entonces van y eso es en realidad todo lo que necesitamos para una flor personalizada. Entonces ahora veamos si funciona o los encontramos de vuelta en micro. Como puedes ver, la rosa rosa ha sido agregada con éxito al juego. ¿ Y no se ve simplemente hermoso? Entonces así de fácil puede ser agregar una flor personalizada a Minecraft, ¿verdad? Y entonces ya es para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 73. (intermedio) trazas de flores personalizadas: Muy bien, bienvenido de nuevo al curso de forraje a través del 118. Y en esta conferencia vamos a estar agregando un plan de política personalizado a Minecraft. Por lo que después de haber agregado en la flor personalizada, ahora también vamos a hacer una parte que variará de esta flor. Y la forma en que vamos a hacer esto, sólo vamos a copiar esto y vamos a decir parte, rosa rosa. Y lo más importante aquí es que éste en realidad no llama al método de bloque de registro, pero esto vuelve a llamar a bloques que se registran aquí mismo. Entonces lo que vamos a hacer es que sólo vamos a quitarle el grifo de alivio al final. Y luego también vamos a hacer de esta la parte que subraya rosa rosa. Y esto ahora es un bloque de macetas para esto solamente. Esto realmente va a necesitar tres parámetros diferentes también. El primero es un nulo, el segundo es mod blocks, rosa oscuro, rosa, lo mismo sin un get. Y entonces esto sólo se va a llevar el león dandy auditoria ya que está copiando las propiedades. Ahora bien, se podría decir, bueno, esto ya es, no del todo, porque lo que todavía tenemos que hacer es que todavía necesitamos una especie de agregarlo con una lista de posibles flores de pozo, simplemente esencialmente. Entonces una vez que el método de configuración, lo que vamos a hacer es que vamos a decir bloques, esa parte de flor, ese elenco. Y luego vamos a lanzar esto a un bloque de macetas aquí mismo. Y entonces podemos hacer es entonces podemos llamar al método add. Voy a decir modo de bloque, bloques punto, filas, punto getId. Entonces el segundo se acaba de mapear bloques punto-producto, rosa, rosa. Entonces esta es la forma de agregarlo básicamente que puedes hacer clic derecho con tus filas aquí y luego vas a sacar este bloque de él. Ahora esto sigue siendo un bloque normal, por lo que todavía necesitamos un bloque Estados Jason, modelo de bloque Jason y un archivo de traducción para la rosa de tubería. Sólo voy a copiar esto. El estado de bloque es en realidad solo un bloque normal, dice Jason año, el modelo es un poco diferente, pero no demasiado loco. Hagamos en primer lugar esto en realidad. Entonces hagámoslo en Gross son filas épicas. Ahora esta traducción sólo es necesaria si tienes algo como, ¿qué estoy mirando? El modo que básicamente puedes, ya sabes, que lo que básicamente estás mirando cuál es el nombre del bloque real que estás mirando. Ahora este año, este modelo de bloque que puedes ver es en realidad socios de subrayado de flor a través. Y luego especificamos el anterior. Ahora también es importante después de añadir esto, no necesitamos ninguna otra textura. Lo que haremos falta es que también necesitamos tener la rosa pública aquí en la capa de render recortada. De lo contrario, también vamos a tener un poco de una pantalla que emitirá allí. De lo contrario, eso es todo lo que tenemos que hacer, aunque puedes ver que en realidad es bastante sencillo, pero aún así, hay algunas cosas interesantes, sobre todo con esto, con el casting de la flor real olla. Después de que hayamos agregado esto, veamos si funciona. O hornos de nuevo en micro. Entonces, solo bajemos la parte y ahí vas. Tenemos las filas de tinta en maceta, que está funcionando totalmente bien. Pero esto es exactamente lo que querrías. En lugar de solo como un rápido aparte aquí al final, si alguien se pregunta, ya sabes, oh, ¿cómo podemos hacer la mesa de LU para esto? Una vez más, llega, tenemos ejemplos de vainilla de esto bajan a las bibliotecas externas, hasta el cliente de microondas neto extra 181. Y luego en las mesas de bucle simplemente puedes buscar todas las plantas en maceta. Se puede, por ejemplo, echar un vistazo a esto y luego básicamente simplemente reemplazar este allium aquí mismo por uno propio. Entonces simplemente copiado sobre Control C, Control V, y luego cambia esto. De hecho eso es lo fácil que puede ser. Por lo que siempre tienes todos los ejemplos de vainilla básicamente a tu alcance. Muy recomendable mirar esos también. Si alguna vez estás confundido o quieres algo que ya está en vainilla, básicamente simplemente replicado. A menudo es muy fácil de seguir, pero de lo contrario esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Te veré en la próxima conferencia. Entonces, sí. 74. (intermedio) sonidos personalizados: Muy bien, bienvenido de nuevo al curso por 118. Y en esta conferencia, vamos a estar agregando sonidos personalizados a Minecraft. O los sonidos personalizados son en realidad, bueno, yo diría bastante sencillo, todas las cosas consideradas. Ahora, lo que vamos a hacer es que necesitamos, claro que los registremos. Por lo que en nuestro paquete del curso MC, haga clic derecho en nuevo paquete llamado sonido. Y luego dentro de su nueva clase Java para pueblos, hace ahora esta clase de sonidos de modo va a tener un registro diferido final estático público de tipo evento sonoro llamado eventos de subrayado de sonido, que va a ser igual para diferir registro que cree o registre que suene eventos, MC curso MOD, pero modificado. Ahora si se trata de un registro diferente, hay un método de registro de vacío estático público con un bus de eventos, bus eventos cool o su parámetro, y luego eventos sonoros que se registran pasando en el perímetro de autobús de eventos. Entonces este método aquí se llama por supuesto justo debajo de los tratamientos modernos. Entonces sonidos mod, no evento sonoro, pero registro bus de eventos. Ahí lo tienes. Ahora, ¿cómo se vieron los eventos sonoros? Bueno, en realidad son bastante simples. Estático público Registro objeto de tipo, evento de sonido, dowsing, subrayado, guión varilla encontrado bajo puntaje o va a ser el nombre de las horas. Y para esto, en realidad vamos a crear un método personalizado. Bueno, déjame hacer esto por un segundo aquí. Y voy a hacer un nuevo método de Registro estático privado. Objeto de tipo evento encontrado registraría eventos de sonido. Y aquí sólo necesitamos pasar un nombre de cadena. Y entonces lo que vamos a hacer es que vamos a hacer una ubicación de recursos. ¿ Qué DNI? El nuevo recurso ubicación, MC curso MOT, mot ID y el nombre como el nombre del parámetro aquí. Y luego vamos a devolver eventos de sonido que se registren con el nombre, y luego un proveedor de un nuevo evento de sonido. Y aquí sólo tenemos que pasarle la ubicación de recursos. Este es el método de ayuda y esto en realidad va a hacer nuestras vidas mucho más fáciles. Aquí vamos a llamar a este guión bajo dosificación. Guión bajo puntaje o el nombre aquí va a ser muy relevante en tan solo un momento. Entonces este nombre aquí en realidad va a ser el nombre de algo que nosotros, bueno, básicamente declaramos en un archivo JSON separado. Por lo que ahora el sonido ha sido registrado. Ahora, en primer lugar, necesitamos, por supuesto, es algún tipo de archivo de sonido. Ahora esto va en los activos en tu carpeta de curso MC o tu ID básicamente. Pero necesitamos dos cosas. Número uno, necesitamos un nuevo archivo llamado Sonidos datos JSON, sonidos muy importantes dot JSON. Y se presenta así. Tenemos corchetes rizados y luego básicamente declaramos sonidos diferentes. Entonces voy a copiar sobre la declaración del sonido. Y lo que encontrarás es que este nombre de aquí es exactamente el mismo que este nombre de aquí. Entonces esos dos tienen que igualar. Los subtítulos son básicamente lo que verás dentro de todo lo que declaras dentro de tu oído y subrayamos archivo JSON cuando tienes subtítulos activados. Entonces esto es algo que solo puedes agregar al archivo JSON de emRS curios. También puedes llamar a esto algo así como sonidos dot M, cuerpo C, donde sea algo como esto. No voy a agregar la traducción aquí porque por el momento no es tan relevante y también es solo una cosa que copias. No debería ser demasiado loco con lío con la traducción por un tiempo. Ahora bien, esto debería ser bastante sencillo. Y lo que es muy interesante es que esto suena aquí, esta es una lista, ¿verdad? Porque tenemos estos corchetes sin embargo, este año apunta al subrayado dowsing, un guión bajo encontrado debajo de la escuela o lo haremos ahora, ¿dónde se encuentra este archivo? Bueno, definitivamente bajo el espacio de nombres del curso EMT, pero donde exactamente bien, en la carpeta del curso de activos se ejecuta MC. Nuevamente, haga clic con el botón derecho en Nuevos sonidos de acordes Y luego dentro de ahí necesitamos un archivo OGG con ese nombre. Entonces voy a copiar esto por encima de ellos hace. Y es muy importante que este nombre aquí coincida exactamente con este nombre. Es, tiene que ser un archivo OGG. Esto es muy importante y tiene que estar bajo el sonido mono, el tipo de sonido o el espacio sonoro. Tiene que ser un archivo OGG mono. De lo contrario podrías encontrarte con algunos temas, muy importantes. Y no puedes simplemente tomar un archivo MP3 y cambiar el nombre del final del mismo. Mp3 tiene que ser convertido correctamente a un archivo OGG. Entonces eso es muy importante. Ahora todo lo que encontrarás es porque esta es una lista que en teoría podrías tener múltiples entradas aquí. Entonces puedes ver ahora podría tener otro aquí dentro y entonces elegiría básicamente uno de esos. Entonces eso es muy importante. Nos vamos a quedar con uno por el momento, pero existe la oportunidad básicamente aquí de sumar varios. Ahora la pregunta es, ¿cómo llamamos realmente a esto o ventana? Vamos a llamar a esto, bueno, vamos a llamar a esto, por supuesto, en el elemento de varilla de dowsing, básicamente cuando hayamos encontrado un valioso o aquí, queremos jugar esto. ¿ Y cómo jugamos esto? Bueno, vamos a decir los contextos punto a nivel de compuerta. Por lo que necesitamos el nivel cuando digo tocar sonido. Y luego vamos a conseguir al jugador, vamos a hacer clic en la posición. Vamos a conseguir sonidos modernos. Esa varilla dowsing out o que consigue fuente de sonido va a ser, digamos bloques, eso va a estar bien. Y luego Volumen 1, f, y pitch uno también. Y esto es realmente lo fácil que puede ser agregar un sonido o llamar a un sonido rico. Solo necesitas el nivel y luego reproducir sonido genial. Pero hay diferentes formas en que puedes tocar sonidos. Creo que podría haber visto esta tasa como si tuviera un nivel, podría obtener nivel. Se puede ver que puedo tocar sonido. Incluso puedo tocar sonido local, que luego sería un sonido local. Por lo que recomiendo encarecidamente solo jugar un poco con esto y ver cuál de esas básicamente funciona mejor. También puedes hacerlo en el propio jugador. Por lo que también puedes hacer sonido de reproductor. Puedes ver ahí vas, sin embargo. Solo recomiendo encarecidamente jugar un poco con esto y ver y cuál podría ser la mejor idea para ti para este fin. Sí, pero esto es en realidad todo lo que necesitamos hacer para agregar sonidos personalizados. Entonces, veamos si funciona. O hago granjas como microondas y me aseguro de que tu volumen se encienda solo para que estés seguro de que puedes oírlo. Y vamos a ver, ahí está. N Lo hemos escuchado. Anillo, anillo, anillo. Entonces todo funcionando totalmente bien. Y ahora lo que también puedes ver es cuando bajé los bloques porque lo hemos hecho sonar bloques de fuente. Y C Ahora ya no lo podemos oír en cuanto vuelvo a dar vuelta las cuadras sobre su espalda. Pero eso en realidad es realmente genial. Déjame bajar un poco el volumen otra vez. Y va a estar muy tranquilo. A lo mejor, para que sea tan silencioso que ni siquiera puedes oírlo. Pero sí, en realidad eso es lo fácil que puede ser agregar sonidos personalizados a Minecraft, ¿verdad? Eso es realmente lo fácil que es y creo que realmente es bastante sencillo. Ahora una cosa que probablemente esté en tu mente, sí, pero quiero que mi bloque personalizado también tenga sonidos personalizados. Bueno, por suerte, eso es exactamente lo que vamos a ver en la próxima conferencia. Pero esto es todo para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo, y te veré en la próxima conferencia. Entonces, sí. 75. (intermedio) sondos personalizados para bloques: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un tipo de sonido personalizado. Minecraft. Ahora es tipo de sonido básicamente incluye cinco sonidos diferentes y representa sonido para un bloque en particular. Pero hay un sonido de ruptura es sonido de paso, colocando sonido, un sonido hit, y un sonido completo. Y vamos a sumar los cinco de esos. Ahora, voy a copiar sobre el registro básico. ¿ Definitivamente esto no es tan interesante. En primer lugar, eso es realmente gracioso que este no sea el nombre correcto, pero eso es, por supuesto totalmente bien. Van a registrar eventos sonoros en este caso. Y se puede ver que básicamente tenemos lámpara cobalto rotura lámpara cobalto paso, Vamos a golpear y caer. Entonces esos son los eventos sonoros, los individuales, los necesitamos y eso también será necesario es que necesitamos un tipo de sonido forja personalizado. Entonces también voy a copiar este otro y se puede ver más o menos es sólo los sonidos del cobol. Y esto es entonces igual a una nueva métrica tipo de sonido va a hacer sonidos de cordero compañero de trabajo para estudiarlo, Es un poco más claro a qué se refiere básicamente esto. Y aquí dentro, básicamente necesitamos pasar en el modo sonidos y no necesitamos hacer conseguir porque el sonido forraje aquí en realidad una vez un proveedor. Entonces esto va a estar totalmente bien. Entonces básicamente queremos usar esto en lugar del tipo de sonido solo para estar seguros porque esto es, tiene algo que ver con la carga y básicamente registrar cosas. Ahora mismo esos cinco eventos de Sonido, en realidad todavía tenemos que registrar estos sonidos. Archivo Json aquí mismo. Ahora, volveré a copiar esto, pero no se preocupe. Todo esto, por supuesto, está disponible para ti en el repositorio de GitHub o en un individuo igual de bien. Y puedes ver básicamente tenemos el paso de ruptura de la lámpara cobalto, por favor golpea y cae, que básicamente una vez que obtienes los subtítulos aquí y luego refieres a un archivo de sonido en particular. Una vez más, tienen que ser OGG, esto es muy importante, y también tienen que ser mono. Esto es increíblemente importante una vez más, lo contrario, podría haber algunos problemas con los archivos. Y además no puedes simplemente cambiar el nombre un archivo MP3 a básicamente un archivo OGG, tiene que ser convertido correctamente. Así que asegúrate de que todas esas cosas sean el caso. Y por supuesto, en nuestro ejemplo aquí, puedes por supuesto solo usar los que yo suministre, sin embargo. Vamos a copiar los de aquí mismo. Se van, cinco de ellos. Y eso debería ser más o menos Así que los sonidos están registrados. Eso está todo bien, pero ¿cómo agregamos ahora esto a un bloque? Bueno, como en realidad bastante sencillo, pero en nuestro caso queremos agregar esto a la lámpara aquí. Entonces solo vamos a agregar una nueva propiedad de comportamiento de bloque y eso va a ser sonar el ego y ya sugiere esto. Entonces esto va a ser mod sonidos dot para lo que suena, y eso es todo. Todo lo que necesitamos hacer. Y ahora la lámpara de cobalto debería tener todos los sonidos asociados a este tipo de sonido aquí mismo, que son los cinco de estos. Aunque, quiero decir, suena como muy anticlimático, pero eso es más o menos. Entonces, veamos si funciona. O nos encontramos de vuelta en Minecraft y un ya aquí. Funciona totalmente bien. Entonces vamos a pisarlo. Eso es exactamente correcto. Y vamos a romperlo. Eso es exactamente correcto. Ahora, lo único que he encontrado y eso es muy interesante es que el sonido cayendo por cualquier razón no funciona del todo. O sí funcionó ahí. A ver. Ahora bien, no funcionó del todo. No soy un 100 por ciento seguro. El sonido que cae, Es a veces no parece querer funcionar. Honestamente no estoy un 100 por ciento seguro de por qué ese podría ser el caso. Pero los grandes, el sonido de ruptura, el sonido de colocación, esos son los grandes, el sonido de golpeteo, creo que también puedo ir aquí y luego aquí se puede escuchar así como el sonido y colocar sonido, cosas así. Ésas son realmente las grandes. Aunque. Eso es bastante guay, justo ahí ya lo estaría para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 76. (intermedio) Discos musicales personalizados: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un disco musical personalizado a Minecraft. Entonces para concluir básicamente nuestra aventura en los eventos sonoros, ahora también vamos a agregar un disco musical personalizado. Ahora, esto es una vez más, más o menos sólo en evento de sonido normal aquí mismo. Simplemente vamos a copiar esto y en realidad voy a poner esto por encima de los tipos de sonido reales por si acaso. A veces puede estar un poco separado. Aquí va a ser la pelea de bar, y luego el evento de sonido en sí también se va a llamar rol de subrayado VAR. Ahí lo tienes. Y entonces por supuesto, se hace el evento sonoro. Por supuesto que todavía tenemos que añadir esto a los sustantivos punto-punto Jason. Por lo que una vez más, copiaré esto más. Todo esto está disponible para ti también, por supuesto. Y verás que solo es Bárbara. Ah, este es sólo el mismo nombre que le hemos dado aquí mismo. Y entonces esto apunta a una pelea de bar bien, nombre, archivo llamado en la carpeta Sonidos aquí mismo, que tiene que ser ODD una vez más. Y esta vez es cada vez más importante que sea mono porque de lo contrario se escuchará en todo el servidor. Esto es muy importante y se puede ver también tenemos esta corriente verdadera aquí porque el, bueno, en primer lugar, la longitud del archivo es cierta longitud. Y el número dos es por supuesto un arroyo que debería tener sentido. Vamos a copiar esta pelea de subrayado overbar en. Ahí. Te vas más o menos. Ahora para el disco real, ¿verdad? Tenemos que entrar en nuestra clase más ítems y crear un nuevo elemento aquí, solo tomemos la tableta de datos y vamos a copiar esto. Y ese va a ser el récord de subrayado de peleas de VAR . Digamos ahora por el nombre real que voy a llamar a esto deep are underscore pelea y música underscore disco solo apilando 21 está realmente bien aquí, y este es un ítem discográfico. Ahora esto toma en un parámetro entero como su primer parámetro. Y entonces el segundo parámetro va a ser un modo suena barra de puntos, pelea. Se puede ver que el primer parámetro entero es el valor del comparador. Básicamente, bueno, lo que sale cuando la fuerza de la señal sale cuando se pone un comparador junto a la jukebox cuando se pone este registro. Ahora este es un ítem normal, sin embargo, tiene una especialidad, por así decirlo. Y eso va a ser, bueno, cuando se trata de la traducción que necesitamos para la traducción es una cosa siguiente. Y eso va a ser exactamente esto. Entonces el disco musical Barbaro accede al nombre del mismo, ¿verdad? Y entonces también necesitamos que DESC así para su descripción. Y esto suele contener con lo que los artistas básicamente hicieron esto y luego el nombre de la canción. También he incluido CC Zero para que básicamente signifique que esto está bajo dominio público, por lo que eres libre de usar esto. Simplemente recomiendo encarecidamente siempre acreditar al artista por esto porque eso es justo lo correcto para hacer. Pero este también es un artículo normal, así que aún necesitamos un modelo de ítem y solo voy a copiar esto de nuevo. Esto no es nada demasiado loco. Simplemente apunta a una textura normal del artículo justo aquí, que por supuesto también va a ser algo bastante sencillo. Entonces, solo, vamos a copiar esto también. Se van y eso es más o menos todo lo que tenemos que hacer. Entonces eso es más o menos para agregar el registro personalizado aquí. Entonces supongo que sólo oigamos si funciona. Está bien, Nosotros granjas como un microondas podemos ver la barra Brahms música, Esto se ha agregado, así que vamos a ponerlo en la jukebox y ahí está. Y ahora que lo que es muy importante es que cuando vuelo lejos, se puede escuchar que se pone alambre y silencioso hasta que ya no se pueda escuchar. Y si me acerco, se va a poner más fuerte otra vez. Entonces esto es perfecto. Y lo hace es más o menos exactamente lo que queremos. Esta es una de las razones, o básicamente hay que poder tener este archivo OGG y mono. De lo contrario en realidad se escuchará en todo el servidor cuando juegues esto para asegurarte de que está en mortal, he cometido el mismo error antes. Entonces básicamente, eso es básicamente lo fácil que es agregar un disco musical personalizado, Minecraft, ¿verdad? Eso ya es para esta conferencia aquí mismo. Espero que esto te haya parecido útil en la orina. Entonces lo nuevo, si lo hizo nuestro muchísimo aprecio una crítica de ustedes. De lo contrario, los veo en la próxima conferencia. Entonces, sí. 77. (intermedio) modelos de bloques personalizados en Minecraft con BlockBench: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un modelo de bloque 3D personalizado a Minecraft. Pero eso es algo bastante emocionante, ¿verdad? Agregando un bloque 3D personalizado, el Minecraft, básicamente eso no es bloque entero, sino simplemente una forma diferente básicamente. Y hay muchas partes móviles a esto. Entonces, antes que nada, lo que vas a necesitar es que vas a necesitar un programa llamado banco de bloques. Ahora, ya tengo esto abierto y también ya tengo preparado nuestro bloque personalizado aquí mismo. Y puedes ver que es, ya sabes, definitivamente es personalizado como definitivamente puedes decir eso al respecto. Y la idea general es que, bueno, vamos a exportar esto como sólo una cuadra. Entonces lo que puedes hacer es básicamente cuando haces un nuevo archivo aquí, solo puedes hacer un modelo de ítem de Java blocks dash. Incluso puedes especificar el tamaño de la textura, solo un nombre nuevo, y pueden hacer cosas con él. Ahora esto no va a ser una conferencia sobre banco de bloques en sí. Si hay muchos intereses para ello, podría agregar uno aquí también, pero por el momento, no va a ser uno. Básicamente, podrías simplemente agregar cubos aquí. Puedes moverlos, ¿verdad? Básicamente construyendo Minecraft. Bueno, solo que no en Minecraft, por así decirlo. Simplemente puedes construir algo a partir de bloques y luego vamos a agregar eso como un bloque personalizado y vas a ser lo vas a hacer sin embargo es básicamente vamos a descartar esto. Ya no necesitamos eso. Esto de aquí, lo que vamos a hacer es ir a File Export y luego Export block sludge item model. Y esto nos llevará a exportar básicamente esto. Vamos a salvar esto. Entonces ya tengo eso guardado, pero eso va a estar bien. Y esto se va a guardar en un archivo JSON. Ahora abriré este archivo JSON aquí mismo en inteligente. Y puedes ver que se ve un poco así. Entonces esto es mucha suavidad que nos mueve un poco confuso. No estoy seguro de lo que esto significa. Bueno, los elementos aquí que listan básicamente solo definen los objetos 3D que están dentro de nuestro bloque. Y entonces aquí la textura que es como más importante se define básicamente aquí mismo. Ahora bien, sí necesitamos cambiar esto. Por lo general este es el caso, así que MC curso colon y luego voy a poner realmente esto debajo de Máquinas slash compró un blaster. Y entonces lo mismo va para este de aquí. Y luego voy a API sobre la textura real también. Entonces déjenme hacer rápidamente la textura primero y luego podemos hablar de lo que hace este archivo JSON. Hacer un nuevo directorio aquí llamado máquinas. Entonces dentro de ahí vamos a tener el subrayado cobalto blaster dot PNG que vas. Y luego a dónde va este archivo JSON? Bueno, esto es sólo una normal. Bmi no es normal, pero es solo un archivo de modelo de bloque. Eso es un modelo de bloque, Jason. Ellos hace. Y ahí lo tienes. Y eso es literalmente todo lo que realmente necesitas para que funcione el modelo de bloques personalizado. Ahora, hay algunas cosas interesantes que puedes definir aquí. Entonces, por ejemplo, tienes esta pantalla y aquí puedes, por ejemplo, definir cómo se ve esto en 3D? ¿ Cómo se vería si un zombi lo sostiene en tercera persona y puedes hacer respiración en primera persona, la persona de Lester justo en la cabeza, lo cual es un poco gracioso. Y luego hay en el suelo, ya sabes, tal vez eso es demasiado grande o que tal vez eso es demasiado pequeño para que puedas cambiar todo eso también. Y esto es todo parte del archivo JSON real que estabas exportando aquí. Entonces puedes ver esto es exactamente aquí mismo, esa pantalla, esto está todo definido, así que todo funciona absolutamente genial. Ahora vamos a necesitar un modelo de artículo también. Ahora esto por supuesto sólo se refiere nuevo al modelo de bloques aquí. Sólo vamos a decir bláster cobalto, ahí mismo y luego aquí también. O yeso que hace. Ahora esto en realidad todo ya va a funcionar. Ahora, también necesitamos un bloques personalizados Estados, Grayson. Ahora, una vez más, sólo voy a elegir el bloque uno y vamos a copiar esto de nuevo. Y esto sólo va a apuntar al archivo JSON que acabamos de hacer que hemos exportado aquí. Definitivamente vamos a echar un vistazo a este en tan solo un momento otra vez, porque lo que definitivamente tenemos que cambiar tal vez una o dos cosas ahí. Pero por el momento, lo que vamos a hacer es hacer un nuevo bloque. Vamos a registrar un nuevo bloque. Nos vamos a llevar aquí la rosa rosa porque los otros tienen el registro de bloques. Queremos por supuesto hacer un artículo también. Entonces este va a ser el bláster de subrayado cobalto. Entonces aquí también, Walt subraya bláster. Esto es por el momento va a ser un bloque normal porque podría hacer esto con un bloque normal no, o es lo que sea. Y esto no va a copiar nada. Esto va a ser arriba. Y entonces digamos algo así como material, metal. Y eso es en realidad por el momento, todo lo que necesitamos. Ahora veremos dos limitaciones muy aparentes con esto. Básicamente vamos en juego, pero por el momento, esto es más o menos lo que necesitamos. Ahora lo que también necesitamos, sin embargo, es la capa de render real aquí. Entonces pongamos esto de inmediato para el lanzador cobol que vas, y eso debería estar bien. Ahora, todavía vamos a ver un par de limitaciones con esto. Pero entonces por suerte, también vamos a ver cómo arreglarlas. Entonces por primera vez en esta conferencia, Vamos a ver si funciona. O me encuentro en microRNAs se puede ver que se ha agregado el lanzador cobol. No agregamos la traducción, pero eso es por supuesto algo para arreglar fácilmente. Ahora si lo pongo abajo, se puede ver que, bueno, primer lugar, vamos a tener un problema con el transparente. Entonces eso es algo que fácilmente podemos arreglar tu y entonces también te darás cuenta de que estamos ante todo, lo puse abajo, pero siempre se ve en la misma dirección. Entonces eso es un poco molesto. Y entonces también las fronteras aquí son, bueno, no del todo lo que deberían ser. Ahora, definitivamente no son lo que deberían ser. Entonces eso definitivamente es algo a lo que echar un vistazo. Bueno, por suerte, podemos arreglar en realidad los tres de esos temas. Entonces vamos a abordarlos uno por uno. El primero y más fácil es por supuesto, porque el vero-through, bueno, sólo necesitamos la no oclusión justo aquí en las propiedades de bloque, propiedades de comportamiento de bloque. Y si eso es genial, entonces eso se va a arreglar de inmediato. Ahora a los otros dos. Bueno, para que la rotación sea correcta, en realidad vamos a necesitar que un cliente nos bloquee para esto. Por lo que vamos a hacer una clase de bloque personalizada llamada el cobalto último bloque. Y esto va a extender la clase de bloque normal en este momento. Solo vamos a crear constructor que coincida con Super Si las propiedades aquí no, haces clic en él, Shift F6, y luego lo cambias a propiedades. Y vamos a necesitar una propiedad personalizada. Ahora esto no es necesariamente una propiedad personalizada, va a ser una propiedad de esto va a ser una propiedad de dirección final estática pública o frente, que es igual a propiedades de estado de bloque. Ese frente horizontal como muy importante aquí. Y entonces lo vamos a hacer es que básicamente vamos a registrar el predeterminado aquí. Por lo que este perplejo getState definición punto, punto. Un valor de enfrentar va a ser dirección que Norte. Entonces van, esta va a ser la dirección por defecto que va a enfrentar. Y entonces queremos tres métodos que en realidad voy a cuatro métodos los cuales voy a copiar. Aquí no hay nada demasiado loco. Entonces verá, por supuesto, en primer lugar, el método de definición de estado de bloque decretado, donde lo hemos visto previamente, sólo agregamos la propiedad de phasing al constructor. Esto no debería ser nada nuevo para ti. Ahora, esos tres definitivamente se conocen y eso en realidad también se agregó la anulación a los dos solo para que los tengamos. A pesar de que, el buen estado para colocación básicamente sólo una vez más se asegura de que bien, la colocación particular sea correcta. Y en este caso, en realidad estamos queremos la colocación opuesta de la forma en que estoy mirando. Yo estoy mirando hacia el norte. Yo quiero que la cuadra esté frente a mí. Por lo que tiene que estar mirando hacia el sur. Entonces esa es la idea general de lo que todo esto hace. Y entonces estos básicamente simplemente giraron y espejaron para estar bien en el frente correcto. Ahora que como en realidad todo lo que necesitamos en esta clase justo aquí por el momento al menos. Y en nuestra clase más bloques, asegúrate de que ahora por supuesto creaste la nueva explosión de cobalto o bloque justo aquí y ya no solo un bloque normal. Eso es muy importante. Eso es a veces lo que la gente echa de menos cuando hacen una nueva clase de bloque. Sabes que no funciona tan bien si no lo has creado. Entonces eso es un hecho muy importante. Por supuesto, también necesitamos cambiar nuestros, nuestros Estados de bloque. Jason aquí y yo ya lo hemos preparado. Ahora esto no es nada demasiado loco. Lo que esto básicamente sólo hace es básicamente sólo dice, oye, si estamos enfrentando en una dirección diferente, sólo vamos a rotarlo en el eje y 9080 o 270 grados. Pero esto es más o menos todo lo que esto hace realmente, el modelo seguirá siendo el mismo. Simplemente vamos a rotar todo el bloque básicamente. Esto por supuesto, también todo disponible para ti en el repositorio de GitHub o un individuo igual de bien. Y esto debería haber arreglado ahora el problema rotatorio. Y por supuesto también el, ya sabes, básicamente el tema de ver a través aunque, por segunda vez, esta conferencia, veamos si funciona. Está bien, Así que en primer lugar, se puede ver una vez más, el pozo real que se ve a través se ha ido. Y luego si lo coloco así, ahí tienes. Ahora me enfrenta, igual que esperaríamos. Entonces es sólo el cuadro limitador que ahora es el tema. Y bueno, como la suerte lo tendría o supongo que como suerte no lo tendría. Esto también es el, no necesariamente diría lo más complejo, pero puede ponerse muy molesto. Pero vamos a ver, Sólo para que no lo olvide, en realidad voy a añadir la traducción aquí en este momento, cobol 100 marcador blaster. Porque de lo contrario, en realidad voy a olvidar esto. Entonces ahí tienes, cobol blaster, y eso debería estar bien. Ahora vamos a necesitar ajustar el bloqueo de carretera de explosión de cobol una vez más. la clase que eres, pero lo que realmente vamos a necesitar es que vamos a necesitar cosas de banco de bloques una vez más. Entonces vamos a reabrir el punchier de bloques. Y lo que ves es que tengo todos mis cubos bajo el grupo llamado formas de voxel. Ahora esto es muy importante. En realidad necesito esto bajo el grupo de formas voxel. De lo contrario no funcionará muy importante aquí. Lo siguiente, lo que necesito es que necesito un plugin específico a un 100 plugins que puedes ir bajo disponibles y quieres buscar más utils. Ahora, ya tengo esto instalado. Se ve así de JDK 22 y el clima. Ahora bien, esto es muy importante porque se puede ver explotando formas de voxel. Esto es exactamente lo que quiero exportar aquí. Nosotros queremos ir a la forma voxel. Quiero seleccionar esto para que todo aquí esté seleccionado. Ve a Exportar archivos, y luego puedes ver exportar forma voxel. Ahora quiero exportar esto como un mapeo MOOC. Por lo que mappings oficiales aquí en este caso. Y luego quiero decir que confirme. Ahora quiero llamar a esto el guión bajo forma de voxel n. ahora podrías ser como, Espera, ¿por qué es n? Bueno, vamos a tener que exportar esto para cada orientación diferente. Entonces vamos a tener que rotar esto 90 grados. exportan de nuevo, giran 90 grados, exportan de nuevo, giran 90 grados, exportan de nuevo. Y luego terminamos. Necesitamos cuatro voxels diferentes, formas. Todavía tengo que encontrar una mejor manera de hacer esto. Si encuentras una mejor manera de hacer esto, por favor sí dímelo. De verdad quiero saber porque en este punto se está volviendo muy bien, es muy molesto porque vamos a tener que hacer esto varias veces. Pero te mostraré cómo el Firefox va a ser un archivo Java. Y básicamente puedes, vas a tener este año. Ahora lo primero que harás es que básicamente limpiarás esto. Entonces si tienes estos ceros son usuarios o simplemente redondearlos hacia arriba o redondearlos hacia abajo para básicamente el entero más cercano. Este año es básicamente un punto cero y luego seguido de 14 ceros. Y luego un tres está como bien, eso va a ser un 0 por supuesto. Entonces básicamente queremos limpiar esto para que se vea bonito y ordenado que solo haya introducido aquí. Y entonces básicamente podemos usarlo. Y lo que vamos a hacer es dentro de la clase básicamente van a hacer una nueva estática privada. Forma voxel final estático privado, hold shape underscore n, que es igual exactamente a todo este jazz justo aquí. Vamos a copiar esto y Control V para pegarlo. Voy a importar la forma de voxel. Vamos a importar el arroyo. Importar las formas voxel. En realidad esto sólo son formas. Ahí vas. Ahí hay formas. Y entonces el ojo funciones booleanas también diferentes. Esto en realidad es el booleano arriba que hace. Ahora esto va a funcionar. Entonces los mappings reales probablemente no estén actualizados todavía, bastante para banco de bloques, pero eso está bien porque esto es básicamente lo necesitamos aquí y bueno, esto es genial, pero ahora solo tenemos la forma para la dirección hacia el norte porque por supuesto la forma sería diferente si bloqueaban se enfrentaba a una dirección diferente. Pero tenemos que hacer es básicamente tenemos que seleccionar una vez más las formas de voxel. Muy importante es que el punto de pivote donde puedes centrarlo, pero puedes ver que ahora no está del todo centrado, como si estuviera centrado, pero entonces tiene estos raros valores decimales. Asegúrese de que esto es como establecido en un punto que es También enteros. Porque si no lo es, entonces te vas a tropezar con algunos temas. Y lo que vamos a hacer es que vamos a rotar esto 90 grados, justo de esta manera. Y ahora verás que eso en realidad no se alinea del todo. Ahora eso está bien. Lo que tienes que hacer es usar estas flechas para moverlo. Y entonces básicamente se puede recentrar. Ahora esto no va a ser en C. Ahora, lo que pasó aquí es que básicamente entré accidentalmente al número y luego solo va a mover cada cubo. Esto es algo que es muy extraño y tiene que ver con banco de bloques. Simplemente no estoy absolutamente seguro de que puedas ver si uso las flechas, entonces va a estar bien que básicamente las mueva como grupo juntos. Si cambio los números ahí dentro y en realidad los va a mover de alguna manera de manera individual. Simplemente no estoy un 100 por ciento seguro de por qué este es el caso. Esto es sólo la locura con banco de bloques. Tristemente, realmente no hay ningún otro programa en este momento que esté familiarizado con eso, ya sabes, ¿hace esto bastante bien? Entonces sólo vamos a tener que atenernos a esto. Y entonces se puede ver, bueno, ahora hemos girado esto y ahora la cuadra está orientada hacia el poniente. Por lo que ahora tenemos que volver a exportar forma de voxel. Y entonces este es el subrayado Vox W. Y esto es muy importante, ¿verdad? Asegúrese de que lo exporta debajo de la alfombra, nombre correcto, derecho. He visto a mucha gente. Es como si no funciona bien, si has confundido Oriente con Occidente, puede pasar bajo el diamante es noreste, suroeste, ¿verdad? Así que asegúrese de que siga eso a menos que en realidad sólo gire de nuevo aquí. Y puedes ver que tenemos que moverlo una vez más, asegurándonos de que aquí usamos esas flechas. Y en realidad está en la dirección diferente. Ahí vas. Y entonces esto sería Sur. Entonces esto es exportar un subrayado en forma de voxel S. Y luego una vez más afortunadamente. Y entonces básicamente ya terminamos aquí. Entonces de esta manera uno y luego de esta manera, no, yo una vez más, accidentalmente hice clic en el número real, asegúrate de que no lo hagas. Si lo haces, solo puedes presionar Control Z para básicamente retroceder paso. No se preocupe ahí. Y luego vamos a exportar esto otra vez, exportar voxel forma caja o forma subrayado E Esta vez o este. Y luego sólo para tenerlo de vuelta, la posición original justo aquí, 0, y entonces esto va a ser 13. En realidad. Ahí vas. Voy a ahorrar esto una vez más sólo para que tenga esto de vuelta en este puesto para que también esté disponible para ustedes. Y ahora tengo los cuatro archivos Java también. Entonces, sólo vamos a traerlos por aquí. Ahí vas. Entonces, una vez más, saquemos ese tipo de imperfecciones de ahí. Ya sabes, esos sólo a veces suceden porque los errores de coma flotante, simplemente es lo que es. Pero esto no está tan mal. Es simplemente básicamente simplemente eliminar todos estos errores de redondeo de puntos de carga. Y entonces vamos a estar totalmente bien. Entonces esto va a ser un 0 otra vez. Déjame 14 aquí y 13 justo aquí. Guarda esto, guarda esto, y luego vamos a seguir con E. Pero lo que voy a hacer es sólo voy a copiar esto o veces y voy a tener ovejas E, S, forma w. Y luego de supuesto, asegurándonos de que elegimos los correctos básicamente para trabajar allá arriba. Entonces esto era E, es E y entonces sólo vamos a cambiar esto por formas. Y luego estos dos booleanos arriba hace un año. Y esto va a ser S, y esto va a ser S también. Eso es genial. Una vez más, esto son solo formas y luego booleano arriba. Yo sólo voy a copiar esto sobre un control C control V. Y luego por último pero no menos importante, la orientación oeste de forma de voxel. Una vez más, booleano arriba, hace día booleano. Si estás planeando tener bloques con muchas formas complejas de caminar a través o tal vez esto va a ser un determinado a partir de él. Yo muy recomendable no enloquecer con ello. Y si tienes como demente como locas detalladas formas de voxel para no construirlas como completamente. Por lo general como esto es sólo cuadras, ¿verdad? Esto es solo bloques normales. Si tuvieras algo así de repente y luego lo rotas así, pero de repente esto ya no es un bloque real. Yo soy como si no fuera una cuadra recta. Si tienes muchos de esos diferentes estados de bloque que siguieron perfectamente al bloque, lo que puede pasar es que, bueno, básicamente puede bajarse del juego bastante significativamente porque por supuesto, las formas voxel determinaron básicamente la colisión con el jugador y las entidades. Y eso en realidad requiere mucho poder de procesamiento y esas cosas. Por lo que recomiendo encarecidamente no ir con formas de voxel locas de UW por si acaso, ¿verdad? Entonces esto es sólo debería estar bien. Pero yo sólo quería básicamente cautela en contra de esto. Y lo que realmente voy a hacer básicamente entonces lo que vamos a hacer aquí es que lo vamos a anular el método de buena forma aquí mismo. Y en realidad voy a copiar todos los contenidos. Esto no es nada demasiado loco. Es solo una declaración de cambio que puedes ver que obtiene el valor de la propiedad de enfrente. Y si es sur y vamos a devolver la forma Sur, norte y vamos a devolver la forma al norte de ellos, Suroeste, Oeste, Este. Nada demasiado loco aquí debería ser bastante autoexplicativo. Y eso es más o menos todo lo que necesitamos hacer. Ahora ya has visto que esto es bastante complicado. Como dije, si tienes muchos blogs diferentes con adultos diferentes formas de voxels, bueno, simplemente es lo que es. Si en realidad sí tienes una mejor manera de hacer esto, por favor sí dímelo en las cosas de preguntas y respuestas, estoy muy abierta a tener una posibilidad diferente de agregarlas. Ahora si cambiáramos algo, sí, tendríamos que volver a exportar todas las formas de voxel. Entonces lo es, puede ser un poco tedioso, pero cualquiera que sea el caso, ahora por fin lo hemos hecho. Entonces la última vez que esta conferencia, veamos si funciona o si, por ejemplo, vuelta en Minecraft y vamos a sentarlo y hace las formas voxel funcionan perfectamente. Vamos a ver, debería funcionar perfectamente en cada dirección diferente que vayan también es una de las cosas importantes por las que definitivamente debes eliminar las imperfecciones porque de lo contrario lo simplemente estar apagado por sólo el poquito más pequeño, más pequeño. Y eso es realmente molesto. Y también en realidad probablemente va a ser como mejor si es un entero, pesar de que creo que sí se convierte de nuevo a un flotador de todos modos, pero, ya sabes, es solo, hace los cálculos generales un poco más rápido. Pero sí, así es más o menos como puedes agregar un modelo 3D personalizado Minecraft. Una cosa más que solo voy a quitar aquí es el padre justo aquí porque en realidad no tenemos un azul, no necesitamos a esos padres realmente aunque. Sólo vamos a quitar eso. Ellos lo son. Entonces eso debería estar bien también. Pero por lo demás, esto es más o menos cómo se puede agregar. En general. Es, bueno, puede ser muy complejo, sobre todo si tienes esas formas de voxel locas, pero por lo demás, es algo bastante sencillo. Todas las cosas consideradas, dependiendo cuántos modelos de bloques 3D personalizados diferentes que desee. Pero ahora estás equipado con los conocimientos para básicamente, vamos a sumar esos. Entonces espero que esto te resulte útil y aprendas algo nuevo. Y te veré en la próxima conferencia, sin embargo. Sí. 78. (Intermedio) Modelos de elementos personalizados con BlockBench: Muy bien, bienvenido de nuevo al curso de fragua para 118. Y en esta conferencia vamos a estar agregando un modelo de ítem personalizado, Minecraft. La última vez hemos visto un modelo de bloque personalizado. Ahora está en el modelo de artículo. Entonces, en primer lugar, vamos a crear aquí un nuevo elemento y una copia sobre la tableta de datos una vez más. Y este va a ser el personal de subrayado de cobalto. Y luego para el nombre por supuesto también, personal de subrayado cobalto. Y este va a ser artículo normal en este caso. Y luego las pilas a uno en realidad va a estar totalmente bien en este caso. Y agreguemos inmediatamente la traducción. De lo contrario, lo volveré a olvidar. Entonces esto por supuesto, ahora queremos morir. Y luego todo el personal justo aquí. Y una vez más abrimos banca de look aquí mismo para ver al personal de cobalto realmente genial aquí mismo. Y puedes ver acabo de preparar esto ya con algunos extras viejos de vainilla así como una textura personalizada también. Y recomiendo encarecidamente ir a exhibir aquí mismo para ver básicamente cómo se va a ver dentro de la mano del jugador. Tercera persona derecha, tercera persona izquierda. Tenemos a la primera persona, primera persona izquierda, sin cabeza. Eso realmente no tiene sentido en absoluto cómo se ve en el suelo, realidad realmente así. Y entonces el marco también es realmente genial en la interfaz de usuario. También muy agradable. Entonces definitivamente puedes cambiar esto y hacer, ¿ gustaría cualquier pantalla que quisieras? Recomiendo encarecidamente jugar con esto. Y una vez que estés contento con tu artículo personalizado, básicamente vas al bloque File Export. Cualquiera de los modelos lo exportará como un archivo JSON. Y después de sustituir porque ya tengo uno. Y luego vamos a copiar ese archivo. Y luego vamos a copiar ese archivo en la carpeta de ítems de modelos justo aquí para ambos empleados. Y hay algunas cosas que tenemos que hacer. Por lo que se puede ver que las texturas aquí vienen sin espacios de nombres, por lo que necesitamos agregar esto. Así Minecraft todo y bloquear latigazos. Y luego haz lo mismo por aquí, aquí y aquí. Entonces podemos simplemente poner lo mismo ahí para el bloque cobol, pero esto tiene que ser, por supuesto, caballo MC, eso es muy importante aquí. De lo contrario, eso es todo. Si tienes todas las texturas relevantes aquí, prácticamente es exactamente lo que necesitas. Solo necesitas esto como modelo de artículo y no necesitas ningún otro modelo de artículo para ello en absoluto. Entonces eso es lo que quiero decir, eso ya es más o menos. Es nosotros quiero decir, supongo que solo veamos si funciona sobre las finanzas de nuevo en Minecraft, como puedes ver, el personal frío se ha agregado al juego y se ve frecuente, increíble. Entonces básicamente puedes cambiarlo por aquí. Y se ve muy bien en primera persona y en tercera persona. Me gusta especialmente la cola de oro, básicamente como todo el bloque que está ahí en forma diminuta. No lo sé. Me gusta mucho el aspecto que tiene, así que sí, eso es más o menos lo fácil que es agregar un modelo de artículo personalizado a Minecraft, ¿verdad? Una vez más, la confección del modelo por supuesto es, pues ¿qué es difícil? Solo tienes que jugar con block venture poco. Te acostumbrarás a esto bastante bien rápido. Siento que este es un programa muy fácil de conseguir una espera y sí, goma que ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 79. (intermedio) Arcos personalizados: O volveré al curso de forraje por 118. En esta conferencia, vamos a estar agregando un Botha Minecraft personalizado. Por lo que un cliente era en realidad bastante sencillo. Entrémonos a nuestra clase de más artículos y solo copiemos sobre el personal de cobalto. Y este va a ser el viejo arco de subrayado. Y luego lo mismo aquí y el nombre arco cobalto. Y entonces este va a ser un elemento 0. Ahora las pilas desservidas 2, 1, 0 van a hacer es realmente vamos a sentar la durabilidad a, digamos 500. Va a haber un poquito mejor que el arco normal. Y para el cliente, en realidad necesitamos volver a configurar las propiedades del artículo personalizado. Entonces en nuestra clase de propiedades de ítem, Vamos a hacer una llamada nula estática privada, hacer todo el método que toma en un elemento, parámetro de elemento justo aquí. Así que vamos a trabajar la clase de ítem también y asegurarnos de que elegimos neto Minecraft world item, item. Y luego vamos al botón medio del ratón haga clic en la clase de propiedades del ítem justo aquí. Básicamente vas y vamos a elegir básicamente estos dos, bueno llama al registro, al arco y al registro con el bot básicamente cuando un Cabibbo para ellos. Por lo tanto, seleccione y presione el control C para copiar el control V para pegar. Y solo necesitamos ítem propiedades dot add delante del registro aquí. Y luego vamos a cambiar los artículos que se inclinan al artículo que es el parámetro aquí. Entonces aquí, ahí vas. Y ahora básicamente podemos hacer tantos como queramos. Simplemente llamamos hacer arco con más artículos para qué tazón que se pone. Y luego si tienes múltiples pelotas, solo llamas a esto varias veces. Y entonces lo harán, vamos a añadir las propiedades específicas del elemento todo y tirando a este artículo. Y para eso básicamente necesitamos unos modelos de ítem específicos, bueno, específicos. Primero que nada en la traducción aquí mismo, sólo para que la tengamos. Bueno, subrayado arco y arco cobalto aquí también. Y luego cuando se trata de los modelos de ítem, nuestra copia esos sobre todo aquí por supuesto está disponible para ti en el repositorio de GitHub o un individuo igual de bien. Se puede ver que en realidad necesitamos cuatro de ellos. Entonces el tazón de cobalto, ya hemos visto esto antes con propiedades del ítem son este el modelo por defecto que toma, ¿verdad? Entonces es solo esta textura real aquí. Y luego si anula básicamente si tirando como uno. Entonces si estamos jalando actualmente, entonces estamos empezando a conseguir este modelo. Entonces tirando de 0, entonces si el poste está alrededor del 65 por ciento hecho, entonces cambiaremos a tirar de uno. Y si se hace 90 por ciento y vamos a cambiar a dispuestos a. Y sí, esa es, quiero decir, esa es más o menos la idea general. Algo interesante aquí es que en la votación de uno, el padre en realidad va a ser el propio bot de cobalto. Por lo que puedes ver McQs artículo cobalto bot es el padre. Y luego sólo apunta a unas texturas diferentes otra vez. Pero eso es realmente todo lo que hay a ello. Nada demasiado loco. Por lo que ahora también podemos agregar las texturas aquí. Eso van a ser cuatro de ellos también. Ellos atrás, y eso es en realidad todo lo que realmente necesitamos hacer. El gran cosa es una vez más, la adición real de las propiedades del elemento. Ahora porque ya hemos visto esto con la tableta de datos, esto no debería ser demasiado loco o demasiado confuso para ustedes esperemos. Y eso es más o menos todo lo que realmente necesitamos hacer para agregar un rol personalizado. Ah, veamos si funciona. O fronesis espalda y microlensing. Ver el bot se ha agregado con éxito al juego. Y como puedes ver, si lo disparo, entonces la textura cambia también para que todo funcione perfectamente, correcto, En realidad eso es lo fácil que puede ser agregar un tablero personalizado a Minecraft. Y esto ya lo es para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 80. (intermedio): Muy bien, bienvenido de nuevo el cuarto curso para 118. Y en esta conferencia, vamos a estar agregando comandos personalizados a Minecraft. Escribe comandos personalizados, o algo muy interesante de hecho. Ahora empezaremos a, a medida que avancemos. Entonces esta es una de las conferencias donde empezamos a copiar sobre el código. Aunque una vez más, todo en el código está disponible en el repositorio de GitHub y un individuo igual de bien. Entonces no te preocupes ahí, deberías poder encontrar eso. No se preocupe. Por lo que en nuestro paquete del curso MC, haga clic derecho en nuevo paquete llamado el comando. Y luego vamos a crear de inmediato otro llamado evento. Y vamos a echar un vistazo al evento uno en tan solo un momento. En primer lugar, vamos a echar un vistazo al Comando 1, y vamos a copiar más de dos clases. En realidad voy a copiar sobre las clases en su totalidad. Entonces este es el comando home set y el comando de regreso a casa, y voy a explicar. Por lo que comando básicamente se crea con este despachador. Entonces estamos haciendo despachador de punto registrador y luego tenemos algunos literales de Comandante. ¿ Qué significa esto home set, qué estamos haciendo aquí y luego ejecuta? Bueno, esto significa que básicamente lo que necesitamos poner en la consola es slash home set. Después se ejecuta el comando. Entonces este es el comando real, 0 entonces establecido. Esa es la idea general. Si echamos un vistazo a Homer churn, podemos ver su casa luego regresar. Por lo que para casa, set, dijo su hogar, su regreso a casa es turno Homero. Esto no debería ser demasiado loco. Esto debería ser bastante sencillo. En efecto, construir tus propios comandos personalizados es algo muy complejo. Entonces yo diría que esto es algo donde si tienes algo muy particular que quieres hacer con tu mando, vas a tener que juzgar y error mucho a través de esto. Lo que recomiendo encarecidamente esta clase de comandos aquí mismo, botón del ratón medio haga clic en esto y verás todos los comandos de vainilla que están disponibles para ti. Entonces este es el mejor recurso realmente, para ver cuáles son los tipos de comandos que hay. Y recomiendo encarecidamente echarle un vistazo a esos. Y te lo diré de antemano, van a ser realmente complicados, ¿verdad? Incluso algo así como el comando kill, ese es probablemente uno de los más fáciles de echar un vistazo. Pero entonces si te metes en algo como el comando glúteo, quiero decir, mira esto, ¿verdad? Al igual que esto, se trata de tantas cosas que hay aquí. Y es tan complicado que puedes ver incluso aquí, ¿no? Esto es por cierto, el registro real del despachador de mando. Entonces puedes ver, entonces es como botín de slash y luego está bien, ¿qué haces? Tener herramienta de pescado puede tener como de alguien, hay tantas cosas diferentes pesar de que requiere aquí. Entonces puedes preguntar, Hey, esta es la persona que está tratando de discriminar, tener el nivel adecuado de permiso, no y así sucesivamente. Muy recomendable. Echa un vistazo a esto con mayor detalle. Si tienes algo que particularmente quieres. En nuestro caso, sólo vamos a hacer es vamos a guardar algunos datos en los datos persistentes del jugador aquí. Básicamente, cuando estamos configurando la posición de casa, sólo estamos diciendo, Hey, esto puso las tres coordenadas x, y, y z en un área dentro de los datos persistentes. El dato es sólo una etiqueta compuesta aquí en el jugador. Y solo voy a poner esto bajo MC curso MOD composite. Eso es más o menos. Y luego vamos a mandar un éxito con set home en una posición particular en la que acabamos de fijarlo. Cuando se trata del comando de regreso a casa es un poco más complicado, pero no realmente demasiado. Tenemos un tiene home pause Boolean, que básicamente solo dice, hey es la longitud de esta matriz getInt aquí, no 0. Porque si es 0, entonces lo sabemos, vale, aún no tenemos una posición. No es 0, entonces lo sabemos, vale, tenemos una posición de casa que básicamente se está estableciendo. Y luego nos limitamos a teletransportar al jugador a esa posición aquí mismo. Y básicamente diciendo: Hey jugador, regresa a casa. Y aquí estamos enviando un fracaso sin posición de casa se ha establecido. Y eso es más o menos todo lo que realmente necesitamos hacer aquí para los dos comandos. Se puede ver que básicamente estoy llamando a este comando aquí mismo con la fuente de Git. Se necesita en una pila de fuente de comandos. Y lo que es muy importante es que arroja una excepción de sintaxis de comando, porque se puede ver get player o exception. Entonces eso es algo importante aquí, ¿verdad? Entonces esto es básicamente todo lo que necesitamos en cuanto a los comandos. Ahora lo que vamos a necesitar es una clase de eventos. Entonces vamos a hacer clic derecho en el paquete de eventos que hemos creado eventos mod. Y en realidad hablaremos de eventos un poco más de detalle en una conferencia posterior. Pero los eventos son básicamente algo que realmente podrías crear todo un curso alrededor. Eso es como diez horas de duración también. Pero no vamos a entrar en demasiados detalles. Simplemente vamos a decir arriba de la clase add mod, asegurándonos de que éste esté seleccionado. Y luego vamos a eliminar los paréntesis, ese suscriptor de bus de eventos. Y luego queremos poner entre paréntesis con una ID MOD, que es por supuesto MC curso MOD. Y entonces queríamos a los métodos. Voy a copiar los dos más, pero también voy a explicar, por supuesto, fue muy importante es que sobre ellos tienen que ser públicos, estáticos, nulos, escribir el nombre en realidad no es lo que importa. Lo que importa es el parámetro aquí. Entonces este es el evento de comandos de registro y este es el evento de jugador que clon tiene que ser vacío estático público, y tienen que tener la anotación en evento de suscripción. Esto es muy importante. No olvides esto, de lo contrario no funcionará. Es muy importante. El propio método de registro de comandos, será bastante autoexplicativo. Tu proyección de un nuevo en casa sale y un nuevo comando de regreso a casa, luego simplemente registrarlo en este evento. Este evento es, por cierto, también utilizado en el manejador interno de fragua. Entonces esto debería ser justo aquí donde básicamente se están estableciendo los comandos forrajeros. Se puede ver que este es el comando forraje con todo el montón de cosas. Por lo que podemos ver que básicamente lo hace el TPS, la entidad de pista genera. Dimensiones y el comando mode list. Esos son algunos comandos que son particulares para forjar en ese caso. Y también puedes ver el evento de comandos de registro aquí mismo es muy interesante. Entonces, en primer lugar, dice que el evento es despedido en el autobús de eventos de forja de Minecraft. Entonces voy a explicar muy brevemente qué demonios está pasando. Bueno, tenemos diferentes eventos. Si realmente hago clic en este evento y luego presiono Control H, puedes ver estos son todos los eventos que están disponibles para nosotros en Forge. E incluso podemos expandir esto y luego vamos a tener aún más porque hay eventos que derivan de eventos, que derivan de eventos y así sucesivamente y así sucesivamente. Por lo que puedes ver esto son muchos eventos. Este, lo que digo como probablemente podrías hacer un curso de diez horas con todos los eventos mismos. No vamos a hacer eso. Como dije, esto era sólo, ya sabes, para tenerlo en cuenta. Y la idea es que algunos eventos son despedidos por Minecraft fragua, algunos eventos son despedidos por bus de eventos. Vamos a mantenerlo en eso por el momento. Ahí no pasa nada demasiado loco. Vamos a ver un ejemplo de esto en una conferencia posterior también. Por lo pronto, sólo vamos a decir, vale, los eventos bastante locos, pero también bastante cool pueden ser muy interesantes. Ahora, ¿cuál es el segundo evento aquí? Bueno, básicamente cuando un personaje muere, lo que queremos es poner los datos persistentes del jugador que acaba de morir y copiarlo al nuevo jugador básicamente. Entonces esto es sólo para asegurarse de que, bueno, después de la muerte, los datos se queden ahí y se mantenga persistente. Esa es la idea general aquí. Pero por lo demás eso es más o menos todo lo que estamos haciendo en esta clase de eventos de modo. Ahora no necesitamos llamarlo a ningún lado con esto agregar más suscriptor de bus de eventos aquí. Esto básicamente ya se ha llamado un todo método que tiene en evento de suscripción arriba básicamente se mete, luego se enfría también. Tan curiosamente, eso es en realidad todo lo que realmente necesitamos para agregar el comando, como dije, todo el código está disponible para ti en un repositorio de GitHub y un individuo igual de bien. Muy recomendable echarle un vistazo. Recomiendo encarecidamente solo jugar con él, estar abierto a la experimentación. Y por el bien de finalización, vamos a recibirlo funciona. Está bien, nos encuentra de vuelta en Minecraft, así que empecemos a escribir slash en casa. Y ahí tienes. Ya lo estamos haciendo sugerir. Tratemos de regresar a casa en primer lugar, lo cual no debería funcionar, ¿verdad? No se ha establecido ninguna posición de domicilio. Eso está totalmente bien. Ahora sentémonos en casa. Establecido en posición establecida en esta ubicación. A ver, sólo para asegurarnos, sí, eso suena bien, eso es bastante bueno. Ahora vamos a otro sitio aquí. Y a menos que digamos, Ohm, regrese, hemos regresado a casa. Eso es realmente bueno. Ahora acabemos de caer desde una altura alta. A ver. Esto me va a matar y luego voy a responder y luego voy a decir, volver también funciona totalmente bien. Y entonces también salgamos de este mundo, salvemos y renunciemos. Y luego reingresemos al mundo. Y luego veamos si esto sigue funcionando. Y debería, por supuesto, porque lo que lo hemos guardado en los datos persistentes y el compuesto y los BTE para las entidades básicamente se guardan en esto. Entonces, solo volemos una vez más y luego digamos regreso a casa. Y por supuesto todavía funciona. Por lo que todos los casos básicamente están hechos y todo funciona aquí. Esto es bastante guay. Eso es casi lo fácil que puede ser agregar un comando. Una vez más, si tienes algo muy particular en mente, solo tendrás que jugar con esto. Yo solo ayudaré en circunstancias limitadas. Entonces si tú, por ejemplo, dices Hey, quiero mandar eso hace XYZ y sólo cosas locas. Probablemente no solo haga todo el mando por usted. Simplemente tendrás que probar un montón de cosas, jugar con él. Y estoy seguro de que puedes conseguir que el comando funcione si realmente trabajas en ello, ¿verdad? Pero eso es todo para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 81. (intermedio) lácticas para Spawning: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a echar un vistazo a cómo se pueden generar partículas personalizadas en el mundo. Entonces en particular, vamos a echar un vistazo a esto para el bloque rápido, o básicamente vamos a agregar un método en particular. Y eso se llama el método de tick animado aquí mismo. Y entonces realmente voy a copiar sobre el contenido de esto. Esto va a ser bastante autoexplicativo en tan solo un momento sin embargo, básicamente tenemos una oportunidad. Y luego vamos a decir, Hey, sólo queremos el flotador aleatorio cada vez. Y hay ideas generales que tenemos. Tenemos tiempos de oportunidad para engendrar partículas y cada vez que en realidad debería ser del 65 por ciento aquí. Entonces porque básicamente estamos comprobando si el menor que el siguiente flotador y un flotador va a estar entre 01. Entonces esa es la idea general. Y así es básicamente como puedes engendrar una partícula, ¿verdad? Entonces necesitas un nivel y esto necesita estar en el cliente esta vez eso es muy importante. Y este método enemigo a tic sólo se llama al cliente. Entonces eso es perfecto para nosotros. Y solo decimos agregar partícula, el tipo de partícula que queremos agregar, la posición, derecha, x, y, y z, y luego la velocidad en dirección x, la velocidad en dirección y, y la velocidad en la z dirección. Y cuando los tipos de partículas, puedes ver que hay un montón de cosas aquí que básicamente puedes desovar. En este caso, sólo vamos a tomar el humo. En realidad se ve un poco cool y va a funcionar totalmente bien para nosotros. Y puedes ver también tengo la velocidad del viento básicamente tengo, ya sabes, un poco de aleatoriedad ahí también para que se vea un poco desigual y es realmente genial en realidad se va a ver realmente jodidamente impresionante. Y sí, en realidad eso es más o menos lo fácil que es. Por lo que solo necesitas un nivel y necesitas estar en el cliente. Ahora, una vez más, esto no es para partículas personalizadas en y por sí mismas. Esto es justo ahora como en realidad puedes generar partículas particulares en algún lugar, en todas partes donde tengas acceso a una variable de nivel y básicamente comprueba que estás en el cliente, deberías poder para engendrar las partículas también. Entonces esto es más o menos lo fácil que es. Entonces por el bien de finalización, veamos si funciona. De acuerdo, fantaseamos en Minecraft, así que vamos a bajar el bloque SPD y ahí tienes. El humo ya está subiendo de él. Entonces todo está funcionando totalmente bien. Se puede ver. Y por supuesto esto es algo que puedes ajustar. Se puede ajustar la velocidad que surge en ajuste parejo donde se engendra en relación al bloque. En todo eso es básicamente sólo capaz de ser cambiado. Y por supuesto también se puede cambiar el tipo de las partículas. Pero eso es bastante cool sin embargo. Está bien, y esto ya es para esta breve conferencia aquí mismo. Espero que esto te haya parecido útil y hayas aprendido algo nuevo, y te veré en la próxima conferencia. Entonces, sí. 82. (intermedio) Advancements personalizados: O volveré al curso de forraje por 118. Y en esta conferencia vamos a estar agregando avances personalizados a Minecraft. Por lo que agregar avances ocurre únicamente en archivos JSON. Por lo que esto en la carpeta de datos, en la carpeta del curso MC. Y sólo voy a copiar sobre mis 20 avances que ya se han preparado aquí. Y te mostraré un gran recurso que puedes usar para básicamente leer bien tus propios avances con bastante facilidad. Y se puede ver así tenemos dos de ellos, MC curso Jason y una varilla de dowsing JSON. Ahora, lo primero que notarás es que hay una pantalla. Este es sólo el ítem o mientras bloquea en este bloque en algún caso, eso es básicamente ser, siendo mostrado como el ícono de este avance. Ahora pues tienes un título, descripción todo debería tener sentido. Se puede elegir el marco si se muestra o no en un brindis. Entonces esto es si muestra o no en la esquina superior derecha de la pantalla si un análisis es para chatear. Y entonces éste en particular tiene un fondo que es muy peculiar porque en realidad apunta a texturas de núcleos MC, loc, 0, subrayado de bola Block PNG, pero a toda la estructura de carpetas like aquí. Y la razón es porque éste no tiene padre. Y si fueras avance no tiene un padre, entonces básicamente crea una nueva pestaña en la ventana de avance. Esto es muy importante si cambias al modo de dowsing primero, segundo, puedes ver que el padre aquí es núcleos MC, núcleos MC, y no tiene antecedentes. Entonces eso es muy peculiar, fueron muy interesantes en este caso. Entonces la idea es que esto, si eliges un fondo, si no tienes un padre, entonces necesitas un fondo porque ese va a ser el fondo de tu pestaña básicamente, entonces el criterio es realmente cosa interesante. Ahora no vamos a crear ningún criterio personalizado porque eso es mucho más complicado. Simplemente vamos a usar el cambio de inventario. Entonces básicamente, en cuanto tenga al menos una Inglaterra cobalto en mi inventario, este avance me será dado. Y luego para la varilla de dowsing, básicamente, solo necesito una varilla de dowsing y entonces también tendré este avance. Eso es más o menos todo lo que realmente hay a ello. Entonces por el bien de la finalización, solo veamos si funciona. O nos encuentra de vuelta y Minecraft. Entonces vamos a ver si me consigo un lingote de cobol. Van MC curso mod. Y también puedo ver el poder yace en los cobaltos. Eso es bastante guay. Y ahora también debería poder encontrar esto aquí mismo. Podemos ver MC curso mod como el avance. Entonces el nombre de tu avance aquí siempre va a ser el primer avance que tienes básicamente sin aparente en C, también tenemos el fondo como cobalto bloquea tu y entonces se puede ver la segunda, varilla de dowsing. Si no funciona, no le gustas a la varilla. Bueno, eso es por lo menos lo que me han dicho. Y si solo consigo esto y puedes ver también estoy consiguiendo el avance de la varilla de dowsing ahí mismo. Entonces eso es bastante guay. Todas las cosas consideradas. Y eso en realidad es lo fácil que es añadirlos básicamente. Bueno a Minecraft ahora mismo, como mencioné, una vez más, un gran recurso aquí es Miss viejo GitHub IO una vez más para el avance de generador, muy recomendable. Básicamente puedes echar un vistazo a todos los requisitos que existen. Podemos verle una vez más, aquí están las condiciones. Entonces básicamente podemos cambiar esto por cosas diferentes. Digamos, por ejemplo, que una vez más hemos cambiado en el inventario. Y entonces básicamente puedes agregarle diferentes condiciones. Se pueden ver ranuras de jugador, artículos. Hay un montón de cosas que puedes agregar. Recomendamos encarecidamente jugar con esto o echar un vistazo a ya sea el avance de la vainilla. También posibilidad de ir en GitHub y buscar avance desde diferentes modos. Eso también funciona totalmente bien. Pero hay muchas opciones para que básicamente compres, pero eso ya es todo para esta conferencia aquí mismo. Espero que te haya parecido útil esto y seguro de nuevo de los archivos JSON están por supuesto disponibles en el repositorio de GitHub o un individuo solo, bueno, y te veré en la próxima conferencia. Entonces, sí. 83. (intermedio) Pinturas personalizadas: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando pinturas personalizadas a Minecraft. Para agregar motivos de pintura personalizados es en realidad un proceso bastante sencillo. En primer lugar, en el paquete del curso MC, haga clic derecho en nuevo paquete llamado pintura. Y dentro de ahí vamos a crear una nueva clase llamada la clase de pinturas modernas. Ahora la clase más pinturas tendrá, en primer lugar, un registro público estático, final diferido de tipo, motivo o pintura subrayan motivos, cual va a ser igual a registro diferido que crea o agregar registros, que los tipos de pintura son mi modelo de curso MC, ese modelo ID. Y una vez más, ya sea 80 tercer registro, también hay un método público de registro de vacío estático con un ojo Event Bus, Event Bus ácidos perímetro, y luego pintar motivos que registran pasando en el autobús de eventos. El método de registro es cuando está frío, estás por debajo del modelo suena así que más pinturas registran y luego pasan en el autobús de eventos justo ahí. Eso es genial. Y ahora sólo necesitamos registrar las pinturas. Y eso se va a hacer haciendo público estático objeto final Registro de tipo motivo. Esto se va a llamar planta, y esto es igual a motivos de pintura, registro oscuro. Se va a planear el nombre. Y el segundo parámetro es un proveedor de nuevo motivo. Y los parámetros van a ser 16. 16, y voy a explicar cuáles son esos. Por lo que los parámetros del motivo, puedo hacer clic en el botón central del ratón y se puede ver este es el ancho y esta es la altura. Entonces el primer parámetro es el ancho, el segundo es la altura. Esto se da en píxeles básicamente, pero así es lo grande que es tu pintura. Y sólo por el bien de la finalización, en realidad vamos a hacer tres pinturas aquí. También vamos a tener al vagabundo, va a ser la maravilla. Y ésta va a ser puesta de sol. Ese es probablemente mi favorito por cierto, pero lo vamos a ver en tan solo un momento. Cada puesta de sol que hace. Y esto también es puesta de sol. Y esta es la fila de una es de 32 de alto y la sensible es de 32 de ancho. Ahora la pregunta es, bueno, ¿dónde están las pinturas se suponía que debían estar inscritas en nuestro paquete de cursos MC, inserto de la carpeta de texturas. Sólo vamos a tener una nueva carpeta llamada pintura. Y en realidad voy a copiar esto porque los contenidos ya están ahí dentro. Esa es la planta, la puesta de sol y la maravilla Son todos esos disponibles. No obstante, voy a querer que dirijan atención a los créditos porque las pinturas también se hacen por platino G7. Tan solo asegúrate de que si vas a usar los de un repositorio público o lo que sea en el Curtis aquí también y sigue la licencia eso es básicamente todo lo que hay para ello. De lo contrario, básicamente eres libre de usarlos. Y esto es en realidad todo lo que necesitamos hacer, siempre y cuando los nombres de aquí mismo coincidan con los nombres de la pintura real. Fotos aquí mismo, las imágenes. Eso es todo lo que hay a ello. Entonces supongo que vamos a ver si funciona. O un farmacéutico en Minecraft. Entonces, sentémonos en el cuadro y veamos, oh, ahí estamos. Esto es puesta de sol. Me gusta mucho esto y es, creo la maravilla. Y vamos a ver si nos podemos planear también. Está bien, ahí vamos. las tres pinturas que hemos agregado. Y sí, eso es básicamente todo. Básicamente agregas las pinturas a la rotación de pintura aquí mismo. Entonces esa es la idea general, ¿verdad? De hecho, eso es lo fácil que es agregar pinturas personalizadas a Minecraft. Y esto ya es para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Entonces, sí. 84. (intermedio) Modificadores de botín global: Muy bien, Bienvenidos al curso de fragua para 118. Y en esta conferencia, vamos a estar echando un vistazo a los modificadores globales de Luder. La primera pregunta que podría surgir es ¿cuáles son nuestros modificadores globales de botín? Bueno, son una forma para que cambiemos, perdamos tablas de, por ejemplo, tablas de Lu de vainilla, le agregamos cosas, o incluso en teoría, le restamos cosas. Para que pudieras llevarte un poco y agregar cosas. Recomiendo encarecidamente no entrar demasiado profundo con restar cosas. ¿ Esto podría romper el modo en compatibilidad. Es posible que tu modelo no juegue bien con otros mods, y eso por lo general no es algo que te gustaría. Ahora lo que vamos a hacer es en nuestro paquete de eventos, vamos a hacer clic derecho en nuevo paquete llamado glute. Y en lugar de ahí, todos nuestros modificadores de pozo irán. Esas son básicamente clases. Ahora los copiaré y te explicaré a medida que pasemos por las clases. Por lo que este es el número uno es la varilla de dowsing en modificador de adición de iglú y las semillas de nabo de modificador de adición de pasto. Ahora por suerte, las clases deberían ser casi autoexplicativas de lo que están haciendo. Pero básicamente vamos a añadir una varilla de dowsing en el pecho de estructura iglú y una semilla de nabo dentro de la hierba. Cuando rompemos latón, tenemos una oportunidad en este caso, realidad tenemos una probabilidad del 100 por ciento de agregar los asientos de nabo al laúd que se está cayendo. Pero lo que es todo este calvario primero que nada, ambos se ven muy parecidos. Por lo que la única diferencia aquí está actualmente en el método do apply. Entonces para nuestros propósitos, sólo vamos a echar un vistazo al giro de asientos desde modificador de edición de hierba. Y bueno, sólo voy a explicar rápidamente la idea general. Vemos que la clase se extiende desde la clase modificadora lútea. Vamos a entrar en ella con el botón central del ratón haciendo clic. O también puedes presionar Control, click izquierdo sobre él para básicamente entrar ahí. Y básicamente puedes ver que aquí tenemos una cosa en particular que es el método do apply, que es básicamente el importante. Por suerte, también tenemos algunos buenos comentarios aquí. Podemos ver aplica el modificador al botín generado. Y luego básicamente puedes agregarle cosas. Entonces esto es realmente genial. Por lo que el laúd generado es solo una lista de impuestos por artículos, esto es lo que caería si no harías nada, y luego devuelves las gotas de botín modificadas. Entonces esto es lo realmente genial, pero por eso si volvemos aquí, se puede ver en el método do apply, pero agrego puede ver en el método do apply, una nueva pila de elementos de mi edición. Entonces este es el ítem que quiero agregar a esta lista y luego devolver la lista con mi ítem agregado, y luego mi ítem acaba de agregarse a esa lista de botín que literalmente está a punto de caer. Entonces esto es realmente genial, ¿verdad? Si acabamos de hacer esto, entonces no cambiaríamos nada y no se añadiría carga adicional. Si hiciéramos esto. No obstante, correcto, entonces se agregaría mi adición. Ahora lo que también podríamos hacer, y recomiendo encarecidamente no hacer esto, un genuinamente significan esto. Después léelo, laúd. Y entonces sólo podemos despejar toda la lista de cosas que estamos a punto ser agregadas y simplemente soltar nuestro propio botín. Muy recomendable no hacer esto, sobre todo no exagerar esto. Porque una vez más, podrías romper tu compatibilidad con tu MOD y otros modos. Si se basan en bloques específicos, dejando caer cosas específicas, entonces podrías solo arruinar tu oportunidad de que tu mamá se meta alguna vez en un particular más Peck solo estará al tanto de esto. Ten eso en cuenta. Déjame tener una clase de serializador aquí, que es básicamente una cosa loca. Serializador modificador de botín global. Bueno, sólo tenemos un método de lectura y escritura, que básicamente la idea general es que lee cosas de un archivo JSON. Y se puede ver lo que básicamente hace es que obtiene el valor del registro de ítems. Entonces básicamente estamos pasando por nuestros artículos de registro de testamento y vamos a decir como, vale, tenemos un, algo en el archivo JSON se define bajo la adición. Eso lo vamos a ver en un momento. Vamos a decir, vale, dame esto y luego dame el valor de esto. Entonces básicamente solo consigue el elemento que se asocia con la adición que hemos definido en el archivo JSON. Y entonces sólo vamos a hacer una nueva modificación adicional aquí mismo. Y lo estamos devolviendo para el método de lectura. Y el método de escritura es exactamente lo contrario, básicamente solo haciendo el archivo JSON real. Ahora esto no se hace realmente, pero aún tenemos que hacer esto. Entonces sólo ten eso en cuenta. Y eso es básicamente todo lo que los modificadores adicionales, esto casi siempre debería ser bastante boilerplate en y por sí mismo. Es decir, si tienes 20 adiciones, bueno, y vas a tener 20 artículos diferentes aquí. Y probablemente vas a pasar 20 artículos diferentes al constructor, cosas así. Pero eso es solo conocimiento normal de Java que no debería estar demasiado loco. Todas las cosas consideradas. Ahora cuando tengas esto, entonces también necesitarás otra clase en el paquete de eventos. Así que haga clic derecho en nueva clase Java llamada los eventos de bus de eventos mod. Y dentro de ahí, en primer lugar, voy a renombrar esto por más eventos de bus de eventos. Ahí vas. Y luego ahí dentro, primero que nada, vamos a necesitar está en la parte superior, vamos a necesitar esta cosa exacta. Necesitamos una vez más el anuncio model.py suscriptor de bus de eventos con la melodía del curso Armada DMC. Y entonces ahora necesitamos especificar el bus para que sea el multi-bus, muy importante la última vez con los comandos, hemos visto que, bueno, o por defecto, este es básicamente el bus forraje. Ahora este es el modo bus entrará en los eventos con un poco más de detalle en una conferencia posterior. Pero por el momento, sólo voy a copiar sobre el método básico que necesitamos. Y ese es el método de serializadores modificadores de registro. El nombre del método realmente no importa. Es solo importante que sea estático, público y tenga una anotación de evento de suscripción aquí arriba. Y entonces básicamente el evento aquí es el evento de registro que ADD registra modificadores globales de botín, serializadores. Y aquí solo decimos, Hey, solo registra todos nuestros serializadores. Y puedes ver que registramos el serializador configurando el nombre del registro. Y este nombre aquí mismo será entonces el nombre del archivo adyacente que básicamente lee. Ahora, ¿a dónde van nuestros archivos JSON? Necesitamos uno para cada uno de los diferentes modificadores que tenemos. Y entonces también necesitamos uno para forraje, básicamente esa forja sabe, bien, ¿qué modificadores tenemos realidad en nuestra carpeta de datos? Forja, haga clic en nuevo directorio llamado modificadores de guión bajo glúteo. Y entonces realmente voy a copiar el archivo JSON. A esto se le llama subrayado Global, modificadores de subrayado y adyacente muy importante. Esto tiene que ser escrito correctamente. Y entonces aquí dentro tenemos que definir todas nuestras entradas. Pero puedes ver núcleos MC término semillas de hierba y luego MC curso dowsing rod e iglú, que también es los mismos nombres que está aquí con nuestro mod ID. Entonces esas son básicamente las entradas ahí. Y luego en nuestra carpeta de datos, carpeta curso MC, nuevo directorio llamado botín de subrayado modificadores. Y voy a copiar de nuevo los dos archivos JSON. Todos estos están disponibles para ti, por supuesto, en el repositorio de GitHub en un individuo igual de bien. puede ver que tienen el nombre exactamente como hemos definido aquí. Esto sería un adyacente, el extremo adyacente básicamente. Y se puede ver que hay algunas condiciones. Ahora, en general, los archivos modificadores del laúd son ambos, son interesantes en sí mismos, ¿verdad? Por lo que hay que definir aquí una condición particular. Pero en este caso tenemos un ID de tabla de botín y diremos que el ID de tabla Lu es cofres de Minecraft, cofre de águila. Por lo que básicamente el cofre de iglú está cargando actualmente, por así decirlo. Entonces estamos llamando al modificador de pecho iglú. Y entonces estamos haciendo el método do apply, mismo ancho por ejemplo, del quemador procede del pasto justo aquí. Entonces si los pastos se rompen, puede ver que este es un padecimiento diferente, block say property, y entonces solo estamos revisando, hey, si es o no, esto es un agarre. Ok. Y ahora si un bloque de pasto está básicamente roto, entonces llamamos al método do apply. Justo antes de dejar caer el lascivo generado, le agregamos nuestra alusión personalizada, nuestra adición que se lee desde aquí mismo. Y luego regresamos eso con básicamente, mientras que esta cosa que es realmente genial es que puedes ver también puedo usar la getrandom de punto de contexto para básicamente asegurarme de que, ya sabes, algo no siempre caer. Esto. En este caso, esto básicamente sólo se suma 95% del tiempo, el 5% del tiempo. En realidad no se agrega. Entonces esto también es algo bastante cool, pero también cosas Java muy básicas, básico, ¿verdad? Y eso es en realidad todo lo que realmente necesitas. A veces los, siento que los, en general, los modificadores globales son un poco torpes, yo diría que no son que haya mucha rareza. Ya sabes, tienes que definirlos aquí y tendrás que definirlos aquí. Y tienes un definido aquí y tienes que dividirlos aquí. Al igual que hay muchas cosas que tienes que hacer. No lo sé. Es a veces es un poco raro, pero en general, estoy seguro de que se las arreglará. También voy a enlazar en los recursos va a ser los modificadores de bucle global o la forja Docs justo aquí. Entonces básicamente, aquí hay un poquito de resumen también, que en el que básicamente puedes echar otro vistazo a cómo podrían funcionar esos. Puede ser útil a veces, ya sabes, lo haré, simplemente lo vincularé básicamente también, o fantasías en Minecraft. Entonces vamos a ver si rompo la hierba aquí, siempre se debe dejar caer una semilla de nabo. Y ahí estamos. Básicamente, tenemos una probabilidad del 100 por ciento de agregar una semilla de nabo a la tabla de botín real. Y sólo por el bien de la finalización, también echemos un vistazo al Águila. Muy bien, aquí dentro podemos ver que también hay una varilla de dowsing en ajedrez legal. Eso es bastante guay, ¿verdad? Una cosa más que es muy importante. También tenemos que añadir un tipo en los archivos JSON justo aquí, donde nos da una adición en 118. De lo contrario no funcionará. Esto es simplemente el su espacio de nombres, por lo que su ID MOD, y luego el nombre del archivo real también. Entonces no debería haber nada loco aquí mismo, cierto, eso ya será para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Te veré en la próxima conferencia. Entonces, sí. 85. (intermedio) Fluids personalizados: Muy bien, Bienvenidos al cuarto curso para 118. Y en esta conferencia vamos a estar echando un vistazo a los fluidos personalizados. Para fluidos personalizados tenemos una restricción mayor o digamos limitación que hay. Y eso va a ser básicamente que la física del fluido que vas a hacer va a ser la misma física que el agua. Y entonces también no sólo eso, sino también sólo vas a tener los mismos artículos agua en básicamente cuando te sumerjas y cosas así. Pero esa es una limitación que actualmente está bien, no es fácil ir por ahí. Así que ten cuidado con esto. Y también copiaré sobre la mayor parte del código. Una vez más, todo está disponible para ti en el repositorio de GitHub o en un individuo igual de bien. Pasaremos sin embargo y explicaremos luego el paquete del curso MC, haga clic derecho en nuevo paquete llamado fluido de lo que son. Copiaré sobre la clase de fluidos de modo en su totalidad. Deberíamos conseguir una flecha de una aquí mismo en los más artículos, aún necesitamos hacer un, un artículo de cubo de miel. Pero en hacer eso muy fácilmente. Entonces en la clase más artículos ahora, sólo voy a copiar sobre el tazón, el balde de subrayado de miel. Y esto es por supuesto un en el bajo, en el cubo de subrayado. Y entonces este es un artículo de cubo. Y el primer parámetro siendo modelado fluidos que un fluido IV. Ahí vas. Y eso es básicamente entonces lo que necesitamos. De hecho agreguemos inmediatamente la traducción y cosas así, sólo para que la tengamos, que no la olvidemos. Entonces un balde de subrayado de miel y el cubo que hace y luego un modelo de artículo, porque por supuesto esto sigue en artículo normal aunque. Eso no cambia nada. Entonces cubeta de miel, van solo apunta a una textura normal. Y entonces sólo vamos a añadir la textura también, el ego. Entonces eso es bastante bonito. Entonces ahora volvamos a echar un vistazo a los fluidos. En lo primero que tenemos es tres ubicación de recursos. Entonces esa es la ubicación del recurso de agua, el flujo y la superposición. ¿ Por qué estamos usando esos? ¿ Verdad? ¿ Por qué estamos usando las ubicaciones de agua o recursos de Manila? Bueno, porque son grises y básicamente podemos colorearlos. Entonces tenemos este color de punto aquí mismo en las propiedades, y esto básicamente nos permite colorear nuestro fluido. Entonces por eso estamos usando esos porque ya están grises y se ven totalmente bien. Tener un registro diferente así como un método de registro. Como se puede ver, que este método de registro por supuesto tiene que ser llamado. Llamemos a esto también. Por lo que va a haber el modo fluidos dot registrarse con el bus de eventos justo aquí. Esto es algo que ya hemos visto varias veces ahora. Y luego tenemos dos fluidos diferentes. Uno de ellos es un fluido que fluye esa fuente, y el otro es un fluido que fluye forjado. Ese fluido fluyendo. Esto es increíblemente importante. He visto esto varias veces que la gente acaba de copiarlo y se olvidó de cambiar esto. Ten en cuenta que uno de ellos tiene que ser fuente y uno de ellos tiene que estar fluyendo. Muy importante. Entonces necesitamos un cuarto fluido propiedades. Estas son básicamente las propiedades sin embargo, cómo se está mostrando esto y cosas así. Verán muchas de las superposiciones amarillas aquí y dice, oye, podemos reemplazar esto por esto aquí mismo. Y luego incluso dice que un, incluso podemos hacer esto más fácil simplemente llamándolo así. No hagas esto. Tenemos que utilizar a los proveedores correctamente aquí. De lo contrario, no se va a cargar en el orden adecuado. Entonces sí tenemos que usar a los proveedores. Esto es muy importante. La mayoría de las cosas, densidad, luminosidad, viscosidad, Esos son Bueno, sólo forjar valores que son realmente no hacen nada. Pendiente, definir distancia y disminución de nivel. Esos sí, sin embargo, hacen algo. Pero recomiendo encarecidamente simplemente jugar con los números una vez más, cuando se trata del color. Es muy extraño porque en lugar de ir como esperarías que un valor hexadecimal vaya en RGBA. En realidad es un RGB, así que ese es el color básicamente. Pero esto debería ser bastante sencillo. Simplemente encuentra un recolector de color en línea y luego básicamente puedes definir el color aquí mismo. También necesitamos un bloque líquido aquí mismo. Entonces yo bloque de miel, es decir, bueno, un bloque en particular. En este caso, podemos ver que se trata un nuevo bloque líquido y pasamos en el fluido ahí mismo. Pero esa es la idea general aquí. Nada demasiado loco. A veces pienso que los fluidos y la forja son Will. Podría ser un poco más fácil porque hay una cosa más que necesitamos agregar. En realidad esto un par de cosas que necesitamos agregar. Entonces en nuestra clase mod curso MC, en el método de configuración del cliente, realidad queríamos establecer la capa de renderizado aquí, y eso va a ser para el modelo fluidos papá, y luego básicamente el bloque. Y eso va a ser translúcido. En realidad. Nosotros queremos hacer lo mismo por lo lúcido y por la miel que fluye, entonces básicamente vamos a hacer esto transparente para que podamos ver a través de él. Y esto básicamente nos permite usar el valor Alpha aquí mismo. Entonces piénsalo así. Y entonces también necesitamos añadir una etiqueta. Y esta etiqueta es cifrar creditiblemente importante saber que en realidad actúa como un fluido. Por lo que en la carpeta de datos de Minecraft, etiquetas, haga clic con el botón derecho en nuevo directorio llamado fluidos. Y dentro de ahí un nuevo archivo llamado Water dot JSON. Y ahora los contenidos van a quedar así. Vamos a tener el líquido de subrayado de miel y fluyendo ahí dentro. Esos son los nombres del mundo, ya sea la fuente o el que fluye. Eso es muy importante. Y entonces básicamente deberíamos estar hechos. Y luego tienes tu fluido personalizado agregado a Minecraft y se va a registrar correctamente. Entonces sí, eso es casi todo lo que necesitamos. Entonces vamos a ver por obras o si me pidieron de vuelta y micro Tennessee, el cubo de miel se ha agregado al juego y vamos a ponerlo abajo. Ahí estamos, la miel también está ahí dentro. Y ahora se puede ver que las partículas son partículas normales de agua. Y cuando entro en ello, se puede ver que el tipo de superposición también es azul esto son solo dos de esas limitaciones que mencioné. Es justo como va a ser. A veces esa es justamente la forma en que se desmorona la galleta. Pero aún así, sin embargo, se ha agregado fluido personalizado a los microbios. Entonces eso es bastante guay y eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 86. (intermedio): Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta conferencia, vamos a estar haciendo una mirada tentativa a eventos que ya hemos visto eventos en conferencias anteriores. Contamos con los eventos de bus de eventos modo, y también tenemos la clase de eventos de motor. Entonces si dos clases, hemos visto el evento de comandos de registro, el evento de clon de jugadores, así como el evento de registro para los serializadores modificadores globales aludidos. Y yo sólo quería dar un breve espectáculo de lo que esto en realidad es como eventos. Entonces, en primer lugar, si no tenemos evento o también puedes cambiar dos veces y simplemente poner en evento aquí. Y luego incluir artículos no producto. Y entonces podemos tomar este aquí mismo de microformas net evento fue EPI. Y puedo hacer lo siguiente. Puedo dar click en esto y presionar Control H. Y ya te he mostrado estos, pero lo volveremos a mostrar. Pero podemos expandir todo, y estos son todos los eventos que forjan anuncios en los que básicamente podemos engancharnos y luego hacer cosas cuando este evento se dispara. Aquí hay cosas realmente geniales. El primero que quiero mencionar es que no debes decir, quiero usar este evento para hacer esto. No es así como funciona. Lo que debes hacer es decir, quiero que pase x. Yo quiero poder tomar otro descanso y se dirigió n entidad oculta con ella y debería prender fuego. De acuerdo, Entonces piénsalo. Bueno, puedo cambiar cosas en la clase de artículo para el ladrillo inferior. Ahora realmente eso está un poco codificado, ¿verdad? Tienes que cambiar el código fuente de Minecraft, realmente no funciona. ¿ Hay algún evento para ello? No lo sé. Al igual que hay como un evento de daños, todo evento de daños vivos. Mira eso. Eso podría ser útil. Se puede, se puede hacer doble clic en esto y luego suele tener una muy buena descripción para los eventos. Podemos ver evento de daños vivos se despide justo antes de que Daños se apliquen a entidad. Por lo que este evento se despide cada vez. Justo antes de una entidad, una entidad de mano viva está lastimada. Esta es la cosa, ¿verdad? Este evento se despide siempre que una entidad se daña en la entidad viviente realmente duele o termina en capa realmente lastimada. Aunque sugiero encarecidamente echar un vistazo a los eventos que están en la jerarquía de clases justo aquí es que en realidad es simplemente increíblemente útil solo estar familiarizado con algunos de esos eventos, sobre todo cuando se llega a las entidades. Hay tantos de ellos que puedes ver eventos de Entidad y solo pueden abrirlos eventos vivos y luego mirar esto. Ahí hay eventos de jugadores. Hay tantos eventos de jugadores diferentes en los que puedes engancharte y hacer cosas con él. Es bastante loco. Bueno, hay una cosa interesante y esa es la clasificación de autobuses del pozo. Entonces si hago el botón del medio del ratón click en este autobús de aquí mismo, se puede ver que hay un bus de forja y hay un autobús MOD. Ahora bien, lo esencial general es esto. Hay algunos eventos que son despedidos por Forge, en algunos eventos que son despedidos por un mod. Esta es la idea general en la que hay que pensar. No complices esto en exceso. Sí, hay por supuesto, mucho más en ello. Se puede ver que ya hemos visto esto antes, donde tenemos, ya lo hemos visto antes. Bueno, esto es exactamente justo aquí, ¿verdad? Se puede ver que este es el bus de eventos MOD, pero esta es exactamente la idea, ¿no? Tienes el Bus de Eventos de Mode y el bus de eventos de forja. Y cuanto más bus de eventos en este caso, por ejemplo, siempre se utiliza para los diferentes registros aquí. Y se puede ver aquí cuando hacemos microforms dot event bus, este es entonces el otro bus de eventos. Entonces éste es el para los eventos de fragua. No me preocuparía demasiado por esto. En general, por lo general se puede ver de qué son los eventos. Cuando usted, por ejemplo, diga el registro, registro eventos, si yo botón medio del ratón, haga clic en esto y luego vaya al registro cuando por ejemplo, puede ver esto ahora implementa el modo IE Bus Event. Por lo que puedo presionar Control H en esto y realidad puedo ver todos los eventos que son de ahí. Entonces esto debería ser básicamente todos ellos. En teoría, podría haber un par más, pero no lo creo. Creo que siempre tienen que implementar esto. Entonces eso es más o menos todo lo que hay a ello. Por lo general deberías poder contar y lo que vamos sólo por el bien de la discusión, lo que realmente voy a copiar es un método esto es por supuesto todo disponible para ti y ese es el conjunto entidad en llamas cuando se golpea. Y eso va a ser dentro de otro descanso. Pero solo quería mostrarte aquí en un ejemplo, puedes ver que estamos eligiendo el evento de daños vivos. Y este evento tiene un par de suaves, ¿verdad? Ya hemos visto esto. Bueno, tenemos la fuente dañada y también tenemos, por ejemplo, tenemos la cantidad y también la entidad viviente. Entonces básicamente todos los que estamos consiguiendo aquí, y esto es bastante genial porque básicamente podemos conseguir la fuente de daño. Podemos decir, Hey, sólo dame la fuente directa, es decir, el jugador. Y entonces también podemos decir conseguir la entidad viviente que fue atropellada. Y entonces solo estamos prendiendo fuego a esto. Pero esto es realmente genial. Por lo que esto significa que podemos agregar funcionalidad adicional a, por ejemplo, artículos de vainilla. Ahora una vez más, no exageres. No seas, no te vuelvas loco Cu2, ¿verdad? Ser como un bien. Entonces cuando golpee algo con otra estrella, el mundo entero va a explotar. O sea, sería bastante guay honestamente, pero simplemente no trates de calzador en eventos donde no encajan. Por ejemplo, si estás diciendo, oh, entonces podría reemplazar esto por mi artículo personalizado. Y yo dije: Sí, claro, como si todavía lo pudieras decir. Se pueden ver artículos mod. Por ejemplo, dowsing, rod dot get. Y eso también funcionará. Ahora si golpeo algo con una barra de dowsing, bien, prendería fuego algo. Pero entonces yo también estaría como, ¿Por qué querrías hacer esto? No tienes que hacer esto en tus artículos personalizados. Tienes acceso al código fuente. Podría meterme en la barra de dowsing, ¿verdad? A anular un método aquí. Ahí está el método enemigo herido por ejemplo. Y yo podría hacerlo justo aquí, igual que hemos visto con el tipo de levitación, ¿no? Entonces con la espada de levitación, si se hace, hemos anulado el tercer método enemigo y añadido un efecto. O en teoría también podrías hacer esto aquí mismo, ¿verdad? Yo sólo podría decir, Hey, tomemos el, ya sabes, si esto es un artículo de clasificación de levitación, entonces bam, vamos, incendiémoslo o hagamos levitar a la entidad viviente que fue golpeada. Por supuesto que puedo hacer esto, pero si tienes acceso al código fuente, no hay razón por la que lo harías en un evento. Espero que fuera una especie de introducción general a los acontecimientos. Los eventos pueden ser casi imposibles de dominar porque hay tantos de ellos. Y sólo tendrás que ver si por tu cosa particular que quieres hacer, hay un evento y si lo hay, genial, pruébalo. Abierto a la experimentación. Puedo simplemente casi lo que voy a decir para el resto del curso, porque es muy importante sólo probar un montón de cosas. Siempre tienes control Z. Esto es lo genial de la programación. Siempre puedes volver atrás y decir: ¿Sabes qué? No, esto no fue una buena idea o, oh Dios mío, esta funcionalidad es increíble. No esperaba que esto pasara. Entonces eso es realmente genial. Pero sólo por el bien de la finalización, en realidad estamos viendo, bueno, ¿realmente funciona esto? A ver si lo hace. O si soy dice un Minecraft, así que tengo otro descanso y vamos a ver si golpeo a una entidad con ella. Ahí vas. Se prenden fuego y aquí se están restando ladrillos unos a otros. Entonces eso es insanely cool. Como se puede ver. Simplemente funciona. Y es, ya sabes, eso es lo genial e interesante los eventos personalizados de pared o engancharse a eventos básicamente pueden ser correctos, y eso ya sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo, y te veré en la próxima conferencia. Entonces, sí. 87. (intermedio) actualizar las formas de formaciones de Forge: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta breve conferencia vamos a actualizar fragua así como actualizar los mappings. lo que en el transcurso de algún tiempo, ya sabes, saldrán nuevas versiones forjadas. Por lo que se puede ver aquí mismo en la página de descargas, tenemos 39 y 0.8 en este punto, y estamos usando, creo, 39.05. Pero vamos a revisar esto en tan solo un momento, pero podemos actualizarlo a la última versión aquí mismo. Y entonces lo mismo va para el pergamino. En realidad tenemos una versión terminada en este punto, que es 20, 21, 12, y 19. Entonces eso es realmente genial. Lo que podemos hacer es básicamente que podemos navegar al archivo build.gradle aquí mismo. Y se puede ver que estamos usando 0.5. Por lo que ahora sólo podemos poner un 0.8. No tenemos que descargar nada. De nuevo, básicamente se va a hacer por nosotros de forma automática. Y entonces podemos cambiar esto por ser el 2021, 12, y 19, y luego la versión C aquí, y luego 180, uno por supuesto. Y luego para nuestra versión, quiero decir, en este punto estamos bastante lejos enol, así que eso es todo esto como 0.1.5, Eso está bien. Y entonces vamos a guardar esto. Y entonces solo podemos golpear la carga que cambia Gradle aquí mismo, y luego solo dejaremos que esto pase por mí. Apenas tardaron tres segundos, pero eso es por supuesto porque ya lo hice y todas las cosas ya descargadas antes. Entonces para ti, probablemente tomará alrededor de un minuto o dos balbuceando eso y entonces todo debería estar bien actualizar, actualizado y debería estar bien. Aquí no debe haber errores. Lo que podría pasar es que si inicias el juego, una vez más obtendrás muchas flechas o más bien un montón de advertencias diciendo como, Oye, esto no funciona, esto no funciona, pero nada de preocupaciones. Vamos a seguir adelante con esto para que veas que todo está funcionando siempre y cuando no te estés poniendo bien, quiero decir, construir falló o mientras no estés consiguiendo microondas no funcione en absoluto, debería estar bien. Y se puede ver aquí mismo, por ejemplo, que el microbio ya está empezando. Y entonces deberíamos estar bien. Aquí estamos. Ahí vamos con micrófono 3908, todo funcionando en Gran Bretaña. Eso es en realidad todo lo que quería mostrarles para esta conferencia aquí mismo. Te recomiendo encarecidamente cuando tengas disponible una nueva versión. Es decir, si estás viendo esto en el futuro, por supuesto que lo estás, entonces básicamente esta versión aquí mismo probablemente no va a ser la más actualizada. Y entonces esta versión para Forge definitivamente no va a ser la más actualizada. Es por ello que he enlazado las páginas para pergamino y las páginas para la descarga una vez más, solo para que básicamente puedas llevar las que estén donde las versiones reales que vas a necesitar, dondequiera que fuera eso para esta conferencia aquí mismo, espero que hayan encontrado esto útil y aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 88. (Avanzado) entidad en bloque personalizado: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar echando un vistazo a una cuadra. Entidades. Para las entidades de bloque en general son bloques que tienen una funcionalidad particular asociada a ella. Tan datos extra por así decirlo. Y esto podría, por ejemplo, incluir una GUI y cosas así. Ahora antes de saltar a programar algo, realidad quería, bueno, básicamente pasar por un poco de la teoría. Para eso vamos a romper la herramienta de pozo que se utiliza con mayor frecuencia y ese es por supuesto, nuestro punto aquí mismo. Entonces, solo empecemos. Entonces la idea general es que tengamos un par de cosas. El número 1 es que tenemos una clase de bloque. Ahora ya lo hemos hecho. Tenemos un, bueno el bláster cobol para nosotros. Ahora para nosotros es que va a ser botón azul. Bajo el fondo azul. No se ve tan bien, así que lo tenemos, léelo aquí mismo. Pero las ideas generales, tenemos una clase de bloque y eso tiene una referencia a una clase de entidad bloqueada. Hay clase de entidad de bloque que por supuesto vamos a crear en tan solo un momento. Y esto contiene datos y funcionalidad para un bloque en particular. Esa es la idea general. En esta clase de entidad de bloque se crea. Podemos tener un inventario en él, y ese luego se puede crear un menú. Ahora la clase de menú es muy interesante porque la clase de menú, ¿no? puede ver que es una especie de separado, ¿verdad? Tenemos una pantalla y una clase de menú. Ahora lo que es muy importante es que la clase de menú puede, por ejemplo, valores sincronizados para la entidad a un servidor y cliente. Eso va a ser muy importante, sobre todo en la próxima conferencia. Por lo que recomiendo encarecidamente echar un vistazo a esta conferencia y a la siguiente conferencia, especie de al mismo tiempo, porque vamos a tener una entidad de bloque funcional al final de esta conferencia sobre bueno, Vamos a hacerlo alrededor de mil millones de veces mejor en la próxima conferencia y apenas más robusto. Entonces eso es sólo algo a tener en cuenta. En la clase de menú también tiene ranuras para el inventario. Entonces se puede ver que esto básicamente visualiza esto de una manera que tenemos estos rectángulos morados aquí que son especie de correlación con las ranuras justo aquí. Y lo que es muy importante es que el menú donde están esas ranuras es completamente independiente de esta imagen aquí mismo. Porque lo que hay que tener en cuenta es que cuando miramos la clase de pantalla, ¿no? Este cliente solamente, esto es literalmente sólo esta imagen. No puedo enfatizar más esto. Básicamente esto, la clase de pantalla es más o menos sólo esta imagen. Entonces, independientemente de cuál sea esta imagen, las ranuras podrían estar en cualquier lugar donde queramos que lo hagan. Por lo que en realidad definimos su posición dentro de la clase de menú. Aunque en lugar de esto, ya sabes, el año GUI, podría tener una foto de mi cara, podría tener una foto de mi perro. Podrías poner ahí todo lo que quieras. La funcionalidad seguiría funcionando. Entonces eso es muy, muy importante. Ahora también muestra cosas como el progreso. Entonces esta flecha de progreso justo aquí, o cuánto combustible queda en la ranura de combustible. Básicamente, eso es algo que se puede hacer con los valores del sincronizador que la clase de menú básicamente sincronizadores para nosotros. Esa es la visión general de esto. Y a veces esto puede ser un poco confuso. También diré esto, Bueno, las entidades de bloque son definitivamente un tema avanzado. Por lo que hemos llegado a los temas avanzados en este punto. Y en este punto también es algo así como si no sabes tanto Java, justo en este punto, es muy bueno. Va a ser muy difícil ayudarte con algo no básicamente voy a asumir que ya sabes, al menos conocimiento intermedio de Java básicamente. Entonces no voy a decir, Hey, este es un método estático. Ya sabes lo que es un método estático, cosas así. Yo sólo voy a asumir que usted sabe todo eso. Por lo tanto, ten en cuenta eso. Número uno. Número dos, también estaré cubriendo mucho del código que está todo disponible para ti, incluyendo esta hoja de trampas también está disponible para ti en el repositorio de GitHub individualista y para descarga. Entonces no se preocupe ahí. Pero pasemos de nuevo a ti inteligente y veamos qué podemos ver. Entonces el número 1, lo que necesitamos es que necesitamos una nueva clase. Necesitamos un nuevo paquete en R, bloque paquete, haga clic derecho nuevo paquete llamado entidad. Este es ahora el paquete de entidad de bloque. Y ahí necesitamos dos clases. Uno de ellos va a ser el bláster cobalto Volokh entidad. Y entonces el segundo se va a hacer clic derecho Nueva clase JAR llamada las entidades de lodo roca. Ahí vas. Por lo que se necesitan esas dos clases. Y para las entidades de bloque, bueno, inmediato podemos llenar esto con al menos un poco, y eso va a ser una final estática pública, el tercer registro. Ya hemos visto esto, por supuesto, el tipo de entidad de bloque, y luego una vez más corchetes angulares con un signo de interrogación en él. Y luego bloquear entidades de subrayado, que es igual a un registro diferente que crea registros, entidades de bloque de puntos. Modelo de curso Mc, ese modelo ID. Y entonces por supuesto, mientras que un registro existe un método de registro de vacío estático público con un bus de eventos o bus de eventos, que enfría las entidades de bloque que se registran y pasan en el bus de eventos. Y de inmediato ya podemos ir a nuestra clase mod curso MC y simplemente ponerlo aquí para que podamos decir modo bloque, bloquear entidades se registren con el bus de eventos que hace. Y tendremos que hacer esto una vez más antes de que termine la conferencia, pero no se preocupe en absoluto. Todavía no vamos a definir lo real. Entidad porque antes que nada necesitamos hacer esta clase. Voy a creer que podemos hacer que esta clase casi en su totalidad excepto por una cosa, pero eso va a estar bien. Entonces esto va a ver con lo siguiente. Esto va a extender la entidad de bloque e implementa el proveedor de menús. Esperemos sobre esto, implementemos los métodos. Por lo que esto implementará el método get display name y el método Create menu. Entonces una cosa que haré es que a propósito, bueno que esto tenga una flecha aquí mismo, porque no quiero olvidar agregar aquí el menú Crear. Eso es algo importante a veces. O sea, no soy que me olvide esto, pero es muy importante que realmente hagamos esto porque hay un montón de partes móviles a esto en, ya sabes, no hacer una de esas partes básicamente hacerlo para que la entidad de bloque no funcione. Y aquí sólo podemos devolver un nuevo componente de textos de cuatro voltios último término. Entonces este sólo va a ser el nombre para mostrar básicamente. Después pasa el cursor sobre este constructor creed que coincide super. Y esto también va a estar bien. No obstante, lo que vamos a hacer aquí es que vamos a eliminar el primer parámetro y entonces por supuesto obtendrás un, bueno, un error aquí mismo, pero sin preocupaciones en absoluto. Porque lo que podemos hacer es ahora podemos definir esto en nuestras entidades de bloque de modo. Y la forma en que definimos esto, en realidad voy a escribir esto, podría no público objeto de Registro final estático. Será bastante autoexplicativo del tipo de entidad de bloque, este tipo de entidad de libro bláster cobalto. Bueno, el bláster cobalto, y eso va a ser igual a bloquear entidades que registren con el nombre cobalto underscore blaster, Eso va a estar bien. Y luego un proveedor de la siguiente entidad de bloque tipo dot-dot-dot constructor de cobalto blaster block entity colon, colon nuevo. Se puede ver que luego una coma, entonces tenemos que hacer bloques, punto, blaster, dot get. Después de la tercera, después del primer paréntesis pato-facturado, luego pasar un nulo. Entonces así es como se ve más o menos aquí. Por lo que los bloques que pasamos aquí son básicamente los bloques que se asocian a esta entidad de libro. Esa es la idea general. Entonces en lugar de tener el parámetro aquí, lo que podemos hacer es decir entidades de bloque, ese bloque dot cobalto blaster dot get. Ahora se podría pensar, bueno, ¿no es eso una referencia circular? En realidad no lo es. Yo sí. No estoy muy seguro de que me guste. Es muy loco. Al igual que hay muchas cosas circulares, por así decirlo, en las entidades de bloque. Entonces no se preocupe. En ahora empezaremos a copiar cosas. Lo primero que vamos a copiar son básicamente los dos campos que tenemos. Y esos campos están en el manejador de pila de elementos llamado manejador de elementos de tamaño cuatro. Y esta también es una clase anónima se puede ver porque tenemos que poner los contenidos cambiados aquí donde básicamente cambiamos. Porque de lo contrario lo haremos, vamos a tener algunos problemas con la carga y el ahorro de básicamente el inventario. Y entonces tenemos un optativo perezoso de esto, y necesitamos éste por la capacidad. Nosotros vamos a copiar este también. Entonces este va a ser el método de capacidad de Git. Y yo sólo voy a poner esto aquí abajo. Por lo que obtienen método de capacidad. Puedes verlo básicamente dice: Oye, si conoces a alguien o algo pregunta sobre esta entidad de bloque, no tiene la capacidad de manejador de ítems, entonces solo vamos a devolver el manejador de ítems perezoso . Entonces bien, éste de aquí. Y sólo vamos a decir, Claro, toma esto. Ahora por supuesto, como se puede ver claramente, el manejador de elementos perezoso en este momento no se ha establecido. ¿ Cómo lo configuramos? De lo que lo pusimos en el método onload. Entonces lo que vamos a hacer es que en realidad voy a copiar sobre la cabina el método onload y el método invalidar caps. Podrían ver onload debería ser bastante autoexplicativo, ¿verdad? Cuando se carga esta entidad de bloque, solo vamos a establecer el manejador de elementos perezoso un opcional perezoso de nuestro manejador de artículos real aquí mismo. Entonces esa es la idea general. Y cuando invalidamos las tapas, así que esto sucede cuando el servidor apaga cosas como esas. Entonces solo estamos invalidando los manejadores de elementos perezosos para que no tengamos ninguna fuga de recursos, cosas así. Bueno entonces entra la pregunta, ¿cómo guardamos los datos? Bueno, guardamos los datos haciendo, anulando dos métodos. Ese es el ahorro adicional y el método de carga. Entonces se puede ver que básicamente me estoy llevando el manejador de ítems NMC, dándose cuenta de eso a la NVT. Entonces esto básicamente hace todo el levantamiento pesado por nosotros. Se guarda todas las ranuras. Lo que hay en esas ranuras son muchos artículos están en esas ranuras. Entonces todo eso está hecho por nosotros bellamente y sólo necesitamos esos dos métodos aquí mismo. Lo que es muy importante es que sí necesitamos, una vez más, anular esto en la clase anónima. De lo contrario, tendremos algunos problemas con el guardado de los datos porque no se llama al método de guardar adicional por cualquier motivo. Cada vez que simplemente salimos del mundo por la razón que sea sólo se llama a una actualización. No estoy seguro de esto, pero sólo asegúrate de que esto se haga. Y luego por último pero no menos importante, para los métodos no estáticos, también tendré el método de gotas. Y este básicamente solo hace un contenedor simple aquí, consigue todos los artículos del manejador de artículos y luego solo dice: Oye, solo deja caer todo tu contenido en esta posición en este nivel. Y entonces vamos a estar bien. Esto se va a llamar cuando destruyamos el bloque real. Entonces todo el contenido se derrama de la, de este bloque real, ¿verdad? Entonces si usted, por ejemplo, el cofre destructor, y por supuesto todo el contenido del cofre caerá al suelo. Y eso es por supuesto lo que también queremos en nuestro cohete justo en antes de seguir haciendo cosas aquí, realidad vamos a cambiar al vidrio cobalto o bloque, porque ahora el bloque será cambió también. Y esto va a ser muy interesante porque en lugar de extenderse desde la clase de bloque es esto se va a estar extendiendo desde el bloque de entidad base son importantes. Y luego se puede ver que de inmediato se tiene que implementar el nuevo método de entidad de bloque. Eso es por supuesto que no se preocupe en absoluto, porque sólo podemos implementar esto. Y esto va a ser muy fácil para nosotros porque lo que podemos hacer es en lugar de devolver nulo, vamos a devolver una nueva entidad de bloque de cobalto y pasar en la EPA tiene y el estado p aquí mismo. Y eso es más o menos todo lo que necesitamos hacer para esto. Ahora, hay un par de cosas más que tenemos que hacer, ¿verdad? Por supuesto puedes ver la mayor parte de las cosas es para la forma real del bloque. Pero lo que tienes entonces es que necesitamos hacerlo, y esto es increíblemente importante, ¿verdad? Tenemos que anular el método getter render shape justo aquí. Y tenemos que devolver la forma de render un modelo. Porque si no hacemos esto, entonces nuestro modelo va a ser invisible porque eso es solo el valor predeterminado del bloque de entidad base. No estoy seguro de por qué ese es el caso de esto. Probablemente va a ser alguna razón para ello. Entonces, por favor, asegúrate de anular esto. De lo contrario tu bloque será invisible. Y eso por supuesto no es del todo lo que queremos en que voy a anular a otros métodos y en realidad voy a copiar esos más. Este va a ser el método OnRemove. Esto es exactamente lo que dije, justo cuando llamamos al método de gotas aquí mismo. Bueno, esto sólo se asegura, oye, cuando eliminemos este bloque, todo el contenido de la entidad de bloque caerá al piso. Pero esto es genial y este es solo un método realmente bonito y no demasiado loco también. Y el método estadounidense bien es un poco similar en el sentido de que cuando hacemos clic con el botón derecho en este candado, simplemente queremos que la entidad real abra su inventario o abra su GUI básicamente, ¿verdad? Aquí se pueden ver ganchos de red que abren Gui. Entonces básicamente solo queremos abrir la GUI y asegurarnos de que, ya sabes, esté una especie de sincronizado a través del servidor y el cliente. Por eso los ganchos de red básicamente hace todo el levantamiento pesado ahí por nosotros. Hay una cosa más que queremos, y es que queremos el método ticker o queremos un método tick para poder acceder en la entidad de bloque cobalto blaster. Y un método de tick básicamente es solo un método que se llama cada tick para una entidad de bloque en particular en este caso. Y eso nos permitirá agregarle funcionalidad cool. Y básicamente haremos manualidades personalizadas, por así decirlo. Y para eso necesitamos anular el método getter ticker. Voy a copiar esto otra vez y vamos a obtener un simple error aquí, pero podemos arreglarlo muy fácilmente. Podemos ver que este es básicamente el, bueno, obtengo el método de ticker y luego llamamos al ayudante de creación ticker y regresamos a eso con el tipo de entidad rock, vamos a pasar en el blaster global modo de bloque, bloque entidad año. Y entonces aquí podemos ver queremos pasar en el cobol blaster block entity tick método, que aún no se ha creado. Pero vamos a crear esto ahora mismo. Entonces esos van a ser todos estos métodos estáticos. Esos son cuatro métodos. Yo sólo voy a copiarlos para que podamos ver qué está pasando aquí, ¿verdad? Esto es locura, No se preocupe. Vamos a pasar por esto. Entonces el método tick es el único método que no es personalizado. Por lo que estos tres métodos son completamente personalizados. Yo mismo los hice. El método de tick que es en sí mismo va a ser el mismo para cada entidad de bloque. Siempre vas a tener acceso al nivel de la posición, al estado, y a la propia entidad de bloque. Y puedes ver que acabo de hacer algunos métodos de ayuda, básicamente crear el artículo simplemente se estrellará. En los artículos se va a extraer un artículo de 0. Vamos a extraerlo de la Ranura 1. Y entonces sólo vamos a poner un, un artículo en la ranura tres. Para que veas que aquí también vamos a poner lingotes de cobalto. Simplemente vamos a hacer esto continuamente. Por supuesto, el método de artículo artesanal solo se llama cuando ambos tenemos una receta y no hemos alcanzado el límite de pila. Echemos un vistazo al límite de pila porque eso es un poco más fácil. Básicamente solo diremos, oye, si el recuento de las pilas reales aquí es más pequeño que el tamaño de pila GetMax, vamos a estar bien. Por lo que mientras no hayamos llegado a 64 artículos en la ranura de salida, podemos elaborar continuamente artículos que deberían ser bastante autoexplicativos. El tiene método de receta. Bueno, eso solo comprueba que tenemos en la ranura 0 llamada astilla y que tenemos en la primera ranura o la pendiente con índice uno, tenemos cobalto crudo. Si tenemos los dos ahí dentro, entonces esto es cierto. Esto esperemos que sea cierto y entonces estaremos elaborando el artículo. Diré esto, esta es una forma muy cruda de hacer esto. Esto es realmente sólo para mostrarte una vez ¿cómo funcionará la artesanía real y cosas como esta? Te recomiendo encarecidamente que puedas implementar esto y puedes echar un vistazo a esto y puedes decir, bueno, esto es realmente jodidamente cool y es pero muy recomendable. Siguiente conferencia, vamos a hacer una receta personalizada, Jason. Y entonces podemos básicamente, bien definir las recetas de elaboración dentro de los archivos JSON, que es mucho mejor que codificarlas de esta manera. Definitivamente no es una buena idea para hacer esto, ¿verdad? Esto es sólo una muy mala idea. Es muy torpe, no es bueno, es, está codificado duro. Muchas cosas pueden salir mal. Por lo que recomiendo encarecidamente, si bien esto es sólo para mostrar una vez aquí, es una forma muy cruda de hacer las cosas y solo quería dejar eso claro. Ahora lo que pasa es que esto se hace más o menos excepto, por supuesto, el método de menú Create justo aquí. Y lo mismo con el bloque. El bloque también se hace para que podamos cerrar el bloque, podemos aún más acercar éste. Vamos a mantener abierta un poco la clase de entidad de bloque porque por supuesto ahora necesitamos agregar en la pantalla. Por lo que en nuestro paquete de cursos MC. Haga clic derecho en nuevo paquete llamado pantalla. Y dentro de ahí vamos a hacer dos nuevas, en realidad tres nuevas clases, cobalto, menú pilastra. Y luego vamos a hacer la pantalla pilastra de pared. Y vamos a hacer que la clase de tipos de menú de modo también. Y luego cualquier paquete de pantalla, también necesitamos otro paquete llamado slot. Y en lugar de ahí, en realidad voy a copiar a última estrella hecha va a ser el modo que vas a tragar y la ranura de resultado de modo. Les explicaré esos en un momento en que realmente los vamos a usar. Pero recomiendo encarecidamente también copiarlos. Todo esto, por supuesto, está disponible para ti una vez más, repositorio de GitHub y un individuo igual de bien. No te preocupes ahí, bien, vamos a empezar con el menú o el menú bláster cobalto. Y voy a hacerlo, esto va a extender el menú contenedor abstracto. Muy importante. Ahí vas. Voy a implementar los métodos todavía válidos aquí mismo. Y luego también crearemos un constructor que coincida con super. Ahora lo que voy a hacer es realmente sólo copiar la totalidad de los contenidos de esta clase. Altamente te recomiendo hacer lo mismo. Y lo explicaremos a medida que avancemos. Entonces tendremos una flecha aquí mismo. Podremos arreglar eso en tan solo un momento, sin preocupaciones en absoluto. Por lo que se puede ver que aquí tenemos dos constructores diferentes, lo cual en realidad es muy importante porque uno de los constructores se le llamará en los menús mod y al otro constructor se llamará en la entidad de bloque. Ahora en realidad podemos hacer esto de inmediato. Entonces pasemos a la entidad del blog. Y luego aquí en el método de menú Crear, vamos a crear un menú de yeso nuevo o perno cuando un pase el inventario ID contenedor. Y entonces el último es éste. Ahí vas. Y eso es más o menos todo lo que necesitamos para pasar. Pero ahora la clase de entidad de bloque está completamente hecha y ya terminamos con esto. Ahora echemos otro vistazo al menú aquí. Entonces el menú, como ya he mencionado anteriormente en la hoja de tramposos en la teoría, básicamente, Esto es responsable de las ranuras donde están, donde están dispuestas, cosas así. Y se puede ver esto aquí mismo. Para que podamos tener, básicamente sumamos el inventario, agregamos la barra caliente del jugador. Entonces esos son solo dos métodos que he creado rápidamente porque esto aquí mismo. Por lo que los bucles for suelen ser como dentro del constructor real. Eso es sólo, quiero decir, es sólo que me parece una muy mala no está tan bien codificada básicamente. Entonces hay otra cosa que es muy interesante y esa es la pila de movimiento rápido aquí mismo. Este método lo hace DZ 07, 08 el crédito va a ellos por hacer esto. Básicamente quiero decir esto, esto es para el turno de clic de cosas dentro de este inventario. No te preocupes por este método en absoluto. No lo mires. Simplemente di muchas gracias por el para el 07 que puedan esto en realidad es una locura. Yo sólo el método por el que pudimos pasar pasé media hora para explicar esto. Simplemente no es necesario. Realmente no me gusta este método, pero claro que se tiene que hacer de alguna manera. Y así es como va a ser. También tienen que estar ahí los campos estáticos. Eso es muy importante. Y aquí en el TE, recuento de ranuras de inventario, básicamente tenemos que poner el recuento de ranuras real más. Bueno, t0 inventario un archivo ahora es un inventario B. Por lo que antes se nombraba entidad de teselas, ahora se llama entidad de bloque. Pero todo aquí aún debería funcionar totalmente bien. Y puedes ver estamos agregando cuatro ranuras como puedes ver. Entonces básicamente estamos preguntando, Hey, ¿tenemos capacidad de manejador de ítems? Y si ese es el caso, entonces agreguemos algunas tragamonedas geniales aquí. Se puede ver que tengo una ranura de combustible en una ranura de resultado. Yo he hecho esas clases porque bueno, quiero decir eso sólo tiene mucho sentido. Básicamente, tener una ranura donde sólo se puede insertar combustible y luego ABR resultados ranura donde en realidad no se puede insertar nada. Básicamente, sólo la propia máquina puede insertar cosas en ella. Y básicamente los he tomado de las tragamonedas reales. Para que puedas teclear, pueden poner en turno dos veces y luego poner en ranura. Y luego si hago esto, entonces podrás ver el inventario mundial de minecraft netos de slop. Y si presiono Control H, se pueden ver todos los diferentes pozo, ranuras que están disponibles aquí, por ejemplo. Y entonces básicamente tenemos la ranura de resultados del horno, como se puede ver. Sólo echemos un vistazo a este. Y bueno, quiero decir, básicamente tomé la mayoría de las cosas aquí son el lote de resultados, ¿verdad? ¿ Qué es muy importante? Es solo que este lugar del 1 de mayo tiene que ser falso. Y luego lo mismo para la ranura de combustible. Básicamente solo, bueno preguntar el horno abstracto, Hey, ¿esta pila es un combustible? Y si lo es, entonces sólo vamos a decir, claro, estás a punto de colocarlo ahí dentro. Más o menos todo lo que había a ello. Es decir, eso es algo que hay a ello. Esto estas dos ranuras recomiendan encarecidamente usarlas porque son sólo un poco más agradables de usar básicamente. Pero aparte de eso, creo que la mayor parte del resto es, bueno, no demasiado loco. Simplemente tenemos una referencia a la entidad de bloque, una referencia al nivel. El método todavía válido básicamente sólo comprueba si el jugador puede acceder o no a este menú. Entonces esto sería si estás en un carrito de mina, haces clic con el botón derecho en un horno o algo así y estabas demasiado lejos y de repente se cierra la GUI real. Creo que esto es lo que básicamente facilita eso. Y así vamos a entrar en la clase más menús ahora, y vamos a añadir nuestras cosas allí también. De hecho ahora voy a copiar esto porque hemos visto esto muchas veces. Se trata de un registro diferido de tipo de menú, una vez más de signo de interrogación. Y luego cuando definimos el tipo de menú, necesitamos un método de tipo de menú de registro aquí que solo tenga aquí una fábrica de contenedores de tipo T. Y simplemente estamos registrando esto. Normalmente, esto no sería demasiado loco. Todas las cosas consideradas altamente recomendables. Una vez más, todo por supuesto disponible, no tienes que teclear esto tú mismo. Repositorio Github e individual igual de bien. Ahora en el curso MC mod constructor, vamos a llamar a los modernos tipos de menú dot registrarse con el bus de eventos. Y entonces todo aquí está registrado también. Eso es genial. Y entonces básicamente no tenemos que volver a mirar este nunca más, al menos por el momento. Ahora éste también se hace no más errores. Entonces todo es genial. Ahora una cosa que la gente podría preguntar es, bueno, ¿qué hace esta exposición, cuál es esta posición y aquí? Bueno, para eso, en realidad voy a copiar sobre la textura que vamos a usar en tan solo un momento. Esto va a ir en activos, MC texturas gruesas, y luego bajo Gui. Entonces voy a copiar esto más. Terminamos. Este es el cobol volado GUI y voy a abrir esto. Ya hemos visto esto por supuesto. Una idea general es que, bueno, 850, ¿verdad? Entonces nosotros 18 y 50. Por qué este píxel de aquí es 0000. Si vamos 18 a la derecha, derecha, x 18, así 18 a la derecha y 50 abajo, terminamos exactamente aquí. Entonces esta es la idea general. Tendrás que contar esto en píxeles. Aunque si utilizas Photoshop o paint.net o GIMP, entonces generalmente tendrás una herramienta Select que podrás usar. Y entonces básicamente puedes seleccionar esto y ver qué tan grande es esto. Tendrás que contarlo en píxeles simplemente no es otra manera. A veces es un poco torpe, pero así es como va a ser. Y el resto debe ser bastante autoexplicativo. Pero el resto es tu 66 y luego abajo 16 que otro es 50 abajo y 66 x y así sucesivamente y así sucesivamente. Entonces así es básicamente como se presenta esto, ¿verdad? Y entonces hagamos que la pantalla dure pero no menos importante. Y una vez más, sí, en realidad copiaremos esto. Ahora. Esta es en realidad la, creo que la que es, bueno la menos complicada. Este es el flujo contenedor abstracto de tipo, viejo menú Glassdoor. Entonces eso es muy importante que pongas aquí la clase correcta, el menú maestro cobalto, porque entonces tendremos acceso a esto también en esta clase. Entonces eso es muy importante. Se puede ver que tengo la ubicación de recursos de la textura bajo texturas GUI cobalto, underscore blaster, underscore GUI PNG, la cosa que acabamos de ver antes. Y este año, como se puede ver, básicamente se rinde aquí. Y luego usamos este método de doblete bajo este método puede ser muy complicado. Y en realidad vamos a entrar en detalle más sobre este método en la próxima conferencia cuando estamos agregando las barras de progreso y esas cosas, es entonces en realidad tenemos que pensar, vale, cómo haríamos configurando esto, ¿verdad? ¿Cuál es la x? ¿ Cuál es el porqué? ¿Cuál es el offset aquí? ¿ Cuál es el ancho de eso? Vamos a resolver esto la próxima conferencia. Como dije, por el momento, esto aquí sólo se asegura de que toda la imagen, así que todo esto, correcto, sin las cosas a la derecha aquí, se exhiba básicamente en el jugador. Ahora lo que aún tenemos que hacer en la clase mod curso MC, también muy importante y declinado método de configuración, pantallas de menú, modo de registro de puntos, tipos de menú que cobol blaster, menu dot get. Después un bláster cobalto pantalla colon, colon nuevo. Ahora esto no debería arrojar errores porque la pantalla de plasma frío es de tipo cobalto blaster menu, ¿verdad? Por lo que la pantalla de contenedores de tipo cobol blaster menu. Entonces todo lo que deberíamos estar bien aquí y creerlo o no, eso debería ser. Ahora, como ya he dicho, esto es bastante correcto? Y esta ni siquiera es la forma final, por así decirlo. Esto ni siquiera es lo completo por el momento, pero por el momento, esto es todo lo que necesitamos agregar. Entonces veamos si funciona o si rebota y Minecraft. Entonces vamos a ver, Vamos a bajar el lanzador cobol y vamos a hacer clic derecho en él y ver. De acuerdo, así que esto es realmente bueno. Se puede ver que por supuesto, la GUI se ha abierto ahora. Todas estas ranuras aquí funcionan. Ahora vamos a ver si puedo tomar rock humilde y colocarlo aquí. No puedo colocar un año y puedo colocarlo aquí. Eso es exactamente lo que quiero. Puedo colocar aquí arriba, puedo tomar mi curso de hígado y colocarlo aquí mismo porque es un combustible. Y tan pronto como ponga la bodega de roca en la parte superior aquí, deberíamos poder ver que se están haciendo lingotes de cobalto. Y ahí tienes, básicamente cada garrapata. Entonces básicamente vamos a hacer 20 lingotes de cobalto cada segundo. Y entonces si pongo más aquí no va a funcionar. Se ha alcanzado el límite de la pila. Por lo tanto, ya no hacemos manualidades, pero yo sacaré la mitad de ellos. Se puede ver que la otra mitad básicamente se está creando. Ahora una cosa podemos comprobar, básicamente, si salvo al mundo y vuelvo a ello, entonces deberíamos haber guardado los datos. Pero esto es muy importante, por supuesto, es una de las cosas donde necesitábamos el guardar datos adicionales y el método de lectura. Entonces vamos a ver si eso funciona o no, pero estoy bastante seguro de que sí. Ahora, vamos a ver que todos nuestros artículos siguen aquí. Y luego pasa lo mismo cuando destruyo esto, se puede ver todo el contenido caer aquí mismo. Entonces todo está funcionando exactamente como queremos que lo haga. Pero esto definitivamente es una, bueno, definitivamente una conferencia avanzada, como se puede decir claramente. Es, es. En primer lugar, lleva mucho tiempo y hay muchas cosas que necesitas para poder conseguir aquí mismo. Pero en general, esto es algo realmente genial, y las entidades de azulejo son simplemente cosas increíbles que puedo recomendar. Esta es una de las únicas veces en mirar el código de vainilla no es tan útil porque en forraje tenemos que hacerlo una manera un poco de rotonda para básicamente registrar nuestras cosas. Pero puedo recomendar encarecidamente echar un vistazo a los repositorios de GitHub mods populares o hacen sus entidades de bloque, cosas así. Es muy recomendable que porque siempre hay, se puede, número 1, obtener algo de inspiración de eso. Y número dos, si de verdad estás atascado, generalmente tienes esto también. Por supuesto tienes este repositorio de GitHub también. Todo el código aquí, si copia todo sobre, esto debería funcionar a pesar de que hay muchas partes, claro, ¿verdad? Tenemos toda la pantalla, el menú, el bloque tiene que cambiar un poco suave así. Entonces definitivamente hay mucho en esto, pero en general, es realmente genial. Por lo que recomiendo encarecidamente después de que termines esto ir inmediatamente a la siguiente conferencia y especie de mirarlos como una doble conferencia, así decirlo, por muy recomendable hacer eso. De lo contrario, estamos listos para esta conferencia aquí mismo. Espero sinceramente que esto te resulte útil. Si algo no está claro, siéntete libre de hacer preguntas en la Q y a proporcionados Voy a tratar de responderlas mejor de mi capacidad. De lo contrario, agradecería mucho una crítica para mu y te veré en la próxima conferencia. Entonces, sí. 89. (Avanzado) crear tipos de recetas personalizadas: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia, vamos a estar echando un vistazo a cómo puedes agregar serialización de recetas personalizadas a tu entidad de bloque. Entonces la idea general es que vamos a agregar la posibilidad de hacer archivos JSON, archivos JSON personalizados que puedas leer y que básicamente tengan, bueno, las recetas para tus entidades de bloque. Por lo que una vez más, voy a copiar más de muchas de las cosas en esta conferencia, pero no se preocupe, Todo está disponible para ti en el repositorio de GitHub y un individuo igual de bien, recomiendo encarecidamente tomar un mira esos. Y lo primero que vamos a hacer es que vamos a hacer la receta. Por lo que en nuestro paquete del curso MC, haga clic derecho en nuevo paquete llamado receta. Y luego dentro de ahí o copia sobre las explosiones de cobalto o clase de receta así como la clase de recetas modelo. Y echaremos un vistazo a esos. Entonces ninguno de ellos debería tener un error en ellos? Yo creo. Entonces. Ambos deben funcionar de inmediato. Y sólo vamos a pasar, vamos a empezar con la receta de explosión fría. Se puede ver que tenemos tres campos aquí mismo, un id de ubicación de recursos y los ítems toman salida y un no analista de ítems de receta. Y también puedes ver que implementa la interfaz de la receta con el contenedor de símbolos aquí. Ahora debe ser bastante autoexplicativo que la salida sea solo el resultado que vas a obtener de la receta real. El ID va a ser, bueno, la ubicación de recursos en la que se encuentra este archivo jason real. El artículo de la receta va a ser una lista de ingredientes o de artículos que se utilizan para elaborar el artículo en particular. Ahora saltaremos el método de partidos por un segundo porque este va a ser el método más importante en toda esta clase. Por lo que vamos a pasar por los otros para ensamblar similar al elemento get result solo te da la salida. Puede artesanar dimensiones. Simplemente vamos a volver verdad porque no tenemos dimensiones. No estamos en una cuadrícula de tres por tres o algo así. La idea, una vez más, es solo el id de ubicación de recursos Y tenemos un serializador y un tipo. Ahora, esas son en realidad clases estáticas dentro del cobalto plus o vaso de receta. Y se puede ver el tipo simplemente tiene una instancia y es solo una idea Jacobo volando, y luego similar en el serializador, también tenemos una instancia y el ID aquí mismo. Es muy importante que éste y éste, pero este básicamente un tipo aquí determina cuál tiene que ser el nombre de tu tipo en tu archivo JSON. Pero veremos esto en tan solo un momento. Ahora, los ceros, tiene algunos métodos más. Vamos a, primero que nada vamos hasta el fondo aquí. Y se puede ver eso también, sobre todo estos dos métodos que básicamente devuelven la clase del serializador de recetas. Y eso es cosa loca preguntada de clase. Um, no estoy cien por ciento seguro de lo que está pasando lo loco aquí. Sólo vamos a necesitar esto. Entonces de lo contrario no podemos devolver la clase correctamente si no tenemos esta cosa de envoltura loca. Como dije, no estoy un 100 por ciento seguro de qué se trata. Simplemente lo vamos a dejar como está, y sólo vamos a estar bien con que estemos aquí. Ahora la idea, por supuesto es sólo una vez más, el ID real aquí mismo, la ocasión de recurso, el nombre del registro es sólo la instancia en sí, donde básicamente regresamos la instancia misma. Y luego tenemos los tres métodos de Jason, de red y a red. Ahora esos son increíblemente importantes. El método from JSON determina básicamente cómo se ordena básicamente el Jason. Por lo que podemos ver que estamos al principio haciendo un conjunto de artículos llamado salida. Y básicamente estamos leyendo eso en de un miembro llamado salida en el archivo JSON. Una vez más veremos el archivo JSON en tan solo un momento, pero eso es algo que vamos a leer. Y luego vamos a leer en los ingredientes, que va a ser una lista. Aquí hacemos una lista no nula. Y luego básicamente poner todos los ingredientes en esta lista. Y luego creando una nueva receta de explosión de cobol desde la red. Y los dos métodos de red también son interesantes. En lugar de usar el objeto JSON, realidad vamos a tener un búfer de byte amigable o por buffer. Y esto es básicamente solo para que la red pueda comunicar al cliente y al servidor. Lo que es importante aquí es que cuando estamos escribiendo cosas a la red y leyendo cosas de la red, tiene que coincidir exactamente. ¿ Qué significa eso? Bueno, se puede ver que cuando estamos escribiendo cosas, en primer lugar, estamos escribiendo el tamaño de la lista de ingredientes. Entonces estamos escribiendo cada ingrediente. Y luego al final, estamos leyendo la pila de artículos del resultado de las recetas, ¿de acuerdo? Y así es exactamente como lo leemos. En primer lugar estamos leyendo el tamaño justo aquí con read int. Entonces estamos leyendo los ingredientes. Y luego al final estamos leyendo aquí la salida. Esto es muy importante que esto tenga que coincidir. De lo contrario obtendrás un error, no en el entorno de desarrollo, sino cuando estás en el servidor, como cuando tratas de conectarte básicamente a un mundo normal fuera del desarrollo ambiente, vas a conseguir un error y no va a funcionar para asegurarte de que esto coincida si quieres ir por alguna otra cosa. Porque por supuesto, una vez más, empezamos a jugar. Ahora es una especie de tiempo de conocimiento Java serio. Si quieres cambiar esto, correcto, si fueras a, por ejemplo, digamos, Oye, en realidad tengo, no sólo dos entradas tendrán como cuatro entradas cambiarán el tamaño aquí, ¿verdad? Para hacer un montón de cosas, en realidad tengo diferentes tipos de salida que quería dependiendo de ciertas cosas. Bueno, o haces una nueva receta para ello. O si quieres tener todo esto en una sola receta, también puedes hacer una lista de salidas en teoría, elegir entre ellas al azar, cosas así. Todo se trata ahora realmente de tener una comprensión muy sólida porque sólo va a ser muy difícil de lo contrario hacer cosas realmente personalizadas. Ahora mismo llegaremos al método de coincidencias, que es como dije, el más importante porque esto básicamente determina la funcionalidad o esta la implementación de cómo es tu receta evaluado. Por lo tanto, ¿qué hay dentro del contenedor coincide con una receta en particular? ¿ Cómo funciona esto? Bueno, en primer lugar, estamos preguntando si los ítems de la 0th receta, así que el primer elemento de nuestra lista de recetas que estamos leyendo desde el archivo adyacente, es que sí que coincide con el artículo dentro del contenedor con índice 1, y índice 1? Pues recuerda porque el índice 0 en realidad es hora, vas a ranura. Por ello tenemos que tomar el índice uno aquí. Y luego si eso coincide, entonces sólo estamos regresando si el otro coincide o no también. Y entonces esto por supuesto volvería cierto. De lo contrario devolvería falso. Esto es muy importante. Esta es básicamente la pieza dura de tu, de tu año de receta personalizada. Y una vez más, si tienes cosas más complicadas, si tienes más, si tienes más ingredientes, si tienes más ranuras, solo necesitas agregarle cosas, cambiar cosas en ella, básicamente cambiarlo continuamente. Una vez más, Java conocimiento, conocimiento, terminología. Seguiré diciendo esto. La investigación, sobre todo en este momento en la sección avanzada, básicamente estamos terminados. Entonces esto es, esto se tiene que hacer y sí, esta es la idea general. Entonces toda la lógica de elaboración, la lógica de coincidencia entra aquí, y esa es en realidad la explosión fría o clase de receta. Y luego echemos un vistazo a las recetas de modo. Podemos ver que aquí tenemos un registro diferente de serializadores de recetas. Y luego solo un serializador de recetas para el yeso cobol ahí mismo. Y entonces también nos estamos asegurando de que registramos un tipo cuando llamamos a este método de registro. lo que este método de registro, por supuesto, tiene que llamarse una vez más en nuestra clase mod curso MC justo aquí para el modo recetas dot registrarse con el bus de eventos. Y una vez que eso se hace sobre estas clases están realmente bien y ya podríamos leer en los archivos JSON. Pero claro que ahora no tendremos ninguno, no estamos haciendo nada, ¿verdad? Por lo que realmente necesitamos cambiar la entidad de cobalto más tres bloques ahora para que podamos cerrar esto e ir a la entidad aquí mismo. Y en realidad vamos a hacer algunos cambios importantes aquí mismo. Entonces lo que voy a hacer es realmente copiar sobre todas las diferentes cosas que vamos a necesitar. Y vamos a empezar por arriba. Porque lo que necesitamos es que vamos a necesitar algunos datos de contenedor. Entonces copiaré esto más. Voy a hacer algo así y luego vamos a copiar esto aquí. Por lo que se puede ver que tenemos algunos contenedor final protegidos llamados datos. Y entonces tenemos también para campos que son el progreso, el progreso máximo, el tiempo de combustible, y el tiempo máximo de combustible. Y antes que nada, asignemos esto dentro del constructor, también copiaremos esto sobre todo aquí está por supuesto, una vez más, disponible para ti en el repositorio de GitHub o un individual igual de bien. Y se puede ver que los datos del contenedor también son en este caso un método anónimo con anular el GET el conjunto y el método GetCount. Y siempre estamos devolviendo el progreso, el tiempo máximo de combustible de progreso y el tiempo máximo de combustible aquí mismo. Porque esos cuatro campos diferentes que queremos realmente sincronizar a través del menú. Es por ello que se llama los datos del contenedor. El menú contenedor básicamente sincronizará esos cuatro campos para nosotros a través del cliente y el servidor para que ambos tengan el mismo valor. Porque claro, por ejemplo, Southern, algo así como el progreso y el progreso de Ymax. Bueno, si tienes ambos, de repente podemos mostrar una flecha de progreso. Si tenemos el tiempo de combustible y el tiempo máximo de campo, de repente podemos mostrar cuánto combustible queda dentro de tu inventario, cosas así. Y por eso es tan increíblemente importante tener esto. Y esto en realidad es bastante sencillo de usar una vez que sepas usarlo. Entonces lo que vamos a hacer es que vamos a entrar en los ingresos del vidrio cobalto. Sólo vamos a sumar los datos aquí. Entonces este dato, ahora esto por supuesto va a arrojar un error, ¿verdad? Entonces tenemos que entrar al menú del bláster y solo podemos decir: Vale, vamos a cambiar algunas cosas aquí. Y lo que estamos cambiando no es el primer constructor, sino el segundo. Vamos a agregar los datos de contenedor o datos aquí. Y entonces éste arrojará un error. Y vamos a decir que no se preocupe en absoluto. Porque lo que podemos hacer es que podemos hacer un nuevo dato de contenedor simple con longitud 4. Porque una vez más, por supuesto esta es la longitud cuatro. Y entonces sólo vamos a hacer es también vamos a hacer un campo privado para esto. Vamos a estar usando esto en dos métodos más tarde o realidad creo que tres métodos datos, ¿verdad? Y entonces sólo vamos a decir por debajo de este nivel, cuando sólo vas a decir que estos datos de punto son iguales a los datos. Bueno, básicamente asignando esto y ahora la forma en que lo vamos a hacer, que esto también sincronice es que vamos a decir agregar ranura de datos. Por lo que las ranuras en realidad ranuras de datos. Y luego vamos a pasar los datos aquí mismo. Pero eso es literalmente. Todo lo que necesitamos hacer. Ahora esto se está sincronizando. Y luego vamos a conseguir cuatro nuevos métodos en los que nuestro El está elaborando método que tiene método de combustible que obtiene progreso escalado, y se escala, progresarás. Ahora, esto es solo un montón de matemáticas básicamente en segundo plano está asegurándose de que bueno, vale, cuánto progreso tenemos, nuestro máximo, máximo progreso tenemos cuál es el ancho de la flecha en este caso, correcto, que queremos exhibir. Y entonces sólo estamos asegurándonos de que todo esto se calcule correctamente. Eso es básicamente todo lo que hace esto. Aunque. No debes preocuparte demasiado por esto. Seguro que podrás averiguarlo si le echas un vistazo un rato a nada ahí. Eso en realidad son todas las cosas que tenemos que hacer en el menú aquí. Ahora en realidad sí necesitamos hacer muchas más cosas en la entidad de bloque 4. Estamos pasando a la pantalla. Por lo que volveré a copiar sobre un montón de cosas. Número uno, necesitamos agregar cosas a los métodos de guardar y cargar. Porque lo que queremos hacer es que queremos guardar el progreso el filtro Minimax con leerlo. Entonces cargándolo. Ahora esto es en realidad, vamos a hacer nb t entonces y VT. VT y NVT, no hay preocupaciones ahí. Entonces van. Entonces esto es, bueno, cosas que definitivamente queremos hacer. Porque claro cuando cargamos del mundo, como cuando salvamos un mundo, ¿no? Y luego cuando vuelvas a unirte, bueno, queremos que el tiempo de combustible sea el mismo, que el progreso sea el mismo, cosas así. Es por ello que lo guardamos y luego lo leemos de nuevo. Entonces esta es básicamente la idea general aquí. Entonces lo que vamos a hacer es que básicamente soy todo incluido el método de tic. Yo voy a, bueno, me refiero a copiar. Entonces esto va a ser mucho código, pero vamos a pasar método por método. Ahora bien, no creo que debamos conseguir flechas ahora no lo hacemos. Entonces el número uno, tenemos un método no estático y ese es el método consume menos. Se puede ver que básicamente estoy revisando, hey, ¿tengo algo dentro de nuestra ranura de combustible? Porque una vez más, recuerda la ranura 0, ¿verdad? ¿ Cómo es la ranura de combustible para nosotros? Entonces si eso no está vacío, entonces le vamos a sacar el tiempo de quemadura. Lo estamos extrayendo. Entonces vamos a extraer exactamente uno de esos artículos. Vamos a utilizar la fundición tipo receta. Porque, bueno, para fundir básicamente se suministran todos los tiempos de quemado , guardándolo aquí. Y entonces también estamos ahorrando el tiempo máximo de combustible también. Y si eso se hace, entonces podemos encontrar un método de tick. Ahora es toda nuestra lógica. Ahora, ¿qué es toda esta locura? Bueno, en primer lugar, estamos preguntando, ¿esta entidad del libro consume pocos? Este es un método personalizado que he hecho aquí mismo. Y eso es básicamente comprueba si el tiempo de combustible está o no por encima de 0 es por supuesto, si el tiempo de combustible está por encima de 0, entonces sabemos que todavía nos queda algo de tiempo donde el combustible está marcando. Está bien, bastante justo. Entonces mientras ese sea el caso, entonces lo que vamos a hacer es que vamos a disminuir el tiempo de combustible que queda ahí dentro, ¿verdad? Entonces básicamente vamos a disminuir la llama que se está mostrando y también cuánto tiempo le queda básicamente. Y una vez más, tenemos el método de receta tiene el cual ahora ha cambiado. Se puede ver este de aquí es ahora el método tiene receta. Y esto funciona un poco diferente. Entonces básicamente ahora estamos consiguiendo la receta o el tipo de receta hobo blaster con un inventario. Entonces aquí solo estamos haciendo inventario de símbolos que podemos fácilmente o más fácilmente básicamente pasa porque esto es por supuesto de tipo, inventario simple o contenedor simple más bien top, solo estamos pasando todo esto y nos estamos asegurando, hey, hace esto, esto es en realidad, está presente es un partido para el inventario que hemos pasado. Entonces nuestra cosa GUI que está ahí, hace que coincida con cualquier receta que sea de tipo receta de explosión de cobalto que es básicamente lo que este aquí rastrea. Si está presente, entonces vamos a conseguir un verdadero aquí. Y luego buscamos otras dos cosas. Puede insertar cantidad en la ranura de salida y puede insertar elemento en la ranura de salida. Esos son sólo dos muy fáciles de entender. Los métodos básicamente están diciendo, Hey, consigue el tercer ítem. Si es lo mismo el elemento de salida, vamos a decir, bien, o si está vacío, también vamos a estar bien porque entonces sólo podemos poner la salida. Y entonces también este que básicamente ya hemos visto, correcto, puede insertar cantidad en la ranura de salida, básicamente solo cheques, ¿sigue siendo el tamaño Max Stack? ¿ Es esto más grande que el conteo real? ¿ Es? Si de repente el conteo llega exactamente al tamaño Max Stack, ya no podemos insertar. Entonces toda esta expresión booleana entera se vuelve falsa. Pero si tiene receta es cierta, vamos a entrar en este calvario agujero y todo este audio. Bueno, como muchas cosas que puedes ver tiene combustible y ranura de combustible se pregunta en primer lugar, correcto, así que si hay algún combustible en la ranura de combustible, será bastante autoexplicativo. Y luego si no estamos consumiendo combustible de lo que tenemos que consumir combustible primero. Y también pondremos el cambio aquí mismo. Porque una vez más, tenemos que establecer cambiado, lo contrario los datos no te salvarán. Eso es muy importante. Es por ello que tenemos el conjunto cambiado tres veces en este método, lo contrario no funcionará correctamente. Y entonces aquí, si estamos consumiendo combustible, así que esto una vez más, es sólo chequeando, hey, ¿realmente estamos consumiendo combustible? Si lo estamos, vamos, entonces podemos incrementar el avance del artículo que se está elaborando. Una vez más, cada tick que estamos incrementando el progreso que estamos vendiendo cambia. Porque una vez más, el préstamo del cambio tiene que ser el caso porque cada vez que aumentamos el progreso, queríamos volver a guardar el progreso . Entonces eso es muy importante. Entonces. Tan pronto como el progreso esté por encima del progreso máximo aquí mismo, entonces vamos a elaborar el artículo. Entonces esto es muy similar. Una vez más, justo ahora estamos comprobando es el progreso finalmente ahí. Y si lo es, entonces vamos a elaborar el artículo. Y se puede ver que la elaboración del artículo es muy similar. Todavía tenemos el partido aquí. Estamos viendo ¿está presente? Si lo es, más va a hacer con lo siguiente. Vamos a extraer el artículo del punto uno. Vamos a extraer el Adam de la ranura dos, y vamos a ajustar la pila en la ranura 3 a los resultados reales que hemos leído de la receta. Y luego aumentarlo básicamente por uno en este caso. Entonces en este caso también la que está codificada. Podría, por supuesto, también agregar en su variable de recuento de recetas personalizadas. Y entonces podrías o llevarte esa ahí o algo así. Por lo que esto también funcionaría. Y luego también nota aquí que fueron recientemente los avances aquí mismo, que recientemente avanzaron a 0. Porque de lo contrario por supuesto sólo continuaremos después de una y otra vez, que por supuesto no queremos. Y también somos recientemente el progreso si no tenemos alguna receta presente simplemente por el hecho de que, bueno, una vez más, si sacamos la receta y entonces todo el progreso se quedaría ahí. Eso no es exactamente lo que queremos. Y también poniendo el cambio ahí también, ¿verdad? Entonces es bastante. Te recomiendo encarecidamente pasar por esto en tu propio tiempo también. Echando un vistazo a esto, el método de tic aquí es definitivamente, siento que personalmente es un método muy bien hecho en este caso, ¿verdad? Es muy, mucho código limpio. Es decir, al menos tan alto como lo he conseguido para ser casi lee como se puede leer una tasa de texto es como Ok. Ya que receta en esta entidad tiene combustible y sal combustible y no está consumiendo combustible. Este, incluso podrías estar cambiando la nota aquí también y luego tener un no está consumiendo campos de así. Entonces es un poco más fácil de leer, pero esta es una buena idea y un buen ejemplo en realidad de cómo básicamente se puede configurar algo y que es capaz de leer fue por supuesto, todos esos cosas, ¿verdad? Podría poner todo esto aquí en lugar del método tiene receta, podría poner este, podría poner esto aquí mismo, esta expresión booleana. Puedo poner eso aquí mismo. En lugar de tener la cantidad de inserción de lata en la ranura de salida, podría poner eso ahí. Pero el tema es que si le echas un vistazo a esto, te va a llevar al menos como unos buenos cinco segundos estar como, ¿cómo hace esto? De acuerdo, vamos a sacar el artículo de la ranura 3 y asegurarnos de que sea exactamente mismo que el exterior y o asegurarnos de que el artículo sea alcantarillado vacío básicamente comprobando si podemos o no ahora insertar en la ranura de salida, ¿de acuerdo? Pero se puede ver que simplemente tiene mucho más sentido describirlo en un método muy bien llamado en lugar de simplemente ponerlo ahí. Entonces eso es sólo un lado rápido para una especie de un poco de cosas de programación limpias, cosas código limpio, pero eso es más o menos toda la entidad de bloque hecha. Por lo que esto ahora funcionaría. Ahora lo último que tenemos que hacer es añadir cosas a la pantalla. Ahora, esto también voy a copiar y voy a explicar, esto va a ser, bueno, aguanta conmigo aquí. Para que veas, básicamente estoy preguntando el menú, Hey, nuestra recrafting, este es el método que teníamos aquí, ¿verdad? Y entonces tiene pocos método debe ser bastante autoexplicativo. Estos son los métodos básicamente obteniendo de los datos y luego solo asegurándose de que hey, ¿ está aumentando el progreso de la artesanía o es más de 0? Y entonces aquí el combustible no es más de 0 también. Pero esa es la idea general aquí. Y luego una vez que la calidad blitz justo aquí, y luego nos estamos metiendo en algunas cosas locas porque ahora de repente tenemos algunos valores locos Bueno aquí tenemos x plus 8422, el offset. ¿ Qué es, qué es toda esta locura? De acuerdo, vamos a pasar por esta pieza por pieza. Por lo que tenemos un valor x y un y. Ahora el valor x y el y determinaron dónde empiezas a dibujar algo. Entonces, ¿qué significa eso? ¿A qué te refieres con donde empezamos a dibujar algo? Bueno, x e y en este caso, básicamente siempre ser la esquina superior izquierda de la GUI. Ve aquí mismo. Y luego si pensamos en esto, pero 84 a la derecha y 22 abajo, vamos a ir 84 a la derecha y 22 abajo y luego terminamos aquí mismo. Ahora sólo lo sé por el momento. Una vez más, tienes que tomar photoshop, Paint.NET y asegurarte de que te alinees. Esto básicamente contará los píxeles. No hay otra forma de evitarlo, pero empezamos a dibujar aquí mismo. De acuerdo, ¿qué se supone que vamos a dibujar? Bueno, se supone que debemos dibujar esta flecha. Está bien, eso es interesante. ¿ Cómo dibujamos esto? Bueno, en primer lugar, el offset ahora es ¿qué estamos queriendo dibujar? Entonces queremos dibujar empezando aquí apenas, ¿de acuerdo? lo hemos hecho. ¿ Cuál es el offset? El desplazamiento que puedes ver es un 17614 para un 176 es en realidad justo aquí, y 14 está justo aquí, sin embargo. Ahora como que se junta, ¿verdad? Queremos dibujar esta flecha a partir de aquí. De acuerdo, eso tiene sentido. Ahora, lo que son los dos últimos valores para los dos últimos valores es la altura y el ancho de la imagen que queremos dibujar. Otra cosa realmente genial entra, porque estamos tomando el progreso de la escala aquí mismo. Lo que pasa es que a medida que esto aumenta el, aumentamos el ancho de esta flecha que se está dibujando. Entonces eso es lo realmente genial. Entonces si yo solo pudiera poner también en 2006 y entonces toda la zona estaría siempre presente. Pero debido a que lo estamos sincronizando con el progreso de la escala aquí, aumenta el ancho que se está mostrando. Esa es la idea general. Recomiendo encarecidamente una vez más, jugando con los números aquí, porque de lo contrario, los viejos de sangre son muy complicados de entender realmente en algún momento, todavía tengo que jugar con ellos un poco. Simplemente es lo que es. Y luego para el combustible, admito que básicamente acabo de tomar las cosas de combustible del horno real porque tienes que sumar el progreso de campo máximo aquí y luego restar tu báscula progresar tres veces, una vez por la altura, lo cual debería tener sentido, ¿verdad? Porque ahora básicamente estamos restando la altura aquí, básicamente estamos diciendo que estamos, estamos empezando aquí y luego restando ahí abajo, cosas así. Es sólo locura. Simplemente recomiendo muy bien. Una vez más, echando un vistazo aquí, definitivamente puedes echar un vistazo a ejemplos de vainilla de esto. De lo contrario, se trata solo de experimentación. Por lo que aún necesitamos una receta. Entonces en nuestra carpeta de datos, recetas del curso MC, voy a copiar sobre el pico cobol del bláster cobalto. Y se puede ver lo que esto hace es básicamente tenemos dos ingredientes, son tipo es MC curso cobol plástico, y tenemos el pico dorado y el cobalto en buena. Y tenemos que poner, en este orden, y entonces la salida va a ser un cerdos cobalto. Entonces eso en realidad sí suena bastante guay. Y como dije, ahora puedes hacer tantas recetas diferentes como quieras. Una de las limitaciones, digamos con esto es que Bueno, siempre va a tomar el mismo tiempo. Bueno, podrías, por supuesto también hacer es agregar el progreso máximo al archivo JSON. Solo tienes que cambiar un poco el serializador y luego básicamente agregar esto también. Todo esto funciona. Esto es sólo cuestión de básicamente, bueno ajustar un poco las cosas y cambiar algunas cosas alrededor. Pero ahora veamos si funciona o nos encuentra en Minecraft. Entonces, primero que nada pongamos el cristal cobalto real o hacia abajo y todo parece estar funcionando. Todavía podemos poner algunos dentro. Veamos ahora el oro pick X en la parte superior y luego una Inglaterra cobalto en la parte inferior. Y ahí vamos. Se ha iniciado el avance. Ahora hemos creado un hacha de pick que es realmente genial. Y lo que podrán ver es que si meto otro, no pasará nada porque claro, vamos a recoger ejes no se apilar. Por lo tanto, tengo que sacar esto y sólo entonces vamos a volver a fabricar. Se puede ver que el combustible es, vamos constantemente bajando. Por lo que constantemente está asumiendo el combustible. Y lo que también podrán ver es que si yo, por ejemplo, ahora salgo del mundo otra vez y vuelvo a entrar, verán que el combustible en realidad se ha mantenido el mismo nivel tal como lo haría con, por ejemplo, un bloque o un horno o algo así. Entonces eso es bastante guay. Para que pueda echarle un vistazo y ahí va. Un combustible progresará es lo mismo. Y una vez más, ahora puedo simplemente poner esto porque todavía nos queda combustible y todavía vamos a poder fabricar esos el tiempo que queramos. Y los hígados del curso también seguirían funcionando por cierto, todo aquí funcionando exactamente como quisiéramos que lo hiciera. Y ahora esto, hay que admitir que es bastante genial, ¿no? Por lo que una vez más, esto empieza a ponerse muy avanzado. Por lo que recomiendo encarecidamente, una vez más, tomarnos nuestro tiempo con esto , los dos métodos, correcto, con la entidad de bloque y la serialización de la receta del cliente aquí es bastante. Pero también aparte de algunas otras cosas, esta es probablemente una de las cosas más complejas que realmente podemos hacer. Es decir, la generación mundial, en realidad diría, es probablemente un poco más complicada sólo porque a veces puede ser así. Pero en general, creo que esto es realmente genial. Tienes un ejemplo realmente bueno aquí mismo. Lee todo el código una vez más disponible para ti en el repositorio de GitHub y un individuo igual de bien. Así que sólo échale un vistazo, se copia, juega un poco con los números. Y ojalá entonces puedas solo tener una idea de cómo funciona todo esto, ¿verdad? Pero eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo y te veré en la próxima conferencia. Entonces, sí. 90. (Avanzado) madera personalizada: Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta conferencia, vamos a estar agregando madera personalizada a Minecraft. Entonces, a pesar de que este es un tema avanzado, definitivamente va a ser un poco más fácil que las entidades de bloque y la serialización de la receta del cliente. Entonces pensé que básicamente vamos a sumar una o dos conferencias poco más fáciles aquí antes de saltar la generación mundial porque eso va a ser un todo, otra bestia. Entonces para nuestra costumbre lo haría, necesitamos una clase de bloque personalizado en realidad, por lo que en nuestro paquete personalizado haga clic derecho nueva clase Java llamada el mod lambda girará bloque de Hitler, un nombre largo, pero esto lo que va a ser y esto va a extender la clase de bloque de pilares girados. Y sólo vamos a pasar el rato sobre este constructor concreto coincidente súper nos molesta. Podemos simplemente hacer clic en él, presionar Shift F6, y luego cuyas propiedades aquí para el nombre. Y voy a copiar sobre los tres métodos que necesitamos anular. Es decir, el método es inflamable se devuelve verdadero. Obtienen necesidades de inflamabilidad para devolver cinco y se esparcen el fuego. También necesita devolver cinco. Ahora, ¿por qué estamos haciendo esto? Bueno, porque todos los bloques de pilares girados que tenemos, básicamente vamos a ser la madera, la tira lo haría el tronco y el tronco de tira. Todos esos están bien, deberían ser inflamables. No obstante, por defecto no lo son. No estoy un 100 por ciento seguro de por qué es ese el caso. Y también podríamos hacer clases anónimas para cada uno de ellos, pero eso sólo va a desbaratar la totalidad de nuestra clase de más bloques. Entonces para estos, elijo básicamente, bueno, lo que esto en una clase de bloque o ambos los tablones. Y luego más tarde en una conferencia posterior, las hojas, realidad vamos a hacer esto en clases anónimas. Pero vamos a ver esto en tan solo un momento en que nuestra clase de bloques de motor, Vamos, ordenemos copiar sobre el lanzador cobol. Y vamos a hacer de esto el registro de subrayado de flor de cerezo subrayado. Y luego lo mismo, lee tu registro de subrayado de flor de cerezo. Y luego se trata de un bloque de pilar girado MOD o más inflamable girado. Ellos atrás, éste en realidad copiará no un material sino un bloque. Entonces esto va a ser bloques punto OK, subrayado, así que log que vas. Y entonces realmente tendremos oclusión aquí y el resto va a estar bien. Entonces esto es más o menos lo que necesitamos. Y luego necesitamos copiar esto cuatro veces para que aquí tengamos cinco instancias diferentes. El segundo va a ser la flor de cerezo iría y luego lo haría aquí en el nombre también, Es muy importante que cambies los nombres. Y entonces aquí simplemente copiamos básicamente de la madera de roble en lugar de la glog. Esto realmente no debería hacer tanta diferencia, pero yo solo soy, ya sabes, todavía me gusta hacer esto. Entonces tenemos la tira subrayada tronco de flor de cerezo. Por lo que esta va a ser la tira bajo cerradura de botón del interruptor. Y luego aquí, esto por supuesto también se va a copiar del guión. Ok, debería aplaudir el ego. Y entonces esto va a ser el estricto subrayado flor de cerezo, subrayan la madera. Y este también es el por supuesto, despojado de Cerezo Blossom, lo harían hace. Y luego por último pero no menos importante aquí copia de la madera de roble despojado. Ahora éste de aquí son solo tablones de flor de cerezo. Ahora es importante que sean tablones en liberal. Y este es cual bloque puede ser? Bueno, si no hay ningún bloque normal en realidad. Y entonces lo que vamos a hacer es simplemente formatear esto un poco diferente. Y esto se va a por supuesto, tomar los aviones bloques de tablones. Y luego después del segundo parámetro, en realidad, lo que hacen las mujeres es querer poner un corchete rizado y luego simplemente golpear enter. Sólo voy a copiarlo otra vez. Entonces esos son solo los tres métodos que vamos a necesitar un escaneable, conseguir inflamabilidad y propagación del fuego. Y ver que los números aquí, somos un poco diferentes. Entonces esta es también una de las razones por las que no podemos usar este bloque. Esta fue otra que vamos a ver en tan solo un momento. Esa es la idea general. Y entonces todos nuestros bloques están realmente registrados. Entonces eso es bastante guay. Todas las cosas consideradas, correcto, vamos a agregar un método más al bloque de pilar girado inflamable MOD. Y ese va a ser éste de aquí. Entonces sólo voy a llevar esto. Esto es por supuesto, todo disponible para ti en el repositorio de GitHub y un individuo igual de bien. Y esta es la buena herramienta, método de estado modificado. Entonces básicamente la idea es que estamos comprobando si se hizo clic derecho o no con un hacha. Si lo fue, entonces lo que vamos a hacer es que básicamente vamos a decir, oye, si esto es un tronco de cerezo en flor, vamos a convertir esto en un blog de striptease. De lo contrario, si es una pérdida lo haría, entonces lo vamos a convertir en madera de cerezo en flor. Esa es la idea general aquí. Y entonces solo nos estamos asegurando de que el eje se mantenga igual en este momento, no podemos, no solo vamos a hacer el estado de bloque predeterminado entonces también enviaremos el acceso real también. Esa es la idea general aquí. Si tienes muchos registros diferentes, entonces en teoría también tendrías que añadir siempre estas declaraciones if. También puedes hacerlo como en el elemento ACS. Entonces si realmente milimoles por click en este accidente, puedes ver que hay una cuadra para bloquear mapa aquí mismo. Te recomiendo encarecidamente que hagas algo como esto también. Si tienes una cantidad loca de diferentes bloques, troncos y básicamente te gustaría haber despojado Eso tiene mucho sentido. De lo contrario, esto va a ser totalmente viable en este momento a la parte favorita de todos de los archivos JSON. Esos son una vez más, por supuesto, todos disponibles para ti en el repositorio del laboratorio o un individuo igual de bien. Yo sólo voy a copiarlos. Ahora, en general, no son tan interesantes. Por supuesto, para todos los bloques de filtro girados, tenemos un eje aquí como se puede ver. Y luego básicamente solo apunta a diferentes modelos y gira el bloque alrededor. Eso es todo lo que hay a ello. En realidad es todo lo interesante ahí mismo. Y añadamos también la traducción porque lo contrario posiblemente la olvidaré, que por supuesto no queremos aquí mismo. Simplemente voy a agregar estos troncos, tablones harían las variantes de script también. Los modelos para los bloques son, bueno, un poco, mientras que, hay algunos más, no son tantos. Tenemos la madera, la palabra normal, los despojados también. Entonces vamos a copiar esos más también en la carpeta de bloques. Siete de ellos en total. Básicamente sólo tienen padres diferentes, pero siempre tienen las mismas texturas. Entonces el final, esto es solo la parte superior del bloque real para el registro. Y entonces los lados es simplemente básicamente la corteza a su alrededor. Para los modelos de artículos, solo tenemos cinco modelos de artículos, por supuesto. Son y son como las cosas más básicas de la historia. Por lo que simplemente todos se ven como este estado todos solo apuntan el archivo de modelo de bloque normal. Y luego por supuesto, por último pero no menos importante, las texturas también. Ahí lo tienes. Esas son también cinco texturas. Y luego después de que hemos agregado todo esto, hay una cosa más interesante que queremos agregar. Y eso va a ser si etiquetas en la carpeta de Minecraft, etiquetas, bloques, y luego solo copiaré esto. Estos son los troncos y los troncos que se queman. Veremos realmente que tendríamos que añadir otro aquí. Como se puede ver que esto en realidad apunta a la etiqueta de troncos de flor de cerezo curso. Y queremos agregar una etiqueta personalizada aquí mismo también. Por lo que este va a ser los blogs de flor de cerezo también copian esto más. En este punto, hemos visto esto un montón de veces. Y solo quiero agregar básicamente todos nuestros registros ahí dentro. Esta es la palabra y variantes descriptivas también. Si lo agregas a los troncos de esa quemadura, eso básicamente te permitirá colocar esto dentro de la ranura de combustible del horno también para que básicamente puedan quemarse. Y esa es la idea general aquí. Y en los troncos cuando lo necesitamos para si posteriormente agregamos las hojas, entonces el arrendamiento no se descompondrá cuando estén cerca de cualquiera de estos bloques, y eso es más o menos todo lo que necesitamos hacer. Entonces, veamos si funciona. O en Francia como un microondas puede ver toda la madera se ha agregado con éxito al juego y se ve absolutamente increíble. Para que puedas ver, puedo ponerlo abajo y sólo veamos estas variantes también. Ahí lo tienes. Y, y también los troncos, más bien los tablones, supongo. Entonces si hago clic con el botón derecho en estos, entonces puedes ver que también puedo obtener la varianza de tira. Entonces todo está funcionando exactamente cómo pensarías que terminaría como se pretende, ¿verdad? Eso ya es para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 91. (Avanzado) Sign personalizada: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando letreros personalizados a Minecraft. Para el signo personalizado es, bueno, tiene algunas peculiaridades en él que, pero sólo vamos a básicamente tomó, echar un vistazo en este momento. Entonces para los letreros personalizados, pero vamos a necesitar es vamos a necesitar, primer lugar, una entidad de bloque de signos. Por lo que en nuestro paquete de entidad, haga clic derecho en nueva clase Java llamada la entidad de bloque de signo de modo. Y esto se extenderá. La entidad de bloque de signos colocará sobre este super de coincidencia de constructor de crear, y luego anularemos el método getter. Entonces aquí podemos poner algo aún. Entonces solo voy a hacer un error aquí para que tengamos esto. Entonces vamos a necesitar los bloques para esto. Vamos a necesitar dos cuadras por aquí. Además, hay que crear clases de bloque personalizadas. Esto a veces puede ser realmente molesto para el signo. No estoy seguro de por qué es así de bien, complejo de hacer, pero es justo como va a ser. Esto va a ser un bloque de letreros de pie. Por lo que Mott de pie lóbulo lateral extiende este. Simplemente vamos a dejar esto tal como está. Y aquí en realidad solo queremos anular una cosa y ese va a ser el nuevo método de entidad de bloque. Entonces aquí lo que vamos a hacer es hacer una nueva entidad de bloque de signo de modo con la posición y el estado y el estado que hace. Eso va a estar bien. Y luego vamos a hacer otra clase que es el bloque MOD ALL IN, que extiende el bloque de letreros de pared. Hace también crean constructor coincidente super. También copiaremos sobre este método. Una vez más, por supuesto, todo el código estará disponible para ti en el repositorio de GitHub y un individuo igual de bien. Porque ahora realmente voy a hacer un pecado cardinal y voy a copiar sobre lo que necesitamos en la clase de bloques de barro. Y ya verás necesitaremos una clase mod Wood Types también porque como ya he dicho, no sé por qué, pero es absolutamente una locura, pero sin preocupaciones vamos a pasar por esto. Entonces mod haría tipos, y esto va a tener uno campos estáticos. Tan público tipo estático o flor de cerezo. Y esto es igual a tipearía. Esa tasa. Jerez subrayado flor. El ego. Eso es todo lo que necesitamos poner aquí y luego aquí. Y luego en los bloques de lodo, esto también debería funcionar. Por lo que ahora funcionan los bloques. Entonces ahora lo que podemos hacer en las entidades de bloque de modo, en realidad puedo copiar esto más. Esto es más o menos exactamente lo mismo que esto. Como puedes ver, solo tenemos la entidad de bloque de signo mod año siguiente a la entidad de bloqueador solar. Si tienes múltiples signos diferentes, lo que tienes que hacer es no tienes que cambiar estos bloques. Solo tienes que agregar para considerar dos bloques aquí y puedes agregar tantos como quieras. Entonces básicamente solo agrega más bloques aquí y entonces debería, en teoría trabajar igual con éste. Entonces ahora aquí solo vamos a decir entidades de bloque mod, entidad dot get. Y entonces eso debería estar bien también para otro cliente firmando básicamente qué nuevo tipo de madera a nuevos bloques aquí. Y lo que verán es que estos bloques que se registran en lugar del método de bloque de registro, porque tenemos que tener un ítem separado para que esto vaya a ser los ítems de signo. En realidad también copiaré esto una vez más, todo esto está disponible para ti en el repositorio de GitHub y un interauricular igual de bien. Esto va a ser esto aquí mismo. Así que vamos a quitarnos la durabilidad y sólo vamos a apilar a 16 como cualquier otra línea sería. Además, puedes ver que el elemento de signo aquí realmente requiere que pongas el seno y el letrero de pared también. Entonces eso es otra cosa importante aquí mismo. Y aparte de eso, también tenemos una cosa más fueron un par de cosas más dentro del curso MC, masa. Por lo que en la parte inferior aquí, necesitamos llamar teclearía importante class dot register, mode haría tipos dot Cherry Blossom. Necesitamos registrar este método de configuración inclinado. Y luego en el método de configuración normal, necesitamos hacer dos cosas. Entonces el número uno es el renderizador de entidad de bloque. Renders renderizadores muy importantes. Modo de registro, bloquear entidades. Ahora firma bloque entidad dot get, y luego el renderizador de signos aquí, colon, colon nuevo. Entonces debajo de esto queremos llamar hojas dot add teclearía, mod, mod teclearía estrella, cerezo, van. Y eso debe ser finalmente todo lo que necesitamos en términos del código. Por supuesto todavía necesitamos los archivos JSON. Y cuando se trata de los días, y para nosotros, en realidad necesitábamos los archivos JSON para los estados de bloque también para asegurarnos de que tienes eso. Y entonces lo mismo va para la traducción. Entonces, solo agreguemos esto. Tenemos la traducción para el letrero. Y luego solo agreguemos los modelos de bloque también. Los Pilares son en realidad una especie de interesante. Entonces en realidad sólo hay un modelo de bloque porque ambos apuntan al mismo porque este modelo de bloque sólo tiene partículas definidas, estas son las partículas que se van a ver en cuando destruyes el signo real. Si bien el modelo de elemento de signo de flor de cerezo se ve así. Entonces es simplemente apunta a un elemento la textura es por supuesto, una vez más en el elemento la textura va a ser, bueno lo mismo y tenemos el mismo artículo para dos bloques diferentes. En este caso, vamos a tener un signo normal de flor de cerezo aquí mismo. Esa es la textura del artículo. Ahí vas. Y eso son todas las cosas que vamos a necesitar. Entonces una vez más, todo esto está por supuesto disponible para ti porque una vez más, es ejercicio muy circular y puede ser un poco molesto. Entonces encontré que los signos eran algo desconcertantes en su complejidad. O lo que básicamente se puede hacer al final con él. En realidad vas a necesitar una textura más. Y eso va a ser real como textura de cereza en el fondo. Y esto tiene que estar bajo el espacio de nombres de Minecraft otra vez, así que activos, texturas de Minecraft. Entonces en lugar de la carpeta entidad, vamos a necesitar carpeta signos. Y luego dentro de ahí el cerezo en flor PNG. Y ahora después de haber agregado todo esto, Veamos si funciona. O en Francia como micro lente, vemos que se ha agregado el bloque. Ahora no tenemos la traducción correcta, pero eso es por supuesto muy fácil de arreglar. Vamos a ponerlo abajo y podemos escribir algo. Entonces por ejemplo, realmente buena palabra, caballo y hecho y se queda ahí. Y también lo podemos poner en una pared aquí. Como puedes ver, todo funciona bien, exactamente como lo esperarías. Y también acabo de arreglar la traducción aquí. Entonces ahora todo debería funcionar para el expediente que ya lo tiene para esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 92. (Genero mundo) crear un árbol personalizado: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando un árbol personalizado al árbol micro acostumbrado. Bueno, espera un segundo. Ya hemos agregado la costumbre escribiría en nuestra clase de bloques modelo, podemos ver que hay algunos tablones tendrían los troncos, pero casi todo lo que ya tenemos. Bueno, ¿qué no tenemos? No tenemos un árbol y no tenemos hojas. De acuerdo, entonces lo que vamos a hacer es que vamos a copiar sobre la flor de cerezo una tabla una vez. Y entonces también voy a copiar sobre el guión lo haría aquí mismo. Vamos a necesitar uno para las hojas de subrayado en flor de cerezo y luego va aquí en el nombre también. Por supuesto, hace que esto va a ser un bloque de hojas. Se van y luego esto se va a copiar las hojas de roble. Y la inflamabilidad de esto en realidad va a ser de 60 y la propagación del fuego va a ser de 30. Porque las hojas son increíblemente inflamables. Y ahora echemos un vistazo al árbol de Cherry Blossom en la parte inferior aquí. Entonces esto es muestreo. Y luego lo mismo con el nombre por supuesto también, cambiando eso a flor de cerezo subrayan el ardiente. Este va a ser un bloque de árboles que arrojará un error porque necesitamos darle, como pueden ver, un cultivador de árboles abstracto y esa clase que vamos a crear en este momento. Y eso va a entrar en nuestro paquete del curso MC, haga clic derecho en nuevo paquete llamado mundo. Y hemos empezado a aventurarnos en la generación mundial dentro de su nuevo paquete llamado comedero. Y luego dentro de ahí vamos a hacer otro paquete llamado árbol. Y ahí pondré el árbol crecer en esta nueva clase Java llamada el cultivador de árboles en flor de cerezo, que extenderá el árbol abstracto. Crow se colocará sobre este Métodos de Implementación porque necesitamos implementar el método de entidad get configure. Y quiero decir que eso es más o menos todo lo que necesitamos hacer. Ahora volveré a hacer deliberadamente un error aquí mismo para que no me olvide pasarlo en este método porque aún no hemos creado la característica configurada que necesitamos. Pero lo que podemos hacer es que ya podemos hacer una nueva fila de árboles de cerezo en flor para que aquí todo esté bien y la clase más bloques se haga más o menos. Ahora tanto para el arbolito como las hojas que necesitamos dentro de la clase de curso MC en el método cliente, voy a copiar sobre la explosión o recortar aquí y vamos a decir hojas y también vamos a dicen el ardiente que hace que ambos tenemos las hojas y el arbolado en recorte de capa de render, claro. Y luego primero que nada seguiremos terminando los bloques aquí mismo. Entonces solo vamos a copiar sobre la hoja y la etapa de bloques de arvejas Jason. Ahora esos están por supuesto todos disponibles para ti en el repositorio de GitHub y un individuo igual de bien. Pero se puede ver en realidad los estados de bloque, muy aburridos, apenas normales estados de Bloque básicamente. Y luego cuando se trata de la alquilación, más o menos lo mismo. Hojas y pequeñas hojas aquí también. Entonces por supuesto, atractivo y un desconcertado. Ahí lo tienes. También hay que bloquear los archivos JSON de modelo. Por supuesto, las hojas una vez más siendo bastante aburridas, mientras que el ardiente es un poco más interesante, tiene un padre cruzado y una textura cruzada a la que apunta. Práctico todo lo que hay a ello. El modelo de artículo también es un poco más interesante, al menos para el arbolito. Una vez más, el arbolito, como puedes ver ahora busca un extra en la carpeta de bloques en lugar de la carpeta de elementos, pero las hojas son solo archivos JSON modales de elemento normal como los has visto muchas veces ahora para diferentes bloques básicamente. Y luego vamos a copiar por encima de las texturas aquí también, sólo tenlas. Y entonces esto sería más o menos todos los archivos JSON que tenemos que hacer y ahora podemos continuar en nuestro paquete mundial. A pesar de que la razón por la que tenemos un mundo paquetes porque los árboles cuando los engendras, son como una especie de intersección muy extraña de estar un poco ya en generación mundial. Entonces, cuando el árbol engendra del árbol, es un poco de generación mundial. Así es como va a ser. Por lo que en el paquete de características esta vez, haga clic con el botón derecho en nueva clase Java llamada el mod configurado entre sí. Y este va a ser nuestro pozo, son mejores amigos por así decirlo. Como inhibidor, vamos a tener definido el árbol real. Ahora copiaré sobre la definición real del árbol y te explicaré a medida que avancemos. Entonces puedes ver que esto es un montón de cosas, ¿verdad? Lo número uno que quiero decir es cuando se trata de la generación mundial, puede ser muy complicado. De acuerdo, Así que hay un montón de partes móviles en todo el asunto de la generación mundial. Trataré de explicar todo lo mejor de mi capacidad. No obstante, si quieres algo que es muy, muy, muy particular, como quieres tu gusto, no sé, como el tuyo para engendrar exactamente a los 35 y quieres exactamente estos muchos. Va a haber un montón de cosas que tienes que ajustar, pero sin preocupaciones. Seguro que vamos a pasar por esto. O ahora, el cerezo en flor justo aquí. Se puede ver que estamos llamando característica utils dot register, read registers, basicamente esta característica configurada. Y luego estamos pasando en un árbol de características configurado. Por lo que una característica configurada de tipo Configuración de árbol. Estamos pasando en la configuración del árbol con un constructor aquí. Y entonces entra la pregunta, ¿cuáles son todas esas cosas diferentes? Bueno, piensa en esto. Bueno, un bloque dicen proveedor simple. El primero es el proveedor de registros, lo que significa que básicamente tenemos que proporcionar un registro específico que sea el tronco real de ese árbol. ¿ Cómo se coloca ese triunfo? Bueno, estamos imprimiendo un nuevo placer de tronco recto. Si me botón medio del ratón, haga clic en esto, puede ver esto se extiende el baúl colocar su clase. Y si presiono Control H en esto, considera diferentes clases de placer troncal, lo que significa que en teoría, también podrías crear las tuyas propias. Esto por supuesto, una vez más, es algo que definitivamente es más complicado, más complejo aquí. Entonces por supuesto, todo funcionando. Podrías, por supuesto, hacerlo. No obstante, ahí. Ahora solo estamos, en este punto, ni siquiera se trata de, oh, tienes que tener conocimiento de Java en este punto. Vamos un poco de Java intermedio a avanzado. El hacer placers de tronco primo y placers de follaje personalizados básicamente involucra muchas matemáticas también. Por lo tanto, ten eso en cuenta. Entonces el segundo estado de bloque proporcionado aquí mismo, el tercer parámetro son las hojas, y esas se colocan, pero dependiendo de los placeres del follaje, una vez más, botón medio del ratón haga clic en el follaje placer y se puede ver que hay diferentes tipos de placers de follaje. Así es justo como el pozo real, las hojas se colocan hacia abajo. Y eso es más o menos todo lo que hay a ello. Y bueno, entonces la última aquí es el tamaño de la entidad de dos capas. ¿ Qué es esto? Bueno, no estoy cien por ciento seguro. Por lo que esto básicamente limita dónde se puede colocar esto. Esa es la idea general. Año sin embargo, algunas cosas en la totalidad del, digamos generaciones todavía me eluden también. Entonces no se preocupe ahí. Sea cual sea el caso , esta es ahora la característica que tiene que ser devuelta aquí mismo en el Árbol de Cerezo Blossom los cultivadores iban a decir mod configure característica cada flor tres, y eso debería más o menos que sea. Ahora por loco que suene, eso debería ser, eso está hecho. Y ahora el árbol ya engendraría de un árbol. Son importantes, No va a engendrar en el mundo todavía. Simplemente vamos a hacer en esta conferencia que engendra del Arranque para que podamos harina de hueso ID o un crece a partir de un ardiente natural. Entonces yo diría, vamos a ver Por obras, o nos encontramos en microvesículas. Ver los plantones en flor de cerezo han sido bien añadidos al juego. Entonces vamos a ver sólo si puedo engendrarlos con un árbol. Y ahí está, si la harina de hueso en ella funciona. Ahora las preguntas reales, creo que esto está un poco colocado un poco de cerca. Y también si escuchas exactamente, En realidad tienes que cambiar el material por un segundo. Esto sigue usando el material yo creo que el tablón. Entonces eso por supuesto no está del todo bien. Hagamos lo siguiente. Hagamos una regla de juego, velocidad de garrapata aleatoria, y solo aumentemos. Y veamos si esto crece por sí mismo. Pero parece que el arbolito no está creciendo por sí solo. Esto probablemente tiene que ver con el material real que es eso como copiar de. Entonces, solo arreglémoslo rápidamente. Cualquier supervisión aquí mismo, como se puede ver, bloquear propiedades de comportamiento, copiar bloques despojados, OK. No, Esto tiene que ser arveja de roble. Entonces toma todas las propiedades del arbolado de roble. Y lo único que necesita es éste de aquí, tics aleatorios. De lo contrario no se va a tomar al azar. Entonces van y, bueno, si hemos agregado esto que solo por el sake de la finalización, veamos si crece o si termina de nuevo en Minecraft. Y veamos si podemos liberar la velocidad de la garrapata. A ver, el que crece, vamos. Por lo que todo funcionando exactamente como lo esperarías a los árboles creciendo de forma natural como bien correr. Y lo que es muy importante es que la última conferencia o dos conferencias hace cuando agregamos los troncos, correcto, estos de aquí, los troncos de flor de cerezo, era muy importante que añadiéramos a las etiquetas de bloque también. Entonces las etiquetas para los troncos aquí mismo, y básicamente estamos haciendo referencia a los troncos de flor de cerezo, que es una etiqueta que tenemos en nuestro curso MC, Oda. Y aquí mismo los bloques de flor de cerezo, muy importante que esto esté aquí, porque si no tienes eso, entonces las hojas se descompondrán automáticamente. Aunque estén al lado de la bitácora. El registro necesita estar en esa etiqueta. De lo contrario no funcionará en la etiqueta logs. Muy importante. Pero de lo contrario eso ya sería para esta conferencia aquí mismo. Espero que esto te resulte útil y aprendas algo nuevo. Y nos vemos en la próxima conferencia. Ah, sí. 93. (Generación de árboles personalizados: Muy bien, bienvenido de nuevo al curso de forraje por 118. Y en esta conferencia vamos a estar agregando generación de árboles personalizados a Minecraft. Por lo que hemos agregado el árbol desde el arbolito. Ahora la pregunta es cómo la FREC, ¿vamos a meterla en el mundo? Bueno, en realidad, no tan loco. En primer lugar, vamos a entrar en nuestra clase de características configuradas mod está aquí mismo. Vamos a necesitar una nueva función configurada. Ahora lo que es muy importante es lo siguiente. En realidad podemos echar un vistazo a algunos ejemplos de regeneración en vainilla. Altamente, recomiendo encarecidamente echarle un vistazo a esto. Pero lo que podemos hacer, por ejemplo, en la clase de entidad, podemos entrar en la clase de entidad y podemos echar un vistazo a todas las características. Y las características que no son tan interesantes. Lo interesante es, por ejemplo, dónde está la característica de árbol utilizada que nuestro botón central del ratón haga clic en esto, entonces se puede ver que se usa en la clase de características del árbol. Muy interesante. Y se puede ver ahí, hay un montón de lugares básicamente donde se ha utilizado esto. Por ejemplo, vamos sólo a ir aquí a la OK, y se puede ver que este es un registro de utils de características. Se ve muy similar a lo que hemos hecho aquí mismo. Y esto es más o menos exactamente lo que hemos hecho. Por lo que este tiene un método especializado aquí en este caso, o todas las características que utiliza. Pero qué, esto es exactamente lo que tenemos aquí. Ahora, ¿podemos usar esto? ¿ Dónde está este uso ahora? Bueno, yo soy, si hago clic en medio del ratón una vez más, puede ver esto se usa, por ejemplo, en las colocaciones del árbol. Y esta es la AUC comprobada. Esto es exactamente lo que necesitamos básicamente implementar ahora. Bueno, si entro en esto aquí mismo, lo que se puede ver es que esto es de repente colocó característica que es fascinante, ¿no? Algo que se ha hecho es que lo ha sido, la generación mundial se ha separado un poco que ahora has colocado características y configurado características. Y se puede ver que esta característica de lugar en este caso realmente utiliza las características del árbol OK, filtrar por suerte, supervivencia, y luego el arrendo de roble. Pero, ¿qué significa eso exactamente? Aquí la idea general es que básicamente revisar esta característica de lugar sólo se puede colocar en bloques particulares donde el arvejo de roble también podría sobrevivir. Esto es realmente frecuente, cosa genial que hacer. Y entonces dónde se usa esto? Bueno, esto se usa una vez más en los rasgos vegetales aquí mismo. Por lo que este es muy largo en este caso. Pero esto es sólo en teoría. Se puede ver que esto es de repente otra característica configurada. Por ejemplo, en realidad tomemos uno que no sea demasiado largo aquí. Todos son bastante largos. Tomemos los árboles de prados y luego puedo botón medio del ratón dar clic en esto y luego tienes otra característica policial. Entonces básicamente de donde vamos es ir de los árboles en específico, vamos a pasar de la característica configurada a una función de lugar para configurar la entidad a una entidad colocada. Porque colocé la característica tiene que ser, tiene que estar en el mundo, ¿no? No puede ser, no se puede tener no estar en el mundo. Básicamente, he hecho esto un poco diferente. He recortado esta característica de lugar y básicamente solo lo hice que pasemos de esta característica configurada para otra característica configurada, luego yendo a la función de lugar, eso no es un 100 por ciento correcto, pero es casi correcto. Por lo que en las características configuradas MOD, una vez más copiaré esto y te explicaré lo que he hecho básicamente. Por lo que se puede ver que este es el árbol de cerezo comprobado. Y se puede ver que lo que hace es también filtra por un bloqueo de supervivencia. Se puede ver la idea general es sólo que esta característica configurada ahora, bueno, va a tomar, ya sabes, tiene un 10 por ciento de probabilidad de tomar este lugar característica e intento y un 90 porcentaje de probabilidad de tomar este lugar característica obviamente siempre va a ser la misma característica. Entonces esto sólo un poco de un hackeo. Probablemente no sea la forma más limpia de hacer esto, pero esta es la forma en que lo encontré sin tener que agregar otra característica de lugar que una función de configuración y otra función de lugar y así sucesivamente y así sucesivamente, porque sí tiende a complicarse mucho. No obstante, siempre puedes seguir la plantilla de vainilla, también muy recomendable. Tienes que estar echando un vistazo en la generación mundial. Tienes que echar un vistazo a las clases, ¿verdad? También pueden entrar en el paquete del ratón medio, haga clic en esto y se pueden ver todas las características de aquí. Podemos ir a la colocación, podemos entrar en el paquete de colocación. Se pueden ver todas las colocaciones aquí mismo. Podemos entrar en la generación a los rasgos vegetales. Una vez más, en las características, podemos ir a las colocaciones. Ahí está esto también debe estar en la colocación es correcta. Tenemos todo esto a tu disposición. Tienes que estar echando un vistazo a esto es ahora la generación del mundo realmente se complica a los ricos en ciertos puntos. Y sólo hay que, bueno, echar un vistazo a los ejemplos de vainilla. Este es probablemente uno de los mejores recursos que tienes y está bien ahí, sea cual sea el caso, ahora tenemos la función configurada. Todavía necesitamos una característica de lugar sin embargo, solapando el paquete de características haga clic con el botón derecho en nueva clase Java llamada los menos comedores modales y agregue eso ahí. Vamos a hacer una nueva, colocados unos a otros por un tiempo exactamente lo que tenemos y eso va a estar siguiendo una una vez más, vamos a copiar sobre todo el código está disponible para ti en el repositorio de GitHub y un individuo igual de bien. O esto no es tan complicado. Se puede ver llamamos a una colocación utils dot register y luego la flor de cerezo colocada, y luego estamos tomando el árbol checado. Entonces esta es la característica configurada que devolverá ya sea esta característica de lugar o esta característica de lugar, ¿verdad? Por lo que el filtro por bloqueo de supervivencia. Eso es exactamente correcto. Eso es exactamente lo que queremos. Por lo que sólo tendremos, tendremos árboles que engendran donde se podría colocar el árbol de cerezo en flor. Esa es la idea general aquí. Y luego estamos haciendo de esto una característica de lugar agregando la colocación del árbol de decoración vegetal. Y entonces solo estamos agregando conteo extra. Entonces esto es justo el número de árboles que engendrarán. Pero si no me equivoco, lo que esto significa es que esto significa que en promedio un árbol por trozo debe desovar con una probabilidad del 10 por ciento de tener dos esporas más. Creo que así funciona. No estoy un 100 por ciento seguro, pero también puedes echar un vistazo al método de colocación del árbol aquí mismo y ver que esto toma en modificador de colocación un lugar modificando o este caso. Podemos entonces ir en el modificador de colocación y podemos ver, bueno, está bien, esto no revela nada. Bueno, vamos a presionar Control H. Y de repente podemos ver un montón de modificadores de colocación diferentes. Incluso hay filtros de colocación, que me parecen realmente geniales. Entonces puedes tener cosas como filtros de rareza, que básicamente en promedio cada uno de estos muchos trozos, creo que así es como funciona. Y luego se puede tener la colocación repetida. Algunos recuentos basados en ruido. Increíblemente cool, simplemente absolutamente frecuente, increíble. Aquí hay un montón de cosas. Una vez más, el abierto a experimentación intenta, sin, echar un vistazo al código de vainilla, cómo se usan las clases, solo recomiendo encarecidamente hacer eso. Ahora Se ha creado la característica colocada, pero de alguna manera necesitamos generarla Exactamente. Entonces en nuestro paquete mundial, haga clic derecho en nuevo paquete llamado Jen. Entonces esto forma entonces el paquete mundial. Sé realmente hablado inteligente. Y luego ahí dentro vamos a hacer una nueva clase Java llamada la generación de árboles moderna. Y entonces esto se verá como sigue. 1 segundo, copiaré aquí todo el método, pero voy a explicar todo. Entonces este es el evento de carga del bioma. Bueno, vamos a llamar a esto en un momento. Pero lo que puedes ver es que en realidad no es tan complicado, ¿verdad? Por lo que esto engendra el árbol real. ¿ De acuerdo? Lo que vamos a hacer es que sólo vamos a conseguir la clave de recursos de este bioma en particular que estamos cargando actualmente, ¿verdad? Y entonces sólo vamos a asegurarnos, hey, es este bioma sí, hacer los tipos de este bioma contienen placas, pero básicamente en todos los diferentes tipos de aviones bioma, estoy como, Sí, vamos a añadir el cerezo colocado característica justo ahí. Entonces estas dos llamadas, ¿verdad? Por lo que conseguir la base de listas, las características del lugar del proveedor para la decoración vegetal aquí es el primer paso, y luego el segundo paso es simplemente agregar nuestra característica colocada ahí dentro. Este derecho, esto, estos dos agujeros aquí, estos en realidad agregan la característica de lugar al bioma en particular. Este año, por supuesto solo filtra. En este punto, esto no debería ser demasiado loco para ti. Si lo tienes, eres como, bueno, en realidad quiero que mi árbol engendra en un bioma diferente. Solo tienes que filtrar de manera diferente, ¿verdad? Por lo que solo puedes quitarte esta declaración if. Podrías simplemente cambiarlo un poco. No debería estar demasiado loco. Todas las cosas consideradas. Y lo que vamos a hacer es, así que en nuestro ejemplo, sólo engendrará en el bioma de las llanuras o en diferentes planos biomas básicamente. Pero, ¿dónde llamamos a esto ahora? Bueno, en el paquete mundial haga clic derecho nueva clase Java llamada los eventos mundiales modernos. Y luego dentro de ahí lo que vamos a hacer es que primero vamos a añadir el modo add. Y luego diremos punto ID de suscriptor bus evento es igual a MC core Smart Touch ID. Entonces vamos a tener un vacío público estático. Sería evento de carga de bioma con un evento final de carga de bioma, evento fresco. Y esto tendrá muy importante un evento de suscripción en la parte superior aquí para esta anotación. Y luego vamos a decir generación de árboles modelo en nuestros árboles de enero y vamos a pasar en el evento. Y ahora se podría decir, esto no puede ser. Es sin embargo, todo lo que necesitamos hacer. Ahora, por supuesto, las cosas muy particulares bastante complicadas, ¿verdad? Por lo que tienes diferentes utils de colocación, diferentes cosas de colocación de árboles con otra función configurada. A pesar de que hay mucho en esto. No obstante, cuando realmente lo piensas, en realidad no es tan loco. Todas las cosas consideradas. Como dije, si quieres un filtrado diferente básicamente o quieres que tus árboles engendren un biomas diferentes, solo tienes que filtrar de manera diferente aquí. Es decir, básicamente tienes el evento de carga del bioma. Por lo que deberías tener, ya sabes, tienes la ubicación de recursos del iamb básicamente disponible para ti. Entonces, en teoría, deberías poder cambiar fácilmente el filtrado aquí. Entonces cuando entramos en Minecraft en tan solo un segundo, recuerda crear un nuevo mundo porque nos hemos metido con la generación mundial por si acaso, ya sabes, aún debería funcionar en el viejo mundo si nosotros teletransportarse lo suficientemente lejos, pero aún así por si acaso, vamos a crear un mundo nuevo y veamos si se genera el árbol. O un farmacéutico, un Minecraft, y ahí va, ya estamos desoviendo en un bioma de aviones de girasol. Entonces ahí tienes. Los árboles están desovando y bueno, que es más o menos muéstralos. Sí, está funcionando más o menos exactamente como esperarías que lo hiciera. Por lo que sólo están desovando en tipos de aviones, biomas como en realidad vuelan por ahí porque la colocación parecía un poco rara, pero en realidad no debería ser. Entonces puedes ver, o simplemente están creciendo felizmente en, bueno, los lugares que pueden, pueden crecer. Entonces esos podrían estar un poco demasiado cerca el uno del otro, pero ¿quién sabe? Es decir, a estas alturas, es bastante guay. Y una vez más, una cosa muy importante. Siempre tendrás que jugar con los números cuando se trata de la generación mundial. Porque tal vez eres como no, no, esto es demasiados árboles. Ya sabes, solo tienes que jugar con el conteo ellos, pero en general, los árboles engendran. Entonces una cosa en particular con la que puedo decir cuando se trata básicamente de la generación aquí, qué podrías hacer si , por ejemplo, quieres que tu árbol sea increíblemente raro, podrías hacerlo 0 y luego tienen algo así como una probabilidad del 0.1% de que otro árbol desove algo así. Pero por supuesto, ya sabes, solo puedes jugar con esto también es muy recomendable. Una vez más, sólo echando un vistazo a, bueno, las diferentes tres generaciones de vainilla, ¿verdad? Esto siempre es algo que sólo puedes echar un vistazo. No puedo recalcar esto lo suficiente. Tienes disponible, todas las cosas de vainilla. Basta con echar un vistazo a eso y esperemos que puedas crear la generación de árboles de tus sueños. Pero eso será todo para esta conferencia aquí mismo. Espero que hayan encontrado esta útil neuronas de lo nuevo. Si lo hicieras, te agradecería mucho que te hicieras una crítica. De lo contrario, los veo en la próxima conferencia. Entonces, sí. 94. (Generación de flores personalizada: Muy bien, bienvenido de nuevo al curso de forraje por 118. En esta conferencia, vamos a estar echando un vistazo la generación de flores de la generación de harina es en realidad, bueno, otra parte de la generación mundial va a ser muy interesante. Así que vamos a entrar en nuestra clase de entidad configurada. Y aquí, una vez más, voy a copiar, pero todo como siempre está disponible para ti en el repositorio y un individuo también se ajusta. Entonces no se preocupe ahí. Pero lo que vamos a hacer es que sólo vamos a copiar sobre las filas de tinta. Cada fila justo aquí. puede ver que en realidad es bastante largo. A ver si podría hacer algo así. Ahora. Bueno, ahí tienes. Entonces algo así. Vea estamos usando la flor de la característica una vez más para hacer una función Configurar, esta vez de configuración de parches aleatorios con algunos intentos, algunos spread aquí mismo. Entonces lo que puedes ver es básicamente, bueno si solo entro a la flor, así millimoles por click en esto y luego botón medio del ratón haga clic una vez más. Podemos, por ejemplo, ver que aquí tenemos algún defecto de harina. Podemos ver ¿qué es esto? Por lo que esta sería una lista ponderada al azar para parche de hierba. Bueno, vamos, realmente no podemos ver lo que está pasando aquí, pero podemos ver qué está pasando aquí. Una configuración de parche aleatorio, 96 spread 6, 2. Y luego tenemos este bloque simple loco loco configurado aquí y ver que hacemos una configuración de bloques simple. Y luego dentro de aquí, un proveedor de ruido y mira esta locura, ¿ verdad? Mira a este loco. Entonces básicamente solo tenemos diferentes bloques que engendramos ahí. La idea de la configuración del parche aleatorio es en realidad generalmente que le agregues múltiples flores diferentes. Bueno, en nuestro caso, en realidad solo le estoy agregando una flor. Entonces sabes qué, en realidad voy a reducir los intentos aquí para digamos 32 por si acaso. Y no como muchos de ellos básicamente serán dueños. Hagamos algo como esto. Eso va a estar bien. Ahora esta sigue siendo una característica configurada, y por supuesto necesitamos hacer una característica policial a partir de esto. Entonces, una vez más, sólo vamos a volver a la clase de entidad echando un vistazo a la flor, Vamos sólo a ir al valor predeterminado aquí. Dónde se llama ahora esto, por supuesto, en la colocación vegetal. Entonces tomemos el, nuestro cálido aquí y entonces podemos ver básicamente esta es una línea como 71. En realidad, en realidad son 70. Ahí lo tienes. Y entonces básicamente podemos ver que ponemos en gravedad una vez cada x justo aquí en colocación cuadrada, spread, mapa de altura, y luego filtro de bioma. Entonces lo que suelo hacer para básicamente preparar esto, solo copio todo y luego solo veo lo que necesito poner ahí. Bueno, lo que tengo es que tengo las siguientes características en nuestro modo colocado, básicamente podemos agregar esto aquí mismo. Entonces va a haber la rosa rosa colocada. Por lo que puedes ver también tengo esto y lo único que no tengo de la colocación es el filtro de rareza. Bueno, sólo por el bien de la discusión, esto también. Entonces, solo agreguemos el filtro derivado. Voy a copiar esto más. Voy a poner esto aquí. Porque lo genial de lo colocado es que en el lugar uno, ve este punto-punto. Esto significa que podemos poner tantos modificadores de colocación como quisiéramos dentro de aquí, esto es lo realmente genial de las cosas del lugar. Pero cuando tienes una característica configurada y haces punto colocado, puedes poner tantos modificadores de colocación diferentes como te gustaría, lo cual es realmente genial. Y ahora tenemos esta característica colocada para la flor, pero cómo vamos a engendrarla en nuestro paquete Jenna haga clic derecho nueva clase llamada la flor modo, generación de flores. Entonces una vez más, en realidad voy a copiar el, voy a copiar sobre el método justo aquí. Pero esto es más o menos exactamente lo mismo que la generación de árboles. Porque por supuesto, las flores también son decoración vegetal y sólo estamos agregando una vez más en el lugar rosa rosa justo ahí. Eso debería ser bastante autoexplicativo. Todas las cosas consideradas fueron una vez más, sólo haciéndolo en aviones. Y vayamos a los eventos mundiales MOD. Y solo llamemos a esto, no importa en este caso en qué orden los llamemos porque ambos son el mismo paso de generación aquí mismo. Tan pronto como estemos básicamente en los remos, verás que porque este es un paso de generación diferente, tendrá que realmente, ya sabes, defender el orden aquí mismo. Pero esto es en realidad. Esto es todo lo que necesitamos para la rosa rosa. Una vez más, recomiendo encarecidamente echar un vistazo a todos los ejemplos de vainilla. Hay tantos de ellos. Basta con echarles un vistazo. Más cosas felices, prueba un montón de cosas. Pruebe un montón de valores especialmente. Y luego sólo a ver lo que básicamente pasa ahí. Pero por el bien de la finalización, veamos si funciona, ¿no? Y además no olvides crear un nuevo mundo para esto porque por supuesto, una vez más, nos hemos metido con la generación mundial. Entonces veamos si podemos encontrar nuestras flores o ofensas en un avión es mi casa y lo están, ya lo son. Hemos encontrado o rosas rosas desovando en el bioma de las llanuras. Aquí hay un par de más. Y vamos a ver, hay aún más ahí. Encontremos un poco más. Son un poco más raras de lo que esperaba con 32, pero eso por supuesto está totalmente bien. Una vez más, solo puedes ajustar los números. Creo que aquí también hay tres unos. Sí, ahí están también. Eso es bastante guay. Entonces eso en realidad es realmente impresionante y es más o menos cómo funciona la generación de flores. Una vez más, recomiendo encarecidamente, echándole un vistazo a todas las cosas de vainilla. Y solo tendrás que jugar con los números hasta que se lo pongas bien a una generación que te gustaría. Pero de lo contrario esto sería todo para esta conferencia aquí mismo. Espero que esto te resulte útil y se entere de lo nuevo. Y te veré en la próxima conferencia sin embargo. Sí. 95. (Generación de minerales personalizados: Muy bien, bienvenido de nuevo al curso de fragua para 118. Y en esta conferencia vamos a estar agregando personalizado o generación a Minecraft por lo que todos habéis estado esperando. Yo bueno, creo que sí Al menos la ordenación es una de ellas básicamente siempre la más solicita un tema de muchos de ellos, básicamente los que definitivamente voy a estar haciendo básicamente. Y mientras, ¿cómo hacemos esto o generación, a dónde vamos? Bueno, en primer lugar, configuró función nuevamente, y aquí dentro copiaré más dos cosas y luego te explicaré por supuesto también. Pero el número 1, necesitamos una lista o configuración de un estado de bloque objetivo. Ahora lo que el FREC es esto, bueno, necesitamos esto porque si tenemos un orden o configuración en particular, en realidad necesita estos minerales porque necesitamos saber, vale, en qué estado de roca debe colocarse, piedra, en la que los bloques se debe colocar en un sueño profundo. Entonces esto es básicamente por lo que necesitamos esta lista aquí mismo, tan básicamente tan simple como esa. Y luego tenemos la función configurada, su robot. O ahora por supuesto necesitamos seguir haciendo de esto una característica colocada. Pero esto ya como una, algo interesante y este es el tamaño. Entonces estos deberían ser los lados de la vena promedio si no me equivoco. Así que ten eso en mente aquí mismo. Y también podemos echar un vistazo al pozo o característica aquí mismo. Entonces botón del ratón medio haga clic en esto y luego ratón medio, botón del ratón medio haga clic en esto y luego podrás ver esto se utiliza todo en las características del orden. Pero sólo echemos un vistazo, por ejemplo, a algo que es más interesante, el o Redstone por ejemplo. Entonces todo Redstone está configurado con una nueva lista aquí mismo de mineral de redstone y Redstone salta tarde o bien, lo suficientemente justo. Y ahora la pregunta es, ¿dónde está este uso? Bueno, esto usado en la colocación de pedidos. Para que se pueda ver el mineral de redstone. Y lo que también encontrarás es que hay dos colocaciones diferentes para el mismo o incluso tienes, o diamante o diamante grande o pájaro diamante. Por lo que es muy importante que solo puedas agregar múltiples para el mismo o como diferentes características de lugar que tengan diferentes funcionalidades asociadas a ellas. Por lo que estamos mirando a 41 y 42. Entonces, sólo vamos a entrar aquí. Podemos ver que se trata de una común o colocación, común o colocación. Y luego incluso hay un método raro o de colocación que básicamente llaman. Vamos a ver algo así en un momento. Pero se puede ver que esto como una colocación de rango con este uniforme y un triángulo como se puede ver. Por lo que hay diferentes tipos de colocación básicamente para el rango de altura. Y entonces básicamente solo dices, vale, de qué rango a qué rango debería el alcance. Y esa es más o menos la idea ahí. Por lo que es bastante genial y una vez más puedes simplemente copiar cosas, probar un montón de cosas, y luego ver lo común o la colocación de solo botón central del ratón. Haga clic en esto. puede ver que es solo un método privado. Lo que realmente tenemos que hacer es que realmente tenemos que copiar sobre los tres métodos donde al menos eso es lo que voy a hacer. Voy a copiar sobre todos esos métodos, haga clic derecho en copiar. Y luego vamos a entrar a la clase de entidad y voy a hacer una clase de modo personalizado o de colocación. Y luego sólo vamos a copiar sobre los métodos aquí dentro y vamos a hacer que todos sean públicos para que básicamente podamos usarlos para nuestros propios minerales porque, bueno, sólo están haciendo de nuestras vidas un minúsculo un poco más fácil, no un 100 por ciento, pero sólo un poquito. Y luego después de que hayamos copiado eso, bueno, ahora podemos usar la función Configurar para hacer una función de lugar. Entonces en nuestras características colocadas modelo, lo que vamos a hacer es que sólo vamos a copiar esto y voy a explicar por supuesto otra vez. Entonces ahí lo tienes. Tenemos un cobalto o colocado, que una vez más vamos a registrar con el cobalto o colocar aquí. Y entonces sólo vamos a tomar el cobalto o que tenemos encontrar aquí mismo, la función Configurar. Y vamos a hacer que se coloque con lo común o colocación. Este año deberían ser las venas promedio por tronco tal y como lo entiendo ahora mismo. Y lo que podrías estar diciendo: Espera, ¿cómo lo llevas al 80 negativo? Bueno, con un triángulo, pero ¿cómo funciona eso? Bueno, lo que pudo haber visto como pudo haber visto este cuadro, que especie de demuestra a qué alturas engendra ahora el naranja. Y la idea es que cuando se hace un triángulo aquí, el punto inferior va a estar en 80 negativo y el punto en la parte superior va a estar en 80. Y entonces el triángulo va a llegar a un punto en básicamente 0. Entonces, en teoría, lo que debería pasar es que la mayoría de cobalto o debe engendrar a, a 0 y luego debe llegar cada vez menos y menos y menos. Entonces el, ya sabes, básicamente va a ser compensado aquí. Entonces esto es básicamente un punto de hacer la colocación de hortensias y el botón central del ratón. Haga clic en esto y en realidad se puede ver que también hay agregar aquí.gov y luego una diferente proveedores de altura. Ahora echa un vistazo al hipervisor. Entonces voy a presionar Control H. Y ahí está el sesgo al fondo, muy sesgado a la altura trapezoide inferior, altura lista ponderada uniforme y altura constante. Funcionalidad absolutamente increíble que tienes. Puedes hacer tu desove de maneras muy particulares si quieres que recomienden mucho echarle un vistazo a esto, muy recomendable jugar con esta amina básicamente como hasta que tengas tus remos exactamente como tú quieres que lo hagan. Ahora lo voy a hacer es realmente voy a copiar la generación de árboles por aquí. Entonces lo voy a arrastrar al mismo paquete mientras mantengo el control. Y vamos a renombrar esto mañana o generación. Simplemente vamos a renombrar esto también , generar ors aquí. Y entonces en lugar de la decoración vegetal, ahora se trata de ors subterráneos. Y en realidad también vamos a sacar esto de la declaración if porque r ors, digamos sólo por el bien del argumento, en realidad queremos en todas partes, pero vamos a decir cobalto o colocado, y que es todo. Ahora la ración de origen aquí está prácticamente hecha. Ahora esto lo va a colocar en cada bio. Ahora esto no debe colocarlo en el inferior o en el final porque la característica de cobalto o configure tiene una lista aquí mismo de piedra reemplazable y de estado profundo reemplazable y no de ni de rack inferior ni en piedra reemplazable. Y ni siquiera creo que necesariamente existan. Otro naufragio existe como prueba de regla, otro o reemplazable también, lo que el resto no creo que exista ahí. Entonces eso es algo a tener en cuenta. Entonces las cosas de la piedra final no existen, ¿verdad? Y ahora este método sólo tiene que llamarse aquí mismo. Ahora lo que es muy importante es que tiene que llamarse por encima de los otros dos. Porque si realmente echamos un vistazo al paso de generación justo aquí, se puede ver que los ors subterráneos ocurren antes de la decoración vegetal. Por lo que básicamente comienza desde arriba hacia abajo. Este orden tiene que estar bien, básicamente mantenido. Y aquí ni siquiera necesitamos los tipos y en realidad ni siquiera necesitamos la llave porque sólo vamos a ser como, Sí, Sólo quería en cada bioma que va a estar bien. Entonces quiero decir, eso es más o menos todo que necesitamos hacer por nuestro cliente. O una vez más, jugar con los números. Echa un vistazo al código de vainilla y echa un vistazo a los valores de vainilla. Recomiendo muy bien. No puedo recalcar esto lo suficiente. Solo tienes que jugar con eso y jugar un poco con los números. Y ahora veamos, después de haber creado un nuevo mundo, por cierto, si nuestro cobol o su lugar en el mundo. O si respuestas en Minecraft y como puedes ver, algunas o aquí, ya generaron perfectamente bien. Eso fue sólo un Eco. Hay un poco de una vena más grande. Yo en realidad tenía ocho de ellos, sin embargo. Todo aquí funcionando a la perfección. Y esto ya concluirá esta conferencia aquí mismo. Espero que te haya parecido útil esto y hayas aprendido algo nuevo. Te veré en la próxima conferencia. Entonces, sí. 96. Exportar tu Mod: Muy bien, bienvenido de nuevo al curso de forraje para equipo ganador y esta muy corta conferencia, solo te mostraré rápidamente cómo puedes exportar tu modelo como un archivo JAR. Entonces vamos a abrir la terminal y pongamos en barra de puntos, Gradle w build. Y eso es más o menos todo lo que necesitas hacer. Entra. Y entonces básicamente crea el, bueno, el archivo JAR. Lo que tienes que hacer entonces es que tienes que ir a tu carpeta Build, haz clic con el botón derecho Abrir en Explorer. Entonces en una ventana de explorador se abrirá y solo mostraré esto rápidamente. Entonces construir. Y luego en la carpeta libs aquí mismo, curso MC, esta es la versión definida dentro de tu archivo build.gradle. Este es básicamente el nombre que tomará, y luego puedes tomar esto, ponerlo en la carpeta de tu modelo, puedes ponerlo en un subido para maldecir forraje, cosas así. Y entonces todo aquí debería funcionar. Genial. Sí, eso prácticamente ya lo es para esta conferencia aquí y después. Entonces si estás viendo esto en el futuro, deberías tener otra sección aquí con temas adicionales que sumaré voluntad en las próximas semanas y meses básicamente con cosas diferentes como barcos, Definitivamente voy a querer seguir agregando cosas así. Así que mantente atento a eso si estás viendo esto bastante temprano a cuando el curso realmente salió y probablemente nada estará ahí todavía. Bueno, no se preocupe. Definitivamente se agregarán nuevas conferencias. Por lo que espero que esto te resulte útil y aprendas algo nuevo. Y ojalá te vea en las próximas conferencias también. Entonces, sí. 97. (temas adicionales) Actualización de forja (1.18.1): Muy bien, bienvenidos a esta conferencia donde vamos a actualizar forge a la versión más reciente. Hemos actualizado forjado antes en una conferencia previa. Pero sí tiene sentido si vas a añadir un montón de cosas que haremos en las próximas conferencias para básicamente actualizar forjar de nuevo. Y por lo general también es bueno simplemente mantener tu MOD básicamente actualizado. No suelen haber muchos cambios, pero sigue siendo bueno tener en cuenta. Para esto. Por supuesto, tenemos que cambiar la dependencia real aquí mismo en nuestras facturas DOD Gradle expediente ahora a qué? Para tener que cambiar este bienestar que sólo vamos a abrir el micro ford.net. Y una nota muy importante del futuro aquí mismo, recomiendo encarecidamente usar una versión 1181 para los temas adicionales. bien la mayor parte de esto seguirá funcionando si actualizas a uno 1800s a la generación mundial y algunas de las cosas fiscales no funcionarán. Recomiendo encarecidamente aquí realmente actualizando todavía a una versión 181, uno 1800s. Y la actualización y todos los cambios serán cubiertos en una conferencia posterior. Esto va a llevar un poco de tiempo porque en realidad hay algunos cambios significativos. Entonces es lo que es, pero la mayoría de las cosas funcionarán. Es sólo generación mundial e impuesto, como dije, por favor actualícese a todavía a uno 1800s y luego entrará 1182, esperemos unas semanas cuando todo se haya resuelto entonces ojalá yo podrán realizar una sección adicional donde voy a través del proceso de actualización así como cada uno de los cambios individuales también. Así que tenlo en cuenta, por favor. Muchas gracias. Y luego asegurándose de que estemos en la última versión y se puede ver descarga más reciente, Esto va a ser 39079. Y hasta podemos echar un vistazo, por ejemplo, el registro de cambios aquí. Podemos ver algunos de los cambios que han ocurrido entre versiones. Bastantes en realidad, porque todavía estamos bastante atrasados en la versión real del curso. A lo mejor te has actualizado en el camino también. Eso también podría ser algo que se podría hacer. Pero por el momento, básicamente vamos a actualizar ahora a un 3979. Y si estás viendo esto en el futuro, lo cual es muy probable que tal vez tu versión va a ser un poco más alta ahí arriba. Totalmente bien. Entonces solo te actualizas a esa. Por lo general no debería haber demasiadas discrepancias entre ellos. Así que una vez más, esta es la versión que vamos a actualizar dos, y luego solo carga el cambio de chica, Gradle cambia aquí en la esquina superior derecha, básicamente haciendo clic en el pequeño elefante es que no aparece y siempre se abre a la pestaña Gradle y luego haga clic en este botón aquí mismo, hace lo mismo. Y como de costumbre, debería tardar aproximadamente un minuto o dos como máximo. Por lo general, si no debería haber demasiadas cosas, probablemente en realidad va a ser muy rápido para mí porque ya he hecho esto. Por supuesto. Si lo has hecho anteriormente a la misma versión de la que ya ha descargado todas estas cosas. Pero entonces podría ir un poco más rápido, pero no debería tomar demasiado tiempo. Así que esperemos un segundo. Una vez más, si te estás poniendo rojo aquí, siempre y cuando sea sólo info y advierta, no te preocupes en absoluto. Es solo error que es una especie de problema. Y luego por supuesto, al final del día, si hay una edificación fracasada, Eso tampoco va a ser bueno. Pero si hay un éxito construido, casi se puede pasar por alto cualquier cosa. Eso está escrito aquí, eso es en rojo. Aquí estamos construidos con éxito en dos minutos, 31 segundos. Como dije, a veces toma un poco más de tiempo, a veces no lleva demasiado tiempo. Ahora nos hemos saltado muchas versiones, por lo que probablemente había mucho que básicamente actualizar allí. Pero aparte de eso, eso es más o menos todo lo que tenemos que hacer para actualizarlo. Ahora, normalmente cuando lo has actualizado, si no hay demasiados cambios, todo debería funcionar. Yo creo que aquí todo debería funcionar. Entonces sólo vamos a dejarlo correr y ver si estamos recibiendo algún error. Podría haber terminado uno, no estoy 100% seguro. No creo que haya nada de qué preocuparse en este momento. Pero claro que aquí el caso sería simplemente ejecutarlo, ver si tal vez hay una flecha, tal vez, no sé algo en los alimentos, por ejemplo, cambio. Lo harías, por supuesto que entonces lo verías y luego podrías simplemente cambiarlo ahí también. Pero en este caso, no creo que nada haya cambiado drásticamente. Para que una vez que todo se ha descargado aquí, se puede ver que vuelve a descargar los activos, básicamente descargando algunos de los recursos una vez, una vez más , básicamente, para que todo esté hasta- fecha. Porque por supuesto que hemos actualizado la primera carrera después que hayas actualizado también podría tomar un poco de tiempo, pero no te preocupas. Ya se puede ver que el cliente de ejecución está en realidad pasando por la tarea ahora se está ejecutando básicamente. Se puede ver que estamos pasando por algunas cosas. Aquí mismo. Dice normal. Y luego en la otra pantalla, la ventana del microbio ya está empezando aquí. Sólo vamos a darle la vuelta a esto y todo debería estar funcionando bien. Por lo que debería estar viendo la pantalla del menú en tan solo un momento. Y ahí estamos. Sí, ahí estamos. Ahí vas. Entonces todo sigue funcionando muy bien. Mods, curso MC todavía está aquí. Entonces todo está funcionando muy bien y no se preocupe en absoluto que hayamos actualizado la nueva versión forraje. Y ahora podemos básicamente pasar por las conferencias adicionales que van a ser muy, muy interesantes. Entonces hay un buen número de temas interesantes que básicamente vamos a discutir en las próximas conferencias. Algunos de los cuales definitivamente son como personalmente mis favoritos. Hay algunas cosas realmente, realmente malditas geniales aquí, pero eso sería más o menos para esta conferencia aquí mismo. Uno muy corto solo para actualizar básicamente. Y luego podemos pasar por el resto de las conferencias. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en la próxima conferencia. 98. (temas adicionales) agregando gota XP a los bloques: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y luego esta conferencia, vamos a estar echando un vistazo a cómo puedes agregar gotas experimentadas a tus o bloques. Ahora, se podría recordar que hay algunos bloques específicos o como Esmeralda, por ejemplo, que cuando la mía experimentó realmente cae después de extraerla. Se supone que, por ejemplo, tener el cobalto crudo en nuestro caso, caer y luego después de que lo olías, obtendrías la experiencia. Ahora bien, este es en realidad un proceso bastante sencillo. Entonces lo que podemos hacer es simplemente presionar la tecla Mayús dos veces y buscar el o bloque, asegurándonos de que marcamos esta casilla aquí mismo. Y luego vamos a revisar éste. Y se puede ver que podemos simplemente para el bloque tiene en un uniforme int aquí mismo. Y este va a ser el rango de experiencias que va a caer. Aunque. En realidad es tan fácil como ir a tu, por ejemplo, vamos a elegir el cobalto o aunque no debería tener, esto es solo un ejemplo. Vamos a cambiar este bloque a o bloquear, asegurándonos de que escribo esto correctamente. Ahí vas. Voy a presionar la tecla Tab para autocompletar. Y ahora nada debería cambiar. Esto todavía debería funcionar, pero tenemos que agregar un segundo parámetro aquí. Y eso va a ser un trabajo uniforme que podrías ver. Y luego vamos a decir, por ejemplo, algo así como dos o, o, y luego va a ser una distribución uniforme entre 24. También podemos pasar el puntero sobre la oferta. Creo que esto debería, en realidad no nos ofrece ninguna idea de cómo funciona esto, desgraciado, pero eso está bien. Creo que ambos son inclusivos. Y también podemos por supuesto comprobar si un botón central del ratón haga clic en esto de nuevo, y luego el botón central del ratón haga clic en esto. Puedo ver, por ejemplo, en la Esmeralda o deberíamos poder ver que lo que están dando ahí es, por ejemplo, aquí entre 37 y lo mismo va para la esmeralda de sueño profundo. Y entonces creo que hay algo más. Entonces por ejemplo, en el diamante o sí, claro que también sería el caso. Este también se pone entre 37. Por lo que ahí básicamente puedes elegir lo que quieres hacer. Así que vamos a hacer 37 también. ¿ Por qué no? Y eso es más o menos todo lo que necesitas hacer. Y ahora la experiencia bajará después de esto, básicamente se extrae este bloque. Ten cuidado por supuesto, que si haces esto en non o bloques. Entonces si yo fuera a hacer esto en las escaleras por ejemplo, y por supuesto recuperando la cuadra real. Quiero decir, las escaleras serían realmente un poco duras, pero quizá escojamos otra. Ese es un mal ejemplo. En realidad, ya sabes, cualquier otro bloque que sea sólo un bloque que digamos los tablones, por ejemplo, si hiciera esto en nuestra cuadra y devolvería cierto número de experiencia ahí, puedo acaba de ponerlo abajo de nuevo, obtener más experiencia, ponerlo nuevo, obtener más experiencia. Entonces esto definitivamente solo debe usarse para, o bloques, o cuatro bloques que no se caigan. Esa es la idea general. Pero porque esto es todo lo que tenemos que hacer por el bien de finalización, vamos a ver si funciona. O nos encontramos de vuelta en Minecraft y solo cosechemos algunos de los pedidos. Y como se puede ver, ahí va. En realidad estoy obteniendo experiencia al minarlos. Como dije, este ejemplo es por supuesto, un poco no demasiado bueno, claro en este caso porque cuando realmente olíamos abajo el cobalto o volveríamos a experimentar. Pero tal vez eso es realmente algo que quieres agregar. Quién sabe. Pero como se puede ver, esto es lo fácil que puede ser agregar las gotas personalizadas con experiencia a su cliente o eso ya es todo para esta conferencia están aquí mismo. Espero que hayas encontrado esto útil y hayas aprendido algo nuevo. Te veré en la próxima conferencia. 99. (temas adicionales) agregando una pantalla de menú personalizado: O doy la bienvenida de nuevo al curso de forraje para 118. Y en esta conferencia vamos a estar agregando una pantalla de menú personalizada a Minecraft. Ahora, es muy importante que esta conferencia y la próxima conferencia sean una especie de parte uno y segunda parte. Porque en la próxima conferencia en realidad vamos a sumar conflictos a Minecraft. Y cuando agregas una pantalla de menú personalizada, definitivamente 1, 1000% tiene que tenerla configurable. De lo contrario, básicamente tu MOD está inmediatamente lista negra por cualquier paquete de mapas en absoluto. Porque obviamente un pack de marcas suele tener su propia pantalla de menú y quieres esto configurable. Vamos a pasar por esto sin embargo. Y primero que nada comencemos con la pantalla del menú. En esta conferencia, solo vamos a reemplazar los lados giratorios de la montaña, por así decirlo, en la pantalla del menú nuestra propia pantalla de menú, solo una imagen. Y para eso vamos a entrar en nuestro paquete util, haga clic con el botón derecho en nueva clase Java. Y esta va a ser la pantalla de título de la empresa. Ahí vas. Y voy a estar copiando sobre todo el código aquí, pero todo aquí está, por supuesto, una vez más disponible para ti en el repositorio de GitHub e individual igual de bien. Y solo echaremos un vistazo a lo que es todo esto. Número uno, tenemos esta ubicación de recursos de pantalla de inicio es exactamente nuestra pantalla de menú de algodón personalizada que vamos a básicamente bien imponer allí o dibujar en la pantalla del menú. Y luego también tenemos una ubicación de recursos para el logotipo de Microsoft ya que esto tiene que ser dibujado bien, algo así por encima de la pantalla. Es un poco raro, pero básicamente voy a explicar en el método render aquí. Entonces, el método render, vamos a pasar por unas cuantas cosas. En primer lugar, vamos a llamar al super en la pantalla normal de marea. Lo que entonces sucede es que son completamente normales se dibuja la pantalla de marea. Entonces necesitamos este ancho y alto entero. Solo necesitamos esto para nuestra pantalla de título personalizada. Permítanme dibujar nuestra pantalla de título personalizada, básicamente por encima de la pantalla normal de marea. Y luego vamos a dibujar también el logotipo de Microsoft. Eso es muy importante. Entonces aquí acabamos de renderizar el menú principal. Esto es solo de Forge para que todo salga bien aquí. Déjame dibujar la cuerda. Esta es la cadena de derechos de autor en la esquina inferior derecha. Esto es muy importante. No elimines esto. Esto es más o menos muy importante que esto realmente tenga que estar ahí. De lo contrario, no estoy 100% seguro, pero podrías estar cometiendo una especie de fraude de derechos de autor si no tienes esto. Por lo que deberíamos tener esto definitivamente esto. Los widgets aquí son solo los fondos para cada uno de los botones en el menú principal. También podemos echar un vistazo al método de pantalla de título personalizado de dibujo. Para que puedas ver que realmente no es tan loco. Básicamente solo estamos habilitando un ajuste de textura, el tipo de como un poco de material habilitante. Y estamos poniendo la textura real a la pantalla de presentación aquí y luego la estamos dibujando. Entonces la sangre básicamente dibuja esta textura que hemos establecido en el sistema Render. Y luego después de eso se hace, luego dibujamos el logotipo de Minecraft. Entonces al ajustar la textura al logotipo de Microsoft, estamos entonces en el siguiente blanqueador básicamente dibujando la microflora. Esa es la idea general. Y este es solo código tomado de la clase normal de pantalla Tidal misma. Entonces esto no es nada demasiado loco. Eso es más o menos todo lo que hay a ella. Honestamente, realmente no debería haber esa locura de las cosas. Si quieres una pantalla de título completamente increíblemente personalizada con cosas como completamente locas, entonces solo tienes que ir y trabajar a través de algunas de esas cosas. Por lo general, lo que la mayoría de la gente solo quiere es reemplazar la imagen de fondo y eso es exactamente lo que vamos a mostrar aquí. Ahora esto va en la GUI de texturas, menú de fondo o en la carpeta de fondo. Y entonces se va a llamar Copan menu dot re pack. Y eso es exactamente lo que vamos a conseguir realmente esto en la GUI y luego hacer clic derecho nuevo directorio llamado background. Entonces solo voy a copiar sobre la imagen, que por supuesto también está disponible para ti si quieres probar esto. Y no vamos a echar a perder cómo se ve, sólo que ahora no, pero va a parecer realmente genial. Podría decírtelo. Entonces, ¿qué hacemos después de eso? Bueno, ahora necesitamos configurar de alguna manera esta pantalla de título y vamos a hacer esto en la clase de eventos. Entonces en la clase de eventos de modo, vamos a copiar sobre un método que es muy, muy sencillo. Esto tampoco es demasiado loco, pero por supuesto también está disponible para ti. Vamos a usar el evento abierto en pantalla como se puede ver. Y vamos a comprobar si la pantalla que actualmente estamos tratando de abrir es la pantalla de título y en realidad aún no es nuestra pantalla de título de cuenta. Entonces sólo vamos a reemplazarlo o vamos a hacer una nueva pantalla de título de algodón y enviársela. Esto es más o menos todo lo que hay a ella. Este es todo el código que necesitamos. Entonces esto quizás sea un poco más complicado, pero en general ojalá algo comprensible lo que está sucediendo aquí en una especie de visión general. Y entonces este método y este evento en realidad deberían ser muy simples. Esto no es nada loco. Y sí, eso es más o menos lo que necesitamos para esta conferencia aquí mismo. Entonces supongo que veamos si funciona. Pero el sol es por supuesto importante ver a Minecraft arrancando. Así que veamos si nuestra pantalla de azulejos personalizados está funcionando. Estoy muy seguro de que lo hará. Y ahí estamos, la pantalla de título personalizada está funcionando exactamente como esperarías que lo hiciera. Todavía tenemos el aviso de copyright. Incluso tenemos las cosas de forja en la esquina inferior izquierda. Tenemos el Minecraft, básicamente todo aquí, que es exactamente lo que quieres. Todos los botones siguen funcionando totalmente bien. Así que todo funciona increíble. Y no voy a decir nada de nada, pero esto podría ser sólo un poco de un spoiler de escabullida, lo que podría venir antes. Pero de todos modos, esto es realmente genial y me gusta mucho la imagen de fondo que se hizo por tu fila. El, por supuesto va a estar vinculado en el expediente de créditos también. Entonces esto es realmente alucinante impresionante. Pero eso es en realidad lo fácil que es agregar el grito de título personalizado, como dije, recomiendo encarecidamente ver la próxima conferencia inmediatamente después para ver cómo podemos agregar algunos personalizados sin fijar. Porque sumar el conflicto para hacer esto bien, básicamente configurable es increíblemente importante. Yo solo, no puedo exagerar esto realmente. Por favor añada aquí el conflicto. De lo contrario, es básicamente tu marr nunca va a ser utilizado por ninguna marca nunca. Pero sea cual sea el caso, esto es todo por esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Si lo hiciste, te agradezco mucho una reseña de ti. De lo contrario, te veré en la próxima conferencia. 100. (temas adicionales) añadiendo configs básicos a medida: Muy bien, bienvenidos de nuevo al curso de forraje para 118. Y en esta conferencia vamos a estar agregando conflictos personalizados a Minecraft. Ahora bien, este no es sólo un tema muy importante para la pantalla o la pantalla de título personalizada que hemos implementado en la última conferencia. Pero también es un tema muy importante y también muy solicitado. Entonces, antes que nada, tenemos que pensar en dos cosas, y eso es lo común y los conflictos con los clientes. También hay conflictos del servidor, pero por el momento, nos vamos a preocupar por el conflicto común y el cliente aunque, cuando pensamos en nuestra pantalla de título personalizada, dónde existe esto ya que esto existe tanto en el servidor como en el cliente, o sólo en el cliente. Entonces la respuesta obvia es por supuesto, que esto solo existe en el cliente. Para quienes han dicho, claro que sólo está en el cliente. Eso es muy bueno para quienes han dicho, bueno, está en ambos. Bueno, pensemos en esto. ¿ El servidor, si estamos ejecutando un servidor, el servidor se preocupa por la pantalla del menú de opciones multijugador para un solo jugador. Ahora claro que no lo hace. Incluso podemos ver esto si hacemos clic en el botón central del ratón en la pantalla de título aquí, podemos ver esto es sólo en este cliente. Esto significa que básicamente esta clase solo se ejecuta en el hilo del cliente, en ningún otro lugar. Por lo tanto, para básicamente encender o apagar nuestra pantalla de título personalizada, vamos a necesitar implementar conflictos de clientes. Y luego también voy a mostrar uno o dos ejemplos de algunos conflictos comunes. Esos serían conflictos que son tanto para el cliente como para el servidor. Ahora en ese caso, común es algo interesante porque a veces los conflictos comunes básicamente son tanto para el cliente como para el servidor. Y luego también hay solo conflictos de servidor. Pero los vamos a dejar fuera por el momento después de que hayamos visto cómo se puede sumar el cliente y los conflictos comunes. Básicamente puede agregar los conflictos del servidor también. Tenga en cuenta también que no puede configurarlo o no puede hacer configurable cada pieza determinada de código. Por ejemplo, algunas de las cosas que realmente no son tan fácilmente configurables es, por ejemplo, la durabilidad aquí de la varilla de espiga. A modo de ejemplo, se puede imaginar por qué solo podemos reemplazar esto un número configurable que no funciona del todo. Entonces podría haber algunas soluciones alternativas, pero normalmente cuando estás registrando cosas, por lo que en este momento estamos grabando el método de registro. En todas partes donde se está registrando algo. Por lo general, no quieres cambiar esos números. Es muy difícil decir a veces dónde puedes y no puedes hacerlo. Simplemente recomiendo encarecidamente si realmente quieres probar algunas cosas ahí, pruébalo, ver si funciona o no. Porque a veces pueden ser un desajuste del servidor y del cliente si el cliente tiene un conflicto diferente, diferente al servidor. Y por lo tanto esto podría ponerse un poco raro. Así que solo tenlo en cuenta. No necesariamente se puede configurar todo en nuestro paquete de cursos MC. Vamos a hacer clic derecho en nuevo paquete llamado el paquete conflicto. Y entonces en realidad copiaré más de dos de las clases que vamos a necesitar. Y en realidad voy a pasar por todo el código está por supuesto disponible para ti en el repositorio de GitHub en un individuo igual de bien. Entonces no se preocupe en absoluto. Y esto tampoco es tan loco. Empecemos con los conflictos del cliente aquí mismo. Podemos ver que lo que vas a necesitar es un constructor de especificaciones de conflicto, que es igual a nuevo constructor. Y entonces este conflicto spec aquí mismo. Y luego puedes ver que estás en la lista son básicamente todos nuestros valores de configuración estática. Se puede ver que es un genérico, por lo que sólo vamos a poner en un tipo de datos diferentes, diferentes básicamente, que son en estos casos lo que queremos configurarlo o configurar. Y luego se puede ver en este bloque estático de aquí mismo, solo tener un constructor para empujar, es justo lo que está escrito en la parte superior del archivo de conflicto. Y entonces esto se está poniendo para ver, en primer lugar, un común. Entonces esto es si se reemplazará o no la pantalla de título predeterminada . Y entonces vamos a definir esto. Este es solo el nombre de la variable, por así decirlo, y este es el valor predeterminado en este caso. Y luego mirando los conflictos comunes aquí, se puede ver que aquí realmente vamos a hacer configurables las venas por trozo y el tamaño de las venas del cobalto. O esto es muy interesante porque esto también es algo que a veces podría ser configurable. O quieres que esto sea configurable, lo cual es muy interesante. Entonces lo que vamos a hacer es antes que nada, vamos a usar los conflictos de los clientes, pero tenemos que, por supuesto, también registrarlos. Entonces, ¿cómo registramos aquellos en nuestra clase mod curso MC, en realidad solo necesitamos agregarlo a las cosas. Y esto va a ser después de esto. Lo que vamos a hacer es que vamos a decir, vamos a conseguir el mod cargando en text dot, conseguir esa configuración de registro. Vamos a decir datos de la configuracion del motor. Se pueden ver tipos ya ahí. Vamos a elegir el tipo de cliente para el primero. Vamos a decir MC. Conflictos de clientes que spec. Y entonces el nombre del archivo aquí sólo va a ser, debería ser tu MOD id, cliente de guión. Y entonces muy importante que Tamil, este tiene que ser un archivo HTML de punto. De lo contrario no va a funcionar. Entonces podemos duplicar esto presionando Control D. Y voy a cambiar esto a lo común aquí mismo. Y luego vamos a cambiar esto al curso MC, conflictos comunes. Y entonces muy importante que cambiemos este nombre también. Ya se puede ver tenemos ambos, bueno, en fijos registrados y eso es en realidad todo lo que necesitamos hacer para registrar estos conflictos. Entonces eso es todo lo que hay a ella. Ahora, ¿cómo los usamos? Bueno, es bastante sencillo. Tenemos este campo justo aquí. Así que vamos a entrar en nuestro código. En realidad no es la pantalla del título de la columna. En realidad queríamos hacer esto en la clase de eventos MOD aquí mismo en esta declaración if, básicamente queríamos decir conflictos de cliente de curso MC, esa pantalla de título personalizado dot get. Y entonces va a terminar con esto. Entonces esto tiene que ser cierto, y todo esto también tiene que ser cierto. Y entonces nuestra pantalla de título va a ser reemplazada solo por el sake de finalización, también vamos a usar inmediatamente la vena para cosas del tronco. Entonces esto va a ser en el mundo. El primero va a estar en el lugar características que hace. Esto va a ser las venas por tronco. Entonces esto va a ser curso MC, conflictos comunes dot Paine per chunk dot get. Acabo de leer. Sí, eso está bien. Y luego el otro debe estar en las características configuradas. Así que este va a ser el, este de aquí mismo. Este es el tamaño de la vena para esto sería el curso MC conflictos comunes tamaño de vena que consigue, lo que vamos a hacer en realidad es que vamos a dejar que esto se ejecute una vez para que los archivos aquí generen, por lo que entonces los archivos fijos reales regeneran y luego vamos a cambiar los valores dentro de ellos. Pero vamos a ejecutar esto una vez y luego veamos que se generan los archivos de conflicto. En primer lugar, se puede ver que Minecraft se ha cargado y la pantalla del título sigue ahí porque por supuesto el valor predeterminado aquí era cierto. Y lo más importante, ahora hemos generado los archivos de configuración. Están bajo la config de carpeta R1 y ahí vas. Curso Mc cliente y curso MC común. Si los abrimos, se puede ver que básicamente estamos obteniendo exactamente esto. Ves conflictos para MC core smart, y luego si la pantalla de título predeterminada será reemplazada. Cambiamos esto a falso ahora y salvándolo. Y luego aquí, vamos solo, vamos a volver absolutamente locos en esto solo para que tengamos esto. Así que vamos. Así que por ahora sólo vamos a hacer muchas venas por trozo, un montón de tamaño de venas, sólo para que en realidad podamos ver que esto va a funcionar y esto va a afectar a la generación mundial. Y sí, eso es más o menos todo lo que tenemos que hacer para cambiar los conflictos. Estos son entonces por supuesto también disponibles para los usuarios, para los jugadores, y luego pueden cambiarlos como quieran. Así que definitivamente asegúrate de tener los comentarios adecuados aquí. Va a haber éste justo aquí. Como se puede ver, esto es lo que se ha escrito como comentario ahí. Entonces eso es más o menos todo lo que necesitas hacer. Así que ahora después de haber cambiado los conflictos, veamos si, por ejemplo, en primer lugar, la pantalla del título ha cambiado y luego también la generación mundial. De acuerdo, para que como se puede ver el número uno, la pantalla de título real ha cambiado de nuevo a la pantalla normal de marea. Pero esto es muy interesante. Ahora vamos a generar en realidad un nuevo mundo aquí y ver si o no Entonces en la hora de generación mundial, cobalto o se va a mostrar todos de una manera más formas que antes. O si responde en Minecraft. Y como pueden ver, no tuve que bajar muy lejos para encontrar una abundancia de la o, de la derecha. Se puede ver que no sólo las venas reales son masivas, hay muchas de ellas. Como se puede ver, se trata de dos venas diferentes, tres venas diferentes como justo al lado del otro. Y luego se puede ver que sólo sigue y sigue. De hecho puedo volver a ir al modo espectador. Y vas a ver que hay muchas de esas venas. Entonces puedes ver claramente que a pesar de que esto definitivamente no es algo que necesariamente quieras tener, pero definitivamente es configurable. Y esto es más o menos exactamente lo que esperaríamos de esos o conflictos para luego hacer. Así que eso es realmente genial. Pero hay otro método que podríamos ser capaces de llamar y que es el definido en una lista definida pero definiendo el rango, que también es bastante interesante. Entonces éste básicamente aquí entonces hace lo siguiente. También se puede definir un valor mínimo y un máximo. Por lo que esto también podría ser muy interesante e importante para ti decir básicamente, ya sabes, tal vez el número de venas por tronco y el tamaño de las venas se debe mantener en ciertos valores. O tal vez, ya sabes, algunos valores que querías hacer configurables en realidad podrían romperse si no están entre ciertos números. Así que ten en cuenta eso también, que también se puede hacer eso. Pero por el momento, vamos a mantener esto indefinido. Sólo quería mostrarte esto. También siempre me puede gustar cada vez, solo aconsejarte que juegues con esto un poco. Mira lo que básicamente puedes cambiar, qué tipos de cosas podrían funcionar y cuáles no. Entonces hay muchas cosas que podrían funcionar y podrían no. Así que ten en cuenta eso. Pero de lo contrario, así es más o menos cómo se pueden agregar conflictos personalizados a Minecraft. Y lo más importante, cómo puedes configurarlo o entrar en conflicto, hacer un conflicto para tu pantalla de título personalizada, porque esto es extremadamente importante. Si tienes una pantalla de título personalizada que lo hagas para que puedas apagarla porque de lo contrario nunca serás utilizada para NMR peg nunca increíblemente importante. Entonces, por favor, ten esto en cuenta. De lo contrario, esto va a ser por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. Si lo hizo más de mucho aprecio opinión de usted. De lo contrario, te veré en la próxima conferencia. 101. (temas adicionales) agregando bloques transparentes: O doy la bienvenida de nuevo al curso de forja para 180. Y en esta conferencia vamos a estar agregando un bloque transparente a Minecraft, este comercio por demanda popular ya que algunas personas tuvieron algunas luchas por agregar un bloque transparente a Minecraft. No obstante, en realidad no es tan loco si conoces los dos o tres ajustes muy importantes que debes hacer. Entonces en nuestra clase de bloques de modo, sólo vamos a ir al fondo aquí. Sólo voy a copiar sobre el muestreo. Ahora hay algunas cosas que necesitamos cambiar aquí. Esto se va a llamar la ventana de invierno. Y esto es por supuesto, también la ventana de invierno. Entonces, en primer lugar, en un bulto completamente normal aquí, y luego esto va a ser un bloque de vidrio. Esto es muy importante que se trata de un bloque de vidrio. Esto solo requerirá las propiedades reales de comportamiento de bloque aquí mismo. Y entonces lo que vamos a hacer es que vamos a copiar del bloque de vidrio también de las propiedades. Usted entra en el bloque de vidrio, clic en el botón central del ratón y luego el botón central del ratón haga clic de nuevo en el bloque de vidrio abstracto. Podemos ver ese número uno, lo que necesitamos es el tragaluz propagado hacia abajo y también el brillo de la forma. Obtenemos forma visual. En realidad no estoy 100% seguro de lo que esto necesariamente anochecer. Sólo sé que todos ellos son básicamente importantes para llegar a tener un trabajo de bloque transparente. Es por eso que sólo vamos a usar el bloque de vidrio. Esto es básicamente también un bloque de vidrio, por lo que no se preocupe allí. Ahora, lo que también necesitamos en nuestro MC para la clase inteligente en la configuración del cliente, solo vamos a copiar sobre la capa de render aquí. Y esto va a conseguir la capa de renderizador de ventana de invierno, y esta vez translúcida. Por lo que va a tener la misma capa de render que el fluido de bloque de miel, que también es por supuesto translúcido. Esto es muy importante, lo contrario en realidad no funcionará. Y luego, por supuesto, todas las cosas de acciones como solo el bloque Estados Jason aquí. Apenas un escenario normal de caminata Jason, lo mismo con la traducción. Todo eso es más o menos solo estándar. La única diferencia aquí es entonces, por supuesto, una vez que hemos añadido esto, la ventana de invierno aquí, los archivos del modelo, todas las mismas cosas, por lo que son sólo archivos de modelo normales. También podríamos simplemente copiar los otros archivos normales del modelo y ver esto apunta a una textura. Y luego lo mismo más o menos con el archivo de modelo de artículo. Y esos, por supuesto, también están disponibles si quieres copiarlos. Pero como se puede ver, hay archivos normales, nada de locos en ellos. o menos la varianza más fácil de esos archivos. Y entonces lo que por supuesto es importante para la textura que también voy a copiar. Y vas a ver esto, esto de aquí mismo. Entonces todo el tipo de bloques internos, esos son los que tienen un valor alfa que es un poco transparente. Entonces esto es por supuesto muy importante que si tienes un PNG que querías usar y algunos de tus píxeles reales tienen que tener valores Alfa que puedas mirar a través. De lo contrario, claro que no funciona del todo. De lo contrario, el ver-through no va a funcionar correctamente. Así que ten en cuenta eso. Pero por lo demás eso es en realidad todo lo que tenemos que hacer pasando por todo. o menos lo más importante es lo translúcido. Al igual que tenemos valores Alpha en nuestro archivo PNG real. Y luego también que estamos utilizando el bloque de vidrio, que es muy importante. Supongo que ver por el sake de finalización, vamos a ver si funciona. Muy bien, Somos financieros en Minecraft y como se puede ver, la ventana de invierno se ha agregado con éxito al juego. Y como también se puede ver, puedo mirar a través de él. No se preocupe en absoluto aunque todo funciona solo bien. Quiero decir, eso es lo fácil que es agregar un bloque transparente personalizado marca Minecraft que ya lo es para esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. Y te veré en la próxima conferencia. 102. (temas adicionales) agregando elementos animados: Muy bien, bienvenidos de nuevo al curso de forraje para 118. Y en esta conferencia, vamos a estar agregando un elemento animado a Minecraft. Así que esto podría ser como, Wow, eso es algo realmente genial. Y podría ser, se podría decir, bueno, esto probablemente va a ser muy complicado. En realidad es bastante sencillo. Pero vamos a ver un elemento animado personalizado en esta conferencia. Y luego te mostraré un ejemplo de vainilla de un bloque animado. Y luego si quieres un bloque animado básicamente, entonces puedo recomendar encarecidamente echar un vistazo a ese ejemplo de vainilla. En la clase de artículos mod, vamos a agregar un nuevo elemento. Así que vamos a copiar sobre la bola de cobalto aquí mismo. Y este va a ser el polvo de subrayado mágico. Y luego mismo aquí en el nombre. Este va a ser el polvo de subrayado mágico. Y este va a ser un artículo normal, curiosamente. Y sólo vamos a hacerlo para que básicamente no tenga otras propiedades de artículo aquí en absoluto. Sólo vamos a tener el artículo normal, completamente vainilla. Nada loco por esto. Y en realidad vamos a añadir la traducción antes de entrar en el, en las otras cosas reales. Por lo que el otro elemento modelo archivos adyacentes. Entonces va a haber la magia del polvo y este va a ser el polvo mágico también. Ahora, podría estar diciendo, Bueno, esto probablemente va a ser una consulta complicada loca es un objeto complicado modelo Jason archivo aquí. Sólo vamos a copiarlo. Por supuesto, todo lo disponible para ti en el repositorio de GitHub en individual igual de bien. Y se puede ver que es un archivo JSON completamente normal para el modelo de artículo. O vas a estar como, espera, ¿dónde está? ¿ Dónde está la animación? La animación está todo en la textura, así como en el metaarchivo MC. Aha. Vamos a copiar los más, que por supuesto también están disponibles. Y luego se puede ver que tenemos el número uno, La textura real así como un metaarchivo MSE. Y si echamos un vistazo a la textura, en realidad es múltiples texturas diferentes. Por lo que se puede ver que estas son de hecho seis texturas diferentes para el mismo, bueno, es el mismo ítem. Al final, sal a básicamente 16 veces sin embargo muchas texturas que tengas tiempos 16. Entonces esa es la idea. Entonces es 16 por, en este caso, 96 es un tamaño aquí, y el metaarchivo MC determina cómo realmente pasa por esto. Se puede ver que esto es una animación. Puede cambiar el tiempo de fotograma para básicamente cambiar qué tan rápido es la animación. Y luego aquí básicamente se puede decir qué marcos se van a colocar en qué orden. interpolación simplemente significa que cuando un fotograma cambia a otro es cambiar va a ser discreto. Entonces va a cambiar de una imagen y luego en la siguiente, digamos segundo, ver otra imagen. ¿ Dónde va a transitar a través de ellos? Esa es la idea general de la interpolación en este caso. Pero eso es en realidad lo fácil que es agregar un, un elemento animado. Y entonces esto de inmediato se va a animar siempre y cuando tengas aquí el archivo MC Mehta. Lo que es muy importante es que esta metáfora MC tenga que ser escrita exactamente así, incluyendo el punto PNG aquí. Por favor, asegúrate de que esto esté escrito correctamente. Y como la lista de verificación doble y triple, es increíblemente importante que este sea el mismo nombre que el archivo de textura, incluyendo el final luego punto MC Mehta. Por favor revise esto. Entonces cuando se trata del libro, podemos ir a las bibliotecas externas, claro, una vez más al cliente extra 1801 o cualquiera que sea su versión, activos, Minecraft, texturas, Bullock. Y luego una cosa a echar un vistazo es el bloque magma. Por lo que éste también tiene un archivo MC Mehta y se puede ver que en realidad hay tres texturas diferentes por las que ID, pasa por. Eso, como se puede ver aquí, con el tiempo de marco de ocho, pasa por los tres de esos marcos y luego cambia la textura aquí también, lo mismo con el otro portal. se pueda ver el portal más bajo en realidad tiene muchas texturas diferentes como se puede ver, pasa por, Bueno, quiero decir, al parecer pasa por todo. No estoy 100% seguro de cómo la animación aquí está vacía. No estoy muy seguro de cómo funciona eso, pero eso también es otro ejemplo. Yo personalmente recomiendo el ejemplo de magma. Y creo que es casi todo el tipo de ejemplos como realmente locos aquí, repitiendo bloque de comando. Pero hay algunas cosas aquí todavía ahí. Pero el macrobloque es probablemente el más fácil de seguir y debería ser. Quiero decir, es como si fuera bastante sensato, bastante sencillo, todas las cosas consideradas. Es más o menos exactamente lo mismo que el del polvo mágico. Pero sí, eso es más o menos todo lo que queremos echar un vistazo. Y ahora supongo que por el sake de finalización, veamos si funciona. O nos encontramos en Minecraft. Entonces veremos ahí el polvo mágico se ha agregado con éxito al juego. Y como pueden ver, mientras lo estoy sosteniendo en mi mano, vamos a escogerlo Southern solo tenemos uno. Se puede ver que es una animación lenta pero seguramente e incluso puedo tirarla al suelo. Y se puede ver que incluso lo son, la textura real también está animada. Entonces eso es en realidad lo fácil que es. Y como ya he dicho, básicamente puedes cambiar la velocidad de la animación cambiando el tiempo de fotograma dentro del archivo MC Mehta. Eso es lo fácil que puede ser. Eso ya está en para esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en la próxima conferencia. 103. (temas adicionales) añadiendo efectos personalizados: Muy bien, bienvenidos de nuevo al curso de forraje para 118. Y en esta conferencia, vamos a estar echando un vistazo a cómo se puede agregar un efecto personalizado a Minecraft. Ahora, la adición del efecto cliente realmente viene bien, más o menos, gracias a un estudiante que ha agregado su propio efecto. Y he cooptado por su efecto e hice una conferencia fuera de él. Por lo que por supuesto sabes en quién estás pensando mucho. Y es un efecto congelado. En realidad es realmente interesante. Entonces se va a congelar a una entidad en su lugar. Y sólo vamos a ver cómo funciona esto. En realidad es más sencillo de lo que podrías pensar en nuestro paquete de cursos MC. Haga clic derecho en nuevo paquete llamado efecto. Entonces en lugar de ahí, vamos a necesitar dos nuevas clases. Uno de ellos es la clase de efectos modelo. Y entonces el otro va a ser el efecto congelado. La clase de efecto congelado es donde se encuentra toda la funcionalidad. Simplemente copiaré sobre la clase como, como siempre, por supuesto, todo lo disponible para ti en el repositorio de GitHub e individual igual de bien, ¿listo? Por lo que aquí se puede ver el efecto de congelación en acción. Es bastante sencillo. Todas las cosas consideradas, hemos anulado el método apply effects tick, que básicamente se llama cada tick cuando una determinada entidad tenga este efecto en él. Y luego también tenemos el efecto de duración tick. Es cierto, porque si no tenemos esto mientras, entonces básicamente esto nunca sería frío. Entonces esto es lo que necesitamos. Aquí. Básicamente se puede ver que se refiere a todos comprobando si estamos o no en el servidor. Si lo estamos, entonces estamos tomando las coordenadas XYZ de esta entidad en particular que tiene este efecto en la mortalidad, informándole a la entidad, y estableciendo también el movimiento Delta en 0. Entonces esto es necesario para el jugador básicamente, y esto es necesario para, bueno, animales o cualquier NPC básicamente. Entonces cualquier entidad no jugador, simplemente por el hecho de que el movimiento Delta es, bueno, lo que básicamente mueve al animal real y se teletransportan a, no solo la primera fila dos lo hace no funciona. Entonces estas son las dos cosas que necesitamos. Y si sumamos esos dos, entonces la mafia real, o en este caso entidad o el jugador se va a congelar en su lugar. Realmente genial, como realmente una idea genial. Y me gusta mucho. Entonces, ¿cómo lo hacemos básicamente, la pregunta es, ¿cómo lo registramos? Bueno, ya lo has visto antes. Final estático público, ¿qué necesitamos? Por supuesto, un registro diferido, esta vez de efecto turba. Esto se va a llamar los efectos de subrayado de MLB. Y esto es por supuesto igual a lo que es un registro diferente que crean registros dot mlb efectos. Y luego por supuesto nuestro núcleo MC, inteligente pero no ID. Y como cada vez, como hemos visto un tercer registro, ¿qué necesitamos? Necesitamos un vacío estático público o método de registro con un bus de eventos ojo, bus de eventos entero. Y luego estamos llamando a los efectos de la MLB o registramos y pasamos en el bus de eventos. Nada demasiado nuevo aquí. Esto es más o menos como cada vez que hemos visto los efectos aquí. Y entonces esto será llamado una vez más, claro aquí mismo. Así que acaba de soplar nuestras recetas mod. Vamos a decir efectos de mafia que se registran y luego pasan en el autobús de eventos. Y ahí vas, Todo está registrado. Sólo necesito un objeto de registro aquí. Entonces vamos a decir estático público, objeto de registro final. Por supuesto de tipo de efecto mafia. En este caso, se va a enfriar congelar y es igual a efecto mafia inicia registrar el nombre congelado aquí. Y entonces vamos a necesitar un proveedor de un nuevo efecto de congelación. Como se puede ver, mob Categoría de efectos nocivos. Y luego simplemente básicamente cualquier número. Este es un, creo, un identificador único. Echa un vistazo a esto. Esto es en realidad este es el color. Ahí vas. Este es el color. Eso es lo que es. Pero este es el color de yo creo, la porción que se asociaría con ella. Ahora no vamos a sumar la parte en esta conferencia. En realidad vamos a sumar la porción en la próxima conferencia. Pero después de haber añadido esto, el efecto de congelación está en realidad en el juego. Ahora, esto es todo lo que tenemos que hacer para agregar esto. Sé que es bastante loco, pero eso es todo lo que tenemos que hacer. Entonces supongo ver si funciona o nos encontramos de vuelta en Minecraft. Entonces veamos, vamos a darme el efecto. Vamos dev. Y luego se puede ver estos efecto de congelación está ahí a menos que lo añada. Y ahora en realidad no puedo moverme. Se puede ver que es una especie de nerviosiego. Y lo he añadido durante treinta segundos en este caso. Así que no puedo realmente puedo volar un poquito, pero si trato de moverme, se puede ver que es muy, muy lento. En este caso. Sé si estoy en el suelo y trato de moverme, estoy presionando la tecla W. Funciona como muy, muy lentamente. E incluso, ya sabes, ir por aquí es, puedes ver que definitivamente está congelado conocer algo así en su lugar. Ahora todavía puedo romper bloques que un banco de ojos, pero eso sí funciona. Y también has visto que la textura real no estaba ahí. Vamos a añadir esta textura también. En realidad es bastante sencillo, pero eso es bastante genial. Todas las cosas consideradas. La textura va a la carpeta de texturas. Y aquí necesitamos un nuevo directorio llamado efectos de subrayado mafia. Y entonces la textura real tiene que ser el mismo nombre que el nombre aquí mismo. Entonces en los efectos de la MLB, este nombre tiene que ser este nombre. Y ahora en lugar de una textura no, no descripta, se mostrará esta textura y bueno, quiero decir, básicamente va a funcionar. Ahora, como dije en la próxima conferencia, inmediatamente vamos a sumar una porción para esto porque sí tiene sentido en mi mente tener una porción. Eso es lo que básicamente puedes usar entonces también. Por el momento, esto es más o menos para esta conferencia aquí mismo. Ojalá te haya encontrado esto útil y amarillos y el debido. Y te veré en la próxima conferencia. 104. (temas adicionales) añadiendo pociones personalizadas: O doy la bienvenida de nuevo al curso de forraje para 118. Y en esta conferencia vamos a estar agregando una poción de cliente, incluyendo una receta de escoba personalizada a Minecraft. Ahora, la porción real es muy fácil de agregar. La Receta de elaboración, sin embargo, es, bueno, digamos que es un poco desconcertante por qué funciona como funciona, pero no se preocupe, vamos a superar esto. Bueno, en primer lugar, en el paquete del curso MC, haga clic con el botón derecho en nuevo paquete llamado porción. Y luego dentro de ahí, vamos a hacer una nueva clase Java facultad mod océanos. Y esto va a parecer extrañamente similar a lo que básicamente muchas otras clases que hemos visto antes. Un registro público estático final diferido de tipo océano en esta ocasión. Y va a ser porciones por supuesto, va a ser igual al registro diferido que crean registros, los océanos oscuros van. Y por supuesto MC, curso de identificación moderada o leve. Y luego se necesita el método de registro vacío estático público como siempre, con el ojo Event Bus, Event Bus. Y luego vamos a hacer pociones dot registrarse con el, el autobús del evento. Y luego llamemos a esto en el constructor del curso MC aquí mismo, pociones mod, hace se registran y luego pasan en el bus de eventos. Y entonces solo necesitamos crear la poción. Entonces va a haber un objeto público de Registro estático por supuesto, de tipo océano. Vete. Y esta va a ser la poción de subrayado congelado es igual a las pociones que se registran. Esta es la poción de subrayado friso, nuevo, el nombre aquí. Y entonces esto está requiriendo un proveedor de una nueva porción. Esto va a necesitar una nueva instancia de efecto mafia. Ahí vas, de nuestros efectos. Entonces mod efectos dark freeze, el que hemos agregado última conferencia. Sólo voy a hacer diez segundos con cabildeo. Básicamente amplificador es 0 aquí. Así que este va a ser el número de tiempo posterior en tics, y este va a ser el amplificador. Entonces si estamos poniendo un 0 aquí, y esto va a ser un nivel uno. Esto va a estar volando congelado en el nivel uno. Y eso es en realidad todo lo que tenemos que hacer para sumar la porción real. Ahora para la receta de elaboración de cerveza, en realidad vamos a hacer una nueva clase. Ahora esto es muy interesante porque en realidad hay una clase que se llama la receta de elaboración de cerveza, creo que sí, de micro forja. Para que puedan ver que esta es una receta de elaboración de cerveza que implementa esta interfaz de recetas arruiné. Y esto funciona y podemos usarlo de nuevo. Lo que es realmente interesante es que para la entrada, realidad no mira lo que la, digamos cuál es la porción real es que hay que ponerla, pero ya sabes cómo puedes poner un cierto ingrediente en la parte superior del soporte de elaboración de cerveza real, y luego en la parte inferior tienes tres ranuras para diferentes porciones. Y por lo general cómo funciona ya que se necesita una poción incómoda para hacer esto y un específico otros posts para hacer esto. Y al usar esta receta de elaboración de cerveza, simplemente no importa cómo sea la entrada. No lo hace, no comprueba si es o no la porción real. Por lo tanto, esta clase cervecera es prácticamente completamente inútil y no necesita ser utilizada. Ahora he encontrado una pared, una alternativa que he llamado la mejor receta de elaboración de cerveza. Ahora vamos a copiar esto. Esto está en realidad en el paquete util. Y el no exactamente lo mismo, pero el nombre es diferente. La clase es exactamente la misma que de este repositorio de GitHub aquí mismo de porciones adicionales luego por siniestro. Por lo que esto está bajo la licencia de tres GPL. Así que ten en cuenta de eso cuando estés usando esta clase. Solo diciendo, Pero en general, quiero decir, es más o menos, no hay otra forma de hacer esto realmente cuando estoy pensando en ello. Así que he pasado por esto y estamos como, De acuerdo, siempre va a lucir exactamente igual más o menos. Y esta es solo la mejor manera de hacer esta clase realmente. Y luego podemos usar esto mejor en la elaboración de los costos de la receta. Para agregar realmente la receta, solo necesitamos agregar una receta. Por lo que esto de inmediato va a funcionar para la poción de barra, la porción normal y la porción persistente. Entonces eso es realmente genial. Ahora cuando agregamos esas recetas de porciones en el método de configuración en nuestra configuración común de FML aquí mismo. Cuando queremos hacer es que quieras decir elaboración de recetas de registro, éste de aquí mismo, agrega receta. Y entonces sólo vamos a hacer una nueva, mejor receta de elaboración de cerveza. Ahí vas. Y entonces tenemos la pasión, qué porción queremos. Entonces esto va a estar empujando a empezar incómodo en este caso. Entonces el ingrediente real. Por lo que esto va a ser un artículo. Entonces vamos a decir más artículos que lingote de cobalto, digamos que esto va a ser la ira cobalto, ¿verdad? Ahí. Van, dot get y luego mod porciones. Porque por supuesto el resultado real o la salida debe ser la poción congelada. Y van ahora poniendo en posiciones incómodas en el fondo y un lingote de cobalto ya que el gradiente nos va a dar una poción congelada. Eso es todo lo que tenemos que hacer. Eso es en realidad lo fácil que es. Ahora para las pociones, también necesitamos agregar alguna traducción. Esto es muy importante en realidad. Son pocas las cosas que necesitamos agregar. En primer lugar, tenemos que sumar esos tres aquí. Por lo que este va a ser el, se puede ver que esta es poción de congelación de efecto de porción, poción para el chapoteo y la porción persistente. Increíblemente importante. Esto está en realidad bajo el espacio de nombres de Minecraft. No estoy 100% seguro por qué ese es el caso. Quiero decir, estoy como 80% seguro por qué ese es el caso. La idea es que cuando realmente estás registrando una porción, cuando estás haciendo una nueva poción, por así decirlo. Entonces lo que pasa es que esto acaba de sumar a la. La lista real de porciones en Minecraft y luego esta está bajo el registrado bajo el espacio de nombres de Minecraft. No estoy 100% seguro si eso es algo malo o algo bueno. Quiero decir, podría ser algo malo por el momento sin embargo. Vamos a mantenerlo así. Si hay algún conflicto en el futuro, también los vamos a resolver. Ahí no se preocupe. Pero esa es básicamente la idea de los océanos. Y ahora también necesitamos el efecto. El efecto se ve así. Vamos a sumar esto en la parte inferior. Este efecto dot M C corps freeze, y esto es sólo congelación de código. Estas son las traducciones que son increíblemente importantes. Ahora también lo que es interesante para el ítem, para los artículos de poción que obtienes generados automáticamente. Y no necesitamos hacer nada por ellos en absoluto. Entonces esto es más o menos todo lo que tenemos que hacer. El color de la porción real se toma de los efectos mod aquí mismo. Entonces este color aquí mismo es básicamente lo que se va a utilizar. No estoy 100% seguro de qué es esto. Podría ser sólo de un color hexadecimal. No estoy seguro. También podría ser otra cosa, pero esto va a estar bien. Esto es solo jugar con esto también. Si quieres. Algunos otros colores son por el momento, esto es más o menos todo lo que necesitamos para la costumbre, tanto la porción personalizada como la receta aquí para ser agregada. Entonces supongo que veamos si funciona. O nos encontramos en Minecraft. Así que veamos, solo agreguemos las porciones de aqua y luego un lingote de cobalto y debería comenzar a elaborar cerveza. Y en efecto lo hace, comienza a elaborar cerveza. Y entonces tan pronto como esto lo haya hecho, las pociones incómodas deben convertirse en porciones congeladas. Así que consigamos algunas ovejas solo para ver si en realidad se van a congelar o no básicamente al final. Veamos. Aquí, casi terminamos, y luego tendremos algunas pociones. Vámonos. Por lo que tenemos una poción congelada y otro movimiento de congelación y una porción de congelación persistente también. Así que todo funciona exactamente como se lo esperarías a una oveja o se suicida. Eso es increíble. Vaya, eso es realmente gracioso. Veamos. Y ahí vas. Y luego se puede ver que ya no se pueden mover. Incluso puedo golpearlos y no pueden moverse porque la porción de congelación literalmente los está congelando en su lugar. También podemos probar lo mismo por algunos zombis, cual es realmente divertido porque básicamente intentaron perseguirte y luego, oh, bueno, quiero decir, creo que estoy en paz, así que ahí vas. Vamos a copiar esto y luego vamos a cambiar a la supervivencia y luego voy a tratar de conseguirlos. Y ahí vas. Entonces el pequeño zombi bebé, como se puede ver, que dejó de moverse. En realidad, consigamos algunas porciones de congelación más poses de salpicaduras aquí. Sólo para que puedas volver a mostrar esto. Una vez más, sólo vamos a cambiar y voy a congelarlos. Congelar. Y congelar también. Oh no, me congelé. Eso no está bien. Podemos ver que, por supuesto a veces también puede suceder, pero es realmente genial. Y sí, eso es realmente lo fácil que es agregar no solo porciones personalizadas, sino también recetas de porciones personalizadas a mi oficio. Tiene siempre todos los trimestres, por supuesto, disponibles para ti en el repositorio de GitHub o un individuo también se ajusta. Pero esto va a ser por esta conferencia de aquí mismo. Espero que te pareciera útil esto y aprenderás algo nuevo si lo hicieras, agradecería mucho una reseña de ti. De lo contrario, te veré en la próxima conferencia. 105. (temas adicionales) agregando entidades personalizadas con Geckolib: Muy bien, bienvenidos de nuevo al curso de forraje para 118. Y en esta conferencia, vamos a estar agregando una entidad personalizada o mafia personalizada al juego. Este va a ser el inicio de una, digamos, pocas series de partes de conferencias donde básicamente vamos a agregar más funcionalidad a nuestra entidad. Vamos a pasar, en primer lugar, agregar una entidad normal al juego que agregar algunas animaciones. Entonces en la siguiente conferencia después de eso, vamos a hacer de ella una mesa. Vamos a sumar diferente varianza de esa entidad en particular. Y luego al final, también vamos a sumar una entidad que va a ser escribible. Entonces todas esas cosas nos van a esperar básicamente en las próximas conferencias. Ahora, lo que voy a decir es que cada entidad que vamos a agregar, vamos a agregar dos entidades y ambas van a usar las bibliotecas API de gecko lip. A pesar de que no es estrictamente necesario, esto, sugiere una turba normal sin animaciones adicionales. Todavía recomiendo básicamente siempre solo usar la biblioteca glicolípidos para agregar las entidades. Porque, definitivamente lo hace mucho más fácil de muchas maneras. Básicamente, solo lo hace más fácil. Y así, antes que nada vamos a poner el labio gecko. Para esto. Básicamente vamos a copiar este sobrescribir aquí. Entonces esta es la, como se puede ver en GitHub, la guía de instalación gecko lib wiki. Básicamente estoy, voy a copiar esto. Y luego vamos a volver a aquí, entrar en nuestro archivo construido del DOD Gradle. Y esto, el primero que lo hemos copiado iba a ir a los repositorios aquí mismo. Por lo que sólo va a agregarlo justo ahí. Y luego el otro, éste de aquí mismo. En este caso, dejaré esto ya debería ser la versión más reciente aquí, 3011 en este sitio. No estoy seguro si esto se actualiza mientras cada vez que sale una nueva versión, pero ojalá esto solo vaya por debajo de un Minecraft aquí mismo. Entonces esto debería ser todo lo que necesitamos. Y ahora podemos cargar los cambios de Gradle. Y básicamente va a descargar la versión glicolípidos y va a implementarla que básicamente podamos usar el labio gecko EPI en nuestro mod también. Y después de esto es, una vez más, podría tardar un minuto, podría tardar treinta segundos. Depende de muchos factores. Básicamente, se puede ver en realidad fue bastante rápido año 21 segundos. Eso es bastante bonito. Entonces la pregunta es, bueno, ¿de dónde sacamos nuestras entidades? Bueno, para nuestras entidades, vamos a utilizar bancada de bloques. Block bench es un programa con el que puedes hacer modelos genéricos. Tampoco se podía hacer modelos de bloques. Ya lo hemos visto, pero también podemos hacer entidades. Ahora lo importante es que tengas los plugins de archivos bajo y tienes los gecko lip Animations, Animation utils aquí mismo. Entonces vamos a necesitar este plugin en particular. De lo contrario no va a funcionar. Así que asegúrate de instalar esto. Básicamente ir a disponible, luego búscalo. Ahora no lo voy a conseguir porque ya está instalado. Puedes ver instalar esto y luego deberías tener la posibilidad de agregar el modelo animado de labios gecko aquí mismo. Ahora ya tengo algunas cosas preparadas, así que tenemos un mapache y un tigre. Primero vamos a usar los mapaches. Sólo voy a abrirla y puedes ver, ahí vas. El mapache ya hecho aquí mismo. Y bueno, quiero decir, básicamente, este mapache también está animado , por lo que en realidad tenemos tres animaciones aquí mismo. Vamos a echar un vistazo a las animaciones en la próxima conferencia un poco más de detalle por el momento, lo que vamos a hacer es sólo vamos a exportar esto. Lo que vamos a hacer es una vez que hayamos hecho una, una entidad personalizada. Entonces para utilizar el modelo real mapache en nuestro proyecto y nuestro MOD, hay que exportar esto. Entonces vamos a ir a File Export y luego Exportar gecko lip model. Si esto no aparece, puedes hacer clic en Convertir proyecto y asegurarte de elegir básicamente el modelo animado de labios Kekule. Si este no es ya el, ya el formato actual, entonces debería aparecer la exportación real aquí. Podemos entonces usar esto y luego guardar esto bajo el archivo mapache GO dot JSON. Sólo voy a reemplazar. Esto va a estar bien. Y ahora he exportado el modelo en realidad, y ya podemos usar esto dentro de nuestro basado en el juego. También tengo la textura, tengo esto realmente separado. También puedes en teoría guardar esto del archivo real del banco de bloques también. Pero vamos a estar bien. Como dije, las animaciones que sólo vamos a ignorar por completo por el momento. Los vamos a utilizar en la próxima conferencia. Volvamos a cambiar a IntelliJ. Y lo que vamos a hacer es que inmediatamente vamos a hacer una nueva carpeta en el curso de la carpeta de activos MC. Y luego aquí vamos a hacer la carpeta geo. Y esto va a conseguir el archivo GeoJSON mapache. Se van. Así es básicamente como se ve. Puede que haya un errate por aquí en alguna parte, eso va a estar bien. Creo que como sea que se llame en este expediente, realidad, no importa. Y entonces también vamos a necesitar es, en realidad también vamos a necesitar conseguir el archivo de textura. Por supuesto. El archivo de textura realmente va a las texturas por supuesto. Y luego en lugar de la entidad se retiró aquí mismo, entidad, luego el nombre de la entidad. En nuestro caso, esto va a ser y luego voy a copiar sobre la textura real aquí mismo. Ahí vas. Esto sólo va a ser la textura mapache. Voy a básicamente apuntar a aquellos en apenas un momento en que realmente estamos implementando la entidad por ahora, esas son las principales cosas que definitivamente necesitamos. El archivo geo aquí mismo, el GeoJSON y la textura. Entonces también podría haber una carpeta de animaciones, que básicamente contiene entonces las animaciones que vamos a utilizar en la siguiente conferencia. Ahora, vamos a hacer un nuevo paquete aquí mismo, entidad. Dentro de ahí. Vamos a crear una nueva clase Java. El modo en t Los tipos de entidad de modo van a tener una final estática pública, el tercer registro de tipo, tipo de entidad, y luego una vez más, y luego una vez más, los corchetes angulares con un signo de interrogación dentro de ellos. Va a haber los tipos de subrayado de entidad va a ser igual al tercer registro dot crear registros, esa entidad, entidades en realidad hace y después curso MSC inteligente ese mercado. Y si se trata de un registro diferente, por supuesto hay un método de registro vacío estático público. Entonces I Event Pass viejo autobús de eventos aquí mismo. Y luego vamos a llamar a los tipos de entidades que se registran pasando en el bus de eventos. Entonces inmediatamente vamos a ir justo aquí debajo de las porciones más. Y vamos a decir más tipos de entidades, no inscribirse pasando en el bus de eventos. Y luego tenemos esta clase registrada también. Ahora aquí siempre vamos a tener algunos objetos de registro de nuestras diferentes entidades. Pero antes de que básicamente vamos a continuar con esto, vamos a hacer que la entidad misma clase. Una vez más en el paquete de entidad, haga clic con el botón derecho en nuevo paquete cliente Una vez más, voy a llamar a esto el paquete personalizado. Y entonces en lugar de que van a hacer una nueva clase de Java, y esta va a ser la entidad mapache. Ahora cuando se trata de la entidad mapache, esto va a ser muy interesante porque hay muchas cosas pasando. También copiaré muchas de estas cosas. Todo esto está disponible para ti en el repositorio de GitHub y un individuo igual de bien. Entonces no se preocupe en absoluto. Lo que vamos a hacer es que vamos a hacer que esto se extienda por los animales. Así extiende animal y también implementa el ojo interfaz animable en este caso. Ahora, sólo vamos a pasar el cursor sobre esto, la adición de esos diferentes métodos aquí mismo. Y voy a pasar el cursor sobre este constructor de cuadrícula emparejando super también. Y si esos nombres te molestan, solo puedes hacer click en él, Shift F6, y luego debería sugerir algo un poco más bonito aquí. Esto se va a mantener nulo, en este caso, la descendencia roja. Por lo que esta sólo va a ser la mafia elegible para conseguir hijos. No necesitamos esto en este momento. Los controladores son para las cosas de animación así como para la fábrica de animación. Y vamos a sumar la fábrica de animación de inmediato porque esto es literalmente sólo una línea. Como se puede ver. Sólo hay una fábrica privada de animación. Fábrica de animación. Y entonces solo estamos pasando esto. Entonces básicamente puede devolver esto aquí mismo. Los controladores, no vamos a devolver nada por el momento. En primer lugar, lo que vamos a hacer es que vamos a echar un vistazo a las otras cosas que necesitamos para la entidad. Porque hay al menos un conjunto de métodos que vamos a necesitar y que son los atributos establecidos. Esto es algo que es increíblemente importante. En realidad. Si no tenemos esto, entonces en realidad no va a funcionar. Sólo vamos a hacer lo siguiente que van. Básicamente estamos estableciendo algunos atributos básicos aquí. El máximo de salud, el daño, la velocidad de ataque de la velocidad de movimiento. Ya sabes, por supuesto puedes jugar con esto sin embargo te gustaría no cambiarlos básicamente de cualquier manera , si quisieras. Pero esto es muy importante que tengamos esto porque de lo contrario la entidad real no va a tener ningún atributo. Y por supuesto eso no es exactamente lo que queremos aquí. Desde luego queríamos tener algunos atributos. También hay algunos otros métodos que podemos anular. Bueno, separemos esto un poco. Entonces esto va a ser todo lo de la animación. Esto de aquí mismo es todo para animaciones. Y hay algunas otras cosas que voy a copiar por aquí, pero esos son sólo algunos sonidos como se puede ver. Ahí está, simplemente abrámoslo todo. Ahí vas. Entonces hay un sonido de paso. Acabo de recoger algunos sonidos aquí. Hay un gato recto suena igual de ambiental. Delfín herido es cuando se lastima, a menudo sonido sordo. ¿ Por qué no? Por el momento, no tengo ningún sonido de mapache, pero por supuesto que tampoco deberían importar. Pero estos son básicamente los sonidos que puedes definir. Y sí, por supuesto, también podrías decir sonidos mod y luego usar uno de tus sonidos de modo también. Por supuesto, puedes agregar sonidos personalizados o tus entidades también. Eso es bastante guay. Todas las cosas consideradas. Quiero decir, eso concluye más o menos el trozo de esto. Lo último que también queremos es que queremos el método de registro de metas, y ese es un método que también podemos anular. Ahora creo que vamos a tener dos cosas, exactamente dos cosas que van a ser un comentado por el momento. Porque esos son para cuando vamos a hacer este T-Mobile. Por el momento, no vamos a hacer la mesa de mapache porque básicamente quiero pasar por esto paso a paso, las metas. Esta es básicamente la IA de esta entidad. Esto es muy, este puede ser un tema muy complejo. Por lo que hay muchas metas diferentes que podemos sumar. Entonces lo que podemos hacer, por ejemplo, es que podemos hacer clic en el botón central del ratón en un gol y se puede ver que esto amplía la clase de meta. Si ahora hago click en esto y presiono Control H, Estas son todas las metas y ahora puedo ampliarlas. Y se puede ver que hay muchas metas diferentes. Se puede ver. Y por supuesto en teoría, incluso puedes escribir tus propios objetivos también. Entonces realmente hay muchas cosas aquí. Y una vez más, esta es una de esas cosas en las que solo vas a tener que jugar un poco con esto. Mira las entidades de vainilla y mira cómo están usando los objetivos. El concepto general es que cuanto menor sea la prioridad, como cuanto menor sea el número de prioridad, mayor es realmente en la lista. Uno sería la prioridad más alta y seis es la prioridad más baja. Pero si tiene que elegir entre uno o dos objetivos, básicamente echa un vistazo a las prioridades. Entonces esa es la idea general aquí. Así que asegurándose de que esto esté básicamente siempre configurado correctamente. Y entonces como dije, sólo se puede ir al animal, por ejemplo, medio más punk click en esta prensa Control H. Se puede ver todos los animales. Pero por ejemplo, podríamos echar un vistazo al zorro aquí. Y se puede ver que aquí hay muchas cosas diferentes que en realidad no nos interesa realmente por el momento. Solo queremos ver los objetivos reales. Se puede ver que sólo somos sus metas, pero ya se puede ver aquí hay bastantes metas diferentes. Este objetivo de la lámpara, hay un objetivo objetivo de huevo de tortuga, Hay un objetivo de pez objetivo. Conseguimos algunos selectores de objetivos donde sumamos unos ciertos goles aquí, la panícula, la meta de la raza, evitar ir metas de entidad. Por lo que se trata de un objetivo que evita a cierta entidad en una distancia específica. Entonces hay tantas cosas que puedes hacer. Ahora. También se puede ver que la mayoría de ellos son específicos para el zorro es en lugar de la clase zorro, digamos por ejemplo, el objetivo del sueño para el botón central del ratón. Haga clic en esto. Verás que el objetivo del sueño está en realidad en el objetivo de comportamiento del zorro y en realidad está dentro de la clase box. Algunas veces algunos de estos objetivos están en realidad dentro de sus respectivas entidades reales. Y esta es también la razón por la que, por ejemplo, el zorro, tiene como 1600 líneas de código. Aquí hay muchas cosas. Quiero decir, diría probablemente lo más complicado en términos de entidades personalizadas para la vida en general, solo es lo que es. Muy recomendable. Hay que pasar por algunas de las entidades de vainilla y simplemente jugar con ella y luego ver lo que se puede ver, como dije, botón central del ratón haga clic en este control cada año sobre la meta, y entonces deberías poder ver todos los objetivos disponibles. Y entonces en el peor de los casos, también puedes copiar algunos de ellos si necesariamente los necesitas. Entonces se hace la clase de entidad de recuerdo real aquí. Entonces vamos a registrarlo en la clase más entidades. En realidad también voy a copiar esto más. Como siempre, todo lo disponible para ti en el repositorio individual de GitHub igual de bien. Ahora este error se produce porque esto debe ser protegido. Así que vamos a hacer esto público aquí mismo. Y entonces la flecha debe desaparecer. Entonces no hay preocupaciones ahí en absoluto. Y se puede ver que hay un objeto de registro de tipo entidad. Entonces vamos a poner la clase que acabamos de hacer aquí, el mapache registrándose bajo el nombre de mapache. Y entonces vamos a decir que el constructor de tipo entidad de la entidad discográfica lo sabía. Esta es una criatura en este caso, este tamaño es en realidad el tamaño de la caja de montón de esta entidad. Y el magnético lo construye bajo la ubicación del recurso o más Id bajo el, una vez más, el espacio de nombres mapache. Y eso es más o menos el registro se hace aquí mismo. Y ahora todavía tenemos que hacerlo bien, quiero decir, básicamente agregar esto en unos pocos lugares diferentes. El primer lugar que queremos agregar esto es en realidad en nuestros eventos y esto va a ser en los eventos de bus de eventos mod. Curiosamente, porque aquí mismo queremos sumar un nuevo evento como el vacío estático público. Y esta es la entidad. Evento de atributo, solo voy a llamar a eso y luego vamos a decir atributo de entidad. Este es el evento de creación, cita evento. Cuando vamos a hacer es sólo vamos a llamar a la pestaña Evento put, mod tipos de entidad ese mapache, que GET. Entonces la entidad mapache, establecer atributo de entidad. Y luego solo vamos a agregar el evento add subscribe justo aquí. Muy importante que añadamos esto. Y ahora esto básicamente sumará los atributos que hemos definido aquí mismo a cada mapache que existe en nuestro mundo. Esa es la idea. Ahí. No obstante, hay algunas cosas más para el mapache, para la entidad en general. Para la entidad, también vamos a necesitar un renderizador y un modelo. Entonces en el paquete de entidad se ejecuta de nuevo, haga clic derecho en nuevo paquete y vamos a llamar a esto el cliente en realidad, por el renderizador y el modelo para ambos ser cliente solo si no me equivoco, vamos a decir Mapache. Este va a ser el renderizador. Entonces vamos a hacer el otro también. Este va a ser el mapache. Este va a ser el modelo. Ahí vas. No hay preocupaciones ahí en absoluto. El, ¿cuál es más fácil? El modelo va a ser un poco más fácil. Pero esto va a ampliar el Modelo Geo animado de entidad de registro de tipo que vas. Y luego vamos a pasar el cursor sobre esto, Implementar Métodos. Por lo que necesitamos implementar estos tres métodos. Ahora bien, esto es en realidad bastante sencillo. Voy a copiar sobre la única cosa aquí. Entonces esto sólo va a estar siguiendo una nueva ubicación de recursos. Y esto está apuntando exactamente al GEO y luego mapache que AOTA Jason, este exactamente este archivo trazador aquí mismo, que básicamente tenemos. Y luego vamos a también acaba de copiar esto más. En realidad no estoy 100% seguro de lo que va a pasar si no tengo este archivo, no estoy muy seguro. Y por la textura, tenemos esto aquí mismo. Entonces texturas, entidad mapache y luego el mapache, un PNG. Ahora éste no estoy en porcentaje seguro porque en realidad no he probado esto sin el archivo de animación todavía. Pero creo que va a estar bien. Vamos a ver si nos estamos quedando choque, entonces vas a arreglar eso en un momento sin preocupaciones ahí. Pero este es el archivo del modelo real y luego también necesitamos el render. Por supuesto, el renderizador, en este caso, en realidad debería ser un poco más fácil. Por lo que esto va a extender la entidad renderizadora de la GU, entidad mapache. Una vez más nota ninguno de modelo de registro sino de entidad mapache, pero simplemente pasa el cursor sobre esto. Y si construimos nuestro emparejamiento un super, Ahora lo que tenemos que hacer aquí es que necesitamos deshacernos de este proveedor de modelos y luego en realidad solo hacer un nuevo modelo mapache aquí mismo. También voy a hacer que este arranque ese o radio 0.3. Creo que eso va a estar bien. Y entonces va a ser impresionante que voy a hacer es que me vaya. Solo queríamos sobrescribir método de tipo render aquí mismo. Entonces esto lo escala también. Y luego también lo que queremos hacer es conseguir ubicación de textura. Entonces vamos a elegir la misma ubicación de textura. Aquí. Sólo vamos a ir también proporcionar, y eso debería ser más o menos todo lo que tenemos que hacer. Entonces el, tanto el modelo el renderizador en realidad bastante sencillo. Todas las cosas consideradas. No hay tantas cosas aquí. Como se puede ver en los modelos de vainilla. En realidad hay mucho más ahí porque por supuesto, los modelos de vainilla en realidad todo el modelo se guarda en la clase más que en esta geometría, Jason. Así que eso es lo realmente genial. Entonces solo tenemos que básicamente agregaremos el renderador correctamente. Entonces, ¿cómo vamos a hacer una cuba? Vamos a hacer eso yendo a nuestra clase de foso de curso MC. Y luego dentro de la configuración del cliente, muy importante. Vamos a decir que entidad nos rinde, nos rendirá éste aquí mismo. Modo de registro, tipos de entidad. Vamos a decir que el mapache no se pone. Esto es igual al colon mapache, hacer colon, colon nuevo. Y eso debería ser eso. Eso es más o menos lo que tenemos que hacer en ese frente también. Ahora también vamos a tener que añadir un nuevo ítem. Y eso va a ser, por supuesto, el huevo de desove, el esperma y el óvulo. En realidad copiaré éste durante esta vez como siempre, por supuesto, el código real está disponible para ti. Esto no es demasiado loco. Se puede ver este cuello de botella de mapache frío. Esto es de tipo elemento para el artículo hispano en realidad. Y estos son los colores básicamente que tiene el Reino Unido. Y eso es más o menos todo lo que hay que hacer allí. Entonces. Por supuesto, debido a que este es en realidad un elemento normal, también queremos agregar la traducción aquí, la carpeta lang en subrayar el archivo JSON. Así que vamos a añadir esto aquí también. Ahí están los mapaches engendran por ejemplo. Y en realidad también necesitamos un archivo de modelo de artículo. Sé que esto es bastante loco, pero es cierto. O esto tampoco es demasiado loco. Por lo que podemos ver que es como la plantilla de elemento padre desova huevo. Entonces esto va a ser coloreado con estos dos colores aquí mismo. Entonces eso es todo lo que hay a ella. Entonces el artículo también debería funcionar totalmente bien. Y bueno, si no me equivoco, creo que debería haber llegado a todo lo que necesitaba. Necesitaba añadir aquí. Si no, entonces definitivamente vamos a ver que no funciona, pero eso va a estar bien. Y vamos a ver también qué se puede hacer con una flecha. Pero por el momento, creo que esto es todo lo que necesitamos. Entonces veamos por obras o lo que nos encontramos en Minecraft. Y como se puede ver, el mapache AG se ha agregado con éxito al juego. Y ahora veamos si hago clic derecho si desova el mapache. Y ahí está. En todo su esplendor, se está moviendo. Ahora, por supuesto, como hemos dicho, no tiene animaciones particulares interesantes en este momento. Y en realidad creo que el cuadro delimitador real, si presiono F3, ser, ser un poco demasiado pequeño. Por lo que podríamos ser capaces de agregarle un poco más de caja limitadora. Por el momento, esto es realmente genial y sí, es necesario lo fácil que es ahora. Oh, en realidad va a fluir debido a la llaga de cobalto flotante. Eso es algo gracioso, pero sí, eso es más fácil agregar una mafia a Microsoft. Sólo por el bien de la discusión, sólo vamos a hacer esto un poco más grande. Digamos algo así como 0.8 y tal vez la altura fue seis. Eso va a estar bien. que vamos a estar bien con nosotros. Y eso es en realidad todas las cosas que necesitas. Entonces para recapitular una vez más, vamos a necesitar la clase de entidad mapache personalizada. Por supuesto, muy importante. La fábrica real aquí, no lo hace falta todavía, pero ya hemos añadido esto porque ¿por qué no? Simplemente tiene sentido en este caso. Y entonces los objetivos y los atributos fueron un aquí muy importante. Y luego la otra cosa es Ritchie mucho. No necesariamente, no es necesario. Es sólo agradable tener y a base de mar. Entonces necesitábamos agregar esto y registrado correctamente en la clase de tipos de entidad de modo aquí mismo. Necesitábamos un renderizador y un archivo de modelo para esto, el archivo modelo apunta hasta el archivo del modelo. Por lo que esto apunta al GeoJSON así como al extra real y a las animaciones. Y luego la caída de renta también apunta a la textura. También determina el tamaño real de la sombra y hace un nuevo modelo. Esta es la idea general de cómo trabajan juntos esos. También necesitábamos asignarle los atributos. Esto es increíblemente importante porque si no haces esto, entonces creo que el juego realmente se bloquea cuando no haces esto y tratas de engendrar a las entidades reales, eso es realmente importante. Entonces también agregamos aquí mismo el EKG de desova. Y luego en nuestro modo de curso MC, aquí mismo, registramos el renderer. Y esas son todas las cosas que necesitábamos hacer. El archivo geo, por supuesto, y la textura real aquí también son muy importantes. Pero aparte de eso, eso es más o menos todo lo que necesitas para una mafia personalizada, bueno, muy simple. Todavía hecho con labio gecko, como dije. Y luego siguiente conferencia, inmediatamente vamos a saltar y echar un vistazo a las animaciones muy cool que hay ahí, que básicamente están disponibles para nosotros. Porque eso es algo que es realmente poderoso y en realidad es bastante sencillo de usar. Definitivamente comparado con las animaciones de vainilla, porque esas son esas, no quieres usar las básicamente. Bueno, sea cual sea el caso, esto ya lo es entonces para esta conferencia aquí mismo, espero que te haya parecido útil esto y aprendas algo nuevo. Te veré en la próxima conferencia. 106. (temas adicionales) agregando animaciones de entidades con Geckolib y Geckolib: Muy bien, bienvenidos de nuevo al curso de forraje para 118. Y en esta conferencia vamos a estar agregando algunas animaciones a nuestra entidad personalizada que hemos agregado la última conferencia. Y para eso estamos en primer lugar, vamos a entrar en lo que vamos a abrir bancada de bloques una vez más. Ahora este mapache y el archivo de modelo de pellizco de bloque real debe ser proporcionado a usted, aunque es descargable desde la última conferencia o en esta conferencia, definitivamente deberíamos ser descargables. Y el, básicamente lo vamos a abrir y luego ir al grifo animado aquí mismo. Ahora, ya deberíamos tener aquí las tres de esas animaciones. Y básicamente voy a mostrar rápidamente la idea general de una animación. Sólo por el bien de la discusión, sólo vamos a hacer uno nuevo. Por lo que vamos a hacer clic en el botón pequeño plus. Y entonces puedes hacer una nueva animación aquí puedes ver esto. Ahora. Esto suele ser lo que quieres llamar a esta animación mapaches oscuros. Entonces este es el nombre del ítem. Y luego sean cuales sean las animaciones, sólo vamos a llamar a esta prueba por el bien de la discusión. Y entonces puedes saber qué puedes hacer este bucle. Puedes, como puedes ver, hacer muchas otras cosas aquí. Sólo vamos a confirmar, ¿voy a estar bien con nosotros? ¿ Ahora para esta animación? Una vez que puedes entonces básicamente hacer es que tengas una línea de tiempo en la parte inferior aquí. Y yo puedo, selecciona ciertas partes del cuerpo. Por ejemplo, puedo seleccionar el cuerpo y de repente se puede ver aquí abajo, obtengo la posibilidad de agregar fotogramas clave. Si alguna vez has editado un video, esto es muy similar a esto. Por ejemplo, podría decir, está bien, quiero enmarcar la posición, así que voy a hacer clic en el plus aquí. Entonces se puede ver que en esta posición en el código de tiempo 0, ahora tengo un fotograma clave para esta parte en particular. Entonces este cuerpo, no va a ser fotograma clave justo aquí. Entonces si entonces muevo el tiempo, digamos, digamos 0.52 frames dondequiera que esté esto. Haga clic en este Plus de nuevo. Ya se puede ver en el momento de 0.52, ahora tengo un segundo fotograma clave. Y si lo he hecho, por ejemplo, fueran a cambiar, o bien puedo cambiarlo aquí en esta posición. Entonces podría, por ejemplo, decir tal vez en el cuerpo real para subir dos, yo o bien puedo hacerlo o también puedo hacerlo dentro de la cosa real. Y se puede ver que a la izquierda, la posición real allí cambia también. Y fue realmente genial es que haya algunos métodos de flexibilización. Por lo que se puede ver estos básicamente representan cómo va esto. Porque si ahora vuelvo a poner esta diapositiva y pongo este botón de reproducción, se puede ver que esto sube. Esto es muy rápido. Así que tal vez vas a ser como, ya sabes qué, hagamos una pausa esto y vamos a mover esto para que me guste Esto va a ser un poco más lento. Y entonces se puede ver esto, ¿verdad? Para que lo veas moviéndose hacia arriba. Y luego se restablece, por supuesto, porque se trata de una animación en bucle en este caso. Básicamente se restablece aquí con las cosas fáciles que puedes. Hay ciertas cosas. Puedes hacer pasos. Se puede hacer algún tipo de flexibilización como esta donde es ir despacio y luego va más rápido. Incluso puedes hacerlo así donde es como muy rápido al principio y luego se ralentiza o alivia dentro y fuera. Se puede ver que hay muchos tipos diferentes. Esto es incluso como algún tipo de aspecto algo así como un poco de aleatoriedad, especie de rebotar hacia arriba y hacia abajo, lo cual es realmente genial. Entonces hay un montón de cosas que en realidad podrías hacer aquí. También hay algunas cosas realmente geniales que puedes agregar aquí. Ahora no estoy 100% seguro de cómo todos pueden acceder a los comandos reales. Pero si yo, por ejemplo, entro en el marco inactivo aquí, así que he hecho clic en este Idle. Ahora estoy en la animación ociosa real y hago clic en la cola real, y hago clic en la rotación. Se puede ver que tengo Matemáticas dot pecado. Entonces esta es sólo la curva sinusoidal. Básicamente aquí donde u dot n m el tiempo es solo el código de tiempo que estamos multiplicando eso por 150 y luego multiplicando el resultado por 225. Y esto básicamente resulta en que la cola va a girar básicamente alrededor de una manera muy, digamos, previsible porque la curva sinusoidal por supuesto va así, ¿verdad? Entonces esto es sólo una cosa general de matemáticas. Eso es realmente genial. Creo que en la página web sí tienen realmente la suma de los métodos que están disponibles aquí, básicamente para ver. Pero eso es algo realmente genial. Y sea cual sea el caso, volvamos a nuestras pruebas de animación con nuestro cuerpo aquí. Entonces podemos ver ahora nuestro cuerpo, se está moviendo hacia arriba y hacia abajo. Y esto es bastante genial. Ahora, por supuesto, cuando estás agregando animaciones, esto está haciendo que se vean realmente bonitas y realmente buenas. Todo eso. Mucho tiempo, va a ser, ya sabes, obviamente consume mucho tiempo. Así que sólo vas a necesitar probar un montón de cosas. ¿ Ves eso? Ojalá vaya a funcionar y entonces va a estar bien. Pero también tener una animación a pie. Para que puedas ver aquí esta es la animación a pie. Entonces también tenemos una animación sentada, pero esto en realidad no hace nada. Es sólo que básicamente los cuerpos enteros se inclinan un poco. Y básicamente el mapache está sentado aquí entonces la nación insular, ya hemos visto esto, pero básicamente sólo la cabeza y el cuerpo subiendo y bajando, muy ligeramente. Se puede ver esto. Se trata de un movimiento muy ligero hacia arriba y hacia abajo. Y luego la cola básicamente moviéndose un poco de ida y vuelta sólo para que tenga un poco de movimiento. Para que puedas ver eso. Simplemente incluso este pequeño pedacito de movimiento ocioso es suficiente para dar una ilusión muy agradable de que esto realmente esté vivo. Y así, como se puede ver, en realidad no implica tanto de ajustes que necesitas. Cosas que son muy, muy duras o algo así como la animación caminando, corriendo animaciones, especialmente para cuadrúpedos. Entonces para los animales con cuatro patas, eso es increíblemente duro, hay algunos recursos que realmente he encontrado. Si realmente te interesa esto, los vincularé también en los recursos. Son increíblemente cool. Entonces hay básicamente, es realmente una mirada anatómica de cómo, cómo, cómo básicamente cuadrúpedos Los animales caminan y cómo esto se hace básicamente en la animación. Entonces, animales de cuatro patas es un, bueno algo en animación que es muy duro. Así que va a ser algo bastante. Pero debido a que es Minecraft, estás trabajando con un poco de bloque que animal. Probablemente tengas un poco más de margen aquí, sea cual sea el caso, si esto realmente te interesa, te recomiendo encarecidamente revisarlos también, si eso es algo que te pueda interesar. Pero sea cual sea el caso, básicamente terminamos con las animaciones de voluntad general. En realidad voy a eliminar la prueba aquí de nuevo. Y entonces el resto va a estar bien. Lo que voy a hacer es una vez que se haga, básicamente puedo hacer clic en una pulsación Control S para guardar esto o también puedo ir, creo a la animación aquí. Y entonces puedo decir animaciones de exportación. Y creo que eso ya debería hacerlo. O podemos hacer guardar todas las animaciones. Vamos a guardar esto bajo realmente mapache escrito correctamente, no animación adyacente y sólo vamos a reemplazar esto. Eso está bien. Y luego volvamos a la inteligencia. En nuestro curso de activos MC, vamos a hacer un nuevo directorio llamado animaciones. ¿ Son animaciones? Sí, son animaciones. Y entonces lo que voy a hacer es que también voy a copiar sobre la animación real. Entonces la idea general que hay es que esto va a ser las animaciones mapache correctamente escritas. Ahí vas. Entonces esto es básicamente todos los datos que allí se necesitan. No necesitamos entrar en esto. Esto está bien. Ahora lo importante es que por supuesto ahora necesitamos especificar estas animaciones en el registro real en una entidad. Apertura de la entidad mapache. Lo que vamos a hacer es que vamos a agregar ante todo, el controlador así como los métodos predicados. Así que voy a copiar sobre el método GET producto. Esto se va a explicar en un momento. Para que como pueden ver, aún no tenemos la sesión, así que solo vamos a eliminar esto por el momento. Y en el controlador se va a mirar de la siguiente manera. Por lo que sólo vamos a tener punto de datos Agregar controlador de animación con un nuevo controlador de animación, controlador de código. Y luego estamos pasando aquí este método predicado. Eso es más o menos todo lo que hay. Y luego asegurándose de que todo esto esté escrito correctamente. Entonces estos nombres aquí mismo, la mitad del partido a los nombres que están dentro de la animación. Esta de aquí es la animación. Se puede ver esto realmente escrito, ¿correcto? Incorrectamente. No represento saber por qué, pero ahí vas. Sólo vamos a cambiar esto rápidamente. Ahí vas. Y entonces es un 100% correcto porque entonces el mapache está escrito así y luego aquí también, por lo que todo debería estar funcionando bien. Se puede ver que la animación de paseo se enfría cuando el punto del evento se está moviendo. Recomiendo encarecidamente. Echa un vistazo al evento de animación para algunas cosas en particular. Puedes, por ejemplo, ver que aquí hay algunas cosas que puedes echarle un vistazo, incluso algunos datos adicionales. Entonces eso también es realmente interesante. Pero en general el se está moviendo es probablemente el que aquí es más importante. Y luego algunas de las otras cosas que solo tendrás que jugar con esto también. Por lo que recomiendo encarecidamente solo estar abierto a la experimentación con esto y probar muchas cosas. Esto es lo mejor que puedo, básicamente sólo seguro que esta es una idea muy inteligente. Ahora, se podría decir, bueno, quiero decir, ¿qué más necesitamos? Eso es en realidad todo lo que necesitamos porque ya hemos configurado la animación en realidad en el medio. Entonces aquí mismo, ya lo hemos configurado. Animaciones reclutan datos de animación Jason, porque este Jason ya está aquí. Y ahora tenemos básicamente como predicado, este es el tipo de cerebro de las animaciones. Esto básicamente determina qué animación se está reproduciendo actualmente. Y bueno, quiero decir, eso es, eso es más o menos todo lo que necesitamos para esto. Como dije, si tienes algunas ideas realmente geniales, animaciones realmente locas, todo se reduce a usar banco de bloques, probando muchas cosas ahí. Como dije, tengo muchos recursos en animación por ahí también. Por lo que espero que eso te ayude. Pero por el momento, supongo, vamos a ver si funciona. Nos encontramos de vuelta en Minecraft. Así que veamos, vamos a engendrar unos mapaches y veamos, ahí tienes. Ya funciona totalmente bien. E incluso la animación caminando, echemos un vistazo a éste. Cuando empiece a caminar, vamos a ver. Bueno, es un poco difícil de ver a veces cuando eso se está alejando. Pero creo que se está trabajando para que sus piernas se estén moviendo mientras el paseo, sí. A veces la velocidad de movimiento y la animación no coinciden del todo. Esto es por supuesto algo que solo tienes que modificar y cambiará como hasta que básicamente funcione. Pero se puede ver que la animación ociosa real funciona totalmente bien. Y luego la animación a pie también funciona. Todo funcionando muy bien aquí. Aquí una nueva porción de nitrógeno. Por el bien de la discusión. Ahí vas. Quiero decir, eso es honestamente realmente genial. Y eso es realmente lo fácil que puede ser agregar algunas animaciones viejas, quiero decir, básicas con labio gecko a tus entidades de Minecraft, ¿verdad? Pero eso ya será por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo de lo nuevo. Y te veré en la próxima conferencia. Entonces, sí. 107. (temas adicionales) agregando variantes corporativas: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar agregando una varianza de clientes a nuestra entidad mapache ya existente. ¿Cuál es nuestra varianza? Bueno, es posible que sepas, por ejemplo, que los caballos pueden tener red de diferentes colores o simplemente en general, extras de diferentes colores. Y eso se hace vía varianza. Ahora vamos a añadir dos de esas variantes a nuestro mapache. Y la forma en que esto funciona es básicamente sólo tenemos una textura diferente. Así que sólo voy a copiar esos. Ahí vas. Tenemos un mapache oscuro y un mapache rojo. Esas son las tres variantes diferentes que tenemos. Mapache, mapache oscuro y un registro rojo. ¿ Y cómo ahora vamos a implementar esto? Bueno, en realidad es bastante sencillo, todas las cosas consideradas. Entonces esto es algo que vas a tener que hacer básicamente, si quieres que todos tus animales tengan variantes diferentes en todas tus entidades para tener diferente varianza, entonces estás va a necesitar una, bueno, en primer lugar, una variante de enum, y luego vamos a elegir básicamente dependiendo de esta enum, una ubicación de recurso diferente. En nuestro paquete de entidades, vamos a hacer clic derecho en nuevo paquete llamado variante. Entonces dentro de ahí, voy a meter, esta va a ser la variante mapache. Esto se va a cambiar a una enum. Y entonces en realidad voy a copiar esto porque lo real, el contenido de esto debe ser siempre el mismo. Lo único que debe cambiar aquí son estos básicamente sus valores de enumeración. Esa es la idea general. Cuando tienes una variante diferente, simplemente cambias el nombre de esto y luego renombres todas las cosas aquí también, ¿verdad? Entonces si esto fuera a ser llamado, quiero decir, ahora en realidad cambiaría el nombre también, pero sea cual sea el caso, así que acaba de cambiar el nombre por todas partes y entonces estarías totalmente bien. Todo este método estático que vamos a necesitar, vamos a necesitar este flujo de error final. Todo esto va a ser necesario. Lo único que es básicamente grueso de costumbre aquí es que el nombre de esto y luego también el nombre de tu varianza individual. ¿ Dónde usamos esto o dónde empezamos a usar esto? Bueno, vamos a usar esto en el renderizador mapache. Y la forma en que vamos a hacer esto es una vez más, voy a copiar esto más, pero todo el código está por supuesto disponible para ti en el repositorio de GitHub e individual igual de bien. Y esto es en realidad, podría parecer un poco complicado, pero en realidad es bastante sencillo. Por lo que ahora mismo vamos a importar esto. Ahí vas. Y luego vamos a tener un mapa. Se puede ver que esta es una ubicación por mapa variante. Este es solo un mapa que asigna una variante de registro específica a una ubicación de recurso. Eso es todo lo que hace. Aunque estamos diciendo, hey, si tenemos la variante mapache predeterminada, entonces esta es la textura a la que quieres señalar. Si tenemos una variante oscura, entonces queríamos apuntar a esta textura. Y si tenemos la variante roja, entonces vamos a viajar a esta textura. Se ve un poco más complicado, pero cuando se piensa en ello, en realidad es todo lo que realmente hace. Y si tienes múltiples entradas, si tienes más entradas aquí, ya sabes, solo agregas más entradas aquí. Ahora claro, vamos a ver aquí una advertencia porque ya hemos agregado esta real, en este caso clave aquí. Pero sí, eso es todo lo que realmente necesitas hacer. Entonces si tienes más, solo agrega más. Lo mismo aquí. Si tienes más, solo agregas más, asegurándote de que aumentes las ideas aquí, eso también es muy importante. Bueno, entonces en lugar de solo hacer esto, lo que vamos a hacer es que sólo vamos a decir, Ok, um, bueno solo queremos devolver la ubicación bivariante dot get, y luego tenemos a la entidad mapache disponible aquí. Pero bueno, la entidad discográfica en este momento, aún no tiene variante, ¿verdad? Eso no es ningún problema en absoluto. Porque ahora mismo vamos a sumar básicamente esas variantes. Así que sólo vamos a mantener esta flecha aquí por el momento. No, no se preocupa básicamente. Y luego vamos a sumar todas las cosas que necesitamos para la varianza. Así que una vez más, va a haber mucho copiado porque una vez más, mucho de este código siempre va a ser el mismo. Casi siempre va a ser lo mismo. Se va a quedar igual. Va a ser muy similar. Sólo hay que cambiar los detalles, pero haré todo lo posible para pasar y explicar todo lo que necesito. Entonces, antes que nada, vamos a necesitar un accesor de datos de entidad. Entonces este es el tipo de identificador de datos de variante. Esto es básicamente un sincronizar datos de entidad. Entonces es de tipo entero. Esa es la idea general. Por lo general me gusta poner esto en lo más alto de la clase porque es sólo un poco más legible pesar de que esto también pertenece a la varianza. Quiero mantener esto en lo más alto de la clase y luego el resto va a ir por debajo de esta varianza comenta aquí. Vale, ¿cuáles son las cosas que vamos a necesitar? Bueno, lo primero que vamos a necesitar es vamos a necesitar un método set variant. Entonces ahí vas con una variante récord. Y luego podemos establecer los datos de entidad de tipo date data ID type variant, que es exactamente estos datos sincronizados que hemos creado aquí arriba. Y luego lo vamos a poner en la identificación. Y luego usando una operación aquí, no necesitamos entrar en los detalles. Esto es más o menos lo que hace el caballo también. Por lo que la mayor parte de esto se toma del caballo también. Si en realidad cambiamos turno de prensa dos veces y vamos a ir al, creo que es el caballo abstracto el que tiene esto, pero no estoy 100% seguro. Creo que es el caballo absoluto. Esto tiene el ID. Bueno, echemos un vistazo al caballo de lo que tal vez es en realidad el caballo todavía tipo de identificación de datos. Podemos ver que esto se ve muy parecido. Y luego si hacemos clic en el botón central del ratón sobre esto. Se puede ver, por ejemplo, aquí mismo, establecer a variante que acabamos de establecer la variante y luego aquí establecer variante y marcas. Por lo que se puede ver que aquí básicamente también hace algunas cosas interesantes con un poco de cambio. Así que no nos preocupemos demasiado por ello. Digamos que sólo vamos a necesitar esto. Y si tenemos esto en la morgue, va a estar totalmente bien. Si tenemos un conjunto de variante, por supuesto también queremos una variante get, pero queríamos dos diferentes que queremos. Uno donde sacamos la variante mapache y otra donde realmente sacamos el entero de esto. Y eso es más o menos también lo que vamos a necesitar o el, éste de aquí mismo. Por lo que sólo podemos decir ahora instancia dot get variant. Y entonces éste ya no tiene flechas. Y ahora tenemos que hacer lo mismo en el modelo. Lo que puedo hacer es que sólo puedo copiar esto aquí. Y sólo vamos a decir aquí mismo, este va a ser el renderizador mapache eso, y entonces sólo vamos a agregar esto. Bueno, debería tener el punto ahí dentro. Ahí vas. Y luego esto se llama objeto en su lugar. Eso está totalmente bien. Y luego terminamos con la varianza real tanto en el renderizador como en el modelo. Esos son los dos únicos lugares donde se necesita cambiar esto. De lo contrario el resto va a suceder todo en la clase de entidad. ¿ Qué más necesitamos para la entidad? Bueno, una vez que el mundo salva, Por supuesto, todavía tenemos que salvar de alguna manera esto. Entonces, por lo tanto vamos a necesitar algunos datos de NVT. Así que todo esto se va a guardar aquí mismo, leer datos guardados adicionales, y luego también agregar datos guardados adicionales aquí mismo. Por lo que esos dos son muy importantes. Y luego por último pero no menos importante, básicamente creo que son los datos de sincronización definir. Esto es increíblemente importante porque esto siempre va a ser necesario si tienes algún tipo de entidad, accesor de datos, una barba, el tipo de identificación de datos, o sea lo es, supongamos que vamos a ver una sesión también. Por lo que un accesor de datos sentado de tipo Boolean. Esto también es lo que vamos a tener que añadir en este método define datos de sincronización es muy importante. Esto es definitivamente lo que vamos a necesitar. Y luego por último pero no menos importante, básicamente lo último que necesitamos es el método de desove finalizado. Y esto es muy interesante. Ahora la razón por la que necesitamos esto es porque esto se llama básicamente cuando usamos el, bueno, quiero decir, cuando esto en realidad esta entidad se engendra y esto finaliza el deporte. Así que literalmente vamos a decir, Hey, sólo dame un valor aleatorio de esta variante mapache. Y entonces vamos a ponerlo exactamente en esa varianza. Eso es todo lo que estamos haciendo aquí. Y con eso, básicamente la variante está completa. Y se puede ver que en general, es más o menos esto, estos métodos, todos van a ser casi siempre los mismos. Si tienes un nombre de enumeración diferente, el nombre cambia aquí. Aparte de eso, probablemente sea más o menos siempre va a ser lo mismo. Siempre debería estar ahí. Siempre debe ser lo mismo. En general, esto es más o menos todo eso. Ahí está Twitter. No es tan complicado. Solo necesitas saber dónde exactamente necesitas hacer esos cambios, por supuesto, en el renderador y en el modelo real también. Apenas esos dos cambios, solo agregando el mapa en el renderizador también. Entonces este mapa aquí mismo, pero en general, creo que esto debería ser bastante autoexplicativo, todas las cosas consideradas, nada aquí es dos, diría fuera de los límites de la mayor parte de esto. Por lo que esto debería ser bastante sencillo. Y ahora supongo, bueno, quiero decir, solo veamos si funciona. O nos encontramos de vuelta en Minecraft. Entonces engendremos algunos mapaches y veamos si se suman las varianzas. Y ahí vas. Oh no, tenemos una variante que es no tiene textura, pero no se preocupe, Eso debería ser solo un error tipográfico en el real tirando de la ubicación real del recurso. Se puede ver que el rojo funciona totalmente bien. Solo veamos de qué se trata esto y vamos a arreglar eso. Como sospechaba aquí mismo, hay un error tipográfico. No te preocupes en absoluto. Sólo vamos a arreglar esto. Entonces la C estaba desaparecida una vez más, con eso , básicamente todo, ahora estaría funcionando totalmente bien. Y eso es realmente lo fácil que es agregar alguna varianza personalizada a tu costumbre, bien a tu entidad personalizada. Pero eso ya sería por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. Si lo hiciera, agradecería mucho una revisión de usted. De lo contrario, te veré en la próxima conferencia. 108. (temas adicionales): Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar agregando una característica de habilidad de equipo a nuestra entidad personalizada, básicamente haciendo posible que podamos domar nuestro mapache. Y esto es una vez más, una de esas cosas que en realidad es bastante sencillo una vez que lo hemos implementado. Y se llega a ver qué métodos tenemos que anular aquí en la clase Entidad mapache personalizada. Ahora lo primero que tenemos que hacer es que tengas que subir aquí y realmente cambiar esto a animal amable. Entonces esto va a ser animal alcanzable. Ahí vas. Entonces sólo vamos a tomar esto, voy a seleccionarlo, presionar Control C, Control V para pegarlo aquí mismo y aquí mismo también. Yo creo que esos deberían ser todos los lugares donde hay que hacer esto. Entonces, por supuesto, una vez más copiaré sobre la mayor parte de esto. Todo esto es por supuesto, una vez más disponible para ti en el repositorio de GitHub en un individuo igual de bien. Esta va a ser la habilidad de equipo. Esto va a ir al fondo aquí, y podemos ver todas las cosas y vamos a pasar por cada uno de los métodos uno por uno. Se puede ver en primer lugar, tenemos este accesor de datos sentado. Una vez más, en realidad voy a mover eso también para que tengamos estamos diciendo a los datos en la parte superior aquí, entonces lo que es muy importante es porque tenemos otra de esas entradas de datos sincronizar. Necesitamos agregar esto a los datos de sincronización definidos. Esto es muy importante que hagamos esto. Entonces vamos a tener que decir estos datos de entidad estrella, definir, esto está sentado y entonces el valor predeterminado va a ser falso. Por lo que esto es increíblemente importante y que esto también se agrega aquí, lo contrario, esto no funcionará. Entonces esa es una de las cosas que tenemos que hacer. Ahora la razón por la que realmente necesitamos esta cosa en particular, el accesorio aquí, es por el hecho de que lo contrario el predicado para la animación no funciona. Porque en teoría, si en realidad entro al animal de mesa y creo que ahí está, el orden booleano de sentarse ya está ahí, así que esto ya existe, que significa que por qué alguna vez necesitaríamos otro accesorio aquí, otro tipo de datos aquí, bueno, en realidad no sincroniza este booleano aquí, creo que solo está disponible en el servidor. No estoy 100% seguro, pero creo que esto solo está disponible en el servidor. Pero por supuesto, en el caso de gecko lip, eso en realidad sólo funciona en el cliente, lo que significa que hay un desajuste entre este booleano aquí mismo o el servidor y el cliente. Por lo tanto, necesitamos el real sincronizar los datos aquí. Por eso tenemos esto. Y entonces también podemos ahora descomentar estas dos cosas. Ahora bien, esto es muy importante que tu sentada cuando se ordene meta, tiene una prioridad menor en ésta o una prioridad mayor, supongo que tiene que ser un número menor. Entonces básicamente todos los demás miran al azar a su alrededor a metas al azar para caminar, cosas así. Eso es muy importante porque si esto tiene una prioridad menor que por ejemplo, el gol de paseo aleatorio, entonces el mapache en este caso, aunque se le ordene sentarse, sólo se levantará y caminando y luego sentarse de nuevo y luego seguir caminando. Así que en realidad no lo que quieres que haga. Entonces entonces también podemos agregar de inmediato la animación aquí. Esta es la animación sentada. Entonces si esto está sentado, entonces sólo vamos a llamar básicamente a la animación que sentado mapache, nada demasiado loco, debería ser bastante autoexplicativo. Y con eso, se hace la animación. Y ahora en realidad podemos echar un vistazo a todas las diferentes cosas para la alcanzabilidad que necesitamos. Para lo primero es básicamente el gran método aquí, ese es el método de interacción de la mafia, pero este es el método que se llama cuando un jugador hace clic derecho. Entonces esta fregona, he hecho un artículo aquí, por lo que este es el artículo para domar. Acabo de elegir una manzana. Podrías, por ejemplo, reemplazar esto. También puedes agregar varios artículos si lo deseas. Por supuesto, aplica Java normal. Tú lo eres, así que no te preocupas. Ahí. Básicamente vamos a revisar, hey, es el artículo con el que hemos hecho clic derecho, en realidad el artículo para domar. Y si este animal aún no se alcanza, entonces vamos a entrar aquí, del lado del cliente, sólo vamos a consumir, así que vamos a hacer haga clic derecho, pero no pasa nada. No obstante, en el servidor que están, vamos a entrar y haciendo algunas cosas. En primer lugar, si la habilidad aquí es inestabilidad. Entonces la idea aquí es que si este no es el caso, lo que significa que si no estamos en motor creativo que estamos encogiendo o disminuyendo la pila de artículos por uno. Y si estamos en modo creativo de ellos, no lo estamos haciendo. Eso es todo lo que hay a ella. Aquí en equipo de animales es sólo un, ya sabes, un evento que básicamente es despedido cuando este animal es domesticado. Y luego una vez más, sólo nos estamos asegurando de que no estemos en el cliente básicamente. Creo que esto es básicamente redundante, pero sólo vamos a mantenerlo porque no hay preocupaciones ahí. Y luego vamos a decir, antes que nada, vamos a llamar al método ETA. Este jugador en particular dentro de un va a recomputar el camino para la navegación. Entonces vamos a fijar los objetivos para conocer esta fila. Este sería básicamente el objetivo agresivo. Entonces vamos a llamar al evento entidad de transmisiones con bytes siete. Por lo que este es un evento particular aquí. Se puede ver, ya que un paquete particular a todos los jugadores de ese evento, es, es bastante locura. Este es básicamente el evento que necesitamos enviar cuando se ha alcanzado un determinado animal. Creo que esto es el responsable de desovar los Corazones cuando en realidad consigas el equipo, entonces inmediatamente estamos poniendo sentado a verdad. Y en realidad podemos echar un vistazo al set sentado aquí. Entonces se puede ver que no sólo estamos estableciendo los datos de la entidad llevando a lo que estamos pasando aquí? También estamos llamando al conjunto ordenó sentarse método, que era básicamente establece este orden para sentarse en el animal de mesa aquí también a lo que estamos pasando. Entonces la idea es que necesitamos que ambos se establezcan correctamente. Y luego tuvimos esto, sí, esa es básicamente la idea general aquí. Y entonces aquí esta esta, una vez que estábamos ya hemos domesticado a este animal. Y una vez más, estamos en el, en el servidor asegurándonos de que usamos solo la mano principal porque si no tenemos esto, entonces básicamente nunca estamos siendo capaces de conseguir que el animal real se sienta porque esto es llamado para ambas manos. Esto es muy importante. Esto se llama dos veces, una por cada mano del jugador. Así que ten cuidado con esto. Esto también, por supuesto, luego se llama dos veces, uno para el cliente y otro para el lado del servidor. Entonces en total se llama cuatro veces. Así que ten en cuenta eso. Y este de aquí, es por eso que necesitamos la mano de interacción aquí. De lo contrario esto se llamaría dos veces. Y luego por supuesto, si alternan algo dos veces, bueno, simplemente vuelve a su posición original. Por lo tanto, el animal real nunca se sentaría. Entonces eso es muy importante aquí. Aquí. Básicamente estamos haciendo un pase cuando el elemento para domar se usa de nuevo, a pesar de que básicamente ya tiene nombre. Pero eso es todo lo que hay para el método de interacción de la mafia. Esta es básicamente la pieza central de esto, por supuesto, donde realmente lo estamos poniendo a ser domesticados. Y tenemos el set, el método de ajuste, nada demasiado loco. También tenemos el método set T. ¿ Dónde está este frío? Permítanme realmente echar un vistazo a esto. Esto es frío. En realidad no 100% seguro creo que esto es frío. También podría llamarse a través de algunas de estas cosas aquí mismo, pero básicamente estamos cambiando algunos de los atributos aquí si este animal es domesticado. Entonces esto es algo normal que básicamente puede suceder. Y entonces también necesitamos simplemente, no creo que tengamos que anular esto necesariamente, pero lo he sobrescrito en cuanto menos está el equipo donde básicamente este es el equipo al que pertenece este animal. Entonces tenemos el último pero no menos importante, el método booleano puede ser lixiviado. He puesto esto en falso. Ahora. Algo que es un error actualmente en gecko lip. No sé si esto sigue siendo algo en este momento, pero este ha sido un tema desde hace algún tiempo, es cuando esto es cierto y en realidad atan esta lesión, una entidad de labio gecko, entonces el plomo real es, es invisible. Todavía está ahí. Funciona, pero es invisible. No sé si todavía hay una solución. Voy a revisar esto en una fecha posterior también. Pero si o bien es fijo o si no está fijo y probablemente vamos a tener un fijo para eso en tal vez ya sea conferencias posteriores o en algún momento en el futuro también. Pero eso es más o menos todo lo que necesitamos para la habilidad del equipo. puede ver que definitivamente se pone un poco más complicado aquí. No es sólo como, Oh, vamos a conseguir una enum ahí, una especie de variante. Bofetea unas cuantas cosas ahí dentro y luego terminamos. Ahora, la habilidad de equipo es un poco más complicada, pero todas las cosas consideradas no fueron. Bueno, no es tan loco. La capacidad sentada es realmente lo que podría ser más difícil en algunas circunstancias porque todas las piezas tienen que ser correctas. Tenemos que estar enfriándolo de la manera correcta, en los momentos correctos. Y ahora es muy importante una vez más, es el objetivo. Esta es la mayoría de las veces lo que me ha pasado. Por qué básicamente dejan sentarse o cuando les ordenas que se senten. Y de repente el animal acaba de subir e ir a otro lugar y luego se sienta de nuevo. Pero esta fue una de las cosas. Después de haber agregado todo esto, ahora vamos a poder ver no sólo la animación sentada, sino también cómo domesticar al animal. Entonces veamos si funciona o por qué nos encontramos de vuelta en Minecraft. Entonces veamos si puedo domar el mapache. Y ahí vas, mejores amigos para siempre. Ahora está sentado. Ahora lo que suelo hacer para hacerlo básicamente se asegura de que se quede en el mismo lugar. Es sólo que voy a no encerrarlo en bulbo básicamente hacer un poco de una cueva aquí para que yo sepa bien, si definitivamente se ha movido, si está fuera de la cueva básicamente. Y así por el momento, esto se ve totalmente bien, como en realidad parece estar sentado ahí. Y también se puede ver la animación sentada, por cierto, vamos a echar un vistazo al CEO. Y luego si vuelvo a hacer clic con el botón derecho, entonces el mapache debería empezar a caminar de nuevo o simplemente usar otras metas básicamente para hacer lo que quiera hacer. Básicamente pasear por ahí, o cuando quiera hacerlo. Ahí vas. Ahora está corriendo otra vez. Entonces van y sí, eso es lo que quiero decir, se puede ver que en realidad es más rápido debido al aumento de velocidad que tiene, ha ganado a través de la domesticación. Esto es algo que ha sucedido en el domado. Vamos a echar un vistazo a eso en apenas un momento otra vez. Pero sí, eso es lo que quiero decir, eso es más o menos todo lo que realmente necesitábamos hacer. Y ahora tienes un mapache de Equipos Eso es realmente genial. Una vez más, la velocidad de movimiento aquí mismo es básicamente la razón por la que es tan maldita rápida. Básicamente lo estamos configurando a 0.5, creo. Veamos en realidad cuál sería el movimiento, 0.3. Entonces casi estamos duplicando la velocidad de movimiento. Esto es por supuesto algo como cualquier otro momento cuando se trata de los atributos, valores de ciertos atributos en este caso, o ciertas variables, solo tienes que jugar con ellos. Tendrás que cambiarlos probablemente muchas veces de cualquier manera, simplemente por si realmente quieres desenterrar y asegurarte de que tu mod esté correctamente balanceado, vas a tener que cambiar los números. Quiero decir, muchas veces esta es una de esas cosas donde una vez más, solo juega con los números. Pruebe un montón de cosas, estar abiertos a la experimentación. Y luego mientras quiero decir, nada básicamente se interpone en tu camino. Pero eso ya es entonces para esta conferencia aquí mismo, espero que te haya parecido útil esto y aprendas algo nuevo. Y te veré en la próxima conferencia. 109. (temas adicionales): O doy la bienvenida de nuevo al curso de forja para cuando 18. Y en esta conferencia, vamos a estar agregando una entidad de transporte personalizada a Minecraft. Entonces después de haber pasado con la entidad mapache, ahora vamos a sumar las entidades tigres. Entonces por supuesto, una vez más tener un modelo de bancada de blog para esto. Ahí vas. Esto es por supuesto también descarga ambos para ti, pero tenemos básicamente todo esto ya configurado y todo básicamente va a funcionar muy similar al mapache. Lo que vamos a tener es que vamos a tener una nueva clase, primer lugar, y esa va a ser la entidad tigre. Ahí vas. Ahora hay entidad tigre va a ser muy interesante. En primer lugar, una vez más copiaré sobre la totalidad más o menos de esta clase. Esta va a ser una clase muy larga, pero la mayor parte de esto va a ser muy similar al mapache, número uno y número dos, voy a explicar todo lo mejor que pueda, claro también. Entonces lo que vamos a ver aquí es que deberíamos conseguir dos. Está bien, eso está bien. Eso está bien porque esto se llama los tipos de entidad mod. En realidad, ahí vas. Y entonces eso va a estar bien también. Entonces una cosa que tenemos aquí es ver más entidades que van a estar bien. Y luego hay algunas otras cosas de las que en realidad podemos deshacernos aquí también. Y ahí vas. Ahora no más errores si copias esto del pastor de GitHub o de las gists, no habrá más errores presentes para ti. Y todo aquí debería estar bien o sí, debería estar bien. En primer lugar, lo que tenemos una vez más es algunas de las cosas de las sesiones. Para que puedas ver que está sentado, sentado. E incluso aquí tenemos la sesión y cuando hacemos clic derecho en la interacción de la mafia aquí, se puede ver esta vez si nos estamos agachando, entonces en realidad queremos poner el humo para estar sentado por causa de supuesto que también queríamos hacerlo como legible. Es por eso que tenemos esta interfaz de jugador manejable aquí mismo. Y eso va a ser lo interesante. Entonces si en realidad hago click en esto y presiono Control H, entonces deberíamos poder ver, ahí vas. Tengo el caballo abstracto por ejemplo. La mayor parte de esto se toma de las clases de caballo abstracto y de la entidad caballo. No puedo recalcar esto lo suficiente. Echa un vistazo a todos los ejemplos de vainilla. Aquí tienes tantos ejemplos de vainilla. Una vez que entiendas la estructura básica de esta clase de como una clase de entidad, entonces echar un vistazo a las clases de entidad de en vainilla es bastante sencillo. Entonces como dije, la mayoría de estas cosas son las mismas que en el mapache. Tenemos los controles registrados, el predicado para las animaciones. Tenemos los datos asíncronos, el sentado, y luego también tenemos estos selectores de spray. Entonces eso es muy interesante. Entonces el selector de spray aquí es para el selector objetivo, para el objetivo aleatorio no domesticado, esto es algo que básicamente se agrega donde agregué esto del lobo. Entonces si en realidad echamos un vistazo al lobo aquí mismo, se puede ver en el lobo también tiene una presa detectar, presa seleccionada aquí mismo. Y este también tiene éste aquí mismo. Por lo que se puede ver que básicamente cazaría diferentes rayos en esta etapa en esta máxima prioridad en este caso, ya que básicamente queríamos que hiciera todo lo demás antes de que hiciera esto. Pero esto es sólo una cosa añadida. No tienes que tener esto necesariamente, pero es algo genial. Se puede ver también tenemos gol de intento aquí. Esto es en realidad lo que, que el tigre realmente va a seguir cuando tengas un nabo en la mano, también está el elemento de mesa con él. Entonces si haces clic derecho con el nabo, entonces tienes una, como puedes ver aquí mismo, realidad tenemos un veinticinco por ciento de posibilidades que debería ser realmente domar esta entidad n sí, eso es más o menos esto. Y la mayor parte de esto se puede ver en realidad no es tan loco. Aquí empezamos a escribir. Este es en realidad el jugador que realmente ha cambiado esto. Por lo que haga clic en esto y luego llame a este jugador. Y entonces esta va a ser la mano un poco más legible de lo que podemos ver jugador dot star escribiendo esto. Básicamente vamos a empezar a escribir esto. ¿ Y cómo vamos a poder controlar esto? Bueno, la forma en que vamos a controlar esto, esto, con este método aquí mismo, puede ser controlado por un escritor. Y entonces aquí acabamos de regresar y controlar pasajero es de entidad viviente. Y luego aquí, creo que también tenemos que regresar. Esto también es bastante importante. Y luego el método de viaje también se toma del caballo. La mayor parte de las cosas se han sacado porque lo único que no vamos a tener es la capacidad de saltar con un tigre. Esa es la única cosa que no vamos a tener. Eso es más o menos todo lo que hay. Una vez más, también, es muy , quiero decir, es, es bastante sencillo. Anibal, solo puedes echar un vistazo al jugador rideable salto interfaz número uno y número dos también el caballo abstracto. Como dije, todo esto está a su disposición en las bibliotecas externas aquí mismo, ¿verdad? Todo el código de vainilla. No puedo subrayar esto lo suficiente como, bueno, lo fácil que es simplemente echar un vistazo a eso y básicamente entonces ser, ya sabes, conseguir algo de ahí. Agreguemos esto a los más tipos de entidades aquí mismo. Sólo voy a volver a copiar esto. Como siempre permitirse todo lo disponible en el repositorio de GitHub e individual igual de bien. Vaya a la entidad aquí mismo. Y entonces también vamos a hacer los dos modelos y renderizamos nuestras clases. Así que voy a decir modelo Tiger. Ahí vas. Y entonces también vamos a decir que el tigre, renderizador tigre va también. Y luego una vez más, sólo vamos a copiar esto. Esto es bastante sencillo y es más o menos miradas, debería parecerse exactamente como antes. Sólo tenemos que hacer el modelo también. Ahí vas. El modelo también. Está apuntando una vez más a la ubicación modal en el geo tigre justo aquí están la textura y luego la animación no son nada nuevo aquí mismo. Y luego en el renderizador, más o menos lo mismo donde solo tenemos los contextos de renderizado aquí mismo, y luego estamos haciendo un nuevo modelo aquí mismo. Ahora esto, por supuesto, una vez más tiene que enfriarse en el método de configuración del cliente aquí mismo. Entonces vamos a decir qué entidad tipifica tigre, y luego aquí el renderizador tigre, ahí vas. Entonces por supuesto, no olvidemos el evento que necesitamos llamar y que debería estar aquí mismo en los atributos. Desde luego queríamos establecer los atributos aquí a los atributos tigres que otorgan muy importantes. No olvides esto, y eso debería ser eso también. Añadamos también el, el nuevo desove exacto aquí. Vamos a duplicar esto y luego vamos a decir un tigre subrayado desowners Greg, en tu tigre y esto corresponden en su Greg y solo necesitaba conseguir los códigos de color reales porque en realidad los he preparado de antemano. Por supuesto. Digamos que este es el código de color para eso. Y entonces el color más destacado es este, asegurándose de que cambiemos esto a Tigre. Y entonces esto también está bien. El modelo, bueno, sólo vamos a copiar en realidad sobre los mapaches Baunach porque eso va a ser más fácil porque el contenido de cuál de nuestros no va a cambiar. Así que sólo vamos a decir que este es el huevo de desove tigre. Hace y luego sumarlo aquí al final subrayan también era archivo adyacente, supongo que mañana. Y luego aquí también, tigre subrayan desove. Esto es por supuesto casi todas las cosas que hemos pasado ya con el mapache. Entonces nada demasiado nuevo debería ser todo bastante explicativo por sí mismo. También agreguemos la animación tigre aquí mismo. Ahí vas. Entonces también vamos a tener el geo. Esto va a estar ahí mismo. Entonces abramos eso y agreguemos también el modelo de tigre hidroeléctrico. Y luego por último pero no menos importante en la entidad, vamos a hacer un nuevo directorio llamado tigre. Y luego en lugar de ahí, vamos a tener el PNG tigre real. Este es el extra también. Y eso es más o menos todas las cosas que necesitamos. Como dije, la mayoría de las cosas pasan en la clase de entidad tigre. Y también, como dije, la mayor parte de esto se acaba de tomar de los ejemplos de vainilla, de algunos ejemplos familiares donde hemos visto aquí el selector de presas, como dije, es sólo una cosa interesante. No necesariamente necesitas esto. Esto es sólo algo que me pareció interesante y pensé que yo añadiría esto también al tigre. Entonces quiero decir, es, como ya he dicho, casi todo lo que necesitamos. Veamos si funciona o si responde en Minecraft. Y como se puede ver, se ha agregado el tigre AG. Entonces vamos a ver. Ahí vamos. Por lo que algunos de los tigres aquí se suman con éxito en el juego. Y luego tomemos unos nabos. Sierra ahora, deberían estar siguiéndome una vez que en realidad puse esto y hace ellos, me están siguiendo. Entonces este es el objetivo tentador, claro, ¿verdad? Donde esto básicamente significa lo que lo real es que van a seguir. Y luego si sólo hago clic derecho, se puede ver que esto no fue, no tuvo éxito, no tuvo éxito. Una vez más, debería ser un veinticinco por ciento de oportunidad y hace ellos, ahora, en realidad lo tengo aquí y si hago clic de nuevo, entonces en realidad voy a pasar y se ve, no se ve muy extraño, pero es bastante cool y no puedo saltar. Como dije, esto es algo que probablemente vas a poder agregar a través de algunos ejemplos a través del caballo. En realidad debería ser demasiado loco. Y luego si cambio clic derecho, entonces se puede ver, entonces podemos hacer que este tigre se sienta también. Y eso también debería funcionar sólo bien. Vamos a ver que esto es un ejemplo de una entidad escribible y una entidad de tabla al mismo tiempo, básicamente tanto al mismo tiempo como ahí vas. Eso es en realidad lo fácil que puede ser también. Bueno, pero eso va a ser por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo y te veré en la próxima conferencia. 110. (temas adicionales) agregando un barco personalizado: O doy la bienvenida de nuevo al curso de forraje para 118. Y en esta conferencia vamos a estar agregando unos barcos personalizados a Minecraft. Ahora esta es una de esas cosas parecidas a la señal. Eso parece, quiero decir, debería ser mucho más fácil, pero en realidad es increíblemente frustrante agregar realmente. Así que una vez más, algunos, quiero decir, mucho de esto va a ser copiado. Pero una vez que hayas configurado esto, una vez, deberías poder agregar muy fácilmente nuevos tipos de embarcaciones a tu MOD y debería ser casi ninguna preocupación en absoluto. Así que lo primero que vamos a hacer es que vamos a hacer una nueva entidad. Lo primero que vas a ser como, Espera, ¿necesitamos una entidad? Exactamente. Por eso lo estamos haciendo básicamente después de las entidades. Esta va a ser la entidad del barco. Hace, sin embargo, sólo van a necesitar uno. Y luego una vez más, voy a copiar los contenidos aquí por aquí. Pero como dije, todo está disponible para ti en el repositorio de GitHub, un individuo igual de bien. Vamos a añadir esto y no deberíamos conseguir ninguna, vale, vamos a conseguir unas flechas, pero eso va a estar bien. Estos se van a vender en un poquito. Esto va a ser tipos de entidad mod realidad van en la entidad del barco que vamos a agregar solo un momento. Ahora, una vez más, vamos a tener un tipo de ID de tipo de datos interesante ocho, ¿verdad? Entonces vamos, una vez que puedas tener diferente varianza de una entidad en particular, esto es más o menos lo mismo que hicimos aquí con el tipo de ID de datos. Se puede ver que esta es la variante TI y este es el tipo. Entonces vamos a tener una configuración muy similar aquí mismo. En este caso, solo vamos a tener la enum de tipo real dentro de esta clase de entidad múltiple real. Y se puede ver tenemos la flor de cerezo uno con sólo el nombre Cherry Blossom. Y luego el resto se hace básicamente una especie de fondo. La idea aquí se hace básicamente por nosotros aquí mismo. Y honestamente, realmente, realmente, realmente no necesitamos mirar todas las otras cosas. Si quieres agregar múltiples al igual que cualquier otra enum, sepárelos por una coma y luego solo nombrarlos si algo diferente y entonces va a estar bien. Eso es algo que debes hacer cuando quieras agregar una nueva variante personalizada o un nuevo tipo de barco personalizado, también tienes que cambiar el método del artículo de caída del kit aquí mismo. Se puede ver que esto es una sentencia switch. Y luego aquí estamos dejando caer la tabla de flor de cerezo. Y luego si tienes otro, solo tienes que añadir aquí un nuevo caso y luego solo agrega ese artículo ahí. Bastante tan simple como eso. El conjunto de tipo de tablero get mod, ambos tipos deben ser bastante autoexplicativos. Leer aditivos adicionales del método de datos guarda. Sólo estamos ahorrando el tipo real de este barco. Y entonces aquí sólo estamos teniendo dos constructores. En realidad necesitamos esos dos constructores porque éste vamos a estar usando en tan solo un momento en el tipo de entidad mod. Por lo que en realidad voy a copiar eso más de 1 segundo. Por supuesto todo a tu disposición. Y se puede ver, llamemos a esto el tablero de subrayado mod. ¿ Qué tal eso? Eso podría ser un poco mejor. Y entonces se puede ver que esta es la entidad del barco, y entonces esto también está bien. Esto debería funcionar, esto debería funcionar. Y entonces este calentador si realmente podemos eliminar hace un día. Ahora, la entidad real del barco sólo va a ser el ítem que es un tema y luego el resto va a funcionar. Se puede ver que esto es una miscelánea, por supuesto que es inmune al fuego. El tamaño aquí es de las otras entidades del barco. Entonces si en realidad echas un vistazo a la clase de barco, esto es por supuesto, la clase disponible. Una vez más, echa un vistazo a esto. Si crees que hay algo más que quieras hacer, si hay algo especial que quieras hacer, echa un vistazo a eso y entonces deberías estar bien ahí también. Ahora vamos a necesitar también un renderer. Este va a ser el renderizador de votos modelo. Arriba. Ahí vas. Esto en realidad va a ser bastante sencillo, todas las cosas consideradas. Aquí hay una cosa interesante. Una vez más, lo copiaré. Pero todo esto está disponible para usted y no obtenemos errores. Y se puede ver aquí es algo muy interesante. Lo que tienes aquí son sus propios recursos. Este va a ser un mapa del tipo de tablero mod a un par de modelo de barco de ubicación de recursos. Esto es bastante locura. La idea general aquí es solo que queremos, esto es casi exactamente lo mismo. Verías esta ubicación de textura, más o menos lo que teníamos en los renderizadores aquí mismo, donde tenemos la ubicación de textura y luego la variante, eso es más o menos todo así que lo que tenemos aquí justo en una muy mucho un método más complicado. Y es lo que es porque esto es lo que este tiene razón. Por lo que el modelo de barco de localización de recursos de pares es lo que el modelo con ubicación meses. Y si hacemos esto en un mapa, diferentes tipos y luego pares diferentes, y eso básicamente va a funcionar. Ahora esto en realidad lo suficientemente interesante, sólo va a hacer lo siguiente donde básicamente éste parece una locura alucinante. Esto parece, oh dios mío, lo que está pasando aquí el ****. Literalmente lo que estamos haciendo, estamos pasando por todos los valores que todos los tipos que hemos definido para nuestros barcos o barcos personalizados y luego solo haciendo nuevos pares, ¿verdad? Así que vamos a pasar por todos ellos, hacer un nuevo mapa para esto y decir, Hey, vale, ahora vamos a hacer un mapa con este tipo en particular. Entonces vamos a pasar, digamos que tenemos siete tipos diferentes. El primer tipo, y luego solo vamos a decir cualquiera que sea el nombre. Aquí es donde busca el modelo. Y luego la ubicación de la capa modelo. Entonces este es el modelo de barco real siempre va a ser el modelo de barco AUC. Por lo que estos son los modelos de barcos reales. Se puede ver por esto que no hacemos un modelo de barco personalizado. Así que todo esto va a ser el normal. Si realmente quieres modelos de barcos personalizados, solo vas a tener que averiguarlo por tu cuenta. Recomiendo encarecidamente echar un vistazo al modelo de barco aquí mismo. Esto debería ser, quiero decir, definitivamente algo que va a ser un buen lugar para empezar básicamente, pero definitivamente va a ser un poco más complicado. Y luego cuando hemos creado esto, la idea es que entonces esto se devuelva básicamente aquí mismo en el modelo con método de ubicación, que se puede ver, estamos comprobando si este barco es o no de tipo o una instancia de una entidad modelo de barco mod más bien. Y entonces solo vamos a devolver el recurso de bola real con el tipo real. Esto es todo lo que estamos haciendo aquí. Se ve un poco loco y es como, wow, esto es una locura absoluta, pero en general en realidad no es tan loco. Entonces, ¿dónde necesitamos esto? Bueno, por supuesto que vamos a necesitar esto una vez más en el método de cliente MC aquí es ordinario curso MC MOD y luego en la configuración del cliente aquí mismo. Entonces vamos a decir que esta es la entidad bolt y esta va a ser el renderizador de votos mod. Y ahí vas. Eso ya funciona. Y esa es esa configuración también. Y entonces solo necesitamos un artículo para esto. Por lo que curiosamente, todavía vamos a necesitar un artículo personalizado para esto también. Esto va a ser un voto MOD Artículo. Y luego en realidad hay un error tipográfico ahí dentro. Sólo vamos a arreglar esto rápidamente. Ir artículo. Y una vez más aquí, algunas cosas que se copiarán. Este es en realidad el clúster es lo menos. Bueno, quiero decir, no diría necesariamente interesante, pero la menor locura que tenemos este método de uso, básicamente sólo haciendo las cosas que pasa cuando hacemos clic con el botón derecho. Esto es más o menos quiero decir, es casi uno a uno del artículo del barco. Podemos ver esto como el artículo del barco aquí mismo. Y este es el método estadounidense. Se ve casi exactamente igual. En lugar de hacer una nueva junta directiva, hacemos un nuevo voto mod debe ser bastante autoexplicativo aquí, y el resto es casi exactamente lo mismo, más o menos lo mismo. Entonces ahí vas. Y bueno, después de que hayamos añadido esto, hagamos también el ítem fuera de esto para que podamos deshacernos de la última flecha allí. Vamos a copiar sobre el atardecer mágico. Este va a ser el, ahora éste es en realidad el barco específico. Entonces este va a ser el ítem del voto de la cereza. Para cada uno de tus diferentes tipos de tablas vas a necesitar diferentes barcos, básicamente elemento de barco cereza, en realidad lo sentimos, este es el artículo Chevy Bolt. Llamémoslo Sherry. En realidad tablero de flor de cerezo. Eso es mejor. Ahí vas. Sí, eso les hace más sentido. Barco de flor de cerezo. Y entonces se trata de un voto MOD Ítem. Ahora esto realmente toma como su primer parámetro, el software normal. El segundo parámetro, como se puede ver, toma en el mod boat tipo de entidad, tipo entidad, punto árido, impresionante. Este fue uno demasiado lejos del ego. En realidad hay, ahí vas. Ahora obviamente funciona aquí. Para que puedas ver ahora hemos creado el artículo con viñetas MOD aquí. Y entonces esto también debería funcionar en la entidad justo aquí donde vamos a volver ahí mismo. Ahora, todas las flechas deberían irse. Ahora sólo tenemos que agregar los archivos JSON. Entonces esta sería la traducción ante todo, por supuesto, para el ítem, esto va a estar aquí mismo, así que sólo vamos a copiar esto. Este va a ser el barco de subrayado de cereza flor subrayado. Y luego por supuesto, lo mismo aquí. Barco de flor de cerezo. Ahora hay otra cosa, por supuesto, el modelo de artículo, no el modelo de artículo. Es sólo un modelo de artículo normal. Nada demasiado loco por esto, pero aún así sólo vamos a copiarlo sobre n Vamos a echarle un vistazo. Se puede ver solo puntos a una textura de elemento específico. Aquí no hay nada loco. Lo mismo con la textura del artículo. Esa es sólo la textura normal del barco. Realmente texturizado básicamente un poco para nuestros personalizados. Por lo que podemos ver que hace es el tablero de flor de cerezo. Otra la pregunta es el peso pero mientras que la textura de la entidad ahí, bueno, esto vuelve a entrar en entidad. Y voy a hacer un nuevo directorio llamado barco. Y luego dentro de aquí estaba la flor de puntuación de fondo de cereza, este nombre aquí mismo. ¿ Qué es muy importante? Tiene que ser el mismo que el nombre suministrado en el tipo de este nombre tiene que coincidir con este nombre porque eso es lo que busca el renderer en cuanto a una textura. Entonces eso es muy importante. Y así es como se ve. Básicamente una vez más, simplemente básicamente configuración. Entonces esto es todo de la junta directiva. Y entonces puedes, esta es la textura básica del barco. Esa es la idea general. Ahora, en teoría, creo que esto debería ser todas las cosas que necesitábamos para agregar un barco. Como dije, es sólo con el letrero. Es bastante loco. Como todas las cosas consideradas. Hay algunos pasos bastante importantes, como dije, la mayoría de esto si solo lo copias y luego básicamente puedes cambiarlo. Por lo que vas a necesitar un nuevo artículo personalizado para cada uno de los nuevos tipos de embarcaciones. Nuevo tipo de barco aquí mismo. Entonces esto es algo que necesitas y luego el resto debería estar bastante bien. Creo que deberías poder utilizar este tipo de entidad para todos ellos. Y eso debería ser más o menos todo lo que hay que hacer. Pero por el bien de finalización, veamos si funciona. O si nosotros mismos de vuelta en Minecraft y se puede ver el barco en flor de cerezo se ha agregado con éxito al juego. Ahora vamos a ponerlo abajo. Y ahí está, el tablero de flor de cerezo. Y podemos usarlo en el agua. Todo funcionando totalmente bien, igual que esperaríamos que fuera. Y luego si en realidad cambio al modo de supervivencia rápidamente, vamos al modo de sobreviviente y veamos si esto cae y de hecho cae un tablero de flor de cerezo, tal como esperarías que lo hiciera. Entonces ahí vamos, trabajando todo, sorprendentemente. Y eso es realmente lo fácil que es. Como dije, hay bastantes pasos por los que hay que pasar. Pero una vez que los atraviesas, entonces en realidad es bastante sencillo. Pero eso va a ser por esta conferencia de aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. Y te veré en la próxima conferencia aunque. Sí. 111. (temas adicionales) Generación mundial) de entidades: O doy la bienvenida de nuevo al curso de forja para 100 adolescentes. En esta conferencia, vamos a estar agregando generación de entidades personalizadas a Minecraft, pero hemos creado nuestras entidades ahora también queremos que engendren en el mundo. Entonces para eso solo vamos a hacer una nueva clase aquí mismo. Entonces en el paquete de agenda mundial, vamos a hacer una nueva clase de degeneración de entidad mod. Y una vez más, éste lo copiaré porque en realidad básicamente he preparado un poco de una clase aquí que puedes usar. Entonces esto es, por supuesto que necesitamos cambiar esto a más de dos tipos van y luego éste también. Esto no debería ser preocupación para ti. Deberías poder simplemente copiar eso. Y se puede ver toda la clase aquí, tenemos un método de esporas entidad que vamos a llamar aquí mismo, básicamente en la parte inferior aquí. Así iteración de entidad mod en desove vacío, y luego estamos pasando en el evento de carga de IM aquí. Y eso debería ser más o menos lo que necesitamos. Y luego se puede ver que hay algunos métodos que podemos usar bajo. Por ejemplo, agregue entidad a todos los biomas de anulación. Tenemos una entidad a todos los biomas. Neto a nether. No, nether, lo siento, cierto. Así que hay por todas partes pero la parte inferior, cada robot, el final. Y luego aquí también, todos los biomas incluyendo y otro. Y por lo general en teoría, si tienes esos métodos, deberías poder muy fácilmente en otros que más o menos hacen lo mismo que quieres hacer. Quiero decir, honestamente, en este punto, algún conocimiento de Java es por supuesto, mucho algo que deberías tener en este punto. Y una vez que lo tengas, entonces agregar un poco más aquí no debería estar demasiado loco, aunque no necesariamente entiendes todo si eres como, vale, esto lo agrega a todos los biomas, pero al final es como, vale, probablemente puedas averiguar cómo agregarlos solo al final, por ejemplo, sólo literalmente eso, eso es todo ahora mismo. De repente todo sólo hasta el final biomas, Eso es más o menos todo lo que hay a ella. Entonces esta clase, como dije, he usado antes. Y sin embargo aquí acabamos de tener el ejemplo en este momento de que los vamos a sumar a básicamente todos los biomas abrumados, en este caso, tanto el mapache como el tigre. Entonces después de haberlo añadido aquí, Eso es en realidad literalmente todo lo que tenemos que hacer. Supongo que por el sake de finalización, veamos si funciona. Se traduce de nuevo en Minecraft. Ahora en teoría, ni siquiera tenemos que hacer un nuevo mundo para esto porque las entidades lo son, como engendran. Quiero decir, yo no necesariamente diría dinámicamente, pero no detectan de inmediato sobre básicamente el mundo que se está generando. Entonces veamos si podemos encontrar alguno de nuestros personalizados. Fue que ya tigre ahí está. Ya hay un tigre aquí en el bosque. Hay otro, otro. Pero eso es lo que quiero decir, en realidad es lo fácil que puede ser. Uh, viste que eso es bastante sencillo. Todas las cosas consideradas, como dije, no cambiarlo es debe ser totalmente fácil también. Se puede ver que hay algunos tigres más. Yo sí quiero tal vez podamos encontrar algunos mapaches también. Tal vez justo rápidamente sobre esta colina, comando. Algunos mapaches. Están, vámonos. En realidad los encontramos para leer mapaches y dos registros oscuros. Así que eso es bastante guay. Sí, Entonces así es en realidad lo más fácil de agregar alguna generación de entidades personalizada Minecraft que ya lo tiene para esta conferencia aquí mismo. Como siempre, por supuesto, todo el código está disponible para ti en el repositorio de GitHub e individual igual de bien. Pero de lo contrario te veré en la próxima conferencia. 112. (temas adicionales) agregando oficios personalizados a los villagers: O doy la bienvenida de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar agregando oficios personalizados a un aldeano. Entonces esto va a ser rasgos personalizados para los pobladores ya existentes, muy importantes aquí. Por lo que no vamos a estar agregando ningún aldeano personalizado en este momento. Esto podría suceder en el futuro, pero no contaría con eso solo necesariamente en este momento. Entonces tenemos que entrar en nuestra clase de Eventos. Sólo hay un evento aquí. En la clase más avanzada. Sólo voy a copiar sobre el método y es muy, muy sencillo. Esto es todo lo que necesitamos. Para que puedan ver sólo vamos a usar los oficios aldeanos de n aquí mismo. Y entonces solo vamos a decir, hey, si el tipo es específico, una profesión que donde queremos sumar nuestros rasgos también, entonces solo le agregamos nuestro oficio. Eso es literalmente todo lo que estamos haciendo. puede ver que es muy, muy sencillo. Se puede ver que esta es la forma en que filtra. Entonces si quieres agregar algo para otra profesión, solo tienes que copiar la declaración if y cambió el profesional aquí mismo. ¿ Algo más que quieras aquí? Puedes especificar el nivel aldeano justo aquí cuando hagas oficios que aún. Y luego pasas por el pueblo o nivel de palanca aquí, y luego solo agregas cualquier oferta comerciante que quieras. Entonces el, éste de aquí mismo, por lo que la verdadera esmeralda aquí es lo que pagas. La oferta comerciante. También puedes poner un artículo de dos, tres artículos, pilas, y luego esas serían las dos cosas que tienes que pagar. En este caso, tenemos una pila de artículos, la Esmeralda a las esmeraldas. Esto es lo que pagamos, y luego vamos a conseguir nabos de riqueza para eso. Entonces puedes ver usos de Max, podemos usar esto diez veces. La velocidad es de 50. Creo que esto es en realidad un poco demasiado alto para las cosas aquí. Entonces creo que esto es más en el reino de como experiencia de un solo dígito por lo general, pero sea cual sea el caso, quiero decir, todos esos números recomiendan encarecidamente solo jugar con ellos de una manera o el otro. Es decir, eso probablemente sea lo más inteligente de todos modos, pero eso es literalmente todo lo que necesitas. Simplemente puedes copiar esto en tantas declaraciones if aquí como quisieras, tantos rasgos como quieras agregar. Pero eso es literalmente todo lo que tienes que hacer es realmente muy fácil, realmente sencillo. Quiero decir, no puedes hacerlo más fácil, honestamente, realmente. Quiero decir, supongo que sólo por el sake de finalización, vamos a ver si funciona o si nuestras respuestas de vuelta en Minecraft y pueden ver ya tenemos los nabos aquí mismo, así que sólo puedo ponerme a las esmeraldas y voy a por mis nabos 12. Eso ya funciona, nuestra costumbre. Y se puede ver cuánta experiencia el agricultor real de nuevo a partir de eso. Y entonces en realidad vamos a ir a la herramienta Smith y sólo vamos a conseguir algunas herramientas aquí para que básicamente podamos nivelarlo hasta el nivel tres porque las necesitamos para el nivel dos, nivel tres, vamos a conseguir un poco de hierro lingotes vidente, si también intercambias, lingotes de hierro la meta. Y entonces esperemos que esto vaya a funcionar. Vamos por unos lingotes de hierro. Y luego el nivel tres debe estar a la vuelta de la esquina. Hace ellos en actualización, actualización. Vete y ahora veamos. No tenemos el Paxil en este caso, por lo que esto no funcionó del todo. Bueno, bastante justo. Supongo que digamos el otro entonces. Déjame simplemente actualizarme rápidamente o esta herramienta Smith fue un poco más cooperativa. Se puede ver el cobalto Paxil. Ahí vas. Para que podamos conseguir esto y luego podríamos usarlo. No obstante nos gustaría. Ahí vas. Entonces como esperaríamos que la herramienta real funcione, funciona, y ahí vas. Fue capaz de ser negociado aquí a través la herramienta real Smith y aquí una vez más, los nabos aquí mismo, sólo podemos conseguir algunos de ellos y se van. Por lo que el max usa también funcionando totalmente bien, pero justo cómo esperamos que realmente se enfríe. Y eso es realmente lo fácil que es agregar algunos rasgos personalizados a los aldeanos. Como dije, esto es por supuesto pobladores existentes, pero esto todavía ya agrega bastantes ideas diferentes a tu mod, lo cual es realmente genial. Así que recomiendo encarecidamente revisar esto, pero de lo contrario esto va a ser por esta conferencia aquí mismo. Espero que hayas encontrado esto útil y hayas aprendido algo nuevo. Nos vemos en la próxima conferencia. 113. (1.18.2) Actualización de forja a 1.18.2: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar actualizando nuestro proyecto a 118 hasta ahora con el lanzamiento de 1880s, vienen algunos cambios, pero afortunadamente nada que podamos arreglar bastante corteza en realidad. Nada es demasiado loco. La única cosa curiosamente que en realidad está completamente rota o no completamente, pero en mayor grado, ¿el título es graciosamente suficiente? No sé por qué cambiaron la pantalla del título, pero sea cual sea el caso, solo vamos a actualizarnos y luego vas a ver básicamente los cambios en el archivo construido del DOD Gradle. Por supuesto que hay algunos cambios por hacer. Entonces lo que vamos a hacer es, antes que nada echar un vistazo a cuál es la versión actual. La versión actual, como se puede ver, 40012, una vez más, claro para ti, esto en el futuro probablemente va a ser una versión posterior. Así que sólo vas a tomar eso en ese momento entonces, y luego vamos a estar bien. Entonces vamos a hacer eso primero. Entonces vamos a ir aquí mismo a las dependencias 40012. Y entonces esto es solo para comprobar, doble comprobación 40121, 1000th 2. Eso es correcto. Y entonces antes de realmente recargar esto, también queremos conseguir la versión más nueva de, de labio gecko porque creo que en realidad la antigua no funciona. Por lo que queríamos en 312 también aquí mismo, acaba de ir a la instalación que una vez más, y luego estamos usando eso también. Así que vamos a hacer este justo aquí que hace. Y eso debería ser más o menos. Aparte de, por supuesto, los mapeos de pergaminos, esto es increíblemente importante para los mapeos de pergaminos. En realidad queremos mapeos de pergaminos muy específicos y van a ser los siguientes. Voy a copiarlos y esto va a estar, por supuesto, una vez más disponible para ti en el repositorio de GitHub, un individuo igual de bien. ves, básicamente estamos tomando los mapeos de pergaminos de 1800 y luego poniendo sobre eso los mappings oficiales normales de 1880. Si no tienes esta configuración así, entonces realmente vas a encontrar algunos problemas y algunos métodos no estarán disponibles. Así que por favor ten en cuenta que si estás usando imanes personales para usar esto, o si se actualizan a 172, entonces por supuesto también puedes actualizarlo a esa versión en ese momento. Pero entonces vamos a hacer clic en el pequeño elefante. Si eso no aparece, puede abrir la pestaña Gradle y luego presionar la recarga o cambios de Gradle. Ahora esto una vez más podría tardar hasta uno o dos minutos. Y debido a que ya lo he hecho, esto debería ser tomado por mí. Normalmente hay como un par de segundos. Veamos, Solo sé paciente y deja que pase. Y luego veremos después de que consigamos una construcción exitosa, se construyeron con éxito en realidad sí tomó unos buenos dos minutos aquí. Pero una vez más, por supuesto, solo sé paciente y espera hasta que tengas éxito una construcción y entonces vas a estar bien. Pero lo primero que vamos a hacer es que realmente vamos a entrar en nuestra clase de mod curso MC y vamos a hacer una cosa y eso va a ser tirando del gecko lib dot inicializado. Esto probablemente debería haber sido agregado de antemano, pero ahora es el mejor momento que nunca para simplemente agregar. Y entonces vamos a estar bien aquí. Creo que es a continuación estrictamente necesario, pero definitivamente se recomienda, al menos al menos. Y luego cuáles son los cambios mientras los cambios ocurrieron principalmente en las etiquetas, luego también los cambios que suceden en los paquetes mundiales. Vamos a echar un vistazo a eso en un momento. Y luego también hay un pequeño cambio en la entidad de bloque con la receta personalizada. Para antes que nada, vamos a abordar las etiquetas aquí mismo. Se puede ver que el impuesto de nombres opcional ya no existe. Pero lo que sí existe es la clave TAC, y sólo vamos a reemplazar esto por tachuelas. Haga clic en él, presione Alt e Intro importar esta clase. Y luego vamos a cambiar todas las etiquetas opcionales a tack key. Ahí vas. Y luego en lugar de crear un opcional aquí, simplemente hacemos dot create. Se puede ver que sólo estamos cambiando esto a Crear. Y ahí vas. Eso es más o menos todo lo que tenemos que hacer ahora, una cosa que aún no funciona como la vara de dote valiosa aquí podemos ver, se puede ver, no podemos sólo todos los Contiene aquí mismo. Ahora, ¿esto es lo que dirías? Quiero decir, un poco molesto para ser honesto. Esta es la forma en que esta configuración se ve realmente extraña. Entonces esto es lo que necesitas poner ahí. Ver registro bloque de puntos, él titular o garganta. Entonces vamos a conseguir básicamente la clave de recurso de registro para este bloque que estamos pasando aquí. Entonces estamos diciendo, de acuerdo, ¿este tenedor está dentro de los objetos de valor de la varilla de espiga? Es una locura la forma en que esto está configurado ahora, no sé por qué ocurrieron los cambios. Sólo digo que esta es básicamente la forma en que tenemos que hacer esto. Y sólo voy a, sólo vamos a ser capaces de encontrar con él básicamente. Pero esos son los cambios aquí mismo. Por lo que se hacen las etiquetas. En realidad, entonces vamos a entrar en la receta justo aquí. Cualquier receta mod, esta línea de aquí mismo ya no puede estar en este método. Lo que realmente queremos hacer es en el paquete de eventos, en el modo evento eventos pasados, queremos agregar un nuevo evento. Así que sólo vamos a copiar esto por el momento aquí. Esto va a ser registrar los tipos de recetas. Entonces lo que vamos a hacer es que sólo vamos a tomar este evento de registro del Registro aquí mismo, y lo vamos a cambiar de la siguiente manera. Entonces vamos a decir que esto en realidad no es en global se da cuenta, pero esto es en realidad el serializador de recetas hace. Entonces esto es lo que necesitamos. Por supuesto esto una vez más disponible para ti en el repositorio de GitHub en individual igual de bien. Y luego vamos a copiar esta línea si tienes varios tipos de recetas, por supuesto quería agregarlos todos aquí, todos los métodos de registro de puntos de registro, y eso iba a estar bien. Ahora esto funcionará también. Y ahora podemos entrar en la locura que va a ser la generación mundial. Pero en el cultivador de árboles abstractos, se puede ver básicamente ahora ya no queremos que la característica configurada aquí. Lo que realmente queremos es un retén, ¿verdad? Entonces vamos a decir Aguanta y entonces esto va a ser muy interesante. Va a haber signo de interrogación extiende, extiende la característica configurada aquí mismo. Y luego vamos a hacer esto y luego podemos movernos a la clase de entidad configurada y luego básicamente cambiar esto. En consecuencia. Por lo que esto también va a ser titular. En este caso de signo de interrogación se extiende, entonces se configura la función y luego aquí al final, agregando el corchete de ángulo de cierre. Una vez más, por supuesto todo a tu disposición en el repositorio de GitHub, un individuo igual de bien. Entonces lo que vamos a ver es esto configurado ya no necesitamos incluir el punto. Vamos a reemplazar eso por una coma y luego eliminar tanto los paréntesis de apertura como de cierre al final. Esto ya no debería ser un error. Ahí vas. Y esto también debería estar bien. Ahora, lo que tenemos que hacer es en realidad ahora podemos pasar de la función de configuración para configurar característica a colocar característica. Ahora sí en realidad tenemos que agregar otra característica de lugar aquí, y voy a copiar esto una vez más, todo lo disponible para ti en el repositorio de GitHub en individual igual de bien. Y se puede ver aquí, básicamente tenemos esta característica de lugar una vez más en lugar de este titular aquí mismo. Y básicamente estamos filtrando por bloqueo de supervivencia del muestreo, igual que estamos haciendo aquí. Simplemente en lugar de hacer esto en línea, básicamente lo estamos haciendo con una característica de place aquí. Y luego estamos usando la función place en esta lista de configuración de características aleatorias, igual que estamos haciendo aquí. Entonces es muy, muy similar, sólo un poco diferente, supongo, cuando se trata de los remeros, esto también debería ser bastante sencillo. Sólo tenemos que cambiar esto aquí mismo. En realidad ya no queríamos llamar a esto. Entonces el real se vacía ya no es una cosa. Queremos hacer algo como esto, pero no quieres ni siquiera devolver algo porque esto en realidad solo toma esto. Vamos a hacer algo como esto. Y entonces esto va a ser el utils de colocación, lo que necesitamos cuando la colocación utils, eso es sólo cuando está vacío. Y entonces vamos a pasar esto aquí y voy a terminar esto con uno justo ahí. Permítanme simplemente reformatear rápidamente esto un poco para que en realidad pueda ver dónde estamos aquí. Déjame un bloque simple con una nueva configuración de bloques. Bloquean dicen proveedor de filas. Vamos a pasar el cursor sobre esto. ¿ Qué queremos? Esto es por supuesto, va a ser también titular. Sólo tenemos que cambiar esto a un tenedor que hace, y entonces esto debería funcionar también. Ahí vas. Una vez más, por supuesto que siempre puedes simplemente copiarlo. Se puede ver que los cambios aquí o no tan locos, simplemente son realmente sintaxis, igual aquí con el orden. El orden es en realidad probablemente el más fácil. Sólo tenemos que cambiar esto y luego cambiar esto a un tenedor también. Hace ellos. Y entonces esto también tiene que ser de configuración de guerra, muy importante aquí. Ahí vas. Entonces como se puede ver, más o menos trabajando también. Por lo que estos son los cambios, por supuesto, los cambios en 0.5. Por lo que tengo que tener lugar aquí mismo en las últimas características donde todos son titulares también o no o configuración sobre titulares. Permítanme copiar sobre el titular aquí. Ahí vas. Aguanta un ir. Y voy a hacer esto por cada uno de ellos sólo que ya lo tengamos y lo sostengamos aquí también. Ahí vas. Entonces vamos a hacer click en él, Alt y Enter para importar. Y entonces en lugar de tener estos, Esto colocado, lo que en realidad queremos es simplemente quitar el lugar de nuevo, añadiendo aquí una coma. Ahora esto no va a ser revisado con, esto en realidad va a reaparecer. Y ahora hace, mismo aquí en lugar de lugar, sólo vamos a hacer una coma y luego hacer algo como esto. Y entonces mismo aquí que he colocado, reemplazándolo por una coma y luego también podemos quitar eso y eso debería estar funcionando también. Todavía tenemos que ir a las clases de Gen porque aquí también ha cambiado. Esto ahora es un titular en lugar de un proveedor. Entonces en lugar de hacerlo como proveedor, sólo vamos a hacerlo así. Por lo que sólo vamos a retirar aquí al proveedor y luego eso también debería funcionar. Por lo que esto quita al proveedor, importa el titular. Y entonces mismo aquí, el último. Eliminar esto como esto y hace ellos. Y eso debería ser para la generación mundial. Veamos regeneración Morrow. Ahí vas. Características de nuevo, no más errores y ahora todo debería estar funcionando. Entonces por supuesto, una vez más, todo está disponible para ti en el repositorio de GitHub, un individuo igual de bien para copiarlo. Y esos deberían ser todo lo que tenemos que hacer. En realidad te mostraré lo que está mal con la pantalla del título en tan solo un momento en que realmente nos metemos en la pantalla del título. Pero ahora en realidad podemos simplemente iniciarlo, ver si funciona. Hagamos un mundo nuevo también. Y entonces vamos a ver si todo funciona en mil dos. O la pantalla de título personalizada está realmente desactivada. Vamos a ver eso en un momento. Pero por el momento, solo hagamos nuevos mundos. Hagamos una prueba 1234, y veamos si todo sigue funcionando, si todo sigue desova, pero estoy bastante seguro de que lo hace, o Francis de vuelta en Minecraft. Así que ya básicamente localicé aquí el bioma de un avión. Y se puede ver que conseguimos nuestras turbas personalizadas incluso desove. Tenemos nuestro árbol desove nuestras flores. Para que todo funcione totalmente bien. Y se puede ver que sólo vamos a entrar aquí. Podemos conseguir la ruta de la explosión de cobalto igual que una receta aquí, sólo por el bien de la discusión, ¿por qué no? Vamos a probarlo porque la receta también debería estar funcionando totalmente bien. Vamos a ponerlo abajo. Ahí vas con la teoría, vas y sigue funcionando totalmente bien. Se puede ver que somos pico de cobalto, está funcionando, está ahí dentro. Y para que como pueden ver, quiero decir, casi todo sigue funcionando. También podemos echar un vistazo a la varilla de espiga aquí con la tableta de datos a hace también todavía funcionando. Por lo que también está funcionando totalmente bien. Todo debe ser funcional. Y sí, quiero decir, eso es más o menos. Así que vamos a echar un vistazo rápido a la pantalla del título. Así que sólo voy a cambiar el en falso y luego vamos a echar un vistazo a lo que la pantalla del título y colas. Muy bien, para que como se pueda ver, tanto la pantalla de presentación como la información adicional en la esquina inferior izquierda son algo que no están presentes. No estoy 100% seguro por qué ese es el caso. Así que creo que el mejor curso de acción es simplemente mantener sus mosaicos personalizados pantalla predeterminada apagarse básicamente para que no se reemplace. Y entonces una vez que en realidad descubrí algo, entonces por supuesto, haré otra breve conferencia sobre básicamente cómo arreglarlo por el momento, creo que esto va a ser despedido y no va a ser robot demasiado disruptivo que prácticamente concluya esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en las próximas conferencias. 114. (1.18.2) Estructuras personalizadas (trabajo a través tutorial): Muy bien, bienvenidos de nuevo al curso de forja para 118. En esta conferencia, vamos a estar mirando una generación de estructura personalizada va muy importante es que la generación de estructura personalizada aquí es por supuesto va a ser para 118 a, si tienes un actualizado, mucho aconsejarte que vayas a la última conferencia que tuvimos y donde básicamente actualizamos a 118 para tenerlo en cuenta, lo que vamos a hacer en esta conferencia particular es que vamos a ir a través del tutorial de estructura por gruñido telepático. Y esto es justo aquí. Tengo esto ya abierto aquí en segundo plano, y este es probablemente el mejor recurso para estructuras que haya existido. Quiero decir, como apoyos a la carrera telepática porque esto es simplemente absolutamente alucinante. Y podemos ver que aquí hay diferentes sucursales. Pueden usar el 1800s, forjar una rama de rompecabezas si estás usando 1, 1000th 2, y si no, puedes usar la rama 1800s 0, ésta de aquí mismo. Forjar. Definitivamente es un poco diferente. En 1 1000 2. Lo que ahora podemos hacer es que en realidad podemos hacer estructuras personalizadas, agregarlas al mundo sin ningún pedazo de código en absoluto. Solo necesitamos archivos JSON, que es realmente alucinante impresionante. En esta conferencia, lo que vamos a hacer es que vamos a pasar por este tutorial de estructura mod aquí mismo, todo el código, todos los archivos adyacentes, copiarlos sobre una pieza por pieza, y luego básicamente echa un vistazo a lo que necesitas cambiar. ¿ Qué puedes entonces, qué tienes que hacer entonces? Y la idea general de sumar las dos estructuras que aquí se agregan como ejemplo. Y luego en las siguientes conferencias, vamos a hacer una estructura de una sola pieza nosotros mismos. Y luego también vamos a hacer una estructura de rompecabezas, que en realidad es mucho más fácil de lo que cabría esperar. En realidad no todo es demasiado loco. Creo que sí, claro, si tienes algo en solitario costumbre, claro que va a ser un poco más complicado. Pero por el momento, sólo vayamos aquí y veamos qué tenemos que hacer. Así que vamos a ir en fuente principal y tenemos que abrir realmente ambas carpetas. Así que sólo voy al ratón central, haga clic en el Java y luego en los recursos también. Vamos en primer lugar, empezar con el código. Se puede ver Ahí está la clase principal la que tenemos, esto es lo que yo llamaría las estructuras mod. Y luego en estas carpetas estructuras, en el paquete de estructuras, tenemos la clase de estructuras cielo. Pero esto es lo primero que vamos a hacer. Básicamente vamos a reorganizar esto un poco, pero vamos a empezar con las estructuras mod. Este de aquí mismo y entre va a hacer éste, y luego vamos a hacer esto 1. En primer lugar, necesitamos una clase de estructuras mod. Bueno, eso se hace fácilmente en el paquete mundial en realidad. Entonces vamos a entrar aquí nuevo paquete llamado estructura. Entonces en lugar de todos van a hacer una nueva clase llamada las rupturas de los modelos. Ahí vas. Ahora está escrito correctamente hace ellos en esta clase lo que vamos a hacer es que sólo voy a copiar sobre los contenidos aquí. Esto es en realidad, vamos a copiar en realidad sobre todo. Eso va a estar bien. Voy a renombrar aquí otra vez. Entonces cuando digo estructuras modernas, se asegurarán de que el nombre aquí sea correcto. Y entonces también podemos eliminar esto y esto. Ahí vas. Y solo reformatea esto un poco. Esto es por supuesto que ahora va a ser el montura de curso MC en AdMob ID. Y luego porque me gusta hacer esto, vamos a hacer es que vamos a hacer una, porque me gusta hacer esto. Vamos a hacerlo público método de registro vacío estático con un I de n plus Event Pass. Y luego llamaremos a la estructura del registro diferido. También se podría llamar directamente en el, la clase principal en el constructor, pero no vamos a hacer eso en esta clase. Vamos a sumar en tan solo un momento. Entonces en el curso MC mod aquí mismo, sólo vamos a bajar, digamos aquí mismo para modelar estructuras que registren y luego pasar en la tarifa del autobús del evento vas, ¿verdad? Y ahora en realidad lo hemos hecho aquí mismo y luego éste también. Se puede ver que esto es literalmente lo único que necesitamos agregar. Y entonces aquí tenemos las estructuras del cielo uno, sólo vamos a copiar sobre todo el asunto. Una vez más, este es el paquete de estructura. Haga clic derecho en nueva clase Java llamada Sky structures, no, pecado aquí. Lo que solo queremos hacer es que no quisiéramos decir administrador de registros, asegurándonos de que elegimos o Apache log log para J. Muy importante. Y luego decimos en lugar de lager, decimos aún lager o log. Ahí vas. Esta no es la casa descabellada. realidad hay estructura de cielos. Ahí vas en una posición particular. Y entonces en realidad podemos echar un vistazo a esta clase, qué es, ¿qué hace? Deshazte de esta importación también. Y luego ahí vas. En general esta clase, se puede ver la característica de estructura de la configuración de rompecabezas. Ahora, esto es una especie de código de calderas. Se puede ver que hay muchos comentarios que recomiendo encarecidamente en su propio tiempo. Atravesar, leer todos los comentarios. Solo trata de entender un poco de lo que está diciendo. Las ideas eternas de que tienes dos métodos diferentes aquí, estos cuentan con camión con él y piezas decretadas. El generador y el generador de pizza credo es realmente lo que más interesante para nosotros realmente. Se puede ver en el futuro baúl, sólo estamos revisando básicamente, hey, ¿ este trozo es el trozo real donde se coloca esto? En términos generales, recomiendo encarecidamente , como dije, leer todos los comentarios. Es muy recomendable. Pero luego en el generador de piezas creativas, puedes ver aquí lo que básicamente estamos haciendo aquí. Esto es interesante, ¿verdad? Por lo que consigues las coordenadas del tronco en un post de blog. Entonces esto va a ser lo que está haciendo. Y luego aquí básicamente lo estamos colocando 60 cuadras por encima de la tierra superior. Para que puedas ver que haciéndolo así. Se puede ver en el comentario aquí, vamos a superficie WG se detendrá en la parte superior del agua para que no pongamos accidentalmente nuestra estructura en el océano. Y entonces esto es básicamente, obtiene la coordenada de la parte superior de la tierra básicamente, y luego le estamos agregando 60. Entonces esta es una forma de que puedas básicamente cambiar el nivel y. Y entonces también se puede ver aquí mismo, tenemos para cada uno de los diferentes parámetros que estamos poniendo aquí, el, lo que básicamente sucede aquí. Está muy bien hecho. Sólo puedo recomendarte si hay cierta cosa compleja que quieres hacer, lee los comentarios que aquí se agregan y luego vas a estar bien. Ahora bien, esto es en realidad todo el código que necesitamos. Esto es muy interesante porque el resto se hace todo con archivos JSON. Simplemente vamos a volver básicamente a la GitHub otra vez y vamos a cerrar todo esto y luego estamos aquí en los recursos. Entonces lo que necesitamos es en la carpeta de datos, realidad vamos a necesitar abrir muchas cosas aquí. Tenemos que añadir estas cosas y esto. Si agregamos nuestra estructura a esta etiqueta, puede ver microbio tiene algunas etiquetas de características de estructura configuradas que en el comportamiento. Y entonces esto básicamente va a agregarlo a un localizador. Nos estructuraremos en los fotógrafos, aldeanos, mapa del océano, mapas de monumentos. Esto no es estrictamente necesario. Es sólo una cosa interesante. En realidad no vamos a implementar este. Sólo vamos a ignorarlo y sólo nos va a interesar la carpeta de datos para nuestra propia costumbre. Este por supuesto, al ser un tutorial de subrayado de estructura o las horas mod ID será curso de Mc. Y luego vamos a abrir las tres carpetas. Y luego se pueden ver las estructuras aquí están los datos de NVT. Esto es muy interesante. Por lo que los datos de NVT se generan básicamente dentro del while en lugar de Minecraft. Por lo que construyes tu estructura, usas ciertos bloques para generarla por el momento. En esta conferencia, vamos a tomar estos datos de la NVT y sólo vamos a copiarlos. Y entonces en realidad tendremos que cambiar un poquito en los datos de la NVT, pero no hay preocupaciones ahí. Vamos a ver eso en tan solo un momento. Por el momento, sólo vamos a descargar básicamente los cuatro de esos. Por lo que sólo vamos a entrar aquí, abrirlos todos y luego descargar, descargar, descargar y descargar. Y se puede ver que están bajo estructuras Data Mart ID y luego el archivo real. Entonces lo que vamos a hacer es dentro de nuestra carpeta de datos, curso MC, vamos a hacer un nuevo directorio llamado estructuras, y luego las agregaré todas ahí dentro. Sólo voy a hacerlo así en realidad. Ahí vas. Al igual que arrastrarlos a esta carpeta. Quiero decir, en este punto debería ser bastante autoexplicativo. Cómo puedes simplemente agregar cosas sigue aquí, simplemente arrastrándolas ahí. Y luego tenemos los datos de la NVT aquí mismo. Entonces eso es realmente bueno. Y esa es la primera parte. Y ahora tenemos que volver a cambiar aquí mismo. Podemos deshacernos de todo esto aquí mismo. Ahí vas una hora aquí en las etiquetas mundo gen bioma tiene una estructura. Entonces esta es una etiqueta realmente genial que vamos a añadir. Y esto es honestamente realmente alucinante fresco porque se puede ver en primer lugar, los biomas del ventilador del cielo aquí. Y luego también está la única casa JSON. El único JSON casa, si recuerdas de nuevo en nuestras estructuras que teníamos, solo teníamos las estructuras del cielo aquí mismo. No se menciona ninguna casa. Exactamente. Eso es lo que estoy diciendo. En realidad puedes agregar ciertas estructuras sin tener ningún código en absoluto. Este DJs y sólo oyen casa. Esto básicamente nos va a permitir hacer eso. Voy a hacer es que sólo voy a ser dueño de ambos. Entonces lo que hago es que sólo voy a copiar el nombre aquí porque eso es como un poco más fácil. Y esto fue una etiqueta en nuestro curso MC, etiquetas de holdup. Y esto bajo este inframundo Jen. Y entonces en lugar de aquí, esto va a estar bajo bioma. Y luego una estructura más, un directorio más que se llama como estructura de subrayado. Y después podemos agregar el archivo aquí, este 1 primero. Y entonces también vamos a conseguir el segundo, el nombre aquí también, un nuevo archivo. Ahí tienes, Jason sólo los biomas de casa y puedes ver el contenido de los cuales si voy a copiar este de nuevo. Entonces esta es la estructura de código Skype y los biomas. Se puede ver este impuesto al bioma especifica qué biomas, esto realmente comienza en él. Puedes iniciarlo con tanques de bioma, con un hashtag, o bien puedes especificar un bioma específico como este. Es realmente alucinante impresionante. Entonces esta es la forma en que básicamente se puede especificar en qué biomas genera esta estructura en particular, pero también va a copiar sobre el contenido de ésta. Se van. Sin esa. Por supuesto, ahí vas. Y toda la sacarosa también disponible en el repositorio de GitHub en el, igual de bien. No te preocupes ahí. No obstante, realmente creo que es lo mejor si trabajas a través de este tutorial de estructura conmigo una vez y luego tal vez incluso una sola vez por tu cuenta, solo para que básicamente conozcas cada parte individual. Por lo que básicamente se puede decir que esta etiqueta de bioma de generación mundial tiene estructura, se utiliza para especificar los biomas en los que desove nuestras estructuras. Pero básicamente podemos ahora cerrar esto también. Y entonces podemos proceder al siguiente que es el gen mundial. Ahí estaba esta carpeta, así que vamos a cerrar esto también. Y luego se puede ver que aquí hay cuatro carpetas diferentes. Una vez más, todo realmente alucinante interesante. Entonces sólo vamos a abrir el primero y básicamente vamos a lidiar con esto. Podemos ver que aquí tenemos la estructura de código cielo recaudación de fondos y la única casa adyacente para la característica de estructura configurada. Una vez más, voy a copiar el nombre justo aquí y vamos a echarle un vistazo. Así que los datos son más ideales underworld todavía y luego configuró la característica de estructura, vamos a entrar en el corazón. Entonces esto está bajo las etiquetas, tan muy importante que no pones esto accidentalmente aquí mismo. Bajo la carpeta de cursos de EMC. En realidad queremos una nueva carpeta llamada world gen, que luego debería estar por debajo de tus etiquetas. Así que asegúrate de que esto sea correcto, no dentro de esta carpeta. Asegúrate de que esto sea, tienes dos de ellos. Ya ves X Gen. Este tiene tiene cosas de estructura. Y entonces esta carpeta mundial gen es en lugar de tu más ID para tu curso MC lleno de muy, muy importante que ahí hay una diferencia. Por favor, asegúrate de que esto sea correcto. En lugar de esta generación mundial sigue, en realidad podemos echar un vistazo a todos los cuatro diferentes. Las cosas que necesitamos, hagámoslo así por un momento. Así que solo vamos a decir que esta es la característica de subrayado de estructura de subrayado configurada. Y entonces sólo vamos a copiar este de aquí. Vamos a decir que esta es la lista de procesos o subrayados, y luego vamos a copiar esta. Este es el conjunto de subrayado de la estructura. Y luego por último pero no menos importante, también tenemos la plantilla de subrayado pool, por supuesto se asegura de que todos esos estén escritos correctamente. Y luego podemos proceder con la característica de estructura configurada aquí mismo. Y sólo vamos a entrar una vez más allá y vamos a decir éste, este nombre aquí mismo. Voy a hacer un nuevo archivo de Drazen. Vamos a hacer clic derecho en nuevo archivo, llámalo así. Ahí vas. Y luego copia sobre el contenido de esto. Y luego vamos a ver dónde están las primeras cosas que en realidad necesitamos cambiar aquí. Y como se puede ver, hay muchos comentarios de nuevo, no se preocupe. Por cierto, estas flechas, puedes ignorarlas en los archivos JSON porque todavía van a trabajar en. Y así no hay preocupaciones allí sin embargo. Se puede ver básicamente aquí tenemos algunas anulaciones, lo que significa que, oye, estos monstruos particulares podrían desovar en esta estructura, se puede ver qué turbas pueden desovar con el tiempo en la estructura. Eso es muy interesante también aquí, si la verdadera tierra estará alrededor del fondo de una estructura basada en las piezas y valor. Eso también es algo que podrías hacer. Esta de aquí es la etiqueta. Esto necesitamos especificar esta etiqueta aquí mismo. Esto por supuesto cambia a nuestro ID de modelo y luego tiene estructuras es lo mismo y luego este nombre es lo mismo que esto. Por lo que no necesitamos cambiar esto el camino a la plantilla pobre archivo JSON, por supuesto, también necesita ser curso MC. Esto es adyacente que vamos a sumar en tan solo un momento bajo el pool de plantillas justo aquí. Y entonces aquí también vamos a cambiar este nombre a estructuras de cielo curso MC. Muy importante que este nombre se pueda ver la clase de estructura base a utilizar para el comportamiento de la estructura. Por lo que podemos ver en las estructuras mod aquí mismo, este es el nombre de las estructuras del cielo y luego esto es de lo que lo basa. Pero esta es básicamente la conexión entre este archivo JSON y esta estructura, principalmente como esta clase de estructura aquí mismo. Así que ten en cuenta que también has escrito el año tipo correctamente cuando se trata de la casa única JSON, ¿verdad? Sólo vamos a copiar el nombre otra vez. Vamos a poner esto en la misma carpeta, un nuevo archivo aquí mismo. Vamos y luego el contenido real del que una vez más se copió. Ahí vas. Y entonces aquí también tenemos que cambiar una vez más ya que esto a curso MC debería tener sentido. Y luego cambiaremos esto a curso MC también. Esto va a buscar un archivo JSON en la plantilla subrayado pool mayor, donde básicamente agregamos esto en un momento Aparte de eso, el resto puede quedarse. Por ejemplo, se puede ver que hay alguna ilusión o algunos pillagers y algunos padres que podrían desovar aquí. Eso es realmente interesante. Vamos a entonces seguir adelante. Por lo que ahora hemos gestionado la función de estructura configurada y luego podemos mirar la lista de procesadores. Esto es algo muy interesante también. En realidad podemos simplemente conseguir esto basado en el archivo aquí mismo. Sólo vamos a copiarlo y vamos a mirarlo dentro de esto. Esta es la lista de procesadores, un nuevo archivo llamado los guiones bajos de ratones aleatorios no rompen a Grayson. Y esto es muy interesante. Así que voy a pegar esto. Y se puede ver que esto es una, esto es básicamente una regla y lo que hace es que reemplaza a cierta cosa. Para que puedas ver el bloque que buscamos es el ladrillo de piedra. Y esto tiene un 50% de posibilidades de permitir que el ladrillo de piedra encontrado sea reemplazado por cosas diferentes. Por ejemplo. Y se puede ver si encontramos una rotura de piedra, entonces hay un 5% de posibilidades de reemplazarlo por un OR esmeralda, y luego aquí se puede ver que hay un 50% de posibilidades de reemplazarlo realmente por un ladrillo de piedra infestado. Y luego aquí abajo, se puede ver un par de pizarra profunda podría ser reemplazada valor del 10% o una probabilidad del 10% con un estado profundo Redstone más o menos. Esos son algunos ejemplos muy interesantes de básicamente una de esas reglas interesantes, que es realmente alucinante interesante, que puede hacer que tus estructuras solo así de más, bueno, quiero decir que más interesante si entonces puedes reemplazar ciertos bloques bajo ciertas condiciones, básicamente con una cierta probabilidad aquí de hacer para ser otros bloques. Eso es realmente genial y realmente impresionante. Así que eso definitivamente es algo para jugar con un poco en tu propio tiempo también. Pero eso también se ha agregado y vamos a ver dónde se usa esto en tan solo un momento para que podamos cerrar esto también. Y luego simplemente abramos a la estructura establecida en el pool de plantillas. Ambos se puede ver una vez más, la estructura está configurada. Tenemos dos archivos JSON, uno para cada una de nuestras diferentes estructuras que una vez más. Así que sólo vamos a leer esos archivos de Jason también. Lee este. Ahí vas. Y luego voy a copiar los contenidos aquí. Una vez más, ahí vas. Entonces éste es uno de los, bueno, yo diría que este es uno de los archivos JSON más fáciles. Yo diría que acaba de cambiar el nombre aquí mismo. Y entonces esto por supuesto, en este caso la estructura aquí, debería buscar aquí este archivo JSON si no me equivoco. Y entonces la colocación aquí es en realidad muy importante. Entonces la sal aquí, se puede ver. Asegúrate de que esto sea único y no coincida con ninguna otra estructura sal. De lo contrario, lo que va a pasar es que se van a colocar en la misma ubicación, que por supuesto es algo que no queremos. Y se puede ver el soporte de distancia promedio en trozos. Y luego aquí, esta es la distancia mínima que separa tu tronco. Entonces éste siempre tiene que ser más pequeño que éste. Tiene sentido. Y luego aquí sólo estamos básicamente eligiendo un spread aleatorio. Esto también es aconsejable para mantenerlo así. Y eso es más o menos lo que necesitamos. Oreja. Y entonces lo que necesitamos es el caso normalmente casa también. Vamos a llegar a esto también, hace ellos y luego el nombre aquí, así que nuevo archivo y luego solo copiando sobre los contenidos. Y se puede ver esto es una vez más cambiar aquí. Hace ellos. Y se puede ver esta sal aquí es diferente a esta sal. Una vez más, recomiendo encarecidamente solo si, cuando añadas tu propia estructura personalizada. Cuando añadamos las estructuras personalizadas en las siguientes dos conferencias, entonces vas a ver que también vamos a cambiar la sal. Muy, muy importante. De lo contrario, este es más menos un archivo JSON bastante sencillo. Una vez más, éste apunta a, apuntar a la característica de estructura configurada aquí mismo. Ahora, lo último que necesitamos es el pool de plantillas. Entonces estos van a ser los archivos JSON aquí mismo. Así que voy a cerrar esto, esto y esto. Se puede ver tenemos aquí el único archivo adyacente y tenemos dos expedientes JSON para la casa. Solo vamos a usar el ventilador del cielo primero. Esto va a ser justo aquí dentro de él. Entonces Skype en Jason y luego voy a copiar esto también. Ahí vas. Y se podía ver lo que pasa aquí es que antes que nada, en el nombre aquí voy a cambiar. Entonces esto no es estrictamente necesario en realidad, porque creo que el nombre aquí es es más o menos es el nombre de la propia piscina de plantillas. No creo que esto realmente necesite cambiarse aquí, no un 100% seguro, pero también se puede ver que hay un enlace aquí mismo para el archivo JSON de las piscinas a plantilla. Recomiendo encarecidamente revisar esto también. Esto por supuesto está vinculado aquí también, por lo que no hay preocupaciones ahí. Y entonces se puede ver ¿cuáles son los elementos que estamos buscando? Bueno, estamos buscando octava. Una vez más, el tutorial de estructura tiene que cambiar a curso MC, el fan del cielo. Ahora bien esto, como se puede ver, el camino final es recursos estructura de datos tutorial en nuestros casos curso MC, Es estructuras rundown, casa izquierda, lado izquierdo MVT. Ahora bien, esto por supuesto no es del todo correcto. Esto busca fan de subrayado Sky, NVT, sky fan, y luego esto está aquí mismo, Skype y MET bajo la ubicación del curso de EMC. Aquí es donde busca. Y entonces éste también es muy interesante. Se puede ver que estamos agregando en el procesador justo aquí, que es el curso MC, piedra aleatoria, ladrillo. Este es exactamente este archivo JSON aquí mismo, por lo que en realidad esto no es necesario. Esto es sólo un bono añadido, por así decirlo. Y se puede ver especifica la lista de procesadores y luego básicamente aplica al archivo NVT justo aquí al colocarlo en el mundo. Y luego está ahí. Se puede ver las listas de procesadores son geniales para aleatorizar bloques y hacer que las estructuras parezcan más naturales. Realmente alucinante impresionante, Realmente genial, y en general no demasiado loco para usar. Una vez más, esta es una de esas cosas donde por supuesto, sumar exactamente lo que quieres podría ser un poco complicado. Pero en general, sigue siendo algo realmente genial básicamente echar un vistazo y cambiar alrededor y jugar con, ¿verdad? Entonces este va a ser el fan del cielo. Y ahora vamos a hacer es la casa descabellada de estos. Se puede ver que hay una alberca del sitio y una alberca de almacenamiento. Vamos básicamente cerca de ambos, sólo vamos a llegar a la piscina del sitio primero. Y esto está en una, en una nueva carpeta de aquí mismo, que se va a llamar Run underscore down underscore house. Y luego vamos a tener un nuevo archivo llamado la piscina de puntos bajos, Jason. Y también tendremos una base hasta ahora que se llama la piscina de subrayado del sitio, subrayado dot dot js y en realidad citar Poole guión bajo lateral engañado adyacente. Ahí vas. Este es el sitio alberca JSON, y luego esta de aquí es la piscina de inicio Jason, ¿por qué necesitamos dos de ellos? Bueno, la verdadera casa desmontada Es una estructura de rompecabezas, lo que significa que tiene dos partes diferentes de la misma. Tienes un lado izquierdo, aquí mismo. Vamos a cambiar esto una vez más a curso MC. Este es el lado izquierdo de la casa descubierta, que apunta a éste, este dato de la NVT aquí mismo , casa descubierta lado izquierdo y la alberca lateral. Se puede ver que en realidad tenemos una lista de elementos que tiene diferentes pesos aquí. Y apunta a dos NVT diferentes por otro básicamente. Y se puede ver que hay un 50% de posibilidades de desovar la carrera de oro en lugar de la habitual. Esa es la idea aquí. Y vamos a ver un ejemplo de esto, la estructura de rompecabezas personalizada que voy a hacer también. Una vez más, por supuesto, cambiar aquí el MOD ID, lo cual es muy importante. Y entonces aquí sólo podemos cambiar la idea de modo. No creo que sea estrictamente necesario, pero sólo vamos a hacerlo también, sólo para que lo tengamos. Por lo que se puede ver que aquí hay muchas partes móviles. No obstante, voy a resumir una vez más porque en realidad hay una cosa más que necesitamos cambiar porque como está en este momento, esto en realidad no va a funcionar al 100%. En realidad, la casa descubierta sólo va a engendrar un lado izquierdo y un lado derecho, pues en este dato MPT, se guarda la monodia equivocada. Vamos a ver cómo podemos arreglarlo en un momento. Pero antes que nada, resumimos con todas las cosas que hemos hecho. Hemos sumado dos estructuras diferentes. Hemos agregado la estructura del cielo usando algún código también, principalmente la clase de estructuras cielo aquí mismo, que se puede utilizar a lo que en ciertas otras características que no son posibles agregar a través de sólo la JSON archivos. Principalmente, se puede ver éste aquí mismo donde especificamos la posición y real de esta estructura en particular y algunas otras cosas también. Pero lo que también hemos hecho es que también hemos hecho una estructura puramente con archivos JSON. Y se puede ver por esa estructura que necesitábamos. 12345 diferentes archivos de Jason que todos por supuesto tienen que estar en las ubicaciones correctas y todos están relacionados entre sí. Pensemos en esto por un segundo. Por lo que es mejor probablemente comenzar con el pool de almacenamiento aquí mismo, porque el pool de tiendas hace referencia al archivo NVT. Este es el archivo NVT aquí mismo en, bajo su carpeta de datos mod ID estructuras en VT. Y esto se hace referencia aquí mismo en la piscina de estrellas. Ahora mientras que el pool de tiendas referencia a su estrella más referenciada en la clase de entidad de estructura configurada aquí mismo. Por lo que podemos ver esta es la alberca de tiendas que se está haciendo referencia. Se puede ver que esta es la configuración de esta estructura en particular y esto ha sido referenciado, mientras que también se hace referencia es el bioma Jason, Este es el bajo el mundo tributario, bioma Jin tiene estructura. Solo Jason ¿Cómo están los biomas, que básicamente significa rápido en qué biomas puede desovar esta estructura? Esto explica más o menos esta persecución y seguido aquí, este archivo JSON se utiliza para realmente agregar el mundo, básicamente agregando la estructura al mundo que esta estructura está configurada. Se puede ver en este comentario aquí básicamente va a escoger una de esas estructuras. Quiero decir, en este caso sólo hay una estructura. Podrías en teoría en múltiples estructuras de un no equivocado ya que este aquí mismo se refiere como éste. No estoy 100% seguro de eso, pero creo que esto debería referirse de nuevo a este particular archivo JSON, que por supuesto se refiere a la piscina de la tienda y también a los biomas. Así es como están interrelacionados entre sí, justo entonces para el pool del sitio. Pero debido a que esta es una de esas cosas interesantes, el ciclo una vez más es porque estamos usando el bloque de rompecabezas. Recomiendo encarecidamente si esto es un poco confuso con una piscina psiquiátrica para ti. Vamos a ver eso en el, cuando en realidad hablamos de los rompecabezas en un poco en las próximas conferencias. Y esto es. Por lo que hay bastantes partes en movimiento a ella. Una vez más, te recomiendo encarecidamente que tengas que ver esta conferencia dos veces. No hay forma de rodearlo. Las estructuras pueden ser bastante complicadas. No obstante, una vez que los hayas configurado, una vez sumar más estructuras es en realidad muy, muy sencillo. Los que todo aquí está configurado. Recomiendo no cambiar nada demasiado, es básicamente cambiar tu ID MOD, ese Ahmad ID a tu modelo ID, y entonces eso debería ser, ¿verdad? Así que porque esto es básicamente todo lo que necesitamos por el momento, lo que vamos a hacer es que vamos a hacer un mundo nuevo, ver si los engendros, y entonces vamos a ver que necesitamos cambiar una cosa más, que va a ser bastante sencillo de cambiar. Pero solo veamos si funciona. También ten en cuenta a la hora de hacer estas estructuras, obtendrás esto el mundo usando configuraciones experimentales no es compatible. Simplemente es lo que es. Simplemente puedes hacer clic en proceder. Es mío. Podría parecer un poco diferente si te estás uniendo a un mundo que ya existe. En este caso, esto fue creando un nuevo mundo. Básicamente no hay forma de evitarlo. Esto va a aparecer, pero ahí no se preocupe. Básicamente puedes ignorarlo. Sólo di proceder y ahí vas. Muy bien, entonces nos encontramos en Minecraft y se puede ver una de estas estructuras ya se suma con éxito aquí mismo, e incluso hay otra. Podrían estar un poco demasiado cerca. Pero antes que nada, se puede ver el desove de la estructura real. También se puede ver algunas personas ya engendradas son como turbas aquí. Y entonces lo que también es realmente interesante, se pueden ver los reemplazos aquí mismo. Se puede ver algunos de los ladrillos han sido reemplazados y se puede ver algunos de ellos también están infestados. Eso es realmente genial. Entonces hay un 50% de posibilidades, por supuesto, de que se inviertan. Y luego algunos de ellos también son reemplazados por el Esmeralda OR, y luego se puede ver algo de esto también se reemplaza por redstone. Todo, eso es realmente genial. Esta fue la materia de reemplazo que se hizo. Y se puede ver que son, están desovando. Entonces el otro, la casa, en realidad deberíamos encontrarla muy, muy rápido porque nace como cada pocos, en realidad ya hay una casa. Y lo que vas a encontrar es que se ve como media casa, ¿no es así? Sí. Esto parece media casa porque en realidad es sólo media casa. Se puede ver. En primer lugar, aquí también hay algunas pistas útiles. Recomiendo encarecidamente revisar los que salen también. Pero se puede ver que eres, el bloque de rompecabezas fue en realidad reemplazar aquí y bueno, el tema es que el modal real que no coincide. Para que esto funcione, lo que vamos a hacer es que sólo nos vamos a conseguir algo de distancia y algo de espacio. Básicamente. En realidad solo volemos aquí vamos. Esto ojalá sea suficiente distancia. Y entonces lo que necesitamos, necesitamos darnos el bloque estructural aquí mismo, éste. Y luego vamos a ponerlo abajo y vamos a hacer clic con el botón derecho. Ahora el nombre de la estructura aquí va a ser estructurado nombre año va a ser MC curso colon, guión bajo izquierdo, correr subrayado abajo guión bajo house guión bajo, lado de subrayado izquierdo, supongo que entonces no se va a dejar aquí en la parte delantera derecha. El nombre aquí debe ser este nombre justo aquí. En realidad, hagamos clic derecho Refactor Rename, copie esto. Eso va a ser un poco más fácil. Ahí vas. En realidad es eso y ahora si entro en carga aquí mismo, debería cargar esto. Y entonces podría volver a hacer carga, y luego en realidad engendra la casa. Ahora podrás ver aquí mismo, este es el bloque de rompecabezas. Y se puede ver aquí realmente busca esta piscina del sitio, que tenemos que cambiar. Tengo que cambiar esto a curso MC, digamos hecho. Entonces también queremos la otra parte de la casa. En realidad queremos la otra parte de la casa también. Lo que voy a hacer es que en realidad voy a copiar esto por aquí. Entonces al igual que Control a para seleccionar todo el control C para copiar el control V para pegarlo en. Y entonces este va a ser el lado derecho. Cuando una carga, y luego vamos a cargar de nuevo. Y aquí encuentras el otro bloque de rompecabezas. Haga clic derecho en éste. Queremos cambiar el nombre aquí a MC curso lado derecho hecho. Quieres cambiar el nombre aquí a MC curso lado derecho. Hecho. Y entonces lo que también queremos hacer, sólo para que tengamos todo. Queremos engendrar otra casa. Ese va a ser el lado derecho, dorado, creo, lado derecho. Así que va a haber razón. Si escribes subrayado sitio de subrayado, dorado. Ahí vas. Tira de eso y luego cárguelo. Y ahí vas. Ahora, este es el sitio dorado, sólo va a tener algunas cerraduras doradas ahí. Y entonces aquí también queremos cambiar esto a curso MC, así que a nuestro modelo ID, sí, Y entonces vamos a estar bien. Ahora lo que tenemos que hacer es que realmente necesitamos salvar a la NVT aquí. Una vez más, esto es un poco lo que están rehaciendo los FREC. No te preocupes por eso. Esto básicamente lo que tenemos que hacer para que esto funcione correctamente. Una vez que hayamos hecho esto, en las próximas dos conferencias, vamos a pasar realmente cómo hacer esto completamente personalizado. Entonces vamos a construir una estructura personalizada. Vamos a salvar la estructura personalizada. Y voy a explicar un poco más de detalle lo que básicamente estamos haciendo aquí. Si no quieres seguir esto, entonces eso por supuesto también está bien. Pero básicamente hay algunas cosas muy sencillas que tienes que hacer. Ahora aquí, después de haber cambiado el bloque de rompecabezas, lo que vamos a hacer es que vamos a ir aquí al modo seguro. Queremos decir seguro, entonces se puede ver que ahora se ha guardado y lo mismo va para los otros dos son el modo seguro seguro. Aquí también, ve al modo Guardar seguro, y luego terminamos. Ahora podemos hacer es que podamos salir de Minecraft. Sólo vamos a salir de aquí. Y luego los datos de NVT se van a almacenar en la carpeta R1 bajo guardados. Entonces dondequiera que tengas, este fue el que no te olvides revisar mundo y entonces esto debería estar bajo generado. Y puedes ver los tres datos de la NVT aquí mismo. En realidad vamos a llevar esto a aquí mismo. Y vamos a decir anulación para todos. Por lo que ahora los datos de NVT aquí han sido sobrescritos con nuestros IDs MOD en ella. Y si ahora empiezo de nuevo, hacer un nuevo mundo, entonces lo que vamos a ver es que en realidad vamos a encontrar la casa completa como antes, en lugar de la casa izquierda o la, la otra parte de la casa. Entonces la casa, tenemos este bloque de rompecabezas que en realidad estaba buscando la piscina del sitio bajo la estructura tutorial mod ID, que por supuesto no es correcto. Veamos, en realidad vamos a crear un nuevo mundo. Aquí. Va a ser la prueba de estructura. Ensayos de estructura. Eso va a estar bien. Una tasa de mundo. Una vez más, vamos a conseguir el, has cambiado la generación mundial y los ajustes experimentales. Eso va a estar bien. Sólo vamos a golpear Proced y luego solo vamos a esperar hasta que termine. Y entonces vamos a ver si nuestra estructura está completa o no. De acuerdo, nos encontramos en Minecraft, así que vamos a ver que ahí está, y ya se puede decir que la estructura está completa ahora. Bueno, vamos a entrar aquí y vamos a ver. Pueden ver si entramos, encontrarás ahí vas. Esta es incluso la variante dorada de la misma. Este es el lado correcto para la meta y luego no deberíamos tener que volar lejos para encontrar otro ejemplo de esto. Entonces esto es increíble generación mundial parecía increíble. Aunque deberíamos poder encontrar otra casa bastante rápido. Por lo general, no deberían desovar demasiado lejos el uno del otro. Veamos, hay otro, por lo que puedes ver claramente que no son tan raros, pero por supuesto esto es algo que también puedes cambiar muy fácilmente. Así que vamos a entrar aquí. Veamos, ¿esto debería de esperar que sea éste normal? Esta es una normal. Ahí vas. No, no hay gol aquí. También tenemos cosas en el pecho justo aquí, y se puede ver todo funcionando bien. Esta es la estructura básica siguiendo el tutorial justo ahí. Y si estás en este punto, entonces agregar nuevas estructuras es muy sencillo. Entonces básicamente vamos a ver en las próximas dos conferencias sobre cómo se pueden agregar algunas estructuras personalizadas también. En primer lugar, básicamente una pieza de estructura, porque una estructura sólo puede ser de 48 por 48 por 48. Y luego si es más grande que eso, tienes que usar jig source. Pero como dije, en realidad es, en realidad no es tan complicado como algunos podrían hacer salir para ser ahora, todavía no es muy fácil, pero es más fácil de lo que cabría esperar, ¿verdad? Pero esto concluye la c 115. (1.18.2) Estructuras personalizadas (una sola parte): Muy bien, bienvenidos de nuevo al curso de forraje para 118 y nos encontramos en Minecraft con una estructura ya construida aquí mismo. Lo que te recomiendo que hagas es que puedas copiar la estructura o simplemente crear tu propia estructura. Y luego básicamente después de que los creaste, podemos seguir adelante. Así que sólo te daré un poco de tiempo para crear tu propia estructura. Pero espero que se detenga y simplemente cree su propia estructura. Porque ahora lo que vamos a hacer es ahora que voy a hacer un expediente MVT de esto. ¿ Cómo hacemos esto? Bueno, tenemos que antes que nada, darnos el bloque de estructura corre de nuevo. Entonces este de aquí mismo. Y lo que tenemos que hacer es que tengamos que colocarlo en los rincones de esta estructura en particular. Entonces lo que tenemos que hacer es que tengamos que colocarlo fuera de la estructura entera de la voluntad real. Entonces tenemos que colocarlo ahí mismo y justo aquí. Y luego también del otro lado, en las mismas ubicaciones básicamente aquí mismo, y luego también aquí mismo. Ahí vamos. Ahora lo que queremos hacer es que queremos hacer clic derecho en esto y luego tenemos que dividirnos. En primer lugar, especifique un nombre aquí. Este va a ser el curso MC colon. Por lo que siempre tomé tu modelo ID de colon, cualquiera que sea el nombre. Y este caso va a ser la casa de subrayado de algas. Y luego vamos a presionar Control a para seleccionarlo todo, Control X para cortarlo y Control V para volver a pegarlo. Eso es básicamente lo que acabo de hacer. Y voy a ir al modo propietario. Muy importante. Vamos a decir hecho, y ahí estás. Voy a hacer lo mismo aquí, pegarlo en modo esquina, hecho, una sentada, más hecho. Y luego éste, en realidad vamos a pegarlo y luego vamos a ir al modo Guardar. Entonces queremos presionar este botón de detección aquí mismo. Y debería en teoría, detectar toda la estructura. Para que puedas ver básicamente hemos resaltado el exterior de toda la estructura, lo cual es exactamente correcto. Esto es lo que se va a salvar su. Entonces lo que podemos hacer es que sólo podemos hacer clic en el botón Guardar aquí mismo. Y entonces se han guardado estos datos de NVT. Entonces eso es literalmente todo lo que tenemos que hacer para guardar algunos datos de NVT. Y ahora tenemos esta casa. Ahora lo que podemos hacer es realmente divertido, porque esto ya está salvado. Lo que deberíamos poder hacer es simplemente ir a otro lugar. Dime, oye, dame esta casa. Simplemente puedo poner esto, digamos carga, y debería detectar esta casa. Y entonces podemos decir cargarlo de nuevo, y ahí vas. Y ahora en realidad puedo copiar esta casa de ahí a aquí, y entonces en realidad ya lo tengo hecho. Pero por supuesto lo que queremos hacer es que queremos llevar esta casa en una manchada naturalmente en el mundo. Entonces lo que vamos a hacer es que ahora saldremos de Minecraft de vuelta a Intel J y luego básicamente agregando algunos de los archivos adyacentes para que podamos desovar en esta casa, el mundo. Muy bien, así que nos encontramos de una manera inteligente. Y lo primero, por supuesto, lo que tenemos que hacer es que tengamos que conseguir la casa. Entonces esto es una vez más en tu carpeta de ejecución. Esto debería estar en tus ventas aquí mismo. Se trata de las pruebas de estructura en mi caso, bajo generadas. Y luego aquí tenemos la casa de conteo NVT. Así que sólo voy a arrastrar esto aquí mismo a las estructuras, y luego tenemos esto ahí mismo. Entonces eso es muy importante. Y ahora podemos básicamente cambiar el archivo JSON. Entonces, ¿qué vamos a hacer? ¿ Qué tenemos que hacer? Bueno, lo primero que vamos a hacer es que vamos a hacer el archivo JSON estructurado para esto, para la etiqueta. Esto va a estar incluyendo todos los diferentes biomas que nos preguntamos esta estructura demasiado pequeña. Y así sólo vamos a copiar sobre el ya existente aquí. Esta va a ser la casa de conteo y subrayado. Honestamente, creo que esto va a estar bien. Sólo vamos a tomar estos biomas de nivel. Por supuesto también puedes cambiarlo como quieras. Pero en realidad estoy feliz con esto y vamos a estar bien. Pero esta es la primera. Esto solo una vez más significa qué biomas puede desovar esta estructura. Y entonces queremos conseguir la función de estructura configurada sería sólo una vez más, voy a copiar esto más. Cambio esto a casa de subrayado alfombra. Vamos a usar ese nombre unas cuantas veces ahora. Y aquí queremos cambiar la alberca de inicio a nuestra cuenta y casa alberca almacenada. Esto va a ser lo que vamos a añadir aquí en un momento y lo mismo aquí. Esta ahora va a ser la casa de mostrador. Esta etiqueta de bioma se refiere a esta que acabamos de crear aquí. Pero no se preocupe. Personalmente en realidad no quiero que ningún monstruos se desove aquí. Pero lo que sí quiero es que en realidad quiero que algunos de los tigres del curso MC aparezcan ahí. ¿Por qué no? Digamos que va a haber uno o dos tigres que puedan ver ahí. Vamos a añadirlo así. Eso va a ser muy interesante y ver si eso en realidad también lo hace. Ahora esto debería ser más o menos todo lo que necesitamos cambiar aquí mismo. Entonces la siguiente, no necesitamos ninguna lista de procesadores en nuestro caso, pero sí necesitamos un conjunto de estructuras. Una vez más, copiando esto al cambiar el nombre para hacer frente y casa, esto, cambiando éste para que venga casa, que luego apunta a este archivo JSON que hemos hecho antes. Muy importante aquí, cambiando la sal, esta tiene que ser una sal única y bastante grande. Y luego el espaciado, sólo vamos a darle un poco más espacio aquí en ambos aspectos, y eso va a estar bien. Entonces lo último que tenemos que hacer es que necesitamos crear una nueva carpeta aquí mismo directorio. Esta va a ser una vez más la casa de subrayado CAPM. Entonces el nombre del archivo aquí va a ser el grupo de subrayado de inicio que adyacente y el contenido del que en realidad copiaré de una vez más, el archivo JSON ya existente. Es por eso que dije si lo tienes configurado una vez, entonces agregar otros nuevos es muy sencillo. Entonces lo que podemos hacer aquí es básicamente éste tiene que cambiar para contar underscore house y luego. Vamos a copiar esto y luego cambiarlo aquí una vez más. Y eso es todo. Ya hemos hecho esto ahora nuestra estructura real desova en el mundo. Eso es todo lo que tenemos que hacer. 1234 archivos JSON en este caso porque es una sola estructura y un archivo NVT, esto es literalmente. Viste que es bastante sencillo una vez que lo tengas configurado, una vez copiando algunos de los archivos JSON, cambiando algunas cosas, retocando pocas cosas y luego, y luego eres bonita mucho hecho. Eso es literalmente todo Como todo lo que tenemos que hacer por el sake de finalización. Veamos si funciona. para asegurarme de que todo funcione, recomiendo encarecidamente hacer un nuevo mundo por si acaso. Y luego también por supuesto, ten en cuenta que obtendrás los escenarios mundiales experimentales. Sólo tenemos que presionar Proceder. Eso es sólo gao. Va a ser cuando añadas el mundo personalizado Jen, a través de los datos basados en archivos. Pero eso va a estar bien. Dejemos que genere y veamos si podemos encontrar nuestra casa contable en el mundo o la casa de tu amigo en Minecraft. Y ahí ya deberías poder verlo. La casa de carbono se sumó con éxito a Minecraft. Y mira que está aquí mismo y se pone en el suelo perfectamente al igual que lo dejamos fuera. En realidad destruyo accidentalmente la puerta allí. Eso no fue intencional. Ahí vas. Pero sí, es más o menos ya agregado. Como dije, es muy sencillo. Una vez que lo hayas hecho, una vez. Es por eso que dije, definitivamente deberías pasar por el tutorial de estructura una vez con la conferencia por básicamente muestra el repositorio de GitHub de la misma. Y entonces una vez tal vez incluso por su cuenta, eche un vistazo a algunos de los algunos de los comentarios allí. Quiero decir, sí. Quiero decir, ni siquiera sé qué más decir ya que más o menos lo viste. Es muy, muy sencillo. Hay algunas cosas que puedes cambiar. Y ahora realmente depende de ti, hasta tu creatividad en lo que quieres agregar a Minecraft. En realidad veamos si puedo encontrar una más de nuestras casas de campo. Se pueden ver muchas de las casas desmontadas señalando aquí. Quiero encontrar una cuenta más Casa. Veamos si podemos encontrarlo. No, hay otro, por lo que puedes ver ahí vas. Entonces en general, creo realmente interesante, pero también bastante sencillo. Todas las cosas consideradas. No creo que sea tan loco y que duro y bueno, quiero decir, sí, eso es más o menos lo fácil que es agregar alguna estructura personalizada a Minecraft. Pero como ya he dicho varias veces ahora y lo diré una vez más. Si lo has configurado una vez que lo has visto, es muy, muy sencillo agregar más estructuras a tu juego, y es muy sencillo. Ahora, una vez más, para la fuente de bebidas que vamos a ver en la próxima conferencia va a ser un poco más complicada. Pero aún entonces, después de haber visto un ejemplo de esto, básicamente configurarlo todo, vas a decir que incluso eso va a ser justo, muy sensato y bastante sencillo, todas las cosas consideradas, ¿verdad? Pero eso sería todo por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. O los archivos JSON están por supuesto disponibles para su descarga en el repositorio de GitHub y un individuo igual de bien. Pero de lo contrario, te veré en la próxima conferencia. 116. (1.18.2) Estructuras personalizadas (estructuras de (1.18.2): Muy bien, bienvenidos de nuevo al curso forestal para 118. Y en esta conferencia vamos a estar mirando algunas estructuras de rompecabezas. Ya se puede ver que ya he preparado algo aquí mismo, que va a ser la plataforma de almacenamiento. Y la forma en que esto va a funcionar es que esto va a ser dos estructuras diferentes, pero va a desovar como una sola. Entonces la idea es que una parte de la estructura, que va a ser básicamente todo lo que queda aquí, va a ser la piscina de inicio. Y entonces vamos a tener un bloque de rompecabezas en el medio que va a generar entonces este lado derecho aquí de la estructura, que va a ser cualquiera, digamos hierro. Y entonces también vamos a hacer una variante básicamente cual tiene va a tener algo como diamante tal vez y luego incluso una con esmeralda. Entonces esa es la idea general. Y entonces esto va a terminar. Podemos entonces tenerlo desova con diferentes pesos para que cuando vayas por el mundo necesitando encontrar mucho de ella con la plancha por ejemplo, con like, no sé, como 80% y luego me gusta 10% del tiempo que vas a encontrar el diamante. Y luego 10% de las veces vas a encontrar a la Esmeralda, algo así. Entonces lo que vamos a hacer es que necesitamos configurar esto correctamente. Entonces lo que vamos a hacer es que sólo vamos a tomar, cierto. Así que ahora vamos a hacer en realidad el 1 principal primero. Entonces esto debería estar justo aquí. Por lo que necesitamos el bloque estructural aquí mismo. Y luego aquí también. Eso debería estar bien. Y luego de este lado, demostramos que elegimos lo correcto Es una especie de hablar tan bien, vamos a bajar aquí. Entonces ahí vas. Y luego por la altura h debe estar justo alrededor de su, creo que sí. Solo revisemos esto también. Entonces éste debería ser éste. Ahí vas. Eliminemos aquí los bloques ayudantes. Y esto es en realidad más alto, así que vamos a hacer uno debajo de él que hace que tenemos los propietarios listos y luego vamos a, y luego vamos a llamar a esta plataforma de almacenamiento de cursos MC. Eso va a estar bien. Una vez más, Control a, Control X, Control V, para que tengamos el nombre y este va a ser el modo cuarto. Y luego vamos a pasar por el modo de esquina para cada uno de ellos, o modo. Ahí vas. Azar este modo y entonces este va a ser el modo seguro. Así que vamos a hacer este modo seguro y luego detectarlo. Y luego una vez más, encontraremos que esto es ahora lo que se está detectando. Por supuesto, lo que encontrarás es, oh no, en realidad necesitábamos más arriba, pero no hay ninguna preocupación en absoluto. Lo que podemos hacer es simplemente construirlo. Tú lo estás, vamos a construirlo hasta la altura que necesitamos. Justo ahí. Ahí vas. Y luego destruiremos éste, que fue básicamente lo real se va a quedar por el momento. Pero una vez que en realidad lo recargamos, y debería estar bien. Entonces esto debería ser sobre esta altura, creo que esto debería ser. Entonces podemos una vez más son el modo de esquina, sí, y luego eliminar éste también. También modo con eso mismo con el nombre correcto. Y luego podemos detectarlo de nuevo. Y entonces encontrarás que el ego ahora está hecho y todo está dentro de él. Así que básicamente, eso es una cosa que podrías hacer. Lo configuras y luego estás como, Oh, eso es en realidad algunas cuadras fuera de él. Simplemente reemplázalo y ahí vas. Ahora este es el principal. Y lo que aún tendríamos que hacer es que aún tenemos que colocar por el bloque de rompecabezas. Entonces para eso vamos a hacer abrir la terminal y el comando es una vez más, claro que sí dieron mando o el bloque de rompecabezas, éste de aquí mismo. Y lo que queremos hacer es que nos enfrentemos de esta manera. Entonces lo que queremos es que esto siga dentro de ella. Ahí vas. Las flechas deben apuntar hacia el exterior de la misma. Por lo que se puede ver que esto todavía está dentro de la estructura y debe un punto fuera de la estructura. Y luego aquí mismo, queremos que el otro bloque de rompecabezas apunte hacia él. Entonces estos son los dos bloques de rompecabezas que queremos. Este lado aquí va a tener un nombre asociado a él. Entonces esto va a ser MC curso colon, digamos por ejemplo, sitio, plataforma, algo como esto. Y voy a decir hecho este nombre aquí mismo. Vamos a copiarlo y este va a ser el nombre objetivo aquí mismo. Y entonces el pool objetivo aquí va a ser MC curso colon. Y este es el nombre del expediente JSON que tenemos que poner. Así que esta va a ser la plataforma de subrayado de almacenamiento de barra inclinada sitio de subrayado pool. Este es el archivo JSON aquí mismo, vamos a decir hecho, y ahora esos están más o menos conectados entre sí. Y lo importante es por supuesto, éste por el momento, porque esto está en esta estructura aquí mismo. Por lo que ahora podemos salvar esto. Entonces podemos decir Save. Y ahora se ha guardado la estructura de almacenamiento. Ahora podemos hacer lo similar por las otras estructuras. Así que vamos a hacer esto justo aquí. Y entonces sólo tenemos que subir hasta aquí. Por el otro lado, sólo vamos a hacerlo encendido, es simultáneamente básicamente para que otro bloque de estructura aquí, y luego los otros libros de estructura deberían estar por aquí. Eso parece bien. Entonces entonces el nombre aquí vamos a hacer MC curso colon, almacenamiento de hierro, forma de planta. Volviendo una vez más, voy a copiar este modo de esquina o a distancia. Y luego aquí abajo, éste va a tener el modo seguro una vez más detectar. Veamos. Ahí vas. Entonces entonces ahora esto también se detecta y se puede ver ahora en realidad tenemos ambos. Y recomiendo encarecidamente hacerlo así. Porque ahora básicamente cuando cambias este aquí por otra varianza por así decirlo, y es muy, muy sencillo. Los nombres aquí pueden básicamente quedarse. Entonces esta es la plataforma lateral y plataforma lateral. Eso está todo bien. Entonces vamos a ahorrar esto para bajo el subrayado de hierro almacenado bajo plataforma de puntuación. Guárdalo. Y entonces lo que haré es que cambiaré esto y luego lo guardaremos bajo plataforma de almacenamiento de diamantes y luego esmeralda también. He sustituido la plancha por algún diamante aquí. Y luego por supuesto, lo que queremos cambiar aquí es el nombre, ¿verdad? Por lo que esta ahora va a ser la plataforma de almacenamiento de diamantes. Una vez más, copia esto, voy a decir hecho. Y entonces vamos a cambiar esto aquí también. Entonces en todas las esquinas, básicamente, vamos a ser capaces de detectarlo en tan solo un momento también. Vamos a hacer esto y luego volver a éste, detectado una vez más. Entonces ahora se ha detectado la plataforma de tipo diamante, y ahora podemos guardarla bajo la plataforma de almacenamiento de diámetro. Y luego hagamos lo mismo por las esmeraldas también. Muy bien, por lo que ahora ha sido reemplazado por m roles. Así que vamos a cambiar el nombre una vez más aquí. Entonces esta va a ser la plataforma de almacenamiento Emerald. Una vez más, cópielo, y luego cambia los nombres y todas las esquinas aquí mismo. Así que nada demasiado loco. Ahí vas. Y luego vamos a conseguir esto de nuevo. Así que vamos a ser sólo la plataforma de almacenamiento Actual, Emerald y luego salvarla otra vez. Pero ahora tenemos una plataforma principal y asociada a ella tres diferentes, digamos varianza del otro tipo de plataforma que podemos engendrar. Ahora pasemos a ser inteligente de nuevo, y luego vamos a configurar todo. Muy bien, así que nos encontramos con un inteligente. Y en primer lugar, por supuesto, vamos a obtener los datos de la NVT. Esto debe estar bajo las pruebas estructuradas. Si no me equivoco, ahí vamos. Por lo que tenemos la plataforma de almacenamiento y las tres plataformas diferentes también. Vamos a copiarlos aquí mismo a las estructuras una vez más. Entonces lo que necesitamos es, por supuesto, la estructura en su totalidad. Necesitamos una vez más los cinco expedientes adyacentes para eso. Sólo vamos a copiarlos. Entonces esta va a ser la plataforma de subrayado de almacenamiento y necesitaremos usar ese nombre un par de veces. Así que sólo copiarlo. Una vez más. Sólo nos vamos a quedar con estos biomas por el momento. Esto es por supuesto muy fácil básicamente simplemente cambiar aquí arriba. Y la estructura configurada cuenta con plataforma de almacenamiento y quieren apuntar al pool de almacenamiento dentro del soporte de la plataforma de almacenamiento, que vamos a crear un poco. Y entonces este es el archivo JSON de la plataforma de almacenamiento, que significa qué biomas se van a utilizar aquí. Ahora en realidad no quiero ningún Richards aquí. No obstante, lo que he encontrado es que si quitas las pequeñas sobrescrituras por completo, entonces en realidad reciben un error. Entonces no estoy 100% seguro todavía de lo que tienes que hacer aquí para no conseguir nada donde podamos hacer es algo como esto. Así que vamos a estar bien entonces creo que no, nada aparece aquí. Así que vamos a estar bien, el conjunto de la estructura. Lo que vamos a hacer es una vez más copiar sobre la casa de mostrador, cambiar el nombre aquí, y luego aquí una vez más, claro, cambiar el nombre aquí para que apunte a lo correcto característica de estructura. Y entonces muy importante aquí, cambiando estructura, la sal aquí, claro, y luego el espaciado voy a hacer un poco más de lo que la mínima separación. Y son como 12, va a estar bien. Y luego todo se reduce a la casa de plantilla, que vamos a copiar simplemente sobre la casa descubierta. Vamos a cambiar el nombre de esto a plataforma de almacenamiento. Entonces dentro de los archivos JSON, queremos cambiar esto a plataforma de almacenamiento. Este es el lado derecho, así que este va a ser los tres lados derecho. Entonces lo que vamos a hacer es que sólo voy a eliminarlo, los comentarios aquí. ¿Y entonces qué va a pasar? Dijimos que en realidad queremos uno más de estos. Y entonces esto probablemente va a ser algo así como un peso, digamos cinco, peso tres, y luego esperar a algo así. Y esa va a ser la plataforma de subrayado de almacenamiento de cuatro subrayados. Eso va a tener la autoridad que no es o es hierro. Por supuesto, ahí vas. Plataforma de almacenamiento de hierro. Entonces vamos a llamarlo copia esto y esta va a ser la plataforma de almacenamiento Emerald. Y luego digamos que esta es la plataforma de almacenamiento de diamantes, pero esto debería tener un 50% de posibilidades de desove. Esta es una probabilidad del 30% y esto es un 2% a 20% de probabilidad. Se trata de los diferentes pesos deben ser bastante autoexplicativos. Básicamente son los pesos de cómo se están generando. Por lo que esta debería ser la alberca del sitio y luego para el pool de almacenamiento de la plataforma de almacenamiento, vamos a la alberca de la tienda aquí. Esto va a ser por supuesto, entonces la plataforma de subrayado de almacenamiento. Una vez más, plataforma. Ahí vas. Copia este. Y entonces esta es por supuesto la plataforma de almacenamiento. Este es nuestro lugar de partida básicamente están iniciando los datos de NVT, que va a tener el bloque de rompecabezas dentro de él, que luego está buscando la piscina del sitio, que hemos definido en el bloque de rompecabezas apenas antes. Y eso es literalmente todo lo que necesitamos. Y ahora todos esos tres diferentes mientras que la varianza también generaría. Entonces como dije, es una vez más, una vez que está configurado, una vez muy sencillo, Todas las cosas consideradas. Así que ahora vamos a crear un nuevo mundo y veamos si podemos encontrar nuestras plataformas de almacenamiento o Francis en Microsoft en un mundo nuevo. Y veamos si no podemos encontrar nuestra plataforma de almacenamiento. También podemos simplemente ubicados así yendo por nuestro curso MC. Y esa es la plataforma de almacenamiento aquí mismo. Veamos. Entonces aquí mismo, uno de ellos es, veamos, ahí vamos. Uno de ellos ya engendró aquí con la plancha en este caso. Y se puede ver exactamente cómo dejamos el basicamente y el volumen en los bloques de rompecabezas se han ido también porque han sido reemplazados por aire. En realidad solo HTP en otro lugar y veamos si podríamos ser capaces de encontrar otro de ellos. Vayamos a gustar, ya sabes, 20 K o lo que sea. Y luego van y luego vamos a localizarlo de nuevo. Vamos a ir a por un, otro, localizar una plataforma y luego vamos a ver. Ahí está. Es otro con planchas. Halley. Bueno, quiero decir, a veces funciona así. Vayamos por uno más, intentemos una vez más. Negativos diez k esta vez. ¿ Por qué no? Y luego se van. Y luego volvamos a ubicar. Veamos si éste podría tener algo que no sea hierro y también tiene hierro. Bueno, quiero decir, es una de esas cosas que es más prevalente que las otras. Simplemente es lo que es. Y también creo que solo moviéndonos y volando por ahí, no vamos a encontrarnos con demasiados de ellos ya que los hicimos un poco más raros que las otras cosas que hicimos. Por lo que la casa de conteo y la casa descubierta son mucho más prevalentes en ese caso. Pero sí, quiero decir, eso es más o menos la cosa. Eso es en realidad intentarlo una vez más porque en realidad sí quiero ver las otras cosas funcionando. Así que vamos a ir de, no sé, como un 100 y luego lo vamos a hacer menos diez K aquí. Entonces hagamos otra plataforma de palabras de localizacion o curso MC. Veamos. Oh, bueno, quiero decir que esto también es algo que puede pasar, ¿verdad? Entonces esta es una ocurrencia muy rara. Entonces esto generalmente no es algo que sucede, pero se puede ver que ambas estructuras en realidad engendran más o menos en el mismo trozo. Ese mismo momento. Es por eso que quieres cambiar la sal. Ahora en nuestro caso aquí, acabamos de tener increíblemente mala suerte. Digamos que básicamente compartieron la misma vecindad general. Esto no debería suceder con demasiada frecuencia, pero sí, quiero decir, no puede pasar. Simplemente es lo que es a veces. Pero se puede ver que esta es la variante esmeralda en ese caso, por lo que definitivamente funciona. Y así esto es justo, a veces esto sucede. No debería pasar mucho. Entonces esto debería ser una ocurrencia bastante rara, pero eso es más o menos lo bien que va, ¿verdad? Y eso es más o menos va a ser como puedes agregar algunas estructuras de rompecabezas a tu MOD también. Todas las cosas consideradas bastante directas es solo una vez más en los archivos JSON, configurando la estructura correctamente y luego obteniendo los datos NVT para esa estructura. Pero eso sería todo por esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en la próxima conferencia. 117. (1.18.2) Modelos de armadura personalizados 3D personalizados: Muy bien, bienvenidos de nuevo al curso de forraje para 118. En esta conferencia, vamos a estar haciendo un modelo de armadura 3D de cliente o nuestra armadura de cobalto. Entonces en lugar de usar nuestra armadura que tenemos antes, así que esta en los modelos aquí mismo, que es entonces lo que se está superponiendo en 3D. En realidad vamos a hacer un nuevo modelo ARMA personalizado, que definitivamente no va a quedar tan bien como este. Porque básicamente solo quiero una especie de mostrarte los pasos que debes hacer para realmente hacer esto. Pero vamos a ver por esto, vamos a usar una bancada de bloques en labio gecko otra vez, ya he preparado la armadura real aquí mismo se puede ver que este es el archivo del banco del blog. Esto sucede cuando haces esto siguiendo, ¿verdad? Entonces cuando haces un nuevo modelo animado de labios gecko, solo puedes hacer esto, por ejemplo aquí prueba armadura, ¿verdad? Y entonces lo que puedes hacer es ir a File to the gecko live model settings y cambiar esto a armadura. Si entonces pegas Confirmar, se puede ver que algunas cosas generan aquí mismo, que es básicamente el, qué, el cuerpo ya preparado. Y luego puedes agregarle cosas donde quieras agregarla está debajo de estas. Entonces tienes la cabeza de los bípedos, no toques lo particular. Esto es por supuesto la cabeza en ese caso. Y luego tus cosas personalizadas pueden entrar aquí. Para que solo puedas agregar un cubo. Y luego puedes usar tus cosas, hacerlo, talla justo aquí, ¿verdad? Entonces escala un cierto punto y luego se van y luego puedes simplemente jugar por ahí con este básicamente duplicar eso, hacer un nuevo cubo una vez más, hazlo aquí abajo, moverlo de nuevo. Pero esto es por supuesto todo sólo cosas que hay que hacer. Y puedes crear tus propias cosas personalizadas aquí. Una vez que hayas hecho esto, vamos a tener una, bueno, básicamente sin textura en este momento. Y entonces lo que puedes hacer es que voy a solo por un momento y eliminaré esto y luego puedes ver que vas a tener algo como esto. Y entonces lo que puedes hacer es presionar Control a, y luego va a seleccionar todo aquí. Y lo que puedes hacer es entonces crear una nueva textura aquí. Sólo vamos a llamar a esto la armadura de Humboldt extra, voy a decir confirmar. Y entonces se puede ver que se ve algo así. Si ahora guardamos esto, así que solo guardaremos esto como la Textura de Armadura de cobalto. Entonces si en realidad lo echo un vistazo, se ve así. Por lo que sólo voy a abrirlo rápidamente para que puedan ver que se ve así. Y ahora lo abriré en Photoshop. Ya he preparado aquí un montón de rumbo suave. Puedes ver, también puedes abrirlo en pintura, dotnet o GIMP o lo que sea, básicamente creo que tienes. Y lo que entonces puedes hacer es generalmente lo que quieres hacer es que puedas igual aquí por ejemplo, creo que esta debería ser la cabeza en realidad, no un 100% cierto, pero creo que sí. Entonces podemos, por ejemplo, solo tomar cualquier color aquí. Sólo voy a ponerlo en la misma capa y luego solo vamos a salvarla de nuevo, que la cosa real cambia en el propio banco de bloques. Ahora podemos hacer clic con el botón derecho de actualización. Y luego se puede ver, por ejemplo, esta en realidad era la cabeza. Esto, por supuesto, no fue lo más interesante, pero básicamente puedes cambiar los componentes individuales de esto son algo como esto. Tal vez vamos a cambiar algunas cosas como aquí. Por ejemplo. Esto es, quiero decir, no necesariamente diría un proceso tedioso, pero este es un proceso que definitivamente va a tomar algún tiempo para que básicamente hagas esta actualización de nuevo, podemos ver que pasan por esto dorso de la cabeza en ese caso. También puedes por supuesto, tomar manualmente cada uno de esos cubos y ver cuáles son. Pero esta es básicamente la idea. Entonces vas a tener que hacer la armadura la textura o yo real. Ahora, por supuesto, he preparado una textura. Este va a ser éste de aquí mismo. Y en realidad hay una cosita que queremos hacer y que va a ser básicamente tomando todos los no toques y luego simplemente moviéndolos al fondo aquí, sólo para que básicamente podamos ver la diferencia aquí porque los reales no nos tocan no se van a utilizar de todos modos, pero sólo están ahí para referencia. Básicamente, solo toma esto aquí. Encontré que esta era la forma más fácil cambiar básicamente la armadura a su alrededor. Entonces puedes, por ejemplo, ver aquí, esta armadura en realidad es un poco demasiado baja. Hay un par de cosas que son demasiado bajas y también podemos llevarlas y luego moverlas, correcto. Para que puedan ver que luego cambiamos la armadura aquí. Como dije, no va a ser la armadura más bonita ni el momento. El real, digamos que el modelo real aquí es bastante genial, pero la textura definitivamente podría usar algún trabajo. Admito totalmente que estoy, estoy absolutamente de acuerdo. Solo quería mostrarte básicamente la idea general de cómo funciona esto. Entonces lo que entonces tenemos es esta armadura de cobalto. Así que voy a guardar esto, este archivo de bancada de bloques por supuesto estará disponible para usted. Vamos a cerrar el otro aquí. Y entonces lo que puedes hacer es entonces ir a exportar aquí el modelo gecko live. Esto va a ser cobalto subrayado blindado, GO dot JSON. Así que sólo vamos a salvar esto, anular que el otro. Y luego vamos a inteligente y vamos a añadirlo ahí. ¿ Qué necesitamos para un cliente? En realidad es un montón de cosas. En primer lugar, agreguemos el archivo de modelo en la carpeta geo aquí mismo. Así que sólo vamos a darle un toque. Ahí vas. Y luego también necesitamos un archivo JSON de animaciones. Ahora esto va a ser, ya he preparado esto y es literalmente igual que esto. No estoy 100% seguro. Simplemente puedes tomar esto y usarlo. Y debería estar bastante bien. También necesitamos los modelos ARMA personalizados, así como la textura. Entonces vamos a sumar esto en los modelos aquí. Como dije, este es el que se ve un poco raro, pero no se preocupe en absoluto. Y esto en realidad se va a llamar la Textura de Armadura cobalto solo porque creo que ese nombre es un poco más bonito. Ve por Armor Texture y luego los archivos están todos configurados. Ahora, ¿qué necesitamos en cuanto a qué renderizadores y cosas? Bueno, en la entidad renderizadora sólo vamos a hacer en el cliente en nuevo paquete llamado armadura. Y esto va a incluir dos nuevas clases. Uno de estos, el modelo de armadura de cobalto y el otro va a ser el renderizador de armaduras hola mundo. Ahora antes de que realmente procedemos con esos, en realidad necesitamos una nueva clase de ítem, lo cual es muy interesante. Entonces esto va a estar en el paquete personalizado. Este va a ser el elemento de armadura de cobalto. Y luego lo primero que vamos a hacer es que vamos a tomar todo desde el artículo de armadura mod y simplemente copiarlo. Así que en realidad voy a sólo copiar todo por aquí. Así que vamos a hacer esto. Ahí vas. Y luego vamos a tener algunos errores aquí. No se preocupe, sólo vamos a hacer esto aquí mismo. Y entonces lo que podemos hacer es entonces podemos cambiar esto para que sea lo siguiente. Esto ahora va a extender el elemento geo armor y va a implementar el AI animable, que luego también requiere que implementemos los dos métodos, el controlador de registro y ellos obtienen fábrica, pero en realidad sólo va a mover eso aquí arriba. Simplemente en realidad vamos a escribirlo aquí abajo. Se adaptarán por debajo del, el constructor. Eso va a estar bien. Entonces el, también necesitamos un predicado que ya he preparado. Esto es lo mismo bastante sencillo que hemos hecho con las entidades predicadas, la fábrica animable con la que también debemos estar familiarizados. Esto también lo hemos visto anteriormente. Y por supuesto todo el código es como siempre disponible en el repositorio de GitHub en individual igual de bien. El método del controlador de registro es exactamente lo mismo que la entidad. Y luego la fábrica literalmente solo regresa La fábrica aquí. Entonces esta fábrica de cosas, vamos a hacer esto. Quiero decir, es un poco más bonito. Ahí vas. Hay una fábrica, que es ésta. Todavía tenemos toda la funcionalidad que hacíamos antes. Ahora hay una pequeña cosa que en realidad quiero cambiarlos entonces es el último método aquí mismo, la casa correcta. Armadura en te sugiero que hagas esto también porque lo contrario podrías encontrarte un tema si tienes una armadura completa, como si llevas la armadura completa y además tienes un electrón para que a veces tenga un tema con el otro, con las cosas viejas. Así que ten en cuenta eso también, pero eso no forma parte del modelo personalizado. Ahora cualquier elemento de armadura más clase de artículos, y en realidad queremos que cambie todos esos al objeto de armadura de cobalto aquí mismo. Esto es un poco de diferencia que antes, pero no se preocupe ahí, también hay totalmente bien y eso debería ser. Por lo que ahora tenemos este configurado a través, podemos hacer ahora es entrar en el modelo y en realidad hacer lo siguiente. Esto va a extender el Modelo Geo animado de tipo o ambos elemento de armadura. Ahí vas. Vas a pasar el cursor sobre estos métodos implementados. Entonces vamos a implementar los tres métodos. Una vez más lo copiaré. Esta es la cepa como la misma que teníamos en los modelos para el mapache y el tigre. Se puede ver más o menos lo mismo. Estamos apuntando al archivo GeoJSON de armadura de cobalto justo aquí. También estamos apuntando a la armadura de prueba en este caso. Ahora realmente queremos cambiar el nombre aquí. Esta es capa de armadura de subrayado cobalto, en realidad textura. Ahí vas. Textura, ahí vas. Y entonces esta es la animación de armadura. Esto también está bien. Entonces estas son todas las cosas que tenemos que hacer aquí. Y luego para el renderizado, va a ser muy similar. Queremos aquí es una vez más, sólo voy a pie el renderador de armadura geo, esta vez de tipo objeto de armadura cobalto así más, sobre este crear constructor emparejando super. Y entonces aquí queremos realmente deshacernos de este constructor, poner en un nuevo modelo de armadura de cobalto. Entonces también queremos asegurarnos que seleccionamos las cosas correctas, bien por así decirlo. Esto va a ser muy interesante. Lo que voy a hacer es que voy a copiar esto a lo largo de una vez más. Y esto es en realidad debería ser bastante sencillo. Por lo que ves auriculares es la cabeza de la armadura. Si volvemos a cambiar a banco de bloques, se puede ver este es éste de aquí mismo. La cabeza de la armadura, la armadura, la armadura del cuerpo, ¿verdad? Y así sucesivamente y así sucesivamente. Lo que es muy interesante es que por cualquier razón, el hueso de la pierna en realidad se cambia por una pierna. No sé por qué. Por lo que se puede ver que el hueso de la pierna derecha es en realidad la pierna izquierda ARMA y luego la bota madura es en realidad la bota izquierda. No sé por qué ese es el caso. Simplemente es lo que es. No sé por qué podría ser ese el caso, pero solo tenlo en cuenta. Entonces si crees que eso es algo raro, ahí hay un desajuste. Sí. Es básicamente porque por cualquier razón solo es lo que es. Todavía necesitamos que este Renderer registre y lo hacemos en evento R, en los eventos Mode Event Bus. Y eso va a suceder en un nuevo método que va a ser éste terminado por el momento. Y este va a ser el siguiente evento. Esta va a ser la entidad nos renderé evento, punto añadir capas, el alcance, médico y ser frío evento. Y entonces lo único que tenemos que hacer aquí es que solo necesitábamos al renderizador de armaduras geo, registrar armadura nos renderé para la clase de punto de objeto de armadura de cobalto y luego una nueva armadura de premio renderizado hace un día. Cosas bastante locas en general. Pero en conjunto, no demasiado loco. Mucha de las mismas cosas que hicimos en las entidades ya, correcto, con el modelo de armadura, con el modelo y el archivo renderizador. No es tan loco. El JSON presenta también bastante sencillo. Éste, como dije, solo se puede exportar desde el pellizco de bloque. Éste. Yo sólo tomaría el que he preparado. Quiero decir, tampoco es tan complicado, pero probablemente deberías estar bien con eso, como si no fuera tan complicado. Y luego la textura, solo tienes que hacerte, esa es probablemente la parte más, la parte que consume más tiempo de todo esto. Y acabo de volver a Photoshop por solo un segundo. Ahora, llenando todo como quieras definitivamente tomar la mayor parte del tiempo en el que estás por la armadura personalizada. Pero sí, Eso es más o menos lo que tienes que hacer si quieres un modelo ARMA personalizado realmente genial, solo es lo que es, pero esos son los pasos necesarios. Entonces, una vez más, eso es más o menos todo lo que necesitamos. Entonces por el bien de finalización, veamos si funciona. Muy bien, encontramos consuelo de nuevo en Minecraft, así que vamos a ponernos la armadura y ahí nos vamos malditos. Tenemos la armadura en la LAC también funciona, claro. Y se puede ver funcionando la armadura. Quiero decir, más o menos como esperarías que lo hiciera. Como dije, no es la armadura más bonita en general, pero es funcional y definitivamente es lo que puedas decir, definitivamente es una costumbre. Eso es definitivamente lo recomiendo encarecidamente solo jugar con ella, estar abierto a la experimentación para la armadura. Como se puede ver, todo funciona para el balanceo de los brazos y las piernas y cosas así. Pero es realmente genial. Sí. Quiero decir, eso es más o menos lo fácil que es agregar la armadura personalizada al juego. Agregarlo muy sencillo y bastante fácil, haciendo que parezca realmente genial, definitivamente mucho más difícil. Siempre, por supuesto, todo el código y los archivos JSON están disponibles para ti en el repositorio de GitHub e individual igual de bien. Pero eso sería todo por esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en la próxima conferencia. Sí. 118. (1.18.2): Bienvenido de nuevo a forjar curso para 118. Y en esta conferencia vamos a estar agregando unos aldeanos personalizados a Minecraft. Por lo que ahora es el momento de la profesión aldeana cliente, porque resulta que en realidad es bastante sencillo. Todas las cosas consideradas. Lo que vamos a hacer es que vamos a hacer un nuevo paquete en nuestro paquete del curso MC, viejo aldeano. Y luego dentro de ahí vamos a hacer una nueva clase de Java llamada aldeanos del MOD. Ahora en éste me voy a alejar un poco de mi cosa habitual que vamos a hacer y en realidad vamos a sumar para aplazar registros. El primero va a ser un registro público estático final diferido de tipo juego. Entonces este es el tipo de punto de interés. Sólo vamos a llamar a esto el tipo de punto punto tipo estancia hace igual a registro diferido que crean o a tipos de registros, curso AMC moderado y moderado. Y entonces lo que vamos a hacer es que vamos a hacer un segundo o tercer registro que va a ser de profesión aldeana tipo. Un aldeano subrayan profesiones. Ahí vas. Y va a haber un registro diferente, dot create, registros, lunares aldeanos, profesiones de puntos. Ahí vas. Modalidad de monitor de curso Mc. Y ahora para cuando tenemos diferentes registros, por supuesto tenemos un método de registro vacío estático público con un bus de eventos ojo, bus de eventos cool. Y luego vamos a llamar a los tipos de puntos que se registran preguntando en el bus de eventos. Y luego en segundo lugar, pasamos en el pueblo o profesiones. Me he registrado en el bus de eventos, asegurándome de que llamamos a esto aquí mismo. Vamos a llamarlo permite las estructuras mod. Por lo que los aldeanos mod dot registran y luego pasan en el bus de eventos, ahí vas. Muy bonito. Y lo que entonces necesitamos es por supuesto, objetos de registro para el prototipo y las profesiones aldeanas. Entonces vamos a hacer primero el tipo de punto, este va a ser el objeto Registro de tipo prototipo. Este va a ser el punto blaster. Entonces vamos a usar nuestro bláster de cobalto aquí. Van a haber los prototipos que se registren. Este va a ser el punto de explosión. Ahí es cuando lo sostengo. Y luego por supuesto una vez más, proveedor de un nuevo prototipo, llamará a este punto de explosión. Entonces tenemos que teclear punto, conseguir estado bloqueado, decir bloques mod, dot, dot. Entonces después decimos 11. En realidad echemos un vistazo a lo que todo esto implica. Paréntesis de cierre. Ahí vas. Y luego vamos a entrar en el prototipo real aquí. Se pueden ver boletos Max es éste y este es el rango válido. Por lo que puedes, por ejemplo, echar un vistazo a esto donde se ha utilizado esto. En realidad veamos, creo aquí y luego en el método de registro, es probablemente aquí donde se ha utilizado. Ahí vas. Por lo general son todos 11. Hay algún otro, generalmente el prototipo es 11, por lo que es por eso que usamos 11. Ahí vas. Entonces vamos por el registro final estático público, objeto de registro. Esta vez de profesión aldeana tipo, que va a ser el maestro de la explosión. Y esto va a ser igual al registro de estadística de pueblo o profesión, el maestro de explosiones aquí mismo. Y luego un nuevo proveedor o un proveedor de un nuevo pueblo o profesión. Esto es una vez más, por supuesto, podría ser el maestro de la explosión aquí mismo. Permítanme escribir esto correctamente. Esto va a tomar el punto punto blaster get, y luego va a tomar muy interesante, un conjunto mutable. Y entonces sólo vamos a decir con nada en ella. Y entonces vamos a decir otro set mutable sin nada en él, en realidad. Y entonces el último va a ser los eventos sonoros dot. Y entonces sólo cualquier aldeano trabaja. Solo tomemos el mito de las herramientas por ejemplo, y luego terminemos con un punto y coma. Y luego estamos terminados en el pueblo de profesional. Podemos ver que el primer conjunto inmutable son los ítems solicitados, define ítems que abordarán de esta puede recoger y usar. Y entonces el otro es el PUI secundario, que es como bloqueos de carretera, ¿está este profesional interactúa? En nuestro caso, vamos a tener ninguno de esos son altamente recomendables. Una vez más, estar abierto a la experimentación sobre esto, probar algunas cosas y ver lo que encontrarás. Entonces lo último que vamos a hacer es que vamos a tener otro método que va a ser el vacío estático público, y este va a ser el método register please. Y esto es increíblemente importante. Vamos a tener una declaración try and catch aquí mismo. No escribas este en. El catch uno va a tener lo siguiente. Va a tener una excepción de destino de invocación con esta excepción de acceso legal de una sola línea recta llamada excepción E. Ahí vas. Y entonces esta va a ser la excepción dot print, stack, trace. Ahí vas. Y lo que tiene en el trío es lo obvio. Y luego aquí en el intento, vamos a decir método auxiliar de reflexión de ofuscación. Vamos a hacer la clase punto tipo punto. El nombre del método va a ser estados de bloque de registro, y luego una vez más, pasando en una clase de punto tipo puntero. Entonces después vamos a decir invocar nulo y el punto punto blaster get, ahí vas. Ahora esto podría parecer absolutamente loco para ti, y lo es. Ahora la razón por la que necesitamos hacer esto es básicamente necesitamos, bueno, tenemos que registrar los estados de bloque. En realidad podemos echarle un vistazo como este método aquí mismo. Se puede ver este método de estados de bloque de registro. Como se puede ver, todos los métodos de bloqueo de registro Estados son todos privados. Es por eso que tenemos que usar el ayudante de reflexión de ofuscación en este caso, y entonces podemos llamarlo realmente. Pero si tienes múltiples puntos, solo puedes agregar otro con tu otro punto aquí. Así que solo agrega el otro punto y luego vas a estar bien. Este método debe enfriarse en el método de configuración del curso MC en la configuración común de FMLA. Entonces vamos a decir que los aldeanos mod empiezan a registrar poise y ahí estamos. Ahora no hemos terminado todavía porque aún tenemos que añadir en la traducción algunos rasgos a este aldeano. Y luego también muy importante. El extra, vamos a empezar con la traducción a la traducción es un bastante sencillo todas las cosas consideradas. Solo voy a copiar esto y esto está por supuesto, disponible para ti en el repositorio de GitHub, un individuo igual de bien. Se puede ver Entidad micro villager, curso MC blast master. Y este va a ser el nombre de la entidad real en la parte superior cuando abras el inventario o la textura, esto va a ser muy interesante. Esto está bajo entidad y voy a hacer un nuevo directorio llamado aldeano. Y luego voy a copiar lo que ya tengo aquí y te mostraré de dónde sacé esto. Así que esto va a ser el número uno, el aldeano aquí. No estoy seguro de lo que necesitábamos también al propio aldeano, pero al parecer todavía necesitábamos a menos que profesionales, por supuesto nombrados como éste de aquí mismo, blast master. Y se puede ver, de verdad mucho solo agrego recoloreado una profesión ya existente aquí en este caso, sólo para que tengamos algo que se ve diferente en ese momento, pero en realidad sí funciona. Y conseguí esto, por supuesto, una vez más de las bibliotecas externas yendo todo el camino hasta lo siguiente. Veamos, debería estar aquí mismo por un 1182 extra o cualquiera que sea su versión en la carpeta de activos, Minecraft, texturas en la carpeta de entidad todo el camino hasta el aldeano aquí mismo. Entonces tenemos al aldeano justo aquí. Este es el aldeano normal. Entonces aquí esta es la profesión y yo cogí la armadura, creo. Sí, ahí tienes. Pero solo grabar la armadura son un poco tan altamente recomendable, tomar esto, usarla y luego entrenarla un poco. Entonces lo texturizado aquí definitivamente va a ser lo único que podría llevarte bastante tiempo hasta que lo hagas bien, pero es lo que es. Y entonces los tipos, no creo que realmente necesitara que hagas nada con los tipos, pero lo haces de alguna manera por cualquier razón, necesitas al aldeano y a la profesión. No sé por qué ese es el caso. Al menos eso es lo que mi, eso es lo que tiene mi prueba. Economía. Entonces cuando se trata de los rasgos reales, bueno, podemos simplemente usar nuestro evento de nuevo. Entonces en la clase de eventos de motor en la parte inferior justo aquí, este, podemos simplemente literalmente usar esto para nuestro evento también, para nuestros profesionales personalizados. Bueno, entonces más pobladores que último punto maestro se ponen y ahora podemos agregarle cosas también. Por lo que sólo podemos decir algo como esto donde solo podemos agregar la lista, solo agrega algunas cosas aquí para el nivel uno. Y luego solo por el bien de la discusión, solo agreguemos aquí un par de dos nivel dos. Sólo vamos a cambiar esto al nivel dos. Pero esto va a ser, sólo vamos a sumar lo mismo por diferentes precios porque ¿por qué no? Hagamos esto y luego vamos a hacer un nivel dos. Vamos a hacer algo así como un 58 como una prueba mucho aquí solo para que puedas ver que también los puedas sumar. Es todo el mismo cobalto Paxil básicamente que estamos siendo capaces de comprar aquí. Entonces no va a ser tan interesante, pero vamos a probar esto y verás que esto les va a sumar los oficios también. Entonces supongo que veamos si funciona oh, justo frente a nosotros en Minecraft. Así que vamos a engendrar a un aldeano Y luego vamos a bajar las explosiones de cobalto o que inmediatamente reconocen como un punto de interés y debe avanzar hacia él y luego conseguir lo real o supongo que no. Vamos a acercarnos un poco aquí. Bueno, ahí había un error tipográfico. En realidad es el bloque cobalto el que es el punto de interés, pero lo suficientemente justo, supongo. Así que vamos a ponerlo abajo y luego se puede ver ahora se está moviendo hacia ella. Porque se puede ver que sí tenemos una flecha y la textura. Vamos a arreglar eso en un momento. Ver la O, en realidad es el blaster Moscú. Eso es genial. Pero se puede ver el rastro aquí se han agregado. Yo puedo conseguir esos. Y luego después, deberíamos poder ver, una vez que en realidad sube de nivel, debería poder conseguir los otros que van por el nivel dos y ahí está. Entonces eso definitivamente está funcionando. Así que solo veamos para arreglar la textura real por un momento. Aquí mismo dice maestro de la explosión. Por supuesto, debería decir maestros de explosión. Por lo que eso debería casi arreglar todo el resto aquí. También va a cambiar esto por el bláster de cobalto aquí mismo. Y luego solo por el bien de la discusión, veamos si funciona. Por ejemplo, de vuelta en Minecraft una vez más, y sólo vamos a ponerlo abajo y se van Ahora todo está funcionando bien si voy aquí y el último maestro también trabajando para que todo como tú esperar que lo haga. Entonces eso es lo fácil que es agregar un pueblo o profesión personalizada, Minecraft, ¿verdad? Una vez más, por supuesto todo el código estará disponible para ti en el repositorio de GitHub e individual igual de bien, pero eso sería todo para esta conferencia aquí mismo. Espero que hayas encontrado esto útil y aprendas algo nuevo. Y te veré en la próxima conferencia. 119. (1.18.2) Entidades: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar mirando entidades de bebés. Sí, entonces vamos a agregar la entidad bebé a nuestro tigre. Y una vez más, esta es una de esas cosas que en realidad es mucho más fácil de lo que cabría esperar. También fui un poco más complicado, pero en realidad no es complicado en absoluto. Dentro de nuestra raza descendencia aquí mismo, lo que queremos hacer es que queremos decir tipos de entidad mod, no un tigre que consigue que crea y luego pase al nivel del servidor. Este es este parámetro aquí mismo. Sólo voy a hacer click en él, presionar Shift F6 para cambiarlo a nivel de servidor solo para que sepamos lo que estamos pasando aquí y luego lo estamos pasando aquí mismo. Este es el número uno que tenemos que hacer. Número dos, necesitamos anular un determinado método y ese es el método alimenticio. En lugar de aquí, básicamente estamos comprobando si esta pila es o no el alimento que esta entidad en particular se puede criar ancho. En este caso, vamos a decir p dot get item, y voy a decir que es igual a los ítems dot beef. Básicamente quiero que haga clic derecho la entidad tigre con carne de res de lo que está lista para respirar. Esa es la idea aquí. Entonces necesitamos un nuevo objetivo. Por lo que sólo voy a copiar sobre el asentamiento o meta y este va a ser el objetivo de la raza, también va a tomar en un modificador de una velocidad justo aquí. Así que sólo vamos a tener la misma velocidad y acabo de ponerlo aquí bajo el en la prioridad tres. Creo que, eso debería ser bastante sencillo entropía multa. Ahora estas son en realidad todas las cosas que tenemos que hacer en la entidad tigre. Hay una cosa más que tenemos que hacer en el renderer, y esa va a ser la escala aquí. Entonces esta es por supuesto la escala del modelo real. Y lo que podemos hacer es que podamos decir si animable, eso es bebé, y vamos a escalar un diferente de solo presionar Control X para cortarlo y luego pegarlo de nuevo. Y entonces aquí mismo, vamos a hacer esto. Entonces aquí estamos cuando no es un bebé, y luego aquí estamos si es un bebé, así que sólo vamos a poner eso a mitad y luego eso es todo. Y esto debe ser todo lo que tenemos que hacer para tener el tiempo el trabajo del bebé. Hay algunas cosas interesantes. Por ejemplo, una vez que en realidad tenemos los equipos tigres y luego le damos un clic derecho con el alimento aquí mismo. Entonces aún nos gusta ir a ella para escribirlo. Entonces hay un poco de rariedad aquí, pero eso debería ser bastante trivial para arreglarlo aquí mismo, básicamente para comprobar, hey, como jugador haga clic derecho con una carne de res y luego no deberíamos ni siquiera empezar a escribirlo. Eso debería ser bastante sencillo de arreglar. Pero por el bien de terminación, veamos si funciona o nos encuentra en micro. Entonces respondamos a los tigres y veamos, haga clic derecho, haga clic derecho. Ahí vamos. Y luego en cuanto se encuentren, sí, no. Ok. Ahí vas. Había un ahí está el bebé tigre también o trabajando absolutamente bien. Ahora en realidad toma bastante tiempo para que crezcan. Lo he probado y van a crecer. Simplemente lleva mucho tiempo. Esto creo que está codificado en la clase animal, pero en realidad podemos comprobarlo en un momento. Pero sí, así es más o menos como haces eso. Y entonces éste, por supuesto, no podemos reproducirse. Ahora un pensar que sólo lo suficiente deberíamos poder posiblemente escribirlo. Quiero decir, está bien. Eso es como que probablemente debería haber un cheque para eso. Pero honestamente, eso son entidades de bebés. Muy autoexplicativo. En realidad no tan difícil. Realmente pensé que serían más difíciles, pero en realidad son bastante sencillos, ¿verdad? Así que solo una vez más si realmente echas un vistazo a este botón central del ratón, haz clic en este ratón medio, haz clic con el botón derecho sobre esto. Ves, este es el animal, y éste tiene una especie de todas las cosas diferentes para la cría en él. Para que puedas ver que tiene, tiene un montón de cosas. Tienes la vela y me encantó el set y el amor eso. Me encanta el tiempo conseguir suficiente tiempo, conseguir amor curso está enamorado, restablecer, el amor puede cumplir. Esas son una especie de las cosas. Quiero decir, aquí se puede ver al niño desova método de cría, que básicamente patrocinan al niño real. puede ver que se habilita móvil desde el, se lee descendencia aquí. Entonces eso debería ser lo que debes echar un vistazo si hay algo que quisieras anular posiblemente. Así que sí, eso es más o menos lo que necesitas tal vez en la fregona de escombros. Sí. Para que puedas ver bebés empiezan h, Esta es la h almacenada aquí. Por lo que probablemente puedas cambiar esto también dentro de tu entidad tigre. En ese caso, si quieres, tal vez el tigre crezca un poco más rápido, eso podría hacerse también. Pero sí, eso es más o menos lo fácil que es agregar entidades para bebés a tus turbas. Es mucho más sencillo de lo que pensaba, pero eso ya sería por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendas algo nuevo. Y te veré en las próximas conferencias. 120. (1.18.2) Geodas personalizadas: Muy bien, bienvenidos de nuevo al curso forestal para 118. Y en esta conferencia vamos a estar echando un vistazo a cómo se pueden agregar geocódigos personalizados a un Minecraft. Ahora, esto es en realidad bastante sencillo para agregar y solo vamos a echarle un vistazo. Entonces en el paquete mundial, en el paquete de características, las características mod configuradas es donde agregaremos la geoda y copiaré sobre todo el titular. Y luego vamos a echar un vistazo básicamente a cada una de esas líneas y lo significan y la locura que se asocia con ella porque es una cosa bastante larga, pero no se preocupe en absoluto. Pueden ver que en realidad es hacer una nueva línea aquí también. Y se puede ver que es bastante el campo largo en este caso, pero no se preocupe en absoluto. Entonces por supuesto, una vez más, estamos utilizando la característica utils dot register para registrar una característica de geoda en este caso. Y entonces tenemos que hacer una nueva configuración de geoda. Esta también es una gran clase a la que básicamente echar un vistazo. Entonces si hacemos clic en el botón central del ratón sobre esto, realidad se puede ver lo que significan cada una de estas cosas, ¿verdad? Tenemos la configuración de bloques, tenemos la capa, la configuración correcta, tenemos posibilidad potencial de colocación, y todas esas cosas locas que básicamente podemos añadir aquí. Lo que es muy interesante en este caso es en realidad también va a ser la configuración de bloques de geoda aquí. Entonces esto es básicamente todo lo seleccionado aquí mismo. Y esas son en realidad muy interesantes porque aquí se puede ver de qué se hacen básicamente las capas particulares de riqueza . Por lo que se puede ver que el proveedor de llenado va a ser aire que debe ser bastante autoexplicativo. Entonces el G o dentro de ella, todo es aire. Si no quieres que sea aire, también puedes cambiar algo más, ¿verdad? Para que puedas cambiar esta caja justo aquí por otra persona, ¿verdad? Si tienes un bloque diferente que quieres que esto se llene de hindú. Por lo que eso es realmente genial y te permite básicamente modificar y configurar casi cualquier cosa que quisieras, lo cual me parece realmente cool. Entonces esta es más o menos la idea, ¿verdad? Entonces esto es una vez más, una de esas cosas donde solo recomiendo encarecidamente solo jugar por ahí con los diferentes bloques, los diferentes números, especialmente también. Es lo mejor que puedes hacer. Simplemente prueba alrededor de algunas cosas, mira hasta que básicamente puedas encontrar un GO que te guste en términos de lo agrietada que está, justo con la configuración correcta, por ejemplo, esto solo significa si hay o no algunos lado a ella que se expone e inmediatamente pueden entrar en cosas así. Simplemente recomiendo encarecidamente echar un vistazo a esto, jugar con los números aquí. Y entonces ojalá vayas a crear una geoda de tus sueños, por así decirlo. Ahora lo que quiero hacer es que quiero reemplazar la pizarra profunda aquí mismo. Vamos a reemplazar esto por suciedad. Y digamos aquí mismo, sólo hagamos esmeralda. Seguro. ¿Por qué no? acaso, básicamente quiero echar un vistazo a cómo esto afecta a la configuración del blog geo. Y entonces se puede ver dónde se colocan básicamente todos estos bloques diferentes, ¿verdad? Entonces la más importante es en realidad esta lista de aquí. Debido a que esta lista suele escribir, esta lista es en realidad las colocaciones internas y las colocaciones internas o los cristales de amatista. Por lo que estas listas básicamente incluirían estos cristales de amatista. Entonces lo que básicamente podemos echar un vistazo, por ejemplo, es otra característica, la geoda. Así que vamos a sólo el botón central del ratón, haga clic en esto, medio un anuncio, haga clic en esto y se puede ver la amatista GO aquí mismo. Si sólo vamos todo el camino a la, ahí vas. Por lo que ahí se puede ver la amatista en ciernes. Y esto también se hace en la lista aquí mismo. Por lo que se puede ver racimo de amatista, en donde se puede ver aquí tenemos el pequeño brote amatista medio MF es cogollos. Por lo que esta es una lista de los posibles brotes de amatista en racimo de amatista que podrían ser capaces de desovar. Esa es la idea general de esta lista de aquí. Así que acabo de usar el bloque cobalto en este caso, pero puedes por supuesto, hacer el tuyo propio, agrupar el tuyo. Pero básicamente y luego cisne eso también. Ahora eso está todo bien y bien, pero ¿qué hacemos con esta característica configurada? Bueno, entramos en cuanto más, entramos en la clase de características del marketplace una vez más, y sólo vamos a hacerlo, y sólo voy a copiar sobre el titular una vez más, esto está todo disponible para ti en el repositorio de GitHub e individual igual de bien. Y se puede ver que esta es la geoda cobalto colocada. Por supuesto, estamos tomando la geoda cobalto de la que acabamos de crear básicamente, entonces estamos haciendo un filtro de rareza en promedio cada, cada 50 trozos. El spread N-cuadrado es sólo algo que he tomado más o menos de la geoda de vainilla también. Y luego se puede ver, estamos básicamente esta mañana por encima seis y todo el camino hasta 50. Una vez más, recomendamos encarecidamente jugar alrededor con los anclajes verticales por encima de abajo, abajo abajo, absoluto, todo eso. Simplemente pruébalo y mira lo que básicamente puedes ver hasta que se coloca de la manera que quieres escribir. Entonces esto es más o menos eso. Y entonces solo tenemos que entrar en nuestra más o generación. Entonces en lugar de llamar al cobalto o colocado, se quiere llamar a la geoda cobalto colocada. Esas son en realidad todas las cosas que necesitamos para agregar nuestra geoda personalizada aquí en este caso. Entonces hagamos un mundo nuevo y veamos si funciona. O nos encontramos en Minecraft. Y como se puede ver, ya he encontrado una pequeña geoda agradable, para que puedan ver cuáles son básicamente los diferentes bloques. Entonces, en primer lugar, por supuesto, el interior de la misma está bien básicamente lleno de aire al igual que lo especificado en el mismo principio. Y entonces se puede ver, y luego se pueden ver los bloques aquí básicamente serían las amatistas en ciernes, ¿verdad? En tanto que el caballo serían los bloques de donde crecía el MSS. Esa es la idea general. También se puede ver dónde se coloca la suciedad. Una esmeralda, ¿o dónde está esto? Bueno, si en realidad salimos de aquí de lo que deberíamos poder encontrar alguna esmeralda o posiblemente por el otro es para que puedan ver los bloques de amro en realidad. Entonces esto es todo el camino hacia aquí donde la geoda real mancha. Por lo que se puede ver que el tamaño real del geoide es bastante más grande. Y C, ahí vas. Por lo que recomendamos encarecidamente tal vez no cambiar esto a auras esmeralda, sino bloques esmeralda en este caso. Entonces eso es bastante loco. Pero sí, esas son básicamente las ideas de lo que hacen todos estos bloques diferentes. Y entonces solo es cuestión de jugar un poco con ellos en tu propio tiempo y probar algunos valores diferentes, ¿verdad? Pero eso ya sería por esta conferencia aquí mismo. Ojalá te pareciera útil esto y las alertas de que lo Nuevo, y te veré en la próxima conferencia. Entonces, sí. 121. (1.18.2) Bloque que interactúa con Redstone: Muy bien, bienvenidos de nuevo al curso de forja para 118. En esta conferencia, vamos a estar echando un breve vistazo a cómo puedes hacer que tus bloques interactúen con una Redstone. Pero esto era algo que algunas personas realmente querían echar un vistazo y no estaban muy seguros de cómo. Entonces. Echemos un vistazo a nuestra clase de bloque de clientes, principalmente el bloque de lámpara de cobalto. Entonces en lugar de hacerlo para que puedas hacer clic derecho para básicamente encender y apagar esto. Lo que vamos a hacer es que sólo vamos a comprobar si se aplica o no una señal de Redstone a este bloque. Ahora, una vez más, por supuesto, nuestro mejor amigo aquí son las bibliotecas externas, principalmente el código fuente de Minecraft. Entonces si en realidad presionamos turno dos veces y luego echamos un vistazo a la lámpara redstone. Esta va a ser la lámpara redstone, asegurándose de que incluya no proyectos esté ticticked. Se puede ver este de aquí mismo, su propio bloque de lemma, entonces podemos más o menos, y esto es locura, en realidad copiar sobre la mayor parte de esto, la mayor parte de ella que está escrito aquí. Por lo que queríamos el método tick y también el vecino cambia métodos. Entonces esos dos son básicamente los únicos métodos que necesitamos. Entonces vamos a copiar sobre esos dos del bloque de lampara redstone. Todo el código es por supuesto también va a estar disponible en el repositorio e individual igual de bien. Y sólo tenemos que cambiar la tapa por aquí básicamente para cobrar porque lo llamamos hace clic que ellos. Y eso debería estar bien. Pero podemos cambiar esto aquí a este año también. Este año también. Y luego aquí también, allá vamos. Apenas agreguemos aquí una anulación de agregar solo para que estemos, sabemos que hemos sobrescrito esos métodos por si acaso, y eso debería estar bien. Ahora, en realidad no quiero que nada cambie por aquí, así que sólo vamos a comentar esto. Eso también debería estar bien. Y ahora esto es en realidad casi todo lo que tenemos que hacer en este caso. Entonces, ¿qué hace esto realmente? ¿Verdad? Entonces porque podrías ser como, eso es un poco raro. Bueno, en primer lugar, el vecino cambió método será bastante autoexplicativo. Esto se llama cada vez que cambia un vecino de este bloque en particular. Lo que entonces hace es que dice, oye, igual que cualquier vecino tiene una señal por aquí, ¿verdad? Entonces va a decir básicamente, va a conseguir, en primer lugar, el valor de Clicked. Eso es justo, bastante justo. Esto es cierto. Por lo que actualmente estamos en, correcto. Entonces estamos básicamente queremos comprobar, oye, es el, también, no tenemos señal de vecino si estamos encendidos? Porque entonces lo que queremos hacer es que queremos apagar esta roca en particular como idea general. Esto es un poco más complicado en la forma en que esto está básicamente enunciado. Pero esa es la idea general. El tick programado más o menos justo, bien programa una garrapata si en realidad entramos en esto. Y esto es un poco difícil de leer con los parámetros no del mapa. La idea general es solo que básicamente estamos programando una garrapata y luego se llama al método tick por aquí. Método de tick aquí en este caso, una vez más, comprueba si el nuestro propio o no y si el vecino no está encendido, si no hay señal en el vecino, si ese es el caso, más estableciendo este bloque a ser, y en realidad estamos en bicicleta a través de lo vinculado aquí mismo. Por lo que en realidad podemos echar un vistazo a lo que la colección ciclista by Nixon, lo que esto más o menos sólo hace es que invierte el clicked. Entonces es lo mismo que hicimos aquí mismo con el estado actual y luego negándolo, es lo mismo. Sólo estamos en bicicleta a través de ella. Entonces eso es todo lo que estamos haciendo. En este caso, casi no hay cambio en el código de vainilla. En este caso, solo cambiando la iluminada básicamente dos hicieron clic en este caso. Y eso es más o menos. También queremos hacer es que quería agregar el siguiente sistema fuera línea de impresión sólo para que podamos ver esto. Entonces podemos decir por aquí, digamos eso para decir powered by. Y entonces vamos a decir, cuando diga nivel P, consiga una mejor señal de vecino. Ves, sólo estamos pasando en la posición de nuevo. Pero, ¿cuál es el mejor vecino? Siegel? ¿ Cuál es la mejor señal de vecino? Bueno, la mejor señal de vecinos es simplemente de todos sus vecinos, que tiene la señal más fuerte. Y simplemente vamos a emitir básicamente la señal real de ese vecino en particular. Entonces este es un entero. puede ver donde es 15 es la fuerza de señal más alta que redstone puede tener. Entonces si alguno de los vecinos tiene 15, entonces vamos a la salida 15. Si hay una señal más débil, vamos a emitir eso. Entrémonos al juego y veamos qué hace realmente esto. O Francia o en Minecraft. Y ya la he bajado una lámpara de cobalto. Vamos a probar un nivel. En primer lugar, ahí vas. Puedo encenderlo y apagarlo, para que eso funcione. Y también puedo ponerle redstone. Y esto también funciona. Si ahora hago clic derecho en él y te muestro inteligente, puedes ver powered by 14. ¿ Por qué es 14? Bueno, claro, porque esto sería 15 de fuerza y esto sería 14 de fuerza. Por ahora, enciende este también, ¿verdad? Entonces la palanca entonces en C, ahora es accionado por. Entonces eso es más o menos todo lo que hay a ella. Esto es básicamente cómo se podría cambiar una propiedad estatal de bloque particular al aplicarle Redstone. Y esto es más o menos todo lo que necesitas si entonces quieres alguna funcionalidad especial hacia ella, bueno entonces necesitas por supuesto, tomar esos bloques, digamos propiedades, por ejemplo, que cambian y hacen algo con ellos. Pero eso es más o menos todo lo posible. Eso es lo fácil que es agregar un bloque con alguna funcionalidad redstone del juego. Como siempre, todo el código está disponible en el repositorio just y el GitHub también. Y los veré a todos en la próxima conferencia aunque. Sí. 122. (1.18.2) Renderizador de entidades de bloque personalizado: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar echando un vistazo a la entidad de bloque nos renderé. Bueno, este es un tema muy interesante que básicamente te permite renderizar algunas cosas personalizadas en tus entidades de bloque básicamente, ahora lo que haremos es importar un modelo de bloque personalizado desde un banco de bloques. Por lo que ya he preparado esto. Se llama pedestal. Y lo que será capaz de hacer es que podremos hacer clic derecho con un artículo y luego el artículo flotará sobre el pedestal. Esa es la idea general de este ejemplo particular aquí. Y va a ser realmente, realmente alucinante impresionante. El archivo de bancada de bloques también estará disponible por supuesto. Y cuando tengas esto, lo que quieres hacer es que quieras ir a archivar y exportar el modelo de elemento de bloque aquí mismo. Sólo vamos a exportarlo pedestal que Jason. Muy bien, eso va a estar bien. Y entonces podemos proceder. Por lo que por supuesto va a haber nuestro archivo JSON modelo de bloque. Pero antes que nada, vamos a crear un bloque, la entidad de bloque y toda la locura que conlleva ahí. Empecemos con la clase de bloque real. Entonces vamos a hacer clic derecho en nueva clase Java en nuestro paquete de blog personalizado. Y este va a ser el bloque de pedestal hace un. Ahora esto extenderá la clase de bloque de entidad base aquí mismo. Pasará el cursor sobre este Implementar Métodos, el nuevo método de entidad. Y luego volveremos a pasar el cursor, crear constructor que coincida super. Si el parámetro aquí te molesta, Shift F6 para cambiarlo a propiedades y entonces todo debería estar bien. Ahora lo primero que quiero hacer es que quiero hacer un error deliberado aquí mismo para que no nos olvidemos de cambiar esto después de que hayamos creado la entidad de bloque porque eso a veces sucede. Y lo que también voy a hacer es copiar el resto del código aquí mismo. Entonces esto no es demasiado loco. Entonces podría parecer mucho, pero en realidad no es demasiado loco. También nos da un error aquí porque no tenemos el crédito de entidad de bloque, pero eso está bien. Lo primero que es increíblemente importante a medida que consiguen el método de la vergüenza de renderizado y todo el código aquí es por supuesto también valioso. Consigue un pastor en individuo igual de bien. Entonces no se preocupe ahí. Pero el método en forma de retina es el más importante, lo contrario, tu bloque será invisible. Entonces eso es muy importante. Utilizaron método por supuesto, es el método que es, que se llama cuando haces clic con el botón derecho en este bloque en particular. Y lo que pasa aquí es que básicamente solo estamos comprobando, oye, ¿hay algo dentro de este inventario? Si está vacío, entonces sólo estamos tomando el artículo en que está en la mano del jugador y lo estamos agregando al inventario aquí. Entonces pedestal a elemento jugador, copiándolo, disminuyéndolo. También estamos recibiendo la reproducción del sonido pick-up del artículo porque eso es sólo un poco más agradable aquí. Y luego si el pedestal no está vacío, entonces básicamente estamos desove el artículo del pedestal y eliminándolo también del pedestal. Pero esos son solo tres pequeños métodos de ayuda privada en este caso, y el resto sucede en los métodos utilizados. Entonces, en general, la funcionalidad real aquí no es tan loca, todas las cosas consideradas. Ahora por supuesto, todavía necesitamos la entidad de bloque, así que en realidad consigamos también la entidad del libro. Entonces hagamos una nueva clase y el paquete de entidad, esta va a ser la entidad de bloqueo de pedestal. Y primero que nada, importante aquí mismo. Entonces ahí vas. Simplemente podemos importar esto. Y entonces vamos a estar bien solo un segundo. Este error desaparecerá una vez que en realidad implementemos todo aquí. Entonces, ¿qué necesitamos aquí? Bueno, en primer lugar, por supuesto esto necesita ampliar la clase de entidad de bloque. No debería estar demasiado loco. Y vamos a crear el constructor emparejando super. Y entonces la pregunta es, bueno, ¿qué necesitamos? Bueno, en realidad necesitamos bastantes cosas. Una vez más, los copiaré, pero no se preocupe. Todo esto está disponible en el repositorio de GitHub e individual igual de bien. Ahora, estos dos no deberían estar locos. Esto lo hemos visto en las blastos acordes o entidad de bloque también. Apenas el manejador de pila de artículos aquí, básicamente nuestro inventario de esta entidad rock en particular. Y luego también necesitamos el láser opcional para que lo pongamos a disposición a través de las capacidades también. Entonces vamos a copiar algunos métodos de ayuda por aquí ya que lo que encontrarás es que también tenemos una rotación por aquí. Ahora, ¿por qué tenemos la rotación por aquí? Bueno, porque lo que queremos hacer es que queremos que cada una de las diferentes entidades de bloque cuando el ítem esté ahí, básicamente queremos que gire. Y la rotación aquí en este caso realmente se guarda en la entidad de bloque. Tenemos que guardarlo aquí mismo, porque si lo guardamos en el renderizador de entidad, eso no funciona porque cada entidad de bloque básicamente comparte un renderizador. Y luego cada entidad de bloque que añadas solo hace que el, bueno, hace que básicamente gire más rápido. Entonces cada entidad de bloque necesita su propia rotación, pero eso está bien, ¿verdad? No hemos sumado rotación por aquí. Acabaríamos de añadir una rotación cuando llegue a 360, entonces solo lo estamos restableciendo a 0. Si es menos de 0, solo lo estamos agregando. Así que básicamente solo lo estamos girando alrededor. Esa es la idea general. Y luego aquí tenemos un método get rotation, pero nada demasiado loco. Entonces agreguemos la capacidad así como los métodos de guardar y cargar. Pero una vez más, esos tampoco deberían estar locos. Obtienes capacidad que hemos visto en la entidad personalizada, así como los métodos adicionales y bajos seguros para la etiqueta donde acabamos de guardar el inventario. Entonces, cuando dejamos el mundo y volvemos a entrar, el inventario real todavía se guarda, ¿verdad? Y luego los últimos métodos que también necesitamos aquí son el método drops, ¿verdad? Entonces estos son solo los métodos para que las cosas realmente caigan. Por lo que queremos implementar eso en el bloque en tan solo un momento. Y luego también tenemos el método invalidar caps, el método onload que sí obtuvimos el método paquetes de actualización y obtienen el método de etiqueta actualizado. Ahora estos dos son importantes para invalidar los campamentos y luego descargar para que el manejador de artículos real se inicialice adecuadamente y todo eso. Ahora, estos dos son importantes porque de lo contrario podría haber un problema de sincronización entre el servidor y el cliente. Es por ello que necesitamos ambos. Y básicamente queremos conseguir el impuesto de actualización. Por lo que queremos conseguir una etiqueta por aquí y luego cargarla y luego devolverla. Entonces esto Bueno, no es demasiado loco, pero solo sepan que necesitamos esto. De lo contrario el cliente y el servidor no se hundirán correctamente, y luego se guardará el artículo real, pero no va a ser para dividir. Es por eso que necesitamos ambos métodos también, ¿verdad? Entonces vamos a ir al bloque por un momento y vamos a sumar, se puede ver la flecha aquí desaparece. Y también agregaré aquí el método onRemove que llama al método drops que acabamos de implementar por aquí. Entonces, en teoría, ni siquiera necesitamos hacer un for-loop, pero esto va a estar bien. Va a estar bien. Este es el mismo método de gotas que tenemos en los cloroplastos o entidad de bloque. Y eso es en realidad todo lo que necesitamos dentro de la entidad de bloque. En general, no es demasiado loco y no es demasiado complicado. Básicamente sólo algunas de las cosas que necesitamos para guardar los datos allí. Entonces, en realidad vamos a entrar en la clase de entidades de bloque mod y vamos a registrarla. Pero sólo vamos a, tomemos la última fila cooperativa. Sólo vamos a copiar esto a la entidad de bloque de tienda de cabecera de aquí. Este también va a ser el pedestal. Pedestal. Ahí vas. Entonces por supuesto, cambiando el nombre aquí, muy importante en efecto, de lo que necesitamos que ésta sea la entidad de bloque pedestal. Y este tiene que ser el pedestal que aún no se implementa, pero eso está bien. Ahora vamos también a entrar en la entidad de bloque pedestal una vez más. Porque por supuesto que sí necesitamos cambiar el constructor por aquí. De lo contrario no va a funcionar. Entonces vamos a querer verlo, pero mira, entidades que, eso aún no es conseguir el ego y ahora las entidades de bloque deberían estar bien. Ahora necesitamos registrar el libro real. Eso va a estar bien que va a estar en nuestra clase de blog, más clase de bloques aquí mismo. Vámonos al fondo por aquí. Copia sobre la ventana de invierno. En este caso, este va a ser el pedestal y por supuesto nombre también, pedestal. Y este va a ser el pedestal. Suerte. Ahora esto está protegido, por lo que necesitamos cambiar esto a un público. Ahí vas. Y entonces podemos hacer esto también. Ahí vas. Totalmente bien. Esto se va a copiar. Qué tal tal esto en realidad no va a copiar sobre ¿Qué tal esto va a tomar un material esa piedra, creo que eso haría la piedra material más sentido El hace. Y se va a agregar a nuestra pestaña Creativa personalizada. Eso está bien. Entonces podemos volver al bloque de pedestal una vez más y llamar a entidades de bloque mod que pedestal dot, dot crean, pasando en la posición y el estado por aquí. Y el bloque debe hacerse también. Y entonces las entidades de bloque de modo, esta ahora tampoco es un error y todo debería funcionar bien. Eso es absolutamente genial, pero aún no tenemos la exhibición de nuestro mundo. No tenemos un renderizador de entidad de bloque de clientes básicamente. Bueno, vamos en nuestro paquete de entidades, hagamos un nuevo paquete llamado cliente. Y luego en lugar de ahí, vamos a hacer una nueva clase Java llamada bloque pedestal, bloque tienda de encabezado y renderizador de entidades. Y esto va a extender el renderizador de entidades de libros, éste de aquí mismo de tipo pedestal entidad a granel. Pasemos el cursor sobre esto, Implementar métodos, el método render en este caso. Y entonces también en realidad queremos cambiar esto a implementos en lugar de extiende. En realidad ese es un buen punto porque esto es en realidad una interfaz. También necesitamos una entidad de bloque de pedestal público Renderer con un bloque, con una entidad de libro renderizado proveedor. Éste de aquí mismo, ese contexto o contextos, y este va a ser nuestro constructor en este caso. Ahora, una vez más copiaré sobre el contenido del método render. Una vez más, todo esto está disponible para usted y esto debe conseguir, esto debería ser bastante sencillo, todas las cosas consideradas. Entonces, en primer lugar, básicamente estamos obteniendo el renderador de artículos aquí mismo desde el propio Minecraft. Y luego diremos, está bien, dame la pila que está dentro de aquí, y luego haremos un montón de locura. La idea general es que la pila de aquí más menos hace el renderizado, en términos generales. Y lo que estamos haciendo básicamente es que solo estamos haciendo que la pila real se mueva hacia arriba y hacia abajo. Entonces esto va a ser R, Este va a ser el ítem. Lo vamos a hacer arriba y abajo. Lo vamos a escalar al tamaño por aquí. Y luego también vamos a conseguir una rotación. Por lo que esto es solo girar el elemento alrededor del eje y. Eso es más o menos todas estas tres cosas que no las hagan hará renderizar el elemento real aquí, y luego tenemos que hacer estallar la pila nuevo, y luego deberíamos estar bien. Entonces básicamente agregamos una rotación negativa para que cada vez que esto se llame básicamente cada garrapata o así, en términos generales, ¿verdad? Entonces cada vez que se llama a esto, básicamente giramos alrededor por menos un grado para que sea una rotación suave. Una vez que realmente veas esto no debería estar demasiado loco, no deberías ser demasiado complicado. Todas las cosas consideradas en realidad es bastante sencillo. Ahora el renderizador de entidades de bloque en realidad tiene que agregarse a un determinado evento. Y para eso realmente necesitamos una nueva clase. Este va a ser los eventos mod de cliente, y voy a copiar esto a lo largo de una vez más. Pero una vez más, esto es en realidad muy sencillo. Ellos ven que necesita el suscriptor de bus de eventos de modo add en la parte superior de la clase son importantes que se trata de las barras de mortero así como el valor dist dot cliente. Esto es extremadamente importante, lo contrario no funcionará adecuadamente. Entonces, por supuesto, necesitas un método estático público con un atributo de proveedor de suscriptor aquí encima de él. Y necesitamos los renderizadores de entidad, renderizadores de registro de eventos. Después acabamos de registrar la entidad de bloque Renderer con la entidad de bloque pedestal y el renderizador de entidad de bloque de pedestal. Eso es todo lo que tenemos que hacer. Y ahora el render real está registrado correctamente también. Lo último que ahora necesitamos son sólo dos. Añadir los archivos JSON. Se puede ver que no hemos agregado ninguna pantalla ni ningún menú porque en este caso, nuestra entidad de libros en realidad no tiene pantalla ni menú. Vamos a copiar sobre el pedestal Jason por aquí, no debería estar demasiado loco. El estado de bloqueo es Jason bastante autoexplicativo? Igual con la traducción de este punto. Estas cosas deberían ser, quiero decir, en este punto no debería ser ni siquiera una pregunta aquí. Esto es sólo una cosa muy directa. Vamos a sumar esto. Agreguemos el archivo JSON del modelo de bloque. Entonces este va a ser el que realmente hemos tomado de una bancada de cuadras. Así que vamos a copiar esto también y luego ver lo que necesitamos cambiar aquí es la piedra lisa porque esto está bajo bloque de barra de Minecraft está bajo microbloque. Así que asegúrate de cambiar esto en ambos. Y luego el archivo JSON modelo de elemento también es bastante sencillo. Esto es simplemente básicamente una vez más, apunta de nuevo al archivo de Jason modelo de bloque, y eso es más o menos todo. No se necesita textura en este caso porque en realidad estamos tomando las texturas de Minecraft piedra lisa para eso es, eso debería estar bien también. Entonces esos son todos los pasos que tenemos que hacer para conseguir que nuestra entidad personalizada por aquí y tenerla básicamente con una entidad de bloque especial renderizadora. Así que vayamos al mundo y veamos si funciona. Muy bien, fantasear en Minecraft de nuevo y se puede ver el pedestal se ha agregado con éxito al juego. Así que vamos a bajar algunos de ellos y veamos qué podemos ver. Entonces si hago clic derecho en esto, no deberíamos tener el cobalto. cobalto aparece aquí mismo en el pedestal y uno de ellos debería estar desapareciendo de mi inventario. Y eso es exactamente lo que pasa. Hagamos lo mismo por todos ellos. Hace sin embargo, a veces podrías obtener esas extrañas flechas de renderizado aquí mismo. Entonces esto es algo que no estoy 100% seguro de por qué ese podría ser el caso. Entonces creo que tiene algo que ver con las sombras y esas cosas. Entonces veamos solo si esto podría cambiar por sí mismo. Si hago esto. Pero esto no lo cambia. Pero como ya he dicho, ahí, a veces es un poco difícil al lado de él con una representación. Y seré honesto, no soy como otro experto en renderizado. El renderizado es en realidad una de esas cosas donde, um, digamos que, eso es, no diría mi peor pesadilla, pero definitivamente no es una cosa que me guste particularmente. Entonces, sí, pero en general, todavía es funciona bastante bien y bastante genial. Y es una cosa que se está formando. Es bastante impresionante. Esto es lo fácil que puede ser agregar un micrófono de renderizador de entidad de bloque. Como siempre, por supuesto, todo el código está disponible para ti en el repositorio de GitHub e individual igual de bien. Y los veré a todos en la próxima conferencia. Entonces, sí. 123. (1.18.2) Capas de botín en estructuras personalizadas: Muy bien, bienvenidos de nuevo al curso de forja para 118. Y en esta conferencia vamos a estar echando un vistazo a cómo puedes agregar carga personalizada a las estructuras de tus clientes. Entonces lo que he hecho es que me he engendrado en la cabaña justo aquí, sólo para que tengamos una estructura y vamos a guardarla en tan solo un momento también. Pero vamos a movernos vamos a hacer es que vamos a colocar por un cofre y vamos a llenarlo con algún botín al azar. Ahora la pregunta es, ¿cómo funciona esto? ¿ Qué no puedes hacer? Y esto es lo que algunas personas intentan. Simplemente cogen el cofre y luego solo lo bajan y luego por igual. ¿ Por qué no hay botín al azar ahí? Bueno, eso no funciona. Lo que tienes que hacer es que en realidad tienes que poseer el cofre a través de un comando, ¿verdad? Así que ya he preparado el comando y lo que puedes hacer es básicamente pondré esto a disposición y no va a ser tan loco. Entonces lo que puedes ver es que hay apenas menos bloque establecido en tu posición actual. Estás parado que Minecraft frente al pecho. Por lo que solo quieres que sea de cara de alguna manera. Y en realidad hagamos esto más fácil. Así que hagamos esto mirando hacia el este. Y luego se pueden ver corchetes rizados, botín, mesa, Minecraft, cofres, simple mazmorra en este caso, vamos a ejecutar esto. Ahora. En realidad sí apunta a la manera equivocada, pero eso está bien. Esto es sólo cuestión de cambiar el rostro aquí. Y si abrimos esto, se puede ver ahí está. Por lo que algunos eluden al azar. Ahora la verdadera pregunta es esta. Si ahora guardo esto, ¿es este botín al azar? No, porque cuando, una vez que abras se eludirá. Mesa en realidad genera algún botín. Por lo que ahora cada una de las casas va a tener este botín en él. Entonces lo que hay que hacer es que no lo abra. Entonces lo que hay que hacer es bajar aquí. Así que vamos a hacer esto en realidad, creo que esto debería ser Sur, en realidad generar éste al sur. De acuerdo, tampoco es del todo correcto. Así que hagamos, correcto, generemos esto con el Norte en realidad, creo que entonces debería ser norte. Y yo estaba apuntando hacia la dirección correcta y no la abro. De lo contrario, en realidad solidificarás lo que el bucle está dentro de él. Por lo que esto no funciona. Entonces hay que mantenerlo ahí y hay que ser como, no sé si funciona, va a funcionar. No te preocupes por eso. Entonces entonces podemos salvar esto. Y puedes hacer esto ya sea cuando lo hayas cargado o también puedes hacerlo con un método de esquina y muda. Cuando realmente lo construyes, solo puedes agregar un cofre así y luego guardarlo para que podamos ir al Guardar. Además, aquí solo vamos a decir Save, y luego esto se ha salvado. Por lo que ahora podemos reemplazarlo en inteligencia. Así que vamos a echar un vistazo ahí mismo. Pero una vez más, queremos ir a la carpeta de ejecución guarda, y esta debería ser la carpeta absurda dentro de la generada, tenemos el Calvin, ¿cómo está NVT? Y queremos cambiar la carpeta de datos, estructuras de curso MC. Tenemos el conteo de mi casa, y sólo queremos reemplazar la una por la otra. Así que sólo voy a copiar esto, sobrescribirlo, y eso es todo lo que tenemos que hacer. Ahora, una vez más, no hemos abierto el cofre del botín. Por lo que el bucle debe generarse básicamente cada vez que la casa real genere también. Por lo que no deberíamos tener el mismo bucle en dos casas diferentes. Así que hagamos un mundo nuevo y veamos si funciona. Muy bien, somos microfinanzas Nuevo Mundo y veamos, ahí está el primer conteo, mi casa, y tenemos el cofre por aquí. Para que puedas ver que tenemos discos de música. Unas pocas pólvora es. Muy bien, eso está bien. Entonces vamos a encontrar una nueva casa de columnas, y veamos si también podemos encontrar los mismos discos de música o si hay algo diferente. Entonces hay un nuevo campamento millas y solo esperemos que el bucle ahí sea diferente, pero estoy bastante seguro de que va a estar ahí vamos, una carga completamente diferente. Entonces exactamente lo que querrías que haya. Entonces lo importante es que tenemos por supuesto utilizar el ratón knockout MET, pero hemos utilizado el simple mazmorra uno. Entonces este es el que en realidad está justo aquí en un ejemplo, ¿verdad? Entonces este es el actual, el comando real aquí. Se pueden ver los cofres simple mazmorra y se puede utilizar cualquier tipo diferente de mesa de carga. Por lo que también puedes hacer tus propias mesitas y referencias. Lo son, pero eso es por supuesto algo que también puedes hacer por ti mismo. Y eso es más o menos lo fácil que es agregar un cofre de botín personalizado a tus estructuras, ¿verdad? Pero eso ya sería por esta conferencia aquí mismo. Espero que te haya parecido útil esto y aprendan algo nuevo y los veré a todos en la próxima conferencia. Entonces, sí. 124. (1.18.2) Cómo arreglar algunos errores: Muy bien, bienvenidos de nuevo al curso de forraje para 118. En esta conferencia, sólo vamos a estar arreglando algunos pequeños errores que podría haber cometido durante el transcurso de este curso básicamente. Entonces, claro, con la cantidad de conferencias que tenemos, están obligados a haber algunos errores aquí y allá. Por lo que el primero va a estar en el artículo de armadura mod. Esto va a ser muy interesante y ese es el tiene armadura correcta en el método. Porque lo que queremos hacer es que queremos reemplazarlo por lo siguiente. Por lo que básicamente queremos agregar en este bucle for por aquí que bucles a través de la armadura y comprueba si la armadura es o no en realidad, los artículos son en realidad artículos de armadura. Y si uno de ellos no lo es, entonces inmediatamente vamos a devolver falso. Ahora la razón por la que queremos hacer esto, si fuéramos a añadir un electrón o una calabaza a nuestros artículos de armadura, básicamente en nuestro inventario de armaduras, entonces el juego se estrellaría porque estamos tratando lo echó a un objeto de armadura y eso no funciona. Entonces es por eso que queremos básicamente con esto y luego deberíamos estar bien. Lo segundo que queremos cambiar es en la clase mod curso MC. Y lo que queremos hacer es que queremos tomar todo el método de configuración del cliente y queremos básicamente lo seleccionado aquí, mantener presionada Shift, pincha aquí, y luego presionar Control X para recortarlo. A continuación, puedes eliminar esta línea por aquí y queremos entrar en la clase de eventos, encontrar más eventos. Ojalá hayas creado esto a través de la última o la segunda a la última conferencia, vamos a pegar la, la mentalidad de los métodos aquí. Queremos cambiar esto para que sea público y estático, y queremos agregarles estos evento de suscripción también. Ahora, ¿por qué necesitamos esto? Bueno, por si acaso generalmente el evento de configuración del cliente sólo es llamado al cliente. No obstante, la clase mod curso MC es en realidad una clase común. Entonces esto se llama tanto en el cliente como en el servidor. Y a veces puede suceder que a través de algún mumbo jumbo de Java, básicamente, algunas de estas clases también son llamadas en el servidor, lo que luego hará que el servidor se bloquee. Y claro que eso no es lo que queremos. Entonces sólo para estar seguros, añadir esto a los eventos climáticos. Lo importante es que se trata una jefa de la mafia y también con el cliente de escritorio de valor, y luego debería estar bien. Y por último pero no menos importante, tenemos algo en el artículo de la varilla de dote. Y es decir, la forma en que básicamente podemos echar un vistazo a las etiquetas. Entonces esta es una forma válida de básicamente echar un vistazo a si el bloque particular aquí está o no en esta etiqueta. No obstante, eso es locamente complicado y podemos hacerlo un poco más fácil. Entonces, en lugar de esperar un bloque aquí, en realidad queremos un estado de bloqueo, ¿verdad? Entonces bloquear el estado, cambiar esto a estado. Y entonces cuando lo queremos hacer es, simplemente eliminemos toda esta locura y nos vamos a preocupar por esto en un momento. En primer lugar, ¿cómo obtenemos el estado en el método de bloque es valioso? Entonces vamos a conseguir un error aquí mismo porque tenemos un bloque. Ahora queremos cambiar esto para que sea el estado de bloque. Y luego en lugar de llamar a sangre a bloquear aquí, lo que vamos a hacer es que sólo vamos a conseguir el estado de bloqueo. Vamos a cambiar esto para que se mantenga en bloque y luego mismo aquí, no quedar bloqueado. Y esos son todos los requisitos que necesitamos cambiar aquí. Y luego en el método de bloque es valioso, lo que podemos hacer es que podamos devolver estado son más etiquetas que bloquean esa varilla de espiga objetos de valor. Ahora esto es mucho más fácil que lo que agregamos antes, y eso será más o menos todas las cosas que yo quería mostrarte también. Esto también concluirá más o menos la parte 118 de todo el curso aquí mismo. Entonces va a haber una novena actualización después de esto también. Entonces va a haber básicamente cómo actualizas todas las diferentes cosas que hay ahí con tal vez una o dos cosas diferentes, si aún no se descubren sobre la facilidad de hacerlas en 119, pero eso seguirá después de esto y luego el curso se hace más o menos independientemente. Espero que te haya parecido útil esto y aprendas algo nuevo y te veré en la próxima conferencia. Entonces, sí. 125. 1.18.2 ACTUALIZA a 1.19: Muy bien, bienvenidos de nuevo al primer curso para 118. En esta última conferencia, vamos a estar actualizando nuestro proyecto a partir de una década de 1890. Ahora por suerte, la actualización de 1890 no es la más loca. He visto actualizaciones mucho peores entre vergencia, pero todavía hay algunas cosas que se van a cambiar por completo. Y creo que hay al menos una cosa que no funciona en absoluto, pero así es como va a ser. Así que sólo vamos a navegar hasta el archivo construido o Gradle aquí abajo a nuestras dependencias por aquí donde tenemos la Forja de Minecraft. Y lo que es muy importante es que respalde todo tu proyecto. Porque si no lo tienes respaldado , las cosas pueden pasar. Podrías romper tu proyecto cuando actualices. O bien tienes un repositorio de GitHub, haz una nueva sucursal en él para que tengas todo guardado o simplemente copias sobre todo el proyecto para que lo tengas respaldado. Recomiendo encarecidamente hacer eso ahora ¿a qué necesitamos cambiar la dependencia forrajera por aquí? Bueno, en realidad no es tan loco. Lo que queremos hacer es cambiarlo a 41038, claro 119. Entonces esta es la última versión para ti. Probablemente va a estar más avanzado aquí, pero eso va a estar bien. Siempre, siempre puedes usar la última versión y eso va a estar bien. Así que vamos a cambiarlo por ahí. Así que volvamos y eso va a ser 119 dash y luego 41038. Ahí vas. Y esa es la versión a la que queríamos cambiar. También queremos actualizar gecko lip por aquí. Entonces esto ahora va a ser forjar un guión 193119. Ahí vas. 1313. Ahí vas. Creo que este debería ser el más nuevo. En este caso. Simplemente se puede mirar hacia arriba en el labio gecko. Puedes encontrar fácilmente la versión aquí en el repositorio gecko lip GitHub. Por lo que no se preocupe ahí. Y después de que estamos cambiando estos dos, sólo vamos a hacer clic en Cargar cambios Gradle. Y luego una vez más va a construir cosas, descargar cosas, todo del mismo jazz que hemos hecho un par de veces, sobre todo al principio de todo esto. Por lo que recomendamos encarecidamente quedarse paciente, solo deja que esto pase por cualquier error que pueda surgir, cualquier cosa roja, la mayoría de las veces, con seguridad sea ignorada. Y luego veremos, estamos ahí vamos, construimos con éxito en dos minutos y 28 segundos. Ahora aún no hemos terminado del todo en el archivo Gradle de acumulación porque también queremos cambiarlo a los mapeos de pergaminos. Por lo que tenemos pergamino para éste justo aquí, y queremos cambiarlo a lo siguiente. 1182022 o seis, o 5119. Entonces esto simplemente lleva los 119 mappings oficiales en superposiciones el 1800 a mappings de pergamino encima de él. Y luego vamos a tener aproximadamente mappings de pergamino para 119. No todo va a estar perfectamente mapeado, pero esta es, creo, la versión más nueva que tenemos, que aún no hay ninguna versión 119. Una vez más, por supuesto que solo puedes mirar el repositorio de pergaminos y no deberías, deberías poder encontrar algo ahí. Así que vamos a volver a cargar esto de nuevo, cambios radiales y esto no debería tomar demasiado tiempo. Espero no otros dos minutos, pero sólo veamos. Solo esperemos una vez más, esperando pacientemente aquí. Y entonces vamos a estar bien. Muy bien, ahí vamos. Construir con éxito en un minuto y 37 segundos. Entonces ahora vamos a estar bien y todo está configurado. Pero ahora vamos a saltar a la clase de mod curso MC e inmediatamente vamos a ser recibidos con una flecha diminuta aquí. Y eso es sólo las importaciones. Para que puedan ver, todavía tengo cosas en las importaciones aquí, pero no se preocupe si hay algo malo con los insumos. Se pueden ver los tres puntos por aquí volteándose rojos. Básicamente, solo puedes presionar Control Alt O y luego todo en las importaciones va a ser, bueno básicamente borrado que no necesitamos. Y por el momento, nada malo aquí, pero va a haber, bueno, algunas cosas que están mal en otras clases. Por lo general lo que hacemos es que sólo podemos bajar las clases. Creo que la primera clase donde vamos a tener un tema realidad va a estar en el bloque de pilar rotado bola de llama. Curiosamente, o tenemos que cambiar aquí son sólo los parámetros por aquí. Así que sólo voy a copiar esto. Una vez más, todo aquí está por supuesto disponible en el repositorio de GitHub. Y de hecho igual de bien, esto va a estar ahora en la pila. Esto va a ser pila de contexto. Y entonces sólo vamos a pasar en el contexto aquí mismo, y luego también el Simular aquí mismo. Hace y eso debería arreglar esto. Ahora, éste está hecho y creo que el resto debería estar bien. En realidad, aldi bloque rápido, sí, porque el animador tick, porque ahora ya no estamos usando lo aleatorio, pero estamos usando la clase fuente aleatoria por aquí desde esa herramienta de micro vista. Sólo haz eso. Y entonces no pasamos nada por aquí. Y eso va a estar bien también. Entonces esto debería ser más o menos todo lo que tenemos que hacer también en el bloque SPD. Y creo que esto debería arreglar todos los bloques. En realidad. Creo que el resto está bien. En efecto, parecen estar bien cuando se trata de las entidades. Creo que sólo deben ser como un pequeño cambio por aquí. Sí. Y ese es el componente de texto porque cambió todo el sistema de textos. Por suerte, el cambio aquí es increíblemente fácil componente que literal, y ahí vamos. Y eso es todo. Eso es todo lo que tenemos que hacer. Solo asegurándose de que las entradas sean correctas. Controla Alt O y luego el resto aquí es una multa. Vamos a asegurarnos de que el resto aquí también esté bien. Y en efecto lo es. Así que nada loco pasando aquí. Y bloques mod, una vez más son sólo los componentes traducibles aquí. Entonces es sólo componente que traducible en este caso. Y ahí vamos. Por lo que en realidad se hace muy fácil de hecho. Así que nada loco pasando. Ya no tenemos bloqueo oral. Eso también es correcto porque ahora es en realidad un bloque experimentado gota, pero funciona exactamente de la misma manera. Una vez más, Control Alt o para deshacerse de las importaciones. Y entonces vamos a estar bien y toda la cuadra. El paquete está hecho en realidad. Los comandos también cambiarán un poco más en un momento. Pero en primer lugar, por supuesto, los componentes del texto, el primer componente vuelven a ser literales, **** y literales. Ahí vas. Entonces aquí lo mismo. Y entonces creo que también tenemos esto en el set uno todavía hacemos Control Alt O para deshacernos del año las importaciones equivocadas y se irían, también tendremos que cambiar el constructor aquí si yo No me equivoco, pero esos van a estar bien. Vamos a hablar de eso en un momento. Los conflictos son, los conflictos deben estar totalmente bien y nada que hacer allí también. Los efectos tampoco han cambiado. Entonces todo esto va a estar bien. Y los tratamientos no han cambiado la entidad, que algo es diferente con la entidad y ese es el modelo porque los nombres reales de los métodos han cambiado un poco. Entonces esto es ahora GET recurso modelo por aquí. Recurso que hace, y esto es ahora obtener recurso de textura y esto tiene recurso de animación. Entonces lo que puedes hacer es si tienes varios de estos archivos de modelo, los archivos Geo Model, lo que puedes hacer es simplemente presionar, digamos ir a la Regla Común o lo que sea tu nombre es paquete, presiona Control de turnos R. Busca una buena ubicación del modelo y luego cámbialo para obtener el recurso modelo. Se puede ver que en realidad estamos teniendo esto en los otros dos modelos también. Entonces sólo vamos a decir reemplazar, sí. Voy a hacer lo mismo con la ubicación de textura reemplazando el recurso. Ahora éste a veces tiene uno extra que en realidad no queremos que cambie. Yo creo que es éste, así que vamos a reemplazarlos uno por uno, sólo los en los que en realidad estoy seguro de que sí creo que esto no debe cambiarse. Entonces ahí vas. Y entonces la última, buena ubicación del archivo de animación ahora ha cambiado para obtener recurso de animación también, reemplace todo lo que va a estar bien. Y ahí vamos. Ahora esto debería estar bien. Veamos dónde están las flechas de aquí. Va a ser justo aquí. De acuerdo, así que dentro del renderizador, esto en realidad queda por ser ubicación de textura. Es un poco raro porque esto también es a través del labio gecko, pero ahí vas. Entonces eso debería estar bien. Solo asegúrate de que cuando lo reemplaces, no lo reemplace en el render también. Supongo que el barco no se va a salvar tristemente. Tengo que mirar el cerrojo y tristemente no he podido conseguir que funcione correctamente. Entonces lo que sólo vamos a tener que hacer es que sólo vamos a tener que vivir sin el barco por el momento. Entonces puedes simplemente eliminar todo, solo hazlo así, y luego deshacerte de él aquí también. Tristemente, lo es, es lo que es. El tema con la audacia, por supuesto, agregaron los cofres al barco y aún no han descubierto cómo cambiar esto en torno. Perdón por eso, pero así es como va a ser. A veces eso sucede cuando cambias de una versión a otra, que ciertas características, han cambiado por completo. Entonces entonces no vas a poder realmente, no vas a ser capaz de averiguarlo rápidamente. Esto también a veces es por qué ciertos moldes tardan tanto en actualizarse, ¿verdad? Porque a través de versiones las cosas cambian y así es como va a ser. Entonces creo que también podemos deshacernos de la antigua entidad de aquí. Podríamos estar recibiendo un error en otro lugar , pero eso va a estar bien. Entonces esto, creo, debería ser todo lo que en realidad se cambia aquí. Ok, La entidad múltiple entonces tampoco iba a funcionar. Pero una vez más, solo voy a arrastrar todo el camino hacia abajo para que puedas hacer esto arrastrando mientras sostienes Alt. Y luego puedes simplemente, puedes seleccionar múltiples líneas diferentes en ese caso. Entonces lo mismo con el artículo. Absolutamente. Sólo voy a deshacerse de esto. Entonces como ya he dicho, no creo que sea demasiado extenso. Los cambios no son demasiado extensos, pero es lo que es. A veces eso sucede. Así que sólo nos deshacemos de esto también. Y luego el qué? Esto está bien. Esto está bien. Esto está bien. Y entonces podemos proceder a los hechos. En los eventos el laúd realmente ha cambiado a las mesas de loo han cambiado un poquito, pero afortunadamente no demasiado locos. Entonces lo único que ha cambiado aquí es en realidad el método do apply. Como se puede ver, ya no se puede sobrescribir así porque esto es ahora en lugar de una lista es un objeto ArrayList. Acabamos de poner un objeto cada lista clase importante, y entonces vas a estar bien. mismo aquí mismo. Cambiando esto al objeto, cada lista importando esa clase. Y luego los modificadores de laúd deben funcionar igual que antes. Fui bien. Y luego llegamos al evento Registro que ha cambiado, diría más o menos significativamente porque ya no tenemos el evento Registro, ahora tenemos un registro de eventos. Por lo que este ahora va a ser un evento final de registro por aquí. Y luego ahora dentro del método de evento real, tenemos que buscar la ella. Básicamente, vamos a decir, oh, esto se llama por supuesto evento que es bastante importante por aquí. Ahí vas. Ahora en lugar de hacer esto, vamos a decir evento que se registre y luego decir falsificar registros que llaves. Que en este caso modificador de botín o serializadores, Hama, ayudante, y esto es sólo un consumidor. Y ahora ponemos estas cosas ahí. Por lo que queremos poner esto aquí. Y de la manera que queremos hacer, queremos decir ayudante ese registro. Entonces primero tomando la ubicación del recurso del nombre real. Y entonces lo segundo va a ser un nuevo serializador. Entonces vamos a llevar el nuevo serializador por aquí. Ahí vamos. Y esto debería funcionar ahora. Y entonces podemos. Duplicar esto, cambia el nombre por aquí y luego cambia el cambio del esterilizador a éste. Y entonces vamos a ser divertidos. Por lo que hace, así cambió esto y luego sucede lo mismo en las recetas también. Entonces si no me equivoco, lo que queremos hacer es que queremos decir evento un dot registran registros que claves dot receta serializadores porque este es un tipo de receta en realidad, lo siento, esta es una tipos de recetas, sí. Entonces una vez más, ayudante, um, o así, nombrándolo lo que básicamente queremos. Entonces podemos decir tipo de receta de ayudante, esa receta. Y creo que literalmente podemos simplemente copiar esto. Vale, aunque no del todo. No del todo. Porque lo que sí queremos escuchar es una cadena o una ubicación de recursos o así no podríamos hacer esto entonces? Sí, podemos porque el id va a ser eso. Ahora la pregunta es, de acuerdo, en realidad me siento un poco mejor si estoy haciendo una nueva ubicación de recursos porque no estoy seguro si esto lo hace bajo nuestra ubicación de recursos o no. Sólo vamos a hacer algo así. Terminándolo aquí mismo, ahí vas. Así que hacer una nueva ubicación de recursos bajo nuestro ID de modelo con la columna id voladura. Y entonces vamos a estar bien. Y entonces ya no necesitamos éste. Y el resto aquí, creo que debería estar totalmente bien. Controla el Alt O para deshacernos de las importaciones y luego vamos a estar bien. Más eventos están totalmente bien. Nada ha cambiado, por lo que se hacen los eventos. Y ahora llegamos a los fluidos porque los fluidos, la finalmente se ha introducido la nueva API de Fluid. No obstante, todavía no he podido descifrar exactamente cómo funciona. También están aún no es ningún tipo de documentación sobre ella. Tan tristemente, por el momento, los fluidos también van a ir por el camino del barco. Es apropiado cuando se piensa en ello. Pero sí, el barco son los fluidos en este caso tristemente no van a funcionar. Entonces fluidos por el momento, no trabajando. Una vez más, solo puedes mirar si estás viendo esto en el futuro, echemos un vistazo a la forja, mira la documentación. Podrían haber añadido algo ahí también ya. Entonces entonces puedes intentar averiguarlo tú mismo. La nueva API de Fluid debería ser mucho más versátil que esta. Pero por el momento, tristemente, los fluidos no van a pasar, en este caso, artículos personalizados. Creo que sólo debería haber algo en la tableta de datos. Una vez más, el componente por aquí, por lo que componente dot literal. Y entonces sucede lo mismo en el elemento de la varilla de dote también, justo con la O y el nombre de registro también, ¿lo suficientemente justo? Sí. Esto es componente traducible. No. ¿Qué tal si lo hacemos correctamente? Componente punto traducible en este caso. Y luego aquí también. Entonces el mensaje enviado es en realidad mensaje del sistema que ya no toma un UUID al final aquí, pero sí toma en un componente literal van nombre del registro ya no disponible. Entonces lo que voy a hacer es que sólo voy a decir el candado abajo punto conseguir nombre aquí y luego el mismo oblicuo aquí arriba. Eso debería estar bien. Getname aquí también, y eso debería ser más o menos. ¿Estás ahí vas? Tenemos otro mensaje SYN, enviar mensaje del sistema. Ya no necesitamos el UUID. Y entonces este va a ser el literal de datos componente. En realidad, no, no lo es. Va a ser traducible. Y eso es todo, sólo las importaciones Controlan Alt O como siempre. Y ahí vamos. Esto debería ser más o menos todo que necesitamos para entrenarlo aquí, creo. Aquí los fluidos mod. Sí, eso está bien. Vamos a pasar por la clase normal. Están en solo un momento también. Los materiales están bien, el modo creativo. Los alimentos de pestaña son artículos MOD OK. Este debería ser el cubo de miel absolutamente. Se librará de este mandamiento de las importaciones. Y entonces estamos de acuerdo con esto también. Las lágrimas también están bien, por lo que todo funciona bien. Ahora, curiosamente, pinturas en realidad han cambiado. Sé que en realidad es una locura pensar en esto. Esto ya no es motivo. Esto ahora se llama variante de pintura. Y a esto también se le llama varianza de pintura. Ahí vas. Sólo vamos a cambiar el motivo aquí a pintar variantes por todas partes. Entonces vamos a ser buen control de todos, una vez más, para que las importaciones salgan de ahí. Y eso debería ser. Las pociones están bien. Las recetas realmente han cambiado. Entonces vamos a la receta. Hay dos cosas importantes que tenemos que hacer. Borra los tres de esos métodos por aquí, y eso va a estar bien. Y luego en el método del colchón, tenemos que sumar si nivel P que es del lado del cliente, solo quieres devolver false. Entonces eso debería ser todo lo que tenemos que hacer aquí también. Y eso debería ser más o menos todo lo que necesitamos en la receta, en la clase de recetas de clientes, la pantalla, tiene algo cambiado aquí. No creo que lo haya hecho. Entonces eso es realmente bueno. Y entonces el sonido, los sonidos también deberían estar bien. Ahora en el util, creo que algo cambió en alguna parte, no aquí, sino en las etiquetas. No. Propiedades del artículo, util, en realidad no hay cambios en absoluto. Las pantallas de títulos aún tienen algunos problemas, por lo que sólo vamos a ignorar esto. Ahora la clase de aldeanos ha cambiado en realidad y tenemos que hacer algunas cosas diferentes aquí, ¿verdad? Entonces esto se hace un poco diferente. Ahora, en realidad estamos haciendo lo siguiente. En realidad estamos haciendo un nuevo prototipo. Y lo que estamos haciendo es que estamos haciendo un inmutable set dot API de esto sigue siendo así que el cobalto blaster dot, dot get default state definition o getState definition dot posibles estados, entonces el uno y el de aquí. Y luego aquí, en realidad lo estamos haciendo de la siguiente manera. Estamos haciendo un pueblo nuevo o profesional. En realidad necesitamos dos predicados por aquí. Así que va a ser x-dot todavía. Igual a último o punto punto conseguir también. Y entonces el segundo predicado va a ser exactamente el mismo. Entonces x dot obtener iguales punto blaster que consiguen y eso debería arreglar esto también. Y el resto aquí debería estar totalmente bien. En realidad necesitaremos agregar etiquetas en un momento también, porque tanto los pobladores como la pintura es lo suficientemente interesante, tienen algunas etiquetas añadidas ahora también. Y luego por último pero no menos importante, venimos a la generación mundial, que por supuesto siempre es la parte favorita. Entonces aquí, por suerte, es fácil, solo una fuente aleatoria en el cultivador abstracto de árboles aquí. Pero entonces llegamos a la locura Porque ahora lo que ha pasado en estas clases, nada cambió, ¿verdad? Para configurar características o todo está bien. Pero luego vamos a las clases de generación y vemos que el evento de carga del bioma ya no está disponible. Y todo el mundo, y todo el mundo empieza a enloquecer porque cómo hago ahora algún mundo personalizado, Ene. Bueno, el origen del cliente ha cambiado por completo donde ahora vamos a estar usando un modificadores bio. Entonces, en teoría, podemos simplemente eliminar todas esas cuatro clases de aquí, eliminarlas, y luego hacer otras nuevas. Lo mismo va para este de aquí mismo. Eventos del mundo del motor, ya no necesitamos esto porque ya no hace nada. Ahora necesitamos usar modificadores bio. Entonces solo vamos a echar un vistazo a la clase de modificador bio, esta de aquí mismo. que puedas ver una interfaz y básicamente tenemos que hacer un códec personalizado que lea en un archivo JSON que es más o menos todo lo que realmente es el códec. Ahora, por suerte en este punto, o en realidad ha añadido algunos ejemplos. Entonces si echas un vistazo a la clase de modificadores bio forja, tenemos una característica Agregar al modificador bio, un remove one, y también tenemos un desova dos por m uno y un remove desowns del bioma uno. Entonces esto es en realidad todo lo que vamos a necesitar. Por suerte, no es demasiado loco y en realidad no necesitamos ni siquiera hacer ninguna clase personalizada por aquí. Lo que podemos hacer es hacer esto en la carpeta de datos. Empecemos con los modificadores bio. Entonces, ¿cómo podemos conseguir que nuestras cosas personalizadas sigan funcionando? Queremos ir al curso Data folder MC, muy importante. Y luego en lugar de una mujer para hacer un nuevo directorio llamado forge, sí, el directorio forge tiene que entrar en tu curso MC o cualquiera que sea tu directorio de ideas mod que tenga que ser el caso. Y luego en lugar del directorio force, vamos a hacer un nuevo directorio llamado bio modificador. Ahí vamos. Y luego podemos sumar los archivos JSON. Entonces así es como van a verse los archivos json. Así que sólo voy a copiar esto y vamos a hacer un nuevo archivo JSON. Veamos realmente cuáles son las características de nuestro lugar en este caso. Entonces este va a ser las características del lugar. En realidad sí tenemos que cambiar las características del lugar en tan solo un momento, pero no nos vamos a preocupar por eso por el momento. Apenas agreguemos el primer modificador bio y luego veremos las características del lugar también. Pero este va a ser un nuevo archivo y luego vamos a simplemente llamar a esto el ad cherry blossom abajo adyacente. Sólo vamos a sumar esto por aquí. Y entonces vamos a ver que el primero es esto, esto se requiere, siempre tendríamos que hacer esto. Entonces queremos decir oye a qué, cuál es el espacio de nombres del bioma que esta actitud, sólo vamos a decir forjar yz plane. Entonces esta va a ser una etiqueta de forja que básicamente va a tener todos los aviones bombas dentro de ella. Entonces vamos a tener curso MC, Polonia. Y esto debería ser flor de cerezo de ébano colocado por aquí. Sí, ahí tienes. Y entonces esto no es subterráneo. Oris, este es en realidad el otro. En realidad echemos un vistazo a las decoraciones. Creo que se llama así es el o es paso de decoración. Podría ser esto. Muy bien, bien. Quiero decir, estoy de acuerdo con esto. Esto debe llamarse decoración vegetal. Este de aquí mismo. Sólo vamos a añadirlo aquí mismo y luego deberíamos estar bien. Y esto debería en teoría, añadir nuestra característica colocada en flor de cerezo a cualquier bioma de planos que exista. Por lo que bastante autoexplicativo. No obstante, las características del lugar en realidad también tienen que cambiar un poco. En realidad tenemos que utilizar aquí un registro diferente. Por lo que sólo vamos a hacer un registro diferido de tipo menos característica o útero colocado. Y entonces esto es igual a un registro diferido. Yo creo este registro de registro punto menos característica registro. Muy importante. Entonces el curso MC no son tontos ID de modelo y por supuesto también necesitaremos un método de registro. Sólo voy a copiar esto un poco más fácil. Vamos a llamar a esto aquí mismo. Esto se va a llamar, creo que no debería importar que mucho más características de lugar que se registren y luego pasen en el autobús del evento. Y en lugar de registrarnos así, vamos a tener que, va a ser, va a parecer un poco raro ahora, suerte, todo el código aquí por supuesto, estará disponible para usted. Entonces este es ahora un objeto de registro en lugar de un aferramiento, nada demasiado loco en este momento. Es posible que quieran cambiar los utils de colocación están registrados a un lugar características que se registran. Eso no es del todo correcto, lo siento, ahí tienes. Y entonces éste, éste y éste. Todo esto está bien. Voy a copiar la línea y esto tiene que agregarse aquí mismo. Por lo que entonces no deberíamos tener errores excepto uno paréntesis de cierre. Puedes ver queremos llamarlo Colocar características que se registren y pasen el nombre, normalmente, como lo hemos hecho con cada registro antes. Y luego tenemos un Proveedor de una nueva función de lugar. Y luego tenemos que lanzar esta característica configurada de barro primero a un titular de Configure característica signo de interrogación, signo interrogación, y luego a un titular de Configure feature western mark, signo de interrogación. Es una locura, pero así es como repente tiene que pasar por el momento cuando estás viendo esto, en realidad podrías tener una mejor manera de hacerlo. Es posible que tengas algo ya se ha descubierto o algo así. Pero por el momento, así es repente como esto va a tener que ir. Y luego tanto para las filas como para la geoda, en realidad tenemos que tener una lista de todas las cosas que tenemos aquí. Entonces lista de n, entonces sólo tenemos que sumar todas las diferentes cosas aquí. Está diciendo que es irreverente filtrar toda esa locura entra en una lista. Y luego solo dos paréntesis de cierre. Y entonces mismo aquí si no me equivoco, lista de la meta y luego solo cerrando paréntesis dos veces n ahí, deberíamos estar bien. Entonces esto es lo que tenemos que hacer, tan loco como parece. Pero esto realmente debería hacer todas las cosas que queríamos hacer. Entonces entonces en realidad podemos agregar los otros modificadores bio también. Esta va a ser la rosa rosa de añadir también. Y esto va a colocar la característica de la rosa rosa colocada un gol. Entonces añadamos también bajo decoración vegetal que tenga sentido. Y entonces vamos a hacer toda la calva, o vamos a conseguir eso aquí también. Y esto ahora ya no es decoración vegetal. Pero esto es en realidad, volvamos a las declaraciones de aquí. Esto es ahora bajo tierra, o es muy importante que cambiemos esto. Ahí vamos. Sólo vamos a añadirlo a qué tal vamos a hacer Minecraft colon está sobre mundo, así que sólo vamos a agregarlo a cada bioma que hay en el mundo oval, eso va a estar bien. Y luego por último pero no menos importante, vamos a copiar sobre el cobalto o, y eso va a ser el anuncio o la geoda de perno. Y entonces esto solo está cambiando el nombre. Colocó una geoda por aquí. Vamos a añadirlo también a todo el mundo entero y eso debería estar bien. Pero esta es la nueva generación mundial, muy importante que todo aquí sea correcto. Y luego por último pero no menos importante, también tenemos estas estructuras ahora por suerte, terreno telepático ya ha actualizado que su repositorio, por lo que nada demasiado loco está pasando por aquí. Entonces sólo vamos a tener que hacer lo siguiente. Así que hagamos esto. Voy a copiar primero la clase de estructuras de modo. Veamos. Ahí vamos. Y entonces vamos a tener un tema aquí con las estructuras del cielo, pero no se preocupe. Apenas eliminemos las importaciones aquí también. Y luego en la clase de estructuras del cielo, esto también va a ser, bueno, quiero decir no demasiado loco. Permítanme sólo una vez más copiar sobre la clase de aquí. Y entonces vamos a ver que sólo las importaciones están equivocadas. Una vez más, Control Alt O. Y se puede ver que hay un, otro códec aquí también. Esto es justo, como ya he dicho, básicamente un cierto campo que genera lectura en una carrera y archivo luego genera una clase que es más o menos la visión general de alto nivel de esto. Sí, esos son los dos cambios aquí en estas estructuras y luego también hay un cambio en la estructura, raza y archivos también. Porque por supuesto, no podía haber nada más loco. Pero antes que nada, los más viejos aquí cambiaron su nombre por solo ser una estructura. Entonces lo vamos a cambiar por el nombre de la estructura. Y luego dentro del archivo adyacente, en realidad hay bastantes cambios. En primer lugar, este conflicto ya no es necesario, por lo que sólo vamos a eliminar la configuración y luego empiezan a tirar de los sitios todavía son necesarios pero no dentro del conflicto. Entonces lo que queremos hacer es que queremos sumar el paso por aquí, y eso se va a pedir. Y luego lo siguiente es la distancia máxima desde el centro. Por lo que esto también hay que sumar. Y luego también necesitamos sumar tres campos diferentes. Ese va a ser el paso, la altura de inicio y el proyecto empieza a subir mapa y eliminar el ruido árabe. Entonces esto es lo que vamos a hacer siempre. Ahora. Ahora esto es para el que en realidad tienes un tipo dentro del código. Si no tienes eso, ya no podemos usar el pueblo. Ahora queremos usar el rompecabezas de Minecraft. Por lo que queremos usar esto una vez más, deshacernos de los no aptos aquí, mantener la piscina de estrellas y el tamaño a una distancia máxima del centro. Y luego si estamos usando el rompecabezas uno, en realidad queremos usar para diferentes campos. Sigue siendo el líder el ruido árabe. Una vez más, este es el paso, la altura absoluta y el proyecto comienza a mapa de altura. Esos van a seguir siendo básicamente iguales, tal vez cambiando la altura de inicio. Pero luego para el rompecabezas, también necesitas usar la expansión. Diablos, voy a copiar las cosas para las cámaras y la plataforma de almacenamiento también, pero más o menos es lo mismo. Ahora puedes realmente mirar esto también en el repositorio de GitHub y un individuo igual de bien. Entonces no debe haber, pero no se preocupe en absoluto. Como ya he dicho, vamos a estar bien. Por suerte, los cambios no son tan locos. Todavía recuerdo que cambia de uno a 1617. Esos fueron cambios donde sí, eso fue eso bastante loco. Ahora esto no es por esto. Ahora las únicas dos cosas que aún necesitamos son para los pobladores y las pinturas de las etiquetas. Entonces esos van en la carpeta de datos en Minecraft. Y luego en lugar de la carpeta fiscal, queremos hacer una nueva carpeta llamada variante de subrayado pintura. Y luego se necesita de nuevo carpeta fiscal, queremos hacer un punto. Subraya, subrayar intereses, tipo de subrayado. Y entonces sólo voy a hacer clic derecho nuevo archivo. Este va a ser el cable un trabajo de subrayado toro, sitio de subrayado que Jason está en el tipo de punto de interés. Y esto va a ser lo siguiente. Entonces esto debería ser. En teoría, este valor Mc núcleos, ráfaga o punto. Permítanme simplemente comprobar rápidamente si este es el nombre. En realidad es un juego de explosión. Ahí vas. Cosa que revisé por aquí en la variante de pintura, haga clic con el botón derecho en nuevo archivo llamado policía sub bowl que Jason, ahí vamos. Y esto va a incluir todas estas cosas. Permítanme en realidad sólo copiar esto. Y entonces tengo que revisar los nombres por aquí. Entonces vamos a tener planta y luego dos más y luego va a ser el Vagabundo y luego puesta de sol también. Y ojalá esto deba ser todo lo que tenemos que hacer. Ahora como has visto, en realidad hay bastantes cosas, bastantes pasos por aquí. No es que en realidad sea fácil tanto como se podría decir, Bueno, esto ha sido todo el calvario. Saben, esto es como en realidad muy equipo a como he dicho, 16 º, 117. Eso fue como diez horas de igual que absoluta locura pasando por todo, cambiando todo porque el nombre de clase se cambia, los nombres de los métodos cambian los métodos que estaban disponibles, ya no eran disponible. Y por suerte aquí, la mayoría de estas cosas todavía funciona. Por lo que en realidad estoy bastante contento con la actualización aquí. Pero por el momento, empecemos a ver si algo podría surgir. Aún podría haber un error en una de estas clases. Eso va a estar bien. Ahí vas. En realidad incluso fundamos lámpara de cobalto. Entonces este es el método take por aquí. Una vez más, solo por lo aleatorio, esta es ahora una fuente aleatoria. En realidad entran en fuente aleatoria y luego debería funcionar. No se preocupe en absoluto. Continuemos una vez más, empezando y viendo, ahí vamos. También tenemos esto en modelo declinado cuando realmente nos deshacemos de los fluidos mod. Absolutamente no hay preocupaciones aquí están los eventos climáticos. Empecemos esto de nuevo. Esto también sucede cuando lo inicias, estás recibiendo un error. Simplemente arreglas el error y luego empiezas de nuevo. Entonces no se preocupe en absoluto. Y ahora sí parece estar funcionando. Así que vamos a ver sólo si comienza Minecraft. Esa será una gran señal. Y entonces podemos ver, entrar en nuestro mundo y ver si todo funciona. Está empezando un manglar. No obstante estamos recibiendo un error aquí, pero eso va a estar bien. Vamos a ver en primer lugar, si en realidad comienza en absoluto o si no inicia una tormenta de polvo, esa es una gran señal. Vamos a crear un mundo nuevo. No estamos consiguiendo nada porque tenemos algunos elementos desconocidos por aquí. Vale, pensemos en esto. Podemos ver porque cerezo de Minecraft comprobada no está disponible. Bueno, eso es probablemente una flecha por mí mismo porque no he cambiado el ID del modelo. Bueno, esto no es del todo correcto. Curso Iteris MC, cerezo en flor comprobado. Entonces eso es muy extraño por aquí porque de hecho, si miro esto, siempre estoy usando mi curso MC. Entonces eso es muy extraño, está bien, por lo que el tema en realidad fue usando los conflictos por aquí. Sinceramente no estoy seguro de por qué el conflicto es no trabajes del todo aquí. El debe funcionar en teoría. Ahora lo único que podía imaginar, y en realidad soy como, estoy haciendo esto en vivo. No he probado esto antes. Poner los conflictos de registro antes que todo lo demás podría posiblemente cambiar esto a su alrededor. En realidad intentemos esto y veamos si los conflictos funcionan correctamente. Entonces, sin embargo, es solo por los conflictos, que el registro real de la función de lugar no funciona. Entonces como ya he dicho, no he probado esto antes. Así que vamos a ver sólo si hay hace algo y si no lo hace, entonces aparentemente tristemente los conflictos tampoco funcionan del todo. Lo cual es muy extraño hecho porque no me he topado con esto antes, pero vamos a ver. Así que tal vez vamos a obtener el mismo error sobre los conflictos que no vuelvan a funcionar. Y si no obtenemos esto, en realidad me siento bastante confiado ahora estamos consiguiendo esto, lo cual es muy extraño. Efectivamente. Yo lo soy. Sinceramente no sé por qué ese es el caso. Así que vamos a ver. Pero en este punto, cuando esto sucede, en realidad estoy muy seguro de que no va a funcionar, pero sólo vamos a tener que vivir sin las configs por el momento. Una vez más, probablemente sea solo un cambio falsificado en alguna parte. Entonces ahí vamos, no funciona. Pero si sin embargo, cambiar esto de nuevo a no usar conflictos, sino usando solo un número normal aquí. Y no importa, los conflictos en realidad nunca se cargan aquí y entonces debería funcionar. Entonces, una vez más, no tengo ni idea de por qué eso no funciona con los conflictos de aquí. Sí funcionó antes, pero hace, hagámoslo así sin los conflictos. Y entonces si los conflictos en realidad sí cambiaron y tenemos que cambiarlos, y siempre podemos hacerlo más tarde abajo de la línea. Por lo general es más importante conseguir un modelo de trabajo en una nueva versión en lugar de tener todo funcionando de inmediato. Eso suele ser mejor porque entonces puedes arreglarlo. Y sí, así que ahí vamos. Y entonces podemos ir a un solo jugador crear mundo, y ahora debería funcionar en realidad. Deberíamos conseguir validar paquetes de datos. Y ahí vamos, Vamos, Ahí vamos, nuevo mundo. Hagamos lo que sea, algo así como esa raza de n Sí, sí queremos esto con nuestros escenarios experimentales. Estoy bien consciente de esto y entonces vamos a estar bien. Deberíamos estar bien aquí. En realidad hay una cosa más que también puedes echar un vistazo, que es un poco molesto, pero no es lo más terrible. Es sólo la puerta en realidad la que no va a funcionar. En realidad tendrás que cambiar el bloque Estados, archivos JSON y el modelo de bloque Jason false para la puerta. Pero honestamente eso debería ser bastante trivial. Todas las cosas consideradas si molestas pero aún triviales. Y solo veamos cargando el terreno y ahí estamos. Entonces, primero que nada, quiero decir, este es como el momento perfecto. Estamos en los aviones nevados y ya tenemos nuestros cerezos en flor de aquí creciendo. También tenemos nuestras estructuras personalizadas