Modding By Kaupenjoe: modelagem de formas para Minecraft 1-18-1 | Kaupenjoe (Nico) | Skillshare

Velocidade de reprodução


1.0x


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

Modding By Kaupenjoe: modelagem de formas para Minecraft 1-18-1

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

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Skillsahre

      0:53

    • 2.

      Instalação e download (Java)

      5:52

    • 3.

      (Java) Datatypes Java

      8:11

    • 4.

      Sintaxe Java

      5:42

    • 5.

      Saída e entrada (Java)

      7:28

    • 6.

      (Java) erros e como não entrar em pânico quando você obtê-los!

      6:41

    • 7.

      Inteiros e métodos de matemática e aritméticos e matemática

      6:23

    • 8.

      Operadores de atribuição (Java)

      4:40

    • 9.

      (Java) Booleanos e operadores de comparação

      7:02

    • 10.

      (Java) booleanos e operadores de lógica

      3:30

    • 11.

      (Java) Se e outras declarações

      6:52

    • 12.

      Declaração de comutação (Java)

      4:08

    • 13.

      TAREFA 1: jogo de trivia

      2:59

    • 14.

      SOLUÇÃO 1: jogo de trivia

      2:32

    • 15.

      (Java) cordas e métodos de cordas

      9:41

    • 16.

      (Java) fundição

      3:49

    • 17.

      Operador de trabalho de trabalho

      4:13

    • 18.

      Arrias Java (Java)

      9:09

    • 19.

      Loops (Java)

      8:55

    • 20.

      Métodos Java (Java)

      10:14

    • 21.

      TAREFA 2: jogo de trivia com métodos

      2:30

    • 22.

      SOLUÇÃO 2: jogo de trivia com métodos

      5:13

    • 23.

      Coleções Java

      16:43

    • 24.

      Programação orientada a objetos (Java)

      7:37

    • 25.

      (Java) aulas e objetos Java

      9:20

    • 26.

      Modificadores de acesso (Java)

      7:42

    • 27.

      Herança e polimorfismo (Java)

      10:50

    • 28.

      Interfaces e aulas de tópicos abstratos

      5:52

    • 29.

      TAREFA 3: jogo de trivia com aulas

      1:15

    • 30.

      SOLUÇÃO 3: jogo de trivia com aulas

      3:08

    • 31.

      TAREFA 4: sistema de gestão de bancos

      1:20

    • 32.

      SOLUÇÃO 4: sistema de gerenciamento de bancos

      2:17

    • 33.

      (Java) cursos anônimos

      2:44

    • 34.

      (Java) Enums e enums avançados

      3:00

    • 35.

      Exceções (Java)

      5:14

    • 36.

      (Java) expressões do Lambda

      3:24

    • 37.

      (Java) genericos

      3:37

    • 38.

      (fundamentos do Minecraft) instalação e configuração e GitHub

      15:11

    • 39.

      (básico do Minecraft) usando mapeamentos de Parchment

      4:05

    • 40.

      (fundamentos do Minecraft) crie um item personalizado

      16:00

    • 41.

      (fundamentos do Minecraft) crie um bloco personalizado

      13:44

    • 42.

      TAREFA 5: bloco e item

      1:05

    • 43.

      SOLUÇÃO 5: bloco e item

      1:09

    • 44.

      (conceitos básicos do Minecraft) guia criativa personalizada

      2:34

    • 45.

      (conceitos básicos do Minecraft) novas receitas

      5:58

    • 46.

      (básico do Minecraft) blocos de gotas com tabelas com loot

      7:07

    • 47.

      TAREFA 6: tabelas de receitas e loot

      1:13

    • 48.

      SOLUÇÃO 6: tabelas de receitas e loot

      1:11

    • 49.

      (conceitos básicos do Minecraft) item avançado

      12:02

    • 50.

      (fundamentos do Minecraft) bloco avançado

      5:55

    • 51.

      (basais do Minecraft) combustível personalizado

      3:12

    • 52.

      (básico do Minecraft) item de alimentos personalizados

      3:13

    • 53.

      (conceitos básicos do Minecraft) dicas de ferramentas personalizadas

      5:39

    • 54.

      (Minecraft basics) tudo sobre tags

      8:16

    • 55.

      (fundamentos do Minecraft) escadas e lajes personalizadas

      6:32

    • 56.

      (conceitos básicos de Minecraft) botões personalizados e placas de pressão

      3:52

    • 57.

      (fundamentos do Minecraft) cercas personalizadas e portas de cerca e paredes

      5:20

    • 58.

      (básico do Minecraft) portas e armadilhas personalizadas

      4:45

    • 59.

      (tudo sobre ferramentas) como criar um novo conjunto de ferramentas

      5:50

    • 60.

      (tudo sobre ferramentas) como fazer uma multiferramenta (Paxel)

      5:08

    • 61.

      (Tudo sobre ferramentas) armas que aplicam efeitos

      2:12

    • 62.

      (tudo sobre ferramentas) como criar um novo conjunto de armaduras

      7:49

    • 63.

      (tudo sobre ferramentas) efeito de armadura completa

      4:18

    • 64.

      (tudo sobre ferramentas) Armadura de cavalo personalizada

      3:04

    • 65.

      (tudo sobre ferramentas) Encantamento personalizado

      6:58

    • 66.

      Propriedades do Estado de bloco (intermediário)

      14:37

    • 67.

      (intermediário) como os dados de NBT funcionam?

      8:59

    • 68.

      Propriedades do item (intermediário)

      5:28

    • 69.

      TAREFA 7: BlockStates e NBT

      0:57

    • 70.

      (intermediário) culturas personalizadas

      10:13

    • 71.

      (intermediário) adicione itens ao composter

      1:38

    • 72.

      Flor personalizada (intermediária)

      2:51

    • 73.

      Vasos de flores personalizados (intermediários)

      3:51

    • 74.

      Sons personalizados (intermediários)

      7:06

    • 75.

      Sons personalizados para blocos

      3:48

    • 76.

      Discos de música personalizados

      4:08

    • 77.

      Modelos de blocos personalizados no Minecraft com BlockBench

      19:08

    • 78.

      Modelos de itens personalizados com BlockBench

      3:08

    • 79.

      Arcos personalizados (intermediários)

      3:34

    • 80.

      Comandos personalizados

      9:05

    • 81.

      Partículas de geração (intermediárias)

      2:34

    • 82.

      Avanços personalizados (intermediários)

      3:45

    • 83.

      Pinturas personalizadas

      3:31

    • 84.

      Modificadores de loot globais (intermediários)

      9:52

    • 85.

      Fluidos personalizados (intermediários)

      6:24

    • 86.

      (intermediário) eventos básicos

      7:13

    • 87.

      (intermediário) como atualizar mapeamentos de forja e Parchment

      2:39

    • 88.

      Entidade de bloco personalizado (avançada)

      28:29

    • 89.

      (avançado) como criar tipos de receitas personalizadas

      24:03

    • 90.

      Madeira personalizada (avançada)

      8:19

    • 91.

      Sinal personalizado (avançado)

      6:58

    • 92.

      (Gênero Mundial) como criar uma árvore personalizada

      9:43

    • 93.

      Geração de árvores personalizadas

      11:40

    • 94.

      (Gênero Mundial) geração de flores personalizadas

      5:31

    • 95.

      Geração de minérios personalizados

      7:07

    • 96.

      Como exportar seu mod

      1:25

    • 97.

      (tópicos adicionais) como atualizar o Forge (1.18.1)

      5:33

    • 98.

      (tópicos adicionais) como gotas de XP aos blocos

      3:26

    • 99.

      (tópicos adicionais) como uma tela de menu personalizada

      6:35

    • 100.

      (tópicos adicionais) como configurar configurações personalizadas básicas

      10:50

    • 101.

      (tópicos adicionais) como blocos transparentes

      3:45

    • 102.

      (tópicos adicionais) como itens animados

      5:18

    • 103.

      (tópicos adicionais) como efeitos personalizados

      5:43

    • 104.

      (tópicos adicionais) como poções personalizadas

      8:44

    • 105.

      (tópicos adicionais) como incluir entidades personalizadas com o Geckolib

      25:24

    • 106.

      (tópicos adicionais) como animações de entidades com Geckolib e Blockbench

      11:05

    • 107.

      (tópicos adicionais) como variantes de entidades

      9:50

    • 108.

      (tópicos adicionais) Entidades de matizadas

      11:51

    • 109.

      (tópicos adicionais) entidades ideais

      8:55

    • 110.

      (tópicos adicionais) como um barco personalizado

      11:08

    • 111.

      (tópicos adicionais) uma geração mundial de entidades

      3:20

    • 112.

      (tópicos adicionais) como negociações personalizadas aos aldeões

      4:07

    • 113.

      (1.18.2) Atualizando o Forge para 1.18.2

      11:02

    • 114.

      (1.18.2) estruturas personalizadas (trabalhando através do tutorial)

      31:56

    • 115.

      (1.18.2) estruturas personalizadas (peça única)

      8:17

    • 116.

      (1.18.2) estruturas personalizadas (estruturas de quebra-cabeças)

      13:14

    • 117.

      (1.18.2) modelos de armadura em 3D personalizados

      12:25

    • 118.

      (1.18.2) aldeões personalizados

      10:06

    • 119.

      (1.18.2) Entidades de bebês

      4:37

    • 120.

      (1.18.2) Geodes personalizados

      5:49

    • 121.

      (1.18.2) bloco que interage com o Redstone

      5:05

    • 122.

      (1.18.2) Renderizador de entidades de bloco personalizado

      13:22

    • 123.

      (1.18.2) baús de loot em estruturas personalizadas

      4:01

    • 124.

      (1.18.2) como corrigir alguns erros

      3:43

    • 125.

      ATUALIZAÇÃO 1.18.2 PARA 1.19

      34:03

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

645

Estudantes

--

Projetos

Sobre este curso

Minecraft! É o jogo mais popular de todos os tempos e Minecraft Modding está de volta à boca de todos! Alguns Mods do Minecraft tornaram-se tão populares que todos os conhecem. A comunidade de mods de Minecraft continua crescendo todos os dias e é uma ótima e criativa tomada de ideias!

Este curso vai ensinar a você como fazer seu próprio Minecraft Mod! Não só você vai aprender a linguagem de programação Java, mas também como usar com eficiência o Minecraft Modding API Forge.

Para absolutamente iniciantes, eu adicionei uma introdução em Java para você, então mesmo sem experiência em programação, você pode começar a fazer Mods do Minecraft primeiro passando pela introdução de Java!

No conceito básico do curso, você vai aprender a adicionar itens, blocos, receitas personalizadas, ferramenta para Minecraft! Os conceitos de intermediários são onde você vai realmente pegar alguma habilidade incrível necessária para um Minecraft Modding adequado com o Forge! Vamos falar sobre BlockStates e dados do NBT, adicione culturas personalizadas e veja como você pode adicionar modelos de blocos personalizados ao Minecraft!

Mas isso não é tudo! Para o final do curso, abordamos tópicos avançados, como entidades de blocos, tipos de receitas personalizadas e até geração de minérios entre outros.

Com um pouco de criatividade e aplicação das aulas que você ganha deste curso, você pode simplesmente fazer o próximo Minecraft Mod atingido!

Este curso é acessível para iniciantes completos. Mesmo que você nunca tenha programado na sua vida! O único requisito é que você é proprietário do Minecraft e está vagamente familiarizado com o jogo e alguns Mods de Minecraft populares ou até mesmo Modpacks de Minecraft.

Exercício de arquivos e todo o código fonte vai estar disponível para que você possa acompanhar tudo o que faço nos vídeos.

Se você tiver alguma dúvida ou sugestão, também sinta à vontade para entrar em contato comigo aqui. Fico feliz em ajudá-lo a aprender a codificar no Java e criar seu próprio Minecraft Mod com o Forge.

DISCLAIMER: NÃO UM PRODUTO OFICIAL MINECRAFT. NÃO APROVADO OU ASSOCIADO AO MOJANG.

Conheça seu professor

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Professor

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... Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Skillsahre à: Olá, sou Nico me pegou no aluno de mestrado em ciência da computação e um ávido jogador do Minecraft. Talvez você me conheça de my YouTube channel tutorials by Cotton joe, where I am making microwave modeling tutorials. Bem, agora vamos ficar ainda maiores porque esta é minha classe de modelagem do Minecraft 118 com forge. Aqui você aprenderá tudo o que precisa fazer para criar um incrível e incrível mod Minecraft com a API matinal de Minecraft mais usada, forja. Iniciantes absolutos podem começar passando pela introdução do Java do provedor, que realmente ajudará você a entender alguns dos fundamentos. No início, aprenderemos alguns conceitos simples como adicionar um item, adicionar blocos, receitas e até ferramentas personalizadas. Em seguida, continuaremos analisando modelos de blocos personalizados, culturas personalizadas e tantos outros recursos interessantes e interessantes. No final, vamos até abordar tópicos avançados, como entidades de bloco e geração mundial. Então, o que você está esperando? Inscreva-se para esta aula agora, e quem sabe que talvez seu MOD seja o próximo grande sucesso. Vejo você na primeira lição. 2. (Java) Instalação e Download: Bem-vindo ao curso fabric 118 e aqui para a introdução do Java. Então, estamos basicamente começando com um pouco de uma introdução em Java. Ou se você não usou Java, isso será muito útil para você. Caso contrário, se você já trabalhou com outra linguagem de programação ou com o próprio Java, então essa é uma ideia muito inteligente ter isso como uma boa atualização aqui no começo. Por isso, recomendo passar por toda a introdução do Java. Haverá algumas tarefas ao longo do caminho também, que você pode fazer para basicamente solidificar ainda mais os conceitos que vamos discutir nesta introdução aqui. E haverá alguns pré-requisitos que vamos precisar. O primeiro será um JDK. Jdk é um Java Development Kit, e eles vêm em diferentes sabores, por assim dizer. Mas o que vamos usar é o de adotá-lo aqui, e vamos precisar usar 16. Então JDK 16 neste caso, isso é chamado de tamarin 16. E eu vinculei isso nos recursos basicamente que você pode baixar isso. Isso garante que você selecione seu sistema operacional e sua arquitetura. Então, para mim, isso seria arquitetura Windows e 64 bits. Eu recomendo baixar o MSI aqui porque isso é basicamente apenas instalador, que então instala o JDK em sua máquina como basicamente qualquer outro programa, na verdade. Bem, basta instalar isso normalmente como você faria com qualquer outro programa, e então podemos prosseguir. Depois de instalar o JDK, também precisaremos de um IDE. E o IDE é um ambiente de desenvolvimento integrado, que no nosso caso usaremos a ideia do IntelliJ. Isto é, eu encontrei absolutamente uma ótima ferramenta para usar para isso, podemos usar a versão da comunidade que é gratuita e construída em código aberto, que é praticamente inclui tudo o que nós jamais poderia querer ou precisar. Então, definitivamente, certifique-se escolher a versão da comunidade aqui. Mais uma vez, também basta baixar o EXE se você estiver no Windows, e como talvez tenha visto aqui, você também pode verificar Trick aqui se você estiver no Mac ou Linux, basicamente mudar e instalá-los também. E também basta instalar isso como você faria com qualquer outro programa também. E então, uma vez instalado iniciamos e, em seguida, podemos prosseguir. Quando você abre inteligência pela primeira vez, uma janela semelhante a essa também aparecerá para você. Agora vai parecer um pouco diferente, mas terá esses três botões, o botão The New Project com o botão Abrir e o botão get from VCS. Ao clicar no botão Novo projeto, você pode ver uma nova janela aparecerá. O importante é que queremos selecionar o novo projeto aqui. Aqui podemos apenas nomear o que quisermos. Por exemplo, introdução ao Java, você pode escolher um local aqui usando a linguagem Java Build System intelligence e o JDK sendo 16 para nossos propósitos aqui para a introdução do Java, o código de amostra deve ser verificado por eles. Com isso feito, podemos clicar no botão Criar e, em seguida, uma nova janela aparecerá. Agora, primeiro, o que realmente temos que fazer nas versões mais recentes para inteligência, eles mudaram algumas coisas. Não sei por que esse é o caso, porque eles realmente tendem a mudar muitas coisas, o que é meio irritante. Mas nossa classe principal aqui, para que você possa ver esse principal, se eu clicar duas vezes sobre isso, ele será aberto. Você já pode ter aberto para você. Tudo bem também. Agora, daqui para frente, na verdade vai estar em alguns pacotes. Então, na verdade, temos que fazer isso manualmente para nosso caso aqui neste caso, mas isso vai ficar bem. Mas basta clicar com o botão direito do mouse na pasta de origem para que você possa ver o botão direito do mouse na fonte E então vamos, vou chamar essa rede. E então, nesta rede, vou clicar com o botão direito do mouse em novo pacote e vou chamar essa ajuda. E Joe, agora você só vai chamá-lo de qualquer que seja o seu nome. Basicamente você vai ter rede e, em seguida, seu nome, por exemplo, eu vou arrastar a classe principal para ela, digamos Refactor, e então ficaremos bem. Então você tem este pacote aqui também. Isso é muito importante porque há as próximas palestras. Nós vamos ter isso também. Agora, se isso for exibido de forma diferente para você, pode ser o caso de que realmente se pareça com isso. Vou mostrar apenas por um segundo que meio que compacta aqui, contagem de pontos líquidos Joe, tudo em uma linha. Se for esse o caso, você pode ir para este equipamento aqui. Para a aparência da árvore, altura, MT, pacotes do meio, você pode desmarcar isso e também os pacotes achatados também desmarcados. E então você terá exatamente a mesma coisa que temos lá também. Agora vamos continuar com Pascal e Joe para o resto das palestras. Então, neste caso, o que vamos ter é o, vamos ter algo chamado principal aqui e outro principal aqui. E então isso é comum onde diz escrever seu código aqui. Agora não vamos escrever código nesta primeira palestra In aqui. Vamos começar basicamente imediatamente na próxima palestra. Esta é realmente apenas a configuração. Então, no geral, isso é praticamente tudo o que precisamos fazer. Todo o código sempre estará disponível em cada palestra. Então, em cada palestra, você encontrará um link de recurso ou encontrará isso basicamente vinculado a algum encontrará isso basicamente vinculado lugar onde você pode ter o repositório do GitHub. Então, tudo isso será salvo em um repositório do GitHub. E cada palestra será um indivíduo, basicamente um ramo individual lá. Ou você também tem juristas individuais onde cada um dos diferentes, cada um do código, tudo do código desta palestra também está vinculado lá também. Portanto, não se preocupe lá. Tudo pode ser acessado antes que você possa dar uma olhada nisso porque, claro , algumas pessoas preferem ter o código na frente delas e depois mudá-lo um pouco. Algumas pessoas só querem codificá-lo, como enquanto eu estou codificando. E isso é totalmente bom. Ambas as abordagens são absolutamente válidas neste caso. Mas, por enquanto, é basicamente isso. Então, todo o código estará disponível e espero que você tenha chegado a este ponto. E então veja se uma vez que a próxima palestra começa, você pode ver se tudo funcionou ou não lá. Mas isso seria vencido para esta palestra aqui. E te vejo na próxima palestra. Então, sim. 3. (Java) Datatypes Java: Bem-vindo de volta à introdução do Java para uma modelagem do Minecraft. E nesta palestra, vamos falar sobre tipos de dados. Então, estamos começando muito, muito devagar. A ideia é que, na programação, podemos salvar coisas em variáveis. Agora, o que são essas coisas, certo? Existem diferentes tipos de dados. E, basicamente, nesta palestra, vamos passar por quais tipos de dados eles são, basicamente significando os tipos de dados. Portanto, existem alguns tipos diferentes de tipos de dados, como ir mais longe. E o primeiro seria os tipos numéricos, basicamente como salvar números. Há um monte de tipos de dados diferentes aqui. Então, há um número inteiro, há um flutuador e o duplo. Então, esses são os que são usados principalmente. Vou falar sobre isso daqui a pouco. Assim, você pode ver antes de tudo, quando você cria uma espécie de nova variável, seja, você pode pensar nisso como um contêiner que contém um determinado valor. E o tipo de valor é determinado por, neste caso aqui, a primeira palavra, você pode ver que ele está realmente marcado em laranja. Isso nem sempre será o caso. Esse só será o caso dos tipos de dados primitivos. Mas o que esses vamos ver em um pouco em uma palestra posterior basicamente. E você pode ver que isso é chamado de número. Este é o nome da variável e, em seguida, o valor é 42. Agora, um número inteiro, como eu disse, é o tipo de dados específico de A, um tipo de dados numérico, que é um número inteiro. Portanto, isso só pode salvar números inteiros ou números inteiros. E o alcance real que ele pode economizar, vai de menos 2 bilhões para mais 2 bilhões, como você pode ver. Portanto, esses são basicamente os números que você pode salvar que podem ser armazenados em um inteiro. Essa é a ideia. E depois há flutuador, ou quando você precisa de uma vírgula. Agora, o que é muito interessante com carros alegóricos e duplas que são quase a mesma coisa, não exatamente, mas quase a mesma coisa. Ambos são números de ponto flutuante. E a ideia é que isso realmente não é armazenado assim, é realmente armazenado como notação científica. Você pode ter visto isso antes de algum lugar. E isso é algo como 1,412 vezes dez para os quatro seria 14.120. E basicamente nesta notação aqui, os números de ponto flutuante são armazenados. E o que é importante com um flutuador ao usá-los, eles têm precisão de sete pontos decimais, o que significa que você pode ter sete números. Não importa se eles são ou não à esquerda ou à direita do ponto decimal, mas sete números e depois serão precisos, e depois disso ele será arredondado. É também por isso que geralmente você não quer salvar coisas muito, muito precisas em carros alegóricos. Então, por exemplo, se você tem dez mil ou 100 milhares de Bitcoin, algo assim. Isso definitivamente não deve ser salvo em um flutuador porque isso pode ser muito facilmente obter um erro de arredondamento. Portanto, esses são erros de arredondamento de ponto flutuante. Esses são muito comuns. Agora, um duplo é um pouco melhor porque tem precisão de 15 pontos decimais. No entanto, ainda assim eles podem ser, isso ainda pode levar a alguns problemas de arredondamento. Então, isso é algo para estar ciente. Normalmente, na maioria dos casos, por exemplo, no nosso caso, isso realmente não importa. Então, se você tem um flutuador, geralmente que pode representar, por exemplo, você tem certas posições de bloco no mundo escrito isso algo entre essas posições de bloco porque é claro que um bloco é não como um único ponto no espaço, tem como um pouco de um gradiente lá. E depois há um pouco de arredondamento que vai ficar totalmente bem. E essa também é provavelmente uma das razões pelas quais se você for como milhões de milhões de blocos em uma direção em algum momento, o mundo fica realmente confuso porque erros de ponto flutuante e coisas como isso. Então, esse provavelmente também é um dos motivos. Agora, existem alguns outros tipos numéricos que não são usados com tanta frequência, pelo menos pessoalmente, eu não o vi com tanta frequência. Muitas pessoas podem dizer, Bem, quero dizer, isso não está certo. Claro, você precisa estar ciente disso. Mas geralmente não vi mais aqueles usados com tanta frequência. Portanto, um byte é de oito bits e pode armazenar números de menos 128 a 127. Então, eu chamaria isso de um pequeno número porque basicamente só pode armazenar uma certa quantidade de valores. Basicamente aqui, neste caso, um pequeno número é um pequeno número que pode armazenar entre menos 32000 e mais 32000. E então, por outro lado, é um longo que, como você pode ver, pode armazenar de menos nove quadrilhões para quadrilhões positivos nove quadrilhões, o que é bonito, isso é bastante impressionante. Isso é muito parecido com um número muito grande, geralmente, muito raramente usado. Como eu disse, pelo que posso dizer, um número inteiro é o número mais comum para um número inteiro. E então carros alegóricos ou duplos são usados para, bem, basicamente números decimais ou algo assim, certo? O próximo tipo de dados de suporte será os booleanos. Essa é uma espécie de lógica. Então, o que você pode pensar é, bem, temos um booleano. Um booleano pode ser verdadeiro ou falso, portanto, pode ser um ou 0. Isso pode ser representado em um bit porque um pouco, se você sabe ou não sabe, pode ser 0 ou um, são os dois únicos valores possíveis que ele pode assumir. Então, isso é praticamente o mesmo. Pode ser verdadeiro ou falso. Então são esses ótimos vídeos, espero que sim. Então isso é verdade. E é esse HTML. Bem, isto é, espero que você não tenha pensado isso porque isso é falso na verdade. Então isso é uma espécie de coisa booleana. E a lógica é incrivelmente poderosa como todo o campo lógico. Por causa, é claro, a totalidade de todos os nossos computadores e sistemas operacionais e tudo isso é baseado em código binário. E, em teoria, os booleanos não são nada além de código binário, certo? Porque um verdadeiro é um e uma força é 0. Então, as mesmas leis se aplicam nesse sentido. Você pode pensar nisso assim, mas em geral booleanos, mesma forma com números inteiros, vamos dar uma olhada naqueles com um pouco mais de detalhes no futuro. Mas eu definitivamente queria apresentá-lo a eles. No terceiro e último tipo de grande parêntese aqui, nossos personagens e cordas para um personagem, como você pode ver, marcam um char. E este é um único caractere, então isso é marcado com essas aspas simples e simples aqui. E isso pode armazenar um único caractere e caracteres especiais, vírgula regular. Então eu posso colocar uma vírgula aqui, tudo bem. Posso colocar um traço aqui, como uma hashtag, a estrela de símbolo mais, tudo bem. Oh, bem, eu posso até colocar em um espaço e funciona. No entanto, o que não posso fazer é colocar dois caracteres aqui, então não funcionará porque dois caracteres ou vários caracteres próximos um do outro são chamados de string. Para uma string, como eu disse, é basicamente apenas uma sequência de caracteres. E isso é marcado com aspas normais. Então aspas duplas aqui e aspas duplas aqui. E como você provavelmente já viu, o fim de cada linha sempre tem os ponto-e-vírgula. Esses também são muito importantes aqui. E essa é uma espécie de ideia. Então você tem caracteres que são caracteres singulares e singulares e um, a, uma cadeia de caracteres é uma string. Então essa é uma espécie de ideia aqui. E então, no final, eu queria mencionar algo que definitivamente veremos no futuro também, que é nulo, a palavra-chave nula. Então você pode ver que esse teste de string é igual ao valor de null. E o que é muito importante é que nulo não é 0. Está literalmente vazio, como se não tivesse valor. No entanto. Isso às vezes é no começo, especialmente um pouco difícil de realmente atravessar a distinção entre o que eu não entendo, sem valor. O que isso significa? Bem, ele simplesmente não tem valor indefinido, por assim dizer. É inexistente. Escreva este teste como enquanto ele está definido aqui, não é, ele não tem um valor, é nulo. E definitivamente vamos olhar para isso e ver isso em uma palestra posterior também. Portanto, não se preocupe se isso for um pouco confuso, não se preocupe. O resto deve ser pelo menos bastante compreensível no sentido de que, ok, temos alguns baldes, podemos pensar nisso, alguns contêineres nos quais podemos salvar alguns valores. E dependendo do tipo de valor que eles são, temos que escrever coisas diferentes na frente. Então essa é a ideia geral eu queria passar por aqui, mas os tipos de dados, caso contrário, espero que isso tenha sido útil para você e você aprenda algo novo e eu te vejo no próxima palestra. Então, sim. 4. (Java) Syntax Java: Tudo bem, bem-vindo de volta à introdução Java para Minecraft Martin. E nesta palestra vamos dar uma olhada em como ler o código. Ou também vou chamar isso talvez de sintaxe Java. Então, a ideia é antes de tudo, e isso pode, alguns de vocês já terem sido como esperar um segundo. Ele tem ignorado tudo isso aqui em cima. O que é isso? Primeiro de tudo, vamos nos acalmar pois teremos que começar a construir mais alguns fundamentos antes falarmos sobre tudo o que acontece aqui em cima. Por enquanto, o que eu recomendo é que você simplesmente ignore isso. A única coisa que realmente nos preocupamos é que esse suporte inicial aqui. E então, se eu realmente colocar meu cursor lá, você pode ver que este acende tudo. Primeiro de tudo, certo, agora tem que acontecer entre esses dois suportes encaracolados. Isso é tudo o que vamos nos preocupar. Não nos importamos com o que isso significa. Nós não nos importamos com o que isso é, o que todos aqueles públicos, estáticos, vazios, principais, cordas , tudo isso, não se preocupe. Vamos descobrir tudo isso nas futuras palestras que estão por vir por enquanto. Vamos descobrir isso basicamente aqui dentro. Essa é a nossa principal prerrogativa no momento, embora, primeiro lugar, o código seja lido de cima para baixo. E isso é interessante. Bem, sim. Então é também por isso que temos essas linhas aqui, o que é muito útil, pode ser muito, muito útil na determinação das setas. Podemos dizer, Ei, você tem um problema lá na linha 18. Você olha para ele online. 18, Aí está. Certo. Justo o suficiente. Isso é muito útil. E geralmente há, é claro, exceções à regra. Mas, em geral, você lê de cima para baixo. Agora, se você tiver duas barras aqui, então você tem um comentário de linha única. E se você tiver essa barra, barra estrela e estrela, e você pode ter comentários em várias linhas. Então, isso também é algo para estar ciente. E O, Há algumas coisas diferentes que você pode fazer quando você tem uma variável, certo? Então, estamos de volta às variáveis. E nós vimos isso, é claro, certo? Tipos de dados diferentes. E a variável era como um bucket ou um contêiner no qual poderíamos armazenar um valor de um determinado tipo e temos que especificar isso. Portanto, quando você declara uma variável , declarar uma variável significa que você declara o tipo de dados dessa variável e o nome da variável. E note mais uma vez que todas as linhas terminam com um ponto e vírgula. Isso é normal. Então, cada linha, cada instrução termina com um ponto e vírgula. Isso é, a propósito, também muito interessante porque eu poderia, em teoria, certo? Outro. Então, em x e eu poderia fazer isso. Bem, isso não funciona bem porque estamos todos usando este dia 0. Então, por exemplo, eu poderia fazer isso também. Isso também funciona porque esta é uma única instrução, por isso não precisa necessariamente ser cada linha. E basicamente fazer isso também funcionaria mesmo que haja duas linhas. E, a propósito, isso é como uma coisa horrenda. Isso é como formatação que é do diabo. Nunca faça algo assim. Mas seja qual for o caso. Portanto, não é necessariamente linhas sempre, mas está em instruções únicas. Isso é um tipo de ideia. E você costuma dizer que cada linha tem que terminar com um ponto e vírgula é um bom começo. Basicamente, esse é um bom começo. Nem sempre é o caso, mas geralmente é o caso. Agora, isso está declarando uma variável e também podemos atribuir a uma variável um determinado valor. E isso é o que estamos fazendo aqui. Já declaramos isso. Então, se eu agora existe em algum lugar no éter do programa, digamos, e agora dizemos que eu sou igual a 30. Então, agora atribuímos um valor a essa variável, ok? Agora podemos fazer os dois ao mesmo tempo, declarando e atribuindo um valor, que é então índice igual a 10. E isso seria chamado de inicialização ou inicialização dessa variável nesse caso. E isso é muito interessante. Normalmente, as pessoas não jogam esses termos necessariamente. É apenas algo para estar ciente um pouco. Ok, eu declarei essa variável, agora eu inicializei aqui, atribuí essa variável, então é apenas algo que os termos aqui devem ser, pelo menos armazená-lo no fundo da sua mente. Essa é a parte mais importante aqui. E depois existe a possibilidade de acessar variáveis ou métodos. Falamos sobre métodos ainda de certas variáveis ou objetos. Também não sabemos bem quais objetos ainda são, mas vamos descobrir isso no futuro também. Mas, por exemplo, se tivermos uma string, podemos realmente obter o comprimento da string. Então, quantos caracteres estão nessa string fazendo ponto e, em seguida, algo depois dela. Então, se eu colocar isso, você pode realmente ver que uma enorme quantidade de coisas é jogada em mim como uma sugestão, conhecedores na parede, vamos olhar para essas coisas em uma palestra futura também. Por enquanto, só sabemos que o operador ponto também nos permite acessar certas variáveis ou métodos de uma, outra variável. Isso é o que devemos armazenar por enquanto. E então a aplicação real disso veremos em uma palestra posterior até muito, longe, por maior extensão e em muito mais detalhes do que isso. Mas, por enquanto, essa é uma espécie de essência geral sobre como ler o código aqui. Como eu disse, isso é claro que não é exaustivo. Isso não é tudo, mas essas são as principais coisas que eu queria passar por enquanto. Então você tem a ideia de declarar uma variável, atribuir uma variável e, em seguida, fazer as duas duas ao mesmo tempo e, em seguida, acessar algo com o operador ponto. E o mais importante, que este ano a escola deve ser ignorada e tudo isso deve ser ignorado e tudo entre esses colchetes encaracolados deve realmente ser prestado atenção para o tempo ser. Mas, como eu disse, vamos nos aventurar fora disso, esses colchetes encaracolados vingaram, mas será isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 5. (Java) de saída e entrada: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem de microondas. E nesta palestra, vamos dar uma olhada em produzir coisas e inserir coisas. Portanto, isso está produzindo algo para o console, bem como ler algo do usuário. Então, estamos basicamente armazenando para sobrecarregar nossa capacidade de realmente fazer algo. E a primeira coisa que vamos fazer é que vamos gerar o Hello world porque isso é algo que todo programador aprende na primeira vez. E isso é o que vamos fazer. Então, vamos digitar um sistema. E você pode ver que algumas coisas estão sendo sugeridas para nós. Nós vamos escrever este sistema com um S maiúsculo, muito importante, todos minúsculos e, em seguida, imprimir LN. E então vamos fazer um primeiro parêntese aberto. Os parênteses de fechamento devem ser gerados automaticamente. E então podemos ir aqui e colocar um ponto e vírgula. Agora este é o Oregon. Vamos ficar bem aqui. No entanto, agora queremos colocar algo entre parênteses e isso será produzido. Agora temos que fazer disso uma string. Portanto, vamos digitar as aspas basicamente aqui. E, em seguida, as segundas aspas também devem gerar automaticamente. E então podemos digitar hello world. Tão simples quanto isso. E agora, para realmente iniciar este programa, vamos até aqui, asseguramos que tudo esteja bem. Isso deve parecer exatamente o mesmo. E vamos clicar neste botão Executar. E depois de alguns momentos, você tem helloworld. Se esta foi a primeira vez que você executa um programa onde você tem primeiro literário começando a programar neste momento. E esta é a primeira vez que você executa isso. E tudo aqui diz hello world e isso diz que o processo terminou com o código de saída 0. Parabéns. Eu nem estou sendo como se não estivesse sendo, não quero ser condescendente aqui porque este é realmente um passo que todo programador passa. Em algum momento, eles vão escrever um programa helloworld e eles vão ser como esperar um segundo, eu posso fazer com que as coisas exibam isso I1. Então eu poderia, por exemplo, dizer olá alunos. E você vai ser como, como isso não pode ser o caso. Eu posso fazer isso. Sim, eu posso apenas executar isso. Se eu realmente executar isso corretamente, lá vai você. Tudo bem, então execute este Olá alunos, e agora diz Olá alunos, não se preocupe. Então, como você pode ver, isso é realmente muito, muito legal e isso vai ser sobrecarregado ainda mais porque agora vamos dizer que temos uma variável inteira x, que é igual a 10. Bem, por que não produzimos apenas mais uma vez sistema e eu posso começar a escrever isso e você pode ver que isso é como se a taxa selecionada está meio que destacada, por assim dizer. E quando pressiono a tecla tab, ela realmente é concluída automaticamente. Então eu posso escrever isso muito rapidamente. Assim, você pode ver como também já, basicamente é uma linha de impressão aqui e , em seguida, também. E eu posso simplesmente colocar o x e olhar para isso. Tudo funciona e às vezes vai muito rápido. Então você pode olhar para isso assim, bem, isso é muito para isso, certo? Então, uma linha de impressão do sistema, você pode ver o quão rápido isso às vezes funciona. No entanto, não se preocupe. Vou tentar tornar isso, especialmente no começo aqui, um pouco mais lento para que todos possam basicamente acompanhar. E bem, podemos simplesmente colocar o x aqui, então a variável dentro desses parênteses e seguida, o valor está sendo emitido. Isso é muito legal, não é? Onde você tem a capacidade realmente produzir algo que está em uma variável. E agora vamos ficar ainda mais loucos. Então, mais uma vez, System.Out, linha de impressão. Mais uma vez, basta preenchê-lo automaticamente com a tecla Tab. E agora posso dizer algo como gerar algum valor. E agora olhe para isso. Posso ir além da corda. Faça um plus x. sem erros. Tudo parece bem. O que vai acontecer agora? Bem, olhe para isso agora. saída de algum valor e, em seguida o valor da variável será emitido lá. Então isso é bastante frequente, doente se eu mesmo digo isso. Isso é realmente muito legal. Outra pergunta vem, bem, como podemos ler algo do usuário? Agora isso é um pouco mais complicado. Normalmente, isso é algo, você sabe, é uma espécie de, eu diria, semi-limitação de Java. É meio chato que seja complicado, mas não se preocupe com o que vamos escrever é o seguinte. Vamos escrever um scanner e, em seguida, apenas espaço tudo quando algo ficar vermelho aqui, não se preocupe. Vamos manter a calma. Está tudo bem. Em seguida, Scanner em é igual a um novo. E, mais uma vez, digitalize com um grande S com um S maiúsculo dentro dos parênteses. Então, vamos fazer um sistema de parênteses.E terminando isso com um ponto e vírgula. Agora, tanto o scanner aqui quanto o scanner aqui devem estar prontos. Isso é totalmente bom. O que você precisa fazer é clicar nisso e pressionar Alt e Enter para importar isso aqui. Então, como eu disse, geralmente queremos ignorar tudo isso, mas podemos fazer um pequeno pico aqui em cima. Assim, você pode ver importar o scanner Java util. Isso é basicamente importado. Então, isso não é nada preocupante. Você pode, se isso for importante enquanto você está escrevendo isso, porque quando você pressiona a tecla Tab, quando você escreve o scanner, isso pode ser importante automaticamente, sem preocupações. Apenas certificando-se de que esta é a frase correta, bem, por assim dizer aqui. E que isso está escrito assim. Não vamos nos preocupar com o que isso significa. O que estamos fazendo aqui? Nada disso, nós só vamos saber, ok, precisamos disso para ler algo. Então, vamos dizer que a linha de impressão de pontos do sistema, digite seu nome de usuário, algo assim. E então o que vamos dizer, vamos fazer uma nova variável de string chamada input. E vamos fazer isso igual ao scanner aquilo. Em seguida. Lá vai você. Ok, então em seguida, como você pode ver, tem que ser escrito assim o suficiente para colocar em seguida e, em seguida, abrir e fechar parênteses. E então está tudo bem. Então isso agora salvará o que vamos digitar no console nesta variável aqui, e então podemos fazer algo com ela. Por exemplo, vamos sair imediatamente novamente. Portanto, a linha de impressão do sistema, seu nome de usuário é, e então vamos apenas dizer entrada. Então, apenas para o, para testar isso basicamente, então vamos armazenar isso. E o que devemos ver é que muitos alunos tendem a gerar algum valor. E você pode ver que antes de tudo, o programa não termina automaticamente porque está aguardando nossa entrada. Então, vamos apenas dizer isso. Bem, meu nome de usuário é o Conde Andrew. Vou pressionar Enter e, em seguida, você pode ver que seu nome de usuário é verdadeiro. Então isso é muito legal como quando você pensa sobre isso. E isso também começa onde você pode brincar um pouco com isso. Você sabe, você tem alguma intratabilidade com o PC. Agora você pode realmente falar com o PC, por assim dizer, o que é muito legal. Portanto, este é um dos primeiros passos. Eu muito, basicamente, apenas aconselharia você a experimentar um monte de coisas aqui, apenas digitando algumas coisas, digitando algumas coisas. Na verdade, pode ser muito divertido. Mas, é claro, vamos usar isso em futuras palestras e nas próximas tarefas também, onde basicamente vamos ler as coisas avaliadas e depois fazer as coisas dependendo do que a entrada é. Então isso é tudo bem legal. Mas isso, por enquanto, é para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra. Então, sim. 6. (Java) Erros e como não entrar em contato com a (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, veremos alguns erros e como você pode pedir ajuda ao receber esses erros. Então, antes de tudo, estamos basicamente começando com algum código pré-feito novamente aqui. Mas não se preocupe. É claro, tudo disponível para você no repositório do GitHub ou como indivíduo também. E isso é muito interessante. Então, antes de tudo, basicamente podemos descomentar algumas linhas para encontrar alguns erros. O primeiro erro que teremos é que o java não consegue encontrar o erro de símbolo. E isso basicamente como você vai ver isso é hey, algo está vermelho dentro do código. Por exemplo, vou apenas descomentar isso e você verá que a2 31, basicamente uma variável que estamos tentando acessar ou referenciar não existe na verdade. Então isso vai ser vermelho. Agora, isso pode ser algo que você não notou. Então o vermelho também será como sublinhado aqui e na classe principal aparece e você terá um símbolo de problema e um problema lá. Então, haverá muitos sinais aqui, mas você pode não notar isso, o que é totalmente bom. Então, se você ainda executar seu programa, o que você será recebido é isso. Então, a primeira coisa a dizer é quando você recebe um erro, não se preocupe. Honestamente, receber um erro no início pode parecer muito assustador e você pode estar ficando nervoso. Digamos, não fique nervoso. Obter erros é, na verdade, algo que é esperado quando você está programando para que algo funcione na primeira vez realmente deixa você muito suspeito. Porque é muito raro que, quando você está trabalhando em algum código, ele funcione na primeira vez que o executa. Então, por favor, antes de tudo, sempre permaneceu calmo quando você recebe um erro. Não é nada assim. Não há vergonha nisso. Você não fez nada de errado e sempre será capaz de corrigi-lo. Então essa seta, neste caso, diz, como eu disse, java não consegue encontrar símbolo. Na verdade, ele nos diz qual é a variável aqui e onde ela está localizada. E se você der uma olhada no topo aqui, você pode realmente ver este 1128. E isso realmente significa que isso está na linha 28, no caractere ou em outra linha 11, caractere oito. Então, isso é realmente muito legal. Assim, podemos descobrir imediatamente onde esta flecha está. Posso dizer: Ok, fiz um erro de digitação lá ou esqueci de fazer uma variável, algo assim. Esta seria essa flecha aqui. A segunda coisa que você pode encontrar em algum momento é exceção no thread main, Java, Lang, NullPointerException. Então isso significa que algo é nulo, o que significa que ele não tem um valor. Por exemplo, temos uma variável de string aqui. E definimos o valor como null, o que eu já lhe falei é faz, significa que ele não tem valor. Não existe praticamente. Agora, se tentássemos agora tentar chamar o comprimento sobre isso, é claro, não faz sentido, porque o comprimento do nada também não é nada como se você não possa chamar um comprimento em algo que não existe, o que significa que vamos obter um NullPointerException. Então isso se parece com isso. E isso seria chamado de rastreamento de pilha. Então, um rastreamento de pilha em termos como leigos apenas em geral. Então você sabe, o que se trata é basicamente o código que foi chamado até este ponto, até que o erro tenha ocorrido. E você pode ver que isso aconteceu no cotton domain main e depois 16. Então, podemos realmente clicar nisso e isso nos dará a linha exata e, às vezes até mesmo a parte exata do código em que isso aconteceu. Portanto, este é o NullPointerException. Isso é algo que acontece rotineiramente, mesmo com desenvolvedores avançados, que às vezes você esquece de inicializar algo. Às vezes você simplesmente chama algo na ordem errada, esquece de chamar um método que é algo que acontece com muita frequência. Mais uma vez, nada com que se preocupar, mas essa é a exceção nula. Normalmente, você pode corrigir isso atribuindo corretamente uma variável. E então a última coisa que não é realmente como uma exceção, mas também vimos isso aqui. Portanto, este é o processo terminado com o código de saída um, ou às vezes também pode dizer que terminou com um valor de saída diferente de zero, algo assim. Ou também pode ser algo diferente de 1, 13042, o que quer que seja. Portanto, pode ser algum número que não seja 0. Essa é a coisa mais importante. Isso significa que há um erro. Você nunca deve postar apenas isso. Se você postar apenas, ei, eu recebi um erro e você pós-processo terminou com código de saída 0 ou terminou com valor de saída diferente de zero. Todo mundo sabe que você não conhece Java. Agora isso não é um problema, é claro, porque você tem que começar em algum lugar. Mas isso só se alguém quiser ajudá-lo, certo? Então, por exemplo, se você fosse para o Q e um e você está tipo, Ei, meu você sabe, eu tenho uma flecha e ela diz isso. Se você postar isso, antes de tudo, vou saber que você provavelmente não assistiu a esta introdução do Java, que é claro que encontra sua própria decisão. No entanto, o que também vou notar que isso não é, isso não me dá nenhum valor. Isso só me diz que houve um erro. É isso. Isso é tudo o que isso diz. Se o valor de saída não for 0, isso significa apenas que houve um erro em algum lugar. Não sei qual é o erro. Não sei qual foi a exceção. Não sei de nada. O que significa que eu realmente terei que perguntar novamente. Pode ser um pouco frustrante porque então você tem que perguntar novamente, Ei, você pode me mostrar o log de erros é que há alguma saída lá. Basta colocar a flecha lá também. Normalmente, quando você tem um erro, é melhor dar muita informação em vez de muito pouco. Então, esse geralmente é o caso. Nem sempre é o caso. Como não solte apenas 80 arquivos diferentes em alguém que queira ajudá-lo ou nas perguntas e respostas, algo assim. Mas geralmente você deve ter algo assim, certo? E exceção e erro, algum tipo de log algo que diz uma coisa em particular como essa exceção. Você pode ter uma exceção em algum lugar, algo assim. Então, isso deve ser como a coisa que você quer cuidar. Vamos apenas algo que eu queria te dar, o que pode ser muito importante, certo? Mas isso já é isso. Portanto, isso é uma espécie de, apenas uma visão geral desses erros. E, claro, não hesite em perguntar se há erros. Se você receber erros ao longo do caminho e pedir ajuda, tudo bem. Eu só queria mencionar especialmente este ano porque pode ser frustrante, não só às vezes para mim porque, é claro, então tenho que fazer uma pergunta de acompanhamento. E então, dependendo de quanto tempo isso vai funcionar e talvez você apenas procure por isso. E outra resposta não veio em 20 minutos, então você tem que fazer outra coisa e, em seguida, leva muito tempo. Então isso às vezes pode ser um pouco frustrante. Bem, seja qual for o caso, é isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra. Sim. 7. (Java) Inteiros e métodos de a (Java) e math (de mata de at a (a (de: Ou voltarei à introdução do Java aqui para o curso de modelagem do Minecraft. E nesta palestra, vamos olhar para números inteiros. Vamos olhar para matemática, e vamos olhar para operadores aritméticos. Agora essas são palavras muito grandes. No entanto, tenho certeza de que vamos gerenciar. A primeira coisa que vamos fazer é inicializar dois inteiros. Isso será int x igual a 100 e int y igual a 20. Então, até este ponto, tudo deve ser bastante claro. No geral, isso é apenas, essas são duas variáveis, x e y. Eles têm o valor 120 respectivamente. Ambos são inteiros. Então começamos com a placa int. Então isso deve ser bastante simples. E também teremos um número inteiro chamado resultado. Agora vamos apenas declarar essa variável sem realmente atribuir nenhum valor a ela, porque vamos usá-la das seguintes maneiras. A primeira coisa que vamos dar uma olhada é adição. Então, esses são basicamente operadores aritméticos, adição, subtração, multiplicação , divisão, e então há um quinto tipo, que vamos dar uma olhada em apenas um momento. Portanto, o resultado aqui da adição é claro que será x mais y. Então isso não deve ser muito louco. Vamos apenas em x aqui. E esse operador, x na esquerda. A, um inteiro também pode ser um flutuador. Então isso também funcionaria. Então ambos, ambos, se X e Y, quando ambos os carros alegóricos também funcionariam totalmente. Agora, é claro que o resultado também teria que estar à tona. Muito importante. Pense nisso. Veremos um exemplo em uma futura palestra disso também. Como se você começar a misturá-los, mas isso deve ser razoavelmente sensato. Simplesmente colocamos o símbolo de mais e , em seguida, basicamente, vamos adicionar x mais y. então vamos fazer o sistema, imprimir linha e depois imprimir o resultado apenas para que vamos ver, bem, isso deve ser um 120. Vamos ver. E, claro, é um 120. Tudo funcionando perfeitamente bem. É claro que também podemos usar uma subtração por n. O que vou fazer é realmente deixar tudo isso certo? Então eu vou arrastar meu mouse aqui e, em seguida, pressionar controle C para copiar tudo isso para o meu mouse aqui, controle V para colá-lo. Eu costumo fazer algo assim apenas para que, você sabe, é um pouco mais fácil, porque isso é claro muito duplicado neste caso. Agora, para subtração, você provavelmente adivinhou. Só temos que colocar um sinal de menos aqui. E então, de repente, estamos subtraindo y de x, o que significa que isso deve ser 80. E é claro que é AD totalmente bom. E vamos realmente copiar isso como completamente. Mais uma vez, selecione este controle C e depois Control V aqui. E então também vamos dar uma olhada na multiplicação e, claro, a visão também. Então a multiplicação será uma estrela aqui. E então a divisão é apenas uma barra. Então isso deve ser razoavelmente sensato, nada para ser louco demais. No geral. Essas são apenas as maneiras normais pelas quais você basicamente calcularia as coisas. Então é praticamente isso. Vamos passar pelo C 2005. Na verdade, está tudo bem. E agora a questão se torna, bem, qual é o quinto tipo? Bem, o quinto tipo é, na verdade, o restante. Então, isso também às vezes é chamado de operador de módulo. Isso é em termos matemáticos reais. Mas para nós, é o operador restante e isso parece um sinal de porcentagem. Então, por exemplo, poderíamos dizer 20 restantes dois, o que, naturalmente, seria 0. Então, se vamos apenas copiar isso mais uma vez, Controle C, controle V, Isso será 0 porque quando dividirmos 20 por dois, então não resta restante. Portanto, esta é uma maneira muito boa de dar uma olhada se um número específico é ou não par ou ímpar. Então, isso é realmente muito legal. E esses são os cinco operadores aritméticos. Uma maneira bastante simples, todas as coisas consideradas. que frequência eles são usados? Bem, quero dizer, você vai usar alguma matemática dentro de toda a programação. Seja ou não na modelagem ou na programação em geral, há alguma matemática associada a ela, é claro. Portanto, essas coisas são definitivamente importantes de ter visto antes. E então a última coisa que vamos ver aqui será os métodos matemáticos. Agora, antes de tudo, não vamos nos preocupar com muitos problemas. Bem, é um método. Bem, você pode pensar nisso como uma função específica. Então, por exemplo, vamos fazer uma chamada dessa matemática. Então você pode ver se eu digito matemática, você pode ver o Java Lang e obter isso sugere isso. E então, se eu colocar um ponto, tenho, me sugeri um monte de coisas que posso chamar. E há coisas, por exemplo, como o método máximo aqui, onde absoluto, certo. Então eu posso chamar max aqui e posso dizer x, y. E então ele vai me devolver o valor máximo de cada um deles, o que, claro, neste caso , será um 100. Então, devemos ver no final aqui um pop-out 100 eles atrás. Então, na verdade, bastante simples. E então vamos apenas duplicar isso por questão de argumentos ou Control D para duplicar isso. E vamos obter o valor absoluto de, por exemplo, digamos menos 500, que seria 500. Então, em matemática, como uma matemática, está escrito assim. Então talvez você já tenha visto algo assim antes com essas linhas absolutas, por assim dizer. E isso então se transforma em 500 porque realmente não nos importamos com o sinal que está na frente dele. Então, vamos ver como 500 também. E como eu disse, há muito mais coisas aqui, como você pode ver, este selo. Então você pode basicamente arredondar, arredondar para baixo. Você pode pegar o cosseno, você tem alguns expoentes. Então você pode colocar algo no poder do logaritmo 10. Como se houvesse algumas coisas loucas aqui, arredondando aleatoriamente Mesmo, mesmo aleatoriamente, há até constantes como e e pi. Então, há um monte de coisas aqui. Normalmente, é muito raramente que você precisa usar. Muitos deles são especialmente algo como o máximo e o método Min e o método absoluto às vezes são realmente bastante úteis. E é bom ter visto isso antes, isso para que você não goste quando se depara com isso, quando você pode estar olhando para alguns repositórios do GitHub de outros modos ou apenas frio em geral de outras pessoas. E eles usam algo assim, então você não é completamente pego desprevenido. Mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 8. Operadores de atribuição (Java) Tarefas (UT: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos olhar para os operadores de atribuição. Agora vimos o operador de atribuição normal, que é o símbolo igual. E há realmente uma coisa muito interessante para isso, porque isso é realmente uma espécie de operador lateral, certo? Então, vamos atribuir o valor certo que a variável esquerda. Então, não poderíamos simplesmente digitar algo como, por exemplo, 30 igual a y. Isso não funciona, certo? Na verdade, temos que tê-lo em uma ordem específica nesse caso. Agora que bem, essa será a palestra? É isso? Não, claro que não. Existem alguns operadores de atribuição específicos e muito interessantes que, bem, você sabe, você precisa os operadores aritméticos entendam. Mas o que podemos fazer é claro que podemos dizer x, por exemplo, é igual a x mais y, certo? Então, estamos apenas adicionando y a x neste caso. E depois escrevendo isso de volta na variável x, que funciona totalmente. Isso não vai ser uma flecha, tudo bem. No entanto, também poderíamos escrever isso de uma maneira um pouco mais agradável, e isso será x mais igual a y. Então isso também funciona aqui. E isso é realmente muito legal. Então é aqui que isso é incrível. Oh, isso é muito mais fácil do que isso. E geralmente também é um pouco mais fácil de entender. Agora, se isso realmente confunde você mais do que isso, tudo bem. No entanto, você terá que dar uma olhada nos operadores de atribuição, especialmente se, por exemplo, se você der uma olhada no código de outras pessoas, eles podem usar apenas estes e não por muito tempo maneira de escrevê-lo para que você tenha que estar ciente disso. Então, mesmo que você não esteja usando algumas ferramentas das quais estamos falando aqui, tudo isso é basicamente ferramentas, direitos de programa. Você ainda precisa saber sobre eles para ler o código que outras pessoas possam, certo? Então, vamos realmente apenas imprimir a variável x aqui, e então vamos passar pelo resto também, certo? Então, vamos selecionar isso, copiá-lo e, em seguida, vamos apenas, você sabe, apenas colá-lo em cinco vezes. Então, o que pode, é claro, fazer um minuss igual. É claro que também podemos fazer tempos iguais. É claro que também podemos fazer como Ned, como dividir iguais. E então, no final, podemos até fazer iguais restantes. E que eu nunca vi antes assim é realmente algo que provavelmente é um momento muito, muito específico em que isso é, tem que ser frio. Mas vamos ver se isso funciona. Claro que funciona muito bem para começar com um 140 porque adicionamos 20 aqui, certo? Então, estamos começando aqui com 120. Um adequado novamente é um 140, e depois subtraindo é um 120 e, em seguida, vezes 20 é 2400 e depois dividido por 20 é 100120 novamente, e depois dividir ou permanecer, é claro 0 porque podemos dividir um 120 por Wendy perfeitamente, o que, claro, é preciso exatamente. Isso é muito bom, muito bem feito. Então, se eu, no entanto, agora só queria adicionar um a ele, certo? Então talvez eu só queira fazer algo assim. X é igual a x mais 1, certo? Mas só quero adicioná-lo por um. Isso seria chamado de incremento ou incremento x por um. Bem, quero dizer, é claro que poderíamos escrever isso também, certo? Podemos apenas fazer isso. Sim, claro, isso também funcionaria muito bem. Mas há ainda uma maneira mais fácil de fazer isso. E isso será x plus plus. Olhe para isso. Isso é muito louco. Então vamos daqui para cá, mas isso é realmente o quão louco isso pode ser. E vamos apenas imprimir isso. E então, claro, você sabe, x menos menos, é claro que também funciona. Isso seria decrementá-lo. Então, isso é, vamos mantê-lo um pouco aqui. As plaquetas, então incrementam, incrementando e, em seguida, também isso seria decrementando. Então, basicamente, estamos apenas adicionando um ou estamos subtraindo um. Vamos dar uma olhada. Começamos em 0 aqui. Adicionar um, adicionar dois é dois ou adicionar outro, certo é 23. E então estamos imprimindo e depois decrementando-o, e então voltamos às 2. Então essa é uma espécie de ideia geral aqui. Esses são os operadores de atribuição e, em seguida também incrementam e decrementam a Europa, o que também é importante. Mas esses dois vão ver muito, especialmente esses X plus e x menos menos. Essas são coisas que definitivamente são usadas com muita frequência em certas capacidades, digamos dentro do código. Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e ele aprendeu com o Novo. E eu vou te ver na próxima palestra. Então, sim. 9. (Java) booleans e operadores de comparação (de Booleans (Java) operação): Tudo bem, bem-vindo de volta à introdução do Java aqui para a manhã do Minecraft. E nesta palestra, vamos olhar para um booleano e operadores de comparação. Da última vez que olhamos para números inteiros, e agora vamos seguir em frente e olhar para os booleanos. Assim, os booleanos em geral, podemos lembrar disso da segunda palestra, são basicamente um tipo de dados que pode salvar um verdadeiro ou um falso. Bem, por exemplo, vamos fazer um novo booleano aqui. Por exemplo, gosta das palestras. Palestras, certifique-se de que isso esteja escrito corretamente e isso é claro verdade, vamos esperar que sim. E vamos também fazer um booleano, que é, por exemplo, questionado. E vamos apenas fazer isso falso por enquanto, talvez isso se torne verdade mais tarde, mas por enquanto, isso é falso. Então, lembramos de booleanos, como eu disse, um verdadeiro ou falso, 1 ou 0, essa é a ideia. E podemos até imprimir isso, certo? Por exemplo, podemos dizer que você tem, ou você gosta dessas palestras. Digamos que você goste dessas palestras. Quem gosta dessas palestras? E então eu posso pressionar Control D para duplicar isso. E, por exemplo, você pode dizer, você fez uma pergunta no Q e a. Então eu poderia, por exemplo, pegar isso. E então, em vez de gostar das palestras, posso dizer fazer perguntas. Se eu fosse fazer isso, então o que vamos ver é apenas verdadeiro e falso, basicamente como uma saída de string, eles estão totalmente bem. Certo, então esse é o tipo de ideia dos booleanos, certo? Verdadeiro ou falso, justo o suficiente. Mas agora, o que são operadores de comparação? Bem, vamos pensar sobre esses operadores de comparação, certo? Bem, há alguns deles. E a ideia de operadores de comparação que, claro, bem, vamos comparar dois valores diferentes entre si. E isso vai retornar um booleano porque, claro, se compararmos algo, por exemplo, poderíamos dizer maior do que o certo? Então, temos algo que é maior do que outra coisa, então, é claro, ou será verdade ou falso, certo? Se eu vou dizer, ei, eu tenho uma maçã que é do tamanho de um beisebol. Como tudo bem, justo o suficiente. E então eu tenho uma maçã considerável como uma bola de futebol. Bem, obviamente, o tamanho de um futebol é maior, então haverá como um verdadeiro sob isso também é maior ou igual. Há também iguais, não há iguais. Eles são menores e menores ou iguais a. Então, esses são os operadores de comparação. Não vamos olhar para cada um deles individualmente. E vamos dar uma olhada um pouco. Então, o exemplo real que vamos analisar é, por exemplo, você tem uma pontuação, ou talvez tenha feito um exame, certo? Você escreveu um exame e sua pontuação é 98. Bem, muito obrigado. Essa é uma pontuação muito boa e na verdade é o seu dia de pontuação, você entra. Então você pode dizer, bem, nós poderíamos escrever em um booleano que é chamado de classe passada, certo? E você passa essa aula quando exatamente. Podemos pensar sobre isso. Bem, é claro que você precisa de pelo menos 50 pontos. Digamos apenas, por uma questão de discussão aqui, você precisa de 50 pontos para passar nesta classe. Bem, é muito fácil. Você pode apenas dizer que sua pontuação tem que ser maior ou igual, 50. Isso faz sentido? Então isso deve fazer sentido intuitivo. Todas as coisas consideraram isso, isso seria verdade no nosso caso, é claro, mas se sua pontuação mudar, então a resposta aqui muda, certo? Porque assim que isso não for mais como se for 49, você não passa mais na aula, certo? Então isso deve ser pensado em bastante autoexplicativo. Então, podemos até imprimir isso. Então, basta sair do sistema, imprimir a linha, digamos, por exemplo , você perguntou, vamos apenas colocar isso e depois passar a aula, certo? Então, vamos ter um verdadeiro se for verdade e um falso, se não for. E podemos até dizer algo como com sua pontuação mais pontos, algo assim. Podemos dizer isso. E se eu agora correr isso e ver você passar realidade com 98 pontos. Se eu fosse colocar isso em 49, o que, claro, neste caso agora não é mais verdade. Portanto, nenhum 49 não é mais maior ou igual a 50. Bem, isso agora retornará um falso. Você verá, lá vai você. Você passou falso com 49 pontos. Vamos manter isso como DOE de 1998. E vamos pensar sobre isso também. Então, vamos ter outra ideia aqui. Então também podemos ter um booleano, por exemplo, tem pontuação perfeita, certo? E isso pode ser igual à sua pontuação é igual a 100. Este é o operador igual. Muito importante que esses sejam dois sinais iguais. E isso é algo que às vezes as pessoas ficam confusas com conhecedores. Um sinal de igual é o operador de atribuição ao qual estamos atribuindo um valor a uma variável. E dois sinais de igual é o operador de comparação onde estamos comparando se esse valor dessa variável aqui é ou não igual ao valor dessa. Isso é muito importante. E aqui, claro, isso é falso. Como é claro, 98 não é igual a 100. Isso também deve ser bastante simples em geral. E podemos até fazer algo assim que seja muito interessante. Podemos até negar alguma coisa. Então esta é basicamente esta a marca de declamação aqui. No entanto. Também podemos dizer algo como, ei, passamos a aula aqui, e então podemos fazer outro booleano chamado classe falhada, falhou conosco. E isso pode ser igual a, bem, não passar a aula, certo? Então, nós apenas negamos se passamos ou não na aula. E, claro, isso faz sentido. Então, se isso é um pouco confuso, você está escrevendo, como realmente escrever um texto de escritor. Se a classe falhada for verdadeira, pois a classe é falsa, é claro. Então, esses sempre precisam ser opostos um do outro. Então, podemos sempre negar isso. Isso também pode ser uma ideia. Então, anular é claro, negar basicamente significando que os dois colocam o ponto de exclamação na frente, significa que verdadeiro se transforma em falso. E então, se for falso, ele se transforma em verdade. Onde ele retorna verdadeiro, certo? Essa é uma espécie de ideia. Operadores de comparação. Você também pode pensar nisso. Eles retornam operadores de comparação. Você pode pensar nisso assim. Quando tínhamos uma classificação mais, pegamos um número inteiro à esquerda, mais um inteiro à direita e retornamos um número inteiro. Novamente, faz sentido intuitivo absoluto. Você nem pensa nisso quando está, quando está trabalhando em matemática e calculando coisas. Quando você faz 5 mais 5, como é claro que ele vai devolvê-lo para 10, que é um número. Bem, o operador de comparação é praticamente o mesmo. Você acabou de colocar, por exemplo aqui um inteiro e um inteiro, e você retorna um booleano. Isso é, isso é tudo o que há para isso. Mas a única coisa que realmente muda é o tipo de retorno, por assim dizer. Pensando nisso e é isso, algo a ter em mente aqui. E esses seriam os operadores de comparação. Eu recomendo apenas brincar um pouco com isso. Não deve ser muito louco. Na verdade, é apenas comparar dois valores diferentes entre si. E isso é então expresso como um booleano, o que deve realmente fazer sentido é que há apenas uma resposta certa neste caso, certo? Se a pontuação for maior ou igual a 150 ou não, implica isso. Mas seja qual for o caso, é isso para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 10. (Java) Booleans e operadores lógicos (Java).: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem de microondas. E nesta palestra, vamos olhar para operadores lógicos. Então eu preparei alguns booleanos aqui, assisto a palestras, fiz perguntas, terminei tarefas e revisão engajada. Esses são, naturalmente, relacionados a um cenário como um curso, digamos. E agora vamos dar uma olhada nos operadores lógicos. E há três deles, basicamente nos quais vamos dar uma olhada. Há o fim, há o OR e o não. Então, vimos anteriormente onde fomos capazes de negar algo e o E, e o OR também são muito interessantes. Então, os operadores lógicos recebem dois booleanos e lhe dão um novo booleano. Então, por exemplo, para o fim dos booleanos, você tem que dar, tem que ser verdade, e então ele retorna verdadeiro. Caso contrário, ele retorna false. E para o, ou qualquer um deles tem que ser verdade e então ele retorna um verdadeiro. Portanto, isso só retorna falso se ambos forem falsos. Então, por exemplo, você poderia pensar nisso assim. Então booleano terminou o curso, certo? Então, se você quiser terminar o curso, você precisa ter assistido às palestras e terminar as tarefas. Isso deve fazer sentido. Esse tipo de um bom exemplo concreto aqui. E então você também poderia dizer, bem, um fã, certo? Então, digamos que seja fã, certo? Então, alguém que é fã terminaria o curso. Então, núcleos acabados e revisão de Eva, que também devem fazer sentido geral. E agora alguém que pode estar aprendendo, como talvez aprendendo muito, assistiu às palestras ou fez a pergunta. Então isso é algo que está aprendendo, certo? Assistindo às palestras ou faça uma pergunta. Então, qualquer um deles poderia ser verdade e, em seguida, aprender também seria verdade. Vamos uma espécie de ideia geral aqui. E há mais uma coisa que eu tenho e isso vai ser isso aqui. Portanto, esta é apenas uma visão geral do que basicamente acontece. Você também pode baixar isso como uma folha de truques. Isso está disponível nos recursos. E a ideia aqui é que ele apenas mostra quais são os diferentes tipos de resultados, isso é basicamente o que são os resultados. Então você tem um e B. E então, dependendo do que eles são, este é o retorno que é dado, como eu disse, ambos têm ser verdadeiros para que as respostas retornem um verdadeiro. E aqui, se algum deles for verdadeiro, isso retorna um verdadeiro. Caso contrário, é falso. Você também pode pensar nisso, escrever um ou B para meio que, é meio que realmente assado na linguagem quando você pensa sobre a negação, como eu disse, nós já falamos sobre isso é uma espécie de geral ajuste quando se trata dos operadores lógicos. Há, claro, um pouco mais lá também sobre isso, isso é realmente um bom começo para isso? E então, é claro, a coisa real que você pode pensar é que quando você tem um daqueles que retorna um booleano, você pode, é claro, então encadeá-los juntos. Então você também pode dizer, por exemplo, terminar fazer pergunta, certo? Então você pode ver que, como isso, é claro, retorna um booleano, agora podemos usar o operador AND novamente. Então, isso funciona muito parecido com o que os operadores aritméticos eram. Claro que você também pode mais, mais, mais. Você pode ter 5 mais 8 mais 7 mais 9 mais 15. Isso funciona totalmente bem. De forma semelhante, você também pode encadear os operadores lógicos juntos, certo? Mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo e eu te vejo na próxima palestra. Então, sim. 11. (Java) SE (Java) MEDIse e declarações de else: Tudo bem, bem-vindo de volta à introdução do Java para Minecraft manhã. E nesta palestra, vamos olhar para as declarações if e else. Agora, nesta palestra, basicamente vamos começar a ter alguma interação com o computador. Muitas das palestras anteriores eram muito teóricas, é meio que mostrando alguns conceitos. Mas nesta palestra, vamos estar muito bem interagindo com o computador. Vamos começar fazendo dois números inteiros. Exame 1, digamos, por exemplo, 65 e exame 2, que será 51 por enquanto. E poderíamos imaginar que, vamos ver, temos que escrever um programa que avalie esses valores desses dois exames. E basicamente diz: Ei, você sofreu ou passou o exame 1, você falhou ou passou no exame 2. E então, no final, talvez quando as pessoas passaram nos dois exames, talvez algo seja impresso Como se você tivesse passado na aula ou algo assim. Então, como podemos fazer isso? Bem, o que podemos fazer é fazer uma declaração if. E para isso, literalmente, apenas gostamos se, bem aqui. E então podemos fazer o seguinte. Podemos colocar parênteses. E se você colocá-lo em um parêntese aberto, os parênteses de fechamento devem gerar automaticamente. E dentro desses parênteses temos que colocar um valor booleano. Então, lembramos de volta às duas palestras anteriores onde tínhamos operadores de comparação. Então o que podemos dizer é que, bem, se o exame 1 for maior ou igual a 50, então sabemos que passamos no exame. E então, quando colocamos escondido aqui é depois dos parênteses de fechamento, colocamos um colchete encaracolado. E se eu colocar o suporte encaracolado aberto e pressionar Enter, o suporte curly de fechamento deve ser gerado automaticamente para você. E agora o que podemos fazer é que podemos escrever como outra coisa. Então podemos dizer sistema fora, linha de impressão. E então, por exemplo, você tem um exame anterior. No entanto, esse todo o código entre esses dois colchetes curly aqui acontecerá quando o que estiver dentro da instrução if. Então, dentro desses parênteses, é verdade. Então, se isso for verdade, isso vai acontecer. Então, isso é muito legal, na verdade. E então podemos sobrecarregar isso adicionando uma LLC ou no final, e também colocando um suporte encaracolado. E mais uma vez, colocamos o suporte encaracolado aberto em qualquer pressão Digite um suporte curly de fechamento deve gerar automaticamente aqui. E então, por exemplo, podemos selecionar esse controle C controle V para colá-lo. E então podemos dizer que você falhou no Exame 1. Então, este ano, certo? Pois o resto realmente acontece quando isso é falso. Isso realmente funciona muito bem para nós. Então, podemos basicamente usar isso para, bem, dar uma olhada se o Exame 1 foi ou não aprovado ou não. Então, vamos realmente executar isso e devemos fazer um exame anterior. E é claro que estamos recebendo isso porque neste caso o exame 1 é maior que, maior ou igual que 50. Então isso está sendo chamado. Então isso é muito legal. Agora podemos basicamente fazer exatamente a mesma coisa para o segundo exame. Então, vamos apenas copiar todo esse Controle C selecionado, Controle V. E então aqui vamos dizer Exame 2. Aqui vamos dizer Exame 2, e aqui também vamos dizer Exame 2. Isso é realmente muito legal. Todas as coisas consideradas. E então a pergunta se torna, bem, quero dizer, agora queremos sair quando você realmente passou nos dois exames. Então, como podemos fazer isso? Bem, agora estamos ficando muito loucos. Então, as duas últimas palestras parecerão um pouco mais coerentes, por assim dizer. Vamos dizer o exame 2. exame 1 é maior ou igual a 50, certo? Então isso ainda está passando neste Exame Final 2, 0, certo? Este exame 2 aqui é maior ou igual a 50. E então, se isso, se ambos forem verdadeiros, então sabemos que você passou na classe para que possamos copiar o sistema aqui e então podemos simplesmente dizer, você passou, digamos que a classe apenas por uma questão de argumento aqui. Então isso é muito legal, certo? Temos agora declarações if e if else, e o que você também pode fazer a propósito, quando você tem uma declaração else que você pode colocar outra declaração if aqui, certo? Então você pode simplesmente colocar este aqui. Basicamente, se isso for falso, então então então coloque outra declaração if é basicamente apenas por uma questão de argumento, basta dizer verdadeiro aqui. É claro que isso também funcionaria, mas, você sabe, e então podemos dizer outra coisa e basicamente encaderná-los para que você possa fazer se mais, se mais, se mais, e então o último sempre será caso contrário, você também não pode ter outro aqui também. Isso também funciona. Eu queria mencionar isso também. Mas agora o mais legal é, bem, vamos pensar nisso. Digamos que este seja, na verdade, um programa que o professor entra em que o professor entra e realmente escreve nos resultados do exame. Oh, o quê? Bem, lembramos como podemos ler algo em que temos que escrever em scanner, scanner, scanner é igual a um novo scanner. E depois system.out.print. E então esse tipo de funciona apenas para nós. Lembramos que não queremos nos preocupar muito com o que isso significa. Então podemos dizer algo como linha de impressão do sistema e dizer resultados ou exame um. Certo? E então vamos apenas duplicar isso. Faça resultados para um exame 2. E então podemos dizer que o Exame 1 é realmente igual ao ponto do scanner next int aqui, certo? Então, vamos ler em um número inteiro e depois salvá-lo no exame uma variável. E a mesma coisa que vamos fazer para ir. Agora, o que vai acontecer é muito legal. Agora começamos isso e agora está realmente esperando que façamos um exame. Bem, infelizmente, 32, na verdade não 320, mas 32. Bem, e então os resultados para o exame dois, eles foram realmente muito melhores. Eles eram 68, infelizmente, só um pouco, não o suficiente para 69. E então você pode ver que você falhou no exame 1 e no exame 2. Então, agora estamos realmente começando a entrar em uma espécie de parte dessa introdução java, onde você é capaz de realmente fazer algo com o computador. E você realmente vai ver isso na primeira tarefa também para a próxima palestra será uma espécie de versão alternativa da declaração if, o que também pode ser muito importante. E, em seguida, a primeira tarefa, eu recomendo fazer as atribuições aqui para a introdução do Java, especialmente quando você é apenas um iniciante , porque elas podem ser realmente úteis. E com isso, é claro, o núcleo está disponível no repositório ou apenas também. Mas dê uma olhada naqueles que estão nos recursos. E eu recomendo brincar um pouco com isso, apenas ler alguns números em compará-los, fazer algumas declarações if, apenas fazer um monte de coisas legais. Com isso, você já pode fazer um jogo muito legal. Então, mas por enquanto, isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. E te vejo na próxima palestra. Então, sim. 12. (Java) switch: Ou voltarei à introdução do Java aqui para modelagem do Minecraft. E nesta palestra muito curta, vamos olhar para a declaração switch. A instrução switch é como o primo pequeno da declaração if, por assim dizer. Por isso, é muito parecido. Vamos dar uma olhada. Então, vamos fazer um número inteiro chamado de colocação de metal, que é por enquanto apenas um dentro. Você poderia imaginar este representando a colocação, por exemplo, nos Jogos Olímpicos, certo? Então, uma seria a medalha de ouro, prata, bronze. Então, dois são prateados e bronze são três. E então qualquer outra coisa como discos, sem metal. E poderíamos fazer isso apenas fazendo algumas declarações if, quem quer que também pudéssemos fazer uma declaração de troca. Você pode ver se eu digito o switch aqui, então dentro dos parênteses, coloquei a variável que quero que avaliemos. Então, mais uma vez, faça o colchete encaracolado ou o segundo deve gerar automaticamente. E agora eu tenho que realmente especificar em cada um, dentro desses colchetes encaracolados, cada um dos casos que essa variável pode assumir. Então eu posso dizer o caso 1. Então isso significa que ele assumiu o valor um, linha de impressão do sistema e, por exemplo, digamos medalha de ouro. E então posso dizer o caso dois. E então posso dizer linha de impressão do sistema, prata, metal. E então, mais uma vez, no final aqui posso dizer o caso três, sistema. A linha de impressão do sistema. Lá vai você. Medalha de bronze. No entanto, ele está formatado, tudo bem. E então também podemos dizer padrão, o que significa que isso será chamado se não for esse caso, isso fica mais nesse caso. Então, temos casos predefinidos aqui. E então, no caso padrão, ele realmente será chamado se for qualquer outra coisa que possamos dizer que não há metal. E a primeira coisa que você notará é esperar um segundo. Temos que definir todos os casos. Sim, aqui, o problema é que você pode usar algo como maior ou igual, o que imediatamente torna muito mais fácil restringir algo. Se eu quisesse fazer a avaliação do exame aqui, eu realmente teria que passar por cada caso. Então eu tenho que passar por casos de um 50 ou um a 49 por dizer, ei, você falhou e, em seguida, os outros para você tiveram sucesso ou você passou. Portanto, a instrução switch nem sempre é a melhor escolha. Pode ser, no entanto, às vezes. Então, vamos dar uma olhada nessa lista. É claro que, na verdade, imprime medalha de ouro. Mas a primeira coisa que você vai dizer é esperar um segundo. Na verdade, ele imprimiu tudo exatamente. Porque há mais uma coisa que realmente precisamos fazer. E é quando você tem o caso, no final, você tem que terminar com uma pausa aqui. Temos que colocar essa pausa. Caso contrário, basicamente, ele será preservado. Ele só vai passar pela instrução switch vai continuar e apenas retirar todos os casos. E se tivermos a pausa aqui, então você verá que apenas o relevante realmente será tomado. Vamos apenas colocar em três apenas por uma questão de discussão aqui. Então, como você pode ver, isso agora funciona. Portanto, isso é muito importante para que a palavra-chave break aqui deve ser usada com a instrução switch. Isso às vezes pode ser um pouco irritante. Portanto, o switch deles geralmente para números inteiros é bom, pode ser usado. Geralmente é usado para enums porque enums têm valores definidos que eles podem tomar e que geralmente é mais fácil para os casos do que é muito raro ou que é basicamente impossível. Você não deve usar floats em instruções switch porque aqui, é claro, você precisa definir o caso exato. E devido ao arredondamento flutuante ou erros que podem ocorrer, isso pode nunca funcionar. Portanto, nunca use instruções floats e switch. Basicamente, isso é uma coisa muito importante de se lembrar. Caso contrário, uma instrução switch, mesmo que você não a use você mesmo, pode, é claro, aparecer no código de outra pessoa. Você terá, pelo menos, ter que ter visto isso antes, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e os neurônios e o novo, eu te vejo na próxima palestra. Ah, sim. 13. TARde 1: jogo Trivia: Tudo bem, bem-vindo de volta à introdução Java para Minecraft modding aqui com a primeira atribuição. Na primeira tarefa será uma criação, um simples jogo de trivia. Vou explicar em breve o que isso implica. Embora a ideia seja que você deve definir pelo menos três perguntas. Eu recomendo fazer três perguntas, três respostas, isso será suficiente. Caso contrário, o código ficará muito confuso muito rápido. E o que eu quero que você faça é que você solicite que o usuário digite a resposta deles. Você pode usar o scanner para isso basicamente para obter o que eles digitaram e , em seguida, avaliados com instruções if e else para verificar se a resposta que o usuário digitou estava correta. Então eu recomendo rever a palestra de entrada de saída é que foi muito importante nesse caso. E a palestra if else também pode ser muito interessante olhar para ela mais uma vez. Então, se eles estavam corretos, faça a saída que estavam, e se eles estavam errados, então diga ao usuário que eles estavam incorretos e também exiba a resposta correta. Outra coisa que você deve fazer é basicamente apenas incrementar um total de pontos, o que significa que quando o usuário tem uma resposta correta que nomeia aumentada em um, então, no final, você só tem um saída exclusiva para cada um dos diferentes totais de pontos. Então basicamente três, basicamente dizendo, ei, você fez tudo correto para algo como 0 minutos, ok, um erro, um e assim por diante e assim por diante. Então basicamente de 0 a três, tendo algumas declarações if else if no final, há duas coisas a ter em mente. Portanto, essas são algumas dicas que você terá que ter em mente quando estiver lendo em uma string do usuário, use o ponto do scanner próximo e não o ponto do scanner na próxima linha. Porque se você estiver usando a próxima linha do ponto do scanner, isso às vezes estraga a maneira como isso é lido. Mas eu recomendo fazer isso. E então, quando você está lendo em uma resposta disso, acabou em seguida, temos uma string e você quer compará-la com uma string. Não use iguais, iguais, mas use o ponto de entrada igual e, em seguida, coloque a resposta, a resposta correta dentro dos parênteses aqui. Isso também retornará um valor booleano e tornará isso um pouco mais fácil. Então, caso contrário, porque às vezes não funciona e isso definitivamente funcionará. Então isso é ter isso em mente. E essa é praticamente a tarefa aqui. Isso também está escrito como texto aqui também. E eu suspeito que para um iniciante, isso é algo em torno de 45 a 60 minutos. Eu definitivamente recomendaria tomar seu tempo com isso. Provavelmente voltando para as palestras antigas, dando uma olhada na palestra de entrada de saída, if e else declara palestra. E com isso, você deve estar quase completamente pronto. Basicamente, isso é praticamente o que você precisa. E depois de terminar, você terá acesso à solução, é claro, e também vou passar pela solução em outro vídeo. Então, seria isso. N, Boa sorte. 14. SOLUÇÃO 1: jogo Trivia: Tudo bem, então você passou pela primeira tarefa e aqui está o passo pela solução. Então você provavelmente já viu como parece que uma hora só vai passar. Então, é claro, as perguntas aqui neste caso são realmente feitas como strings. Isso, claro, faz muito sentido, certo? Caso contrário, você pode realmente salvar as perguntas de qualquer forma. E a única resposta é, na verdade , em um número inteiro, que funciona. No entanto, também vejo o ponto em tornar isso uma string normal também. As respostas excessivas seriam corretas. Portanto, não se preocupe. Lá. Temos pontos inteiros e, em seguida, um scanner, e depois começamos, produzimos a primeira pergunta. Em seguida, dizemos que a entrada do usuário número 1. Vamos colocar isso aqui. Vamos ver se isso é igual à primeira resposta. Se for, vamos incrementar os pontos, mostrar que estava correto e você tem tantos pontos. E então, caso contrário, vamos dizer incorreto e produzir a resposta correta. Depois disso, estamos praticamente fazendo exatamente a mesma coisa. Vou colocar a segunda pergunta, obter a entrada do usuário novamente e igualá-la ou dizer: Ei, isso é igual à resposta aqui, incrementando os pontos se estiver correto, produzindo isso e, em seguida, dizer não, está incorreto, esta é na verdade a resposta correta. E depois pela terceira vez novamente. E então, no final aqui, você pode ver que basicamente passa por uma espécie de cascata aqui. Então, pontos passando por três a 0. Então eu também tenho uma espécie de ovo de Páscoa aqui. Quando você tem menos de 0 pontos que você ganha, como você consegue pontos negativos? Porque não há como obtê-los. É claro que você poderia também algo em que você obtém alguns pontos negativos se você fizer uma resposta particularmente estúpida ou algo assim, que também funcionaria. Mas eu não implementei nada aqui. Foi apenas um exemplo. Então, é assim que isso pode funcionar. Portanto, esse é um exemplo. Mais uma vez, se o programa real funcionar certo? Então, se isso funcionar para você e você pode jogar este jogo e funcionar, mas parece diferente disso. Isso é absolutamente bom. Como não se preocupe em tudo. Então essa é a beleza aqui. Há várias maneiras de fazer isso, e veremos isso nas próximas tarefas, bem como basicamente sempre usaremos esse jogo de curiosidades também, uma espécie de modelo. E vamos redesenhar essas próximas tarefas basicamente de uma maneira diferente. E isso é, espero que você consiga ver que fica mais fácil e diferente, digamos nas futuras palestras e nas tarefas futuras. Mas isso será para essa solução aqui. Espero que você tenha achado essa tarefa útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 15. (Java) de corças e métodos de string (de a de corda: Ou voltarei à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos olhar para strings e alguns métodos de string. Bem, basicamente ao redor da corda, por assim dizer. E vamos antes de tudo, começar criando uma nova variável de string chamada frase. E isso vai ser igual a, é uma maravilhosa introdução ao Dava. Bem, vamos esperar que isso também seja verdade. Mas seja qual for o caso, é isso que o valor da nossa variável string aqui é. E nós só vamos imprimir isso. Então, frase aqui, frase de linha de saída do sistema. E agora a questão é o que mais podemos fazer aqui? Bem, a primeira coisa que vamos fazer é, na verdade, duplicá-lo. Vamos alinhar. E o que vamos dizer isso é feito pelo Controle D a propósito. E o que vamos fazer é dizer que o comprimento é, vamos dizer algo como mais. E então podemos dizer o comprimento do ponto da frase. Então, como você pode ver, posso chamar o comprimento do ponto com os parênteses aqui, que significa que esta é uma chamada de método. Ainda não temos 100% de certeza do que é isso, mas já vimos isso antes algumas vezes, e isso é basicamente apenas nos devolve a duração. E se eu passar o mouse sobre isso, você pode ver em um inteiro retorna o comprimento da string, o comprimento é igual ao número de caracteres nessa string. Então, isso é basicamente unidades Unicode. Não vamos nos preocupar com isso. É basicamente igual aos caracteres nessa string. Vamos ver. O comprimento é 35. Então isso é interessante aqui. E também, é claro, também produzimos a string real também. Mas o que mais podemos fazer? Temos que ser capazes de fazer algumas coisas interessantes. Claro, podemos. Vamos realmente obter essa saída aqui. Na verdade, vamos duplicá-lo três vezes. Por que não? E a primeira coisa vai ser gritar. Então isso vai significar que tudo aqui, eu vou me transformar em maiúsculas. Como fazemos isso? Bem, podemos fazer frase dat para maiúsculas aqui. Isso, na verdade, já sugeriu. E então, claro, a mesma coisa seria sussurrar, certo? E então vamos sentenciar isso para minúsculas aqui. Então, isso só vai para a primeira das letras maiúsculas e minúsculas alternativas. E então, apenas por causa do meio, isso também é apenas produzir a frase mais uma vez. Vamos também adicionar um comentário, certo? Então isso é maiúsculo e minúsculo. Tão bastante simples. Podemos simplesmente transformar a string inteira para maiúsculas, uma string inteira para minúsculas. E então aqui, bem, devemos apenas pegar a corda minúscula também, certo? Então, se acabarmos de colocar isso, você pode ver gritando tudo em letras grandes, então tudo em maiúsculas, depois tudo em minúsculas. E então aqui está, é a corda normal. Isso é estranho, não é? Bem, aqui está a parte muito interessante sobre isso. Esses métodos realmente retornam uma cópia dessa variável de frase. Eles não alteram a variável em si mesmos. Então, quando tínhamos coisas como x igual a x mais 1, na verdade mudamos x é 0 ou x mais igual a 1. Isso mudou a variável x. Nesse caso, estamos retornando uma cópia. Então isso é muito importante e você tem que realmente ter isso em mente. Mas para a próxima coisa, digamos, estou dizendo, Ei, que posição é que Java encontrou a palavra Java. Você vai ser como, eu não sei, é exatamente como. Então, o que vamos fazer é simplesmente copiar sobre a linha de impressão novamente. E vamos dizer o seguinte. Vamos dizer que a palavra Java ou algo assim é encontrado na posição. Agora poderíamos contar, não vamos ligar ainda. Vamos contar em apenas um momento. Vamos dizer índice de pontos de frase de, podemos ver que há alguns tipos diferentes de índice aqui, mas queremos essa string 1. Na verdade, não importa, a propósito, qual você escolhe aqui você pode ver que assim que o cursor estiver dentro dos parênteses vai realmente sugerir quais você quer fazer. Nós vamos tomar basicamente, e eu vou dizer Java aqui. Então Java, vamos ver quando é isso? Como onde isso acontece? 17, ok, vamos contar. Então, vou começar por aqui. Então meu cursor sempre estará no lado esquerdo do personagem com o qual estou contando, 123456789, 10, 11, 12, 13, 14, 15, 16, 17, 18. E todos vão ficar como Espere um segundo. Mas isso dizia 70, não foi? Sim. Ele disse 17. Agora, por que esse 18 é? Aha, veja, isso é uma coisa muito interessante porque em Java ou na maioria das linguagens de programação, estamos realmente contando a partir de 0. Agora isso pode ser absolutamente louco para você, especialmente se você fosse um iniciante. Isso é totalmente bom. Não se preocupe com isso. A coisa sobre isso é que você se acostuma com isso muito rapidamente acaba. Há alguns outros lugares onde temos que usar isso. Mas se começarmos a contar em 0, você pode ver que é 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17. De repente, o j é exatamente o 17º caractere, ou melhor, é o personagem com índice 17, certo? Então, porque é claro que esse é o índice, o índice disso, o índice dessa palavra. E estamos basicamente procurando o primeiro personagem aqui. Isso é realmente muito interessante, quando realmente pensamos sobre isso. E bem, e se realmente estamos, nós somos, não estamos, isso não está correto. Onde estamos é, na verdade, queremos substituir alguma coisa. Então, saia da linha de impressão do sistema e queremos dizer uma frase que substitua, e queremos substituir Java por, digamos C Sharp. Mas por que não? Certo? Assim, você pode ver o destino que queremos substituir como Java, e o que vamos substituí-lo é C nítido. Então, se eu fosse executar isso agora. Nós veríamos que é uma introdução maravilhosa C-sharp como não está certo, isso não está bem. Mas neste exemplo, é claro, isso é totalmente bom. Então esse é o método de substituição e isso também é muito interessante. Mais uma vez, isso não é substituído na frase. Ele retornou uma nova string, uma cópia disso que basicamente substitui isso. Muito importante. Talvez queiramos ver se uma determinada frase começa ou termina com alguma coisa. Isso é muito fácil, na verdade, vamos duplicar o substituto mais uma vez com o Control D. E o que podemos dizer que começa com, você pode ver, e eu poderia apenas dizer, hey, Eu escrevo e isso seria verdade neste caso. E então também podemos, você pode adivinhar o que o outro é, é claro, termina com, o que seria, digamos uma maiúscula a, o que é claro falso neste caso, isso seria verdade, isso deve ser falso. Então, vamos ver por uma questão de argumento. E lá você pode ver verdadeiro e falso. Muito fácil de fazer. Agora, o que é se tivermos uma string e vamos chamar isso de S por enquanto, e será apenas uma string vazia, certo? Então, uma corda sem nada nele. Como podemos verificar se isso está vazio? Bem, podemos deixar um booleano vazio. Por exemplo, apenas dizemos que S está vazio. E lá vai você. Isso é praticamente tudo o que precisamos. E se fôssemos sistema, a linha de impressão que está vazia, poderíamos, é claro, também colocar o ponto S está vazio dentro do seu, por que incomodar, isso é totalmente bom. E eles vão, isso é realmente onde é verdade? É verdade. Claro que é verdade. Desculpe. Lá vai você, certo? Claro que é verdade porque isso está vazio. E há mais uma coisa que é realmente interessante quando se trata de métodos booleanos para as cordas. E esse é o contém, um. Isso é muito interessante. Portanto, a frase da linha de impressão do sistema que contém, digamos Java. E isso é claro verdade, certo? Como isso contém Java, devemos ver r2 aqui também. Lindo. E o contrário? Quando pensamos em sobrecarga de índice? E quanto a um determinado personagem em uma determinada posição? Absolutamente nenhum problema. System out print line, frase, char em que posição? Digamos que 17. Então sabemos que vai ser a. Então eles sabem que vai ser um j. Isso vai ser muito importante e há um J. Fácil o suficiente. Mais uma vez, começamos a contar em 0. Portanto, enquanto este é o 18º personagem, é o personagem com índice 70, muito importante. Ou seja, pode ser difícil, mas depois de um pouco de tempo usá-lo, tenho certeza de que você vai se acostumar com isso. E vamos fazer uma outra coisa. E essa será a substring. Substring interessante. O que faz isso? Bem, vamos fazer a linha de impressão do sistema , e vamos apenas dizer substring de pontos de frase. E por onde começamos? Bem, vamos começar no índice 17. Mas o que isso agora vai acontecer é que vai levar tudo a partir do tipo 17 e só vai devolver tudo depois. Então, agora, a substring 17 anos deve dizer introdução Java, ponto de exclamação. E, claro, isso também acontece. Isso é muito bom. Então, se tomarmos outra frase que você pode ver que há é claro, mais métodos que você poderia chamar não, essa não é uma lista exaustiva que eu mostrei. Acabei de mostrar alguns que podem ser interessantes aqui. Eu sempre recomendo experimentar um pouco. Você está experimentando um monte de coisas. Esta grande coisa aqui é que ele realmente é apenas digitar um monte de coisas, clicar no botão Executar e apenas ver o que acontece. E se algo acontecer, isso é legal, ainda melhor. E se não, se houver uma seta pelo, trabalhe com ela e veja se você não pode consertá-la. Mas isso seria basicamente para palestras do método de cordas e essas cordas. Espero que você tenha achado útil e aprenda algo novo se você agradeceu muito uma avaliação sua. Caso contrário, verei você na próxima palestra. Sim. 16. (Java) Casting (Java): Ou eu sou bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos olhar para o elenco. Você também pode pensar nisso como converter tipos de dados entre si. O que isso realmente significa? Bem, vamos dar uma olhada. Por exemplo, queremos ter um empréstimo inteiro, ou seja, digamos US $750 Euros, seja qual for o caso. E então temos uma taxa de juros, que é claro em flutuação, certo? E isso vai ser 0,0525, digamos. Portanto, isso seria igual a 5,25% de taxa de juros neste momento, todos devem fazer sentido. Então, agora queremos realmente calcular os juros. Agora, o interesse, devemos calcular isso como um flutuador por enquanto. E vou te mostrar o porquê em um segundo. Portanto, os juros são iguais à taxa de empréstimo vezes a taxa de juros. Isso também deve fazer sentido. Você pode ver que, mesmo que eu esteja pegando um número inteiro vezes um flutuador, tudo funciona porque estamos salvando isso em um flutuador. Interessante. Ok, vamos fazer sistema, imprimir linha e apenas imprimir os interesses, o mar. E deve ser algo como 39, tudo bem. Então, é claro, se você sentir aqui também, isso é totalmente bom. Agora a questão é: como podemos simplesmente fazer como multiplicar um número inteiro e um flutuador e tirar um flutuador dele. Isso é muito louco, não é? Bem, o que acontece é basicamente que esse número inteiro em segundo plano é convertido em um flutuador. Podemos tornar isso explícito digitando o modo entre parênteses na frente da variável real. E então temos isso explicitamente. Portanto, este é um elenco explícito antes de ser um elenco implícito. Agora, a coisa sobre isso é que vamos aqui de um número inteiro para um flutuador. O que acontece se fizermos os interesses reais em inteiro? Primeiro de tudo, o que vai acontecer é que isso vai mostrar um erro porque assim que tivermos um flutuador em um, em uma expressão matemática aqui, tudo será transformado em um flutuador porque os fluxos têm mais informações, certo? Porque tudo depois do ponto decimal é mais informação, portanto, tudo é convertido em uma carga. Agora, vamos realmente expressar isso explicitamente para um número inteiro. Agora vamos saber Mori, o fundo aqui sendo amarelo significa que isso é um, é basicamente um aviso. Não vamos nos preocupar com isso porque eu realmente quero mostrar basicamente qual é o aviso, avisando-nos porque, de repente , é um grande 0 e você vai ser como, espere, como eles se transformaram em 0? Bem, quando lançamos um flutuador para um número inteiro, o que vai acontecer é que tudo depois do ponto decimal é cortado. Então, basicamente, é assim. Então, de repente, a taxa de juros será 0 quando a lançarmos em um número inteiro, o que significa que você só vai dizer que os tempos de empréstimo 0 são, naturalmente, 0. E você pode ver que isso também é o que o aviso aqui diz. É por isso que queremos voltar para o carro alegórico aqui. Então eles vão. E então, em vez de tornar isso um número inteiro, vamos manter isso na taxa de juros e normal. E isso vai ficar bem, no entanto. Essa é uma espécie de ideia quando você vai de um número inteiro para um flutuador. Então, de um, basicamente, de menos informações a mais informações, isso geralmente é bom. Vá de fluxos para inteiro. Então, para obter mais informações sobre menos informações, isso pode ter algumas consequências, digamos. Então é sempre isso que você tem que ter em mente. E isso também é uma coisa. Então, basicamente, essa ideia de escrever um tipo de dados diferente na frente de uma variável para transformá-lo em um tipo de dados diferente é algo que veremos um pouco mais tarde em uma palestra posterior também. Então isso é algo para basicamente também ter em mente. Bem, mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 17. (Java) de ternary Operator (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra vamos olhar para o operador ternário. Agora, o operador ternário à primeira vista soa como algo completamente louco, muito complicado, mas na verdade, não é. Então, vamos fazer dois números inteiros. Um deles será o exame. Este será apenas o resultado do exame como exemplo aqui. E então um inteiro chamado dom para isso é, digamos que nosso Pai queira nos dar um presente de X valor. Vamos especificar isso quando realmente passarmos neste exame, no entanto, como poderíamos fazer isso da seguinte maneira. Podemos dizer se o exame é maior ou igual a 50. Então, basicamente, estamos passando no exame, então vamos dizer que o presente é igual a 10 e então o presente é igual a 0. Agora não precisaríamos necessariamente disso aqui, mas vou adicionar isso apenas lá. E então vamos para o sistema linha de impressão, se dois. Portanto, não se preocupe lá. Isso tudo deve fazer sentido. Mas agora o que podemos fazer é que podemos realmente escrever todo este ano em uma linha. E o que podemos fazer é dizer que o presente é igual a. E então a primeira coisa que temos que fazer é escrever uma expressão booleana. Por exemplo, o exame é maior ou igual a 50. Então vamos escrever um ponto de interrogação. E então o que queremos retornar se a expressão booleana aqui for verdadeira. Então 10, depois dois pontos e, em seguida, o que quiséssemos retornar se a expressão booleana for falsa, então era 0. E este é o operador ternário, ponto de interrogação dois pontos. E isso praticamente é exatamente a mesma coisa que isso. Então, o que podemos fazer é basicamente copiar isso. Vamos apenas comentar os dois para que , independentemente do que aconteça aqui, isso não seja atribuído. Vamos primeiro ter uma saída 0 e depois um 10. Vamos ver. Lá vai você. Portanto, o 0 é claro que esse 0 aqui que atribuímos aqui. E então o 10 aqui é o operador ternário. Então, isso é realmente muito legal. Agora, geralmente, o operador ternário é usado. Eu não recomendaria usá-lo muito basicamente, mas às vezes com coisas bem simples como essa. Você também poderia pensar pegar essa expressão booleana, fazer um booleano fora dela dizendo como pedido exame. E então isso lê um pouco melhor no exame passado, que é 10, caso contrário, é 0. Então você pode pensar nisso também. Então eu provavelmente não o manteria assim porque isso é algo assim para não redobrar a taxa. Há muito poder cerebral que vai para olhar para o exame igual, um pouco maior é igual a 50. Certo? Certo. Oh, eu entendo. Se você tem algo como um is, passa no exame ou algo assim como um booleano que faz sentido neste caso. Mas seja qual for o caso, este é o operador ternário e basicamente a mesma coisa em declarações if. Agora, só porque isso está tudo em uma linha não significa que seja necessariamente melhor também. A contagem de linhas não é nenhuma indicação de código de qualidade, ok? E eu quero que você, eu quero que isso seja muito, muito claro. Isso não importa. Um ótimo programa pode ser de 1000 linhas. Se tiver que ter 1000 pés de comprimento, tem que ter 1000 noites de duração. Só porque você pode fazer esse programa 800 linhas não significa necessariamente que seja melhor. Isso é muito importante. Porque a coisa mais importante ao escrever código é que você pode lê-lo e outra pessoa pode lê-lo, o que inclui você daqui a seis meses. Porque você está em seis meses será uma pessoa diferente porque você esquecerá tudo o que escreveu em seu código. Portanto, você precisa tornar seu código legível ou outras pessoas, essa é a parte mais importante. E se um operador ternário faz sentido nesse caso, isso é ótimo. Eu nunca, eu definitivamente aconselharia você a nunca colocar vários operadores de terminal na mesma linha. Porque é claro que você poderia colocar outro operador ternário no verdadeiro ou falso aqui. Definitivamente não faça isso porque fica muito, muito complicado, muito rápido. Atenha-se às declarações if. Nesse caso, seja qual for o caso, isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra. Então, sim. 18. (Java) de (Java) Java (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem de microondas. E nesta palestra, vamos olhar para matrizes. arrays são definitivamente o tópico, digamos, mais complicado que vamos analisar, você sabe, até este ponto. No entanto, o que primeiro quero dizer é que, se você luta com isso, não se preocupe. Isso é totalmente normal. Eu também luto com o é, quando aprendemos isso. E no final da palestra, vou contar um pouco de uma história sobre isso. Mas, por enquanto, vamos lembrar de volta que tínhamos cordas E3, certo? Estamos na pergunta 1, pergunta 2, pergunta 3 e resposta um, resposta para responder três. Agora, certo, a primeira resposta era na verdade um número inteiro, mas neste caso é uma string. Isso é totalmente bom porque isso é para fins de demonstração. É um pouco mais fácil de mostrar. E o que tínhamos aqui era a ideia de que, bem, tínhamos essas perguntas. Vamos apenas dizer, eu digo, você sabe o que, seu jogo de trivia que estava na primeira tarefa, você deve realmente fazer isso ter 150 perguntas. Agora você vai estar sentado lá vai ser como, desculpe-me. Sim. Uma pergunta de 150. Bem, tudo bem. Então você começa a duplicar isso e depois mudar cada um deles. Agora, então talvez, você sabe, eu, eu sei coisa que você pode manter tudo pressionado e, você sabe, mudar várias coisas ao mesmo tempo, mas então todas elas mudam para o mesmo número e é todo tipo de apenas ferrou tudo. Não é muito bom. Então isso não funciona muito bem. Certo. De que outra forma poderemos fazer isso? Bem, o que podemos usar é uma matriz. Agora, uma matriz, você pode pensar nisso como uma lista. Não é 100% da lista, certo? É um pouco diferente porque, na verdade, há algo chamado de lista em Java também. No entanto, vamos pensar nisso como uma lista. E você iria fazer uma série de perguntas e uma área de respostas de string. E vamos dar uma olhada no que isso basicamente implica. Então, como fazemos uma matriz? Bem, nós apenas digitamos o tipo que queremos. Então, o tipo de dados que queremos, e então esses colchetes aqui, e isso vai ser perguntas e é igual a novo. Então, temos que pegar a nova palavra-chave e você pode ver que isso já está sendo sugerido para nós. Vou digitar esta string e, mais uma vez, o ângulo dos colchetes aqui e depois terminando com um ponto e vírgula. Agora isso ainda não foi feito porque dentro desses colchetes, nós realmente temos que fornecer o comprimento dessa matriz. Então, quantos elementos estarão lá? No nosso caso? Bem, é praticamente isso. Então isso é muito legal. Agora. É isso. É como sim, é praticamente isso. E agora, claro, precisamos atribuir algo. Então, o que podemos dizer são perguntas. Você pode ver que eu basicamente preencho isso automaticamente com a tecla Tab, certo? Os colchetes novamente e, em seguida, atribuem, por exemplo, um é igual a dois. E então vamos levar isso aqui, certo? Então, algo assim. E eu posso continuar com isso, certo? 23. E então vamos apenas, bem, como posso produzir isso certo? Como, como isso é possível? Bem, sistema de linha de impressão, e então podemos apenas dizer perguntas, sem perguntas, lá vai você. E então, por exemplo, três anos agora, na minha média, é tudo o mesmo, certo? Agora, vamos mudar isso, na verdade, copiar isso. Então selecione este controle C controle V, como este Control C Control V. E vamos apenas trazer os três aqui. Isso é só C e O sabem o que aconteceu aqui? Bem, o que aconteceu aqui é que talvez nos esquecemos. Agora, eu não esqueci, eu realmente queria te mostrar isso. Mas o que aconteceu aqui é que temos que começar a contar em 0. Então é aqui que voltamos quando vimos as cordas onde começamos a contar em 0 ano, contamos 0 também. Mas isso significa que quando temos três elementos nesta matriz de perguntas, o primeiro elemento é do índice 0, o segundo é do índice um e o terceiro é do índice 2, que significa que três não existe aqui, e então obtemos uma exceção. Vamos ver isso no final da palestra novamente, porque eu quero que você goste de ver a exceção e eu quero que você entenda o que isso significa. Mas, por enquanto, é assim que você atribui strings diferentes, neste caso, valores diferentes à matriz. E você também pode lê-lo praticamente assim. Mas isso é realmente o que é preciso. E vamos também copiar isso por uma questão de argumento e chamar isso de respostas, certo? E então vamos copiar o swell. Então vou selecionar este RP aqui, aqui e aqui. E então vamos mudar isso para as respostas aqui. Então, isso vai ser 50. Isso é claro que vai ser Londres. E então o último será F e. Muito interessante realmente. E então o que podemos fazer é, por exemplo, podemos produzir as respostas aqui. Então, vamos ver respostas uma nas perguntas 1. E então, de repente, diz algo como, bem, qual é a capital do Reino Unido? Londres? Muito fácil. E vamos realmente mudar isso para, na verdade, não precisamos mudar isso para 0. Isso é totalmente bom. Tudo o que podemos fazer é agora, bem, ok, então podemos apenas reatribuir isso para ela para que possamos aceitar isso. Só vou pegar isso. Na verdade, vou escrever essas perguntas. Mais uma vez, o colchete 0 é igual, por exemplo, quantos anos tem Ian? Msc, Gregor, em 2020. Isso é só vamos namorar a nós mesmos. Por que não? Isso é totalmente bom. E então acabamos de produzir isso novamente. Agora o 0, digamos, e o 0 aqui. A pergunta. Nós reatribuímos aqui e, em seguida a resposta ainda estará correta. A propósito, isso é algo que verifiquei. A propósito, como eu queria que isso estivesse correto. Isso é muito legal. Todas as coisas consideradas. O realmente legal é que aqui tudo está meio que em um tipo de dados, certo? Então, as perguntas agora têm todas as perguntas. Em vez de ter três strings diferentes, na verdade temos tudo nesta matriz de string de perguntas. Isso é muito legal. Também podemos obter o tamanho do comprimento dessa matriz, desta lista, por assim dizer, fazendo perguntas desse tamanho como você pode ver aqui. E podemos dar uma olhada nisso. Isso é claro 3 porque isso é o que fornecemos aqui, certo? Então, nisto, tivemos que fornecer o comprimento. Portanto, isso é praticamente isso. E você também pode ter visto muitas sugestões aqui. Não vamos nos preocupar com nenhum desses no momento porque todos eles são muito, muito complicados. E nós também temos é que eu realmente vou copiar sobre a menor parte aqui. Portanto, esta é a exceção do índice de matriz fora dos limites aqui. É praticamente o que já vimos, mas vou mostrar isso mais uma vez. Portanto, se colocarmos um número no colchete que realmente não existe, vamos obter uma exceção de índice de matriz fora dos limites. Então você pode pensar nisso assim. Bem, este é um array e tem um certo limite, ok, justo o suficiente. Como um índice. Então, o índice que estamos passando, esta é a taxa de índice três. Quero a pergunta com o índice três. Certo, justo o suficiente. Mas isso está fora dos limites porque essa área tem apenas três elementos e começamos a contar em 0. Portanto, o índice ou o elemento com índice três não existe. E mais uma vez, você obtém o rastreamento de pilha realmente bom aqui para que você possa obter o local exato onde o problema ocorreu. Então isso também é algo que eu queria mencionar aqui. Caso contrário, essa seria praticamente a essência geral das matrizes. E agora, claro, o tipo de coisa que eu te disse no início. Então, quando aprendi áreas na universidade, o interessante era que eu não as entendi completamente. Então eu disse, você sabe, eu não preciso de áreas. Nunca vou usar áreas, nunca. Isso não importa. Só vou ficar com isso. Vou criar variáveis individuais. Mas é claro, você vai ter problemas muito difíceis assim que alguém disser , bem, então faça como 20 diferentes e então, assim como me dê tirá-los, coloque-os em uma ordem aleatória. Não vai funcionar porque essas coisas definitivamente precisam ser aprendidas. Essa também não é a abordagem certa, branca. Oh, eu não entendo isso. Portanto, não preciso aprender isso. Portanto, não é importante, nenhum. E, claro, se existir, tem algum mérito nisso nesse sentido na programação aqui. Então eu definitivamente recomendo dar outra olhada nisso. Apenas fique calmo, tentando algumas coisas para entender isso. E também mais uma vez, se você receber algum erro, não se preocupe. Erros são totalmente normais ao programar. Não há nada como se não houvesse vergonha, não gosta que seja totalmente normal, genuinamente todo programador, recebe várias setas todos os dias quando eles programam. Mesmo programadores veteranos ainda recebem flechas todos os dias. Então nunca se sinta mal com isso. E sim, então essa é uma espécie de ideia geral de áreas aqui. Espero ter conseguido passar a ideia de que isso é realmente muito parecido com uma lista, certo? Não é uma elipse de 100%, mas você pode pensar nisso como uma lista. Você coloca elementos diferentes, basicamente com índices ou índices diferentes, você sabe, algo assim, certo? Mas, de outra forma, isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 19. (Java) loops (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra vamos falar sobre loops. O que vamos precisar para esta palestra são ambas as matrizes de string que fizemos anteriormente para as perguntas e as respostas de qualquer maneira. Mas antes de fazermos qualquer coisa com as áreas, antes de tudo, quero que você faça o seguinte. Saída. Todos os números de 0 a 99, certo? Você vai ser como, Ok, sistema de saída, linha de impressão 0, então você pode ser como duplicar um, duplicar dois. Agora você vai ficar sentado lá o tempo todo assim. Vamos ser honestos, isso vai levar muito tempo. Bem, e depois vem loops. Portanto, loops são algo em que você pode executar um pedaço de código várias vezes. E o primeiro tipo de loop que vamos ver é o for-loop. Para isso, vamos digitar quatro e depois parênteses. Mais uma vez, os parênteses de fechamento devem ser gerados automaticamente. E então vamos digitar int I igual a 0 ponto e vírgula I é menor que um ponto e vírgula 100 I plus, além de fechar parênteses e, em seguida, um colchete aberto. Em seguida, o colchete de fechamento deve gerar quando você pressionar Enter, quando você retirar a linha de impressão do sistema e colocá-la dentro dos colchetes encaracolados aqui. E vou mudar o 0 para um olho e agora ver as maravilhas da programação. Como você pode ver claramente, tudo é produzido de 0 até 99. Mas o que está acontecendo aqui? Bem, em um loop for-loop, a ideia é que o que estamos fazendo é que estamos definindo, como você pode ver, estamos inicializando a, um inteiro i e para o 0. E então estamos dizendo que estamos tendo algum tipo de expressão booleana aqui e depois um incremento. O que acontece é que eu estou definido como 0. O que está sendo verificado é se eu sou ou não menor que 100. Se isso for verdade, continuaremos com esse loop. Então, se isso for verdade, tudo dentro de você acontece, então vamos aumentar eu e então isso será verificado novamente. E então estamos fazendo isso de novo, aumentando eu, cheque aumentando eu e assim por diante e assim por diante. Então isso é basicamente feito para sempre até este ano. Essa expressão booleana é falsa. E uma vez que é falso, o que significa que eu não sou mais menor que um 100, o que acontece quando eu é um 100, então isso não é mais executado e tudo depois, depois do colchete encaracolado aqui começa a acontecer. É por isso que ele pára em 99 e não um 100, porque quando eu tenho 99, isso ainda é verdade. 99 é menor que 100. Todos concordam, sim. Mas assim que for 100100 não é menor que 100. Na verdade, é igual a 100. Portanto, isso não é mais basicamente verdade. Portanto, isso não é mais executado por um 100. E essa é uma espécie de ideia. E isso é muito legal, não é? Como se pudéssemos fazer isso facilmente? E agora vou explodir sua mente. Agora vou lhe dizer, bem, produzir todas as perguntas e respostas e você só vai ocupar a linha de impressão do sistema. Agora pergunta 0, resposta 0, assim como tínhamos antes. Bem, isso vai ser mais fácil para int I igual a 0. Eu sou menor que o comprimento do ponto das perguntas I plus, mais. E então o que vou fazer é copiar este duas vezes. E então, em vez disso, vou fazer perguntas eu oh, isso é interessante, não é? E responde I. Agora isso, isso é muito legal. Então, você pode basicamente passar o número inteiro aqui para os colchetes e acessar, bem, qualquer índice que você quiser e qualquer índice que esse inteiro assumir. Outra coisa realmente louca é porque estamos realmente olhando para o comprimento aqui, certo? Como temos o comprimento, isso imediatamente nos salva de quaisquer erros. Agora, o único erro que pode ocorrer é se de repente, fizermos isso quatro aqui, certo? Porque estamos tirando o comprimento das perguntas enquanto as respostas não são as mesmas. Então, podemos encontrar um erro. Mais uma vez, a exceção de área fora dos limites ou a exceção de índice de matriz fora dos limites. Mas, por enquanto, quando usarmos o mais longo, isso vai ser totalmente bom. E se eu apenas executar isso, você pode ver isso imprime tudo. Harmony fica na capital US AIR 50 do Reino Unido, Londres. E então o símbolo químico para ferro é Fe. Para que tudo funcione. Então isso é bonito, isso é muito louco, certo? Isso é muito legal. Ou loops insanamente valiosos e podem ser usados para todos os tipos de coisas. Há outro tipo de loop que é muito semelhante ao for-loop, que é o para cada loop. Agora você pode ver se eu consigo digitar isso e eu poderia pressionar a tecla Tab para preencher isso automaticamente. No entanto, não vou, porque a formatação é um pouco estranha para mim. Não sei, sei bem qual é esse o caso. Nós só vamos escrever para que eu posso dizer perguntas sobre a Polônia Ocidental. E a maneira de ler isso é para cada pergunta de string em perguntas, é assim que você leria. E então você pode simplesmente fazer um sistema fora, imprimir linha, pergunta. E posso simplesmente imprimir cada pergunta individual aqui. Mais uma vez, isso só vai funcionar. Então, como você pode ver, lá vai você, uh, basicamente agora tem acesso ao que os elementos individuais dentro dessa lista ou matriz neste caso, e eu não preciso especificá-lo através do índice aqui. Na verdade, estou recebendo todos eles bem individualmente. Então este é o para cada loop e isso para cada um que você for, Esse é outro tipo de loop que é interessante. E então o último tipo de loop que eu quero mostrar é o loop while. Agora, eu tenho uma preferência pessoal de usar muito raramente o loop while simplesmente por causa do fato de que ele pode ser, bem, pode te causar problemas. Então, podemos dizer algo como embora verdadeiro e depois colchetes encaracolados. Então, o que acontece é que tudo dentro daqui vai acontecer enquanto isso for verdade. Agora, obviamente, quando você pensa sobre isso por um segundo, espere um segundo. Se eu for verdade, então isso sempre será verdade exatamente. Isso agora é um loop while e um loop while e sem fim, certo? Portanto, este é um loop sem fim e esse é o perigo que você pode encontrar com um loop while. Você pode encontrar o problema com loops for também na teoria, mas é muito raro que realmente aconteça. Mas em loops while, muitas vezes é o caso ou pode ser o caso de você ter um loop sem fim. Agora todo mundo tem que passar por isso em algum momento. Só estou dizendo que meu viés é que eu realmente não gosto de loops. Mas o que podemos fazer é, bem, vamos fazer o seguinte. Na verdade, vamos adicionar uma entrada para a pessoa. Então o scanner aqui, o scanner é igual novo sistema de scanner e, em seguida, pronto. Mas o que vamos fazer é dizer algo como a seguinte linha de impressão do sistema. Você quer continuar? Mas então vamos apenas dizer: Ei, a pessoa quer continuar a usar? Queremos continuar. E então vamos dizer, ei, se o ponto do scanner em seguida, certo? Se isso for igual a sim. Então o que vamos fazer é continuar , certo? Então continue a palavra-chave real, outra pessoa que vamos quebrar. Este é um exemplo aqui da palavra-chave Continue e da quebra. A palavra-chave continue basicamente ignora tudo o que vem depois dela dentro do loop e salta de volta para o topo do loop onde a palavra-chave break sai do loop. Então, basicamente, vai para o final do ano e tudo depois é executado novamente. Isso seria o mesmo se isso de repente se tornar falso. Nesse caso, é claro que este é um loop sem fim, certo? Então, enquanto eu digitar, sim, isso continuará e assim que eu digitar qualquer outra coisa, ele vai sair dela. Então essa é uma espécie de ideia desse loop while aqui. Vamos realmente dar uma olhada nisso para que eu possa digitar. Sim. E eu posso digitar, sim. E eu poderia digitar. Sim. E então eu vou cometer um erro aqui e um OH, não, De repente, o código está parado. Essa é uma espécie de ideia. Portanto, isso pode ser um loop sem fim com uma espécie de sistema de travagem. Agora, o que é muito importante é que a palavra-chave continue e a quebra provavelmente só deve ser usada com moderação porque há muitos desenvolvedores que não gostam disso. Porque se você tiver gostar, digamos que um loop FOR mais longo ou loop while mais longo e você tenha muito Continue e quebra lá. Às vezes pode ser um pouco confuso. Gosta de lê-lo, certo? Porque você vai ter mais ramos por assim dizer. Então você pode pensar, se você pode pensar em maneira de fazê-lo de uma maneira um pouco diferente que geralmente é melhor. Seja qual for o caso. Esses são os loops que eu queria te mostrar. muito legais. E estamos realmente começando a obter algumas ferramentas muito, muito legais em nossa caixa de ferramentas para realmente trabalhar com código e apenas programar algo que é muito legal. Então, mas por enquanto, é isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo se você o fizesse, eu agradeceria muito uma revisão sua. Caso contrário, verei você na próxima palestra. Então, sim. 20. Métodos Java (Java) (Java): Bem-vindo de volta à introdução do Java para modelagem do Minecraft. E nesta palestra, vamos dar uma olhada em um método. Então, antes de tudo, mais uma vez exigimos as áreas de string aqui. Nós não necessariamente os exigimos, no entanto, vamos usá-los nesta palestra. E bem, métodos. Quais são os métodos? Bem, vimos essa palavra lançada algumas vezes antes com os métodos de string. E também algo como a linha de impressão do sistema também é um método. E eu poderia ter dito uma ou duas vezes antes do método principal. Então, há algo nisso. Também vimos os métodos matemáticos, então definitivamente ouvimos essa palavra antes. O que é realmente? Bem, em teoria, um método, você pode pensar nisso como algumas linhas de código, uma linha de código ou 100 linhas de código em teoria, que são executadas quando você chama esse método. Então você chama um método como, por exemplo, quando digitamos um sistema, a linha de impressão do sistema, certo? E eu digo Olá, leia isso. É algo em segundo plano, acontece, certo? Então essa linha de impressão, quando chamamos isso, esse método aqui, algo em segundo plano acontece. Agora não sabemos, neste caso , necessariamente, o que acontece exatamente. Mas algo acontece com isso esse olá, certo? Uma vez que eu executo isso, para que, quando isso acontecer, algo aconteça em segundo plano que este olá agora está sendo exibido nesta janela Executar. Então, não sabemos o quê, mas algo em segundo plano acontece, então algum código é executado. Então, se tivermos um pedaço de código que podemos querer reutilizar, digamos 100 vezes em nosso código. Então você pode dizer, bem, podemos apenas fazer um loop for-loop, você sabe, 100 vezes. Bem, mas e se eu quiser fazer isso em locais diferentes no meu código, certo? Então talvez eu queira fazer uma pergunta neste caso, certo? E uma saída e resposta e , em seguida, verifique a resposta. Então eu quero fazer perguntas novamente. É como, bem, quero dizer, você poderia fazer um loop for, mas bem, talvez nós queiramos fazer algumas declarações if lá. Vai ficar um pouco complicado. Então, isso nem sempre funciona. Então, digamos, por exemplo, o que eu quero fazer é que eu só quero, eu não seria apenas algo que eu possa digitar que eu possa dar, digamos uma, uma matriz aqui, vermelha. Portanto, o conjunto de perguntas de string, uma área de respostas de e que apenas as saídas atendem a todas as respostas e todas as perguntas. Então, todas as perguntas, respostas apenas na inscrição. Então eu poderia, claro, escrever algo assim. Olho direito para loop int I é igual a 0. Eu sou menor do que as perguntas que vinculam, digamos que eu mais, mais. E então eu poderia apenas dizer sistema , perguntas de linha de impressão. Eu escrevo algo assim e dupliquei isso e depois digo respostas. Eu poderia fazer isso. Bem, digamos mais uma vez, quero que isso seja feito 100 vezes em todo o nosso código. Agora, o observador de vocês pode dizer, bem, por que não colocamos isso em outro loop for. E você estaria absolutamente correto. Você poderia fazer isso também. No entanto, não vamos ficar muito inteligentes. Vamos pensar sobre isso e fazer disso um método. Agora, o que vamos fazer é que eu te disse antes que só estamos operando entre esses dois suportes encaracolados. Estamos expandindo nosso mundo agora e nos movendo para fora desses suportes encaracolados. Porque agora nossos novos suportes encaracolados são esses dois basicamente. Então agora esta é a nossa nova casa. E isso, você pode ter pensado sobre isso. Bem, este é o método principal que está sendo executado basicamente quando pressionamos o botão Executar e, em seguida, o método principal é executado. Agora vamos adicionar um novo método. E antes de tudo, vou escrever isso. E então vou explicar o que acontece aqui. Então, vamos escrever estática pública, vazia. E vou chamar isso de perguntas e respostas de saída. Então vou digitar um parêntese, os parênteses de fechamento devem gerar automaticamente. E então eu vou fazer uma matriz de strings aqui. Então, essas serão as perguntas e, em seguida, uma outra matriz de string responde, certo? E então eu vou fazer um suporte encaracolado. E você vê que o segundo suporte encaracolado já gerou. Posso pressionar a tecla Enter e, em seguida, a formatação também deve estar completa. E com isso, um método mais novo foi criado. Por enquanto, ignoraremos isso público e estático. Ainda não sabemos o que é isso, mas estamos muito perto de descobrir isso em uma palestra futura. Na verdade, vamos descobrir o que isso significa por enquanto. Só sabemos que isso é um modificador de acesso. Não sabemos o que ele faz ainda. Só sabemos que precisamos ter estática pública escrita aqui e então tudo vai ficar bem. Há vazio aqui é, na verdade, o tipo de retorno desse método. Então, alguns métodos retornam algo e veremos isso em apenas um momento. Então, depois de termos feito esse método, faremos outro que realmente retornará um número inteiro. Em seguida, teremos o nome do método. Agora isso é algo que você pode decidir por si mesmo. Normalmente, variáveis de nomenclatura e métodos de nomenclatura devem ser muito expressivos. Portanto, mesmo que isso possa ser muito longo para você não se afastar de métodos longos ou nomes de variáveis longas. Se eles descreverem exatamente o que estão fazendo, isso será a melhor coisa. Então, depois do nome, venha, os parênteses aqui. E dentro dos parênteses, basicamente também definimos uma variável tipo de fala. E esses são chamados de parâmetros. Portanto, temos dois parâmetros aqui, e ambos são do tipo string array. E, no geral, essa coisa toda aqui. Então, tudo isso, à direita, os modificadores de acesso, o tipo de retorno, o nome do método e os parâmetros é o que é chamado de assinatura do método. Então, como precisamos saber disso, assinaturas do método precisam ser. Significado único, não posso ter a mesma coisa. Então, vou selecionar tudo isso. E então eu vou dizer Control C e depois Control V. E você pode ver que se eu passar o mouse sobre isso agora vamos dizer que já está definido aqui. Então isso é exatamente a mesma coisa e já está definido. Isso não funciona, certo? Então isso é muito importante. No entanto, se eu alterar a assinatura do método, ou seja, por exemplo, eu faço um a menos, coloco um parâmetro a menos aqui que funciona. Você terá, eles têm o mesmo nome, eles têm uma assinatura diferente. Então, neste caso, agora seria chamado de sobrecarga de método porque temos o mesmo nome, isso com uma assinatura diferente desativada. Por exemplo, número diferente de parâmetros, diferentes tipos de parâmetros, diferentes tipos de retorno. Essa é uma espécie de maneira que você pode alternar o ano por ter métodos com o mesmo nome. Isso vai ficar interessante, talvez mais tarde na linha por enquanto, vamos excluir este e vamos manter o único método aqui. E o que vamos fazer é, na verdade, vamos pegar esse Control X para cortá-lo, Control V para colá-lo. E de repente você pode ver que tudo está funcionando totalmente bem porque, claro, estamos tendo os parâmetros aqui, Westerns e respostas. E a ideia é que vamos passar isso. Então, porque agora, é claro, essas perguntas, essas respostas, essas não são as mesmas que essas duas. Eu posso chamar isso, digamos Q0, Q, Q u, e, apenas por uma questão de argumento. E vou chamar isso de E&S só para que não haja mal-entendidos. Este ano não é o mesmo isso porque eu poderia chamar isso com, é claro, uma série diferente de perguntas em uma área de respostas de string diferente. Então isso vai ser muito geral. Isso só vai fazer isso para qualquer área que eu vou colocar. Então essa é a coisa muito legal. Então o que posso fazer é poder chamar isso, posso dizer saída. E você pode ver assim que eu digitar, o método real está sendo reconhecido pelo programa. Na verdade, sugeriu aqui. Então eu posso simplesmente colocar a tecla tab. Posso pressionar a tecla tab e ela gera automaticamente o seu e posso apenas dizer Q0 e ANS. Então, agora eu passei a matriz de string de perguntas como o perímetro da pergunta e a matriz de string de resposta como o parâmetro answer. Você pode, o que você também pode ter visto é que o método passou de cinza para amarelo. Isso simplesmente significa que esse método está realmente sendo usado, então sendo chamado. E isso também é uma ideia importante. E se eu agora executar isso, você verá que ele realmente funciona. Você pode ver quantos conjuntos. Os EUA, eles têm 50 capitais, Reino Unido, Londres, e símbolo químico para ferro é F, e. Então ele produz isso e basicamente chama todo o código disso dentro daqui. E agora, é claro, os métodos podem chamar métodos, e os métodos podem chamar outros métodos. Então isso, é claro, fica bastante complicado em algum momento. No entanto, por enquanto, isso é muito legal. Agora, também vamos fazer um método que pode ser muito complicado. Então, o que vamos ter como alguém vai para a estática pública int. Então, agora vamos retornar um número inteiro e vamos somar dois números juntos. Então, para isso, do que precisamos? Bem, é claro que um inteiro x e um inteiro y. Agora, mais uma vez, os nomes dos parâmetros, a propósito, também podem ser o que você escolher. Normalmente, você quer que eles também sejam muito expressivos em geral. Agora temos esse método de soma aqui. E o que vamos fazer é digitar a palavra-chave de retorno x mais y. lá vai você. Então, vamos apenas retornar x mais y porque é claro que essa é a soma desses dois inteiros nesse caso, nada muito espetacular. No entanto, o que eu queria mostrar é basicamente a palavra-chave return e que você também pode retornar diferentes tipos. Então, o método SAM, neste caso, podemos dar uma olhada nisso, certo? Então, sistema para fora da linha de impressão, e então vamos dizer uns dez e digamos 12. E então se eu executar isso e ele deve dizer 22, lá vai você. Portanto, não se preocupe, tudo funciona. E esse tipo de ideia geral aqui que você tem com métodos. Assim, ele pode retornar algo ou pode pegar retornar algo, então você tem que escrever em um vazio. Mas isso é uma espécie de análise provisória dos métodos. É claro que, mais uma vez, você realmente precisa aplicar isso um pouco para realmente entender aqui. No entanto, isso é um ótimo seguimento para a tarefa que será a seguir. Eu recomendo fazer como fazer a próxima tarefa porque isso será basicamente métodos. E mesmo que você não obtenha Sue basicamente fará tudo lá dentro, pelo menos olhando para a questão e seguida, a solução para ela espero ilumine também a maneira que você pode use métodos em seu próprio código. Mas, por enquanto, isso vai ser para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo e eu te vejo na próxima palestra. Então, sim. 21. TARde 2: Jogo Trivia com métodos: Tudo bem, Bem-vindo à segunda atribuição da introdução do Java aqui. E neste pequeno vídeo, basicamente quero explicar a tarefa. Então, no geral, a tarefa não é tão complicada quanto eu ainda quero basicamente orientá-lo por isso. Então, a ideia é que você recriar o jogo de curiosidades desde a primeira tarefa. Então, basicamente, praticamente a mesma coisa. Mas desta vez você deve ter cinco perguntas e cinco respostas. E a maneira como você deve salvá-los é em duas áreas. Um para as perguntas e as respostas. E o que você também deve fazer é criar pelo menos dois métodos para tornar o código mais legível e fácil de seguir. E basicamente como uma dica, você vai pensar nisso assim. Quando você tem algum código duplicado, provavelmente deve transformá-lo em um método. Vamos pensar sobre isso. Pense em onde você pode estar ligando para algo duas vezes e então você pode basicamente fazer um método com isso. E o que você também deve fazer é fazer um loop sem fim e, em seguida, algumas declarações if lá em alguma capacidade. Então, alguma lógica, que faz com que o usuário solicite que o usuário continue jogando ou não se ele não quiser mais. Eu recomendo dar outra olhada na palestra de loops novamente porque eles têm um caso de uso muito semelhante que eles estão cientes de que tínhamos um loop while infinito que você pode parar com eles Instruções IF e as palavras-chave break e continue. Então, esses podem ser muito úteis aqui. Caso contrário, no geral, isso deve ser bastante simples. O jogo por si só deve jogar de forma muito semelhante, na verdade, do que o primeiro. Deve parecer um pouco diferente. Então, no geral, essa seria toda a ideia. Claro, não se esqueça de coisas como os pontos também. Além disso, você sabe, adicioná-los também. Caso contrário, isso é praticamente tudo o que você realmente precisa fazer. Sugiro arredondar cerca mais uma hora para esta tarefa, dependendo, é claro , do seu nível, você também pode fazê-lo em 30 minutos, 45 minutos, quem sabe? Mas não se estresse. Leve algum tempo para realmente se aprofundar nisso. Assista a algumas palestras novamente, a palestra de loop, eu recomendo métodos de aula foram áreas muito boas se você não entender completamente, eu recomendo isso. E, caso contrário, é claro, a solução também estará disponível para você. Portanto, não se preocupe lá. Caso contrário, desejo-lhe boa sorte para esta tarefa, no entanto. Sim. 22. SOLUÇÃO 2: jogo Trivia com métodos: Ou eu dou as boas-vindas de volta à segunda tarefa e à solução para a atribuição real aqui. Então, mais uma vez, o código está , naturalmente, disponível para você. E, como um aviso de isenção de responsabilidade aqui, se o seu código não corresponder a 100% ao código que eu tenho, é claro que é totalmente bom. Não há vergonha nisso porque sempre há várias soluções para isso. E eu acho que minha solução pode ser usar alguns, muitos métodos. Na verdade, curiosamente, mas, por enquanto, vamos passar por isso. Então, é claro, as matrizes de string, perguntas e respostas devem ser bastante autoexplicativas aqui. mesmo acontece com o scanner mais uma vez para ler as coisas e, em seguida, um total de pontos aqui, apenas pontos centrais. Então, isso é bastante simples. Temos um loop while que é sempre verdadeiro. Então você pode ver que isso é basicamente todo o loop while aqui. E vamos antes de tudo dar uma olhada no fundo aqui. Então esta impressão é reproduzida novamente, método imprime, Ei, você quer jogar de novo? Se você colocar um y aqui, ele basicamente redefine os pontos e, em seguida, continua com este loop while novamente. Caso contrário, ele simplesmente sai do loop while. E então príncipe de adeus aqui. Essa é uma espécie de ideia. Caso contrário, você pode facilmente seguir isso. Os nomes dos métodos descrevem quase inteiramente o que eles estão fazendo e, em seguida, veem Título impresso, justo o suficiente. E então vamos passar por cada uma das perguntas aqui para este loop, muito, bastante simples também. E temos a pergunta impressa aqui para a pergunta que atualmente está sendo feita por, em seguida, lida na resposta do usuário. E então temos uma declaração if que chama outro método aqui. Então, a resposta correta desta resposta do usuário. E basicamente compara isso com a resposta correta para essa pergunta. Se esse for o caso, portanto, se esse método retornar true, estamos imprimindo, você terá uma resposta correta, onde cada vez mais pontos totalizam e escrevendo isso volta na variável points. E então aqui também estamos imprimindo o total de pontos atuais basicamente. E se essa não for a resposta correta, estamos imprimindo que você tinha uma resposta incorreta e também estamos imprimindo a resposta correta real. Isso é praticamente tudo o que realmente precisamos aqui. E você pode ver, no final aqui, estamos apenas imprimindo o total do ponto e, em seguida, pedindo ao jogador para basicamente se ele quer ou não jogar novamente. Então essa é toda a lógica aqui. E então, se descermos, podemos ver que há muitos métodos aqui. E todos eles são muito, muito simples, certo? Quase todos eles apenas uma luz, basicamente todos eles apenas uma linha. Agora, você pode fazer um caso muito bom que, isso pode ser um pouco bom demais, também pode ser uma coisa ruim neste caso, certo? Ou muitos métodos podem ser demais. No entanto, isso definitivamente é muito fácil de seguir aqui. Há também pontos em dizer, bem, talvez pudéssemos pegar toda essa declaração IF e fazer um método. É isso também, talvez pudéssemos tirar todo o loop for, fazer um método inteiro com isso. Podemos tomar essa parte e fazer um método outros. Portanto, existem várias ideias que você pode seguir e você ainda pode, é claro, fazer mais métodos com isso ou menos. Está tudo bem e está tudo bem. Contanto que funcione, você tem alguns métodos que você fez, então vai ficar absolutamente bom. Então, mais uma vez, se esta não for exatamente a sua solução, não se preocupe com isso ao menor. Mais uma vez, a coisa bonita da programação é que sempre há, quero dizer, há um milhão de maneiras diferentes de fazer isso. Claro, alguns deles serão mais otimizados do que outros. Mas no final do dia, quando realmente pensamos nisso, isso vai ficar bem normalmente. Então, se isso não é 100% correto como você tem, tudo bem. Se funcionar, já estou muito feliz com isso. Caso contrário, esta é praticamente minha solução. Este código, é claro, também está disponível para você. Caso contrário, espero que essa tarefa sido útil para você se aprofundar um pouco mais na ideia de métodos e como usá-los. Eu sempre posso, claro, também apenas sugerir brincar com ele em seu próprio tempo, apenas experimentando um monte de coisas. Neste ponto, você tem muitas ferramentas diferentes. Você tem instruções if, você tem loops, você tem métodos, matrizes. Então, há muitas coisas com as quais você pode brincar. Você pode ler coisas do usuário. Você pode escrever coisas para o console, que neste momento, na verdade apenas abre um monte de coisas para você. Então, se você quer fazer uma espécie de escolha sua própria aventura, apenas uma pequena coisa, certo? Vá em frente, certo, apenas experimente um monte de coisas. Eu recomendo apenas ser experimental com ele. Você, você não pode quebrar nada aqui, certo? Contanto que você escreva seu código aqui seja apenas para você, tudo vai ficar bem. Como eu já disse na palestra sobre os erros. Se você receber alguns erros, não precisa se preocupar, este não é o fim do mundo e todos recebem flechas, certo. Eu recebo flechas a qualquer momento, como quando programo, é claro, haverá flechas e tudo bem. Contanto que você trabalhe com eles, você tenta entender por que eu recebi esse erro? Como isso aconteceu? E meio que algo assim. Mas isso seria para a solução aqui. Espero que você tenha achado útil e aprenda algo novo e eu te vejo na próxima palestra. Então, sim. 23. (Java) Java Colections (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos dar uma olhada nas coleções. Isso incluirá mapas e conjuntos realistas. Embora especialmente os conjuntos sejam algo que é usado bastante extensivamente na modelagem do Minecraft em geral, mas na base de código Minecraft. Portanto, os conjuntos são coisas muito interessantes, mas primeiro vamos começar com uma ArrayList. No entanto. Vamos pensar na matriz de string, que conseguimos definir assim, certo? Então, perguntas, por exemplo, aqui, com uma nova matriz de string, digamos do tamanho dois. E então fomos capazes de atribuir essas perguntas assim. Como algum estado, sem Estados? Faz. A metade dos EUA é algo assim. E poderíamos duplicar essa linha. O outro também. Por exemplo, tornando isso um pouco mais curto capital do Reino Unido. Então isso funciona totalmente bem. Sem problemas qualquer taxa. No entanto, uma das coisas que você pode se perguntar é certa, mas e se eu quiser alterar o número de perguntas dentro dessa área? Bem, você tem que mudar esse número aqui. E isso pode ser um pouco chato, certo? Porque então você tem que entrar aqui, tem que mudar isso, certifique-se de que, se você tiver uma área que tenha respostas, você também tem que mudar o tamanho disso, e assim por diante e assim por diante. Então, meio que não é a melhor coisa. E para isso vamos dar uma olhada em uma lista agora. Então, vamos digitar lst, então listar. E você pode ver que isso já nos sugere basicamente neste. E vamos apenas pressionar a tecla Tab, que agora importará algo no topo aqui. Se isso não acontecer, vou te mostrar em apenas um momento como você pode consertar isso. E então você vai colocar o colchete angular aqui. Portanto, o suporte angular e o outro também devem gerar automaticamente. E então vamos colocar uma corda aqui. E depois vamos chamar isso de lista de perguntas. E isso é igual a uma nova ArrayList. Você pode ver que isso já está sendo basicamente sugerido para nós. Mais uma vez, vou pressionar a tecla Tab para gerada automaticamente. E vamos acabar com isso com um ponto e vírgula. E a primeira coisa que você vai ver é que nós, não definimos nenhum tamanho para esta lista. E isso é exatamente certo porque não há necessidade de definir um comprimento para uma lista, porque uma lista é dinamicamente enquanto Alongar a fala solar. Então, basicamente, podemos adicionar coisas a ele, adicionar elementos a ele e a lista que vamos expandir dinamicamente. Então isso é muito legal. Essa é a primeira coisa muito legal. Então, podemos dizer lista de perguntas, pontuar, adicionar e depois colocar uma string. Então, por exemplo, qual idioma é falado na Alemanha? Como pergunta aqui. E então eu posso duplicar isso. E por exemplo, digamos, qual é a capital do Canadá? E então no final aqui talvez algo como, você sabe, vamos apenas dizer em que hemisfério? O hemisfério é o Brasil. Mas só por uma questão de argumento. Então, esses exemplos de três perguntas, basta adicioná-lo à lista, e este agora será o elemento com índice 0. Este será o elemento com o índice um, e este será o elemento com o índice dois. Então isso é muito legal. E a primeira coisa que podemos basicamente dizer é que listas, certo? Eles são basicamente adicionar entradas ou elementos dinamicamente. Então isso é muito legal, certo? Assim, podemos adicionar e, bem, até remover coisas. Como você removeria coisas? Bem, isso também é bastante fácil. Podemos apenas dizer que o ponto da lista de perguntas remove, e então eu posso colocar o índice que quero remover ou posso colocar o objeto real que eu quero remover. Então eu também poderia passar na cadeia de caracteres aqui, ou eu poderia apenas dizer uma. E então ele vai remover a pergunta, qual é a capital do Canadá? Isso é muito legal. Agora, a próxima pergunta você pode ter é, bem, como podemos basicamente obter o comprimento disso? Bem, podemos dizer ponto da lista de perguntas. Primeiro de tudo, você receberá muitas coisas sugeridas aqui, como você pode ver claramente. Muitas coisas, a maioria das quais não nos interessa no momento. Na verdade, temos que usar o método de tamanho aqui. Então, tamanho com os parênteses, o que significa, é claro, que esta é uma chamada de método. E isso retorna como o tamanho ou o tamanho dessa lista. E como posso obter um elemento dessa lista? Bem, podemos apenas digitar o sistema fora, imprimir linha para imprimir isso. E então podemos dizer lista de perguntas que GET. E então aqui temos que passar no índice. Então, neste caso, 0, por exemplo. E se eu apenas executar isso, você verá que vamos ter dois para o tamanho porque é claro que removemos a primeira pergunta ou a string com o índice um. E então o elemento com índice 0 ainda será qual idioma é falado na Alemanha. Então isso é muito legal. Todas as coisas consideradas. Agora, vamos dar uma olhada em outra coisa. E isso vai ser uma lista de números inteiros, por exemplo, certo? Portanto, os números são iguais a uma nova lista de matrizes. E o que você vai ver é que esse problema aqui. Então, ArrayLists classifica algo assim. E então você pode ver que é uma espécie de, você sabe, não se comporta bem. Há como um sublinhado vermelho aqui. O que está acontecendo? Bem, se passarmos o mouse sobre isso, você pode ver que o argumento de tipo não pode ser do tipo primitivo. Isso significa que na verdade não podemos usar em booleano e coisas assim. No entanto, antes de você. Isso pode dizer, Oh meu Deus, essa é a pior coisa de sempre. Não se preocupe. Existem classes de wrapper que você pode usar para que você possa realmente ver substituí-las pelo inteiro Java Lang. Bem, eu posso clicar nisso ou posso simplesmente digitar um número inteiro aqui. Então este, neste caso. E se você usar isso, então tudo funciona bem. Então, essas são esta lista e esses colchetes angulares são o que é chamado de genéricos. E a ideia é que você possa colocar qualquer tipo de dados aqui, exceto os primitivos. Isso é muito importante para aqueles que precisamos dessas aulas de invólucro. Então, há aulas de invólucro, certo? Podemos usar, pode usar em vez do primitivo, um datatype primitivo o u. Então isso é muito importante lembrar aqui que existem classes de wrapper e elas devem existir para cada um dos primitivos tipos de dados. Portanto, não se preocupe lá. E aqui podemos facilmente dizer números em, você sabe, eram 20, por exemplo. E os números adicionam algo como 42. Não se preocupe. Como você pode ver, podemos apenas adicionar esses números aqui e eles são inteiros normais e podemos basicamente usar o. Isso é totalmente bom. Mas eu queria mencionar isso que você não pode usar os tipos de dados primitivos nesses genéricos como eles são chamados. Como eu disse, os genéricos são esses tour desses suportes angulares, certo? Esses suportes angulares. E tudo o que está dentro dele é chamado de genérico porque, bem, é genérico no sentido de que podemos colocar em qualquer outra classe ou qualquer outro objeto, qualquer tipo de dados que queremos aqui. E isso só funcionará. Isso, a propósito, inclui uma lista também, certo? Assim, podemos ter uma lista de uma lista. Claro, por que não? Certo? Nós várias listas que também funcionariam. Mas, por enquanto, será isso para as listas. Vamos dar uma olhada nos mapas. Então, os mapas são muito interessantes. Leia, um mapa é a seguinte coisa. Um mapa contém uma chave e um valor. E a chave, a chave realmente mapeia, chave correta mapeia para um certo valor que todos devem fazer sentido. Isso é chamado de par de valores-chave. Certo, justo o suficiente. O que podemos ver? Bem como basta digitar isso no mapa como você pode ver, e temos duas coisas diferentes nos colchetes angulares desta vez. Então, vamos importar isso, certo? Então você pode ver que isso também é importado aqui. Se isso não for importante automaticamente, você pode ver que as coisas ficam vermelhas e você pode facilmente fazer isso sozinho. Você pode clicar nisso e pressionar Alt e Enter, e ele importará essa classe. Você pode ver que eu também tive que fazer o mesmo com o ArrayList. E então aqui em baixo para o mapa, na verdade não preciso fazer isso ainda porque ainda não terminei, mas veremos isso em apenas um momento. Vamos ter um mapa que mapeia uma string para outra string. E vamos chamar isso de país para o mapa da capital, que será igual a um novo HashMap neste caso. E então o que podemos fazer é simplesmente pressionar Alt e Enter. E então também será importante aqui. Mas essas são muito importantes, essas importações basicamente, para que o programa saiba que estamos usando esses tipos de dados, certo? Então, a lista, a ArrayList, o mapa e coisas assim. E o que podemos fazer agora é que podemos adicionar a este país à capital MAB também. Então podemos simplesmente dizer put e isso coloca novos valores. Então, por exemplo, a Alemanha seria Berlim. Espero que você soubesse disso. Vamos fazer outro. Então, vamos apenas duplicar isso algumas vezes. E vamos dizer França. Você sabe que um que é Paris, é claro, cedo direto, Itália, Wu agora fica interessante Roma, é claro. E então vamos ter um EUA, e isso vai ser Washington DC. Tão muito simples. Todas as coisas consideradas aqui, como você pode ver, eu posso colocar duas cordas, certo? Porque isso é o que eu defini aqui. Esses não precisam ser os mesmos. Eu poderia colocar em um ano inteiro, um flutuador aqui, eu poderia colocar uma string aqui, uma lista aqui. Qualquer coisa funcionaria. Isso não precisa ser o mesmo. Isso é muito importante. Eu também queria mencionar isso. E como agora obtemos um valor de um mapa? Bem, digamos que a linha de impressão do sistema. E então vamos dizer “ country to capital dot get”. E você pode ver que eu tenho que fornecer uma string. E o que eu vou tirar é, claro, uma string aqui, mas isso é o que eu tenho que fornecer. E então é isso que eu ganho com isso. Então, o tipo de retorno e eu coloco na Alemanha, e então Berlim será produzido, já que a Alemanha é a chave para o par chave-valor, Alemanha, Berlim deve ser bastante simples. Também posso perguntar se o mapa contém ou não uma determinada chave ou contém um determinado valor. Então posso dizer que a linha de impressão do sistema. E então só para que todos saibam o que estamos pedindo aqui contém a Alemanha chave. E então vamos dizer, ponto de país para capital contém chave, Alemanha, o que, claro , será verdade. Então vamos duplicar isso. Então vamos dizer que contém um valor. Assim, também podemos pedir valores, Londres, por exemplo. E então podemos chamar o método contém um valor aqui, passar e Londres aqui. E então, se nós apenas executarmos isso, devemos ver. Primeiro de tudo, aqui mesmo, taxa de Berlim é a capital da Alemanha e depois contém a chave. O alemão será verdadeiro porque ele contém essa chave e depois contém valor. Londres vai ser falsa porque é claro que não temos urina de Londres aqui como valor. Também podemos remover coisas de um mapa. Então, mais uma vez, sistema de saída, imprima linha e conecte-se para dizer, posso dizer país para capitalizar, remover pontos. E o mais legal sobre o Remover que você pode ver é que eu posso passar a chave ou também posso passar a chave e o objeto também. E então ele retornará um verdadeiro se isso tiver sido removido porque talvez esses não correspondam e você queira uma funcionalidade específica aqui. Caso contrário, você pode simplesmente passar a chave e, em seguida, você também receberá o retorno. Então você receberá uma última, última loja de ano de valor. Então isso agora deve dizer Paris. E depois disso, as marcas são, na verdade, como você pode ver, e depois que isso é basicamente removido deste mapa, essa é uma ideia muito interessante de mapas. Eles podem ser incrivelmente úteis. No entanto, é claro que às vezes difícil desse tipo abstrato de maneiras quando eu apenas mostro aqueles onde você pode realmente usá-los. Usando esses tipos de dados, às vezes pode ser, bem, não é uma ciência exata, certo? Então, às vezes você quer usar algo. Não tenho certeza se isso se encaixa. Mais uma vez, apenas experimente. Steve trabalha e então você vai ficar bem. E então, por último, mas não menos importante, o que vamos dar uma olhada nos sets. Quais conjuntos, como mencionei, são coisas que são muito usadas na base de código do Minecraft. E um conjunto é apenas uma coleção, uma coleção que não contém duplicatas. Bem, essa é a definição mais simples de um conjunto. É apenas uma lista ou uma coleção que não contém duplicatas. Então, um conjunto, por exemplo, de string, poderíamos ter isso como nomes de usuário, por exemplo, com cada problema que é igual a um novo HashSet neste caso, então você pode ver que isso também foi importado e agora isso se transformou em uma história aqui porque todos eles estão dentro, sob o pacote util. Então, na verdade, não tem muitas importações aqui. É meio que faz isso por conta própria. Isso é muito bom. Então agora temos um conjunto e, é claro, podemos adicionar a esses nomes de usuário adicionar pontos, por exemplo, trabalho de algodão. Ou poderíamos dizer que nomes de usuário dot add, nano tech aqui. E então podemos dizer, bem, ok, justo o suficiente, isso é muito legal, mas o que mais um conjunto faz? Bem, mais uma vez, se agora quisermos adicionar algo duas vezes, então você pode, por exemplo, dizer algo como nomes de usuário adicionar, digamos FV, certo? E então eu dupliquei isso, e quero adicioná-lo o mesmo nome duas vezes, certo? Na verdade, vamos receber oito falhas devolvidas. Aqui obtemos um verdadeiro, aqui temos um falso porque isso já está lá, a string já está dentro da coleção. E como não contém duplicatas, só podemos tê-lo uma vez. Se eu realmente tudo isso, você verá que o primeiro é verdadeiro porque claro que F ou V ainda não foi adicionado. E depois que ele for adicionado e tentarmos adicioná-lo novamente, teremos um retorno falso. Então isso é muito interessante. Em todos os conjuntos, você não pode realmente chamar coisas individuais dentro do conjunto. O conjunto é realmente uma coleção que deve ser usada em conjunto. E eu só queria apresentar gentilmente os sets aqui apenas para que você tenha ouvido falar sobre eles. Então, uma vez que os vemos dentro do jogo basicamente, ou dentro do código do Minecraft, você não será completamente pego desprevenido. Então, a última seção aqui, setas que você pode se deparar, certo? Então, isso é sempre uma coisa importante. Você pode apenas, vamos fazer isso. O descomentário eram setas. Acabei de ver onde os erros, por favor, não para terroristas isso, isso não seria bom. Vamos realmente copiar isso por uma questão de argumento e vamos mudar esse C para um pequeno c e n vai ficar bem. Portanto, o primeiro é o índice fora da exceção. Então, vamos fazer o seguinte. Vamos descomentar isso. E antes de tudo, esta é a lista de perguntas. Lá vai você. Não se preocupe. E se fizermos isso, você verá que obtemos uma exceção aqui, a exceção de índice fora dos limites. Portanto, esta é uma exceção muito, muito semelhante ao índice de matriz fora dos limites, a exceção é apenas com uma lista. Isso é praticamente tudo o que existe. Então, tentamos passar um índice o GetMethod que não existe para listas. Então, é claro, quando temos apenas dois elementos, o primeiro é do índice 0, o segundo é do índice um. Tão muito importante aqui que, claro, passar dois não funcionaria, certo? Então essa é a primeira exceção. E então, bem, a outra coisa não é realmente uma exceção, mas vai retornar um nulo. Então, se passarmos uma chave para um mapa que não existe, teremos um nulo retornado, certo? E isso pode levar a uma seta para baixo na linha. Então, se eu fizer isso, então você verá que se eu fizer isso, teremos um nulo na parte inferior aqui. E isso é basicamente certo, é claro, Malta, nós não temos isso em nosso país para a capital Mab. Isso realmente vai nos fazer retornar um nulo. Portanto, pode ser muito valioso ver se ela contém uma chave antes de realmente tentar obtê-la foi ótimo. Receber um nulo não é o fim do mundo. Claro que não acabou se você então, se você não espera que isso seja nulo ou você não lidar com isso como nulo possivelmente, então você pode ter alguns problemas. Bem, esses são alguns dos erros que eu definitivamente queria mencionar aqui também. Então, essas seriam, bem, a soma das coleções. Claro, há muito mais, há muitos mais tipos de dados que você poderia usar. Você sabe, não há apenas mapas e conjuntos da lista , há muito mais, mas, por enquanto, será suficiente para basicamente você começar. Então, isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se você o fizesse, eu agradeceria muito uma revisão sua. Caso contrário, verei você na próxima palestra. Então, sim. 24. (Java) de programação orientada a objeto explicada: Ou eu sou bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos falar sobre programação orientada a objetos. E como você pode ver, estamos realmente no PowerPoint. Neste caso. Na verdade, vamos ter um pouco de uma apresentação em PowerPoint aqui. Então, vamos realmente começar com a ideia do que é essa programação orientada a objetos? Bem, nesta palestra, vamos passar por um pouco da teoria e alguns dos termos que você precisará basicamente se familiarizar para saber o que é continuando e entendendo a linguagem ao conversar com pessoas que conhecem programação e quando eu continuo junto com isso, então especialmente na parte do Minecraft desta palestra ou neste curso, você está vou ver que basicamente sempre usarei os termos que são necessários para usar. Então classes, métodos, objetos, coisas assim, e você deve saber quais são essas. Então, a primeira coisa que podemos pensar é que tudo é um objeto. Ok, vamos armazenar isso como uma informação, como uma informação e podemos criar objetos personalizados com funcionalidade personalizada. Interessante, ok, e essas seriam chamadas de aulas. Então, uma classe é, podemos criar um objeto a partir de uma classe, ok, Interessante. E nas classes pode herdar a funcionalidade, que seriam métodos, variáveis de outras classes. E vamos ver dois exemplos basicamente da Teoria disso. E então, em palestras posteriores, vamos dar uma olhada em alguns exemplos práticos também. Bem, em primeiro lugar, vamos passar pelos termos muito importantes aqui. Portanto, uma classe ou classes são tipos de dados personalizados ou definidos pelo usuário. Mas agora chegamos ao ponto em que você pode criar seus próprios tipos de dados. E essas classes, então, basicamente, podem ser usadas como modelos para criar objetos. E essas classes incluem métodos e campos que são chamados de membros. Vamos dar isso um passo de cada vez. Portanto, uma classe é um tipo de dados personalizado ou definido pelo usuário que é muito legal. E isso inclui métodos e campos, sobre os quais vamos falar aqui. Esses são membros e como eles podem ser usados para criar objetos. Agora, o que é um objeto? Um objeto nada mais é do que uma instância de uma classe específica com dados definidos. Vamos ver um exemplo disso em apenas um momento. Então, isso ficará muito mais claro. Mas antes de tudo, vamos falar sobre os membros. Esses devem ser bastante autoexplicativos ou muito mais fáceis do que os objetos. Portanto, os membros de uma classe são um método ou um campo, e você também pode chamar funções de métodos. Agora, pessoas que estão um pouco mais em Java podem saber que isso não é estritamente necessário. Portanto, as funções são um pouco diferentes dos métodos. Para nossos propósitos, está totalmente bom. Algumas pessoas ainda dizem funções, mesmo que existam métodos, vai ficar bem e ninguém vai ficar louco com isso. Não precisamos ser muito pedantes nisso, certo? Portanto, métodos ou funções definem basicamente um comportamento específico para um objeto, e métodos podem ser chamados para objetos específicos. Então, um exemplo disso, que já vimos é algo como o método de tamanho de uma determinada lista. Claro, cada lista terá o mesmo método de tamanho. O que será retornado é específico para uma lista específica. Então, para esse objeto, mas essa é uma espécie de ideia geral, campos ou atributos, como eles também são chamados de nossas variáveis que são definidas na classe que armazenam alguns dados relacionados a essa classe. Então, por exemplo, se tivéssemos uma classe de pessoa que pudesse salvar uma string chamada name, isso também deveria fazer sentido e deveria ser bastante autoexplicativo como este exemplo aqui. E mais uma vez, tudo isso, é claro, também veremos ao vivo em ação, acredito que na próxima palestra vamos começar imediatamente a pular para aulas e objetos. Portanto, não se preocupe lá. Então, vamos antes de tudo dar uma olhada na ideia de herdar coisas. Então isso, eu quero, antes de tudo, prefácio com a ideia de que se você não conseguir isso completamente, está absolutamente bom. herança é muito complicada. Eu só queria mencionar isso para que você tenha ouvido isso uma vez antes. Mas a ideia é que possamos ter uma aula de animais, certo? E isso, na verdade, basicamente herda toda a sua funcionalidade e todas as suas variáveis até duas classes. Então, o animal de duas patas e a classe de animais de quatro patas, e estes estão relacionados da seguinte maneira. A classe animal é a superclasse do animal de duas patas e a superclasse para o animal de quatro patas. Enquanto o animal de quatro patas e as classes de animais de duas patas são subclasses da classe Animal. Você sempre pode ter apenas uma superclasse, mas, como você pode ver, você pode ter várias subclasses. E então aqui podemos ir mais longe e herdar ainda mais coisas e adicionar mais funcionalidades. Então você meio que vai de um muito genérico ou muito abstrato, muito específico, certo? Animal é uma categoria muito abstrata. Animal de duas pernas. Estamos começando a realmente entrar em coisas mais específicas, humanas e uma avestruz. Agora somos muito, muito específicos. Então essa é uma ideia que você pode pensar, certo? Então, vamos pensar em uma aula de cães agora, certo? Então, temos uma classe que é chamada de cachorro, e que pode ter alguns atributos ou alguns são campos, certo? O que vai ser uma foto, um nome e uma idade. E vamos ficar como, OK, tudo bem. Tudo bem, que há bom o suficiente para descrever um cão em particular. E agora queremos criar um novo cão. Então, queremos criar uma nova instância da classe de cães. Queremos criar um novo objeto. Bem, vamos fazer isso. Lá nós o temos. Neste momento, criamos um novo cão. Benji tinha sete anos, e aqui está uma foto muito fofa dele. Isso não é legal? Sim, se eu mesmo disser isso, acho que esta é uma foto muito fofa aqui, e este é um cão em particular, certo? Nós realmente não mudamos nada aqui. A única coisa que fizemos é que basicamente criamos um objeto. Quando voltamos aqui uma vez que cada cão tem uma foto, um nome e uma idade, e esta é uma instância específica ou um objeto particular da classe de cães. Agora vamos apenas criar outro. Por exemplo aqui, Gracie com cinco anos de idade e também tem uma foto muito fofa ali mesmo. Há, você pode ver que esses são dois objetos diferentes ou duas instâncias diferentes da classe Dog. No entanto, ambos são cães. Portanto, esse é o tipo de separação que eu quero passar quando se trata de classes e objetos, que a classe é o modelo. E depois que você cria um objeto específico, isso se torna uma instância dessa classe. Então isso às vezes pode ser um pouco estranho, especialmente para iniciantes. Mas não se preocupe de uma só vez. Na verdade, vamos começar a programar com essa estranha ou quando realmente colocamos isso em uso prático será muito mais claro. Tenho certeza disso, certo? Qual já seria o fim da palestra? Na verdade, a coisa mais importante desta palestra, deixe-me voltar rapidamente aqui é esta aqui, certo? Portanto, esse slide é provavelmente o mais importante. Na verdade, os slides também estão disponíveis para você como um recurso para que você possa baixá-lo também. Portanto, não se preocupe lá. Então você também tem acesso a essas duas fotos fofas de cachorro. Então, isso realmente vai ser uma grande vantagem, é claro. Caso contrário, isso seria para esta palestra aqui, como eu disse, um pouco mais de teoria e na próxima palestra que vamos colocar tudo isso em prática. Então, será isso para esta palestra aqui. Espero que você tenha achado útil e os neurônios são os novos. E te vejo na próxima palestra. Então, sim. 25. (Java) Classes e objetos Java: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra vamos basicamente aplicar a teoria que aprendemos da última vez. Na última palestra, vamos falar sobre aulas e objetos. Então, antes de tudo, é claro, precisamos criar uma nova classe, uma classe personalizada agora. E para isso, vamos entrar nessa janela do projeto bem aqui dentro do nosso pacote. Então este é o pacote, certo? Net ajudou o Monroe foi o pacote que criamos ou outro que criei. Espero que este seja o seu nome. Em seguida, no pacote names, clique com o botão direito do mouse em nova classe Java. E então você vai chamar isso de classe de cachorro, certificando-se de que a classe aqui está selecionada e pressione Enter. Agora, este ano, essa janela só aparece para mim porque eu tenho um repositório do GitHub associado a este projeto. Se você não tem isso, isso é absolutamente bom. Não se preocupe com isso. Então eu só queria mencionar isso. E agora, em vez desses colchetes encaracolados, oh, adicione membros a essa classe. Então, por exemplo, poderíamos adicionar alguns campos, certo? Então podemos dizer algo como adicionar, adicionar alguns campos, certo? E então vamos pensar apresentação do PowerPoint que vimos, certo? Tínhamos uma imagem de String pública. Estávamos pensando em uma foto. Vamos apenas dizer que uma string que está totalmente bem por enquanto, um nome de string pública. E então digamos que um número inteiro público, que é a variável idade. Agora isso está tudo bem por enquanto. Mais uma vez vamos ignorar o público aqui. Só temos que definir isso para público mais uma vez em um tempo muito, muito curto. Na verdade, vamos ver os modificadores de acesso. Então, essa é literalmente a próxima palestra também. E então vamos entender o que isso significa por enquanto. Temos que configurá-lo para público. E o que também podemos fazer é, por exemplo, alguém como um vazio público. E então vamos, por exemplo, que possamos fazer de campos e também métodos, certo? Então este é um método aqui, e isso é, é claro que isso era campos aqui. Então eu posso fazer algo nesse método, que é apenas por uma questão de argumento. Só vou dizer só nisso, neste momento. Ok, então agora isso está tudo configurado. Agora, o que estamos fazendo com a aula de cães dele, certo? Como estamos fazendo um novo objeto com isso? Bem, podemos fazer o seguinte. Você poderia dizer cachorro, certo? Logotipo. E agora isso pode, a princípio, podemos dizer algo assim, por exemplo. Agora isso pode, pela primeira vez, ser um pouco confuso. Talvez como esperar, mas eu pensei em você meio que deveria reconhecer isso, certo? Esta é apenas uma variável normal que declaramos aqui, certo? É apenas um tipo de cachorro. Agora, como eu disse, porque agora você está começando a usar classes personalizadas. Então, basicamente, tipos de dados personalizados. Isso pode ser um pouco estranho, mas isso é o mesmo que se eu fosse fazer isso, certo? Realmente, quando pensamos nisso, é apenas uma variável. Desta vez do tipo cão. E outra maneira que eu posso realmente inicializar isso é que posso dizer novo cão e você pode ver que ele realmente gera isso automaticamente para nós. E agora eu criei um novo cachorro. Portanto, essa é a ideia geral de como você pode criar um novo objeto. Então você precisa usar a nova palavra-chave, que já vimos anteriormente algumas vezes. Por exemplo, com o scanner, tivemos que criar um novo scanner. E agora isso também faz sentido. Scanner é apenas outro objeto ou outra classe que podemos instanciar um novo objeto ou uma nova instância de uma polegada pode basicamente usá-lo. Essa é uma espécie de ideia. Agora, a verdadeira questão é que tudo bem, como eu tenho esse cachorro aqui, mas como eu os campos, o que são, o que eles são agora? Bem, vamos apenas experimentá-lo. Escreva sistema, linha de impressão, Togo, nome do ponto, por exemplo. Vamos ver, bem, o que esse cachorro foi nomeado como um cachorro? Não, na verdade, o nome é nulo porque não atribuímos nenhum desses valores. Portanto, eles são todos nulos porque aqui usamos, à direita, usamos o construtor padrão padrão. Então, o que isso significa? Bem, o construtor é outra parte de uma classe que é muito importante, e isso não é classificado como membro neste caso, isso é outra coisa. Então, o construtor, como o nome sugere, é algo que constrói um objeto desse modelo, dessa classe, certo? Mas o construtor padrão, cada classe que você cria tem algo assim. Então, ele é escrito assim com um modificador de acesso. E então o nome da classe imediatamente seguido por parênteses, que não têm nada neles. E, basicamente, quase como um método normal, apenas sem um tipo de retorno ou melhor, o tipo de retorno é o mesmo que o nome. Você também pode pensar nisso assim. E este ano é o construtor padrão. E isso é o que estamos usando para este médico aqui, certo? Portanto, este é o construtor padrão agora. E o verdadeiro problema aqui é claro que você pode ver que nada acontece nele. Portanto, nenhuma dessas coisas tem nenhum valor atribuído a ela. No entanto, também podemos criar nossos próprios construtores. Agora, podemos criar um construtor personalizado. Então, por exemplo, cão público, string, imagem, nome da string e idade, escreva algo assim e então podemos atribuí-los. Portanto, essa imagem é igual a imagem, this.name é igual a nome, e essa idade do ponto é igual a idade. E você verá, de repente, tudo ainda funciona totalmente bem. Agora, a primeira coisa que você pode perguntar, o que é isso, essa palavra-chave? Bem, isso se refere ao objeto que estamos criando taxa. Então, por exemplo, você pode pensar nisso quando chamamos esse método Wolf. Se chamássemos isso, teríamos que chamar isso em um objeto específico. Então, toda vez que eu uso isso dentro desse método, esse objeto específico está basicamente sendo referido. Então você pode pensar nisso assim. Da mesma forma com o construtor. Quando eu uso isso, esse objeto específico que estamos criando agora está sendo referido porque o nome do parâmetro aqui tem o mesmo nome que o campo. Eles não precisam necessariamente, mas neste caso eles têm. Então, queremos usar essa ferramenta muito especificar, ei, este é o campo e como parâmetro. E agora o que eu posso fazer é em vez de criar um com o construtor padrão aqui, eu posso realmente fazer algo como, por exemplo, cachorro e Benji, digamos que é igual a novo cão, certo? E então você pode ver se eu espero um segundo aqui, basicamente posso dar uma olhada nisso. Aí está ele. Então, agora, na verdade, recebemos uma sugestão aqui, sem parâmetros ou string, string de imagem, nome, string ou int age. Então, na verdade, recebemos a sugestão aqui. Digamos Benji dot PNG, certo? Digamos Benji pelo nome e depois sete para a idade. E você pode ver que isso é praticamente o mesmo que apenas uma chamada de método normal, mas neste caso ele realmente cria um novo objeto. E então podemos fazer a linha de impressão do sistema. Agora o nome do ponto Benji, e então digamos Benji ponto h. E agora isso vai produzir Benji e um sete como você pode ver. Então, isso é realmente muito legal. Há mais uma coisa. Vamos apenas dizer, por uma questão de discussão aqui, quando temos muitos campos, certo? Às vezes, pode ser um pouco tedioso colocar todos eles aqui no construtor. Então, o que podemos fazer é também podemos clicar com o botão direito do mouse em gerar construtor. Então você pode selecionar todos os campos que deseja inicializar, você veria pelo construtor e dizemos, ok, e isso gera exatamente a mesma coisa que fizemos anteriormente. Eu queria mencionar isso porque às vezes isso pode ser muito útil, certo? Portanto, há muitas coisas aqui que podem ser geradas automaticamente. Portanto, tenha isso em mente também. Mas também vamos deixar outro escuro. Então, só para ilustrar isso, então o cachorro Gracie é igual a um novo cão, certo? Este é o ponto gorduroso PNG, Gracie, e acredito que Gracie tinha cinco ou cinco é bom. Agora, vamos realmente produzir isso também. Então eu estou selecionando este Controle C, Controle V para colá-lo e, em seguida, alterando a variável aqui e tipo de Benji para Gracie. E isso, claro, agora também funciona e terá valores diferentes. Então, mais uma vez, esses dois são invasões de cães, mas são dois cães diferentes. Portanto, existem dois objetos diferentes. E espero que a teoria da última palestra muito fácil para este exemplo ilustrativo aqui, uma vez que estamos realmente usando-a, espero que fique muito claro. E também faremos é mudar esse lobo que você está realmente para esse nome de ponto, apenas waft. Então o que podemos ver também é que quando chamamos esse método, mais uma vez, esse método em particular, nós realmente temos que chamar um objeto específico, certo? Então, na verdade, temos que salvar Benji dot, WAF ou ponto atrevido. Todos devem fazer sentido. E agora o que vai acontecer é que não será o mesmo para cada um deles, certo? Então Benji acabou de se mudar ou Gracie apenas Swift. Então, isso mais uma vez se refere ao objeto real em que isso está sendo chamado por assim dizer. Então essa é a ideia. E então uma última coisa que pode ser um pouco diferente ou um pouco estranha. É como, bem, espere um segundo. Benji dot age, certo? Certo. Posso apenas gostar de atribuir isso a alguma coisa? Sim, eu posso. Bem, isso é muito interessante, certo? De repente, certo? Benji se tornou 10 anos e você pode ser como, Espere, isso não é, isso não faz nenhum sentido, certo? São apenas sete eles. Isso não está certo, é sim, isso agora foi salvo. E isso é algo que vamos ver a próxima palestra quando se trata de modificadores de acesso. Porque tudo isso ser público basicamente significa que, bem, você pode alterar isso e acessá-lo de qualquer lugar no código. E isso às vezes não é o que queremos. Às vezes você quer restringir o acesso a certos campos, variáveis, métodos, todo esse jazz basicamente. E como eu disse, vamos dar uma olhada nisso na próxima palestra. No entanto, isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. E te vejo na próxima palestra. Então, sim. 26. (Java) modificadores de acesso (Java) (de acesso: Tudo bem, bem-vindo de volta à introdução do Java aqui para a manhã do Minecraft e nesta palestra, vamos analisar modificadores de acesso. Então você precisará de todo o código da última palestra. Não se preocupe, é claro, isso está disponível para você como um recurso. Então, definitivamente, dê uma olhada nisso e então, bem, vamos apenas pular direto para dentro. Então a ideia era que, bem, tínhamos todos os nossos campos aqui como público, certo? Então, tudo aqui era público. E estávamos pensando, bem, ok, então como vamos usar isso? Ou como poderemos não tornar alguns campos mutáveis ou como modificáveis aqui fora desta classe. Bem, vamos passar por todos os modificadores de acesso. Portanto, há público, há protegido, e há privado. Depois, há mais duas coisas que também veremos quais são estáticas e finais, bem, não são realmente modificadores de acesso, mas também são um tipo de modificadores que você pode colocar na frente dos campos e, ou métodos. Então, quando se trata de tornar o nome, por exemplo, protegido aqui, isso realmente não fará nada. Agora, a razão pela qual não faz nada é que um campo protegido ou um método protegido pode ser chamado no mesmo pacote. E porque o cão e a classe principal ou no mesmo pacote, ainda podemos nos referir a este campo aqui na palavra-chave protegida também funciona ou classes que se estendem a partir disso. Então, basicamente, os ácidos que herdam da classe dog agora também seriam capazes de usar a variável name. E a variável idade? Bem, vamos fazer o seguinte. Vamos tornar isso privado. E, de repente, podemos ver problemas relacionados, certo? Tudo está ficando louco. Todos estão surtando porque, de repente, podemos realmente acessar isso porque uma variável privada e só ser acessada na mesma classe, o que significa que não podemos acessar isso diretamente. No entanto, podemos fazer algo que será um método, retorna esse valor. Então isso é o que se chama guitarra. E o que podemos fazer é que podemos clicar com o botão direito Gerar e você pode ver que podemos realmente gerar getters e setters. Setters são praticamente a mesma coisa em que você define a taxa variável. Então, onde você pode basicamente definir isso e um getter é muito a coisa em que você obtém isso. Então eu posso selecionar a variável idade e dizer, ok, e ver que ela gera um método para nós inteiro público porque é claro que esse é o tipo de retorno aqui, obter idade. Então, essa é a maneira que você expressaria isso ou o nome disso geralmente era get e , em seguida, apenas o nome da variável ou do campo. E então retornamos a idade nesse método. E então, em vez de chamá-lo diretamente, podemos dizer ter idade na idade, idade. E agora aqui está a coisa muito interessante. Claro que isso não funciona. Não podemos atribuir algo a um método. Portanto, isso não funciona, certo? Então podemos dizer que não funciona. Portanto, não podemos atribuir um novo valor a essa variável de idade. Então essa é realmente a coisa legal. E então também podemos ter uma palavra-chave estática e final. Certo, o que é isso? Bem, a estática vai ser muito interessante. Então, quando eu tiver um int estático público, e vou chamar isso de cão para multiplicador de ouvido humano. Multiplicador, que é igual a sete se não me engano aqui. E isso é o que podemos pensar disso assim. Todo cão tem que ter um campo específico para eles, que é esse multiplicador. Quero dizer, se somos realmente honestos, não realmente, certo, quando pensamos nisso. O médico aqui, dr. multiplicador do ano humano realmente é algo que funciona para todos os cães. Exatamente. É por isso que é estático. É variável estática ou um método estático e, na verdade , é chamado apenas de classe e não requer que objetos específicos sejam criados. Então o que eu posso fazer é, por exemplo, em vez de chamar Benji que ELE, eu posso dizer cão, ponto, ponto, humano, médico, multiplicador do ano humano. Você pode ver que eu chamo isso na classe real e não no objeto. Então isso é uma coisa muito interessante. E isso pode estar quebrando seu cérebro um pouco aqui, porque antes de tudo, entrar na estática é um pouco estranho e parece muito contra-intuitivo à primeira vista, talvez, mas não se preocupe. Quando estamos realmente usando isso, vai ficar tudo bem. E a essência geral é que, você sabe, se algo estático geralmente é algo que é o mesmo para todos os objetos, certo? Porque mais uma vez, o Dr. multiplicador do ano humano não muda de cão para cão. Agora, vamos ignorar o fato de que talvez isso mude se houver raças diferentes e coisas assim. Vamos ignorar isso. É só um exemplo aqui, claro, certo? E então a questão também é, bem, esperar um segundo. Isso realmente não precisa mudá-lo, porque agora temos o mesmo problema mais uma vez avalie para que cães, seu multiplicador e, de repente, seja igual a dez. Podemos simplesmente mudar isso e é como se isso não fosse realmente inteligente, certo? Isso não precisa acontecer. Bem, felizmente, há a palavra-chave final também. E isso faz com que se eu realmente pressionar Control Z para voltar, você pode ver que não pode atribuir um valor a uma variável final. Como quando é uma variável final, o valor nunca poderá ser alterado depois de ter sido atribuído. Isso também é muito interessante. No entanto, há, é claro, uma diferença distinta entre uma taxa variável privada e uma final. Porque uma variável final poderíamos, na teoria, mudar, certo? Poderíamos dizer algo como, por exemplo, vamos apenas tornar um público e público vazio. Aniversário público vazio, certo? Para um cão, onde dizemos idade mais mais. Mas isso ainda funciona mesmo sendo privado, podemos alterar essa variável. Nunca poderíamos alterar essa variável quando for final. Então essa é a diferença lá, o que é esperançosamente compreensível nesse sentido, certo? Então, vamos dar outra olhada no seguinte, certo? Então também podemos dizer algo como, Bem, quero dizer, vamos apenas adicionar um, vamos adicionar mais uma coisa, algo como um int público. Então, GetAge em anos humanos, certo? Onde podemos usar o multiplicador aqui que vamos retornar a variável idade vezes o médico aqui, médico humano, multiplicador do ano humano ali mesmo. Agora podemos simplesmente chamar isso geralmente você pode, claro, também dizer cão pontilhar isso. Não temos que fazer isso porque estamos dentro da aula de cães, então podemos simplesmente chamá-lo sem isso. Isso é muita preferência pessoal, apenas se você quer ou não fazer isso. Mas o que podemos dizer, por exemplo, é que podemos dizer Benji dot ter idade em anos humanos, e isso será então, o que é isso? 49? Sim, 49. Lá vai você. Tão fácil o suficiente. Essa é uma espécie de essência geral. Temos público, protegido e privado para os modificadores de acesso. E depois também há estática e final. E definitivamente seremos, vamos encontrar todos aqueles em palestras futuras, especialmente quando entrarmos em modelagem de microondas, isso será muito relevante aqui, especialmente algo como a palavra-chave final e a palavra-chave estática, essas serão muito usadas. Mais uma vez, se eles não estão um pouco claros, tudo bem. Não se preocupe. Quando você começar a trabalhar com eles, ele ficará muito mais claro. E mais uma vez, posso apenas aconselhá-lo a experimentar um monte de coisas. Apenas acenda a inteligência. Faça um monte de aulas e experimente um monte de coisas. Faça algumas aulas, faça alguns campos, um monte de coisas. Você não pode quebrar nada. Na verdade, não. Portanto, é apenas uma questão de estar aberto a experimentar basicamente. Então esse é um conselho que eu posso te dar. Mas, de outra forma, isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 27. (Java) Insuficiência e Inheritance (Java) (a de (Java) (de (a de que de de: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra vamos falar sobre herança e polimorfismo. Bem, em primeiro lugar, um polimorfismo e herança para palavras muito grandes, certo? Mas, no geral, eles são conceitos são bastante simples, especialmente o polimorfismo não é tão louco de um conceito na verdade? Agora, outra isenção de responsabilidade que eu quero dizer logo fora do portão é que , como este é um exemplo, o tipo real de conceito pode não ser 100% transparente, o que é absolutamente bom. A propósito, isso é algo que mais uma vez, tem que ser construído apenas experimentando um monte de coisas, certo? Normalmente tenho o mesmo aqui. Esqueci. Eu vejo. Eu me lembro. Eu faço. Eu entendo. Então sempre tem que haver alguma coisa que acompanhe isso. Seja qual for o caso. Digamos que, por uma questão de argumento de que alguém diz: Quer saber, eu realmente quero uma aula de gatos também porque eu não sou uma pessoa de cachorro, tudo bem. Está tudo bem. Bem, vamos adicionar uma aula de gato aqui também. Então, uma nova classe, gato. E lá vai você. Agora, o que você perceberá rapidamente é que, bem, como sejamos honestos, o gato renal também deve ter uma foto , um nome e uma idade. E você pode ser como, bem, quero dizer, vamos apenas copiar esses campos. E então você pode ser como, bem, eu também preciso ter idade que o getter e depois o lobo, talvez o bebê e Mimi Chao e você chegue a um ponto em que você está copiando sobre um monte de código e geralmente abar muito código é um sinal de que você pode otimizar algo. Agora, a otimização prematura é o caminho para o inferno. Eu entendo isso. No entanto, às vezes isso só faz muito sentido em que você tem como isso copiado, copiado, copiado, e é como, vamos apenas fazer um método ou uma classe fora dele ou outra coisa. E essa outra coisa realmente será uma superclasse para o gato e um cachorro sendo a classe de animais. Então, vamos fazer uma nova classe chamada animal, e isso agora vai guardar isso. Então, vou cortar isso com o Control X e o Control V para colar isso aqui. E agora, de repente, o que podemos fazer é estender a classe de cães pela classe Animal, o que significa que, vamos fazer certo? Então, vamos herdar tudo do animal aqui. Vamos dizer que estende animal, e isso agora é herança. Então, a classe de cães agora é a subclasse do animal, e o animal agora é a superclasse do cão, o que significa que tudo aqui foi herdado. Agora eu posso realmente excluir isso literalmente. A única coisa que vai ficar vermelha será a idade, porque eu realmente tenho que tornar isso protegido aqui para que ele possa ser acessado na subclasse. Mas nós vimos isso na última palestra em que eu disse isso quando é uma variável protegida, e então você pode realmente acessá-la da subclasse também. Então essa é uma espécie de ideia. Vamos nos livrar de alguns desses comentários aqui também. Também podemos nos livrar do construtor padrão que também não é mais necessário. Então agora temos essa classe de animais, certo? E isso é muito legal. Agora você pode ver que b-a, esta classe Dog, tudo aqui está sendo definido. No entanto, queremos garantir que todos, que todas as classes que realmente herdam da classe Animal também funcionem. Então, vamos fazer um novo construtor também. Então clique com o botão direito do mouse, gere um instrutor, certificando-se de que tudo aqui esteja selecionado e pressione OK. E então seremos imediatamente recebidos com uma flecha aqui. Porque se passarmos o mouse sobre isso, você pode ver que não há construtor padrão disponível em um animal net com zoo. O que isso significa? Bem, quando você realmente adiciona um construtor específico aqui, esse não é o construtor padrão. O construtor padrão não funciona mais. Então, uma vez que você tenha um construtor ou seja, não é o construtor padrão, você terá que adicioná-lo manualmente novamente. Então eu poderia, por exemplo, dizer animal público, certo, sem nada nele, certo? Então, algo assim. No entanto, é claro que isso não acontece. Agora, você sabe, que mais uma vez, nós realmente não queremos isso. Portanto, isso será excluído e , em seguida, o construtor padrão não funciona mais. E agora o que temos que fazer aqui? Bem, o que podemos fazer é que podemos chamar o super-herói, e isso basicamente chama o construtor. Então, podemos realmente colocar em PI como você pode ver, na verdade, apenas para dizer, vamos apenas pegar todos os parâmetros aqui e colocá-los em ano. E agora esse super agora está chamando o construtor Animal aqui. Então, isso é realmente perfeito neste caso. Então, outra coisa, talvez por exemplo, tanto a idade get quanto o aniversário também poderia estar na aula de animais, por exemplo. Isso também funcionaria totalmente bem. E o resto aqui está realmente totalmente bem. Vou me ajustar, fazer isso um pouco diferente. Então eu geralmente quero os construtores no topo da classe, certo? Então, primeiro vêm os campos e depois os construtores e depois todos os métodos e coisas assim. Embora a ordem, é claro, seja algo que depende completamente de você, mas esta geralmente é a convenção 0. Agora, o que aconteceria se eu agora dissesse, bem, o gato agora também estende a classe de animais. Vamos, vamos receber um erro aqui, que é que não há construtor padrão disponível em animal. E então temos essa solução possível, que é o construtor de criação combinando super, que é algo que vamos ver muitas vezes. Porque se você clicar nisso, você simplesmente receberá um novo construtor aqui com todos os parâmetros necessários para chamar o construtor de sua superclasse. E isso é praticamente isso. Isso é muito legal. E agora podemos realmente criar uma nova classe. Você pode ver tudo aqui funciona. Então podemos dizer que bigodes de gato é novo gato, certo? Tão novo gato aqui. E isso é, por exemplo, então bigodes ponto PNG. E então o nome vai ser bigodes, certo? E então talvez, talvez houvesse 12 anos ou algo assim. E então podemos simplesmente chamar, por exemplo, bigodes ponto e você pode ver que eu posso chamar tudo para ganhar idade. Agora eu realmente tenho acesso à variável idade aqui. Este é simplesmente o caso porque estamos no mesmo pacote. Isso geralmente não deve ser o caso. Eu só queria mencionar isso porque geralmente quando você realmente está estendendo uma classe em particular é muito improvável que você esteja no mesmo pacote. Então só queria mencionar isso. E isso é, bem, eu não diria uma limitação, é apenas uma realidade basicamente. Mas agora a verdadeira questão, comunicando, mas agora o que é tão interessante em ter isso? Bem, vamos pensar sobre isso, certo? Então, temos o método lobo aqui, certo? Vamos apenas excluir isso ou, na verdade vamos ser uma taxa ainda mais inteligente. Vamos apenas copiar isso ou recortá-lo, certo? E depois adicione isso ao animal. Agora, primeiro de tudo, você vai dizer, espere um segundo, nem todos os animais, Wolf está certo. Sim, isso é justo o suficiente. Então, vamos chamar isso faz som. E então podemos dizer esse nome, apenas, digamos que acabou de fazer um som, mas não podemos fazer isso. E outra coisa realmente interessante é que isso é definir a classe de animais. No entanto, ainda posso dizer algo como bigodes, som adâmico, certo? Então, como bigodes é um gato e um gato é um animal, ainda posso chamar todos os métodos públicos aqui. E se eu chamar isso, você pode ver bigodes apenas fazendo um som. Então isso é muito legal. Mas agora vamos sobrecarregar isso porque enquanto cada animal faz um som, um gato faz um som diferente de um cachorro, certo? Então, o que podemos fazer é, na verdade, substituir a implementação desse método nas subclasses. Então isso é bastante frequente, legal. Mas o que podemos fazer é começar a digitar o nome real do método como você pode ver, ou podemos escrever uma substituição, certo? Podemos começar a escrever isso. E então você pode ver todos os métodos possíveis que podemos substituir. Vamos, é claro, escolher o método de som de mixagem aqui e ele receberá essa anotação adicionada. Isso não é estritamente necessário, no entanto, é muito valioso para você se você tiver isso e eu definitivamente recomendo mantê-lo, porque se você passar pelas aulas reais, você pode ver muito claramente, Certo, então isso foi substituído de uma de suas superclasses. Então isso é muito importante. Então, na verdade, vou pegar este. Então, eu realmente vou pegar isso e apenas modifiquei um pouquinho, certo? Então eu vou dizer isso, só eu fora. Digamos que vou fazer o mesmo. Copie isso para o cachorro aqui. E eu vou dizer esse nome, apenas devagar, temos algo diferente aqui. E o que você verá se eu realmente chamar, por exemplo Benji dot fazer som. E eu também vou para Gracie, não faça som. O que acontecerá agora? Bem, muito interessante o suficiente. Miau, woof, woof. Então, como você pode ver, os métodos substituídos agora estão sendo chamados em vez daquele pela superclasse real. Então isso é muito frequente, legal. E agora isso é uma espécie de ideia de herança, certo? Podemos herdar ambos os métodos e campos Europa só faz com que seja tão antes de tudo, tudo é um pouco mais agradável separado, e então também não temos código duplicado. Agora, a verdadeira questão é: o que é polimorfismo? Polimorfismo é uma palavra grande para um conceito muito, muito fácil de entender. Na verdade, no conceito muito fácil de entender é que um cão é simultaneamente um cão e um animal deve fazer sentido, certo? Então você tem uma aula de cachorro é um cão ou um objeto do tipo? O cão é tanto o cão quanto o animal são suficientes. Certo. O que isso significa? Bem, eu posso salvar isso em um animal, certo? Então eu posso salvar animais, animal é igual a um novo cão. Vamos salvar Jenny dot PNG. Jenny, talvez a Guiné seja como 15, toda escura, mas tudo bem. E agora o que aconteceria se eu fizesse isso em um ponto mole fazer som. O que vai acontecer agora? Bem, quero dizer, é um animal. Então, obviamente, deveria dizer que Jenny acabou de fazer um som, certo? Porque essa é a coisa mais lógica. Espere um segundo no fundo, é um cachorro. Exatamente. Então ele se mudou. Porque apesar de salvarmos isso em um animal, polimorfismo faz com que o objeto do cão possa assumir várias formas, ou qualquer objeto realmente possa assumir várias formas. Isso é o que basicamente significa polimorfismo. Vários fóruns em uma tradução muito solta, digamos. E a grande coisa que eu também posso fazer é fazer uma lista de animais, por exemplo, raiva, animais legais. E posso fazer disso uma nova ArrayList apenas por uma questão de discussão. Vamos importar isso. E então eu posso dizer animais, não adicionar. E eu não preciso apenas adicionar animais porque é claro que Benji é um cachorro, mas o cão também é um animal. E então também posso adicionar Gracie, e então também posso adicionar bigodes. Então, como você pode ver, mesmo que todos sejam salvos como animais, certo? Se eu quiser recuperá-los, animais, ponto pegue um, por exemplo, faça som. Então, isso faz deles o trabalho deles, certo? E o método get aqui leva você de volta um animal. Mas, mais uma vez, vimos que chamar um método sobre isso realmente causou, digamos, o método mais específico que ele pode. Então, mesmo que isso esteja sendo salvo como um animal, Gracie está sendo salvo como animal aqui, o som do microfone fará com que Gracie se mova. Então isso é muito legal. Mais uma vez, se você não vir claramente o aplicativo para isso, tudo bem. Esta é uma introdução justa muito abstrata para isso, é claro. No entanto, isso seria, por enquanto, para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 28. (Java) Interfaces e cursos abstratos (Java) (de atama): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra vamos dar uma olhada em interfaces e aulas abstratas. Então, na verdade, vamos começar com a aula abstrata primeiro porque esse é um exemplo muito ilustrativo, na verdade. Então, o que podemos pensar é o seguinte. O que é um cachorro? Bem, quero dizer, você já viu que viu um cachorro antes? Sim, claro. Quer dizer, seja como uma foto ou em algum lugar do mundo você pode ter visto um cachorro. Você já viu um animal antes? Agora você pode dizer que é bem, quero dizer, eu vi um cachorro antes dele, mas não, não. Você já viu um animal antes? E você vai se encontrar e se fundir, certo? Porque é como, o que é um animal no momento, o que podemos fazer é que podemos dizer animal, digamos que um é igual a um novo animal, certo? Com, por exemplo, exatamente como x, p e g x e isso como 10 anos ou algo assim. E então você pode ser como, como é um animal? O que isso representa realmente taxa em animal é um conceito muito, muito abstrato. E aulas abstratas, certo? Veja a congruência lá, certo? Então, na verdade, não devemos ser capazes de criar novos objetos da classe Animal porque o que realmente é um animal? As coisas podem ser classificadas como um animal, mas o animal objeto não existe, certo? Então o que vamos fazer é fazer uma aula abstrata pública com isso. E você imediatamente vai ver que temos um problema relacionado, o que, claro, é exatamente esse aqui, porque não podemos criar um novo animal se for abstrato, você pode ver que animal é abstrato, não pode ser instanciado, o que significa que não podemos criar objetos na classe abstrata no gato e no cachorro. Literalmente, nada mudou porque, claro, o animal ainda está em tudo aqui, então funciona. Agora, o que também podemos fazer e isso é muito legal para uma aula abstrata é que podemos tornar certos métodos abstratos. Por exemplo, o método de som do microfone aqui. Então, podemos basicamente apenas, vamos excluir isso. E então o que vai acontecer é que podemos dizer público, abstrato, vazio, fazer som, certo? E agora olhe para isso, acabamos de terminar. Então, ainda temos que ter um ano de assinatura de método normal. No entanto, a implementação real é deixada para as subclasses. E se não substituíssemos isso, o que você pode ver é também acharia que cão de classe deve ter declarado abstrato. Então, ou isso também tem que ser uma classe abstrata ou temos que implementar os métodos abstratos do animal que podem passar o mouse sobre isso nos métodos de implementação e , em seguida, isso também será adicionado. Então eu vou voltar com o Control Z aqui e depois tudo funciona bem. Então essa é uma espécie de ideia de uma aula abstrata. E uma interface é amina, algo muito relacionado a isso também. Então, o que vamos fazer é apenas adicionar uma interface, então uma nova classe aqui, e então podemos selecionar a interface. Vamos chamar isso de interface de pétala e a interface comestível IP. Você está em interfaces. Também definimos assinaturas de um método. Então vazio, animal de estimação Por exemplo, taxas de símbolos como este, e é isso. Portanto, nenhum modificador de acesso, apenas isso. E se essa interface for implementada agora, por exemplo, nos implementos certos do gato, temos o direito, então eu palatável do que o que você verá é um erro muito semelhante ao anterior. Implemente métodos, o método e o ego. E agora eu tenho que ter algum tipo de implementação nesta classe de gatos. Por que temos interfaces e classes, você sabe, eu não poderia simplesmente fazer outra aula? Animal comestível e coisas assim? Sim, claro, isso também funciona. Mas a limitação aqui é que você sempre pode se estender apenas de uma classe. No entanto, você não pode implementar várias interfaces diferentes. Então essa é realmente a coisa interessante aqui. E então também a interface é basicamente o que o nome sugere. É um permite que você faça interface com algo de uma maneira particular. Então, quando algo implementa uma interface, você meio que tem um, quero dizer, você poderia pensar nisso como um contrato não escrito que tudo dentro dessa interface é definitivamente tem um certo implementação. Então, por exemplo, eu poderia dizer algo como, você sabe, apenas esse nome era animal de estimação, algo assim, certo? E então eu posso simplesmente copiar isso apenas por uma questão de argumento. Eu também vou implementar isso no cachorro aqui. Então eu pedal e vou acrescentar isso e então vamos dizer algo como foi arranhado e arranhado atrás das orelhas, por exemplo, certo? E agora o que posso fazer é em vez de, por exemplo, fazer uma lista de animais, agora eu poderia, por exemplo, também fazer uma lista de iptable, certo? Então agora temos esses animais de estimação avaliam nova ArrayList disso, e podemos adicioná-los também, certo? Adicionar pontos de animais de estimação. E então vamos apenas dizer Benji, e então vamos apenas dizer bigodes, certo? E agora podemos fazer um zoológico se quisermos. Isso é muito legal. E isso não importa. Mais uma vez, com polimorfismo, não importa se eles são salvos como eu pétalas. Mais uma vez, sua implementação real real está sendo chamada Quando deveríamos ligar, por exemplo, Pets dot obter um. Então o que aconteceria é que, claro , a implementação real está sendo chamada de bigodes foi remendada em vez de bigodes foram arranhados atrás das orelhas. Essa é uma espécie de ideia geral aqui. Mais uma vez, interage classes abstratas. Uma espécie de na mesma veia que a herança e o polimorfismo em geral. Onde pode ser um pouco estranho, porque nesses exemplos, às vezes é difícil realmente passar pela ideia. Mais uma vez, experimentar um monte de coisas realmente pode ajudar ou seguir as tarefas, também um esforço que vale a pena. Mas, de outra forma, por enquanto, isso vai ser para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. E te vejo na próxima palestra. Então, sim. 29. TARde 3: Jogo com trivia com cursos: Tudo bem, Bem-vindo à terceira atribuição aqui para a introdução do Java. E esta é, na verdade, uma tarefa bastante simples. Como você pode ver, não é tão longo. Mais uma vez, o tempo que leva e faz isso pode ser redondo cerca uma hora ou mais, como geralmente uma estimativa muito conservadora também. Então, há um pouco de espaço de manobra que eles são, você pode ser capaz de fazê-lo em 30 minutos, certo? Não se preocupe nada. Mas, por enquanto, vamos passar por aqui. Então jogo trivia com classes e objetos. Então, mais uma vez, queríamos o mesmo jogo de trivia que temos feito nas duas últimas atribuições também. Eu basicamente quero que você modifique os jogos de trivia que ele usa as aulas também. Agora, isso pode ser de qualquer forma, forma ou forma que possa ser o caso. Pense em como você pode fazer algumas aulas personalizadas que, você sabe, salva as respostas e as perguntas podem estar juntas. Talvez você possa usar uma lista, algo assim. Depende realmente de você como você quer estruturar isso. Mas pense em como você pode tornar isso mais fácil com classes e objetos e, em seguida, tente isso. É claro que, mais uma vez, a solução estará disponível para você assim que você terminar, eu sugiro realmente pegar uma rachadura e realmente experimentar isso. E acho que te verei na solução. 30. SOLUÇÃO 3: jogo trivia com cursos com: Tudo bem, bem-vindo à solução para a terceira tarefa aqui. E bem, quero dizer, acho que vamos dar uma olhada. Você pode ver que eu tenho apenas duas classes, uma aula de jogo de trivia e uma aula de trivia. E a classe de jogo trivia basicamente contém toda a lógica e o loop do jogo. E a classe trivia contém as perguntas e as respostas. Então, vamos dar uma olhada na classe trivial. Primeiro de tudo, deixe-me ampliar um pouco aqui para que possamos ver que tenho uma pergunta de string, uma resposta de string e apenas um construtor que passa em ambas as variáveis de encolhimento aqui. E então eu tenho um monte de métodos aqui, certo é a resposta correta basicamente coloca um booleano e também garante que tudo esteja em letras minúsculas. Portanto, a entrada é realmente colocada em minúsculas, no entanto, que você pode basicamente colocar letras maiúsculas e ainda conta como a resposta correta. Aqui temos a pergunta impressa, a resposta de impressão. Também validamos a resposta que, em seguida, traz uma resposta correta, ou essa foi uma resposta incorreta também. E esta é praticamente a classe trivia. Mais uma vez, se isso não se parecer exatamente com o seu, tudo bem. Este é apenas um exemplo de como fazer isso. E, em seguida, o mesmo com a taxa de jogo trivia. Temos uma lista de curiosidades aqui. Então essas são todas as perguntas basicamente que estão sendo preenchidas aqui. Então, isso é chamado, desculpe, no método de início do jogo, certo? Então esta é a primeira coisa que acontece, lista de curiosidades preenchidas. E este é o donut aqui , onde acabamos de ter um novo ArrayList e , em seguida, adicionamos um monte daqueles triviais ali mesmo a esta lista real aqui. E isso é muito legal porque isso agora também pode ser feito através de uma leitura, de um arquivo ou, você sabe, baixando coisas da internet. Portanto, esse método aqui pode ser facilmente substituído por outra coisa. E esse é realmente o poder quando você faz isso separadamente nessas classes, logo antes de termos essas variáveis de string individuais, não havia como mudar isso com muita facilidade. Nesse caso, poderíamos mudar esse banco de dados de madeira para isso. Você poderia colocar, como eu disse, algo na internet. Você poderia fazer quase qualquer coisa, lê-lo de um arquivo. E isso é realmente o que você quer fazer com as aulas. Você quer tornar esse tipo de genérico no sentido de que você pode facilmente adicionar e subtrair coisas dele. Normalmente, adicione, claro, certo? E depois há um monte de outras coisas aqui também, certo? Então, o loop do jogo é a principal coisa em que temos esse loop while infinito aqui, exatamente onde passamos por cada uma das perguntas, validando as respostas obtendo a entrada do usuário e, em seguida, a pontuação se a resposta estiver realmente correta. E então vamos apenas imprimir a pontuação após cada uma das perguntas. Então, no final aqui, perguntamos Ei, devemos abortar o jogo? E se o usuário disser que sim, acabamos de sair dele e imprimir a pontuação final no final do jogo também. Isso é muito legal. Todas as coisas consideradas, isso é praticamente tudo o que você realmente precisa. Mais uma vez, se sua resposta for diferente, não se preocupe. Mas espero que você tenha essa resposta que você pode percorrer e tentar entender, ok, bem, como eu faria isso? Por que isso foi feito? Você sabe, métodos, ok, são aulas muito interessantes. Então essa é uma espécie de ideia aqui. Mas para essa solução, seria isso. E espero que você tenha achado isso útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 31. TARde 4: sistema de gestão do banco: Tudo bem, Bem-vindo à quarta tarefa aqui para a introdução do Java. E nesta tarefa, você deve criar um sistema de gerenciamento bancário. Agora, no geral, isso pode antes de tudo parecer muito complicado, mas não se preocupe. Vou orientá-lo pela ideia que tive aqui. Portanto, o sistema de gerenciamento bancário deve ter algo como esses componentes, uma pessoa, um banco e uma conta corrente. E, em seguida, para abrir uma conta corrente, você deve ir através de um banco, bem nele pode exigir um certo depósito inicial aqui. E os componentes individuais ou classes que você tem direitos de que uma pessoa pode ter primeiro, meio e sobrenome e idade. Talvez seja algo como um número de previdência social não é necessariamente necessário, mas você sabe, algo assim. Um banco pode ter uma lista de clientes. Suas contas correntes podem ser uma montagem de excesso máximo, algo assim. E então uma conta pode ter o valor atual e os métodos para retirar e depositar dinheiro em geral. Essa é uma espécie de ideia geral. Há várias maneiras pelas quais você pode abordar isso. Então, estou muito interessado em ver o que você inventou. E, claro, a solução estará mais uma vez disponível para você. Acho que isso provavelmente é um pouco mais difícil. Eu imagino que algo como 1,5 horas é provavelmente melhor reservar para isso, para que você possa realmente cavar e tentar entender e fazer algo bem legal. Então, boa sorte. 32. SOLUÇÃO 4: sistema de gestão do banco: Tudo bem, bem-vindo à solução para a quarta tarefa. E como você pode ver, temos três classes diferentes, praticamente como eu disse na tarefa real. E bem, vamos passar. Portanto, temos uma classe pessoal que é bastante simples, leia primeiro, meio e sobrenome, e uma idade ou privada desta vez, e basicamente acessível via guetos aqui. E então também temos um booleano aqui, que basicamente retorna se uma pessoa é ou não mais velha do que o fornecido aqui, que é muito interessante. E a conta aqui também é interessante, certo? Temos um balanceado, temos o ID da conta. Neste ponto não é realmente usado tanto, mas é muito possível que você possa fazer algo com isso também e, em seguida, um titular da conta também. E isso é usado no banco para basicamente obter uma conta específica aqui. Então podemos ver alguma vez ter uma lista de contas, certo? E a maneira como podemos obter uma conta é obter conta por pessoa. Mas é assim que eu pessoalmente agora para obter as contas aqui. E o resto é praticamente a conta bancária, certo? Então, basicamente, se você pode abrir essa conta, é esse o caso? E basicamente valida se alguém tem ou não 16 anos ou mais de 16 anos, e também se o depósito mínimo foi realmente atingido. Na verdade, há um pequeno bug aqui, certo? Nesse método, isso é muito interessante. Você pode tentar encontrar isso sozinho. Apenas um pequeno exercício interessante também. Mas, caso contrário, você sabe, no geral, isso é mais uma vez apenas um exemplo disso. Podemos dar uma olhada nisso, certo? Então o que vamos ter é que eu tenho algum código aqui, então nano tech não tem idade suficiente para abrir uma conta bancária e, em seguida, dez, digamos euros ou dólares não são suficientes. Precisamos de pelo menos um 150 e, na verdade, obtemos o saldo da conta de Maria, que é 2000. Então, tentar retirar 3000 não funciona porque o valor da retirada é, na verdade 500 ou o excesso basicamente. E é por isso que isso não funciona. Então essa é uma espécie de ideia geral aqui. Mais uma vez, há muitas maneiras de fazer isso se parecer completamente diferente do seu, mas você ainda funciona, tudo bem. Independentemente disso, espero que este tenha sido um exercício útil ou tarefa útil dois, você termina e eu te vejo na próxima palestra. Então, sim. 33. Cursos (Java) (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos olhar para a aula anônima. Então, o que é uma aula anônima? Bem, quando herdamos de alguma coisa, então pensamos na aula de cães, certo? Isso tinha um nome, certo, e herdado da classe animal. E agora o que podemos fazer é, por exemplo, podemos fazer uma pessoa aqui, certo? Então, eu ainda tenho a classe pessoal da última tarefa. Por exemplo, o pessoal é igual a uma nova pessoa, mas é tão nano ataque e oito anos de idade, digamos apenas por uma questão de discussão aqui. Agora, isso está tudo bem. Se agora eu quisesse uma aula que ampliasse essa classe de pessoa, que é um gerente. Agora, a única coisa que vamos fazer é, na verdade apenas fazê-lo para que, quando você receber o nome completo, você também vai ter o nome como Gerente impresso . Certo, então, como faríamos isso? Vamos fazer uma nova aula, certo? E tudo isso. Bem, vamos apenas dizer que na verdade só precisamos desse. Então, o que podemos fazer é fazer uma aula anônima. Então podemos dizer que o gerente de pessoas é igual a uma nova pessoa. Mas vamos apenas dizer John Smith, certo? Digamos 42. E então acabamos com isso. Agora, o que poderíamos fazer em vez de terminar isso com um ponto-e-vírgula, depois de terminarmos, vamos realmente fazer um colchete sagrado e acabar com o colchete encaracolado final com um ponto e vírgula. Você pode ver que não há flechas aqui. Porque dentro daqui agora criamos essa classe anônima porque é uma classe que estende a classe pessoa. No entanto, ele não tem nome, portanto, é anônimo. E quando podemos fazer é, você pode ver se eu começar a escrever uma substituição aqui, eu posso realmente substituir tudo o que está dentro da classe de pessoas que é sobregravável. Prefiro exemplo, posso dizer fullname e, em seguida, posso dizer algo como Gerente e, em seguida, obter o nome completo. Então, agora é isso que essa classe anônima em particular faz. E então eu posso, se eu usar o sistema da linha de impressão, por exemplo, nano dot obter o nome completo. E então eu também posso fazer o mesmo para o ponto gerenciador getName. Você verá que o nano só vai ser nano ataque. E então ele vai ser o gerente John Smith porque adicionamos esse gerente aqui. Este exemplo pode não ser o mais ilustrativo. Acho muito difícil mostrar a vocês um exemplo muito ilustrativo de aulas anônimas. Geralmente é o mais longe em você, você sabe, com interfaces e herança e coisas assim, torna-se muito difícil se você não estiver em um ambiente muito, em um ambiente real onde você realmente tem alguns classes e algumas funcionalidades. Mas isso é definitivamente algo que veremos na seção de modelagem do curso também. Porque há muitas coisas aqui que serão necessárias para isso. Mas seja qual for o caso, pelo menos você já viu isso, mesmo que não vamos entrar em muito mais detalhes aqui, espero que você tenha achado isso útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 34. (Java) de barras e de idiomas avançados (de de novo..: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta breve palestra, vamos dar uma olhada em enums e também enums avançados, em geral, enums, você pode pensar neles como certos tipos de dados que têm valores predefinidos, e você só pode atribuir esses valores a essa variável real. Então, vamos apenas criar, por exemplo, uma dificuldade enum, certo? Assim, podemos fazer dela uma aula e depois mudar isso para enum aqui. E então a forma como um enum basicamente é estruturado é que ele tem os valores reais que ele pode levá-lo apenas dentro dele. Por exemplo, fácil, médio e difícil, por exemplo, como as dificuldades de um jogo poderiam ser. E então, para criar uma nova variável para isso, é praticamente mais uma vez dificuldade. Então vamos chamar isso de dificuldade do jogo, certo? Sob assim. E então isso é igual a 2. Atribua isso, você pode ver o ponto de dificuldade e, em seguida, temos esses três valores como opções possíveis. Então, vamos apenas dizer dificuldade média aqui. E normalmente podemos reatribuir isso certo? Novamente, a dificuldade é igual a 2. Dificuldade, dificuldade difícil, por exemplo. E depois dois. Por exemplo, também podemos fazer declarações IF de um jogo retro, dificuldade igual, igual a. Agora isso é igual a algo, por exemplo, dificuldade fácil. E então fazemos algo aqui. Então isso é praticamente tudo o que realmente é para enums normais. E há algo interessante para o que eu chamo de enums avançados. Então, para isso, vamos criar uma nova classe Java. Novamente, esse é o nível da ferramenta, e isso também será renomeado para um enum aqui, eu realmente vou copiar algumas coisas do outro monitor aqui. Portanto, isso também é claro que também está disponível para você, um repositório do GitHub ou ajuste também. Você pode ver que, embora este seja um enum, ele tem um construtor aqui e temos uma taxa de campos. Isso é muito estranho. Sim. Então, a ideia é que você pode ter enums definidos. Então, é claro que isso é um diamante enum. E apenas para exemplos gerais aqui. E o mais legal é que esses funcionam exatamente da mesma forma que os outros. Então posso dizer que um nível de dois níveis é igual, digamos, por exemplo, o diamante de dica de ferramenta, certo? E o que eu posso fazer com muita facilidade é dizer nível da linha de impressão do sistema, por exemplo, multiplicador de tag git, que então me faz o multiplicador de ataque seja qual for o nível atribuído. Então eu posso basicamente ter um, eu não quero chamá-lo de lista necessariamente porque uma lista é um pouco diferente, mas você pode ter valores predefinidos neste enum aqui, nesta enumeração. Então essa é a enumeração e você também pode acessá-las. Então, isso realmente vai acabar, pode ser realmente útil. E definitivamente veremos esse exemplo quando estivermos criando ferramentas, ferramentas personalizadas ou Minecraft. Isso é definitivamente algo que vamos ver. Mas, de outra forma, é praticamente isso para as enums. Eu só queria te mostrar isso e mencionar que você pelo menos já viu isso antes. Caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado útil nos neurônios do novo, e eu o vejo na próxima palestra. Então, sim. 35. (Java) Exposições: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem de microondas. E nesta palestra, vamos dar uma olhada nas exceções e na declaração try and catch. Então, no geral, esse não é o tópico mais interessante, ou o que você diria, o tópico mais emocionante? No entanto, é, pode ser bastante importante . No entanto. Embora exceções, vimos algumas dessas. Por exemplo, algo como o IndexOutOfBoundsException e o NullPointerException. Então, houve algumas exceções que vimos antes que foram lançadas pelo código real. E o que vamos fazer é agora lançar nossa própria exceção personalizada. Então, em nosso pacote, vamos criar uma nova classe, que é a exceção de teste, porque ela realmente exige tenhamos uma exceção de teste aqui. Vamos estender a classe de exceção aqui. E eu realmente vou copiar sobre os dois construtores que vamos precisar aqui para isso. Portanto, isso é claro, tudo disponível para você no repositório do GitHub ou energizado também. Vamos ter um scanner onde podemos um scanner onde podemos escanear rapidamente em algum sistema de coisas aqui. E então vamos salvar o seguinte. Então, vamos dizer next int, e vamos basicamente salvar algo em um número inteiro aqui. E só por uma questão de argumento, o que vamos fazer é lançar essa exceção quando passarmos um número 0 em um método específico aqui. Portanto, verificação privada, estática e vazia para 0. Isso é muito simples no número. E o que vamos fazer é dizer se o número, se o número estiver passando qualquer resíduo, então o que vamos fazer é lançar uma nova exceção. Como fazemos isso? Vamos escrever uma nova exceção de testes, e então vamos dizer que o número é 0. Por exemplo, algo assim. E isso é praticamente tudo o que realmente precisamos fazer aqui. O que você vê é que isso realmente gera um erro aqui porque Adicionar exceção à assinatura do método. Então, na verdade, temos que ter isso neste método aqui. Portanto, temos que adicionar a exceção de teste de lançamentos à assinatura do método, caso contrário, ela não funcionará. E se eu chamar isso agora, certo? Então, se eu verificar 0, eu, o que você verá é que isso também precisa ser adicionado ao método principal também porque isso não é tratado corretamente, então não estamos lidando com essa exceção. Então, o que você pode fazer é que vamos executar isso. E se eu, por exemplo, digitar um aqui, nada acontece. O programa termina normalmente se eu colocar um 0, você pode ver exceção e contagem de threads principal e sua exceção de teste, números muito interessantes 0. E então você pode até ver onde isso foi chamado, certo? Então aqui primeiro e depois aqui estava a exceção que foi lançada. Então isso é muito interessante. Vamos antes de tudo, comentar isso e livrar-se da seção artística lá em cima. E o que podemos fazer agora é que podemos dizer, por exemplo, digamos que z é igual ao ponto do scanner next int. Ou, na verdade, pule o I aqui para isso. Tudo bem. Agora podemos fazer uma declaração try. Então, isso vai ser uma tentativa com os colchetes encaracolados. E então aqui ele vai ter uma captura com uma exceção e dentro dela. E isso é basicamente lidar com um erro, certo? Portanto, a instrução try and catch está lá para lidar com um erro. Então, vamos tentar isso aqui. Escreva um cheque para 0 I. E se uma exceção for capturada ou lançada, certo? E podemos pegá-lo aqui. E então podemos fazer algo com ele. Por exemplo, podemos basicamente fazer algo assim. Então, mensagem GET, então, apenas por enquanto, basicamente, basta imprimir o que realmente está acontecendo aqui, certo? Portanto, a exceção real, é claro que há outras coisas que você pode querer fazer ou ter que fazer se uma exceção for capturada. E então você também tem isso finalmente aqui, o que vamos fazer o seguinte. Nós vamos basicamente imprimir finalmente, só para ver que isso está impresso e , em seguida, vamos realmente copiar a saída. E isso vai ser, isso acontece sempre. Mas agora o interessante é quando você realmente lida exceções corretamente com uma declaração try and catch aqui, então o que acontece é que o programa não apenas quebra ou não acaba, na verdade, continua junto. Então, o que você pode ver é que antes de tudo, quando eu ligo, quando coloco um 1, por exemplo, certo? Então, um dia você vai finalmente, e isso acontece sempre. Então, finalmente, como você pode ver, é sempre frio e então isso é sempre chamado também, certo? E então o interessante é que quando a exceção é lançada, você pode ver que estamos imprimindo a mensagem. Mas finalmente ainda acontece. E o, você sabe, isso acontece sempre, também ainda acontece. Então, o resto do programa continua. O que é muito importante é que, em geral, você quer que seu código falhe o mais alto possível simplesmente por causa do fato de que você quer os erros sejam vistos muito, muito cedo. É por isso que lançar exceções pode ser útil. Agora, concedido na modelagem por microondas, é muito improvável que você precise, especialmente no começo, certo? Quero dizer, a maior parte disso, estou assumindo para iniciantes, certo? Isso não será muito importante para iniciantes. Isso é algo muito mais para pessoas avançadas. Quando você está realmente sentado lá, você está tipo, Ok, eu vou fazer como um modo gigante agora, certo? Quero torná-lo como a próxima expansão térmica, digamos nesse nível algo assim, depois fazendo algumas exceções personalizadas. Ideia muito inteligente, definitivamente. Mas seja qual for o caso, é isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 36. (Java) LambDA Exposições: Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos dar uma olhada em expressões lambda. Então, expressões lambda podem ser muito complicadas. Eu só quero dar uma breve visão geral das que temos e quais são as expressões lamda. Então, em geral, e as pessoas veteranas vão para três métodos. Eles são basicamente funções ou métodos como variáveis. Agora isso é muito legal quando você pensa sobre isso. E vamos dar uma olhada nestes cinco apenas em detalhes muito, muito esparsos. Então, não vamos entrar em nenhum detalhe. Eu só quero que você tenha visto esses n basicamente armazená-lo no futuro. Porque especialmente na modelagem 4D, isso é algo que é muito importante na verdade em tecido, nem tanto, bem, seja qual for o caso. Então, um fornecedor, por exemplo, aqui, à direita, é algo que não tem parâmetros além de um valor de retorno. E poderia ser escrito algo assim, certo? Portanto, nenhum parâmetro entre parênteses e seta e , em seguida, o x pode ser o que está sendo retornado. Você pode ver o fornecedor do tipo inteiro significa que um número inteiro é retornado. E então é assim que parece. O mais legal sobre isso é que isso também significa porque quando podemos fazer uma variável a partir dela, também podemos passá-la para um método, o que significa que poderíamos, poderíamos passar esses fornecedores lá dentro, que podem ter funcionalidades diferentes. Então isso é bastante legal, na verdade, isso também é usado na programação muito ou modelagem forçada, especialmente porque quando o fornecedor, quando você tem algo dentro dele, isso é chamado apenas quando o GetMethod aqui é chamado. Assim, você pode atrasar carregamento de determinadas variáveis e coisas assim. Essa é praticamente a extensão do meu conhecimento nessa área também. Então, não vamos entrar muito nisso. E depois de corrigirmos esse erro aqui por metro, é claro, certo? Portanto, o consumidor tipo de nome realmente consome um parâmetro, mas não retorna um valor. Aqui está um exemplo para o consumidor de uma string, que simplesmente é basicamente onde você passa em uma string e, em seguida, ele faz algo com essa string. Um chamável não é perímetro e nenhum valor de retorno. Então, muito semelhante a um fornecedor, no entanto, ele lança uma exceção, então um chamável, é possível que isso chame uma derrubada de uma exceção também. Essa é a ideia geral. Você também pode sempre passar o mouse sobre isso e você pode realmente encontrar um resumo muito bom do que eles realmente são, certo? Então, aqui estamos chamando o chamável neste caso, então um executável é algo que não tem parâmetros e nenhum valor de retorno. Então, uma função basicamente é literalmente como uma função que mapeia uma determinada entrada para uma determinada saída é apenas a função para o círculo, basicamente onde eu só tenho o pi aqui. Mas isso é praticamente tudo o que realmente há nisso. Então, no geral, como eu disse, eu realmente queria que você passasse por isso uma vez que eu já vi isso antes, quando eu digo, Ei, nós vamos fazer um fornecedor que você não senta lá e você está tipo, oh, eu não tenho ideia do que é isso. Não. Um fornecedor basicamente é um tipo de dados que tem, esse tipo de mais ou menos salva em uma função ou método. Não é bem isso, mas é muito próximo disso para que, você sabe, especialmente para iniciantes, basta pensar nisso assim. Seja qual for o caso, isso é realmente para esta palestra aqui. Eu sei que isso foi muito curto, mas como eu disse, é realmente apenas uma visão geral muito breve em vez de realmente explicar cada detalhe disso. Mas ainda espero que você tenha achado isso útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 37. (Java) (Java): Tudo bem, bem-vindo de volta à introdução do Java aqui para modelagem do Minecraft e para esta última palestra da seção de introdução do Java, vamos dar uma olhada provisória em genéricos. Genéricos, é claro que já os vimos antes, certo? Uma lista era genérica, por exemplo, onde poderíamos colocar em um inteiro como qualquer classe basicamente, e basicamente ter os números, por exemplo, com um novo ArrayList aqui. Então tudo funcionou com muita facilidade e muito bom. Isso foi bem, bastante simples. Mas e se tivermos genéricos que queremos usar para isso , na verdade vamos criar uma nova classe aqui. Nós só vamos ser a classe de par. E você poderá salvar dois valores diferentes nele. Então, vamos fazer esses colchetes angulares e, em seguida, x, y. e a ideia é que X e Y agora são e a ideia é que X e Y agora são espaços reservados para determinados tipos de dados. Então vamos ter um x ao quadrado privado primeiro e uma mentira privada chamada segundo, certo? E esta é, a ideia é que agora você tem que pensar nisso como, ok, esses são genéricos, o que significa que esses são apenas espaços reservados, como eu disse, certo? E vamos apenas gerar um construtor para isso. Então clique com o botão direito em gerar construtor E então, para ambos, vamos apenas ler o construtor. E, na verdade, também vamos fazer o botão direito do mouse em Gerar getters e setters para ambos. E lá vai você. Isso é basicamente toda a classe já terminada. E você pode ver que ele sempre usa o x e o y porque esses são basicamente apenas espaços reservados para os valores de dados reais ou tipos de dados que estão sendo usados. Agora, o que é muito interessante, o que você também pode fazer é dizer que um determinado tipo de dados se estende de um diferente. Assim, podemos, por exemplo, dizer estende float, o que significa que o y agora tem que estender o flutuador, que significa que ele pode ser um flutuador ou qualquer outra subclasse dessa classe que tenha sido definida aqui. Isso também é muito interessante. É algo que você pode fazer e isso é feito na modelagem do Minecraft extensivamente também. E o que você também pode fazer, vamos fazer um novo par aqui, certo? Então, parem, digamos que sejam como inteiro, flutuador inteiro por enquanto, como este termo igual a um novo par deles. Vamos dizer alguns como 2250.55. Claro, está tudo bem. Certificando-se de que este é um f aqui, então ele deve funcionar. Lá vai você. Isso agora está funcionando totalmente bem. E o que você também pode fazer, em vez de passar um determinado valor real ou um determinado tipo de dados, você também pode tornar isso um ponto de interrogação. E então o genérico vai apenas descobrir isso. Isso é o que é chamado de genérico curinga. Não vamos entrar em detalhes demais sobre isso. Isso é algo que você também verá na modelagem do Minecraft um pouco também. No entanto, isso é, não há necessidade real de entender isso. É inteiramente porque os genéricos definitivamente são algo que é muito avançado, como um tópico muito avançado que, mesmo como programadores qualificados, não gostam programadores qualificados, não gostam de muitos deles nem entendem isso. Como se eu não me incluísse nessa descrição a propósito, eu conheço genéricos bons o suficiente para que eu possa basicamente lidar com eles. No entanto, fazendo como uma classe genérica real eu mesmo, eu serei honesto, isso é muito, muito difícil, certo? Então, este é um tópico muito complicado, então não se preocupe. Eu só queria mencionar isso e queria que você visse que isso existe e que você também pode fazer seus próprios genéricos. Mas isso seria para a introdução do Java nesta seção do curso. Espero que você tenha achado útil e aprenda algo novo se for um iniciante completo, espero que agora você tenha a base Java que você precisará para continuar junto com o microondas modelagem. Então, boa sorte para você, e espero que você aproveite a seção de microbióticos deste curso. 38. (Noções básicas de Minecraft) Instalação e configuração e GitHub: Tudo bem, bem-vindo à porção de micróbio para o curso forge 118. E nesta palestra vamos baixar tudo e configurar o ambiente de desenvolvimento para configurar o ambiente de desenvolvimento que ele possa iniciar o modelo de micróbios. Bem, independentemente de você ter assistido ou não à introdução do Java, precisaremos baixar o JDK 17 desta vez. Porque, porque o Minecraft 118 e acima provavelmente usaria caverna pronta e adolescente aqui. Então, mais uma vez, vinculei adotá-lo aqui. Basta baixar a versão mais recente, certificando-se de que você está no tamarin está 17 aqui. Se você estiver em um diferente, ele deve, em teoria, detectar seu sistema operacional e tudo isso. Caso contrário, você ainda pode sempre ir para as outras versões e, em seguida escolher seu sistema operacional e sua arquitetura, e você deve ficar bem. Eu recomendo no Windows que você baixe o MSI e então você basicamente instala isso no seu PC como qualquer outro programa. Uma coisa que eu recomendo é dizer, ei, sim, queremos que a variável home Java seja definida aqui, porque isso vai salvar muitos problemas mais abaixo. Porque quando a variável home Java é definida uma vez, elas basicamente facilitam a nossa vida um pouco depois que ela é instalada, também precisamos de um ambiente de desenvolvimento integrado IDE e vamos para usar a ideia IntelliJ. Eu recomendo usar isso também porque, caso contrário, pode haver algumas diferenças nas bandas que elas precisam pressionar como atalhos. Também estamos onde você encontra certas coisas dentro de seu ambiente de desenvolvimento. Você escolherá a versão da comunidade porque ela é gratuita e construída em código aberto. Então, é perfeito para nós. Você não terá que pagar nada por isso. É totalmente gratuito. Basta baixar isso e, mais uma vez, instalar qualquer outro programa no seu PC antes de abrirmos até hoje pela primeira vez, agora temos que baixar micro Forge, neste caso para um micróbio 1800. Então, se você estiver assistindo isso no futuro, talvez já estejamos na versão cento, oitocentos e dois ou até mais alto. Quem sabe? O que definitivamente será maior é esta versão aqui, agora estamos em 39,5 agora, tudo bem. O que vamos fazer é baixar o NDK. Mas antes de fazermos isso, um aviso muito importante aqui do futuro. Por favor, use cento e oitocentos um ao iniciar o curso. Eu recomendo isso. Se você não fizer isso e usar 1800 dois, algumas coisas não funcionarão como as tags, o item avançado que basicamente usaremos com as tags, bem como com a geração mundial. Agora, quando eu chegar a ele, quero chegar a ele muito em breve. Mas espero que no futuro no final do curso, haveria uma seção que é 1820, se você realmente ver isso. Então, dê uma olhada em todas as palestras. E se você vir uma seção no final Isso é como 1182 atualizações, então você pode ir lá e realmente passar por todo o curso. E então toda vez que há um certo, um tópico que não funciona como tags. Serão as tags lecture e todas as palestras de geração do mundo. Então você pode basicamente pular tudo o resto, ir até o final do curso, fazer isso e depois continuar de volta. Eu recomendo que a melhor escolha seja ficar com um 1800 por enquanto e, em seguida, apenas passar por todo o curso uma vez, então mudá-lo para 182 também será uma palestra que eu farei em o futuro no final do curso. Portanto, não se preocupe lá. Vamos apenas uma ideia muito inteligente. Caso contrário, é claro que você é livre para escolhê-lo, mas esteja ciente de que algumas coisas não funcionam da mesma forma em 1800 como fazem em 181. Eu só queria dizer isso. Agora, vamos voltar a configurar tudo. No futuro. Você provavelmente terá duas janelas aqui, uma das que é a mais recente e depois recomendada, sempre escolha a compilação recomendada atualmente, que ainda não foi atualizada para uma versão suficiente. Então eles basicamente dizem: Ei, esta é a versão recomendada, vai ficar bem, mas sempre será o M-Cdk que queremos. E então aqui só temos que esperar cinco segundos até que possamos baixar o arquivo zip. E, em seguida, clicamos no botão Ignorar na parte superior e, em seguida, no download do firewall zip. Já o preparei, então tenho meu arquivo zip aqui. Então, vou clicar com o botão direito do mouse e depois extrair para forjar um nome louco aqui. E eu também vou renomear isso, é claro, um 1800, eles atrás. Em seguida, podemos excluir o arquivo zip aqui. Este é o conteúdo da pasta do projeto ou que você terá. E o que podemos fazer é excluir todos esses, os créditos, o bloqueio de alteração, a licença e o Redmi porque existem específicos para forjar foram, na verdade, ou eu pessoalmente, eu vou ter o meu próprio arquivo de licença e tudo isso em apenas um pouco sobre depois que isso é configurado, agora podemos iniciar a inteligência pela primeira vez. Agora, a janela com a qual você será recebido provavelmente parecerá um pouco diferente para você. No entanto, o que você definitivamente terá são três botões, o botão The New Project, o botão Abrir, e eles recebem do botão VCS. Queremos clicar no botão Abrir e queremos navegar até este diretório. Então eu também posso simplesmente copiá-lo, colocá-lo aqui, e então escolher esta pasta aqui, onde as pastas de origem dentro desta aqui dizem tudo bem, vamos, vamos dizer que confiamos no projeto, em seguida, uma nova janela será aberta. Agora as coisas começarão a acontecer em segundo plano. Você pode ter erros, você pode obter algo vermelho aqui. Não se preocupe com isso. Vamos consertar todos eles passo a passo, mesmo com um aviso aqui você pode ver vermelho, este aviso aqui. Está tudo bem. Apenas deixe isso passar. Ou vamos ser construídos com falha ou uma compilação bem-sucedida. Qualquer um no momento está totalmente bom para nós. Tudo bem, olhe para isso. Na verdade, consegui uma construção bem sucedida aqui, tudo bem. Como eu disse, se você receber uma conta falhada, vamos passar por isso e ver o que podemos basicamente mudar. Existem alguns passos que precisamos tomar basicamente, independentemente do que está acontecendo. Então, o que queremos fazer é o número um, você quer ir para Arquivo e, em seguida, para a estrutura do projeto, queremos ter certeza de que no SDK do projeto aqui diz 17º. Então, basicamente queremos escolher o JDK que acabamos de instalar. mesmo com o projeto de linguagem. Isso deve ser 17. Vamos clicar em aplicar e dizer, ok, também iremos para configurações para criar implantação de execução, ferramentas incorporadas Gradle e garantir que ele diga o SDK do projeto aqui com 17. Essas etapas são extremamente importantes. Por favor, certifique-se de que tudo aqui está correto. Depois disso, há mais uma modificação que precisamos fazer. Você vê se eu abrir a pasta java aqui, você pode ver que tudo aqui está meio espalhado. Se a inteligência estiver aberta pela primeira vez, pode parecer algo assim para você simplesmente entrar no equipamento aqui. que os pacotes achatados e os pacotes intermediários compactos estejam desativados. E então ele vai parecer exatamente o mesmo aqui que para mim agora. Tudo aqui correu corretamente, isso é ótimo. Então o que vamos fazer é abrir o terminal aqui e vamos colocar na barra de pontos Gradle w Gen Intel J corre bem ali. E então vamos apertar Enter e deixá-lo passar por isso basicamente, basta baixar um monte de mais coisas e apenas certificar de que tudo é basicamente feito corretamente. E então vamos construir com sucesso. Se você tiver uma primeira pílula bem-sucedida, isso pode nem sempre ser necessário. No entanto, é ótimo fazer isso, no entanto. E agora vamos mudar algumas coisas. Mas antes de tudo, vamos abrir o arquivo DOD Gradle integrado. E então aqui você vê que há uma versão do grupo e uma base de nomes de arquivo. Mas a versão, bem, vamos colocar algo como 0.01. E então, geralmente, o que é aconselhável é colocar algo que diga a versão micro também. Então eu vou dizer minha versão de 0.01 e depois traço 100.801 porque é claro que estamos em 181 agora, o grupo aqui é o mesmo que os nomes da nossa estrutura de pacotes. Então, para mim, isso vai ser líquido e curso de Joe Mc. Para você, isso seria líquido ou acalmar seu nome. E então, por exemplo, você também pode escolher o curso MC, ou se você tiver outro modelo, você também pode escolher uma melodia diferente. Aqui nós apenas pegamos nossa ideia de modelo também, e isso praticamente resume tudo o que precisamos aqui. Realmente não precisa mudar muito. O que não podemos mudar o dele aqui , você pode ver o modo de exemplo. Diz aqui, podemos selecionar esta tecla Control R e depois mudar isso para o curso MC. Você pode ver que uma nova janela aparecerá na parte superior. E então podemos basicamente colocar exemplo Mater no primeiro curso mc aqui e, em seguida, apenas dizer substituir tudo isso basicamente em todos os lugares onde ele diz mod de exemplo neste arquivo, ele substituirá pelo curso EMC. E o que podemos fazer então é que podemos carregar as maiores mudanças pressionando o pequeno elefante no canto superior direito como você viu. E então, basicamente, será executado novamente. Isso não deve demorar tanto quanto a primeira vez que eles vão Bem sucedido em nove segundos, isso é ótimo. E então vamos mudar mais algumas coisas e mudar mais algumas coisas que vamos na classe mod de exemplo. Porque o que acontece aqui é que, basicamente, nós não temos um modo de exemplo. O que temos é que temos corda de algodão líquido, curso MC ou rede seu nome, curso MC. Então o que vamos fazer é no topo aqui no pacote, vamos dizer net out e curso Joe dot MC. Claro que isso está marcado com um sublinhado vermelho e vamos passar o mouse sobre isso e dizer Move to package net Cotton joe MC curso Eu vou dizer sim. E então você pode ver uma nova estrutura de pacotes aqui surgirá. Então, agora podemos excluir o resto que está vazio. Então queremos renomear essa classe. Então, o que podemos fazer é clicar nele, pressionar Shift F6 e, em seguida, vamos nomear isso como mod do curso MC dia atrás. Agora, é muito importante é que esta classe, a classe simulada do curso MC, ela se referirá mais tarde como uma espécie de classe principal ou sua classe mod principal. Então, se eu disser que isso é o que quero dizer, então chegamos ao MOD ID. O ID é algo que é muito importante. Então, por favor, ouça cuidadosamente. O ID MOD só pode conter caracteres minúsculos. O ID do formato é basicamente um identificador exclusivo para o seu MOD. E isso virá muitas vezes no futuro. Neste topo aqui na AdMob, você pode ver que temos uma string aqui. Então, o que vamos fazer é selecionar a string inteira com as aspas. Vamos clicar com o botão direito do mouse. Vamos refatorar. Vamos dizer introduzir constante. Vou chamar isso de ID de sublinhado mod. Na verdade, vou copiar isso para o topo aqui. Este será usado muitas vezes no futuro. E isso é para o curso US MC. Eu recomendo ficar com isso e colocar a mesma coisa aqui. Este é um curso MC muito importante tudo escrito em minúsculas. Isso aqui também tem que corresponder na pasta de recursos, meta enésimo modo Stato Mo. E você pode ver aqui mod ID, isso também tem que corresponder. Isso é incrivelmente importante, muito importante aqui. Nome de exibição, digamos, por exemplo, o mod de curso moderno do Minecraft. Algo assim oferece que tal linha de algodão? Esses não são todos necessários, mas isso é apenas um Idealmente, você não precisa necessariamente colocar isso. Vamos também, deixe-me mudar a licença para o MIT apenas no caso e para o ego. Então essa é a ideia geral de basicamente configurar tudo. Você terá que mudar essa estrela íntima Tom o arquivo. E aqui em cima isso é muito importante. E geralmente isso deve resolver quase tudo o que você tem. Mais uma vez, verifique a estrutura do projeto nas configurações. E depois que você mudou tudo isso, execute, a barra de pontos Gradle, Jen inteligente é executado. E depois que você fez isso, estamos praticamente preparados. Isso é praticamente tudo o que precisamos fazer para a configuração. Ou agora podemos fazer é ir para o canto superior direito para a guia Gradle aqui, expandir as tarefas e o forge rail é executado e seguida, clicar duas vezes nele, executar um cliente. Vamos ver se o Minecraft começa pela primeira vez. Esse é o passo mais importante. Basicamente, o que tenho muita certeza de que isso funcionará bem. Lá vai você. A janela já abriu e vamos ver provavelmente vai ouvir o som muito em breve. E lá estamos nós. Ok, deixe-me antes de tudo, desligue imediatamente a música e o volume um pouco. Eles atrás. Em nossos modos, você pode ver o modelo de curso moderno micróbio. Existe a versão do curso MC no momento 0 porque não definimos isso corretamente no arquivo HTML mos dot. Mas isso é praticamente tudo o que você precisa fazer. Se você chegar a este ponto e o Minecraft abriu. Bem, bem-vindo a forjar de manhã. Vai ser uma ótima e incrível jornada, tenho certeza disso. E a próxima coisa que vamos fazer é configurar o repositório do GitHub para este projeto. Eu recomendo não pular a etapa, pois o repositório do GitHub me ajudará a ajudá-lo nas perguntas e respostas. Por exemplo, se você apenas me fornecer, seu repositório do GitHub poderá ajudá-lo com mais rapidez do que basicamente se você disser, Ei, eu tenho essa flecha. Então, isso só torna toda a nossa vida um pouco mais fácil. Por isso, recomendo também configurar um repositório do GitHub. Vamos passar pelos passos agora mesmo. O que você precisará para isso é uma conta do GitHub, mas isso é totalmente gratuito e eu recomendo fazer isso. Esta é uma ferramenta usada por, quero dizer, quase todos os programadores. Existem alguns sites diferentes, mas o GitHub em si é altamente respeitável e eu recomendo usá-lo também. Então, depois de termos feito uma conta lá, o que podemos fazer de forma inteligente é que podemos ir para o VCS aqui e podemos dizer compartilhar projeto no GitHub. E então você pode ver que vou chamar isso curso de forja no 18. Tudo bem. Eu vou, pessoalmente, tornar isso privado. Se você quiser compartilhá-lo, é claro que você não pode torná-lo privado. E agora, se eu clicar no botão Compartilhar, você pode ver, ei, a conta está vazia. Vamos adicionar uma nova conta. E o que vou dizer é que vou fazer login via GitHub. Posso clicar nisso e, em seguida, esta janela aqui abrirá, basta dizer autorizar o GitHub. E como já estou logado no GitHub aqui, isso agora foi autorizado e você pode ver chair by github.com slash coulomb joule. Agora vamos dizer Compartilhar e, em seguida, um monte de coisas novas serão abertas aqui, você pode ver Adicionar arquivos, móveis, confirmar. Vamos dizer, é claro que isso é totalmente bom. E então você pode ver que ele é realmente compartilhado no GitHub e isso é realmente tudo o que você precisa fazer. Agora posso clicar nisso e ele deve abrir o repositório do GitHub. E lá está ele. Este repositório do GitHub também estará disponível para você. A propósito, isso é muito importante. Terei todas as palestras separadas em diferentes ramos para que você possa basicamente facilmente ver e comparar com o que escreveu. Também terei gists individuais para cada palestra. Portanto, não se preocupe. Todo o código estará disponível de alguma forma que será muito útil para você se você fizer uma alteração aqui. Por exemplo, vou dizer algo como um comentário muito importante. Você verá que o arquivo onde a alteração ocorre fica azul. E então o que eu tenho que fazer é ter que ir para esta guia de commit aqui, terei que selecionar todas as alterações que eu quero confirmar. Então eu digo que adicionou elemento importante. Então isso é apenas um nome do que aconteceu. E eu clicarei em Confirmar. Agora geralmente você também pode receber, ei, eu recebi 63 avisos. Tem certeza de que deseja se comprometer? Normalmente você quer se comprometer. Agora isso acabou de passar, foi muito importante, é que só porque cometemos algo não significa que ele está online ainda, porque para torná-lo online, nós realmente temos que empurrá-lo. Então, no topo aqui, a seta verde que aponta para o canto superior direito, temos que clicar nisso. Em seguida, você pode ver adicionado o comentário importante. Podemos ver as mudanças basicamente, quem, quem fez essas mudanças e tudo isso. E então podemos clicar no botão de pressão. E então diz que empurrou um commit para o origin master. Então, se eu reabrir isso e recarregar esse lado, você poderá ver um comentário importante adicionado. Não quero que isso se transforme em um GitHub ou receba um tutorial aqui. Mas, por enquanto, é praticamente isso. Isso é praticamente tudo o que você precisa. E agora você pode embarcar na jornada louca e legal do Minecraft moderno com 4241801. Mas é isso para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. 39. (Noções básicas de (Minecraft usando mapeamentos de pergaminho: Tudo bem, bem-vindo de volta ao quarto curso para 118. Nesta breve palestra, vamos mudar nossos mapeamentos para serem mapeamentos de pergaminho. Agora, apenas uma pequena explicação aqui. A ideia é que, se usarmos os mapeamentos normais fornecidos pela mesclagem do servidor oficial entre no arquivo Gradle de compilação do RI. Veja eu tenho os mapeamentos oficiais para 180 um aqui. E embora isso seja totalmente bom, o que acontece é que todos os métodos não têm parâmetros de mapa. Isso significa que cada método que podemos substituir ou algo assim, o nome do parâmetro sempre será algum, como P sublinha alguns números e, em seguida, sublinha um ou o que quer que seja. E isso é realmente atrito, irritante, especialmente se você tiver métodos que podem ter 56, 57 parâmetros. E todos eles têm esses nomes estranhos , pois são fremitus. É por isso que eu recomendo ir com pergaminho. Agora tenho dois links nos recursos. Um deles é o repositório bibliotecário do GitHub aqui do pergaminho, e um é o repositório de pergaminho. E o que você encontrará é que atualmente a versão 118 X não existe. Portanto, não se descobriu que não é estritamente verdade que há um instantâneo noturno. Agora, um instantâneo noturno neste caso significa que definitivamente ainda não é uma versão completa. É, uh, ele funciona e você já pode trabalhar com ele, mas não é altamente recomendável, você sabe, ainda não está feito, por assim dizer agora, ainda vamos usá-lo. E o que vou dizer é que vou atualizar esta palestra. Ou, à medida que avançamos pelo cavalo, posso lançar um ou dois guias de atualização de pergaminho em seu geral, geralmente atualizá-lo praticamente só está mudando. Uma coisa que vou te mostrar em apenas um momento. Agora o que podemos fazer é que no bibliotecário aqui você pode vê-lo basicamente diz tudo o que você precisa fazer. Portanto, é muito simples. Por exemplo, a primeira coisa que precisamos fazer é adicionar isso aqui. Então, o pergaminho do repositório de pergaminho Maven. Deixe-me copiar isso. Vá para o curso de forragem aqui. E então, no topo, abaixo disso, queremos colar isso. Você pode ver agora que temos o pergaminho lá. E então queremos verificar o segundo. E esse será o bibliotecário, no entanto, o teorema do caminho de classe. Então, mais uma vez copiou o Control C e cole-o abaixo do Gradle aqui. Então, aqui nas dependências, então queremos pegar o plug-in aqui, e isso tem que estar exatamente abaixo disso. Então, aqui mesmo, muito importante. Não cole aqui, mas abaixo da rede Minecraft Gradle, caso contrário, não funcionará. Muito importante. E então, por último, mas não menos importante, você precisa alterar os mapeamentos. Na verdade, vou copiar isso da outra tela que tenho aqui porque já tenho a versão noturna basicamente feita. Vamos vê-los atrás. Então esta seria a versão noturna de 13 de dezembro, instantâneo noturno neste caso, como eu disse, se versões mais novas saírem, vou vinculá-las aqui em algum lugar ou terei futuras palestras ou mudanças esta palestra. E vamos, só veremos, vamos fazer isso, não se preocupe. E, no geral, isso agora deve estar bem se tivermos essas quatro coisas. Então, o maven, a dependência do caminho da classe aqui, depois o plugin e alterando o vidente de mapeamento, você ficará bem. Então, o que podemos fazer agora é que podemos carregar as mudanças do Graal. Agora, isso realmente não deve demorar muito. Mais uma vez, depende do seu PC, depende da velocidade de conexão com a Internet que você tem. Há alguns fatores que podem, estou nisso, mas mais uma vez, não deve ser mais do que talvez um minuto ou dois. Mas vamos ser pacientes e deixar isso passar, certo? Então, como você pode ver, construa com sucesso em 55 segundos, isso é ótimo. E agora está basicamente feito. Agora, estamos usando os mapeamentos de pergaminho. E isso vai ser ótimo. Isso vai ser muito melhor. Eu recomendo fazer isso também. Ele realmente só altera os nomes dos parâmetros. Então, agora estão mapeados é praticamente tudo o que ele faz, os nomes dos métodos e os nomes das classes e tudo o que deve permanecer completamente o mesmo. Mas isso já é para esta palestra aqui. Espero que você tenha achado isso útil no novo, e eu o vejo na próxima palestra. Então, sim. 40. (Noções básicas de minecraft basics) crie um item personalizado: Ou voltarei ao curso de forragem por 118. Nesta palestra, vamos adicionar nosso primeiro item de cliente à mente por enquanto, isso vai ser uma coisa muito interessante que vamos fazer. E o que faremos é, na verdade, adicionaremos dois itens. Vamos adicionar um, vamos basicamente passar por cada etapa. E então mostrarei imediatamente depois de termos visto o item no jogo. Ou você pode adicionar um segundo porque às vezes é um pouco confuso para as pessoas. Espere, como eu adiciono agora um segundo? Tenho que passar por cada passo novamente? E não, existem alguns atalhos que você pode basicamente tomar. Bem, a primeira coisa que faremos e isso é muito importante é no nosso MOD do curso MC ou em nossa principal classe mod, vamos selecionar isso aqui. Então, tudo, incluindo o barramento de eventos GetMethod com os parênteses, e vamos clicar com o botão direito do mouse sobre esse re-fator e, em seguida, introduzir uma variável. E então vamos dizer que substitua todas as três ocorrências. E vamos chamar isso de Evento Bus. Então, basta clicar duas vezes no barramento de eventos. E então vamos ficar bem. Também faremos é que basicamente excluiremos tudo aqui, exceto pelo método de configuração. Não queremos os eventos do registro, não queremos a classificação do servidor, nada disso. Precisamos? E então teremos que ler as coisas aqui para que possamos excluir ambas também, que nosso construtor basicamente tenha saído apenas com o ônibus de eventos. Você é o ouvinte aqui, a parte inferior do registro do barramento de eventos aqui e o método de configuração, porque esse é um método que definitivamente terá que usar no futuro. Há outro método que irá, que terá que adicionar em uma palestra futura também. Mas vamos fazer isso assim que tivermos dois. Então, agora em diante, para adicionar o item. Então, no nosso pacote de cursos MC, vamos clicar com o botão direito do mouse em novo pacote, que é chamado de item. Em seguida, em vez de lá, vamos clicar com o botão direito do mouse novamente nova classe Java chamada classe mod items. Agora, a classe de itens de modo seguirá um tipo de esquema ou um determinado modelo que muitas classes diferentes seguirão. E isso será o seguinte. Portanto, teremos um registro diferido. Então, vou digitar isso deles e ver o que é isso. Esta será uma final estática pública, o terceiro registro, muito importante, F2, nosso. Mas este aqui da net microforms registra verificar novamente se você escreve isso corretamente porque houve algumas pessoas que escreveram errado, e então isso, é claro, leva a que ele não funcione você possa digitá-lo e, em seguida, basta pressionar Tab para completar automaticamente. E então precisamos desses colchetes angulares se você digitá-lo no primeiro e no segundo para gerar automaticamente. E então precisamos de item aqui. Muito importante que tenhamos itens mundiais líquidos do Minecraft. Tomamos este mais uma vez, preenchemos automaticamente e, em seguida, ele imediatamente importará a classe aqui. Isso é chamado de itens todos em maiúsculas, muito importante, assim como este é um campo final, portanto, tem que ser escrito em maiúsculas. Essa é apenas uma convenção Java neste caso, isso será igual a um registro diferente. Mais uma vez, certificando-se de que você o escreve corretamente, você pode ser preenchido automaticamente com uma guia quando realmente vir o congestionamento que cria. E então, mais uma vez, podemos simplesmente preenchê-lo entre parênteses que gerará. Em seguida, podemos salvar registros forge esses itens no meu modelo de curso MC, esse ID do modelo e, em seguida, terminando tudo com um ponto e vírgula. Então você pode ver que já estamos usando o ID do modelo. Aqui estão os diferentes registros. Nos termos mais simples, o registro diferido. Você pode pensar nisso como apenas uma lista de todos os seus itens que você com seu átomo MOD. É por isso que precisamos fornecer a melodia para que a forja saiba, ok, todos esses itens são deste modelo ID, deste modo. Essa é a ideia geral. Claro que é um pouco mais complicado do que isso. Mas apenas para sua compreensão geral, você pode pensar nisso como uma lista de todos os seus itens e basicamente temos que nos registrar quando você tem um registro diferido basicamente para cada coisa que forjou registros aqui, posso dar uma olhada nisso. Para todas essas coisas. Basicamente, podemos ter uma outra classe e outro registro diferido. E toda vez que tivermos um registro diferente, o que teremos é que teremos um vazio estático público ou o método de registro com um Evento Bus. Evento Bus como perímetro. Vamos dizer que itens ponto registram o ônibus de eventos. Agora, se em algum momento algo aqui pode ser vermelho. Por exemplo, é possível que o item aqui fique vermelho. O que acontece é simplesmente clicar nele e pressionar Alt e Enter para importar a classe, certificando-se de escolher item mundial de microondas líquido aqui, e então tudo deve funcionar. Certifique-se de que as importações estão corretas. Isso também é muito importante. E agora temos o método de registro e precisamos chamar isso de volta em nossa classe de mod de curso MC, nossa principal classe mod dentro do construtor aqui, temos que dizer mais itens registro de pontos com o Evento Bus. Então, temos que passar neste ônibus de evento para o método de registro aqui. E então o registro diferente real também será registrado. Então, temos que registrar, bem, nossas listas, por assim dizer, de todos os nossos itens. E agora, como nós, como estamos começando a adicionar um item? Bem, precisamos de um objeto do Registro final estático público. Mais uma vez com os colchetes angulares do tipo item. E este vai ser o lingote sublinhado de cobalto. Agora você pode ver mais uma vez, tenho algo marcado no objeto Registro vermelho. Eu posso simplesmente clicar nele. E insira e, em seguida, importará a classe correta que vamos precisar. E isso será igual a dois itens de registro de pontos. O primeiro parâmetro será uma string. E este barramento, ou como você verá em breve, nome gera automaticamente, você não precisa digitar isso. Muito importante para o lingote de sublinhado Walt é o nome. Isso segue as mesmas regras que o ID do mod. Apenas letras minúsculas, sublinhados ou traços e números, nada mais. E você pode ver depois que eu adicionei o comum agora ele diz nome. Mais uma vez, isso gera automaticamente, isso é feito pelo IDE, isso é feito por inteligente. Você não precisa digitar isso. E o segundo parâmetro será um fornecedor. Portanto, temos parênteses abertos e fechados, por essa seta e, em seguida, um novo item. Então, novo item com as outras coisas aqui. Assim, novas propriedades de item que você pode ver dentro do construtor de itens, vou preencher automaticamente isso e depois dizer a guia ponto. E então precisamos fornecer em uma guia. Então, essa é a mortalidade criativa que é necessária. E você pode ver onde é apenas a guia diversos. Vamos apenas clicar duas vezes nisso e, em seguida, ficaremos bem com isso. Podemos ver que isso agora é tudo o que precisamos para registrar o item. O item já estaria no Jogo. Claro, ele ainda não tem textura e também não tem funcionalidade. Não vamos adicionar funcionalidade nesta palestra aqui, mas nas palestras a seguir, é claro que vão ver, pode basicamente acrescentar isso. Agora, uma coisa importante é que as propriedades deste item aqui são realmente um painel do construtor, então você pode dar um tapa em um ponto depois, depois da guia, você pode ver que eu também posso chamar algumas outras coisas como Reparo de sentinela , resistência ao fogo, talvez restante, coisas assim. Então, há algumas coisas legais que eu basicamente posso chamar aqui, e isso mudou o item dessa maneira também. Vamos nos manter por enquanto apenas ter a guia e apenas usar a aba variada para isso, e isso vai ser cinco. Agora. Bem, o que isso significa? Bem, ainda não tem textura. Como vamos definir isso? Não se preocupe. Agora vem a estrutura de pastas, o que é muito importante. Portanto, certifique-se de que você cuide e olhe para isso de perto. Há algum erro ortográfico aqui. Na verdade, vai fazer com que algo não funcione. Em vez da pasta de recursos, vamos clicar com o botão direito do mouse em novo diretório chamado ativos. E então, dentro de lá, vamos clicar com o botão direito novo diretório chamado curso MC. Este tem que ser seu ID de MOD, exatamente. Muito importante. Dentro de lá, vamos criar um novo diretório, modelos antigos. Também vamos criar um novo diretório chamado lang LNG. Também vamos fazer um novo diretório dentro do curso MOOC sobre texturas frias. E, mais uma vez, observe que eles precisam ser escritos corretamente. Então, na pasta de modelos, vamos criar um novo diretório chamado item. E então, dentro da pasta de modelos, novamente, vamos criar um novo diretório chamado bloco. Agora, o que eu posso fazer é porque vamos precisar de ambos. Posso selecionar ambos e arrastá-los para a pasta de texturas enquanto mantém o controle, o que duplicará essas pastas. E porque, basicamente, eu preciso do bloco e da pasta de itens dentro da pasta de texturas também. Agora vamos começar pela parte superior com a pasta de comprimento. Na pasta de comprimento, as traduções serão localizadas. Então, vamos clicar com o botão direito do mouse em novo arquivo. E esta vai ser a EN nos sublinha db.json. Muito importante que você adicione o ponto Jason, caso contrário, ele não será reconhecido corretamente. Isso é muito importante. Além disso, e sublinha-nos para também sermos escritos corretamente, pressione Enter e, em seguida, o arquivo aparecerá. Essa janela aparecerá. Se você tiver um repositório do GitHub, se você não tiver isso, não verá isso. Isso é totalmente bom. Se você tiver um repositório do GitHub, você basicamente quer dizer add, porque então ele o adiciona ao repositório do GitHub para o seu próximo commit basicamente, e o EN sublinha o arquivo JSON será construído da seguinte forma. Vou começar com um suporte encaracolado, que imediatamente gerará o segundo suporte encaracolado para nós. Aqui queremos traduzir o item. Então, o problema é que vamos apenas digitar isso. Ponto do item AMC curso ponto o bola, sublinhado, lingote, dois pontos e, em seguida, inglês antigo. Então, a ideia geral é que esse é o nome localizado desconhecido do item porque este aqui, certo. O lingote de sublinhado de cobalto é o nome que demos a este item. É um item, e é, este é o nosso Motet. Tudo isso deve fazer sentido lógico, certo? Não deveria ser como, por que isso está acontecendo aqui? Não, não, isso deve fazer sentido. Este é o nome localizado. Por que temos isso? Por que precisamos definir isso como um arquivo JSON? Bem, existem idiomas diferentes. E se você quiser traduzir para cada um desses idiomas do que ter o nome localizado e, seguida, um nome localizado aqui faz muito sentido. Na verdade. É por isso que temos que fazer assim. Mais uma vez, certifique-se de que os nomes das pastas estejam destruídos e também o nome de um arquivo aqui. Caso contrário, isso parece bom. Em seguida, vamos passar para o arquivo de modelo de item. E o modelo do item é, bem interessante. Vou digitar esses. Então, o que vamos fazer é na pasta de itens de modelos, clique com o botão direito do mouse em novo arquivo chamado ponto de lingote sublinhado de cobalto JSON. O nome desse arquivo tem que corresponder exatamente ao nome dado aqui. Isso também é muito importante e depois termina com o JSON. Agora, como eu disse, vou digitar isso uma vez. Vamos fazer isso rapidamente e depois vou explicar cada parte dele. Então, vamos ter um pai aqui , dois pontos, barra de item, texturas de munição geradas, caído aberto, colchete encaracolado, camada 0. Tudo um curso MC, item caído, barra ou parafuso sublinhado. Posso estar dizendo o que o FREC está acontecendo aqui. Não se preocupe. Vamos passar por isso. O pai aqui determina como essa textura específica é exibida em sua mão. E também em tridimensional. Adam gerado basicamente é, ele vai fazer a textura extrudida um pouco para que ela tenha uma espécie de aparência 3D. E isso vai ser basicamente isso. Então é assim que qualquer item normal é exibido. Então, temos que definir todas as texturas. E isso tem que ser texturas muito importantes. Certifique-se de que tudo isso esteja escrito corretamente. Camada 0, também importante. E então isso aqui é basicamente define o diretório onde a textura está localizada. Então, isso vai olhar para a pasta Ativos do curso MC. Então ativos MC curso dentro da pasta de texturas, aqui mesmo sob a barra do item cobalto Inglês ponto PNG, então item. E então não temos nada lá dentro. Vou copiar o extra agora, borbulhado no Git dot PNG. E eles vão, e isso é basicamente agora a textura que ele exibirá no jogo. Um. Um detalhe muito importante aqui para as texturas é que observe o arquivo de créditos aqui. Então, todas as texturas são feitas por nano ataque e elas são distribuídas sob esta licença aqui. Então, se você quiser usá-los em um repositório público de alguns tipos, siga a licença, basta adicionar esse arquivo ao seu projeto ou repositório e, em seguida, você ficará bem. Eu só queria mencionar que isso é muito importante no entanto. Você pode usar as texturas. Apenas tenha isso em mente agora para um item com tudo realmente feito, registramos o item. Adicionamos uma tradução, adicionamos o arquivo JSON do modelo de item e a textura por enquanto, pela primeira vez que podemos ver para trabalhos, a propósito, qualquer uma dessas setas vermelhas que você possa ser obter são totalmente bons. Isso às vezes pode acontecer depois que você basicamente adicionou arranjo pela primeira vez, mas isso é totalmente bom. Você deve ser capaz de ignorar isso, desde que continue e o Minecraft realmente comece, isso não deve ser preocupação. E isso também só aconteceu uma vez ou na frente dele, Minecraft. Então, vamos ver, vamos para a aba diversos e vamos para o fundo. E lá está ele. O lingote de cobalto foi adicionado com sucesso ao jogo. Isso é muito legal Todas as coisas consideradas, certo? E então só que você já viu, vamos adicionar a pepita também. Então, a ideia básica aqui é que não precisamos de mais uma segunda classe de itens. Às vezes, é onde as pessoas ficam um pouco confusas. A única coisa que precisamos fazer é que precisamos copiar sobre esse objeto de registro. Vou fazer o Control C depois de selecionar tudo e depois Control V, cole-o aqui. Então, só temos que renomear isso para pepita e renomear a sinagoga também. Para cada item registrado terá um objeto de registro associado a ele. Essa é a ideia geral. E é claro que também tem um nome. Então, precisamos de um novo modelo de item, JSON, embora vamos primeiro entrar em nosso ouvido e nos sublinhar o arquivo JSON aqui. E o que faremos é duplicar essa linha pressionando Control D adicionando uma vírgula aqui. E então, mais uma vez, vamos renomear isso para pepita. Essa pepita também. E agora, em nossos modelos de itens, o que podemos fazer é simplesmente pegar esse arquivo JSON e arrastá-lo para a mesma pasta enquanto seguramos o Control, e então o duplicaremos. E então podemos mudar o nome aqui, navegar também. Então, dentro daqui, é claro, também mudando essa pepita. E então copiarei sobre a textura do item mais uma vez. E esse é basicamente o processo de adicionar um segundo item. Então isso é basicamente sempre o que você vai fazer. Haverá algumas diferenças, especialmente quando se trata dos arquivos do modelo. Talvez eles pareçam um pouco diferentes. Mas, no geral, isso é praticamente sempre o que você terá que passar em um objeto de registro na tradução para o E e nos sublinha o arquivo JSON em um modelo de item JSON. E então a textura, isso é praticamente tudo o que há para ela. Eles vão apenas por causa de conclusão, vamos ver se funciona ou se eu sou um Minecraft. Como você pode ver, o cobalto também foi adicionado com sucesso. O jogo, no entanto, como você pode ver, na verdade é bastante simples quando você sabe como é feito. E isso é apenas uma coisa que você só precisa se familiarizar e apenas rotinizar basicamente adicionando itens. E isso vai se tornar basicamente uma segunda natureza para você, certo? Mas isso já será para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Todo o código está, a propósito, disponível para você no repositório do GitHub ou para um indivíduo, que você basicamente nunca precisa digitar tudo sozinho. Você também pode copiar algumas coisas se isso for mais propício para aprender para sua ideia em particular. Caso contrário, te vejo na próxima palestra. Então, sim. 41. (Noções básicas de minecraft basics) crie um bloco personalizado: Tudo bem, bem-vindo de volta ao quarto curso para 118. E nesta palestra, vamos adicionar blocos personalizados ao Minecraft. Os blocos personalizados estão um pouco mais envolvidos. Mas como vimos basicamente uma parte de como adicionar itens, os blocos são semelhantes, mas como eu disse, um pouco mais envolvidos como um pouco diferente, mas não muito. Então, no nosso pacote de cursos MC, vamos clicar com o botão direito do mouse em novo pacote chamado livro. E lá dentro, vamos clicar com o botão direito nova classe Java chamada classe mode locks. Agora esta classe será um pouco diferente, mas antes de tudo, teremos o registro diferido final estático público do tipo de bloco, certificando-se de que escolhemos o nível mundial net Minecraft bloco. Muito importante, não a unidade OpenJDK jurada eterna, mas o bloco de nível, bloco que é muito importante. E então dizemos que blocos é igual ao terceiro ponto de registro criar registros, essa caixa com nosso modelo de curso MC que MID. E se é um registro diferente, também precisaremos de um público que seja um método de registro de chamadas nulas com o Evento Bus. Evento Bus. E isso chamaremos Box dot register com o ônibus do evento. E antes de esquecermos, chamaremos imediatamente em nossa aula de mod de curso MC aqui, mod blocks dot register com o ônibus do evento. Lá vai você. Então, agora o registro diferido está registrado. E agora o que realmente precisamos é que faremos dois métodos auxiliares. Vou digitar tudo e depois explicarei depois de fazer isso, o código para você está disponível no repositório do GitHub ou em um indivíduo também. Você não precisa digitar tudo aqui. Você pode basicamente copiá-lo também. Então, quando eu tenho uma estática privada e, em seguida, o colchete angular T estende o vazio do bloco. Na verdade, vamos fazer este item, desculpe, vamos fazer esse objeto de registro de itens. Em seguida, o nome do método é o bloco de registro Atum, que terá um parâmetro de nome de string e um objeto de registro do tipo T, que será o bloco. Então esse é o segundo parâmetro. E isso retornará mais itens, itens que se registram com o nome. E, em seguida, um fornecedor de um novo item de livro com a guia Propriedades do Novo Item de ponto ponto do bloco. E vamos colocar na guia criativa, MRTK por enquanto. Mas, na verdade, vamos mudar isso. Então, um dos problemas aqui é que agora estamos basicamente codificando, ok, isso sempre estará na guia diversos, na verdade adicionará um terceiro parâmetro, que será o modo reativo guia, guia. E então vamos colocar isso aqui , que podemos basicamente significar, Ei, vamos tornar o criativo específico mais guia. E então eu vou apenas formatar isso de forma um pouco diferente. Lá vai você. E então teremos outro método que é uma estática privada. Mais uma vez, o colchete angular T estende um bloco, que também retornará um objeto de registro desta vez do tipo T, o método do bloco de registro. E isso levará uma string, vamos nomear o tipo de fornecedor T e, em seguida, um bloco chamado Brock, e depois oito e, em seguida, um terceiro parâmetro, mais uma vez, sendo esta a guia modo criativo. Guia. Agora este fará o seguinte. Em primeiro lugar, ele criará um objeto de registro do tipo T ou para retornar, que é igual ao registro de pontos de blocos, o nome com o bloco. Em seguida, ele vai esfriar no método do item do bloco de registro com o nome a ser devolvido e a guia. E então aqui vamos voltar para retornar. Agora esses métodos parecem absolutamente loucos. No entanto, eles não são realmente tão loucos. Então, esses são apenas alguns métodos auxiliares para nós porque quando registramos um bloco como este, certo? Quando apenas chamamos blocos que registram, o que acontece é que ele cria o bloco, mas ele não cria um item para o bloco. E isso é um problema porque precisamos de itens de bloco para cada um dos nossos blocos. Agora, fazer isso assim, na minha mente faz muito sentido. Se alguma vez encontrarmos um bloco que não precisa de um item de bloco, o que faremos, faremos apenas outro método que não chame esse método de item de bloco de registro. E então, basicamente, ficaremos bem. Querido é isso o que isso significa, por exemplo? Bem, isso significa que T é apenas um genérico e significa apenas que o que for colocado no T aqui tem estar estendendo a classe de bloco. Basicamente, sempre vamos usar a classe block de qualquer maneira, porque isso é tudo o que realmente vamos precisar neste caso. Mas sim, isso só garante que este seja o tipo correto. Puxar o método do item do blog de registro também deve fazer sentido. Isso basicamente apenas registra o item que está associado a este bloco aqui que estamos basicamente criando um Tem o mesmo nome basicamente, e isso deve ser praticamente tudo que você precisa saber que vai colocar isso na guia que passamos aqui. Então, tudo deve estar bem. Vamos ver isso em ação e vamos ver. Então, vamos criar um objeto Registry final estático público do tipo bloco. Será que o bloco de sublinhado de cobalto, que será igual ao bloco de registro com mais uma vez no nome bloco de cobalto, o bloco sublinhado duplo foi importante este ano, gera automaticamente a placa de identificação 2, por assim dizer. E, em seguida, um fornecedor de um novo bloco. E isso vai ter propriedades de comportamento em bloco, esse material.me. E então, se eu colocar um ponto, você pode ver que existem mais algumas propriedades que podemos adicionar dois blocos aqui. Quais são as que eu quero adicionar são as propriedades de força. Então esse é basicamente o tempo necessário para quebrar esse bloco. E também muito importante que chamamos requer ferramenta correta para gotas, o que basicamente fará exatamente o que eu queria. Além disso, isso não é copiar essas coisas. Oh, eu sinto muito. O ego. E então o terceiro parâmetro será o ponto da guia do modo criativo. Vamos fazer mais uma vez diversos. Mas este faz exatamente o que diz no estanho requer ferramenta correta para quedas porque temos que definir ferramentas de TI mais tarde, basicamente para que o bloco de cobalto realmente caia sozinho. Isso é algo que veremos em uma palestra posterior. Na verdade, o bloco cai , isso é feito com mesas Lou, conhecedores. Vamos chegar a isso. Mas isso, mais uma vez, é o bloco e o item de bloco associado registrados com isso. Eu recomendo também apenas brincar com algumas das propriedades que você pode adicionar aqui, você pode ver que existem algumas aqui que você pode basicamente adicionar. Normalmente, veremos alguns deles passando pelas palestras. Mas vamos agora examinar os arquivos JSON porque esses são muito interessantes porque na verdade precisamos, na pasta do curso MC aqui, precisamos adicionar um novo diretório ou estados de bloqueio. Também é muito importante que esteja escrito corretamente. E eu vou mais uma vez digitar isso. Então, vamos criar um novo arquivo aqui chamado bloco de sublinhado de cobalto Jason, mais uma vez, certifique-se de que isso esteja escrito corretamente e tenha o JSON final. Portanto, esse é o nome que ele precisa ter. E então vou digitar isso. Então R1 segundo colchetes encaracolados, variância, cólon, colchete inicial, aspas vazias, colchetes de cólon encaracolado. E então modele dois pontos, curso MC, bloco de cólon, cílios, cobalto, bloco de sublinhado. O que está acontecendo aqui? Bem, o estado do bloco basicamente define variantes diferentes do mesmo bloco. No nosso caso aqui, não temos nenhuma variação porque isso vai ser apenas um bloco normal. E isso aqui agora aponta para um modelo de bloco JSON. Então, em nossos modelos de arquivo quebrado, ele procura um arquivo Block JSON de sublinhado de cobalto. Então, vamos clicar com o botão direito do mouse neste novo arquivo, sublinhado de cobalto blog.js. E isso realmente se parece com o modelo de item que vimos antes. Colchetes encaracolados, pai, caído, bloco, cubo de barra, todas as texturas de vírgula caídas. Registro somente. Todos os cólon, curso MC, bloco de cólon, cobalto, bloco de sublinhado. O modelo de bloco determina como o bloco parece dentro do mundo. O que isso significa? Bem, enquanto os estados de bloco apontam para macacos com modelo de bloco específico, o modelo de bloco determina as texturas desse bloco e, em seguida, basicamente, se refere a essa textura aqui. E também precisamos de um modelo de item para nossos blocos. Isso é muito importante. Oh, isso realmente vai ser um novo sublinhado de cobalto blog.js. Isso, no entanto, parece um pouco diferente. Isso terá colchetes encaracolados e seguida, curso MC caído dos pais , tudo no bloco de sublinhado de cobalto de barra Brock. Então, isso se refere a esse modelo de bloco e faz com que ele apareça de uma forma 3D que os blocos aparecem dentro do inventário t0. Vamos copiar sobre a textura do bloco de cobalto aqui no suporte do livro. E, em seguida, também deixe adicionar a tradução. Também é muito importante. Vamos copiar esses. E então vamos chamar isso de bloco de cobalto do curso MC bloco. E isso é, claro, um bloco que eles atrás. Agora isso é tudo o que precisamos para uma espécie de força de recapitulação mais uma vez, precisamos criar o objeto de registro para esse bloco específico aqui. Em seguida, precisamos de um arquivo JSON de estados de bloco, um arquivo JSON de modelo em massa, um arquivo JSON de modelo de item e a textura. Essa é uma ideia geral. E depois de vermos se ele funciona ou não, também veremos um segundo bloco B adicionado apenas basicamente para que você tenha outro exemplo. Mas, por enquanto, vamos ver se funciona ou nos encontramos em mente para isso. Como você pode ver, o bloco cobol foi adicionado, então vamos defini-lo e eles vão, parece incrível, e tudo funciona bem. Então, se houver algum problema com esse bloco, certo? Portanto, se houver alguma textura faltando, podemos basicamente passar por uma lista de verificação que você pode verificar. Portanto, se o bloco só não tiver uma textura dentro do inventário, é o modelo do item Jason, que é o culpado. A textura não funciona no mundo, mas funciona no inventário. Tem que ser o bloco Estados Jason, que é o culpado. E se não funcionar em nenhum deles, bem, então é o modelo de bloco JSON ou todos eles. Então essa é uma lista de verificação geral que você pode passar e basicamente verificar. Mas agora, só para, você sabe que você tem outro exemplo, vamos adicionar outro bloco, certo? Então, mais uma vez, isso realmente envolve muita cópia aqui. Então, vamos copiar isso, vou colá-lo. Este vai ser o cobalto ou bloco e então este será o sublinhado de cobalto ou em vez de metal, isso vai ser não. E isso vai ser em vez de cinco forças, apenas força, certo? Isso vai ficar bem. Agora o resto aqui está bom. Isso agora registrou o bloco. É claro que agora precisamos do livro diz que Reason trouxe o modelo Jason e o item antigo Jason. Vamos apenas copiar isso arrastando-o para a mesma pasta enquanto mantém o controle e altere o nome aqui para bloquear, para cobalto ou tema aqui. Isso agora aponta para um modelo de bloco Jason na pasta aqui, que é chamado de sublinhado de cobalto ou ponto JSON. Vamos criar isso também no ano do nome para a textura que ele aponta, que adicionaremos em apenas um momento. Vamos também adicionar a tradução imediatamente. Mas o que OR e, claro, o nome aqui que ressaltará o ego. Copie também sobre o modelo de cobalto ou item e renomeie-o. Ou, em seguida, sublinhado ou aqui também. E então só precisamos da textura para isso. Vou copiar isso também. E aí você tem isso. Agora, o próximo bloco é feito. E sim, mais uma vez, esta é apenas a maneira normal de fazer isso. Você só terá que passar por isso na próxima palestra. Basicamente, você terá uma tarefa de adicionar dois blocos próprios. Isso basicamente vai para o bloco de cobalto rock e o cobol ou bloco de estado profundo também. Então, isso é apenas algo para ter em mente. Além disso, vamos ver se a busca de conclusão, se o bloco ou também foi adicionado ou não. Tudo bem, encontramos essas costas e microvesículas. Veja o cobalto ou bloco também foi adicionado com sucesso ao jogo. Então, tudo funciona muito bem aqui. Isso é realmente o quão fácil é adicionar um segundo bloco também, certo? Como eu disse anteriormente, a próxima palestra incluirá algumas tarefas. Eu recomendo que você passe por isso porque pode ser muito, muito positivo e apenas uma boa ideia basicamente fazer basicamente fazer isso apenas para que você tenha um pouco de sensação. Mais uma vez, todo o código para as palestras aqui está disponível no repositório do GitHub ou em um indivíduo também. Mas isso seria para esta palestra aqui. Espero que você tenha achado útil quando você aprende algo novo e eu o vejo na próxima palestra. Ah, sim. 42. TARde 5: Block e item: Ou virei aqui para a primeira tarefa para o quarto curso na seção Minecraft. E como eu já disse, aqui, você basicamente fará dois blocos e um item. Isso não deve ser muito louco. Então, espero que você encontre a tarefa em um lugar escrito. Então, basicamente, você tem a tarefa como uma pergunta escrita também. E a ideia é que você terá que adicionar o bloco rock cobol, bem como o cobalto ou bloco de ardósia profunda. Agora, as texturas para esses blocos estão disponíveis. O mesmo com o item. Observe que o arquivo de créditos aqui para que as texturas sigam uma licença específica. Então, se você quiser usá-los em um repositório público ou algo parecido, e observe que os credores arquivam, como eu disse. E para o item, você adicionará o item de cobalto bruto basicamente, e isso seria basicamente. Todos os outros não deveriam ser loucos demais para você. Espero que se você já viu as poucas palestras anteriores do que deveria ser bastante, bastante fácil de fazer. Bem, boa sorte e divirta-se na tarefa. Então, sim. 43. SOLUÇÃO 5: bloco e item: Tudo bem, vamos dar uma olhada na solução para a primeira tarefa aqui. E, claro, espero que tenha sido bastante simples. Você acabou de adicionar os dois objetos de registro para os dois bloqueios que queríamos adicionar. mesmo com o item aqui, o cobalto cru. E então só precisávamos dos blocos, esses arquivos JSON, que simplesmente apontam para dois arquivos JSON de modelo de bloco diferentes, que por sua vez apontam basicamente as texturas aqui. E então a tradução que deveria ser neste momento espero se tornar rotina. E então nós só precisávamos das bacias do modelo do item também. E isso também inclui o cobalto de rocha, que então apenas aponta para uma textura aqui. No geral, espero que isso tenha sido feito facilmente. E isso é praticamente tudo o que você precisa fazer para ter isso em seu jogo. E usaremos basicamente o cobalto cru e todas as outras coisas também no futuro. Oh, definitivamente é uma boa ideia ter isso em seu jogo também. Todo o código é claro, também disponível no repositório do GitHub ou em, em, em um indivíduo também. E te vejo na próxima palestra. Então, sim. 44. (Noções básicas de tela) tab criativa personalizadas: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos adicionar nosso próprio tablet de modos criativos personalizados ao jogo. Este é, na verdade, um processo bastante fácil e direto. Portanto, em nosso pacote de itens, vamos clicar com o botão direito do mouse em nova classe Java chamada modo criativo modelo, guias ou guia. Isso implementará o seguinte. Isso terá uma leitura final estática pública da guia Modo chamada guia sublinhado do corpo, que é igual a uma nova. E você pode ver Norris apenas a guia do modo criativo. E se pressionarmos a tecla tab, ela gerará o, gerará uma classe anônima para nós. Na verdade, teremos que inserir isso com um ponto e vírgula aqui. E então, em vez de retornar null aqui, e vamos passar para a rotatividade é uma nova pilha de itens. Mais itens pontuam cobalto, lingote, ponto get. E então dentro daqui, vamos adicionar uma string. Esse rótulo aqui gera automaticamente mais uma vez. E esta será apenas a guia do modelo do curso. Seja qual for o item que você colocar aqui, também qualquer bloco que você colocar aqui será a imagem de exibição da guia real, e isso é necessário para a tradução. Então, na verdade, vou copiar isso. E vamos ao nosso E e nos sublinha arquivo JSON para o fundo aqui. E vamos apenas adicionar o, adicionar os pontos do grupo de itens CourseMatch tab dois pontos. E vamos chamar isso de curso MC. Não. Tudo bem. Agora este é um outlier nos termos de tradução aqui temos um grande G para o G maiúsculo para o grupo de itens. E então, claro, mod tab com ideia mais externa. Mas isso é praticamente tudo o que precisamos fazer para adicioná-lo. Agora, vamos também adicionar nossos itens e nossos blocos a ele. Em vez de dizer o modo criativo, toque aqui vamos dizer mais criativo, mais guia, ponto guia Curso. Basta copiar isso sobre a tecla Control C selecionada e, em seguida, Control V para colá-lo aqui e fazer a mesma coisa aqui. Basicamente em todos os lugares onde você tem a guia variada. Agora vamos colocar na guia Curso. E agora todos os nossos itens e nossos blocos estarão em quatro etapas. Vamos ver se funciona, ou nos encontramos de volta ao Minecraft. E um sinal muito bom é que temos uma segunda página aqui pode ver MC núcleos MOD e tudo está aqui exatamente como você esperaria que ele fosse. Isso é perfeito. E tudo funciona exatamente como você gostaria de escrever isso que já é para esta palestra aqui. Espero que você tenha achado útil em yurts do novo, se ele fez nossa crítica muito apreciada de você. Caso contrário, verei você na próxima palestra. Então, sim. 45. (Noções básicas de minecraft basics) novas Receitas: Tudo bem, bem-vindo de volta esse curso de forragem para 180. E nesta palestra, vamos adicionar receitas personalizadas ao Minecraft, ou receitas personalizadas são feitas por meio de arquivos adjacentes. Eles não são feitos na pasta de ativos, mas sim em uma nova pasta. Então, nos recursos, clique com o botão direito do mouse em novo diretório chamado dados ou dados dentro do curso MC e, em seguida, dentro de suas receitas. Agora, o que é muito importante é mais uma vez, esse diretório precisa estar completo, escrito completamente corretamente, caso contrário, ele não funcionará. E basicamente vou mostrar um exemplo de cada ano de receita. Como eu disse, eles estão no formato JSON mais uma vez. E o que podemos fazer na verdade é que podemos ir para as bibliotecas externas aqui embaixo. Podemos expandir isso. E então você encontrará em algum lugar abaixo aqui, você sabe, descendo. Mas Minecraft finito nove 180 extras, um ou qualquer que seja a versão atual. Se você expandir isso e entrar na pasta de dados, verá o Minecraft e, em seguida, todos os arquivos JSON que estão no Minecraft. Por exemplo, podemos dar uma olhada em cada um desses arquivos JSON. Estas são basicamente todas as receitas de baunilha como pagar. Como isso funciona? Você pode ver o carvão do jateamento legal ou interessante, mas há, você já pode ver que existem diferentes tipos de receitas. Como o compostor, como é feito o combustor? Você pode ver isso. Você vê A tag, interessante. Ok, estamos usando tags aqui. tempo de cozimento pode ser desgastado. Temos coisas como o biscoito. Então você pode basicamente encontrar exemplos de coisas aqui. Eu recomendo passar por isso, entrar aqui. Se você já tiver uma receita que basicamente deseja recriar, você pode encontrá-la. Você pode então dizer, por exemplo, para o bloqueio ósseo aqui, certo? Oh, isso é como uma coisa realmente que eu quero fazer. Você pode basicamente pressionar o controle C para copiá-lo. Volte para suas pastas, vá aqui, controle V para colá-lo. E então, por exemplo, eu poderia dizer bloco de cobalto de lingotes para onde eles vão e então eu vou abrir isso e então você pode ver agora que eu posso, claro, mudá-lo. E as ideias gerais que bem, você tem diferentes tipos de aqui, certo? Neste caso, temos uma receita de forma. O padrão está preenchido. Qual é o padrão? Será que o pai terá três cadeias de comprimento três. Portanto, isso representa a grade de fabricação. Este é o slot superior esquerdo e, em seguida, o slot superior direito e assim por diante e assim por diante. Portanto, isso não deve ser muito louco para entender. Podemos colocar as chaves aqui. Assim, você pode ver que esse símbolo de hashtag basicamente representa um novo item de tigela neste caso, bem, vamos mudar isso para os itens de nossos clientes. Então vamos dizer dois pontos do curso MC ou comprar lingote sublinhado. E então o resultado aqui, é claro, será dois pontos do curso MC ou bloco sublinhado em negrito. Mas tudo isso deve realmente fazer sentido no momento e não deve ser muito louco. Mas esta é uma receita em forma, como eu disse, porque tem uma forma particular. Agora, o que também funcionaria é algo assim. Então você teria que cobrar as duas linhas superiores ou as duas linhas inferiores no banco de artesanato. Então eles nem sempre precisam ter três ou três cordas de comprimento. Também há trabalhos. Então, algo assim, que seria o barco, por exemplo, também funcionaria porque você pode colocar o barco no topo ou também na parte inferior. Então isso é muito importante. E, na verdade, copiarei sobre tudo estar disponível para você no repositório do GitHub ou em um indivíduo também. Você pode ver antes de tudo, esta é uma receita sem forma, porque podemos basicamente colocar o ingrediente em qualquer lugar no banco de artesanato. E isso é basicamente um bloco de cobalto, certo? E então teremos lingotes de robôs e depois nove deles. Então, basicamente, isso é a mesma coisa que esta só em troca, certo? Então, ao contrário, você pode obter os nove lingotes de volta de um bloco. E então temos esses dois que são lingotes ou fundição. Então você pode ver que posso sentir o cheiro do cobalto ou em um lingote aqui. mesmo com isso, mas vamos apenas fundir ou explodir será bastante autoexplicativo, tudo considerado. E então, apenas como exemplo, você também pode usar, vamos várias chaves. É assim que você os usa. E você também pode usar itens do Minecraft como resultado ou como um item de fabricação que funciona totalmente bem. Como se não houvesse nenhum problema com isso. Então esta é uma espécie de ideia geral, final de ano, bem, não bem na próxima palestra, mas na palestra depois disso, se eu não me engano, você vai fazer suas próprias receitas personalizadas e basicamente tenha algumas idéias do que você faz. Mas todos eles são bastante diretos. entanto, no geral, é isso. Muito importante. As bibliotecas externas realmente recomendam passar por isso porque também existe a pasta Assets onde todos os estados de bloqueio, o Lang, as texturas também terminam aqui, as texturas estão aqui. Então você pode basicamente dar uma olhada em tudo, os arquivos do modelo também. Então eu recomendo passar pelas bibliotecas externas aqui porque essa é a melhor coisa que você pode gostar de ver. Se você não sabe, Ei, como posso fazer uma receita exatamente como x em baunilha? Basta entrar aqui, dar uma olhada nisso. Muito fácil, não se preocupe. Mas esse é um processo muito simples. Mas, por enquanto, vamos ver se funciona ou por que nos encontramos de volta ao Minecraft. Então, vamos tentar o interior do cobalto primeiro e eles vão e blocos de cobalto e vamos ver, eu posso pegar os nove lingotes de volta também. E o que você encontrará também é que ele será automaticamente como esses, como receitas no livro de receitas também. Então isso é muito bom. E vamos ver se também conseguimos sentir o cheiro do cobalto ou, claro que podemos, tudo bem. Isso também funciona. Embora tudo aqui funcione muito bem. E também apenas por uma questão de argumento, por que não tentar fazer a pilha de diamantes aqui, o ego 64 diamantes funcionando também. Belo invólucro, isso já seria para esta palestra aqui. Espero que você tenha achado útil e ignorância do novo. Mais uma vez, todos os arquivos JSON estão disponíveis no repositório do GitHub ou onde um indivíduo também. E eu vou te ver na próxima palestra, no entanto. Sim. 46. (Noções de basics de troves com as tabulações de loots: Tudo bem, bem-vindo de volta ao quarto curso para 118. Nesta palestra, vamos dar uma olhada na adição de tabelas de rotas personalizadas ao Minecraft. Ou uma tabela solta basicamente define o que uma queda de um bloco. Esta também é uma das razões pelas quais adicionamos as ferramentas corretas necessárias para quedas aqui, tudo bem ali. Porque se não tivermos isso, basicamente qualquer ferramenta com a qual você possa este bloco, então soltaria a tabela Lu real ou as gotas de rocha, por assim dizer. Mais uma vez em nossa pasta de dados, na pasta do curso MC, clique com o botão direito do mouse em novo diretório chamado tabelas de sublinhado de saque. Mais uma vez, certifique-se de que ele esteja escrito corretamente. Então, dentro de lá, um novo diretório chamado blocos. E então eu realmente copiarei sobre a tabela de saque para o bloco de cobalto é ver isso. Então é assim que se parece. É do tipo bloco. Há um pool e, em seguida, você basicamente tem entradas diferentes neste pool. Podemos ver esta haste uma vez que há a entrada aqui, uma entrada do tipo item. E então basicamente soltamos um bloco de cobalto ou tudo isso às vezes pode ficar um pouco confuso, especialmente quando agora vou copiar sobre a tabela de saque para o cobalto ou bloqueado por causa de curso que funciona um pouco diferente. Veremos que isso é mais complicado do que seria primeiro estranho. Mas é claro que o que temos é que só temos uma entrada. O que é uma entrada alternativa, por assim dizer. E a ideia aqui é que, bem, ou vai deixar cair isso e vai cair isso se a condição aqui for atendida, o que significa que o encantamento em nossa ferramenta tem que ser o toque de seda. E então ele derruba o cobalto ou de outra forma, ele cairá entre 25 Ra. Essa é a ideia geral aqui. E você pode ver que ele também aplica um bônus quando se trata dos encantamentos da fortuna também. Isso é algo que também é feito neste caso com uma função. Eu recomendo mais uma vez, indo para a unidade de bibliotecas externas, cliente de microondas extra um 1801, em vez da pasta de dados, você também descobrirá que a pasta de tabelas aludidas. E então, dentro de lá, você pode dar uma olhada em todos os loops, mesas de todos os blocos de baunilha. Eu recomendo vivamente. Não posso recomendar o suficiente ir aqui e apenas dar uma olhada nisso. Também lhe darei a outros recursos que são realmente importantes. Um deles é a entrada do wiki da tabela luge aqui do micro fã e wiki porque aqui você verá realmente todas as coisas diferentes, todas as coisas diferentes que você pode basicamente colocado. Você pode ver que há muitas coisas aqui, recomendo dar uma olhada nisso, basicamente como ele funciona. E depois há outro e isso será desalinhado ponto GitHub IO tabela de saque. E este é um gerador de mesa luge. Apenas certifique-se de que você está no 118 no topo bem aqui. E então, quando você tiver isso, você pode basicamente mudar todas as coisas aqui. Você pode dizer, Ei, eu quero algumas funções específicas. Você pode ver que essas são todas as funções, certo? Você vai perguntar a eles condições específicas como uma chance aleatória. Você pode ser como, Ei, eu me pergunto se, se a entidade for morta por um jogador, tudo isso, tudo isso, tudo isso, tudo isso. Portanto, há uma quantidade insana de coisas que você basicamente pode adicionar aqui. Eu recomendo estar aberto à experimentação, experimentando um monte de coisas. Essa é a melhor coisa que você pode fazer para tabelas de loop. E tenho certeza de que, nesse ponto, você conseguirá obter algo realmente Lu tabela que é exatamente o que você gostaria que fosse. Mas isso não é tudo o que temos que fazer porque teremos que adicionar outra coisa. E isso é mais uma vez em nossa pasta de dados, clique com o botão direito do mouse em novo diretório chamado Minecraft, o jogo que você pode ter ouvido falar sobre isso. E dentro de lá precisamos adicionar um novo diretório, tags antigas. E então, dentro de lá, precisamos adicionar um novo diretório chamado blocos. E então, dentro de lá, precisamos adicionar um novo diretório chamado mineable. Agora, por que precisamos disso? Bem, precisamos definir quais são nossos blocos, nossa largura da mente. E para isso, na verdade, vamos até a pasta de dados, Minecraft, ovos, blocos, e então veremos as mandíbulas aqui. O que vou fazer é selecionar todos eles, pressionar o controle C para copiá-los. Então eu vou aqui, pressione Control V para colá-lo. Tenha todos esses arquivos JSON com todos os blocos de baunilha aqui. O que posso fazer é apenas selecionar tudo isso e apenas me selecionar tudo isso e apenas livrar dele ou de todos esses arquivos JSON. Mas essas são tags. Agora, as tags no momento, você pode basicamente pensar nelas como uma coleção de blocos ou itens diferentes que têm alguma funcionalidade semelhante a eles. Vamos passar por quais blocos estão em uma palestra posterior também. Mas, por enquanto, o que faremos é adicionar todos os blocos que temos ao Pic X Jason. Então este seria bloco de sublinhado de cobalto de cólon do curso MC. E então eu vou duplicar isso quatro vezes. Esta é então uma parede de bloco de rock cobol ou, em seguida, também a ardósia IEP. Mas muito importante é que você só pode definir blocos que existem dentro do seu MOD. Embora se eu não tivesse a camada profunda de cobalto ou se eu adicionasse aqui, receberei um erro quando tentei me juntar a um mundo que é muito importante. E depois há mais três coisas que eu preciso. E esses são, bem, o nível de ferramenta que eu preciso para esse nível diferente. Então eu posso basicamente procurar por isso. Então você pode ver o bom diamante 200 precisa de ferro para precisar de ferramenta de pedra. Mais uma vez, vou copiar todos os três. Recomendo fazer o mesmo. É claro, também todos disponíveis para você no repositório do GitHub ou em um indivíduo também. E então eu vou fazer isso e vamos apenas dizer isso e, em seguida, a ferramenta de pedra também se livra. E por exemplo, digamos, você sabe, eu acho que cobol e são ferramentas de ferro pelo menos. Então, o que vamos fazer é eu vou dizer MSE curso dois pontos o parafuso sublinhado bloco. E então você percebe, sabe o quê? Vamos apenas pegá-los, copiá-los, colocá-los aqui. Isso é um pouco mais fácil. Eles vão. Então, só poderemos minerar aqueles com pelo menos uma ferramenta de ferro. E para cima, essa é a ideia. Então, ferramenta de ferro e acima, poderemos minerá-los agora, cada novo bloco que adicionarmos, você terá que adicionar a essas tags. Provavelmente não farei isso à medida que avançarmos. Eu definitivamente não vou mostrar isso porque neste momento, você sabe, se você já viu uma vez, você provavelmente deve ser facilmente capaz de adicioná-los você mesmo. Deve ser bastante simples, mas isso deve ser tudo o que você precisa fazer. E agora depois de ter adicionado as tags e as tabelas de alaúde, vamos ver se funciona. Ou encontramos palavras em Minecraft. Então, vamos ver se eu posso minerar isso e eles vão o bloco cai. E aqui devemos pegar um pouco cru para Walt e nós fizemos. Para que tudo funcione totalmente bem. Vamos também tentar isso com uma picareta de pedra e você já pode ver que leva muito tempo, então provavelmente não funciona. E você pode ver que não faz o mesmo com o diamante AX. Demora tanto tempo para mesmo como começar a ver que a animação de ruptura nem vale a pena tentar. Claro que não vai funcionar, já haveria isso para esta palestra aqui. Espero que você tenha achado útil em termos do novo, mais uma vez, todos os arquivos JSON estão disponíveis no repositório do GitHub ou em um indivíduo também. E te vejo na próxima palestra. Então, sim. 47. TARde 6: de Receita e as tabelas de loots: Tudo bem, bem-vindo de volta à segunda tarefa aqui para o curso para 118. E nesta tarefa, você deve adicionar algumas mesas soltas e algumas receitas. Então, as receitas que você deve adicionar são o número 1. A receita para as pepitas. Para isso, posso colocar um lingote e tirar nove pepitas. E então, é claro, o inverso mais uma vez, onde eu posso basicamente colocar nove pepitas no banco de artesanato e , em seguida, tirar um lingote. Isso é o número um. número dois é, você também deve adicionar as receitas para o poço da ardósia profunda, ou para ser fundido, bem como o cobalto cru ou para ser fundido. E então também ser capaz de criar o bloco de cobalto cru para ele e, em seguida, de volta novamente, basicamente também. E então mais uma coisa é que você deve adicionar uma receita que contém pelo menos dois itens de baunilha. Tão semelhante aos diamantes de pilha de outra estrela. Com isso que fizemos aqui, só precisa conter dois itens do Minecraft aqui. E então o resto você pode basicamente preencher como quiser. Isso pode resultar em qualquer coisa que você gostaria de ser criativo, eles são, e apenas tentar um monte de coisas, certo? Então boa sorte e divirta-se com a tarefa. Então, sim. 48. SOLUÇÃO 6: as tabelas de Receita e loots: Tudo bem, bem-vindo a esta solução para esta tarefa. E, claro, adicionando as tabelas de luge, vamos começar com essas teriam sido bastante simples. Ano em que basicamente pegamos a tabela de saque do bloco de cobalto e a substituímos pelo bloco cobol da linha. Então o mesmo vale para o cobalto profundo ardósia ou mesa de pilhagem, onde em vez de cobalto ou cai o cobalto tardio ou cobalto de linha aqui ainda deve cair normalmente. Então essas são as tabelas de alaúde. E então, quando se trata das receitas, você pode ver que existem algumas. Agora, no geral, esses também devem ser bastante simples, certo? A última coisa do cobalto de ardósia profunda ou será bastante simples, é a mesma que a normal, apenas, você sabe, com o estado profundo lá dentro. E praticamente o mesmo vale para o resto. Tudo isso deve ser bastante autoexplicativo. Todas as coisas consideradas. Se alguma coisa, ainda não está claro ou você tiver alguma dúvida, é claro, você sempre pode se sentir livre para usar o Q e um que é fornecido. E responderei às perguntas melhor da minha habilidade. Mas, de outra forma, isso seria para esta tarefa aqui. Espero que você tenha achado útil e os líderes do novo. Vejo você na próxima palestra. Sim. 49. (Noções básicas de minecraft Basics: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um item avançado personalizado ao Minecraft. Agora, o que eu chamo de item avançado é basicamente um item que tem sua própria classe associada a ele. Isso nem sempre significa que é necessariamente louco avançado, mas você basicamente tem a capacidade de adicionar muito mais funcionalidade a esse item. Então, vamos ver como fazer isso. Em nosso pacote de itens. Vamos clicar com o botão direito do mouse em novo pacote chamado Personalizado. E então dentro de lá não faria uma nova classe Java com o botão direito do mouse chamada item de haste de desvio. Eu recomendo terminar cada item personalizado com a palavra item para que você saiba o que é. Isso ampliará a classe do item aqui, passará o mouse sobre este super de criação, construtor correspondente. E então basicamente daremos uma olhada no que podemos fazer. Então, se clicarmos no botão do meio do mouse na classe do item, na verdade poderemos ver todos os métodos diferentes que podemos substituir. E você pode ver que existem muitos métodos que podemos substituir aqui, o que é muito legal. E há mesmo na parte de trás aqui, eu forjo item que também podemos clicar no botão do meio do mouse, e há ainda mais métodos que podemos substituir. Você também pode ver os métodos que podemos substituir se digitarmos substituir aqui. E então você pode ver basicamente todos os diferentes métodos que são possíveis para substituir. E isso é muitos métodos, como você pode dizer claramente. Então, realmente muito disso se resume a mais uma vez, experimentando um monte de coisas, experimentando um monte de coisas. E mais uma vez experimentando um monte de coisas, sendo aberto à experimentação, provavelmente a melhor coisa que eu posso basicamente te dizer. Agora vamos fazer um item de vara de dowsing. E eu quero fazer com isso é o seguinte. Quero poder clicar com o botão direito mouse com este item em um bloco. E então, basicamente, se estenderá até o chão. Basicamente, dê uma olhada em cada bloco que está abaixo do bloco em que acabamos de clicar. E se encontrar um bloco valioso, ele imprimirá as coordenadas. Isso é tudo que eu quero fazer. Isso já é uma ideia bastante interessante. Tudo o que vamos ver o método do botão direito do mouse quando você clica com o botão direito do mouse em blocos, porque há dois métodos diferentes para clicar com o botão direito do mouse em Nanoblock e clicar com o botão direito do mouse no ar, por assim dizer Então, podemos simplesmente colocar em uso, e você pode ver esse uso aqui. Este é o que seria chamado. Esse método seria chamado se apenas clicar com o botão direito do mouse no ar para que isso seja o que você gostaria. O método US on aqui é o método chamado quando você clica com o botão direito do mouse em um bloco específico. Mas este é o que vamos substituir aqui e ver que ele tem um uso no contexto. E o que vamos fazer é que vamos, bem, vou colocar a funcionalidade e vou tentar explicar melhor à medida que vou adiante. Então, vamos ter uma declaração if em que vamos perguntar basicamente o contexto p que obtém um nível. Então, vamos pegar o mundo. O nível aqui, vamos dizer é do lado do cliente. Então, nesta rara e rara instância, nós realmente queremos fazer tudo no cliente neste caso, porque na verdade é um pouco mais interessante para nós. Então vamos dizer Block Pause, posição. Clicado é igual ao ponto dos contextos, obter posição, DIA, ser clicado, pausar aqui. E o módulo irá importar isso pressionando Alt e Enter. Então queremos o jogador. O jogador vai ser contextos, jogador ponto-ponto-ponto que você vai. E então, mais uma vez, clique no jogador e, em seguida, importe isso com o Alton também. E então, por último, mas não menos importante, teremos um livro booleano que será encontrado, que é igual a falso aqui. E então queremos um loop for. Então eu vou colocar isso em loop e então vamos ver o que isso basicamente faz. Mas vamos começar por aqui. Vou dizer que eu mais posição igual cliquei nisso, obter y i plus plus. E então o que eu quero fazer é basicamente querer obter o bloco que está abaixo do bloco que acabei de ver. Então, bloqueie abaixo, que é igual a ponto de contexto p , mais uma vez obter nível , não obter bloqueio, data na posição específica, que é a posição clicada ponto abaixo, exatamente quanto estou contando. E então estamos apenas obtendo o bloco disso e importamos o bloco pressionando Alt e Enter mais uma vez. Agora, o que eu quero é que eu quero produzir as coordenadas e eu também tenho que verificar, ok, é esse bloco, você sabe, algo valioso. Então, para isso, vamos fazer dois métodos auxiliares. Agora, na verdade, vou copiar sobre a saída das coordenadas, certo? Este é o método de saída aqui. Então podemos ver que estamos apenas recebendo o nome do bloco e depois colocando as coordenadas dele. Então isso é tudo o que realmente estamos fazendo aqui. E então também queremos um booleano privado, antigo é um bloqueio valioso, que só leva em um bloco aqui. E, em seguida, retornaremos um verdadeiro se este for um livro valioso, o que vamos fazer é retornar bloco igual à pesquisa de pontos de blocos ou, por exemplo, ou LOC igual, bloqueios ou, ou. E então vamos apenas duplicar isso terá outra laranja aqui. Formate isso de forma um pouco diferente. Aplique isso. Sim, e então também colocaremos diamante ou talvez apenas minério de ferro aqui também. E bloco de ferro, mas ferro ou eles atrás. Então, esses são os quatro blocos valiosos por enquanto. Se você quiser mais, é claro que você pode adicionar mais em uma palestra posterior. Também veremos uma maneira mais robusta de fazer isso com tags. Mas, por enquanto, isso vai ficar bem. Então o que vamos dizer é que vamos dizer se for valioso, andar um quarteirão abaixo. Vamos exibir as coordenadas na posição clicada abaixo com eu aqui, porque esta é a posição real em que acabamos clicar com o jogador e o bloco abaixo. Em seguida, definiremos o bloco encontrado como verdadeiro. E então vamos sair do loop for aqui porque encontramos um bloco. E não precisamos mais basicamente fazer nenhuma verificação porque só queremos produzir o primeiro bloco que encontramos. E depois que terminarmos o for-loop aqui, vamos dizer, se não forem encontrados blocos. Então isso significa que nenhum bloco foi encontrado. Vamos dizer dados do jogador e mensagens com um novo componente de texto traduzível. Item, dowsing do curso MC, ponto de haste sem valor de sublinhado. E depois dos parênteses, o segundo parâmetro será o jogador dot get UUID há um ano. Portanto, é claro que essa é uma maneira de enviar uma mensagem para o bate-papo. Agora, este é um componente de texto traduzível, então temos que pegar isso aqui e adicioná-lo ao arquivo JSON un sublinhado . Então, vamos apenas adicionar isso e apenas dizer que não há objetos de valor. Eu recomendarei usar componentes traduzíveis em todos os lugares que puder, basicamente deixando sua marca apenas um pouco mais robusta ou outros países falantes também. Então, basicamente, quando você tem outro idioma que torna um pouco mais agradável de ler e usar agora. O que é o resto? O que está acontecendo aqui? Bem, em primeiro lugar, nos certificamos de que estamos no cliente. Este geralmente não é o caso. Normalmente, queremos estar no servidor, mas neste caso, porque estamos apenas produzindo algo No cliente é bom porque esse uso será, na verdade, duas vezes no servidor e aqueles que o o cliente só criará duas variáveis aqui. Então, a posição em que você clicou e depois o jogador. E então vamos do fundo do mundo até a posição real em que clicamos. Isso vai ser y. E, e vamos começar quando chegarmos a isso. Agora, o que realmente teremos que fazer é, na verdade, teremos que mudar esse pequeno pedaço aqui no estado do bloco. Porque se eu colocasse um número negativo aqui abaixo, é claro que iremos acima de repente. Então eu posso realmente entrar nisso também. Vamos ver. Vamos para a posição de baixo para, nesta distância. Agora, a verdadeira questão é, claro que a distância aqui é negativa. E é claro que vamos subir em vez de descer. E nós realmente queremos adicionar um 64 a isso porque, claro, em vez de 0 ser o limite do mundo, agora é menos 64. É por isso que basicamente precisamos também fazer isso por um ano 64 e, em seguida, o resto deve funcionar totalmente bem, porque o primeiro bloco que literalmente vamos dar uma olhada é o bloco em si que acabamos de clicou. E então, quando eu me tornar um, então vamos descer um e assim por diante e assim por diante até até 0 quando chegarmos a isso. Mas então a coisa sobre isso é que então podemos continuar. Para abaixo disso. É por isso que adicionamos um 64 aqui. Então, no geral, isso deve ser tudo o que precisamos fazer. Vamos para a classe Mais itens e vamos criar os itens. Vamos apenas copiar isso, fazer desta a vara de dowsing. E então aqui a mesma vara de dowsing. Agora, em vez de um novo item, este é um novo item de haste de dowsing. Isso é extremamente importante que você faça isso. Por favor, note que este tem que ser um novo item de haste de dowsing. Caso contrário, é claro que não obterá essa funcionalidade. Muito cuidado com. Vamos adicionar a tradução também. Então, há uma vara de dowsing, e então aqui está uma vara de dowsing. Vamos copiar sobre o modelo de item da Inglaterra aqui para a haste de dowsing. E mude o nome aqui, vara de dowsing. E então também copiaremos a textura da haste de dowsing para a pasta de itens aqui. Vara de dowsing eles atrás. E agora isso deve ser tudo o que vamos precisar. No entanto. Vamos ver se funciona. Tudo bem, nos encontramos no Minecraft e, como você pode ver, o dowsing ou foi adicionado ao jogo. Vamos ver se eu clique com o botão direito do mouse. Bem, isso é uma ótima coisa de se ver. Seu, é claro que não é exatamente o que tínhamos em mente. Você não pode ver objetos de valor encontrados que funcionem totalmente bem. Esta é apenas a saída real é, claro, seria um pouco mais agradável de ler, mas não se preocupe. Podemos ver a posição real disso. E bem, quero dizer, isso é absolutamente perfeito. Isso parece estar funcionando totalmente bem. E tudo está bem. Agora, na verdade, há duas coisas que também devemos adicionar, e isso está nas propriedades do item, eu também devo adicionar a durabilidade aqui. E isso seria, digamos, por exemplo, 16, para que possamos usá-lo 16 vezes. E então também devemos nos certificar que realmente danificamos os itens. Então isso será feito fora da declaração if. Vamos dizer contextos P, ponto-ponto-ponto, colocar item na mão que doem e quebram. Por um. Vamos dizer que contextos P, ponto-ponto-ponto, pegue o jogador. Então vamos dizer que faça um parênteses onde colocamos o jogador aqui, depois uma, uma seta, e então dizemos transmissão de pontos do jogador, evento de quebra com o ponto da camada ser usado a mão do item. Então, isso basicamente adicionará ou subtrairá uma durabilidade cada vez que usarmos esse item. E então isso basicamente garante que tenhamos alguma durabilidade. Eles são algo que também não podemos empilhar a haste de dowsing, o que, claro, faz muito sentido. Vamos também, então, apenas por uma questão de argumento neste, vez de fazer o getName, vamos apenas fazer como item e, em seguida obter o nome do registro e depois colocá-lo em uma string. Isso também deve funcionar. Isso eu acredito, então, deve produzir dois pontos do Minecraft, e então qualquer que seja o bloco real, o que é totalmente bom também. Esses são apenas alguns ajustes aqui. Todo o código está, naturalmente, disponível para você em um repositório do GitHub e individual também. Mas isso seria para esta palestra aqui. Espero que você tenha achado útil em euros do novo, e eu te vejo na próxima palestra. Então, sim. 50. (Noções básicas de minecraft Basics: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um bloco avançado personalizado ao Minecraft. Semelhante ao item avançado. E o bloco avançado precisa de sua própria classe separada. Então, no pacote de blocos, clique com o botão direito do mouse em novo pacote chamado personalizado Mais ou menos, vamos clicar com o botão direito nova classe Java chamada bloco SPD. E o bloco de espírito terá a seguinte funcionalidade. Se prosseguirmos, teremos um efeito aplicado a nós. E esses são os efeitos de velocidade de movimento basicamente vão ficar mais rápidos. Agora isso amplia a classe de blocos, certificando-se de que escolhemos um bloco de nível mundial líquido do Minecraft. Muito importante. E então passamos o mouse sobre esse construtor credo combinando super. E se o parâmetro aqui não estiver mapeado, pode fazer é que possamos clicar nele, pressionar Shift F6 e, em seguida, escolher Propriedades aqui, apenas para que pareça um pouco mais agradável. E então o método que queremos substituir é o método passo no método. Então, vamos digitar isso e, em seguida, pressionar Tab dois. Complete isso. E mais uma vez, podemos clicar com o botão direito do mouse na classe de bloco e podemos ver, bem, muitos métodos diferentes que podemos substituir, provavelmente até mais do que no item. E é claro que não é isso porque também há uma interface de bloco I4 que tem ainda mais métodos que você pode substituir isso. Você pode ver que isso é loucura e muitos métodos eu recomendo. Mais uma vez, está aberto à experimentação. Você pode ver se eu comecei a digitar substituir aqui. Existe o método dos EUA que é usado para clicar com o botão direito do mouse ou bloquear. Existem métodos como adicionar efeito de aterrissagem em efeitos de corrida. Isso é uma coisa louca. O bloco de colheita pode colher o bloco. Isso é como para um item específico, Canvas colhe o bloco. Temos uma quantidade insana de coisas como você pode dizer claramente tudo. Há o método destruir, Há o método de texto do mouse da caneta e, em seguida, alguns deles estão obsoletos aqui. Agora, geralmente quando você tem um método obsoleto, como, por exemplo, o método onRemove ou US. O método dos EUA é um ótimo exemplo disso, nem sempre significa necessariamente que você não deve usá-lo. O que isso significa é que você não deve chamar esse método, incluindo o super legal. Mas isso é algo para ter em mente aqui. Mas para nós, estamos apenas interessados no método passo a passo. E o que queremos verificar aqui é basicamente Nós não estamos no cliente ou que será necessário digitar é exclamação P nível é do lado do cliente. Agora, esse ponto de exclamação aqui é extremamente importante. Ok, não faça isso sem isso porque sem o ponto de exclamação, estamos verificando um estrangeiro, os clientes que queremos estar no servidor. Temos que negar isso muito importante. Em seguida, queremos verificar se a entidade que pisou a entidade que pisou nisso é instância de uma entidade viva. Isso simplesmente significa que podemos lançá-lo sem problemas. Então, podemos dizer entidade viva. E a entidade é igual ao elenco de ponto da entidade E. E então, na maioria das vezes, sugerirá uma entidade viva já. Então isso é ótimo. E então o que podemos fazer é, se for uma entidade viva, podemos chamar efeito de adição de pontos. E aqui nós só queríamos chamar basicamente uma nova instância de efeito mob. Aqui passamos em uma multidão efeitos que o que quisermos, neste caso é velocidade de movimento. E então o segundo parâmetro aqui será o comprimento. Então esse é o momento que esse efeito tem. Se colocarmos um 200, isso seria 200 carrapatos. Então divida isso por 20 para obter a quantidade de tempo em segundos básico. E você também pode adicionar um terceiro parâmetro, e esse será o amplificador. Então este basicamente é um amplificador aditivo, o que significa que se você não tiver nada aqui, vai ser, você sabe, um, isso vai ser sp2, isso vai ser sp3 e assim por diante e assim por diante. Então essa é a ideia geral aqui. Vamos colocar um só para que possamos ver isso também. E bem, isso é praticamente tudo o que precisamos fazer no reino da funcionalidade para a força de bloqueio rápido. Agora ainda temos que registrá-lo. Vamos apenas copiar sobre o sono profundo cobol ou aqui e vamos chamar isso de bloco de sublinhado do SPD. E então o nome é a mesma coisa, bloco de sublinhado rápido. Então, muito importante. Mais uma vez, este é um bloco rápido desta vez e não um bloco normal. As outras coisas com as quais estou realmente feliz, agora só vem para os arquivos JSON que vou copiar. Todos eles estão disponíveis para você, é claro, no repositório do GitHub ou em um indivíduo também. Veja que este é apenas um modelo de bloco normal. Jason. Então vamos copiar sobre este aqui e dizer bloco de sublinhado ET. E então o nome será um bloco rápido como cópia sobre o modelo de bloco também. Mais uma vez, para algum modelo de bloco normal que, que aponta para uma textura. E o modelo do item também não possui nada louco ou espetacular. É apenas um modelo de item normal, como vimos para muitos outros blocos que simplesmente apontam para o modelo de bloco. Por último, mas não menos importante, é claro, vamos também adicionar textura e ego. Agora adicionamos tudo o que precisamos adicionar. No entanto, vamos ver se funciona. Ou ofensas de volta e enxaquecas podem ver que a SVD quebrou foi adicionada aos jogos. Vamos apenas configurá-lo para baixo. E o que é muito importante é que, enquanto essa seta aponta para essa direção, ela sempre apontará para essa direção não importa como eu a coloque. Vamos apenas ter isso em mente. Porque essa textura basicamente sempre vai apontar na mesma direção. Vamos ver em uma palestra posterior como isso pode mudar. Vamos para a escola aqui e você pode ver que eu já tenho velocidade para me candidatar enquanto estou lá. Vou fazer isso se aplicar a mim constantemente. Mas assim que eu sair, você pode ver agora que eu tenho velocidade também. Este pode ser um bloco muito legal, por exemplo, para qualquer tipo de mapa de aventura ou como mapa de parkour possivelmente borracha que já seria para esta palestra aqui. Espero que você tenha achado útil em termos da nova força. Mais uma vez, todo o código está disponível para você no repositório do GitHub ou em um indivíduo também. Vejo você na próxima palestra. Então, sim. 51. (Noções de basics de minecraft bass: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos adicionar um item de combustível personalizado ao Minecraft. Adicionar um item de combustível personalizado é, na verdade, bastante simples. No entanto, na verdade precisamos fazer uma nova aula para isso. Então, em nosso pacote personalizado aqui, clique com o botão direito do mouse em nova classe Java chamada item de carvão. E isso vai estender a classe do item. Vamos passar o mouse sobre essa criação, construtor combinando super. E então realmente a única coisa que precisamos fazer é precisamos substituir um método específico. E isso é D ter tempo de queima. Bem aqui. clicar duas vezes sobre isso e, em seguida, retornaremos o tempo que esse item real levar para gravar. Agora, para nossos propósitos, vamos fazer por um 100. Mais uma vez, esse é o tempo que leva, então isso é muito importante. E, por exemplo, o carvão tem um tempo de queima de 1600, então isso é exatamente 1 quarto, tão bom quanto as feridas. Agora vamos à nossa classe mais itens e vamos apenas copiar sobre a haste de dowsing. Esta será a lasca de sublinhado de carvão. E no mesmo ano o carvão sublinha lasca, certificando-se de que não temos durabilidade nisso. Isso é muito importante. E que estamos criando um novo carvão um item de lasca aqui. Além disso, isso é tudo o que precisamos fazer. Claro que ainda precisamos de um modelo de item. Vamos apenas copiar sobre o modelo do item do lingote de cobalto e chamaremos isso de “sliver” de sublinhado de carvão. E depois mudando este ano também. Legal, vamos sublinhar o fígado. Não se esqueça de adicionar a tradução também. Vamos sublinhar lasca. Pior nomear isso a força hepática do OLS. E, por último, mas não menos importante, como também copiar sobre o item também. Aqui mesmo na nossa pasta de itens para introdução, a pasta de itens de texturas que eles atrás. E isso é tudo o que precisávamos fazer. Então, vamos ver se ele funciona ou faz referência no Minecraft. E vamos ver a costa do marido adicionada. E é claro que funciona totalmente bem. E você pode ver que o fogo basicamente diminui bem, com bastante rapidez. Tudo considerado, deve ser basicamente 20 segundos que há queimaduras, então deve ser suficiente para exatamente dois itens. O cheiro completamente, basicamente exatamente 1 quarto do que o item principal real é que somos capazes de fundir. Então eu diria que é muito legal. Tudo bem, e isso é realmente o quão fácil pode ser adicionar o item de combustível personalizado ao Minecraft. E sim, infelizmente, o que você terá que fazer é sempre ter que fazer uma nova classe personalizada aqui, o que você também pode fazer em teoria é que você pode fazer uma aula anônima nos mais itens aqui. Mas eu apenas sugiro fazer isso assim porque isso é muito mais fácil de fazer. Vamos ser honestos, porque isso não é muito louco para fazer. E também deve estar bem. Você sempre pode fazer um novo pacote fantasiado como itens de combustível e, em seguida, basta colocar todos os seus itens lá dentro se você realmente gosta de irritado com isso, com essas aulas, Isso também deve ser possível. Caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. E eu vou te ver na próxima palestra. Sim. 52. (Noções de alimentos) item: Tudo bem, bem-vindo de volta à sala de curso forrageira 118. E nesta palestra vamos adicionar um item de comida personalizado ao Minecraft. Para adicionar um item de comida personalizado, na verdade, não é tão difícil. Você basicamente só precisa de um novo item normal. Então, só precisamos de um novo item aqui. E isso vai ser um nabo. E, claro, o mesmo acontece aqui, nabo. E então, quando precisamos fazer, precisamos chamar o método de comida de ponto aqui e passar algumas propriedades alimentares. Agora, em vez de adicionar essas propriedades alimentares na linha, o que vamos fazer é fazer uma nova classe e o pacote de itens clicar com o mouse em nova classe Java chamada “mode woods”. E então lá, você pode basicamente criar essa comida. O exemplo de baunilha seria a classe da comida. Então pressione Shift duas vezes e coloque alimentos aqui. Certifique-se de marcar a inclusão de itens que não são do projeto aqui. E então podemos abrir isso e eles vão, agora você tem basicamente acesso a todas as propriedades alimentares que Bonilla também oferece para que você basicamente possa saber o que você deve adicionar lá. Então, vamos adicionar nossa própria propriedade de comida aqui, então faremos uma estática pública. As propriedades finais e boas aparecerão. E então isso é igual a um novo alimento de festas que construtor. E vamos adicionar nutrição. Mas esse é o número de AF se encontra basicamente que você é restaurado. O modo de saturação é basicamente a coisa que acontece em segundo plano. E então, apenas para que você o tenha visto, você também pode adicionar um efeito aqui, como você pode ver se podemos apenas usar aqui um fornecedor de uma nova instância de efeito mob de, por exemplo, os efeitos móveis, essa velocidade de movimento ou digamos 200 ticks novamente. E então você também passa em uma probabilidade com que frequência isso acontece. Então, se você, por exemplo, disser, sabe o quê? Na verdade, só quero que isso aconteça 10% do tempo. Então você coloca no ponto 1 f. Então, no final, você sempre precisa terminar com um ponto construído aqui e o ego. E isso é basicamente o nabo feito. E agora este ano será chamado aqui. Vamos apenas dizer mod de alimentos que aparecem. E eles atrás, isso é tudo o que precisamos fazer para adicionar o item alimentar personalizado. Agora, é claro, ainda precisamos tanto da textura quanto do modelo de item arquivo JSON ls. Agora esqueça, e a tradução aqui também. Nabo é, claro, um verbo. E este será o modelo de item de nabo é um modelo de item normal, como vimos muito tempo agora, que simplesmente aponta para essa textura singular aqui. E bem, depois de ter adicionado tudo isso, vamos ver se funciona ou ofensivo no Minecraft. Então, vamos comer o nabo. Como você pode ver, foi adicionado e reabasteceu exatamente uma barra de fome. Então a ideia é que, claro, se você colocar duas, isso encheria duas metades, ou seja, um lago, uma perna de galinha, uma basicamente encontraria bar ali mesmo. Certo? Então é assim que pode ser fácil adicionar comida personalizada ao Minecraft. Certo? E isso se preocuparia pouco com esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. Vejo você na próxima palestra. Então, sim. 53. (Noções básicas de ferramentas) personalizadas: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar uma dica de ferramenta personalizada ao Minecraft. E o que é uma ferramenta personalizada? Bem, é exatamente o que você vê quando passa o mouse sobre um item específico. Mas antes de tudo, o que vamos fazer é adicioná-lo ao item da haste de dowsing porque geralmente precisamos de uma classe de item personalizada para isso. No entanto, também veremos como podemos fazê-lo e basicamente adicionados aos blocos também, porque isso é algo que muitas pessoas têm pedido no passado. Então eu queria mostrar isso também. Então, vamos começar substituindo o método append Hover Text aqui. Então, vamos apenas digitar uma caneta Hover Text e , em seguida, preenchê-lo automaticamente com a tecla Tab. E então não precisamos mais disso porque o que queremos é que queremos passar o mouse sobre a haste de dowsing real e então ela vai dizer algo como Redshift para obter mais informações. E então, quando pressionamos Shift, podemos basicamente ver a dica de ferramenta real. Mas como fazemos isso? Bem, vamos ver se tela isso como mudar para baixo, então vamos fazer outra coisa. Vamos fazer outra coisa. E a única coisa que vamos fazer é dizer que os componentes da dica de ferramenta adicionar pontos. Vamos usar um componente traduzível mais novo aqui. E a chave será ponto de dica de ferramenta, ponto, dowsing, rodada de sublinhado. Sobre, basta dizer dica de ferramenta, esse turno. Mais uma vez, muito importante. Essas chaves são consistentes com ele. Essa é a coisa mais importante. Neste caso. Acho que está tudo bem. Podemos simplesmente copiar isso. E então aqui embaixo vamos dizer sem o turno. Agora, onde definimos isso, mais uma vez, assim como fizemos aqui, apenas definimos isso dentro do arquivo JSON dos ienes. Assim como fizemos aqui em cima. Nós definimos isso no arquivo JSON da pontuação ENR. Nós só vamos fazer isso no fundo aqui, este. E então isso vai se parecer com o seguinte. Então, o turno um é aquele que realmente aparece quando você segura o turno. E vai clicar com o botão direito do mouse para encontrar objetos de valor. E vamos duplicar a linha pressionando Control D e remova o turno aqui. E então isso basicamente solicita que o usuário pressione Shift. E a maneira como podemos fazer isso é que podemos colocar um símbolo de parágrafo aqui, E, elevador e símbolo de parágrafo r. E isso fará com que isso seja uma cor diferente. Vou vincular os recursos, um ótimo recurso para basicamente ver esses códigos de cores. Eu recomendo dar uma olhada nisso. Basicamente, eles são os códigos de formatação que você também pode usar qualquer livro do Minecraft. Eu recomendo dar uma olhada neles porque então você pode basicamente colorir qualquer coisa que quiser e você pode torná-lo bem legal, tudo considerado. Mas sim, isso é realmente tudo o que precisamos para o item. Vamos então passar para os blocos. Os blocos são um pouco diferentes, mas também são bastante simples. Então, não vamos fazer isso para o bloco rápido, nós realmente vamos fazê-lo. Bem, vamos substituir esses dois métodos, certo? Então, o que isso significa? Bem, vamos apenas copiá-los antes de tudo, e depois vamos receber um erro porque, bem, temos dois métodos que correspondem a outros métodos. Mas o que podemos fazer é apenas adicionar um novo parâmetro aqui. E isso só vai ser uma corda. E essa será a chave da dica de ferramenta, então a mesma coisa vai acontecer. Então, vou copiar isso para o método do bloco de registro. E então você pode ver todos os trabalhos novamente. Porque então o que vamos fazer é também passar isso aqui. Então, a dica de ferramenta, ele será passado aqui. E então aqui, em vez de apenas criar um item de bloco normal depois deste, vamos fazer uma aula anônima. E então aqui podemos apenas anexar o texto do mouse. Então aqui o que vamos dizer é que vamos dizer adicionar pontos de dica de ferramenta. E então vamos dizer um novo componente traduzível com a chave de dica de ferramenta que passamos lá. E lá vai você. Agora isso só será chamado se realmente adicionarmos uma dica de ferramenta e ao final do bloco aqui. Então, se eu não adicioná-lo, então, ele só vai criar o bloco sem ele. Se eu adicioná-lo, posso simplesmente fazê-lo. Por exemplo, vamos fazer o bloco SPD porque isso não faz muito sentido. Então podemos dizer, por exemplo, ferramenta, ponta, ponto, fechaduras ou bloco. Isso realmente não importa. Bloqueio rápido, digamos, por exemplo. E isso adicionará uma dica de ferramenta específica com o bloco SPD. Só temos que agora colocar isso aqui também. Então, algo como ele fica muito acelerando assim. E isso também será exibido quando passarmos o mouse sobre o bloco SPD. Isso é, na verdade , o quão fácil pode ser adicionar isso também. Bem, blocos específicos também. Agora, não teremos a funcionalidade específica do turno de espera. Também poderíamos, naturalmente, acrescentar uma forma particular que também funciona. Mas qualquer modificação aqui, realmente com um pouco de conhecimento Java, tenho certeza de que você irá gerenciá-las também, certo? Então, agora depois de adicionarmos os dois, vamos ver se eles funcionam ou nos encontramos de volta ao Minecraft. Então, vamos ver, lá vai você. Desviando mais pressione a mudança de mais informações. É claro que funciona na guia sem criatividade ou no inventário real. E se eu segurar Shift clique com o botão direito do mouse para encontrar objetos de valor, exatamente como gostaríamos. E então aqui está o bloco SVD. Ele fica muito rápido, também mostra isso. Isso é realmente incrível e é praticamente o quão fácil é adicionar as dicas de ferramentas personalizadas ao Minecraft. Tudo bem, e isso já seria para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Se você o fizesse, eu agradeceria muito uma revisão sua. Caso contrário, eu o verei na próxima palestra. Sim. 54. (Noções básicas de minecraft Basics sobre tags: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra, vamos adicionar tags personalizadas ao Minecraft. Portanto, tags personalizadas, essas não são as tags de nome. Essas são, na verdade, tags sobre as quais falamos anteriormente com as etiquetas mineráveis e as etiquetas de ferramenta de agulha. Basicamente, o que vamos fazer é agora vamos criar não apenas nossa própria tag personalizada, mas também veremos como você pode adicionar tags ao namespace forge. E isso pode ajudar com a compatibilidade entre seu pacote de cursos MOD e outros meses MC, vamos clicar com o botão direito do mouse em novo pacote chamado pacote util aqui. E então lá dentro, vamos criar uma nova classe Java chamada de tags modelo Veeam. Agora, as etiquetas do motor terão a seguinte aparência. Então, isso é basicamente modelado após as tags de laranja aqui. Então eles têm basicamente duas classes estáticas, quando blocos classe e quando classe itens. E aqui também é muito interessante ver basicamente algumas das tags opcionais que elas já predefiniram. Basicamente, você também pode adicionar coisas. Então isso é muito bom. Eu posso recomendar dar uma olhada nisso. Então o que vamos fazer é dizer classe estática pública chamada blocos. E, abaixo, uma classe estática pública, itens legais. Eles atrás e agora, na classe de blocos, vamos precisar um ponto de tags estáticas privadas opcional nomeado tag of type block. Vamos chamar a tag do método com um parâmetro de nome de string. Vamos importar a classe de bloco, certificando-se de que escolhemos o bloco de nível mundial correto do Minecraft, é claro. E então podemos retornar o ponto de etiquetas de bloco lidas opcional com um novo local de recurso do nosso mod de curso MC, mod ID e o nome. Isso é tudo o que precisamos fazer. E então vamos copiar isso. E vamos chamar o outro, a etiqueta laranja está aqui. Criamos uma tag forjada. Em vez de r mod ID. Vamos passar no namespace Forge. E então podemos pegar os dois métodos e simplesmente copiá-los para a parte inferior aqui e apenas mudar isso para item, o mesmo com este. E então, em vez de etiquetas de bloco, temos tags de item. O ego e as classes são basicamente construídas. Agora a questão é, bem, o que queremos aqui? Bem, vamos primeiro adicionar nossa própria tag personalizada que será uma estática pública. As tags finais são tag nomeada opcional do bloco de tipo. E este será o sublinhado da haste de dowsing valioso, igual a um novo para marcar. E então diminuindo sublinhado, sublinhado batalha. Agora, o que isso faz? Bem, no momento, não faz nada, mas depois podemos referenciar isso e tudo o que estiver dentro dessa tag será avaliado de alguma forma. Para adicionar coisas à tag, vamos até núcleos MC e, em seguida, vamos criar um novo diretório aqui chamado tags. E então, dentro de lá, vamos apenas criar um novo arquivo. Na verdade, há esse nome, então dowsing, objetos de valor sublinhados de haste. E é muito JSON, muito importante que os nomes aqui correspondam. Minha vida um pouco mais fácil. Vou copiar sobre o, você sabe, a forma como a coisa está estruturada. E então eu também copiarei a totalidade do conteúdo. Todos eles estão disponíveis para você no repositório do GitHub e individuais também. Isso torna um pouco mais fácil aqui você pode ver basicamente eu tenho o cobalto ou assim como um monte de outros minérios aqui também. E você ainda pode ser como Sim, mas o que isso faz, ok, agora temos uma etiqueta para isso. Como podemos fazer algo com ele? Bem, no item da haste de dowsing, você se lembra que temos esse método de bloco valioso, onde tivemos que passar em blocos manualmente, por assim dizer. E agora o que poderíamos fazer é dizer mais tags que bloqueiam, esse gaussiano ou objetos de valor que contém bloco. E isso apenas retornará se o bloco que passamos aqui está contido na aqui está contido na etiqueta de objetos de valor da haste de dowsing, e é isso. Isso é tudo o que precisamos fazer. E agora podemos expandir isso praticamente infinitamente. Outros modos podem se expandir. Isso só torna nosso mod 10 vezes melhor em termos de compatibilidade. E enquanto estamos em compatibilidade nos itens, vamos adicionar também, final estático público, tags, ponto-ponto-ponto, etiqueta nomeada opcional, item ou lingotes de sublinhado de parafuso. E isso é igual a uma etiqueta forjada. Sob lingotes são ousados. E então vamos apenas duplicar isso. Eu também vou colocar as pepitas só para mostrar basicamente, então este seria o veículo dela. Agora, por que iríamos querer fazer isso? Bem, antes de tudo, há duas distinções que precisamos fazer. Se criarmos uma tag opcional aqui neste modo classe fiscal que não necessariamente faz nada. Isso só nos permite especificar ou referenciar certas tags que criamos como esta dentro do nosso código. Isso nem sempre é necessário, mas às vezes pode ser necessário. Então, para nossos propósitos, vamos criar uma nova pasta na pasta de dados chamada Forge. E então, dentro de lá, vamos criar uma nova pasta chamada tags. E então, dentro de lá, vamos criar uma nova pasta chamada itens. E então, dentro de lá, vamos criar outra nova pasta, lingotes antigos. E, finalmente, lá, clique com o botão direito do mouse em novo arquivo chamado cobalts JSON. Agora, mais uma vez, vou realmente copiar o conteúdo deste aqui para que tenhamos a estrutura tributária básica. E então eu só vou dizer MC curso, cólon ou parafuso sublinhado Inglaterra. Agora eu adicionei meu lingote de cobalto, a etiqueta forjada de lingotes de cobalto. Agora, o que o LSAT escrever assim não nos leva a lugar nenhum. Tipo, por que faríamos isso? Vamos dar uma olhada nisso. Se eu tiver uma receita na qual usei o inglês de cobalto, talvez nosso 1D ou outros modos que adicionam cobalto também, você sabe, para que isso também seja usado. Mas agora posso dizer em vez de item, digo tag e, em vez disso, digo forge, um novo namespace. Estamos sob lingotes de cobalto. Agora, qualquer coisa que seja adicionada a esta tag pode ser usada aqui para criar esta receita. E isso é insanamente poderoso, especialmente quando, você sabe, você tem um grande mod pack, você sabe, você quer torná-lo mais compatível entre si. Isso é uma coisa ótima, como muito legal. Definitivamente pense nisso, dê uma olhada nisso. E sim, isso é praticamente os dois, bem, razões significativas. Eu diria que você pode querer adicionar tags aqui, certo? Vamos adicionar mais uma coisa aqui. E isso vai ser um público que evitar chamado de método de registro. Como só precisamos registrar essas duas classes porque elas são inicializadores estáticos. Há alguns instáveis nos EUA. Eles são, nós só teremos um bloco de tags de registro com basicamente nada nele. Tudo bem. E o novo equipamento, e vamos chamar isso tags de item de cavalo. E aqui vamos chamá-lo de blocos, não bloquear tags e itens, registro de dados item 10. E que esse método de registro será simplesmente chamado aqui. Então, vamos dizer mais tags dot, qual é o ego, certo? E há, claro, um pequeno erro de digitação aqui. Então, na verdade, isso precisa estar na categoria de registros. Lá vai você. E então tudo deve funcionar bem. Então, agora vamos ver Para obras ou finanças ou pacote e Minecraft. Então, vamos ver se o cobol Ingrid funciona. E lá vai você. Claro que o artesanato ainda funciona. Isso é ótimo. Vamos pegar a vara de dowsing e vamos ver, lá vai você. Posso até encontrar coisas muito cedo e posso até encontrar coisas que não consegui encontrar antes, como o ouro do estado profundo ou, ou a profunda guerra de Redstone. Portanto, a tag real também funciona. Isso é ótimo, certo? Mais uma vez, todo o código está disponível no repositório do GitHub e individual também. Mas isso já será para esta palestra aqui. Espero que você tenha achado isso útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 55. (Noções básicas de tela) escadas e lab: Tudo bem, bem-vindo de volta ao curso florestal para 118. E nesta palestra, vamos adicionar escadas e lajes personalizadas ao Minecraft. Agora isso começa uma pequena seção, por assim dizer, de blocos que não sejam blocos como eu gosto de chamá-los. Isso incluirá, como eu disse, escadas e lajes, bem como cercas, cercas, paredes, botões, placas de pressão, a porta e o alçapão. Então, haverá basicamente as próximas quatro palestras. E bem, vamos começar. Então, na classe Modocs, o que vamos fazer é apenas copiar, digamos que o sono profundo ou aqui porque isso é um pouco mais fácil para nós no momento. E então vamos chamar isso de escadas sublinhadas de cobalto. E então aqui, é claro, também, sublinhados de cobalto, deles. Oh, então copie isso e faça as lajes fora dele. Então lajes, na verdade laje, muito importante , mas escadas, é Laurel e com a laje, é singular. E então aqui isso vai ser um bloco de escada, enquanto isso vai ser um bloco de laje. E o bloco realmente recebe um, outro primeiro parâmetro que será um aplicador de blocos ponto cobalto, ponto bloco ponto ponto obtém o estado de bloco padrão ou padrão. Este é apenas o bloco basicamente do qual as escadas são feitas. Isso vai ficar bem nisso. Vamos fazer os dois materiais metálicos apenas para que tenhamos isso. E depois, além disso, estou muito feliz com isso. Agora, a coisa sobre todos os blocos não bloqueados é que o registro real? Bem, isso é um ano bastante fácil. O que é realmente o máximo que eu diria, não necessariamente irritante , mas vai ficar chato quando chegarmos às portas e coisas assim porque haverá muitos arquivos JSON. Vamos apenas copiar os arquivos JSON antes do IRS e das lajes. Então, o que você vai antes de tudo, observe apenas abrindo as escadas de cobalto um, há muitas coisas aqui mais do que havia antes. Então, a primeira coisa que quero dizer é que todos os arquivos JSON estão disponíveis para você no repositório do GitHub ou em um indivíduo. Não digite isso. Isso é loucura, ok, não faça esse pior cenário. Se por qualquer motivo você não puder baixar algo para mim, você sempre pode ir para o Assets, Minecraft, então basicamente bibliotecas externas e cliente de microondas extra 181 e depois para o, para os estados de microbloco de ativos. E então você pode simplesmente pegar as escadas de Keisha, por exemplo. Você pode ver que eles são basicamente exatamente os mesmos. A única diferença aqui é o MOD ID e o nome. E vou te mostrar um truque rápido. O que você pode fazer é selecionar isso e , em seguida, pressionar Control R. E aqui, por exemplo, basta mudar o lema De. Se você tiver um ID de modelo diferente Substituir tudo e, em seguida, ele substituirá todos eles. mesmo com o nome das escadas reais, à direita, é selecionado pressione Control R e então você pode alterá-lo. Você tem titânio, por exemplo, Twitter para titânio e ego. Então isso é uma coisa muito boa de se ter. Eu recomendo fazer isso se você realmente quiser mudar alguma coisa, mas definitivamente não digitar isso, isso seria loucura. Agora, o que tudo isso está fazendo, certo? Portanto, temos variantes específicas aqui, e a variância é definida por propriedades de estado de bloco. Agora bloqueia as propriedades que vamos falar em uma palestra posterior por enquanto, vamos pensar na ideia de que certos blocos no mundo podem ter propriedades diferentes. Certo, isso não deve ser muito louco. E então, dependendo dessas propriedades, à direita, se as propriedades de revestimento Leste e a meia propriedade forem inferiores e as propriedades de forma à nossa esquerda, então vamos mostrar um determinado modelo com uma rotação específica aqui. E, em seguida, o bloqueio UV, apenas bloqueia basicamente a rotação da textura para que ela não gire com o bloco. Isso é que, você sabe, não é muito importante neste caso. Esses são realmente os mais importantes. E sim, isso é basicamente então aponta para um modelo diferente. E o que você verá é que temos as escadas de cobalto no interior e, repente, temos as escadas de cobol exterior e aqui temos apenas as escadas de cobalto. Então, o que você já deve ter adivinhado é que haverá vários arquivos de modelo de bloco para, bem, as escadas e também as lajes. Mas antes de adicioná-los, vamos realmente adicionar a tradução primeiro, só para que não a esqueçamos porque isso às vezes pode acontecer. Só vou copiar sobre o pedido vai ser a escada de cobol. E a laje de cobol será a laje de cobol. E aqui há branco e , em seguida, posso copiar sobre os arquivos JSON modelo. Então, o modelo de bloco Jason arquivos, como eu disse, todos eles estão disponíveis para você no repositório do GitHub ou em indivíduos também. Agora, esses só serão cinco. Na verdade, não é tão ruim. E a coisa sobre isso, eles mesmos são, na verdade, bastante simples. Como se você olhar para isso, por exemplo, não há nada muito louco, não é? Então o pai aqui é diferente, isso é laje. E então temos três texturas diferentes. Mas, na verdade, o OH aponta para o bloco de cobalto porque é claro a laje de cobol simplesmente se parece com metade de um bloco de cobol. E quando eles estão em cima um do outro, o que é chamado de bloco. Então eles vão e depois o mesmo com o primeiro. Parece exatamente o mesmo, exceto para os pais. Vamos também dar uma olhada nessas escadas apenas por causa da conclusão. E você verá rapidamente que, de repente, não é realmente tão louco. É só que os pais são diferentes. E o pai basicamente determina apenas a forma do bloco real que está sendo exibido. Você pode ter escadas que são escadas normais. Quando você adiciona escadas em um ângulo de 90 graus, você sabe que elas meio que têm uma forma diferente. Isso basicamente é literalmente o que os pais aqui fazem. E as texturas permanecem as mesmas. E se trata dos modelos de itens. Eles são, na verdade, bastante chatos. Todas as coisas consideradas, são apenas modelos de itens normais. As escadas apenas apontam para as escadas e a laje apenas aponta para a laje normal. Agora, o que é realmente legal é que não precisamos adicionar texturas porque todas as texturas que as escadas e as lajes usam são o bloco cobol. Portanto, você não precisa adicionar texturas. E com isso, isso está realmente bem, basicamente feito. Oh, eu acho que por causa de conclusão, vamos ver se funciona ou se referir em microfinanças pode ver tanto as escadas quanto esses laboratórios foram adicionados com sucesso ao jogo. E tudo aqui está funcionando muito bem. Posso colocá-los bem da maneira que eu quiser. Então, isso não é ótimo? Isso é realmente o quão fácil é adicioná-los ao Minecraft ou onde quer que já seja para esta palestra aqui. Espero que tenha sido útil no novo, mais uma vez, todo o código no arquivo JSON esteja disponível no repositório do GitHub, onde um indivíduo acaba. E te vejo na próxima palestra. Então, sim. 56. (Noções de bastimentos personalizadas e chapões de pressão: Tudo bem, bem-vindo de volta ao curso florestal para 118. Nesta palestra, vamos adicionar um botão personalizado e uma placa de pressão ao Minecraft, certo? Então, mais uma vez, as placas de botão e pressão são realmente bastante simples, ou o registro em si é apenas os arquivos JSON que são um ano louco. Mas vamos apenas adicionar um botão aqui e, em seguida, todo o botão salvar. Este será um bloco de botão de pedra porque não há bloco de botões de metal neste caso. E então muito importante, o que também precisamos de uma chamada é que precisamos chamar a não colisão aqui. Mas podemos basicamente percorrer o bloco sem problemas. E então, para a pressão do cobalto sublinhado tarde. E aqui, o sublinhado móvel, pressão sob o roteiro atrasado, é claro será um bloco de placa de pressão 0. E isso, na verdade, leva um outro primeiro parâmetro, que será a sensibilidade. Só vamos escolher tudo. No botão do meio do mouse, clique no bloco da placa de pressão. O método de intensidade do sinal aqui é basicamente responsável pela sensibilidade. Como você pode ver, há um interruptor aqui , tudo e mobs. E uma ideia geral é que, se você realmente quer ter uma sensibilidade diferente, você pode conseguir esse método sobrepondo basicamente e, em seguida, mudar um monte de coisas aqui. Recomendo muito algum conhecimento Java que definitivamente é necessário para fazer isso e ser, ter algo de trabalho, mas deve ser viável, certo? Então, agora vamos passar para os arquivos JSON. Isso primeiro de tudo realmente adicionou a tradução porque isso vai ser, bem, a coisa mais fácil vai levar isso rapidamente para que você possa ver o botão de cobalto e a placa de pressão cobol e, em seguida, os arquivos JSON loucos. Agora, mais uma vez, todos eles ainda estão disponíveis para você no repositório ou em um indivíduo tão bem quanto sempre. E isso vai ser loucura. Então, a placa de pressão na verdade, quero dizer, isso é como, bem sagrado. Escrevê-lo seja falso, então, ligue ou não. E então, ou mostramos a pressão para baixo ou a placa de pressão normal, há o suficiente. E o botão? Bem, o botão é um pouco mais louco. Então o botão aqui, como você pode ver, como mais uma vez em três propriedades de data de blocos diferentes, e dependendo deles, basicamente mudamos, em primeiro lugar, para que modelo ele aponta e também a rotação aqui. Então isso é muito louco. Mas, felizmente, o botão tem apenas três modelos de blocos diferentes, enquanto a placa de pressão, como vimos, só tem dois. Então, mais uma vez, trabalhe às cinco. Vamos copiá-los e vamos dar uma olhada neles. Mas, no geral, a placa de pressão, como você pode ver, mais uma vez, apenas aponta para a textura do bloco de cobalto é apenas um pai diferente. Então o modelo de bloco Jason está aqui, não é realmente interessante. O mesmo com todos os botões. Não é nada muito louco. Portanto, isso é algo que vai ser uma espécie de coisa que acontece para a maioria dos arquivos JSON de modelo de bloco diferentes reais para os blocos que não sejam blocos. Eles não são realmente tão interessantes. Há apenas muitos deles para que você possa basicamente definir qualquer coisa que você gostaria. E isso praticamente também se estende aos arquivos JSON do modelo de item. Você pode ver isso inventário geral do bloco e isso apenas aponta para a placa de pressão normal. Mais uma vez, não precisamos adicionar nenhuma textura é porque todas as texturas para as quais ela aponta sempre serão o bloco de cobalto. Portanto, na verdade já terminamos. Mais uma vez, tudo o que você pode copiar da essência. Então, o GitHub, eu recomendo isso. E vamos ver se funciona ou por que achamos suspeito em micro. Como você pode ver, tudo foi adicionado e também funciona totalmente bem. Isso não é ótimo? Você pode ver tudo funcionando exatamente como você esperaria. E isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 57. (Noções de a a carca e correios de cercas e paredes: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos adicionar cercas , cercas, portões e paredes personalizadas ao Minecraft. Então, isso é mais uma vez, um exercício bastante simples. Todas as coisas consideradas. Há, Vamos apenas entrar na classe mais blocos e vamos antes de tudo copiar o botão três vezes aqui. E esta será a cerca de cobalto. E então, é claro também serão as canetas promotoras. Isso vai ser uma cerca. Olha, esta vai ser a cerca em oito. E isso é, claro, também o portão sublinhado da cerca, que é uma cerca de oito blocos. E então o último será um muro de futebol. Parede aqui também. E isso é, claro, um livro de parede. Agora vamos tirar a não colisão aqui. Isso seria bom, não a melhor coisa se as cercas de repente não tivessem colisão meio que derrotariam o propósito delas. E o resto vai ficar totalmente bem aqui. Agora, mais uma vez, os arquivos JSON estão onde estão. Vamos antes de tudo, a tradução só para que tenhamos, então não precisamos mais nos preocupar com isso. Vou copiá-lo para a cerca de cobalto que os fãs de desacoplamento entram na parede de cobalto aqui. E, em seguida, vamos adicionar o bloco s3 não está longe, pois todos eles estão, claro, mais uma vez, disponíveis para você no repositório do GitHub ou em um indivíduo também. E você verá que isso é realmente um pouco diferente. Então, vamos antes de tudo dar uma olhada no portão da cerca. Mais uma vez, ele tem três blocos diferentes. É perímetros ou propriedades boxy, e apenas aponta para diferentes modelos de blocos. Nada de novo que ainda não vimos nas duas últimas palestras. Mas a cerca no entanto e a parede. Essas são diferentes porque são multipartes. Agora com várias partes. A ideia geral é que, bem, como você pode ver isso aqui, certo? E a primeira multiparte que aplicamos esse modelo. E esse modelo sempre será aplicado se isso for sentado. Agora, quando uma determinada propriedade Roxy é verdadeira, neste caso, se algo for verdadeiro, aplicamos uma outra propriedade. Você é outro modelo aqui. E neste caso , será o lado que você sabe que, se você definir poste da cerca por si só e, em seguida, adicionar um poste de cerca ao norte. Na verdade, adicionamos o site depois. Mas isso é uma coisa legal muito frequente que é assim que funciona. E esta é, na verdade, uma maneira muito simples de fazer isso. No entanto. Isso é definitivamente um pouco diferente. Vou recomendar apenas verificar, dar uma olhada nisso. Na verdade, não deve ser muito louco entender todas as coisas consideradas. Acabamos de adicionar modelos diferentes, dependendo se algo é basicamente um vizinho. Basicamente, a ideia. Agora isso tem, no entanto, também a coisa adicionada que, bem, haverá muitos arquivos Jason agora. Então, vamos apenas copiar sobre todos eles porque isso vai ser uma loucura. Nós temos todos eles. Basta copiá-los mais de 11 deles no total. Agora, vamos dar uma breve olhada neles porque honestamente eles são todos muito chatos. Basicamente, sempre será o pai diferente. Você pode ver claramente o tempo todo que levamos o ponto para a mesma textura aqui. Você pode ver que só vai ser o pai que é diferente. E basicamente a mesma coisa vale para todos os outros. Sempre apontamos para a mesma textura é apenas o pai que é diferente. Eu poderia apenas mais uma vez, recomendo se houver algum interesse em outros arquivos JSON. Basta ir até as bibliotecas externas, unidade, cliente de microondas, dinheiro extra TIN, e apenas dar uma olhada em todo o rastreamento e rapidamente aqui na pasta de ativos Minecraft, você pode ver todos os arquivos JSON de modelo de bloco. Você veria tudo isso, o bloco diz arquivos JSON. Então, tudo está basicamente disponível para você aqui também. Isso recomenda copiar coisas e não digitar tudo, especialmente se você tiver várias paredes e coisas assim. Isso seria apenas uma loucura, certo? Vamos também obter o modelo de três itens Jason sentiu sobre n. Esses não são todos muito loucos porque temos algum inventário de cerca de cobalto e inventário de parede legal. Esses são basicamente eles são referenciados aqui. E então este é apenas o portão normal da cerca de cobalto. E mais uma vez, como todas as texturas usam a textura do bloco de footwall, não precisamos adicionar texturas. Agora, há mais uma coisa que precisamos adicionar para que as cercas e uma valsa funcionem corretamente. E isso vai ser tags. Então, dentro das tags do Minecraft, tag de blocos ou pasta de blocos, quero criar um novo arquivo chamado de ponto de cercas JSON. Mais uma vez, vou copiar a estrutura que você acabou. E este vai ser o curso MC, booleano, cerca de sublinhado de cobalto. Então eu vou pegar isso e vou arrastá-lo para cá enquanto segura o Controle. E vou chamar isso de paredes. E esta será a parede de cobalto. Se eu não tiver isso, as cercas e as paredes não se conectarão umas às outras. Mas isso também é muito importante. Precisamos disso. Mas se adicionamos isso e o resto, então vamos ver se funciona. Ou se eu estivesse em um asic migrante e veja que tudo foi adicionado com sucesso e tudo parece ótimo. Você pode defini-lo O próximo um do outro. Exatamente como o que esperaríamos. Então, eles atrás, tudo funciona bem onde quer que já seja para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo, e eu te vejo na próxima palestra. Então, sim. 58. (Noções de (Minecraft portas personalizadas e Trapdoors: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar uma porta personalizada e um alçapão ao Minecraft. Então, vamos abrir a classe de caixa de correio e vamos pegar a parede de cobalto. E em vez de cobalto, esta será a porta sublinhada da flor de Sherry sublinhado. O mesmo, é claro, no nome. Então, neste caso, na verdade teremos um material diferente, bem, diferente aqui porque não estaremos fazendo portas de cobalto, mas da madeira que vamos adicionar em uma palestra futura. E o que é muito importante aqui é que adicione o carvão sem oclusão e também que estamos fazendo o material , porque se fizermos o material de metal esta porta funcionará como uma porta de ferro. Se fizermos isso, podemos abri-lo clicando com o botão direito do mouse. mesmo vale para o alçapão sublinhado de flor de cerejeira. Só vou copiar o nome aqui e adicionar a armadilha aqui na frente. E este é então um bloco de porta de armadilha. Estou aqui certificando-se de que esse material que iria e, em seguida, adicionando a não oclusão também. Na oclusão, o frio aqui é necessário porque temos valores alfa na textura real. E por causa desses valores alfa, na verdade também precisamos entrar em nossa aula de mod de curso MC. E dentro de lá precisamos criar um novo método. Então, vamos fazer um novo vazio privado chamado o método cliente que up com um conjunto final de eventos ou eventos do cliente FML. E então dentro daqui, vamos chamar tipos de renderização do bloco de itens, que disse renderizar mais tarde. Para os blocos de modo, ponto, flor de cerejeira, dor dot obter com o tipo de renderização que adulto, duplique a linha. E então aqui se certifica de que os alçapões se ajustem. Agora isso ainda não é chamado porque o que precisamos fazer é dizer Barramento de Eventos, adicionar ouvinte, esta configuração de dois pontos e duas linhas. Depois que isso foi feito, agora os clientes FML reais que têm método são chamados aqui, o método e, em seguida, essas tribos de renderização estão sendo configurados corretamente antes de adicionarmos todos os arquivos JSON loucos, vamos antes de tudo, adicione a tradução aqui. Muito simples, nada muito louco. E agora vamos para os arquivos JSON. Então, antes de tudo, é claro, o bloco afirma Jason. Então esta seria apenas a porta e o alçapão que você vai. Então, mais uma vez, é claro, há muito loucos. Na verdade, a porta tem quatro propriedades de estado de bloco diferentes, como você pode ver. Então, mais uma vez, todos os arquivos adjacentes e todo o código estão disponíveis para você no repositório do GitHub ou em um indivíduo também. Eu recomendo copiá-los quando se trata dos modelos de blocos. Bem, estamos em um deleite porque serão sete deles novamente. Então isso vai ser muito louco. Agora, estes são um pouco diferentes, como um pouco mais complicado , mas também não tão ruim. Assim, você pode ver mais uma vez, que difere mais como o pai. Agora, porque as portas são duas partes, por assim dizer, temos uma textura superior e inferior. Você pode ver uma porta de flor de cerejeira e um fundo de porta de flor de cerejeira. E então a dobradiça aqui você pode ver que é apenas um pai diferente. Mas, no geral, mais uma vez, isso dá uma olhada neles, basta passar por eles um pouco. Você sabe, como eles se parecem, eles não são muito loucos no geral. O item e os modelos também são interessantes. O alçapão deve ser apenas um modelo de item normal. Mas podemos ver isso. Isso apenas aponta para a bacia do modelo de bloco ao longo deste ano, a porta realmente aponta para uma textura de item específica. A porta realmente tem uma textura específica para o item também. Então, vamos, em primeiro lugar, uma cópia da textura do item aqui. E então, é claro, também precisamos das três diferentes texturas de flor de cerejeira. Então esta pode ser a parte inferior da porta, superior da porta e as texturas do alçapão. Agora, isso é realmente tudo o que precisamos fazer. Muito importante é essa configuração do cliente aqui, que vamos precisar nas futuras palestras também. Mas toda vez que temos um bloco que ele não preenche a totalidade do espaço de estado do bloco de raios X, por assim dizer, basicamente precisamos adicionar isso também. Então isso é muito importante. Caso contrário, vamos ver se funciona. Ou se eu suspeitar e os microRNAs podem ver tanto a porta da cereja quanto a flor de cerejeira presa ou foram adicionados ao jogo. E posso clicar com o botão direito do mouse e abri-los. Quem disse que eu com qualquer outra porta ou alçapão à base de madeira? Então isso é muito legal. Borracha, isso já seria para esta palestra aqui. Espero que você tenha achado útil e alerte o Novo. E te vejo na próxima palestra. Então, sim. 59. (Sobre sobre ferramentas) criando um novo conjunto de ferramentas: Tudo bem, bem-vindo de volta ao quarto curso para 118. E nesta palestra, vamos adicionar um conjunto de ferramentas personalizado ao Minecraft. Então isso incluirá a espada, a picareta, a pá, o machado e o todo. Na verdade, vamos criar uma nova classe personalizada e o pacote de itens ou os níveis modernos. Porque o que precisamos definir é um nível personalizado. Felizmente, a forja facilita muito para nós. Podemos apenas dizer final estática pública forjada aqui chamada cobalto, que é igual a um novo forjado aqui. E então só precisamos passar muitos parâmetros. O nível reduz a velocidade, o bônus de ataque e o bônus de dano da etiqueta, o valor do presidente. Então precisamos passar etiquetas de bloco. Dot precisa de ferramentas de ferro e, em seguida, apenas um fornecedor de um gradiente. E vamos dizer ingrediente de mais itens, ponto, ponto obter. E vou explicar agora. Então, o que está acontecendo aqui? Isso é loucura, na verdade não é tão louco. A primeira coisa é, claro, um nível. Este é apenas o nível que basicamente esse item aqui representa esse nível. Então podemos realmente entrar nisso e você pode ver que há um monte de coisas aqui. E o nível basicamente representa, você pode ver aqui, basicamente representa a ideia de, ei, essas ferramentas de pedra, ferramentas ferro ou ferramentas de diamante? Esse é basicamente o nível geral, a ideia geral do nível aqui. E temos o número de usuários. Portanto, isso é exatamente quantos usos esse item tem. No entanto, a Durabilidade, basicamente, a velocidade deve ser bastante autoexplicativa. Há apenas a velocidade do item real. O bônus de dano de ataque é apenas um bônus para atacar. Isso fica, vamos realmente colocar isso em 3 e o valor do Chairman é apenas canal. Estas são as tags de bloco. Você é eu não tenho 100% de certeza, mas acredito que isso é mais uma vez, se reduz ao que essa lágrima forjada real ou esse nível de ferramentas pode basicamente minerar aqui. E então o último, o fornecedor do ingrediente aqui, é basicamente apenas o ingrediente que você pode usar para reparar os itens dessa largura de camada. Então, agora que temos isso, podemos ir para a classe mais itens e posso começar a basicamente dar o turno aparecer. Vamos pegar este aqui e vamos fazer disso a espada sublinhada de cobalto aqui também. Sublinhado de cobalto armazenado. Vamos nos livrar do ano inteiro. Isso é meio importante. E isso vai ser um item de tabuleiro. O primeiro parâmetro será mais lágrimas ponto cobalto. O segundo parâmetro é o modificador de dano de ataque. E o terceiro parâmetro será o modificador de velocidade de ataque. E depois vêm as propriedades reais que ficarão bem. E vamos duplicar isso cinco vezes e depois pegar as outras. Então, vamos ter a picareta de parede ou o parafuso grande X aqui também. Este é um item de picareta. E temos a viagem que viajará aqui também. E este é um item de pá. Vai ser o robô atua. E o cobalto também age aqui. Claro, Item. E então, por último e certamente menos o cobalto OMS. Mas é claro que temos que colocar a coisa toda aqui, que é o cobalto OMS e um item inteiro, certo? Então, geralmente você pode, é claro mudar esses números, certo? Você pode ajustá-los. Então, por exemplo, o caseiro não tem modificadores adicionais aqui. O ACS pode ter, você sabe, este, mas, portanto, como talvez um negativo seja modificador ou apenas como dizer um modificador 0 aqui. E o resto vai ficar bem. Então isso é algo que você definitivamente tem que brincar com altamente recomendo apenas jogar, estar aberto à experimentação com os números aqui. Porque isso é apenas equilibrar basicamente o modelo. E, no geral, isso é praticamente o, você sabe, o registro feito. Agora só precisamos da tradução aqui, mas vamos adicionar a tradução. Só vou copiar isso. Isso deve ser bastante autoexplicativo, certo? Assim como vimos um milhão de vezes, já poderia falar. E então os modelos de itens têm uma coisa em particular que é um pouco diferente com eles, o que eu mostrarei quando eu copiá-los mais uma vez, tudo isso está disponível para você em o repositório do GitHub ou indivíduo também. Você pode ver que o pai aqui é o item de barra de mão. Isso é muito importante, caso contrário, o extra não será exibido em 3D em visualizações de terceira pessoa. Portanto, é muito importante que você tenha o item pai de mão aqui. E, de outra forma, agora podemos copiar as texturas também. Todos os cinco também, eles vão. E isso é praticamente tudo o que precisamos fazer para adicionar as ferramentas personalizadas ao Minecraft. Então, vamos ver se funciona. Tudo bem, nos encontramos de volta em microfinanças e vemos que todas as ferramentas foram adicionadas com sucesso. Então, vamos ver se eu posso realmente minerar coisas com ele. Portanto, este ano, é claro, não funcionará neste caso porque definimos isso como nível um. Então isso deve funcionar. No entanto, vamos ver uma chance. Isso funciona totalmente bem. Então isso é um bom sinal, é claro. O pássaro também deve funcionar. Definitivamente não há muito rápido, mas isso é totalmente bom, é claro. E, em seguida, clicar com o botão direito do mouse aqui também funciona com esse botão direito A remoção dos logs deve funcionar bem definida, mesmo com o caminho. Tudo aqui realmente vai ser apenas cinco pela velocidade, é claro, é definido aqui. Então, isso seria, você quer aumentar a velocidade desse sem rasgo real e o nível aqui, você pode fazê-lo assim. E então o que você também pode fazer está no forjado aqui, se você pressionar o nível aqui e depois pressionar Control H e ver as lágrimas do próprio Minecraft. E você pode basicamente dar uma olhada em todos os valores de baunilha das ferramentas aqui. Para isso, você pode basicamente alterá-los e copiar alguns deles, certo? Mas eles já seriam para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo e eu te vejo na próxima palestra. Então, sim. 60. (Tudo sobre sobre ferramentas) fazendo uma ferramenta de várias (Paxel): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um item personalizado da Paxil ao Minecraft. Isso é exatamente certo. Vamos adicionar um tipo de multi-ferramenta de testamento ao Minecraft. E para isso precisamos de uma nova classe e do pacote personalizado que será o item Paxil, que vai estender o item escavador aqui. E isso implementará a venerável interface. Vamos passar o mouse sobre ele e criar um construtor combinando super. Agora, na verdade, teremos que mudar isso um pouco porque não precisamos de nenhum desses. Porque esses dois parâmetros realmente vão bem aqui. Devemos fazer algo assim. E, em seguida, o marcado para os blocos realmente vai desaparecer porque vamos adicionar isso às nossas tags de modelo agora. Então, a maneira como estamos fazendo isso é que vamos para a nossa classe de impostos automotivos. Então vamos apenas copiar os objetos de valor da haste de dowsing. E aqui vamos tornar isso o sublinhado de Paxil minável. E então o nome disso será a barra minável Paxil. E isso agora será referenciado aqui. Então mod tags, blocos escuros. E assim, tudo deve estar totalmente bem, certo? E agora essa aula deve estar completamente concluída. E o melhor é que definimos essas tags aqui, bem, o que podemos fazer é agora entrar em nossa pasta de dados do corpo C, para as tags, os blocos e, em seguida, clicar com o botão direito do mouse em novo diretório chamado mineable. E então, dentro de lá, vamos criar um novo arquivo chamado Paxil, esse JSON. E então o que vamos fazer é eu apenas copiar este aqui por uma questão de argumento apenas para que tenhamos a estrutura básica da tag. E você pode dizer que é, bem, agora temos que entrar no item picareta e só temos que adicionar tudo isso. Saiba, o que podemos fazer é também adicionar tags em tags. Mas o que temos que fazer é que temos que dizer hashtag Minecraft. Portanto, esse é o namespace da tag que queremos adicionar. E, em seguida, barra minável, barra minável, escolha X, por exemplo. E então vamos apenas copiar isso. Vamos fazer o ACS, adicionar vírgulas aqui e depois colocar em pá aqui. Então nosso Paxil será capaz minerar tudo o que uma picareta pode, um axônio e uma pá. E a melhor coisa aqui é que porque nós o adicionamos tal forma que estamos referenciando as outras tags. Se um modo diferente adicionar coisas a essas tags, bem, o item Paxil também funcionará para esses blocos também. Então essa é a coisa muito legal. Agora, como criamos o item Paxil real? Bem, muito fácil. Vamos apenas copiar o cobalto OMS e vamos chamar isso de cobalto Paxil ou qual camada de pacotes também. E então isso só vai ser um item Axl. E é isso. Lá vai você. Paxil está pronto. Isso é, na verdade, o quão fácil é. Na verdade, não é tão louco. Então, é claro que você precisa saber basicamente que você pode usar tags diferentes em suas próprias tags e coisas assim. Mas, no geral, isso é bastante simples. Há um particular, bem, que é uma limitação que o item de pacotes tem e não tem funcionalidade de clicar com o botão direito do mouse. Agora você pode adicionar a funcionalidade do botão direito do mouse. Se clicarmos no item do escavador e pressionarmos Control H, poderíamos, por exemplo, entrar em todo o item. E você pode ver aqui os EUA com o botão direito do mouse no método. E você poderia anular isso, e você poderia colocar coisas diferentes lá. Você poderia dizer, ei, vamos fazer uma ação padrão, inteira, assim por diante e assim por diante. E então faça a mesma coisa para, por exemplo, se você se esgueirar, então você pode clicar com o botão direito do mouse e, em seguida, ele faz o caminho, você sabe, alguém assim, e depois clicar com o botão direito do mouse. E você também pode adicionar o botão direito do mouse com a funcionalidade AKS. Não vamos fazer isso neste exemplo aqui. Este será apenas um item da Paxil, um item de várias ferramentas que basicamente será mina L2, vários tipos diferentes de caminhadas. Vamos também adicionar a tradução aqui. Isso deve, claro, não ser muito louco. É só o cobalto Paxil, claro. E então o mesmo para o modelo do item, nada muito louco. Só vai ser o cobol Paxil que aponta para o cobalto Paxil extra, que eu, claro, também tenho. Esta é uma textura a, B, a, uma textura legal que veremos no jogo em apenas um momento. E bem, isso é realmente tudo o que precisamos para adicionar o item de barra invertida ao jogo. Então, vamos ver se funciona. Ou inferências de volta e migrantes podem ver que o item de barra invertida foi adicionado e parece absolutamente ótimo. Então, vamos ver. Lá vai você. Eu posso usá-lo como uma pá, exatamente como você esperaria. Vamos ver se eu posso minerar esses blocos também. Eles podem demorar um pouco mais, mas no geral, ainda posso minerá-los perfeitamente bem. E então vamos realmente encontrar algo. Mas este agora deve funcionar porque, mais uma vez, o nível de cobalto não é alto o suficiente. Mas se nós apenas cavarmos um pouco, devemos ser capazes de encontrar pedra aqui. E então pedra eu deveria ser capaz de minerar também e eu deveria pegar paralelepípedos. Lá vai você. Eu tenho alguns paralelepípedos. Então, como você pode ver, tudo está funcionando aqui. Totalmente bem. Item Axl, absolutamente. Incrível, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 61. (Tudo sobre ferramentas) armas que aplicam efeitos: Ou voltarei ao curso de forragem por 180. E nesta palestra, vamos adicionar uma ferramenta que adiciona um efeito ao mapa que está sendo atingido. O que isso realmente significa? Bem, vamos passar por isso e ver o que isso realmente significa no pacote personalizado. Clique com o botão direito do mouse em nova classe Java ou este será o item de espada de levitação. E isso estenderá que o item da espada passará sobre este construtor creed combinando super. E então o que faremos é substituir o método inimigo ferido. E a única coisa que precisamos fazer aqui é precisamos dizer p efeito de adição de ponto atacante, nova instância de efeito mob, efeitos de mob, não levitação, digamos para 200 ticks. E então o, após os primeiros parênteses P atacante como fonte basicamente do ataque aqui. E isso é praticamente tudo o que precisamos fazer para as ideias que vamos adicionar um que realmente será alvo aqui ou há um dia, o alvo no Effect. E então aqui P atacante. Então a ideia é que quando machucarmos um inimigo, vamos adicionar os efeitos de levitação a esse inimigo quando o atingirmos com esse tipo específico. Isso é algo que muitas pessoas pediram anteriormente. Mas é por isso que eu mostro isso. Na verdade, é muito, muito simples fazer isso. Agora, você, é claro, precisará usar essa aula aqui. Por exemplo, aqui para o nosso tipo de cobol, podemos dizer item de classificação de levitação aqui. E agora toda vez que atingimos uma entidade ou um animal com o item de classificação de cobalto, ele deve ter levitação por dez segundos. Isso seria muito engraçado, mas vamos ver se funciona. Ou seu farmacêutico de volta ao Minecraft. Então, vamos ver se eu bati no animal que eles tinham, ele fica levitação e deve ficar por dez segundos. Embora eles estejam flutuando na urina. Então, em algum momento, eles vão cair de volta para a Terra. E isso realmente resultará na morte também. Então isso é meio engraçado. É um efeito legal da espada de levitação pode não ser basicamente o mais interessante, mas há muitas idéias, efeitos diferentes que você pode basicamente adicionar ao golpe com sua arma personalizada, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda sobre o novo e eu o vejo na próxima palestra. Então, sim. 62. (Sobre sobre ferramentas) criando um novo conjunto de Armor (de armor: Ou eu dou as boas-vindas de volta ao curso de forragem para 118. Nesta palestra, vamos adicionar um conjunto de armadura personalizado ao Minecraft. Muito semelhante às ferramentas personalizadas para o conjunto de armaduras, na verdade, precisamos criar uma nova classe. Isso vai estar em nosso pacote de itens. Clique com o botão direito do mouse em nova classe Java chamada materiais de blindagem de modo E isso implementará a interface do material de armadura e será um enum. O que faremos é clicar no botão do meio do mouse sobre isso e, em seguida, pressionar Control H para chegar aos materiais de blindagem aqui. E o que eu vou fazer é basicamente clicar no topo aqui, direto para o suporte inicial, ir até o fundo, segurar Shift e, em seguida, clique na parte inferior e pressione o controle C para copie tudo e, em seguida, Controle V para colá-lo. Agora vamos nos livrar desse aqui. E, acima de tudo, a única coisa que precisamos fazer é que precisamos mudar o nome do construtor aqui. E isso vai ficar bem. Agora, a única coisa que não temos é que não teremos os nomes dos parâmetros aqui mapeados. Agora você pode mapeá-los você mesmo. Basicamente, você pode clicar em Shift F6 e renomeá-lo direito para nomear. E então você pode passar continuamente, mas realmente não é necessariamente necessário. Na verdade, vou copiar sobre o construtor porque, na verdade tenho isso preparado da maneira mapeada. Materiais eles atrás. E lá vai você. Então, a única coisa que não funciona é isso porque, em vez de ser um valor carregado preguiçoso, vamos fazer disso um ano preguiçoso. E então tudo aqui deve funcionar bem, mas o resto deve estar bem. Isso, é claro, tudo disponível para você no repositório do GitHub ou em um indivíduo também. Portanto, não se preocupe lá. E bem, o que isso faz? Bem, primeiro de tudo, podemos ver todos os valores de baunilha aqui. E porque isso é um enum, é muito legal porque isso não é avançado. Você sabe, até podemos definir vários valores diferentes aqui. Digamos que, por exemplo, nosso cobalto vai estar no nível do ouro. Mas digamos que você saiba o que, vai ter um pouco mais de durabilidade é, digamos algo como 13. Talvez a interoperabilidade seja um pouco menor, mas não muito menos, como talvez como 21, algo assim. O eclipse do objetivo está bom. Talvez até tenha um pouco de dureza. Eu não sei, como 0,5, sem resistência a batidas. E os ingredientes para consertá-lo serão mais itens ponto, ponto obter. E então o resto não precisamos mais. Isso vai ser cobalto. E então o nome aqui, é claro, também tem que ser cobalto. E esses valores aqui são interessantes porque esses valores você pode ver que é o terceiro parâmetro, é um array inteiro chamado de proteções de slot. Agora, proteções lentas são basicamente as proteções de cada peça de armadura diferente. Isso começa na parte inferior. Então, estas são as botas, leggings, a placa do peito e depois o capacete. Isso é muito importante. E talvez queiramos mudar isso um pouco, talvez algo assim. Talvez o Talmud seja, na verdade, um pouco mais forte. A placa torácica também e o ego. Mas, mais uma vez, quando se trata dos números, brinque com eles, esteja aberto à experimentação. Se você quiser realmente equilibrar seu modo, vai ser, você terá que brincar com isso de qualquer maneira. Portanto, não se preocupe lá, há, no entanto, mais uma modificação que precisamos fazer, e isso está no método getName aqui. Porque o que queremos retornar aqui é MC course mod, mod a, D mais dois pontos mais esse nome. Isso é muito importante que você faça isso. Caso contrário, a textura não funcionará da maneira que vamos configurá-la. Portanto, não se preocupe lá. Mas, além disso, quanto mais materiais de armadura for feito, se você quiser adicionar outro material de armadura, o que você precisa fazer é basicamente ter todos esses frascos também. E, basicamente, separe-os com uma vírgula. Então, vamos chamar esse cobalto dois por uma questão de argumento, você pode ver, desde que eles sejam nomeados forma diferente, isso vai dar certo. Eles estão todos separados com uma vírgula. E então isso termina com um ponto e vírgula. Isso é muito importante. Só queria mencionar isso também porque algumas pessoas se confundiram com isso. Na verdade, não deve ser tão louco. É apenas um conhecimento Java muito básico neste caso. Mas seja qual for o caso, vamos para a classe Mais Itens agora. E vamos criar nossos itens ou armadura. Vamos pegar o eixo aqui e vamos fazer isso para o capacete de cobalto e depois o capacete aqui também. Elemento sublinhado. E este será o item de armadura, muito importante. O primeiro parâmetro será os materiais de armadura de modo, cobalto. E então o nó tem três parâmetros. Tomado. Uma das ranhuras de equipamento. slot de equipamento neste caso tinha um objetivo. E então as propriedades do item nos permitem copiar isso três vezes e depois vamos pegar a placa torácica aqui. Este prato. E então a única coisa que precisamos mudar é o slot do equipamento aqui. Isso é muito importante que mudemos isso. Caso contrário, vamos nos deparar com alguns problemas. Para que leggings? Leggings aqui também. E então, por último, mas não menos importante, as botas. E então botas aqui também. Estranho essas duas pernas e , em seguida, este slot de equipamento para comer. E com isso, todos os quatro itens realmente são adicionados. É assim que pode ser fácil. Agora, o que queremos fazer é, claro, antes de adicionar os arquivos JSON, vamos apenas adicionar a tradução. Isso deve ser neste momento trivial. É que, acabei de copiá-lo para ser bastante autoexplicativo. E quando se trata dos modelos de itens, eles serão apenas modelos de itens normais também. Por causa, claro, dentro do inventário, bem, eles se parecem com itens normais. No entanto, há uma coisa interessante. Então, antes de tudo, você pode ver apenas pontos para uma textura aqui. E isso vai ficar bem. Vamos copiar todas as texturas. Mas então a questão é, bem, como conseguimos isso, a armadura 3D? Bem, dentro da nossa pasta Texturas, clique com o botão direito do mouse em novo diretório chamado modelos e, em vez de seu novo diretório chamado armadura. E esta é a ortografia americana que é muito importante. Então vocês do Reino Unido, desculpe, mas vai ser, então vamos copiar esses dois PNGs bem aqui. Esta será a camada de sublinhado de cobalto 1 e a camada de sublinhado fresco 2. Isso é muito importante. Por favor, preste atenção aqui. Então, quando definimos mais material de armadura, esse nome aqui, cobalto tem que corresponder a esse nome aqui exatamente como exatamente a mesma coisa. E, em seguida, camada de sublinhado, um sublinhado basicamente será a representação 3D. Parece assim. Você pode mudá-lo um pouco, mas não muito. E isso vai ser que você possa ver a placa do peito, o capacete, um pouco das outras coisas. E então aqui principalmente, acredito que as leggings e as botas, isso tem que combinar exatamente. Não pode haver espaços lá, não há parênteses 1 porque você copiou de algum lugar. Exatamente assim. Esteja ciente disso, que isso está no nome correto da pasta corretamente e eles têm todos os nomes corretos. Muito importante. Se você está se perguntando onde as outras texturas ou você pode ir para bibliotecas externas que microclima extra 118 uma na pasta de texturas e, em seguida, na armadura de modelos, você basicamente tem acesso a todos os baunilha e você pode alterá-los em teoria, se quiser. Então isso é muito legal. Mas isso é, na verdade, tudo o que precisamos adicionar. Então, vamos ver se funciona. Tudo bem, nos encontramos de volta em atenção plena. Pode ver que tudo aqui foi adicionado ao jogo e parece frequente, incrível. Oh, isso é realmente o quão fácil pode ser adicionar a armadura. Você pode ver os valores iniciais da armadura, bem como até mesmo um pouco de resistência lá. Isso é muito legal, assim como definimos em nossos materiais de armadura. Isso é muito legal. E faz porcos voarem, certo? Mas isso já será para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo, e eu te vejo na próxima palestra. Então, sim. 63. (Tudo sobre ferramentas) efeito de armadura completa: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um efeito de blindagem completo personalizado. Agora, o que isso significa? Bem, a ideia é que, se usarmos nossos conjuntos de armaduras inteiros, todos os materiais de armadura de cobalto definidos aqui. Então o que queremos é que queremos adicionar um efeito de poção personalizado ou apenas normal, basicamente, com o jogador. A maneira como fazemos isso é que eu realmente vou copiar sobre a classe que vamos precisar. Isso está disponível para você no repositório do GitHub ou em um indivíduo também. Tudo bem, então esta é toda a turma e, no geral, vamos passar e eu explicarei à medida que vou adiante. Então, a primeira coisa que temos é, claro, um mapa. Portanto, este mapa mapeia em material de blindagem para uma determinada ocorrência de efeito de modo. Agora, número um coisa muito importante é que essa instância que estamos usando neste mapa nunca seja usada sozinha. Estamos apenas tirando os valores dele. Então você pode ver que se eu colocar o material de armadura cobalto, vou ter um efeito de sorte aplicado a mim com um amplificador de um. Então isso significa que estou realmente recebendo o bloqueio 2 e, claro, também 200 ticks. Então, isso seria por 10 segundos. Atualmente, isso só funciona com materiais de armadura mod, portanto, apenas seus personalizados e não com baunilha. Essa é uma limitação muito importante aqui. Agora, como isso funciona bem no carrapato de armadura é chamado de método aqui. Estamos substituindo isso e isso é chamado toda vez que uma determinada peça de armadura, neste caso, o item de armadura de modo, está dentro de suas ranhuras de armadura. Então isso é chamado, vamos nos certificar de que estamos no servidor e, em seguida, estamos avaliando se o jogador tem ou não um traje completo de armadura. Este é um método personalizado que eu escrevi. Não é nada muito louco aqui. Estamos basicamente apenas recebendo a armadura dos slots de 0 a três, mas todos os antebraço são slots e, em seguida, apenas verificando se eles não estão vazios ou não. Então, se nenhum deles estiver vazio, então vamos ter uma verdade sobre isso e continuaremos avaliando os efeitos da armadura. Para isso, estamos basicamente passando pela totalidade do mapa aqui do material para afetar o mapa. E apenas certificando-se de que ei, o jogador tem a armadura correta em quatro, basicamente um efeito. E vamos ter certeza de que vamos ter certeza. E este aqui. Então este só diz, ei, é o material de todas essas armaduras, basicamente o mesmo material que este. E se for esse o caso, bem, então podemos continuar ainda mais com basicamente adicionando esses satisfatórios. Estamos nos certificando de que o jogador ainda não tenha o efeito. Caso contrário, você basicamente estaria aplicando o fato de cada carrapato, o que pode ser um pouco frequente. Então acabei de adicionar essa verificação de sanidade basicamente aqui. Então também estamos novamente apenas verificando se a armadura está ligada e se esse é o caso, então vamos adicionar o efeito. Então, vamos fazer uma nova instância de efeito da instância de efeito real aqui, obter o amplificador de iteração de efeito, como eu disse, esse pequeno efeito aqui, essa instância nunca usou quando nós definido aqui, isso só é usado como um modelo para que possamos basicamente também colocar a duração e o amplificador também. Sim, isso é praticamente tudo o que há para ele. Não deve ser muito louco. Sabe, se a pergunta surgir, você está bem, como você fez isso? Como você fez isso? Bem, é apenas no final do dia no conhecimento Java que você precisa e provavelmente um pouco de conhecimento do Minecraft também. E como podemos usar essa classe. Agora vamos em nossos itens mod, eu pessoalmente prefiro usar o capacete de cobalto para fazer um item de armadura MOD aqui. E o que é muito importante é que você só precisa fazer um dos seus conjuntos aqui. Então, um item no seu conjunto, o item de blindagem de modo. Como eu disse, geralmente prefiro o capacete. O jogo de xadrez também pode fazer sentido, ou as botas, o que você quiser, mas apenas uma delas precisa ser um item mais armadura. E se for esse o caso, então já podemos ver se funciona ou não ou se empresas como no Minecraft. Então, vamos ver, eu já tenho tudo ligado exceto pelo capacete e vamos colocá-lo e lá está. Tenho sorte agora por dez segundos. E se eu tirar qualquer um desses itens de armadura, assim que o efeito desaparecer, ele não será renovado. Como você pode ver, lá vai você. E então não importa basicamente qual quando eu tenho e qual quando eu não li. Na verdade, é basicamente verificar cada uma das outras peças e elas dão sorte para você mais uma vez, certo? Certamente existem algumas limitações com essa classe, mas espero que seja uma boa introdução para isso para você. Você pode, é claro, sempre alterar todo o código disponível no repositório do GitHub ou em um indivíduo também. E isso já seria para esta palestra aqui. Espero que você tenha achado isso útil. E em termos do novo, verei você na próxima palestra. Sim. 64. (Tudo sobre ferramentas) Armor personalizadas de cavalo: Ou voltarei aos núcleos de forragem por 118. Nesta palestra, vamos adicionar armadura de cavalo personalizada ao Minecraft. Para armadura de cavalo personalizada é, na verdade um processo bastante simples. No entanto, há uma pequena coisa que você precisa ter em mente. Bem, vamos apenas copiar as botas de cobalto aqui. E vamos apenas fazê-los sublinhar cobalto armadura de sublinhado de cavalo. E o mesmo aqui, cobalto sublinha armadura de cavalo sublinhado. E isso vai ser um item de armadura de cavalo, certo? Este aqui. E então o que queremos é o primeiro parâmetro, digamos algo como 12. E o segundo parâmetro será uma string para Bolt. Agora, a corda aqui é muito importante porque isso define o nome da textura da armadura do cavalo. Então, vamos antes de mais adicionar a tradução novamente. Vamos sublinhar a armadura de sublinhado de cavalo. Para armadura de cavalo de cobalto, é claro. O ego e, em seguida, um modelo de item. Vou copiar o lingote aqui, e vou chamar isso de armadura sublinhada do cavalo cobalto. E então vamos mudá-lo aqui também. Pior, pior armadura de sublinhado. E então vamos adicionar o, digamos, modelo de item chato, como em, este é apenas um item normal. E vamos adicionar a textura do item chato aqui. Tão chato também, esta é apenas a textura normal, no entanto. E a textura 3D? Bem, isso realmente vai para a pasta de ativos, mas para o Minecraft para uma nova pasta na pasta de ativos chamada Minecraft. E então, dentro de lá, precisamos de texturas. E então, em vez da urna, precisamos de Entidade. E então, dentro de lá, precisamos de cavalo. E então, dentro de lá, precisamos de armadura. Mais uma vez, a ortografia americana. E então eu vou copiar isso. Você pode ver armadura de sublinhado de cavalo, sublinhado cobalto. Este é exatamente o nome que estamos dando aqui. Então, se clicarmos no botão do meio do mouse no item de armadura de cavalo, você pode ver que basicamente leva exatamente isso aqui. Portanto, é preciso detectores, entidade, cavalo, armadura, sublinhado de cavalo, sublinhado onde quer que seja o identificador que colocamos aqui. E ponto PNG, basicamente, isso é o que aponta para 43, a armadura. E isso é basicamente tudo o que você realmente precisa ter em mente para a armadura de cavalo. A outra coisa que pode ser interessante é que se pudermos dar uma olhada nisso, que por exemplo, ferro como cinco proteção ouro tem sete e o diamante tem 11 com 12. Na verdade, isso seria um pouco melhor do que armadura de cavalo de diamante, mas isso é totalmente bom. claro que você pode mudar isso da maneira que quiser. Mas vamos ver se funciona. Ou um fornos de volta ao Minecraft e por sorte, já temos um cavalo domesticado aqui. Vamos dar a ela a armadura de cavalo frio. E lá está ele. Parece muito parecido com o diamante, mas ainda parece um pouco diferente. No entanto. Isso é realmente incrível e é assim que é fácil adicionar armadura de cavalo personalizada ao Minecraft. Escrever isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra, no entanto. Sim. 65. (Tudo sobre ferramentas) Enchantment personalizado: Tudo bem, bem-vindo de volta ao curso para 118. E nesta palestra, vamos dar uma olhada em como você pode adicionar encantamentos personalizados ao Minecraft. Então Encantamentos em si mesmos são na verdade, bastante simples de adicionar. É difícil é a funcionalidade real dos Encantamentos. Mas no pacote do curso MC, clique com o botão direito do mouse em novo pacote chamado pacote de encantamento aqui. Então, dentro de lá, vamos precisar de duas novas aulas. Um deles é chamado de classe mod enchant minutes. E o outro será nosso real e o presidente que vamos fazer. E esse será o relâmpago em Shenzhen. Há também a classe com a qual vamos começar. Isso vai estender a classe de encantamento aqui. E então vamos passar o mouse sobre o construtor correto combinando super aqui. Então é muito importante que mudemos o slide do equipamento aqui para três pontos em vez de ser a área real aqui. E então o que eu também posso recomendar é clicar nisso e presidente e no pressionado Control H para basicamente poder ver todos os encantamentos de baunilha que você tem. Então, por exemplo, há, quero dizer, há tantas coisas diferentes, certo? Os espinhos do Presidente, basta dar uma olhada nisso. Você pode ver, Ei, como isso funciona? Mas como isso é basicamente possível de ser feito? E você pode basicamente dar uma olhada em todos eles aqui. Altamente, recomendo dar uma olhada nisso, porque esse realmente é um ótimo recurso para ver a possível funcionalidade aqui. E para o nosso presidente, o que vamos fazer é, antes de tudo, substituir o método de nível GetMax. E vamos retornar a2 porque aqui, isso basicamente determina quantos livros são gerados. Como os livros, os livros são gerados automaticamente para nosso encantamento é muito legal. E isso basicamente determina quantos níveis existem. Agora, queremos substituir o método do post attack, que é basicamente chamado depois um tempo o ataque a uma entidade. E vamos passar por isso. Então, vou tentar explicar. Então, vamos dizer que não o nível de atacante P não é do lado do cliente. Então, basicamente, certificando-se de que estamos no servidor. Por favor, note o ponto de exclamação na frente que nega o lado do cliente. Muito importante que queremos estar no servidor para isso, queremos dizer o nível do servidor, o que é igual a, vamos chamá-lo de mundo, tudo bem. Então, um pouco acostumado a chamar o mundo de nível. E sim, ele atacante nível de ponto, mas transmitido para o nível do servidor na verdade, não o nível do cliente, nível de servidor. Eles atrás e depois terminaram assim. E então vamos criar uma camada de servidor para o jogador, que será igual ao ponto do atacante P para o player do servidor. Exatamente. E então vamos ter uma posição fria de passagem de bloco, que é igual ao ponto alvo, obter. Na verdade, está bloqueado. Posição. Lá vai você. Isso é o que é. Vamos importar a classe de postagens do blog também. Então, dentro daqui, você pode ver que obtemos o nível P, que basicamente está obtendo um nível aqui, certo? Então, vamos obter o nível dos Encantamentos. Então, vamos dizer que se o nível P for igual a um, isso significa que não vamos trocar um raio. Mas a ideia é que queremos chamar o tipo de entidade ponto-ponto-ponto relâmpago spawn no mundo. Posição do jogador Nl, tipo de geração móvel , tipo ponto acionado. E então é verdade e depois verdadeira. Então, esta é basicamente uma maneira de você gerar um parafuso de iluminação. Muito simples. E a melhor coisa é que isso não é apenas uma maneira de um pequeno raio de iluminação, você vai literalmente gerou qualquer coisa que você quer com ele, a, b e Ax que você quer com ele, a, , morcego pequeno, uma área, fato Cloud , aparentemente, um conjunto de armaduras, o que você realmente quiser. Mas, por enquanto, vamos mantê-lo assim. Agora vamos apenas copiar isso, fazer esse nível dois e, em seguida vamos apenas pequenos para forros. Essa é, na verdade, toda a funcionalidade que precisamos. Se você quer uma funcionalidade específica para o seu encantamento, é apenas uma questão de aprender mais Java e apenas experimentar um monte de coisas. Esteja aberto à experimentação. Dê uma olhada no, os encantamentos da lunula, altamente recomendados. Você basicamente não pode fazer nada melhor do que isso. Até agora, ainda precisamos adicionar coisas à nossa classe mod enchantments. E isso vai ter algo que você já viu antes e é um registro diferido final estático público do tipo Enchantments. Desta vez, vamos encantar. E isso é igual a d registro diferente que cria ou registra que encanta o mod do curso MC, mod ID e se é um registro diferente. Há também um método de registro vazio estático público com um ônibus de evento ocular ou um ônibus de eventos como seu perímetro. Vamos chamar os Encantamentos que se registram no ônibus do evento. E seu método de registro é, claro, ser chamado aqui agora sob a lei, os blocos simulados se registram, vamos dizer mod conquistas dot register com o ônibus do evento. Lá vai você. E agora isso está registrado. Agora, o que vamos precisar é que vamos fazer basicamente o seguinte será realmente muito simples. Nós simplesmente precisamos de um objeto de registro estático público do tipo encantamento, é claro, que será o atacante de sublinhado relâmpago, que é igual a encantamentos começar registrar relâmpagos atacante sublinhado. Então, em um fornecedor de novo raio ou encantamento com a raridade, vamos fazer incomum no entanto? Incomum, sim. Por raridade e a categoria Enchantments é arma do que o slot do equipamento não será alimentação, mas vamos fazer este equipamento Slashdot sobre mão má. Sim, lá vai você. E, na verdade, é isso. Isso é tudo o que precisamos fazer para registrar esse encantamento. Essa é a funcionalidade, este é o registro feito. Agora, o que precisamos ainda adicionar é que a tradução em vez do e e nos sublinha o arquivo adjacente, estamos acostumados a, você sabe, eu vou colocar isso na parte inferior aqui. Vamos copiar isso. Isso não é nada louco demais. Este é apenas o encantamento MCQs, relâmpago Stryker. Portanto, esse nome, é claro, mais uma vez tem que corresponder com esse nome aqui. E então isso é apenas encantamento Vermont ID. E você só precisará disso mesmo que haja vários níveis diferentes, isso será traduzido para cada um desses níveis, certo? Então, depois de ter adicionado tudo isso, vamos ver se funciona ou por que nós funcionamos de volta no microfinanciamento pode ver o raio ou foi adicionado com sucesso ao jogo, os Encantamentos. Então, vamos adicioná-lo à nossa espada de diamante aqui neste caso, e vamos usar os que são o número um. Então, se usarmos o número dois, não é para notar vontade, mas é algo diferente. Então lá vai você. Na verdade, é assim que é fácil adicionar um cliente canalizado para o Minecraft. E isso já será para esta palestra aqui. Espero que você tenha achado útil na urina. Então, o novo, e te vejo na próxima palestra. Então, sim. 66. (Intermediate) (Intermediate): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra vamos falar sobre a propriedade do estado de bloco. Então, o bloco diz que as propriedades são uma coisa muito interessante. E basicamente estamos, em primeiro lugar, vamos cobrir uma espécie de teoria por trás disso. E para isso vamos tirar os slides do PowerPoint. Vamos dar uma olhada na distinção entre blocos e estados de bloco. Então, bloqueie, você pode pensar nisso como uma espécie de padrão único. A ideia é que, para nós, em nossa classe mais blocos ou para os blocos Rindler na classe de blocos, temos campos diferentes para determinados blocos. Agora, eles são criados quando você se lembra de que eles são finais estáticos públicos, então eles são atribuídos uma vez. Nunca existe apenas um campo para um bloco específico. Então você pode pensar neles como um padrão singleton. Embora os estados de bloco sejam as instâncias que estão dentro do mundo ou do nível, os estados de bloco salvam uma posição de bloco, as propriedades do bloco, essas seriam a força do bloco. Você sabe como, quanto tempo leva para quebrar coisas assim, que basicamente atribuímos na classe de caixa de correio e, em seguida, também nas propriedades do estado do bloco. Então, esses são os três grandes. É claro que há muito mais do que isso está por trás lá. Esses seriam os três grandes. E você pode pensar nisso assim. Os estados de bloco são salvos pelo mundo e eles só podem ser alterados pelo mundo ou pelo nível. Por exemplo, fazendo protetor solar de nível do que colocar alguns parâmetros. Essa é a ideia geral. Você tem um bloco que é um único padrão é apenas a ideia de um bloco por assim dizer. Porque se eu disser Redstone ou bloco, você é como, Ok, eu sei como é Redstone ou bloco, mas se eu tiver três Redstone ou blocos diferentes no mundo, eles são todos diferentes, mas são todos do mesmo tipo. Essa é uma espécie de ideia. Então você pode pensar em um bloco como uma classe e o estado do bloco seria o objeto que é criado a partir dele, digamos em termos de linguagem de programação, por assim dizer, certo? Então, o que são propriedades de bloqueio sentado agora? Bem, o pequeno título aqui, ou como armazenar dados em blocos não é 100% correto, mas é uma espécie de ideia do mesmo. Então, na classe de bloqueadores de cálcio neste caso, a questão geral pode ser, bem, por que eu não coloco um booleano lá e então funcionará bem, mais uma vez, pense nisso. Quando estamos criando um bloco, escreva o, esta classe aqui é criada uma vez. Então, se você tivesse apenas um booleano lá para todos os blocos desse tipo, ele será o mesmo. E então, é claro, não faz nenhum sentido porque se este Redstone ou bloco está aceso ou não está aceso, não tem nada a ver com aquele como dois quarteirões de distância dele. Certo. E isso, claro, não faz nenhum sentido. É aí que entra a separação e é aí que o bloco diz, as propriedades precisam ser usadas. Podemos ver aqui que temos uma propriedade booleana chamada lit. E o que é muito importante é que definimos isso na classe de blocos. E então sempre, sempre temos que chamar o método de definição de estado de bloco de criação método de definição de estado de bloco aqui e basicamente adicionar as propriedades ao construtor. Isso é muito importante é que, em geral, as propriedades nunca podem ser nulas. Portanto, eles sempre têm um valor acima, podem ter várias propriedades diferentes. E essas propriedades podem então ser referidas posteriormente no arquivo JSON de estados de bloco para basicamente se referir a diferentes modelos que já vimos isso, certo? Vimos as escadas dentro das portas, tudo isso. Eles basicamente têm muitos blocos diferentes, as propriedades e, em seguida, o final, dependendo de seus valores, eles se referem a um modelo de bloco diferente. E ele era basicamente um exemplo, certo? Isso seria, LET é igual a falso e isso está aceso, é igual a verdadeiro. Alterando o estado do bloco. Bem, como isso é feito? Bem, na verdade, é feito com muita facilidade. Só precisamos de um nível aqui. Então, precisamos de uma variável de nível em algum lugar, definir o bloco em uma posição específica. Em seguida, obtemos o estado atual. Definimos o valor de lit exatamente o que está dentro daqui, certo? Neste caso, true. E então os três são apenas um sinalizador, basicamente, que determina o comportamento de atualização da configuração real do bloco. Normalmente, isso é feito no servidor. Então, se você está apenas fazendo isso no cliente não vai funcionar. Basicamente, sempre certifique-se que você está em um thread de servidor quando estiver alterando o estado do bloco era, é claro, se o cliente pudesse simplesmente alterar os estados de Bach, ou isso poderia levar a algum interessante problemas que dizem, e sim, essa é praticamente a ideia, certo? Isso acontece em uma determinada posição aqui. O segundo parâmetro é o novo estado nessa posição de bloco. E então o terceiro parâmetro, como eu disse, ele muda o comportamento de atualização. Nós basicamente vamos passar com 3 4 Amin, basicamente a totalidade deste curso porque três basicamente apenas atualizam todos os vizinhos e atualiza a maneira que parece e isso está acontecendo para ficar bem. Então, no momento, eu não me preocuparia muito com isso se você realmente precisar de outra coisa, então, nesse ponto, espero que você seja um avançado o suficiente para basicamente descobrir isso seu próprio também, certo? Mas isso seria praticamente para a teoria aqui. Então, vamos entrar na inteligência e vamos pressionar a tecla Shift duas vezes e vamos colocar em uma pedra ou bloco vermelho. Na verdade, vamos dar uma olhada nesta aula. E como você pode ver, praticamente exatamente o que tínhamos aqui, uma propriedade booleana chamada lit Na parte inferior, temos o método de definição de estado de bloco credo aqui, que é chamado. Então ambos são basicamente as coisas importantes. Agora, a razão pela qual escolhi o Redstone ou bloco aqui é porque esse é o exemplo mais fácil de uma única propriedade de estado de bloco. E não tem muitas outras coisas aqui. Mas há, é claro, algumas outras coisas. Ataque aqui seria se você apenas clicar com o botão esquerdo no bloco, então ele começa a pesquisar o método Interact, que basicamente está aqui. E isso é muito interessante. Então, se a propriedade lip for falsa, então vamos defini-la como true. E você pode ver que essa é exatamente a configuração verdadeira que tínhamos na apresentação do PowerPoint também. Definimos o blog em uma posição específica. O estado que estamos definindo o valor de LET the true e, em seguida, o sinalizador aqui é três. Então eu acredito que, se passarmos o mouse sobre isso, você pode ver que as bandeiras mundiais são as seguintes. Uma é uma atualização de bloco, dois enviarão para o cliente para evitar que o bloco seja renderizado novamente e coisas assim. E você pode basicamente adicioná-los. Mas se colocarmos um três, então o que vai acontecer é que isso causará uma atualização de bloco e enviará as alterações para o cliente porque colocamos 1 mais 2. Essa é a ideia básica. Se você precisar de mais alguma coisa e eles são basicamente, basta dar uma olhada nisso por enquanto. Não vamos nos preocupar muito com isso. Bem, isso está tudo bem e bem, todos podemos dar uma olhada nisso, mas sejamos honestos, queremos fazer algo nós mesmos, e isso é exatamente o que vamos fazer. Criaremos uma nova classe aqui. Então, em nosso pacote personalizado, clique com o botão direito em nova classe Java. E esta será a lâmpada de cobalto preta. E isso estenderá a classe de blocos. Claro, aqui mesmo, importe esta imagem que escolhemos, que escolhemos a correta sobre o, o construtor de tela que combina super. E se isso nos ruir, podemos clicar nele, pressionar Shift F6 e escolher Propriedades aqui. Lá vai você. Tudo bem, agora precisamos, é claro, de um bloco, digamos propriedade. Agora vou fazer desta uma propriedade booleana final estática pública propriedade booleana final estática chamada clicada, que é igual à propriedade booleana dot create. E é isso. E regulamentos, você criou uma propriedade de ID de blocos personalizados. Isso é tudo o que precisamos fazer. E, claro, ainda precisamos substituir o método Criar definição de conjunto de blocos. E, em seguida, basicamente chamá-lo de P builder dot add, clicado. Lá vai você. Se você tiver vários blocos, as propriedades, você pode simplesmente adicioná-los basicamente separando-os com uma vírgula. Claro, adicionar clicado duas vezes aqui não faz muito sentido, mas se você tiver vários, você pode separá-los com uma vírgula e adicionar quantos você pode separá-los com uma vírgula e adicionar quiser com o código de adição aqui. Agora, o que queremos é que queremos poder clicar com o botão direito do mouse neste bloco e, basicamente , ele liga e desliga. Vamos apenas pegar o método dos EUA aqui. Vamos anular isso. Então deixe-me fazer isso um pouco diferente. E então, é claro, porque isso está obsoleto, você pode ver que não devemos chamar isso. Vamos apenas retornar o resultado da interação desse sucesso, isso vai ficar bem. Agora a pergunta é, ok, o que vamos fazer? Bem, vamos dizer se o nível P é do lado do cliente. Então, basicamente, certificando-se de que temos o, isso é muito importante que tenhamos o ponto de exclamação na frente, basicamente negando isso, certo? Então, queremos estar no servidor, não no cliente. E vou dizer que p-hat é igual a interação de mãos dadas. Nós só vamos chamar isso de sempre, essa é a ideia básica. E isso é muito importante. Então ponto de exclamação, por favor, note isso porque já vi isso várias vezes. As pessoas esqueceram o ponto de exclamação onde queremos estar no servidor, não no cliente. E então vamos dizer que o estado atual booleano é igual ao estado em que fomos passados. Então, esse seria o estado de bloqueio real que acabamos de clicar com o botão direito do mouse. E eu vou dizer para obter um valor de clicado. E então o que vamos fazer é dizer bloco de nível definido que parece que vimos nesta posição específica em que clicamos com o botão direito com um estado em que clicamos o botão direito e definimos o valor de clicado para o estado atual, negou os primeiros parênteses, orientando, colocando em três, que são as bandeiras. E, e isso é realmente tudo o que precisamos fazer para que esta lâmpada mude. Bem, está estado bloqueado. E vamos ver como podemos basicamente representar isso ou como vamos ser capazes de ver isso em apenas um momento. Mas sim, isso é praticamente tudo o que precisamos fazer. Você pode ver tudo aqui. Isso não deve ser muito louco neste momento. Sim, então vamos realmente registrar o bloco também. Então, na nossa classe mais blocos, vou copiar sobre o alçapão de flor de cerejeira e esta será a lâmpada sublinhada de cobalto pois é a mesma aqui, lâmpada Cobalt. E este agora é um bloco de lâmpada de cobalto, que definitivamente não vai levar madeira. Vamos pegar um metal e, em seguida, nenhuma oclusão também não é o caso. Agora, o que vamos realmente adicionar é algo muito interessante. Não vamos ser estritamente necessários, mas eu queria mostrar isso. Basicamente, o que eu quero é que, se a propriedade click for verdadeira, então o que eu quero é que isso seja ativado lá. Como fazemos isso? Bem, você pode ver que temos este nível de lago aqui, que é uma função para Int do estado de bloco. O que isso significa? Bem, basicamente leva um estado aqui e então nós o temos semelhante a a. Você pode ver que isso é semelhante a um fornecedor e então só precisamos devolvê-lo para que possamos colocar em 15, por exemplo. Independentemente do estado, você pode ver que ele só retornará 15. Isso não é bem o que eu tinha em mente. O que eu tinha em mente é que vamos dizer ponto de estado, obter um valor de lâmpada de cobalto ponto preto clicado. Então, estamos basicamente recebendo o valor e, em seguida, vamos usar o operador ternário. Se isso for verdade, vamos retornar 15, que é o nível máximo de luz, e então, caso contrário, retornaremos 0. Essa é a ideia geral aqui, é apenas um, algo a acrescentar basicamente. E também então você, agora você sabe, ei, é assim que você pode facilmente adicionar um nível de luz lá a um bloco, se quiser. E agora, é claro, para os arquivos JSON. Então, vamos primeiro adicionar a tradução só porque isso vai ser um pouco mais rápido. Só vou copiar sobre a cerca aqui. A lâmpada de cobalto. Eles vão sobre a lâmpada. E então também copiarei sobre os estados de bloco. Esses são, naturalmente, todos disponíveis para você no repositório do GitHub ou individuais também. E aqui vai você. Então clique neste igual a lâmpada de coorte falsa desligada. Então, vamos apontar para esse modelo, eles clicaram é verdade. Então vamos apontar para a lâmpada sublinhada de cobalto no modelo de bloco. Então, vamos copiar ambos os modelos de sangue também. Não deveriam ser muito loucos, não é? Não, claro que não. Na verdade, eles não são muito loucos. E veja, nós apenas apontamos para a lâmpada de cobalto apagada e, em seguida, no outro, você pode adivinhar? Sim, no geral, cordeiro. Portanto, é muito simples, na verdade. As texturas que estamos apontando para eles com o modelo do item, você sabe, ele só vai estar apontando para o off, vamos realmente apontar para o unimodal. Bem, na verdade, você sabe, vamos fazer esse ponto para o modelo porque isso é um pouco melhor neste caso. E então, é claro, basta copiar as texturas como vimos várias vezes. Agora. Eles vão e bem, isso é praticamente tudo o que precisamos fazer, certo? A maior parte do trabalho pesado aqui feito pela propriedade booleana, e o resto é, bem, deve ser bastante autoexplicativo. Então, vamos ver se funciona. Ou nos encontramos de volta ao Minecraft. Como você pode ver, o cobol M tem sido um não solicitado e lá está. Começou na posição ligada. Então, basicamente, começa com uma propriedade booleana t sendo verdade, tudo bem. Claro, não há preocupações lá. E o que você pode realmente ver, como vamos realmente colocar tempo à noite aqui e ver se eu clicar com o botão direito do mouse nele. Agora, podemos realmente ver que a luz é o que está sendo ligado e desligado. Então isso é muito frequente, legal. Mas isso é, na verdade, o quão fácil isso pode ser também. Mas apenas para que tenhamos, se você talvez queira uma propriedade padrão diferente, o que podemos fazer é que podemos chamar isso no construtor, esse estado padrão de registro de pontos. E então podemos dizer que esse estado de bloco padrão de ponto, nosso valor definido de clicado será false. E com isso, basicamente o que vamos fazer é que estamos definindo isso como falso. Portanto, a propriedade clipe agora será falsa por padrão. Mas essa é uma espécie de ideia geral para uma outra coisa interessante é que, por exemplo, se entrarmos na propriedade booleana, então clique no botão do meio do mouse, você pode ver que esta é uma propriedade do tipo Booleano. Se eu pressionar Control H aqui, você verá que elas também são propriedades inteiras bem como propriedades de enum. Uma das mais é a propriedade direction. Assim, você também pode usar propriedades inteiras e todas as outras também. E se realmente dermos uma olhada na propriedade booleana que cria, por exemplo, podemos fazer isso, mas também podemos dar uma olhada, por exemplo, o estado do bloco. Acho que está bloqueado. Três propriedades. Go block, digamos propriedades que a classe tem basicamente todos os blocos de baunilha, as propriedades definidas aqui, podemos ver, por exemplo, algumas propriedades inteiras, idades, max, idades. Temos algum nível de caldeirão nível, capacitor de nível baixo. Então, com basicamente alguns exemplos aqui, recomendo vivamente dar uma olhada nisso se você quiser criar seus próprios blocos personalizados uma propriedade. Caso contrário, isso já seria para esta palestra aqui. Espero que você tenha achado isso útil em termos do novo, e eu o vejo na próxima palestra. Então, sim. 67. (intermediário) como os dados NBT?: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos dar uma olhada dados NVT ou, como agora é chamado, tags compostas, basicamente as tags MVT. Então, o que são esses? Bem, é basicamente uma maneira de salvar dados em, por exemplo, pilhas de itens. Agora, a primeira pergunta que vem à mente são pilhas de itens de águas residuais. Bem, assim como os estados do Bloco são as representações de um bloco dentro de um mundo, pilhas de itens semelhantes são representações de itens dentro do seu inventário. Então, se você tem duas espadas de diamante diferentes, bem elas são ambas o item, espada de diamante, mas ambas são itens diferentes, pilhas, Isso é uma ideia geral. E para isso, o que vamos fazer é salvar o resultado que tivemos da última vara de dowsing. Clique com o botão direito do mouse em um poço em dados NVT. E o que vamos fazer é fazer um novo item para isso. Então, em nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java chamada item de tablet de dados. E isso estenderá o item, é claro, sobre tudo isso criar construtor combinando super. E então o que vamos fazer é apenas adicionar um monte de coisas. Então, antes de tudo, não precisamos adicionar nada para poder adicionar dados NVT a isso. Podemos adicionar dados NVT a qualquer pilha de itens diferente que quisermos. Isso é praticamente isso. O que vamos fazer, no entanto, é que vamos ter as seguintes coisas. Então, número um, eu realmente quero que os dados NVT sejam exibidos como uma dica de ferramenta. Vamos fazer é que vamos dizer anexar texto do mouse. E o que vou fazer é basicamente dizer, Ei, se a pilha real aqui, certo, tiver tags. Portanto, esse é o método que verifica se, você sabe, dados NVT ou ataques estão presentes aqui. Então vamos dizer que as laranjas são apenas uma corda. E vamos ler isso da pilha. Dot é marcado, então isso obtém a tag NVT ou a tag composta. Então você pode ver que existem diferentes tipos de métodos que podemos basicamente obter isso alguns get diferentes. Há também algumas colocações. Bem, o que vamos fazer é obter uma string com a seguinte chave, ponto do curso MC último sublinhado ou. E então vamos adicionar isso à dica de ferramenta. Então P componentes de dica de ferramenta, ponto adicionar novo componente de textos ou um Tudo certo, então vimos agora dois dos três métodos importantes, bem, de tag basicamente têm tag e depois são marcados. E então você pode basicamente obter qualquer tag por meio de um ano chave específico. E também faremos é que vamos fazer esse membro. Então, vamos basicamente ter o brilho encantado neste item se houver uma prisão de etiquetas. Então vamos dizer que é foil e vamos devolver a pilha, não como tag, mas é praticamente isso. Assim que ele tiver um componente de tag p nesta pilha, ele começará a meio que brilhar como se estivesse encantado. E então também substituiremos o método dos EUA aqui. E o que vamos fazer é dizer o seguinte. Vamos dizer que se o jogador não conseguir o item na mão, ele usava a mão que tem tags. Então, mais uma vez, se tivermos uma tag, então vamos fazer é dizer que o jogador GetItems e usou a mão dessa tag. Então este é o terceiro para uma nova tag composta. Porque se estamos apenas configurando isso para uma nova tag composta que não tem nada associado a ela, então ela basicamente apagará a tag e a hashtag agora será falsa. Então, basicamente, se apenas clicarmos com o botão direito do mouse no tablet de dados do item D no ar, ele apenas apagará todos os dados que estão lá. Essa é a ideia básica aqui. E bem, isso é praticamente tudo o que há para isso, certo? Temos a hashtag, temos a tag git e temos o ataque definido. Esses são praticamente todos os três grandes métodos que precisamos pensar. E agora, na verdade, vamos fazer é que vamos, claro, mudanças na vara de dowsing. Mas para isso, vamos precisar uma aula de ajuda util em nosso pacote do YouTube. Clique com o botão direito em nova classe Java chamada inventário util. Na verdade, vou copiar esses dois métodos porque isso só vai tornar isso um pouco mais fácil. Então você pode ver que é apenas, basicamente como um método booleano e um método inteiro. E o método booleano apenas diz: Ei, o jogador, este jogador tem esse item em algum lugar em seu inventário? E então o outro apenas diz basicamente: Ei, tem o, onde está o índice do item que estamos passando? Mas essa é basicamente a ideia geral aqui. E o que vamos fazer é no nosso único item Dao, vamos agora mudar isso. Um dos principais, é claro, está disponível para você no repositório do GitHub ou em um indivíduo também. Mas vou copiar o método principal aqui, que será o anúncio em BT para tablet de dados. Agora, como você pode ver, vamos realmente precisar definir a guia mais dados do item também. Portanto, não se preocupe lá. Nós vamos fazer é apenas imediatamente registrar isso. Então tablet de dados. E então aqui os dados sublinham tablet. E isso é, claro, um item de tablet de dados que eles atrás com apenas as propriedades normais. E então. Tudo aqui deve funcionar bem. Isso não deve ser muito louco. Neste ponto, registramos tantos itens. Registrar um item deve ser quase uma segunda natureza. Agora, o que estamos fazendo aqui? Bem, estamos basicamente recebendo o item do inventário do jogador. Mas ao obter o primeiro índice inteiro, estamos recebendo a primeira instância desse item no inventário. Isso é muito importante. Então, é basicamente assim que vai funcionar. Vou mostrar, é claro, na demonstração apenas um momento. E então vamos criar uma nova tag aqui, então dados NVT. E então vamos colocar uma corda com essa chave. Muito importante que essa chave esteja correta, porque isso tem que ser exatamente o mesmo por, quando estamos lendo isso basicamente. E então nós apenas colocamos, bem, basicamente as mesmas coisas que colocamos aqui. Então, vamos apenas imprimir o nome e basicamente a posição em que o encontramos. E aqui estamos apenas configurando a tag do tablet de dados para dados MVT. E então dentro daqui, basicamente logo depois de encontrá-lo, o que vamos fazer é que vamos dizer no seguinte, vamos dizer se o inventário util dot tem pilha de jogadores e inventário com o jogador e mais itens que o ponto do tablet de dados obtém. Se for esse o caso, então o que queremos fazer é adicionar dados NVT aqui com o jogador, a posição clique abaixo de I e, em seguida, bloquear abaixo também. Lá vai você. Isso é praticamente isso. Agora, isso, é claro, não é importante para os dados NVT em geral. Essa é basicamente a maneira que estamos adicionando. Portanto, isso realmente é como a parte principal dos dados NVT aqui, neste caso, fazendo uma nova tag composta e, em seguida definindo a aderência nessa pilha de itens em particular. Essa é praticamente a ideia básica. Agora, para fins de conclusão, é claro, vamos também adicionar a tradução aqui. Este será o tablet sublinhado de dados. Tablet de dados aqui. Muito bom. E, em seguida, adicione também o modelo do item ali para que você possa ver que ele aponta para o sublinhado de dados do tablet sublinhado, textura extra curiosa e fora. Há também uma textura própria? Sim, existe. Mas isso é algo que vamos ver na próxima palestra. Na verdade. Vamos apenas copiar isso. E isso deve ser praticamente tudo o que precisamos fazer para adicionar bem o tablet de dados e alguns dados de entidade personalizados. Então, vamos ver se funciona. Ou farces back e microvesículas veem que a tabela de dados foi adicionada ao jogo. Agora, na verdade, teremos que mudar o empilhamento máximo aqui em apenas um momento, mas isso é claro que será uma solução muito fácil. E vamos ver se consigo encontrar objetos de valor. Então, devemos ver o primeiro é um tablet. Lá vai você. Então agora podemos ver cobre do Minecraft encontrado ou exatamente na posição que tínhamos lá também. Então, tudo funciona. Se eu agora clicar com o botão direito com ele. Ele agora foi excluído. E o que é muito importante é que, se eu encontrar outro, você pode ver que ele o substitui para o primeiro. Isso é basicamente o que eu disse, mas vai substituí-lo e não colocar este próximo. É claro que você poderia fazer outro método comum bem, inventário que é como um achado sem dados NVT. E então você vai adicioná-lo ao próximo. Isso também funcionaria, claro, totalmente bem. Mas, por enquanto, isso é muito bom. Agora vamos realmente consertar o empilhamento disso. Então agora você pode ver que eles não se empilham mais. Há um deles que tinha dados NVT nele. Mas você pode ver, eu posso comprar novos aqui e posso empilhá-los, o que é claro que não é exatamente o que queremos. Então, vamos consertar isso rapidamente. Mas isso é, claro, uma solução muito fácil, certo? Nas propriedades do item, vamos apenas adicionar o imposto ao método aqui, e vamos colocar um 1. Então isso deve ser bastante autoexplicativo aqui. E com isso, basicamente todo o tablet de dados está pronto. E isso já seria para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. E eu vou te ver na próxima palestra, no entanto. Sim. 68. Propriedades de itens (intermediário) (de mediate): Ou voltarei ao curso de forragem por 118. Nesta palestra, vamos adicionar uma propriedade de item personalizada ao nosso tablet de dados. Agora, alguns de vocês podem dizer: Espere O que diabos é uma propriedade de modelo de item personalizado ou uma propriedade de item? Nunca ouvi falar disso. Bem, basicamente é muito semelhante a uma propriedade de estado de bloco. No entanto, ele nos permite 0 para um arquivo JSON de modelo de item diferente se a propriedade alterar seu valor. Então, o que podemos fazer é alterar a textura do item do tablet de dados se, você sabe, se tivermos, por exemplo, em dados BT nele. O que vamos fazer é fazer uma nova classe no pacote util chamado propriedades do item mod. E, em seguida, vamos fazer um vazio estático público chamado método adicionar propriedades de item personalizado. E então vamos fazer o seguinte. Primeiro de tudo, vamos pressionar shift duas vezes e vamos colocar as propriedades do item e, em seguida, certificar-nos propriedades do item de que o carrapato aqui esteja marcado basicamente a caixa inclua itens que não são do produto. E então vamos entrar nessa classe e você pode ver que essa é basicamente a classe de propriedades do item. E se descermos, você pode ver isso, por exemplo, a tigela que tem o poste e as propriedades do item de tração que são usadas para alterar a textura dentro do inventário da tigela. Então isso é muito legal. E isso é, bem, uma daquelas coisas que, se você não sabe sobre isso, é muito difícil pensar sobre isso. Mas uma vez que saibamos, uma vez que você tenha visto como funciona, na verdade será bastante simples. Então, vamos dizer as propriedades do item que registram os itens de modo, tablet de dados, ponto get e, em seguida, um novo local de recurso chamado MC course mod, mod ID e depois em diante. Então, esse é apenas o nome do, da propriedade basicamente. E então o que precisamos é que precisamos de um método louco Well. E então o que vamos fazer é colocar entre parênteses e depois API. E você pode ver que basicamente apenas uma vez gerado para nós a função de propriedade do item. Então, vamos apenas apertar a tecla Tab e, em seguida, tudo bem. Agora, esta função de propriedade do item retorna um float e isso basicamente é o valor que a propriedade do item recebe. O que vamos ver é que vamos dizer P stack dot hashtag, western mark one, f dois pontos 0, F. E estamos basicamente usando o operador ternário. Mais uma vez, ele retornará um se o ataque estiver realmente presente e 0 se o ataque não estiver presente. Bem, então isso é praticamente tudo o que precisamos fazer. Vou precisar chamar isso na configuração do nosso cliente. Isso é muito importante, que é chamado método direto aqui propriedades do item, mais propriedades do item que adicionam propriedades de itens personalizados. E isso é praticamente isso. Para cada item adicional. Acabamos de adicionar uma nova chamada de registro aqui. E então isso será praticamente tudo o que precisamos fazer. Agora, onde usamos isso aqui? Bem, usamos isso dentro do modelo do item. Então, o que vamos fazer é antes de tudo, vamos basicamente ter um novo modelo. Então, o tablet de dados aqui, eu realmente vou copiar isso. Então, vou arrastá-lo para a mesma pasta enquanto segura o Control. Vou chamar isso de tablet de dados. Vou mudar isso para tablet de dados aqui, não muito cedo, mas no ego. E então vou copiar sobre o outro tablet de dados ou o conteúdo aqui. Vamos abrir isso. Agora temos um sublinhado de tablet de dados apenas normal com base no arquivo. E isso, vou copiar o conteúdo e vou explicar bem como isso funciona basicamente. Portanto, por padrão, essa é a textura que ele escolhe, o tablet de dados desativado. Agora há uma substituição aqui. Esta é basicamente uma lista de diferentes substituições que tem um predicado. E o predicado é basicamente você pode pensar nisso como um, se isso for verdade, então vamos sobrescrevê-lo com esse modelo aqui. E o predicado é, ei, núcleos MC na propriedade do item tem que ser um. E então vamos substituí-lo este aqui, que é o tablet de dados do item do curso MOOC no qual acabamos de fazer aqui, que basicamente aponta para o contexto do talento de dados. Isso é praticamente tudo o que há é que isso não deve ser muito confuso, isso não deve ser muito louco. Estamos basicamente fazendo isso de uma maneira muito semelhante, pois o bloco diz que as propriedades são um pouco diferentes. E sim, isso é praticamente tudo o que há para isso. Então, vou adicionar o outro tablet de dados na textura também. E então o que estamos basicamente prontos para dar uma olhada nisso. Mais uma vez, recomendo estar aberto à experimentação, brincando um pouco com isso porque as propriedades do item são realmente muito legais e eu realmente adoro isso. Na verdade, é bastante fácil fazer isso. Então eu recomendo dar uma olhada nisso. Mas, para fins de conclusão, vamos ver se funciona. Tudo bem, nos encontramos de volta ao Minecraft. Então, vamos ver, vamos tentar encontrar alguns objetos de valor. E então, assim que o encontrarmos, lá está. E então a textura real também mudou. Portanto, isso é realmente muito legal, e posso clicar com o botão direito do mouse para, excluiremos os dados novamente e em seguida, a textura muda de volta. Então, isso é realmente o quão fácil é, bem, basicamente mudar a textura disso e apenas algo como pequeno como este, certo? Alterar a textura no tablet é um efeito tão legal que, com certeza , é como, vai fazer um mod inteiro saber? Mas se você adicionar algo assim ao seu MOD vai ser muito frequente , certo? E isso já é isso para esta palestra aqui. Todos os códigos nos arquivos JSON estão, naturalmente, disponíveis para você no repositório do GitHub e para um indivíduo também. E eu vou te ver na próxima palestra. Sim. 69. TARde 7: Blockstates e NBT: Tudo bem, bem-vindo a este exercício aqui para o curso de forja. E o que você basicamente deve fazer aqui é que faremos um como alguma propriedade de estado de bloco e , em seguida, um exemplo de dados NVT. Basicamente, sua criatividade é justa, você pode fazer o que quiser. Basicamente, seja criativo. Não fique muito louco, certo? Não pense que vou fazer coisas malucas com seis dados NVT diferentes. Oh, muito lento, muito fácil, certo? Talvez faça outra propriedade booleana, talvez faça uma propriedade inteira, seja lá o que for, isso para algo que é realmente legal, mas também não muito louco. Não exagere muito com isso. Basta pensar nisso e então você gerenciará essa tarefa. Não há solução real para isso porque, bem, basicamente você pode fazer o que quiser aqui, o que pode ser um pouco grande demais, mas tenho certeza de que você vai gerenciar, mas estou muito interessado em veja o que você pode inventar e sim. 70. Colagem personalizada (intermediário) (de mediate): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar uma colheita personalizada ao Minecraft. Portanto, o corte personalizado é, na verdade um processo bastante simples. Todas as coisas consideradas, há, é claro, algumas coisas muito especiais que ainda não vimos, mas no geral, vai ficar totalmente bem. Então, antes de tudo, precisamos um passe personalizado em nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java chamada de bloco Rob nabo. E bem, temos duas possibilidades diferentes aqui. Podemos estendê-lo do bloco de colheita ou, e isso será mais fácil primeiro, vamos estender isso do bloco de raiz de beterraba. Agora, a razão para isso será aparente em apenas um momento. Primeiro de tudo, se o parâmetro for seu ruído, você muda F6 e, em seguida, renomeie-o para propriedades e clique no botão do meio do mouse no bloqueio do talão aqui. Qualquer um verá que ele tem uma propriedade inteira chamada age. Agora, essa propriedade inteira vai de 0 a três, que é exatamente o mesmo número de idades ou valores de idade que nosso bloco também possui. É por isso que basicamente podemos tomar quase a totalidade disso. Só precisamos substituir o bom método de identificação de semente aqui em nossa própria classe. E o resto basicamente pode ficar exatamente como está. Agora, se você tiver uma idade diferente em sua safra acostumada, dê uma olhada no bloco de colheita. Você pode ver que a sorte da colheita realmente tem uma pessoa de sete anos neste caso. Se você quiser alterar isso, também, você pode simplesmente alterá-lo usando um diferente a cada ano ou você pode definir sua própria idade se, você sabe 12357 e 15 ou 25 não são nenhum dos agentes que você deseja. Você pode simplesmente criar sua própria propriedade inteira. Já vimos isso anteriormente. Então isso não deve ser muito louco. A única coisa que pode ser um pouco louca é essa forma por idade aqui. Então eu posso realmente diminuir um pouco e depois rolar e continuar rolando e rolando. Isso está muito mal formatado em minha mente. Só não gosto disso, que está tudo em uma linha. A ideia geral é que basicamente temos apenas uma caixa no nível selvagem dessas mudanças de caixa. A caixa é o contorno preto que um bloco tem quando você passa o mouse sobre ele. E o esboço muda de acordo com a idade da cultura real aqui. E então o mesmo vale para basicamente o bloco de raiz de beterraba. Você pode ver na 0ª idade, são 246 e oito. E você pode basicamente mudar aqueles na vontade também. Então isso é algo que você também pode fazer. Tudo isso não deve ser muito louco. Todas as coisas consideradas. Você sabe, se você tem uma cultura completamente personalizada que deseja implementar com uma idade diferente e tudo isso, tenho certeza de que você vai gerenciar porque maior parte disso não é muito louca. Apenas certifique-se de saber, você, você substitui o método de idade GetMax. Basicamente, basta dar uma olhada na raiz da beterraba. Aqui, dê uma olhada no bloco de colheita aqui. Dê uma olhada nas mudanças que eles fizeram de um para o outro e depois o resto. Tenho certeza de que você vai gerenciar e descobrir. E nós realmente precisamos substituir o ID de semente por enquanto, o que vamos fazer é que vamos fazer isso um, fazer isso um erro. Então, não me esqueço disso. Esta é apenas uma dica rápida aqui porque eu talvez eu queira esquecer de mudar isso e então você vai ter que passar por isso de novo. Então, não vamos fazer isso. E vamos então adicionar um, bem a colheita aqui em nossa classe box. Então isso vai ser apenas copiando o alçapão aqui. E vamos chamar isso de safra de sublinhado de nabo. Agora, o que é muito interessante é que, claro, essa também será a safra de sublinhado de nabo. Agora isso não é um bloco de registro, este é o registro de pontos de blocos. E a razão pela qual estamos chamando blocos ou registramos em vez de fazer o método do bloco de registro é porque na verdade não queremos um item de bloco associado a esse prop específico aqui. O que queremos é que queremos fazer uma semente mais tarde. Então, vamos dizer bloco de safra de nabo. E então isso realmente vai ser material, mas vamos dizer cópia e mono, digamos blocos de trigo ponto, sua célula que nós realmente, vamos fazer raiz de beterraba, raízes de beterraba, eles vão e o resto é tudo bem. Acredito que a única outra coisa que queremos é não fazer colisão também. Portanto, sem colisão, sem oclusão. Comprimento 2 que realmente não deveríamos precisar aqui. E então o resto deve ser copiado das raízes da beterraba de qualquer maneira, então não se preocupe lá. Então este é o bloco realmente feito e ainda precisamos do item. Agora esse item, como eu disse, vai ser apenas as sementes. Então, vamos apenas escolher o tablet de dados e vamos dizer transformar sementes de sublinhado de IP. E então o nome aqui, é claro, também apareceu sementes sublinhadas. E isso vai ser um item, nome, item de bloco. Isso é interessante, sim. Certificar-se de que isso realmente se acumula em mais do que apenas um. E então vamos mudar o nome aqui também. Portanto, essa ordem e, em seguida, o primeiro parâmetro será o modo de bloco blocos dot urllib crop. No entanto, vamos mudar um pouco a formatação. Quero dizer, isso vai ficar bem. Isso vai ser bom em leitura. Mas vamos precisar fazer disso um item chamado item de bloco porque realmente queremos tomar a vez do nome das sementes em vez do nome do BlockName da porcaria de nabo. Agora, o que podemos fazer na classe, pois podemos devolver mais itens, nabo de ponto, seeds.rb, bem aqui. E então a classe realmente fez, como eu disse, se você tem idades diferentes e coisas assim, dê uma olhada na classe de colheita, dê uma olhada na classe de blocos de beterraba. Eu recomendo que isso deve ser basicamente tudo o que você realmente precisa fazer. E no curso MC mod uma classe, também precisamos adicionar a cultura de nabo à camada de renderização específica. Então, vamos apenas duplicar isso com o Control D. E depois colocar, por sua vez , uma colheita aqui. E isso também é feito. E, em seguida, os arquivos JSON são tudo o que restou. Agora vamos realmente fazer a tradução primeiro porque há uma pequena tendência para esquecer isso. Então, vamos aumentar a safra de sublinhado. E então esta será a cultura de nabo aqui. E então o que vamos fazer é apenas acrescentar também, isso vai ser as sementes, elas vão ser sementes. E então a colheita será realmente adicionada aqui. Então, vai ser exibido, sublinhado safra. Vire para cima, Rob. Então você pode querer essa tradução também, apenas para que você a tenha quando tiver o, o que estou olhando para o modelo que basicamente exibe qual o nome real das caixas que você está olhando. Isso às vezes também pode ajudar lá. Com a tradução básica. Vamos copiar sobre o bloco Estados Jason e eu vou explicar. Claro, você pode ver que isso não é nada muito louco, nada que ainda não vimos. Basicamente, temos quatro idades diferentes, 0 a três, e estamos apenas apontando para diferentes arquivos JSON de modelo de bloco. Então, isso é basicamente tudo o que há para ele. Isso não deve ser nada completamente novo. Nós só vamos copiar isso também. Esses são, naturalmente, todos disponíveis para você no repositório do GitHub ou em um indivíduo também. E você verá que isso agora é apenas colheita aqui. E então as texturas também apontam para cortar. E então nós apenas apontamos para diferentes modelos de blocos. Apontamos para diferentes texturas de blocos. Então isso é praticamente tudo o que há para ele. E vamos também copiar as sementes aqui. Também apenas aponta para uma textura. Nada de louco sobre isso. Bem, isso na verdade não é tão louco. Todas as coisas consideradas. Vamos pegar a textura do Aedes e, em seguida, vamos obter texturas de chumbo para os blocos também. Eles apenas 0 a 3 anos. E então mais uma coisa muito interessante será, bem, a mesa de saque. Agora, como funciona a mesa Lu? Bem, para isso, vamos apenas ir para as bibliotecas externas. Mais uma vez, a pasta de dados aqui, cliente de microondas direito e 1181 extra para os blocos de tabelas de alaúde. E então vamos dizer, por exemplo, as raízes da beterraba. Vamos abrir isso e você pode ver que isso é um pouco mais complicado neste momento. Mas o que podemos fazer é simplesmente selecionar todo o controle C, ou também podemos selecionar o arquivo JSON Control C. E, em seguida, basta ir até o nosso curso MC tabelas Lou blocos Control V para colá-lo. E então vamos dizer se Eva aparecer sublinhado, e então só precisamos mudar um monte de coisas aqui. Agora é muito importante, como você pode ver, que estamos realmente procurando por um bloco, digamos, propriedade, velhice, e tem que ser três. E então esta é a condição sob a qual a batida real cai. Isso é muito importante. Então, este será um nabo do curso MC para o qual vamos mudar isso. E então isso é claro que vai ser o curso MC. Ative sementes sublinhadas. Agora muito importante, temos que mudar esse bloco também, certo? Porque este agora vai ser o curso MC Olin safra de nabo. Como estamos verificando propriedade da idade e a cultura de nabo não mais a batida, bata raízes basicamente. E então a mesma coisa acontece aqui, certificando-se de que mudamos isso para mais uma vez o termo safra. E então aqui estão algumas sementes adicionais onde ela pode cair. Nós só vamos copiar isso também. Certifique-se de que tanto o ID do modo quanto os nomes dos itens e blocos tenham mudado. É muito fácil olhar sobre o MOD ID aqui. Então, sim, isso, é claro que o arquivo também está disponível para você, então não se preocupe lá, mas isso é tudo o que precisamos fazer para adicionar o corte personalizado. Então, vamos ver se funciona. Ou se Francis voltar e microvesículas ver os assentos de nabo foram adicionados com sucesso aos jogos. Vamos ver. Eu também posso plantá-los. Esse é um começo muito bom. E vamos usar um pouco de farinha de ossos neles e eles vão Então eles estão cultivando laticínios é e vamos apenas mudar violento. Veja, eu posso até pegar alguns nabos e alguns assentos de volta. Então isso é exatamente o que queremos C, e vamos ver se eles também crescem quando basicamente o tempo é feito um pouco mais rápido aqui. Então, tiques aleatórios são apenas para gostar 2 mil e lá eles estão crescendo também. Então, tudo funciona incrivelmente. Claro que quando eu os quebro em criatividade, é por isso que mudei para a sobrevivência. Então, se formos para a sobrevivência, lá vai você, tem alguns bons nabos aqui. E lá vamos nós. E agora podemos nos tornar o jardineiro dos nossos sonhos, certo? E isso já é isso para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo, e eu te vejo na próxima palestra. Então, sim. 71. (intermediário) adicione itens ao composter: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra muito curta, mostrarei como você pode adicionar seus itens ao compostor. Então você pode basicamente torná-los compostáveis, muito, muito fáceis no método de configuração que você tem. Espero que isso seja com o conjunto comum do parâmetro de evento FML. O que você vai fazer é dizer ponto de evento e q viável. E então você vai colocar entre parênteses, uma flecha e os colchetes encaracolados. E dentro disso, queremos chamar composter loc dot dot, colocar mais itens que as sementes de nabo que recebem, por exemplo, 0,5, acredito, é o número correto. Em seguida, duplique isso com o Controle D e, em seguida, vamos colocá-lo em um nabo aqui também. Vou colocar em 65. Então, podemos realmente dar uma olhada no mapa compossible aqui. E essas são basicamente as mudanças que temos. Então você pode ver esses três, então o ligante basicamente vê aqui típico 3.5 batata VDD. Acho que as sementes são, na verdade, menos, então existem três. Vamos mudar isso para três. Isso também é totalmente bom. 0,3. Lá vai você. É praticamente isso. Isso é tudo o que você precisava fazer para adicioná-los ao compostor, embora, para fins de conclusão, vamos ver se ele funciona. Oh, bem se amigos, há um Minecraft e lá vai você. O composter, ambos funcionando exatamente como você esperaria. E agora temos uma refeição de ossos, ou isso já será para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo e eu te vejo na próxima palestra. Então, sim. 72. Flores personalizadas (intermediário) (de mediate): Ou eu dou as boas-vindas de volta ao quarto curso para 118. E nesta palestra vamos adicionar uma flor personalizada ao Minecraft. Mergulhar uma flor personalizada é realmente bastante fácil. Então, na nossa classe de blocos modelo, vamos fazer é apenas copiar a flor de cerejeira, uma armadilha. E essas serão as linhas de sublinhado rosa. E, claro, para o nome também, linhas de sublinhado rosa. Agora, este será um bloco de flores, que na verdade leva três parâmetros diferentes. O primeiro é uma multidão efeitos ou efeitos que digamos cegueira, por exemplo. E então a duração do efeito, que popular para vir e sair é, na verdade em segundos desta vez, em vez de carrapatos. Não sei por que parece muito inconsistente, mas é o que é e o mapeamento real, o que vamos fazer é não precisar de nada disso. E então vamos copiar de blocos aquele leão dandy aqui para que basicamente tenhamos todas as propriedades que vamos precisar. Portanto, as propriedades que vamos precisar basicamente não são colisão na extremidade seborreica. Além disso, acredito que o material do plano basicamente lhe dá a não oclusão. Então este aqui, precisamos de ambos, OK, sem oclusão e sem colisão. Mas copiando as propriedades de qualquer linha onde basicamente já tem isso aqui. O que também vamos precisar fazer para a flor está em nosso método de configuração, precisamos chamar isso para a rosa rosa aqui. Então, precisamos definir a camada do renderizador corretamente e, em seguida, bem, ela é basicamente desligada aos arquivos JSON. Esses são, naturalmente, todos disponíveis para você no repositório do GitHub ou em um indivíduo também. Ele Bloc afirma que Jason é apenas um Bloco normal. Jason também adiciona a tradução aqui, para não esquecer isso, as linhas de sublinhado rosa. E então rosa rosa aqui. Lá vai você. E, em seguida, vamos adicionar o modelo de log também. Nada realmente interessante acontecendo. Temos um padrão cruzado desta vez e uma textura cruzada também. Você pode ver desta vez o pai é a cruz aqui e, em seguida, as texturas também são cruzadas. Isso é realmente a coisa mais interessante neste caso. E o modelo do item também é bastante interessante porque este aponta para uma, bem, a mesma textura de bloco para a qual o bloco aponta, porque embora seja basicamente a mesma coisa que você tem em sua mão, que também parece no mundo basicamente, nós vamos apenas copiar isso também. Então eles vão e isso é realmente tudo o que precisamos para uma flor personalizada. Então agora vamos ver se funciona ou encontramos aqueles de volta no micro. Como você pode ver, a rosa rosa foi adicionada com sucesso ao jogo. E não parece lindo? Então é assim que pode ser fácil adicionar uma flor personalizada ao Minecraft, certo? E então já é para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. E eu vou te ver na próxima palestra. Sim. 73. Põe de flores personalizado (de mediate) (de (Intermediate): Tudo bem, bem-vindo de volta ao curso de forragem até 118. E nesta palestra, vamos adicionar um plano de política personalizado ao Minecraft. Então, depois de ter adicionado à flor personalizada, agora também vamos fazer uma parte que irá variar essa flor. E do jeito que vamos fazer isso, vamos copiar isso e vamos dizer parte, rosa rosa. E o mais importante aqui é que este realmente não chama o método do bloco de registro, mas isso mais uma vez chama blocos que se registram aqui. Então, o que vamos fazer é que vamos tirar a torneira de alívio no final. E então também vamos fazer desta a parte que sublinha rosa rosa. E este agora é um bloco de vasos de flores apenas para isso. Isso realmente vai precisar três parâmetros diferentes também. O primeiro é nulo, o segundo é mod blocks, rosa escuro, rosa, o mesmo sem um get. E então isso vai levar o leão dândi da auditoria como ele está copiando as propriedades. Agora, você pode dizer, bem, isso já é isso, não é bem, porque o que ainda precisamos fazer é que ainda precisamos adicioná-lo com uma lista de possíveis flores de poço, apenas essencialmente. Então, uma vez que o método de configuração, o que vamos fazer é dizer blocos, aquela parte da flor, aquele elenco. E então vamos lançar isso um bloco de vasos de flores bem aqui. E então podemos fazer é, então, podemos chamar o método add. Vou dizer modo de bloco, blocos ponto, linhas, ponto GetId. Então o segundo é apenas blocos mapeados ponto-produto, rosa, rosa. Então, esta é a maneira de basicamente adicioná-lo que você pode clicar com o botão direito do mouse com suas linhas aqui e, em seguida, você vai tirar esse bloco dele. Agora, este ainda é um bloco normal, então ainda precisamos de um bloco States Jason, modelo de bloco Jason e um arquivo de tradução para a rosa da tubulação. Só vou copiar isso. O estado do bloco é, na verdade, apenas um bloco normal, diz Jason ano, o modelo é um pouco diferente, mas não muito louco. Vamos antes de tudo realmente fazer isso. Então, vamos fazer parte em Gross são linhas épicas. Agora essa tradução só é necessária se você tiver algo como, o que estou olhando? O modo que basicamente você pode, você sabe, que o que você basicamente está olhando para qual é o nome do bloco real que você está olhando. Agora, este ano, esse modelo de bloco que você pode ver é na verdade, parceiros de sublinhado de flores. E então especificamos o anterior. Agora também é importante depois de adicionarmos isso, não precisamos de nenhuma outra textura. O que precisamos é que também precisamos ter a rosa rosa pública aqui na camada de renderização cortada. Caso contrário, também teremos um pouco de exibição será emitido lá. Caso contrário, isso é tudo o que precisamos fazer, embora você possa ver que é realmente bastante simples, mas ainda assim, há algumas coisas interessantes, especialmente com isso, com o lançamento da flor real pote. Depois de adicionarmos isso, vamos ver se funciona. Ou fornos de volta em micro. Então, vamos apenas definir a parte para baixo e lá vai você. Temos as linhas de tinta em vaso, que está funcionando totalmente bem. Mas isso é exatamente o que você gostaria. Em vez de apenas um rápido lado aqui no final, se alguém está se perguntando, você sabe, oh, como podemos fazer a tabela LU para isso? Mais uma vez, vem, temos exemplos de baunilha disso ir para as bibliotecas externas, até o cliente de microondas líquido extra 181. E então, nas tabelas de loop, você pode simplesmente procurar por todas as plantas em vasos. Você pode, por exemplo, dar uma olhada nisso e, basicamente, apenas substituir este allium aqui por seu próprio. Então, basta copiar sobre o Controle C, Controle V e, em seguida, altere isso. Isso é, na verdade, o quão fácil isso pode ser. Então você sempre tem todos os exemplos de baunilha basicamente na ponta dos dedos. Recomendo olhar para eles também. Se você já está confuso ou quer algo que já esteja em baunilha, basicamente apenas replicado. Muitas vezes é muito fácil de seguir, mas, caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. Vejo você na próxima palestra. Então, sim. 74. (de (Intermediate) sons personalizados (de (Intermediate): Tudo bem, bem-vindo de volta ao curso para 118. E nesta palestra, vamos adicionar sons personalizados ao Minecraft. Ou sons personalizados são, na verdade, bem, eu diria bastante simples, tudo considerado. Agora, o que vamos fazer é que precisamos, claro registrá-los. Então, no nosso pacote de cursos MC, clique com o botão direito do mouse em novo pacote chamado som E então dentro de sua nova classe Java para cidades, eles atrás agora essa classe de sons de modo terá um registro diferido final estático público do tipo evento de som chamado eventos de sublinhado de som, que será igual a adiar o registro que cria ou registra eventos sonoros, MOD do curso MC, mas modificado. Agora, seja um registro diferente, existe um método de registro vazio estático público com um barramento de evento, um barramento evento legal ou seu parâmetro e, em seguida, eventos sonoros que se registram passando no perímetro de ônibus de eventos. Então, esse método aqui é claro chamado logo abaixo dos tratamentos modernos. Então sons mod, não eventos sonoros, mas registre o ônibus de eventos. Lá vai você. Agora, como os eventos sonoros foram? Bem, eles são, na verdade, bastante simples. Objeto de registro estático público do tipo, evento sonoro, dowsing, sublinhado, sublinhado de haste encontrado sob pontuação ou será o nome de horas. E para isso, na verdade, vamos criar um método personalizado. Bem, deixe-me fazer isso por um segundo aqui. E vou criar novos métodos de Registro estático privado. Objeto do tipo encontrado evento registraria eventos sonoros. E aqui só precisamos passar um nome de string. E então o que vamos fazer é criar um local de recursos. Qual ID? A nova localização do recurso, MOT do curso MC, mot ID e o nome como o nome do parâmetro aqui. E depois retornaremos eventos sonoros que se registram com o nome e, em seguida, um fornecedor de um novo evento sonoro. E aqui nós só temos que passar a ele a localização do recurso. Este é o método auxiliar e isso vai tornar nossas vidas muito mais fáceis. Aqui vamos chamar esse sublinhado de dosagem. Sublinhado encontrado na pontuação ou o nome aqui será muito relevante em apenas um momento. Então esse nome aqui realmente será o nome de algo que nós, bem, basicamente declaramos em um arquivo JSON separado. Então, agora o som foi registrado. Agora, antes de tudo, precisamos, claro, é algum tipo de arquivo de som. Agora, isso vai para os ativos na pasta do curso MC ou na ID basicamente. Mas precisamos de duas coisas. Número um, precisamos de um novo arquivo chamado Sounds data JSON, sons muito importantes ponto JSON. E está disposta assim. Temos colchetes encaracolados e, em seguida, basicamente declaramos sons diferentes. Então, vou copiar sobre a declaração do som. E o que você vai descobrir é que esse nome aqui é exatamente o mesmo que esse nome aqui. Então esses dois têm que corresponder. As legendas são basicamente o que você verá dentro de tudo o que você declara dentro do seu ouvido e nos sublinha arquivo JSON quando tiver legendas. Portanto, isso é algo que você pode adicionar ao arquivo JSON curios do EMRs. Você também pode chamar isso de algo como sons de ponto M, C corps, onde quer que algo assim. Não vou adicionar a tradução aqui porque no momento ela não é tão relevante e também é apenas uma coisa que você copia. Não deve ser muito louco com a bagunça com a tradução por um tempo. Agora, isso deve ser bastante simples. E o que é muito interessante é que isso soa aqui, isso é uma lista, certo? Porque temos esses colchetes, este ano aponta para o sublinhado de dowsing, um sublinhado encontrado na escola ou agora, onde esse arquivo está localizado? Bem, definitivamente sob o namespace do curso EMT, mas onde exatamente bem, na pasta de cursos MC de ativos é executada. Novamente, clique com o botão direito do mouse em New Directory acorde E então, dentro de lá, precisamos um arquivo OGG com esse nome. Então, vou copiar isso sobre eles atrás. E é muito importante que esse nome aqui corresponda exatamente a esse nome. É, tem que ser um arquivo OGG. Isso é muito importante e tem que estar sob o som mono, o tipo de som ou o espaço sonoro. Tem que ser um arquivo OGG mono. Caso contrário, você pode encontrar alguns problemas, muito importantes. E você não pode simplesmente pegar um arquivo MP3 e renomear o final dele. Mp3 tem que ser convertido corretamente em um arquivo OGG. Então isso é muito importante. Agora tudo o que você encontrará é porque esta é uma lista que você poderia, em teoria, ter várias entradas aqui. Então você pode ver agora que eu poderia ter outro aqui e então ele escolheria basicamente um desses. Então isso é muito importante. Vamos ficar com um por enquanto, mas há a oportunidade basicamente aqui de adicionar vários. Agora a questão é: como chamamos isso ou janela? Vamos chamar isso, bem, vamos chamar isso, é claro, no item da vara de dowsing, basicamente quando encontramos um valioso ou aqui, queremos jogar isso. E como jogamos isso? Bem, vamos dizer que os contextos pontuam o nível do gate-level. Então, precisamos do nível quando digo tocar som. E então vamos pegar o jogador, vamos fazer com que a posição seja clicada. Vamos ter sons modernos. Aquela haste de dowsing para fora ou que obtém fonte sonora vai ser, digamos blocos, isso vai ficar bem. E, em seguida, Volume 1, f e pitch um também. E isso é realmente o quão fácil pode ser adicionar um ou chamar um som rico em tocar um som. Você só precisa do nível e, em seguida, tocar um som ótimo. Mas há maneiras diferentes de você reproduzir sons. Eu acredito que você pode ter visto essa taxa como se eu tivesse um nível, poderia obter nível. Você pode ver que eu posso tocar som. Posso até reproduzir som local, o que seria um som local. Então eu recomendo brincar um pouco com isso e ver qual deles basicamente funciona melhor. Você também pode fazer isso no próprio jogador. Então você também pode fazer o som do player. Você pode ver lá você vai, no entanto. Eu só recomendo brincar um pouco com isso e ver e qual pode ser a melhor ideia para você para este fim. Sim, mas isso é realmente tudo o que precisamos fazer para adicionar sons personalizados. Então, vamos ver se funciona. Ou eu faço uma fazenda como um microondas e certifique-se de que seu volume esteja aumentado apenas para que você tenha certeza de que pode ouvi-lo. E vamos ver, lá está. N Nós ouvimos isso. Anel, anel, anel. Então, tudo funciona muito bem. E agora o que você também pode ver é quando eu coloco os blocos para baixo porque nós fizemos isso blocos de fonte sonora. E C Agora não podemos mais ouvi-lo assim que eu virar os blocos de volta em suas costas. Mas isso é realmente muito legal. Deixe-me baixar o volume um pouco novamente. E vai ser muito silencioso. Talvez, para que fique tão quieto que você nem consegue ouvi-lo. Mas sim, isso é realmente o quão fácil pode ser adicionar sons personalizados ao Minecraft, certo? Isso é realmente o quão fácil é e acho que realmente é bastante simples. Agora, uma coisa que provavelmente está em sua mente, sim, mas eu quero que meu bloco personalizado tenha sons personalizados também. Bem, felizmente, é exatamente isso que vamos ver na próxima palestra. Mas é isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo, e eu te vejo na próxima palestra. Então, sim. 75. (de (Intermediate) sons personalizados para blocos: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um tipo de som personalizado. Minecraft. Agora o tipo de som basicamente inclui cinco sons diferentes e representa o som para um bloco específico. Mas há um som quebrando é pisar o som, colocar o som, um som de sucesso e um som completo. E vamos adicionar todos os cinco desses. Agora, vou copiar sobre o registro básico. Isso definitivamente não é tão interessante. Primeiro de tudo, isso é muito engraçado que este não seja o nome correto, mas isso é, claro, totalmente bom. Eles vão registrar eventos sonoros neste caso. E você pode ver que basicamente temos lâmpada de cobalto quebrar lâmpada de cobalto passo, vamos bater e cair. Então, esses são os eventos sonoros, os individuais, precisamos deles e isso também será necessário é que precisamos um tipo de som de forja personalizado. Então eu também vou copiar este aqui e você pode ver que é praticamente apenas os sons de cobol. E isso é então igual a uma nova métrica do tipo de som que vai fazer sons de cordeiro de colega de trabalho para estudá-lo, é um pouco mais claro ao que isso se refere basicamente. E aqui, basicamente precisamos passar os sons do modo e não precisamos fazer isso porque o som da forragem aqui realmente uma vez um fornecedor. Então, isso vai ser totalmente bom. Então, basicamente queremos usar isso em vez do tipo de som apenas para ter certeza, porque isso é, tem algo a ver com o carregamento e basicamente registrar coisas. Neste momento, esses cinco eventos Sound, na verdade, ainda temos que registrar esses sons. Arquivo Json aqui. Agora, vou copiar isso de novo, mas não se preocupe. Tudo isso, é claro, está disponível para você no repositório do GitHub ou em um indivíduo também. E você pode ver que basicamente temos o passo de quebra da lâmpada de cobalto, por favor, aperte e caia, que basicamente uma vez que você obtém as legendas aqui e depois se refere a um arquivo de som específico. Mais uma vez, eles têm que ser OGG, isso é muito importante, e também eles precisam ser mono. Isso é incrivelmente importante mais uma vez, caso contrário, pode haver alguns problemas com os arquivos. E também você não pode simplesmente renomear um arquivo MP3 para basicamente um arquivo OGG, ele deve ser convertido corretamente. Portanto, certifique-se de que todas essas coisas sejam o caso. E, claro, em nosso exemplo aqui, você pode, naturalmente, apenas usar aqueles que eu forneço, no entanto. Vamos apenas copiar esses aqui. Eles vão, cinco deles. E isso deve ser praticamente Então os sons são registrados. Tudo bem, mas como adicionamos isso agora a um bloco? Bem, como realmente bastante simples, mas no nosso caso queremos adicionar isso à lâmpada aqui. Então, vamos adicionar uma nova propriedade de comportamento de bloco e isso vai soar o ego e já sugere isso. Então isso vai ser sons mod dot para o que soa, e é isso. Tudo o que precisamos fazer. E agora a lâmpada de cobalto deve ter todos os sons associados a esse tipo de som aqui, que são todos cinco desses. No entanto, quero dizer, parece muito anticlimático, mas é praticamente isso. Então, vamos ver se funciona. Ou nos encontramos de volta ao Minecraft e um já aqui. Funciona totalmente bem. Então, vamos pisar nisso. Isso é exatamente certo. E vamos quebrá-lo. Isso é exatamente correto. Agora, a única coisa que encontrei e isso é muito interessante é que o som caindo por qualquer motivo, não funciona bem. Ou funcionou lá. Vamos ver. Agora, não funcionou bem. Não tenho 100% de certeza. O som caindo, às vezes parece não querer funcionar. Sinceramente, não tenho 100% de certeza por que esse pode ser o caso. Mas os grandes, o som quebrando, o som de colocação, esses são os grandes, o som batendo, eu acredito que eu também posso ir aqui e então aqui você pode ouvi-lo, bem como o batendo som e colocando som, coisas assim. Esses são realmente os grandes. No entanto. Isso é bem legal, já haveria isso para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo, e eu te vejo na próxima palestra. Então, sim. 76. (de medium) de música personalizada (de (Intermediate): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um disco de música personalizado ao Minecraft. Então, para basicamente concluir nosso empreendimento nos eventos sonoros, agora também vamos adicionar um disco de música personalizado. Agora, isso é mais uma vez, praticamente apenas no evento sonoro normal aqui. Vamos apenas copiar isso e eu vou colocar isso acima dos tipos de som reais por precaução. Às vezes, pode estar um pouco separado. Aqui vai estar a briga de barras e, em seguida, o evento de som em si também será chamado de função de sublinhado VAR. Lá vai você. E então, é claro, o evento sonoro está pronto. É claro que ainda precisamos adicionar isso aos substantivos , ponto ponto, Jason. Então, mais uma vez, vou copiar isso. Tudo isso também está disponível para você, é claro. E você verá que é só Barbara. Oh, este é o mesmo nome que demos aqui. E então isso aponta para uma briga de barra bem, nome, arquivo nomeado na pasta Sons aqui, que tem que ser ODD mais uma vez. E desta vez é cada vez mais importante que seja mono porque, de outra forma será ouvido em todo o servidor. Isso é muito importante e você pode ver que também temos esse fluxo verdadeiro aqui porque o, bem, em primeiro lugar, o comprimento do arquivo é um certo comprimento. E o número dois é , naturalmente, um fluxo que deve fazer sentido. Vamos apenas copiar essa briga sublinhada overbar. Lá. Você praticamente vai. Agora, para o disco real, certo? Precisamos entrar em nossa classe mais itens e criar um novo item aqui, vamos pegar o tablet de dados e vamos copiar isso. E esse será o registro de sublinhado da briga de sublinhado VAR . Digamos que agora, para o nome real, eu vou chamar isso de fundo são brigas sublinhadas e o disco de sublinhado de música apenas empilhamento 21 é realmente bom aqui, e este é um item de gravação. Agora, isso toma um parâmetro inteiro como seu primeiro parâmetro. E então o segundo parâmetro será um modo soa barra de pontos, briga. Você pode ver que o primeiro parâmetro inteiro é o valor do comparador. Basicamente, bem, o que ele produz quando a força do sinal que ele emite quando você coloca um comparador ao lado da jukebox quando você coloca esse registro. Agora este é um item normal, no entanto, ele tem uma especialidade, por assim dizer. E isso vai ser, bem, quando se trata da tradução que precisamos para a tradução é uma coisa a seguir. E isso vai ser exatamente isso. Então, o disco de música Barbaro acessa o nome dele, certo? E então também precisamos desse DESC para descrição. E isso geralmente contém com qualquer artista que basicamente fez isso e depois o nome da música. Também incluí o CC Zero para basicamente significar que isso está em domínio público, então você está livre para usar isso. Eu só recomendo sempre creditar ao artista por isso porque isso é a coisa certa a se fazer. Mas isso também é um item normal, então ainda precisamos de um modelo de item e vou copiar isso. Isso não é nada louco demais. Ele apenas aponta para uma textura normal do item aqui, o que, claro, também será uma coisa bastante simples. Então, vamos apenas copiar isso também. Eles vão e isso é praticamente tudo o que precisamos fazer. Então, é praticamente isso adicionar o registro personalizado aqui. Então, acho que vamos ouvir se funciona. Tudo bem, nós fazendas como microondas podemos ver o bar Brahms música, Isso foi adicionado, então vamos colocá-lo na jukebox e lá está. E agora que o que é muito importante é que quando eu voo para longe, você pode ouvi-lo ficando fio e silencioso até que não seja mais capaz de ser ouvido. E se eu chegar mais perto, vai ficar mais alto novamente. Então, isso é perfeito. E isso faz é exatamente o que queremos. Essa é uma das razões, ou basicamente você precisa ter esse arquivo OGG e mono. Caso contrário, ele realmente será ouvido em todo o servidor quando você jogar isso para se certificar de que está em mortal, eu cometi o mesmo erro antes. Então, basicamente, isso é basicamente o quão fácil é adicionar um disco de música personalizado, Minecraft, certo? Isso já é para esta palestra aqui. Espero que você tenha achado isso útil na urina. Então, o novo, se ele fez, apreciamos muito uma crítica sua. Caso contrário, verei você na próxima palestra. Então, sim. 77. (Intermediate) modelos de bloco personalizados no Minecraft com BlockBench com: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar modelos de blocos 3D personalizados ao Minecraft. Mas isso é uma coisa muito excitante, certo? Adicionando um bloco 3D personalizado, o Minecraft, basicamente isso não é um bloco inteiro, mas apenas uma forma diferente basicamente. E há muitas partes móveis para isso. Então, antes de tudo, o que você vai precisar é que você vai precisar um programa chamado bancada de blocos. Agora, eu já tenho isso aberto e também já tenho nosso bloco personalizado preparado aqui. E você pode ver que é, você sabe, é definitivamente personalizado como você definitivamente pode dizer isso sobre isso. E a ideia geral é que, bem, vamos exportar isso como apenas um bloco. Então, o que você pode fazer é basicamente quando você cria um novo arquivo aqui, você pode simplesmente criar um modelo de item de traço de blocos Java. Você pode até especificar o tamanho da textura, apenas um novo nome, e eles podem fazer coisas com ele. Agora isso não vai ser uma palestra sobre o banco de blocos em si. Se houver muitos interesses para isso, posso adicionar um aqui também, mas, por enquanto, não será um. Basicamente, você poderia apenas adicionar cubos aqui. Você pode movê-los, certo? Basicamente construindo Minecraft. Bem, só não no Minecraft, por assim dizer. Você pode apenas construir algo a partir de blocos e, em seguida, adicionaremos isso como um bloco personalizado e será que você vai fazer no entanto, vamos basicamente descartar isso. Não precisamos mais disso. Aqui, o que vamos fazer é ir para Arquivo e, em seguida, Exportar modelo de item de lodo de bloco. E isso nos levará a exportar isso basicamente. Vamos salvar isso. Então eu já tenho isso salvo, mas isso vai ficar bem. E isso será salvo em um arquivo JSON. Agora vou abrir este arquivo JSON bem aqui de forma inteligente. E você pode ver que se parece com isso. Então, isso é muita suavidade que nos move meio confuso. Não tenho certeza do que isso significa. Bem, os elementos aqui que listam basicamente apenas definem os objetos 3D que estão dentro do nosso bloco. E então aqui a textura que é como a coisa mais importante é basicamente definida aqui. Agora, precisamos mudar isso. Normalmente este é o caso, então o MC curso dois pontos e então eu vou realmente colocar isso em Machines slash comprou um blaster. E então a mesma coisa vale para este aqui. E vou então API sobre a textura real também. Então deixe-me fazer rapidamente a textura primeiro e depois podemos falar sobre o que esse arquivo JSON faz. Faça um novo diretório aqui chamado máquinas. Então, dentro de lá, teremos o ponto blaster de sublaster de cobalto PNG que você vai. E então para onde esse arquivo JSON vai? Bem, isso é apenas um normal. Bmi não é normal, mas é apenas um arquivo de modelo de bloco. É um modelo de bloco, Jason. Eles atrás. E aí você tem isso. E isso é literalmente tudo o que você realmente precisa para que o modelo de bloco personalizado funcione. Agora, existem algumas coisas interessantes que você pode definir aqui. Então, por exemplo, você tem essa tela e aqui você pode, por exemplo, definir como isso parece em 3D? Como seria se um zumbi o segurasse em terceira pessoa e você pode respirar em primeira pessoa, pessoa de Lester bem na cabeça, o que é meio engraçado. E então há no chão, você sabe, talvez seja muito grande ou que talvez seja pequeno demais para que você possa mudar tudo isso também. E tudo isso faz parte do arquivo JSON real que você estava exportando aqui. Então você pode ver que isso é exatamente aqui, essa tela, tudo isso está definido, então tudo funciona absolutamente ótimo. Agora vamos precisar de um modelo de item também. Agora isso, é claro, apenas se refere ao modelo de bloco aqui. Vamos apenas dizer blaster de cobalto, bem ali e aqui também. Ou gesso eles atrás. Agora isso, na verdade, tudo já vai funcionar. Agora, também precisamos de blocos personalizados Estados, Grayson. Agora, mais uma vez, basta escolher o bloco um e vamos copiar isso. E isso só vai apontar para o arquivo JSON que acabamos de fazer que exportamos aqui. Definitivamente vamos dar uma olhada neste em apenas um momento novamente, porque o que temos que mudar definitivamente talvez uma ou duas coisas lá. Mas, por enquanto, o que vamos fazer é fazer um novo bloco. Vamos registrar um novo bloco. Vamos levar a rosa rosa aqui porque os outros têm os blocos registrados. Queremos, é claro, fazer um item também. Então este será o blaster de sublinhado de cobalto. Então aqui também, Walt sublinhou blaster. Isso é por enquanto vai ser um bloco normal porque você poderia fazer isso com um bloco normal não, ou é o que for. E isso não vai copiar nada. Isso vai ser acima. E então vamos dizer algo como material, metal. E isso é, na verdade, por enquanto, tudo o que precisamos. Agora veremos duas limitações muito aparentes com isso. Estamos basicamente entrando no jogo, mas, por enquanto, isso é praticamente o que precisamos. Agora, o que também precisamos, no entanto, é a camada de renderização real aqui. Então, vamos definir isso imediatamente para o blaster cobol que você vai, e isso deve ficar bem. Agora, ainda veremos algumas limitações com isso. Mas, felizmente, também veremos como corrigi-los. Então, pela primeira vez nesta palestra, vamos ver se funciona. Ou eu nos encontramos em microRNAs podemos ver que o blaster cobol foi adicionado. Não adicionamos a tradução, mas é claro que é algo para corrigir facilmente. Agora, se eu defini-lo, você pode ver que, bem , antes de tudo, vamos ter um problema com o transparente. Então isso é algo que podemos consertar facilmente o seu e, em seguida, você também descobrirá que estamos antes de tudo, eu o defino, mas sempre parece na mesma direção. Então isso é meio irritante. E então também as fronteiras aqui são, bem, não exatamente o que deveriam ser. Agora, eles definitivamente não são o que deveriam ser. Então isso é definitivamente algo para dar uma olhada. Bem, felizmente, podemos corrigir todos esses três problemas. Então, vamos enfrentá-los um por um. O primeiro e mais fácil é, claro, porque o transparente, bem, só precisamos da não oclusão aqui nas propriedades do bloco, propriedades de comportamento de bloqueio. E se isso for legal, isso será corrigido imediatamente. Agora para os outros dois. Bem, para obter a rotação correta, vamos precisar que um cliente nos bloqueie para isso. Então, vamos fazer uma classe de bloco personalizada chamada o último bloco de cobalto. E isso vai estender a classe de bloco normal no momento. Vamos apenas criar construtor correspondente Super Se as propriedades aqui não, você clica nele, você clica nele, Shift F6 e, em seguida, alterá-lo para propriedades. E vamos precisar de uma propriedade personalizada. Agora, isso não é necessariamente uma propriedade personalizada, será uma propriedade disso será uma propriedade de direção final estática pública ou voltada, que é igual a propriedades de estado de bloco. Esse revestimento horizontal é muito importante aqui. E então vamos fazer é basicamente registrar o padrão aqui. Então esse ponto de definição GetState perturbou, ponto. Um valor de enfrentar será a direção do Norte. Então eles vão, essa será a direção padrão que vai enfrentar. E então queremos três métodos que eu vou realmente quatro métodos que copiarei. Nada muito louco aqui. Então você verá, é claro, em primeiro lugar, o método de definição de estado de bloco decretado, onde vimos isso anteriormente, apenas adicionamos a propriedade de fase ao construtor. Isso não deve ser novidade para você. Agora, esses três são definitivamente conhecidos e isso também adicionou a substituição a ambos apenas para que nós os tenhamos. No entanto, o bom estado para posicionamento basicamente mais uma vez garante que, bem, o posicionamento específico esteja correto. E neste caso, na verdade, queremos o posicionamento oposto do jeito que estou procurando. Estou olhando para o norte. Quero que o bloco esteja de frente para mim. Então, tem que estar olhando para o sul. Então essa é a ideia geral do que tudo isso faz. E então estes basicamente giraram e espelharam para estarem bem no rosto correto. Agora que, na verdade, tudo o que precisamos nesta classe aqui por enquanto, pelo menos. E em nossa classe mais blocos, certifique-se de que você agora, é claro, criou a nova explosão ou bloco de cobalto aqui e não mais apenas um bloco normal. Isso é muito importante. Às vezes, isso é o que as pessoas sentem falta quando fazem uma nova aula de blocos. Você sabe que não funciona tão bem se você não o criou. Então, isso é realmente muito importante. Claro, também precisamos mudar nossos Estados de bloco. Jason aqui e eu já preparamos isso. Agora isso não é nada louco demais. O que isso basicamente só faz é basicamente apenas dizer, hey, se estamos voltados para uma direção diferente, vamos girá-lo no eixo y 9080 ou 270 graus. Mas isso é praticamente tudo o que isso realmente faz, o modelo ainda será o mesmo. Nós só vamos girar o bloco inteiro basicamente. Isso, é claro, também tudo disponível para você no repositório do GitHub ou em um indivíduo também. E isso agora deveria ter corrigido o problema de rotação. E, claro, também , você sabe, basicamente a questão transparente, embora, pela segunda vez, esta palestra, vamos ver se funciona. Tudo bem, então antes de tudo, você pode ver mais uma vez, o bem real se foi. E então, se eu colocá-lo assim, lá vai você. Agora me enfrenta, assim como esperaríamos. Portanto, é apenas a caixa delimitadora que agora é o problema. E bem, como a sorte teria ou acho que a sorte não o teria. Isso também é o, não diria necessariamente a coisa mais complexa, mas pode ficar muito irritante. Mas vamos ver, só para que eu não me esqueça, eu realmente vou adicionar a tradução aqui agora, cobol 100 score blaster. Porque, de outra forma, vou esquecer isso. Então lá vai você, cobol blaster, e isso deve ser bom. Agora vamos precisar ajustar o bloqueio da explosão de cobol mais uma vez. A classe que você é, mas o que realmente vamos precisar é que vamos precisar de coisas do banco de blocos mais uma vez. Então, vamos reabrir bloco punchier. E o que você vê é que eu tenho todos os meus cubos sob o grupo chamado voxel shapes. Agora isso é muito importante. Na verdade, preciso disso sob o grupo de formas voxel. Caso contrário, não funcionará muito importante aqui. A próxima coisa, o que eu preciso é que eu preciso de um plugin específico para um 100 plugins que você possa ficar disponível e você quer procurar por mais utilitários. Agora, eu já tenho isso instalado. Parece assim do JDK 22 e do clima. Agora, isso é muito importante porque você pode ver a exploração de formas voxel. Isso é exatamente o que eu quero exportar aqui. Queremos ir para a forma de voxel. Quero selecionar isso para que tudo aqui seja selecionado. Vá para Exportação de arquivo e, em seguida, você pode ver exportar forma voxel. Agora eu quero exportar isso como um mapeamento MOOC. Então, mapeamentos oficiais aqui neste caso. E então eu quero dizer confirme. Agora eu quero chamar isso de sublinhado de forma voxel n. Agora você pode ser como, Espere, por que é n? Bem, vamos ter que exportar isso para todas as orientações diferentes. Então, vamos ter que girar isso em 90 graus. Exportado novamente, gire 90 graus, exporte novamente, gire 90 graus, exporte novamente. E depois terminamos. Precisamos de quatro voxels diferentes, formas. Ainda tenho que encontrar uma maneira melhor de fazer isso. Se você encontrar uma maneira melhor de fazer isso, por favor me diga. Eu realmente quero saber porque neste momento está se tornando muito bem, é muito chato porque vamos ter que fazer isso várias vezes. Mas vou mostrar como o Firefox será um arquivo Java. E você pode basicamente, você vai ter este ano. Agora, a primeira coisa que você fará é basicamente limpar isso. Então, se você tiver esses zeros são usuários ou simplesmente arredondá-los para cima ou arredondar para baixo para basicamente o inteiro mais próximo. Este ano é basicamente um ponto zero e depois seguido por 14 zeros. E então um três é como ok, isso vai ser um 0, é claro. Então, basicamente queremos limpar isso para que fique bonito e arrumado que só tenha introduzido aqui. E então podemos basicamente usá-lo. E o que vamos fazer é dentro da classe basicamente vai fazer uma nova estática privada. Forma de voxel final estática privada, mantenha a forma sublinhada n, que é igual a exatamente todo esse jazz aqui. Vamos copiar isso e Control V para colá-lo. Vou importar a forma do voxel. Vamos importar o fluxo. Importe as formas voxel. Na verdade, isso é apenas formas. Lá vai você. Há formas. E então o olho booleano funciona também diferente. Este é, na verdade, o booleano que eles atrás. Agora isso vai funcionar. Então, os mapeamentos reais provavelmente ainda não atualizados, bem para o banco de blocos, mas tudo bem porque isso é basicamente o que precisamos aqui e bem, isso é ótimo, mas agora só temos a forma para a direção voltada para o norte porque, claro a forma seria diferente se eles bloqueassem estivesse voltado para uma direção diferente. Mas temos que fazer basicamente, mais uma vez, selecionar as formas de voxel. Muito importante é que o ponto de pivô onde você pode centralizá-lo, mas você pode ver que agora não está bem centrado, como se estivesse centrado, mas depois tem esses valores decimais estranhos. Certifique-se de que isso seja como definido em um ponto que também é inteiros. Porque se não for, então você vai encontrar alguns problemas. E o que vamos fazer é girar isso 90 graus, assim. E agora você verá que isso realmente não se alinha. Agora está tudo bem. O que você precisa fazer é usar essas setas para movê-lo. E então você pode basicamente recentrar. Agora isso não vai ser em C. Agora, o que aconteceu aqui é que basicamente eu acidentalmente entrei no número e então ele só vai mover cada cubo. Isso é algo que é muito estranho e tem a ver com o banco de blocos. Eu simplesmente não tenho certeza se você pode ver se eu uso as setas, então vai ficar tudo bem que basicamente as mova como um grupo juntos. Se eu mudar os números lá dentro e, de alguma forma, isso vai movê-los individualmente. Só não tenho 100% de certeza por que esse é o caso. Esta é apenas a loucura com o banco de blocos. Infelizmente, não há nenhum outro programa no momento que eu esteja familiarizado com isso, você sabe, isso também funciona? Então, vamos ter que ficar com isso. E então você pode ver, bem, nós agora giramos isso e agora o bloco está voltado para o oeste. Então agora temos que exportar novamente a forma de voxel. E então este é o sublinhado do Vox W. E isso é muito importante, certo? Certifique-se de exportá-lo debaixo do tapete, nome correto, certo. Já vi muitas pessoas. É como se não funcionasse bem, se você confundiu Leste com o Ocidente, pode acontecer sob o diamante é nordeste, sudoeste, certo? Portanto, certifique-se de que o siga, a menos que na verdade , apenas gire novamente aqui. E você pode ver que temos que movê-lo mais uma vez, certificando-se de que usamos essas setas aqui. E, na verdade, está na direção diferente. Lá vai você. E então isso seria Sul. Então isso é exportar uma forma de voxel sublinhado S. E, em seguida, mais uma vez felizmente. E então, basicamente, já terminamos aqui. Então, desta forma, uma e então, desta forma, não, eu mais uma vez , acidentalmente cliquei no número real, certifique-se de que você não. Se você fizer isso, basta pressionar Control Z para basicamente voltar atrás. Não se preocupe lá. E então vamos exportar isso novamente, exportar caixa de forma voxel ou sublinhado de forma E Desta vez ou leste. E então só para tê-lo de volta, a posição original aqui, 0, e então isso será 13. Na verdade. Lá vai você. Vou economizar isso mais uma vez só para que eu tenha isso de volta nessa posição para que ela também esteja disponível para você. E agora tenho os quatro arquivos Java também. Então, vamos colocá-los aqui. Lá vai você. Então, mais uma vez, vamos tirar esse tipo de imperfeições de lá. Sabe, essas às vezes acontecem porque erros de ponto flutuante, é apenas o que é. Mas isso não é muito ruim. É basicamente apenas remover todos esses erros de arredondamento do ponto de carregamento. E então vamos ficar totalmente bem. Então, isso vai ser um 0 novamente. Deixe-me 14 aqui e 13 aqui. Salve isso, salve isso, e então vamos continuar com E. Mas o que vou fazer é copiar isso ou vezes e vou ter ovelhas E, S, forma w. E depois de claro, certificando-se de que elegemos os corretos basicamente para trabalhar lá em cima. Então isso foi E, é E e então vamos mudar isso para formas. E então estes dois booleanos há um ano. E isso vai ser S, e isso também será S. Isso é ótimo. Mais uma vez, isso é apenas formas e, em seguida, booleano. Eu só vou copiar isso sobre um controle C controle V. E, por último, mas não menos importante, o lado oeste da forma voxel. Mais uma vez, booleano , dia booleano atrás. Se você está planejando ter muitos blocos com muitas formas complexas, ou talvez isso seja determinado a partir disso. Eu recomendo que não enlouquecesse com isso. E se você tem formas de voxel insanas como loucas e detalhadas para não construí-las como completamente. Normalmente, isso é apenas blocos, certo? Isso é apenas blocos normais. Se você tivesse algo como de repente e então você o gira assim, mas, de repente, isso não é mais um bloco real. Eu sou como se não fosse um bloco reto. Se você tem muitos desses estados de bloco diferentes que seguiram o bloco perfeitamente, o que pode acontecer é que, bem, ele pode basicamente diminuir o jogo de forma bastante significativa por causa, claro, as formas de voxel basicamente determinaram a colisão com o jogador e as entidades. E isso realmente requer muito poder de processamento e outras coisas. Então eu recomendo não ir com formas de voxel loucas UW apenas por precaução, certo? Então, isso só deve ser bom. Mas eu só queria basicamente cautelar contra isso. E o que eu realmente vou basicamente , então o que vamos fazer aqui é que vamos substituir o método de boa forma aqui. E, na verdade, vou copiar todo o conteúdo. Isso não é nada louco demais. É apenas uma instrução switch que você pode ver que obtém o valor da propriedade facing. E se for ao sul e vamos retornar a forma Sul, norte e vamos retornar a forma ao norte deles, Sudoeste, Oeste, Leste, Leste. Nada muito louco aqui deve ser bastante autoexplicativo. E isso é praticamente tudo o que precisamos fazer. Agora você viu que isso é bastante complicado. Como eu disse, se você tem muitos blogs diferentes com formas de voxels diferentes para adultos, bem, é exatamente o que é. Se você realmente tem uma maneira melhor de fazer isso, por favor me diga no material de perguntas e respostas, estou muito aberto a ter uma possibilidade diferente de adicioná-los. Agora, se mudássemos algo, sim, precisaríamos exportar todas as formas de voxel novamente. Então é, pode ser meio tedioso, mas seja qual for o caso, agora finalmente o fizemos. Então, da última vez que esta palestra, vamos ver se funciona ou se, por exemplo, volta ao Minecraft e vamos sentá-lo e eles atrás as formas voxel funcionam perfeitamente. Vamos ver, ele deve funcionar perfeitamente em todas as direções diferentes que eles vão também é uma das coisas importantes por que você definitivamente deve basicamente remover as imperfeições porque, de outra forma, só poderia ser desligado pela menor e menor parte. E isso é realmente irritante. E também, na verdade , provavelmente vai ser melhor se for um número inteiro, mesmo que eu acredite que ele é convertido de volta a um flutuador de qualquer maneira, mas, você sabe, é só que faz os cálculos gerais um pouco mais rápidos. Mas sim, é praticamente assim que você pode adicionar um modelo 3D personalizado Minecraft. Mais uma coisa que vou remover aqui é o pai aqui, porque na verdade não temos um azul, não precisamos desses pais realmente. Nós só vamos remover isso. Eles são. Então, isso também deve ser bom. Mas, caso contrário, é praticamente assim que você pode adicioná-lo. No geral. É, bem, pode ser muito complexo, especialmente se você tiver essas formas loucas de voxel, mas, de outra forma, é uma coisa bastante simples. Tudo considerado, dependendo quantos modelos de blocos 3D personalizados diferentes você deseja. Mas agora você está equipado com o conhecimento para basicamente, vamos adicioná-los. Então, espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra, no entanto. Sim. 78. (Intermediate) modelos de itens personalizados com BlockBench com BlockBench: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra, vamos adicionar um modelo de item personalizado, o Minecraft. Da última vez, vimos um modelo de bloco personalizado. Agora está no modelo do item. Então, antes de tudo, vamos criar um novo item aqui e uma cópia sobre o tablet de dados mais uma vez. E esta será a equipe de sublinhado de cobalto. E então, para o nome, é claro, também, equipe de sublinhado de cobalto. E este será um item normal neste caso. E então pilha para um , na verdade, vai ficar totalmente bem neste caso. E vamos adicionar imediatamente a tradução. Caso contrário, esquecerei novamente. Então, é claro, agora queremos morrer. E então todos os funcionários aqui. E mais uma vez abrimos o banco olhe aqui para ver a equipe de cobalto muito legal aqui. E você pode ver que acabei de preparar isso já com alguns extras antigos de baunilha, bem como uma textura personalizada também. E eu recomendo que vá exibir aqui para basicamente ver como ele ficará dentro da mão do jogador. Terceira pessoa à direita, terceira pessoa à esquerda. Temos a primeira pessoa, primeira pessoa esquerda, sem cabeça. Isso realmente não faz nenhum sentido como parece no chão, na verdade realmente assim. E então o quadro também é muito legal na interface do usuário. Também é muito bom. Então você pode definitivamente mudar isso e fazer, gostaria de qualquer exibição que você quisesse? Eu recomendo brincar com isso. E quando estiver satisfeito com seu item personalizado, você basicamente vai para o bloco Exportação de arquivos. Qualquer um dos modelos o exportará como um arquivo JSON. E depois de substituir porque eu já tenho um. E então vamos copiar esse arquivo. E então vamos copiar esse arquivo para a pasta de itens de modelos aqui para ambos os funcionários. E há algumas coisas que precisamos fazer. Então você pode ver que as texturas aqui vêm sem namespaces, então precisamos adicionar isso. Então Minecraft tudo e bloqueie o chicote. E então faça o mesmo por aqui, aqui e aqui. Então podemos simplesmente colocar o mesmo lá para o bloco cobol, mas isso precisa ser, claro, cavalo MC, isso é muito importante aqui. Caso contrário, é isso. Se você tem todas as texturas relevantes aqui, é exatamente o que você precisa. Você só precisa disso como um modelo de item e não precisa nenhum outro modelo de item para ele. Então, quero dizer, isso já é praticamente. É nós quero dizer, acho que vamos ver se funciona sobre as finanças no Minecraft, como você pode ver, a equipe fria foi adicionada ao jogo e parece frequente, incrível. Então você pode basicamente trocá-lo por aqui. E parece ótimo em primeira pessoa e terceira pessoa. Eu gosto especialmente da fila de ouro, basicamente como todo o bloco que está lá em forma minúscula. Eu não sei. Eu realmente gosto da aparência, então sim, isso é praticamente o quão fácil é adicionar um modelo de item personalizado ao Minecraft, certo? Mais uma vez, a criação do modelo é claro, bem, o que é difícil? Você só tem que brincar um pouco com o bloco venture. Você se acostumará com isso rapidamente. Sinto que este é um programa muito fácil de obter uma espera e sim, borracha que já seria para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 79. (de medium) marks personalizados (de (Intermediate): Ou voltarei ao curso de forragem por 118. Nesta palestra, vamos adicionar um Botha Minecraft personalizado. Então, um cliente era realmente bastante simples. Vamos para a nossa classe de mais itens e vamos apenas copiar sobre a equipe de cobalto. E este vai ser o antigo arco sublinhado. E então a mesma coisa aqui e o nome arco de cobalto. E então isso será um item 0. Agora as pilhas não servidas 2, 1, 0 vão fazer é que vamos realmente sentar a durabilidade, digamos 500. Vai ser um pouco melhor do que o arco normal. E para o cliente, na verdade, precisamos definir as propriedades do item personalizado novamente. Então, em nossa classe de propriedades de item, faremos uma chamada nula estática privada, faremos todo o método que leva em um item, parâmetro de item aqui. Então, vamos trabalhar a classe do item também e garantir que escolhemos o item mundial líquido do Minecraft, item. E então vamos clicar no botão do meio do mouse na classe de propriedades do item aqui. Você basicamente entra e nós vamos escolher basicamente esses dois, bem chama o registro, o arco e o registro com o bot basicamente quando um Cabibbo para eles. Então selecione e pressione o controle C para copiar o controle V para colar. E só precisamos adicionar pontos de propriedades do item na frente do registro aqui. E então vamos alterar os itens que se curvam para o item que é o parâmetro aqui. Então aqui, lá vai você. E agora podemos basicamente fazer quantos quisermos. Nós apenas chamamos fazer arco com mais itens para o que a tigela que recebe. E então, se você tiver várias bolas, basta ligar para isso várias vezes. E, em seguida, adicionaremos todas as propriedades específicas do item e puxaremos para este item. E para isso, basicamente precisamos de um modelo de item específico, bem, específico. Vamos antes de tudo na tradução aqui, só para que a tenhamos. Bem, sublinhado arco e arco de cobalto aqui também. E então, quando se trata dos modelos de itens, nossa cópia sobre tudo aqui está, naturalmente, disponível para você no repositório do GitHub ou em um indivíduo também. Você pode ver que realmente precisamos de quatro deles. Então, a tigela de cobalto, já vimos isso antes com as propriedades do item é esse o modelo padrão que é preciso, certo? Então, é apenas essa textura real aqui. E então, se substitui basicamente se puxar como um só. Então, se estamos puxando atualmente, estamos começando a obter esse modelo. Então, puxando 0, então, se o poste estiver em torno de 65%, mudaremos para puxar um. E se estiver 90 por cento feito e vamos mudar para dispostos. E sim, essa é, quero dizer, essa é praticamente a ideia geral. Uma coisa interessante aqui é que, na pesquisa, o pai será o próprio robô cobalto. Então você pode ver o item MCQs cobalt bot é o pai. E então ele apenas aponta para diferentes texturas novamente. Mas isso é realmente tudo o que há para isso. Nada muito louco. Então, agora também podemos adicionar as texturas aqui. Isso também será quatro deles. Eles atrás, e isso é realmente tudo o que realmente precisamos fazer. A grande coisa é, mais uma vez, a adição real das propriedades do item. Agora, como já vimos isso com o tablet de dados, isso não deve ser muito louco ou muito confuso para você, espero. E isso é praticamente tudo o que realmente precisamos fazer para adicionar um papel personalizado. Oh, vamos ver se funciona. Ou phronesis back e microlensing. Veja se o bot foi adicionado com sucesso ao jogo. E como você pode ver, se eu fotografar, então a textura muda também para tudo funcionando perfeitamente, certo. Isso é realmente o quão fácil pode ser adicionar um quadro personalizado ao Minecraft. E isso já é para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 80. (mediário) de produtos personalizados (de (Intermediate): Tudo bem, bem-vindo de volta ao quarto curso para 118. E nesta palestra, vamos adicionar comandos personalizados ao Minecraft. Escreva comandos personalizados, ou uma coisa muito interessante. Agora vamos começar, à medida que avançamos. Portanto, esta é uma das palestras em que começamos a copiar sobre o código. Embora, mais uma vez, tudo no código esteja disponível no repositório do GitHub e em um indivíduo também. Portanto, não se preocupe lá, você deve ser capaz de encontrar isso. Não se preocupe. Então, em nosso pacote de cursos MC, clique com o botão direito do mouse em novo pacote chamado comando. E então vamos criar imediatamente outro evento chamado. E vamos dar uma olhada no evento um em apenas um momento. Primeiro de tudo, vamos dar uma olhada no Comando 1, e vamos copiar mais de duas classes. Na verdade, vou copiar as aulas na íntegra. Então este é o comando set home e o comando return home, e eu explicarei. Então, o comando basicamente é criado com este despachante. Então, estamos fazendo o registro de pontos do despachante e, em seguida, temos alguns literais do Commander. O que isso significa home set, o que estamos fazendo aqui e depois executa? Bem, isso significa que basicamente o que precisamos colocar no console é conjunto de barra inicial. Em seguida, o comando é executado. Portanto, este é o comando real, 0 então definido. Essa é a ideia geral. Se dermos uma olhada no churn Homer, podemos ver sua casa e depois voltar. Então, para casa, set, sua casa disse, seu retorno para casa é Homer turn. Isso não deve ser muito louco. Isso deve ser bastante simples. De fato, construir seus próprios comandos personalizados é uma coisa muito complexa. Então eu diria que isso é algo que se você tiver uma coisa muito particular que você quer fazer com seu comando, você terá que tentar e erro muito através disso. O que eu recomendo esta classe de comandos aqui, clique no botão do meio do mouse sobre isso e você verá todos os comandos de baunilha que estão disponíveis para você. Portanto, esse é o melhor recurso realmente, para ver quais são os tipos de comandos. E eu recomendo dar uma olhada neles. E vou te dizer de antemão, eles vão ser muito complicados, certo? Mesmo algo como o comando de matar, é provavelmente um dos mais fáceis de dar uma olhada. Mas se você entrar em algo como o comando glute, quero dizer, olhe para isso, certo? Como isso é, isso é tantas coisas que estão aqui. E é tão complicado que você pode ver até aqui, certo? Isso é, a propósito, o registro real do despachante de comando. Então você pode ver, então é como saque de barra e então tudo bem, o que você faz? Ter ferramenta de peixe pode ter alguém como, há tantas coisas diferentes embora exija aqui. Então você pode perguntar, Ei, essa é a pessoa que está tentando discriminar, tem o nível certo de permissão, não tem e assim por diante. Recomendo. Dê uma olhada nisso com mais detalhes. Se você tem algo que você particularmente quer. No nosso caso, vamos fazer é salvar alguns dados nos dados persistentes do jogador aqui. Basicamente, quando estamos definindo a posição inicial, estamos apenas dizendo: Ei, isso coloca as três coordenadas x, y e z em uma área nos dados persistentes. Os dados são apenas uma tag composta aqui no player. E vou colocar isso sob o composto MOD do curso MC . É praticamente isso. E então vamos enviar um sucesso com set home em uma posição específica na qual acabamos de definir. Quando se trata do comando de retorno para casa é um pouco mais complicado, mas não muito. Temos um booleano tem pausa em casa, que basicamente apenas diz, hey é o comprimento desta matriz GetInt aqui, não 0. Porque se for 0, então sabemos, ok, ainda não temos uma posição. Não é 0, então sabemos, ok, temos uma posição em casa que está basicamente sendo definida. E então nós apenas teletransportamos o jogador para essa posição aqui. E basicamente dizendo: Ei jogador, volte para casa. E aqui estamos enviando uma falha sem que nenhuma posição de casa tenha sido definida. E isso é praticamente tudo o que realmente precisamos fazer aqui para os dois comandos. Você pode ver que basicamente estou chamando esse comando aqui com a fonte Git. É necessário uma pilha de origem de comando. E o que é muito importante é que ele lança uma exceção de sintaxe de comando, porque você pode ver get player ou exceção. Então isso é um pouco importante aqui, certo? Então, isso é basicamente tudo o que precisamos em termos de comandos. Agora, o que vamos precisar é de uma aula de eventos. Portanto, vamos clicar com o botão direito do mouse no pacote de eventos que criamos eventos mod. E falaremos sobre eventos um pouco mais de detalhes em uma palestra posterior. Mas eventos são basicamente algo que você poderia realmente criar um curso inteiro. Isso é como dez horas de duração também. Mas não vamos entrar em muitos detalhes. Vamos apenas dizer acima da classe add mod, certificando-se de que este está selecionado. E, em seguida, vamos excluir os parênteses, assinante do barramento de eventos. E então queremos colocar entre parênteses com um MOD ID, que é claro MOD do curso MC. E então queríamos métodos. Vou copiar ambos, mas também vou explicar, é claro, foi muito importante é que sobre eles tem que ser público, estático, vazio, escrever o nome não é realmente o que importa. O que importa é o parâmetro aqui. Portanto, este é o evento de comandos de registro e este é o evento do jogador que clone tem que ser vazio estático público, e eles precisam ter a anotação no evento subscrição. Isso é muito importante. Não se esqueça disso, caso contrário, não funcionará. É muito importante. O próprio método de registro de comandos, será bastante autoexplicativo. Sua triagem de um novo em casa sai e um novo comando de retorno para casa e, em seguida, basta registrá-lo neste evento. Este evento é, aliás, também usado no manipulador interno de forja. Portanto, isso deve ser aqui onde os comandos forrageiros estão basicamente sendo definidos. Você pode ver que este é o comando forrageiro com todo o monte de coisas. Assim, podemos ver que ele basicamente faz o TPS, a entidade de faixa gera. Dimensões e o comando mode list. Esses são alguns comandos específicos para forjar nesse caso. E você também pode ver o evento de comandos de registro aqui é muito interessante. Então, antes de tudo, diz que o evento foi disparado no ônibus de eventos de forja Minecraft. Então, vou explicar brevemente o que diabos está acontecendo. Bem, temos eventos diferentes. Se eu realmente clicar neste evento e pressionar Control H, você pode ver que esses são todos os eventos que estão disponíveis para nós no Forge. E podemos até expandir isso e, em seguida, teremos ainda mais porque há eventos que derivam de eventos, que derivam de eventos e assim por diante e assim por diante. Então você pode ver que isso é muitos eventos. Este, o que estou dizendo como se você provavelmente poderia fazer um curso de dez horas com todos os eventos em si. Não vamos fazer isso. Como eu disse, isso foi só, você sabe, ter em mente. E a ideia é que alguns eventos sejam disparados pela forja Minecraft, alguns eventos são disparados por ônibus de eventos. Vamos apenas mantê-lo nisso por enquanto. Não há nada muito louco acontecendo lá. Vamos ver um exemplo disso em uma palestra posterior também. Por enquanto, vamos dizer, ok, eventos muito loucos, mas também muito legais podem ser muito interessantes. Agora, qual é o segundo evento aqui? Bem, basicamente quando um personagem morre, o que queremos é que queremos colocar os dados persistentes do jogador que acabou de morrer e copiá-los para o novo jogador basicamente. Então isso é apenas para garantir que, bem, após a morte, os dados permaneçam lá e permaneçam persistentes. Essa é a ideia geral aqui. Mas, caso contrário, isso é praticamente tudo o que estamos fazendo nesta classe de eventos de modo. Agora, não precisamos chamá-lo em nenhum lugar com isso adicionar mais assinante de ônibus de eventos aqui. Isso basicamente já foi chamado de todos os métodos que têm no evento de assinatura acima dele basicamente entra, então fica frio também. Então, curiosamente, isso é realmente tudo o que realmente precisamos para adicionar o comando, como eu disse, todo o código está disponível para você em um repositório do GitHub e um indivíduo também. Recomendo dar uma olhada nele. Eu recomendo apenas brincar com ele, estar aberto à experimentação. E por causa de conclusão, vamos recebê-lo funciona. Tudo bem, ele nos encontra de volta no Minecraft, então vamos começar a digitar barra para casa. E lá vai você. Já estamos recebendo isso sugerido. Vamos tentar voltar para casa antes de tudo, o que não deve funcionar, certo? Nenhuma posição inicial foi definida. Isso é totalmente bom. Agora vamos sentar em casa. Defina na posição definida neste local. Vamos ver, só para ter certeza, sim, que soa bem, isso é muito bom. Agora vamos para outro lugar aqui. E a menos que diga, Ohm , volte para casa. Isso é muito bom. Agora, na verdade, vamos cair de uma altura alta. Vamos ver. Isso vai me matar e depois vou responder e depois vou dizer, o retorno também funciona totalmente bem. E então também vamos sair deste mundo, salvar e sair. E então vamos voltar a entrar no mundo. E então vamos ver se isso ainda funciona. E deve, é claro, porque o que salvamos nos dados persistentes e o composto e BTEs para as entidades são basicamente salvos nisso. Então, vamos voar mais uma vez e depois dizer voltar para casa. E, claro, ainda funciona. Então, todos os casos são basicamente feitos e tudo funciona aqui. Isso é muito legal. Isso é praticamente o quão fácil pode ser adicionar um comando. Mais uma vez, se você tiver uma coisa muito particular em mente, você só terá que brincar com isso. Só ajudarei em circunstâncias limitadas. Então, se você, por exemplo, disser Ei, eu quero comandar que faz XYZ e apenas coisas malucas. Provavelmente não apenas faça todo o comando para você. Você só terá que experimentar um monte de coisas, brincar com isso. E tenho certeza de que você pode conseguir que o comando se você realmente trabalhar nisso, certo? Mas é isso para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 81. (de mediate) salva partículas de (Intermediate) (de mediate): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra vamos dar uma olhada em como você pode gerar partículas personalizadas no mundo. Então, em particular, vamos dar uma olhada nisso para o bloco rápido, ou basicamente adicionaremos um método específico. E isso é chamado de método de tick animado aqui. E então eu realmente vou copiar o conteúdo disso. Isso vai ser bastante autoexplicativo em apenas um momento, porém, basicamente temos uma chance. E então vamos dizer, Ei, só queremos o flutuador aleatório todas as vezes. E há ideias gerais que temos. Temos momentos de chance de gerar partículas e toda vez que, na verdade, deve ser 65% aqui. Então, porque estamos basicamente verificando se o menor que o próximo flutuador e um flutuador ficarão entre 01. Então essa é a ideia geral. E isso é basicamente como você pode gerar uma partícula, certo? Então você precisa de um nível e isso precisa estar no cliente desta vez, isso é muito importante. E esse método inimigo para marcar só é chamado para o cliente. Então isso é perfeito para nós. E nós apenas dizemos adicionar partículas, o tipo de partícula que queremos adicionar, a posição, direita, x, y e z, e depois a velocidade na direção x, a velocidade na direção y e a velocidade no z direção. E quando os tipos de partículas, você pode ver que há um monte de coisas aqui que você pode basicamente gerar. Neste caso, vamos apenas tomar a fumaça. Na verdade, parece meio legal e vai funcionar totalmente bem para nós. E você pode ver que eu também tenho a velocidade do vento basicamente tem, você sabe, um pouco de aleatoriedade lá também para que pareça meio desigual e é muito legal realmente desigual e é muito legal realmente vai olhar realmente incrível. E sim, isso é praticamente o quão fácil é. Então você só precisa de um nível e precisa estar no cliente. Agora, mais uma vez, isso não é para partículas personalizadas em si mesmas. Agora é assim que você pode gerar partículas particulares em algum lugar, em todos os lugares onde você tem acesso a uma variável de nível e basicamente verificar se você está no cliente, você deve ser capaz para gerar as partículas também. Então, isso é praticamente o quão fácil é. Então, para fins de conclusão, vamos ver se funciona. Tudo bem, nós fantasiamos no Minecraft, então vamos definir o bloco SPD para baixo e lá vai você. A fumaça já está subindo dela. Então está tudo funcionando muito bem. Você pode ver. E é claro que isso é algo que você pode ajustar. Você pode ajustar a velocidade que surge ao ajustar até onde ele aparece em relação ao bloco. Em tudo isso é basicamente só capaz de ser alterado. E é claro que você também pode alterar o tipo das partículas. Mas isso é muito legal, no entanto. Tudo bem, e isso já é para esta breve palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo, e eu te vejo na próxima palestra. Então, sim. 82. (adiantamentos personalizados (intermediários): Ou voltarei ao curso de forragem por 118. E nesta palestra, vamos adicionar avanços personalizados ao Minecraft. Portanto, adicionar avanços acontece apenas em arquivos JSON. Então, isso na pasta de dados, na pasta do curso MC. E vou copiar meus 20 avanços que já foram preparados aqui. E mostrarei um ótimo recurso que você pode usar para ler basicamente bem seus próprios avanços com bastante facilidade. E você pode ver, então nós temos dois deles, MC course Jason e uma vara de dowsing JSON. Agora, a primeira coisa que você notará é que há uma tela. Este é apenas o item ou bloco enquanto neste bloco em algum caso, seja, basicamente, sendo exibido como o ícone desse avanço. Agora você tem um título, descrição deve fazer sentido. Você pode escolher o quadro se ele aparecer ou não em um brinde. Portanto, isso é se ele mostra ou não no canto superior direito da tela se uma análise é para conversar. E então este em particular tem um fundo que é muito peculiar porque ele realmente aponta para texturas de núcleos MC, loc, 0, sublinhado de bola Bloco PNG, mas para toda a estrutura de pastas semelhantes aqui. E a razão é porque este não tem um pai. E se você estava avançando, ele não tem um pai, então ele basicamente cria uma nova guia na janela de avanço. Isso é muito importante se você mudar para o modo de desvio primeiro, segundo, você pode ver que o pai aqui é núcleos MC, núcleos MC e ele não tem um plano de fundo. Então isso é muito peculiar, foram muito interessantes neste caso. Então, a ideia é que isso, se você escolher um plano de fundo, se você não tiver um pai, então você precisa de um plano de fundo porque esse será o plano de fundo da sua guia basicamente, então o critério é realmente coisa interessante. Agora não vamos criar nenhum critério personalizado porque isso é muito mais complicado. Vamos usar a mudança de estoque. Então, basicamente, assim que eu tiver pelo menos um cobalto Inglaterra no meu inventário, esse avanço será dado a mim. E então, para a vara de dowsing, basicamente, eu só preciso de uma vara de dowsing e então também terei esse avanço. Isso é praticamente tudo o que realmente há para isso. Então, para fins de conclusão, vamos ver se funciona. Ou ele nos encontra de volta e Minecraft. Então, vamos ver se eu consigo um lingote de cobol. Eles vão mod curso MC. E também posso ver que o poder está nos cobaltos. Isso é muito legal. E agora eu também deveria ser capaz de encontrar isso aqui. Podemos ver o mod do curso MC como o avanço. Então, o nome do seu avanço aqui sempre será o primeiro avanço que você tem basicamente sem aparente em C, também temos o fundo como o cobalto bloqueia seu e então você pode ver o segundo, vara de dowsing. Se não funcionar, a haste não gosta de você. Bem, foi pelo menos o que me disseram. E se eu conseguir isso e você puder ver que eu também estou recebendo o avanço da vara de dowsing ali mesmo. Então isso é muito legal. Todas as coisas consideradas. E isso é realmente o quão fácil é basicamente adicioná-los. Bem para o Minecraft agora, como eu mencionei, mais uma vez, um ótimo recurso aqui é Miss antigo GitHub IO mais uma vez para o avanço do gerador, altamente recomendado. Você pode basicamente dar uma olhada em todos os requisitos que existem. Podemos vê-lo mais uma vez, aqui estão as condições. Então podemos basicamente mudar isso para coisas diferentes. Digamos que, por exemplo, tenhamos mais uma vez no inventário alterado. E então você pode basicamente adicionar condições diferentes a ele. Você pode ver slots de jogadores, itens. Há um monte de coisas que você pode adicionar. Recomendo brincar com isso ou dar uma olhada no avanço da baunilha. Também possibilidade de entrar no GitHub e procurar avanço de diferentes modos. Isso também funciona totalmente bem. Mas há muitas opções para você comprar basicamente, mas isso já é para esta palestra aqui. Espero que você tenha achado útil e o seguro do novo dos arquivos JSON, é claro , está disponível no repositório do GitHub ou em um indivíduo apenas, bem, e eu te vejo na próxima palestra. Então, sim. 83. (pintores personalizados (intermediários) (de (Intermediate): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar pinturas personalizadas ao Minecraft. Para adicionar motivos de pintura personalizados é na verdade, um processo bastante simples. Primeiro de tudo, no pacote do curso MC, botão direito do mouse em novo pacote chamado pintura. E lá dentro vamos criar uma nova classe chamada classe de pinturas modernas. Agora, a classe mais pinturas terá, em primeiro lugar, um registro público estático, final diferido de tipo, motivo ou motivos sublinhados de pintura, que será igual a registro diferido que criam ou adicione registros, que tipos de pintura são meu modelo de curso MC, esse ID do modelo. E mais uma vez, seja o 80 terceiro registro, há também um método de registro de vazio estático público com um olho Event Bus, perímetro de ácidos do Event Bus e, em seguida, pintando motivos que se registram passando no ônibus do evento. O método de registro é quando frio, você está abaixo dos sons do modelo, então mais pinturas se registram e depois passam no ônibus de eventos ali mesmo. Isso é ótimo. E agora só precisamos registrar as pinturas. E isso será feito fazendo objeto de registro final estático público do tipo motivo. Isso vai ser chamado de planta, e isso é igual a motivos de pintura, registro escuro. O nome será planejado. E o segundo parâmetro é um fornecedor de novo motivo. E os parâmetros serão 16. 16, e vou explicar o que são esses. Então, os parâmetros do motivo, eu posso clicar no botão do meio do mouse e você pode ver que esta é a largura e esta é a altura. Portanto, o primeiro parâmetro é a largura, o segundo é a altura. Isso é dado em pixels basicamente, mas é assim que a sua pintura é grande. E só por causa da conclusão, vamos fazer três pinturas aqui. Também vamos ter o andarilho, será a maravilha. E este vai ser o pôr do sol. Esse é provavelmente o meu favorito, a propósito, mas vamos ver isso em apenas um momento. Todos os pôr do sol eles atrás. E isso também é o pôr do sol. E esta é a única linha com 32 altura e a sensível tem 32 de largura. Agora a questão é, bem, onde estão as pinturas deveriam estar matriculadas em nosso pacote de cursos MC, inserção da pasta de texturas. Vamos ter uma nova pasta chamada pintura. E, na verdade, vou copiar isso porque o conteúdo já está lá. Essa é a planta, o pôr do sol e a maravilha São todos disponíveis. No entanto, vou querer que você direcione a atenção para os créditos porque as pinturas também são feitas pela platina G7. Apenas certifique-se de que, se você vai usá-los em um repositório público ou o que quer que esteja no Curtis aqui também e siga a licença que é basicamente tudo o que há para ele. Caso contrário, você é basicamente livre para usá-los. E isso é, na verdade, tudo o que precisamos fazer, desde que os nomes aqui correspondam aos nomes da pintura real. Fotos aqui, as imagens. Isso é tudo o que há para ele. Então, acho que vamos ver se funciona. Ou um farmacêutico em Minecraft. Então, vamos apenas sentar na pintura e vamos ver, oh, lá estamos nós. Isso é o pôr do sol. Eu realmente gosto disso e isso é, acredito na maravilha. E vamos ver se podemos ser planejados também. Tudo bem, lá vamos nós. todas as três pinturas que adicionamos. E sim, é basicamente isso. Você basicamente adiciona as pinturas à rotação da pintura aqui. Então essa é a ideia geral, certo? Na verdade, é assim que é fácil adicionar pinturas personalizadas ao Minecraft. E isso já é para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Então, sim. 84. (de (Intermediate) a modificadores de loot globais (de intermediação) (de mediate): Tudo bem, bem-vindo ao curso de forja para 118. E nesta palestra, vamos dar uma olhada nos modificadores globais de Luder. A primeira pergunta que pode surgir é o que nossos modificadores globais de saque? Bem, eles são uma maneira de mudarmos, perder tabelas de, por exemplo, tabelas de baunilha Lu, adicionar coisas a ela, ou mesmo em teoria, subtrair coisas dela. Então você poderia tirar um pouco e adicionar coisas. Eu recomendo não ir muito fundo com a subtração de coisas. Isso pode quebrar o modo em compatibilidade. Seu modelo pode não funcionar bem com outros mods, e isso geralmente não é algo que você gostaria. Agora, o que vamos fazer é no nosso pacote de eventos, vamos clicar com o botão direito do mouse em novo pacote chamado glute. E em vez de lá, todos os nossos modificadores de poço irão. Essas são basicamente aulas. Agora vou copiá-los e explicarei à medida que passarmos pelas aulas. Portanto, este é o número um é a haste de dowsing no modificador de adição de iglu e as sementes de nabo do modificador de adição de grama. Agora, felizmente, as aulas devem ser quase autoexplicativas para o que estão fazendo. Mas basicamente vamos adicionar uma haste de dowsing no peito da estrutura iglu e uma semente de nabo dentro da grama. Quando quebramos latão, temos uma chance neste caso, temos 100% de chance de adicionar os assentos de nabo ao alaúde que está sendo descartado. Mas o que é toda essa provação será antes de tudo, ambos parecerão muito parecidos. Portanto, a única diferença aqui está atualmente no método do apply. Então, para nossos propósitos, vamos dar uma olhada na virada dos assentos do modificador de edição de grama. E bem, vou explicar rapidamente a ideia geral. Vemos que a classe se estende da classe modificadora lútea. Vamos apenas entrar nele clicando no botão do meio do mouse. Ou você também pode pressionar Control, clicar com o botão esquerdo sobre ele para basicamente entrar lá. E você basicamente pode ver que temos uma coisa em particular aqui que é o método do apply, que é basicamente o importante. Felizmente, também temos alguns bons comentários aqui. Podemos ver aplica o modificador ao saque gerado. E então, basicamente, você pode adicionar coisas a ele. Então isso é muito legal. Portanto, o alaúde gerado é apenas uma lista de impostos sobre itens, isso é o que cairia se você não fizesse nada e, em seguida, você devolve as gotas de saque modificadas. Então essa é a coisa muito legal, mas é por isso que, se voltarmos aqui, você pode ver no método do apply, mas eu adiciono uma nova pilha de itens da minha edição. Então este é o item que eu quero adicionar a esta lista e, em seguida, retornar a lista com meu item adicionado e, em seguida, meu item é adicionado à lista de itens que está literalmente prestes a soltar. Então isso é uma coisa muito legal, certo? Se fizéssemos isso, não mudaríamos nada e nenhuma carga adicional seria adicionada. Se fizermos isso. No entanto, certo, então minha adição seria adicionada. Agora, o que também poderíamos fazer, e eu recomendo não fazer isso, realmente significa isso. Em seguida, leia, jogador de alaúde. E então podemos simplesmente limpar toda a lista de coisas que estamos prestes a ser adicionadas e simplesmente soltar nosso próprio saque. Recomendo não fazer isso, especialmente não exagerar nisso. Porque, mais uma vez, você pode quebrar sua compatibilidade com seu MOD e outros modos. Se eles dependem de blocos específicos, deixando cair coisas específicas, então você pode arruinar sua chance de sua mãe entrar em um particular mais Peck estará ciente disso. Tenha isso em mente. Deixe-me ter uma aula de serializador aqui, o que é basicamente uma coisa louca. Serializador global de modificadores de saque. Bem, nós apenas temos um método de leitura e gravação, que basicamente a ideia geral é apenas que ele lê coisas de um arquivo JSON. E você pode ver o que ele basicamente faz é que ele obtém o valor do registro de itens. Então, estamos basicamente passando por nossos itens de registro e vamos dizer como, ok, temos um, algo no arquivo JSON é definido sob a adição. Vamos ver isso em apenas um momento. Vamos dizer, ok, me dê isso e depois me dê o valor disso. Então, basicamente, basta obter o item associado à adição que definimos no arquivo JSON. E então vamos apenas fazer uma nova modificação adicional aqui. E estamos devolvendo para o método de leitura. E o método de gravação é exatamente o oposto, basicamente apenas fazendo o arquivo JSON real. Agora isso não está realmente feito, mas ainda precisamos fazer isso. Então, apenas tenha isso em mente. E isso é basicamente tudo o que os modificadores adicionais, isso quase sempre deve ser bastante boilerplate por si só. Quero dizer, se você tiver 20 adições, bem, e você vai ter 20 itens diferentes aqui. E você provavelmente passará 20 itens diferentes para o construtor, coisas assim. Mas esse é apenas um conhecimento Java normal que não deve ser muito louco. Todas as coisas consideradas. Agora, quando você tiver isso, você também precisará de outra classe no pacote de eventos. Então clique com o botão direito do mouse em nova classe Java chamada eventos de barramento de eventos mod E lá dentro, antes de tudo, vou renomear isso para mais eventos de ônibus de eventos. Lá vai você. E então lá, em primeiro lugar, vamos precisar está no topo, vamos precisar dessa coisa exata. Mais uma vez, precisamos do assinante do ônibus do evento ad model.py com a melodia do curso Armada DMC. E agora precisamos especificar o barramento para ser o multi-bus, muito importante da última vez com os comandos, vimos que, bem, ou padrão, esse é basicamente o barramento forrageiro. Agora este é o modo de barramento entrará nos eventos com um pouco mais de detalhes em uma palestra posterior. Mas, por enquanto, vou copiar o método básico que precisamos. E esse é o método serializadores de modificadores de registro. O nome do método realmente não importa. É importante que seja estático, público e tenha uma anotação de evento de assinatura aqui. E então, basicamente, o evento aqui é o evento de registro que ADD registra modificadores globais de saque, serializadores. E aqui nós apenas dizemos, Ei, basta registrar todos os nossos serializadores. E você pode ver que registramos o serializador definindo o nome do registro. E esse nome aqui será o nome do arquivo adjacente do qual ele basicamente lê. Agora, para onde vão nossos arquivos JSON? Precisamos de um para cada um dos diferentes modificadores que temos. E então também precisamos de um para forragem, basicamente que a forja sabe, ok, quais modificadores realmente temos em nossa pasta de dados? Forge, clique em novo diretório chamado modificadores de sublinhado de glute. E, na verdade, vou copiar sobre o arquivo JSON. Isso é chamado de sublinhado global, modificadores de sublinhado e adjacentes muito importantes. Isso tem que ser escrito corretamente. E então aqui temos que definir todas as nossas entradas. Mas você pode ver núcleos MC termo sementes de grama e, em seguida, haste de dowsing de curso MC e iglu, que também é o mesmo nome que está aqui com o nosso ID mod. Então, essas são basicamente as entradas lá. E então, em nossa pasta de dados, pasta do curso MC, novo diretório chamado modificadores de sublinhado de saque. E vou copiar os dois arquivos JSON novamente. Eles estão todos disponíveis para você, é claro, no repositório do GitHub em um indivíduo também. Você pode ver que eles têm o nome exatamente como definimos aqui. Isso seria um adjacente, o adjacente basicamente termina. E você pode ver que existem algumas condições. Agora, no geral, os arquivos modificadores de alaúde são ambos, eles são interessantes em si mesmos, certo? Então você tem que definir uma condição específica aqui. Mas neste caso temos um ID de tabela de saque e diremos que o ID da tabela Lu é baús de Minecraft, baú de águia. Então, basicamente, o baú iglu está sendo carregado, por assim dizer. Então estamos chamando o modificador do tórax iglu. E então estamos fazendo o método do apply, mesma largura, por exemplo, do queimador procede da grama aqui. Então, se gramíneas quebradas, você pode ver que esta é uma condição diferente, bloquear dizer propriedade, e então estamos apenas verificando, ei, se isso é ou não, isso é uma compreensão. Ok. E agora, se um bloco de grama estiver basicamente quebrado, chamamos o método do apply. Pouco antes de deixarmos cair a lasciva gerada, adicionamos nosso alude personalizado a ele, nossa adição que é lida aqui. E então nós retornamos isso com basicamente, enquanto essa coisa que é muito legal é que você pode ver que eu também posso usar o ponto de contexto getrandom para basicamente ter certeza de que, você sabe, algo não sempre caia. Isso. Nesse caso, isso é basicamente adicionado apenas 95% do tempo, 5% das vezes. Na verdade, não é adicionado. Então isso também é algo muito legal, mas também coisas Java muito básicas, básicas, certo? E isso é, na verdade, tudo o que você realmente precisa. Às vezes, eu sinto que, em geral, os modificadores globais são um pouco desajeitados, eu diria que eles não são que há muita estranheza. Você sabe, você tem que defini-los aqui e você terá que defini-los aqui. E você tem um definido aqui e você tem que dividi-los aqui. Como se houvesse muitas coisas que você tem que fazer. Eu não sei. Às vezes é um pouco estranho, mas no geral, tenho certeza de que ele vai gerenciar. Também vou vincular os recursos que serão os modificadores de loop global ou o forge Docs aqui. Então, basicamente, aqui está um pequeno resumo também, no qual você pode basicamente dar uma outra olhada em como eles podem funcionar. Pode ser útil às vezes, você sabe, eu vou, eu vou apenas vinculá-lo basicamente também, ou fantasias no Minecraft. Então, vamos ver se eu quebrar a grama aqui, ela sempre deve soltar uma semente de nabo. E lá estamos nós. Basicamente, temos 100% de chance de adicionar uma semente de nabo à tabela de saque real. E apenas por causa de conclusão, vamos também dar uma olhada na Águia. Tudo bem, aqui podemos ver que há uma vara de dowsing no xadrez legal também. Isso é muito legal, certo? Mais uma coisa que é muito importante. Também temos que adicionar um tipo nos arquivos JSON aqui, onde ele nos dá um complemento no 118. Caso contrário, não funcionará. Este é simplesmente o seu namespace, então seu ID de MOD e, em seguida, o nome do arquivo real também. Portanto, não deve haver nada louco aqui, certo, isso já será para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. Vejo você na próxima palestra. Então, sim. 85. (Intermediário) Fluidos personalizados (de (Intermediate) (de mediate): Tudo bem, bem-vindo ao quarto curso para 118. E nesta palestra vamos dar uma olhada em fluidos personalizados. Para fluidos personalizados, temos uma restrição importante ou digamos limitação que existe. E isso será basicamente que a física do fluido que você vai fazer será a mesma física que a água. E então também não só isso, mas também você só terá os mesmos artigos água basicamente quando você mergulhar e coisas assim. Mas essa é uma limitação que atualmente está bem, não é fácil de dar a volta. Portanto, cuidado com isso. E também copiarei a maior parte do código. Mais uma vez, tudo está disponível para você no repositório do GitHub ou em um indivíduo também. No entanto, explicaremos o pacote do curso MC, clique com o botão direito do mouse em novo pacote chamado fluido do que eles. Vou copiar sobre a classe de fluidos de modo em sua totalidade. Devemos obter uma flecha aqui nos mais itens, ainda precisamos fazer um item de balde de mel. Mas em fazer isso com muita facilidade. Então, na classe mais itens agora, basta copiar sobre a tigela, o balde de sublinhado de mel. E isso é, claro, um na parte inferior, no balde sublinhado. E então este é um item de balde. E o primeiro parâmetro sendo fluidos modelados que um fluido IV. Lá vai você. E isso é basicamente o que precisamos. Na verdade, adicionamos imediatamente a tradução e coisas assim, só para que a tenhamos, que não a esqueçamos. Então, um balde de sublinhado de mel e o balde que eles atrás e, em seguida, um modelo de item, porque é claro que isso ainda está no item normal. Isso não muda nada. Então, balde de mel, eles vão apenas apontar para uma textura normal. E então vamos adicionar a textura também, o ego. Então isso é muito bom. Então, agora vamos dar uma olhada nos fluidos novamente. Na primeira coisa que temos é a localização de três recursos. Então essa é a localização do recurso de água ainda, o fluxo e a sobreposição. Por que estamos usando isso? Certo? Por que estamos usando os locais de água ou recursos de Manila? Bem, porque eles são cinza e nós podemos basicamente colori-los. Então, temos essa cor de ponto aqui nas propriedades, e isso basicamente nos permite colorir nosso fluido. É por isso que estamos usando isso porque eles já são cinza e eles parecem totalmente bem. Tenha um registro diferente, bem como um método de registro. Como você pode ver, esse método de registro, é claro, deve ser chamado. Vamos chamar isso também. Então, haverá o modo fluids dot register com o barramento de eventos aqui. Isso é algo que já vimos várias vezes agora. E então temos dois fluidos diferentes. Um deles é um fluido que flui que fonte, e o outro é um fluido de fluxo forjado. Esse fluido flui. Isso é incrivelmente importante. Eu vi isso várias vezes que as pessoas acabaram de copiá-lo e esqueceram de mudar isso. Esteja ciente de que um deles tem que ser fonte e um deles tem que estar fluindo. Muito importante. Então precisamos uma quarta propriedades fluidas fluidas. Essas são basicamente as propriedades, porém, como isso está sendo exibido e coisas assim. Você verá muitas das sobreposições amarelas aqui e diz, hey, podemos substituir isso por isso aqui. E então até diz que a, podemos até tornar isso mais fácil apenas chamando assim. Não faça isso. Temos que usar os fornecedores corretamente aqui. Caso contrário, ele não será carregado na ordem correta. Portanto, temos que usar os fornecedores. Isso é muito importante. A maioria das coisas, densidade, luminosidade, viscosidade, Esses são bem, apenas forjar valores que não fazem nada. Inclinação, defina a distância e a diminuição do nível. Esses, no entanto, fazem alguma coisa. Mas eu recomendo apenas brincar com os números mais uma vez, quando se trata da cor. É muito estranho porque, em vez de ir como você esperaria que um valor hexadecimal fosse no RGBA. Na verdade, é um RGB, então essa é a cor basicamente. Mas isso deve ser bastante simples. Basta encontrar um seletor de cores online e então você pode basicamente definir a cor aqui. Também precisamos de um bloco líquido aqui. Então eu bloco de mel, isto é, bem, um bloco específico. Neste caso, podemos ver que este é um novo bloco de líquido e passamos no fluido ali mesmo. Mas essa é a ideia geral aqui. Nada muito louco. Às vezes penso que os fluidos e a forja são Will. Pode ser um pouco mais fácil porque há mais uma coisa que precisamos adicionar. Na verdade, isso é algumas coisas que precisamos adicionar. Então, em nossa classe de mod de curso MC, no método de configuração do cliente, nós realmente queríamos definir a camada do renderizador aqui, e isso será para os fluidos do modelo pai, e então basicamente o bloco. E isso vai ser translúcido. Na verdade. Queremos fazer a mesma coisa pelo lúcido e pelo mel fluindo, então vamos basicamente tornar isso transparente para que possamos ver através dele. E isso basicamente nos permite usar o valor Alpha aqui. Então pense nisso assim. E então também precisamos adicionar uma tag. E essa tag é criptografada de forma credível para saber que ela realmente age como um fluido. Então, na pasta de dados do Minecraft, tags, clique com o botão direito do mouse em novo diretório chamado fluidos. E dentro de lá um novo arquivo chamado Water dot JSON. E agora o conteúdo vai ficar assim. Vamos ter o fluido sublinhado do mel e fluindo lá. Esses são os nomes do mundo, seja a fonte ou o fluxo. Isso é muito importante. E então, basicamente, devemos terminar. E então você tem seu fluido personalizado adicionado ao Minecraft e ele será registrado corretamente. Então, sim, isso é praticamente tudo o que precisamos. Então, vamos ver por obras ou se me perguntaram de volta e micro Tennessee, o balde de mel foi adicionado ao jogo e vamos colocá-lo para baixo. Aí estamos nós, o mel também está lá. E agora você pode ver que as partículas são partículas de água normais. E quando eu entro nisso, você pode ver que o tipo de sobreposição também é azul pois isso é apenas duas dessas limitações que mencionei. É exatamente como vai ser. Às vezes, essa é apenas a forma como o biscoito se desintegra. Mas ainda assim, fluido personalizado foi adicionado aos micróbios. Então isso é muito legal e isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra. Sim. 86. (de (Intermediate) a data de eventos: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos analisar provisoriamente analisar provisoriamente os eventos que já vimos eventos em palestras anteriores. Temos o modo eventos de ônibus de eventos, e também temos a classe de eventos motorizados. Então, se duas classes, vimos o evento de comandos de registro, o evento de clone do jogador, bem como o evento de registro para os serializadores modificadores globais aludidos. E eu só queria dar uma breve demonstração do que isso realmente é como eventos. Então, antes de tudo, se não tivermos evento ou você também pode mudar duas vezes e simplesmente colocar em evento aqui. E, em seguida, inclua itens que não são produtos E então podemos pegar este aqui do evento net microforms foi EPI. E eu posso fazer o seguinte. Posso clicar nisso e pressionar Control H. E já mostrei isso, mas vamos mostrá-lo novamente. Mas podemos expandir todos, e esses são todos os eventos que forjam anúncios que podemos basicamente conectar e, em seguida, fazer coisas quando esse evento é acionado. Há coisas realmente legais aqui. A primeira coisa que quero mencionar é que você não deveria dizer, eu quero usar esse evento para fazer isso. Não é assim que funciona. O que você deve fazer é dizer, eu quero que x aconteça. Eu quero poder fazer outra pausa e chefiar n entidade oculta com ela e ela deve pegar fogo. Ok, então você pensa nisso. Bem, posso mudar coisas na classe de itens para o tijolo nether. Agora, realmente isso é meio codificado, certo? Você precisa alterar o código-fonte do Minecraft, realmente não funciona. Existe um evento para isso? Eu não sei. Como se houvesse como um evento de dano, todos os eventos de dano vivo. Olhe para isso. Isso pode ser útil. Você pode clicar duas vezes sobre isso e, em seguida, ele geralmente tem uma descrição muito boa para os eventos. Podemos ver que o evento de dano vivo é disparado pouco antes de Danos aplicados à entidade. Portanto, esse evento é disparado todas as vezes. Pouco antes de uma entidade, uma entidade de mão viva é ferida. Essa é a coisa, certo? Este evento é disparado sempre que uma entidade é danificada na entidade viva realmente prejudicada ou termina na camada realmente prejudicada. Embora eu sugira dar uma olhada nos eventos que estão na hierarquia de classes aqui é, na verdade, é incrivelmente útil apenas estar familiarizado com alguns desses eventos, especialmente quando vem para as entidades. Há tantos deles que você pode ver eventos de Entidade e eles podem simplesmente abri-los eventos vivos e depois ver isso. Há eventos de jogadores. Há tantos eventos de jogadores diferentes que você pode se conectar e fazer coisas com ele. É muito louco. Bem, há uma coisa interessante e essa é a classificação de ônibus bem. Então, se eu clicar no botão do meio do mouse neste ônibus aqui, você pode ver que há um ônibus de forja e há um ônibus MOD. Agora, a essência geral é essa. Existem alguns eventos que são disparados pelo Forge, em alguns eventos que são disparados por um mod. Essa é a ideia geral que você tem que pensar. Não complica demais isso. Sim, é claro, muito mais nisso. Você pode ver que já vimos isso antes, onde temos, já vimos isso antes. Bem, isso é exatamente aqui, certo? Você pode ver que este é o ônibus de eventos MOD, mas essa é exatamente a ideia, certo? Você tem o Mode Event Bus e o barramento de eventos forge. E quanto mais barramento de eventos neste caso, por exemplo, sempre é usado para os diferentes registros aqui. E você pode ver aqui quando fazemos microformas dot event bus, este é então o outro barramento de eventos. Então este é o único para os eventos da forja. Eu não me preocuparia muito com isso. No geral, você geralmente pode ver de que são os eventos. Quando você, por exemplo, diz o registro, registro de eventos, se eu botão do meio do mouse, clique nele e em seguida, vá para o registro quando, por exemplo, você pode ver isso agora implementa o Evento de barramento do modo IE. Então eu posso pressionar Control H sobre isso e posso realmente ver todos os eventos que são de lá. Então, isso deve ser basicamente todos eles. Em teoria, pode haver mais alguns , mas acho que não. Acho que eles sempre precisam implementar isso. Então isso é praticamente tudo o que há para ele. Então, geralmente você deve ser capaz dizer e o que vamos apenas por uma questão de argumento, o que eu realmente copiarei é um método que este é, naturalmente tudo disponível para você e esse é o conjunto entidade em chamas quando atingida. E isso vai ser dentro de outra pausa. Mas só queria mostrar aqui em um exemplo, você pode ver que estamos escolhendo o evento de dano vivo. E este evento tem um par de soft, certo? Já vimos isso. Bem, temos a fonte danificada e também temos, por exemplo, temos o valor e também a entidade viva. Então, basicamente, todos aqueles que estamos recebendo aqui, e isso é muito legal porque podemos basicamente obter a fonte de danos. Podemos dizer, Ei, apenas me dê a fonte direta, ou seja, o jogador. E então também podemos dizer obter a entidade viva que foi atingida. E então estamos apenas incendiando isso. Mas isso é muito legal. Então, isso significa que podemos adicionar funcionalidades adicionais a, por exemplo, itens de baunilha. Agora, mais uma vez, não exagere. Não seja, não fique louco Cu2, certo? Ser como um ok. Então, quando eu bater em algo com outra estrela, o mundo inteiro vai explodir. Quero dizer, seria muito legal honestamente, mas não tente calçar em eventos em que eles não se encaixam. Por exemplo, se você está dizendo, oh, então eu poderia substituir isso pelo meu item personalizado. E eu disse: Sim, claro, como se você ainda pudesse dizer isso. Você pode ver itens mod. Por exemplo, dowsing, rod dot get. E isso também funcionará. Agora, se eu bater em algo com uma vara de dowsing, certo, eu incendiaria algo. Mas então eu também ficaria como, Por que você gostaria de fazer isso? Você não precisa fazer isso em seus itens personalizados. Você tem acesso ao código-fonte. Eu poderia simplesmente entrar na vara de dowsing, certo? Uma substituição de um método aqui. Há o método inimigo ferido, por exemplo. E eu poderia fazer isso aqui, assim como vimos com o tipo de levitação, certo? Então, com a espada de levitação, se feito, substituímos o terceiro método inimigo e adicionamos um efeito. Ou você poderia, em teoria, também fazer isso aqui, certo? Eu poderia apenas dizer, Ei, vamos pegar o, você sabe, se este é um item tipo de levitação, então bam, Vamos, vamos incendiá-lo ou vamos levitar a entidade viva que foi atingida. Claro que posso fazer isso, mas se você tiver acesso ao código-fonte, não há motivo para você fazer isso em um evento. Espero que eu tenha sido uma espécie de introdução geral aos eventos. Eventos podem ser quase impossíveis de dominar porque existem muitos deles. E você só terá que ver se para sua coisa particular que você quer fazer, há um evento e, se houver, ótimo, experimente. Aberto à experimentação. Eu posso praticamente o que vou dizer para o resto do curso, porque é muito importante apenas experimentar um monte de coisas. Você sempre tem controle Z. Essa é a grande coisa sobre programação. Você sempre pode voltar e dizer, sabe o quê? Não, isso não foi uma boa ideia ou, oh meu Deus, essa funcionalidade é incrível. Não esperava que isso acontecesse. Então isso é muito legal. Mas apenas por causa de conclusão, estamos realmente vendo, bem, isso realmente funciona? Vamos ver se isso acontece. Ou se me diz um Minecraft, então eu tenho outra pausa e vamos ver se eu acertei uma entidade com ela. Lá vai você. Eles são incendiados e um outro tijolo está sendo subtraído aqui. Então isso é insanamente legal. Como você pode ver. Ele só funciona. E é, você sabe, isso é quão legal e interessante os eventos personalizados da parede ou conexão em eventos podem basicamente estar certos, e isso já seria para esta palestra aqui. Espero que você tenha achado útil e ele aprenda sobre o novo, e eu te vejo na próxima palestra. Então, sim. 87. (de (Intermediate) a and e mapes de pergaminho (de trecho): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta breve palestra vamos atualizar a forja bem como atualizar os mapeamentos. Então, ao longo de algum tempo, você sabe, novas versões forjadas sairão. Então você pode ver aqui na página de download, temos 39 e 0,8 neste momento, e estamos usando, acredito, 39.05. Mas vamos verificar isso em apenas um momento, mas podemos atualizá-lo para a versão mais recente aqui. E então o mesmo vale para pergaminho. Na verdade, temos uma versão completa neste ponto, que é 20, 21, 12 e 19. Então, isso é muito legal. O que podemos fazer é basicamente navegar até o arquivo build.gradle aqui. E você pode ver que estamos usando 0,5. Então agora podemos simplesmente colocar um 0.8. Não precisamos baixar nada. Novamente, basicamente será feito para nós automaticamente. E então podemos mudar isso para ser o 2021, 12 e 19, e depois a versão C aqui, e depois 180, um é claro. E então, para a nossa versão, quero dizer, neste ponto estamos bem enol, então isso é tudo isso como 0.1.5, tudo bem. E então vamos salvar isso. E então podemos apenas acertar as alterações do Gradle de carga aqui, e então vamos deixar isso acontecer para mim. Demorou apenas três segundos, mas isso é claro porque eu já fiz isso e todos os itens já baixaram antes. Então, para você, provavelmente levará cerca de um minuto ou dois atrapalhando isso e então tudo deve ser bem atualizado, atualizado e deve ficar bem. Não deve haver erros aqui. O que pode acontecer é que se você começar o jogo, uma vez você receberá muitas flechas ou, melhor, muitos avisos dizendo como: Ei, isso não funciona, isso não funciona, mas não se preocupe. Vamos continuar com isso para que você possa ver que tudo está funcionando, desde que você não esteja ficando bem, quero dizer, a compilação falhou ou , desde que você não esteja recebendo microondas não funcione , tudo bem. E você pode ver aqui, por exemplo, que o micróbio já está começando. E então devemos ficar bem. Aqui estamos nós. Lá vamos nós com microfone 3908, tudo funcionando na Grã-Bretanha. Isso é tudo o que eu queria te mostrar para esta palestra aqui. Eu recomendo quando você tem uma nova versão disponível. Quero dizer, se você está assistindo isso no futuro, é claro que você está, então basicamente esta versão aqui então basicamente esta versão aqui provavelmente não será a mais atualizada. E então esta versão para o Forge definitivamente não será a mais atualizada. É por isso que vinculei as páginas para pergaminho e as páginas para o download mais uma vez, apenas para que você possa basicamente levar aquelas onde as versões reais que você vai precisar, onde quer que isso seja para esta palestra aqui, espero que você tenha achado isso útil e aprendido algo novo. Vejo você na próxima palestra. Então, sim. 88. (Antecedência) entidade de bloqueio personalizada (de bloqueio: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra vamos dar uma olhada em um bloco. Entidades. Para entidades de bloco em geral, existem blocos que têm uma funcionalidade específica associada a ela. Então, dados extras, por assim dizer. E isso poderia, por exemplo, incluir uma GUI e coisas assim. Agora, antes de saltarmos para programar algo, eu realmente queria, bem, basicamente passar por um pouco da teoria. Para isso, vamos quebrar a ferramenta de poço que é usada com mais frequência e isso é, claro, nosso ponto aqui. Então, vamos começar. Então, a ideia geral é que temos algumas coisas. O número 1 é que temos uma classe de bloco. Agora já fizemos isso. Temos um, bem, o cobol blaster para nós. Agora, para nós, será o botão azul. Sob o fundo azul. Não parece tão bom, então nós o temos, lemos aqui mesmo. Mas as ideias gerais, temos uma classe de bloco e que tem uma referência a uma classe de entidade bloqueada. Há uma classe de entidade de bloco que, é claro vamos criar em apenas um momento. E isso contém dados e funcionalidades para um bloco específico. Essa é a ideia geral. Neste bloco, a classe de entidade é criada. Podemos ter um inventário nele, e esse pode criar um menu. Agora, a classe do menu é muito interessante porque a classe do menu, certo? Você pode ver que está meio separado, certo? Temos uma tela e uma aula de menu. Agora, o que é muito importante é que a classe de menu pode, por exemplo, valores sincronizados para a entidade para um servidor e cliente. Isso vai ser muito importante, especialmente na próxima palestra. Então eu recomendo dar uma olhada nesta palestra e na próxima palestra, mais ou menos ao mesmo tempo, porque vamos ter uma entidade de bloco funcional no final desta palestra sobre bom, vamos torná-lo cerca de um bilhão de vezes melhor na próxima palestra e apenas mais robusto. Então, isso é apenas algo a ter em mente. Na classe de menu também tem espaços para o inventário. Então você pode ver que isso basicamente visualiza isso de uma forma que temos esses retângulos roxos aqui que estão meio que correlacionados com os slots aqui. E o que é muito importante é que o menu onde esses slots estão é completamente independente dessa imagem aqui. Porque o que você tem que ter em mente é que quando olhamos para a aula de tela, certo? Somente este cliente, isso é literalmente apenas essa imagem. Não posso enfatizar isso mais. Basicamente isso, a classe de tela é praticamente apenas essa imagem. Portanto, independentemente do que seja essa imagem, os slots podem estar em qualquer lugar onde quisermos. Então, na verdade, definimos a posição deles dentro da classe de menu. Embora em vez disso, você sabe, o ano da GUI, eu poderia ter uma foto do meu rosto, eu poderia ter uma foto do meu cachorro. Você poderia colocar o que quiser lá. A funcionalidade ainda funcionaria. Então isso é muito, muito importante. Agora também exibe coisas como o progresso. Então esta seta de progresso aqui, ou quanto combustível resta no slot de combustível. Basicamente, isso é algo que pode ser feito com os valores do sincronizador que a classe de menu basicamente sincroniza para nós. Essa é a visão geral disso. E às vezes isso pode ser um pouco confuso. Também direi isso, bem, entidades de bloco são definitivamente um tópico avançado. Então, chegamos aos tópicos avançados neste momento. E neste ponto também é algo como se você não sabe tanto Java, neste momento, é muito bom. Vai ser muito difícil ajudá-lo com qualquer coisa que eu basicamente vou assumir que você sabe, pelo menos conhecimento intermediário de Java basicamente. Então eu não vou dizer, Ei, este é um método estático. Você sabe o que é um método estático, coisas assim. Vou presumir que você sabe tudo isso. Portanto, esteja ciente disso. Número um. Número dois, também estarei cobrindo muito do código que está disponível para você, incluindo esta folha de truques também está disponível para você no individualista do repositório do GitHub e para download. Portanto, não se preocupe lá. Mas vamos mudar para você inteligente novamente e vamos ver o que podemos ver. Então, número 1, o que precisamos é que precisamos de uma nova classe. Precisamos de um novo pacote em R, bloco pacote, clique com o botão direito do mouse em novo pacote chamado entidade. Agora, esse é o pacote de entidades de bloco. E lá precisamos de duas aulas. Um deles será a entidade Volokh de blaster de cobalto. E então o segundo vai clicar com o botão direito mouse em Nova classe JAR chamada entidades de rocha de lama. Lá vai você. Portanto, essas duas aulas são necessárias. E para as entidades de bloco, bem, podemos imediatamente preencher isso com pelo menos um pouco, e isso será uma final estática pública, o terceiro registro. Já vimos isso, é claro, tipo de entidade de bloco e, mais uma vez , colchetes angulares com um ponto de interrogação nele. E, em seguida, bloqueie entidades sublinhadas, que é igual a um registro diferente que cria registros, entidades de bloco de pontos. Modelo de curso Mc, esse ID do modelo. E então, é claro, enquanto um registro existe um método de registro vazio estático público com um ônibus de evento ou ônibus de evento, que resfria as entidades de bloco que se registram e passam no ônibus de eventos. E já podemos imediatamente entrar em nossa aula de mod de curso MC e colocá-lo aqui para que possamos dizer modo de bloqueio, entidades de bloqueio se registram com o ônibus de eventos que eles atrás. E teremos que fazer isso mais uma vez antes que a palestra termine, mas não se preocupe. Ainda não vamos definir o real. Entidade porque antes de tudo precisamos fazer essa classe. Acredito que podemos fazer essa aula quase em sua totalidade, exceto por uma coisa, mas isso vai ficar bem. Então, isso vai fazer com o seguinte. Isso estenderá a entidade de bloco e implementará o provedor de menu. Vamos passar o mouse sobre isso, implementar os métodos. Portanto, isso implementará o método get display name e o método de menu Criar. Então, uma coisa que vou fazer é eu vou propositalmente, bem fazer com que isso tenha uma seta aqui, porque eu não quero esquecer de adicionar o menu Criar aqui. Isso é meio importante às vezes. Quero dizer, eu não sou que eu esqueça isso, mas é muito importante que realmente façamos isso porque há muitas partes móveis para isso, você sabe, não fazer uma dessas partes basicamente faça com que a entidade de bloco não funcione. E aqui podemos simplesmente retornar um novo componente de textos de quatro volts último termo. Então, esse só será o nome de exibição basicamente. Em seguida, passe o mouse sobre este construtor creed combinando super. E isso também vai ficar bem. No entanto, o que vamos fazer aqui é que vamos excluir o primeiro parâmetro e então você obterá um, bem, um erro aqui, mas não se preocupe. Porque o que podemos fazer agora é definir isso em nossas entidades de bloco de modo. E a maneira como definimos isso , eu realmente vou digitar isso, talvez não seja um objeto Registry final estático público. Será bastante autoexplicativo do tipo de entidade de bloco, esse tipo de entidade de livro de blaster de cobalto. Bem, o blaster de cobalto, e isso vai ser igual a entidades de bloqueio que se registram com o nome blaster sublinhado de cobalto, isso vai dar certo. E, em seguida, um fornecedor do seguinte tipo de entidade de bloco ponto-ponto construtor da entidade de bloco de blaster de cobalto dois pontos, dois pontos novos. Você pode ver que, em seguida, uma vírgula, então temos que fazer blocos, ponto, blaster, ponto get. Então, após o terceiro, após o primeiro parêntese de pato, e depois passar um nulo. Então é assim que se parece bem aqui. Portanto, os blocos que passamos aqui são basicamente os blocos associados a essa entidade de livro. Essa é a ideia geral. Então, em vez de ter o parâmetro aqui, o que podemos fazer é dizer entidades de bloco, que ponto de bloco cobalto blaster dot get. Agora você pode pensar, bem, isso não é uma referência circular? Na verdade, não é. Eu faço. Não tenho certeza que goste. É muito louco. Como se houvesse muitas coisas circulares, por assim dizer, nas entidades de bloco. Portanto, não se preocupe. Agora vamos começar a copiar as coisas. A primeira coisa que copiaremos são basicamente os dois campos que temos. E esses campos estão no manipulador de pilha de itens chamado manipulador de itens de tamanho quatro. E esta também é uma aula anônima que você pode ver porque temos que colocar o conteúdo alterado aqui, onde basicamente mudamos. Porque, de outra forma, teremos alguns problemas com o carregamento e o salvamento basicamente do inventário. E então temos um preguiçoso opcional disso, e precisamos deste por causa da capacidade. Vamos copiar este aqui também. Portanto, esse será o método de capacidade do Git. E vou colocar isso abaixo aqui. Então eles obtêm o método de capacidade. Você pode vê-lo basicamente diz: Ei, se você sabe que alguém ou algo pergunta sobre essa entidade de bloco, ela não tem a capacidade de manipulador de itens, então vamos devolver o manipulador de itens preguiçoso . Então, certo, este aqui. E vamos dizer, Claro, pegue isso. Agora, é claro, como você pode ver claramente, o manipulador de itens preguiçoso no momento em que não foi definido. Como configuramos isso? O que o definimos no método onload. Então, o que vamos fazer é copiar sobre o estande o método onload e invalidate caps. Eles podiam ver onload deve ser bastante autoexplicativo, certo? Quando essa entidade de bloco for carregada, vamos definir o manipulador de itens preguiçoso como um opcional preguiçoso do nosso manipulador de itens real aqui. Então essa é a ideia geral. E quando invalidamos os limites, isso acontece quando o servidor desliga coisas assim. Então estamos apenas invalidando os manipuladores de itens preguiçosos para que não tenhamos vazamentos de recursos, coisas assim. Bem, então surge a pergunta como salvamos os dados? Bem, salvamos os dados fazendo, substituindo dois métodos. Esse é o método save adicional e o carregamento. Então você pode ver que basicamente estou levando o manipulador de itens NMC, percebendo isso para o NVT. Então isso basicamente faz todo o trabalho pesado para nós. Ele salva todos os slots. O que há nesses slots são muitos itens nesses slots. Então, tudo isso é feito para nós lindamente e só precisamos desses dois métodos aqui. O que é muito importante é que precisamos, mais uma vez, substituir isso na classe anônima. Caso contrário, teremos alguns problemas com o salvamento dos dados porque o método adicional save por qualquer motivo não é chamado. Toda vez que deixamos o mundo por qualquer motivo ele só é chamado para uma atualização. Não tenho certeza sobre isso, mas apenas certifique-se de que isso seja feito. E então, por último, mas não menos importante, para os métodos não estáticos, também terei o método drops. E este basicamente só faz um contêiner simples aqui, pegue todos os itens do manipulador de itens e, em seguida, apenas diz: Ei, basta soltar todo o seu conteúdo nesta posição em esse nível. E então vamos ficar bem. Isso será chamado quando destruirmos o bloco real. Então todo o conteúdo é derramado do, deste bloco real, certo? Então, se você, por exemplo, baú destruidor e, claro, todo o conteúdo do baú cairá no chão. E isso é claro que também queremos em nosso foguete antes de continuarmos a fazer coisas aqui, na verdade vamos mudar para o vidro ou bloco de cobalto, porque agora o bloco será mudou também. E isso vai ser muito interessante porque, em vez de se estender da classe de bloco, isso vai se estender a partir do bloco de entidade base são importantes. E então você pode ver que imediatamente você precisa implementar o novo método de entidade de bloco. Isso é claro que não se preocupe, porque podemos simplesmente implementar isso. E isso vai ser muito fácil para nós, porque o que podemos fazer é, em vez de retornar null, vamos retornar uma nova entidade de bloco de blaster de cobalto e passar o EPA tem e o estado p aqui. E isso é praticamente tudo o que precisamos fazer para isso. Agora, há mais algumas coisas que precisamos fazer, certo? É claro que você pode ver que a maioria das coisas é para a forma real do bloco. Mas o que você tem é que precisamos, e isso é incrivelmente importante, certo? Temos que substituir o método getter render shape bem aqui. E temos que retornar forma de renderização um modelo. Porque se não fizermos isso, nosso modelo ficará invisível porque esse é apenas o padrão do bloco de entidade base. Não sei por que esse é o caso disso. Provavelmente será algum motivo para isso. Portanto, certifique-se de que você substitua isso. Caso contrário, seu bloco ficará invisível. E isso é claro que não é exatamente o que queremos , pois vou substituir outros métodos e, na verdade, vou copiá-los. Esse será o método onRemove. Isso é exatamente o que eu disse, logo quando chamamos o método drop aqui. Bem, isso só garante que, hey, quando removemos esse bloco, todo o conteúdo da entidade do bloco cairá no chão. Mas isso é ótimo e este é apenas um método muito bom e não muito louco também. E o método dos EUA bem é semelhante no sentido de que, quando clicamos com o botão direito do mouse neste bloqueio, simplesmente queremos que a entidade real abra seu inventário ou abra sua GUI basicamente, certo? Você pode ver aqui ganchos de rede que abrem a Gui. Então, basicamente queremos abrir a GUI e certificar-se de que, você sabe, ela está meio sincronizada através do servidor e do cliente. É por isso que os ganchos da rede basicamente fazem todo o trabalho pesado lá para nós. Há mais uma coisa que queremos, e é que queremos que o método ticker ou queremos que um método de tick possa ser acessado na entidade de bloco de blaster de cobalto. E um método de tick basicamente é apenas um método chamado de cada tick para uma determinada entidade de bloco neste caso. E isso nos permitirá adicionar funcionalidades legais a ele. E nós basicamente vamos artesanato personalizado, por assim dizer. E para isso precisamos substituir o método getter ticker. Vou copiar isso novamente e teremos um erro simples aqui, mas podemos corrigir isso com muita facilidade. Podemos ver que este é basicamente o, bem, eu recebo o método ticker e então chamamos o assistente create ticker e retornamos a isso com o tipo de entidade rock, vamos passar no blaster global modo de bloco, ano da entidade de bloco. E então aqui podemos ver que queremos passar o método de tick da entidade do bloco de blaster cobol , que ainda não foi criado. Mas vamos criar isso agora. Então, esses serão todos esses métodos estáticos. Esses são quatro métodos. Só vou copiá-los para que possamos ver o que está acontecendo aqui, certo? Isso é loucura, não se preocupe. Vamos passar por isso. Portanto, o método tick é o único método que não é personalizado. Portanto, esses três métodos são completamente personalizados. Eu mesmo os fiz. O método de tick em si será o mesmo para cada entidade de bloco. Você sempre terá acesso ao nível da posição, ao estado e à própria entidade de bloco. E você pode ver que acabei de fazer alguns métodos auxiliares, basicamente criar o item só falhará. Os itens vão extrair um item de 0. Vamos extraí-lo do Slot 1. E então vamos apenas definir um item no slot três. Então você pode ver que vamos colocar lingotes de cobalto aqui também. Vamos fazer isso continuamente. Claro, o método do item de artesanato só é chamado quando ambos temos uma receita e não atingimos o limite de pilha. Vamos dar uma olhada no limite de pilha porque isso é um pouco mais fácil. Basicamente vamos dizer, ei, se a contagem das pilhas reais aqui for menor que o tamanho da pilha GetMax, ficaremos bem. Então, desde que não tenhamos atingido 64 itens no slot de saída, podemos criar continuamente itens que devem ser bastante autoexplicativos. O método de receita tem. Bem, isso apenas verifica se temos no slot 0 chamado slivers e que temos no primeiro slot ou na inclinação com o índice um, temos cobalto bruto. Se tivermos ambos lá dentro, então isso é verdade. Espero que isso seja verdade e, em seguida, estaremos criando o item. Vou dizer isso, esta é uma maneira muito grosseira de fazer isso. Isso é realmente apenas para mostrar uma vez como o artesanato real e coisas assim funcionarão ? Eu recomendo que você possa implementar isso e você pode dar uma olhada nisso e você pode dizer, bem, isso é realmente legal e é altamente recomendável. Próxima palestra, vamos fazer uma receita personalizada, Jason. E então podemos basicamente definir bem as receitas de criação dentro de arquivos JSON, o que é muito melhor do que codificá-los assim. Definitivamente não é uma boa ideia para fazer isso, certo? Isso é apenas uma péssima ideia. É muito desajeitado, não é bom, é, é codificado. Muitas coisas podem dar errado. Então eu recomendo, embora isso seja apenas para mostrar uma vez aqui, é uma maneira muito grosseira de fazer as coisas e só queria deixar isso claro. Agora o problema é que isso é praticamente feito, exceto, claro, o método de menu Criar aqui. E o mesmo com o bloco. O bloco também é feito para que possamos fechar o bloco, podemos ainda mais fechar este. Vamos manter a classe de entidade de bloco aberta um pouco porque é claro que agora precisamos adicionar na tela. Então, no nosso pacote de cursos MC. Clique com o botão direito em novo pacote chamado tela E lá dentro vamos fazer duas novas, na verdade três novas classes, cobalto, menu pilastro. E então vamos fazer a tela de pilastro de parede. E vamos fazer a classe de tipos de menu de modo também. E então, qualquer pacote de tela, também precisamos de outro pacote chamado slot. E em vez de lá, eu realmente vou copiar para a última estrela feita será o modo que você vai ranhura e o slot de resultado do modo. Vou explicar isso em um momento em que realmente vamos usá-los. Mas eu recomendo também copiá-los. Tudo isso, é claro, está disponível para você mais uma vez, repositório do GitHub e para um indivíduo também. Não se preocupe lá, certo, vamos começar com o menu ou menu de blaster de cobalto. E eu vou, isso vai estender o menu de contêiner abstrato. Muito importante. Lá vai você. Vou implementar os métodos ainda válidos aqui. E então também criaremos um construtor combinando super. Agora, o que vou fazer é, na verdade copiar a totalidade do conteúdo desta classe. Recomendo que você faça o mesmo. E explicaremos à medida que avançarmos. Então, teremos uma flecha aqui. Poderemos consertar isso em apenas um momento, sem preocupações. Então você pode ver que temos dois construtores diferentes aqui, o que é realmente muito importante porque um dos construtores será chamado nos menus mod e no outro construtor será chamado na entidade de bloco. Agora podemos realmente fazer isso imediatamente. Então, vamos mudar para a entidade do blog. E então aqui no método de menu Criar, vamos criar um novo menu de gesso ou parafuso quando passar o inventário de ID do contêiner. E então o último é esse. Lá vai você. E isso é praticamente tudo o que precisamos passar. Mas agora a classe de entidade de bloco está completamente concluída e terminamos com isso. Agora vamos dar outra olhada no menu aqui. Então, o menu, como já mencionei anteriormente na folha de truques da teoria, basicamente, Isso é responsável pelos slots onde eles estão, onde estão dispostos, coisas assim. E você pode ver isso aqui. Então podemos ter, basicamente adicionamos o inventário, adicionamos a barra quente do jogador. Então, esses são apenas dois métodos que criei rapidamente porque isso aqui. Portanto, os loops for geralmente são como dentro do construtor real. Isso é que, quero dizer, parece que sou um muito ruim não é tão bem codificado basicamente. Depois, há outra coisa que é muito interessante e essa é a pilha de movimentos rápidos aqui. Este método é feito pela DZ 07, 08 créditos vão para eles por fazer isso. Eu basicamente quero dizer isso, isso é para clicar em turnos dentro deste inventário. Não se preocupe com esse método . Não olhe para ele. Apenas diga muito obrigado pelo pelo 07 que eles podem que isso seja realmente insano. Eu só o método que poderíamos passar passou meia hora para explicar isso. Simplesmente não é necessário. Eu realmente não gosto desse método, mas é claro que ele precisa ser feito de alguma forma. E é assim que vai ser. Os campos estáticos também precisam estar lá. Isso é muito importante. E aqui no TE, contagem de slots de inventário, basicamente temos que colocar a contagem real de slots. Bem, t0 inventário de arquivos agora é um inventário B. Portanto, antes de ser nomeada entidade de mosaico, agora ela é nomeada entidade de bloco. Mas tudo aqui ainda deve funcionar totalmente bem. E você pode ver que estamos adicionando quatro slots como você pode ver. Então, estamos basicamente perguntando: Ei, temos capacidade de manipulador de itens? E se for esse o caso, vamos adicionar alguns slots legais aqui. Você pode ver que eu tenho um slot de combustível em um slot de resultado. Eu fiz essas aulas porque bem, quero dizer que só faz muito sentido. Basicamente, tenha um slot onde você só pode inserir combustível e, em seguida, os resultados ABR ranhura onde você realmente não pode inserir nada. Basicamente, apenas a própria máquina pode inserir coisas nela. E eu basicamente tirei esses dos slots reais. Então você pode digitar, eles podem colocar em turno duas vezes e depois colocar no slot. E então, se eu fizer isso, você poderá ver o inventário mundial do Minecraft. E se eu pressionar Control H, você pode ver todos os diferentes poços, slots que estão disponíveis aqui, por exemplo. E então, basicamente, temos o slot de resultados do forno, como você pode ver. Vamos dar uma olhada neste. E bem, quero dizer, basicamente peguei a maioria das coisas aqui são os resultados, certo? O que é muito importante? É só que este lugar de 1º de maio tem que ser falso. E então o mesmo para o slot de combustível. Nós basicamente só, bem perguntar ao forno abstrato, Ei, essa pilha é um combustível? E se for, então vamos dizer, claro, você está prestes a colocá-lo lá dentro. Praticamente tudo o que havia para ele. Quero dizer, isso é um pouco que existe para isso. Estes dois slots recomendam usá-los porque eles são um pouco mais agradáveis de usar basicamente. Mas, além disso, acredito que a maior parte do resto é, bem, não muito louca. Só temos uma referência à entidade de bloco, uma referência ao nível. O método ainda válido basicamente apenas verifica se o jogador pode ou não acessar este menu. Então isso seria se você estiver em um carrinho de mina, você clica com o botão direito do mouse em um forno ou algo assim e você estivesse muito longe e, de repente, a GUI real fecha. Acredito que isso é o que basicamente facilita isso. Então, vamos entrar na classe mais menus agora, e vamos adicionar nossas coisas lá também. Na verdade, agora vou copiar isso porque já vimos isso muitas vezes. Este é um registro diferido do tipo de menu, mais uma vez do ponto de interrogação. E então, quando definimos o tipo de menu, precisamos de um método de tipo de menu de registro aqui que tenha apenas uma fábrica de contêineres do tipo T aqui. E estamos basicamente registrando isso. Normalmente, isso não seria muito louco. Todas as coisas consideradas altamente recomendáveis. Mais uma vez, tudo, claro, disponível, você não precisa digitar isso sozinho. Repositório do Github e individual também. Agora, no construtor de mod de curso MC, vamos chamar os tipos de menu modernos dot register com o barramento de eventos. E então tudo aqui está registrado também. Isso é ótimo. E então basicamente não precisamos olhar para este nunca mais, pelo menos por enquanto. Agora este também não é feito mais erros. Então, tudo é ótimo. Agora, uma coisa que as pessoas podem perguntar é, bem, o que faz essa exposição, qual é essa posição aqui? Bem, para isso, eu realmente vou copiar sobre a textura que vamos usar em apenas um momento. Isso vai acontecer em ativos, texturas grosseiras MC e, em seguida, em Gui. Então, vou copiar isso. Nós terminamos. Esta é a GUI com jateamento de cobol e eu vou abrir isso. Já vimos isso, claro, já. Uma ideia geral é que, bem, 850, certo? Então, nós 18 e 50. Por que esse pixel aqui é 0000. Se formos 18 para a direita, direita, x 18, então 18 para a direita e 50 para baixo, acabamos exatamente aqui. Então essa é a ideia geral. Você terá que contar isso em pixels. Embora, se você usar o Photoshop ou paint.net ou GIMP, geralmente terá uma ferramenta Selecionar que você pode usar. E então você pode basicamente selecionar isso e ver o quão grande isso é. Você terá que contá-lo em pixels não é outra maneira. Às vezes é um pouco desajeitado, mas é assim que vai ser. E o resto deve ser bastante autoexplicativo. Mas o resto é seu 66 e depois para baixo 16 do que outro é 50 para baixo e 66 x e assim por diante e assim por diante. Então é basicamente assim que isso é definido, certo? E então vamos fazer a tela durar, mas não menos importante. E mais uma vez, sim, vamos realmente copiar isso. Agora. Este é realmente o, eu acho que o que é, bem o menos complicado. Este é o fluxo de contêiner abstrato do tipo, antigo menu Glassdoor. Então, é muito importante que você coloque a classe correta aqui, o menu mestre do cobalto, porque então também teremos acesso a isso nesta classe. Então isso é muito importante. Você pode ver que eu tenho a localização do recurso da textura em texturas GUI cobalto, blaster sublaster, sublinhado GUI PNG, o que acabamos de ver antes. E este ano, como você pode ver, é basicamente renderizado aqui. E então usamos esse método doublet sob esse método pode ser muito complicado. E, na verdade, entraremos em detalhes mais sobre esse método na próxima palestra quando estamos adicionando as barras de progresso e outras coisas, é então nós realmente temos que pensar, ok, como poderíamos configurando isso, certo? O que é o x? Qual é o porquê? Qual é o deslocamento aqui? Qual é a largura disso? Vamos descobrir esta próxima palestra. Como eu disse, por enquanto, isso aqui só garante que toda a imagem, então tudo isso, certo, sem o material à direita aqui, seja basicamente exibido no jogador. Agora, o que ainda precisamos fazer na classe de mod do curso MC, também método de configuração muito importante e recusado, telas de menu, modo de registro de pontos, tipos de menu que cobol blaster, menu dot get. Em seguida, uma tela de blaster de cobalto cólon, dois pontos novos. Agora isso não deve gerar erros porque a tela de plasma frio é do tipo menu de blaster de cobalto, certo? Então, a tela de contêineres do tipo cobol blaster menu. Então, tudo o que devemos ficar bem aqui e acreditar ou não, deveria ser isso. Agora, como eu disse, isso é um pouco certo? E essa nem é a forma final, por assim dizer. Isso nem é a coisa completa ainda, mas, por enquanto, isso é tudo o que precisamos acrescentar. Então, vamos ver se funciona ou se retorna e Minecraft. Então, vamos ver, vamos definir o blaster cobol para baixo e vamos clicar com o botão direito do mouse e ver. Ok, então isso é muito bom. Você pode ver que, é claro, a GUI foi aberta agora. Todos esses slots aqui funcionam. Agora vamos ver se consigo pegar pedra humilhada e colocá-la aqui. Não posso colocar um ano e posso colocá-lo aqui. Isso é exatamente o que eu quero. Posso colocar aqui, posso pegar o fígado do meu curso e colocá-lo aqui porque é um combustível. E assim que eu colocar o porão de rocha no topo aqui, devemos ser capazes de ver que lingotes de cobalto estão sendo feitos. E lá vai você, basicamente todos os carrapatos. Então, vamos basicamente fazer 20 lingotes de cobalto a cada segundo. E então, se eu colocar mais aqui não vai funcionar. O limite de pilha foi atingido. Portanto, não criamos mais, mas vou tirar metade deles. Você pode ver que a outra metade basicamente está sendo criada. Agora, uma coisa que podemos verificar, basicamente, se eu salvar o mundo e voltar a ele, então deveríamos ter salvo os dados. Mas isso é muito importante, é claro, é uma das coisas em que precisávamos salvar dados adicionais e o método de leitura. Então, vamos ver se isso funciona ou não, mas estou bastante confiante de que isso funciona. Agora, vamos ver que todos os nossos itens ainda estão aqui. E então a mesma coisa acontece quando eu destruo isso, você pode ver todo o conteúdo cair aqui. Então, tudo está funcionando exatamente como queremos. Mas esta é definitivamente uma palestra avançada, bem , como você pode dizer claramente. É, é. Primeiro de tudo, leva muito tempo e há muitas coisas que você precisa para conseguir aqui. Mas, no geral, isso é muito legal, e as entidades de mosaico são coisas incríveis que eu posso recomendar. Este é um dos únicos momentos em que olhar para o código de baunilha não é tão útil, porque na forragem temos que fazê-lo de uma forma rotunda para basicamente registrar nossas coisas. Mas eu posso recomendar dar uma olhada nos repositórios do GitHub de mods populares ou eles fazem suas entidades de bloco, coisas assim. É altamente recomendável que, porque sempre há, você pode, número 1, obter alguma inspiração nisso. E o número dois, se você realmente está preso, geralmente você tem isso também. É claro que você também tem esse repositório do GitHub. Todo o código aqui, se você copiar tudo, isso deve funcionar mesmo que haja muitas partes, é claro, certo? Temos a tela inteira, o menu, o bloco tem que mudar um pouco suave assim. Portanto, definitivamente há muito nisso, mas no geral, é muito legal. Então eu recomendo vivamente depois de terminar isso para ir imediatamente para a próxima palestra e olhá-los como uma palestra dupla, por assim dizer, altamente recomendado fazer isso. Caso contrário, terminamos esta palestra aqui. Espero genuinamente que você tenha achado isso útil. Se alguma coisa não estiver clara, sinta-se à vontade para fazer perguntas nas perguntas fornecidas e uma. Vou tentar respondê-las melhor da minha capacidade. Caso contrário, eu agradeceria muito uma revisão para mu e te vejo na próxima palestra. Então, sim. 89. (Advanced) Criação tipos de receita personalizados: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos dar uma olhada em como você pode adicionar serialização de receitas personalizadas à sua entidade de bloco. Então, a ideia geral é que vamos adicionar a possibilidade de criar arquivos JSON, arquivos JSON personalizados que você pode ler e que basicamente tenham, bem, as receitas para suas entidades de bloco. Então, mais uma vez, copiarei muitas coisas nesta palestra, mas não se preocupe, Tudo está disponível para você no repositório do GitHub e um indivíduo também, altamente recomendo fazer um olhe para eles. E a primeira coisa que vamos fazer é fazer a receita. Então, no nosso pacote de cursos MC, clique com o botão direito do mouse em novo pacote chamado receita E então dentro de lá ou copie sobre as explosões de cobalto ou classe de receitas, bem como a classe de receitas modelo. E vamos dar uma olhada neles. Então, nenhum deles deve ter um erro neles? Eu acredito. Então. Ambos devem funcionar imediatamente. E vamos apenas passar, vamos começar com a receita de jateamento frio. Você pode ver que temos três campos aqui, um ID de localização do recurso e os itens recebem saída e um não analista de itens de receita. E você também pode ver que ele implementa a interface de receita com o contêiner de símbolos aqui. Agora, deve ser bastante autoexplicativo que a saída seja apenas o resultado que você obterá da receita real. O ID será, bem, o local do recurso em que esse arquivo jason real está abaixo. Os itens da receita serão uma lista de ingredientes ou de itens que são usados para criar o item específico. Agora vamos ignorar o método match por um segundo porque esse será o método mais importante em toda essa classe. Então, vamos passar pelos outros para montar semelhante ao item de resultado get apenas lhe dá a saída. Pode fabricar dimensões. Vamos apenas retornar verdadeiros porque não temos dimensões. Não estamos em uma grade de três por três ou algo assim. A ideia, mais uma vez, é apenas o ID da localização do recurso. E temos um serializador e um tipo. Agora, essas são classes estáticas dentro do cobalto plus ou copo de receita. E você pode ver que o tipo tem apenas uma instância e é apenas uma ideia Jacobo blasting, e, em seguida, semelhante no serializador, também temos uma instância e o ID aqui. É muito importante que este e este, mas isso basicamente um tipo aqui determina qual o nome do seu tipo no arquivo JSON deve ser. Mas veremos isso em apenas um momento. Agora, os zeros, ele tem mais alguns métodos. Vamos, em primeiro lugar, ir para o fundo aqui. E você pode ver isso também, especialmente esses dois métodos que basicamente retornam a classe do serializador de receitas. E isso é uma coisa louca da classe. Não tenho 100% de certeza do que a loucura está acontecendo aqui. Só vamos precisar disso. Então, caso contrário, não podemos devolver a classe corretamente se não tivermos esse material maluco de invólucro. Como eu disse, não tenho 100% de certeza do que eles se tratam. Vamos deixar como está, e vamos ficar bem com a gente estar aqui. Agora a ideia, é claro, é apenas mais uma vez, o ID real aqui, a ocasião do recurso, o nome do registro é apenas a instância em si, onde basicamente retornamos a instância em si. E então temos os três métodos de Jason, da rede e da rede. Agora, esses são incrivelmente importantes. O método from JSON basicamente determina como o Jason é ordenado basicamente. Assim, podemos ver que estamos no começo fazendo um conjunto de itens chamado saída. E estamos basicamente lendo isso de um membro chamado saída no arquivo JSON. Mais uma vez, veremos o arquivo JSON em apenas um momento, mas isso é apenas algo que vamos ler. E depois vamos ler os ingredientes, que será uma lista. Aqui fazemos uma lista não nula. E então basicamente colocando todos os ingredientes nesta lista. E então criando uma nova receita de explosão de cobol da rede. E os dois métodos de rede também são interessantes. Em vez de usar o objeto JSON, teremos realmente um buffer de bytes amigável ou por buffer. E isso é basicamente apenas para que a rede possa comunicar o cliente e o servidor. O que é importante aqui é que quando estamos escrevendo coisas na rede e lendo coisas da rede, ela tem que corresponder exatamente. O que isso significa? Bem, você pode ver que quando estamos escrevendo coisas, em primeiro lugar, estamos escrevendo o tamanho da lista de ingredientes. Então estamos escrevendo cada ingrediente. E então, no final, estamos lendo a pilha de itens do resultado das receitas, ok? E é exatamente assim que a lemos. Primeiro, estamos lendo o tamanho aqui com read int. Então estamos lendo os ingredientes. E então, no final, estamos lendo a saída aqui. Isso é muito importante que isso tenha que corresponder. Caso contrário, você receberá um erro, não no ambiente de desenvolvimento, mas quando estiver no servidor, como quando você está tentando se conectar basicamente a um mundo normal fora do desenvolvimento ambiente, você vai receber um erro e não vai funcionar para garantir que isso corresponda se você quiser ir para outras coisas. Porque, claro, mais uma vez, começamos a brincar. Agora é uma espécie de tempo sério de conhecimento Java. Se você quiser mudar isso, certo, se você fosse, por exemplo, dizer, Ei, eu realmente tenho, não apenas duas entradas terão como quatro entradas mudarão o tamanho aqui, certo? Para fazer um monte de coisas, eu realmente tenho diferentes tipos de saída que eu queria dependendo de certas coisas. Bem, ou você faz uma nova receita para isso. Ou se você quiser ter tudo isso em uma receita, você também pode fazer uma lista de saídas em teoria, escolher entre elas aleatoriamente, coisas assim. É tudo sobre agora realmente ter um entendimento muito sólido porque só vai ser muito difícil, caso contrário, fazer coisas realmente personalizadas. Agora vamos chegar ao método de correspondências, que é como eu disse, o mais importante porque isso basicamente determina a funcionalidade ou isso a implementação de como sua receita é avaliado. Assim, o que está dentro do recipiente corresponde a uma receita específica? Como isso funciona? Bem, antes de tudo, estamos perguntando se os itens da 0ª receita, então o primeiro item da nossa lista de receitas que estamos lendo do arquivo adjacente, é que isso corresponde ao item dentro do contêiner com índice 1, y índice 1? Bem, lembre-se porque o índice 0 é na verdade uma hora, você vai ranhura. Portanto, temos que pegar o índice um aqui. E então, se isso corresponder, então estamos apenas retornando se o outro ele combina ou não também. E então isso, claro, retornaria verdade. Caso contrário, ele retornaria false. Isso é muito importante. Este é basicamente o pedaço difícil do seu ano de receita personalizado. E mais uma vez, se você tem coisas mais complicadas, se você tiver mais, se você tiver mais ingredientes, se você tiver mais slots, você só precisa adicionar coisas a ele, mudar coisas nele, basicamente mude-o continuamente. Mais uma vez, conhecimento, terminologia em Java. Vou continuar dizendo isso. Pesquisa, especialmente agora na seção avançada, estamos basicamente concluídos. Então isso é, isso tem que ser feito e sim, essa é a ideia geral. Então, toda a lógica de criação, a lógica de correspondência entra aqui, e essa é, na verdade, a classe de explosão ou receita. E então vamos dar uma olhada nas receitas do modo. Podemos ver que temos um registro diferente de serializadores de receitas aqui. E então apenas um serializador de receitas para o gesso cobol ali mesmo. E também estamos nos certificando de que registramos um tipo quando chamamos esse método de registro. Portanto, esse método de registro, é claro, tem que ser chamado mais uma vez em nossa aula de mod de curso MC aqui mesmo para o modo receitas de ponto registrar-se com o barramento de eventos. E uma vez que isso seja feito sobre essas classes estão realmente bem e já pudemos ler nos arquivos JSON. Mas é claro que agora não teremos nenhum, não estamos fazendo nada, certo? Então, na verdade, precisamos mudar a entidade de cobalto mais três blocos agora para que possamos fechar isso e entrar na entidade aqui. E, na verdade, vamos fazer algumas grandes mudanças aqui. Então, o que eu vou fazer é copiar sobre todas as coisas diferentes que vamos precisar. E vamos começar no topo. Porque o que precisamos é que precisaremos de alguns dados de contêiner. Então, vou copiar isso. Vou fazer algo assim e depois vamos copiar isso aqui. Assim, você pode ver que temos alguns contêiner finais protegidos chamados dados. E então também temos para campos que são o progresso, o progresso máximo, o tempo de combustível e o tempo máximo de combustível. E antes de tudo, vamos atribuir isso dentro do construtor, também copiaremos isso sobre tudo o que aqui está, é claro, mais uma vez, disponível para você no repositório do GitHub ou em um individual também. E você pode ver que os dados do contêiner também são, nesse caso um método anônimo com a substituição do GET o conjunto e o método getCount. E estamos sempre retornando o progresso, o tempo máximo de combustível do progresso e o tempo máximo de combustível aqui. Porque esses quatro campos diferentes que queremos realmente sincronizar por meio do menu. É por isso que ele é chamado de dados do contêiner. O menu de contêiner basicamente sincronizará esses quatro campos para nós através do cliente e do servidor para que ambos tenham o mesmo valor. Por causa, claro, por exemplo, Southern, algo como o progresso e o progresso do Ymax. Bem, se você tiver os dois, podemos de repente mostrar uma seta de progresso. Se tivermos o tempo de combustível e o tempo máximo de campo, de repente podemos mostrar quanto combustível resta dentro do seu inventário, coisas assim. E é por isso que é tão incrivelmente importante ter isso. E isso é realmente bastante simples de usar quando você souber como usá-lo. Então o que vamos fazer é entrar na receita de vidro de cobalto. Vamos apenas adicionar os dados aqui. Então, esses dados, agora isso é claro que vai lançar um erro, certo? Então, temos que entrar no menu do blaster e podemos dizer: Ok, vamos mudar algumas coisas aqui. E o que estamos mudando não é o primeiro construtor, mas o segundo. Vamos adicionar os dados ou dados do contêiner aqui. E então este lançará um erro. E vamos dizer que não se preocupe. Porque o que podemos fazer é criar novos dados de contêiner simples com comprimento 4. Porque mais uma vez, é claro que este é o comprimento quatro. E então só vamos fazer é que também vamos fazer um campo privado para isso. Vamos usar isso em dois métodos mais tarde ou na verdade, acho que três dados de métodos, certo? E então vamos dizer abaixo desse nível, quando você vai dizer que esses dados de ponto são iguais aos dados. Bem, basicamente atribuindo isso e agora a maneira como vamos fazer isso, que isso também sincronize é que vamos dizer adicionar slot de dados. Então slots, na verdade, slots de dados. E então vamos passar os dados aqui. Mas é literalmente isso. Tudo o que precisamos fazer. Agora isso está sendo sincronizado. E então vamos ter quatro novos métodos em que nosso Ele está criando que tem método de combustível que obtém progresso dimensionado, e ele é dimensionado, você vai progredir. Agora, isso é apenas um monte de matemática basicamente em segundo plano é garantir que bem, ok, quanto progresso temos, nosso progresso máximo, máximo temos qual é a largura da seta neste caso, certo, que queremos exibir. E então estamos apenas nos certificando de que tudo isso seja calculado corretamente. Isso é basicamente tudo o que isso faz. No entanto. Você não deve se preocupar muito com isso. Tenho certeza de que você será capaz descobrir isso se você der uma olhada nele por um tempo sem palavras lá. Isso é, na verdade, todas as coisas que precisamos fazer no menu aqui. Agora, na verdade, precisamos fazer muito mais coisas na entidade de bloco 4. Estamos passando para a tela. Então, mais uma vez copiarei sobre um monte de coisas. Número um, precisamos adicionar coisas aos métodos de salvamento e carregamento. Porque o que queremos fazer é salvar o progresso do filtro Minimax lendo. Então, carregá-lo. Agora isso é, na verdade, vamos fazer nb t então e VT. VT e NVT, não se preocupe lá. Então eles vão. Então isso é, bem, coisas que queremos fazer definitivamente. Por causa, claro, quando carregamos do mundo, como quando salvamos um mundo, certo? E então, quando você se juntar de volta, bem, queremos que o tempo de combustível seja o mesmo, o progresso seja o mesmo, coisas assim. É por isso que o salvamos e depois o lemos novamente. Então essa é basicamente a ideia geral aqui. Então o que vamos fazer é que eu sou basicamente tudo , incluindo o método tick. Vou, bem, quero dizer copiar. Então isso vai ser muito código, mas vamos passar por método por método. Agora, eu não acredito que devemos ter flechas agora não temos. Então, número um, temos um método não estático e esse é o método consumir menos. Você pode ver que eu estou basicamente verificando, ei, eu tenho algo dentro do nosso slot de combustível? Porque mais uma vez, lembre-se do slot 0, certo? Como é o slot de combustível para nós? Então, se isso não estiver vazio, então vamos ter o tempo de queima dele. Estamos extraindo. Então, vamos extrair exatamente um desses itens. Vamos usar a fundição do tipo de receita. Porque, bem, para fundir basicamente todos os tempos de queima são fornecidos, poupando-o aqui. E então também estamos economizando o tempo máximo de combustível também. E se isso for feito, podemos encontrar um método de carrapato. Agora é toda nossa lógica. Agora, o que é toda essa loucura? Bem, antes de tudo, estamos perguntando, esta entidade do livro está consumindo poucos? Este é um método personalizado que eu fiz aqui. E isso é basicamente verifica se o tempo de combustível está ou não acima de 0 é claro, se o tempo de combustível estiver acima de 0, então sabemos que ainda estamos tendo algum tempo onde o combustível está passando. Certo, justo o suficiente. Então, enquanto esse for o caso, então o que vamos fazer é diminuir o tempo de combustível que resta lá, certo? Então, basicamente, vamos diminuir a chama que está sendo exibida e também quanto tempo restou basicamente. E mais uma vez, temos o método de receita has que agora mudou. Você pode ver este aqui é agora o método de receita tem. E isso funciona um pouco diferente. Então, basicamente, agora estamos recebendo a receita ou o tipo de receita hobo blaster com um inventário. Então, aqui estamos apenas fazendo inventário de símbolos que podemos facilmente ou mais facilmente basicamente passar, porque isso é, naturalmente, de tipo, inventário simples ou contêiner simples em vez de cima, estamos apenas passando tudo isso e estamos nos certificando, ei, faz isso, isso é, na verdade, está presente é uma correspondência para o inventário que passamos. Então, nossas coisas de GUI que estão lá, que correspondem a qualquer receita que seja do tipo receita de explosão de cobalto que é basicamente o que isso aqui rastreia. Se estiver presente, então teremos um verdadeiro aqui. E então procuramos outras duas coisas. Pode inserir quantidade no slot de saída e pode inserir o item no slot de saída. São apenas dois muito fáceis de entender. Métodos são basicamente apenas dizendo: Ei, pegue o terceiro item. Se for o mesmo o item de saída, vamos dizer, ok, ou se estiver vazio, também ficaremos bem porque podemos simplesmente colocar a saída. E então também este que basicamente já vimos , certo, pode inserir quantidade no slot de saída, basicamente apenas verifica, o tamanho Max Stack ainda é? Isso é maior do que a contagem real? É? Se, de repente, a contagem chegar exatamente ao tamanho da pilha máxima, não podemos mais inserir. Então, toda essa expressão booleana inteira fica falsa. Mas se ele tiver receita é verdade, vamos entrar nesta provação buraca e todo esse áudio. Bem, como muitas coisas que você pode ver tem combustível e combustível é solicitado antes de tudo, certo, então, se houver algum combustível no slot de combustível, será bastante autoexplicativo. E então, se não estamos consumindo combustível, temos que consumir combustível primeiro. E também definiremos a alteração aqui. Porque, mais uma vez, temos que definir alterado, caso contrário, os dados não o salvarão. Isso é muito importante. É por isso que o conjunto foi alterado três vezes nesse método, caso contrário, ele não funcionará corretamente. E então aqui, se estamos consumindo combustível, então isso mais uma vez, está apenas verificando, hey, estamos realmente consumindo combustível? Se estivermos, vamos, então podemos aumentar o progresso do item que está sendo criado. Mais uma vez, cada tick que estamos aumentando o progresso que estamos vendendo muda. Porque, mais uma vez, o empréstimo da mudança tem que ser o caso porque toda vez que aumentamos o progresso, queríamos salvar o progresso novamente. Então isso é muito importante. Então. Assim que o progresso estiver acima do progresso máximo aqui, vamos criar o item. Então isso é muito parecido. Mais uma vez, estamos apenas agora verificando se o progresso finalmente lá. E se for, então vamos criar o item. E você pode ver que a elaboração do item é muito semelhante. Ainda temos a partida aqui. Estamos vendo este presente? Se for, mais terá o seguinte. Vamos extrair o item do primeiro ponto. Vamos extrair o Adam do slot dois, e vamos definir a pilha no slot 3 para os resultados reais que lemos na receita. E então aumentá-lo basicamente por um neste caso. Então, neste caso, também o é codificado. É claro que você também pode adicionar sua variável de contagem de receitas personalizada. E então você poderia levar aquele lá ou algo assim. Então isso também funcionaria. E então também note aqui que recentemente foram o progresso aqui, que recentemente avançaram para 0. Porque, de outra forma, é claro, vamos continuamente depois de novo e de novo, o que, claro, não queremos. E também estamos recentemente o progresso se não tivermos nenhuma receita presente simplesmente por causa do fato de que, bem, mais uma vez, se tirarmos a receita e então todo o progresso ficaria lá. Isso não é exatamente o que queremos. E também definindo a mudança lá também, certo? Então, é bastante. Eu recomendo passar por isso no seu próprio tempo também. Dando uma olhada nisso, o método de carrapato aqui é definitivamente, eu sinto que, pessoalmente, é um método muito bem feito neste caso, certo? É um código muito, muito limpo. Quero dizer, pelo menos tão alto quanto eu consegui que fosse quase lida como se você pudesse ler uma taxa de texto é como Ok. Como receita nesta entidade tem combustível e sal de combustível e não está consumindo combustível. Este, você pode até mesmo estar mudando a nota aqui também e, em seguida, ter um campo não está consumindo assim. Então é um pouco mais fácil de ler, mas esta é uma boa ideia e um bom exemplo de como você pode basicamente configurar algo e que é capaz de ler foi, claro, todos esses coisas, certo? Eu poderia colocar tudo isso aqui em vez do método de receita, eu poderia colocar este, eu poderia colocar isso aqui, essa expressão booleana. Posso colocar isso aqui. Em vez de ter a quantidade de pode inserir no slot de saída, eu poderia colocar isso lá. Mas a questão é que se você der uma olhada nisso, vai levar pelo menos como uns bons cinco segundos para ser como, como isso está fazendo? Ok, vamos pegar o item do slot 3 e certificar-se de que é exatamente o mesmo que o externo e ou certificando-se de que o item está esgoto vazio basicamente verificando se podemos ou não inserir agora no slot de saída, ok? Mas você pode ver que faz muito mais sentido descrevê-lo em um método muito bem nomeado em vez de apenas colocá-lo lá. Então, isso é apenas um lado rápido para um pouco de material de programação limpo, coisas código limpo, mas isso é praticamente toda a entidade de bloco feita. Então isso agora funcionaria. Agora, a última coisa que precisamos fazer é adicionar coisas à tela. Agora, isso eu também vou copiar e vou explicar, isso vai ser, bem, suportar comigo aqui. Então você pode ver, eu estou basicamente perguntando ao menu, Ei, nosso recrafting, este é o método que tínhamos aqui, certo? E então tem poucos métodos devem ser bastante autoexplicativos. Esses são os métodos basicamente obtendo dos dados e, em seguida, apenas certificando-se de que, ei, o progresso da criação está aumentando ou é mais de 0? E então aqui o combustível não é superior a 0 também. Mas essa é a ideia geral aqui. E então, uma vez que a qualidade blitz aqui, e então estamos entrando em algumas coisas loucas porque agora, de repente, temos alguns valores loucos Bem aqui temos x mais 8422, o deslocamento. O que é, o que é toda essa loucura? Certo, vamos passar por esse pedaço por peça. Portanto, temos um valor x e y. Agora, o valor x e y determinaram onde você começa a desenhar alguma coisa. Então, o que isso significa? O que quer dizer com onde começamos a desenhar alguma coisa? Bem, x e y neste caso, basicamente sempre seja o canto superior esquerdo da GUI. Vá aqui. E então, se pensarmos sobre isso, mas 84 para a direita e 22 para baixo, vamos 84 para a direita e 22 para baixo e depois acabamos aqui. Agora eu só sei disso no momento. Mais uma vez, você precisa pegar photoshop, Paint.NET e se certificar de que você se alinha. Isso basicamente contará os pixels. Não há outra maneira de contornar isso, mas começamos a desenhar aqui. Certo, o que devemos desenhar? Bem, devemos desenhar essa flecha. Certo, isso é interessante. Como desenhamos isso? Bem, em primeiro lugar, o deslocamento agora é o que estamos querendo desenhar? Então, queremos desenhar começando aqui mal, ok? Fizemos isso. Qual é o deslocamento? O deslocamento que você pode ver é um 17614 para um 176 é realmente aqui, e 14 está aqui, no entanto. Agora ele meio que vem junto, certo? Queremos desenhar essa seta começando aqui. Certo, isso faz sentido. Agora, quais são os dois últimos valores para os dois últimos valores é a altura e a largura da imagem que queremos desenhar. Outra coisa realmente legal vem, porque estamos fazendo o progresso da escala aqui. O que acontece é que, à medida que isso aumenta o, aumentamos a largura dessa seta que está sendo desenhada. Então essa é a coisa muito legal. Então, se eu pudesse colocar em 2006 e , em seguida, toda a área estaria sempre presente. Mas como estamos sincronizando com o progresso da escala aqui, a largura que está sendo mostrada aumenta. Essa é a ideia geral. Eu recomendo mais uma vez, brincando com os números aqui, porque caso contrário, os velhos de sangue são muito complicados de realmente entender em algum momento, eu ainda tenho que brincar com eles um um pouco. É apenas o que é. E então, para o combustível, admito que basicamente acabei de tirar o material de combustível do forno real porque você tem que adicionar o progresso máximo do campo aqui e depois subtrair sua balança progride três vezes, uma vez para a altura, o que deve fazer sentido, certo? Porque agora estamos basicamente subtraindo a altura aqui, estamos basicamente dizendo que estamos, estamos começando aqui e depois subtraindo lá em baixo, coisas assim. É apenas loucura. Eu só recomendo muito. Mais uma vez, dando uma olhada aqui, você pode definitivamente dar uma olhada em exemplos de baunilha disso. Caso contrário, trata-se apenas de experimentação. Então, ainda precisamos de uma receita. Então, em nossa pasta de dados, receitas do curso MC, vou copiar sobre a picareta cobol do cobalto blaster. E você pode ver o que isso faz é basicamente nós temos dois ingredientes, são tipo é MC course cobol plástico, e temos a picareta de ouro e o cobalto em boas condições. E temos que colocar, nesta ordem, e então a saída será um porco de cobalto. Então, isso realmente soa bem legal. E como eu disse, agora você pode fazer quantas receitas diferentes quiser. Uma das limitações, digamos que com isso é que Bem, sempre vai levar o mesmo tempo. Bem, você pode, é claro que também fazer é adicionar o progresso máximo ao arquivo JSON. Você só precisa mudar o serializador um pouco e , basicamente, adicionar isso também. Tudo isso funciona. Isso é apenas uma questão de, basicamente, bem ajustar as coisas um pouco e mudar algumas coisas ao redor. Mas agora vamos ver se funciona ou nos encontra no Minecraft. Então, vamos primeiro definir o vidro de cobalto real ou para baixo e tudo parece ainda estar funcionando. Ainda podemos colocar um pouco. Vamos agora ver a escolha de ouro X no topo e depois um cobalto Inglaterra na parte inferior. E lá vamos nós. O progresso começou. Agora criamos um machado picareta que é muito legal. E o que você será capaz de ver é que se eu colocar outro, nada acontecerá porque, claro, vamos escolher eixos não empilhar. Portanto, eu tenho que tirar isso e só então vamos criar novamente. Você pode ver que o combustível é, vamos constantemente cair. Então, está constantemente assumindo o combustível. E o que você também será capaz ver é que se eu, por exemplo, agora sair do mundo novamente e eu voltar, você verá que o combustível realmente permaneceu o mesmo nível como faria com, por exemplo, um bloco ou um forno ou algo assim. Então isso é muito legal. Então eu posso dar uma olhada e lá vai você. Um combustível progredirá é o mesmo. E, mais uma vez, agora posso simplesmente colocar isso porque ainda temos combustível sobrando e ainda seremos capazes de criá-los o tempo que quisermos. E os fígados do curso também funcionariam a propósito, tudo aqui funcionando exatamente como gostaríamos. E agora isso, você tem que admitir que é muito legal, não é? Então, mais uma vez, isso começa a ficar muito avançado. Então eu recomendo, mais uma vez, tomar nosso tempo com isso, os dois métodos, certo, com a entidade de bloco e a serialização da receita do cliente aqui é um pouco. Mas, além de algumas outras coisas, esta é provavelmente uma das coisas mais complexas que realmente podemos fazer. Quero dizer, a geração mundial, eu diria, provavelmente é um pouco mais complicada só porque às vezes pode ser assim. Mas, no geral, acho que isso é muito legal. Você tem um bom exemplo aqui. Leia todo o código mais uma vez disponível para você no repositório do GitHub e para um indivíduo também. Então, dê uma olhada, copia a si mesmo, brinque com os números um pouco. E espero que você possa ter uma ideia de como tudo isso funciona, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo e eu te vejo na próxima palestra. Então, sim. 90. Madeira personalizada (Advanced) (de madeira: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos adicionar madeira personalizada ao Minecraft. Portanto, mesmo que este seja um tópico avançado, definitivamente será um pouco mais fácil do que as entidades de bloco e a serialização de receitas do cliente. Então pensei que basicamente vamos adicionar uma ou duas palestras pouco mais fáceis aqui antes de saltarmos para a geração mundial, porque isso a geração mundial, porque isso vai ser um todo, outro animal. Então, para o nosso costume, precisamos de uma classe de bloco personalizado na verdade, então, em nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java chamada mod lambda irá girar o bloco Hitler, um nome longo, mas isso o que vai ser e isso vai estender a classe de bloco de pilares girados. E vamos passar o mouse sobre esse construtor de concreto que combina super nos irrita. Podemos clicar nele, pressionar Shift F6 e, em seguida, cujas propriedades aqui para o nome. E vou copiar os três métodos que precisamos substituir. Ou seja, o método is inflamável é retornado verdadeiro. Eles têm necessidade de inflamabilidade para retornar cinco e eles se espalham fogo. Ele também precisa retornar cinco. Agora, por que estamos fazendo isso? Bem, porque todos os blocos de pilares girados que temos, basicamente vamos ser a madeira, a tira seria o tronco e o tronco da tira. Todos eles estão bem, eles devem ser inflamáveis. No entanto, por padrão, eles não são. Não tenho 100% de certeza por que esse é o caso. E também poderíamos fazer aulas anônimas para cada uma delas, mas isso só vai desordenar a totalidade da nossa classe mais blocos. Então, para esses, eu escolho basicamente, bem, o que isso em uma classe de bloco ou ambas as tábuas. E depois, em uma palestra posterior, as folhas, vamos realmente fazer isso em aulas anônimas. Mas vamos ver isso em apenas um momento em que nossa classe de blocos de motor, vamos lá, vamos copiar sobre o blaster cobol. E vamos fazer isso o log de sublinhado de flor de sublinhado de cereja . E então a mesma coisa, leia seu log de sublinhado de flor de cerejeira. E então este é um bloco de pilar girado MOD ou mais inflamável . Eles atrás, este realmente copiará não um material, mas um bloco. Então isso vai ser blocos ponto OK, logs de sublinhado, então registre que você vá. E então teremos oclusão aqui e o resto vai ficar bem. Então, isso é praticamente o que precisamos. E então precisamos copiar isso quatro vezes para que tenhamos cinco instâncias diferentes aqui. O segundo será que a flor de cerejeira iria e, em seguida, aqui no nome também, é muito importante que você mude os nomes. E então aqui, basicamente, copiamos da madeira de carvalho em vez do glog. Isso não deveria fazer muita diferença, mas eu sou só, você sabe, eu ainda gosto de fazer isso. Então, temos a tira sublinhada log de flor de cerejeira. Então, esta será a faixa sob o bloqueio do botão do switcher. E então aqui, isso é claro que também será copiado do roteiro. Ok, deve aplaudir o ego. E então esta será a estrita flor de cerejeira sublinhada, sublinhado madeira. E isso também é claro, despojado Cherry Blossom, eles fariam atrás. E então, por último, mas não menos importante aqui, ele copia da madeira de carvalho despojado. Agora este aqui é apenas tábuas de flor de cerejeira. Agora é importante que sejam tábuas em liberal. E esse é qual bloco pode ser esse? Bem, se não houver nenhum bloco normal na verdade. E então o que vamos fazer é formatar isso um pouco diferente. E isso vai , claro, pegar os blocos de tábuas de aviões. E depois do segundo parâmetro, na verdade, o que as mulheres fazem é que queremos colocar um suporte encaracolado e, em seguida, basta apertar enter. Vou copiá-lo novamente. Então, esses são apenas os três métodos que vamos precisar de um escaneável, obter inflamabilidade e propagação de fogo. E veja que os números aqui, somos um pouco diferentes. Portanto, esse também é um dos motivos pelos quais não podemos usar esse bloco. Este foi outro que vamos ver em apenas um momento. Essa é a ideia geral. E então todos os nossos blocos estão realmente registrados. Então isso é muito legal. Tudo considerado, certo, vamos adicionar mais um método ao bloco de pilares girado inflamável MOD. E isso vai ser este aqui. Então, eu só vou carregar isso. Isso é claro, tudo disponível para você no repositório do GitHub e para um indivíduo também. E esta é a boa ferramenta, método de estado modificado. Então, basicamente, a ideia é que estamos verificando se isso foi ou não clicado com o botão direito com um machado. Se fosse, então o que vamos fazer é basicamente vamos dizer, ei, se este é um registro de flor de cerejeira, vamos transformar isso em um blog de strip. Caso contrário, se for uma perda, então vamos transformá-lo em madeira de flor de cerejeira. Essa é a ideia geral aqui. E então estamos apenas nos certificando de que o eixo permaneça o mesmo neste momento, não podemos, não vamos apenas fazer o estado de bloco padrão e também enviar o acesso real também. Essa é a essência geral aqui. Se você tiver muitos registros diferentes, então, em teoria, também sempre teria que adicionar essas instruções if. Você também pode fazer isso como no item ACS. Então, se você realmente milimoles por clique neste acidente, você pode ver que há um bloco para bloquear o mapa aqui. Eu recomendo que você faça algo assim também. Se você tem uma quantidade insana de blocos diferentes, registros e basicamente você gostaria de ter despojado Isso faz muito sentido. Caso contrário, isso será totalmente viável agora para a parte favorita de todos dos arquivos JSON. Eles estão mais uma vez, é claro, todos disponíveis para você no repositório de laboratório ou em um indivíduo também. Só vou copiá-los. Agora, no geral, eles não são tão interessantes. Claro, para todos os blocos de filtro girados, temos um eixo aqui como você pode ver. E então, basicamente, apenas aponta para modelos diferentes e gira o bloco ao redor. Isso é tudo o que há para isso. Na verdade, são todas as coisas interessantes ali mesmo. E vamos também adicionar a tradução porque senão eu possivelmente esquecerei, o que, claro, não queremos aqui. Apenas adicionando esses logs, as tábuas também seriam as variantes do script. Os modelos para os blocos são, bem, um pouco, enquanto, há mais alguns, eles não são muitos. Temos a madeira, a palavra normal, as despojadas também. Então, vamos copiá-los também para a pasta de blocos. Sete deles no total. Eles basicamente têm pais diferentes, mas sempre têm as mesmas texturas. Então, no final, esta é apenas a parte superior do bloco real para o log. E então os lados são basicamente a casca ao redor dele. Para os modelos de itens, temos apenas cinco modelos de itens, é claro. Eles são e são exatamente como as coisas mais básicas de todos os tempos. Então, todos eles se parecem com esse estado, todos apontam o arquivo de modelo de bloco normal. E então, claro, por último, mas não menos importante, as texturas também. Lá vai você. Essas também são cinco texturas. E depois de adicionarmos tudo isso, há mais uma coisa interessante que queremos adicionar. E isso será se você na pasta Minecraft, tags, blocos, e então eu vou simplesmente copiar isso. Estes são os registros e os registros que gravam. Na verdade, veremos que teríamos que adicionar outro aqui. Como você pode ver, isso realmente aponta para a tag de logs de flor de cerejeira do curso. E também queremos adicionar uma tag personalizada aqui. Então, esses serão os blogs de flor de cerejeira também copiam isso. Neste ponto, vimos isso muitas vezes. E eu só quero adicionar basicamente todos os nossos registros lá. Esta é a palavra e as variantes descritivas também. Se você adicioná-lo aos troncos dessa queima, isso basicamente permitirá que você coloque isso dentro da ranhura de combustível do forno também para que eles possam basicamente queimar. E essa é a ideia geral aqui. E nos logs, quando precisamos, se adicionarmos as folhas mais tarde, então o contrato de arrendamento não decairá quando estiverem perto de qualquer um desses blocos, e isso é praticamente tudo o que precisamos fazer. Então, vamos ver se funciona. Ou na França como um microondas pode ver toda a madeira foi adicionada com sucesso ao jogo e parece absolutamente incrível. Então você pode ver, eu posso configurá-lo e vamos ver essas variantes também. Lá vai você. E, e também os troncos, em vez das tábuas, eu acho. Então, se eu clicar com o botão direito do mouse nestes, então você pode ver que posso obter a variação da tira também. Então, tudo está funcionando exatamente como você pensaria que acabaria como pretendido, certo? Isso já é para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 91. (Placa personalizada (avançada) sinal (Advanced): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar sinais personalizados ao Minecraft. o sinal personalizado é, bem, ele tem algumas peculiaridades nele que, mas vamos basicamente pegar, dar uma olhada agora. Então, para sinais personalizados, mas vamos precisar , em primeiro lugar, de uma entidade de bloco de sinais. Então, em nosso pacote de entidades, clique com o botão direito do mouse em nova classe Java chamada entidade de bloco de sinal de modo E isso se estenderá. A entidade de bloco de sinal passará o mouse sobre esse super de correspondência de construtor de criação e, em seguida, substituiremos o método getter. Então aqui podemos colocar algo ainda. Então, vou cometer um erro aqui para que tenhamos isso. Então vamos precisar dos blocos para isso. Vamos precisar de dois quarteirões aqui. Além disso, você precisa criar classes de blocos personalizadas. Isso às vezes pode ser muito chato para o signo. Não sei por que é tão bem, complexo de fazer, mas é exatamente como vai ser. Este vai ser um bloco de sinais em pé. Então o lóbulo lateral Mott estende este. Vamos deixar isso como está. E aqui, na verdade, só queremos substituir uma coisa e esse será o novo método de entidade de bloco. Então aqui o que vamos fazer é fazer uma nova entidade de bloco de sinal de modo com a posição, o estado e o estado que eles atrás. Isso vai ficar bem. E então vamos fazer outra classe que é o bloco MOD ALL IN, que estende o bloco de placas de parede. Eles atrás também criam construtor combinando super. Também copiaremos esse método. Mais uma vez, é claro, todo o código estará disponível para você no repositório do GitHub e para um indivíduo também. Porque agora eu realmente farei um pecado cardeal e copiarei sobre a coisa que precisamos na classe de blocos de lama. E você verá que precisaremos uma classe mod Wood Types também porque, como eu disse, eu não sei o porquê, mas é absolutamente louco, mas não se preocupe, vamos superar isso. Então mod digitaria, e isso terá um campo estático. Então, tipo estático público ou flor de cerejeira. E isso é igual a digitar. Essa taxa. Sherry sublinha a flor. O ego. Isso é tudo o que precisamos colocar aqui e depois aqui. E então, nos blocos de lama, isso também deve funcionar. Então, agora os blocos funcionam. Então, agora o que podemos fazer nas entidades de bloqueio de modo, eu posso realmente copiar isso. Isso é praticamente o mesmo que isso. Como você pode ver, temos apenas o ano da entidade bloco de sinal mod após a entidade protetor solar. Se você tiver vários sinais diferentes, o que você precisa fazer é que você não precisa alterar esses blocos. Você só precisa adicionar para considerar dois blocos aqui e você pode adicionar quantos quiser. Então, basicamente, basta adicionar mais blocos aqui e então deve, em teoria, funcionar o mesmo com este. Então, agora aqui vamos dizer entidades mod block, entidade dot get. E então isso também deve ser bom para outro cliente assinar basicamente o novo tipo de madeira para novos blocos aqui. E o que você verá é que esses blocos que se registram em vez do método do bloco de registro, porque temos que ter um item separado para que isso seja os itens de sinal. Na verdade, também copiarei isso mais uma vez, tudo isso está disponível para você no repositório do GitHub e um interatrial também. Isso vai ser isso aqui. Então, vamos apenas tirar a durabilidade e vamos realmente empilhar para 16 como qualquer outra linha seria. Além disso, você pode ver que o item de sinal aqui realmente exige que você coloque o seno e o sinal da parede também. Então isso é outra coisa importante aqui. E além disso, também temos mais uma coisa eram mais algumas coisas dentro do curso MC, massa. Então, na parte inferior aqui, precisamos chamar que tipo importante registro de pontos de classe, modo tipos ponto Cherry Blossom. Precisamos registrar esse método de configuração inclinado. E então, no método de configuração normal, precisamos fazer duas coisas. Portanto, o número um é o renderizador de entidade de bloco. Renderizadores muito importantes. Modo de registro, bloqueie entidades. Agora assine o ponto da entidade do bloco get e, em seguida, o renderizador de sinal aqui, dois pontos, dois pontos novos. Então, abaixo disso, queremos chamar folhas dot add iria digitar, mod, mod digitaria estrela, flor de cerejeira, eles vão. E isso deve finalmente ser tudo o que precisamos em termos do código. É claro que ainda precisamos dos arquivos JSON. E quando se trata dos dias, e para nós, na verdade, precisávamos dos arquivos JSON para os estados de bloco também para garantir que você tenha isso. E então o mesmo vale para a tradução. Então, vamos apenas adicionar isso. Temos a tradução para o sinal. E então vamos apenas adicionar os modelos de blocos também. pilares são, na verdade, um tipo de interessante. Então, na verdade, há apenas um modelo de bloco porque ambos apontam para o mesmo porque esse modelo de bloco só tem partículas definidas, essas são as partículas que serão vistas em quando você destrói o sinal real. Enquanto o modelo de item de sinal de flor de cerejeira se parece com isso. Então, simplesmente aponta para uma textura de item é claro, mais uma vez na textura do item será, bem o mesmo e temos o mesmo item para dois blocos diferentes. Neste caso, vamos ter um sinal normal de flor de cerejeira aqui. Essa é a textura do item. Lá vai você. E isso é tudo o que vamos precisar. Então, mais uma vez, tudo isso está, claro , disponível para você, porque mais uma vez , é um exercício muito circular e pode ser meio irritante. Então descobri que os sinais eram meio intrigantes em sua complexidade. Ou o que você pode basicamente no final fazer com ele. Você realmente vai precisar de mais uma textura. E essa será a textura real como a cereja no fundo. E isso tem que estar sob o namespace Minecraft novamente, então ativos, texturas do Minecraft. Em seguida, em vez da pasta da entidade, precisaremos da pasta de sinais. E então, dentro de lá, a flor de cerejeira PNG. E agora depois de ter adicionado tudo isso, vamos ver se funciona. Ou na França, como microlente, vemos que o bloco foi adicionado. Agora não temos a tradução correta, mas é claro que é muito fácil de corrigir. Vamos defini-lo e podemos escrever algo. Então, por exemplo, palavra muito boa, cavalo e feito e fica lá. E também podemos colocá-lo em uma parede aqui. Como você pode ver, tudo funciona bem, exatamente como você esperaria. E eu também acabei de corrigir a tradução aqui. Então agora tudo deve funcionar para o arquivo que já o possui para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 92. (Gen) Criação de uma árvore personalizada: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar uma árvore personalizada à micro árvore acostumada. Bem, espere um segundo. Já adicionamos o costume escreveria em nossa classe de blocos de modelo, podemos ver que algumas tábuas teriam os logs, mas quase tudo o que já temos. Bem, o que não temos? Não temos um rebento e não temos folhas. Tudo bem, então o que vamos fazer é copiar sobre a flor de cerejeira uma prancha uma vez. E então eu também vou copiar sobre o script seria aqui. Vamos precisar de um para as folhas sublinhadas da flor de cerejeira e depois sair aqui no nome também. Claro, eles atrás, isso vai ser um bloco de folhas. Eles vão e então isso vai copiar as folhas de carvalho. E a inflamabilidade disso na verdade será 60 e a propagação do fogo será 30. Porque as folhas são incrivelmente inflamáveis. E agora vamos dar uma olhada no rebento Cherry Blossom na parte inferior aqui. Então isso é amostragem. E então o mesmo com o nome, claro, também, mudando isso para flor de cerejeira sublinhado rebento. Este será um bloco de mudas que lançará um erro porque precisamos dar a ele, como você pode ver, um produtor de árvores abstrato e aquela classe que criaremos agora. E isso entrará em nosso pacote de cursos MC, clique com o botão direito do mouse em novo pacote chamado world. E começamos a nos aventurar na geração mundial dentro de seu novo pacote chamado eater. E então, dentro de lá, vamos fazer outro pacote chamado árvore. E lá vou colocar a árvore crescer nesta nova classe Java chamada cultivador de cerejeira, que estenderá a árvore abstrata. O Grow passará o mouse sobre esses Métodos porque precisamos implementar o método de recurso get configurado. E quero dizer, isso é praticamente tudo o que precisamos fazer. Agora, mais uma vez cometerei um erro propositalmente aqui para que não me esqueça de passá-lo neste método porque ainda não criamos o recurso configurado de que precisamos. Mas o que podemos fazer é que já podemos fazer uma nova linha de árvore de cerejeira para que aqui tudo esteja bem e a classe mais blocos esteja praticamente feita. Agora, tanto para o rebento quanto para as folhas que precisamos dentro da aula de curso MC no método do cliente, vou copiar sobre a explosão ou cortar aqui e vamos dizer folhas e também vamos dizem o rebento que eles atrás que nós dois temos as folhas e o rebento na camada de renderização recorte, é claro. E, em primeiro lugar , continuaremos terminando os blocos aqui. Então, vamos apenas copiar sobre a folha e o bloco de rebentos, Jason. Agora, é claro, todos estão disponíveis para você no repositório do GitHub e para um indivíduo também. Mas você pode ver, na verdade, os estados de bloco, muito chatos, apenas estados normais do Bloco basicamente. E então, quando se trata da alquilação, praticamente a mesma coisa. Folhas e folhas pequenas aqui também. Então, claro, atraente e desconcertante. Lá vai você. Também há para bloquear arquivos JSON modelo. Claro, as folhas mais uma vez são bastante chatas, enquanto o rebento é um pouco mais interessante, tem um pai cruzado e uma textura cruzada para a qual ele aponta. Praticamente tudo o que há para isso. O modelo do item também é um pouco mais interessante, pelo menos para o rebento. Mais uma vez, o rebento, como você pode ver agora, procura um extra na pasta de blocos em vez da pasta do item, mas as folhas são apenas arquivos JSON modais de item normais, como você os viu muitas vezes agora para blocos diferentes basicamente. E então vamos copiar as texturas aqui também, basta tê-las. E então esses seriam praticamente todos os arquivos JSON que precisamos fazer e agora podemos continuar em nosso pacote mundial. Embora a razão pela qual temos um pacote mundial porque as árvores quando você as gera, elas são como uma interseção muito estranha de estarem um pouco já na geração mundial. Então, quando a árvore surge do rebento, é um pouco da geração mundial. É assim que vai ser. Portanto, no pacote de recursos desta vez, clique com o botão direito do mouse em nova classe Java chamada mod configurada entre si. E este vai ser nosso bem, são melhores amigos por assim dizer. Como inibidor, vamos ter a árvore real definida. Agora vou copiar a definição real da árvore e explicarei à medida que avançarmos. Então você pode ver que isso é um monte de coisas, certo? O número um que quero dizer é que quando se trata da geração mundial, pode ser muito complicado. Ok, então há muitas partes móveis na coisa toda da geração mundial. Vou tentar explicar tudo melhor da minha habilidade. No entanto, se você quer algo que é muito, muito, muito particular, como você quer que você goste, eu não sei, como o seu apareça exatamente aos 35 e você quer exatamente esses muitos. Vai haver muitas coisas que você tem que ajustar, mas não se preocupe. Tenho certeza que vamos passar por isso. Ou agora, a cerejeira bem aqui. Você pode ver que estamos chamando recursos utils dot register, registros de leitura, basicamente esse recurso configurado. E então estamos passando uma Árvore de Recursos configurada. Portanto, um recurso configurado do tipo Configuração de árvore. Estamos passando a configuração de árvore com um construtor aqui. E então vem a pergunta: quais são todas essas coisas diferentes? Bem, pense nisso. Bem, um bloco diz provedor simples. O primeiro é o provedor de log, o que significa que basicamente temos que fornecer um log específico que seja o tronco real dessa árvore. Como esse trunfo é colocado? Bem, estamos imprimindo um novo placer de tronco reto. Se eu botão do meio do mouse, clique nisso, você pode ver que isso estende o lugar do tronco da classe dela. E se eu pressionar Control H sobre isso, considere diferentes classes de placer de tronco, o que significa que, em teoria, você também pode criar as suas próprias. É claro que, mais uma vez, é algo que é definitivamente mais complicado, mais complexo aqui. Então, é claro, tudo funcionando. Você poderia, claro, fazê-lo. No entanto, lá. Agora estamos apenas, neste momento, nem se trata de, oh, você tem que ter conhecimento Java neste momento. Vamos de Java intermediário para avançado um pouco. A criação de placers de tronco de primo e placers de folhagem personalizados envolve basicamente muita matemática também. Portanto, tenha isso em mente. Em seguida, o segundo estado de bloco fornecido aqui, o terceiro parâmetro são as folhas, e essas são colocadas, mas dependendo dos placers de folhagem, mais uma vez, clique no botão do meio do mouse na folhagem placer e você pode ver que existem diferentes tipos de placers de folhagem. É assim que o bem real, as folhas são colocadas para baixo. E isso é praticamente tudo o que há para ele. E bem, então o último aqui é o tamanho da feição de duas camadas. O que é isso? Bem, eu não tenho 100% de certeza. Então isso basicamente limita onde isso pode ser colocado. Essa é a ideia geral. No entanto, no entanto, algumas coisas na totalidade do, digamos que as gerações ainda me iludem também. Portanto, não se preocupe lá. Seja qual for o caso , este é agora o recurso que deve ser devolvido aqui mesmo nos produtores de Cherry Blossom Tree iam dizer mod configure recurso a cada flor três, e isso deveria praticamente seja isso. Agora, por mais louco que pareça, deveria ser isso, está feito. E agora a árvore já surgiu de um rebento. Eles são importantes, não vai surgir no mundo ainda. Nós vamos fazer isso nesta palestra que ela aparece do Sapling para que possamos fazer uma identificação de farinha de ossos ou crescer a partir de um rebento natural. Então eu diria, vamos ver For works, ou nos encontramos em microvesículas. Veja as mudas de flor de cerejeira foram bem adicionadas ao jogo. Então, vamos ver se consigo gerá-los com um rebento. E aí está, se eu farinha de ossos funciona. Agora, as perguntas reais, acho que isso é um pouco colocado um pouco de perto. E também se você ouvir exatamente, Você realmente tem que mudar o material por um segundo. Isso ainda está usando o material I acho que a prancha. Então isso, claro, não está certo . Vamos fazer o seguinte. Vamos fazer uma regra de jogo, velocidade de tick aleatória, e vamos apenas aumentá-la. E vamos ver se isso cresce sozinho. Mas parece que a muda não está crescendo sozinha. Isso provavelmente tem a ver com o material real que é esse como cópia. Então, vamos consertar isso rapidamente. Qualquer supervisão aqui, como você pode ver, bloqueie propriedades comportamentais, copie blocos removidos, OK. Não, isso tem que ser rebento de carvalho. Em seguida, ele toma todas as propriedades do rebento de carvalho. E a única coisa que ele precisa é desta aqui, tiques aleatórios. Caso contrário, não vai demorar aleatoriamente. Então eles vão e, bem, se adicionamos isso do que apenas por causa da conclusão, vamos ver se cresce ou se acaba de volta no Minecraft. E vamos ver se podemos liberar a velocidade do tiquetaque. Vamos ver, o que cresce, vamos. Então, tudo funciona exatamente como você esperaria que as mudas cresçam naturalmente também corram. E o que é muito importante é que a última palestra ou duas palestras atrás, quando adicionamos os logs, certo, esses aqui, os troncos de flor de cerejeira, era muito importante que adicionássemos para as tags de bloco também. Então as tags para os logs aqui, e estamos basicamente referenciando os logs de flor de cerejeira, que é uma tag que temos em nosso curso MC, Oda. E aqui mesmo os blocos de flor de cerejeira, muito importante que isso esteja aqui, porque se você não tiver isso, então as folhas decairão automaticamente. Mesmo se eles estiverem ao lado do registro. O registro precisa estar nessa tag. Caso contrário, ele não funcionará na tag logs. Muito importante. Mas, de outra forma, já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Ah, sim. 93. (Gen) Geração de árvores personalizadas (de de mundo): Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar geração de árvores personalizadas ao Minecraft. Então, adicionamos a árvore do rebento. Agora a questão é como o FREC, vamos colocá-lo no mundo? Bem, na verdade, não é tão louco. Primeiro de tudo, vamos entrar em nossa classe de recursos configurados por mod está bem aqui. Vamos precisar de um novo recurso configurado. Agora, o que é muito importante é o seguinte. Podemos realmente dar uma olhada em alguns exemplos de regeneração em baunilha. Altamente, recomendo dar uma olhada nisso. Mas o que podemos fazer, por exemplo, na classe de recursos, podemos entrar na classe de recursos e podemos dar uma olhada em todos os recursos. E os recursos que você não é tão interessante. O que é interessante é, por exemplo, onde está o recurso de árvore usado que nosso botão do meio do mouse clique nisso, então você pode ver que ele é usado na classe de recursos de árvore. Muito interessante. E você pode ver lá, há um monte de lugares basicamente onde isso foi usado. Por exemplo, vamos apenas ir aqui para o OK, e você pode ver que este é um registro de recursos utils. Parece muito parecido com o que fizemos aqui. E isso é praticamente exatamente o que fizemos. Portanto, este tem um método especializado aqui neste caso, ou todos os recursos que ele usa. Mas o que, isso é exatamente o que temos aqui. Agora, podemos usar isso? Onde isso é usado agora? Bem, eu sou, se eu clicar no meio do mouse mais uma vez, você pode ver que isso é usado, por exemplo, nos posicionamentos da árvore. E esta é a AUC verificada. Isso é exatamente o que precisamos basicamente implementar agora. Bem, se eu entrar nisso aqui, o que você pode ver é que isso é de repente que é um recurso que é fascinante, não é? O que foi feito é que foi, geração mundial se separou um pouco que agora você colocou recursos e recursos configurados. E você pode ver que esse recurso de lugar neste caso realmente usa os recursos da árvore OK, filtrar por sorte, sobrevivência e, em seguida, o rebento de carvalho. Mas o que isso significa exatamente? A ideia geral aqui é que basicamente, verificar esse recurso de lugar só pode ser colocado em blocos específicos onde o rebento de carvalho também poderia sobreviver. Isso é realmente uma coisa muito frequente e legal de se fazer. E então, onde isso é usado? Bem, isso é mais uma vez usado nas características vegetais aqui. Portanto, este é muito longo neste caso. Mas isso é apenas em teoria. Você pode ver que isso é de repente outro recurso configurado. Por exemplo, vamos pegar um que não seja muito longo aqui. São todos bem longos. Vamos pegar as árvores de prados e então eu posso clicar no botão do meio do mouse sobre isso e então você tem outro recurso policial. Então basicamente de onde estamos indo é que vamos das árvores em específico, vamos passar do recurso configurado para um recurso de local para configurar o recurso para um recurso colocado. Porque eu coloquei o recurso tem que ser, tem que estar no mundo, certo? Não pode ser, você não pode ter que não seja no mundo. Basicamente, eu fiz isso um pouco diferente. Eu recortei esse recurso de lugar e basicamente o fiz para que passássemos desse recurso configurado para outro recurso configurado, depois indo para o recurso de lugar, isso não é 100% certo, mas está quase certo. Então, nos recursos configurados por MOD, copiarei mais uma vez isso e explicarei o que fiz basicamente. Então você pode ver que esta é a árvore de cerejeira verificada. E você pode ver que o que ele faz é também filtrar por um bloco de sobrevivência. Você pode ver que a ideia geral é que esse recurso configurado agora, bem, vai levar, você sabe, ele tem 10% de chance de tomar esse recurso e tentativa de lugar e 90 porcentagem de chance de assumir esse recurso de lugar obviamente, sempre será o mesmo recurso. Então, isso é um pouco de um hack. Provavelmente não é a maneira mais limpa de fazer isso, mas essa é a maneira que eu encontrei sem ter que adicionar outro recurso de lugar além de um recurso Configurar e outro recurso de lugar e assim por diante, e assim por diante, porque ele tende a ficar muito complicado. No entanto, você sempre pode seguir o modelo de baunilha, também é altamente recomendável. Você tem que dar uma olhada na geração mundial. Você tem que dar uma olhada nas aulas, certo? Eles também podem entrar no pacote do meio do mouse, clicar nisso e você pode ver todos os recursos aqui. Podemos ir para o posicionamento, podemos entrar no pacote de posicionamento. Você pode ver todas as colocações aqui. Podemos entrar na geração para as características vegetais. Mais uma vez, nos recursos, podemos ir para as colocações. Isso também deve estar no posicionamento está certo. Temos tudo isso disponível para você. Você tem que dar uma olhada nisso, agora a geração do mundo realmente se torna riquenha complicada em certos pontos. E você só precisa, bem, dar uma olhada nos exemplos de baunilha. Este é provavelmente um dos melhores recursos que você tem e está tudo bem lá, seja qual for o caso, agora temos o recurso configurado. No entanto, ainda precisamos de um recurso de lugar, sobrepondo o pacote de recursos botão direito do mouse em nova classe Java chamada de menos comedores modais e adicioná-lo lá. Vamos fazer um novo, colocamos um ao outro por um tempo exatamente o que temos e isso seguirá um mais uma vez, copiaremos sobre todo o código disponível para você no repositório do GitHub e um indivíduo também. Ou isso não é tão complicado. Você pode ver que chamamos um registro de pontos de colocação utils e, em seguida, a flor de cerejeira colocada, e então estamos pegando a árvore verificada. Portanto, esse é o recurso configurado que retornará esse recurso de lugar ou esse recurso de lugar, certo? Então, o filtro por sobrevivência de bloco. Isso é exatamente certo. Isso é exatamente o que queremos. Então, só teremos árvores que surgem onde o rebento de flor de cerejeira poderia ser colocado. Essa é a ideia geral aqui. E então estamos fazendo disso um recurso de lugar adicionando a colocação de árvores de decoração vegetal. E então estamos apenas adicionando contagem extra. Então, é assim que muitas árvores vão surgir. Mas se não me engano, o que isso significa é que isso significa que, em média, uma árvore por pedaço deve surgir com 10% de chance de ter mais dois esportes. Acredito que é assim que funciona. Não tenho 100% de certeza, mas você também pode dar uma olhada no método de posicionamento em árvore aqui e ver que isso leva no modificador de posicionamento modificando um lugar ou neste caso. Podemos então entrar no modificador de posicionamento e podemos ver, bem, ok, isso não revela nada. Bem, vamos pressionar Control H. E, de repente, podemos ver vários modificadores de posicionamento diferentes. Há até filtros de posicionamento, o que eu acho muito legal. Então você pode ter coisas como filtros de raridade, que basicamente em média a cada tantos pedaços, acredito que é assim que funciona. E então você pode ter o posicionamento repetido. Algumas contagens baseadas em ruído. Incrivelmente legal, absolutamente frequente, incrível. Há um monte de coisas aqui. Mais uma vez, o aberto à experimentação tenta, sem, dar uma olhada no código de baunilha, como as aulas são usadas, apenas altamente recomendo fazer isso. Agora, o recurso colocado foi criado, mas de alguma forma precisamos gerá-lo Exatamente. Então, em nosso pacote mundial, clique com o botão direito do mouse em novo pacote chamado Jen. Então, isso forma o pacote mundial. Sei que falei muito inteligente. E então, lá, vamos criar uma nova classe Java chamada geração de árvores modernas. E então isso ficará o seguinte. 1 segundo, copiarei todo o método aqui, mas explicarei tudo. Portanto, este é o evento de carregamento de bioma. Bem, vamos chamar isso em apenas um momento. Mas o que você pode ver é que na verdade não é tão complicado, certo? Então, isso gera a árvore real. Certo? O que vamos fazer é obter a chave de recurso desse bioma específico que estamos carregando atualmente, certo? E então vamos nos certificar, ei, esse bioma faz, os tipos deste bioma contêm placas, mas basicamente em todos os diferentes tipos de bioma planos, eu sou como, Sim, vamos adicionar o flor de cerejeira colocada recurso ali mesmo. Então, essas duas chamadas, certo? Então, obter a base de listas, recursos do local do fornecedor para a decoração vegetal aqui é o primeiro passo, e então o segundo passo é apenas adicionar nosso recurso colocado lá. Isso mesmo, esses dois buracos aqui, estes na verdade adicionam o recurso de lugar ao bioma específico. Este ano, é claro, apenas filtros. Neste ponto, isso não deve ser muito louco para você. Se você tem, você é como, bem, eu realmente quero que minha árvore apareça em um bioma diferente. Você só precisa filtrar de forma diferente, certo? Então você pode simplesmente tirar essa declaração se. Você poderia simplesmente mudá-lo um pouco. Não deve ser muito louco. Todas as coisas consideradas. E o que vamos fazer é, então, no nosso exemplo, ele só surgirá no bioma planícies ou em biomas de planos diferentes basicamente. Mas onde chamamos isso agora? Bem, no pacote mundial clique com o botão direito nova classe Java chamada de eventos mundiais modernos. E então, dentro de lá, o que vamos fazer é primeiro adicionar o modo de adição. E então diremos que o ID do assinante do barramento de eventos de ponto é igual ao Smart Touch ID do núcleo MC. Então vamos ter um vazio estático público. Evento de carregamento de bioma com um evento final de carregamento de bioma, evento legal. E isso terá um evento de assinatura muito importante no topo aqui para esta anotação. E então vamos dizer geração de árvores modelo em nossas árvores de janeiro e vamos passar no evento. E agora você pode dizer, não pode ser isso. Mas é tudo o que precisamos fazer. Agora, é claro, as coisas muito particulares bastante complicadas, certo? Portanto, você tem diferentes utilitários de posicionamento, diferentes coisas de posicionamento em árvore com outro recurso configurado. No entanto, há muito nisso. No entanto, quando você realmente pensa sobre isso, na verdade não é tão louco. Todas as coisas consideradas. Como eu disse, se você quer filtragem diferente basicamente ou quer que suas árvores gerem biomas diferentes, você só precisa filtrar de forma diferente aqui. Quero dizer, basicamente você tem o evento de carregamento de bioma. Então você deve ter, você sabe, você tem a localização do recurso do iamb basicamente disponível para você. Então, em teoria, você deve ser capaz de alterar facilmente a filtragem aqui. Então, quando entramos no Minecraft em apenas um segundo, lembre-se de criar um novo mundo porque nós mexemos com a geração mundial apenas no caso, você sabe, ainda deve funcionar no velho mundo se nós teletransportar longe o suficiente, mas ainda assim por precaução, vamos criar um novo mundo e vamos ver se a árvore é gerada. Ou um farmacêutico, um Minecraft, e lá vai ele, já estamos desova em um bioma de aviões de girassol. Então lá vai você. As árvores estão desova e bem, que é praticamente mostrá-las. Sim, está praticamente funcionando exatamente como você esperaria. Então, eles estão surgindo apenas em tipos de aviões, biomas como realmente voam para lá porque a colocação parecia um pouco estranha, mas na verdade não deveria ser. Então você pode ver, ou eles estão crescendo alegremente, bem, nos lugares que podem, eles podem crescer. Então, esses podem estar um pouco próximos um do outro, mas quem sabe? Quero dizer, neste momento, é muito legal. E mais uma vez, uma coisa muito importante. Você sempre terá que brincar com os números quando se trata da geração mundial. Porque talvez você seja como não, não, isso é muitas árvores. Você sabe, você só tem que brincar com a contagem deles, mas no geral, as árvores geram. Então, uma coisa em particular eu posso dizer quando se trata basicamente da geração aqui, o que você poderia fazer se você, por exemplo, quiser que sua árvore seja incrivelmente rara, você poderia torná-la 0 e depois tem algo como uma chance de 0,1% de outra árvore gerar algo assim. Mas é claro, você sabe, você pode simplesmente brincar com também é altamente recomendável. Mais uma vez, apenas dando uma olhada, bem, as diferentes três gerações da baunilha, certo? Isso é sempre algo que você pode dar uma olhada. Não posso enfatizar isso o suficiente. Você tem disponível, todas as coisas de baunilha. Basta dar uma olhada nisso e você espero ser capaz criar a geração de árvores dos seus sonhos. Mas isso será para esta palestra aqui. Espero que você tenha encontrado esses neurônios úteis do novo. Se você o fizesse, eu agradeceria muito uma revisão sua. Caso contrário, verei você na próxima palestra. Então, sim. 94. (Gen) Geração de flores personalizadas (de mundo): Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos dar uma olhada na flores da geração de farinha é, na verdade, bem, outra parte da geração mundial vai ser muito interessante. Então, vamos para nossa classe de recursos configurada. E aqui, mais uma vez, vou copiar, mas tudo como sempre está disponível para você no repositório e um indivíduo também se ajusta. Portanto, não se preocupe lá. Mas o que vamos fazer é copiar sobre as linhas de tinta. Cada linha aqui. Você pode ver que, na verdade, é bastante longo. Vamos ver se eu poderia fazer algo assim. Agora. Bem, lá vai você. Então, algo assim. Veja que estamos usando a flor de recursos mais uma vez para criar um recurso Configurar, desta vez de configuração de patch aleatória com algumas tentativas, algumas se espalham aqui. Então, o que você pode ver é basicamente, bem, se eu simplesmente entrar na flor, então milimoles por clique sobre isso e, em seguida, clique no botão do meio do mouse mais uma vez. Podemos, por exemplo, ver que temos algum padrão de farinha aqui. Podemos ver o que é isso? Então, esta seria uma lista ponderada aleatória para patch de grama. Bem, vamos, não podemos realmente ver o que está acontecendo aqui, mas podemos ver o que está acontecendo aqui. Uma configuração de patch aleatória, 96 spread 6, 2. E então temos esse bloco simples insanamente louco configurado aqui e vemos que fazemos uma configuração de bloco simples. E então dentro daqui, um provedor de ruído e olhe para essa loucura, certo? Olhe para esse louco. Então, basicamente, temos blocos diferentes que geramos lá. A ideia da configuração de patch aleatório geralmente é que você adiciona várias flores diferentes a ela. Bem, no nosso caso, estou apenas adicionando uma flor a ela. Então você sabe, eu vou realmente reduzir as tentativas aqui para digamos 32 apenas no caso. E não tantos deles basicamente possuirão. Vamos fazer algo assim. Isso vai ficar bem. Agora, esse ainda é um recurso configurado e, claro, precisamos fazer um recurso policial com isso. Então, mais uma vez, vamos voltar para a classe de recursos dando uma olhada na flor, vamos apenas ir para o padrão aqui. Onde isso agora é chamado, é claro, na colocação vegetal. Então, vamos apenas pegar o, nosso calor aqui e então podemos ver basicamente esta é uma linha como 71. Na verdade, são 70. Lá vai você. E então podemos basicamente ver que colocamos em gravidade uma vez a cada x aqui em colocação quadrada, propagação, mapa de altura e, em seguida, filtro de bioma. Então, o que eu costumo fazer para basicamente preparar isso, eu apenas copie tudo e depois vejo o que preciso colocar lá. Bem, o que eu tenho é que tenho o seguinte em nossos recursos colocados no modo, podemos basicamente adicionar isso aqui. Então, haverá a rosa rosa colocada. Então você pode ver que eu também tenho isso e a única coisa que não tenho do posicionamento é o filtro de raridade. Bem, vamos apenas por uma questão de argumento, isso também. Então, vamos adicionar o filtro derivado. Vou copiar isso. Vou colocar isso aqui. Porque o mais legal sobre o colocado é que no lugar um, você vê esse ponto ponto-ponto. Isso significa que podemos colocar quantos modificadores de posicionamento quisermos dentro daqui, essa é a coisa realmente legal sobre as coisas do lugar. Mas quando você tem um recurso configurado e coloca pontos, você pode colocar quantos modificadores de posicionamento diferentes quiser, o que é realmente legal. E agora temos esse recurso colocado para a flor, mas como vamos gerar em nosso pacote Jenna clique com o botão direito do mouse em nova classe chamada de flor de modo, geração de flores. Então, mais uma vez, eu realmente copiarei o, copiarei sobre o método aqui. Mas isso é praticamente o mesmo que a geração de árvores. Por causa, claro, as flores também são decoração vegetal e estamos adicionando mais uma vez no lugar rosa bem ali. Isso deve ser bastante autoexplicativo. Todas as coisas consideradas foram mais uma vez, apenas fazendo isso em aviões. E vamos aos eventos mundiais MOD. E vamos apenas chamar isso, não importa neste caso em que ordem nós os chamamos porque ambos são o mesmo passo de geração aqui. Assim que estamos basicamente nos remos, você verá que, porque esta é uma etapa de geração diferente, terá que realmente, você sabe, manter a ordem aqui. Mas, na verdade, é isso. Isso é tudo o que precisamos para a rosa rosa. Mais uma vez, recomendo dar uma olhada em todos os exemplos de baunilha. Existem muitos deles. Basta dar uma olhada neles. Coisas felizes acabaram, experimente um monte de coisas. Experimente vários valores especialmente. E então veja o que basicamente acontece lá. Mas, por causa de conclusão, vamos ver se funciona, certo? E também não se esqueça de criar um novo mundo para isso porque, claro, mais uma vez, nós mexemos com a geração mundial. Então, vamos ver se podemos encontrar nossas flores ou ofensas em um avião é minha casa e eles estão, eles já estão. Encontramos ou rosas cor-de-rosa surgindo no bioma das planícies. Há mais alguns aqui. E vamos ver, há ainda mais lá. Vamos encontrar um pouco mais. Eles são um pouco mais raros do que eu esperava com 32, mas isso é claro que é totalmente bom. Mais uma vez, você pode simplesmente ajustar os números. Acho que há três aqui também. Sim, lá estão eles também. Isso é muito legal. Então, isso é realmente incrível e é praticamente como a geração de flores funciona. Mais uma vez, recomendo, dar uma olhada em todas as coisas de baunilha. E você só terá que brincar com os números até chegar bem a uma geração que você gostaria. Mas, caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda sobre o novo. E eu vou te ver na próxima palestra, no entanto. Sim. 95. (Gen) a geração de pneus personalizados: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra, vamos adicionar costume ou geração ao Minecraft para o que todos vocês estavam esperando. Eu bem, eu acho que pelo menos a ordenação é um deles basicamente sempre o mais solicita um tópico de muitos deles, basicamente aqueles que eu definitivamente vou basicamente estar fazendo. E enquanto, como fazemos isso ou geração, para onde vamos? Bem, em primeiro lugar, o recurso configurado novamente, e aqui copiarei mais duas coisas e depois explicarei, é claro, também. Mas, número 1, precisamos de uma lista ou configuração de um estado de bloco de destino. Agora, o que o FREC é esse, bem, precisamos disso porque se tivermos uma ordem ou configuração específica, realmente precisa desses minérios porque precisamos saber, ok, em qual estado de rock deve ser colocado, pedra, em que blocos deve ser colocada em um sono profundo. Então, é basicamente por isso que precisamos dessa lista aqui, tão basicamente tão simples quanto essa. E então temos o recurso configurado, seu robô. Ou agora, é claro, ainda precisamos tornar isso um recurso colocado. Mas isso já como uma coisa interessante e esse é o tamanho. Então, esse deve ser o lado médio das veias se não me engano. Portanto, tenha isso em mente aqui. E também podemos dar uma olhada no poço ou no recurso aqui. Então, clique no botão do meio do mouse sobre isso e, em seguida, meio do mouse, clique no botão do meio do mouse sobre isso e, em seguida, você poderá ver que tudo isso é usado nos recursos da ordem. Mas vamos dar uma olhada, por exemplo, em algo que é mais interessante, o ou Redstone, por exemplo. Então, todo o Redstone está configurado com uma nova lista aqui de minério redstone e Redstone salta tarde ou bem, justo o suficiente. E agora a questão é: onde esse uso é? Bem, isso usado no posicionamento do pedido. Então você pode ver o minério de redstone. E o que você também encontrará é que existem duas colocações diferentes para o mesmo ou você tem, ou diamante ou diamante grande ou diamante pássaro. Portanto, é muito importante que você possa adicionar vários para o mesmo ou curtir diferentes recursos de lugar que tenham diferentes funcionalidades associadas a eles. Então, estamos olhando para 41 e 42. Então, vamos entrar aqui. Podemos ver que isso é comum ou posicionamento, comum ou posicionamento. E então há até um método raro ou de posicionamento que eles basicamente chamam. Vamos ver algo assim em apenas um momento. Mas você pode ver isso como um posicionamento de alcance com esse uniforme e um triângulo como você pode ver. Portanto, existem diferentes tipos de posicionamento basicamente para a faixa de altura. E então você basicamente apenas diz, ok, de que intervalo até qual intervalo deve o escopo. E essa é praticamente a ideia lá. Então é muito legal e você pode mais uma vez copiar coisas, experimentar um monte de coisas e depois ver o comum ou posicionamento do botão do meio do mouse. Clique sobre isso. Você pode ver que é apenas um método privado. O que realmente temos que fazer é, na verdade, temos que copiar todos os três métodos que pelo menos é isso que vou fazer. Vou copiar todos esses métodos, clicar com o botão direito do mouse em copiar. E então vamos entrar na classe de recurso e vou criar uma classe de modo ou posicionamento personalizado. E então vamos apenas copiar os métodos aqui e vamos fazer com que todos eles sejam públicos para que possamos basicamente usá-los para nossos próprios minérios porque, bem, eles são apenas tornar nossas vidas uma um pouco mais fácil, não 100%, mas só um pouco. E depois de copiarmos isso, bem, agora podemos usar o recurso Configurar para criar um recurso de lugar. Então, em nossos recursos colocados no modelo, o que vamos fazer é copiar isso e vou explicar, é claro, novamente. Então lá vai você. Temos um cobalto ou colocado, que mais uma vez vamos registrar com o cobalto ou colocar aqui. E então vamos pegar o cobalto ou que encontramos aqui, o recurso Configurar. E vamos colocá-lo com o comum ou posicionamento. Este ano devem ser as veias médias por tronco , como eu entendo agora. E o que você pode estar dizendo: Espere, como você está levando para menos 80? Bem, com um triângulo, mas como isso funciona? Bem, o que você pode ter visto como você pode ter visto essa imagem, que meio que demonstra em que alturas a laranja agora gera. E a ideia é que quando você fizer um triângulo aqui, o ponto inferior será em menos 80 e o ponto no topo será em 80. E então o triângulo chegará a um ponto basicamente 0. Então, em teoria, o que deveria acontecer é que a maioria do cobalto ou deve surgir em, em 0 e, em seguida deve ficar cada vez menos e menos. Então, você sabe, basicamente vai ser compensado aqui. Então, isso é basicamente um ponto de fazer o posicionamento da hortênsia e o botão do meio do mouse. Clique nisso e você pode realmente ver que também há adicionar aqui.gov e, em seguida, outros provedores de altura. Agora dê uma olhada no hipervisor. Então eu vou pressionar Control H. E há o viés para baixo, muito tendencioso para a altura do trapézio inferior, altura lista ponderada uniforme e altura constante. Funcionalidade absolutamente incrível que você tem. Você pode fazer seu spawn de maneiras muito particulares se você quiser que eles recomendem dar uma olhada nisso, recomendo brincar com esta amina basicamente como até que você tenha seus remos exatamente como você quer que eles façam. Agora vou fazer é copiar a geração de árvores aqui. Então, vou arrastá-lo para o mesmo pacote enquanto mantém o controle. E vamos renomear isso amanhã ou geração. Vamos renomear isso também , gerar ors aqui. E então, em vez da decoração vegetal, isso agora é ors subterrâneo. E nós também vamos tirar isso da declaração if porque r ors, vamos apenas dizer, por uma questão de argumento, nós realmente queremos em todos os lugares, mas vamos dizer cobalto ou colocado, e que é isso. Agora, a ração de origem aqui está praticamente feita. Agora isso vai colocá-lo em todas as biografias. Agora, isso não deve colocá-lo na parte inferior ou no final porque o recurso de cobalto ou configuração tem uma lista bem aqui de pedra substituível e substituível em estado profundo e não de rack inferior ou em pedra substituível. E eu nem acho que eles existam necessariamente. Outro naufrágio existe como um teste de regra, outro ou substituível também, o que o resto eu não acredito que exista lá. Então isso é algo a ter em mente. Então o material de pedra final não existe, certo? E agora esse método só precisa ser chamado aqui. Agora, o que é muito importante é que ele tenha que ser chamado acima dos outros dois. Porque se realmente dermos uma olhada no passo de geração aqui, você pode ver que os ors subterrâneos acontecem antes da decoração vegetal. Então, basicamente, começa de cima para baixo. Este pedido tem que ser bem, basicamente mantido. E aqui nós nem precisamos dos tipos e na verdade nem precisamos da chave porque vamos ser como, Sim, só queria em todos os biomas que vão ficar bem. Então, quero dizer, isso é praticamente tudo que precisamos fazer pelo nosso cliente. Ou, mais uma vez, brinque com os números. Dê uma olhada no código de baunilha e dê uma olhada nos valores de baunilha. Eu recomendo vivamente. Não posso enfatizar isso o suficiente. Você só precisa brincar com isso e brincar um pouco com os números. E agora vamos ver, depois de criarmos um novo mundo, a propósito, se nosso cobol ou seu lugar no mundo. Ou se respostas no Minecraft e como você pode ver, algumas ou aqui, já geraram perfeitamente bem. Isso foi apenas um Eco. Há um pouco de uma veia maior. Eu tinha, na verdade, oito deles, no entanto. Tudo aqui funciona perfeitamente. E isso já concluirá esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. Então, sim. 96. Como exportar seu Mod: Tudo bem, bem-vindo de volta ao curso de forragem para a equipe vencedora e esta palestra muito curta, vou mostrar rapidamente como você pode exportar seu modelo como um arquivo JAR. Então, vamos abrir o terminal e vamos colocar na barra de pontos, Gradle w. build. E isso é praticamente tudo o que você precisa fazer. Ele entra. E então ele basicamente cria o, bem, o arquivo JAR. O que você precisa fazer é ir para a pasta Build, clicar com o mouse em Abrir no Explorer. Então, em uma janela do explorador, abrirá e mostrarei isso rapidamente. Então, construa. E então, na pasta libs aqui, curso MC, esta é a versão definida dentro do seu arquivo build.gradle. Este é basicamente o nome que ele levará, e você pode pegar isso, colocá-lo na pasta do seu modelo, você pode colocá-lo em um carregado para amaldiçoar forragem, coisas assim. E então tudo aqui deve funcionar. Ótimo. Sim, isso praticamente já é para esta palestra aqui e depois. Então, se você estiver assistindo isso no futuro, você deve ter outra seção aqui com tópicos adicionais que vou adicionar ao longo das próximas semanas e meses basicamente com coisas diferentes, como barcos, Definitivamente vou querer ainda adicionar coisas assim. Então fique de olho nisso se você estiver assistindo isso bem cedo para quando o curso realmente saiu e provavelmente nada estará lá ainda. Bem, não se preocupe. Novas palestras definitivamente serão adicionadas. Então, espero que você tenha achado útil e tenha aprendido algo novo. E espero que eu o veja nas próximas palestras também. Então, sim. 97. (tópicos adicionais) Atualizando o Forge (1.18.1): Tudo bem, bem-vindo a esta palestra onde vamos atualizar o forge para a versão mais recente. Atualizamos o forjado antes em uma palestra anterior. Mas faz sentido se você vai adicionar muitas coisas que faremos nas próximas palestras para basicamente atualizar a forja novamente. E geralmente também é bom manter seu MOD basicamente atualizado. Muitas vezes não há muitas mudanças, mas ainda é bom ter em mente. Para isso. Claro, precisamos alterar a dependência real aqui em nosso arquivo de notas DOD Gradle agora para quê? Para ter que mudar esse bem-estar, vamos abrir o micro ford.net. E uma nota muito importante do futuro aqui, recomendo usar uma versão 1181 para os tópicos adicionais. Enquanto a maior parte disso ainda funcionará se você atualizar para um 1800 para a geração mundial e algumas das coisas fiscais não funcionarão. Eu recomendo aqui realmente atualizar ainda para uma versão 181, uma 1800. E a atualização e todas as mudanças serão abordadas em uma palestra posterior. Isso vai demorar um pouco porque na verdade há algumas mudanças significativas. Então é o que é, mas a maioria das coisas funcionará. É apenas geração mundial e impostos, como eu disse, por favor, atualize para um 1800 e depois 1182 entrará, vamos esperar que algumas semanas quando tudo tiver sido resolvido, espero que eu será capaz de fazer uma seção adicional onde eu passar pelo processo de atualização, bem como cada uma das alterações individuais também. Portanto, tenha isso em mente, por favor. Muito obrigado. E , em seguida, certificando-se de que estamos na versão mais recente e você pode ver o download mais recente, isso será 39079. E podemos até dar uma olhada, por exemplo, o registro de alterações aqui. Podemos ver algumas das mudanças que aconteceram entre as versões. Muito poucos, na verdade, porque ainda estamos muito atrasados na versão real do curso. Talvez você tenha atualizado ao longo do caminho também. Isso também pode ser uma coisa que poderia ser feita. Mas, por enquanto, basicamente vamos atualizar agora para um 3979. E se você estiver assistindo isso no futuro, que é muito provável do que talvez sua versão seja um pouco mais alta lá em cima. Totalmente bem. Então você acabou de atualizar para esse. Normalmente, não deve haver muitas discrepâncias entre eles. Então, mais uma vez, esta é a versão que vamos atualizar duas e, em seguida, basta carregar a mudança de garota, Gradle muda aqui no canto superior direito, basicamente clicando no pequeno elefante é que não aparece e sempre abre para a guia Gradle e, em seguida, clique neste botão aqui, faz a mesma coisa. E, como de costume, deve levar cerca de um minuto ou dois no máximo. Normalmente, se não deve haver muitas coisas, provavelmente será muito rápido para mim, porque eu já fiz isso. Claro. Se você já fez isso na mesma versão , já baixou todas essas coisas. Mas então pode ir um pouco mais rápido, mas não deve demorar muito tempo. Então, vamos esperar um segundo. Mais uma vez, se você estiver ficando vermelho aqui, desde que seja apenas informações e avise, não se preocupe. É apenas um erro que é uma espécie de problema. E então, claro, no final do dia, se houver uma compilação falhou, isso também não vai ser bom. Mas se houver um sucesso construído, qualquer coisa quase pode ser desconsiderada. Isso está escrito aqui, que está em vermelho. Aqui somos construídos com sucesso em dois minutos, 31 segundos. Como eu disse, às vezes demora um pouco mais, às vezes não demora muito. Agora pulamos muitas versões, então provavelmente havia muito o que atualizar lá. Mas, além disso, isso é praticamente tudo o que precisamos fazer para atualizá-lo. Agora, geralmente quando você atualiza, se não houver muitas mudanças, tudo deve funcionar. Acredito que aqui tudo deve funcionar. Então, vamos deixá-lo funcionar e ver se estamos recebendo algum erro. Pode haver um sobre, não tenho 100% de certeza. Não acho que haja nada se preocupar no momento. Mas é claro que aqui o caso seria apenas executá-lo, ver se há talvez uma flecha, talvez, eu não sei algo nos alimentos, por exemplo, mudança. Você, é claro, então o veria e então você poderia simplesmente mudá-lo lá também. Mas neste caso, não acho que nada tenha mudado drasticamente. Para que, uma vez que tudo tenha baixado aqui, você pode ver que ele baixa os ativos novamente, basicamente baixando alguns dos recursos uma vez, mais uma , basicamente, para que tudo esteja pronto data. Porque é claro que atualizamos a primeira execução após atualização também pode levar um pouco de tempo, mas não se preocupe. Você pode ver agora que o cliente de execução está realmente passando pela tarefa agora está basicamente em execução. Você pode ver que estamos passando por algumas coisas. Bem aqui. Diz normal. E então, na outra tela, a janela do micróbio já está começando aqui. Nós só vamos virar isso e tudo deve estar funcionando bem. Portanto, ele deve estar vendo a tela do menu em apenas um momento. E lá estamos nós. Sim, lá estamos nós. Lá vai você. Então, tudo ainda está funcionando muito bem. Mods, curso MC ainda está aqui. Então, tudo está funcionando muito bem e não se preocupe a atualização da nova versão forrageira. E agora podemos basicamente passar pelas palestras adicionais que serão muito, muito interessantes. Então, há alguns tópicos interessantes que basicamente discutiremos nas próximas palestras. Alguns dos quais são definitivamente como, pessoalmente, meus favoritos. Há algumas coisas realmente, muito legais aqui, mas isso seria praticamente para esta palestra aqui. Um muito curto só para atualizar basicamente. E então podemos passar pelo resto das palestras. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo na próxima palestra. 98. (tópicos adicionais) como adicionar gotas de XP em blocos: Tudo bem, bem-vindo de volta ao curso de forja para 118. E então esta palestra, vamos dar uma olhada em como você pode adicionar gotas experientes aos seus blocos ou. Agora, você pode se lembrar que existem alguns blocos específicos ou como Emerald, por exemplo, que quando você minerou, ele realmente cai depois de minerá-lo. Suponho, por exemplo, ter o cobalto cru no nosso caso, cair e depois de sentir o cheiro, você teria a experiência. Agora, esse é, na verdade, um processo bastante simples. Então, o que podemos fazer é simplesmente pressionar a tecla Shift duas vezes e procurar o bloco ou, certificando-se de marcar esta caixa aqui. E então vamos verificar este. E você pode ver que podemos simplesmente para o bloco tem em um uniforme int aqui. E esse será o intervalo de experiência que vai cair. No entanto. Na verdade, é tão fácil quanto ir ao seu, por exemplo, vamos escolher o cobalto ou mesmo que não devesse ter, isso é apenas um exemplo. Vamos mudar esse bloco para ou bloquear, certificando-se de que eu escrevo isso corretamente. Lá vai você. Vou pressionar a tecla Tab para completar automaticamente. E agora nada deve mudar. Isso ainda deve funcionar, mas precisamos adicionar um segundo parâmetro aqui. E isso vai ser um trabalho uniforme que você pode ver. E então vamos dizer, por exemplo, algo como dois ou, ou, e então será uma distribuição uniforme entre 24. Também podemos passar o mouse sobre a oferta. Eu acredito que isso deveria, na verdade, não nos oferece nenhuma ideia de como isso funciona, bummer, mas tudo bem. Acredito que ambos são inclusivos. E também podemos, claro, verificar se um botão do meio do mouse clicar sobre isso novamente e, em seguida, clique no botão do meio do mouse sobre isso. Posso ver, por exemplo, no Emerald ou devemos ser capazes de ver que o que eles estão dando lá é, por exemplo, aqui entre 37 e o mesmo vale para a esmeralda de sono profundo. E então acredito que há outra coisa. Então, por exemplo, no diamante ou sim, é claro que também seria o caso. Este também fica entre 37. Então lá você pode basicamente escolher o que você quer fazer. Então, vamos apenas fazer 37 também. Por que não? E isso é praticamente tudo o que você precisa fazer. E agora a experiência cairá depois disso, basicamente esse bloco é extraído. Seja cauteloso, é claro, que se você fizer isso em blocos ou não. Então, se eu fosse fazer isso nas escadas, por exemplo, e, claro, recebendo o bloco real de volta. Quero dizer, as escadas seriam muito difíceis, mas talvez vamos escolher outra. Esse é um mau exemplo. Na verdade, você sabe, qualquer outro bloco que seja apenas um bloco que digamos que as tábuas, por exemplo, se eu fizesse isso em nosso bloco e eu devolveria certo número de experiência lá, eu posso basta configurá-lo novamente, ficar mais experiente, configurá-lo novamente, ficar mais experiente. Portanto, isso definitivamente deve ser usado apenas para blocos, ou quatro blocos que não se soltem. Essa é a ideia geral. Mas porque isso é tudo o que precisamos fazer para o bem da conclusão, vamos ver se funciona. Ou nos encontramos de volta ao Minecraft e vamos apenas colher algumas das ordens. E como você pode ver, lá vai você. Na verdade, estou recebendo experiência ao minerá-los. Como eu disse, este exemplo é claro, um pouco não muito bom, claro que neste caso porque quando nós realmente cheiramos o cobalto ou seríamos experimentados novamente. Mas talvez isso seja algo que você queira adicionar. Quem sabe. Mas, como você pode ver, é assim que pode ser fácil adicionar as gotas personalizadas experientes ao seu cliente ou que já é isso para esta palestra estão aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. 99. (tópicos adicionais) como adicionar uma tela de menu personalizada: Ou eu dou as boas-vindas de volta ao curso de forragem para 118. E nesta palestra vamos adicionar uma tela de menu personalizada ao Minecraft. Agora, é muito importante que esta palestra e a próxima palestra sejam uma espécie de parte um e parte dois. Porque na próxima palestra , na verdade, vamos adicionar conflitos ao Minecraft. E quando você adiciona uma tela de menu personalizada, você definitivamente 1, 1000% precisa configurá-la. Caso contrário, basicamente seu MOD é imediatamente colocado na lista negra por qualquer pacote de mapas. Porque, obviamente, um pacote de marcas geralmente tem sua própria tela de menu e você quer isso configurável. Vamos apenas passar por isso no entanto. E, em primeiro lugar, vamos começar com a tela do menu. Nesta palestra, vamos substituir os lados da montanha girando, por assim dizer, na tela do menu com nossa própria tela de menu, apenas uma imagem. E para isso vamos entrar em nosso pacote util, mouse em nova classe Java. E esta será a tela do título da empresa. Lá vai você. E vou copiar todo o código aqui, mas tudo aqui está, é claro, mais uma vez disponível para você no repositório do GitHub e individual também. E vamos dar uma olhada no que tudo isso é. Número um, temos este local de recursos de tela inicial é exatamente nossa tela de menu de algodão personalizada que vamos basicamente bem impor lá ou desenhar na tela do menu. E então também temos uma localização de recursos para o logotipo da Microsoft, pois isso tem que ser bem desenhado, mais ou menos acima da tela. É um pouco estranho, mas basicamente explicarei no método render aqui. Então, o método de renderização, vamos passar por algumas coisas. Primeiro de tudo, vamos chamar o super na tela normal do Tidal. O que acontece então é que eles são completamente normais A tela do Tidal é desenhada. Então precisamos dessa largura e altura inteiras. Só precisamos disso para nossa tela de título personalizada. Deixe-me desenhar nossa tela de título personalizada, basicamente acima da tela normal do Tidal. E então também vamos desenhar o logotipo da Microsoft. Isso é muito importante. Então aqui nós apenas renderizamos o menu principal. Isso é apenas da Forge para que tudo funcione aqui. Deixe-me desenhar a corda. Esta é a cadeia de direitos autorais no canto inferior direito. Isso é muito importante. Não exclua isso. Isso é muito importante que isso realmente tenha que estar lá. Caso contrário, eu não tenho 100% de certeza, mas você pode estar cometendo uma espécie de fraude de direitos autorais se você não tiver isso. Então, devemos ter isso definitivamente isso. Os widgets aqui são apenas os planos de fundo para cada um dos botões no menu principal. Também podemos dar uma olhada no método de tela de título personalizado de desenho. Então você pode ver que realmente não é tão louco. Estamos basicamente apenas habilitando uma configuração de textura, o tipo de como um pouco de material habilitador. E estamos definindo a textura real para a tela inicial aqui e depois estamos desenhando. Então, o sangue basicamente desenha essa textura que definimos no sistema Render. E depois disso, depois disso, desenhamos o logotipo do Minecraft. Então, definindo a textura para o logotipo da Microsoft, estamos no próximo alvejante basicamente desenhando a microflora. Essa é a ideia geral. E isso é apenas um código retirado da própria classe de tela do Tidal normal. Então, isso não é nada louco demais. Isso é praticamente tudo o que há para ele. Honestamente, realmente não deveria haver uma loucura de coisas. Se você quer uma tela de título completamente personalizada com coisas completamente loucas, então você só precisa trabalhar em algumas dessas coisas. Normalmente, o que a maioria das pessoas só quer é substituir a imagem de fundo e é exatamente isso que vamos mostrar aqui. Agora, isso vai na GUI de texturas, no menu Plano de fundo ou na pasta em segundo plano. E então ele vai ser chamado menu Copan dot re pack. E é exatamente isso que vamos realmente obter isso na GUI e, em seguida, clique com o botão direito do mouse novo diretório chamado plano de fundo. Então eu vou apenas copiar a imagem, o que, claro, também está disponível para você se você quiser experimentar isso. E não vamos estragar a aparência, mas não agora, mas vai parecer muito legal. Eu poderia te dizer isso. Então, o que fazemos depois disso? Bem, agora precisamos de alguma forma definir esta tela de título e vamos fazer isso na aula do evento. Então, na classe de eventos de modo, vamos copiar sobre um método que é muito, muito simples. Isso também não é muito louco, mas é claro que também está disponível para você. Vamos usar o evento de abertura de tela como você pode ver. E vamos verificar se a tela que estamos tentando abrir atualmente é a tela de título e ainda não é a tela de título da nossa conta. Então, vamos substituí-lo ou vamos criar uma nova tela de título de algodão e enviá-la para ela. Isso é praticamente tudo o que há para ele. Este é todo o código que precisamos. Então isso talvez seja um pouco mais complicado, mas, no geral, espero que seja compreensível o que está acontecendo aqui em uma espécie de visão geral. E então esse método e esse evento realmente devem ser muito simples. Isso não é nada louco. E sim, isso é praticamente o que precisamos para esta palestra aqui. Então, acho que vamos ver se funciona. Mas o sol é, claro, importante para ver o Minecraft começando. Então, vamos ver se nossa tela de blocos personalizados está funcionando. Estou muito confiante de que isso vai. E lá estamos, a tela de título personalizada está funcionando exatamente como você esperaria. Ainda temos o aviso de direitos autorais. Até temos o material da forja no canto inferior esquerdo. Temos o Minecraft, basicamente tudo aqui, que é exatamente o que você quer. Todos os botões ainda funcionam totalmente bem. Então, tudo funciona de forma incrível. E eu não vou dizer nada sobre nada, mas isso pode ser apenas um pequeno spoiler de espreitadela, o que pode vir mais cedo. Mas de qualquer forma, isso é muito legal e eu realmente gosto da imagem de fundo que foi feita pela sua linha. O, é claro que vai ser vinculado no arquivo de créditos também. Então isso é realmente incrível. Mas isso é realmente o quão fácil é adicionar o grito de título personalizado, como eu disse, recomendo assistir a próxima palestra imediatamente depois para ver como podemos adicionar alguns personalizados não fixos. Como adicionar o conflito para tornar isso bem, basicamente configurável é incrivelmente importante. Eu só, não posso exagerar isso realmente. Por favor, adicione o conflito aqui. Caso contrário, é basicamente o seu marr nunca será usado por nenhuma marca nunca. Mas seja qual for o caso, é isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se você fez, apreciamos muito uma avaliação sua. Caso contrário, verei você na próxima palestra. 100. (tópicos adicionais) como adicionar Configs básicos: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra vamos adicionar conflitos personalizados ao Minecraft. Agora, este não é apenas um tópico muito importante para a tela ou para a tela de título personalizada que implementamos na última palestra. Mas também é um tópico muito importante e também altamente solicitado. Então, antes de tudo, precisamos pensar em duas coisas, e isso é o comum e os conflitos do cliente. Há também conflitos de servidor, mas, por enquanto, vamos nos preocupar com o conflito comum e com o cliente, quando pensarmos em nossa tela de título personalizada, onde isso existe pois isso existe tanto no servidor quanto no cliente, ou apenas no cliente. Portanto, a resposta óbvia é, claro, que isso existe apenas no cliente. Para aqueles que disseram, é claro que é apenas no cliente. Isso é muito bom para quem disse, bem, é em ambos. Bem, vamos pensar sobre isso. O servidor, se estivermos executando um servidor, o servidor se preocupa a tela de menu de opções multijogador para um jogador. Agora, é claro que não acontece. Podemos até ver isso se clicarmos no botão do meio do mouse na tela de título aqui, podemos ver que isso é apenas neste cliente. Isso significa que basicamente essa classe só é executada no thread do cliente, em nenhum outro lugar. Portanto, para basicamente ativar ou desativar nossa tela de título personalizada, precisaremos implementar conflitos de clientes. E então também vou mostrar um ou dois exemplos de alguns conflitos comuns. Esses seriam conflitos que são tanto para o cliente quanto para o servidor. Agora, nesse caso, comum é uma coisa interessante porque às vezes os conflitos comuns são basicamente para o cliente e o servidor. E então também há apenas conflitos de servidor. Mas vamos deixá-los de fora por enquanto depois de termos visto como você pode somar o cliente e os conflitos comuns. Ele também pode adicionar os conflitos do servidor. Observe também que você não pode configurá-lo ou não pode tornar configurável cada pedaço de código específico. Por exemplo, algumas das coisas que não são realmente facilmente configuráveis são, por exemplo, a durabilidade aqui da haste de dowsing. Como exemplo, você pode imaginar por que podemos substituir isso um número configurável que não funciona bem. Portanto, pode haver algumas soluções alternativas, mas geralmente quando você está registrando coisas, então agora estamos gravando o método de registro. Em todos os lugares onde você está registrando algo. Normalmente, você não quer alterar esses números. Às vezes, é muito difícil dizer onde você pode ou não pode fazê-lo. Eu só recomendo se você realmente quer experimentar algumas coisas lá, experimentar, ver se funciona ou não. Porque às vezes eles podem ser uma incompatibilidade do servidor e do cliente se o cliente tiver um conflito diferente e diferente do servidor. E, portanto, isso pode ficar um pouco estranho. Então, apenas tenha isso em mente. Você não pode necessariamente configurar tudo em nosso pacote de cursos MC. Vamos clicar com o botão direito do mouse em novo pacote chamado pacote de conflitos. E então eu realmente copiarei mais de duas das aulas que vamos precisar. E, na verdade, vou passar por todo o código, é claro, está disponível para você no repositório do GitHub em um indivíduo também. Portanto, não se preocupe. E isso também não é tão louco. Vamos começar com os conflitos do cliente aqui. Podemos ver que o que você vai precisar é um construtor de especificações de conflito, que é igual ao novo construtor. E então essa especificação de conflito aqui. E então você pode ver que você está listado são basicamente todos os nossos valores de configuração estáticos. Você pode ver que é genérico, então vamos colocar em um tipo de dados diferentes, basicamente, que são nesses casos o que queremos configurá-lo ou configurar. E então você pode ver neste bloco estático aqui, apenas tendo um construtor para empurrar, é exatamente o que está escrito na parte superior do arquivo de conflito. E então isso está sendo definido para ver, em primeiro lugar, um comum. Portanto, é se a tela de título padrão será ou não substituída. E então vamos definir isso. Esse é apenas o nome da variável, por assim dizer, e esse é o valor padrão nesse caso. E então, olhando para os conflitos comuns aqui, você pode ver que aqui nós realmente vamos tornar configuráveis as veias por pedaço e o tamanho das veias do cobalto. Ou isso é muito interessante porque isso também é algo que às vezes pode ser configurável. Ou você quer que isso seja configurável, o que é muito interessante. Então, o que vamos fazer é antes de tudo, vamos usar os conflitos do cliente, mas precisamos, claro, também registrá-los. Então, como registramos aqueles em nossa aula de mod de curso MC, na verdade só precisamos adicioná-lo às coisas. E isso vai ser depois disso. O que vamos fazer é dizer, vamos fazer o mod carregando no ponto de texto, obter essa configuração de registro. Vamos dizer dados de configuração do motor. Você pode ver os tipos já lá. Vamos escolher o tipo de cliente para o primeiro. Vamos dizer MC. Conflitos de clientes essa especificação. E então o nome do arquivo aqui vai ser, deve ser o seu ID de MOD, cliente Dash. E então muito importante que o tâmil, isso tem que ser um arquivo HTML de ponto. Caso contrário, não vai funcionar. Então podemos duplicar isso pressionando Control D. E eu vou mudar isso para o comum aqui. E então vamos mudar isso para o curso MC, conflitos comuns. E então é muito importante que mudemos esse nome também. Você pode ver agora que temos ambos, bem, em cadastrados fixos e isso é tudo o que precisamos fazer para registrar esses conflitos. Então isso é tudo o que há para isso. Agora, como os usamos? Bem, é bastante simples. Temos esse campo aqui. Então, vamos entrar em nosso código. Na verdade, não é a tela de título da coluna. Na verdade, queríamos fazer isso na classe de eventos MOD aqui mesmo nesta declaração if, basicamente queríamos dizer conflitos de cliente do curso MC, que o ponto da tela de título personalizado obtém. E então vai acabar com isso. Então isso precisa ser verdade, e tudo isso também precisa ser verdade. E então nossa tela de título será substituída apenas por uma questão de conclusão, vamos também usar imediatamente a veia para coisas de tronco. Então, isso vai ser no mundo. O primeiro vai estar no lugar características que eles atrás. Estas serão as veias por tronco. Então este vai ser o curso MC, conflitos comuns pontuam o ponto de Paine por pedaço. Vamos apenas ler. Sim, está tudo bem. E, em seguida, o outro deve estar nos recursos configurados. Então este vai ser o, este aqui mesmo. Este é o tamanho da veia para isso seria o curso MC conflitos comuns tamanho da veia que obtém, o que vamos fazer é que vamos deixar isso funcionar uma vez para que os arquivos aqui gerem, então os arquivos fixos reais se regeneram e, em seguida, vamos alterar os valores dentro deles. Mas vamos executar isso uma vez e vamos ver os arquivos de conflito gerados. Primeiro de tudo, você pode ver que o Minecraft foi carregado e a tela de título ainda está lá porque é claro que o valor padrão aqui era verdadeiro. E o mais importante, agora geramos os arquivos de configuração. Eles estão sob a configuração da pasta R1 e lá vai você. Cliente do curso Mc e curso MC comuns. Se os abrirmos, você pode ver que basicamente estamos recebendo exatamente isso. Você vê conflitos para MC core smart e, em seguida, se a tela de título padrão será substituída. Nós mudamos isso para falso agora e salvamos. E então aqui, vamos apenas, vamos ficar absolutamente loucos nisso só para termos isso. Então, vamos. Então, por enquanto, vamos fazer muitas veias por pedaço, muito tamanho de veias, só para que possamos ver que isso vai funcionar e isso afetará a geração mundial. E sim, isso é praticamente tudo o que precisamos fazer para mudar os conflitos. Eles, é claro, também estão disponíveis para os usuários, para os jogadores e, em seguida, eles podem alterá-los como quiserem. Então, definitivamente, certifique-se de ter comentários adequados aqui. Haverá este aqui. Como você pode ver, isso é o que foi escrito como um comentário lá. Então isso é praticamente tudo o que você precisa fazer. Então, agora depois de mudarmos os conflitos, vamos ver se, por exemplo, antes de tudo, a tela de título mudou e, em seguida, também a geração mundial também. Tudo bem, como você pode ver o número um, a tela de título real mudou de volta para a tela normal do Tidal. Mas isso é muito interessante. Agora vamos realmente gerar um novo mundo aqui e ver se Então, na hora da geração mundial, cobalto ou vai ser exibido de uma forma mais formas do que antes. Ou se responder no Minecraft. E como você pode ver, eu não tive que ir muito longe para encontrar uma abundância do ou, certo. Você pode ver que não só as veias reais são maciças, mas muitas delas. Como você pode ver, estas são duas veias diferentes, três veias diferentes, como bem próximas uma da outra. E então você pode ver isso continua e continua. Na verdade, posso ir para o modo espectador novamente. E você vai ver que há muitas dessas veias. Então você pode ver claramente que, mesmo que isso definitivamente não seja algo que você necessariamente queira ter, mas é definitivamente configurável. E isso é praticamente exatamente o que esperaríamos desses ou conflitos para então fazer. Então isso é muito legal. Mas há outro método que podemos chamar e que é o definido em uma lista definida, mas definindo o intervalo, que também é bastante interessante. Então este aqui basicamente faz o seguinte. Você também pode definir um valor mínimo e máximo. Portanto, isso também pode ser muito interessante e importante para você basicamente dizer, você sabe, talvez o número de veias por tronco e o tamanho das veias deveriam ser mantidos em certos valores. Ou talvez, você sabe, alguns valores que você queria tornar configuráveis possam realmente ser quebrados se não estiverem entre certos números. Portanto, tenha isso em mente também, que você também pode fazer isso. Mas, por enquanto, vamos manter isso indefinido. Só queria te mostrar isso. Eu também posso sempre gostar de todas as vezes, apenas aconselhar você a brincar com isso um pouco. Veja o que você pode mudar basicamente, que tipos de coisas podem funcionar e quais não funcionam. Portanto, há muitas coisas que podem funcionar e talvez não. Portanto, tenha isso em mente. Mas, caso contrário, é praticamente assim que você pode adicionar conflitos personalizados ao Minecraft. E o mais importante, como você pode configurá-lo ou entrar em conflito, criar um conflito para sua tela de título personalizada, porque isso é extremamente importante. Se você tem uma tela de título personalizada que você faz para que você possa desligá-la porque caso contrário você nunca será usado para pino de RMN incrivelmente importante. Então, por favor, tenha isso em mente. Caso contrário, isso será para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se você agradeceu muito a revisão de você. Caso contrário, te vejo na próxima palestra. 101. (tópicos adicionais) como adicionar blocos transparentes: Ou eu dou as boas-vindas de volta ao curso de forja por 180. E nesta palestra vamos adicionar um bloco transparente ao Minecraft, esse comércio por demanda popular, já que algumas pessoas tiveram algumas lutas com a adição um bloco transparente ao Minecraft. No entanto, na verdade não é tão louco se você conhece os dois ou três ajustes muito importantes que você precisa fazer. Então, na nossa classe de blocos de modo, vamos apenas no fundo aqui. Só vou copiar sobre a amostragem. Agora há algumas coisas que precisamos mudar aqui. Isso vai ser chamado de janela de inverno. E isso é claro, também a janela de inverno. Então, antes de tudo, em um volume completamente normal aqui, e então isso será um bloco de vidro. Isso é muito importante que este seja um bloco de vidro. Isso exigirá apenas as propriedades reais do comportamento do bloco aqui. E então o que vamos fazer é copiar do bloco de vidro também das propriedades. Você entra no bloco de vidro, clique no botão do meio do mouse e, em seguida, o botão do meio do mouse clica novamente no bloco de vidro abstrato. Podemos ver esse número um, o que precisamos é que propaga clarabóia para baixo e também o brilho da forma. Temos forma visual. Na verdade, não tenho 100% de certeza do que isso necessariamente ao anoitecer. Eu só sei que todos eles são basicamente importantes para conseguir um trabalho de bloco transparente. É por isso que vamos usar o bloco de vidro. Isso é basicamente também um bloco de vidro, então não se preocupe lá. Agora, o que também precisamos em nosso MC para classe inteligente na configuração do cliente, vamos copiar sobre a camada de renderização aqui. E isso vai obter a camada de renderização da janela de inverno, e desta vez translúcida. Então, ele terá a mesma camada de renderização que o fluido do bloco de mel, que também é claro que é translúcido. Isso é muito importante, caso contrário, não funcionará. E então, é claro, todas as coisas de ações como apenas o bloco Estados Jason aqui. Apenas um palco normal Jason, mesmo com a tradução. Tudo isso é praticamente apenas padrão. A única diferença aqui é então, claro, uma vez que adicionamos isso, a janela de inverno aqui, os arquivos de modelo, todas as mesmas coisas, então são apenas arquivos de modelo normais. Também poderíamos copiar os outros arquivos de modelo normais e ver isso aponta para uma textura. E então o mesmo praticamente com o arquivo do modelo do item. E, claro, também estão disponíveis se você quiser copiá-los. Mas, como você pode ver, existem arquivos normais, nada louco sobre eles. Praticamente a variação mais fácil desses arquivos. E então, o que é claro que é importante para a textura que também copiarei. E você vai ver isso, isso aqui. Então, todo o tipo de blocos internos, esses são os que têm um valor alfa que é um pouco transparente. Portanto, é claro que isso é muito importante que, se você tiver um PNG que você queria usar e alguns de seus pixels reais precisam ter valores alfa que você possa examinar. Caso contrário, é claro que não funciona bem. Caso contrário, o transparente não funcionará corretamente. Portanto, tenha isso em mente. Mas, de outra forma, isso é realmente tudo o que precisamos fazer passando por tudo. Praticamente o mais importante é o translúcido. Assim, temos valores alfa em nosso arquivo PNG real. E também estamos usando o bloco de vidro, o que é muito importante. Acho que veja por causa da conclusão, vamos ver se funciona. Tudo bem, somos financeiros no Minecraft e, como você pode ver, a janela de inverno foi adicionada com sucesso ao jogo. E como você também pode ver, eu posso olhar através dele. Não se preocupe, embora tudo funcione bem. Quero dizer, é assim que é fácil adicionar um bloco transparente personalizado da marca Minecraft que já é para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. 102. (tópicos adicionais) como adicionar itens animados: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar um item animado ao Minecraft. Então isso pode ser como, Uau, isso é uma coisa muito legal. E pode ser, você pode dizer, bem, isso provavelmente vai ser muito complicado. Na verdade, é bastante simples. Mas vamos ver um item animado personalizado nesta palestra. E então mostrarei um exemplo de baunilha de um bloco animado. E então, se você quer um bloco animado basicamente, então eu posso recomendar dar uma olhada nesse exemplo de baunilha. Na classe mod items, vamos adicionar um novo item. Então, vamos apenas copiar sobre a bola de cobalto aqui. E esta será a poeira mágica sublinhada. E então o mesmo aqui no nome. Este vai ser o pó mágico sublinhado. E isso vai ser um item normal, curiosamente. E nós vamos fazê-lo para que ele basicamente não tenha outras propriedades de itens aqui. Vamos ter o item normal, completamente baunilha. Nada de louco sobre isso. E vamos realmente adicionar a tradução antes de entrarmos no, para as outras coisas reais. Então, o outro item modela arquivos adjacentes. Então, haverá a magia da poeira e esta também será a poeira mágica. Agora, você pode estar dizendo: Bem, isso provavelmente vai ser uma consulta complicada e complicada é um modelo de item complicado Jason arquivo aqui. Vamos apenas copiá-lo. Claro, tudo disponível para você no repositório do GitHub em indivíduos também. E você pode ver que é um arquivo JSON completamente normal para o modelo do item. Ou você vai ficar como, esperar, onde está? Onde está a animação? A animação está toda na textura, bem como no metarquivo MC. Aha. Vamos copiar essas informações, que, naturalmente, também estão disponíveis. E então você pode ver que temos o número um, a textura real, bem como um metarquivo MSE. E se dermos uma olhada na textura, na verdade é várias texturas diferentes. Então você pode ver que essas são, de fato seis texturas diferentes para o mesmo, bem, é o mesmo item. No final, saia basicamente 16 vezes, no entanto, muitas texturas você tem vezes 16. Então essa é a ideia. Portanto, é 16 por, neste caso, 96 é um tamanho aqui, e o metarquivo MC determina como você realmente passa por isso. Você pode ver que isso é uma animação. Pode alterar o tempo de quadro para mudar basicamente a rapidez com que a animação é. E então aqui você pode basicamente dizer quais quadros serão colocados em qual ordem. interpolação significa simplesmente que quando um quadro mudar para outro é mudar será discreto. Então, ele vai mudar de uma imagem e, em seguida, na próxima, digamos em segundo lugar, veja outra imagem. Onde isso vai fazer a transição por eles? Essa é a ideia geral de interpolação neste caso. Mas isso é realmente o quão fácil é adicionar um item animado. E então isso vai animar imediatamente, desde que você tenha o arquivo MC Mehta aqui. O que é muito importante é que essa metáfora do MC tenha que ser escrita exatamente assim, incluindo o ponto PNG aqui. Certifique-se de que isso esteja escrito corretamente. E, como a lista de verificação dupla e tripla, é incrivelmente importante que este seja o mesmo nome do arquivo de textura, incluindo o final e o ponto MC Mehta. Por favor, verifique isso. Então, quando se trata do livro, podemos ir para as bibliotecas externas, é claro, mais uma vez para o cliente extra 1801 ou qualquer que seja sua versão, ativos, Minecraft, texturas, Bullock. E então uma coisa a dar uma olhada é o bloco magma. Então este também tem um arquivo MC Mehta e você pode ver que existem na verdade, três texturas diferentes que o ID passa. Isso, como você pode ver aqui, com o tempo de quadro de oito, passa por todos esses três quadros e em seguida, muda a textura aqui também, mesmo com o outro portal. Então você pode ver que o portal nether realmente tem muitas texturas diferentes como você pode ver, ele passa, Bem, quero dizer, aparentemente passa por tudo. Não tenho 100% de certeza de como a animação aqui está vazia. Não tenho certeza de como isso funciona, mas esse também é outro exemplo. Eu pessoalmente recomendo o exemplo do magma. E acredito que é praticamente todo o tipo de exemplos muito loucos aqui, repetindo o bloco de comando. Mas há algumas coisas aqui ainda lá. Mas o macrobloco é provavelmente o mais fácil de seguir e deve ser. Quero dizer, é como se fosse bastante sensato, bastante simples, tudo considerado. É praticamente o mesmo que o da poeira mágica. Mas sim, isso é praticamente tudo o que queremos dar uma olhada. E agora acho que, por causa de conclusão, vamos ver se funciona. Ou nos encontramos no Minecraft. Então, veremos que o pó mágico foi adicionado com sucesso ao jogo. E como você pode ver, enquanto eu estou segurando na minha mão, vamos escolhê-lo Southern só tenho um. Você pode ver que é um lenta mas seguramente animado e eu posso até jogá-lo no chão. E você pode ver que mesmo eles são, a textura real também é animada. Então, na verdade, é o quão fácil é. E como eu disse, você pode basicamente alterar a velocidade da animação alterando o tempo de quadro dentro do arquivo MC Mehta. É assim que pode ser fácil. Isso já está para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo na próxima palestra. 103. (tópicos adicionais) como adicionar efeitos personalizados: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos dar uma olhada em como você pode adicionar um efeito personalizado ao Minecraft. Agora, a adição do efeito do cliente realmente vem bem, mais ou menos, graças a um aluno que adicionou seu próprio efeito. E eu meio que cooptei efeito deles e fiz uma palestra sobre isso. Então, é claro, você sabe em quem você está pensando muito. E é um efeito de congelamento. Na verdade, é realmente interessante. Então, ele vai congelar uma entidade no lugar. E vamos ver como isso funciona. Na verdade, é mais direto do que você imagina em nosso pacote de cursos MC. Clique com o botão direito em novo pacote chamado efeito Então, em vez de lá, vamos precisar de duas novas aulas. Uma delas é a classe de efeitos do modelo. E então o outro será o efeito de congelamento. A classe de efeito de congelamento é onde toda a funcionalidade está inserida. Eu simplesmente copiarei sobre a classe como, como sempre, é claro, tudo disponível para você no repositório do GitHub e individual também, pronto? Então aqui você pode ver o efeito de congelamento em ação. É bastante simples. Todas as coisas consideradas, substituímos o método de tick de efeitos de aplicação, que basicamente será chamado de cada tick quando uma determinada entidade tiver esse efeito sobre ele. E então também temos o carrapato de efeito de duração. É verdade, porque se não tivermos esse tempo, basicamente isso nunca seria frio. Então, é isso que precisamos. Aqui. Você pode basicamente ver que se refere a todos verificando se estamos ou não no servidor. Se estivermos, então estamos tomando as coordenadas XYZ dessa entidade específica que tem esse efeito sobre a mortalidade, relatando a entidade a ela e também definindo o movimento Delta como 0. Então isso é necessário para o jogador basicamente, e isso é necessário para, bem, animais ou qualquer NPC basicamente. Então, qualquer entidade não jogador, simplesmente por causa do fato que o movimento Delta é, bem, o que basicamente move o animal real e eles se teletransportam para, não apenas a primeira linha dois faz não funciona. Então, essas são as duas coisas que precisamos. E se adicionarmos esses dois, então a multidão real, ou, neste caso, a entidade ou o jogador congelará no lugar. Muito legal, como uma ideia muito legal. E eu realmente gosto disso. Então, como basicamente, a questão é, como registramos isso? Bem, você já viu isso antes. Final estático público, o que precisamos? Claro, um registro diferido, desta vez de um efeito multidão. Isso será chamado de efeitos de sublinhado da MLB. E isso é claro que é igual ao que é um registro diferente que cria registros de efeitos de ponto mlb. E, claro, nosso núcleo MC, inteligente, mas não ID. E como todas as vezes, como vimos um terceiro registro, o que precisamos? Precisamos de um vazio estático público ou método de registro com um barramento de evento ocular, ônibus de evento inteiro. E então estamos chamando os efeitos da MLB ou registramos e passando no barramento do evento. Nada de novo demais aqui. Isso é praticamente como toda vez que vimos os efeitos aqui. E então isso será chamado mais uma vez, é claro aqui. Então, basta explodir nossas receitas mod. Vamos dizer efeitos máfia que se registram e depois passam no ônibus do evento. E lá vai você, Tudo está registrado. Só precisa de um objeto de registro aqui. Então vamos dizer, estático público, objeto do Registro final. Claro do tipo de efeito mob. Neste caso, ele vai ser resfriado congelamento e é igual ao efeito mob começa a registrar o nome congelar aqui. E então vamos precisar um fornecedor de um novo efeito de congelamento. Como você pode ver, a categoria Mob Effects prejudicial. E então, basicamente, qualquer número. Este é um, acredito, um identificador único. Dê uma olhada nisso. Esta é, na verdade, esta é a cor. Lá vai você. Essa é a cor. Isso é o que é. Mas essa é a cor de eu acredito, a porção que estaria associada a ela. Agora não vamos adicionar a parte nesta palestra. Na verdade, vamos adicionar a parte na próxima palestra. Mas depois de ter adicionado isso, o efeito de congelamento é realmente no jogo. Agora, isso é tudo o que precisamos fazer para adicionar isso. Sei que é uma loucura, mas isso é tudo o que precisamos fazer. Então eu acho que veja se funciona ou nos encontramos de volta ao Minecraft. Então, vamos ver, vamos me dar o efeito. Vamos dev. E então você pode ver esse efeito de congelamento existe, a menos que o adicione. E agora não consigo me mover. Você pode ver que é meio nervoso. E eu adicionei isso por trinta segundos neste caso. Então eu não posso realmente voar um pouquinho, mas se eu tentar me mover, você pode ver que é muito, muito lento. Neste caso. Sei que se estou no chão e tentar me mover, estou pressionando a tecla W. Funciona como muito, muito devagar. E até mesmo, você sabe, dar a volta por aqui é, você pode ver que é definitivamente congelante se encontrar meio no lugar. Agora ainda posso quebrar blocos que um banco de olhos, mas isso funciona. E você também viu que a textura real não estava lá. Vamos adicionar essa textura também. Na verdade, é bastante simples, mas isso é bem legal. Todas as coisas consideradas. A textura vai para a pasta de texturas. E aqui precisamos de um novo diretório chamado mob underscore effects. E então a textura real precisa ter o mesmo nome que o nome aqui. Portanto, nos efeitos MLB, esse nome tem que ser esse nome. E agora, em vez de uma textura não descritível, essa textura será exibida e bem, quero dizer, basicamente vai funcionar. Agora, como eu disse na próxima palestra, vamos adicionar imediatamente uma parte para isso porque faz sentido em minha mente ter uma parte. Isso é o que basicamente você pode usar também. Por enquanto, isso é praticamente para esta palestra aqui. Espero que você tenha achado útil e amarelos e o devido. E te vejo na próxima palestra. 104. (tópicos adicionais) como adicionar poções personalizadas: Ou eu dou as boas-vindas de volta ao curso de forragem para 118. E nesta palestra vamos adicionar uma poção do cliente, incluindo uma receita personalizada de vassoura ao Minecraft. Agora, a porção real é muito fácil de adicionar. A receita de fabricação de cerveja, no entanto, é, bem, digamos que seja um pouco intrigante por que funciona da maneira que funciona, mas não se preocupe, vamos superar isso. Bem, em primeiro lugar, no pacote do curso MC, clique com o mouse em novo pacote chamado porção. E então, dentro de lá, vamos fazer um novo mod oceanos do corpo docente da classe Java. E isso vai parecer estranhamente semelhante ao que basicamente muitas outras classes que já vimos antes. Um registro diferido final estático público do tipo oceano desta vez. E vai ser porções, é claro, será igual ao registro diferido que cria registros, oceanos escuros vão. E, claro, MC, claro, ID moderado ou leve. E então você precisa do método de registro vazio estático público como sempre, com o olho Event Bus, Event Bus. E então vamos fazer poções de registro de pontos com o ônibus do evento. E então vamos chamar isso no construtor de cursos MC aqui, mod poções, eles atrás se registram e depois passam no ônibus do evento. E então só precisamos criar a poção. Então, haverá um objeto de registro estático público , é claro, do tipo oceano. Vá. E esta será a poção de sublinhado de congelamento é igual a poções que se registram. Esta é a poção sublinhada do friso, novamente, o nome aqui. E então isso está exigindo um fornecedor de uma nova parcela. Isso vai precisar de uma nova instância de efeito mob. Lá vai você, de nossos efeitos. Então mod efeitos de congelamento escuro, aquele que adicionamos a última palestra. Só vou fazer dez segundos com o lobby. Basicamente, o amplificador é 0 aqui. Então esse será o número de vezes mais tarde em tiques, e este será o amplificador. Então, se estamos colocando um 0 aqui, e isso vai ser um nível um. Isso vai ser congelamento voador no nível um. E isso é, na verdade, tudo o que precisamos fazer para adicionar a porção real. Agora, para a receita de fabricação de cerveja, vamos realmente fazer uma nova aula. Agora isso é muito interessante porque na verdade existe uma classe que é chamada de receita de fabricação de cerveja, acredito que sim, da micro forja. Então você pode ver que esta é uma receita de fabricação de cerveja que implementa essa interface de receita eu arruinei. E isso funciona e podemos usá-lo. O que é realmente interessante é que, para a entrada, ele realmente não olha para o que, vamos dizer qual é a parte real é que você precisa colocá-lo, mas você sabe como você pode colocar em um certo ingrediente na parte superior do suporte de fabricação real e, em seguida, na parte inferior, você tem três slots para diferentes porções. E geralmente como funciona, pois você precisa uma poção estranha para fazer isso e outras postagens específicas para fazer isso. E ao usar esta receita de fabricação de cerveja, simplesmente não importa como é a entrada. Não, não verifica se é ou não a parte real. Portanto, essa classe de fabricação de cerveja é praticamente inútil e não precisa ser usada. Agora encontrei uma parede, uma alternativa que chamei de melhor receita de fabricação de cerveja. Agora vamos copiar isso. Isso está realmente no pacote util. E o não exatamente o mesmo, mas o nome é diferente. A classe é exatamente a mesma do repositório do GitHub aqui a partir de partes extras e depois por baixa. Então, isso está sob a licença GPL três. Portanto, esteja ciente disso quando você estiver usando essa classe. Só dizendo, mas no geral, quero dizer é praticamente, não há outra maneira de fazer isso realmente quando estou pensando nisso. Então eu passei por isso e estamos tipo, Ok, sempre vai parecer exatamente o mesmo praticamente. E esta é a melhor maneira de fazer essa aula realmente. E então podemos usar isso melhor nos custos da receita de fabricação de cerveja. Para realmente adicionar a receita, só precisamos adicionar uma receita. Então, isso vai funcionar imediatamente para a poção de barra, a porção normal e a porção persistente. Então isso é muito legal. Agora, quando adicionamos essas receitas de porção no método de configuração em nossa configuração comum FML aqui. Quando queremos fazer, você quer dizer registro de receitas de fabricação de cerveja, este aqui, adicione receita. E então vamos fazer uma nova e melhor receita de cerveja. Lá vai você. E então temos a paixão, qual parte queremos. Então, isso vai ser empurrando o começo estranho neste caso. Em seguida, o ingrediente real. Então, isso vai ser um item. Então vamos dizer mais itens que lingote de cobalto, digamos que isso vai ser a raiva do cobalto, certo? Lá. Eles vão, pontuam e depois mod porções. Porque é claro que o resultado real ou a saída deve ser a poção de congelamento. E eles vão agora colocando em posições estranhas na parte inferior e um lingote de cobalto, pois o gradiente nos dará uma poção de congelamento. Isso é tudo o que precisamos fazer. Isso é, na verdade, o quão fácil é. Agora, para as poções, também precisamos adicionar alguma tradução. Isso é muito importante na verdade. Há poucas coisas que precisamos adicionar. Primeiro de tudo, precisamos adicionar esses três aqui. Então este vai ser o, você pode ver que esta é poção de congelamento de efeito de porção, poção para o respingo e a porção persistente. Incrivelmente importante. Na verdade, isso está sob o namespace Minecraft. Não tenho 100% de certeza por que esse é o caso. Quero dizer, tenho 80% de certeza por que esse é o caso. A ideia é que quando você está registrando uma porção, quando você está fazendo uma nova poção, por assim dizer. Então o que acontece é que isso só é adicionado ao. A lista de porções real no Minecraft e , em seguida, esta está sob o registrado sob o namespace Minecraft. Não tenho 100% de certeza se isso é uma coisa ruim ou uma coisa boa. Quero dizer, pode ser uma coisa ruim por enquanto. Vamos mantê-lo assim. Se houver algum conflito no futuro, vamos resolvê-los também. Não se preocupe lá. Mas essa é basicamente a ideia dos oceanos. E agora também precisamos do efeito. O efeito se parece com isso. Vamos adicionar isso na parte inferior. Este efeito ponto M C corps congela, e isso é apenas congelamento de código. Essas são as traduções que são incrivelmente importantes. Agora também o que é interessante para o item, para os itens de poção gerados automaticamente. E não precisamos fazer nada por eles. Então, isso é praticamente tudo o que precisamos fazer. A cor da porção real é retirada dos efeitos mod aqui. Então essa cor aqui é basicamente o que vai ser usado. Não tenho 100% de certeza do que é isso. Pode ser apenas uma cor hexadecimal. Não tenho certeza. Também pode ser outra coisa, mas isso vai ficar bem. Isso é apenas brincar com isso também. Se você quiser. Algumas outras cores são por enquanto, isso é praticamente tudo o que precisamos para o costume, tanto a porção personalizada quanto a receita aqui a ser adicionada. Então, acho que vamos ver se funciona. Ou nos encontramos no Minecraft. Então, vamos ver, vamos apenas adicionar as porções de água e em seguida, um lingote de cobalto e ele deve começar a fermentar. E, de fato, ele começa a se preparar. E assim que isso tiver feito, as poções estranhas devem se transformar em porções congeladas. Então, vamos pegar algumas ovelhas só para ver se elas serão ou não basicamente congeladas no final. Vamos ver. Aqui, estamos quase acabando, e depois teremos algumas poções. Vamos. Então, temos uma poção de congelamento e outro movimento de congelamento e uma porção congelante persistente também. Então, tudo funciona exatamente como você esperaria para uma ovelha ou se mataria. Isso é incrível. Uau, isso é muito engraçado. Vamos ver. E lá vai você. E então você pode ver que eles não podem mais se mover. Posso até atingi-los e eles não podem se mover porque a porção de congelamento está literalmente congelando-os no lugar. Também podemos tentar a mesma coisa para alguns zumbis, que é muito divertido porque basicamente eles tentaram persegui-lo e então, oh, bem, quero dizer, eu acredito que estou em paz, então lá vai você. Vamos copiar isso e, em seguida, vamos mudar para a sobrevivência e depois vou tentar pegá-los. E lá vai você. Então, o pequeno zumbi, como você pode ver, parou de se mover. Vamos realmente obter algumas porções mais congelantes splash poses aqui. Só para que você possa mostrar isso novamente. Mais uma vez, vamos mudar e eu vou congelá-los. Congelar. E congele também. Oh não, eu me congelei. Isso não é bom. Podemos ver que, é claro que às vezes também pode acontecer, mas é muito legal. E sim, isso é realmente o quão fácil é adicionar não apenas porções personalizadas, mas também receitas de porções personalizadas ao meu ofício. Sempre tem os trimestres inteiros, é claro, disponíveis para você no repositório do GitHub ou um ajuste individual também. Mas isso vai ser para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo se você o fizesse, eu agradeceria muito uma revisão sua. Caso contrário, verei você na próxima palestra. 105. (tópicos adicionais) como adicionar entidades personalizadas com Geckolib: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar uma entidade personalizada ou uma multidão personalizada ao jogo. Este será o início de uma série, digamos, algumas partes de palestras em que basicamente vamos adicionar mais funcionalidades à nossa entidade. Vamos , em primeiro lugar, adicionar uma entidade normal ao jogo do que adicionar algumas animações. Então, na próxima palestra depois disso, vamos fazer disso uma mesa. Vamos adicionar variância diferente dessa entidade em particular. E, no final, também adicionaremos uma entidade que será gravável. Então todas essas coisas basicamente nos aguardam nas próximas palestras. Agora, o que vou dizer é que cada entidade que vamos adicionar, vamos adicionar duas entidades e ambas usarão as bibliotecas da API labial da gecko. Mesmo que não seja estritamente necessário, isso sugere uma multidão normal sem animações adicionais. Eu ainda recomendo basicamente sempre usar apenas a biblioteca glicolipídica para adicionar as entidades. Porque isso, definitivamente, torna muito mais fácil de muitas maneiras. Basicamente, isso só facilita. E então, antes de tudo, vamos configurar o lábio de gecko. Para isso. Nós vamos basicamente copiar este sobrescrever aqui. Então este é o, como você pode vê-lo no GitHub, o guia de instalação do wiki gecko lib. Basicamente, vou copiar isso. E então vamos voltar para aqui, entrar no nosso arquivo DOD Gradle criado. E este, o primeiro que copiamos ele ia para os repositórios bem aqui. Então, só vou adicioná-lo bem ali. E então o outro, este aqui. Nesse caso, vou deixar esta já deve ser a versão mais nova aqui, 3011 neste site. Não tenho certeza se isso é atualizado enquanto toda vez que uma nova versão for lançada, mas espero que isso vá abaixo de um Minecraft aqui. Então, isso deve ser tudo o que precisamos. E agora podemos carregar as alterações do Gradle. E basicamente vai baixar a versão dos glicolipídios e irá implementá-la para que possamos basicamente usar o EPI labial gecko em nosso mod também. E depois disso, mais uma vez, pode levar um minuto, pode levar trinta segundos. Depende de muitos fatores. Basicamente, você pode ver, na verdade, foi bastante rápido ano 21 segundos. Isso é muito bom. Então a pergunta é, bem, onde estamos tirando nossas entidades? Bem, para nossas entidades, vamos usar o banco de blocos. Block bench é um programa com o qual você pode criar modelos genéricos. Você não poderia fazer modelos de blocos nenhum dos modelos. Já vimos isso, mas também podemos criar entidades. Agora, o importante é que você tenha os plugins de arquivo abaixo e você tem o lábio gecko Animations, Animation utils bem aqui. Então, vamos precisar desse plugin em particular. Caso contrário, não vai funcionar. Portanto, certifique-se de instalar isso. Basicamente, vá para disponível e, em seguida, procure por ele. Agora não estou recebendo porque ele já está instalado. Você pode ver instalar isso e, em seguida, você deve ter a possibilidade de adicionar o modelo animado labial gecko aqui. Agora já tenho algumas coisas preparadas, então temos um guaxinim e um tigre. Em primeiro lugar, vamos usar os guaxinins. Eu só vou abri-la e você pode ver, lá vai você. O guaxinim já feito aqui. E bem, quero dizer, basicamente, este guaxinim também já está animado, então nós realmente temos três animações aqui. Vamos dar uma olhada nas animações na próxima palestra um pouco mais de detalhes por enquanto, o que vamos fazer é exportar isso. O que vamos fazer é quando criarmos uma entidade personalizada. Então, para usar o modelo real de guaxinim em nosso projeto e nosso MOD, você precisa exportar isso. Então, vamos para a Exportação de Arquivos e depois Exportar modelo labial de gecko. Se isso não aparecer, você pode clicar em Convert project e certifique-se de escolher basicamente o modelo animado labial Kekule. Se este ainda não for o formato atual, então a exportação real aqui deve aparecer. Podemos então usar isso e depois salvá-lo no arquivo JSON de ponto GO guaxinim. Só vou substituir. Isso vai ficar bem. E agora eu exportei o modelo na verdade, e já podemos usar isso dentro do nosso jogo. Eu também tenho a textura, eu tenho isso realmente separado. Você também pode, em teoria, salvar isso do arquivo de bancada de blocos real também. Mas vamos ficar bem. Como eu disse, as animações que vamos ignorar completamente por enquanto. Vamos usá-los na próxima palestra. Vamos voltar para o IntelliJ. E o que vamos fazer é fazer imediatamente uma nova pasta no curso MC da pasta de ativos. E então aqui vamos fazer a pasta geo. E isso vai obter o arquivo guaxinim GeoJSON. Eles vão. É basicamente assim que se parece. Pode haver um erro de digitação aqui em algum lugar, isso vai ficar bem. Acredito que seja o que for chamado neste arquivo, na verdade, não importa. E então também precisamos é que, na verdade, também precisaremos obter o arquivo de textura. Claro. O arquivo de textura realmente vai para as texturas, é claro. E então, em vez da entidade puxada para cima aqui, entidade e, em seguida, o nome da entidade. No nosso caso, isso vai ser e então eu vou copiar a textura real aqui. Lá vai você. Esta só será a textura do guaxinim. Vou basicamente apontar para aqueles em apenas um momento em que estamos realmente implementando a entidade por enquanto, essas são as principais coisas que definitivamente precisamos. O arquivo geo aqui, o GeoJSON e a textura. Então também pode haver uma pasta de animações, que basicamente contém as animações que usaremos na próxima palestra. Agora, vamos fazer um novo pacote aqui, entidade. Dentro de lá. Vamos criar uma nova classe Java. O modo em t. Os tipos de entidade de modo terão uma final estática pública, o terceiro registro do tipo, tipo de entidade e, mais uma vez, e, mais uma vez, os colchetes angulares com um ponto de interrogação dentro deles. Haverá que os tipos de sublinhado da entidade serão iguais ao terceiro ponto de registro criar registros, essa entidade, entidades na verdade eles atrás e, em seguida, curso de MSC inteligente nesse mercado. E se é um registro diferente, claro que há um método de registro vazio estático público. Então eu Event Pass antigo ônibus de eventos aqui. E então vamos chamar os tipos de entidade que se registram passando no barramento de eventos. Então vamos imediatamente aqui abaixo das mais porções. E vamos dizer mais tipos de entidade, não se registrar passando no ônibus de eventos. E então também temos essa classe registrada. Agora, aqui sempre teremos alguns objetos de registro de nossas diferentes entidades. Mas antes de continuarmos basicamente com isso, vamos fazer a própria classe de entidade. Mais uma vez no pacote da entidade, clique com o botão direito do mouse em novo pacote cliente Mais uma vez, vou chamar isso de pacote personalizado. E então, em vez de fazerem uma nova classe Java, e essa será a entidade guaxinim. Agora, quando se trata da entidade guaxinim, isso vai ser muito interessante porque há muitas coisas acontecendo. Também copiarei muitas dessas coisas. Tudo isso está disponível para você no repositório do GitHub e para um indivíduo também. Portanto, não se preocupe. O que vamos fazer é fazer isso se estender por animais. Então estende o animal e também implementa a interface animável para os olhos neste caso. Agora, vamos passar o mouse sobre isso, a adição desses métodos diferentes aqui. E vou passar o mouse sobre esse construtor de grade combinando super também. E se esses nomes o incomodarem, você pode clicar nele, Shift F6, e então ele deve sugerir algo um pouco melhor aqui. Isso vai ser mantido nulo, neste caso, a prole vermelha. Então, esta será apenas a multidão elegível para ter filhos. Não precisamos disso no momento. Os controladores são para o material de animação, bem como para a fábrica de animação. E vamos adicionar a fábrica de animação imediatamente porque esta é literalmente apenas uma linha. Como você pode ver. Há apenas uma fábrica de animação privada. Fábrica de animação. E então estamos apenas passando isso. Então, basicamente, ele pode retornar isso aqui. Os controladores, não vamos devolver nada no momento. Primeiro de tudo, o que vamos fazer é dar uma olhada nas outras coisas que precisamos para a entidade. Porque há pelo menos um conjunto de métodos que vamos precisar e que são os atributos definidos. Isso é algo incrivelmente importante. Na verdade. Se não tivermos isso, na verdade não vai funcionar. Nós só vamos fazer o seguinte que eles vão. Estamos basicamente apenas definindo alguns atributos básicos aqui. A vida máxima, o dano, a velocidade de ataque da velocidade de movimento. Você sabe, é claro que você pode brincar com isso no entanto, você não gostaria de alterá-los basicamente qualquer maneira, se você quiser. Mas isso é muito importante que tenhamos isso porque, caso contrário a entidade real não terá nenhum atributo. E, claro, isso não é exatamente o que queremos aqui. É claro que queríamos ter alguns atributos. Existem também alguns outros métodos que podemos substituir. Bem, vamos separar isso um pouco. Então, isso vai ser todo o material de animação. Isso aqui é tudo para animações. E há outras coisas que eu vou copiar aqui, mas esses são apenas alguns sons como você pode ver. Há, vamos abrir tudo. Lá vai você. Então , há um som passo. Acabei de escolher alguns sons aqui. Há um gato direto soa assim como ambiente. dor do golfinho é quando se machuca, muitas vezes som surdo. Por que não? No momento, não tenho nenhum som de guaxinim, mas é claro que eles também não deveriam importar. Mas esses são basicamente os sons que você pode definir. E sim, é claro, você também pode dizer sons mod e, em seguida, usar um dos sons do seu modo também. É claro que você pode adicionar sons personalizados ou suas entidades também. Isso é muito legal. Todas as coisas consideradas. Quero dizer, isso praticamente conclui o pedaço disso. A última coisa que também queremos é que queremos o método de registro de metas, e esse é um método que também podemos substituir. Agora acho que vamos ter duas coisas, exatamente duas coisas que serão comentadas no momento. Porque são para quando vamos fazer este T-Mobile. No momento, não vamos fazer a mesa de guaxinim porque eu quero basicamente passar por esse passo a passo, os objetivos. Essa é basicamente a IA dessa entidade. Isso é muito, isso pode ser um tópico muito complexo. Portanto, há muitos objetivos diferentes que podemos adicionar. Então, o que podemos fazer, por exemplo, é que podemos clicar no botão do meio do mouse em um objetivo e você pode ver que isso estende a classe de meta. Se eu agora clicar nisso e pressionar Control H, esses são todos os objetivos e agora posso expandi-los. E você pode ver que existem muitos objetivos diferentes. Você pode ver. E, claro, em teoria, você pode até escrever seus próprios objetivos também. Então, realmente há muitas coisas aqui. E mais uma vez, essa é uma daquelas coisas em que você terá que brincar um pouco com isso. Olhe para as entidades de baunilha e veja como elas estão usando metas. A ideia geral é que quanto menor a prioridade, como quanto menor o número de prioridade, maior ele realmente está na lista. Uma seria a prioridade mais alta e seis é a prioridade mais baixa. Mas se tiver que escolher entre um ou dois objetivos, basicamente dá uma olhada nas prioridades. Então essa é a ideia geral aqui. Portanto, certificando-se de que isso é basicamente sempre configurado corretamente. E então, como eu disse, você pode simplesmente ir para o animal, por exemplo, clique no meio mais punk nesta imprensa Control H. Você pode ver todos os animais. Mas, por exemplo, poderíamos dar uma olhada na raposa aqui. E você pode ver que há muitas coisas diferentes aqui que realmente não nos interessa no momento. Só queremos ver as metas reais. Você pode ver que somos apenas seus objetivos, mas você já pode ver que há alguns objetivos diferentes aqui. Este objetivo de alvo de lâmpada, há um alvo de ovo de tartaruga, há um objetivo alvo de peixe. Temos alguns seletores de metas onde adicionamos certos objetivos aqui, a panícula, o objetivo da raça, evitamos os objetivos da entidade ir. Portanto, esse é um objetivo que evita uma determinada entidade em uma distância específica. Então, há tantas coisas que você pode fazer. Agora. Você também pode ver que a maioria deles específica para a raposa é em vez da classe fox, digamos, por exemplo, o objetivo de dormir para o botão do meio do mouse. Clique nisso. Você verá que o objetivo do sono está realmente no objetivo do comportamento da raposa e na verdade está dentro da classe box. Às vezes, alguns desses objetivos estão realmente dentro de suas respectivas entidades reais. E é também por isso que, por exemplo, a raposa, tem como 1600 linhas de código. Há muitas coisas aqui. Quero dizer, eu diria que provavelmente a coisa mais complicada em termos de entidades personalizadas para a vida em geral, é apenas o que é. Recomendo. Você tem que passar por algumas das entidades de baunilha e apenas brincar com ela e, em seguida, ver o que você pode ver, como eu disse, clique no botão do meio do mouse neste controle todos os anos sobre o objetivo, e então você poderá ver todas as metas disponíveis. E então, na pior das hipóteses, você também pode copiar alguns deles se você precisar deles. Em seguida, a classe de entidade de recall real aqui está concluída. Vamos então registrá-lo na classe mais entidades. Na verdade, também copiarei isso. Como sempre, tudo disponível para você no repositório do GitHub individual também. Agora esse erro ocorre porque isso deve ser protegido. Então, vamos tornar isso público aqui. E então a flecha deve desaparecer. Portanto, não se preocupe lá. E você pode ver que há um objeto de registro do tipo de entidade. Então vamos colocar a aula que acabamos de fazer aqui, o guaxinim se registrando sob o nome do guaxinim. E então vamos dizer que o construtor do tipo de entidade da entidade de registro sabia. Esta é uma criatura neste caso, esse tamanho é realmente o tamanho da caixa de heap dessa entidade. E o magnético o constrói sob o local do recurso ou mais Id sob, uma vez, o namespace guaxinim. E isso é praticamente o registro é feito aqui. E agora ainda precisamos bem, quero dizer, basicamente adicionar isso em alguns lugares diferentes. O primeiro lugar que queremos adicionar isso é, na verdade, em nossos eventos e isso será nos eventos de ônibus de eventos mod. Curiosamente, porque aqui queremos adicionar um novo evento como o vazio estático público. E esta é a entidade. Evento de atributo, vou chamar isso e, em seguida, vamos dizer atributo de entidade. Este é o evento de criação, evento de cotação. Quando vamos fazer, vamos chamar a guia Event put, tipos de entidade mod que guaxinim, que GET. Em seguida, a entidade guaxinim, defina o atributo de entidade. E então vamos adicionar o evento add subscribe aqui. Muito importante que adicionemos isso. E agora isso basicamente adicionará os atributos que definimos aqui a todos os guaxinim existentes em nosso mundo. Essa é a ideia. Lá. No entanto, há mais algumas coisas para o guaxinim, para a entidade em geral. Para a entidade, também precisaremos de um renderizador e um modelo. Portanto, no pacote de entidade é executado novamente, clique com o botão direito do mouse em novo pacote e vamos chamar isso de cliente na verdade, por causa do renderizador e do modelo para ambos ser cliente somente se eu não estiver enganado, vamos dizer Raccoon. Este será o renderizador. Então vamos fazer o outro também. Este vai ser o guaxinim. Este vai ser o modelo. Lá vai você. Não se preocupe lá. O, qual deles é mais fácil? O modelo vai ser um pouco mais fácil. Mas isso vai estender o Geo Model animado da entidade de registro de tipo que você usa. E então vamos passar o mouse sobre isso, Implementar Métodos. Então, precisamos implementar esses três métodos. Agora, isso é realmente bastante simples. Vou copiar a única coisa aqui. Então, isso só vai seguir um novo local de recurso. E isso está apontando exatamente para o GEO e, em seguida, guaxinim que o AOTA Jason, este exatamente esse arquivo rastreador aqui, que basicamente temos. E então também vamos simplesmente copiar isso. Na verdade, não tenho 100% de certeza do que vai acontecer se eu não tiver esse arquivo, não tenho certeza. E para a textura, temos isso aqui. Então texturas, guaxinim de entidade e, em seguida, o guaxinim, um PNG. Agora, este não tenho porcentagem certeza porque na verdade não tentei isso sem o arquivo de animação ainda. Mas acho que vai ficar bem. Vamos ver se estamos recebendo um acidente, então você vai consertar isso em um momento sem preocupações lá. Mas este é o arquivo de modelo real e, em seguida, também precisamos da renderização. Claro, o renderizador, neste caso, deve ser um pouco mais fácil. Portanto, isso vai estender o renderizador de entidade GU, entidade guaxinim. Mais uma vez, observe nenhum modelo de registro, exceto entidade guaxinim, mas ele simplesmente passa o mouse sobre isso. E se construirmos nosso super combinando, agora o que precisamos fazer aqui é que precisamos nos livrar desse provedor de modelos e, na verdade, apenas criar um novo modelo de guaxinim aqui. Também vou fazer isso começar isso ou raio 0,3. Acho que vai ficar bem. E então será incrível fazer é que eu vou embora. Só queríamos substituir o método do tipo de renderização aqui. Então, isso também aumenta. E também o que queremos fazer é obter a localização da textura. Em seguida, vamos escolher o mesmo local de textura. Aqui. Nós só vamos fornecer também, e isso deve ser praticamente tudo o que precisamos fazer. Então, o modelo e o renderizador realmente bastante simples. Todas as coisas consideradas. Não há muitas coisas aqui. Como você pode ver nos modelos de baunilha. Na verdade, há muito mais lá porque, é claro, os modelos de baunilha, na verdade, todo o modelo é salvo na classe em vez de nesta geometria, Jason. Então essa é a coisa muito legal. Então, precisamos basicamente adicionar o renderizador corretamente. Então, como vamos fazer um IVA? Vamos fazer isso indo à nossa aula de fosso do curso MC. E, em seguida, dentro da configuração do cliente, muito importante. Vamos dizer que a entidade nos renderize, renderize-nos este aqui. Modo de registro, tipos de entidade. Vamos dizer que o guaxinim não fica. Isso é igual ao guaxinim cólon, renderiza dois pontos, dois pontos novos. E isso deve ser isso. Isso é praticamente o que precisamos fazer nessa frente também. Agora também teremos que adicionar um novo item. E isso vai ser, claro, o óvulo de desova, o esperma e o óvulo. Na verdade, vou copiar este por uma vez como sempre, claro, o código real está disponível para você. Isso não é muito louco. Você pode ver esse gargalo de guaxinim frio. Este é do tipo de item para item hispânico na verdade. E essas são as cores basicamente que o Reino Unido tem. E isso é praticamente tudo o que você precisa fazer lá. Então. É claro que, como este é realmente um item normal, também queremos adicionar a tradução aqui, a pasta lang em sublinhar-nos arquivo JSON. Então, vamos apenas adicionar isso aqui também. Há os guaxinins geram, por exemplo. E, na verdade, também precisamos de um arquivo de modelo de item. Sei que isso é muito louco, mas é verdade. Ou isso também não é muito louco. Assim, podemos ver que é como o modelo de item pai gera ovo. Então, isso vai ser colorido com essas duas cores aqui. Então isso é tudo o que há para ele. Então o item também deve funcionar totalmente bem. E bem, se não me engano, acredito que deveria ter chegado a tudo o que eu precisava. Eu precisava adicionar aqui. Se não, então definitivamente vamos ver que não funciona, mas isso vai ficar bem. E também veremos o que você pode fazer com uma flecha. Mas, por enquanto, acho que isso é tudo o que precisamos. Então, vamos ver por obras ou o que nos encontramos no Minecraft. E como você pode ver, o guaxinim AG foi adicionado com sucesso ao jogo. E agora vamos ver se eu clicar com o botão direito do mouse se o guaxinim aparecer. E lá está ele. Em toda a sua glória, está se movendo. Agora, é claro, como dissemos, não tem animações interessantes em particular no momento. E eu realmente acredito que a caixa delimitadora real, se eu pressionar F3, seja, seja um pouco pequena demais. Então, talvez possamos adicionar um pouco mais de caixa delimitadora a ela. Por enquanto, isso é muito legal e sim, é necessário como é fácil agora. Oh, na verdade vai fluir por causa da ferida flutuante de cobalto. Isso é meio engraçado, mas sim, isso é praticamente o quanto mais fácil adicionar uma multidão à Microsoft. Só por uma questão de discussão, vamos fazer isso um pouco maior. Digamos que algo como 0,8 e talvez a altura tenha sido seis. Isso vai ficar bem. que ficaremos bem conosco. E isso é, na verdade, todas as coisas que você precisa. Então, para recapitular mais uma vez, vamos precisar da classe de entidade guaxinim personalizada. Claro, muito importante. A fábrica real aqui, você não precisa ainda, mas já adicionamos isso porque por que não? Só faz sentido neste caso. E então os objetivos e os atributos foram muito importantes aqui. E então as outras coisas são muito Ritchie. Não necessariamente, não é necessário. É bom ter e ter à base do mar. Em seguida, precisávamos adicionar isso e registrar-se corretamente na classe de tipos de entidade de modo aqui. Precisávamos de um renderizador e um arquivo de modelo para isso, o arquivo do modelo aponta para o arquivo de modelo. Portanto, isso aponta para o GeoJSON, bem como para o extra real e as animações. E então a queda do aluguel também aponta para a textura. Ele também determina o tamanho real da sombra e cria um novo modelo. Essa é a ideia geral de como eles trabalham juntos. Também precisávamos atribuir a ele os atributos. Isso é incrivelmente importante porque se você não fizer isso, acredito que o jogo realmente falha quando você não faz isso e você tenta gerar as entidades reais, isso é realmente importante. Em seguida, também adicionamos o ECG de spawn aqui. E então, no nosso modo de curso MC, aqui, registramos o renderizador. E isso é tudo o que precisávamos fazer. O arquivo geo, é claro, e a textura real aqui também são muito importantes. Mas, além disso, isso é praticamente tudo o que você precisa para uma multidão personalizada muito simples. Ainda feito com lábio de gecko, como eu disse. E, em seguida, na próxima palestra, vamos imediatamente entrar e dar uma olhada nas animações muito legais que estão lá, que estão basicamente disponíveis para nós. Porque isso é algo que é realmente poderoso e na verdade é bastante simples de usar. Definitivamente comparado às animações de baunilha, porque essas são essas, você não quer usá-las basicamente. Bem, seja qual for o caso, isso já é isso, então, para esta palestra aqui, espero que você tenha achado útil e aprenda algo novo. Vejo você na próxima palestra. 106. (tópicos adicionais) como adicionar animações de entidades com Geckolib e Blockbench: Tudo bem, bem-vindo de volta ao curso de forragem para 118. E nesta palestra, vamos adicionar algumas animações à nossa entidade personalizada que adicionamos a última palestra. E para isso estamos antes de tudo, vamos entrar no que vamos abrir o banco de blocos mais uma vez. Agora, este guaxinim e o arquivo real do modelo de pitada de bloco devem ser fornecidos a você, embora seja baixável da última palestra ou nesta palestra, definitivamente devemos ser baixados. E o, nós vamos basicamente abri-lo e depois ir para a torneira animada aqui. Agora, já deveríamos ter todas essas três animações aqui. E vou basicamente mostrar rapidamente a ideia geral de uma animação. Só por uma questão de discussão, vamos apenas fazer um novo. Então, vamos clicar no pequeno botão mais. E então você pode fazer uma nova animação aqui, você pode ver isso. Agora. Isso geralmente é que você quer chamar isso de guaxinins escuros de animação. Portanto, esse é o nome do item. E então, quaisquer que sejam as animações, vamos chamar esse teste por uma questão de argumento. E então você pode saber o que você pode fazer esse loop. Você pode, como você pode ver, fazer muitas outras coisas aqui. Vamos apenas confirmar, vou ficar bem conosco? Agora para esta animação? Uma vez que você pode, basicamente, você tem uma linha do tempo na parte inferior aqui. E eu posso, ele seleciona certas partes do corpo. Por exemplo, posso selecionar o corpo e, de repente , você pode ver aqui embaixo, tenho a possibilidade de adicionar quadros-chave. Se você já editou um vídeo, isso é muito parecido com isso. Por exemplo, eu poderia dizer, ok, eu quero enquadrar a posição, então vou clicar no sinal de mais aqui. Então você pode ver que nesta posição no código de tempo 0, agora tenho um quadro-chave para essa parte específica. Então, esse corpo, não vai ser quadro-chave aqui. Então, se eu mover o tempo, digamos, digamos que 0,52 quadros onde quer que isso esteja. Clique neste Plus novamente. Você pode ver agora no momento de 0,52, agora eu tenho um segundo quadro-chave. E se eu tiver feito, por exemplo, mudar, eu posso mudá-lo aqui nesta posição. Então eu poderia, por exemplo, dizer que talvez no corpo real para subir dois, eu posso fazê-lo ou também posso fazê-lo dentro da coisa real. E você pode ver que, à esquerda, a posição real também muda. E foi muito legal, há alguns métodos de flexibilização. Então você pode ver que eles representam basicamente como isso acontece. Porque se eu colocar esse slide de volta e colocar este botão de reprodução, você pode ver que isso sobe. Isso é muito rápido. Então talvez você vai ser como, quer saber, vamos pausar isso e vamos realmente mover isso para assim vai ser um pouco mais lento. E então você pode ver isso certo? Então você pode vê-lo se movendo para cima. E então ele é reiniciado, é claro, porque esta é uma animação em loop neste caso. Basicamente redefine aqui com as coisas fáceis que você pode. Há certas coisas. Você pode fazer etapas. Você pode fazer algum tipo de flexibilização como essa , onde é lento e depois vai mais rápido. Você pode até fazer isso assim, onde é muito rápido no início e depois diminui ou diminuindo e diminuindo. Você pode ver que há muitos tipos diferentes. Isso é mesmo como algum tipo de aparência como um pouco de aleatoriedade, tipo de saltar para cima e para baixo, o que é muito legal. Então, há muitas coisas que você poderia realmente fazer aqui. Há também algumas coisas muito legais que você pode adicionar aqui. Agora eu não tenho 100% de certeza de como todos vocês podem acessar os comandos reais. Mas se eu, por exemplo, entrar no quadro ocioso aqui, então eu cliquei neste Idle. Agora estou na animação ociosa real e clico na cauda real e clico na rotação. Você pode ver que eu tenho pecado de pontos matemáticos. Então esta é apenas a curva senoidal. Basicamente aqui, onde u ponto n m tempo é apenas o timecode que estamos fazendo tempo multiplicaria isso por 150 e depois multiplicando o resultado por 225. E isso basicamente resulta no fato de que a cauda basicamente irá girar de uma maneira muito, digamos, previsível porque a curva senoidal é claro assim, certo? Então isso é apenas uma coisa de matemática geral. Isso é muito legal. Acredito que no site eles realmente têm a soma dos métodos que estão disponíveis aqui, basicamente para ver. Mas isso é uma coisa muito legal. E seja qual for o caso, vamos voltar para nossos testes de animação com nosso corpo aqui. Então podemos ver agora nosso corpo, ele está se movendo para cima e para baixo. E isso é muito legal. Agora, é claro, quando você está adicionando animações, isso está fazendo com que elas pareçam muito bonitas e muito boas. Tudo isso. Muito tempo, vai ser, você sabe, obviamente demorado. Então você só vai precisar experimentar um monte de coisas. Vê isso? Espero que funcione e então vai ficar bem. Mas também tenha uma animação ambulante. Então você pode ver aqui esta é a animação ambulante. Então também temos uma animação sentada, mas isso realmente não faz nada. É basicamente que os corpos inteiros se inclinam um pouco. E basicamente o guaxinim está sentado aqui, então a nação insular, já vimos isso, mas basicamente apenas a cabeça e o corpo subindo e descendo, muito ligeiramente. Você pode ver isso. Este é um movimento muito leve para cima e para baixo. E então a cauda basicamente balançando um pouco para frente e para trás apenas para que tenha um pouco de movimento. Então você pode ver isso. Mesmo esse pequeno movimento ocioso é suficiente para dar uma ilusão muito agradável de que isso realmente esteja vivo. E assim, como você pode ver, não envolve muitos ajustes que você precisa. Coisas que são muito, muito difíceis ou algo como a animação a pé, animações de execução, especialmente para quadrúpedes. Então, para animais com quatro pernas, isso é incrivelmente difícil, existem alguns recursos que eu realmente encontrei. Se você estiver realmente interessado nisso, eu os vincularei também aos recursos. Eles são incrivelmente legais. Então, basicamente, é realmente um olhar anatômico de como, como, como basicamente quadrúpedes Animais andam e como isso é basicamente feito em animação. Então, animais de quatro patas é um, bem, algo em animação que é muito difícil. Então, vai ser algo bem. Mas porque é Minecraft, você está trabalhando com um pouco de um bloco que ele animal. Você provavelmente tem um pouco mais de margem de manobra aqui, seja qual for o caso, se isso realmente lhe interessa, eu recomendo verificar aqueles também, se isso é algo que possa lhe interessar. Mas seja qual for o caso, basicamente terminamos com as animações de vontade geral. Na verdade, vou excluir o teste aqui novamente. E então o resto ficará bem. O que vou fazer é que assim que isso for feito, eu posso basicamente clicar na imprensa Control S para salvar isso ou também posso ir, acredito para animação aqui. E então posso dizer exportar animações. E acredito que isso já deveria fazer isso. Ou podemos salvar todas as animações. Vamos salvar isso em guaxinim escrito corretamente, não animação adjacente e vamos substituir isso. Tudo bem. E então vamos voltar para a inteligência. Em nosso curso MC de ativos, faremos um novo diretório chamado animações. São animações? Sim, são animações. E então o que vou fazer é copiar sobre a animação real também. Então, a ideia geral é que essas serão as animações de guaxinim corretamente. Lá vai você. Portanto, esses são basicamente todos os dados necessários lá. Não precisamos entrar nisso. Isso é bom. Agora, o que é importante é que , claro, agora precisamos especificar essas animações no registro real em uma entidade. Abrindo a entidade guaxinim. O que vamos fazer é adicionar, em primeiro lugar, o controlador, bem como os métodos de predicado. Então, vou copiar sobre o método GET do produto. Isso será explicado em apenas um momento. Então, como você pode ver, ainda não temos a sessão sentada, então vamos excluir isso por enquanto. E no controlador vai ter a seguinte aparência. Então, vamos ter ponto de dados Adicionar Animation Controller com um novo controlador de animação, controlador de código. E então estamos passando esse método de predicado aqui. Isso é praticamente tudo o que há para ele. E, em seguida, certificando-se de que tudo isso está escrito corretamente. Então, esses nomes aqui, metade da correspondência com os nomes que estão dentro da animação. Este aqui é a animação. Você pode ver isso realmente escrito, correto? Incorretamente. Eu não represento saber o porquê, mas lá vai você. Vamos mudar isso rapidamente. Lá vai você. E então é 100% correto porque então o guaxinim é escrito assim e aqui também, então tudo deve estar funcionando bem. Ele pode ver que a animação de caminhada é resfriada quando o ponto do evento está se movendo. Eu recomendo vivamente. Dê uma olhada no evento de animação para algumas coisas específicas. Você pode, por exemplo, ver que há algumas coisas aqui que você pode dar uma olhada nisso, alguns dados extras até. Então, isso também é realmente interessante. Mas, no geral, o movimento é provavelmente o que é mais importante aqui. E então algumas das outras coisas que você só terá que brincar com isso também. Então eu recomendo apenas estar aberto à experimentação com isso e experimente muitas coisas. Essa é a melhor coisa que eu posso, basicamente com certeza que essa é uma ideia muito inteligente. Agora, você pode dizer, bem, quero dizer, o que mais precisamos? Isso é tudo o que precisamos porque já configuramos a animação no meio. Então, aqui, nós já o configuramos. Animações recrutam dados de animação Jason, porque esse Jason já está aqui. E agora temos basicamente como predicado, esse é o tipo de cérebro das animações. Isso basicamente determina qual animação está sendo reproduzida no momento. E bem, quero dizer, isso é, isso é praticamente tudo o que precisamos para isso. Como eu disse, se você tem algumas idéias muito legais, animações muito loucas, tudo se resume a usar bancada de bloco, experimentar muitas coisas lá. Como eu disse, tenho muitos recursos em animação por aí também. Então, espero que isso o ajude. Mas, por enquanto, eu acho, vamos ver se funciona. Nós nos encontramos de volta ao Minecraft. Então, vamos ver, vamos gerar alguns guaxinins e vamos ver, Lá vai você. Já funciona totalmente bem. E até mesmo a animação ambulante, vamos dar uma olhada nessa. Quando começar a andar, vamos ver. Bem, às vezes é difícil ver quando isso está se afastando. Mas acredito que está funcionando para que suas pernas estejam se movendo enquanto a caminhada, sim. Às vezes, a velocidade de movimento e a animação não combinam totalmente. É claro que isso é algo que você só precisa ajustar e mudará como até que basicamente funcione. Mas você pode ver que a animação ociosa real funciona totalmente bem. E então a animação ambulante também funciona. Tudo funciona muito bem aqui. Uma nova porção de nitrogênio aqui. Por uma questão de argumento. Lá vai você. Quero dizer, isso é honestamente muito legal. E isso é realmente o quão fácil pode ser adicionar algumas animações antigas, quero dizer, básicas com lábio de gecko às suas entidades do Minecraft, certo? Mas isso já será para esta palestra aqui. Espero que você tenha achado útil e aprenda algumas das novas. E te vejo na próxima palestra. Então, sim. 107. (tópicos adicionais) como adicionar variáveis de entidade: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos adicionar uma variação do cliente à nossa entidade de guaxinim já existente. Qual a nossa variância? Bem, você pode saber, por exemplo, que os cavalos podem ter redes coloridas diferentes ou em geral, extras coloridos diferentes. E isso é feito por variância. Agora, vamos adicionar duas dessas variantes ao nosso guaxinim. E a forma como isso funciona é basicamente que temos apenas uma textura diferente. Então, vou apenas copiá-los. Lá vai você. Temos um guaxinim escuro e um guaxinim vermelho. Essas são as três variantes diferentes que temos. Guaxinim, guaxinim escuro e um disco vermelho. E como agora vamos implementar isso? Bem, na verdade, é bastante simples, tudo considerado. Então, isso é algo que você terá que fazer basicamente, se quiser que todos os seus animais tenham variantes diferentes em todas as suas entidades tenham variância diferente, então você é vai precisar de um, bem, em primeiro lugar, de uma variante enum, e então vamos basicamente escolher dependendo desse enum, um local de recurso diferente. Em nosso pacote de entidades, vamos clicar com o botão direito do mouse em novo pacote chamado variante. Então, dentro de lá, vou colocar, esta será a variante guaxinim. Isso vai ser alterado para um enum. E então eu realmente copiarei isso porque o conteúdo real disso deve ser sempre o mesmo. A única coisa que deve mudar aqui são basicamente seus valores de enum. Essa é a ideia geral. Quando você tem uma variante diferente, você simplesmente renomeia isso e renomeia todas as coisas aqui também, certo? Então, se isso fosse chamado, quero dizer, agora isso mudaria o nome também, mas seja qual for o caso, então apenas mudou o nome em todos os lugares e então você ficaria totalmente bem. Todo esse método estático que vamos precisar, vamos precisar desse fluxo de erro final. Tudo isso vai ser necessário. A única coisa que é basicamente a maior parte do costume aqui é que o nome disso e , em seguida, também o nome da sua variação individual. Onde usamos isso ou onde começamos a usar isso? Bem, vamos usar isso no renderizador de guaxinim. E a maneira como faremos isso é mais uma vez, eu copiarei isso, mas todo o código está, naturalmente, disponível para você no repositório do GitHub e individual também. E isso é, na verdade, pode parecer um pouco complicado, mas na verdade é bastante simples. Então, agora, vamos apenas importar isso. Lá vai você. E então vamos ter um mapa. Você pode ver que este é um local por mapa variante. Este é apenas um mapa que mapeia uma variante de registro específica para um local de recurso. Isso é tudo o que ele faz. Embora estejamos dizendo, ei, se tivermos a variante padrão de guaxinim, então essa é a textura para a qual você quer apontar. Se tivermos uma variante escura, então queríamos apontar para essa textura. E se tivermos a variante vermelha, vamos viajar para essa textura. Parece um pouco mais complicado, mas quando você pensa sobre isso, é realmente tudo o que ele faz. E se você tiver várias entradas, se você tiver mais entradas aqui, você sabe, basta adicionar mais entradas aqui. Agora, é claro, vamos ver um aviso aqui porque já adicionamos essa chave real, neste caso aqui. Mas sim, isso é tudo o que você realmente precisa fazer. Então, se você tiver mais, basta adicionar mais. O mesmo aqui. Se você tiver mais, basta adicionar mais, certificando-se de aumentar as ideias aqui, isso também é muito importante. Bem, então, em vez de apenas fazer isso, o que vamos fazer é que vamos dizer, Ok, hum, bem, nós só queremos retornar a localização bivariante dot get, e então temos a entidade guaxinim disponível aqui. Mas bem, a entidade de registro agora, ainda não tem uma variante, não é? Isso não é nenhum problema. Porque agora vamos basicamente adicionar essas variantes. Então, vamos manter esta flecha aqui por enquanto. Não, não preocupado basicamente. E depois vamos adicionar todas as coisas que precisamos para a variação. Então, mais uma vez, haverá muita cópia porque, mais uma vez, muito desse código sempre será o mesmo. Quase sempre será o mesmo. Vai parecer o mesmo. Vai ser muito parecido. Apenas os detalhes precisam ser alterados, mas vou tentar o meu melhor para passar e explicar tudo o que preciso. Então, antes de tudo, vamos precisar um acessador de dados da entidade. Portanto, esse é o tipo de ID de dados da variante. Isso é basicamente uma sincronização de dados da entidade. Portanto, é do tipo inteiro. Essa é a ideia geral. Então, geralmente eu gosto de colocar isso no topo da classe porque é apenas um pouco mais legível mesmo que isso também pertença à variação. Eu quero manter isso no topo da classe e, em seguida, o resto vai abaixo dos comentários de variação aqui. Ok, quais são as coisas que vamos precisar? Bem, a primeira coisa que vamos precisar é precisaremos de um método de variante definido. Então, lá vai você com uma variante de registro. E, em seguida, podemos definir os dados da entidade da variante do tipo de ID de dados de data do tipo, que são exatamente esses dados sincronizados que criamos aqui. E então vamos defini-lo para o ID. E, em seguida, usando uma operação aqui, não precisamos entrar nos detalhes. Isso é praticamente o que o cavalo também faz. Então, a maior parte disso também é tirada do cavalo. Se realmente mudarmos tecla shift duas vezes e vamos para o, acredito que é o cavalo abstrato que tem isso, mas não tenho 100% de certeza. Acredito que seja o cavalo absoluto. Isso tem o ID. Bem, vamos dar uma olhada no cavalo do que talvez seja, na verdade, o tipo de identificação de dados. Podemos ver que isso parece muito parecido. E então, se nós clicar no botão do meio do mouse sobre isso. Você pode ver, por exemplo, aqui mesmo, definir como variante que apenas definimos a variante e, em seguida, definimos variantes e marcações. Então você pode ver que aqui ele basicamente também faz algumas coisas interessantes com um pouco de mudança. Então, não vamos nos preocupar muito com isso. Vamos apenas dizer que vamos precisar disso. E se tivermos isso no necrotério, ficaremos totalmente bem. Se tivermos um conjunto de variantes, é claro que também queremos uma variante get, mas queríamos duas diferentes que queremos. Um em que obtemos a variante guaxinim e outra em que realmente tiramos o número inteiro disso. E isso é praticamente também o que vamos precisar ou o, este aqui. Então, podemos dizer agora instância dot get variante. E então este não tem mais flechas. E agora precisamos fazer o mesmo no modelo. O que posso fazer é simplesmente copiar isso aqui. E vamos dizer aqui, este vai ser o renderizador de guaxinim que, e então vamos adicionar isso. Bem, eu deveria ter o ponto lá dentro. Lá vai você. E então isso é chamado de objeto em vez disso. Isso é totalmente bom. E, em seguida, terminamos a variação real tanto no renderizador quanto no modelo. Esses são os dois únicos lugares onde você precisa mudar isso. Caso contrário, o resto acontecerá na classe de entidade. O que mais precisamos para a entidade? Bem, uma vez que o mundo salve, é claro, ainda precisamos salvar isso de alguma forma. Portanto, vamos precisar de alguns dados NVT. Então, tudo isso será salvo aqui, leia dados salvos adicionais e, em seguida, também adicionará dados salvos adicionais aqui. Então esses dois são muito importantes. E então, por último, mas não menos importante, basicamente acredito ser a definição de dados de sincronização. Isso é incrivelmente importante porque isso sempre será necessário se você tiver qualquer tipo de entidade, acessador de dados, barba, o tipo de ID de dados, ou seja, suponha que veremos uma sessão também. Então, um acessador de dados sentado do tipo booleano. Isso também é o que teremos que adicionar neste método de dados de sincronização definida é muito importante. Isso é definitivamente o que vamos precisar. E então, por último, mas não menos importante, basicamente a última coisa que precisamos é o método de desova finalizado. E isso é muito interessante. Agora, a razão pela qual precisamos disso é porque isso é basicamente chamado quando usamos o, bem, quero dizer, quando essa entidade realmente é gerada e isso finaliza o esporte. Então, literalmente vamos dizer, Ei, apenas me dê um valor aleatório dessa variante de guaxinim. E então vamos defini-lo exatamente para essa variância. Isso é tudo o que estamos fazendo aqui. E com isso, basicamente a variante está completa. E você pode ver que, no geral, é praticamente só isso, esses métodos, todos eles serão quase sempre os mesmos. Se você tiver um nome de enum diferente, o nome muda aqui. Além disso, provavelmente é praticamente sempre o mesmo. Ele sempre vai estar lá. Deve ser sempre o mesmo. No geral, isso é praticamente tudo isso. Há o Twitter. Não é tão complicado. Você só precisa saber exatamente onde precisa fazer essas alterações, é claro, no renderizador e no modelo real também. Apenas essas duas alterações, apenas adicionando o mapa no renderizador também. Então este mapa aqui, mas no geral, acredito que isso deve ser bastante autoexplicativo, todas as coisas consideradas, nada aqui são dois, eu diria fora dos limites da maior parte disso. Portanto, isso deve ser bastante simples. E agora eu acho, bem, quero dizer, vamos ver se funciona. Ou nos encontramos de volta ao Minecraft. Então, vamos gerar alguns guaxinins e vamos ver se as variações são adicionadas. E lá vai você. Oh não, nós temos uma variante que não tem textura, mas não se preocupe, isso deve ser apenas um erro de digitação na localização real do recurso. Você pode ver que o vermelho funciona totalmente bem. Vamos ver o que se trata e vamos consertar isso. Como eu suspeitava aqui, há um erro de digitação. Não se preocupe em nada. Nós só vamos consertar isso. Então o C estava faltando mais uma vez, com isso, basicamente tudo, agora estaria funcionando totalmente bem. E, na verdade, é assim que é fácil adicionar alguma variação personalizada ao seu costume, bem à sua entidade personalizada. Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se ele o fizesse, apreciaria muito uma crítica sua. Caso contrário, te vejo na próxima palestra. 108. (tópicos adicionais) Entidades de Tameable: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos adicionar um recurso de habilidade de equipe à nossa entidade personalizada, basicamente tornando possível que possamos domar nosso guaxinim. E isso é mais uma vez, uma daquelas coisas que na verdade é bastante simples depois de implementá-lo. E você pode ver quais métodos temos que substituir aqui na classe de entidade Guaxinim Custom. Agora, a primeira coisa que precisamos fazer é que você precisa ir até aqui e realmente mudar isso para um animal amável. Então, este será um animal atingível. Lá vai você. Então vamos pegar isso, vou selecioná-lo, pressionar Control C, Control V para colá-lo aqui e aqui também. Acredito que esses devem ser todos os lugares onde isso precisa ser feito. Então, é claro, mais uma vez copiarei sobre a maior parte disso. Tudo isso é claro, mais uma vez disponível para você no repositório do GitHub em um indivíduo também. Essa será a habilidade da equipe. Isso vai ficar no fundo aqui, e podemos ver todas as coisas e vamos passar por cada um dos métodos um por um. Você pode ver antes de tudo, temos esse acessador de dados sentado. Mais uma vez, vou realmente mover isso também para que tenhamos dizendo aos dados no topo aqui, então o que é muito importante é porque temos outra dessas entradas de dados sincronizadas. Precisamos adicionar isso aos dados de sincronização definidos. Isso é muito importante que façamos isso. Então, vamos ter que dizer esses dados de entidade estrela, definir, isso está parado e, em seguida o valor padrão será falso. Portanto, isso é incrivelmente importante e que isso também é adicionado aqui, caso contrário, isso não funcionará. Então essa é uma das coisas que precisamos fazer. Agora, a razão pela qual realmente precisamos dessa coisa em particular, o acessório aqui, é por causa do fato de que outra forma, o predicado para a animação não funciona. Porque, em teoria, se eu realmente entrar no animal da mesa e eu acredito que lá está, a ordem booleana de se sentar já está lá, então isso já existe, o que significa que por que precisaríamos outro acessório aqui, outro tipo de dados aqui, bem, ele não sincroniza esse booleano aqui, acredito que só esteja disponível no servidor. Não tenho 100% de certeza, mas acredito que isso só está disponível no servidor. Mas é claro que, no caso do gecko lip, que na verdade só funciona no cliente, o que significa que há uma incompatibilidade entre este booleano aqui ou o servidor e o cliente. Portanto, precisamos da sincronização real dos dados aqui. É por isso que temos isso. E então também podemos agora descomentar essas duas coisas. Agora, isso é muito importante que seu sentar quando o objetivo ordenado, tenha uma prioridade menor nesta ou uma prioridade mais alta, acho que tem que ser um número menor. Então, basicamente, todos os outros olham aleatórios em torno de gols de caminhada aleatórios, coisas assim. Isso é muito importante porque se isso tiver uma prioridade menor do que, por exemplo, o objetivo de passeio aleatório, então o guaxinim neste caso, mesmo que seja ordenado a sentar-se, apenas se levantará e andando e depois sente-se novamente e depois continue andando. Então, não é realmente o que você quer que ele faça. Então, também podemos adicionar imediatamente a animação aqui. Esta é a animação sentada. Então, se isso estiver sentado, então vamos basicamente chamar a animação de que guaxinim sentado, nada muito louco, deve ser bastante autoexplicativo. E com isso, a animação está feita. E agora podemos realmente dar uma olhada em todas as coisas diferentes para a alcançabilidade de que precisamos. Para a primeira coisa é basicamente o grande método aqui, ou seja, o método mob interact, mas esse é o método que é chamado quando um jogador clica com o botão direito do mouse. Então este esfregão, eu fiz um item aqui, então este é o item para domesticar. Acabei de escolher uma maçã. Você poderia, por exemplo, substituir isso. Você também pode adicionar vários itens, se quiser. Claro, o Java normal se aplica. Você é, então não se preocupe. Lá. Basicamente vamos verificar, ei, é o item com o qual clicamos com o botão direito do mouse, na verdade, o item para domesticar. E se este animal ainda não for atingido, então vamos entrar aqui, do lado do cliente, vamos consumir, então vamos fazê-lo clicar com o botão direito, mas nada acontece. No entanto, no servidor eles estão, vamos entrar e fazer algumas coisas. Primeiro de tudo, se a habilidade aqui for instabilidade. Então a ideia aqui é que, se este não for o caso, que significa que, se não estivermos no motor criativo , estamos encolhendo ou diminuindo a pilha de itens por um. E se estivermos no modo criativo deles, não estamos fazendo isso. Isso é tudo o que há para ele. Aqui na equipe de animais é apenas um evento que basicamente é demitido quando este animal é domado. E então, mais uma vez, estamos apenas nos certificando de que não estamos no cliente basicamente. Eu acho que isso é basicamente redundante, mas vamos mantê-lo porque não se preocupe lá. E então vamos dizer, antes de tudo, vamos chamar o método ETA. Este jogador em particular dentro de um vai recalcular o caminho para a navegação. Em seguida, vamos definir as metas para conhecer essa linha. Este seria o alvo agressivo basicamente. Em seguida, vamos chamar o evento de entidade de transmissões com bytes sete. Portanto, este é um evento específico aqui. Você pode ver, já que um pacote específico para todos os jogadores desse evento, é, é uma loucura. Este é basicamente o evento que precisamos enviar quando um determinado animal foi alcançado. Acredito que isso é responsável por gerar os Corações quando você realmente recebe a equipe, então estamos imediatamente sentando para verdade. E podemos realmente dar uma olhada no set sentado aqui. Então você pode ver que não apenas estamos definindo os dados da entidade levando a tudo o que estamos passando aqui? Também estamos chamando o conjunto ordenado para sentar método, que basicamente definiu essa ordem para sentar no animal da mesa aqui também para o que estamos passando. Então, a ideia é que precisamos que ambos sejam definidos corretamente. E então tivemos isso, sim, essa é basicamente a ideia geral aqui. E então aqui está este, uma vez que já tínhamos domado esse animal. E mais uma vez, estamos no servidor, certificando-se de que usamos apenas a mão principal, porque se não tivermos isso, basicamente nunca poderemos fazer com que o animal real se sente porque isso é chamado para ambas as mãos. Isso é muito importante. Isso é chamado duas vezes, uma para cada mão do jogador. Portanto, tenha cuidado com isso. É claro que isso também é chamado duas vezes, um para o cliente e outro para o lado do servidor. Então, no total, é chamado quatro vezes. Portanto, tenha isso em mente. E este aqui, é por isso que precisamos da mão de interação aqui. Caso contrário, isso seria chamado duas vezes. E então, é claro, se você alternar algo duas vezes, bem, ele simplesmente reverte para sua posição original. Portanto, o animal real nunca se sentaria. Então isso é muito importante aqui. Aqui. Estamos basicamente fazendo um passe quando o item para domesticar é usado novamente, mesmo que basicamente já tenha sido nomeado. Mas isso é tudo o que há para o método de interação da máfia. Esta é basicamente a peça central disso, é claro, onde estamos definindo isso para ser domado. E temos o conjunto conjunto, o método de configuração, nada muito louco. Também temos o método T definido. Onde está esse frio? Deixe-me realmente dar uma olhada nisso. Isso é frio. Na verdade, não tenho 100% de certeza que acredito que isso está frio. Também pode ser chamado através de algumas dessas coisas aqui, mas basicamente estamos apenas mudando alguns dos atributos aqui se este animal for domado. Então isso é uma coisa normal que basicamente pode acontecer. E então também precisamos apenas, eu não acho que precisamos anular isso necessariamente, mas eu sobreescrevi no menos é a equipe onde basicamente essa é a equipe a que esse animal pertence. Então temos o último, mas não menos importante, o método booleano pode ser lixiviado. Eu defini isso como falso. Agora. Algo que é um bug atualmente no lábio de gecko. Eu não sei se isso ainda é uma coisa no momento, mas isso tem sido um problema há algum tempo, é quando isso é verdade e você realmente toca essa lesão, uma entidade labial de gecko, então a liderança real é, é invisível. Ainda está lá. Funciona, mas é invisível. Não sei se existe uma solução ainda. Vou verificar isso em uma data posterior também. Mas se for fixo ou se não estiver fixo e provavelmente teremos uma correção para isso em talvez palestras posteriores ou em algum momento no futuro também. Mas isso é praticamente tudo o que precisamos para a habilidade da equipe. Você pode ver que definitivamente fica um pouco mais complicado aqui. Não é apenas como, Oh, vamos colocar um enum lá, uma espécie de variante. Bata algumas coisas lá e depois terminamos. Agora, a habilidade da equipe é um pouco mais complicada, mas todas as coisas consideradas não foram. Bem, não é tão louco. A capacidade sentada é realmente a coisa que pode ser a mais difícil em algumas circunstâncias, porque todas as peças precisam estar corretas. Temos que esfriá-lo da maneira correta, nos momentos corretos. E agora é muito importante, mais uma vez, é o objetivo. Esta é na maioria das vezes a coisa que aconteceu comigo. Por que eles basicamente param sentar ou quando você ordena que eles se sentem. E, de repente, o animal simplesmente sobe e vai para outro lugar e depois se senta de volta. Mas essa era uma das coisas. Depois de ter adicionado tudo isso, agora poderemos ver não apenas a animação sentada, mas, claro, também como domar o animal. Então, vamos ver se funciona ou por que nos encontramos de volta ao Minecraft. Então, vamos ver se consigo domar o guaxinim. E lá vai você, melhores amigos para sempre. Agora está sentado. Agora, o que eu costumo fazer para fazê-lo basicamente garante que ele permaneça no mesmo lugar. É que eu não vou trancá-lo na lâmpada basicamente fazer um pouco de uma caverna aqui para que eu saiba que tudo bem, se definitivamente se mudou, se estiver fora da caverna basicamente. E por enquanto, isso parece totalmente bom, como se realmente parece estar sentado lá. E você também pode ver a animação sentada , a propósito, vamos realmente dar uma olhada no CEO. E então, se eu clicar com o botão direito do mouse novamente, então o guaxinim deve começar a andar novamente ou apenas usar outros objetivos basicamente para fazer o que quiser. Basicamente, passeie por aí, ou sempre que quiser fazer. Lá vai você. Agora ele está correndo de novo. Então eles vão e sim, isso é, quero dizer, você pode ver que é realmente mais rápido por causa do aumento de velocidade que tem, ganhou através da domesticação. Isso é algo que aconteceu na domesticação. Vamos dar uma olhada nisso em apenas um momento novamente. Mas sim, quero dizer, isso é praticamente tudo o que realmente precisávamos fazer. E agora você tem um guaxinim Teams que é muito legal. Mais uma vez, a velocidade de movimento aqui é basicamente por isso que é tão rápido. Estamos basicamente configurando para 0,5, eu acredito. Vamos ver, na verdade, qual seria o movimento, 0,3. Então, estamos quase dobrando a velocidade de movimento. É claro que isso é algo como qualquer outro momento em que se trata dos atributos, valores de certos atributos, neste caso, ou certas variáveis, você só precisa brincar com eles. Você terá que mudá-los provavelmente muitas vezes de qualquer maneira, simplesmente por causa de se você quiser realmente desenterrar e se certificar de que seu mod está devidamente equilibrado, você terá que mudar os números. Quero dizer, muitas vezes esta é uma daquelas coisas em que, mais uma vez, apenas brincar com os números. Experimente um monte de coisas, esteja aberto à experimentação. E então, enquanto eu quero dizer, nada basicamente está no seu caminho. Mas isso já é isso então, para esta palestra aqui, espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. 109. (tópicos adicionais) Entidades de rentável: Ou eu dou as boas-vindas de volta ao curso de forja para quando 18. E nesta palestra, vamos adicionar uma entidade personalizada para o Minecraft. Então, depois de passarmos com a entidade guaxinim, agora vamos adicionar as entidades de tigre. Então, é claro, mais uma vez tenha um modelo de banco de blog para isso. Lá vai você. Isso é claro que também faça o download de ambos para você, mas basicamente tudo isso já foi configurado e tudo basicamente vai funcionar muito parecido com o guaxinim. O que vamos ter é que teremos uma nova classe, primeiro lugar, e essa será a entidade tigre. Lá vai você. Agora, a entidade tigre vai ser muito interessante. Primeiro de tudo, copiarei mais uma vez sobre a totalidade praticamente desta classe. Esta vai ser uma aula muito longa, mas a maior parte disso vai ser muito semelhante ao guaxinim, número um e número dois, vou explicar tudo de melhor que puder, é claro também. Então, o que vamos ver aqui é que devemos pegar dois. Certo, está tudo bem. Na verdade, tudo bem porque isso é chamado de tipos de entidade mod. Na verdade, lá vai você. E então isso vai ficar bem também. Então uma coisa que temos aqui é ver mais entidades que vão ficar bem. E depois há algumas outras coisas das quais podemos realmente nos livrar aqui também. E lá vai você. Agora, não há mais erros se você copiar isso do pastor do GitHub ou dos gists, não haverá mais erros para você. E tudo aqui deve estar bem ou sim, deve estar bem. Primeiro de tudo, o que temos mais uma vez é algumas das coisas das sessões. Então você pode ver que está sentado, sentado. E mesmo aqui temos a sessão e quando clicamos com o botão direito do mouse na interação da máfia aqui, você pode ver desta vez se estivermos agachados, então nós realmente queremos definir a fumaça para estar sentada por causa de claro que também queríamos torná-lo legível. É por isso que temos essa interface rideable de jogadores aqui. E isso vai ser o interessante. Então, se eu realmente clicar nisso e pressionar Control H, então devemos ser capazes de ver, lá vai você. Eu tenho o cavalo abstrato, por exemplo. A maior parte disso é tirada das classes abstrata de cavalos e entidades de cavalos. Não posso enfatizar isso o suficiente. Dê uma olhada em todos os exemplos de baunilha. Você tem tantos exemplos de baunilha aqui. Depois de entender a estrutura básica dessa classe como uma classe de entidade, então dar uma olhada nas classes de entidade de em baunilha é bastante simples. Então, como eu disse, a maioria dessas coisas é a mesma que no guaxinim. Temos os controles registrados, o predicado para as animações. Temos os dados assíncronos, o sentado e, em seguida, também temos esses seletores de spray. Então isso é muito interessante. Então o seletor de spray aqui é para o seletor de alvo, para o alvo aleatório não manso, isso é uma coisa que é basicamente adicionada onde eu adicionei isso do lobo. Então, se realmente dermos uma olhada no lobo aqui, você pode ver no lobo também tem uma presa detectada, presa selecionada aqui. E isso também tem este aqui. Então você pode ver que basicamente caçaria diferentes raios nesta fase nesta prioridade mais alta neste caso, já que basicamente queríamos que ele fizesse resto antes de fazer isso. Mas isso é apenas uma coisa adicional. Você não precisa ter isso necessariamente, mas é meio legal. Você pode ver que também temos meta de tentativa aqui. Isso é realmente o que, que o tigre realmente seguirá quando você tiver um nabo na mão, há também o item da tabela com ele. Então, se você clicar com o botão direito do mouse com o nabo, então você tem um, como você pode ver aqui, nós realmente temos uma chance de vinte e cinco por cento de que deveria ser realmente domar essa entidade n sim, isso é praticamente isso. E a maior parte disso você pode ver, na verdade, não é tão louco. Aqui começamos a escrever. Este é, na verdade, o jogador que realmente mudou isso. Então clique nisso e ligue para esse jogador. E então esta será a mão um pouco mais legível do que podemos ver a estrela do ponto do jogador escrevendo isso. Vamos basicamente começar a escrever isso. E como vamos ser capazes de controlar isso? Bem, a forma como vamos controlar isso, isso, com esse método aqui, pode ser controlado por um escritor. E então aqui acabamos de voltar e controlar o passageiro é de entidade viva. E então aqui, acredito que também temos que voltar. Isso também é muito importante. E então o método de viagem também é retirado do cavalo. A maioria das coisas foi retirada porque a única coisa que não vamos ter é a capacidade de pular com um tigre. Essa é a única coisa que não vamos ter. Isso é praticamente tudo o que há para ele. Mais uma vez, também, é muito , quero dizer, é, é bastante simples. Anibal, Você pode apenas dar uma olhada no jogador rideable jumping interface número um e número dois também o cavalo abstrato. Como eu disse, tudo isso está disponível para você nas bibliotecas externas aqui, certo? Todo o código de baunilha. Eu não posso enfatizar isso o suficiente como, bem, como é fácil dar uma olhada nisso e basicamente então ser, você sabe, pegar algo a partir daí. Vamos adicionar isso aos mais tipos de entidades aqui. Vou copiar isso mais uma vez. Como sempre pagar tudo disponível no repositório do GitHub e individual também. Vá para a entidade aqui. E então também vamos fazer os dois modelos e renderizar nossas aulas. Então, vou dizer modelo Tiger. Lá vai você. E então também vamos dizer que o tigre, renderizador de tigre também vai. E então, mais uma vez, vamos copiar isso. Isso é bastante simples e é praticamente parece, deve parecer exatamente como antes. Só precisamos fazer o modelo também. Lá vai você. O modelo também. Está apontando mais uma vez para a localização modal no geo tigre aqui estão a textura e seguida, a animação não é novidade aqui. E então, no renderizador, praticamente a mesma coisa que apenas temos os contextos de renderização aqui, e então estamos fazendo um novo modelo aqui. Agora isso, é claro, mais uma vez precisa ser resfriado no método de configuração do cliente aqui. Então, vamos dizer quais tipos de entidade tigre e, em seguida, aqui o renderizador de tigre, lá vai você. Então, é claro, não vamos esquecer o evento que precisamos chamar e que deve estar bem aqui nos atributos. É claro que queríamos definir os atributos aqui para os atributos do tigre que eles atribuem muito importantes. Não se esqueça disso, e isso também deve ser isso. Vamos também adicionar o novo spawn preciso aqui. Vamos apenas duplicar isso e então vamos dizer que um tigre sublinhado criadores Greg, em seu tigre e isso correspondem em seu Greg e eu só precisava obter os códigos de cores reais porque eu realmente os preparei com antecedência. Claro. Digamos que este é o código de cores para isso. E então a cor de destaque é essa, certificando-se de que mudamos isso para Tiger. E então isso também está bom. O modelo, bem, vamos realmente copiar sobre os guaxinins Baunach porque isso vai ser mais fácil porque o conteúdo do nosso não vai mudar. Então, vamos dizer que este é o ovo de geração de tigre. Eles atrás e depois adicionando-o aqui no final sublinhado que ele era arquivo adjacente também, eu acho que manhã. E então aqui também, sublinhado tigre desova. Isso é, claro, praticamente todas as coisas que já passamos com o guaxinim. Então, nada de novo demais deve ser tudo bastante autoexplicativo. Vamos também adicionar a animação de tigre aqui. Lá vai você. Então também vamos ter o geo. Isso vai estar bem ali. Então, vamos abrir isso e adicionar o modelo de tigre hidro também. E então, por último, mas não menos importante na entidade, vamos fazer um novo diretório chamado tiger. E então, em vez de lá, teremos o verdadeiro tigre PNG. Este é o extra também. E isso é praticamente todas as coisas que precisamos. Como eu disse, a maioria das coisas acontece na classe de entidade tigre. E também, como eu disse, maior parte disso é tirada dos exemplos de baunilha, de alguns exemplos familiares em que vimos o seletor de presas aqui, como eu disse, é apenas uma coisa interessante. Você não precisa necessariamente disso. Isso é apenas algo que achei interessante e pensei que adicionaria isso também ao tigre. Então, quero dizer, isso é, como eu disse, praticamente tudo o que precisamos. Vamos ver se funciona ou se responde no Minecraft. E como você pode ver, o tiger AG foi adicionado. Então, vamos ver. Lá vamos nós. Então, alguns dos tigres aqui são adicionados com sucesso no jogo. E então vamos pegar alguns nabos. Sierra agora, eles deveriam estar me seguindo uma vez que eu realmente coloquei isso e eles atrás, eles estão me seguindo. Então esse é o objetivo tentador, é claro, certo? Onde isso basicamente significa qual é a coisa real que eles vão seguir. E então, se eu apenas clicar com o botão direito do mouse, você pode ver que isso não foi, não foi bem-sucedido, não foi bem-sucedido. Mais uma vez, deve ter uma chance de vinte e cinco por cento e eles atrás, agora, eu realmente tenho isso aqui e se eu clicar com o botão direito do mouse novamente, então eu realmente vou passar e parece, não parece muito estranho, mas é bem legal e não consigo pular. Como eu disse, isso é algo que você provavelmente será capaz adicionar através de alguns exemplos através do cavalo. Na verdade, deve ser muito louco. E então, se eu mudar o botão direito do mouse, então você pode ver, então podemos fazer esse tigre se sentar também. E isso também deve funcionar bem. Permite que você possa ver que este é um exemplo de uma entidade gravável e uma entidade de tabela ao mesmo tempo, basicamente ao mesmo tempo e lá vai. Isso é, na verdade, o quão fácil isso pode ser também. Bem, mas isso vai ser para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo e eu te vejo na próxima palestra. 110. (tópicos adicionais) como adicionar um barco personalizado: Ou eu dou as boas-vindas de volta ao curso de forragem para 118. E nesta palestra vamos adicionar barcos personalizados ao Minecraft. Agora, essa é uma daquelas coisas semelhantes ao signo. Isso parece, quero dizer, deve ser muito mais fácil, mas na verdade é incrivelmente frustrante acrescentar. Então, mais uma vez, alguns, quero dizer, muito disso vai ser copiado. Mas depois de configurar isso, uma vez, você deve ser capaz de adicionar facilmente novos tipos de barcos ao seu MOD e deve ser quase nenhuma preocupação. Então, a primeira coisa que vamos fazer é fazer uma nova entidade. A primeira coisa que você vai ser como, Espere, precisamos de uma entidade? Exatamente. É por isso que estamos basicamente fazendo isso depois das entidades. Esta será a entidade do barco. Eles atrás, no entanto, só precisarão de um. E então, mais uma vez, copiarei o conteúdo aqui. Mas, como eu disse, tudo está disponível para você no repositório do GitHub, um indivíduo também. Vamos apenas adicionar isso e não devemos obter nenhum, ok, vamos pegar algumas flechas, mas isso vai ficar bem. Estes serão vendidos em um pouco. Isso vai ser tipos de entidade mod realmente ir para a entidade de barco que vamos adicionar apenas um momento. Agora, mais uma vez, teremos um tipo de ID de tipo de dados curiosamente oito, certo? Então, vamos, uma vez que você possa ter variância diferente de uma determinada entidade, isso é praticamente a mesma coisa que fizemos aqui com o tipo de ID de dados. Você pode ver que esta é a variante TI e esse é o tipo. Então, vamos ter uma configuração muito semelhante aqui. Nesse caso, vamos ter o tipo real enum dentro dessa classe de entidade múltipla real. E você pode ver que temos a flor de cerejeira com apenas o nome Cherry Blossom. E então o resto é basicamente feito em segundo plano. A ideia aqui é basicamente feita para nós aqui. E honestamente, realmente, realmente, não precisamos olhar para todas as outras coisas. Se você quiser adicionar vários como qualquer outro enum, separe-os por uma vírgula e, em seguida, apenas nomeie-os se algo diferente e então tudo ficará bem. Isso é algo que você precisa fazer quando quiser adicionar uma nova variante personalizada ou um novo tipo de barco personalizado, você também precisa alterar o método do item drop kit aqui. Você pode ver que esta é uma instrução switch. E então aqui estamos deixando cair o tabuleiro de flores de cerejeira. E então, se você tiver outro, basta adicionar um novo caso aqui e em seguida, basta adicionar esse item lá. Praticamente tão simples quanto isso. O conjunto de tipos get mod board, ambos os tipos devem ser bastante autoexplicativos. Leia aditivos adicionais do método de dados salvos. Estamos apenas salvando o tipo real deste barco. E então aqui estamos apenas tendo dois construtores. Na verdade, precisamos desses dois construtores porque este vamos usar em apenas um momento no tipo de entidade mod. Então, vou realmente copiar isso por mais de 1 segundo. Claro que tudo disponível para você. E você pode ver, vamos realmente chamar isso de quadro de sublinhado mod. E quanto a isso? Isso pode ser um pouco melhor. E então você pode ver que esta é a entidade do barco, e isso também está bem. Isso deve funcionar, isso deve funcionar. E então este aquecedor se pudermos realmente excluir um dia atrás. Agora, a entidade de barco real só será o item que é um problema e , em seguida, o resto vai funcionar. Você pode ver que isso é uma variedade, claro que é imune ao fogo. O tamanho aqui é das outras entidades de barco. Então, se você realmente der uma olhada na aula de barco, esta é, claro, a classe disponível. Mais uma vez, dê uma olhada nisso. Se você acha que há algo mais que você queira fazer, se houver algo especial que você queira fazer, dê uma olhada nisso e então você deve ficar bem lá também. Agora também vamos precisar de um renderizador. Este será o renderizador de voto modelo. Para cima. Lá vai você. Na verdade, isso vai ser bastante simples, tudo considerado. Há uma coisa interessante aqui. Mais uma vez, vou copiá-lo. Mas tudo isso está disponível para você e não recebemos erros. E você pode ver aqui é uma coisa muito interessante. O que você tem aqui é seus próprios recursos. Este vai ser um mapa do tipo de placa mod para um par de modelo de barco de localização de recursos. Isso é uma loucura. A ideia geral aqui é que queremos, isso é praticamente quase exatamente a mesma coisa. Você veria esse local de textura, praticamente o que tínhamos nos renderizadores aqui, onde temos a localização da textura e, em seguida, a variante, isso é praticamente tudo, então o que temos aqui apenas em um muito um método muito mais complicado. E é o que é porque isso é o que este está certo. Portanto, o modelo de barco de localização de recursos pares é o que o modelo com meses de localização. E se fizermos isso em um mapa, tipos diferentes e, em seguida, pares diferentes, e isso basicamente vai dar certo. Agora isso realmente curiosamente, só vai fazer o seguinte, onde basicamente este parece loucura. Isso parece, oh meu Deus, o que o **** está acontecendo aqui. Literalmente o que estamos fazendo, estamos passando por todos os valores que todos os tipos que definimos para nossos barcos ou barcos personalizados e, em seguida, apenas fazendo novos pares, certo? Então vamos passar por todos eles, fazer um novo mapa para isso e dizer: Ei, ok, agora vamos fazer um mapa com esse tipo específico. Então vamos passar, digamos que temos sete tipos diferentes. O primeiro tipo, e depois vamos dizer qualquer que seja o nome. É aqui que o modelo procura. E, em seguida, a localização da camada do modelo. Então este é o modelo de barco real sempre será o modelo de barco AUC. Então, esses são os modelos de barco reais. Você pode ver que é por isso que não criamos um modelo de barco personalizado. Então, tudo isso vai ser o normal. Se você realmente quer modelos de barcos personalizados, você só vai ter que descobrir isso por conta própria. Eu recomendo dar uma olhada no modelo do barco aqui. Isso deve ser, quero dizer, definitivamente algo que vai ser um bom lugar para começar basicamente, mas definitivamente vai ser um pouco mais complicado. E então, quando criamos isso, a ideia é que então isso é basicamente retornado aqui no modelo com o método de localização, que você pode ver, estamos verificando se este barco é ou não do tipo ou de uma instância de uma entidade modelo de barco mod em vez disso. E então vamos devolver o recurso real da bola com o tipo real. Isso é tudo o que estamos fazendo aqui. Parece um pouco louco e é como, uau, isso é uma loucura absoluta, mas no geral não é tão louco. Então, onde precisamos disso? Bem, é claro que vamos precisar disso mais uma vez no método do cliente MC aqui está o MOD comum do curso MC e, em seguida, na configuração do cliente aqui. Então vamos dizer que esta é a entidade do parafuso e este será o renderizador de voto mod. E lá vai você. Isso já funciona. E essa é essa configuração também. E então só precisamos de um item para isso. Então, curiosamente, ainda precisaremos de um item personalizado para isso também. Este vai ser um item de voto MOD. E então, na verdade, há um erro de digitação lá. Nós só vamos corrigir isso rapidamente. Ir item. E mais uma vez aqui, algumas coisas que serão copiadas. Este é, na verdade, o cluster é o menor. Bem, quero dizer, não diria interessante necessariamente, mas a menor loucura que temos esse método de uso, basicamente apenas fazendo o que acontece quando clicamos com o botão direito do mouse. Isso é praticamente, quero dizer, é quase um para um do item do barco. Podemos ver isso como o item do barco aqui. E esse é o método dos EUA. Praticamente parece quase exatamente o mesmo. Em vez de fazer um novo conselho, fazemos um novo voto mod deve ser bastante autoexplicativo aqui, e o resto é quase exatamente o mesmo, praticamente a mesma coisa. Então lá vai você. E bem, depois de adicionarmos isso, vamos também fazer o item isso para que possamos nos livrar da última seta lá. Vamos apenas copiar sobre o crepúsculo mágico. Este vai ser o, agora este é, na verdade, o barco específico. Então este será o item do voto da cereja. Para cada um dos seus diferentes tipos de pranchas, você vai precisar de barcos diferentes, basicamente item de barco de cereja, vamos realmente desculpar, este é o item Chevy Bolt. Vamos chamá-lo de Sherry. Na verdade, placa de flor de cerejeira. Isso é melhor. Lá vai você. Sim, isso faz com que eles sejam mais sentidos. Barco de flor de cerejeira. E então este é um item de voto MOD. Agora, isso realmente toma como seu primeiro parâmetro, o software normal. O segundo parâmetro, como você pode ver, leva o tipo de entidade mod boat, tipo entidade, ponto árido, incrível. Este estava muito longe do ego. Na verdade, lá vai você. Agora, obviamente, funciona aqui. Então você pode ver agora que criamos o item com marcadores MOD aqui. E então isso também deve funcionar na entidade aqui, onde vamos voltar para lá. Agora, todas as flechas devem ter desaparecido. Agora só precisamos adicionar os arquivos JSON. Então esta seria a tradução primeiro lugar, é claro , para o item, isso vai ser aqui, então vamos copiar isso. Este será o barco sublinhado de flor de sublinhado de cereja . E então, claro, o mesmo aqui. Barco de flor de cerejeira. Agora, há outra coisa, é claro, o modelo do item, não o modelo do item. É apenas um modelo de item normal. Nada muito louco sobre isso, mas ainda assim vamos copiá-lo sobre n. Vamos dar uma olhada nisso. Você pode ver apenas pontos para uma textura de item específica. Nada de louco aqui. mesmo com a textura do item. Essa é apenas a textura normal do barco. Realmente texturizado basicamente um pouco para nossos personalizados. Então podemos ver que eles atrás é o tabuleiro de flores de cerejeira. Outra questão é o peso, mas enquanto a textura da entidade lá, bem, isso vai mais uma vez para a entidade. E vou fazer um novo diretório chamado barco. E então dentro daqui estava a flor de pontuação de tom de cereja, esse nome bem aqui. O que é muito importante? Tem que ser o mesmo que o nome fornecido no tipo desse nome deve corresponder a esse nome porque é isso que o renderizador procura em termos de textura. Então isso é muito importante. E é assim que parece. Basicamente, mais uma vez, basta basicamente configurar. Então, isso é todo o quadro. E então você pode, essa é a textura básica do barco. Essa é a ideia geral. Agora, em teoria, acredito que isso deveria ser todas as coisas que precisávamos para um barco acrescentar. Como eu disse, é só com o sinal. É muito louco. Como todas as coisas consideradas. Há alguns passos muito importantes, como eu disse, maior parte disso se você simplesmente copiá-lo e então você pode basicamente alterá-lo. Então, você precisará de um novo item personalizado para cada um dos novos tipos de barcos. Novo tipo de barco aqui. Então isso é algo que você precisa e, em seguida, o resto deve estar bem. Acredito que você deve ser capaz usar esse tipo de entidade para todos eles. E isso deve ser praticamente tudo o que você precisa fazer. Mas, para fins de conclusão, vamos ver se funciona. Ou se voltarmos ao Minecraft e você pode ver o barco de flor de cerejeira foi adicionado com sucesso ao jogo. Agora vamos defini-lo. E aí está, a placa de flor de cerejeira. E podemos usá-lo na água. Tudo funcionando totalmente bem, assim como esperaríamos que ele acontecesse. E então, se eu realmente mudar para o modo de sobrevivência rapidamente, vamos para o modo sobrevivente e vamos ver se isso cai e, de fato, deixa cair uma placa de flor de cerejeira, assim como você esperaria. Então lá vamos nós, trabalhando tudo, surpreendentemente. E isso é, na verdade, o quão fácil é. Como eu disse, há alguns passos que você tem que passar. Mas uma vez que você passa por eles, então é realmente bastante simples. Mas será isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na próxima palestra, no entanto. Sim. 111. (tópicos adicionais): Ou eu dou as boas-vindas de volta ao curso de forja para 100 adolescentes. Nesta palestra, vamos adicionar geração de entidades personalizadas ao Minecraft, mas criamos nossas entidades agora também queremos que elas apareçam no mundo. Então, para isso, vamos fazer uma nova aula aqui. Então, no pacote da agenda mundial, vamos fazer uma nova classe de degeneração de entidades mod. E mais uma vez, este eu vou copiar porque eu basicamente preparei um pouco de uma aula aqui que você pode usar. Então, é claro que precisamos mudar isso para mais de dois tipos que eles vão e, em seguida, este também. Isso não deve ser preocupação para você. Você deve ser capaz de simplesmente copiar isso. E você pode ver toda a classe aqui, temos um método de esportes de entidade que vamos chamar aqui, basicamente na parte inferior aqui. Então, mod entity iteration no spawn vazio e, em seguida, estamos passando o evento de carregamento de mensagens instantâneas aqui. E isso deve ser praticamente o que precisamos. E então você pode ver que existem alguns métodos que podemos usar. Por exemplo, adicione entidade a todos os biomas de anulação. Temos uma entidade para todos os biomas. Net para nether. Não, nether, desculpe, certo. Então, há em todos os lugares, menos o nether, cada robô, o fim. E então aqui também, todos os biomas, inclusive e outros. E geralmente, em teoria, se você tem esses métodos, você deve ser capaz de facilmente em outros que praticamente fazem a mesma coisa que você quer fazer. Quero dizer, honestamente, neste momento, algum conhecimento Java é, claro, muito uma coisa que você deve ter neste momento. E uma vez que você o tenha, então adicionar um pouco mais aqui não deve ser muito louco, mesmo que você não entenda necessariamente tudo se quiser, ok, isso adiciona a todos os biomas, mas o fim é como, ok, você provavelmente pode descobrir como adicioná-los apenas ao fim, por exemplo, literalmente isso, é isso agora. De repente, tudo apenas até o fim dos biomas, isso é praticamente tudo o que há para ele. Então essa aula, como eu disse, já usei antes. E, no entanto, aqui tivemos o exemplo agora de que vamos adicioná-los a basicamente todos os biomas sobrecarregados, neste caso, tanto o guaxinim quanto o tigre. Então, depois de adicioná-lo aqui, isso é literalmente tudo o que precisamos fazer. Acho que por causa de conclusão, vamos ver se funciona. Isso se traduz de volta no Minecraft. Agora, em teoria, nem precisamos criar um novo mundo para isso porque as entidades são, elas meio que geram. Quero dizer, eu não diria necessariamente dinamicamente, mas eles não detectam imediatamente basicamente o mundo que está sendo gerado. Então, vamos ver se podemos encontrar algum de nossos personalizados. Isso já era tigre lá está. Já existe um tigre aqui na floresta. Há outro, outro. Mas isso é, quero dizer, isso é realmente o quão fácil pode ser. Uh, você viu que isso é bastante simples. Todas as coisas consideradas, como eu disse, não mudar é deve ser totalmente fácil também. Você pode ver que existem mais tigres. Eu quero talvez possamos encontrar alguns guaxinins também. Talvez logo por cima desta colina, comando. Alguns guaxinins. Eles são, vamos embora. Nós realmente os encontramos para ler guaxinins e dois discos escuros. Então, isso é muito legal. Sim, então é assim que é mais fácil adicionar alguma geração de entidade personalizada Minecraft que já o possui para esta palestra aqui. Como sempre, é claro, todo o código está disponível para você no repositório do GitHub e individual também. Mas, de outra forma, verei você na próxima palestra. 112. (tópicos adicionais) como adicionar negociações personalizadas aos aldeões: Ou eu dou as boas-vindas de volta ao curso de forja para 118. E nesta palestra vamos adicionar negócios personalizados a um aldeão. Então, isso vai ser traços personalizados para os aldeões já existentes, muito importantes aqui. Portanto, não vamos adicionar nenhum aldeão personalizado no momento. Isso pode acontecer no futuro, mas eu não contaria com isso necessariamente agora. Então, temos que entrar em nossa aula de Eventos. Há apenas um evento aqui. Na classe mais avançada. Só vou copiar o método e é muito, muito simples. Isso é tudo o que precisamos. Então você pode ver que vamos usar os negócios aldeões de n aqui mesmo. E então vamos apenas dizer, ei, se o tipo for específico, uma profissão que onde queremos adicionar nossos traços também, então nós apenas adicionamos nosso comércio a ele. Isso é literalmente tudo o que estamos fazendo. Você pode ver que é muito, muito simples. Você pode ver que essa é a maneira que você filtra. Então, se você quiser adicionar algo para outra profissão, basta copiar a declaração if e ela mudou o profissional aqui. Mais alguma coisa que você queira aqui? Você pode especificar o nível de aldeão aqui mesmo quando você faz negócios isso ainda. E então você passa no nível da aldeia ou da alavanca aqui, e então você apenas adiciona qualquer oferta de comerciante que quiser. Então, este aqui, então a esmeralda real aqui é o que você paga. A oferta do comerciante. Você também pode colocar dois itens, três itens, pilhas e, em seguida, essas seriam as duas coisas pelas quais você tem que pagar. Nesse caso, temos uma pilha de itens, a Esmeralda para esmeraldas. Isso é o que pagamos, e então vamos conseguir nabos de riqueza para isso. Então você pode ver o Max usa, podemos usar isso dez vezes. A velocidade é de 50. Eu acho que isso é realmente um pouco alto demais para as coisas aqui. Então eu acho que isso está mais no domínio da experiência de um único dígito geralmente, mas seja qual for o caso, quero dizer, todos esses números recomendam apenas brincar com eles de uma maneira ou o outro. Quero dizer, essa é provavelmente a coisa mais inteligente de qualquer maneira, mas isso é literalmente tudo o que você precisa. Você pode simplesmente copiar isso em quantas declarações if aqui quiser, quantas características quiser, quantas características quiser adicionar. Mas isso é literalmente tudo o que você precisa fazer é muito fácil, muito simples. Quero dizer, você não pode tornar isso mais fácil, honestamente, realmente. Quero dizer, eu acho que só por causa da conclusão, vamos ver se funciona ou se nossas respostas de volta no Minecraft e eles podem ver que já temos os nabos aqui, então eu posso simplesmente colocar em esmeraldas e vou pegar meus 12º nabos. Isso já funciona, nosso personalizado. E você pode ver o quanto experimenta o agricultor de verdade novamente a partir disso. E então vamos realmente ir para a ferramenta Smith e vamos apenas pegar algumas ferramentas aqui para que possamos basicamente nivelá-lo até o nível três porque precisamos delas para o nível dois, nível três, vamos pegar um pouco de ferro lingotes vidente, se você trocar também, lingotes de ferro o objetivo. E então vamos esperar que isso dê certo. Vamos pegar alguns lingotes de ferro. E então o nível três deve estar ao virar da esquina. Eles atrás em atualização, atualização. Vá e agora vamos ver. Não temos o Paxil neste caso, então isso não funcionou bem. Bem, justo o suficiente. Acho que vamos dizer o outro então. Vamos apenas me deixar atualizar rapidamente ou essa ferramenta Smith foi um pouco mais cooperativa. Você pode ver o cobalto Paxil. Lá vai você. Assim, podemos conseguir isso e então poderíamos usá-lo. No entanto, gostaríamos. Lá vai você. Então, assim como esperaríamos que a ferramenta real funcionasse, ela funciona e lá vai você. Ele foi capaz de ser negociado aqui através da ferramenta real Smith e aqui mais uma vez, os nabos aqui, podemos apenas pegar alguns deles e eles vão. Então, o máximo também funciona totalmente bem, mas como esperamos que ele seja realmente legal. E isso é realmente o quão fácil é adicionar alguns traços personalizados aos aldeões. Como eu disse, isso é claro que os aldeões existentes, mas isso ainda adiciona algumas idéias diferentes ao seu mod, o que é muito legal. Então eu recomendo verificar isso, mas caso contrário, isso será para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você na próxima palestra. 113. (1.18.2) Atualizando a: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos atualizar nosso projeto para 118 até agora com o lançamento da década de 1880, chegam algumas mudanças, mas felizmente nada que possamos consertar bastante crosta na verdade. Nada é louco demais. A única coisa curiosamente que está realmente completamente quebrada ou não completamente, mas em grande grau, o título é curiosamente suficiente? Não sei por que eles mudaram a tela de título, mas seja qual for o caso, vamos atualizar e então você basicamente verá as mudanças no arquivo DOD Gradle criado. É claro que há algumas alterações a serem feitas. Então, o que vamos fazer é, antes de tudo, dê uma olhada no que é a versão atual. A versão atual, como você pode ver, 40012, mais uma vez , é claro para você, isso no futuro provavelmente será uma versão posterior. Então você vai pegar isso nesse ponto, então, e então vamos ficar bem. Então, vamos fazer isso primeiro. Então, vamos direto aqui para as dependências 40012. E então isso é apenas verificar, verificar duas vezes 40121, 1000th 2. Isso está correto. E antes de realmente recarregarmos isso, também queremos obter a versão mais nova do, de gecko lip porque acredito que, na verdade, o antigo não funciona. Então, nós queríamos em 312 também aqui, apenas fomos para a instalação você mais uma vez, e então estamos usando isso também. Então, vamos fazer isso aqui, eles atrás. E isso deve ser praticamente isso. Além, é claro, de mapeamentos de pergaminho, isso é incrivelmente importante para os mapeamentos de pergaminho. Na verdade, queremos mapeamentos de pergaminho muito específicos e eles serão os seguintes. Vou copiá-los e isso estará, é claro, mais e isso estará, é claro, uma vez disponível para você no repositório do GitHub, um indivíduo também. Você vê, estamos basicamente pegando os mapeamentos de pergaminho de 1800 e depois colocando sobre os mapeamentos oficiais normais dos anos 1880. Se você não tiver essa configuração assim, você vai realmente encontrar alguns problemas e alguns métodos não estarão disponíveis. Portanto, tenha isso em mente se você estiver usando ímãs pessoais para usar isso, ou se eles forem atualizados para 172, é claro que você também pode atualizá-lo para essa versão nesse momento. Mas depois vamos clicar no elefante pequeno. Se isso não aparecer, você pode abrir a guia Gradle e pressionar as alterações de recarga ou Gradle. Agora, isso mais uma vez pode levar até um minuto ou dois. E porque já fiz isso, isso deve ser tomado para mim. Normalmente, há alguns segundos. Vamos ver, basta ser paciente e deixá-lo passar. E então veremos que depois de obtermos uma construção bem-sucedida, eles foram construídos com sucesso, levou bons dois minutos aqui. Mas, mais uma vez, é claro, seja paciente e espere até obter uma construção bem-sucedida e então você vai ficar bem. Mas a primeira coisa que vamos fazer é entrar na nossa aula de mod de curso MC e vamos fazer uma coisa e isso vai ser puxar o ponto lib da gecko inicializado. Isso provavelmente deveria ter sido adicionado de antemão, mas agora é o melhor momento do que nunca para ser adicionado. E então vamos ficar bem aqui. Acho que é estritamente necessário, mas definitivamente é recomendado, pelo menos no mínimo. E então quais são as mudanças enquanto as mudanças aconteceram principalmente nas tags, e também as mudanças acontecendo nos pacotes mundiais. Vamos dar uma olhada nisso em um momento. E também há uma pequena alteração na entidade do bloco com a receita personalizada. Em primeiro lugar, vamos lidar as tags aqui. Você pode ver que o imposto de nomes opcionais não existe mais. Mas o que existe é a chave TAC, e vamos substituir isso por brega. Clique nele, pressione Alt e Enter importar esta classe. E então vamos alterar todas as tags opcionais para tack key. Lá vai você. E então, em vez de criar um opcional aqui, apenas criamos pontos. Você pode ver que estamos apenas mudando isso para Criar. E lá vai você. Isso é praticamente tudo o que precisamos fazer agora, uma coisa que ainda não funciona como a vara de dowsing valiosa aqui podemos ver, você pode ver, nós não podemos apenas todos os Contém aqui. Agora, isso é o que você diria? Quero dizer, um pouco irritante para ser honesto. É assim que esta configuração está parecendo muito estranha. Então é isso que você precisa colocar lá. Veja o bloco de pontos do registro, suporte ou garganta. Então, basicamente, vamos obter a chave de recurso de registro para esse bloco que estamos passando aqui. Então estamos dizendo, ok, este titular está dentro dos objetos de valor da vara de dowsing? É uma loucura a forma como isso está configurado agora, não sei por que as mudanças ocorreram. Só estou dizendo que esta é basicamente a maneira que temos que fazer isso. E eu só vou, vamos ser capazes de encontrar com ele basicamente. Mas essas são as mudanças aqui. Então, as tags estão prontas. Vamos, na verdade, entrar na receita aqui. Qualquer receita mod, esta linha aqui não pode mais estar neste método. O que realmente queremos fazer é no pacote de eventos, no modo eventos passados, queremos adicionar um novo evento. Então, vamos apenas copiar isso para o momento aqui. Isso vai registrar os tipos de receita. Então o que vamos fazer é pegar este evento de registro do Registro aqui, e vamos mudá-lo da seguinte maneira. Então, vamos dizer que isso realmente não está em realizações globais, mas isso é realmente o serializador de receitas atrás. Então, é isso que precisamos. É claro que isso, mais uma vez, está disponível para você no repositório do GitHub em indivíduos também. E então vamos copiar esta linha se você tiver vários tipos de receita, é claro que quisesse adicionar todos eles aqui, todos os métodos de registro de pontos do registro, e isso seria bom. Agora isso também funcionará. E agora podemos entrar na loucura que será a geração mundial. Mas no produtor de árvores abstratos, você pode ver basicamente agora que não queremos mais o recurso configurado aqui. O que realmente queremos é uma retenção, certo? Então vamos dizer Espere e isso vai ser muito interessante. Haverá pontos de interrogação estendidos, estende o recurso configurado aqui. E então vamos fazer isso e, em seguida, podemos passar para a classe de recursos configurada para fosso e, basicamente, mudar isso. Consequentemente. Então, isso também será um detentor. Neste caso de ponto de interrogação se estende, então ele é configurado e, em seguida, aqui no final, adicionando o colchete angular de fechamento. Mais uma vez, é claro que tudo disponível para você no repositório do GitHub, um indivíduo também. Então o que vamos ver é isso configurado, não precisamos mais incluir o ponto. Vamos substituí-lo por uma vírgula e, em seguida, excluir os parênteses de abertura e fechamento no final. Isso agora não deve ser mais um erro. Lá vai você. E isso também deve estar bem. Agora, o que temos que fazer é, na verdade, agora podemos ir do recurso de configuração para configurar o recurso para colocar o recurso. Agora, na verdade, temos que adicionar outro recurso de lugar aqui, e eu copiarei isso mais uma vez, tudo disponível para você no repositório do GitHub em indivíduos também. E você pode ver aqui, basicamente temos esse recurso de lugar mais uma vez em vez desse suporte aqui. E estamos basicamente filtrando por sobrevivência em bloco da amostragem, assim como estamos fazendo aqui. Em vez de fazer isso em linha, basicamente estamos fazendo isso com um recurso de lugar aqui. E então estamos usando o recurso de lugar nesta lista de configuração de recursos aleatórios, assim como estamos fazendo aqui. Então é muito, muito semelhante, um pouco diferente, acho que, quando se trata dos remadores, isso também deve ser bastante simples. Só temos que mudar isso aqui. Na verdade, não queríamos mais chamar isso. Então, o real ficar vazio não é mais uma coisa. Queremos fazer algo assim, mas você não quer nem mesmo devolver algo porque isso realmente só aceita isso. Vamos fazer algo assim. E então este será o utilitário de colocação, o que precisamos quando a colocação utils, isso é somente quando vazios. E então vamos passar isso aqui e eu vou acabar com isso com um ali mesmo. Deixe-me reformatar isso rapidamente um pouco para que eu possa realmente ver onde estamos aqui. Deixe-me um bloco simples com uma nova configuração de bloco. Eles bloqueiam o provedor de linhas. Vamos passar o mouse sobre isso. O que queremos? Isso é claro, também será um detentor. Só precisamos mudar isso para um detentor que eles atrás, e então isso também deve funcionar. Lá vai você. Mais uma vez, é claro que você sempre pode copiá-lo. Você pode ver que as mudanças aqui ou não tão loucas, elas são apenas realmente sintaxe, o mesmo aqui com a ordem. O pedido é provavelmente o mais fácil. Só temos que mudar isso e depois mudar isso para um titular também. Eles atrás. E então isso também precisa ser de configuração de guerra, muito importante aqui. Lá vai você. Então, como você pode ver, praticamente trabalhando também. Então, essas são as mudanças, é claro, as mudanças em 0,5. Então eu tenho que acontecer aqui nos recursos mais recentes onde todos eles são detentores também ou não ou configuração sobre suportes. Deixe-me copiar sobre o suporte aqui. Lá vai você. Espere em uma viagem. E eu vou fazer isso para cada um deles só que já o tenhamos e o segure aqui também. Lá vai você. Em seguida, vamos clicar nele, Alt e Enter para importar. E então, em vez de tê-los, Isso colocado, o que realmente queremos é apenas remover o lugar novamente, adicionando uma vírgula aqui. Agora isso não vai ser verificado com, isso realmente vai ressurgir. E agora eles atrás, mesmo aqui em vez de lugar, vamos fazer uma vírgula e depois fazer algo assim. E então o mesmo aqui que eu coloquei, substituindo-o por uma vírgula e, em seguida, também podemos remover isso e isso deve estar funcionando também. Ainda precisamos entrar nas aulas Gen porque aqui também mudou. Agora, este é um detentor em vez de um fornecedor. Então, em vez de fazê-lo como fornecedor, vamos fazer isso assim. Então, vamos remover o fornecedor aqui e isso também deve funcionar. Então, isso remove o fornecedor, importe o suporte. E então o mesmo aqui, último. Exclua isso como isso e eles atrás. E isso deve ser para a geração mundial. Vamos ver a regeneração Morrow. Lá vai você. Funciona novamente, sem mais erros e agora tudo deve estar funcionando. Então, é claro que, mais uma vez, tudo está disponível para você no repositório do GitHub, um indivíduo também para copiar. E isso deve ser tudo o que precisamos fazer. Na verdade, vou mostrar o que há de errado com a tela de título em apenas um momento em que entramos na tela de título. Mas agora podemos simplesmente iniciá-lo, ver se funciona. Vamos criar um novo mundo também. E então vamos ver se tudo funciona em 1000th dois. Ou a tela de título personalizada está realmente desativada. Vamos ver isso em apenas um momento. Mas, por enquanto, vamos fazer novos mundos. Vamos fazer um teste 1234, e vamos ver se tudo ainda funciona, se tudo ainda aparece, mas estou bastante confiante de que funciona, ou Francis de volta ao Minecraft. Então eu já basicamente localizei o bioma de um avião aqui. E você pode ver que temos nossas multidões personalizadas mesmo surgindo. Temos nossa árvore gerando nossas flores. Para que tudo funcione totalmente bem. E você pode ver que vamos entrar aqui. Podemos obter a rota da explosão de cobalto como uma receita aqui, apenas por uma questão de discussão, por que não? Vamos apenas experimentá-lo porque a receita também deve estar funcionando totalmente bem. Vamos apenas configurá-lo para baixo. Lá vai você com a teoria, você vai e ela ainda está funcionando totalmente bem. Você pode ver que somos picareta de cobalto, está funcionando, está lá dentro. E assim como você pode ver, quero dizer, praticamente tudo ainda está funcionando. Também podemos dar uma olhada na haste de dowsing aqui com o tablet de dados há também ainda funcionando. Então, também está funcionando totalmente bem. Tudo deve estar funcional. E sim, quero dizer, é praticamente isso. Então, vamos dar uma olhada rápida na tela de título. Então eu vou mudar o falsificado e depois vamos dar uma olhada no que a tela de título e as caudas. Tudo bem, como você pode ver, tanto a tela inicial quanto as informações adicionais no canto inferior esquerdo não estão presentes. Não tenho 100% de certeza por que esse é o caso. Então eu acho que o melhor curso de ação é apenas manter seu padrão de tela de blocos personalizados desligado basicamente para que ela não seja substituída. E então, uma vez que eu realmente descobri algo, então eu farei outra pequena palestra sobre basicamente como consertar isso por enquanto, eu acho que isso vai ser demitido e não vai ser robô muito disruptivo que praticamente conclui esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo nas próximas palestras. 114. (1.18.2) Estruturas personalizadas (como trabalhar através do tutorial): Tudo bem, bem-vindo de volta ao curso de forja para 118. Nesta palestra, vamos olhar para uma geração de estrutura personalizada muito importante é que a geração de estrutura personalizada aqui é claro, será para 118 para, se você tiver um atualizado, aconselhamos muito você a ir à última palestra que tivemos e onde basicamente atualizamos para 118 para ter isso em mente, o que vamos fazer nesta palestra em particular é que vamos ir através do tutorial de estrutura por grunhido telepático. E isso está bem aqui. Eu já tenho isso aberto aqui em segundo plano, e esse é provavelmente o melhor recurso para estruturas que já existem. Quero dizer, como adereços para corrida telepática porque isso é absolutamente incrível. E podemos ver que existem diferentes ramos aqui. Eles podem usar o 1800, forjar um ramo de quebra-cabeça se você estiver usando 1, 1000th 2, e se não, você pode usar o ramo 1800s 0, este aqui. Forja. É definitivamente um pouco diferente. Em 1 1000th 2. O que podemos fazer agora é que podemos realmente fazer estruturas personalizadas, adicioná-las ao mundo sem nenhum pedaço de código. Só precisamos de arquivos JSON, o que é realmente incrível. Nesta palestra, o que vamos fazer é passar por esse tutorial de estrutura mod aqui, todo o código, todos os arquivos adjacentes, copiá-los sobre uma peça por peça e, em seguida, basicamente, dê uma olhada no que você precisa mudar. O que você pode então, o que você tem que fazer? E a ideia geral de adicionar as duas estruturas que são adicionadas aqui como exemplo. E então, nas próximas palestras, nós mesmos faremos uma estrutura de peça única. E então também vamos criar uma estrutura de quebra-cabeças, o que é realmente muito mais fácil do que você poderia esperar. Na verdade, não é muito louco. Acho que sim, é claro, se você tem algo em costume único, claro que vai ser um pouco mais complicado. Mas, por enquanto, vamos entrar aqui e vamos ver o que temos que fazer. Então, vamos no source main e temos que realmente abrir ambas as pastas. Então, vou para o meio do mouse, clique no Java e, em seguida, nos recursos também. Vamos antes de tudo, começar com o código. Você pode ver Há a classe principal que temos, isso é o que eu chamaria de estruturas mod. E então, nessas pastas de estruturas, no pacote de estruturas, temos a classe sky structures. Mas esta é a primeira coisa que vamos fazer. Nós vamos basicamente, vou reorganizar isso um pouco, mas vamos começar com as estruturas mod. Este aqui e entre vai fazer este, e depois vamos fazer isso 1. Primeiro de tudo, precisamos de uma classe de estruturas mod. Bem, isso é feito facilmente no pacote mundial na verdade. Então vamos entrar aqui novo pacote chamado estrutura. Então, em vez de todos eles vão fazer uma nova classe chamada de rupturas dos modelos. Lá vai você. Agora está escrito corretamente eles, nesta classe, o que vamos fazer é que eu vou copiar o conteúdo aqui. Isso é, na verdade, vamos copiar sobre tudo. Isso vai ficar bem. Vou renomeá-lo aqui novamente. Então, quando eu digo estruturas modernas, eles vão se certificar de que o nome aqui está correto. E então também podemos excluir isso e isso. Lá vai você. E apenas reformate isso um pouco. É claro que agora será a montagem do curso MC na AdMob ID. E então porque eu gosto de fazer isso, vamos fazer é que vamos fazer um, porque eu gosto de fazer isso. Vamos torná-lo público método de registro vazio estático com um I of n plus Event Pass. E então vamos chamar a estrutura do registro diferido. Você também pode chamá-lo diretamente na classe principal do construtor, mas não vamos fazer isso nesta classe. Vamos adicionar em apenas um momento. Então, no mod do curso MC aqui, vamos descer, vamos dizer aqui mesmo para modelar estruturas que se registram e depois passando na tarifa de ônibus do evento que você vai, certo? E agora nós realmente fizemos este aqui e depois este também. Você pode ver que isso é literalmente a única coisa que precisamos adicionar. E então aqui temos as estruturas do céu uma, vamos apenas copiar sobre a coisa toda. Mais uma vez, este é o pacote de estrutura. Clique com o botão direito do mouse em nova classe Java chamada Sky structures, não, sin aqui. O que só queremos fazer é que não queríamos dizer gerenciador de registros, certificando-se de que escolhemos ou log do Apache para J. Muito importante. E então dizemos em vez de lager, dizemos ainda lager ou log. Lá vai você. Esta não é a casa degradada. Na verdade, há estrutura de céus. Lá vai você em uma posição específica. E então podemos realmente dar uma olhada nessa aula, o que é, o que ela faz? Livre-se dessa importação também. E então lá vai você. No geral desta classe, você pode ver o recurso de estrutura da configuração do quebra-cabeças. Agora, esse é um tipo de código boilerplate. Você pode ver que há muitos comentários que eu recomendo em seu próprio tempo. Percorra, leia todos os comentários. Apenas tente entender um pouco do que está dizendo. As idéias eternas de que você tem dois métodos diferentes aqui, estes apresentam caminhão com ele e peças decretadas. O gerador e o gerador de pizza creed são realmente o que é mais interessante para nós realmente. Você pode ver no tronco futuro, estamos apenas verificando, ei, esse pedaço é o pedaço real onde isso é colocado? Grosso modo, recomendo vivamente, como eu disse, leia todos os comentários. É altamente recomendado. Mas então, no gerador de peças criativas, você pode ver aqui o que estamos basicamente fazendo aqui. Isso é interessante, certo? Então você obtém as coordenadas do tronco em uma postagem no blog. Então, isso vai ser o que está fazendo. E então aqui estamos basicamente colocando 60 blocos acima da terra superior. Então você pode ver isso fazendo isso assim. Você pode ver no comentário aqui, vamos mostrar que o WG vai parar na água superior para que não coloquemos acidentalmente nossa estrutura no oceano. E então isso é basicamente, você obtém a coordenada y do topo da terra basicamente, e então estamos adicionando 60 a ela. Então, essa é uma maneira de você basicamente mudar o nível y. E então você também pode ver aqui, temos para cada um dos diferentes parâmetros que estamos colocando aqui, o, o que basicamente acontece aqui. Está muito bem feito. Eu posso apenas recomendar se houver alguma coisa complexa que você queira fazer, leia os comentários que são adicionados aqui e então você ficará bem. Agora, isso é, na verdade, todo o código que precisamos. Isso é muito interessante porque o resto é feito com arquivos JSON. Nós vamos basicamente voltar ao GitHub novamente e vamos fechar tudo isso e então estamos aqui nos recursos. Então, o que precisamos está na pasta de dados, na verdade, vamos precisar abrir muitas coisas aqui. Precisamos adicionar essas coisas e essas coisas. Se adicionarmos nossa estrutura a essa tag, você poderá ver que o micróbio tem algumas tags de recursos de estrutura configuradas que estão no comportamento. E então isso basicamente irá adicioná-lo a um localizador. Vamos estruturar nos fotógrafos, aldeões, mapa do oceano, mapas de monumentos. Isso não é estritamente necessário. É apenas uma coisa interessante. Na verdade, não vamos implementar este. Vamos ignorá-lo e só estaremos interessados na pasta de dados para nossa própria personalizada. Este, é claro, sendo um tutorial de sublinhado de estrutura ou as horas de identificação mod será o curso Mc. E então vamos abrir todas essas três pastas. E então você pode ver que as estruturas aqui são dados NVT. Isso é muito interessante. Portanto, os dados NVT são basicamente gerados dentro do while em vez do Minecraft. Então você constrói sua estrutura, você usa certos blocos para gerá-la por enquanto. Nesta palestra, vamos pegar esses dados NVT e vamos copiá-los. E então teremos que mudar um pouquinho nos dados do NVT, mas não se preocupe lá. Vamos ver isso em apenas um momento. Por enquanto, vamos baixar basicamente todos os quatro. Então, vamos entrar aqui, abrir todos eles e depois baixar, baixar, baixar e baixar. E você pode ver que eles estão em estruturas de ID do Data Mart e, em seguida, no arquivo real. Então, o que vamos fazer é dentro da nossa pasta de dados, curso MC, vamos criar um novo diretório chamado estruturas, e então eu vou adicionar todos eles lá. Só vou realmente fazer isso assim. Lá vai você. Assim como arrastá-los para esta pasta. Quero dizer, neste momento deve ser bastante autoexplicativo. Como você pode simplesmente adicionar coisas segue aqui, apenas arrastando-as para lá. E então temos os dados NVT aqui. Então isso é muito bom. E essa é a primeira parte. E agora precisamos voltar aqui. Podemos nos livrar de tudo isso aqui. Lá vai uma hora aqui nas tags world gen bioma tem uma estrutura. Portanto, esta é uma tag muito legal que vamos adicionar. E isso é sinceramente muito legal porque você pode ver antes de tudo, os biomas dos fãs do céu aqui. E depois há também a única casa JSON. A única casa JSON, se você se lembrar de volta em nossas estruturas que tínhamos, só tínhamos as estruturas do céu aqui. Não há menção a nenhuma casa. Exatamente. É o que estou dizendo. Você pode realmente adicionar certas estruturas sem ter nenhum código. Este DJs e só ouve casa. Isso basicamente nos permitirá fazer isso. Eu vou fazer é que eu só vou possuir os dois. Então o que eu faço é copiar o nome aqui porque isso é um pouco mais fácil. E essa foi uma tag em nosso curso MC, tags de holdup. E isso sob este submundo Jen. E então, em vez de aqui, isso vai estar sob bioma. E depois mais uma estrutura, mais um diretório que é chamado de estrutura sublinhada. E então podemos adicionar o arquivo aqui, este 1 primeiro. E então também vamos obter o segundo, o nome aqui também, um novo arquivo. Lá vai você, Jason só abriga biomas e você pode ver o conteúdo do qual se eu vou copiar este aqui. Portanto, esta é a estrutura de código Skype e biomas. Você pode ver esse imposto sobre o bioma especifica quais biomas, isso realmente começa nele. Você pode iniciá-lo com tanques de bioma, com uma hashtag ou especificar um bioma específico como este. É realmente incrível. Então, essa é a maneira que você pode basicamente especificar em quais biomas essa estrutura em particular gera, mas também copiará o conteúdo desta. Eles vão. Sem esse. Claro, lá vai você. E toda a sacarose também está disponível no repositório do GitHub no, também. Não se preocupe lá. No entanto, eu realmente acho que é o melhor se você trabalhar neste tutorial de estrutura comigo uma vez e talvez até uma vez por conta própria, apenas para que você basicamente conheça cada parte individual. Então você pode basicamente dizer que esta tag de bioma de geração mundial tem estrutura, é usada para especificar os biomas em que nossas estruturas surgem. Mas, basicamente, agora podemos fechar isso também. E então podemos prosseguir para o próximo que é a geração mundial. Havia essa pasta, então vamos fechar isso também. E então você pode ver que existem quatro pastas diferentes aqui. Mais uma vez, tudo realmente interessante. Então, vamos abrir o primeiro e vamos basicamente lidar com isso. Podemos ver que aqui temos a estrutura do código sky angariação de fundos e a única casa adjacente para o recurso de estrutura configurada. Mais uma vez, vou copiar o nome aqui e vamos dar uma olhada nele. Portanto, os dados são o submundo mais ideal e, em seguida, o recurso de estrutura configurado, vamos entrar no coração. Então isso está sob as tags, tão importante que você não acidentalmente coloca isso aqui. Sob a pasta do curso da EMC. Na verdade, queremos uma nova pasta chamada world gen, que deve estar abaixo de suas tags. Portanto, certifique-se de que isso esteja correto, não dentro dessa pasta. Certifique-se de que isso seja, você tem dois deles. Você vê X Gen. Este tem ele tem coisas de estrutura. E então esta pasta de geração mundial é em vez de seu ID mais para o seu curso MC cheio de muito, muito importante que haja uma diferença lá. Por favor, certifique-se de que isso está correto. Em vez deste mundo, podemos realmente dar uma olhada em todos os quatro diferentes. As coisas que precisamos, vamos fazer assim por um momento. Então, vamos dizer que este é o recurso de sublinhado da estrutura de sublinhado configurado. E então vamos copiar este aqui. Vamos dizer que este é o processo ou lista de sublinhados, e então vamos copiar esta. Este é o conjunto de sublinhados da estrutura. E, por último, mas não menos importante, também temos o pool de sublinhado do modelo, é claro que garante que todos eles sejam escritos corretamente. E então podemos prosseguir com o recurso de estrutura configurada aqui. E vamos entrar mais uma vez lá e vamos dizer este aqui, esse nome aqui. Vou fazer um novo arquivo Drazen. Vamos clicar com o botão direito do mouse em novo arquivo, chamá-lo assim. Lá vai você. E, em seguida, copie o conteúdo disso. E então vamos ver onde são as primeiras coisas que realmente precisamos mudar aqui. E como você pode ver, há muitos comentários novamente, sem preocupações. A propósito, essas setas, você pode ignorá-las nos arquivos JSON porque eles ainda vão funcionar. E, portanto, não se preocupe lá. Você pode ver basicamente aqui que temos algumas substituições, o que significa que, ei, esses monstros em particular podem surgir nesta estrutura, você pode ver o que os monstros podem surgir ao longo do tempo na estrutura. Isso é muito interessante também aqui, se a terra verdadeira estiver ao redor do fundo de uma estrutura baseada no valor ydas peças. Isso também é algo que você poderia fazer. Este aqui é a tag. Isso precisamos especificar essa tag aqui. É claro que isso muda para o nosso ID do modelo e, em seguida, tem estruturas é a mesma coisa e então esse nome é a mesma coisa que isso. Portanto, não precisamos alterar isso o caminho para o arquivo JSON ruim do modelo, é claro, também precisa ser o curso MC. Isso é adjacente que vamos adicionar em apenas um momento sob o pool de modelos aqui. E então aqui também vamos mudar esse nome para estruturas do céu do curso MC. Muito importante que esse nome você possa ver a classe de estrutura base a usada para o comportamento da estrutura. Assim, podemos ver nas estruturas mod aqui, este é o nome das estruturas do céu e então é disso que ela a baseia. Mas essa é basicamente a conexão entre esse arquivo JSON e essa estrutura, principalmente como essa classe de estrutura aqui. Então tenha isso em mente também que você escreveu o tipo ano corretamente quando se trata da casa única JSON, certo? Vamos apenas copiar o nome novamente. Vamos colocar isso na mesma pasta, um novo arquivo aqui. Vamos e, em seguida, o conteúdo real do qual mais uma vez foi copiado. Lá vai você. E então aqui também temos que mudar mais uma vez, pois este curso para MC deve fazer sentido. E então também mudaremos isso para o curso MC. Isso procurará um arquivo JSON no pool de sublinhado de modelos mais antigo, onde basicamente adicionamos isso em apenas um momento Além disso, o resto pode ficar. Por exemplo, você pode ver que há alguma ilusão ou alguns pilhadores e alguns pais que podem surgir aqui. Isso é realmente interessante. Vamos, então, continuar em frente. Então, agora gerenciamos o recurso de estrutura configurada e, em seguida, podemos ver a lista de processadores. Isso também é muito interessante. Na verdade, podemos apenas obter isso com base no arquivo aqui. Vamos apenas copiá-lo e vamos olhar para ele dentro disso. Esta é a lista de processadores, um novo arquivo chamado sublinhados de mouses aleatórios não quebra Grayson. E isso é muito interessante. Então, vou colar isso. E você pode ver que isso é um, isso é basicamente uma regra e o que ela faz é que ela substitui uma determinada coisa. Então você pode ver que o bloco que estamos procurando é o tijolo de pedra. E isso tem 50% de chance de permitir que o tijolo de pedra encontrado seja substituído por coisas diferentes. Por exemplo. E você pode ver se encontramos uma quebra de pedra, então há 5% de chance de substituí-la por uma OU esmeralda, e aqui você pode ver que há 50% de chance de realmente substituí-la por um tijolo de pedra infestado. E então, aqui em baixo, você pode ver algumas ardósias profundas podem ser substituídas valor de 10% ou uma probabilidade com um estado profundo Redstone ou assim. Esses são alguns exemplos muito interessantes de basicamente uma dessas regras interessantes, o que é realmente interessante, o que pode tornar suas estruturas tão mais, bem, quero dizer que mais interessante se você puder substituir certos blocos sob certas condições, basicamente com uma certa probabilidade aqui para ser outros blocos. Isso é muito legal e realmente incrível. Então isso é definitivamente algo para brincar um pouco no seu próprio tempo também. Mas isso também foi adicionado e veremos onde isso é usado em apenas um momento para que possamos fechar isso também. E então vamos abrir para a estrutura definida no pool de modelos. Ambos você pode ver mais uma vez, a estrutura está definida. Temos dois arquivos JSON, um para cada uma de nossas diferentes estruturas que mais uma vez. Então, vamos apenas ler esses arquivos do Jason também. Leia este. Lá vai você. E então eu vou copiar o conteúdo aqui. Mais uma vez, lá vai você. Então este é um dos, bem, eu diria que este é um dos arquivos JSON mais fáceis. Eu diria apenas mudando o nome aqui. E então isso, é claro, neste caso, a estrutura aqui, ele deve procurar este arquivo JSON aqui se eu não me engano. E então o posicionamento aqui é realmente muito importante. Então o sal aqui, você pode vê-lo. Certifique-se de que isso seja único e não corresponda a nenhuma outra estrutura de sal. Caso contrário, o que vai acontecer é que eles serão colocados no mesmo local, o que, claro, é algo que não queremos. E você pode ver o suporte à distância média em pedaços. E então aqui, esta é a distância mínima do seu porta-malas. Então, este sempre tem que ser menor que este. Faz sentido. E então aqui estamos apenas escolhendo basicamente um spread aleatório. Isso também é aconselhável para mantê-lo assim. E isso é praticamente o que precisamos. Orelha. E então o que precisamos é o caso normalmente casa também. Nós vamos chegar a isso também, eles atrás e depois o nome aqui, então novo arquivo e depois apenas copiando o conteúdo. E você pode ver que isso é mais uma vez mudar aqui. Eles atrás. E você pode ver esse sal aqui é diferente desse sal. Mais uma vez, é altamente recomendável apenas se, quando você adicionar sua própria estrutura personalizada. Quando adicionarmos as estruturas personalizadas nas próximas duas palestras, você verá que vamos mudar o sal também. Muito, muito importante. Caso contrário, esse é praticamente um arquivo JSON bastante simples. Mais uma vez, este aponta para, aponte para o recurso de estrutura configurada aqui. Agora, a última coisa que precisamos é o pool de modelos. Então, esses serão os arquivos JSON aqui. Então, vou fechar isso, isso e isso. Você pode ver que temos o único arquivo adjacente aqui e temos dois arquivos JSON para a casa. Vamos usar o fã do céu primeiro. Isso vai estar bem aqui dentro dele. Então, Skype no Jason e então eu vou copiar isso também. Lá vai você. E você pode ver o que acontece aqui é que antes de tudo, no nome aqui eu vou mudar. Portanto, isso não é estritamente necessário, porque acredito que o nome aqui é é praticamente o nome do próprio pool de modelos. Eu não acho que isso realmente precise ser alterado aqui, não com 100% de certeza, mas você também pode ver que há um link aqui para o arquivo JSON de conjuntos de modelos. Recomendo verificar isso também. É claro que isso também está ligado aqui , então não se preocupe lá. E então você pode ver quais são os elementos que estamos procurando? Bem, estamos procurando o oitavo. Mais uma vez, o tutorial de estrutura tem que mudar para o curso MC, o fã do céu. Agora, como você pode ver, o caminho final é tutorial de estrutura de dados de recursos em nossos casos curso MC, É estruturas degradadas, casa esquerda, lado esquerdo MVT. Agora isso, claro, não está certo. Isso procura fã de sublinhado da Sky, NVT , sky fan, e então está aqui mesmo, Skype e MET sob o local do curso EMC. É aqui que ele procura. E então este também é muito interessante. Você pode ver que estamos adicionando no processador aqui, que é o curso MC, pedra aleatória, tijolo. Este é exatamente esse arquivo JSON aqui, então isso não é necessário. Este é apenas um bônus adicional, por assim dizer. E você pode ver especifica a lista de processadores e, em seguida, basicamente a aplica ao arquivo NVT aqui ao colocá-lo no mundo. E então está lá. Você pode ver as listas de processadores são ótimas para aleatorizar blocos e fazer com que as estruturas pareçam mais naturais. Muito incrível, muito legal e, no geral, não muito louco para usar. Mais uma vez, essa é uma daquelas coisas em que, claro, adicionar exatamente o que você quer pode ser um pouco complicado. Mas, no geral, ainda é uma coisa muito legal basicamente dar uma olhada e mudar e brincar, certo? Então este vai ser o fã do céu. E agora vamos fazer é essa casa degradada. Você pode ver que há um pool de sites e um pool de armazenamento. Nós vamos basicamente perto de ambos, vamos chegar ao pool do site primeiro. E isso está em uma nova pasta aqui, que será chamada Run underscore down underscore house. E então teremos um novo arquivo chamado pool de sublinhado de pontos, Jason. E também teremos uma base até agora que é chamada de pool de sublinhado do site, sublinhado ponto ponto js e na verdade, citar o sublinhado do lado Poole enganado adjacente. Lá vai você. Este é o pool do site JSON, e então este aqui é o pool inicial Jason, por que precisamos de dois deles? Bem, a casa degradada real é uma estrutura de quebra-cabeças, o que significa que ela tem duas partes diferentes dela. Você tem um lado esquerdo, bem aqui. Vamos mudar isso mais uma vez para o curso MC. Este é o lado esquerdo da casa degradada, que aponta para este, esses dados NVT aqui, lado esquerdo da casa degradada e a piscina lateral. Você pode ver que realmente temos uma lista de elementos que têm pesos diferentes aqui. E ele aponta para dois NVT diferentes por outro lado basicamente. E você pode ver que há 50% de chance de gerar a corrida de ouro em vez da normal. Essa é a ideia aqui. E vamos ver um exemplo disso, a estrutura de quebra-cabeças personalizada que vou fazer também. Mais uma vez, é claro, mudar o MOD ID aqui, o que é muito importante. E então aqui podemos simplesmente mudar a ideia do modo. Não acho que seja estritamente necessário, mas vamos fazer isso também, só para que tenhamos. Então você pode ver que há muitas partes móveis aqui. No entanto, vou resumir mais uma vez porque na verdade há mais uma coisa que precisamos mudar porque, como está agora, isso realmente não vai funcionar 100%. Na verdade, a casa degradada só vai gerar um lado esquerdo e lado direito, porque nesses dados MPT, a monódia errada é salva. Vamos ver como podemos consertar isso em apenas um momento. Mas antes de tudo, vamos resumir com todas as coisas que fizemos. Adicionamos duas estruturas diferentes. Adicionamos a estrutura do céu usando algum código também, principalmente a classe de estruturas do céu aqui, que pode ser usada para o que em certos outros recursos que não são possíveis de serem adicionados apenas através do Arquivos JSON. Principalmente, você pode ver este aqui, onde especificamos a posição y real dessa estrutura específica e algumas outras coisas também. Mas o que também fizemos é que também fizemos uma estrutura puramente com arquivos JSON. E você pode ver para essa estrutura que precisávamos. 12345 arquivos Jason diferentes que é claro, precisam estar nos locais corretos e todos eles estão relacionados entre si. Vamos pensar sobre isso por um segundo. Portanto, é melhor começar com o pool de armazenamento aqui, porque o pool de armazenamento faz referência ao arquivo NVT. Este é o arquivo NVT aqui, sob suas estruturas de ID de mod de pasta de dados em VT. E isso é referenciado aqui na piscina de estrelas. Agora, enquanto o pool de lojas faz referência à estrela mais referenciada na classe de recurso de estrutura configurada aqui. Assim, podemos ver que este é o pool de lojas que está sendo referenciado. Você pode ver que esta é a configuração dessa estrutura específica e isso foi referenciado, enquanto também referenciado é o bioma Jason, Este é o mundo tributário, o bioma Jin tem estrutura. Jason only Como estão os biomas, o que basicamente significa rápido em quais biomas essa estrutura pode gerar? Isso praticamente explica essa perseguição e seguido aqui, esse arquivo JSON é usado para realmente adicionar o mundo, basicamente adicionando a estrutura ao mundo que essa estrutura está definida. Você pode ver neste comentário aqui basicamente, ele escolherá uma dessas estruturas. Quero dizer, neste caso, há apenas uma estrutura. Você poderia, em teoria, em múltiplas estruturas de um não equivocado, pois isso aqui se refere como esta. Não tenho 100% de certeza sobre isso, mas acho que isso deve se referir a esse arquivo JSON em particular, que é claro se refere ao pool de lojas e também aos biomas. É assim que eles estão inter-relacionados uns com os outros, agora mesmo para o pool de sites. Mas como essa é uma daquelas coisas interessantes, o ciclo mais uma vez é porque estamos usando o bloco de quebra-cabeças. Eu recomendo se isso for um pouco confuso com uma piscina psiquiátrica para você. Vamos ver isso no, quando falamos sobre os quebra-cabeças em apenas um pouco nas próximas palestras. E é isso. Portanto, há algumas partes móveis para ele. Mais uma vez, recomendo que você tenha que assistir a esta palestra duas vezes. Não há como contornar isso. As estruturas podem ser bastante complicadas. No entanto, depois de configurá-los, uma vez que adicionar mais estruturas é realmente muito, muito simples. Aqueles que tudo aqui está configurado. Eu recomendo não mudar muito nada, é basicamente mudar seu ID de MOD, esse ID Ahmad para o ID do modelo, e então deve ser isso, certo? Então, porque isso é basicamente tudo o que precisamos por enquanto, o que vamos fazer é fazer um novo mundo, ver se as gerações, e então vamos ver que precisamos mudar mais uma coisa, o que será bastante simples de mudar. Mas vamos ver se funciona. Também tenha em mente ao fazer essas estruturas, você obterá isso que o mundo usando configurações experimentais não é suportado. É apenas o que é. Você pode simplesmente clicar em prosseguir. É meu. Pode parecer um pouco diferente se você estiver se juntando a um mundo que já existe. Nesse caso, isso estava criando um novo mundo. Basicamente, não há como contornar isso. Isso vai aparecer, mas não se preocupe lá. Você pode basicamente ignorá-lo. Basta dizer prosseguir e lá vai você. Tudo bem, então nos encontramos no Minecraft e você pode ver que uma dessas estruturas já foi adicionada com sucesso aqui, e há até outra. Eles podem estar um pouco próximos demais. Mas antes de tudo, você pode ver a estrutura real surgindo. Você também pode ver algumas pessoas já geradas são como mobs aqui. E então, o que também é realmente interessante, você pode ver as substituições aqui. Você pode ver que alguns dos tijolos foram substituídos e você pode ver alguns deles também estão infestados. Isso é muito legal. Portanto, há 50% de chance, é claro, deles serem investidos. E então alguns deles também são substituídos pelo Emerald OR, e então você pode ver que parte disso também é substituída por redstone. Tudo, isso é muito legal. Este foi o material de substituição que foi feito. E você pode ver que eles são, eles estão gerando. Então o outro, a casa, nós deveríamos encontrá-la muito, muito rápido porque ela nasce como cada poucos, na verdade já existe uma casa. E o que você vai descobrir é que parece meio casa, não é? Sim. Parece meia casa porque na verdade é apenas meia casa. Você pode ver. Primeiro de tudo, também há algumas dicas úteis aqui. Recomendo verificar esses também. Mas você pode ver que você é, o bloco de quebra-cabeças foi realmente substituído aqui e bem, a questão é que o modal real que ele não combina. Para fazer com que isso funcione, o que vamos fazer é que vamos conseguir alguma distância e algum espaço. Basicamente. Vamos realmente sobrevoar Aqui vamos nós. Espero que isso seja uma distância suficiente. E então o que precisamos, precisamos nos dar o bloco estrutural aqui, este. E então vamos apenas configurá-lo e vamos clicar com o botão direito do mouse. Agora, o nome da estrutura aqui vai ser estruturado nome ano vai ser curso MC dois pontos, sublinhado esquerdo, sublinhado sublinhado para baixo sublinhado sublinhado da casa, lado sublinhado esquerdo, acho que então não vai ser deixado aqui na frente direita. O nome aqui deve ser esse nome aqui. Vamos apenas clicar com o botão direito Refatorar Renomear, copiar isso. Isso vai ser um pouco mais fácil. Lá vai você. Na verdade, é isso e agora, se eu entrar em carga aqui, ele deve carregar isso. E então eu poderia carregar novamente, e então ele realmente gera a casa. Agora você poderá ver aqui, este é o bloco de quebra-cabeças. E você pode ver aqui que ele realmente procura esse pool de sites, que temos que mudar. Eu tenho que mudar isso para o curso MC, digamos feito. Então também queremos a outra parte da casa. Na verdade, queremos a outra parte da casa também. O que vou fazer é copiar isso aqui. Assim como Control a para selecionar todo o controle C para copiar o controle V para colá-lo. E então este vai ser o lado certo. Quando uma carga, e depois vamos carregar novamente. E aqui você encontra o outro bloco de quebra-cabeças. Clique com o botão direito do mouse neste. Queremos mudar o nome aqui para o curso MC lado direito feito. Você quer mudar o nome aqui para o curso MC lado direito. Feito. E então o que também queremos fazer, só para que tenhamos tudo. Queremos gerar outra casa. Esse vai ser o lado direito, dourado, creio eu, lado direito. Então, haverá certo. Se você escrever sublinhado do site sublinhado, dourado. Lá vai você. Puxe isso e carregue-o. E lá vai você. Agora, este é o sítio dourado, só vai ter algumas fechaduras douradas lá. E então aqui também queremos mudar isso para o curso MC, então para o nosso ID de modelo, sim, e então vamos ficar bem. Agora, o que precisamos fazer é realmente salvar o NVT aqui. Mais uma vez, isso é um pouco o que o FREC está refazendo. Não se preocupe com isso. Isso basicamente o que precisamos fazer para que isso funcione corretamente. Uma vez que fizermos isso, nas próximas duas palestras, vamos analisar realmente como fazer isso completamente personalizado. Então, vamos construir uma estrutura personalizada. Vamos salvar a estrutura personalizada. E vou explicar um pouco mais de detalhes o que estamos basicamente fazendo aqui. Se você não quiser seguir isso, é claro que também está bem. Mas, basicamente, há algumas coisas muito diretas que você precisa fazer. Agora aqui, depois de mudarmos o bloco de quebra-cabeças, o que vamos fazer é ir aqui para o modo de segurança. Queremos dizer seguro, então você pode ver que agora foi salvo e o mesmo vale para os outros dois são seguros no modo de segurança. Aqui também, vá para o modo Salvar seguro e, em seguida, terminamos. Agora podemos fazer é que podemos sair do Minecraft. Vamos simplesmente sair daqui. E, em seguida, os dados NVT serão armazenados na pasta R1 em salvamentos. Então, onde quer que você tenha, este foi o não se esqueça de rever o mundo e então isso deve ser gerado. E você pode ver todos os três dados NVT aqui. Na verdade, vamos fazer isso aqui mesmo. E vamos dizer substituir para todos. Então, agora os dados NVT aqui foram substituídos por nossos IDs de MOD nele. E se eu começar de novo, fazer um novo mundo, então o que vamos ver é que vamos encontrar a casa completa como antes, em vez da casa esquerda ou da outra parte da casa. Então, a casa, temos esse bloco de quebra-cabeças que estava realmente procurando o pool do site sob a estrutura tutorial mod ID, o que, claro, não está correto. Vamos ver, vamos realmente criar um novo mundo. Aqui. Vai ser o teste de estrutura. Testes de estrutura. Isso vai ficar bem. Uma taxa mundial. Mais uma vez, vamos obter o, você mudou a geração mundial e as configurações experimentais. Isso vai ficar bem. Vamos apenas apertar Proceder e depois vamos esperar até que ele termine. E então vamos ver se nossa estrutura está ou não completa. Tudo bem, nos encontramos no Minecraft, então vamos ver que está, e você já pode dizer que a estrutura está completa agora. Bem, vamos entrar aqui e vamos ver. Eles podem ver se entramos, você encontrará lá você vai. Esta é até a variante dourada disso. Este é o lado certo para o objetivo e então não devemos ter que voar longe para encontrar outro exemplo disso. Então esta é incrível geração mundial parecia incrível. Embora devêssemos ser capazes de encontrar outra casa muito rápido. Geralmente eles não deveriam aparecer muito longe um do outro. Vamos ver, Há outro, então você pode ver claramente que eles não são tão raros, mas é claro que isso é algo que você também pode mudar facilmente. Então, vamos entrar aqui. Vamos ver, espero que este seja normal? Este é normal . Lá vai você. Não, nenhum objetivo aqui. Também temos coisas no peito aqui, e você pode ver tudo funcionando bem. Esta é a estrutura básica que segue o tutorial ali mesmo. E se você estiver neste momento, adicionar novas estruturas é muito simples. Então, basicamente vamos ver nas próximas duas palestras sobre como você pode adicionar algumas estruturas personalizadas também. Primeiro, basicamente uma peça de estrutura, porque uma estrutura só pode ser 48 por 48 por 48. E então, se for maior do que isso, você tem que usar a fonte de gabarito. Mas, como eu disse, na verdade, não é tão complicado quanto alguns podem ser agora, ainda não é muito fácil, mas é mais fácil do que você poderia esperar, certo? Mas isso conclui a palestra de estruturas aqui seguindo o tutorial de estrutura do telepático Grundy, mais uma vez, incrível repositório. Claro, vou vincular isso também, é praticamente o melhor recurso que existe para as estruturas aqui, é incrivelmente útil e não posso recomendar isso o suficiente. Agora, mais uma vez, havia muitas coisas aqui. É um episódio longo. Não havia outra maneira de torná-lo mais curto realmente, porque há muitas coisas lá dentro. Mais uma vez, para a estrutura personalizada, da próxima vez, recomendo vivamente que você tenha passado por isso uma vez. Caso contrário, será um pouco mais complicado porque copiaremos os arquivos JSON já existentes aqui e, em seguida, apenas alterá-los para nossa própria estrutura personalizada. 115. (1.18.2) Estruturas personalizadas (de uma única peça): Tudo bem, bem-vindo de volta ao curso de forragem para 118 e nos encontramos no Minecraft com uma estrutura já construída aqui. O que eu recomendo que você faça é copiar a estrutura ou simplesmente criar sua própria estrutura. E então, basicamente, depois que você os criou, podemos continuar. Então, vou dar-lhe um pouco de tempo para criar sua própria estrutura. Mas espero que você faça uma pausa e crie sua própria estrutura. Porque agora o que vamos fazer é agora eu vou fazer um arquivo MVT com isso. Como fazemos isso? Bem, precisamos antes de tudo, dar a nós mesmos o bloco de estrutura é executado novamente. Então este aqui. E o que precisamos fazer é colocá-lo nos cantos dessa estrutura em particular. Então, o que precisamos fazer é colocá-lo fora de toda a estrutura da vontade real. Então, precisamos colocá-lo bem ali e aqui mesmo. E também do outro lado, nos mesmos locais basicamente aqui, e também aqui. Lá vamos nós. Agora, o que queremos fazer é clicar com o mouse nisso e , em seguida, precisamos dividir. Primeiro de tudo, especifique um nome aqui. Este vai ser o cólon do curso MC. Portanto, sempre pegue o ID do modelo dois pontos, seja qual for o nome. E neste caso será a casa sublinhada da alga marinha. E então vamos pressionar Control a para selecionar tudo, Control X para cortá-lo e Control V para colá-lo novamente. Isso é basicamente o que acabei de fazer. E vou para o modo proprietário. Muito importante. Vamos dizer que pronto, e aí está você. Vou fazer o mesmo aqui, colá-lo no modo canto, pronto, um sit-in, mais feito. E então este, na verdade, vamos colá-lo e , em seguida, vamos para o modo Salvar. Em seguida, queremos pressionar este botão de detecção aqui. E deveria, em teoria, detectar toda a estrutura. Então você pode ver que basicamente destacamos o exterior de toda a estrutura, que é exatamente correto. Isto é o que vai ser salvo seu. Então o que podemos fazer é simplesmente clicar no botão Salvar aqui. E então esses dados NVT foram salvos. Então, isso é literalmente tudo o que precisamos fazer para salvar alguns dados NVT. E agora temos esta casa. Agora, o que podemos fazer é realmente divertido, porque isso já está salvo. O que devemos ser capazes de fazer é ir para outro lugar. Diga, Ei, me dê esta casa. Eu posso apenas colocar isso, dizer carga, e ele deve detectar esta casa. E então podemos dizer carregá-lo novamente, e lá vai você. E agora eu posso realmente copiar esta casa de lá para aqui, e então eu realmente tenho isso já feito. Mas é claro que o que queremos fazer é que queremos levar esta casa em uma vista naturalmente no mundo. Então o que vamos fazer agora vamos sair minecraft de volta para a Intel J e , basicamente, adicionar alguns dos arquivos adjacentes para que possamos surgir nesta casa, o mundo. Tudo bem, então nos encontramos de uma forma inteligente. E a primeira coisa, é claro, o que precisamos fazer é que precisamos pegar a casa. Então, isso está mais uma vez na pasta de execução. Isso deve estar em suas vendas aqui. Estes são os testes de estrutura no meu caso, sob gerados. E então aqui temos a casa de contagem NVT. Então eu vou arrastar isso aqui para as estruturas, e então temos isso ali mesmo. Então isso é muito importante. E agora podemos basicamente alterar o arquivo JSON. Então, o que vamos fazer? O que temos que fazer? Bem, a primeira coisa que vamos fazer é fazer o arquivo JSON estruturado para isso, para a tag. Isso incluirá todos os diferentes biomas que imaginamos essa estrutura muito pequena. E então vamos apenas copiar sobre o já existente aqui. Esta será a casa de contagem e sublinhado. Honestamente, acho que isso vai ficar bem. Vamos apenas tomar esses biomas de nível. É claro que você também pode alterá-lo como quiser. Mas estou realmente feliz com isso e ficaremos bem. Mas este é o primeiro. Isso apenas mais uma vez significa quais biomas essa estrutura pode gerar. E então queremos que o recurso de estrutura configurada fosse apenas mais uma vez, vou copiar isso. Eu mudo isso para casa sublinhada do tapete. Vamos usar esse nome algumas vezes agora. E aqui queremos mudar o pool inicial para nossa conta e piscina armazenada na casa. Isso vai ser o que vamos adicionar aqui em apenas um momento e o mesmo aqui. Este agora vai ser o balcão. Esta tag de bioma se refere a essa que acabamos de criar aqui. Mas não se preocupe. Eu, pessoalmente, na verdade, não quero que nenhum monstro apareça aqui. Mas o que eu quero é que eu realmente quero que alguns dos tigres do curso MC apareçam lá. Por que não? Vamos apenas dizer que haverá um ou dois tigres que podem detectar lá. Vamos apenas adicioná-lo assim. Isso vai ser muito interessante e ver se isso também faz isso. Agora isso deve ser praticamente tudo o que precisamos mudar aqui. Em seguida, na próxima, não precisamos de nenhuma lista de processadores em nosso caso, mas precisamos de um conjunto de estrutura. Mais uma vez, copiando isso ao mudar o nome para lidar e casa, isso, mudando este para chegar em casa, o que então aponta para este arquivo JSON que fizemos antes. Muito importante aqui, mudando o sal, isso tem que ser um sal único e bastante grande. E então o espaçamento, vamos dar um pouco mais espaçamento aqui em ambas as partes, e isso vai ficar bem. Então a última coisa que precisamos fazer é que precisamos criar uma nova pasta aqui mesmo diretório. Esta será mais uma vez a casa sublinhada do CAPM. Em seguida, o nome do arquivo aqui será o pool inicial de sublinhado adjacente e o conteúdo do qual eu realmente copiarei mais uma vez, o arquivo JSON já existente. É por isso que eu disse que se você tiver configurado uma vez, então adicionar novos é muito simples. Então, o que podemos fazer aqui é basicamente este tem que mudar para contar sublinhado casa e depois. Vamos copiar isso e depois mudá-lo aqui mais uma vez. E é isso. Já fizemos isso agora nossa estrutura real surgirá no mundo. Isso é tudo o que precisamos fazer. 1234 arquivos JSON neste caso porque é uma estrutura única e um arquivo NVT, é literalmente isso. Você viu que é bastante simples depois de configurá-lo, uma vez copiando alguns dos arquivos JSON, alterando algumas coisas, ajustando algumas coisas e depois, e então você está bonito muito feito. Isso é literalmente como tudo o que precisamos fazer para o bem da conclusão. Vamos ver se funciona. para garantir que tudo funcione, recomendo fazer um novo mundo apenas por precaução. E também, é claro, tenha em mente que você terá as configurações do mundo experimental. Só temos que pressionar Proceder. Isso é só gao. Será quando você adicionar o mundo personalizado Jen, através dos dados baseados em arquivos. Mas isso vai ficar bem. Vamos deixar que ele gere e veja se podemos encontrar nossa casa de contabilidade no mundo ou a casa do seu amigo em Minecraft. E lá você já deve ser capaz de vê-lo. A casa de carbono foi adicionada com sucesso ao Minecraft. E veja que está bem aqui e está no chão perfeitamente, assim como deixamos de fora. Na verdade, destruo acidentalmente a porta lá. Isso não foi intencional. Lá vai você. Mas sim, praticamente já foi adicionado. Como eu disse, é muito simples. Uma vez que você tenha feito isso, uma vez. É por isso que eu disse, você definitivamente deve passar pelo tutorial de estrutura uma vez com a palestra, basicamente mostra o repositório do GitHub dele. E então, uma vez talvez por conta própria, dê uma olhada em alguns dos comentários lá. Quero dizer, sim. Quer dizer, eu nem sei o que mais dizer como você praticamente viu isso. É muito, muito direto. Há algumas coisas que você pode mudar. E agora depende de você, até sua criatividade sobre o que você quer adicionar ao Minecraft. Vamos ver se consigo encontrar mais uma das nossas casas de acampamento. Você pode ver muitas das casas degradadas apontando aqui. Quero encontrar mais uma conta House. Vamos ver se podemos encontrá-lo. Não, há outro, então você pode ver lá você vai. Então, no geral, eu acho realmente interessante, mas também bastante simples. Todas as coisas consideradas. Eu não acho que seja tão louco e tão difícil e bem, quero dizer, sim, isso é praticamente o quão fácil é adicionar alguma estrutura personalizada ao Minecraft. Mas como já disse várias vezes agora e direi mais uma vez. Se você o configurou depois de ver, é muito, muito simples adicionar mais estruturas ao seu jogo, e é muito simples. Agora, mais uma vez, para a fonte de bebida que vamos ver na próxima palestra será um pouco mais complicada. Mas mesmo assim, depois de ver um exemplo disso, basicamente configurar tudo, você vai dizer que mesmo isso será justo, muito sensato e bastante direto, tudo considerado, certo? Mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Ou os arquivos JSON estão, naturalmente, disponíveis para download no repositório do GitHub e em um indivíduo também. Mas, de outra forma, te vejo na próxima palestra. 116. (1.18.2) Estruturas personalizadas (estruturas de jigsaw): Tudo bem, bem-vindo de volta ao curso florestal para 118. E nesta palestra vamos olhar para algumas estruturas de quebra-cabeças. Você pode ver que eu já preparei algo aqui, que será a plataforma de armazenamento. E a forma como isso vai funcionar é que isso vai ser duas estruturas diferentes, mas vai surgir como uma só. Então a ideia é que uma parte da estrutura, que será basicamente tudo deixado aqui, será o pool inicial. E então vamos ter um bloco de quebra-cabeças no meio que irá então gerar esse lado direito aqui da estrutura, que vai ser qualquer um, digamos ferro. E então também vamos fazer uma variante basicamente que terá algo como diamante talvez e, em seguida, até mesmo uma com esmeralda. Então essa é a ideia geral. E então isso vai acabar. Podemos então fazer com que ele apareça com pesos diferentes para que, quando você vai ao redor do mundo, precisando encontrar muito com o ferro, por exemplo, com tipo, eu não sei, como 80% e depois gosto 10% das vezes você vai encontrar o diamante. E então 10% das vezes você vai encontrar a Esmeralda, algo assim. Então, o que vamos fazer é que precisamos configurar isso corretamente. Então, o que vamos fazer é que vamos tomar, certo. Então agora vamos realmente fazer o principal 1 primeiro. Então, isso deve estar bem aqui. Então, precisamos do bloco estrutural aqui. E então aqui também. Isso deve ser bom. E então, deste lado, mostramos que escolhemos o correto É meio que falar tão bem, vamos descer aqui. Então lá vai você. E então, para a altura h deve estar ao redor do seu, acredito que sim. Vamos verificar isso também. Então este deve ser este. Lá vai você. Vamos excluir os blocos auxiliares aqui. E isso é realmente maior, então vamos fazer um abaixo que eles atrás temos os proprietários prontos e então vamos, e então vamos chamar essa plataforma de armazenamento de cursos MC. Isso vai ficar bem. Mais uma vez, Control a, Control X , Control V, para que tenhamos o nome e este será o modo trimestre. E então vamos passar pelo modo de canto para cada um deles, ou modo. Lá vai você. Acompanhar este modo e então este será o modo de segurança. Então, vamos fazer esse modo de segurança e depois detectar. E então, mais uma vez, descobriremos que agora é isso que está sendo detectado. Claro, o que você vai encontrar é, oh não, nós realmente precisávamos mais alto, mas não há nenhuma preocupação. O que podemos fazer é que podemos apenas construí-lo. Você é, vamos apenas construí-lo até a altura que precisamos. Bem ali. Lá vai você. E então vamos destruir este, que era basicamente a coisa real vai ficar por enquanto. Mas uma vez que realmente o recarregamos, e deve ficar bem. Então isso deve ser sobre essa altura, acredito que deveria ser. Então, podemos mais uma vez ser o modo de canto, sim, e depois excluir este também. Também modo com o mesmo com o nome certo. E então podemos detectá-lo novamente. E então você descobrirá que o ego agora está feito e tudo está dentro dele. Então, basicamente, isso é uma coisa que você poderia fazer. Você configurou e então você fica tipo, Oh, isso é realmente alguns blocos fora dele. Basta substituí-lo e lá vai você. Agora este é o principal. E o que ainda precisaríamos fazer é que ainda precisamos colocar o bloco de quebra-cabeças. Então, para isso, vamos abrir o terminal e o comando é mais uma vez, claro que eles deram comando ou o bloco de quebra-cabeças, este aqui mesmo. E o que queremos fazer é que queremos estar enfrentando assim. Então, o que queremos é que isso ainda esteja dentro dele. Lá vai você. As setas devem apontar para o lado de fora dela. Então você pode ver que isso ainda está dentro da estrutura e deve um ponto fora da estrutura. E então aqui, queremos que o outro bloco de quebra-cabeças aponte em direção a ele. Então, esses são os dois blocos de quebra-cabeças que queremos. Este lado aqui terá um nome associado a ele. Então isso vai ser dois pontos do curso MC, digamos, por exemplo, site , plataforma, algo assim. E vou dizer que fiz esse nome aqui. Vamos copiá-lo e este será o nome do alvo aqui. E então o pool alvo aqui será o curso MC dois pontos. E esse é o nome do arquivo JSON que precisamos colocar. Então este será o pool de sublinhado de sublinhado do site de barra da plataforma de armazenamento . Este é o arquivo JSON aqui, vamos dizer feito, e agora eles estão mais ou menos conectados uns com os outros. E o importante é, claro, este por enquanto, porque isso está nessa estrutura bem aqui. Então, agora podemos salvar isso. Podemos então dizer Save. E agora a estrutura de armazenamento foi salva. Agora podemos fazer a coisa semelhante para as outras estruturas. Então, vamos fazer isso aqui. E então só precisamos ir até aqui. Para o outro lado, vamos fazer isso, é simultaneamente basicamente para que outro bloco de estrutura aqui, e então os outros livros de estrutura devem estar por aqui. Isso parece bom. Então o nome aqui vamos fazer o curso MC cólon, armazenamento de ferro, forma de planta. Indo mais uma vez, vou copiar esse modo de canto ou controle remoto. E então aqui em baixo, este terá o modo de segurança mais uma vez detectado. Vamos ver. Lá vai você. Então agora isso também é detectado e você pode ver agora que realmente temos os dois. E eu recomendo fazer isso assim. Porque agora basicamente quando você muda este aqui para outra variação, por assim dizer, e é muito, muito simples. Os nomes aqui podem basicamente ficar. Então esta é a plataforma lateral e a plataforma lateral. Está tudo bem. Então, vamos guardar isso sob o sublinhado de ferro armazenado na plataforma de pontuação. Salve isso. E então o que vou fazer é mudar isso e então vamos salvá-lo sob a plataforma de armazenamento de diamantes e depois esmeralda também. Eu substituí o ferro por algum diamante aqui. E então, claro, o que queremos mudar aqui é o nome, certo? Então, esta agora será a plataforma de armazenamento de diamantes. Mais uma vez, copie isso, vou dizer feito. E então vamos mudar isso aqui também. Então, em todos os cantos, basicamente, seremos capazes de detectá-lo em apenas um momento também. Vamos fazer isso e depois voltar para este, detectado mais uma vez. Então, agora a plataforma de classificação de diamante foi detectada, e agora podemos salvá-la sob a plataforma de armazenamento de diâmetro. E então vamos fazer a mesma coisa para esmeraldas também. Tudo bem, então agora ele foi substituído por papéis m. Então, vamos mudar o nome mais uma vez aqui. Então, esta será a plataforma de armazenamento Emerald. Mais uma vez, copie-o e, em seguida, altere os nomes e todos os cantos aqui. Então, nada muito louco. Lá vai você. E então vamos pegar isso de novo. Então, vamos ser a plataforma de armazenamento aqui, Emerald e depois salvá-la novamente. Mas agora temos uma plataforma principal e associada a ela três diferentes, digamos variância do outro tipo de plataforma que podemos gerar. Agora vamos mudar para você inteligente novamente e, em seguida, vamos configurar tudo. Tudo bem, então nos encontramos um inteligente. E antes de tudo, é claro, vamos obter os dados NVT. Isso deve estar sob os testes estruturados. Se não me engano, lá vamos nós. Portanto, temos a plataforma de armazenamento e as três plataformas diferentes também. Vamos copiá-los aqui para as estruturas mais uma vez. Então, o que precisamos é, claro, da estrutura em sua totalidade. Mais uma vez, precisamos dos cinco arquivos adjacentes para isso. Vamos apenas copiá-los. Então, esta será a plataforma de sublinhado de armazenamento e precisaremos usar esse nome algumas vezes. Então, basta copiá-lo. Mais uma vez. Vamos ficar com esses biomas por enquanto. É claro que isso é muito fácil basicamente mudar aqui. E a estrutura configurada possui plataforma de armazenamento e deseja apontar para o pool de armazenamento dentro do suporte da plataforma de armazenamento, que vamos criar um pouco. E então este é o arquivo JSON da plataforma de armazenamento, que significa quais biomas devem ser usados aqui. Agora, na verdade, não quero nenhum Richards aqui. No entanto, o que eu descobri é que, se você remover completamente as pequenas substituições, elas realmente receberão um erro. Então, ainda não tenho 100% de certeza do que você tem que fazer aqui para não conseguir nada onde possamos fazer é algo assim. Então vamos ficar bem, então eu acho que não, nada aparece aqui. Então, vamos ficar bem, o conjunto de estrutura. O que vamos fazer é mais uma vez copiar sobre a casa do balcão, mudar o nome aqui, e depois aqui mais uma vez, é claro, mudar o nome aqui para que ele aponte para o correto recurso de estrutura. E então muito importante aqui, mudando a estrutura, o sal aqui , é claro, e depois o espaçamento vou fazer um pouco mais do que a separação mínima. E eles são como 12, isso vai ficar bem. E então tudo se resume à casa modelo, que vamos simplesmente copiar sobre a casa resumida. Vamos renomear isso para plataforma de armazenamento. Em seguida, dentro dos arquivos JSON, queremos mudar isso para a plataforma de armazenamento. Este é o lado direito, então estes serão os três lados direitos. Então, o que vamos fazer é apenas excluí-lo, os comentários aqui. E então o que vai acontecer? Nós dissemos que realmente queremos mais um desses. E então isso provavelmente vai ser algo como um peso, digamos cinco, peso três, e depois espere algo assim. E essa será a plataforma de sublinhado de armazenamento de quatro sublinhados. Isso vai ter a autoridade que não é ou é ferro. Claro, lá vai você. Plataforma de armazenamento de ferro. Então vamos chamá-lo de copiar isso e esta será a plataforma de armazenamento Emerald. E então digamos que esta seja a plataforma de armazenamento de diamantes, mas isso deve ter 50% de chance de desova. Esta é uma chance de 30% e isso é um 2% com 20% de chance. Estes são os diferentes pesos devem ser bastante autoexplicativos. São basicamente os pesos de como eles estão sendo gerados. Portanto, esse deve ser o pool do site e, em seguida, para o pool de armazenamento da plataforma de armazenamento, vamos ao pool de lojas aqui. Isso vai ser, claro, então a plataforma de sublinhado de armazenamento. Mais uma vez, plataforma. Lá vai você. Copie este. E então, é claro, esta é a plataforma de armazenamento. Este é o nosso ponto de partida basicamente estão iniciando dados NVT, que terão o bloco de quebra-cabeças dentro dele, que então está procurando o pool do site, que definimos no bloco de quebra-cabeças apenas antes. E isso é literalmente tudo o que precisamos. E agora todos esses três diferentes enquanto a variância também geraria. Então, como eu disse, é mais uma vez, uma vez configurado, uma vez muito simples, Todas as coisas consideradas. Agora vamos criar um novo mundo e vamos ver se podemos encontrar nossas plataformas de armazenamento ou Francis na Microsoft em um novo mundo. E vamos ver se não conseguimos encontrar nossa plataforma de armazenamento. Também podemos localizar assim para o nosso curso MC. E essa é a plataforma de armazenamento aqui. Vamos ver. Então, aqui, um deles é, vamos ver, lá vamos nós. Um deles já surgiu aqui com o ferro neste caso. E você pode ver exatamente como deixamos o basicamente e o volume nos blocos de serra também se foram porque eles foram substituídos por ar. Vamos, na verdade, apenas HTP em outro lugar e ver se podemos encontrar outro deles. Vamos apenas gostar, você sabe, 20 K ou o que quer que seja. E então eles vão e depois vamos localizá-lo novamente. Vamos apenas ir para um, outro, localizar uma plataforma e depois vamos ver. Aí está. É outro com ferros. Halley. Bem, quero dizer, às vezes funciona assim. Vamos por mais um, vamos tentar mais uma vez. Menos dez k desta vez. Por que não? E então eles vão. E então vamos localizar novamente. Vamos ver se este pode ter algo diferente de ferro e também tem ferro. Bem, quero dizer, é uma daquelas coisas que é mais prevalente do que as outras. É apenas o que é. E também acho que apenas nos movendo e voando, não vamos encontrar muitos deles , pois os tornamos um pouco mais raros do que as outras coisas que fizemos. Portanto, a casa de contagem e a casa degradada são muito mais prevalentes nesse caso. Mas sim, quero dizer, isso é praticamente a coisa. Na verdade, tente mais uma vez porque eu realmente quero ver as outras coisas funcionando. Então vamos lá, eu não sei, como um 100 e depois vamos fazer isso menos dez K aqui. Então vamos fazer outra plataforma de palavras localizar ou curso MC. Vamos ver. Oh, bem, quero dizer isso também é algo que pode acontecer, certo? Portanto, essa é uma ocorrência muito rara. Então isso geralmente não é algo que acontece, mas você pode ver que ambas as estruturas realmente surgem praticamente no mesmo pedaço. Esse é o mesmo momento. É por isso que você quer trocar o sal. Agora, no nosso caso aqui, acabamos de ficar incrivelmente azarados. Digamos que eles basicamente compartilharam a mesma vizinhança geral. Isso não deve acontecer com muita frequência, mas sim, quero dizer, isso não pode acontecer. É apenas o que às vezes é. Mas você pode ver que esta é a variante esmeralda nesse caso, então ela definitivamente funciona. E então isso é apenas, às vezes isso acontece. Isso não deve acontecer muito. Então, essa deve ser uma ocorrência bastante rara, mas isso é praticamente o quão bem ele vai, certo? E é praticamente assim que você pode adicionar algumas estruturas de quebra-cabeças ao seu MOD também. Tudo o que é considerado bastante simples é apenas mais uma vez nos arquivos JSON, configurando a estrutura corretamente e, em seguida, obtendo os dados NVT para essa estrutura. Mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. 117. (1.18.2) Modelos de armadura 3D personalizados: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos fazer um modelo de armadura 3D para clientes ou nossa armadura de cobalto. Então, em vez de usar nossa armadura que temos antes, então esta nos modelos aqui, que é então a coisa que está sendo sobreposta em 3D. Na verdade, vamos criar um novo modelo ARMA personalizado, que definitivamente não vai parecer tão bom quanto este. Porque eu basicamente só quero mostrar os passos que você precisa fazer para realmente fazer isso. Mas vamos ver para isso, vamos usar um banco de bloco no lábio de gecko novamente, eu já preparei a armadura real aqui você pode ver que este é o arquivo do banco do blog. Isso acontece quando você faz isso seguindo, certo? Então, quando você faz um novo modelo animado de lábio de gecko, você pode fazer isso, por exemplo aqui testa armadura, certo? E então o que você pode fazer é ir para Arquivo para as configurações do modelo ao vivo da gecko e mudar isso para armadura. Se você clicar em Confirmar, você pode ver que algumas coisas geram aqui, que é basicamente o, o que, o corpo já preparado. E, em seguida, você pode adicionar coisas a ele onde você deseja adicioná-lo abaixo desses. Então você tem a cabeça dos bípedes, Não toque na coisa em particular. É claro que esta é a cabeça nesse caso. E então suas coisas personalizadas podem entrar aqui. Então você pode simplesmente adicionar um cubo. E então você pode usar suas coisas, fazer isso, dimensioná-lo aqui, certo? Então escale-o um certo ponto e então eles vão e então você pode simplesmente brincar com isso basicamente duplicado que, faça um novo cubo mais uma vez, faça um novo cubo aqui, mova-o novamente. Mas isso é, claro, tudo o que você precisa fazer. E você pode criar suas próprias coisas personalizadas aqui. Depois de fazer isso, vamos ter uma, bem, basicamente nenhuma textura no momento. E então o que você pode fazer é que eu vou apenas por um momento e apagar isso e então você pode ver que você vai ter algo assim. E então o que você pode fazer é pressionar Control a, e então ele selecionará tudo aqui. E o que você pode fazer é criar uma nova textura aqui. Vamos chamar isso de armadura Humboldt extra, vou dizer confirme. E então você pode ver que se parece com isso. Se salvarmos isso agora, então vamos salvar isso como a Textura de Armadura de cobalto. Então, se eu realmente der uma olhada nisso, parece assim. Então, vou abri-la rapidamente para que você possa ver que se parece com isso. E agora vou abri-lo no Photoshop. Já preparei um monte de curso suave aqui. Você pode ver, você também pode abri-lo em paint, dotnet ou GIMP ou o que quer que seja, basicamente pensar que você tem. E o que você pode fazer é geralmente o que você quer fazer é que você pode simplesmente gostar aqui, por exemplo, eu acredito que esta deve ser a cabeça na verdade, não um 100% verdadeiro, mas eu acho que é. Então podemos, por exemplo, apenas pegar qualquer cor aqui. Vou colocá-lo na mesma camada e depois vamos salvá-lo novamente, que a coisa real muda no próprio bloco bancada. Agora podemos clicar com o botão direito em atualizar. E então você pode ver, por exemplo, que na verdade era a cabeça. Isso, é claro, não era a coisa mais interessante, mas você pode basicamente mudar os componentes individuais disso são algo assim. Talvez vamos mudar algumas coisas como aqui. Por exemplo. Isto é, quero dizer, eu não diria necessariamente um processo tedioso, mas este é um processo que definitivamente vai levar algum tempo para você basicamente fazer essa atualização novamente, podemos ver que eles passam por isso parte de trás da cabeça nesse caso. Você também pode, é claro, pegar manualmente cada um desses cubos e ver o que eles são. Mas essa é basicamente a ideia. Então você vai ter que fazer da armadura a textura real ou a si mesmo. Agora, eu, claro, preparei uma textura. Este vai ser este aqui. E na verdade há uma pequena coisa que queremos fazer e isso será basicamente tomar todos os não toques e depois apenas movê-los na parte inferior aqui, só para que basicamente possamos veja a diferença aqui porque os reais não nos tocam não serão usados de qualquer maneira, mas eles estão lá apenas para referência. Basicamente, basta levar isso aqui. Achei que essa era a maneira mais fácil basicamente mudar a armadura em torno dela. Então você pode, por exemplo, ver aqui, essa armadura na verdade é um pouco baixa demais. Há algumas coisas que são muito baixas e também podemos apenas pegá-las e depois movê-las, certo. Então você pode ver que mudamos a armadura aqui. Como eu disse, não será a armadura mais bonita ou o momento. O real, digamos que o modelo real aqui é bem legal, mas a textura definitivamente poderia usar algum trabalho. Admito totalmente que estou, concordo absolutamente. Eu só queria mostrar a vocês basicamente a essência geral de como isso funciona. Então, o que temos é essa armadura de cobalto. Então eu vou salvar isso, esse arquivo de bancada de bloco , é claro, estará disponível para você. Vamos fechar o outro aqui. E então o que você pode fazer é poder exportar o modelo ao vivo da gecko aqui. Isso vai ser sublinhado de cobalto blindado, GO dot JSON. Então, vamos salvar isso, substituir o outro. E então vamos para o inteligente e vamos adicioná-lo lá. O que precisamos para um cliente? Na verdade, é um monte de coisas. Primeiro de tudo, vamos adicionar o arquivo de modelo na pasta geo aqui. Então, vamos apenas tocá-lo. Lá vai você. E também precisamos de um arquivo JSON de animações. Agora isso vai ser, eu já preparei isso e é literalmente assim. Não tenho 100% de certeza. Você pode simplesmente pegar isso e usá-lo. E deve estar muito bem. Também precisamos dos modelos ARMA personalizados, assim como a textura. Então, vamos adicionar isso nos modelos aqui. Como eu disse, este é o que parece um pouco estranho, mas não se preocupe. E isso vai ser chamado de Textura de Armadura de cobalto só porque eu acho que esse nome é um pouco melhor. Vá sobre Armor Texture e , em seguida, os arquivos estão todos configurados. Agora, o que precisamos em termos de quais renderizadores e outras coisas? Bem, no renderizador de entidade, vamos fazer no cliente em um novo pacote chamado armor. E isso incluirá duas novas classes. Um deles, o modelo de armadura de cobalto e o outro será o renderizador de armadura hello world. Agora, antes de prosseguirmos com eles, na verdade, precisamos de uma nova classe de itens, o que é muito interessante. Então, isso vai estar no pacote personalizado. Este será o item de armadura de cobalto. E então a primeira coisa que vamos fazer é pegar tudo do item de armadura mod e copiá-lo. Então, na verdade, vou copiar tudo aqui. Então, vamos fazer isso. Lá vai você. E então vamos ter alguns erros aqui. Não se preocupe, vamos fazer isso aqui. E então o que podemos fazer é mudar isso para ser o seguinte. Isso agora estenderá o item de blindagem geográfica e implementará o AI animatable, que também exige que implementemos os dois métodos, o controlador de registro e eles obtêm fábrica, mas, na verdade, vai mover isso para cá. Na verdade, vamos escrevê-lo aqui abaixo. Eles se adequarão abaixo do, o construtor. Isso vai ficar bem. Então, também precisamos de um predicado que eu já preparei. Essa é a mesma coisa bastante simples que fizemos com o predicado de entidades, a fábrica animável com a qual também devemos estar familiarizados. Já vimos isso anteriormente também. E, claro, todo o código está sempre disponível no repositório do GitHub em indivíduos também. O método do controlador de registro é exatamente a mesma coisa que a entidade. E então a fábrica literalmente retorna a fábrica aqui. Então essa fábrica de coisas, vamos fazer isso. Quero dizer, é um pouco melhor. Lá vai você. Há uma fábrica, que é esta. Ainda temos todas as funcionalidades que fizemos antes. Agora há uma coisa minúscula que eu realmente quero mudá-los, então é o último método aqui, a casa correta. Armadura em sugiro que você faça isso também porque senão você pode um problema se você tiver uma armadura completa, como se você usar a armadura completa e também ter um elétron para que às vezes tenha um problema com o outro, com as coisas antigas. Portanto, tenha isso em mente também, mas isso não faz parte do modelo personalizado. Agora, mais um item de armadura mais classe de itens, e nós realmente queremos que ele mude todos eles para o item de armadura de cobalto aqui. Isso é um pouco de diferença do que anteriormente, mas não se preocupe lá, também está totalmente bem e deve ser isso. Então agora temos este configurado, podemos fazer agora é entrar no modelo e realmente fazer o seguinte. Isso vai estender o modelo Geo animado do tipo ou ambos os itens de armadura. Lá vai você. Você passará o mouse sobre esses métodos implementados. Então, vamos implementar os três métodos. Vou mais uma vez copiá-lo. Esta é a tensão como a mesma coisa que tínhamos nos modelos para o guaxinim e o tigre. Você pode ver praticamente a mesma coisa. Estamos apenas apontando para o arquivo GeoJSON da armadura de cobalto aqui. Também estamos apontando para a armadura de teste neste caso. Agora, na verdade, queremos mudar o nome aqui. Esta é uma camada de armadura de sublinhado de cobalto, na verdade textura. Lá vai você. Textura, lá vai você. E então esta é a animação de armadura. Isso também está bom. Então, essas são todas as coisas que precisamos fazer aqui. E então, para o renderizador, será muito parecido. Queremos que aqui é mais uma vez, vou apenas ficar com o renderizador de armadura geo, desta vez do tipo item de armadura de cobalto também sobre este criador combinando super. E então aqui queremos realmente livrar desse construtor, colocar um novo modelo de armadura de cobalto. Então também queremos ter certeza que selecionamos as coisas corretas, bem, por assim dizer. Isso vai ser muito interessante. O que vou fazer é copiar isso mais uma vez. E isso é, na verdade, deve ser bastante simples. Então você vê que o fone de ouvido é a cabeça da armadura. Se voltarmos para o banco de blocos, você pode ver que este é aqui. A cabeça de armadura, armadura, armadura corporal, certo? E assim por diante e assim por diante. O que é muito interessante é que, por qualquer motivo, o osso da perna é realmente trocado por uma perna. Não sei por quê. Então você pode ver que o osso da perna direita é realmente a perna esquerda ARMA e, em seguida, a bota madura é na verdade a bota esquerda. Não sei por que esse é o caso. É apenas o que é. Não sei por que esse pode ser o caso, mas apenas tenha isso em mente. Então, se você acha que isso é meio estranho, há uma incompatibilidade lá. Sim. É basicamente porque, por qualquer motivo , é apenas o que é. Ainda precisamos ter esse Renderizador registrado e fazemos isso no evento R, nos eventos Mode Event Bus. E isso vai acontecer em um novo método que será este por enquanto. E esse será o seguinte evento. Esta será a entidade renderizar-nos evento, adicionar camadas de pontos, o escopo, médico e ser frio evento. E então a única coisa que precisamos fazer aqui é que precisamos apenas para fazer aqui é que precisamos apenas renderizador de armadura geo, registrar armadura nos renderizar para a classe de ponto de item de armadura de cobalto e, em seguida, uma nova armadura de prêmio renderizar há um dia. Coisas muito loucas em geral. Mas em conjunto, não muito louco. Muitas das mesmas coisas que fizemos nas entidades já, certo, com o modelo de armadura, com o modelo e o arquivo do renderizador. Não é tão louco. Os arquivos JSON também são bastante simples. Este, como eu disse, você pode exportar a partir de uma pitada de bloco. Este aqui. Eu só pegaria o que eu preparei. Quero dizer, também não é tão complicado, mas você provavelmente deveria ficar bem com isso, como se não fosse tão complicado. E então a textura, você só precisa fazer a si mesmo, que é provavelmente a mais, a parte mais demorada de tudo isso. E acabei de voltar para o Photoshop por apenas um segundo. Agora, preencher tudo como você quer, definitivamente levar a maior parte do tempo em que você está para a armadura personalizada. Mas sim, é praticamente assim que o que você tem que fazer se quiser um modelo ARMA personalizado muito legal, é apenas o que é, mas esses são os passos necessários. Então, mais uma vez, isso é praticamente tudo o que precisamos. Então, para fins de conclusão, vamos ver se funciona. Tudo bem, encontramos consolo de volta no Minecraft, então vamos colocar a armadura e lá vamos nós. Temos a armadura no LAC também ainda funciona, é claro. E você pode ver a armadura funcionando. Quero dizer, praticamente como você esperaria. Como eu disse, não é a armadura mais bonita em geral, mas é funcional e é definitivamente o que você possa dizer, é definitivamente um costume. Essa é definitivamente a coisa eu recomendo apenas brincar com ele, estar aberto à experimentação para a armadura. Como você pode ver, tudo funciona para o balanço dos braços e das pernas e coisas assim. Mas é muito legal. Sim. Quero dizer, isso é praticamente o quão fácil é adicionar a armadura personalizada ao jogo. Adicionando-o muito direto e bastante fácil, fazendo com que pareça muito legal, definitivamente muito mais difícil. Sempre, é claro, todo o código e os arquivos JSON estão disponíveis para você no repositório do GitHub e individuais também. Mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. Sim. 118. (1.18.2): Bem-vindo de volta ao curso forge para 118. E nesta palestra vamos adicionar um aldeão personalizado ao Minecraft. Então agora é hora da profissão de aldeão do cliente, porque na verdade é bastante simples. Todas as coisas consideradas. O que vamos fazer é fazer um novo pacote em nosso pacote de cursos MC, velho aldeão. E então lá dentro faremos uma nova classe Java chamada MOD aldeões. Agora, neste, vou me afastar um pouco da minha coisa habitual que faremos e na verdade, adicionaremos aos registros adiados. O primeiro será um registro diferido final estático público registro diferido final estático tipo de jogo. Portanto, esse é o tipo de ponto de interesse. Vamos chamar isso de que o tipo de ponto de ponto permanece atrás é igual a registro adiado que cria ou para tipos de registros, curso AMC moderado e moderado. E então o que vamos fazer é fazer um segundo ou terceiro registro que vai ser da profissão de aldeão tipo. Um aldeão sublinha profissões. Lá vai você. E haverá um registro diferente, criação de pontos, registros, aldeão de pontos, profissões de ponto. Lá vai você. Modalidade de monitor de curso Mc. E agora, quando temos registros diferentes, é claro que temos um método de registro vazio estático público com um ônibus de eventos oftalmológicos, ônibus de eventos legal. E então vamos chamar os tipos de pontos que se registram perguntando no ônibus do evento. E depois, em segundo lugar, passamos na aldeia ou profissões. Eu me registrei no ônibus do evento, certificando-se de que chamamos isso aqui. Vamos chamá-lo permite que as estruturas mod. Então moradores mod se registram e depois passando no ônibus do evento, lá vai você. Muito bom. E o que precisamos é, claro, de objetos de registro para o protótipo e as profissões do aldeão. Então vamos fazer o tipo de ponto primeiro, este será o objeto Registry do tipo protótipo. Este vai ser o ponto do blaster. Então, vamos usar nosso blaster de cobalto aqui. Haverá os protótipos que se registram. Este vai ser o ponto de explosão. É quando eu o seguro. E, claro, mais uma vez, um fornecedor de um novo protótipo, ele chamará esse ponto de explosão. Então precisamos digitar ponto, obter o estado bloqueado, dizer blocos mod, ponto, ponto. Então, depois, dizemos 11. Vamos realmente dar uma olhada no que isso tudo implica. Parênteses de fechamento. Lá vai você. E então vamos entrar no protótipo real aqui. Você pode ver que Max tickets é este e esse é o intervalo válido. Assim, você pode, por exemplo, dar uma olhada nisso onde isso foi usado. Vamos realmente ver, acredito aqui e, em seguida, no método de registro, este é provavelmente o lugar onde ele foi usado. Lá vai você. Geralmente eles são todos 11. Há algum outro, geralmente o protótipo é 11, então é por isso que usamos 11. Lá vai você. Em seguida, vamos para registro final estático público, objeto de registro. Esta época da profissão de aldeão tipo, que será o mestre da explosão. E isso vai ser igual ao registro estatístico da aldeia ou profissão , o mestre da explosão aqui. E então um novo fornecedor ou fornecedor de uma nova aldeia ou profissão. Isso é mais uma vez, é claro, poderia ser o mestre da explosão aqui. Deixe-me escrever isso corretamente. Isso vai pegar o ponto do blaster, e então vai demorar muito interessante, um conjunto mutável. E então vamos falar sem nada nele. E então vamos dizer outro conjunto mutável sem nada nele, na verdade. E então o último será o ponto dos eventos sonoros. E então qualquer aldeão trabalha. Vamos pegar o mito das ferramentas, por exemplo, e depois terminamos com um ponto e vírgula. E então acabamos na aldeia de profissionais. Podemos ver que o primeiro conjunto imutável é os itens solicitados, define itens que o endereço que pode ser retirado e usado. E então o outro é o PUI secundário, que é como bloqueios nas estradas, esse profissional interage com? No nosso caso, não teremos nenhum desses é altamente recomendável. Mais uma vez, estar aberto a experimentação sobre isso, experimentar algumas coisas e ver o que você encontrará. Então a última coisa que vamos fazer é que teremos outro método que será o vazio estático público, e este será o método de registro por favor. E isso é incrivelmente importante. Vamos ter uma declaração de try and catch aqui. Não escreva este. O pegador terá o seguinte. Vai ter uma exceção de destino de invocação com esta única exceção de acesso legal em linha reta chamada exceção E. Lá vai você. E então este será o ponto de exceção impressão, pilha, rastreamento. Lá vai você. E o que tem na trie é o óbvio. E então aqui na tentativa, vamos dizer método auxiliar de reflexão de ofuscação. Vamos fazer a classe ponto tipo ponto. O nome do método será registrar estados de bloco e, mais uma vez, passar uma classe de ponto do tipo ponteiro. Depois, vamos dizer invocar null e o ponto do blaster chegar, lá vai você. Agora isso pode parecer absolutamente louco para você, e é. Agora, a razão pela qual precisamos fazer isso é basicamente precisamos, bem, precisamos registrar os estados de bloco. Na verdade, podemos dar uma olhada nisso como esse método aqui. Você pode ver esse método de estados de bloco de registro. Como você pode ver, todos os métodos de estados do bloco de registro são todos privados. É por isso que temos que usar o ajudante de reflexão de ofuscação neste caso, e então podemos realmente chamá-lo. Mas se você tiver vários pontos, basta adicionar outro com o outro ponto aqui. Então, basta adicionar o outro ponto e então você ficará bem. Esse método precisa ser resfriado no método de configuração do curso MC na configuração comum do FMLA. Então vamos dizer que os aldeões mod começam a registrar equilíbrio e lá estamos nós. Agora ainda não terminamos porque ainda precisamos adicionar na tradução algumas características para este aldeão. E então também é muito importante. O extra, vamos começar com a tradução para a tradução é bastante simples todas as coisas consideradas. Vou apenas copiar isso e isso está, claro, disponível para você no repositório do GitHub, um indivíduo também. Você pode ver Entity micro aldeão, mestre de explosão do curso MC. E este será o nome da entidade real no topo quando você abrir o inventário ou a textura, isso vai ser muito interessante. Isso está sob entidade e eu vou fazer um novo diretório chamado aldeão. E depois vou copiar o que já tenho aqui e mostrarei de onde tirei isso. Então este será o número um, o aldeão aqui. Não tenho certeza do que precisávamos do próprio aldeão também, mas aparentemente ainda precisávamos, a menos que profissionais, é claro, nomeados exatamente como este aqui, mestre da explosão. E você pode ver, eu realmente adiciono uma profissão recolorida já existente aqui neste caso, apenas para que tenhamos algo que parece diferente naquele momento, mas na verdade funciona. E eu consegui isso, é claro, mais uma vez das bibliotecas externas indo até o seguinte. Vamos ver, ele deve estar aqui por um 1182 extra ou qualquer que seja a sua versão na pasta de ativos, Minecraft, texturas na pasta da entidade até o aldeão aqui mesmo. Então temos o aldeão aqui . Este é o aldeão normal. Então aqui esta é a profissão e eu peguei a armadura, eu acredito. Sim, lá vai você. Mas apenas gravar a armadura são um pouco tão recomendadas, pegar isso, usá-la e depois treiná-la um pouco. Então, a texturizada aqui definitivamente será a única coisa que pode levar um bom tempo até você acertar, mas é o que é. E então os tipos, eu não acho que ele realmente precisava que você fizesse qualquer coisa com os tipos, mas você faz de alguma forma por qualquer motivo, precisa do aldeão e da profissão. Não sei por que esse é o caso. Pelo menos é isso que meu, é o que meus testes têm. Economia. Então, quando se trata dos traços reais, bem, podemos usar nosso evento novamente. Então, na aula de eventos motorizados na parte inferior, aqui, podemos simplesmente usar isso literalmente para o nosso evento também, para nossos profissionais personalizados. Bem, então mais aldeões que o último ponto mestre obtém e agora podemos adicionar coisas a ele também. Então, podemos dizer algo assim onde podemos simplesmente adicionar a lista, basta adicionar algumas coisas aqui para o nível um. E então, apenas por uma questão de argumento, vamos adicionar um par de dois níveis dois aqui. Vamos mudar isso para o nível dois. Mas isso vai ser, vamos apenas adicionar a mesma coisa para preços diferentes, porque por que não? Vamos fazer isso e depois vamos fazer um nível dois. Vamos fazer algo como um 58 como um teste muito aqui apenas para que você possa ver que você pode adicioná-los também. É tudo o mesmo cobalto Paxil basicamente que estamos sendo capazes de comprar aqui. Então, não vai ser tão interessante, mas vamos tentar isso e você verá que isso adicionará as negociações a eles também. Então eu acho que vamos ver se funciona oh, bem na nossa frente no Minecraft. Então, vamos apenas gerar um aldeão E então vamos definir as explosões de cobalto ou que imediatamente reconhecem como um ponto de interesse e ele deve se mover em direção a ele e então obter o real ou eu acho que não. Vamos nos aproximar um pouco aqui. Bem, eu havia um erro de digitação lá. Na verdade, é o bloco de cobalto que é o ponto de interesse, mas justo o suficiente, eu acho. Então, vamos apenas configurá-lo e então você pode ver agora ele está se movendo em direção a ele. Porque você pode ver que temos uma seta e a textura. Vamos consertar isso em apenas um momento. Veja o O, na verdade é o blaster Moscow. Isso é ótimo. Mas você pode ver que o traço aqui foi adicionado. Eu posso pegá-los. E depois, devemos ser capazes de ver, uma vez que ele realmente subir de nível, deve ser capaz de obter os outros que eles vão para o nível dois e lá está. Então isso está definitivamente funcionando. Então, vamos ver apenas para corrigir a textura real por apenas um momento. Aqui diz o mestre da explosão. É claro, deve dizer mestres explosivos. Então isso deve praticamente consertar todo o resto aqui. Também vou mudar isso para o blaster de cobalto aqui. E então, apenas por uma questão de argumento, vamos ver se funciona. Por exemplo, de volta ao Minecraft mais uma vez, e vamos apenas configurá-lo e eles vão Agora tudo está funcionando bem se eu for aqui e o último mestre também funciona para que tudo como você faria espere que sim. Então é assim que é fácil adicionar uma aldeia ou profissão personalizada, Minecraft, certo? Mais uma vez, é claro que todo o código estará disponível para você no repositório do GitHub e individual também, mas isso seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo na próxima palestra. 119. (1.18.2): Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos olhar para entidades de bebês. Sim, então vamos adicionar a entidade bebê ao nosso tigre. E mais uma vez, essa é uma daquelas coisas que é realmente muito mais fácil do que você poderia esperar. Eu também fui um pouco mais complicado, mas na verdade não é nada complicado. Dentro da nossa prole, aqui, o que queremos fazer é dizer tipos de entidade mod, não um tigre que obtém essa criação e depois passa para o nível do servidor. Este é esse parâmetro aqui. Eu só vou clicar nele, pressionar Shift F6 para renomeá-lo para o nível do servidor só que saibamos o que estamos passando aqui e, em seguida, estamos passando aqui. Este é o número um que precisamos fazer. Número dois, precisamos substituir um determinado método e esse é o método alimentar. Em vez de aqui, estamos basicamente verificando se essa pilha é ou não o alimento que essa entidade em particular pode ter largura criada. Neste caso, vamos dizer p dot obter item, e eu vou dizer que é igual aos itens dot beef. Eu basicamente quero que você clique com o botão direito do mouse na entidade tigre com carne bovina do que ela está pronta para respirar. Essa é a ideia aqui. Então, precisamos de um novo objetivo. Então eu vou apenas copiar sobre o assentamento ou meta e esse será o objetivo da raça, também vai ter um modificador de uma velocidade aqui. Então, vamos ter a mesma velocidade e eu apenas coloco aqui sob a prioridade três. Acho que isso deve ser uma entropia bastante simples. Agora, essas são, na verdade, todas as coisas que precisamos fazer na entidade tigre. Há mais uma coisa que precisamos fazer no renderizador, e essa será a escala aqui. Portanto, é claro que essa é a escala do modelo real. E o que podemos fazer é que podemos dizer, se animável, que é bebê, e vamos escalar de forma diferente de apenas pressionar Control X para cortá-lo e depois colá-lo de volta. E então aqui, vamos fazer este. Então aqui estamos quando não é um bebê, e então aqui estamos se for um bebê, então vamos colocar isso ao meio e então é isso. E isso deve ser tudo o que precisamos fazer para ter o trabalho do bebê. Existem algumas coisas interessantes. Por exemplo, uma vez que realmente tivermos as equipes de tigre e, em seguida, damos um clique com o botão direito do mouse com o item alimentar aqui. Então ainda gostamos de ir para ele para escrevê-lo. Então, há um pouco de estranheza aqui, mas isso deve ser bastante trivial para consertar isso aqui, basicamente para verificar, ei, como um jogador, clique com o botão direito do mouse com uma carne e, em seguida, não devemos nem mesmo comece a escrevê-lo. Isso deve ser bastante simples de corrigir. Mas, para fins de conclusão, vamos ver se funciona ou nos encontra em micro. Então, vamos responder aos tigres e vamos ver, clique com o botão direito, clique com o botão direito do mouse. Lá vamos nós. E então, assim que eles se encontram, sim, não. Certo. Lá vai você. Havia um lá está o bebê tigre também ou funcionando absolutamente bem. Agora, na verdade, leva um bom tempo para eles crescerem. Eu experimentei e eles crescerão. Só leva muito tempo. Acredito que isso seja codificado na classe de animais, mas podemos realmente verificar isso em apenas um momento. Mas sim, é praticamente assim que você faz isso. E então este, é claro, não podemos criar. Agora pense que apenas o suficiente devemos ser capazes de escrevê-lo. Quero dizer, tudo bem. Isso é como se provavelmente houvesse um cheque para isso. Mas, honestamente, são entidades de bebê. Muito autoexplicativo. Realmente não é tão difícil. Eu realmente pensei que eles seriam mais difíceis, mas na verdade são bastante simples, certo? Então, apenas mais uma vez se você realmente der uma olhada neste botão do meio do mouse, clique neste mouse do meio, clique com o botão direito do mouse sobre isso. Veja, este é o animal, e este tem uma espécie de todas as coisas diferentes para a criação nele. Então você pode ver que tem, tem muitas coisas. Você tem a vela e adorou conjunto e adora isso. Eu adoro tempo ter tempo suficiente, amado curso está apaixonado, redefinir, o amor pode se encontrar. Essas são uma espécie de coisas. Quero dizer, aqui você pode ver a criança gerada método de reprodução, que basicamente patrocinam a criança real. Você pode ver que ele é habilitado para celular a partir do, ele lê descendentes aqui. Então essa deve ser a coisa que você precisa dar uma olhada se houver algo que você quisesse substituir. Então, sim, isso é praticamente o que você precisa talvez no esfregão de escombros. Sim. Então você pode ver bebês começar h, Este é o h armazenado aqui. Então você provavelmente também pode alterar isso dentro da sua entidade tigre. Nesse caso, se você quiser, talvez o tigre cresça um pouco mais rápido, isso também poderia ser feito. Mas sim, isso é praticamente o quão fácil é adicionar entidades de bebê aos seus monstros. É muito mais direto do que eu pensava, mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo nas próximas palestras. 120. (1.18.2) geodos personalizados: Tudo bem, bem-vindo de volta ao curso florestal para 118. E nesta palestra, vamos dar uma olhada em como você pode adicionar códigos geográficos personalizados a um Minecraft. Agora, isso é realmente uma coisa bastante simples de acrescentar e vamos dar uma olhada nisso. Assim, no pacote mundial, no pacote de recursos, os recursos configurados mod são onde vamos adicionar o geode e eu copiarei sobre todo o suporte. E então vamos basicamente dar uma olhada em cada uma dessas linhas e o que elas significam e a loucura que está associada a ela porque é uma coisa bastante longa, mas não se preocupe. Eles podem ver que é realmente fazer uma nova linha aqui também. E você pode ver que é um campo muito longo neste caso, mas não se preocupe. Portanto, é claro que, mais uma vez, estamos usando o recurso utils dot register para registrar um recurso geode neste caso. E então temos que fazer uma nova configuração de geode. Esta também é uma ótima classe para basicamente dar uma olhada. Então, se nós clicar no botão do meio do mouse sobre isso, você pode realmente ver o que cada uma dessas coisas significa, certo? Temos as configurações de bloco, temos a camada, as configurações corretas, temos chance de posicionamento potencial e todas essas coisas loucas que podemos basicamente adicionar aqui. O que é muito interessante neste caso é, na verdade também serão as configurações do bloco geode aqui. Então, isso é basicamente tudo selecionado aqui. E esses são realmente muito interessantes porque aqui você pode ver do que as camadas de riqueza específicas são basicamente feitas. Assim, você pode ver que o provedor de enchimento será ar que deve ser bastante autoexplicativo. Então, o G ou dentro dele, tudo é ar. Se você não quer que ele seja ar, você também pode mudar outra coisa, certo? Então você pode mudar esta caixa aqui para outra pessoa, certo? Se você tiver um bloco diferente, você quer que este seja preenchido com hindu. Então isso é muito legal e permite que você basicamente modifique e configure quase tudo o que você gostaria, o que eu acho muito legal. Então essa é praticamente a ideia, certo? Então, esta é mais uma vez, uma daquelas coisas em que eu recomendo apenas brincar com os diferentes blocos, os números diferentes, especialmente também. É a melhor coisa que você pode fazer. Apenas experimente algumas coisas, veja até que você possa basicamente encontrar um GO que você gosta em termos de quão rachado ele está, bem com as configurações corretas, por exemplo, isso significa apenas se há ou não alguma lado que está exposto e eles podem imediatamente entrar em coisas assim. Só recomendo dar uma olhada nisso, brincar com os números aqui. E então espero que você crie um geodo dos seus sonhos, por assim dizer. Agora o que eu quero fazer é substituir a ardósia profunda aqui. Vamos substituir isso por sujeira. E vamos dizer aqui, vamos fazer esmeralda. Claro. Por que não? Por precaução, basicamente quero dar uma olhada em como isso afeta as configurações do blog geo. E então você pode ver onde todos esses blocos diferentes são basicamente colocados, certo? Então, a mais importante é na verdade, esta lista aqui. Como essa lista geralmente escreve, esta lista é, na verdade, os posicionamentos internos e os posicionamentos internos ou os cristais de ametista. Então, essas listas basicamente incluiriam esses cristais de ametista. Então, o que podemos basicamente dar uma olhada, por exemplo, é outra característica, geode. Então, vamos apenas o botão do meio do mouse, clique neste anúncio do meio , clique nisso e você pode ver a ametista GO aqui. Se nós apenas percorremos todo o caminho até o, lá vai você. Então, lá você pode ver a ametista em brotamento. E isso também é feito na lista aqui. Então você pode ver aglomerado de ametista, em que você pode ver aqui que temos o pequeno botão de ametista médio MF é botões. Portanto, esta é uma lista dos possíveis botões de ametista do aglomerado de ametista que podem ser capazes de gerar. Essa é a ideia geral desta lista aqui. Então eu acabei de usar o bloco de cobalto neste caso, mas você pode, claro, fazer o seu próprio, agrupar o seu. Mas basicamente e depois cisne isso também. Agora está tudo bem, mas o que fazemos com esse recurso configurado? Bem, entramos no mais, entramos na classe de recursos do mercado mais uma vez, e vamos apenas, e eu vou copiar sobre o titular mais uma vez, tudo isso está disponível para você em o repositório do GitHub e o indivíduo também. E você pode ver que este é o geodo de cobalto colocado. Claro, estamos tirando o geodo de cobalto daquilo que acabamos de criar basicamente, então estamos fazendo um filtro de raridade em média cada 50 pedaços. O spread N-quadrado é apenas algo que eu tirei praticamente do geodo de baunilha também. E então você pode ver, estamos basicamente esta manhã acima seis e todo o caminho até 50. Mais uma vez, recomendo brincar com as âncoras verticais acima da parte inferior, abaixo, absoluta, tudo isso. Apenas experimente e veja o que você pode ver basicamente até que ele seja colocado da maneira que você quer escrever. Então, isso é praticamente isso. E então precisamos apenas entrar em nosso mais ou geração. Então, em vez de chamar o cobalto ou colocado, você quer chamar o geodo cobalto colocado. Essas são, na verdade, todas as coisas que precisamos para adicionar nosso geode personalizado aqui neste caso. Então, vamos criar um novo mundo e ver se ele funciona. Ou nos encontramos no Minecraft. E como você pode ver, eu já encontrei um bom geode, para que você possa ver quais são basicamente os diferentes blocos. Então, antes de tudo, é claro, o interior dele está bem basicamente cheio de ar, como especificado no início. E então você pode ver, e então você pode ver que os blocos aqui seriam basicamente as ametistas brotantes, certo? Enquanto o cavalo seria os blocos onde o MSS cresce. Essa é a ideia geral. Você também pode ver onde a sujeira é colocada. Uma esmeralda, ou onde está isso? Bem, se nós realmente saímos daqui do que deveríamos ser capazes encontrar alguma esmeralda ou possivelmente no outro é para que eles possam ver os blocos amro na verdade. Então, este é todo o caminho até aqui onde o geode real se localiza. Assim, você pode ver que o tamanho real do geóide é bem maior. E C, lá vai você. Então, recomendo talvez não mudar isso para auras esmeralda, mas blocos de esmeralda neste caso. Então isso é muito louco. Mas sim, essas são basicamente as idéias do que todos esses blocos diferentes fazem. E então é só uma questão de brincar com eles um pouco no seu próprio tempo e experimentar alguns valores diferentes, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e os alertas que o Novo, e eu te vejo na próxima palestra. Então, sim. 121. (1.18.2) bloco que interaja com o Redstone: Tudo bem, bem-vindo de volta ao curso de forja para 118. Nesta palestra, vamos dar uma pequena olhada em como você pode fazer seus blocos interagirem com um Redstone. Mas isso era algo que algumas pessoas realmente queriam basicamente dar uma olhada e não tinham certeza de como. Então. Vamos dar uma olhada na nossa classe de blocos de clientes, principalmente o bloco de lâmpada de cobalto. Então, em vez de fazê-lo para que você possa clicar com o botão direito do mouse para basicamente ativar e desativar isso. O que vamos fazer é verificar se um sinal Redstone é aplicado ou não a este bloco. Agora, mais uma vez, é claro, nosso melhor amigo aqui são as bibliotecas externas, principalmente o código-fonte do Minecraft. Então, se realmente pressionarmos Shift duas vezes e, em seguida, dar uma olhada na lâmpada redstone. Esta será a lâmpada redstone, certificando-se de que incluir não projetos está marcado. Você pode ver este aqui, seu próprio bloco de lema, então podemos praticamente, e isso é loucura, na verdade, copiar sobre a maior parte disso, maior parte que está escrita aqui. Então, queríamos o método de tick e também os métodos de mudança do vizinho. Então esses dois são basicamente os únicos métodos que precisamos. Então, vamos copiar sobre esses dois do bloco de lâmpadas redstone. Todo o código também estará disponível no repositório e no indivíduo também. E só precisamos trocar a tampa aqui basicamente para coletar porque chamamos isso clicado eles atrás. E isso deve ser bom. Mas podemos mudar isso aqui para este ano também. Este ano também. E então aqui também, lá vamos nós. Vamos apenas adicionar uma substituição de adição aqui apenas para que estejamos, sabemos que substituímos esses métodos apenas por precaução, e isso deve ser bom. Agora, eu realmente quero que nada mude aqui, então vamos comentar isso. Isso também deve ser bom. E agora isso é praticamente tudo o que precisamos fazer neste caso. Então, o que isso realmente faz? Certo? Então, porque você pode ser como, isso é meio estranho. Bem, em primeiro lugar, o método alterado do vizinho será bastante autoexplicativo. Isso é chamado toda vez que um vizinho desse bloco específico muda. O que ele faz então é que diz, ei, assim como qualquer vizinho tem um sinal aqui, certo? Então, basicamente, vai dizer que vai obter, em primeiro lugar, o valor de Clicked. Isso é justo, justo o suficiente. Isso é verdade. Então, estamos no momento, à direita. Então nós basicamente queremos verificar, ei, é o, nós também, não temos um sinal de vizinho se estivermos ligados? Porque então o que queremos fazer é que queremos desligar essa pedra em particular como a ideia geral. Isso é um pouco complicado na forma como isso é basicamente fraseado. Mas essa é a ideia geral. O tick agendado praticamente apenas, bem, agenda um carrapato se realmente entrarmos nisso. E isso é um pouco difícil de ler com os parâmetros não mapeados. A ideia geral é que estamos basicamente agendando um tick e, em seguida, o método tick é chamado aqui. Tick method aqui neste caso, mais uma vez, ele verifica se o nosso próprio ou não e se o vizinho não está ligado, se não houver sinal no vizinho, se for esse o caso, mais definindo esse bloco como sendo, e estamos realmente pedalando pelo link aqui. Então podemos realmente dar uma olhada no que o ciclista da coleção Nixon, o que isso praticamente faz é reverter os cliques. Então é a mesma coisa que fizemos aqui com o estado atual e, em seguida negá-lo, é a mesma coisa. Só estamos pedalando por ele. Então isso é tudo o que estamos fazendo. Nesse caso, quase nenhuma alteração no código da baunilha. Nesse caso, basta mudar o aceso basicamente dois clicados neste caso. E isso é praticamente isso. Também queremos fazer é que eu queria adicionar a seguinte linha de impressão do sistema apenas para que possamos ver isso. Então podemos dizer aqui, vamos apenas dizer isso para dizer alimentado por. E então vamos dizer, quando eu disser nível P, obter um melhor sinal de vizinho. Veja, estamos apenas passando na posição. Mas qual é o melhor vizinho? Siegel? Qual é o melhor sinal de vizinho? Bem, o sinal dos melhores vizinhos é simplesmente de todos os seus vizinhos, que tem o sinal mais forte. E basicamente vamos emitir o sinal real daqueles vizinhos em particular. Então, este é um número inteiro. Você pode ver onde está 15 é a maior intensidade de sinal que o redstone pode ter. Então, se algum dos vizinhos tiver 15, então vamos produzir 15. Se houver um sinal mais fraco, vamos produzir isso. Vamos entrar no jogo e ver o que isso realmente faz. Ou na França ou em Minecraft. E eu já coloquei uma lâmpada de cobalto. Vamos apenas tentar um nível. Primeiro de tudo, lá vai você. Posso ligá-lo e desligá-lo, então isso funciona. E eu também posso colocar redstone nisso. E isso também funciona também. Se eu agora clicar com o botão direito do mouse e mostrar inteligente, você pode ver alimentado por 14. Por que é 14? Bem, é claro, porque isso seria 15 de força e isso seria 14 de força. Até agora, ligue este também, certo? Então, a alavanca então em C, agora é alimentada por. Então isso é praticamente tudo o que há para ele. É basicamente assim que você pode alterar uma determinada propriedade de estado de bloco ao aplicar o Redstone a ela. E isso é praticamente tudo o que você precisa se quiser alguma funcionalidade especial para ele, bem, então você precisa, é claro, pegar esses blocos, dizer propriedades, por exemplo, que mudam e fazem algo com eles. Mas isso é praticamente todo o factível. É assim que é fácil adicionar um bloco com algumas funcionalidades redstone do jogo. Como sempre, todo o código está disponível no repositório just e no GitHub também. E eu vou ver todos vocês na próxima palestra. Sim. 122. (1.18.2) Renderer de entidade com bloco personalizado: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra vamos dar uma olhada na entidade de bloco renderizar-nos. Bem, este é um tópico muito interessante que basicamente permite que você renderize algumas coisas personalizadas em suas entidades de bloco basicamente, agora o que faremos é importar um modelo de bloco personalizado de um banco de blocos. Então eu já preparei isso. É chamado de pedestal. E o que será capaz de fazer é poderemos clicar com o botão direito do mouse com um item e, em seguida, o item flutuará em cima do pedestal. Essa é a ideia geral desse exemplo em particular aqui. E vai ser realmente, muito incrível. O arquivo de bancada de blocos, é claro, também estará disponível. E quando você tiver isso, o que você quer fazer é ir para o arquivo e exportar o modelo de item de bloco aqui. Vamos exportar o pedestal que Jason. Tudo bem, isso vai ficar bem. E então podemos prosseguir. Portanto, é claro que haverá nosso arquivo JSON de modelo de bloco. Mas antes de tudo, vamos criar um bloco, a entidade do bloco e toda a loucura que isso implica lá. Vamos começar com a classe de bloco real. Então, vamos clicar com o botão direito do mouse em nova classe Java em nosso pacote de blog personalizado. E este vai ser o bloco de pedestal há um. Agora, isso estenderá a classe de bloco de entidade base aqui. Ele passará o mouse sobre esses Métodos de Implementação, o novo método de entidade. E então vamos passar o mouse novamente, criar um construtor combinando super. Se o parâmetro aqui o incomodar, Shift F6 para renomeá-lo para propriedades e então tudo deve ficar bem. Agora, a primeira coisa que quero fazer é cometer um erro deliberado aqui para que não nos esqueçamos de mudar isso depois de criarmos a entidade de bloco porque isso às vezes acontece. E o que eu também farei é copiar o resto do código aqui. Então isso não é muito louco. Então, pode parecer muito, mas na verdade não é muito louco. Também recebemos um erro aqui porque não temos o crédito da entidade de bloco, mas tudo bem. A primeira coisa que é incrivelmente importante, pois eles recebem o método render vergonha e todo o código aqui é, naturalmente, também valioso. Consiga um pastor individual também. Portanto, não se preocupe lá. Mas o método em forma de retina é o mais importante, caso contrário, seu bloco será invisível. Então isso é muito importante. Eles usaram o método, é claro, é o método que é, que é chamado quando você com o botão direito do mouse neste bloco específico. E o que acontece aqui é que basicamente estamos apenas verificando, ei, há alguma coisa dentro deste inventário? Se estiver vazio, então estamos apenas pegando o item que está na mão do jogador e estamos adicionando-o ao inventário aqui. Então pedestal para o item do jogador, copiando-o, decrementando-o. Também estamos recebendo o som de coleta do item porque isso é um pouco melhor aqui. E então, se o pedestal não estiver vazio, então estamos basicamente gerando o item do pedestal e excluindo-o do pedestal também. Mas esses são apenas três pequenos métodos auxiliares privados neste caso, e o resto acontece nos métodos usados. Então, no geral, a funcionalidade real aqui não é tão louca, tudo considerado. Agora, é claro, ainda precisamos da entidade de bloco, então vamos realmente obter a entidade do livro também. Então, vamos criar uma nova classe e o pacote de entidades, esta será a entidade de bloqueio de pedestal. E vamos antes de tudo, importante aqui. Então lá vai você. Podemos apenas importar isso. E então vamos ficar bem apenas um segundo. Esse erro desaparecerá assim que realmente implementarmos tudo aqui. Então, o que precisamos aqui? Bem, antes de tudo, é claro que isso precisa estender a classe de entidade de bloco. Não deveria ser muito louco. E vamos criar o construtor combinando super. E então a questão é, bem, o que precisamos? Bem, na verdade, precisamos de algumas coisas. Mais uma vez, copiarei isso, mas não se preocupe. Tudo isso está disponível no repositório do GitHub e individual também. Agora, esses dois não devem ser loucos. Vimos isso nas explosões cordais ou na entidade de bloqueio também. Apenas o manipulador de pilha de itens aqui, basicamente nosso inventário dessa entidade rock específica. E então também precisamos do laser opcional para que o disponibilizemos através dos recursos também. Então, vamos copiar alguns métodos auxiliares aqui pois o que você encontrará é que também temos uma rotação aqui. Agora, por que temos a rotação aqui? Bem, porque o que queremos fazer é queremos cada uma das diferentes entidades de bloco quando o item estiver lá, basicamente queremos que ele gire. E a rotação aqui neste caso é realmente salva na entidade de bloco. Precisamos salvá-lo aqui, porque se o salvarmos no renderizador de entidade, isso não funciona porque cada entidade de bloco basicamente compartilha um renderizador. E então cada entidade de bloco que você adiciona apenas faz com que o, bem, basicamente gire mais rápido. Então, cada entidade de bloco precisa sua própria rotação, mas tudo bem, certo? Não adicionamos rotação aqui. Nós apenas adicionaríamos uma rotação quando ela atinge 360, então estamos apenas redefinindo-a para 0. Se for menor que 0, estamos apenas adicionando. Então, basicamente, estamos apenas girando. Essa é a ideia geral. E então aqui temos um método de rotação get, mas nada muito louco. Em seguida, vamos adicionar o recurso, bem como os métodos de salvar e carregar. Mas, mais uma vez, esses também não devem ser loucos. Você também obtém capacidade que vimos na entidade personalizada, bem como os métodos adicionais e baixos seguros para a tag em que acabamos de salvar o inventário. Então, quando deixamos o mundo e voltamos, o inventário real ainda é salvo, certo? E então os últimos métodos que também precisamos aqui são o método drops, certo? Então, esses são apenas os métodos para que as coisas realmente caem. Então, queremos implementar isso no bloco em apenas um momento. E então também temos o método invalidate caps, o método onload que obtivemos o método pacote de atualização e eles recebem o método de tag atualizado. Agora, esses dois são importantes para invalidar os campos e depois descarregar para que o manipulador de itens real seja inicializado corretamente e tudo isso. Agora, esses dois são importantes porque, caso contrário, pode haver um problema de sincronização entre o servidor e o cliente. É por isso que precisamos de ambos. E basicamente queremos obter o imposto de atualização. Então, queremos obter uma tag aqui e depois carregá-la e depois devolvê-la. Então isso Bem, não é muito loucura, mas saiba que precisamos disso. Caso contrário, o cliente e o servidor não se afundarão corretamente e, em seguida, o item real será salvo, mas não será dividido. É por isso que precisamos desses dois métodos também, certo? Então vamos para o bloco por um momento e vamos adicionar, você pode ver a seta aqui desaparecer. E também adicionarei o método onRemove aqui que chama o método drop que acabamos de implementar aqui. Então, em teoria, nem precisamos fazer um loop for-loop, mas isso vai ficar bem. Vai ficar bem. Este é o mesmo método de gotas que temos na entidade cloroplastos ou bloco. E isso é, na verdade, tudo o que precisamos dentro da entidade de bloco. No geral, não é muito louco e não é muito complicado. Basicamente, apenas algumas das coisas que precisamos para salvar os dados lá. Então, vamos realmente entrar na classe de entidades mod block e vamos registrá-la. Mas nós só vamos, vamos pegar a cooperativa na última linha. Vamos apenas copiar isso para a entidade de bloco de armazenamento de cabeçalho aqui. Este também será o pedestal. Pedestal. Lá vai você. Então, é claro, mudando o nome aqui, muito importante, de fato, do que precisamos que esta seja a entidade de bloco de pedestal. E esse precisa ser o pedestal que ainda não está implementado, mas tudo bem. Agora vamos também entrar na entidade de bloco de pedestal mais uma vez. Porque é claro que precisamos mudar o construtor aqui. Caso contrário, não vai funcionar. Vamos então querer vê-lo, mas olhe, entidades que, isso ainda não é obter o ego e agora as entidades de bloco devem estar bem. Agora precisamos registrar o livro real. Tudo bem que vai estar na nossa aula de blog, mais blocos de classe aqui. Vamos apenas ir para o fundo aqui. Copie sobre a janela de inverno. Nesse caso, este será o pedestal e, claro, o nome também, pedestal. E este vai ser o pedestal. Sorte. Agora isso está protegido, então precisamos mudar isso para um público. Lá vai você. E então podemos fazer isso também. Lá vai você. Totalmente bem. Isso vai copiar. Que tal isso realmente não vai copiar sobre Que tal isso vai pegar um material que pedra, eu acho que isso faria a pedra material mais sentido Há. E ele será adicionado à nossa guia Criativo personalizada. Tudo bem. Então podemos voltar para o bloco de pedestal mais uma vez e chamar entidades mod block que pedestal ponto, ponto criam, passando a posição e o estado aqui. E o bloco também deve ser feito. E então as entidades de bloqueio de modo, esta agora também não é mais um erro e tudo deve funcionar bem. Isso é absolutamente ótimo, mas ainda não temos a exibição do nosso mundo. Não temos basicamente um renderizador de entidade de bloco de clientes. Bem, vamos No nosso pacote de entidades, faça um novo pacote chamado cliente. E então, em vez de lá, faremos uma nova classe Java chamada bloco de pedestal, bloco armazenamento de cabeçalho e renderizador de entidade. E isso vai estender o renderizador de entidade do livro, este aqui do tipo entidade em massa de pedestal. Vamos passar o mouse sobre isso, Implementar Métodos, o método de renderização neste caso. E então também queremos mudar isso para implementos em vez de estender. Na verdade, esse é um bom ponto porque isso é, na verdade, uma interface. Também precisamos de um renderizador de entidade de bloco de pedestal público com um bloco, com um provedor de renderização de entidade de livro. Este aqui, esse contexto ou contextos, e este será o nosso construtor neste caso. Agora, copiarei novamente o conteúdo do método de renderização. Mais uma vez, tudo isso está disponível para você e isso deve ser, isso deve ser bastante simples, tudo considerado. Então, antes de tudo, estamos basicamente recebendo o renderizador de itens aqui do próprio Minecraft. E então vamos dizer, ok, dê-me a pilha que está dentro daqui, e então faremos um monte de loucura. A ideia geral é que a pilha aqui praticamente apenas faz a renderização, grosso modo. E o que estamos fazendo basicamente é que estamos apenas fazendo a pilha real se mover para cima e para baixo. Então este vai ser R, este vai ser o item. Vamos fazer isso para cima e para baixo. Vamos escalá-lo para o tamanho aqui. E então também teremos uma rotação. Então, isso é apenas girar o item em torno do eixo y. Isso é praticamente todas essas três coisas não fazem elas renderizarão o item real aqui, e então temos que abrir a pilha novamente, e então devemos ficar bem. Então, basicamente adicionamos uma rotação negativa para que toda vez que isso é basicamente chamado de cada carrapato ou mais, grosso modo, certo? Então, toda vez que isso é chamado, basicamente giramos em torno de menos um grau para que seja uma rotação suave. Uma vez que você realmente vê que isso não deve ser muito louco, você não deve ser muito complicado. Todas as coisas consideradas são , na verdade, bastante simples. Agora, o renderizador de entidade de bloco realmente precisa ser adicionado a um determinado evento. E para isso, na verdade, precisamos de uma nova classe. Estes serão os eventos mod do cliente, e copiarei isso mais uma vez. Mas, mais uma vez, isso é realmente muito simples. Eles veem que você precisa do assinante do barramento de eventos de modo de adição na parte superior da classe são importantes que estas sejam as barras de argamassa bem como o cliente de ponto dist de valor. Isso é extremamente importante, caso contrário, não funcionará corretamente. Você então, é claro, precisa de um método estático público com um atributo de fornecedor de assinante aqui em cima dele. E precisamos dos renderizadores da entidade, renderizadores de registro de eventos. Acabamos de registrar o renderizador de entidade de bloco com a entidade de bloco de pedestal e o renderizador de entidade de bloco de pedestal. Isso é tudo o que precisamos fazer. E agora a renderização real também está registrada corretamente. A última coisa que agora precisamos é apenas duas. Adicione os arquivos JSON. Você pode ver que não adicionamos nenhuma tela ou menu porque neste caso, nossa entidade de livro na verdade não tem uma tela ou um menu. Vamos apenas copiar sobre o pedestal Jason aqui, não deve ser muito louco. O estado do bloco é Jason bastante autoexplicativo? mesmo acontece com a tradução deste ponto. Essas coisas devem ser, quero dizer, neste ponto nem deveria ser uma pergunta aqui. Isso é apenas uma coisa muito simples. Vamos adicionar isso. Vamos adicionar o arquivo JSON do modelo de bloco. Então, este será o que realmente tiramos de um banco de blocos. Então, vamos copiar isso também e, em seguida, ver o que precisamos mudar aqui é a pedra lisa, porque isso está sob bloco de barra Minecraft está sob microbloco. Portanto, certifique-se de alterar isso em ambos. E, em seguida, o arquivo JSON do modelo de item também é bastante simples. Isso é basicamente mais uma vez, aponta de volta para o arquivo Jason do modelo de bloco, e é praticamente isso. Nenhuma textura é necessária neste caso porque estamos realmente pegando as texturas Minecraft pedra lisa, pois isso também deve ser bom. Portanto, essas são todas as etapas que precisamos fazer para obter nossa entidade personalizada aqui e tê-la basicamente com um renderizador de entidade de bloco especial. Então, vamos ao mundo e ver se ele funciona. Tudo bem, fantasie no Minecraft novamente e você pode ver o pedestal foi adicionado com sucesso ao jogo. Então, vamos apenas definir alguns deles e vamos ver o que podemos ver. Então, se eu clicar com o botão direito do mouse, não deveríamos ter o cobalto. Cobalto aparece aqui no pedestal e um deles deve estar desaparecendo do meu inventário. E isso é exatamente o que acontece. Vamos fazer a mesma coisa por todos eles. Eles atrás, às vezes você pode obter essas flechas de renderização estranhas aqui. Então isso é algo que eu não tenho 100% de certeza sobre por que esse pode ser o caso. Então eu acho que tem algo a ver com as sombras e outras coisas. Então, vamos ver se isso pode mudar sozinho. Se eu fizer isso. Mas isso não muda isso. Mas como eu disse, lá, às vezes é um pouco instável ao lado dele com uma renderização. E serei honesto, não sou outro especialista em renderização. Renderizar é realmente uma daquelas coisas em que, hum, vamos apenas dizer que, isto é, eu não diria meu pior pesadelo, mas definitivamente não é uma coisa que eu gosto particularmente. Então, sim, mas no geral, ainda funciona muito bem e muito legal. E é uma coisa que está se formando. É muito incrível. É assim que pode ser fácil adicionar um microfone renderizador de entidade de bloco. Como sempre, é claro, todo o código está disponível para você no repositório do GitHub e individual também. E vejo todos vocês na próxima palestra. Então, sim. 123. (1.18.2) Chests loot em estruturas personalizadas: Tudo bem, bem-vindo de volta ao curso de forja para 118. E nesta palestra, vamos dar uma olhada em como você pode adicionar carga personalizada às estruturas de seus clientes. Então, o que eu fiz foi ter gerado na cabine aqui mesmo, só para que tenhamos uma estrutura e vamos salvá-la em apenas um momento também. Mas vamos nos mover, vamos fazer é colocar um baú e vamos preenchê-lo com algum saque aleatório. Agora a questão é: como isso funciona? O que você não pode fazer? E isso é o que algumas pessoas tentam. Eles apenas pegam o peito e depois colocam para baixo e depois iguais. Por que não há saque aleatório lá? Bem, isso não funciona. O que você tem que fazer é realmente ter que possuir o baú através de um comando, certo? Então eu já preparei o comando e o que você pode fazer é basicamente disponibilizar isso e não vai ser tão louco. Então, o que você pode ver é que há apenas menos bloco definido na sua posição atual. Você está de pé do que o peito do Minecraft virado. Então você só quer fazê-lo de alguma forma. E vamos realmente fazer isso mais fácil. Então, vamos apenas fazer isso voltado para o leste. E então você pode ver colchetes encaracolados, saque, mesa, Minecraft, baús, masmorra simples neste caso, vamos apenas executar isso. Agora. Na verdade, aponta para o caminho errado, mas tudo bem. Isso é apenas uma questão de mudar o rosto aqui. E se abrirmos isso, você pode ver que está. Então, alguma elute aleatória. Agora, a verdadeira questão é essa. Se eu salvar isso agora, esse saque aleatório é? Não, porque quando, uma vez que você abrir, ele irá eluir. Na verdade, a tabela gera algum saque. Então, agora cada uma das casas vai ter esse saque nela. Então, o que você precisa fazer é não abri-lo. Então, o que você precisa fazer é ir até aqui. Então, vamos realmente fazer isso, acreditar que isso deve ser Sul, na verdade, gerar este sul. Ok, isso também não está certo. Então vamos fazer, certo, vamos gerar isso com o Norte na verdade, acho que então deve ser norte. E eu estava apontando para a direção certa e não a abri. Caso contrário, você realmente solidificará o que o loop está dentro dele. Então isso não funciona. Então você tem que mantê-lo lá e você tem que ser como, eu não sei se funciona, vai funcionar. Não se preocupe com isso. Então, podemos salvar isso. E você pode fazer isso quando tiver carregado ou também pode fazê-lo com um método de canto e muda. Quando você realmente o constrói, você pode simplesmente adicionar um baú como esse e depois salvá-lo para que possamos ir ao Salvar. Além disso, aqui vamos apenas dizer Salvar, e então isso foi salvo. Então, agora podemos substituí-lo em inteligência. Então, vamos dar uma olhada ali mesmo. Mas, mais uma vez, queremos ir para a pasta de execução salva, e essa deve ser a pasta ridícula dentro da gerada, temos o Calvin, como está o NVT? E queremos alterar a pasta de dados, as estruturas do curso MC. Temos o conde minha casa, e só queremos substituir um pelo outro. Então, vou copiar isso, sobrescrevê-lo , e isso é tudo o que precisamos fazer. Agora, mais uma vez, não abrimos o baú de saque. Portanto, o loop deve ser gerado basicamente toda vez que a casa real gerar também. Portanto, não devemos ter o mesmo loop em duas casas diferentes. Então, vamos criar um novo mundo e ver se ele funciona. Tudo bem, somos microfinanças Novo Mundo e vamos ver, há a primeira contagem, minha casa, e temos o baú aqui. Então você pode ver que temos discos de música. Algumas pólvora são. Tudo bem, tudo bem. Então, vamos encontrar uma nova casa de colunas, e vamos ver se também podemos encontrar os mesmos discos de música ou se há algo diferente. Então, há um novo acampamento milhas e vamos apenas esperar que o loop lá seja diferente, mas estou bastante certo de que estará lá vamos, uma carga completamente diferente. Então, exatamente o que você gostaria que houvesse. Então, o que é importante é que temos, é claro , usar o mouse nocaute MET, mas usamos a masmorra simples. Então este é o que realmente está aqui em um exemplo, certo? Portanto, esse é o comando real aqui. Você pode ver os baús simples masmorra e você pode usar qualquer tipo diferente de tabela de carga. Assim, você também pode fazer suas próprias pequenas tabelas e referências. Eles são, mas isso é, claro, algo que você pode fazer por si mesmo também. E isso é praticamente o quão fácil é adicionar um baú de saque personalizado às suas estruturas, certo? Mas isso já seria para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo e vejo todos vocês na próxima palestra. Então, sim. 124. (1.18.2) Como corrigir alguns erros: Tudo bem, bem-vindo de volta ao curso de forragem para 118. Nesta palestra, vamos apenas corrigir alguns pequenos erros que eu poderia ter cometido durante o curso deste curso basicamente. Então, é claro, com a quantidade de palestras que temos, há alguns erros aqui e ali. Então, o primeiro estará no item de armadura mod. Isso vai ser muito interessante e essa é a armadura correta no método. Porque o que queremos fazer é substituí-lo pelo seguinte. Então, basicamente queremos adicionar neste loop for aqui que percorre a armadura e ele verifica se a armadura é ou não, na verdade, os itens são itens de armadura. E se um deles não for, então vamos retornar imediatamente falso. Agora, a razão pela qual queremos fazer isso, se formos adicionar um elétron ou uma abóbora aos nossos itens de armadura, basicamente em nosso inventário de armadura, então o jogo falharia porque estamos tentando lançá-lo em um item de armadura e isso não funciona. Então é por isso que queremos basicamente com isso e então devemos ficar bem. A segunda coisa que queremos mudar é na aula de mod do curso MC. E o que queremos fazer é pegar todo o método de configuração do cliente e queremos basicamente o que está selecionado aqui, segure Shift, clique aqui e pressione Control X para cortá-lo. Você pode excluir essa linha aqui e queremos entrar na aula de eventos, encontrar mais eventos. Espero que você tenha criado isso na última ou segunda a última palestra, vamos colar a mentalidade dos métodos aqui. Queremos mudar isso para ser público e estático, e queremos adicionar esses eventos de assinatura a ele também. Agora, por que precisamos disso? Bem, apenas no caso de o evento de configuração do cliente ser chamado apenas no cliente. No entanto, a classe de mod do curso MC é, na verdade, uma classe comum. Portanto, isso é chamado tanto no cliente quanto no servidor. E às vezes pode acontecer que, através de algum jumbo Java mumbo, basicamente, algumas dessas classes também são chamadas no servidor, o que fará com que o servidor falhe. E, claro, isso não é o que queremos. Então, só para ter certeza, adicione isso aos eventos climáticos. O importante é que este é um chefe da máfia e também com o cliente desktop de valor, e então ela deve ficar bem. E por último, mas não menos importante, temos algo no item da haste de dowsing. E, ou seja, a forma como podemos basicamente dar uma olhada nas tags. Portanto, essa é uma maneira válida de basicamente dar uma olhada se o bloco específico aqui está ou não nesta tag. No entanto, isso é insanamente complicado e podemos fazê-lo um pouco mais fácil. Então, em vez de esperar um bloco aqui, nós realmente queremos um estado de bloco, certo? Então, bloqueie o estado, altere isso para state. E quando quisermos fazer é, vamos excluir toda essa loucura e vamos nos preocupar com isso em um momento. Primeiro de tudo, como obtemos o estado no método de bloco é valioso? Então, vamos receber um erro aqui porque temos um bloco. Agora queremos mudar isso para ser o estado do bloco. E então, em vez de chamar sangue para obter bloqueio aqui, o que vamos fazer é que vamos ter o estado de bloqueio. Vamos mudar isso para ser mantido em bloco e, em seguida, o mesmo aqui, não ser bloqueado. E isso é todos os requisitos que precisamos mudar aqui. E então, no método de bloco é valioso, o que podemos fazer é que podemos retornar o estado é mais tags que bloqueiam esses objetos de valor da haste dowsing. Agora isso é muito mais fácil do que a coisa que adicionamos antes, e isso será praticamente todas as coisas que eu queria mostrar a vocês também. Isso também concluirá praticamente a parte 118 de todo o curso aqui. Então, haverá uma nona atualização depois disso também. Então, haverá basicamente como você atualiza todas as coisas diferentes que estão lá com talvez uma ou duas coisas diferentes, se elas ainda não forem descobertas sobre a facilidade de fazê-las em 119, mas isso seguirá depois disso e, em seguida, o curso é praticamente feito independentemente. Espero que você tenha achado útil e aprenda algo novo e eu te vejo na próxima palestra. Então, sim. 125. 1.18.2 ATUALIZAÇÃO PARA 1.19: Tudo bem, bem-vindo de volta ao primeiro curso para 118. Nesta última palestra, vamos atualizar nosso projeto a partir de uma década de 1890. Agora, felizmente, a atualização da década de 1890 não é a mais louca. Eu vi atualizações muito piores entre vergência, mas ainda há algumas coisas que serão completamente alteradas. E acredito que há pelo menos uma coisa que não funciona, mas é assim que vai ser. Então, vamos apenas navegar até o arquivo construído ou Gradle aqui até nossas dependências aqui onde temos o Minecraft Forge. E o que é muito importante é que faça backup todo o seu projeto. Porque se você não tiver isso em backup , as coisas podem acontecer. Você pode quebrar seu projeto ao atualizar. Ou tenha um repositório do GitHub, crie uma nova ramificação nele para que você tenha tudo salvo ou simplesmente copie o projeto inteiro para que ele tenha backup. Eu recomendo fazer isso agora com o que precisamos para mudar a dependência de forragem aqui? Bem, na verdade não é tão louco. O que queremos fazer é mudá-lo para 41038, claro 119. Portanto, esta é a versão mais recente para você. Provavelmente vai ser mais avançado aqui, mas isso vai ficar bem. Sempre, você sempre pode usar a versão mais recente e isso vai ficar tudo bem. Então, vamos mudá-lo por lá. Então, vamos voltar e isso vai ser 119 traço e depois 41038. Lá vai você. E essa é a versão para a qual queríamos mudar. Também queremos atualizar o lábio de gecko aqui. Então isso agora vai ser forjar um traço 193119. Lá vai você. 1313. Lá vai você. Acredito que este deve ser o mais novo. Neste caso. Ele só pode ser procurado no lábio de gecko. Você pode encontrar facilmente a versão aqui no repositório gecko lip GitHub. Portanto, não se preocupe lá. E depois de mudarmos esses dois, vamos clicar em Carregar alterações do Gradle. E então, mais uma vez, vai construir coisas, baixar coisas, todos do mesmo jazz que fizemos algumas vezes, especialmente no início de tudo isso. Portanto, recomendo ficar paciente, basta deixar isso passar por quaisquer erros que possam surgir, qualquer coisa vermelha, na maioria das vezes, ser ignorada com segurança. E então veremos, vamos lá, construímos com sucesso em dois minutos e 28 segundos. Agora ainda não terminamos no arquivo Gradle de compilação porque também queremos alterá-lo para os mapeamentos de pergaminho. Então, temos pergaminho para este aqui, e queremos mudá-lo para o seguinte. 1182022 ou seis, ou 5119. Então, isso simplesmente leva os 119 mapeamentos oficiais em sobreposições de 1800 para mapeamentos de pergaminho em cima dele. E então teremos aproximadamente mapeamentos de pergaminho para 119. Nem tudo vai ser perfeitamente mapeado, mas essa é, creio eu, a versão mais nova que temos, que ainda não há nenhuma versão 119. Mais uma vez, é claro que você pode simplesmente olhar para o repositório de pergaminho e não deveria, você deve ser capaz de encontrar algo lá. Então, vamos recarregar isso novamente, mudanças radiais e isso não deve demorar muito. Espero que não mais dois minutos, mas vamos ver. Vamos esperar mais uma vez, esperando pacientemente aqui. E então ficaremos bem. Tudo bem, lá vamos nós. Construa com sucesso em um minuto e 37 segundos. Então, agora vamos ficar bem e tudo está configurado. Mas agora vamos entrar na aula de mod do curso MC e imediatamente seremos recebidos com uma pequena flecha aqui. E isso é apenas as importações. Então você pode ver, eu ainda tenho coisas nas importações aqui, mas não se preocupe se há algo errado com as entradas. Você pode ver os três pontos aqui ficando vermelhos. Basicamente, você pode apenas pressionar Control Alt O e, em seguida , tudo nas importações será, bem basicamente excluído que não precisamos. E por enquanto, nada de errado aqui, mas haverá, bem, algumas coisas que estão erradas em outras classes. Então, geralmente o que fazemos é que podemos simplesmente ir para as aulas. Acredito que a primeira classe que vamos ter um problema será, na verdade, no bloco de pilares girado da bola de chama. Curiosamente, ou temos que mudar aqui são apenas os parâmetros aqui. Então eu só vou copiar isso. Mais uma vez, tudo aqui está, naturalmente disponível no repositório do GitHub. E, de fato, tão bem, isso vai estar agora na pilha. Isso vai ser uma pilha de contexto. E então vamos passar no contexto aqui, e depois também o Simulate aqui. Eles atrás e isso deve consertar isso. Agora, este está feito e acredito que o resto deve estar bem. Na verdade, aldi speedy block, sim, porque o animador marca, porque agora não estamos mais usando o aleatório, mas estamos usando a classe fonte aleatória aqui a partir dessa ferramenta de micro visualização. Basta fazer isso. E então não passamos nada por aqui. E isso vai ficar bem também. Portanto, isso deve ser praticamente tudo o que precisamos fazer no bloco SPD também. E acredito que isso deve consertar todos os blocos. Na verdade. Acredito que o resto está bem. De fato, eles parecem estar bem quando se trata das entidades. Eu acredito que eles só devem ser como uma pequena mudança aqui. Sim. E esse é o componente de texto porque todo o sistema de textos mudou. Felizmente, a mudança aqui é um componente incrivelmente fácil que literal, e lá vamos nós. E é isso. Isso é tudo o que precisamos fazer. Apenas certificando-se de que as entradas estão corretas. Controle Alt O e, em seguida, o resto aqui é uma multa. Vamos apenas ter certeza de que o resto aqui também está bem. E, de fato, é. Então, nada de louco acontecendo aqui. E mod blocks, mais uma vez, são apenas os componentes traduzíveis aqui. Portanto, é apenas um componente traduzível neste caso. E lá vamos nós. Então, na verdade, é muito fácil. Então, nada de louco acontecendo. Não temos mais um bloqueio oral. Isso também está correto porque agora é na verdade, um bloco experiente em queda, mas funciona exatamente da mesma maneira. Mais uma vez, Controle Alt ou para se livrar das importações. E então vamos ficar bem e todo o bloco. O pacote está realmente feito. Os comandos também mudarão um pouco mais em apenas um momento. Mas antes de tudo, é claro, os componentes de texto, o primeiro componente é literal novamente, **** e literal. Lá vai você. Então a mesma coisa aqui. E então eu acredito que também temos isso no conjunto, mas fazemos Control Alt O para se livrar das importações erradas do ano e eles iriam, nós também teremos que mudar o construtor aqui se eu não estou enganado, mas isso vai ficar bem. Vamos falar sobre isso em apenas um momento. Os conflitos são, os conflitos devem estar totalmente bem e nada para fazer lá também. Os efeitos também não foram alterados. Então, tudo vai ficar bem. E os tratamentos não mudaram a entidade, que algo é diferente com a entidade e esse é o modelo porque os nomes reais dos métodos mudaram um pouco. Então este agora é o recurso do modelo GET aqui. Recurso eles atrás, e agora é obter recurso de textura e isso tem recurso de animação. Então, o que você pode fazer é se você tiver vários desses arquivos de modelo, os arquivos Geo Model, que você pode fazer é simplesmente pressionar, digamos ir para a Regra Comum ou o que quer que seja seu nome é pacote, pressione Shift Control R. Procure uma boa localização do modelo e, em seguida, altere-o para obter o recurso do modelo. Você pode ver que estamos realmente tendo isso nos outros dois modelos também. Então, vamos dizer substituir, sim. Farei a mesma coisa com o local da textura substituindo o recurso. Agora, este às vezes tem um extra que na verdade não queremos que ele mude. Acredito que seja este, então vamos substituí-los um por um, apenas aqueles em que eu realmente tenho certeza que acredito que isso não deve ser alterado. Então lá vai você. E, em seguida, o último, bom local do arquivo de animação agora mudou para obter recurso de animação também, substitua tudo o que vai ficar bem. E lá vamos nós. Agora isso deve estar bem. Vamos ver onde estão as setas aqui. Vai estar bem aqui. Ok, então dentro do renderizador, isso realmente continua a ser o local da textura. É um pouco estranho porque isso também é através do lábio de gecko, mas lá vai você. Então, isso deve ser bom. Apenas certifique-se de que, ao substituí-lo, você também não o substitua na renderização. Acho que o barco não será salvo tristemente. Tenho que olhar para o parafuso e infelizmente, não consegui fazê-lo funcionar corretamente. Então, o que vamos ter que fazer é que vamos ter que viver sem o barco por enquanto. Então você pode simplesmente excluir tudo, apenas fazer isso assim e, em seguida, livrar-se dele aqui também. Infelizmente, é, é o que é. O problema com a ousadia, é claro, eles adicionaram os baús no barco e ainda não descobriram como mudar isso. Desculpe por isso, mas é assim que vai ser. Às vezes isso acontece quando você muda de uma versão para outra, que certos recursos, eles mudaram completamente. Então você não será capaz de realmente, você não será capaz de descobrir isso rapidamente. Às vezes, também é por isso que certos moldes demoram tanto para serem atualizados, certo? Porque através de versões as coisas mudam e é assim que vai ser. Então acredito que também podemos nos livrar da antiga entidade aqui. Podemos estar recebendo um erro em outro lugar , mas isso vai ficar bem. Então isso, creio eu, deve ser tudo o que é realmente mudado aqui. Ok, a entidade múltipla também não funcionaria. Mas, mais uma vez, vou arrastar todo o caminho baixo para que você possa fazer isso arrastando enquanto segura Alt. E então você pode simplesmente selecionar várias linhas diferentes nesse caso. Em seguida, o mesmo com o item. Com certeza. Só vou se livrar disso. Então, como eu disse, não acho que seja muito extenso. As mudanças não são muito extensas, mas é o que é. Às vezes isso acontece. Então, vamos nos livrar disso também. E depois o quê? Isso é bom. Isso é bom. Isso é bom. E então podemos prosseguir para os eventos. Nos eventos, o alaúde realmente mudou para as mesas de loo mudaram um pouco, mas felizmente não muito louco. Então, a única coisa que mudou aqui é, na verdade, o método do apply. Como você pode ver, você não pode mais ser sobrescrito assim porque isso agora é em vez de uma lista é um ArrayList de objeto. Acabamos de colocar um objeto em todas as classes importantes da lista , e então você vai ficar bem. O mesmo aqui. Alterando isso para o objeto, cada lista importando essa classe. E então os modificadores de alaúde devem funcionar da mesma forma que antes. Eu fui bem. E então chegamos ao evento Registry que mudou, eu diria aproximadamente significativamente porque não temos mais o evento Registry, agora temos um registro de eventos. Então, este agora será um evento final de registro aqui. E então agora dentro do método do evento real, temos que procurar por ela. Basicamente, vamos dizer, oh, isso é claro chamado de evento que é muito importante aqui. Lá vai você. Agora, em vez de fazer isso, vamos dizer que o evento que se registra e, em seguida, dizer que forge registra essas chaves. Que neste caso modificador de saque ou serializadores, Hama, ajudante, e isso é apenas um consumidor. E agora colocamos essas coisas lá. Então, queremos colocar isso aqui. E do jeito que queremos fazer, queremos dizer que ajudante esse registro. Em seguida, primeiro tomando a localização do recurso do nome real. E então a segunda coisa será um novo serializador. Então, vamos levar o novo serializador aqui. Lá vamos nós. E isso agora deve funcionar. E então podemos. Duplique isso, altere o nome aqui e, em seguida, altere a alteração do esterilizador para este. E então vamos ser divertidos. Então, eles atrás, foi assim que isso mudou e, em seguida a mesma coisa acontece nas receitas também. Então, se eu não estou enganado, o que queremos fazer é dizer que evento um registro de pontos registra que chaves serializadores de receita de ponto porque este é um tipo de receita, na verdade, desculpe, este é um tipos de receitas, sim. Então, mais uma vez, ajudante, um, ou assim, nomeando o que basicamente quisermos. Então podemos dizer tipo de receita de ajudante, essa receita. E acho que podemos literalmente copiar isso. Ok, mas não bem. Não é bem. Porque o que queremos ouvir é uma string ou um local de recurso ou então não poderíamos fazer isso? Sim, podemos porque o id vai ser esse. Agora a questão é, ok, estou realmente me sentindo um pouco melhor se eu estiver criando um novo local de recurso, porque não tenho certeza se isso fica abaixo da nossa localização de recursos ou não. Nós só vamos fazer algo assim. Acabando com isso aqui, lá vai você. Portanto, criar um novo local de recurso sob nosso ID de modelo com o jateamento da coluna id. E então ficaremos bem. E então não precisamos mais deste. E o resto aqui, acredito que deveria estar totalmente bem. Controle o Alt O para se livrar das importações e, em seguida, ficaremos bem. Mais eventos são totalmente bons. Nada mudou, então os eventos são feitos. E agora chegamos aos fluidos porque os fluidos, finalmente a nova API Fluid foi introduzida. No entanto, ainda não consegui descobrir exatamente como funciona. Eles também não são nenhum tipo de documentação nele. Tão infelizmente, por enquanto, fluidos também seguirão o caminho do barco. É adequado quando você pensa sobre isso. Mas sim, o barco são os fluidos neste caso, infelizmente não vão funcionar. Então fluidos por enquanto, não funcionam. Mais uma vez, você pode apenas olhar se você estiver assistindo isso no futuro, vamos dar uma olhada na forja, veja a documentação. Eles podem ter adicionado algo lá também. Então você pode tentar descobrir isso em si mesmo. A nova API Fluid deve ser muito mais versátil do que isso. Mas, por enquanto, infelizmente, fluidos não vão acontecer, neste caso, itens personalizados. Acredito que só deve haver algo no tablet de dados. Mais uma vez, o componente aqui, então componente ponto literal. E então a mesma coisa acontece no item da haste de dowsing também, apenas com o O e o nome do registro também, justo o suficiente? Sim. Isso é traduzível por componente. Não. Que tal fazermos isso corretamente? Ponto componente traduzível neste caso. E então aqui também. Em seguida, a mensagem enviada é, na verdade, uma mensagem do sistema que não leva mais um UUID no final aqui, mas leva em um literal de componente que eles vão para o nome do registro não está mais disponível. Então o que eu vou fazer é apenas dizer que o ponto de bloqueio abaixo recebe o nome aqui e depois o mesmo oblíquo aqui em cima. Isso deve ser bom. Obter nome aqui também, e isso deve ser isso. Você vai lá. Temos outra mensagem SYN, enviar mensagem do sistema. Não precisamos mais do UUID. E então esse será o literal de dados do componente. Na verdade, não, não é. Vai ser traduzível. E isso é tudo, apenas as importações controlam Alt O como sempre. E lá vamos nós. Isso deve ser praticamente tudo que precisamos para treiná-lo aqui, eu acredito. Os fluidos mod aqui. Sim, tudo bem. Vamos passar pela aula normal. Eles estão em apenas um momento também. Os materiais são bons, modo criativo. Os alimentos de tabulação são itens mod OK. Este deve ser o balde de mel absolutamente. Vai se livrar desse mandado das importações. E então estamos bem com isso também. As lágrimas também estão boas, então tudo funciona bem. Agora, curiosamente, pinturas realmente mudaram. Sei que é realmente louco pensar sobre isso. Isso não é mais motivo. Isso agora é chamado de variante de pintura. E isso também é chamado de variância de pintura. Lá vai você. Vamos mudar o motivo aqui para pintar variantes em todos os lugares. Então, vamos ser um bom controle de todos, mais uma vez, para que as importações saiam de lá. E isso deve ser isso. Poções estão boas. As receitas realmente mudaram. Então, vamos para a receita. Há duas coisas importantes que temos que fazer. Exclua todos esses três métodos aqui, e isso vai dar certo. E então, no método de colchão, temos que adicionar se o nível P que for do lado do cliente, você só deseja retornar false. Então isso deve ser tudo o que precisamos fazer aqui também. E isso deve ser praticamente tudo o que precisamos na receita, na classe de receitas do cliente, na tela, tem algo alterado aqui. Eu não acredito que tenha. Então, isso é realmente muito bom. E então o som, os sons também devem estar bem. Agora, no util, acho que algo mudou em algum lugar, não aqui, mas nas tags. Não. Propriedades do item, util, na verdade, nenhuma alteração. As telas de título ainda têm alguns problemas, então vamos ignorar isso. Agora, a classe dos aldeões realmente mudou e precisamos fazer algumas coisas diferentes aqui, certo? Então isso é feito um pouco diferente. Agora, estamos realmente fazendo o seguinte. Na verdade, estamos fazendo um novo protótipo. E o que estamos fazendo é que estamos fazendo uma API de ponto definida imutável disso permanece de modo que o ponto do blaster de cobalto, ponto get definição de estado padrão ou ponto de definição GetState possíveis estados possíveis, depois o primeiro e o aqui. E então aqui, estamos realmente fazendo isso da seguinte maneira. Estamos fazendo uma nova aldeia ou profissional. Na verdade, precisamos de dois predicados aqui. Então, ainda vai ser x-dot. É igual a ponto último ou ponto também. E então o segundo predicado será exatamente o mesmo. Então, o ponto x obtém igual ponto de blaster que obtém e isso também deve corrigir isso. E o resto aqui deve ser totalmente bom. Na verdade, precisaremos adicionar tags em um momento também, porque tanto os aldeões quanto a pintura são interessantes o suficiente, têm algumas tags adicionadas agora também. E então, por último, mas não menos importante, chegamos à geração mundial, o que é claro é sempre a parte favorita. Então aqui, felizmente, é fácil, apenas uma fonte aleatória no produtor de árvores abstrato aqui. Mas então chegamos à loucura Porque agora o que aconteceu nessas aulas, nada mudou, certo? Para configurar recursos ou está tudo bem. Mas depois vamos para as classes de geração e vemos que o evento de carregamento de bioma não está mais disponível. E todos, e todos começam a surtar porque como faço agora algum mundo personalizado, Jan. Bem, a origem do cliente mudou completamente, onde agora vamos usar um biomodificador. Então, em teoria, podemos excluir todas essas quatro classes aqui, excluí-las e, em seguida, criar novas. O mesmo vale para este aqui. Eventos do mundo motor, não precisamos mais disso porque ele não faz mais nada. Agora precisamos usar modificadores biológicos. Então, vamos dar uma olhada na classe de modificadores biológicos, esta aqui. Então você pode ver uma interface e basicamente temos que criar um codec personalizado que lê em um arquivo JSON que é praticamente tudo o que o codec realmente é. Agora, felizmente neste momento, ou na verdade adicionou alguns exemplos. Então, se você der uma olhada na classe de modificadores biológicos forge, temos um recurso Adicionar ao modificador bio, um remove um, e também temos um spawns dois por m um e um remove spawns do bioma um. Então, isso é realmente tudo o que vamos precisar. Felizmente, não é muito loucura e não precisamos nem mesmo fazer nenhuma classe personalizada aqui. O que podemos fazer é fazer isso na pasta de dados. Vamos começar com os modificadores biológicos. Então, como podemos fazer com que nossas coisas personalizadas ainda funcionem? Queremos ir para o curso MC da pasta de dados , muito importante. E então, em vez de uma mulher criar um novo diretório chamado forge, sim, o diretório forge tem que entrar no seu curso MC ou qualquer que seja o seu diretório de ideias mod que tenha que ser o caso. E então, em vez do diretório de força, vamos criar um novo diretório chamado bio modificador. Lá vamos nós. E, em seguida, podemos adicionar os arquivos JSON. Então, é assim que os arquivos json vão se parecer. Então, vou copiar isso e vamos fazer um novo arquivo JSON. Vamos realmente ver quais são nossos recursos de lugar neste caso. Então, esta será a característica do lugar. Na verdade, precisamos mudar os recursos do lugar em apenas um momento, mas não vamos nos preocupar com isso no momento. Vamos adicionar o primeiro modificador bio e, em seguida, veremos os recursos do local também. Mas este vai ser um novo arquivo e então vamos chamar isso flor de cerejeira ao lado. Vamos apenas adicionar isso aqui. E então vamos ver que o primeiro é isso, isso é necessário, sempre precisaríamos fazer isso. Então queremos dizer oi para o quê, qual é o namespace do bioma que essa atitude, vamos dizer forge yz plane. Então, esta será uma etiqueta da forja que basicamente terá todas as bombas de aviões dentro dela. Então vamos ter o curso MC, Polônia. E isso deve ser flor de cerejeira de ébano colocada aqui. Sim, lá vai você. E então isso não é subterrâneo. Oris, este é, na verdade, o outro. Vamos realmente dar uma olhada nas decorações. Acredito que se chama isso é o passo de decoração ou é. Pode ser isso. Tudo bem, tudo bem. Quer dizer, estou bem com isso. Isso deve ser chamado de decoração vegetal. Este aqui mesmo. Vamos adicioná-lo aqui e então devemos ficar bem. E isso deve, em teoria, adicionar nossa característica colocada em flor de cerejeira em qualquer bioma de planos que exista. Tão bastante autoexplicativo. No entanto, os recursos do lugar também precisam mudar um pouco. Na verdade, temos que usar um registro diferente aqui. Então, vamos apenas fazer um registro diferido do tipo menos característica ou útero colocado. E então isso é igual a um registro diferido. Eu crio esse registro de recursos com menos pontos do registro. Muito importante. Então o curso MC não é ID de modelo idiota e, claro também precisaremos de um método de registro. Vou copiar isso um pouco mais fácil. Vamos chamar isso aqui. Isso vai ser chamado, acho que não deve importar muito mais recursos de lugar que se registrem e depois passam no ônibus de eventos. E em vez de nos registrarmos assim, vamos ter que, vai ser, vai parecer um pouco estranho agora, felizmente, todo o código aqui, é claro, estará disponível para você. Então, este agora é um objeto de registro em vez de segurar, nada muito louco no momento. Eles podem querer alterar os utilitários de posicionamento registrados em um local recursos que se registram. Isso não está certo, desculpe, lá vai você. E então este, este e este. Está tudo bem. Vou copiar a linha e isso tem que ser adicionado aqui. Então, não devemos ter erros, exceto por um parênteses de fechamento. Você pode ver que queremos chamá-lo Colocar recursos que se registram e transmitem o nome, normalmente, como fizemos em todos os registros antes. E então temos um Fornecedor de um novo recurso de lugar. E então temos que lançar esse recurso configurado de lama primeiro para um titular do ponto de interrogação do recurso Configurar, ponto de interrogação e, em seguida, um detentor do recurso Configurar marca ocidental, ponto de interrogação. É loucura, mas é assim que repente tem que acontecer por enquanto quando você está assistindo isso, você pode realmente ter uma maneira melhor de fazer isso. Você pode ter algo já descoberto ou algo assim. Mas, por enquanto, de repente é assim que isso vai ter que ir. E então, tanto para as linhas quanto para o geode, nós realmente temos que ter uma lista de todas as coisas que temos aqui. Então, lista de n, então só temos que adicionar todas as coisas diferentes aqui. Está dizendo que é irreverente filtrar toda essa loucura entra em uma lista. E, em seguida, apenas dois parênteses de fechamento. E então o mesmo aqui se não me engano, lista do objetivo e, em seguida, apenas fechando parênteses duas vezes n lá, devemos ficar bem. Então é isso que precisamos fazer, mais louco que pareça. Mas isso realmente deve fazer todas as coisas que queríamos fazer. Então, podemos realmente adicionar os outros modificadores biológicos também. Esta vai ser a rosa rosa adicionada também. E isso vai colocar o recurso da rosa rosa colocou um gol. Então vamos adicionar também sob decoração vegetal que faz sentido. E então vamos fazer toda a careca, ou vamos conseguir isso aqui também. E isso agora não é mais decoração vegetal. Mas isso é, na verdade, vamos voltar às declarações aqui. Isso agora é subterrâneo, ou é muito importante que mudemos isso. Lá vamos nós. Vamos apenas adicioná-lo a que tal vamos fazer o cólon do Minecraft estar sobre o mundo, então vamos adicioná-lo a cada bioma que existe no mundo oval, isso vai ficar bem. E então, por último, mas não menos importante, vamos copiar sobre o cobalto ou, e esse será o geodo do anúncio ou do parafuso. E então isso está apenas mudando o nome. Ele colocou um geodo aqui. Vamos também adicioná-lo a todo o mundo e isso deve ser bom. Mas esta é a nova geração mundial, muito importante que tudo aqui esteja correto. E então, por último, mas não menos importante, também temos essas estruturas agora, felizmente, terreno telepático já atualizou que seu repositório, então nada muito louco está acontecendo aqui. Então, vamos ter que fazer o seguinte. Então, vamos fazer isso. Vou copiar primeiro a classe de estruturas de modo. Vamos ver. Lá vamos nós. E então teremos um problema aqui com as estruturas do céu, mas não se preocupe. Vamos apenas excluir as importações aqui também. E então, na classe das estruturas do céu, isso também vai ser, bem, quero dizer, não muito louco. Deixe-me copiar mais uma vez sobre a aula aqui. E então vamos ver que só as importações estão erradas. Mais uma vez, Controle Alt O. E você pode ver que há um outro codec aqui também. Isso é apenas, como eu disse, basicamente um determinado campo que gera leitura em uma corrida e um arquivo, em seguida, gera uma classe que é praticamente a visão geral de alto nível disso. Sim, essas são as duas mudanças aqui nessas estruturas e, em seguida, há também uma mudança na estrutura, corrida e nos arquivos também. Porque, claro, não poderia haver nada mais louco. Mas antes de tudo, os mais velhos aqui mudaram seu nome para ser apenas uma estrutura. Então, vamos mudá-lo para o nome da estrutura. E então, dentro do arquivo adjacente, existem algumas mudanças. Primeiro de tudo, esse conflito não é mais necessário, então vamos excluir a configuração e seguida, eles começam a puxar os sites ainda são necessários, mas não dentro do conflito. Então o que queremos fazer é adicionar o passo aqui, e isso será solicitado. E então a próxima coisa é a distância máxima do centro. Portanto, isso também precisa ser adicionado. E então também precisamos adicionar três campos diferentes. Esse será o passo, a altura inicial e o projeto começarão a caminhar no mapa e excluir o ruído árabe. Então é isso que vamos fazer sempre. Agora. Agora isso é para aquele em que você realmente tem um tipo dentro do código. Se você não tem isso, não podemos mais usar a aldeia. Agora queremos usar o quebra-cabeça Minecraft. Então, queremos usar isso mais uma vez, livrar-se do impróprio aqui, manter a piscina de estrelas e o tamanho a uma distância máxima do centro. E então, se estivermos usando o quebra-cabeça, realmente queremos usar para diferentes campos. Ainda o líder do barulho árabe. Mais uma vez, este é o passo, a altura absoluta e o projeto começa a altura do mapa. Esses permanecerão basicamente os mesmos, talvez alterando a altura inicial. Mas então, para o quebra-cabeça, você também precisa usar a expansão. Caramba, vou copiar coisas para as câmeras e a plataforma de armazenamento também, mas é praticamente a mesma coisa. Agora você pode realmente procurar isso também no repositório do GitHub e em um indivíduo também. Portanto, não deve haver, mas não se preocupe. Como eu disse, ficaremos bem. Felizmente, as mudanças não são tão loucas. Ainda me lembro que muda de um para 1617. Essas foram mudanças onde sim, isso foi muito louco. Agora isso não é para isso. Agora, as duas únicas coisas que ainda precisamos é para os aldeões e as pinturas das etiquetas. Então, eles vão para a pasta de dados no Minecraft. E então, em vez da pasta de impostos, queremos criar uma nova pasta chamada variante de sublinhado de pintura. E então você precisa de pasta de impostos novamente, queremos fazer um ponto. Sublinhado, sublinhado interesses, tipo de sublinhado. E então vou clicar com o botão direito do mouse em novo arquivo. Este será o fio um trabalho de sublinhado de touro, site sublinhado que Jason está no tipo de ponto de interesse. E isso vai ser o seguinte. Então, isso deve ser. Em teoria, esse valor Mc núcleos, explosão ou ponto. Deixe-me verificar rapidamente se esse é o nome. Na verdade, é um jogo explosivo. Lá vai você. Coisa que verifiquei duas vezes aqui na variante de pintura, clique com o botão direito do mouse em novo arquivo chamado polícia sub bowl que Jason, lá vamos nós. E isso incluirá todas essas coisas. Deixe-me realmente copiar isso. E então eu tenho que verificar os nomes aqui. Então vamos ter planta e depois mais duas e depois será o Wanderer e depois pôr do sol também. E espero que isso seja tudo o que precisamos fazer. Agora, como você viu, na verdade há algumas coisas, alguns passos aqui. Não é que na verdade seja fácil tanto quanto você pode dizer, Bem, isso tem sido uma grande provação. Sabe, isso é como realmente muito equipe para como eu disse, 16th, 117. Isso foi como dez horas de loucura absoluta passando por tudo, mudando tudo porque o nome da classe é alterado, nomes dos métodos mudam os métodos que estavam disponíveis, não estavam mais disponível. E felizmente aqui, a maioria dessas coisas ainda funciona. Então, estou muito feliz com a atualização aqui. Mas, por enquanto, vamos começar e ver se alguma coisa pode surgir. Ainda pode haver um erro em uma dessas classes. Isso vai ficar bem. Lá vai você. Na verdade, até fundamos lâmpada de cobalto. Então este é o método take aqui. Mais uma vez, só por causa do aleatório, agora é uma fonte aleatória. Na verdade, eles entram fonte aleatória e , em seguida, deve funcionar. Não se preocupe. Vamos continuar mais uma vez, começando e vendo, lá vamos nós. Também temos isso em modelo declinado quando realmente nos livramos dos fluidos mod. Absolutamente não se preocupe aqui são os eventos climáticos. Vamos começar isso de novo. Isso também acontece quando você o inicia, você está recebendo um erro. Você acabou de corrigir o erro e, em seguida, você começa de novo. Portanto, não se preocupe. E agora parece estar funcionando. Então, vamos ver se o Minecraft começa. Isso será um ótimo sinal. E então podemos ver, entrar em nosso mundo e ver se tudo funciona. Um manguezal está começando. No entanto, estamos recebendo um erro aqui, mas isso vai ficar tudo bem. Vamos ver antes de tudo, se ele realmente começar ou se não iniciar uma tempestade de poeira, isso é um ótimo sinal. Vamos apenas criar um novo mundo. Não estamos recebendo nada porque temos alguns elementos desconhecidos aqui. Certo, vamos pensar sobre isso. Podemos ver porque cerejeira Minecraft verificada não está disponível. Bem, isso provavelmente é uma flecha sozinha porque eu não mudei o ID do modelo. Bem, isso não está certo. Curso Iteris MC, flor de cerejeira verificada. Então isso é muito estranho aqui porque, de fato, se eu olhar para isso, estou sempre usando meu curso MC. Então isso é muito estranho, tudo bem, então o problema realmente estava usando os conflitos aqui. Sinceramente, não tenho certeza por que o conflito é não funciona bem aqui. O ele deve funcionar em teoria. Agora, a única coisa que eu poderia imaginar, e eu sou como, estou fazendo isso ao vivo. Eu não tentei isso antes. Colocar os conflitos de registro antes que tudo o resto possa mudar isso. Vamos tentar isso e ver se os conflitos funcionam corretamente. Então, porém, é só por causa dos conflitos, que o registro real do recurso local não funciona. Então, como eu disse, eu não tentei isso antes. Então, vamos apenas ver se há alguma coisa e se não acontece, então aparentemente, infelizmente, os conflitos também não funcionam bem. O que é muito estranho porque eu não encontrei isso antes, mas vamos ver. Então, talvez tenhamos o mesmo erro sobre os conflitos não funcionarem novamente. E se não conseguirmos isso, estou realmente me sentindo bastante confiante agora estamos realmente recebendo isso, o que é muito estranho. De fato. Estou. Sinceramente, não sei por que esse é o caso. Então, vamos ver. Mas neste momento, quando isso acontece, estou realmente muito confiante de que não vai funcionar, mas vamos ter que viver sem as configurações por enquanto. Mais uma vez, provavelmente é apenas uma mudança forjada em algum lugar. Então lá vamos nós, não funciona. Mas se eu, no entanto, mude isso de volta para não usar conflitos, mas usando apenas um número normal aqui. E não importa, os conflitos nunca são realmente carregados aqui e, em seguida, deve funcionar. Então, mais uma vez, não sei, não faço ideia por que isso não funciona com os conflitos aqui. Funcionou antes, mas eles atrás, vamos fazer isso assim sem os conflitos. E então, se os conflitos realmente mudaram e nós temos que mudá-los, e sempre podemos fazer isso mais tarde na linha. Normalmente, é mais importante obter um modelo de trabalho em uma nova versão, em vez ter tudo funcionando imediatamente. Isso geralmente é melhor porque então você pode corrigi-lo. E sim, então lá vamos nós. E então podemos criar um mundo para um jogador, e agora ele deve realmente funcionar. Devemos obter pacotes de dados de validação. E lá vamos nós, vamos lá, lá vamos nós, novo mundo. Vamos fazer o que quer que seja, algo como aquela raça de n. Sim, queremos isso com nossas configurações experimentais. Estou bem ciente disso e então ficaremos bem. Devemos ficar bem aqui. Na verdade, há mais uma coisa que você também pode dar uma olhada, o que é meio irritante, mas não é a coisa mais terrível. É só a porta que não vai funcionar. Você realmente terá que alterar o bloco Estados, arquivos JSON e o modelo de bloco Jason false para a porta. Mas, honestamente, isso deve ser bastante trivial. Todas as coisas consideradas irritantes, mas ainda triviais. E vamos ver carregar o terreno e lá estamos nós. Então, vamos antes de tudo, quero dizer, isso é como o momento perfeito. Estamos nos aviões nevados e já temos nossas cerejeiras crescendo aqui. Também temos nossas estruturas personalizadas também funcionando totalmente bem. Então a questão é, e encontramos qualquer uma de nossas rosas, rosas vermelhas, e lá estão elas. Também funciona totalmente bem. E então, apenas por uma questão de argumento, vamos descer e vamos ver se podemos encontrar algumas de nossas ordens também. E então não precisávamos nem procurar por aquele longo sono profundo cobalto