Transcrições
1. Introdução ao curso: Muito bem, bem-vindos a este mais extenso curso de modelagem do Minecraft aqui em partilha de habilidades. E neste curso, vamos aprender tudo, desde a
criação de blocos e itens até ferramentas, armaduras e até entidades de mosaico. Então esta é uma seleção de coisas que realmente
vamos aprender e criar aqui, vamos criar algumas coisas baseadas em cobre. Então cobre ou vamos criar blocos de cobre e lingotes. Vamos criar fios de cobre. E também vamos garantir que essa resposta dentro do mundo para o mundo, Jen, criaremos ferramentas deles e armaduras. Vamos criar nossas próprias colheitas personalizadas e como garantir que elas sejam exibidas corretamente e como tudo isso funciona. Vamos criar nosso próprio fluido personalizado. Neste caso, isso é óleo. E, claro, uma entidade de mosaico, como eu já disse, essa entidade de mosaico terá uma GUI personalizada e isso também terá uma funcionalidade personalizada. Neste caso, vamos criar diamantes, que vamos tê-lo para que os diamantes realmente criem energia. E então esses diamantes podem ser, essa energia pode então ser transformada em esmeraldas usando fios de cobre. Também vamos criar nossa própria árvore personalizada e ter esta árvore personalizada gerada dentro do mundo. E por último, mas não menos importante, e temos nossa própria guia personalizada. E dentro daqui, nós também vamos ser capazes de gerar monstros que nós mesmos fizemos. Então, empregos de clientes, nós também vamos ser adicionados ao jogo. Estes também podem surgir no lado do mundo. E também estamos adicionando uma desova, ou isso é o que está por vir neste curso. Espero que seja do seu interesse. E estou ansioso para vê-lo dentro do curso. E eles, sim.
2. IntelliJ e Java: Ou há duas coisas que você precisa baixar para esta classe. O primeiro é o JDK aberto, que é simplesmente a linguagem Java, por assim dizer, para que você possa usá-lo e programar com ele. E muito importante que você use o JDK oito. Então escolha esta versão e, em seguida, escolha o hotspot JVM. Basta clicar em Related to release e, em seguida, ele vai baixar. E outra coisa que também queremos baixar IntelliJ ideia. E isso é muito importante que você use a versão da comunidade aqui. Este é livre e de código aberto, sem login ou qualquer coisa necessária. E isto vai dar-nos energia suficiente para fazer o que quisermos. E ambos os links estão no topo da descrição do projeto.
3. Configuração do IntelliJ e Java: Muito bem, bem-vindos a esta primeira palestra sobre como configurar Java e a ideia IntelliJ. Agora, quando você começar a inteligência pela primeira vez, esta é a janela que você vai ser recebido com. E nós simplesmente queremos clicar em Novo Projeto porque queremos criar um novo projeto. Importante, certifique-se de escolher. Java aparece no canto superior esquerdo. E quando se trata do SDK do projeto, queremos selecionar o Open JDK que baixamos anteriormente. Agora, aqui eu já tenho um ponto uma versão Java aqui. Pode ser que esteja aqui embaixo para você. Ele deve encontrá-lo automaticamente e você deve apenas ser capaz de selecioná-lo. Se esse não for o caso e você ainda o instalou, você pode clicar neste botão adicionar JDK e, em seguida, procurá-lo onde quer que você tenha. Coloque-o. Então, onde quer que você tenha instalado no diretório e basta clicar em OK lá. Se isso não funcionar, então você não encontra. Você sempre pode baixar a partir daqui escolhendo adotar Open JDK e, em seguida, selecionando o 1.8. Oh, isso é muito importante que esta seja a versão que você seleciona, certo? E, em seguida, basta clicar em download em qualquer local em que você deseja instalá-lo. E isso também funcionaria bem, certo? Então, com isso selecionado, seguida, nós realmente marcar esta caixa. Então criar projeto a partir do modelo porque queremos
ter o aplicativo de linha de comando como um modelo. Isso simplesmente significa que ele vai gerar para nós um pequeno ajudante, digamos que vai nos fazer começar muito mais rápido do que se nós não temos isso gerado automaticamente. Podemos clicar em seguida novamente. E nesta janela, nós realmente temos que especificar o nome do projeto e a localização, bem
como o nome do pacote base. No nome do pacote base geralmente é um domínio invertido. Então, por exemplo, para Google.com, vermelho se tornaria dot google, certo? E para os nossos propósitos, para mim, eu vou fazer com.com Joe, ou você pode fazer basicamente o que quiser. Ou VR. Esta é definitivamente a convenção para fazer isso assim. Então também, faça os pontos calmos e, em seguida, um nome ou ponto líquido ou qualquer que seja o caso. Algo que também é muito importante mencionar é que isso está em minúsculas, um pacote base, base e todos os pacotes e os nomes estão todos em minúsculas. E então vamos apenas clicar em Concluir e então vamos ver o que acontece. Então isso vai fazer um monte de coisas. E então, como você pode ver, ele já gerou algumas coisas para nós. Agora podemos expandir isto aqui para a esquerda. E, em seguida, se expandirmos a pasta de origem, podemos realmente ver que aqui está o nosso pacote de trabalho KM.com. Há duas coisas que quero mencionar. Isso é uma vez aqui no menu de opções. Às vezes pode ser que pacotes achatados
é, por outro lado, vai parecer um pouco como isso. Vai parecer um pouco estranho e isto pode virar um problema. Eu aconselho a desativar pacotes planos para os propósitos de todo este curso. E sim, e é basicamente isso. Isto é basicamente o, o, o, o que você precisa. E se esta configuração foi feita, então você pode seguir o curso Java para um T. E sim.
4. (Java) Datatypes em Java: Portanto, bem-vindo de volta à introdução do Java. E nesta palestra vamos falar sobre tipos de dados. Agora. O que são tipos de dados? É basicamente uma forma de armazenar informações. E é claro que existem diferentes tipos de informação, certo? Então esta vai ser uma abordagem mais teórica para explicar os tipos de dados. E depois vamos ver,
OK, o que podemos fazer com eles? Como podemos manipulá-los? Como eles são intercambiáveis? E vamos passar por eles e ver o que podemos ver. Então, primeiro, há um número de tipos. E os tipos de números devem fazer sentido. Existem dois tipos de números principais, eu diria que é um inteiro e um flutuador. Um número inteiro é um número inteiro. E neste caso, é o nomeado com o, com a palavra int I-N-T. Em seguida, você obtém o nome da variável e, em seguida, você atribui a ela um valor específico. Então, neste momento, em um número, 42 está escrito lá. E eu também adicionei uma camada comum, então número inteiro ou inteiro. E você pode armazenar qualquer coisa entre esses dois números. Então menos 2 bilhões a 2 bilhões lá dentro. E depois há números de ponto flutuante. Estes são basicamente quatro números decimais, não exatamente. Assim, os números de ponto flutuante ou flutuantes são armazenados em notação científica. E estes, neste caso, os flutuadores ou precisos, ou 7 pontos decimais precisão ou sete números de precisão. Então, neste caso, temos quatro números. E se fôssemos adicionar mais três deles teria, é
claro que teria sete números e qualquer número depois disso realmente é cortado. Então é por isso que foram arredondados para cima ou para baixo. Sim, então é importante saber. Se você tem um flutuador que é mais longo, isso realmente vai causar alguns problemas. Agora, como você pode ver aqui, há também outros tipos de tipos de números são outros tipos de variáveis que podem ser usados. Então, uma mordida, por exemplo, é apenas um byte ou oito bits. Talvez já tenha ouvido isso antes. E só pode armazenar números de menos um 128127. Então isso é para números muito pequenos. É por isso que eu escrevi o nome da variável como um número minúsculo. E um curto é um número pequeno. Ele pode armazenar números de menos 32 mil para cerca de mais 32 mil. E há também um longo, que é para números realmente grandes. E como você pode ver, isso é como uma quantidade insana de números que você pode ou não quantidade de números, mas o intervalo de números que você pode armazenar lá. Então você pode armazenar de, hum, eu tenho porque eu não tenho certeza, nove quadrilhões ídolos, eu não sei o que é, mas é um grande número, geralmente, na minha estimativa e na minha experiência, é muito raramente visto que um usa junto. É mais provável que um, um inteiro usado em quase qualquer caso. Porque quando é que realmente acontece que você recebe números que são maiores do que este? Não é frequentemente o caso. Então, em geral, eu argumentaria que esses dois são os mais importantes. Outro que pode ser útil é o duplo. E como o nome aqui sugere, é na verdade um número mais preciso. Então isso realmente tem precisão de 15 pontos decimais. Então este pode ter 15 lugares até que o 16º lugar seja cortado ou arredondado. Então, em vez de ter apenas o sete com o carro alegórico, o duplo pode realmente ter mais alguns, certo? Então este é o tipo de número. Então temos Booleans ou basicamente o tipo lógico. Isto é para as nossas condições de teste. E assim podemos ter um booleano, certo? Então o nome também booleano. O nome da variável neste caso
é esta nota do curso, e é igual a true. Booleans pode armazenar verdadeiro ou falso. Então, isso também é mostrado às vezes com um um ou um 0. E então nós também podemos escrever, por exemplo, é este HTML. E dizemos: Não, isto é falso porque isto é Java. E depois há personagens. Então, um único caractere é um char, CH, AR, e ele pode armazenar um único caractere. No entanto, isso também pode incluir caracteres especiais como vírgulas, traços e espaços. São todos personagens. Então, por exemplo, podemos simplesmente escrever algo assim. E não vai lançar um erro porque um espaço é um personagem de eu vou colocar dois espaços e ele vai lançar um erro porque são dois caracteres. Então isso é basicamente um único personagem, um caractere. Agora, se vários caracteres próximos um do outro, então o que vamos usar é uma string. Uma string aqui armazena uma sequência de caracteres. Então, neste caso, ele armazena Helloworld. Isso é algo que você vê com muita frequência, especialmente em cursos de programação para iniciantes ou em qualquer lugar onde você vai começar a programar. Olá Mundo é uma espécie de coisa que, que é uma espécie de a primeira coisa que você tenta produzir como uma variável. Então, para dizer, Olá mundo, Eu agora comecei a programação. Este sou eu. E muito importante saber. Então, um personagem é basicamente escrito com essas aspas simples em torno dele. E então qualquer personagem que você quiser dentro dele. E uma string é escrita com aspas duplas. E tudo dentro dessas aspas duplas é basicamente parte da string. Também é muito importante notar que se você quiser ter uma aspas duplas dentro deste, você pode realmente usar um ano como uma barra invertida. E este pode então ser usado para criar um, uma aspas duplas dentro de sua string, se você quiser. E isso também é usado para todos os tipos de outras coisas dentro de uma corda. Sim, então esses são os principais tipos de dados que vamos usar neste curso. E esses também são, eu acho, aqueles que são os mais prevalentes que são usados basicamente sempre. E foi isso para a palestra sobre tipos de dados. E sim.
5. (Java) como ler o código Java: Muito bem, bem-vindos de volta à introdução do Java. E nesta palestra vamos falar rapidamente sobre como ler código. Então, se você nunca leu código em nenhum lugar, nós vamos realmente olhar para alguns exemplos aqui. E as duas primeiras coisas são comentários. Então, um comentário de uma linha é feito apenas com duas barras. E um comentário multi-linha é feito
fazendo uma barra e, em seguida, uma estrela e outra estrela e uma barra. E o que isso vai fazer é criar um comentário multi-linha. Agora, uma declaração de uma variável é simplesmente o tipo da variável e, em seguida, o nome da variável. E terminando a linha com o ponto-e-vírgula. Se, em seguida, atribuir um valor a essa variável, que seria simplesmente fazer o nome da variável,
em seguida, o operador igual, também o operador de atribuição chamado operador Simon. E então apenas o valor que queremos armazenar nessa variável. Mais uma vez, terminando a linha com um ponto-e-vírgula. Isto é basicamente o que vamos fazer. Sempre em todas as vezes. Quando tivermos uma declaração, terminaremos com um ponto e vírgula. Então temos a inicialização, que é simplesmente a Declaração e a atribuição ao mesmo tempo. Então, neste caso, vamos declarar um inteiro x e vamos atribuir imediatamente o valor de dez. Às vezes, talvez queiramos acessar variáveis ou métodos de um objeto. O que são, o que são métodos ou o que são objetos? Vamos falar sobre isso em palestras posteriores. Mas só para você saber, fazemos isso com um ponto após o nome da variável. Então, quando temos a string aqui, se fizermos S dot e vamos ser sugeridos um monte de métodos que podemos chamar. E esses métodos fazem coisas que, como eu disse nas palestras posteriores, vamos falar. Mas é muito importante que você use o operador ponto. Não é bem um operador, mas é um ponto depois do nome. E quando você vê os parênteses abertos e fechados depois de algo com um ponto, este é sempre um método chamado. E quando você não tem, então isso seria uma variável. No entanto, neste caso, a variável não existe, por isso mostra um erro. Mas se não houver parênteses depois, então como uma variável, se houver parênteses, então é uma chamada de método aqui como um pequeno adendo curto no final. Isto é um bloco de código. Ele pode ser descrito como um bloco de código. E se ouvirmos inicializar uma variável dentro deste bloco do que fora
dele, não está chegando você reconhece, certo? Então aqui dizemos, oh, inteiro l é igual a 0. E aqui dizemos, ei, eu é igual a L mais dois. Isso agora é trabalho porque fora deste bloco, L não existe. Então isso funciona para ambas as classes, métodos, e também apenas esses blocos de código de fluxo V, que eu, eu raramente vi este que você usa assim. Mas é muito importante que entre os colchetes, se você inicializar algo do que fora dos colchetes, ele não é inexistente. Há alguns, como a especialidade é em regras especiais. Mas, em geral, eles não são acessíveis fora disso. E sim, isso é apenas um breve resumo de como ler código e sim.
6. (Java) O método principal: Muito bem, bem-vindos de volta à introdução do Java. E o que vamos falar agora é sobre o que esta coisa significa. Então, isso também é chamado de método principal. E como você pode ver, eu escrevi um comentário aqui que diz que o código vai aqui. E o que isso significa? Então o código principal vai entre os colchetes, dois neste e este. Eles também são destacados quando eu passar o mouse sobre eles ou levá-los, colocar o cursor sobre eles. E basicamente o que acontece é que tudo neste método principal é executado de cima para baixo. Então algo escrito aqui, vai ser executado primeiro. E quando eu descer aqui, este aqui, este é o segundo, por exemplo, certo? Então primeiro este é executado, então este é executado e é muito simples, basicamente de cima para baixo. E isso é verdade no método principal. E vamos ver que nem sempre é verdade que é simplesmente linear ou de cima para baixo. Você sabe, você pode ter, digamos, ramos que vão mudar o fluxo de como o programa opera ou como o programa avalia e executa. Mas, em geral, você precisa de um método principal em seu programa Java porque isso é o que vai ser chamado, isso é o que vai ser executado. E é aí que basicamente a maioria do, não a maioria do código, mas você sabe, parte do código vai que ele é executado. E nesta introdução, A maior parte do código no início especialmente vai entrar neste método principal. Porque essa é basicamente a maneira que podemos, que podemos usar o que podemos programar e depois executá-lo, certo? Então, o que todos esses nomes significam? Tão público estático, vazio. Vamos descobrir lentamente o que esses termos significam. Agora mesmo. O que eu quero que você faça é uma espécie de esvaziamento e apenas diga, ok, nós estamos dentro do método principal. E é aqui que o nosso código é executado. O que tudo isso, todas essas outras coisas significam. Vamos falar sobre isso. Definitivamente. Vai vir em palestras posteriores. Mas agora, o principal é a coisa principal. Veja o que eu fiz lá, ok, agora o principal é que o que quer que seja no método principal que vai ser executado, isso é basicamente a única coisa que você precisa saber agora. Em todas as outras coisas que você vai ver escrito aqui, o órgão a ser explicado. Mas com o tempo, porque primeiro precisamos de alguns componentes extras que
aprendemos , a fim de realmente entender o que as outras coisas significam. Então, sim, isso é apenas uma pequena idéia sobre qual é o método principal e por que ele é importante e por quê. Diz: “Ei, o código vai aqui. E sim.
7. (Java) usando println para produzir coisas no Java: Bem-vindo de volta à introdução do Java, e desta vez vamos realmente escrever algum código. Agora o que queremos fazer nesta palestra é que queremos enviar algo para o console. Então, primeiro de tudo, queremos produzir uma string. E o que vamos escrever é system.out.print, LN, print Ellen apenas significa linha de impressão. E então vamos fazer um, um suporte aberto. E o que vai acontecer é que irá gerar automaticamente o fim. E então vamos para aspas e vamos colocar em “Olá Mundo”. Então o que queremos fazer é que queremos produzir Hello World. Agora terminamos o, o, basicamente a instrução com um ponto-e-vírgula. É assim que se termina uma instrução. E bem, ele não lança nenhuma flecha. Então vamos começar isto e ver o que acontece. Então eu vou para a direita aqui para este botão Play basicamente e digo executar o principal, Nós vamos fazer isso. E então o que vai acontecer é que vamos ver aqui mesmo, Olá mundo. Que coisa linda. Você só talvez se você nunca executou um programa antes, e esta foi a primeira vez, parabéns. Sei que isto não é para ser condescendente. Na verdade, quero dizer isso. Isso é definitivamente mais do que a maioria das pessoas GET com isso porque a programação, enquanto os primeiros passos podem parecer fáceis ,
você sabe, quanto mais você faz isso, é, ele tem alguma profundidade para ele e, você sabe, fazer o primeiro passo e então também se comprometendo a tomar algo assim, um curso como este. Isso é ótimo. É mesmo, é muito bom. Então, ok, vamos falar um pouco sobre o que está acontecendo aqui. Então, agora aqui estamos saídas, saída. Colocar uma string é uma string, como eu disse no vídeo tipos de dados, uma string e as cordas helloworld, basicamente a primeira coisa que você deseja produzir. Agora também podemos produzir coisas diferentes. Então também podemos salvar, por exemplo, linha
de impressão de saída 42, certo? E vamos, vamos executar essa. E então ele vai produzir 42. Então isso é apenas a saída de um inteiro. Então fora, oh, oh meu senhor. Dando um termo int, certo? Isto é a saída de um inteiro que podemos basicamente produzir qualquer tipo de dados que queremos também. E é isso que vamos ver mais tarde. Basicamente, os nossos próprios tipos de dados. E então o que acontece se quisermos produzir um Float? Que tal aquele? Vamos fazer essa linha de impressão do sistema. E como você pode ver, ele já tem muitas sugestões aqui. E nós podemos realmente ir para baixo essas sugestões e dizer, hey, eu quero produzir um flutuador para que possamos apenas apertar enter e ele automaticamente faz coisas para nós. E talvez quando quisermos fazer o carro alegórico, vamos escrever algo assim. E isso também vai funcionar. Vamos apenas executar esse 155.32. E então o último é talvez queiramos realmente ter uma variável. Então talvez não fôssemos Int. Vamos chamar isso de saída de mim. E vai ser 1137, é claro. E então o que vamos fazer é fazer a linha de impressão do sistema. E então vamos colocar, oh, , isso não é o que queremos. Queremos a saída, a saída de mim. E como você pode ver, assim que eu escrever, ele já diz, hey, você talvez quer produzir a saída da variável me e eu digo, é claro, então nós vamos entrar e auto completa e, em seguida, executar o método principal novamente. Como você pode ver agora, ele emite o que está escrito nesta variável, saída me. Sim, então este estaria colocando uma variável, variável nos mares, inteiro, certo? Sim, então isso é basicamente saída, como você produz algo, uma variável flutuante de string e inteiro. Neste caso. Neste caso, esta é uma variável inteira, mas pode ser qualquer variável que você deseja uma variável string,
uma variável flutuante, um curto ao longo de um char. E sim, este é o método de saída. Então a linha system.out.print é um pequeno adendo a isso é como há também um system.out.print, certo? E o que acontece se eu fizer isso? Digamos que eu quero e, em seguida, saída mil. E se fizermos isso, primeiro lugar, nada vai acontecer. Mas agora o interessante é que se eu colocar um 1000 de novo,
então, de repente, o que é isso? Então linha de impressão basicamente adiciona uma quebra de linha
no final da saída de impressão e impressão não. É por isso que geralmente é preferido usar linha de impressão simplesmente porque então você pode apenas ter várias linhas de impressão abaixo uma outra e eles não vão interferir uns com os outros. Agora este, isso vai ser realmente interessante se você espera vezes um 1000 em vez de, você sabe, o número maior. Então isso é muito importante ter em mente por que linha de impressão, por que eu usei linha de impressão e YB deve usar linha de impressão em vez de uma impressão, certo? E como um pequeno adendo curto aqui, você também pode imprimir várias coisas. Então o que você pode fazer é, por exemplo, quando você escreve linha de impressão do sistema, você pode, por exemplo, fazer uma string. Então, como exemplo, reescreva variável de saída. E então vamos atrás da corda e fazemos um plus. E então, por exemplo, a saída, minha variável. E isso também funciona, e isso funciona da maneira que quisermos. Então, por exemplo, podemos também dizer, talvez queiramos, esta variável de saída que temos apenas saída é quilogramas ou libras, ou talvez seja jardas ou metros de taxa. Então podemos simplesmente adicionar algo por trás dele também. E quando produzimos isso, eles são escritos juntos. Agora, neste caso, um espaço provavelmente seria muito inteligente. E então a saída realmente parece meio decente. E isso funciona com apenas as variáveis no meio ou você também pode fazê-lo com cordas em teoria. Agora, neste caso, não
faz sentido fazer isto. Você também pode apenas torná-lo uma string. Mas se você quiser colocar variáveis dentro de lá, que também funciona muito útil e realmente como muito fácil de usar. Sim.
8. Operadores inteiros e partas (Java): Muito bem, bem-vindos de volta à introdução do Java. E agora vamos falar sobre números inteiros e operadores aritméticos. Então, o que isso significa? Basicamente significa, ok, o que podemos fazer com números inteiros neste caso? E como podemos manipulá-los? Então, a primeira coisa, é claro, que podemos fazer é adicionar taxa. Então, se temos, digamos um, além disso, queremos adicionar primeiro, segundo, ou vamos escrever isso primeiro. E depois vamos fazer um símbolo de adição. E em segundo lugar, se entra mais uma vez com um ponto-e-vírgula no final. E agora, além
disso, deve ser armazenado um 300. Faz sentido, podemos verificar isso. Saída, isto, digamos. E então vamos produzir adição. E nós vamos comandar isso. Como você pode ver, 300 é além disso, como nós pensamos, ok. Também podemos dizer que talvez o que queremos é outra soma onde realmente queremos ter, você sabe, não adicionar duas variáveis, mas talvez outra coisa. Então nós temos, por exemplo, nós tomamos adição, que é 300 e mais 200 ou 2200 mais 500. Isso também funciona. Podemos adicionar várias coisas na mesma linha, não um problema. E depois vou copiar isto. E eu vou colocar um pouco aqui e vamos ver que isso é um 1000. Sim, claro, isso é ótimo. Então agora vamos ter 1000 em cerca de 300 e adição e 1000 e alguns. Isso é ótimo. O que mais podemos fazer? Bem, talvez queiras subtrair alguma coisa. Então vamos ter o primeiro menos segundo. Interessante. Agora, o que é que isso vai ceder? Bem, isso deve produzir um menos um 100. Está bem. Isso é impossível? Claro que sim. Isso não é um problema. Vamos ter apenas outra linha de impressão. Vamos imprimir o submarino só para ver o que tem lá dentro. E vemos que isso é menos um 100, nenhum problema qualquer. Lá está o bom. O que mais podemos fazer? Bem, talvez queiramos multiplicar alguma coisa. Parece que faz sentido. Vamos multiplicar primeiro. E isso é, que deve então produzir um 400. E nós vamos apenas verificar isso também. Só para ter certeza. Espero que a matemática ainda não tenha mudado, mas acho que não quatro vezes 100 ainda é 400. Cumprimente. E então o último, digamos que algo fácil ou coisa que você provavelmente sabe da escola é dividir. Então vamos dividir em segundo lugar, dividido por primeiro. Isto deve ser um dois. E então vamos verificar isso de novo. E vamos ver o que isso faz. É realmente um também, isso é ótimo. Agora há mais uma coisa que podemos fazer aqui que provavelmente é um pouco diferente. E isso é basicamente o módulo ou o restante, certo? Então temos o resto. Então, se tomarmos 25 de dois, então isso é 25 mod, módulo ou mod2, então isso deve produzir um 1. E a razão pela qual este é um 1 é se queremos dividir 25, então 25 divididos por dois não funciona certo? Mas o que acontece é
que, que número poderíamos adicionar ao restante para que ele seja divisível por dois. E isso seria, claro, um. Então vamos apenas verificar se o restante aqui. É um e é, é um. E então, se nós apenas verificar outro restante, por exemplo, e vamos apenas executar um 115, então módulo dez, por exemplo, este seria um cinco. Espero que seja 5F. Tenho certeza que são cinco. Porque o que vai acontecer é que podemos dividir um 110. Vamos apenas 11 vezes dez, certo? Mas então 155 vai ser o restante, certo? Este é basicamente o operador restante, também chamado de módulo. E pode realmente ser útil. Então, por exemplo, o módulo dois é incrivelmente ótimo porque você pode apenas verificar, hey, isso é igual a 0, certo? Então é módulo de dois a 0, então você sabe que você tem um número par. Ou se você quiser verificar se há um, então você sabe que você tem um número ímpar. Então é por isso que o operador de módulo é realmente bom. E agora, às vezes, talvez, você sabe, nós tenhamos essa soma. E talvez o que queremos é tsunami. Temos um número inteiro que chamamos de I e isso é o que
queremos fazer é basicamente queremos ter mais um para isso. Então o que podemos fazer é dizer, bem, eu é igual a i mais um. Isso funciona totalmente bem. E agora dois está escrito no IE. Também é possível fazer isso um pouco, ainda mais fácil. E isso vai ser se você fizer I mais igual a um. Porque agora, basicamente, vai fazer o trabalho de se adicionar também. Então isso é basicamente o mesmo que isso. Então, estes são equivalentes. E agora vai ser escrito um três. Porque lembre-se, aqui temos um dois, certo? Nós iríamos de cima para baixo. Então nesta linha temos um dois escritos em i, e agora temos um três escrito em i porque adicionamos outro. Agora isso, a propósito, detém pode ser qualquer número, é
claro o que você quer. E isso não é um problema. Mas podemos ir mesmo, digamos, mais fácil para incrementar e decrementar. Então incrementar e decrementar é basicamente adicionar ou subtrair um. Então podemos apenas fazer i plus, plus ou I menos, menos. E isso vai fazer imediatamente, então ouvir um quatro. E aqui nós vamos ter um três novamente, porque neste caso nós vamos realmente subtrair do A1. E sim, agora essa maneira de escrever é muito útil porque nós também podemos fazer coisas diferentes. Então também podemos ter menos razoáveis iguais. Podemos ter vezes iguais, podemos dividir iguais, e também podemos ter o módulo igual. Então este é realmente, este é muito bom. Eu vou realmente colocar isso aqui em baixo. Bem, não, então tudo vai mudar. Então, vamos mantê-lo lá. E isso vai fazer mais um. Então o I mais é igual a dez. E este vai ser um 13, certo? E temos diferentes tipos de coisas que podemos fazer aqui, como formas curtas de escrever isso. É ótimo se você usá-lo ou não no final. Isso realmente não importa. Tem tudo a ver com a legibilidade da taxa de código, quão fácil você vai ver o código e como é fácil entender o código. Porque o que eu acredito que isso não é tão compreensível como este. Ok, eu só vou adicionar um para eu e eu vou escrever em mim e este aqui, é claro, faz exatamente a mesma coisa. Acho que é um pouco mais fácil de ler. Mas na Índia, no final do dia, você poderia total livre para usar qualquer um desses. Mas é importante saber que essas coisas existem porque talvez às vezes você vai ler uma citação de outra pessoa. E se eles só usarem este, este tipo de adicionar ou subtrair, então você vai ter um problema se você não sabe essas coisas. Então é por isso que eu só queria mencionar isso. Há outras coisas outras maneiras de fazer isso e sim.
9. Operadores de Booleans e comparação: Tudo bem, vamos continuar com a introdução do Java e vamos olhar para os operadores booleanos e de comparação. Assim, por exemplo, podemos iniciar mentiras um booleano com a palavra-chave Boolean. E então, por exemplo, nós apenas chamamos de B. E dentro dele, nós podemos escrever verdadeiro, verdadeiro ou falso. Essa é a única coisa que vai dentro de um booleano, verdadeiro
ou falso. E poderíamos imaginar algo como em um jogo, por exemplo, um jogo de plataformas 2D. Provavelmente, você sabe, de repente como Mario, provavelmente todos vocês viram algo assim. E nós poderíamos imaginar um booleano que é, que pergunta, ok, Mario está agora no chão ou ele não está no chão? E este booleano poderia, por exemplo, ser chamado, está aterrado. Então isso é algo que é um pouco mais concreto do que apenas ter um booleano chamado B ou C. E no caso em que Mario salta, obviamente, eu acho que é bem claro que é fundamentado seria falso. E assim que ele toca o chão novamente, é, ele é aterrado seria verdade. Então este é um exemplo em que um booleano pode ser muito útil. Mas também há coisas que você pode fazer com booleanos que são muito interessantes. Como eu disse, o interior de um booleano, você pode armazenar um verdadeiro ou um falso. Agora, uma vez que você também pode fazer se nós, por exemplo, temos um x booleano, você também pode armazenar. Você também pode olhar para expressões e ver como elas avaliam. Então, por exemplo, eu poderia comparar algo. Então eu posso comparar dois a, digamos cinco e dizer, bem, a questão aqui é, que está sendo feita é, é menor que cinco. E então a resposta é, bem, isso
é verdade ou isso é falso? Claro que neste caso seria, desculpe-me, seria verdade que você iria. E, em seguida, dentro de x, true seria armazenado. Agora nós também podemos fazer algo como talvez dizer y, e então nós temos dez é maior que 50. E isso será claro falso porque dez não é, de fato, maior do que 50. E essas são algumas das coisas que podemos fazer. Estes são operadores de comparação. E há, há alguns outros, por exemplo. Então há menor que, maior que, há maior ou menor ou igual e igual a si mesmo. Então este, por exemplo, seria parecido com algo assim. Booleano. B é igual a, e então teríamos um 100100. E este não, esta não é a missão. Atribuição é um único sinal de igual e dois sinais de igual significa, significa, hey, isso é igual um ao outro? Então há um 100 igual a 100 neste caso,
sim, portanto, isso é verdade. E há outro que é inigualável, mas também vou dar uma olhada nesse. Então, se tivermos, por exemplo, 50 inigualáveis, 51, isso seria de fato verdade porque 50 não é 51. Então isso retorna verdadeiro se ambos os lados não são iguais um ao outro, logo ali atrás dele, inigualáveis e isso é igual, certo? Então, esses são alguns da atmosfera também. Esses são alguns dos operadores de comparação e Booleans que você pode usar. E como nós, como vamos continuar com os booleanos? Vamos ver isso em uma palestra posterior. Mas esta é uma base muito boa para se ter, a fim de entender o que está por vir. E então, sim.
10. (Java) Booleans e operadores lógicos: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos olhar para os booleanos novamente, mas desta vez vamos também olhar para os operadores lógicos. Então, última palestra nós acabamos com isso, e esta palestra nós vamos olhar para três tipos de operadores. Três operadores que podemos usar. Nós vamos olhar para o operador e, que vai ser dois comercial ciência. Vamos olhar para o operador ou, que vai ser duas dessas linhas verticais. E nós vamos olhar para o operador não, que é simplesmente um ponto de exclamação, certo? Então vamos ver o primeiro. Então isso é mais uma vez armazenado em um novo booleano. Então vamos chamar isso de Booleano B2. Por exemplo, com esses operadores, podemos encadear diferentes expressões booleanas juntas. Então, por exemplo, podemos fazer x e y. Então, neste caso, é perguntado, ok, qual é o resultado de x e y? O operador e precisa que ambas as expressões sejam verdadeiras, certo? Então, se x é verdadeiro e se y é verdadeiro, então toda a declaração é verdadeira. Agora, neste caso, sabemos que y é realmente falso. E, portanto, nós realmente sabemos que isso vai ser falso, certo? Esta é a operadora. O. Então vamos olhar para outro, por exemplo, B3, que vai armazená-lo em v3. E este vai ser o operador da sala de cirurgia. Então o operador ou, digamos, por exemplo, nós vamos, nós vamos dizer está aterrado ou, ou ser, ler b aparecer, é aterrado ou B vai ser verdade. E a razão pela qual isso vai ser verdade é porque se uma
das variáveis ou uma das expressões é verdadeira, então toda a declaração é verdadeira, certo? Porque estamos perguntando, ok, está de castigo ou B. E se qualquer um deles é verdade, então B3 também será verdade. Este é o operador ou. E então o último antes será o operador NOT ou a negação. E isso é simplesmente escrever o ponto de exclamação e, em seguida, qualquer que seja ,
por exemplo, o tipo booleano que você queira ter, e isso basicamente o inverte. Então isso vai transformar isso verdadeiro em um falso. E este não é o operador. Nós já vimos este tipo de com o operador inigualável aqui e aqui. E este simplesmente inverte ou inverte o que está escrito na variável. Ou também, por exemplo, se eu escrever não verdadeiro, isso simplesmente também seria falso. Essas são as duas coisas que funcionam e são muito importantes. Você também pode acorrentá-los, quero dizer, infinitamente basicamente. Então você pode dizer B2 e B4, ou b3, e3, e x, ou carne antes de novo, bem, isso não faz sentido. Ou por quê? Ou C, por exemplo, certo? Então isso agora pareceria terrivelmente complicado. Há algumas matemáticas que você pode usar para basicamente olhar para o que você pode, você pode simplificá-la, certo? Então esta é uma, basicamente uma função. Você poderia possivelmente simplificar isso se houver interesse, Eu definitivamente posso mostrar-lhe alguns desses truques e dicas e o que você pode usar. Apenas um direito uma pergunta ou me faça. E eu vou ter certeza de também fazer elétrons que se houver interesse suficiente para isso. Sim, então foi basicamente isso para os operadores booleanos e lógicos. E sim.
11. Strings e métodos de estrutura em Java: Muito bem, bem-vindos de volta à introdução do Java. Nesta palestra, vamos falar sobre cordas e métodos de cordas. Então, primeiro de tudo, vamos falar sobre cordas. Então, temos uma corda bem aqui. Chama-se Sentença e Helloworld escrito. Este curso é maravilhoso. Ótima. Talvez o que queremos descobrir é quanto tempo tem essa corda? Então, quantos personagens existem? Isso não é um problema. Podemos imediatamente, a
propósito, também imprimir isso. E isso vai ser, então vamos dizer que nós dizemos que o comprimento é, e então você faz um plus, a fim de, em seguida, produzir isso. Então nós vamos ter sentença, comprimento de ponto de sentença. E isso é então indo para a saída, basicamente a coisa toda vai produzir o comprimento desta string. Vamos ligar para isso. E vamos ver que o comprimento é 38. Interessante. Basicamente. Temos 38 caracteres nesta string é muito bom. Então isso é uma coisa boa de saber que podemos descobrir isso, comprimento do
ponto e, em seguida, os parênteses. Isto é, a propósito, uma chamada de método. É basicamente algo como, você sabe, o método principal que falamos, o método principal. E estes são métodos que podemos fazer em nossas cordas individuais que temos. E aqui estão alguns mais que são bastante úteis para algumas coisas. Então eu vou copiar isso. Normalmente eu não gosto de fazer isso. No entanto, neste caso, eu acho que é, faz muito sentido porque sempre executando a linha de impressão e, em seguida o método não parece ser que, você sabe, valioso. Mas eu vou explicar. Então, basicamente, talvez queiramos que a frase seja toda maiúscula ou minúscula. E podemos usar o método para maiúsculas ou minúsculas. Agora isso deve ser auto-explicativo. Vamos fazer isto e não vamos ver gritos. E então temos tudo em maiúsculas, se sussurrarmos do que com tudo em minúsculas. Então, mesmo as coisas que eram maiúsculas, as palavras que vão capitalizar antes não são agora, não capitalistas. Agora, o que também é muito importante saber, e eu vou demonstrar isso apenas retirando a frase em si depois, é que quando fazemos isso, a sentença não é alterada. A frase variável não muda. Quando você chama, por exemplo, para APA ou para diminuir. Ele realmente basicamente cria uma nova string que tem as alterações que você deseja. Por exemplo, colocar tudo em maiúsculas, há uma nova string. Então, se você quiser mudar a frase em si, então você tem que salvar isso na variável novamente, algo assim. Então frase é igual a frase ponto a maiúsculas. Então, a sentença, é claro, se tornaria maiúscula. Caso contrário, a sentença em si não é alterada. Nota rápida, porque isso é meio importante, certo? Talvez quando queremos descobrir é hey, então onde no, nesta frase é a palavra curso encontrado, certo? Isso é chamado de índice de e o que então chamamos Na verdade, você sabe o que, vamos colocá-los em uma linha, por favor. Está bem. E o que vamos chamar aqui vai ser sentenciado índice de e, em seguida, passá-lo curso. Então vamos escrever no curso de parênteses. Vou escrever isto só para tornar isto um pouco mais claro. Então escrevemos índice de sentença de. Então você pode ver que temos string inteira, queremos é uma string. Então nós basicamente queremos perguntar, ok, onde nesta frase, em que a frase é a seguinte, primavera encontrada e o que vamos escrever poros. E então, se
executarmos esse, descobriremos que a palavra curso é encontrada na posição 18. Certo, por que isso é importante? Bem, não é necessariamente importante, mas é importante que, você sabe, ok, nós podemos olhar em primeiro lugar, quanto tempo é uma corda. E então aqui podemos realmente olhar, ok, onde está uma parte particular da frase? Onde está escrito? E vamos ver em
breve o que podemos fazer com basicamente bem onde quer que o escritório de índice. Mas antes de tudo, vamos ser como, bem, quer saber? Na verdade, não quero dizer olá mundo, sabe, na verdade quero dizer olá alunos. E que podemos usar o método de substituição. Então, usamos a frase ponto Substituir. E lá colocamos duas cordas e vamos olhar para isso mais uma vez. Então vamos substituir. E aí temos a ideia. Isto está escrito em sequência de caracteres. Não se preocupe com isso. É basicamente uma corda. Então, vamos dizer “substitua”. E nós vamos dizer, bem, nós queremos substituir. Este é o alvo. Então é isso que queremos substituir o mundo. E então nós fazemos uma vírgula e então diz, bem, o
que a substituição, o que nós queremos substituir uma largura neste caso, eu vou fazer alunos. E se, em seguida,
produzirmos este, vamos ver que agora ele diz, Olá alunos, este curso é maravilhoso. Então nós substituímos cada instância da palavra, mundo da
palavra com a palavra estudantes. Agora muito importante, isso substitui todas as instâncias da palavra. Só assim, certo. Então este, eu vou escrever isso de novo, substitui todos, todos os exemplos da palavra, certo? Só para que saibas disso. E acredito que isso também está escrito aqui. Então você pode sempre, se você não sabe algo, você sempre pode pairar sobre ele. E vai te dar um gigante como tanta informação, é incrível. Então, por exemplo, aqui, como você pode ver, podemos ver substitui cada substring de uma string que corresponde
à sequência de destino literal com uma sequência de substituição literal específica. Agora isso é incrível, incrivelmente complicado falar por basicamente dizer, hey, toda vez que o mundo estiver na primavera, ele será substituído pelo que você colocar aqui. Isso é tudo o que significa. Então, isso é basicamente a tradução para o inglês normal, eu acho. E então talvez o que queremos ver,
hey, como se tivéssemos uma corda aqui. Então vamos dizer que vamos ter uma string, vamos fazer uma nova string. E nós vamos dizer, hey, há alguma coisa lá dentro onde possamos perguntar isso? E isso é basicamente, podemos colocar isso em um booleano. Poderíamos dizer, ei, esta corda não está vazia. E agora, claro, neste caso, sim, ele está vazio porque esta string está vazia. A sentença não estaria vazia. Mas eu quero mostrar isso. De fato, está vazio. Não era isso que eu queria. Queria imprimir uma linha B. Obrigado. Então, e então nós vamos fazer isso. E isso vai ser verdade porque ele pergunta, ei, esse anel está vazio? Sim, é. E também podemos ter isto aqui. Então nós temos nossas cordas s, e nós vamos apenas colocar entre aspas sem nada dentro deles quando você vê que S está vazio. E isso ainda é verdade porque nada está escrito em S. Então talvez o que queremos saber é o que uma corda começa, termina com. E este é exatamente o nome do, dos métodos que podemos usar. E isso é começa com e termina com, começa com uma enésima raiz. E agora, aqui estamos perguntando, ok, a frase da corda começa com um h e termina com um A? E, claro, começa com um H, mas não termina com um A. E então, se fizermos isso e veremos verdadeiro para este, e então falso ou termina com. E isso também é uma corda, certo? Então podemos ter vários caracteres novamente lá. E nós vamos dizer, Ei, não começa com, por exemplo, olá, ou começa com como o, e é claro que não começa com “howdy “, certo? Então este, é claro, agora ficaria falso. Tudo bem, então isso é basicamente como você pode usar o início com e termina com métodos. Também podemos perguntar, bem é algo dentro da corda. Então podemos dizer, hey, esta string contém, por exemplo, World, certo? E eu vou copiar isso de novo. Então este é basicamente o método contém. E nós vamos perguntar, ok, então a sentença contém World, verdadeiro ou falso? Na verdade, é verdade. Porque inclui o mundo. Agora, você pode ser como, espere um segundo, não substituiu o mundo por estudantes. Aha. Mais uma vez, sim, fizemos isso. Mas assim como com as letras maiúsculas e minúsculas, o que acontece é que nós realmente temos uma nova string criada aqui. Então a sentença não é mudada. Mais uma vez, muito importante saber. Eu acho que eu não tenho certeza se cada método string é, não muda a string, mas eu acredito que sim. Eu acredito que cada método que você pode chamar em uma string não realmente
alterá-lo, ele cria uma nova string. Então isso é muito importante saber e que, você sabe, às vezes e eu falo de experiência aqui. Isso levou a algumas dores de cabeça às vezes quando você pensa, bem, por que você não mudou e você percebeu 30 minutos depois de verificar tudo e verificar seu código. Oh, claro, eu tenho que fazer. Na verdade, basicamente eu tenho uma nova variável e, e guarde isso também. É por isso que neste caso, o mundo contém é realmente verdadeiro. Então talvez queiras dizer olá, para termos uma outra coisa. Então, talvez queiramos dizer “oi”. Então o char, então o personagem na décima posição, o que é isso? Quero saber se podemos ver que isto é AD. Agora, se olharmos para a corda, este é provavelmente o D do mundo. Sim, claro que é um mundo diferente porque aqui já estaríamos em 0,30 ou algo assim. Então é por isso que isso é, isso também é chamado de índice. Então isso diria como um índice de se escrevermos aqui índice de d. Então podemos olhar para cima e podemos ver aqui a palavra, neste caso núcleos, claro que não é, certo. Eu quero ver D. Então vamos, vamos realmente fazer isso corretamente desta vez. O que vamos ver é que a palavra D é encontrada na posição 10. E aqui nós olhamos para o char na posição dez. E eis que também é d. Então é basicamente assim que eles estão relacionados uns com os outros. E eu acho que isso é muito bom. Acho que isso é muito bom, certo? Certo, então aprendemos muito sobre o que podemos fazer com cordas e seus métodos, mas ainda há algumas coisas que podemos fazer. E uma dessas coisas, por exemplo, é que podemos pegar uma substring. Talvez não queiramos esse “Hello World “no ano. Talvez nós só queremos que este curso é maravilhoso. E será que podemos então usar, é podemos usar o método substring. E como funciona o método de substring? Bem, o que nós vamos fazer é basicamente nós vamos tomar esta taxa de índice. Então, como estabelecemos, o índice é basicamente o onde estamos na string. Então vamos tomar a 12ª posição. E então este é o início das substrings. Então a nova string que queremos criar, e a última, então este também é um inteiro, é a última posição para a qual queremos ir. Neste caso, nós só queremos ir para o final da string. E é por isso que podemos pegar o comprimento. Porque é claro que o último caractere dentro da string vai corresponder. Então a posição, o índice do último caractere vai corresponder com o comprimento de uma string é exatamente o mesmo. Porque se você contar 1-2-3 e um acima, então você começa a dizer, ok, esta corda é tão longa, e obviamente esta é a última posição. Portanto, esta é a posição igual ao seu comprimento. Então vamos fazer isso e ver o que vai sair. Ok? E o que vai sair é que agora temos uma barra de espaço ou um espaço. E então este curso é maravilhoso. Agora, a maneira como podemos nos livrar do espaço é obviamente apenas fazer um 13 é mais de 12. Mas isso vai ser perfeito porque isso vai
levar a outra das funções que vamos olhar. E vai ser aparado. E aparado faz muito fácil. No início e no final da frase ou da string. Vai para qualquer espaço em branco. Então qualquer, você sabe, qualquer espaço, basicamente ele vai apenas remover. É isso. Isso é tudo o que faz. Aparar. Na minha experiência. Provavelmente útil às vezes, mas sim. Sim. Então, em resumo, esses são basicamente os métodos que eu queria mostrar para strings. Então há muitos deles, e há alguns mais que nem sempre são tão úteis. Ou, às vezes, são. Mas eu acho que esta é basicamente uma boa visão geral para saber. Ok? O que podemos fazer com cordas? Quais são os, quais são alguns dos métodos que podemos usar para basicamente manipulá-los e basicamente jogar com eles um pouco. E sim.
12. Variáveis de fundição (Java): Muito bem, bem-vindos de volta à introdução do Java. E nesta palestra vamos falar sobre elenco. Então, como você provavelmente já viu, se nós temos um inteiro e isso vai ser sozinho. Então vamos conseguir um empréstimo de 750 dólares só por causa do argumento. E então, obviamente, teremos uma taxa de juros. Taxa de juro. E, neste caso, a taxa de juros será de 5,25%. E vamos salvar isso como um flutuador, é claro, porque um inteiro não pode salvar os pontos decimais. E então temos que fazer isso. E agora o que podemos fazer, curiosamente como podemos então dizer, ok, interesses do que solitários vezes a taxa de juros. Oh, não, não intra, inter inteiro, mas taxa de juros. E isso vai funcionar. Porque neste caso, sim, este é um inteiro e este é um flutuador. E se nós, então, apenas produzir tudo isso, nós vamos dizer, hey, qual é o interesse que realmente mostrou? Mas vai ser uma loucura, sim, são 39,375. Então, 39 dólares. E neste caso, eu diria que provavelmente $0,38. Então vamos nos reunir. E isso funciona porque o inteiro é basicamente no vôo convertido, por assim dizer, para um flutuador. E isso funciona. Agora, claro, se dissermos int, isso não vai funcionar porque ele vai ser como não, isso não funciona nisso. Isto é um carro alegórico, este trabalho. E é por isso que esta rede precisa ser um carro alegórico. Podemos basicamente converter isso. Podemos forçar os convertidos, por assim dizer. Se escrevermos flutuar na frente dele entre parênteses, e então este é tratado como um flutuador. Agora aqui está um inteiro, mas agora em sua totalidade ele é tratado como um flutuador. Isso já é o que acontece, certo? Mas este é, neste caso, é, é muito bom nisso funciona na mosca, certo? Então não temos que pensar nisso. Que tal nós termos um, um exemplo onde ele realmente é um porto. Então, quando temos um índice, vamos chamá-lo de x. e lá temos 50,5, f mais 20. Digamos 235 ou F afiado. Agora isso vai ser, não funciona porque este é um, este é um flutuador, é um flutuador, mas queremos um número inteiro problema. O que podemos fazer é dizer “hey int”. E isso é tudo também. E então ele vai tratar os dois números como inteiros. Mas o que podemos ver então, vamos na verdade, é colocar um seis anos que vai ser mais interessante. Então vamos produzir o X. E o que vamos descobrir é que são 70. E depois vamos pensar por um segundo. Nós vamos ser como, espere, um 20.5.6, isso deve ser 71.1. Mas não está certo, porque o que acontece é se tivermos um flutuador e o lançarmos para um inteiro, certo? Então isso é basicamente o pegar o flutuador e basicamente, você sabe, trocá-lo para um, para um inteiro. Então o que vai acontecer é que tudo depois da vírgula decimal vai ser cortado. Vamos ignorar isso completamente, certo? Então isso é basicamente o casting de um, de um flutuador para um inteiro. Basicamente significa que você perde informações. Principalmente o que está escrito depois do ponto decimal. Oops, desculpe. O que está escrito depois do ponto decimal, certo? Então é por isso que o, quando você custa, você tem que ter cuidado sobre às vezes perder informações. Então, neste caso, de um, de um flutuador para um inteiro, isso vai perder informações de um inteiro para um fluído. Bem, você não vai ganhar informação porque o inteiro não
tinha um tipo de coisa depois dos pontos decimais armazenados. Mas agora você pode usá-lo como tal. E então isso é basicamente um exemplo de apenas, bem, basicamente não é realmente implícito elenco neste caso porque ele pode apenas lidar com isso. Mas este é o elenco explícito. Então é aqui que nós estamos tipo, ok, isso precisa ser tratado como um inteiro. E eu só queria destacar esse custo. E como você faz isso é simplesmente antes da variável, você apenas escreve entre parênteses, seja qual for o tipo de dados que você deseja que isso custe. Agora, alguns custos, as coisas não funcionam. Então, por exemplo, se eu for como, vamos fazer um int y e dizemos 50 plus. E depois fomos para o “Helloworld”. O que é que isso quer dizer? Taxa, você não pode converter uma string para um inteiro. Porque o que você faria? Agora, curiosamente, e vou mencionar este ano, talvez queiramos perguntar a um personagem que funcione, que funcione. E a razão pela qual isso funciona é porque os caracteres em segundo plano, por assim dizer, são basicamente armazenados como inteiros. E então isso vai funcionar, mas uma corda que não faz sentido. Então esta foi uma visão muito curta do elenco. E como sempre, se tiver alguma pergunta, sinta-se à vontade para fazê-las e eu responderei e chego a elas. E sim.
13. (Java) Inteiros e métodos: Muito bem, bem-vindos de volta à introdução do Java. E nesta palestra vamos falar um pouco sobre inteiros novamente e métodos matemáticos. Então vamos usar matemática,
eu sei, mas não se preocupe com isso. Não vai ser loucura. Então, primeiro de tudo, nós vamos produzir algo e nós estávamos indo para produzir este Math.min atos. E então nós vamos fazer x e y. Então isso é obviamente indo para a saída 225 porque o máximo desses dois é 225. Isso faz, espero que faça sentido. E, em seguida, basicamente, completamente analógico para isso, podemos apenas usar min e isso, em seguida, irá produzir um 100. Então esta é uma maneira muito fácil de dizer basicamente, ok, qual é o máximo? Qual é o mínimo de dois números como máximo, mínimo? Então talvez queiramos realmente ter a raiz quadrada de algo. Agora isso vai ser algo que vai ser complexo, certo? Não, só vamos fazer matemática, raiz
quadrada, então SQRT. E então nós vamos colocar, por exemplo y. e isso vai estar produzindo 15 porque a raiz quadrada de 225 é 15. Vamos dar uma olhada nisso. Nós vamos executar isso e vamos ver, como você pode ver, duzentos e vinte e cinco, cento e quinze. Agora, você também vai notar que este é um ponto decimal foi adicionado. Hmm, por que isso? Porque raiz quadrada, se nós realmente pairar sobre ele, podemos ver que este é um duplo. Então, isso retorna um valor duplo, e ele também espera um valor duplo. Mas também podemos passá-lo em um inteiro porque isso vai ficar bem. E sim, então isso é realmente um valor duplo. Agora, como vimos na última palestra, podemos realmente custar isso para um inteiro. E então o que vamos ver é que vamos ter apenas 15, por exemplo. Então, se soubermos que a raiz quadrada que vamos tomar vai ficar bem. Vai ser um número inteiro, então tudo bem. Mas só por precaução, quem sabe? Se lidarmos com muitos números negativos, talvez com pessoas negativas também. Mas, neste caso, com números negativos, podemos usar absoluto, o valor absoluto. Então o valor absoluto de menos 5 mil é obviamente apenas 5 mil. Então vai levar o que quer que seja. Basicamente vamos remover o sinal negativo. Isso é tudo. E se quisermos arredondar para cima ou para baixo, temos algumas opções para isso. E essas são as opções que geralmente são usadas para isso. Esta é a função ceil. Então, se tivermos 22, por exemplo, para algo assim, 22.413, a função ceil irá então arredondá-lo para o inteiro mais próximo. Então isso vai ser um 23. E se tivermos a função de piso que é exatamente o oposto, então teremos o mesmo número. Então o que nós vamos fazer é realmente arredondar para baixo para o inteiro mais próximo independentemente de ou não a regra com,
bem, se é um cinco e mais do que nós vamos arredondar para cima. Não, o selo sempre arredondará para o inteiro mais próximo e o piso sempre vai correr até o centímetro mais próximo. Como você pode ver, este é 23 e este é 22. Observe mais uma vez, isso retorna um duplo neste caso e em ambos os casos. Então. Às vezes isso pode levar a resultados diferentes. Nós também pode sempre constituir inteiro porque isso é sempre, sempre vai retornar um valor inteiro no sentido de que ele sempre
vai ser algo com nada depois do ponto decimal. E então possivelmente, você sabe, nós
fizemos a raiz quadrada, mas quero dizer, vamos ser honestos. Talvez também queiramos ter algo com o poder de algo. Então nós vamos ter o Math.POW, que é claro a melhor e mais engraçada coisa de se ter. E o que vamos fazer é ter um 10 para o poder dos dois. Então, basicamente, isso vai ser dez para o poder de dois. E espero que todos saibamos o que é isto. Claro, é um 100. Mas apenas assim, em vez disso, o último método que vamos falar ao olhar para
a função matemática vai ser algo
que é realmente interessante e importante para a programação web em geral. E esses serão os métodos aleatórios. Então matemático ponto aleatório. E agora o que é método aleatório fazer? Basicamente gera um número entre 0 e 1,00. Então nós vamos apenas, vamos apenas fazer isso. Então vai ser 0,64 e loucura. E depois vamos, que tal fazermos isto de novo? E isso vai ser 0,907. E novamente vai ser diferente. Se então talvez queiramos ter um número diferente, o que podemos fazer é, então, por exemplo, se queremos números entre 0 e outra coisa será devido também. Me dê algo assim, digamos 100, certo? E isso vai ser um carro alegórico. Acredito que podemos fazer um número inteiro na verdade. E depois vamos ter 50. E então podemos converter tudo isso em um inteiro. E então nós temos uma maneira fácil de ir de 0 a, de 0 a 100 e isso, então se nós apenas custar a coisa toda em um inteiro, agora, a razão pela qual eu lançar a coisa inteira em um inteiro em vez de apenas fazer aleatório. Porque se eu, se eu não custar se um primo em inteiro, então será sempre basicamente um 0. Então isso não vai ser muito útil para mim. Mas neste caso, temos um inteiro e isso sempre será diferente. 58, bem, isso vai ter mais 41. 98, bem, isso é muito bom. Certo? E essas são as funções aleatórias de cada vez que é chamado, vamos ter um número diferente. E isso é muito útil para todos os tipos de coisas. Você sabe, se você talvez quiser, por exemplo, programar um jogo do que aleatório, as coisas são realmente importantes. Agora isso também vai ser, ele vai dizer isso, isso é pseudo-aleatoriamente. Não se preocupe com isso. Desde que você não faça nada louco com a coisa aleatória, como descriptografar, criptografar algo ou algo assim, então não importa. O pseudo-aleatório, se isso é algo que
lhe interessa ou que você quer ter um pouco mais de informação fora, então sinta-se livre para me perguntar e talvez eu forneça um pouco curto, você sabe, como vídeo do site, palestra local sobre isso. Mas, em geral, não importa para nossos propósitos. Isto é aleatório. Este é apenas um número aleatório que é gerado e sim.
14. (Java) SE FOR( SE: Muito bem, bem-vindos de volta à introdução do Java. Nesta palestra, vamos falar sobre se e mais declarações. E em palestras anteriores já vimos um booleanos e operadores de comparação e como eles estão relacionados uns com os outros. E agora vamos ver, ok, como podemos usá-los para basicamente mudar nosso programa ou mudar como um programa funciona. Então a primeira coisa que vamos fazer é usar uma declaração se. E a declaração if basicamente pergunta o que está entre parênteses, ok, isso é verdade ou isso é falso? Então, se isso for falso, então vamos executar algum código. E então vamos ver o que isso implica. Então, por exemplo, podemos perguntar, bem, se x é maior que y ou maior que y. e eu vou fazer, eu vou colocar em dois colchetes. E tudo naqueles colchetes. Tudo aqui, certo, aqui é executado. Executado, está bem? Sim, eles vão se for verdade, certo? Então, se isso é verdade, se essa expressão, o que quer que esteja entre parênteses, e pode ser uma expressão muito longa, mas pode ser x é maior do que y e, ou tudo isso. Desde que seja um booleano, basicamente lá dentro, então, e se isso for verdade, então isso é executado. Então nós podemos, por exemplo, neste caso apenas imprimir talvez algo como x é maior que y porque isso é definitivamente algo que acontece se, se este for o caso. Talvez o que queremos é realmente o caso oposto. Então talvez você queira dizer, bem, se isso é verdade, então nós vamos fazer isso. Mas se não for o caso, então se não for verdade, então talvez quando outra coisa e depois você vai outra coisa seja exatamente a palavra certa. Porque então podemos adicionar mais um aqui. Novamente com parênteses e, ou com um, com um colchetes em vez. E lá dentro, agora aqui, tudo certo? Então, se colocarmos isso aqui, aqui, tudo será executado. Se for falso, certo? Se isso, essa instrução basicamente é falsa, então a instrução else é executada. E então nós podemos escrever, por exemplo, nós vamos apenas copiar isso sobre x não é maior que y, certo? E como podemos ver claramente, x é um 100 e y é 1000. Então, obviamente, essa expressão é falsa. E o que esperaríamos aqui, então, é ver este impresso. Então queríamos ver X não é maior do que y. imprimi-lo. Vamos fazer isto e ver o que acontece. E isso é exatamente o que vamos ver. X não é maior que Y. ótimo. Isso é tudo também seria sempre grande. Ou uma boa idéia quando você escreve algum código e espera algo, basta executá-lo. E se você não conseguir o que esperava, quero dizer,
obviamente, às vezes há um dólar lá ou às vezes há apenas talvez você,
você sabe, digitou algo errado, sempre um caso ou poderia ser o caso. E isso é sempre ótimo. Basta executá-lo. Pensa, está bem, estou à espera disto. Se sair, é muito bom. Agora, isso é um pouco mais longo do que pode ser necessário. Então o que podemos fazer é também podemos escrever se e então temos um booleano aqui. Este é um bom curso, e nós vamos apenas escrever isso lá dentro. E então eu vou apenas colocar o cursor atrás do parêntese, e eu vou apenas pressionar Enter. E você vê a cenoura basicamente em densa imediatamente. E eu só vou escrever uma linha aqui, os inimigos
da linha de impressão podem dizer, sim, muito bom. Então isso é basicamente, então é claro bom. Se for, então eu vou imprimir, sim, é muito bom. E você pode ver que eu não estou recebendo nenhum erro. E eu não tenho os colchetes. Por que é isso? Bem, você pode ter uma linha após um if, então outra declaração que vai ser executada. E então não precisa ser, bem, não precisa absorver tanto,
tanta taxa de espaço. Você pode, claro, também colocar os colchetes em cima. Mas, claro, no início do curso, Eu já falei sobre por que palavra que eu preferia assim. É obviamente uma escolha completamente pessoal. E isso não muda nada sobre o código de forma alguma. Certo? Então este é, neste caso, nós temos isso em uma linha. Agora não podemos fazer outra linha que vai ser executada. Assim que tivermos duas linhas que queremos ter executado em uma instrução if, não funciona mais. Agora, eu quero dizer algo para a coisa booleana, certo? Então, neste caso, o booleano é verdade, certo? Então este é como se fosse bom. E isso é basicamente um, uma abreviação da pergunta é bom curso é igual a verdadeiro, certo? E, às vezes, algumas pessoas ,
e às vezes faz sentido, vou apenas copiá-las. No entanto, ainda é muito bom. Eu digo assim. Então, em primeiro lugar, ele vai para o mercado e ele vai ser como um,
isso é, claro que isso é verdade, o que quer que seja. E você também pode apenas escrever o booleano aqui. Às vezes, algumas pessoas preferem escrevê-lo assim para torná-lo um pouco mais explícito. Dizer: “Ei, isto é, se isso for verdade, então vamos em frente. Porque talvez, você sabe, pense nisso assim. Não, não, temos 32 linhas de código agora, 700 linhas de código. E você passa, e em algum momento você só vai ler algo assim. E se o, se as variáveis não são nomeadas corretamente, certo? Então vamos nos deparar com um grande problema porque geralmente, você sabe, as variáveis booleanas, se elas começam com é ou tem ou algo assim, funciona assim, então você pode mais facilmente identificá-las, certo? Você pode facilmente ver como isso é um booleano. E é claro que você sempre pode passar o mouse sobre ele, ver o que ele faz, o que é. Algumas pessoas usam isso. Algumas pessoas não. Preferência também, certo? Isto é apenas uma preferência. Eu só queria mostrar que ambas as coisas são totalmente válidas. Ambos funcionam. E o mais importante é que no final, quando você escreve o código, você pode lê-lo, certo? Esta é a coisa mais importante. Então, seja qual for a versão você preferir pessoalmente ou que seja mais clara para você, use essa. E então como a última coisa. Então temos visto se e, em seguida, uma outra declaração. Mas podemos fazer isso ainda mais. Digamos, por exemplo, que temos um sob como este. Então x é menor que 50 e vamos
imprimir x é menor que 50 apenas por causa do argumento. E então nós vamos ser como, bem, vamos fazer outra declaração. Mas, na verdade, quero perguntar algo mais específico. Podemos realmente depois do outro, podemos apenas colocar outro se, certo, então podemos dizer OK, se é maior ou igual a 50, e se x é maior ou menor que um 100, então o que vamos escrever fora é basicamente neste caso também o que temos escrito lá. Mas podemos imaginar algo, algo em execução. Bem, nós queremos ver se X é exatamente entre 5000 e então nós talvez seja para, então, por exemplo, esta
boa idéia seria, você sabe, talvez uma ótima taxa, nota percentual. Então, se você tem 50, você tem menos de 50. Bem, infelizmente, você não passou. Você não passou na nota. Aqui. Você passa a nota e, em seguida, talvez em 100 anos eu hey, você fez isso muito bem, certo? Então isso é algo que funciona. E sim, e então, claro, você poderia deixar assim ou você pode até mesmo colocar outro lá. E, neste caso, seria apenas um 100. Bem, neste caso um 100 mais, maior ou igual, claro, como este, sim. E desta forma você pode basicamente passar por várias perguntas, múltiplas declarações if e x. Bem, se, se isso for verdade, então faça isso. Se não for verdade, então ele vai para o estado L, então o programa basicamente vai para a declaração else. E está tudo bem, senão. E então ele está tipo, oh, ok. Se e então isso vai ser executado. Se for esse o caso, se não for mais. E depois esta produção. E então esta é basicamente a pequena visão geral das afirmações if e if else. E sim.
15. (Java) O operador diário em Java: Tudo bem, vamos continuar com a introdução do Java. Nesta palestra, vamos falar sobre o operador ternário. E em primeiro lugar, a primeira coisa que vem à mente é, oh meu Deus, isso parece loucura. Complicado. Tem limites não é nada complicado. Então aqui, por exemplo, temos um inteiro que é uma ótima leitura. Então, por exemplo, sua nota em um teste ou um exame vai ser 69. E então podemos ter um booleano que passou, certo? E isso é apenas um booleano que significa, ok, você passou no teste ou não ou no exame ou talvez todo o curso. E claro que o que podemos fazer é dizer, hey, se a nota é maior ou igual a 15, então nós vamos apenas ser passado é igual a verdade. E então nós fazemos mais passado como igual a falso. Isso funciona perfeitamente bem. No entanto, neste caso, nós realmente usamos quatro linhas de código. E é claro que é legível. E isso é ótimo. No entanto, haveria outra maneira de fazê-lo. E da outra maneira de fazer isso, eu vou rapidamente apenas me livrar disso. E a outra maneira de fazer isso é o operador ternário. E então podemos basicamente escrever isso em uma linha. Então operador ternário é, naturalmente, derivado de três. Então, há três partes nisso. A primeira parte são os estados booleanos, certo? Então o que queremos saber é, bem, se x é maior ou igual a 50, então é claro que passamos. Então o que vamos escrever como ponto de interrogação, então o que quisermos ter retornado, se for verdade neste caso, então vamos escrever um, dois pontos, e então vamos escrever falso. Então, basicamente, aconteça o que acontecer se isso não vier até nós, é
claro que não é x, desculpe, isso é ótimo. E isso basicamente já é tudo nessa linha. A mesma coisa acontece com a declaração if else. Agora, às vezes, isso não é propício para um bom código porque você não pode lê-lo tão claramente. No entanto, às vezes com coisas simples como esta, deve tornar-se bastante óbvio o que está acontecendo aqui. E, mas no entanto esses podem ser, você sabe, você também pode colocar outro operador ternário dentro do operador ternário bico e assim por diante. E em algum momento fica louco,
loucamente complexo de ler. Qualquer de qualquer maneira. Então esta é uma das coisas que é possível e não só tem que ser booleano aqui, certo? Você pode fazer o que quiser. Então você pode ter, por exemplo, um número inteiro. E poderíamos dizer algo como, bem, você sabe, se a nota, por exemplo, é exatamente 100, então talvez algo que queremos ter no número é como nove. E então se não for um 100, então se for algo menos um 100, então talvez queiramos um 100 anos, o que quer que
seja, seja lá o que for, seja qual for a lógica que esteja por trás, você sabe, como eu disse, é claro que você também pode ter uma declaração if. Se o grau é igual a um 100, então o número é igual a nove. Else número é igual a um 100 neste caso. E assim você pode, isso é basicamente apenas uma, outra maneira de usar instruções if. Mas em uma linha, muito importante que você tenha visto isso porque isso é definitivamente usado em muitos programas e provavelmente também
é útil às vezes onde a instrução if apenas ocupará muito espaço, muito espaço e não é muito complexo. Então esse é o operador ternário para você. Sim.
16. (Java) A declaração do interruptor: Muito bem, introdução Java. Nós vimos duas maneiras em que podemos basicamente dizer, hey, se este é o caso, então este é o caso, então isso ou com if e else declarações ou com o operador ternário há um terceiro, bem, escolha que temos, e essa é a instrução switch. E para isso vamos apenas digitar no switch. E então, entre parênteses, vamos digitar a, basicamente a variável que queremos avaliar. Digamos que só vai digitar x. e então precisamos que isso funcione. Parênteses ou não parênteses, novamente, colchetes e colchetes. Agora vamos escrever basicamente casos, certo? Então temos que dizer explicitamente cada caso que queremos. Então, por exemplo, se x é dez, então o que acontece, por exemplo, é que queremos sistema fora, a linha de
impressão x está certamente certa. Claro. Agora o que queremos terminar aqui é quebrar é apenas uma palavra-chave que precisaríamos usar no final da linha. E isso é basicamente a instrução switch. Agora, obviamente vamos ter mais casos do que este porque um caso não faz nenhum sentido. Vamos ter outra linha de impressão onde, por exemplo, Access 20. E então, mais uma vez, não se esqueça do freio,
caso contrário, não funcionará. Agora, o que acontece, por exemplo, se dissermos, bem, OK. Agora x é dez. Esta é a taxa de execução. Ok? Temos excesso de 20. Isso é executado também grande. Mas o que acontece se x não for dez ou 20? Podemos ter um, outra palavra-chave que é padrão. E isto está escrito assim. E então temos basicamente assim sistema que fora e, em seguida, tudo é executado se não é exatamente qualquer um dos outros casos mencionados. E então você só diz, eu não sei, certo. Porque você não sabe o que é. Bem, você poderia saber, mas você escolheu não deixar dizer em uma declaração de mudança. Portanto, a instrução switch é útil definitivamente para casos específicos. Não é muito útil se você quiser ter, digamos, uma gama de números, como já vimos antes com, por exemplo, a nota que você tem. E então se você usasse cada caso, você sabe, você começa como uma nota escalada, digamos de 0 a um, que é de 0 a 100, digamos. E então você está tipo, ok, é 0 caso um, caso dois, como, assim como é Madden , não é uma boa idéia. Como a instrução switch, como eu disse, pode ser realmente útil em certas circunstâncias, como é com muitas dessas coisas em Java, basicamente. Sim, essa é a declaração do switch basicamente em poucas palavras. E sim.
17. (Java) enquanto Loop: Tudo bem, vamos continuar. Então nesta palestra vamos falar sobre o loop while. E se quisermos ter um pedaço de código que queremos executar,
você sabe, x quantidade de vezes, por exemplo, ou se um certo se uma determinada instrução ou se um determinado critério for atendido, condição é atendida, então queremos parar de usar ou parar de executar este código. Como podemos fazer isso? Bem, uma das maneiras que podemos fazer isso é com um loop de tempo. Então, vamos apenas digitar a palavra-chave enquanto. E então nós vamos adicionar entre parênteses uma condição. Então, uma condição booleana, basicamente, neste caso, o que vamos dizer é, bem se ou enquanto x é menor que dez. E então vamos adicionar os colchetes mais uma vez. E nesses colchetes, tudo aqui será executado enquanto x é menor que dez. Então, é muito útil que isso às vezes realmente seja como uma frase ou instrução, certo? Então, enquanto x é menor que dez, o que quer que esteja lá, execute, execute, execute. Ele vai fazer isso várias vezes até que essa condição não seja mais cumprida. Agora, se fôssemos executar isso, digamos, digamos que eu vou fazer essa linha de impressão de ponto, e então nós vamos dizer X. Então nós vamos apenas colocar qualquer excesso, certo? Então agora o que é, o que ia acontecer é que vai colocar para fora 555 até o fim dos tempos, certo? Porque em nenhum lugar neste programa o x nunca muda. Isso seria uma péssima ideia. Então teríamos um loop infinito. E um loop infinito, é sempre uma hora ruim. Então não vamos fazer isso. Não vamos usar isso porque isso pode realmente quebrar o programa. Mas o que vamos fazer é apenas incrementar x aqui. E fazendo isso, o que vai acontecer é que vamos realmente produzir 56789. E então o loop while terminará. Vamos olhar para isto e vamos executar isto e vamos ver 56789. Nós produzimos esses números que estavam em x. Então, basicamente, o que acontece aqui é onde nós escrevemos cinco em x. Então nós vamos dizer, ok, enquanto acessar mais de dez, fazer tudo isso, executar isso. Então o que acontece então é x é igual a cinco. É definitivamente menor que dez. Portanto, vamos imprimi-lo e, em seguida, vamos incrementá-lo. Agora são seis e verifica novamente, hey, é mais do que dez. Sim. Então nós vamos imprimir seis e então nós vamos incrementá-lo agora é sete e então é oito e então é nove. E então quando é dez, bem aqui, vai verificar, hey, se ele, é menor que dez vai saber que não é menor que dez, é dez. Então, isso é, portanto, não é menor do que dez. Então nós vamos apenas pular fora do circuito. É isso. Sim, então há outro tipo de loop,
basicamente, quase o mesmo que o loop y e esse é o loop faz-while. E lá vamos escrever du. E então vamos colocar o que quisermos lá dentro. E então vamos escrever a palavra while da
palavra-chave while após os colchetes. E, em seguida, uma condição lá dentro. Muito importante, este tem que ser realmente terminado com uma linha de ponto-e-vírgula. Então o que acontece aqui é qualquer que seja a condição, o fazer, enquanto não é um loop que faz. O que quer que esteja entre os colchetes da palavra-chave Duke que vai ser executado não importa o que, uma vez, certo? Então, mesmo que de repente digamos que x é igual a 1000, obviamente não menor que 50, certo? Isto ainda vai ser executado uma vez e depois ele vai ficar bem. É menor que 15 anos e ele vai ficar tipo “Não”. Está bem. E eu não vou repetir isso. Então, se fizermos isso, como podemos ver, nós realmente fazemos saída 1000, mesmo que x não seja menor que 50. Porque o que o loop de fazer while faz é que ele vai executar a parte do loop uma vez e, em seguida, ele verifica a condição. E essa é basicamente a essência do loop faz-while. - Sim. E isso é uma breve visão geral basicamente dos loops while e do-while. - Sim.
18. (Java) para Loop: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos falar sobre o loop quatro. Este é outro tipo de loop ao lado do loop basicamente o while. E o loop for é incrivelmente útil para, por exemplo, iterar sobre algo um certo número de vezes. Como vamos ler isso como vamos escrever para. E então vamos escrever entre parênteses int. E então você pode usar qualquer nome. Mas geralmente você começa com IJ KL. Essa é a nomenclatura que usamos. Às vezes X e Y também podem ser usados, mas geralmente é assim que você escreve. Então int i é igual a 0. Então vamos fazer um ponto-e-vírgula. E então nós vamos basicamente perguntar, OK, o que quer que esteja escrito aqui, esta é uma declaração booleana mais uma vez, certo? E enquanto isso for verdade, o loop for passa. Então o loop for está indo para um loop. E então vamos fazer outra declaração aqui. E isso vai ser um incremento neste caso. E então também precisamos, é claro, dos colchetes. E esta é a taxa de quatro ciclos. Então primeiro inicializamos uma variável i para 0. Então nós vamos dizer, ok, desde que eu seja menor que cinco, nós vamos executar o que está sempre no loop for, e então nós vamos aumentar i em um. Agora, neste caso, nós também poderíamos aumentar y por I em dois, ou três, ou oito, ou 16 ou 55. Isso não importa. Mas geralmente queremos iterar de 0 a quatro neste caso. Então o que vamos ver é que vamos apenas produzir esta linha externa de impressão de ponto. E então quando estamos indo para a saída i, porque não? E eu vou ver, e então você pode ver que estamos indo para a saída 01234. Agora a primeira pergunta pode ser, bem, espere, por que não produzimos cinco? E por que nós produzimos 0? Bem, o for-loop começa quando inicializarmos isso. Certo, então esta é a inicialização. Então vai verificar se tenho menos de cinco anos? Sim. Certo, executivos, certo? Vamos produzir isto. Portanto, estou no momento da execução. E, em seguida, ele produz 0. Então nós vamos aumentar i e nós adicionamos. Perguntamos de novo: “Ainda é menos de cinco?” Claro. Tudo bem. E então vamos fazer isso até que isso não seja mais verdade. E quando isso não for mais verdade, o loop vai quebrar basicamente, e nós vamos estar fora do circuito. E, a propósito, também gerar isso como uma espécie de automaticamente, o que é ótimo. Você só vai digitar quatro i se você estiver usando o IntelliJ ID também. E então, como você pode ver, é como criar loop de iteração. Nós só vamos apertar Enter, bam, tudo já está lá. Nós só precisamos basicamente escolher um número ou uma variável aqui que ele verifica. Então, digamos, por exemplo, dez. E agora também podemos fazer o contrário. Então, neste caso, só vamos fazer dez. E então vamos dizer que se for maior que 0, vamos continuar e vamos realmente diminuir alguma coisa, então vamos diminuí-la. E desta forma nós vamos realmente contagem regressiva de dez para um neste caso. Então, como você pode ver, um for-loop, muito interessante de usar. E eu argumentaria um pouco mais de controle do que o loop while. Pelo menos é assim que imagino às vezes, certo? Então o loop for é basicamente mais controlável enquanto loop. É pelo menos a minha conceituação. Sabe, poderia ser diferente para você, mas sim, então esta foi apenas uma breve visão geral do for-loop e sim.
19. (Java) Break e continuar: Tudo bem, isso é apenas um adendo rápido basicamente para duas palavras-chave, quebrar e continuar. Eles são importantes para loops. E neste caso, vamos olhar para o nosso exemplo para a palestra for loops e vamos olhar para o que o intervalo e continuar realmente fazer. Então
digamos, por exemplo, que queremos não contar cinco, mas digamos dez, por exemplo, neste caso, nove é claro, porque dez não está incluído. Mas sim, então vamos contar de 0 a nove. E depois dizemos, vamos colocar uma declaração de “se” aqui. E estamos dizendo, ok, se eu for igual a dois para continuar, certo? E assim com isso agora faz, é, se eu tiver quatro, nós continuamos. Agora. O que me continua? Continuar significa que o que acontecer depois não é executado, mas ele vai saltar imediatamente para o, para esta parte do loop for. Vai aumentar, diminuir ou o que quer que faça com o olho. E depois vai continuar. Então, aqui esperamos ver é esperado saída 0 para três,
em seguida, pular o quatro e saída cinco 59. Só vou apagar isto, não para desordenar a nossa saída. Nenhum, um vai comandar isso. E como podemos ver, absolutamente o que acontece de 0 a três, então ele vai pular o quatro e, em seguida, cinco para nove. Agora, como eu disse, há outro e outro tipo de palavra-chave, essa é a palavra-chave break. E nós já vimos isso na instrução switch, mas eu realmente não expliquei o que a palavra-chave break significa. Eu só disse, OK, isso é basicamente, nós precisamos disso. E o que a palavra-chave break faz é em qualquer âmbito que estamos. Então, neste caso, estamos no escopo do loop for, certo? Então tudo entre aqui é basicamente o escopo. E seja qual for o alcance
que formos, vamos sair dessa. Então não importa o que eu seja, o que quer que seja. Assim que o intervalo é chamado, onde fora do loop for. Então, neste caso, o que vamos ver é que vamos
ver 0123 e isso é o, é isso. Nada mais. Então vamos ligar para isso. E como você pode ver, nós só contamos até três porque assim que eu estava para nós vamos, nós estamos quebrando. E se chamarmos a palavra-chave “break “, então saímos. Nós saímos do loop for, por assim dizer. Sim, isso é apenas um pequeno adendo, basicamente, para as duas palavras-chave. E sim.
20. Matriz em Java: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra, vamos falar sobre áreas. Agora as áreas são, eu não diria que são complicadas, mas vai ser difícil de entender no início. Portanto, é possível que você tenha que assistir a esta palestra duas vezes, ou se houver alguma dúvida, sinta-se livre para fazê-las. Isto é uma coisa crucial a aprender. E eu queria contar rapidamente uma história curta quando aprendi áreas. E a coisa foi que eu disse, bem, eu nunca preciso de áreas. Eu não vou precisar deles porque antes de tudo, eu não os entendi direito na primeira vez que tivemos isso na aula e eu pensei, eu nunca vou precisar de arrays, o que eu vou fazer do meu jeito, certo? Claro que essa é a abordagem completamente errada. Mesmo que não seja útil nisso, você sabe, talvez não seja útil, mas você ainda deve querer entendê-lo. Então essa é apenas uma história rápida da minha vida. E tão importante para entender áreas, pelo menos. E isto é o que vamos tentar com esta palestra. Então, primeiro de tudo, o que vemos aqui é que temos três cordas. Então, estes são basicamente e-mails imaginários de estudantes, digamos, por exemplo. E neste caso só temos três. Claro que poderíamos ter mais. E agora a primeira coisa que vem à mente também, quero dizer, nós queremos escrever os e-mails e talvez amanhã como enviar e-mails. De alguma forma. Não sei como, mas talvez funcione. Não, não funciona. Podemos iterar sobre isso. Não podemos dizer que o estudante sublinhou, isso não funciona. Então isso é meio desajeitado e não podemos realmente usar isso. Então nós teríamos que realmente fazer enviar cada e-mail como em uma linha. E então, se tivermos uma média de 1000 alunos ou algo assim, então enviar este e-mail será, quer
dizer, isso vai ser ridículo, certo? Isso não vai funcionar. O que vai funcionar no entanto, é que se usarmos um array, um array é, você pode basicamente pensar nisso como uma lista, certo? Ou sim, basicamente como uma lista. E vamos apenas inicializar um. Então vamos escrever uma string. Então este é um array de string, então uma lista que contém strings. E eu vou chamar esse estudante de homens. E depois vamos escrever isto. Então vamos ter colchetes. E nesses colchetes nós vamos basicamente dizer o que cada um dos elementos da lista é. Então, o primeiro neste exemplo, seria Jonah gmail.com. E então teremos julho no gmail.com. E no final, o último é Ryan no gmail.com. E depois vamos acabar com um ponto-e-vírgula. E agora este aqui, nós temos agora inicializar basicamente um,
uma matriz de cadeia, certo? E este array de string, o primeiro elemento é John no gmail.com, depois julho no gmail.com, e depois Reiner geométrico. Então, se eu vou mostrar isso, podemos apenas olhar para ele, certo? Então vamos dizer linha de impressão. E, em seguida, a forma como produzimos coisas como nós vamos ter e-mails de estudantes. E então precisamos dos suportes aqui novamente. E nesses colchetes vamos basicamente escrever o índice do qual queremos colocar para fora. Então, por exemplo, vamos escrever um. E agora o que você provavelmente espera é que John no gmail.com tenha saída e vamos apenas ver se isso é verdade. Não é verdade. Agora, por que não é esse o caso? Porque em áreas que começamos a terminar com mais frequência na programação de computação em ciência da computação, vamos começar em 0. Então nós realmente queremos 0 aqui. E então, se executarmos isso, então vamos ver que ele emite John em gmail.com. Então esta é realmente a, basicamente é a primeira entrada, mas neste caso será a 0ª entrada, ou seu índice é 0, mas é a primeira entrada. Mas o índice é 0. Aqui. Se estás a ouvir isto pela primeira vez
, pode ser um pouco confuso. Basta lembrar, geralmente quando temos listas e strings e essas coisas, vamos dizer que as matrizes então B começam a contar em 0. Isso também é muitas vezes por que o for-loops ou inicializado com um 0, certo? O inteiro e o loop for é inicializado com um 0 para que ele ajude com essa contagem. Então, basicamente, podemos fazer outro. Digamos, por exemplo, que temos uma matriz inteira que vai ser alguns números. E em vez de lhe dizer explicitamente, ok, isto é, isto é o que está escrito na matriz. Nós só vamos escrever novo. E, em seguida, ele já diz matriz inteira com um colchete. E então ele vai dizer, bem, ele vai colocar a cenoura como em seu cursor lá dentro, certo? Vai ficar tudo bem. O que é suposto eu fazer aqui? Você tem que realmente escrever no que o tamanho da área vai ser. Então, digamos, por exemplo, cinco. E vou acabar com isto com um ponto-e-vírgula. E agora esta matriz só pode ter cinco entradas. Agora, até esse ponto, esta área só pode ter três entradas, certo? Não podemos acrescentar à matriz. Há soluções alternativas para isso mais tarde, mas neste caso, não podemos fazer isso. Então, se dissermos colegas três, certo? Na verdade, ele já vai ver. Ei, a matriz está fora dos limites. Então o compilador aqui e o IDE é inteligente o suficiente para ser como, sim, oh não, não, isso não funciona. Ainda podemos fazê-lo. E então vamos pegar uma flecha, como você pode ver, exceção. E isso significa que cada índice fora dos limites, porque o índice três não existe, certo? 012 e três não existe. E nós também não podemos realmente acrescentar o terceiro ou o quarto. Neste caso, dizemos, bem, este, este conjunto de números de soma, pode ter cinco entradas. E eu vou simplesmente copiar algo rapidamente. Então vamos preencher este número aqui. E o que podemos fazer. Então esta é basicamente a maneira que você diria, ok, eu não era a primeira entrada ou o 0º lugar, certo? O 0º índice para ter algum número. Isto é basicamente como você atribui isso, certo? Então você toma quase exatamente o mesmo que você obteria o que está escrito na matriz, certo? Escrever o nome da variável de matriz do que os colchetes. E, em seguida, dentro dos colchetes, você dá o índice que quiser. E este caso você pode apenas atribuí-lo um novo. Isso também funciona, claro, se já é algo escrito lá que não é problema. E, basicamente, tipo, você sabe, golfe ir círculo completo. Tivemos este problema um, Queríamos enviar os e-mails ou pelo menos, você sabe, colocar a sua saída deles. E nós vamos pegar o mesmo,
o mesmo for-loop daqui de cima. E nós vamos ser como OK, fácil o suficiente. Vamos apenas para a linha System.out.print. E então diremos estudantes do sexo masculino. E vamos usar o “i” aqui. E o eu, é claro, assume qualquer que seja o número aqui. Então ele vai apenas loop através de estudante macho 0123. Lembre-se não é tocado basicamente. Assim que eu X3, este trimestre não é mais executado. E se formos executados agora, veremos que temos John July e Ryan e John temos duas vezes porque lembre-se, vamos colocar isso aqui. Então não se preocupe com isso. E sim, então esta é uma das coisas que podemos fazer. E uma pequena coisa que eu também mencionei é que talvez, você sabe, Ryan realmente parou de ir para a aula e agora nós só temos John em julho. E se então usarmos isso, o que vamos ter é outra flecha, porque esta é agora o loop for não é mais uma espécie de válido para os estudantes do sexo masculino. Mas nós podemos realmente contornar isso se fizermos sexo masculino estudante, comprimento do
ponto é mesmo como o IDE é inteligente o suficiente para ser como, oh, eu acho que isso é o que você quer. Sim. Estudante machos comprimento ponto é basicamente o comprimento da matriz. Então ele representa o comprimento da matriz. Neste caso, serão dois, certo? Então, 12. Este é o comprimento da quantidade de coisas na matriz. O índice é diferente do comprimento, certo? Então você sempre precisa pensar sobre basicamente o índice. O índice máximo é sempre comprimento menos um, certo? Então, isso faz sentido. Espero, porque se começarmos a contar em 0 em vez de um, basicamente
mudamos um para o declive negativo, certo? Então, enquanto este é o primeiro elemento tem índice 0, e este é o segundo elemento e é índice um. Como eu disse. Isto pode ser um pouco confuso no início. Eu definitivamente aconselho,
você sabe, olhar para isso em, você sabe, calma e, você sabe, talvez realmente assistir isso uma ou duas ou mesmo três vezes. Porque às vezes não é o mais fácil. Responderei todas as perguntas que tiver. Sinta-se livre para perguntar a eles. E sim, espero que, ao todo, isso tenha sido esclarecedor para a matriz. Como funciona, um pouco do que você pode fazer com ele, e como isso torna algumas coisas incrivelmente fáceis. Sim.
21. Arrays multidimensionais em Java: Tudo bem, vamos continuar. Então, nesta palestra, vamos falar sobre a matriz multidimensional ou matrizes multidimensionais. Bem, a primeira coisa que provavelmente vem à sua mente é, oh meu Deus, eu tinha tantos problemas até mesmo entender áreas. Talvez. Do que você está falando? Áreas multidimensionais, isso é ridículo. Ok, vamos pensar rapidamente sobre isso um por um, certo? Então podemos ter um array. E poderíamos imaginar essa matriz. Isto são apenas números. E nós poderíamos ter esse RAB, por exemplo, cada número na linha numérica, certo? Então isso seria, em princípio, uma taxa de matriz unidimensional. Assim como uma linha é unidimensional, certo? Você pode ter um número e ele pode basicamente expressar onde quer que você esteja nessa linha. Penso que espero que isso seja compreensível. E acho que a melhor maneira de conceituar isso é com a linha numérica. E agora a adição de outra dimensão é basicamente quando você tem gráficos na escola, quando você faz as funções e o f de x e todo esse jazz, você sabe, geralmente não
é muito, você sabe, não
é um tópico que é fácil digeridos às vezes, mas vocês provavelmente já viram. Agora. Uma maneira ainda mais fácil de pensar como duas dimensões, por exemplo, é basicamente com uma tabela. Uma mesa não é nada além de duas dimensões, certo? Se você tiver várias colunas e várias linhas, então você terá várias dimensões. Então nós podemos, por exemplo, fazer uma matriz bidimensional em que nós,
você sabe, fazemos a área normal, nós
escrevemos em outro colchete e, em seguida, outro colchete. E então nós vamos apenas dar um nome a isso alguns números, por exemplo. E a maneira como inicializamos este é, bem, você sabe, nós temos um array, basicamente, agora este é um array vazio. E dentro desta matriz, por assim dizer, temos outra matriz, mas não apenas uma, mas várias. Então, digamos, por exemplo, que temos este aqui é apenas alguns números. Digamos 25. E então isso pode ser, por exemplo, a primeira linha. E então poderíamos ter outra linha bem aqui. Poderíamos ter 5.505 mil, por exemplo, certo? Então isso pode parecer sem esperança. Um pouco, um pouco estranho, isso parece estranho. Não se preocupe com isso. Vamos ver e ver o que isso significa. Então vamos imprimir o primeiro. Então vamos dizer 0. Agora, o que o 0 faz? Vamos imprimir esta e ver o que acontece. Se imprimirmos este. Vamos ver um monte de lixo. Por que é isso? Bem, isso é porque o, isso realmente imprime a matriz. E a matriz não pode ser facilmente. Exibido em uma impressão. Isso é bom. Isso não é um problema. Agora, o que é que este 0 realmente faz? Então, o que estamos selecionando básico? Estamos selecionando o primeiro array aqui, certo? Então, se agora escrevermos os três, o que esperaríamos para lançar os 25, certo? Lembre-se que começamos às 00123. Então, se chamarmos isso, esperaríamos o 25. Isto é o que esperamos. E vamos ver se nossas expectativas se cumpriram. Claro que são 25. Assim, com o primeiro
colchete, você basicamente selecionando qual array você deseja selecionar. E com o segundo
colchete, você escolhe qual elemento neste colchete, onde nesta matriz você deseja selecionar, certo? Então, se nós, então, por exemplo, eles vão apenas copiar este. E nós vamos dizer, bem 12. Então o que acontece é que vamos conseguir 5 mil, certo? Porque agora nós selecionamos o, este, este array aqui, e o, o elemento com o segundo índice, então 012. Então isso seria 5 mil. Como podemos ver, são 5 mil. Agora, o que é realmente ótimo? Bom, e o que é realmente ótimo é. Neste caso, esta é uma matriz bidimensional. Normalmente não gosta, você pode, é
claro, ter três dimensões e ainda mais. Em algum momento, fica um pouco, fica
difícil de lidar, certo? Então, três dimensões que, é claro, ainda podemos visualizar. E assim que forem quatro, vamos ter alguns problemas. E geralmente eu acho que na minha experiência, você sabe, matrizes
unidimensionais e bidimensionais são basicamente tudo o que realmente precisamos na maioria dos casos. Então o que nós vamos fazer é nós vamos ter um, um loop for que nós vamos chamar xaqui. E então nós vamos dizer alguns números comprimento ponto. E então dentro disso, vamos ter outro para loop para i. e este vai ser y. e este aqui. Agora vai haver um realmente interessante, nós vamos realmente ter isso. Então nós vamos ter algum número x ponto comprimento, hmm. Interessante. Como é que isso funciona? Bem, neste, vamos realmente iterar sobre todo o array. Então nós vamos dizer, ok, quantas áreas o arejado tem dentro dela? Dois neste caso. Então vamos ter este comprimento é dois. E esse comprimento depende da área que escolhemos, certo? Porque este tem comprimento de quatro e este tem um comprimento de três. Então, se nós apenas saída isso, eu tenho um preparado a saída aqui porque isso vai ser mais fácil de ler. Então basicamente tem coordenadas X e Y, por assim dizer. E então podemos produzir esses números. Então, se fizermos isso e vamos ver que não há 00 é dez. Isso combina perfeitamente. 01 é 15, depois 2025, ou 03. E depois vamos para a próxima área, por assim dizer, certo? O próximo erro aqui. E este é então o índice um. E dentro da segunda matriz, o primeiro elemento com índice 0 é 50. Então esta é basicamente uma maneira de usar áreas multidimensionais. E mais uma vez, o mesmo com as áreas normais. No início, pode ser um pouco difícil enrolar sua cabeça. Certo, como isso realmente funciona? As duas coisas que são mais importantes lá é apenas tentar por si mesmo, experimentar algumas coisas e sempre ir com, ok, o que eu estou esperando para produzir aqui? E o que estou esperando acontecer aqui? E se acontecer, isso é ótimo. Se não acontecer, pense,
ok, por que isso aconteceu agora? E esse é o número um. E número dois, se houver algum problema ou,
você sabe, você está progredindo com qualquer coisa ou algo assim, você sabe, você tem um problema. Sinta-se sempre à vontade para perguntar. Sempre tentei responder às perguntas que chegam. E sim, espero que as setas multidimensionais sejam pelo menos um pouco mais claras. E sim.
22. (Java) A Lista (Array): Tudo bem, vamos continuar com a introdução do Java. Nesta palestra, vamos falar sobre listas ou ArrayLists. Então lembre-se que a matriz onde tínhamos estudantes, machos, em particular era uma matriz de cordas. E nós tínhamos vários valores de um certo tipo, neste caso string, como eu disse. Havia algumas desvantagens que tínhamos. Tivemos que especificar quantos valores queremos ter salvos nessa matriz. E se não pudéssemos adicionar nenhum. Agora, é aqui que as listas entram e as listas são muito mais fáceis nesse sentido de usar. Há mais dinâmicos. E então o que vamos fazer é apenas ir para a lista de tipos. E então a primeira coisa que aparece, a primeira sugestão era simplesmente ir pressionar Enter e então algo aqui em cima aparece. Este é um pacote que é importante. Como se tivéssemos o nosso próprio pacote aqui, certo? Este é o meu pacote, joule comunista de algodão. Este é o meu próprio pacote. E este é um pacote que agora é importado para que possamos usar essa classe, para que possamos usar a lista, certo? E ambas as aulas e pacotes serão discutidos em uma palestra posterior. Muito importante é que isto está aqui. Se não for, a propósito, então você vai ver que a lista fica vermelha e você pode apenas passar
o mouse sobre ele e você pode apenas clicar aqui na classe de importação e, em seguida, certifique-se de selecionar o java.util um. E então ele fica, ele é importado e, em seguida, nenhum problema qualquer. Vamos fazer esses colchetes angulares e vamos fazer uma lista de cordas. Vamos chamar isso de machos. E agora queremos fazer uma nova lista. E agora aqui nós realmente temos ArrayLists sugeridos. É por isso que isso é chamado lista de matriz ou lista. E nós vamos escolher listas arejadas neste caso. Então algo mais é importado aqui, ou seja, o ArrayList. Agora a idéia é que você poderia, claro, também fazer um ArrayList que funciona totalmente bem e iria funcionar. No entanto, muitas coisas que são usadas em Java realmente retornam como estas, digamos listas básicas. Mas em segundo plano, um ArrayList é salvo. Agora isso tem algo a ver com interfaces e polimorfismo. Essas são palavras muito grandes que não queremos realmente pensar agora. Vamos apenas pensar sobre, ok, quando queremos uma lista, no lado esquerdo,
fazemos lista e, em seguida, sobre os direitos que fazemos uma nova ArrayList. Normalmente, isso é o que o IDE sugere de uma forma ou de outra. Então, não é tão difícil pensar nisso. Agora. Como você pode ver, nós realmente não especificamos quantos itens queremos nessa lista, quantos valores queremos ter em homens. Isso é porque não precisamos. Porque o que podemos fazer é fazer machos ponto adicionar, e então podemos simplesmente adicionar novos machos. Então, digamos que, por exemplo, nós vamos somar John no yahoo.com é talvez John mudou seu e-mail e seguida, apenas indo para adicionar mais alguns foi também adicionar julho e Ryan, e então talvez também Maria. Certo? Isto é o quão fácil é simplesmente adicionar mais alguns. Pontos de dados ou mais alguns valores para essa lista. Agora, vamos ver o que acontece quando nós, quando emitirmos essa lista, certo? Então vamos apenas produzir isso, machos de saída. Mas é assim mesmo. Vamos fazer isso e ver o que acontece. E o que realmente vamos conseguir é que podemos realmente ver cada um
dos valores dessa lista claramente escritos, o que é muito bom ver imediatamente, OK, o que realmente está nessa lista. E agora a primeira pergunta que vem à mente é, bem, como vamos acessar cada membro individual? E isso não vai funcionar com o,
com esses colchetes que usamos antes, mas na verdade com um método que é chamado de gatt. Muito fácil. Aqui nós apenas escrevemos o índice. Mais uma vez, o índice é o mesmo que com o armazenamento de matriz com 0 e, em seguida, conta até. Então, o primeiro elemento é John em yahoo.com, que tem um índice de 0. Agora, talvez você queira remover um item, que na verdade é antes de mover um item, tal mudarmos um item? Bem, se quisermos mudar o item, basta parar o correio, definir. E então temos que primeiro especificar o índice. Digamos que John altere seu endereço de e-mail de volta. Então nós realmente queremos ter Jon dot gmail.com novamente, certo? Então isso simplesmente muda o primeiro, o primeiro elemento para isso, o que nos é dada a string. Então, John em gmail.com, e se você quiser remover algo, então digamos que queremos que os e-mails ponto removam, subliste isso. Então podemos especificar, ei, em que sala de índice, algo talvez um, talvez julho tenha deixado de ser estudante ou algo assim. Outra coisa importante é como obter o tamanho da lista. Agora eu digo especificamente tamanho porque este é um, este também é o método, o que é chamado. É simplesmente o tamanho dos machos. E isso retorna o tamanho. É o mesmo com o comprimento da matriz. Agora, talvez sejamos como se fosse um ano novo. Todos os outros alunos se foram. Vamos limpar a lista inteira, certo? E então isso simplesmente vai limpar a lista inteira e, em seguida, ele está vazio. Agora vamos adicionar mais algumas coisas aqui. Vou copiar rapidamente uma coisa porque é um pouco mais fácil. Então vamos apenas adicionar E em yahoo.com, ATF em geral, aleatório ou digamos. E o que vamos fazer agora é que vamos
usar coleções dot sort, a fim de classificar isso. Agora isso vai ser realmente bom, porque podemos fazer é literalmente apenas escrever coleções.ordenar eleições por sinal, também importar algo aqui em cima. Isso é porque eu digitei algo errado, não se preocupe com o que eu quero. E este é um Java util coleções. E isso nos permite realmente classificar isso aqui. Então o que vamos fazer é mostrar isso uma vez antes e outra depois sobre isso. Vamos fazer assim. E depois vamos ver o que acontece, certo? Então primeiro é e a t f d, e agora é um D, E F T. Então nós realmente classificamos em ordem alfabética. Isso não é ótimo? Agora eu tenho mais uma coisa a dizer sobre listas e ArrayLists. Fizemos uma lista de cordas, certo? Vamos fazer algo assim. Só por um momento. Agora, isto funciona. Se eu quiser uma lista de inteiros, isso não vai funcionar porque ele
vai dizer tipo argumento não pode ser de tipo primitivo. Então você se lembra que temos inteiros, temos o duplo booleano. Todos esses são tipos primitivos. E agora todos nós, precisamos usar as classes de wrapper para isso, certo? E esses são simplesmente o nome do tipo soletrado e começou com um M. maiúsculo Então, neste caso, é apenas inteiro. E então isso funciona da mesma forma que com qualquer outro inteiro em tudo. É apenas algo em que temos que pensar. E se quisermos usar um duplo, podemos usar o dobro. Se quisermos usar um flutuador, podemos usar um flutuador é apenas escrito um pouco diferente. E isso está na nomenclatura, é uma classe wrapper. E o que mais havia lá? Flutuar duplo. Sim, booleano é o mesmo. Grande com letras maiúsculas no início. Havia apenas uma coisa que eu queria dizer apenas para que, você sabe, sim, e isso seria basicamente uma introdução a curto prazo para listas e ArrayLists. Então, sim.
23. HashMaps em Java: Tudo bem, vamos continuar com a introdução do Java. Nesta palestra, vamos falar sobre HashMaps. Agora, um HashMap é,
digamos, semelhante a uma lista. No entanto, é ainda melhor em alguns aspectos do que uma lista. Então nós vamos apenas escrever HashMap novamente. E então ele vai, como você pode ver, outro pacote importante, como eu disse, pacotes serão discutidos com mais detalhes mais tarde abaixo da linha. Agora, um HashMap também tem os colchetes angulares, mas agora vamos colocar em duas coisas. Neste caso, vamos colocar em duas cordas,
então string e, em seguida, string vírgula. Vamos chamar este de maiúsculas. E então vamos fazer New HashMap e depois terminar isso com um ponto-e-vírgula. Agora, o que está acontecendo aqui? Então, basicamente, a idéia de um HashMap é em comparação com uma matriz ou uma lista. Na lista de array para obter um item fora disso, precisávamos colocar no índice, certo? Neste caso, podemos realmente ter uma chave específica mapeada para um valor específico. É por isso, é por isso que se chama mapa. E eu vou apenas copiar rapidamente alguns exemplos do que vamos colocar lá. Então, o método a chamar para colocar outro par de valor de chave, é assim que é chamado. Então o México é a chave. E a Cidade do México neste caso, seria o valor. Para colocar isso, usamos o método colocado, certo? E se formos rápido, vou colocar isso apenas por uma questão de simplicidade. Então, há menos apenas colocar maiúsculas. E vamos ver o que acontece aqui. Então, como podem ver, o que acontece é que EUA é igual a Washington DC. Pegamos o México, a Cidade do México, França é igual a Paris, a Alemanha é igual a Berlim. Então podemos ver que o, há uma relação entre a chave eo valor. Eu só vou escrever rapidamente um comentário aqui para que seja basicamente um mapa chave para um valor específico, certo? E isso também é chamado de par chave-valor. Portanto, o par de valores de chave é, neste caso, nós especificamos que ele seja uma string para uma string. Então nós damos a ele uma corda. Então damos ao HashMap uma string, e obtemos uma string e retornamos. Agora isso pode ser um inteiro. Então temos basicamente implementado algo muito semelhante a um, a um, um ArrayList, mas não completamente. Então, por exemplo, as chaves inteiras que poderíamos ter, poderiam, por exemplo, ser ID de estudante, certo? E então o que nós estávamos por sua vez é, por exemplo, o nome do aluno. Este seria então o ID do aluno para o mapa do nome do aluno. E isso é algo que queremos pensar quando usamos o mapa, certo? Assim, ele sempre mapeia uma chave para um valor específico. Agora, digamos que nós, por exemplo, queremos imprimir a capital da Alemanha. Então o que fazemos é conseguir. Então usamos o método get e colocamos na chave, eles são dentro de casa ou chave escrita e a chave é a Alemanha. E se eu escrever isso, então vamos pegar Berlim. Porque essa é exatamente a resposta, certo? Então você também pode pensar sobre isso como a chave é uma
espécie de resposta e que seu valor é o contrário. Desculpe, a chave é a pergunta e o valor é a resposta a essa pergunta, certo? Então, neste caso, capitais, ok, qual é a capital da Alemanha? Essa é a taxa de Berlim. E isso também é algo em que podemos pensar. É possível, assim como em todas as listas, que podemos simplesmente remover um objeto. Neste caso, talvez queiramos remover a França. Mais uma vez, colocamos a chave, certo? E nós também podemos imprimir, se quisermos fazer isso o, o tamanho dele com maiúsculas tamanho ponto. Então podemos ver depois de removermos a França, temos três itens lá dentro. Agora, quando outra coisa especial é, há um tipo especial de loop para percorrer HashMaps. E eu vou mostrar isso rapidamente para que, como você pode ver, ele já meio que diz, para cada cara quer foreach loop. Agora, a forma como ele formata isso é absolutamente horrível. Então vamos fazer isso sozinhos. Então vamos fazer quatro. E o que queremos é uma corda S. Então fazemos dois pontos, e então dizemos maiúsculas ponto keyset. Agora. E vamos fazer colchetes também. Então nós temos isso. Agora aqui. É muito importante. S é agora uma taxa chave. Então S passa por cada chave que está no HashMap. Este tipo de quatro loop é chamado de loop foreach para cada um. E na próxima palestra vamos falar sobre isso em um pouco mais de detalhes. Mas eu só quero mostrar a vocês, eu só vou copiar isso de novo porque é apenas uma saída. Há uma vantagem que está faltando. E nós vamos apenas olhar para isso, o que isso faz. Então, se fizermos isso, podemos ver que em S, temos cada vez do loop, temos EUA, México, Alemanha, cada vez escrito lá, bem em S, porque são sempre as chaves. Eram as nossas chaves, certo? Lembre-se França foi excluído da lista ou do HashMap. E assim passamos pelos EUA, México, na Alemanha. E então nós realmente fazemos maiúsculas ponto get s. E no método get, como eu disse, você coloca na chave e então você obtém o valor. Então, certo, então isso é uma espécie de visão geral para o HashMap, certo? Onde podemos mapear uma chave específica para um valor específico. E é bastante útil para todos os tipos de coisas. E sim.
24. (Java) para cada Loop: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos falar sobre o para cada loop ou um para loop para coleções. E na última palestra já vimos o, este tipo de loop para o HashMap. Eu vou apenas olhar para como ele se parece, por exemplo, para o ArrayList, certo? Mas antes de tudo, vamos nos lembrar, certo, uma corda, uma matriz de cordas, certo? Uma matriz de string, por exemplo, apenas, nós temos nomes lá. Por exemplo, temos Johnny, Johnny,
Johnny, o ego, e temos Martin, e talvez até algo como George. E é isso. Certo? O George. Escrito assim. Obrigado. Então, teremos três nomes lá. E lembramos que a maneira que podemos iterar através desse é apenas pegar um for-loop normal, pegar nomes de ponto comprimento, e então, por exemplo, apenas imprimi-los. Então, impressão, sistema de impressão e então nós vamos ter nomes. E então eu gosto disso. Isso é algo que já vimos para as matrizes. Agora as grandes perguntas, ok, e nós também fazê-lo para uma ArrayList por exemplo, ou outras coleções. Agora, podemos, é claro, usar exatamente o mesmo método que usamos para as áreas para o ArrayList. Porque podemos ir com os índices,
índices e colocar que ao contrário de saída eles. Mas esse não é o melhor método ou o único método. Porque também podemos usar o loop for-cada. Agora será bem ali, em vez de inicializar um inteiro, vamos realmente inicializar qualquer tipo de dados que temos dentro da lista de arrays. Então, neste caso, uma string, que vai dar a isso um nome S S S. Nós também podemos nomear isso, por exemplo,
macho, porque sabemos que machos estão lá. Então, vamos apenas ligar para este correio, por exemplo. E então fazemos um cólon. Pode fazê-lo com ou sem um espaço entre, não importa. E então queremos dar o nome da variável da coleção. Agora, neste caso, podemos fazer machos e, em seguida, apenas ter um sistema fora, imprimir linha de correio, por exemplo. E então quando fizermos isso, vamos ver qual é a saída todos os machos de machos mais velhos no ArrayList. Curiosamente, isso também podemos fazer com os nomes, certo? Então também podemos dizer nome, e então podemos dizer nomes. E nós também podemos produzir, usar um loop foreach para a matriz, certo? Como você pode ver, ele faz exatamente o mesmo que faz aqui acima. Porque isso basicamente é também uma coleção, uma coleção, basicamente tipo de um termo amplo para listas e array. Todas essas estruturas de dados. Mas sim, então este é o, para cada loop, realmente poderoso. Se você estiver trabalhando com listas, mapas e até mesmo matrizes. Às vezes é mais fácil usar esse loop, o para cada loop, às vezes é mais fácil de usar. Um for-loop normal. Depende mesmo da situação. Mas sim, isso é basicamente o para cada loop.
25. Métodos de Java (Java): Tudo bem, então nesta palestra, vamos falar sobre métodos Java. Agora, já falamos sobre o método principal antes, certo? Onde colocamos todos os nossos códigos. Falamos sobre métodos de cordas. Nós, vimos alguns métodos para coleções, principalmente o hashmap e o ArrayList. E agora vamos falar sobre, em termos gerais, um método. E nós vamos tipo de mostrar isso implementando o fatorial. Então o fatorial de um número é apenas, por exemplo, se eu tiver um fatorial de um número, certo? Então, por exemplo, quatro ou algo assim. Nós escreveríamos isso como quatro pontos de exclamação. E isso é simplesmente quatro vezes três vezes duas vezes um. E nós realmente não vamos tomar quatro, nós vamos levar cinco porque esse é um exemplo ainda melhor. Eu tenho, e isso então vai ser um 120. Agora, por que essa coisa é importante, sua coisa matemática? E eu, nós podemos realmente ter um fatorial. Nós não temos um fatorial aqui implementado, então você nem poderia usar isso. Então, se nós realmente
quiséssemos isso, nós realmente precisaríamos implementar isso. Digamos que temos um número e temos um fatorial, certo? Vamos inicializar isso. E, neste caso, o nosso número será cinco. Agora, a primeira coisa que fazemos para a função fatorial, digamos é que vamos definir fatorial para o próprio número. E então vamos implementar um loping muito interessante procurando loop, certo? Vamos inicializar i com o número menos 1. E eu deveria ser maior ou igual a um, i menos. Então, na verdade, vou contar para trás. E então fatorial vai ser vezes igual a i. Agora, quando você olhar para isso pela primeira vez, você vai ser como, o que diabos está acontecendo aqui. Eu nem mesmo sabendo o que isso significa. Ok, vamos rapidamente passar por isso e pensar sobre isso. Então fatorial no início do loop, fatorial e número são exatamente os mesmos que ambos os cinco, ok? Então inicializamos i num menos um. Então eu vou ter quatro anos pela primeira vez. Então, na primeira vez que o loop passa, nós estamos realmente indo para vezes cinco, vezes quatro. Tudo bem, isso é muito bom. Em seguida, o loop termina e nós vamos diminuir i, que agora é um três. E o cheque é basicamente, hey, quando chegarmos a um, então vamos parar porque não queremos o 0 porque se multiplicarmos por 0, tudo vai ser 0. Isso não vai ser bom. Então nós basicamente apenas contagem regressiva, nós em fatorial com cada loop. Primeiro, temos dentro dele salvo cinco vezes quatro. Isso é cinco vezes quatro vezes 35 vezes quatro vezes três vezes dois. E então cinco vezes quatro vezes três vezes dois vezes um. E então está feito. E tiramos o fatorial. Então nós vamos apenas fazer o sistema fora, linha de impressão. E nós vamos, apenas vamos dizer algo como Turiel é. E vamos escrever um “plus”. Bem, vamos ver o que acontece. E, de fato, é um 120. Isso é ótimo. Agora. Isso é muito bom. Mas digamos que eu realmente quero ter isso nesta parte do programa. E então eu vou escrever mais umas 100 linhas de código. E então eu teria isso de novo e de novo e de novo, de novo e de novo. Então eu teria que copiar esta parte sempre. Eu sempre teria que mudar o número e talvez às vezes eu esqueça de mudar o número e depois calcular outra coisa. Isso, isso não é realmente uma coisa boa. E é por isso que podemos escrever nosso próprio método. Então, até agora, sempre estivemos dentro do método principal e agora vamos sair dele. Sei que é assustador, mas não se preocupe, vamos ficar bem. E vamos escrever em público. Público. Vamos jogar, certo? Estática e um inteiro, int e depois fatorial. E dentro dos parênteses vamos escrever em número. E agora a grande questão é, o que é isso? E o que recebemos um erro? Vou explicar isso em breve. Então, em primeiro lugar, como eu já disse no início do curso, o público e a estética não nos interessam agora. Isso é exatamente o que precisamos neste momento. Isso será explicado muito em breve. Agora o inteiro é simplesmente o que esse método retorna, certo? Já vimos alguns métodos com,
por exemplo, as strings, e eles sempre retornam uma nova string. E assim, neste caso, ele iria retornar um inteiro. Este é o nome do método. E então nós temos parâmetros dentro dos parênteses aqui, que são basicamente tem que ser dado para que este método funcione, certo? Ok? E então vamos simplesmente copiar isso porque isso não é tão interessante. Que é o bloqueio inicializado. Interessante. Certo, isso se estende. E oh, o que aconteceu lá? Ok? Então o inicializar um número, um fator inteiro, e isso vai ser introduzido menor número, exatamente como fizemos aqui. E então quero passar exatamente pelo mesmo loop. Nós simplesmente não temos os colchetes e então nós vamos retornar fato. E agora, como você pode ver, a flecha também se foi. Ocorreu um erro aqui. Ele se foi porque agora nós realmente retornamos um inteiro, certo? Então, a fim de retornar algo de uma função, precisamos usar esta palavra-chave return e, em seguida, qualquer variável que vamos retornar. E agora também podemos devolver cinco. Então também podemos devolver algo como isso está definido em pedra. Mas isso não faz sentido, porque o que quer que coloquemos aqui, serão sempre cinco. Realmente não faz sentido. Agora, se apenas copiarmos isso e usarmos o mesmo método, mas em vez de apenas pegar essa variável, nós realmente pegamos essa função, certo? Podemos clicar duas vezes e então ele vai dizer, hey, eu quero um número aqui. Eu vou dizer OK, cinco, certo? E então ele realmente tem um cinco dentro dele. E então nós vamos ver fatorial é um 120 também. E agora a grande coisa aqui é que podemos chamá-lo para seis, bem como para sete. E é uma linha, certo? Este é muitas vezes o caso. Quando eu diria que quando você usa um código, o mesmo código duas vezes, pode ser ok apenas para ser como OK, eu só preciso disso duas vezes. Vamos apenas copiar este código, colá-lo lá. Mas normalmente, assim que você copiar como grandes pedaços de código, às vezes você tem que me ver provavelmente agora, eu copiei a linha de impressão e colar Sadat. Isso não é tão ruim porque é uma linha. Como uma coisa específica que acontece, eu realmente não posso escrever uma função que faz isso menos do que isso. Mas se eu basicamente copiar como 1020, mesmo cinco linhas de código, isso é uma indicação muito boa de que você provavelmente deve basicamente pegar o, pegar o código que você queria copiar e colocar isso em uma função, e em seguida, use essa função. Isso é muito, muito bom como heurística para usar, a fim de saber, ok, quando devo usar uma função e nós não somos ou um método, desculpe, um método, método e função é basicamente um sinônimo, certo? É intercambiável. Quando nós, quando queremos usar um método que é alguns que é uma boa leitura jurista. Eu só queria apontar isso por um segundo para que você saiba, sim. E isso é basicamente um, um exemplo para um método Java que podemos escrever fora
do método principal e que podemos então chamar sempre que quisermos. - Sim.
26. Sobrecarga de métodos (Java): Tudo bem, então nesta palestra vamos falar sobre sobrecarga de métodos. Então, já vimos um único método basicamente. E neste exemplo, temos um método que implementa basicamente multiplicar. Obviamente, esse não é o melhor exemplo, mas eu vou mostrar a vocês em um exemplo muito parecido, em um exemplo muito fácil para que você possa simplesmente entender o conceito. Ok? Então temos esse método multiplicar que podemos chamar. Podemos dar-lhe dois inteiros como parâmetros, e então ele vai executar. Vamos ver. E, claro, ele retorna a resposta correta. Agora, eu posso ter o mesmo. E se eu tiver outro método, e eu também vou chamar isso de multiplicação. Certo? Agora. Eu também vou ter int a e em B. Isso não vai funcionar porque agora temos o mesmo método duas vezes. No entanto, eu posso sobrecarregar o método para que eu possa fazer isso se eu colocar em outro parâmetro, por exemplo, ou um tipo diferente de parâmetro, ou um número diferente de parâmetros, certo? Então eu posso colocá-lo em C aqui. E, de repente, esse erro ou esse erro se foi. E então eu posso fazer um pouco disso. É um vezes b vezes c. Então, se olharmos para isso, se escrevermos multiplicar, multiplicar, então nós realmente temos duas coisas que são sugeridas para nós taxa método assinaturas é o termo. E então podemos pegar este e então podemos dizer, bem, eu quero, por exemplo, cinco vezes, duas vezes quatro, certo? E ele apenas faz isso. Ele sabe qual usar porque sabe quantos parâmetros são tomados para que tipo de função, certo? E então podemos, por exemplo, também fazer algo semelhante com flutuador. Então também podemos dizer multiplicar, multiplicar isso. E há um carro alegórico, um, bóia B. E ele não vai ter um problema com esse também. E nós vamos apenas devolver este. E então se chamarmos este,
então, por exemplo, se dissermos um sistema, Upsilon, sistema de linha de impressão, dizemos multiplicar. Então, agora temos três coisas que podemos obter, podemos ser sugeridos, sim, e aqui nós sempre vemos o tipo de retorno, certo? Então, e aqueles dois, eram inteiros. Neste é um carro alegórico. Isso faz sentido. Vou clicar duas vezes nisso e depois daremos dois carros alegóricos. Então, por exemplo, 3.512.4, F, Isso é flutuador. E então, quando executamos isso, vemos que tudo funciona perfeitamente bem. Mesmo que todos os três métodos tenham exatamente o mesmo nome. Qual é a diferença? A diferença está no número de parâmetros ou nos tipos de parâmetros aqui, o tipo é diferente e aqui os números são diferentes. E isso é basicamente o que é chamado de sobrecarga de método, realmente importante e pode ser incrivelmente útil para tantas coisas. - Sim.
27. Cursos e objetos no Java: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra, vamos falar sobre aulas e objetos. E a primeira coisa que vamos fazer é entrar aqui na nossa pasta do projeto. Vamos entrar na nossa fonte e, em seguida, qualquer pacote que temos,
você sabe, qualquer que seja o nome que você deu. E então vamos fazer uma nova e nova classe Java. Então eu estou realmente indo para criar um novo arquivo. E este arquivo, neste caso, nós vamos apenas chamar frutas e certificar-se que essa classe é selecionada aqui. E eu vou apertar Enter. E lá vamos nós. E eu vou apenas ampliar um pouco. E agora temos uma nova classe, fruta de classe
pública em nosso pacote. E então o que fizemos agora? Então criamos uma nova classe. Quando voltarmos aqui, temos duas guias. Agora, a classe principal de Java e a classe de frutas. Falamos brevemente sobre o método principal, mas agora também podemos olhar para a classe principal. Neste caso, a cláusula principal é simplesmente para nós, uma
espécie de classe fictícia, apenas para que tenhamos a cláusula principal, um método principal em algum lugar, certo? Então isso é em algum lugar. Temos o método principal que é iniciado no início do programa. Mas a classe de frutas é um pouco diferente. Então, na cruz de frutas agora, nós realmente queremos um criar objetos fora disso. Agora, o que isso significa? Bem, vamos pensar, em primeiro lugar, em uma fruta. O que, o que faz uma metade de fruta? Bem, talvez uma fruta tenha um nome. Isso faz sentido, certo? Então uma maçã, banana, laranja, manga, esses são nomes para frutas, ok, isso, isso pode ser algo agora também pode ter um possivelmente teor de açúcar porque talvez você queira viver saudável e você quer saber, ok, Qual é o teor de açúcar de uma fruta em particular? E então também para talvez olhar para outra pessoa, a cor, certo? Então esses poderiam ser três atributos de uma fruta. E isso é exatamente o que essa classe atribui. Então essas são variáveis que estão associadas a uma classe particular, neste caso, frutas, certo? Porque aqueles exatamente mapeados para atributos que uma fruta pode ter. Agora, também pode haver muitos, muitos, muitos mais. Pode ser comprimento, largura, altura. Você sabe, pode haver todos os tipos de atributos que uma determinada classe ou objeto tem. Mas neste caso, vamos apenas ficar com estes três agora como um exemplo. Agora, o que podemos fazer com isso? Neste ponto, podemos realmente fazer algo e podemos realmente criar uma nova fruta. Então nós vamos apenas digitar frutas e então nós realmente vemos que imediatamente é sugerido. E vamos criar uma nova fruta, e vamos chamá-la de banana. Isto vai ser uma fruta nova. E eu vou explicar rapidamente o que está acontecendo aqui. Então esta é uma variável tão normal quanto você pode ver, certo? Porque, por exemplo, int x, exatamente o mesmo, apenas que o tipo de dados agora é fruto em vez de string inteira e os outros que vimos. E então nós atribuímos imediatamente, uma nova fruta. Agora, o que isso significa? Bem, a nova palavra-chave é usada para criar um novo objeto. E neste caso, criamos um novo objeto de fruta. Agora isso parece um pouco estranho. Talvez. Isto é o que é chamado de construção para cima. Agora, neste caso, não há nada entre parênteses, então nenhum parâmetro é dado ao construtor. Então o, e este é o construtor padrão com nada nele, certo? Nenhum argumento é passado ou nenhum parâmetro é passado. Mas o que já podemos fazer é quando vamos para uma banana pronta, você já está sugerindo isso. E, em seguida, podemos acessar os três atributos que temos especificado e declarado na classe Java dot fruta na classe fruit. Então, por exemplo, o nome, agora
podemos definir isso como, por exemplo, banana. E agora um nome de banana dot. É assim que você acessa. Este tem o nome banana. Mas isso parece um pouco desajeitado. Porque agora quando eu quero continuar e eu quero definir, você sabe, o teor de açúcar para Illinois 15 e assim por diante e assim por diante. Eu tenho que fazer todos os três atributos, e talvez eu tenha que fazer 20 atributos se houver ainda mais. E é por isso que podemos realmente ter não apenas um construtor padrão, mas também nosso próprio construtor ou construtor personalizado, por assim dizer. Então, para isso escrevemos público e, em seguida, o nome da nossa classe, neste caso frutas e apenas parênteses. E é basicamente como uma função sem um valor de retorno. Em vez disso, o valor de retorno é o nome da própria classe. Agora, entre parênteses, nós realmente vamos escrever todas as coisas, os problemas relacionados. Não se preocupe com isso. Vamos chegar a isso em um minuto. Isso acontece e vou explicar isso em breve. Agora nós estamos apenas indo para quase basicamente copiar os nomes porque o que nós podemos fazer é que nós
podemos escrever este nome ponto é igual a nome. E então podemos escrever este teor de açúcar de ponto é igual ao teor de
açúcar e esta cor de ponto é igual a cor. Isso é muitas vezes como eu faço isso porque a nomeação aqui é o mesmo que a nomeação aqui como assim os atributos da classe têm o mesmo nome que os parâmetros no construtor. E você pode então especificar, ok, eu realmente quero este atributo aqui. Quando você usa a palavra-chave, this, this. Porque essa palavra-chave basicamente diz, ei, eu quero esse objeto,
essa classe, o que quer que seja isso. Então isso ainda, certo? E então o nome Ele é ou o IDE é inteligente o suficiente. O compilador é inteligente o suficiente para saber, oh, sim, isso, é isso, isso é o que significa pelo nome. E isso é o que você quer dizer quando você diz isso.name, você faz referência à classe em si. Agora, por que começou um problema relacionado? Podemos realmente clicar nisso. E nós vamos ver que vai ser como,
hey, nós esperávamos três argumentos porque agora. O construtor que usamos aqui, o construtor padrão não é mais válido porque declaramos nosso próprio construtor, certo? Porque antes, quando tínhamos isso não tinha problemas relacionados. Quero dizer, sem problemas relacionados. Obrigado. Porque basicamente o que acontece implicitamente, algo assim criou, desculpe, este aqui. Então este, um construtor padrão sempre em segundo plano. No entanto, se nós, então, tipo de substituir isso fazendo nosso próprio construtor, então o outro é excluído, tipo de falar. Ou não é mais implícito, temos que realmente fazer isso explicitamente. Então, se criarmos este, isso é totalmente bom, então ele funciona. Então, isso é uma coisa muito importante para notar, que o construtor padrão é apenas válido apenas até que você crie seu próprio construtor personalizado. Ou você também pode apenas explicitamente declarado também. E depois funciona. Certo? Então vamos fazer outra fruta. Vamos fazer uma maçã, uma maçã, uma fruta nova. Vamos realmente tomar nosso outro construtor e imediatamente passar todos os atributos que queremos. Então o nome vai ser teor de açúcar de maçã, vai ser dez. E que a cor é vermelha. E como você pode ver muito bem, na verdade, o IDE inteligente na verdade já fornece os nomes dos parâmetros, o que é incrivelmente útil. E é por isso que eu sempre sugiro, você sabe, ficar com os bons nomes de variáveis. Provavelmente o mesmo que os atributos porque então, você sabe, porque se isso foi n SCC, quero dizer, você sabe, se você olhar para isso em três meses, você não tem idéia do que SC representa que foi sc. Então você tem que ir olhar. E lembre-se que estes são três parâmetros e três atributos na fruta. Quero dizer, poderíamos imaginar talvez 20 ou 30 atributos, e então eles são todos chamados NSC b0, b2. Isso é ridículo. Então, faça seus nomes de variáveis tão expressivos quanto possível. E, sim, e então vamos ver uma, talvez uma impressão. Seria uma boa ideia. Então, uma maçã. E então podemos, por exemplo, dizer um nome de maçã. Então vamos imprimir isso e ver o que acontece. O nome do ponto da maçã é um nome do ponto da maçã é Apple, certo? Que tal imprimir o teor de açúcar? Então nosso conteúdo é dez. Lindo. Então, em geral, uma classe, então neste caso, uma classe de frutas pode ser usada para, para condensar dados em um único objeto, certo? Se uma banana ou uma maçã. E ele pode então ser recuperado dessa maneira, ou também de outras maneiras, que vamos ver em palestras posteriores. Mas tudo em todas as classes e objetos são uma parte muito importante do Java porque java é uma linguagem de programação orientada a objetos, certo? Linguagem de programação orientada a objetos. E esta é uma parte essencial de toda a estrutura. E é também por isso que é muito importante entendê-lo. Vamos continuar a falar sobre coisas diferentes com as aulas. Então coisas que têm a ver com classes e objetos e o que fazer com eles. Mas é importante que você tenha a fundação pronta. Então, mais uma vez, se há algo que você não entendeu ou tem alguma dúvida, sinta-se à vontade para perguntar. E também se há algo que você acha que pode ser adicionado, você sabe, se você disser, bem, quero dizer, eu ouvi sobre esse assunto em algum lugar, mas você não fez isso. Sinta-se livre para me perguntar também. E se eu acho que talvez tenha perdido isso ou é um tópico importante também. Farei outra palestra sobre isso. Apenas, apenas certifique-se de perguntar e eu ligo de volta para você. Mas é importante que esta seja outra daquelas coisas como matrizes, que é realmente importante para ser entendida, certo? Objetos e classes. Eles são uma coisa fundamental para se entender, certo?
28. (Java) Público, protegido e privado: Tudo bem, bem-vindo de volta
à introdução do Java e nos encontraremos de volta
às nossas classes e objetos. No entanto, desta vez
falaremos sobre acesso. O que significa Access? Bem, vamos dar uma
olhada em nossa aula de frutas. Então, no início do, os atributos que já
temos, sempre escrevemos
públicos, públicos, públicos. E por que isso? Bem, antes de tudo, você não
precisa necessariamente escrever em público na frente dela porque, por
padrão, ela é sempre pública. No entanto, eu pessoalmente,
isso é mais
uma vez uma escolha pessoal,
uma preferência pessoal. Eu escrevo em público na frente. Só para que fique
absolutamente claro. Há duas outras
coisas que podemos escrever. Podemos primeiro, por exemplo ,
privado, e
também podemos escrever protegidos. Agora, o que isso significa? Bem, antes de tudo, público
significa que essa variável ou esse atributo é acessível basicamente
por qualquer classe,
em qualquer lugar. Então, assim que eu tiver esse arquivo Java de pontos de
frutas, certo, eu posso acessar essa
string, correlacionar a cor. Ok? Então, o que é mais protegido do que a média? Bem, protegido significa que
ele só pode ser acessado
no mesmo pacote e a partir de
subclasses e superclasses. Agora, o que são subclasses
e superclasses? Aprenderemos em
uma palestra posterior. Mas, na verdade, não
vai ser tarde, porque isso é algo que teremos
muito em breve, na verdade. Em seguida,
falaremos sobre a proteção com um
pouco mais de detalhes. E privado, acho que é quase o
mais importante. Isso significa que
essa variável
só pode ser acessada na própria classe de
frutas. Então, esse atributo
só pode ser acessado
na própria fruta. Então, só neste, que está quase marcado. Em nenhum outro lugar
isso pode ser acessado. Olá. O primeiro pensamento que
vem à mente também é o problema relacionado, porque
agora aqui temos um ponto, um nome de ponto banana. E é tipo, OK, não
podemos fazer isso agora porque o nome é privado. Então ele diz: “Ei, porque o acesso
privado não funciona”. Isso não funciona. Não
consigo acessá-lo. Teor de açúcar. Eu posso acessar
mesmo que esteja protegido. Mas ainda estamos
no mesmo pacote. E como resolveríamos isso? Corrigimos isso com
getters e setters. Examinaremos os coletores e os setters na próxima palestra.
29. (Java) Getters e Setters (Java): Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos falar sobre getters e setters, como já mencionado na última palestra. Como vamos resolver esse problema que não podemos acessar esse nome de atributo privado? Bem, não há problema. Vamos ver como vamos fazer isso. Então, primeiro de tudo, vamos fazer é para demonstração, nós vamos realmente tornar todos os três atributos privados. E então no primeiro, para o primeiro atributo, o nome, eu vou mostrar como os getters e setters são feitos manualmente. E então, para os outros dois, eu realmente vou mostrar um truque muito legal que vai nos permitir gerá-los automaticamente. Então queremos uma função pública que não retorne nada tão vazio. E vamos nomear esse nome de conjunto, entre parênteses. Então, como parâmetro, vamos passar uma string chamada nome. A função vai fazer este nome de ponto é igual ao nome. E isso não está certo. É assim que queremos fazer. Tudo bem? Mas o nome do método, neste caso, o centro vai ser definido em pequeno, então em minúsculas. E então o primeiro, o primeiro autor char, primeiro caractere do nome da variável vai ser maiúscula, certo? E então para o getter, o geta também será público, mas isso vai retornar qualquer que seja o tipo de variável, o tipo de dados, neste caso string. E então nós vamos obter o nome e nenhum parâmetro tem que ser dado. E isso vamos apenas retornar o nome. E é assim que é fácil. Setname, GetName. É isso. E agora o que podemos fazer, em vez de fazer nome, podemos realmente fazer GetName. E está tudo bem. Nesse caso, isso retornará a Apple. E aqui podemos fazer a mesma coisa, setName. E depois passamos-lhe banana. E está feito. E então define o nome para banana. Talvez não queiramos outras aulas para definir isso. Então é claro que não precisamos de um setter, mas neste caso nós realmente vamos querer ambos. E como podemos ter esse truque que ele gera automaticamente? Bem, basta clicar com o botão direito do mouse e então temos esse show contextos ações. Vamos clicar nisto. E então aqui vemos criar um getter e setter para o teor de açúcar. Nós vamos clicar nisso e imediatamente ele vai criar exatamente o que queremos. Basicamente, exatamente o que fizemos aqui. Só com o teor de açúcar. Podemos fazer o mesmo pela cor. Vamos apenas clicar com o botão direito do mouse mostrar contextos, ações, criar getter e setter para cor. E então ele também faz um getter e setter para a cor. Exatamente da mesma forma que escrevemos. Só que ele é gerado automaticamente, o que é muito mais fácil, especialmente se você tem uma quantidade insana de atributos que vai ser bom. E então nós podemos apenas ser definido conteúdo mais curto 15. E todos estão felizes, não há mais erros. E funciona. E esta é a beleza ou a magia dos getters e setters. Então, sim.
30. Pacotes (Java): Tudo bem, vamos continuar
com a introdução do Java. E nesta palestra haverá uma pequena palestra onde
falaremos sobre pacotes. Então, já vimos que
nosso próprio pacote aqui é basicamente como
uma pasta, certo? Então, em nosso pacote agora,
temos a classe de frutas
e a classe principal. E você tem
que pensar nisso como uma pasta em um diretório. Isso é basicamente tudo o que é. E se
importarmos algo, você
já viu isso. Então, por exemplo,
importamos java.util, util dot a realist. Isso é algo que
importamos quando falamos sobre ArrayLists. E então isso nos permitiu
usar o ArrayList nesse caso. E havia outras
coisas, como o HashMap, onde também tivemos que importar o
utilitário para o HashMap. Portanto, o java dot util é basicamente o
nome do pacote. E o HashMap é uma
classe porque
é dela que realmente nos
preocupamos em criar objetos. Então, como talvez possamos tornar
isso um pouco mais fácil? Bem, podemos
dizer que, em vez de apenas importar a
lista de matrizes e o HashMap, podemos realmente fazer uma
loja e, em seguida, ele importará tudo
desse pacote utilitário. Agora temos o HashMap, o HashMaps e nada é
importado com o ArrayList. E nada é
importante porque todas as coisas que estão em Utah realmente serão importantes com as estrelas
, então podemos substituir isso. E todo o pacote é
tão importante, certo? Então, basicamente, isso é tudo
o que se pode dizer sobre pacotes. Não há nada particularmente
louco ou estranho neles. Se talvez você tenha
alguns pacotes ou bibliotecas de outras pessoas
para baixar, talvez
precise pesquisar,
ok, onde está alguma coisa? Mas geralmente isso é
importado automaticamente. E se isso não acontecer,
você sempre pode fazer
isso de forma explícita e manual. Mas geralmente isso se torna
importante automaticamente. Mas isso é apenas uma coisa
muito pequena que eu quero dizer sobre pacotes. Sim.
31. Aeração (Java): Tudo bem, vamos continuar
com a introdução do Java. E nesta palestra, vamos falar
sobre herança. Herança, um assunto muito
interessante. E para isso,
na verdade, vamos
criar mais algumas classes. Primeiro, vamos
criar uma classe de animais. Um animal que
faz sentido, certo? O que ele tem? Bem, talvez tenhamos, se temos uma corda protegida e essa será a
espécie da classe, certo? Então essa é a espécie
do animal. Então, o que quer
que diga que temos um pássaro, você sabe, crocodilo. E isso é tudo o
que vamos fazer
agora, na classe de animais. Mas agora queremos ter
algo que seja um animal. Mas isso é um
pouco mais específico. Então, possivelmente, poderíamos
pensar em um cachorro. Essa é uma boa ideia. Vamos criar um cão de classe. Agora. Como esse cachorro se
relaciona com um animal? Bem, quero dizer, cachorro é
um animal, certo? Então,
como podemos relacionar a classe dos cães com a
classe dos animais? Bem, por trás da aula,
escrevemos extensos e depois animais. E dessa forma, o cachorro agora também é um animal. Isso é o que
se chama herança. Então o cachorro herda do animal. E também podemos dizer que o cão é uma subclasse de animal. E o animal é a superclasse. A superclasse é basicamente
o cluster que está acima. O cachorro. E o cão é uma
subclasse de animal porque está entre aspas abaixo
do animal em herança. Então, talvez o que um animal possa realmente fazer sejam algumas coisas que talvez um
animal possa realmente correr. Vamos ter um método chamado run e ele apenas imprimirá esse início. A espécie está correndo. Isso é tudo o que
ele faz, certo? E então talvez
tenhamos uma segunda classe. Então eu vou correr,
talvez seja comer. Então, só vai
imprimir isso que essa
espécie está comendo. Ok? Isso é tudo o que um animal pode fazer em
nosso modelo agora. Agora o cão vai,
ele pode adotar, fazer. Bem, primeiro de tudo, o que vamos fazer é
criar um construtor para o cachorro. Essa vai ser essa espécie. E então a primeira coisa
que você vai
pensar que talvez seja: espere um segundo. Nós nem mesmo declaramos
espécies em cães. Exatamente. Mas o cachorro também tem um animal. Então, tudo o que um animal pode fazer, um médico também pode fazer. Esses também são todos os
atributos que ele tem. O cachorro também tem. Portanto, todos
os atributos da classe animal são acessíveis no cão, desde que seja público
ou protegido. Se for privado, somente essa classe
poderá acessá-lo, como já discutimos. Então, agora vamos
criar um novo cachorro. Então, talvez cachorro, Fluffy
é um cachorro novo. Agora, o que o Fluffy pode fazer? Bem, fofo pode correr e
fofo pode comer, certo? Porque, porque isso, essas são classes,
esses são métodos, lamento que um animal possa fazer. E como Fluffy
está em um animal, porque o cachorro
herda do animal, fofo pode fazer todas as coisas
que um animal pode fazer. Então ele pode correr e comer. Vamos começar com isso
e ver o que acontece. Então o cachorro está correndo e o cachorro
está comendo. Isso funciona. Sem nenhum problema. Isso é muito bom. Agora, o que mais
um cachorro pode fazer? Então, o que fazer e o que pode fazer é
latir. Isso faz sentido. Bem, vamos fazer um sistema. Linha impressa de talvez Wolf, Wolf, eu goste. E está tudo bem. Mas talvez nós também
queiramos um gato. Então, vamos criar uma nova classe Java que será um gato. O excremento também estende o animal. E aqui teremos o mesmo construtor se essa
espécie é igual a gato. E então um gato pode fazer
um miado vazio em público. E também vamos desligar o
sistema, imprimir a linha miau. Neste momento,
tudo está completo. Então, vamos deixar um latido fofo aqui. Fluffy pode latir
porque é um cachorro, não porque é um animal. E quando fizermos um objeto, esse
será o gato. Então, vamos
chamá-la de bigodes, digamos que esse chapéu. E então os bigodes, é claro, também
podem correr. Bigodes também podem comer. E os bigodes não podem latir, mas os bigodes podem miar. E então vamos ver
o que acontece aqui. O cachorro está correndo, o cachorro
está comendo, woof, woof, o gato está correndo, gato está comendo e miando. Então, aqui vimos que um cachorro, o cão da classe,
herda de um animal. E a classe Cat também
herda do animal. E então todos os métodos que o animal pode
fazer nesse caso. E também todos os seus atributos protegidos e
públicos são herdados pela subclasse, neste caso, cachorro e gato. E isso pode se estender até quantos
níveis você quiser. Então, em teoria, poderíamos, por exemplo ,
ter outra classe,
Chihuahua, que abrange cães. E então um chihuahua é ao
mesmo tempo um cachorro e um animal. Podemos mudar isso o quanto
quisermos. Nesse caso, um nível provavelmente
é suficiente. Agora, isso é, digamos,
o básico da herança. Há mais algumas
coisas interessantes que podemos fazer e mudar e já aconteceram. E vamos analisá-los em
palestras posteriores. Mas esse é o básico
da herança, também um
tópico muito importante em Java e
na programação em geral. Também é uma ferramenta muito poderosa. E sim.
32. Métodos estática e não estática: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos falar sobre a palavra-chave estática. Então vamos resolver o mistério. O que significa esta palavra-chave estática? E por isso, vamos para a nossa classe de animais. E qualquer aqui, vamos realmente adicionar um novo atributo, que vai ser um inteiro estático público. E vamos chamar isso de “Number Animals”. E vamos defini-la como 0 no início. E o que esse inteiro faz agora? Como o que há de especial nisso? Nada realmente mudou. Então vamos pensar em criar um novo animal, certo? Um animal novo, assim. E então talvez pudéssemos imprimir o novo inteiro estático. Então nós vamos fazer uma e a primeira coisa que nós vamos notar é que ele realmente não aparece na sugestão. Isso é um pouco estranho, certo? Então, se nós
fizermos nenhum animal, nós vamos realmente obter este destaque e vai ser como,
hey, esta não é realmente a melhor maneira de fazer isso. Porque como acessamos isso, a variável estática não é realmente com uma instância, então com este objeto, mas com a própria classe. Então o que vamos digitar é se vamos digitar o nome da classe Animal dot num animal. Então isso é realmente acessado com o nome da classe, não um objeto ou a instância dessa classe. Então, quando
executarmos isso, vamos ver que isso é 0. E você pode imaginar que o que queremos é algo como, bem, cada vez
que eu faço um novo animal, o que vamos fazer é aumentar esse número de animais para
que saibamos quantos animais existem atualmente, Vamos dizer. Então nós estamos indo para uma espécie de seqüestrar o construtor padrão. E nele vamos apenas fazer um animal mais, mais. Então nós vamos apenas aumentar o, este inteiro cada vez que criamos um novo animal. Então, depois de termos feito este em animais num, A1 deve ser escrito. Vamos ver. E, claro, um que se está dentro de cima de um animal. Agora isso seria um atributo estático estático ou um campo estático. Agora, nós podemos realmente também fazer uma função estática ou método, desculpe, método estático. E o que vamos fazer é realmente fazer algo que é usado com bastante frequência como um método estático. E isso vai ser para gerar um animal, certo? E depois vamos devolver um novo animal. Então, por exemplo, talvez não queiramos que as pessoas usem o construtor. Talvez queiramos fazer todo tipo de outras coisas. E então temos este método estático onde podemos basicamente criar um novo animal. Então o que podemos fazer é, digamos que temos o animal B. Isso não vai ser animal novo, mas que vai ser animal, cão gerar animal. E isso simplesmente retorna um novo animal. E se imprimirmos os animais num depois disso, vamos ter de o fazer. Porque dentro deste método, ou seja, a construção também foi chamada. Então a palavra-chave estática, você também pode pensar, pensar nisso como uma espécie de variável global. Porque não importa quantos ou que animal eu tenha, o animal num não tem nada a ver com um animal específico, certo? Ele, a única mudança nesta variável realmente, é que ele aumenta com cada animal. Mas não é diferente para a e b, certo? Então esta é uma espécie de variável global e não específica para um certo tipo de objeto que é instanciado. Então sim, essa é a palavra-chave estática. E sim.
33. Polymorphism (Java): Tudo bem, vamos continuar
com a introdução do Java. E nesta palestra, vamos falar sobre polimorfismo. Agora, a primeira coisa é que parece incrivelmente
complicado, mas na verdade é muito fácil. Depois de entender isso. Vamos entrar na aula
de animais novamente. E, na verdade, vamos
mudar isso para comer alguma coisa porque queremos sequestrar o
método de comer agora. O que vamos fazer é
realmente criar um novo método tanto
no cachorro quanto no gato. Então, haverá
um vazio público, coma. E isso então será
System.Out, imprima, por exemplo esta espécie inicial é agora, ou está comendo um bife. Porque talvez um cachorro esteja
comendo um bife e o gato talvez esteja
bebendo um pouco de leite. Eu gosto disso. Isso é muito bom. Ok, agora, o que
esperamos aqui quando chamamos as funções de alimentação? Bem, vamos ver o que acontece. O que vai acontecer? Este cachorro está comendo um bife e o
gato está bebendo um pouco de leite. Então o que acontece é que
a função Comer
do animal vai ficar fria, mas a função Comer do cachorro, e como você pode ver lá, comer na sala de aula
sobrescreve, certo? Então isso, essa classe, esse método aqui nesta classe. Então eles comem, na verdade substitui o calor
na classe de animais. Porque este está mais próximo do
que declaramos aqui. Então, basicamente, isso é tudo o que
é polimorfismo. Então, os mesmos métodos em uma superclasse e uma subclasse da superclasse
estão no animal, e uma subclasse sendo o
cachorro e o gato, certo? Você pode usar o mesmo
método em
ambos e fazer com que sejam
completamente diferentes. Nesse caso,
não é muito diferente, mas eles podem ser
completamente diferentes. E ainda assim podemos
ter os dois. E o acesso está
sempre na subclasse. Então, no que
especificamos aqui. Mas o polimorfismo,
na verdade, é muito simples. O mesmo método na
superclasse e na subclasse A. Você pode declará-los de forma
completamente diferente. Eles podem fazer coisas completamente
diferentes. E ainda pode ter
os dois, certo? Foi isso que aconteceu com o polimorfismo. Então, sim.
34. Cursos abstratos e métodos no Java: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra vamos falar sobre classes abstratas e métodos. Então, o que é uma classe abstrata ou um método abstrato? Bem, vamos ver fazendo desta uma aula abstrata. Então vamos ter animais de classe abstrata pública. E o que isso faz agora? Bem, uma classe abstrata não pode ter uma instância. Porque quando pensamos nisso,
um animal, bem, o que é um animal? Bem, quero dizer, você tem que especificar que tipo de animal você quer, certo? Então você tem um cão é um animal, uma chita é um animal. Mas, por exemplo, um computador não é um animal, certo? Assim, uma classe abstrata pode ter implementado métodos, e também pode ter métodos abstratos. Então agora, o que nós vamos fazer é que nós realmente vamos ter este aqui, o método IJ, o abstrato. E então não queremos especificar nada aqui, então não queremos declará-lo. Nós não vamos basicamente deixá-lo sem implementação e genuinamente apenas ter este vazio abstrato público comer. O bom é que nossos cães e gatos já implementaram esse método de comer, certo? E como você pode ver aqui com este novo símbolo aqui, que basicamente significa que este é um método abstrato que as subclasses, assim animal como as subclasses superclasse que herdam de Animal têm que implementar certo? Agora também podemos excluir isso. E então imediatamente vemos, hey, você tem que ter este método implementado. Então podemos, por exemplo, dizer implementar métodos. E diz IID. Então, sim, claro. Não precisamos da sobreposição, certamente neste caso, mas também podemos voltar ao que tínhamos anteriormente e que tudo está bem. Agora, se entrarmos aqui, agora, o que vamos ter é, neste caso, o animal ainda pode ser criado como um objeto se for um CAD. No entanto, se temos um animal um, oh, desculpe, um animal a, e queremos fazer um novo animal. E vai ser como não, isso não funciona porque uma classe abstrata não pode ser instanciada. O que significa simplesmente que não podemos ter um objeto desta classe. Não podemos criar uma nova classe com isso. Então, neste caso, também, a classe abstrata pode ter os métodos abstratos que não são implementados, mas tem que então ser implementado por todas as, todas as subclasses. Mas podemos, como você pode ver, também o método de execução que é implementado e que o cão eo gato também pode chamar. Tudo bem, então vamos fazer isso mais uma vez. E como antes, tudo funciona perfeitamente bem. O cachorro comendo um bife, o gato está bebendo um pouco de leite. Isso ainda funciona perfeitamente bem e ainda é perfeitamente válido. A coisa que eu estou com uma classe abstrata é simplesmente que nós podemos ter esses métodos não implementados que são, que podem ser realmente úteis. E também não podemos ter um exemplo desta classe, que quando você pensa sobre isso realmente não faz sentido porque o que é um animal? E animal é apenas o conceito quando falamos e este é um animal. Quero dizer, não faz sentido quando você pensa nisso. E então sim, isso é classes abstratas e métodos. Então, sim.
35. Interfaces (Java): Tudo bem, vamos continuar
com a introdução do Java. E nesta palestra, falaremos sobre interfaces. Então, o que faz uma interface? Bem, primeiro de tudo,
vamos criar um. Então, vamos para a classe New
e depois Java, e então vamos selecionar
a interface. E essa interface
chamaremos de palestra. Eu falo sobre interfaces, geralmente é
assim que você
chamaria uma interface. Então você tem
um I maiúsculo
no início ou termina o nome da interface
com interface. Essa é uma das duas maneiras. Eu prefiro o I na frente do
que geralmente é muito claro. Então, o que é uma interface? Uma interface é basicamente quase como uma classe
abstrata, certo? Então, se voltarmos para o animal aqui, ele era um animal. Isso é o que é uma
classe abstrata nesse caso. E tínhamos um método
abstrato aqui, cada um implementado
pelas subclasses de animais. Mas também tínhamos esse
método de execução,
que na verdade era que tínhamos
algo que não precisávamos
necessariamente implementar. E poderíamos usar a classe this do método
da classe Animal. Agora, isso não
funciona em interfaces. Na verdade, as interfaces
têm apenas métodos
abstratos entre aspas. Portanto, não podemos implementar
nada dentro disso. Se, por exemplo, temos um método de conversa
vazio, isso faz sentido, então não podemos realmente fazer nada
nele, certo? Não podemos dizer “imprimir” e depois fazer algo como
“Ei, fale”, certo? Isso não funciona. Porque, como você pode
ver aqui, interface, métodos
abstratos não podem ter
um corpo e esse é o corpo. Então, podemos realmente
implementar qualquer coisa. Eles sempre precisam ser declarados. Eles só podem ser métodos
não implementados. Então, por exemplo, podemos
ter uma conversa sobre viagem. Talvez. Na verdade, vamos manter
a conversa vazia agora. Isso pode ser a coisa mais
interessante. Então, o que podemos fazer
com a conversa, certo? Então, a ideia aqui é
que o Bell rode, por exemplo, poderíamos imaginar
talvez um RPG, certo? Então, novamente, podemos dar uma volta
e você pode conversar com pessoas, mas talvez você também possa
falar com certos objetos. E isso não é realmente uma conversa, então é mais como uma múmia. O personagem diz alguma coisa, mas essa é uma
conceituação interessante para isso. Então, podemos imaginar que talvez
até mesmo que tenhamos um cachorro que em nosso RPG agora,
em nosso RPG imaginário, possamos conversar com esse cachorro. E tudo isso é ótimo. Mas agora
este estende o animal. Como podemos então adicionar
o na interface? Bem, vamos apenas escrever
implementos e depois fazemos. Eu falei sobre agora
que vamos pegar uma grande seta aqui porque, na verdade, precisamos
implementar mais uma vez,
o método de conversação. O mesmo com isso. Foi com o animal
abstrato. E vamos fazer métodos de
implementação. Vai ser Talk, Sim, quando implementar isso e
tudo estará ótimo novamente. Então, o que podemos
fazer é dizer, por exemplo, a linha system.out.print. Então, declaramos algo nisso. Na verdade, implementamos
algo
nesse método de conversação. Então, por exemplo ,
poderíamos dizer que esse cachorro realmente gosta de você,
realmente gosta de você. Veja, aí está. E agora o que podemos fazer é dizer, bem, podemos ir com ele, podemos criar um novo cachorro. Então, por exemplo, vamos fazer fofo de
novo, talvez não fofo. Aí está. Que é um cachorro novo. Então Fluffy pode falar.
Isso não é um problema. Vamos fazer essa. E vamos continuar com isso. Esse médico gosta
muito de você,
isso é muito bom. No entanto, talvez como essa
pessoa andando por aí, certo? Então, eu tenho esse personagem de RPG
e quero
conversar com talvez 100 classes
diferentes que possam falar comigo. Pode ser um cachorro ou um gato. Pode haver um ser
humano, certo? Outra pessoa, outro
personagem, um NPC. Podem ser plantas ou árvores com as quais
eu quero interagir. E então isso, é claro, não funciona porque eu não sei em
quais classes essa interface
está implementada, certo? Eu só sei, ok,
eu sei que
assim que algo é
atacável, eu posso falar com ele. Então, o que eu posso dizer é: Ok, eu quero e falo sobre isso, e
esse vai ser o cachorro. E isso vai ser um cachorro novo. Porque o cachorro é ao mesmo tempo
um cachorro e um animal. E sobre o qual eu falo agora. Então, se eu optar por ponto
escuro, posso, por exemplo não latir porque agora cachorro talvez não
seja o
melhor nome para ele. Digamos que uma camisa
escura ou esco com
fofo novamente, por que não fofa? Mas sabemos que em Fluffy, Fluffy é uma pessoa que pode caminhar. E então fazemos fofo e
depois o fofo pode falar. E se fizermos
isso, na verdade vai dizer que
esse médico realmente gosta de você porque é um cachorro. Mas estamos apenas preocupados
em ter um olho, Taco Bell. Na verdade, não nos
importamos com o que desculpe. Na verdade, não nos importamos com
o que está escrito aqui. Não nos importa se é um cachorro,
um planejado, um gato ou um NPC. Nós apenas sabemos, ok,
isso não é atacável. Este é definitivamente
um olho Taco Bell. E o que quer que aconteça aqui, certo, quer não seja, como eu disse, é
um cachorro ou uma planta. Sabemos que o
método de conversação é sempre implementado sobre
isso de que falo. Então, basicamente, você também
pode imaginar a interface como
algo como um modelo para
uma determinada coisa. Nesse caso, nós realmente o usamos para
implementar um método muito específico em muitas coisas
diferentes, certo? Então, como eu disse,
também poderíamos imaginar ter isso na fruta ou no gato, ou em todo tipo de outras coisas. E ele pode implementar
a interface,
então, pode ser interagido
, por exemplo. Agora, é claro, há
muitas coisas diferentes que você precisaria fazer para
facilitar isso. Isso é apenas um exemplo aqui. Para a interface.
As interfaces podem ser muito, muito poderosas. E outra observação aqui é que, neste caso, nós
realmente estendemos esse cão, estendemos o animal para
que
tenhamos um, tenhamos uma herança e também
implementamos uma interface. Agora, podemos ter várias interfaces
implementadas em uma classe, mas não podemos ter várias,
várias classes das quais uma
classe se estende. Portanto, também é muito
importante observar que podemos ter 1.000 interfaces
diferentes, basicamente,
implementá-las em um nó de classe. No entanto, você precisa implementar todos os métodos declarados dentro da interface
na classe que o implementa. Portanto, é muito
importante observar isso. Sim, essa é uma introdução muito
curta aqui às interfaces. Mais uma vez, se
houver alguma dúvida, fique à vontade para perguntar e eu
responderei. E sim.
36. Enums (Java) (: Tudo bem, vamos continuar com a introdução do Java e esta palestra. Vai ser rápido. Vamos falar sobre enums. Então, enums, o que são enums? Inhames são estruturas de dados muito interessantes que podemos usar para bem basicamente modelar algumas coisas interessantes. Portanto, há duas maneiras de implementar enums. Então a primeira coisa que vamos fazer é na verdade em uma aula. Neste caso, vamos apenas fazê-lo na cláusula principal. E vamos implementar uma enumeração chamada dificuldade. Como implementamos isso é lendo o suficiente, então o nome do basicamente M é abreviado para enumeração basicamente. E queremos ter ENUM do que o nome do enum e, em seguida, colchetes. E nesses colchetes nós vamos escrever as coisas
que queremos basicamente enumerar. E temos dificuldade fácil, temos dificuldade média, e ouvimos dificuldade. E é isso. É assim que declaramos um enum. E agora isso é basicamente um tipo de dados que podemos usar para criar novos objetos da dificuldade de tipo. Então agora podemos fazer dificuldade se formos algo como dificuldade de jogo, certo? Ser completamente. Então, quando pensamos em um jogo, por exemplo, podemos ter um jogo. Você será um modo fácil, médio ou difícil. E então o que podemos fazer é ter dificuldade de jogo, mal para ponto de dificuldade. Agora a grande coisa é que os valores
deste enum são realmente escritos como fácil, médio e duro. Então não temos que nos preocupar com algo como, você sabe, você pode pensar sobre uma dificuldade em ter 01234 e você é como, ok, o que é dificuldade? Alguém teria dificuldade por talvez, você sabe, em quatro meses quando você voltar para o projeto, você não se lembra, mas dificuldade, fácil. Isso é fácil de lembrar. E isso também funciona, você sabe, você pode fazer se declarações com ele, você sabe, dificuldade de
jogo é igual e então você pode dizer dificuldade fácil. E então você pode fazer algo, você sabe, você pode ser como, hey, as dificuldades fáceis. Então talvez o jogador tenha mais saúde ou mais armadura ou os inimigos têm menos ataque, coisas assim. E as enums aqui são realmente boas porque não só são fáceis,
facilmente implementáveis, implementáveis e também facilmente mutáveis, certo? Então podemos facilmente dizer algo, bem, vamos fazer um cavalo também, e nada muda. Podemos ter apenas que ter outra declaração if ou outro caso em nossa declaração switch que queremos. E sim, então esta é uma maneira de ter este enumeração e implementado. Também podemos fazer uma nova aula. E lá podemos escolher um enum. E, por exemplo, podemos fazer algo como, eu não sei. Talvez digamos ter dificuldade. E agora vamos realmente apagar este. Vamos apagar esta dificuldade. E aqui temos uma enumeração pública, e isso funciona da mesma maneira. Então temos fácil, médio, duro. E então Horace, por exemplo. E isso funciona da mesma forma. Então dificuldade, se sua nova dificuldade, desculpe, não nova dificuldade, isso é ridículo. Claro que dificuldade, por exemplo, fácil. E é isso. Então isso é basicamente o mesmo que aqui, apenas aqui era parte da classe principal. E possivelmente então o que você faria é que você teria que acessá-lo por sempre ter uma dificuldade main.out. Às vezes, é melhor ter isso em seu próprio arquivo. Às vezes é melhor tê-lo no lado de outra classe. Ou seja, eu diria principalmente preferência. Mas também a consciência situacional é muito importante. Eles dependem da frequência com que ele é usado em outras classes. E se o seu nome de classe for longo, você sabe, pode ficar bem longo. Você pode obter declarações muito longas com isso. Mas sim, este é um enum muito útil para muitas coisas. E sim.
37. (Java) Exceções e atentas e catch: Tudo bem, vamos continuar
com a introdução do Java. Nesta palestra,
falaremos sobre exceções e tentaremos descobrir. Agora, o que significa uma exceção e o que estamos tentando identificar? Vamos analisar isso muito
em breve. Então, primeiro de tudo, eu preparei aqui
uma matriz de números inteiros. E o que vamos fazer é
simplesmente fazer um sistema linha de
impressão e depois
vamos dizer números. E depois dois. Agora, é claro que isso não
funciona porque não
há número de índice
dois nessa matriz. Então, se executarmos esse código,
obteremos uma exceção. Agora, essa exceção significa
simplesmente que
a matriz está fora dos limites. E por que, o que significa uma exceção? A exceção é basicamente
uma taxa de erro. Ou seja, isso não precisa
travar o programa. Então, se nesse caso o
programa falhar, se tivermos algo assim. Então, por exemplo, oh, desculpe. Se tivermos algo como HelloWorld, talvez
escrito aqui, certo? Então, escreveríamos Hello World. Então, tudo depois do erro não
é ou a exceção
nesse caso não é fria. Ok, tudo bem. Agora, vamos realmente implementar nosso próprio
pequeno método rápido aqui, que será um flutuador estático
público. E isso vai dividir, vai dividir a por B. E vamos
retornar a dividido por b. Agora, como alguns de vocês devem saber,
se você dividir por zero, é uma péssima ideia
porque isso não funciona. E podemos verificar
isso com antecedência. Então, podemos dizer: Ei, se
b é igual a zero, então lançar novo e
depois exceção. E então, nessa exceção, podemos realmente
escrever algumas coisas. Então, podemos, por exemplo, você
não pode dividir por zero. Certo? Agora isso vai nos
gerar um erro. Porque o que ele realmente
quer saber é que esse método gera
uma exceção, certo? Então, aqui, na verdade,
temos que escrever lança exceção,
exceção. Aí está. Então, tudo funciona bem. Porque ele precisa saber, ei, esse método de divisão
realmente pode gerar uma exceção. Isso
é muito importante. Então, se tentarmos usá-lo, digamos, por exemplo que
queremos dividir dez por cinco, algo assim, certo?
E vai ser tipo oito. Não funciona porque
não lidamos com essa exceção. E quanto a essa exceção? Tudo bem, então
, na verdade também queremos lançar uma
exceção para o método principal, só para que tudo fique claro. Agora, se fizermos
isso agora, isso só vai funcionar porque
vai retornar dois porque nada
aconteceu com você. Ou se você vai
fazer um zero aí,
então, de repente,
lançamos uma exceção. E essa exceção,
nós criamos uma exceção. E diz apenas que você
não pode dividir por zero. Essa é realmente a coisa
interessante sobre isso. Mas o que é ainda mais
interessante é isso. Então, podemos realmente
resumir isso por meio de uma
declaração de tentativa e erro, certo? Portanto, podemos parar de criar essa exceção para
o método principal e realmente dizer, bem, tudo bem, vamos tentar isso, a palavra-chave
try e depois colchetes. E então temos a captura. E dentro disso,
teremos a exceção e porque é isso
que queremos capturar e é isso que
vamos tentar. Então, vamos tentar
dividir aqui, certo? Então, vamos formatar isso
rapidamente. Muito bom. Portanto, podemos ter
vários, digamos, por exemplo 10/5, 40/4 e, em seguida, 22/0. Agora isso vai ser,
isso simplesmente vai funcionar. Isso vai ser dois,
isso vai ser um dez, e então essa é a exceção. Exceto, aí está. Deixe-me identificar essa exceção. Na verdade, podemos
produzir isso, certo? Portanto, podemos dizer que
o sistema sai da linha de impressão por pontos. E poderíamos dizer E, por exemplo, certo. Então, isso apenas
gera a exceção. E depois
talvez o que
queiramos fazer seja system.out.print, line dot e depois helloworld. Certo? Então, vamos ver o que
acontece aqui quando executamos isso. Bem, o que vai acontecer
é que vamos fazer isso. Vamos imprimir dois, vamos imprimir dez. E então
acontece a exceção, certo? Você não pode dividir por zero. Mas como colocamos
isso em uma declaração de tentativa e captura,
o que veio depois? Depois, na verdade,
ainda foi executado, certo? E esse é realmente o poder
de tentar pegar um. Porque se não
tivéssemos primeiro tentado capturá-lo ou capturá-lo nesse caso, esse não teria sido chamado de
método nesse caso. Mas está frio porque
fizemos com que fosse seguro ligar. Então, quando uma exceção é lançada, podemos tentar detectá-la. É por isso que é importante
saber que, em um método específico
, há uma exceção. Porque se você sabe o que é isso
, sempre podemos colocá-lo em
uma declaração de tentativa e captura. E mesmo que
haja uma exceção, ainda
podemos continuar, pois o
programa não trava. Essa é uma das coisas
mais importantes. Mas ainda temos
a possibilidade imprimir o erro da
exceção nesse caso. E ainda sabemos,
ok, o que aconteceu aqui. Então, essa é realmente uma ótima
maneira de basicamente
garantir que o código seja sólido e que o programa
não trava. Porque pense
assim. Se toda vez que algo ruim acontecer com o programa,
surgirem algumas exceções. Toda vez que isso acontece,
o programa pressiona. Teríamos muitos
programas que travariam constantemente porque
sempre podem ser algo
que acontece. E especialmente se
você pegar a opinião do usuário, você pode pedir ao usuário, ei, me dê um número
para dividir, certo? Então, por exemplo, a calculadora, certo? Eu digo, bem, o programa 22/0
BAM trava. Não é isso que queremos.
É por isso que podemos identificar as exceções antes que elas
possam travar o programa. Então, sim, isso é algo para exceções
e tente pegar e sim.
38. Expressões de Java Lambda: Tudo bem, vamos continuar com a introdução do Java. E nesta palestra, vamos falar sobre expressões lambda. Agora, eu já preparei basicamente todo o arquivo Java aqui porque isso é um pouco mais complicado. E eu quero apenas passar por alguns dos exemplos que escrevi aqui. E vamos passar pelo código um por um. Isso também está disponível como um recurso. Esse código em particular, porque é mais importante que você entenda em vez de me ver escrevê-lo. Acho que isso é mais apropriado neste caso. Então, primeiro de tudo, nós temos uma lista de inteiros aqui, e nós apenas adicionamos alguns números. E o que podemos então fazer com uma expressão lambda, por exemplo, é que transformamos isso em um fluxo. Então nós fazemos o fluxo número de início, certo? Isso só o transforma em um fluxo de números. E então podemos usar algo chamado a função do mapa. E a função de mapa realmente leva em algo que parece muito estranho, certo? Então este neste caso seria uma função, certo? Então conversamos muito sobre métodos, e agora falamos sobre funções. E um método é basicamente algo que pertence a um objeto ou uma classe. E uma função é como um método de fluxo livre, por assim dizer. Então não pertence a uma classe em particular. E neste caso o que queremos é dizer, ok, então quando usamos o método do mapa, o que acontece é que ele toma uma função e esta é a função. E aplica esta função a cada um dos membros ou
cada um dos valores armazenados nesta lista, neste caso. Então, basicamente, cada um dos números, certo, está indo, então é basicamente como for-loop. Neste caso. Vai dizer OK para cada um dos números, certo? Nós vamos dizer, ok, isso é irado. Agora, este é eu, este é eu, este é eu, este, eu quero fazer aquilo. E nós só vamos ligar para i mais igual a quatro. Então, o que deve acontecer quando pensamos nisso assim? E então o resto aqui é apenas para listar. Então nós apenas escrevemos isso de volta em números. Então, quando chamamos isso aqui, nós apenas esperamos, você sabe, um 10021069420. E então aqui esperamos todos esses números, mas adicionou quatro. Então nós vamos apenas chamar isso e nós vamos olhar
para as duas primeiras linhas bem aqui. E como você pode ver que E, cada valor dentro da lista, nós adicionamos quatro a ele. E essa é uma maneira muito fácil de fazer isso basicamente em uma linha de código, que é incrivelmente eficiente quando você olha para escrever código. Agora, quanto maior o scat da coleção ou suas listas obtêm, mais você deve ter cuidado com as expressões lambda são geralmente, geralmente não deve
haver um problema. Então há muitas coisas diferentes que você pode fazer com isso. Mas vamos ver agora as funções como variáveis, certo? Então isso é algo que é insano. Há cinco coisas sobre as
quais eu quero falar agora, que é uma vez fornecedores, quando os consumidores chamam duplas executáveis e, em seguida, funciona. E então vimos um exemplo de uma função bem aqui, mas vamos começar primeiro com fornecedores. Então, um fornecedor é basicamente uma variável que foi armazenada nele, uma função que foi armazenada nele. Uma função sem parâmetro mas um valor de retorno, certo? E poderíamos escrever isso, por exemplo, assim, certo? Abra parênteses sem nada nele. Então não há parâmetro. E então você tem essa seta e, em seguida, x. Então aqui nós declaramos um fornecedor, eu apenas chamo de fornecedor, e então isso é igual a essa expressão. Isso seria uma expressão lambda, e isso é basicamente um fornecedor. Então, um fornecedor, como eu disse, tem um valor de retorno, neste caso um valor inteiro, e retorna dez. Se você quiser saber o que o fornecedor que o fornecedor tem para nos fornecer, digamos, então nós apenas usamos o método get no próprio fornecedor. Então, quando olhamos para a terceira linha aqui, temos um dez que é devolvido usando o get. E isso é ótimo porque neste caso podemos realmente armazenar uma função dentro de uma taxa variável. Então o fornecedor aqui, nós também poderíamos passar para um método e nós poderíamos fazer coisas com ele. Isso é, isso é, as possibilidades são quase infinitas, certo? Quando você pensa sobre isso. Nós também temos um consumidor e um consumidor tem um parâmetro, mas nenhum valor de retorno. Poderíamos escrever assim. X não vai para nada. Então, neste caso, temos um consumidor que é, tem um valor de string. E isso é então escrito assim. Então este S vai para a função e aqui. E então nós podemos fazer ponto consumidor exceto e, em seguida, apenas passar uma string. Neste caso, é HelloWorld. E se fizermos isso, então veremos o “Helloworld”. Mas também podemos passar tudo o que realmente quisermos aqui. Então essa é uma ótima maneira de usar isso. Depois há um chamável. Agora um chamável não tem parâmetros, mas um valor de retorno e lança uma exceção. É por isso que, neste caso, estamos realmente rodeados por uma declaração de tentativa e captura. Porque se não fizermos, se fizermos isso, então será como na exceção para a assinatura do método. Mas não queremos que o nosso método principal tenha a exceção de lançamentos. É por isso que estamos
bem, tente ligar. Agora isso, neste caso, não faz nada porque lançamos uma exceção. E acho que ele pegou isso antes. E sim, isso seria um chamável. Tão chamável, é basicamente o mesmo que um fornecedor, mas também lança uma exceção. Pode ser útil às vezes depende do que está fazendo. Próxima coisa. Um runnable. Um executável é uma função sem métodos e sem valores de retorno. Então, neste caso, o vice-campeão também pode ser escrito assim. E então o executável é apenas o parêntese aberto sem nada nele. E então apenas fazendo alguma coisa. E ele pode ser executado apenas fazendo a corrida, chamando o método run. Muito fácil. Este é o semelhante a apenas um método normal do vazio, certo? Um método mais vazio. E isso é apenas o, digamos que a função parte disso. E, finalmente, temos a função que tem parâmetros e o valor de retorno. Então você pode pensar sobre uma função como uma, uma taxa de função matemática. Se você tem f de x, então obviamente o acesso algo que você passa para a função e, em seguida, o y que você recebe de volta é algo que é
o, o, o resultado basicamente, certo? Então aqui temos x, y, é assim que podemos escrevê-lo. E neste caso, a função tem um duplo como uma entrada e um duplo como uma saída. Nós conseguimos, colocamos o nosso dentro e saímos. Basicamente, você sabe, esta seria uma função dois, então esta seria pi, esta é a taxa de raio. Então este é apenas um exemplo. E podemos usar o sistema para fora, imprimir linha e, em seguida, apenas fazer o ponto de função aplicar com um dez, por exemplo. E poderíamos aplicar isso. Então vamos fazer isso rápido. E como você pode ver aqui, tivemos Olá novamente, Olá mundo novamente, runnable. Isso funcionou bem. E então este apenas retorna 31.41 e assim por diante e assim por diante. Porque é apenas calc, porque apenas vezes dez isso, mas mais uma vez, podemos colocar qualquer duplo aqui com o que queremos. E sim, então esta é uma visão geral muito curta e um resumo para algumas das coisas que expressões lambda podem fazer ao longo das expressões vão muito, muito mais fundo do que isso. Até mesmo. Então, apenas as funções que podemos chamar em coleções são numerosas e insanamente profundas e às vezes realmente úteis. E mesmo aqueles, os fornecedores e as funções como variáveis, mesmo lá, há ainda mais tipos deles. Mas restringo-me a estes cinco porque, na minha experiência, penso que estes cinco são principalmente os mais importantes. Não necessariamente o mais importante, mas o mais usado. E, mas também sempre depende do que você faz certo? Agora, a grande coisa é que você realmente não precisa usar expressões lambda. Se você tem um programa, você começa do zero e você não usa pacotes extras de terceiros
ou de terceiros ou algo assim. Você realmente não precisa usá-los. Você poderia, em teoria, fazer tudo o resto sem isso. Mas é muito importante pelo menos olhar e algumas coisas que você pode querer fazer, especialmente se você trabalha com código que outros escreveram. Então outros pacotes, então eles podem usar essas expressões lambda e, em seguida, é muito importante ter visto
pelo menos isso e então talvez ser capaz de recordar. Então, sim, essa é uma introdução muito curta. Mais uma vez, se houver alguma pergunta, sinta-se à vontade para perguntar e eu responderei. E sim.
39. (Minecraft) Forge e configuração: Muito bem, todos, bem-vindos ao curso de Minecraft. E a primeira coisa que vamos fazer é baixar Minecraft 4j. Então você está indo para ir para os arquivos de endereço web dot.net. O link está, naturalmente, disponível como um recurso aqui. E você vai baixar o mais novo, o Download Recomendado aqui. Neste curso, vamos fazer 1.16.3. E a versão recomendada agora é 34.1 é 0. Vamos baixar o SDK aqui, então vamos apenas clicar em OK e temos que esperar alguns segundos. E então aqui está o botão Skip. Vamos apenas clicar nisso. E então um arquivo ZIP vai baixar este arquivo zip que vamos colocar em um diretório de nossa escolha. Eu já preparei um diretório aqui. Então, vamos fazer algo rápido, um pouco de magia como esta. E vamos pôr isto aqui. Agora temos a nossa forja uma porta e 1.16.3 m dk em nosso, em nosso diretório. E nós vamos simplesmente extrair aqui. Para isso, você precisa quando RAR ou algum outro programa. Tenho certeza que você já tem isso. E se não, sinta-se à vontade para fazer qualquer pergunta. Eu posso então direcioná-lo ou você pode apenas Google Vin rar, WIFM RAR, logo após tudo é extraído, podemos realmente excluir o arquivo zip aqui. E a primeira coisa que temos que fazer é abrir a inteligência, certo? Se abrires a inteligência pela primeira vez
, vais receber isto. Bem-vindo à Inteligência. Se não, então você pode simplesmente ir para Arquivo no canto superior esquerdo e apenas importar ou abrir. E o que vamos fazer é abrir mais importação. Agora. Já estamos aqui em nosso diretório do Minecraft e vamos importar o arquivo build.gradle. E o que vamos fazer é abrir como arquivo agora mesmo. E como podemos ver, um arquivo foi aberto. Assim que tivermos o arquivo Gradle aberto, temos que mudar algumas coisas. E aqui nós realmente temos que especificar pacote R. E isso vai ser acalmado curso Colton Joe Dot MC para mim. Então, o ID mod neste caso vai ser curso Mc. E uma outra coisa que temos que mudar aqui é o modo exemplo. E o que estamos indo para bem ali, o que vamos fazer lá é que vamos apenas pressionar Control R. E então vamos mudar o exemplo mod2 para núcleos MC e vamos fazer substituir
tudo e , em seguida, salvar com mais uma vez Control S desta vez. E então tudo deve ser configurado como deveria ser. Não se preocupe se houver algum erro ou algo assim aqui. Vamos consertar isso em breve. O que vamos fazer é ir ao arquivo e fechar o projeto. E agora este realmente está aqui na história, pode realmente apenas X fora disso. E agora podemos importar todo o projeto. Então agora vamos importar e vamos mais uma vez
clicar no arquivo construído ou Gradle. Mas agora vamos abrir como projeto. Isso vai fazer um monte de coisas aqui, pode realmente apenas clicar em fundo e, em seguida, ele vai começar tudo em segundo plano. Não se preocupe se houver alguns erros aqui. Vamos todos consertar isso agora e um após o outro. Certo? Então. Primeiro, vamos até o Minecraft abrir esta pasta,
e depois abrir o código fonte e o Java e os recursos também. E como você pode ver, algumas coisas estão começando a acontecer aqui. Como eu disse, isso pode levar cerca de um minuto, dependendo de quão rápido seus computadores. Mas enquanto isso é executado em segundo plano, nós realmente podemos mudar algumas coisas já. E isso está nos recursos e meta na pasta. Há um arquivo HTML de ponto de correspondência. E este arquivo, podemos realmente mudar algumas coisas. Primeiro, vamos comentar algumas coisas. Então, o rastreador de problemas, você pode ver que alguns
deles são opcionais e alguns deles são obrigatórios. E alguns dos opcionais nós vamos apenas comentar. Então, em nosso moderno d mod ID, vamos mais uma vez escrever curso Mc. Então temos o nome de exibição. Este vai ser Mc Horse. E então não teremos um URL JSON atualizado. Não teremos um URL de exibição e não teremos um logotipo agora. O resto vai ser mantido como está. Vamos mais uma vez salvar isso com o Control S. E então este arquivo também é atualizado. Você pode fechar isso agora e esperar até que isso esteja feito. Certo? Agora tenho uma marca de verificação e tudo funciona bem. Pode haver um ponto em que algo não funciona é o melhor seria apenas me perguntar e fazer uma pergunta e eu responderei muito em breve. No entanto, a primeira coisa que você pode tentar é que você pode ir para o terminal e você pode digitar Gradle, Gradle w barra menos, parar. Tente este 1 primeiro e, em seguida, reconstrua-o. Você pode fazer isso indo para o arquivo Gradle. E aqui em cima está um pequeno elefante com uma bandeira que este sinal de recarga. E se você, se você clicar nesse, então ele vai recarregar. E se ele ainda não funcionar depois de você, você digitou este entrar e então algo vai acontecer. E então, se ele ainda não funcionar, então, claro, sinta-se livre para fazer uma pergunta, mas tente isso primeiro porque esse era um problema que eu tinha definitivamente ao configurar isso pela primeira vez. Certo, que há uma chance de que seus pacotes se pareçam isso, onde todos eles têm os nomes em uma linha, digamos, e depois separá-los com um ponto. Para neutralizar isso, você pode ir aqui para projetar para este menu Mostrar Opções. E, em seguida, os pacotes achatados devem ser desmarcados. E, em seguida, os pacotes intermediários compactos também devem ser desmarcados. Então, uma vez que você criar as pastas de ativos que estão indo para criar logo após
este, isso apenas em emenda agora, então eles devem ser mostrados corretamente. Houve alguns estudantes que tiveram esse problema, e eu só queria juntar isso para que você não vá se deparar com essa questão também. Certo? Então a única coisa que vamos fazer agora é preparar algumas coisas. Então vamos criar algumas pastas e
vamos mudar rapidamente algumas coisas aqui. Então a primeira coisa que vamos mudar são os modos de exemplo. Vamos abrir isto. E é claro que este não é o nome que escolhemos. Então, na verdade, vai substituir isso apenas clicando com o botão direito do mouse, Refatorar, Renomear. E vamos renomear isso para, vamos chamá-lo de EMS MC CourseMart, porque isso vai ser Ahmad. Aqui vai o nosso Mat ID. Então este vai ser o curso Mc todos escritos juntos. Agora, eu aconselho a fazer apenas copiar, não copiar, mas programar junto comigo. E depois que você aprendeu o básico do que, como você pode criar um bloco e como ele cria um item e assim por diante. Que usa, em seguida, realmente criar o seu próprio mod. Eu encorajaria que se você não quiser fazer isso, tudo bem também. Você também pode apenas seguir e criar seu próprio modelo imediatamente. Então aqui nós realmente queremos mudar este pacote. Então nós queremos mudar isso para vir algodão j2. E então este é curso MC, certo? Vai ser, eu gostaria que nós vamos mudar isso para o pacote. E então ele vai, ele vai criar um novo pacote aqui para nós. E podemos, em seguida, também apenas excluir esta pasta de exemplo. E tudo está configurado aqui como deveria ser. Isso é ótimo, certo? Então vamos olhar para a estrutura de pastas agora. Vamos criar algumas fotos. Agora, em futuras palestras, vamos criar ainda mais pastas. Mas agora, as pastas que vamos criar para coisas como blocos e itens, e elas são texturas, um pouco de linguagem. Então exiba texto basicamente. Então a primeira coisa que vamos fazer é ir para a pasta Recursos. Vou criar um novo diretório e chamamos isso de ativos. Agora, nesse diretório de ativos ou mais diretórios ir realmente em que 1. Primeiro, vai a pasta que tem o nome do seu Mat ID, certo? No nosso caso aqui, núcleos mc e nessa pasta, para mais pastas ir. O primeiro vai ser Bloch States. E então o próximo será Lang I, N, G. E depois outro, que vamos chamar de Modais. E então o último aqui vai ser texturas. Agora dentro da pasta modelos, também
vamos criar uma pasta chamada Block. E outra pasta, vamos criar um item frio. Nas texturas um nós vamos fazer exatamente a mesma coisa, uma pasta chamada Block e um item antigo pasta. E isso é basicamente a configuração por enquanto. Agora, como precisávamos. Como eu disse, vamos adicionar mais fotos no futuro, mas isso é como uma estrutura básica que
vamos precisar, digamos as próximas palestras. E sim, então se tudo está configurado e se tudo funcionar bem, o que podemos fazer é ir até Gradle, e então podemos ir para Tarefas. Fg é executado e, em seguida, este cliente executar clique duas vezes que um. E então um monte de coisas vai acontecer. E se tudo funcionar bem que o Microsoft Minecraft realmente vai começar e nós podemos bem, nós poderíamos placa teoria. Então começa no monitor errado. Desculpe. Mas isso não é um problema. E vai sim, certo. Agora, como você vai lá. E vamos ver o que acontece. Claro, está lá. Os sons calmantes da micro música, que eu vou imediatamente desligar porque geralmente, especialmente nestes cursos, talvez não o melhor estudo para ter uma música em execução em segundo plano. E se formos tomates aqui, podemos ver que o nosso MOD MC CourseMart está aqui. Isto é apenas algumas coisas de espaço reservado que podemos colocar para substituir mais tarde. Mas sim, ele realmente tem Armand carregado e tudo funciona. E sim, eu acho que isso é muito bom. E esta é basicamente toda a configuração que vamos precisar agora. Isso é tudo o que precisava ser feito para este momento no tempo. E sim.
40. Observação em sua: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra eu só quero mencionar rapidamente que se você estiver usando um 605 em provavelmente acima, entanto, 165 agora é a questão principal. Você terá que mudar seu canal de mapeamentos. Deve se parecer com isso. Então mapeamentos canal oficial e, em seguida, versão um 605. E dentro da janela de compilação aqui você também deve obter que este é licenciado
pela Microsoft Corporation porque esses são
os mapeamentos oficiais que Minecraft e morphogen usam. E isso não será realmente compatível com o material do curso que segue isso. Porque alguns métodos, na verdade, muitos métodos e atributos e variáveis são completamente, têm um nome completamente diferente. E, portanto, você precisará mudar isso para exatamente isso aqui. Esta pode não ser a versão mais recente dos mapeamentos. Quando você vê este vídeo, no entanto, você pode verificar ou ir para os recursos, para a descrição da classe. E lá você deve encontrar sob bastante alta até 165 mapeamentos. Você pode então simplesmente copiá-lo e depois colá-lo. Certifique-se muito baixo para as mudanças Gradle aqui em cima. E então deve demorar um pouco, construir tudo. Pode demorar um pouco mais para ti se o fizeres na primeira vez. E então uma vez que você começa o tick e tudo é bem sucedido, certifique-se de que dentro de seu arquivo MOD normal. Então, quando fizermos isso, este deve ser o arquivo MTT curso MC. Acabei de configurar um novo repositório 165. É por isso que este é um exemplo de modelo. Neste caso, você terá que ter um erro aqui. Simplesmente exclua esta linha ou exclua todo o método, não importa. No entanto, o erro aqui com as opções, você pode simplesmente deixar essa linha e tudo vai funcionar a partir desse ponto e você pode seguir a classe quase até o t. Eu acredito que a maioria dos outros mapeamentos deve então funcionar. Mas isso é muito importante. Se você não fizer isso, então você não será capaz de seguir corretamente a classe. Realmente não importa porque o canal de mapeamentos é, eu não diria melhor necessariamente, mas é simplesmente o que vamos usar para esta classe. Então só para você saber e só para que você saiba que esse é o caso. - Sim. Foi isso, na verdade, e foi isso para esta palestra. Eu imploro que faça isso. Caso contrário, vou simplesmente encaminhá-lo para esta lição se você não a tiver mudado. Então, sim, foi isso. Boa sorte e divirta-se no resto do curso. Então, sim.
41. (Minecraft) crie nosso primeiro item: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar um novo item. Então, primeiro, precisamos fazer algumas coisas. E a primeira coisa que vamos fazer é criar uma string final estática pública aqui, que vamos chamar de ID mod. E isso vai ser simplesmente o nosso lema ID. E então nós podemos realmente substituí-lo aqui em cima também. Então nós podemos apenas escrever Mc Corps lema mod ID. E porque esse ID de nó será realmente usado em muitos lugares
diferentes dentro do nosso modelo. Então o que precisa acontecer é que realmente queremos criar um novo pacote. E isso vai ser
dentro, dentro do nosso pacote de curso MC. Vamos comprar um pacote novo. E vamos chamar este item. E dentro de lá, vamos criar uma nova classe Java, e isso vai ser frio. Naca é apenas mais itens. Você pode basicamente chamá-lo do que quiser, mas deve ter alguma semelhança com mais itens, meus itens, itens
registrados, algo assim,
só para que você saiba, ok, esta é a classe onde eu registro meus átomos. E agora nós vamos escrever algum código e eu vou, primeiro de tudo explicar como eu vou junto e, em seguida, em um pouco mais de detalhes ao longo. Então ele vai para, vamos criar um objeto de registro final estático público do tipo item. E nós vamos criar vai ser lingotes de cobre. Então queremos adicionar talvez coberto para o jogo. Isso é apenas algo que eu pensei agora. E se algo for lido, podemos importá-lo. Isso é importante para torná-lo net dot Microsoft dot item. E isso vai parecer um pouco estranho, mas não se preocupe com isso. E precisamos de outra coisa antes de podermos fazer isso. E isso vai ser um registro. Então nós realmente pulamos o tubarão aqui. E o que vamos fazer é voltar e fazer outro pacote, que vamos chamar de Util. E lá dentro, e nós vamos criar uma nova classe Java, que nós vamos chamar de registro. - Claro. E esse registro, nós realmente primeiro temos que registrar r ou temos que colocar um registro diferido. Então vamos usar registros adiados aqui. E isso já aconteceu antes. Podemos fazer os itens, mas não se preocupe com isso. Nós vamos, nós podemos fazer isso. Então vamos ter uma final estática pública. E este vai ser um registro diferente do tipo bloco. Então isso é para os blocos, é claro. Mas vamos fazer isso agora mesmo para que tenhamos isso. Também importe o blog da classe. E, em seguida, fazer um registo diferido, criar
ponto, alpendre registra blocos. E então precisamos de RMC, ID do
curso, o ego. E então podemos fazer basicamente a mesma coisa. Nós podemos basicamente apenas copiar isso e substituir a totalidade por itens e itens para que possamos apenas fazer. E então aqui estão os itens. E então nós simplesmente precisamos de um registro vazio estático público, função ou método em vez disso, que vai ter um barramento de eventos. E o que vamos falar sobre esses 11 segundos. Este vai ser um modelo FLM FML Java carregando contextos dot get, dot get, mod event bus. E então ele simplesmente vai simplesmente, ambos os registros adiados vão se registrar com esse barramento de eventos. E neste caso, vão ser itens. E então bam, e neste caso, todos os itens estão registrados. E então nós simplesmente precisamos chamar isso em nosso construtor aqui em baixo. Então vamos apenas fazer registro,
registro, DOT, registro, o ego deles. E agora podemos realmente fazer o item. Isso é sim, porque agora nós realmente queríamos chamar de registro esses itens, certo? Então nós queremos chamar isso de o primeiro registro que nós realmente criamos. Queremos registrar um novo item, que será Ingrid cobre. Agora, este é, este é o nome do,
basicamente o ID do item, por assim dizer. E isso é sempre minúsculo. E entre as palavras há sublinhados em vez de espaços ou algo assim. E então ele vai levar um fornecedor. Então isso é simplesmente um, um método lambda que vai fornecer um novo item. Então vamos criar um novo item. E para criar um novo item, precisamos especificar propriedades. Neste caso, o que vamos fazer é apenas especificar a propriedade do item,
o grupo de propriedades, para que possamos realmente vê-lo no modo criativo. E isso só vai entrar em, digamos, um material para o bem de agora. E eu realmente quero que isso seja recuado um pouco diferente. Eles vão, isso parece um pouco melhor. E então também precisamos de uma função de registro de vazio estático público com nada nele apenas para chamá-lo. Então esse e, para que tudo vá correr bem. Então vamos fazer Mott itens DOT registrar. E, em seguida, o item está realmente vai estar no jogo já. Simplesmente assim. Vamos apenas olhar para ele. E então nós vamos, é
claro, descobrir que há um pouco mais nisso porque, você sabe, você deve ter notado que nós realmente não adicionamos uma textura, por exemplo, que é claro que vai ser necessária. Caso contrário, vai parecer um pouco estranho. E posso prometer-te que vai parecer um pouco estranho. Então vamos criar um novo mundo. Vamos fazer um mundo criativo e pacífico e eu sou apenas um novo mundo, tudo bem. Está bem. Tudo bem, aqui estamos no Minecraft. Isso não é lindo? E vamos ver. Então isso deve ser um diverso ou acreditar que eles iriam para o Mc coagir cobre, Ingrid, não são esses belos policiais e ele não é realmente, é? - Não. Não, não realmente. Está bem. Então nós vamos ter que corrigir algumas outras coisas ou é corretamente no jogo, protuberâncias no jogo, no entanto. Então a primeira coisa que precisamos fazer é ir para a pasta pulmonar aqui sob recursos do que
o lema dos núcleos AD MC, e depois a pasta de comprimento. E nós vamos criar um novo arquivo, que nós vamos chamar Yan nos sublinhar e ponto JSON, JSON. E isso vai ser formatado assim. Precisamos daqueles colchetes. E então dentro de, dentro das aspas, vamos fazer os núcleos MC do item,
Harper, lingote e, em seguida, dois pontos. E depois cobrindo. Este é basicamente o nome que queremos ter exibido dentro do jogo. E então vamos para os modelos e para o item. E aqui nós vamos ter,
ter um arquivo que é nomeado exatamente como o nome do item que nós especificamos, certo? Então cobre sublinhar lingote e ponto JSON mais uma vez. E isso vai ter algo assim. Isso vai ser pai, uma barra de item gerado. E então vamos especificar as texturas. Portanto, não texture um colchete e, em seguida, a camada 0. Veja os poros. Segure um item cortar lingotes de cobre. Lá vai você. Então, o principal takeaway aqui é que o, aqui nós especificamos as texturas. Esta é basicamente a parte mais importante. E nós podemos ter basicamente multi-camadas, itens multi-camadas. Não vamos nos preocupar com isso agora. Esta é, no entanto, a maneira importante de como escrevê-lo. E então, na verdade, a única coisa que precisamos é de uma textura. E agora eu realmente preparei uma textura na minha outra tela. Eu vou colocar isso no item e eu vou dizer,
sim, esta é a textura que eu preparei. E, em teoria, note também que o nome da textura aqui. Em primeiro lugar, ele precisa ser um arquivo PNG. No meu caso, tenho 16 por 16. Não deve ser maior que 32 por 32. Mas, sabe, pode haver maneiras de contornar isso. Mas neste caso, eu aconselho a fazer sempre 16 vezes 16 texturas porque também os locais das texturas das micro texturas normais. E o nome do arquivo será exatamente o
mesmo que o nome que especificamos em nossos itens mod aqui, certo? Então este é sempre o, basicamente o ID do item. Isto é onde quer que vamos, basicamente vai ser o mesmo. E, em teoria, se tudo funcionasse, esperemos que funcionasse. Então vamos ver, e espero que já funcione. Mas tenho quase a certeza de que tudo vai ficar bem. Agora. Não, na verdade, minha idéia aqui é que eu não vou parar se eu talvez cometi um erro e nós vamos apenas cortar e
mostrar a você onde eu fiz isso porque eu acho que, às vezes, você sabe, você comete um erro, Eu cometi um erro em algum lugar e então é melhor para você ver que houve um erro. E então você pode aprender com isso. Mas na verdade nem precisamos fazer isso porque aqui estão nossos lingotes de cobre. No nosso jogo. Chama-se cobre irritado e parece muito bom. Eu gosto disso. Parece meio legal. Sim, era tudo o que tínhamos que fazer para criar um item no Minecraft. Se tiver alguma dúvida, sinta-se à vontade para fazê-las. E foi basicamente isso. Então, sim.
42. (Minecraft) crie nosso primeiro bloco: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar nosso novo bloco, certo? Vamos criar o nosso próprio bloco. E vai ser um pouco mais complicado do que o item, mas não muito. Então, a primeira coisa que vamos fazer em vez de r pacote ID mod. Então nosso pacote de curso MC aqui, vamos criar um novo pacote. E isto vai ser chamado de bloqueio. E dentro desse pacote, vamos criar uma nova classe Java, e isso vai ser mais blocos. Aqui. Vamos nos divertir um pouco. Então talvez nós queremos um bloco de cobre que vai com nossos lingotes de cobre que pode ser útil. Agora primeiro precisamos ter uma espécie de método auxiliar. E eu vou escrever isso e explicar à medida que eu for junto, vai parecer um pouco louco no início, mas não se preocupe com isso. Então este é um blog T estende e nós realmente precisamos importar isso. Oh, desculpe, espere, vamos trancar. E, em seguida, isso vai retornar um objeto de registro do tipo T. E vai ter perameters, string, nome e fornecimento rapidamente. Modelo há pouco, fornecedor T, e o nome do bloco, certo? Ok, aqui vamos nós. Também precisamos importar a classe de fornecedor aqui do Java Util. E lá vamos nós. E, dentro disso, vamos criar um novo objeto de registro do tipo T. Este é o que vamos retornar. Então eu vou ligar para isso para voltar. E agora nós estamos realmente indo para ir para registro de pontos blocos, registro, nome e bloco. E a razão pela qual fazemos isso nesta função é, na verdade, porque
também precisamos registrar um item para isso para cada bloco. Então nós vamos fazer itens de registro ponto não registrar. E este vai ser o mesmo nome. E então nós realmente, em vez de criar uma alma, retornando um novo item aqui, vamos realmente criar um novo item de bloco. E isso só vai ser devolvido para retornar ponto get. E então precisamos de um novo item, propriedades de ponto. Esses são os mesmos que com o item. Então, neste caso, só vamos fazer grupo agora, a fim de tê-lo classificado em um grupo nas guias criativas. Então isso vai ser blocos de construção. Isto é um bloqueio, então isso faz sentido. E então nós vamos voltar, para voltar. E esta é a nossa função auxiliar. Então, basicamente, leva em um tipo. Então, basicamente tem um tipo de bloco que precisamos fornecer aqui. E então ele retorna um bloco. Nós só vamos, nós só vamos usar isso mais simples do que apenas brincar por aqui. Então vamos fazer objeto de registro. Então, mais uma vez eu tenho objeto de registro, a soma do tipo bloco. Vai haver um bloco de cobre. E agora vamos apenas chamar registrar porque isso irá retornar um objeto de registro para nós. E este vai ser o bloco de cobre. E então também precisamos fazer o fornecedor. E isso vai ser. Um novo bloco neste caso. E agora nós realmente temos em vez de propriedades de bloco com epsilon balançou propriedades, propriedades ponto criar. Agora precisamos especificar um material primeiro. Agora, pensando que este é como um bloco de cobre, este é provavelmente material de ferro ponto. E, por trás disso, podemos especificar ainda mais propriedades. Então, por exemplo, podemos fazer dureza e resistência, que vai mover isso para a próxima linha aqui. E isso provavelmente vai ser como, vamos apenas fazer algo como 310. E então vamos fazer som vai ser um tipo de som. Me. Sim. Muito bom. Está bem. E então isso está feito. Agora isso também é, a propósito, algo para os itens também. Você pode apenas atrás do grupo, você pode adicionar ainda mais itens, certo? Há algo que, por exemplo, raridade, dano máximo, tamanho
Mixtec, e todos os tipos de outras coisas que podemos fazer aqui. Agora, se não estou enganado, eu preciso de um, outro PABA, público, estático, vazio, registro, uma função vazia. E se não me engano, isto já deve ser suficiente para tê-lo aqui. Então, mais blocos que registram. Mas antes de olharmos para o Minecraft, como ele parece, vamos realmente fazer a textura corretamente desta vez e passar por ela. Então a primeira coisa que vamos fazer é abrir o iene US Jason novamente em nossa pasta de comprimento. Vou acrescentar isto. Então este vai ser o curso AMC loc dot no fio de cobre. Desculpe, fio de cobre. Do que estou falando? Isso é que é um spoiler. Isso é um grande spoiler. Fio de cobre. É claro que é um bloco de cobre. - Sim. E, na verdade, já é isso. Nós também vamos precisar fornecer algo nos modelos. Este é um novo arquivo e que vai ser o bloco de cobre ponto JSON. E eu vou rapidamente copiar isso. Isso é um pouco mais fácil. E vai ser, então em vez de o pai ser item, item gerado, este pai, ele é realmente bloqueado cubo tudo. E então a tecnologia nas texturas que realmente temos é uma espécie de camada 0. Temos tudo. Isto é basicamente para especificar que todos os lados são a mesma textura. Claro que também podemos usar texturas diferentes para diferentes lados, mas isso é algo para outra palestra. E também precisamos dos estados Bloch. Então este vai ser o Hopper Block Dot Jason. E eu também vou trazer isso rapidamente para cá. E isso basicamente se refere ao arquivo modelo que acabamos de criar. No entanto, nós realmente precisamos criar um outro arquivo em modelos e que está sob itens. E isso vai ser também o bloco de cobre. O Jason. É por isso que eu disse que era um pouco mais complicado do que apenas o normal porque há mais alguns passos para criar um bloco. Então MC, pior bloco barra de cobre bloco. E deve ser isso. Acredito que sim. Agora só precisamos indicar o ou eu
preciso colocar isso rapidamente aqui. Nós vamos fazer isso. Esta é a minha textura para o bloco de cobre. E, em teoria, agora tudo deve funcionar bem. Isso é, bem, tudo bem, vamos fazer o microondas e ver se isso funciona. Então temos os estados Bloch, temos os modelos, modelos pretos, item e textura. E nós também definimos o lang. Então tudo em tudo o que deve funcionar já eu acredito. Vamos ver se estou correto ou não. Certo. Asco single-player Novo Mundo. Vamos entrar lá e ver o que podemos ver. Então, uma cobertura ou é, claro, ainda lá. E então, nos blocos de construção aqui embaixo, ali está, o bloco de cobre. Você pode colocá-lo. E nós também podemos jogá-lo por aí, se você quiser. Sim, isso é ótimo. Isso é incrível. Então isso é realmente como eu disse, é um pouco mais complicado do que o item, mas ainda não é muito complicado. E, no entanto, é basicamente assim que adicionamos um bloqueio no Minecraft. E depois disso, há uma pequena tarefa onde você realmente adicionar outro item e outro bloco ao Minecraft. Você pode fazer o seu próprio ou você pode apenas fazer o que eu fornecer. Eu forneço duas texturas. E você realmente deve adicionar fio de cobre e um cobre ou para o jogo também. E eu, então eu, eu aconselho a fazer a tarefa meio cega, basicamente copiando tudo o que fizemos até agora e depois fazendo isso sem assistir o vídeo. No entanto, é claro que é grátis para você. Eu apenas aconselho você a fazer isso. E então na próxima palestra, eu realmente vou ter tudo isso já dentro do jogo. Então o fio de cobre e o cobre ou já estarão lá. Então, se você não fizer isso, você pode estar atrasado. Vou tocar rapidamente nisso na próxima palestra. No entanto, apenas para que você esteja onde as tarefas são sempre transportadas para a palestra depois. Então, e as tarefas serão sempre parte das próximas palestras que vêm depois disso. Sim, isso era basicamente tudo o que eu queria dizer. Mais uma vez, se houver alguma dúvida ou se você tiver alguma flecha de qualquer tipo, sinta-se à vontade para me perguntar e eu tentarei ajudá-lo o mais rápido possível. E sim.
43. Teoria (Minecraft): entrando aprofundando nossos cursos: Ou eu apenas como uma nota rápida que esta palestra é apenas para ir um
pouco mais em profundidade para as aulas que já criamos. Então os modos, itens,
os blocos mod e o registro e a classe principal. E esta é uma palestra muito teórica. Então, se isso não te interessa, podes ignorá-lo. Não há nada muito louco ou importante que está sendo definido aqui. É só talvez para solidificar um pouco do seu conhecimento e é basicamente isso. Então você pode pular se quiser. Bem-vindos de volta aos minérios do Minecraft e estou aqui do futuro. Bem, basicamente, eu tinha uma pergunta que um aluno fez que dizia, hey, você
pode talvez ir um pouco mais em profundidade
tanto na classe principal como também nos itens de registro mod. O que estamos fazendo lá? Estou apenas a escrever isto muitas vezes. Eu realmente não estou entendendo o que eu estou fazendo aqui e esta é basicamente a palestra para isso. E então, primeiro de tudo, vamos passar pela classe MC CourseMart e olhar basicamente quase cada uma das linhas aqui. Então a primeira é esta anotação, claro que é o modo
de adicionar e, em seguida, o ID do mod. Isto é muito simples. Então que laranja basicamente entender, OK, esta é a classe principal para este modo com o estudo que temos,
então, é claro, você é realmente inicializado como uma string, simplesmente mc curso. Ou talvez você tenha escolhido um nome diferente. Mas é a mesma ideia. E também muito
importante, também está escrito aqui. O valor aqui deve corresponder a uma entrada no meta em Tamil. Nós realmente fizemos isso. Acredito na primeira palestra aqui sobre quando
começamos com o Minecraft e a seleção da sorte, certo? Certo então temos uma referência aqui para o log para j logger. Agora, na verdade muito facilmente explicado. Então log para J é simplesmente uma biblioteca externa que forja usos para registrar algumas das coisas acontecendo bem, seja no jogo ou durante a inicialização e assim por diante. E o registro para j é apenas uma excelente biblioteca para fazer isso. Que ele realmente não tem qualquer influência sobre nada acontecendo no jogo ou qualquer coisa realmente. Então isso é apenas para fins de depuração e para a saída de coisas para o console, digamos, sim, logo a seguir temos o construtor. Então este é simplesmente um construtor normal, como em qualquer outra classe Java. É só para a nossa classe de modelo. É claro que aqui temos nossos três métodos de registro que estamos realmente chamando para o registro, os itens MOD e os blocos MOD. É claro que isso é auto-explicativo da maneira que fizemos isso. Agora vamos passar por três dessas aulas também. Mas vamos antes de tudo olhar através de toda a classe mc multi-class. Então, em seguida, vêm essas quatro chamadas de método interessantes que são um pouco estranhas e podem ser como, ok, interessante. Então isto parece uma armadilha maluca, digamos. Então, primeiro de tudo, fazemos isso contextos de carregamento Java FML que obtêm mod ponto-ponto, ouvinte de anúncio de barramento de evento
mod. E depois colocamos numa coisa estranha onde escrevemos isto e depois. Dois, você sabe, dois pontos e um nome de método aqui, certo? Isto, isto tudo parece um pouco estranho. Mas para explicar isso na maioria dos termos mais simples, basicamente, o que Forge faz é que Forge tem diferentes estágios para configurar certas coisas, certo? Então, na configuração, por exemplo, geralmente o que você faria aqui seria algo como uma colocação
nas configurações e talvez colocar em soma. O que mais declarando capacidades. Então, há coisas diferentes que você faz em diferentes estágios, o que faz sentido, é claro. E o que fazemos com este buraco aqui é simplesmente dizer, ok, hey, este método deve ser chamado quando é hora para a configuração, e este método deve ser chamado quando é hora enfileirar IMC é e, em seguida, processar IMC. E então, no final, isso deve ser velho quando é hora de as coisas a fazer recusadas. E isso é basicamente o que significa a coisa toda aqui, certo? Portanto, obter os contextos de carregamento, obter Mode, Event, bus, adicionar ouvintes é simplesmente uma maneira de garantir que certas coisas aconteçam em determinados momentos. Porque se temos vários modos e eles apenas inicializam sempre que quiserem, você sabe, alguns inicializam as receitas no início, alguns inicializam as receitas no final. É tudo loucura. Que isso realmente não funciona. É por isso que a forragem agiliza isso usando esses ouvintes. E eles são, a única coisa real que nos interessa é a primeira e a última. Os que estavam no meio eram, na verdade, como a coisa toda. Nós nunca vamos falar sobre todo o curso porque esses são comunicação inter mod. que significa que isto é, estes são métodos para se comunicar com outros mods. E porque estamos construindo apenas um mod aqui neste curso, nós não vamos realmente entrar nisso em tudo. Portanto, é realmente possível excluir isso. E eu realmente sou como excluir este final ambos os métodos em uma palestra posterior na seção avançada. Só para notar, isso vai ficar lá para o comprimento do, digamos, o, Eu acho que é o início do modding Minecraft. Mas você já pode excluir se quiser. Mas você não precisa. Claro, você pode simplesmente deixá-lo ficar como está e nada mudaria. Agora a configuração e as coisas do cliente são realmente coisas que vamos usar. Agora, mais tarde, na seção avançada, vamos realmente olhar para uma maneira diferente de fazer as coisas do Cliente. Mas para o propósito disso, vamos mantê-lo assim. E, no entanto, isso é basicamente o que essas construções significam aqui. Em seguida, como o comentário já diz, escreva nos registrar para servidor e outros eventos de jogo que estamos interessados. Isso simplesmente significa que nós realmente temos acesso ao que temos aqui em baixo, V assinar eventos, que nós vamos ver mais de mais tarde na linha. E isso é simplesmente para nos registrar mais uma vez em termos de eventos que acontecem. Certo, então é claro que temos os dois métodos que estão sendo chamados para adicionar ouvintes. Então temos uma ação como M assinar evento onde temos em servidores começando. Então isso é, isso acontece somente quando o serviço é iniciado. E então aqui em baixo nós realmente temos eventos registrados. Agora, este é um método que realmente excluímos ou excluirá em um vídeo futuro. Na verdade, não tenho 100% de certeza, mas isto devia ter desaparecido. mesmo com o armazenamento do servidor neste caso. Porque mais uma vez, em futuras palestras, especialmente na palestra avançada, nós realmente vamos passar e limpar e refatorar um pouco do código. E lá também vamos descobrir uma nova maneira
ou uma maneira diferente de fazer a separação do lado do cliente e do servidor. Mas esta é uma espécie de visão geral básica da classe principal do MC CourseMart. E sim, vamos dar uma olhada na aula de matrícula, certo? Então, dentro de nossa classe de registro, temos os dois registros diferentes de tipo bloco e de tipo item. E então temos esse método de registro onde nós realmente registramos isso também. Então vamos apenas pensar sobre isso antes de tudo, aqui
em cima para que o registro diferente. Então, uma coisa que você pode fazer, se algum dia você se sentir preso, você também pode simplesmente segurar a tecla Control e passar o mouse sobre qualquer classe ou qualquer método e, em seguida, basta clicar nela. E você será imediatamente, enquanto a turma abrirá imediatamente. E como podem ver, há algumas coisas aqui que podem ajudar. Então, os bens comuns estão lá dentro. E então podemos realmente ver, OK, o que é isso? Portanto, o registro diferente é uma classe de utilitário para ajudar com o gerenciamento do registro. Mantém uma lista de todos os fornecedores para entradas e os registra durante o evento de registro apropriado. Como podem ver, quase já temos a resposta do que isto escreve. Simplesmente tem uma lista de todos os fornecedores. E isso é algo que vamos ver nos itens mod, bem este ano onde registramos algo. Este é o lugar onde tivemos um fornecedor para um novo item e um novo bloco, por exemplo. E isso é exatamente o que o terceiro registro mantém o controle. E então simplesmente garante que o jogo sabe sobre,
hey, estes são os blocos que eu tenho, estes são os itens que eu tenho. E é aqui que entram os registos adiados. Então eles basicamente estão, portanto, certificando-se que o jogo sabe sobre essas coisas. E o que posso mostrar rapidamente a vocês, por exemplo, é se temos um novo registro adiado aqui, e vamos rapidamente tudo isso, seja lá o que for. E vamos olhar para registros diferentes que criam. O que podemos ver aqui é o ponto de registros de porta. E estes são todos os tipos de registros que podemos realmente olhar para ele. Então podemos fazer novas poções, podemos fazer novos fluidos,
entidades, podemos fazer novas entidades de azulejos. E algumas dessas, é claro, também
são coisas que vamos adicionar mais tarde na linha em palestras posteriores. Essa é basicamente a idéia por trás do registro diferente é simplesmente uma lista ou digamos um registro de todas as coisas que queremos que o jogo saiba sobre. E neste caso, definimos estes pelo tipo que queremos saber, que queremos registrar, certo? Então, primeiro nós dizemos a, este é um registro para blocos. Então, digamos uma lista de bloqueio. Não é bem uma lista, mas vamos pensar nisso assim. Então temos todos os blocos que queremos definir, e então temos todos os itens que queremos defini-los. No futuro. Nós vamos adicionar maneira, maneira, maneira, mais tipos que queremos definir. E então cada vez vamos criar um novo registro diferido. E agora este método de registro aqui, como você pode ver, há algo. Pareceosamente semelhante a este aqui. E isso é exatamente o que tínhamos aqui, certo? Então nós já temos isso, vimos isso antes, certo? Isso é simplesmente o FML Java carregando contextos dot get, ponto ponto ponto ponto de evento, ouvinte ponto-ponto. E em vez de fazer o aprendiz do atlas, o que realmente vamos fazer é fazer dispostos, inverter isso. Então vamos pegar esse ônibus de eventos e dizer que os blocos se registram e depois entregamos o ônibus do evento. Agora isso faz basicamente exatamente a mesma coisa que o contrário. Nós vamos fazer isso dessa maneira. Porque, bem, significa simplesmente que é assim que deve ser feito. E isso então, enquanto este registro diferido, quando entramos nos itens de lama e dizemos, hey, este é o terceiro registro, aqui é onde nós temos a lista no registro diferido agora sabe sobre ele. Mas então forge também precisa saber sobre esses registros diferentes. E é por isso que registramos aqueles com o barramento de eventos
no método de registro aqui dentro da classe de registro. Agora, indo para a frente para os itens mod, nós já pensamos sobre isso um pouco, certo? Assim, o registro de itens de ponto de registro simplesmente está chamando o registro mais uma vez. E, neste caso, dizemos apenas oito. Então queremos registrar isso dentro dos itens registro diferente. E nós, é claro, precisamos tomar fornecido o fornecedor. E isso é o que então acontece, também
é necessário criar um novo item para isso. E isso basicamente, em seguida, garante que ele
é, é conhecido pelo jogo, mas também pode ser dado um novo item propriedades aqui. E, claro, neste caso, nós apenas dar-lhe um grupo de itens iria, naturalmente, adicionar ainda mais. Certo? E então por que usamos o tipo de objeto de registro aqui? Bem, eu gosto de barco sem rodeios. É basicamente simplesmente o tipo de retorno
do método de registro aqui a partir da gravação de registro diferido. E também podemos ver lá embaixo, ele adiciona um fornecedor à lista de entradas a serem registradas, retorna um objeto de registro que será preenchido com a entrada criada automaticamente. Então basicamente faz todo o trabalho para nós automaticamente para que possamos usar este lingotes de cobre são exemplos de seu objeto de registro. Então podemos realmente usá-lo. Bem, em qualquer lugar no modelo onde
quisermos, precisamos usá-lo, certo? Então temos uma referência, uma referência estática para este item já em vigor. Bem, não fizemos referência ao objeto de registro, mas é tão bom quanto o item porque podemos simplesmente obter o item usando.gov, por exemplo. E esta é uma espécie de razão pela qual usamos o objeto de registro aqui. O Y que temos este método de registro é simplesmente tem a ver com a maneira que quando você tem estático, quando você tem membros estáticos em uma classe e você não chamou um método nele ainda. Em seguida, há alguma estranheza com o, com o carregamento, com o carregamento na ordem diferente. Então, é, você sabe, isso realmente precisava. E quando se trata dos blocos MOD, bem,
isso é, quero dizer, quase exatamente a mesma coisa, mas nós temos um objeto de registro mais uma vez, apenas desta vez com blocos, certo? E aqui em baixo nós fizemos outro método. Agora, isso também pode ser um pouco confuso no início, mas eu acredito que eu expliquei isso nos blocos. E o bloco 1, talvez não seja bom o suficiente. Então a idéia aqui é simplesmente que, em vez de chamar o método Register blocos dot diretamente, nós estamos realmente indo para colocar tudo isso dentro de um método privado. Porque nós também, além do bloco, também
queremos registrar o item que pertence a esse bloco, certo? Que é um item de bloco. Claro que sim. Agora, para fazer isso, nós simplesmente dizemos, hey, vamos apenas fazer isso neste método de registro porque isso é muito
mais fácil do que escrever isso primeiro e depois escrever o segundo cada vez que você faz um bloco, podemos apenas dizer, bem, Vamos refatorar isso em um método. E é por isso que esse método está no ano. E parece um pouco diferente em relação à classe MOD Items, certo? Esse tipo de arredonda isso fora. Espero que isso tenha sido útil para você. Entendo que existem alguns conceitos que foram, naturalmente, um pouco mais avançados podem ser lançados aqui. E isso é uma espécie de vídeo de explicação extra. Espero que esteja esclarecido pelo menos algumas coisas. E daqui para frente, espero que outras palestras sejam mais esclarecedoras, digamos que de qualquer maneira, se houver alguma dúvida sobre isso, então, sobre qualquer outra coisa, é
claro, isso foi um pouco mais teórico, Digamos que na natureza. E nós apenas passamos por,
as aulas um pouco. Mas sim. Então, se não houver perguntas, é claro, sinta-se livre para perguntar e eu serei S1 menor. E sim.
44. Adição de novos trabalhos: Tudo bem, vamos continuar com o curso de Minecraft. E como mencionado na última palestra, Eu já adicionei o cobre ou, e os fios de cobre no jogo. E certifique-se de que, se você não fez isso, realmente certifique-se de olhar para a última palestra. Ou você também pode encontrar um arquivo de texto nesta palestra com todas as coisas que você precisava adicionar e as classes que eles precisam ser adicionados. E sim, apenas certifique-se de seguir isso e aquilo até o jogo porque isso vai ser importante agora. Mas, no entanto, nesta palestra vamos realmente criar nossa própria guia. Então, nossa própria guia no menu, no menu criativo. E isso não é tão difícil. Então o que vamos fazer é criar um grupo público de itens finais estáticos, que vamos chamar, digamos, claro guia. Vamos fazer esta guia do curso. E este vai simplesmente ser um novo grupo item. E então ele vai gerar automaticamente um monte de coisas aqui. Dentro destes parênteses, vamos ter o nome. Então, isto vai ser pior, digamos. E então aqui ele realmente uma vez um, um ícone. Então esta é uma pilha de itens que retornamos e vamos simplesmente retornar uma nova pilha de itens. E nós vamos fazer os itens mod que vamos fazer o ponto de fio de cobre obter. Então, na verdade, vamos devolver nosso fio de cobre. E aqui também precisamos de um ponto-e-vírgula no final. E então nós realmente já criamos, agora para usar isso, nós realmente precisamos entrar em nossos blocos de lema e itens de
Ahmad e mudar o grupo aqui para nosso novo grupo que criamos. Então MC CourseMart dot guia Curso. E, em seguida, aqui também, MC ponto-ponto guia Curso. Vamos copiar isto e pô-lo aqui também. Então agora ambos são lingotes e nosso fio e também nosso bloco e nosso
ou, ou todos nós também sempre e cada item que
criamos depois vai estar sempre dentro de nossa própria guia. E podemos, claro, criar ainda mais guias. Mas no nosso caso, acho que uma guia será suficiente para os propósitos deste curso. Não vamos criar 1000 itens. E nós vamos mantê-lo, você sabe, talvez em três dígitos. Não, só estou brincando. Claro que sim. Não vamos criar tantos itens ou blocos. Sim, vamos ver se isso realmente funcionou e como isso vai ficar dentro do nosso jogo. Primeiro, o nosso quarteirão e a Ingrid ainda estão lá. E então podemos ver que temos uma segunda página aqui. E aqui em cima, podemos realmente ver que isso está funcionando. Agora. Há realmente item agrupamento ponto guia Curso ainda não está localizada, mas nossos itens e nossos blocos estão todos lá. Então isso é ótimo. Mas ainda precisamos localizar isso. E isso é claro que está acontecendo na EN nós, Jason. E isso também não é tão difícil. Nós só vamos fazer o item Grupo ponto guia Curso. E essa vai ser a guia Curso, e é isso. E então isso é localizado e isso é basicamente tudo o que precisamos fazer para o para que quando você passar o mouse sobre ele, você realmente obter um texto diferente exibido. Sim, e é isso. Isto é realmente como é fácil criar uma nova guia de curso e um novo grupo de itens. Então, sim.
45. (Minecraft) crie uma nova receita: Tudo bem, vamos continuar com o curso de Minecraft. E nesta palestra, nós vamos realmente criar uma nova receita, certo? Então vamos criar nossas próprias receitas. E eles podem ser o que quisermos, o que você possa imaginar. Mas antes de tudo, precisamos criar algumas novas pastas. E a primeira pasta está dentro da pasta de recursos, precisamos adicionar um diretório, que vai me dar dados chamados. E então isso, neste diretório, nós realmente criamos o diretório de curso MC novamente. Então este é basicamente o nome do seu mod ID. Então, a AID. E dentro disso temos uma receita,
receitas, receitas, pasta de modo plural. E dentro disso vai E, vai as receitas. Então, por exemplo, digamos que queremos criar uma receita para o bloco de cobre, certo? Cobre blog.js Jason. E basicamente como é a maneira, desta
forma, isso é estruturado, é basicamente com o tipo de receita. Então, neste caso, este vai ser um receitas em forma, então crafting em forma. E então precisamos especificar um padrão. Agora esse padrão se parece com isso. Não, na verdade são esses suportes. E então esse padrão é basicamente três cordas. E você geralmente quer escrevê-las assim, porque então fica mais fácil imaginar. E então teremos um padrão. Então, digamos XXX, XXX, XXX. E esta é basicamente a sua mesa de artesanato, certo? Então esta é a primeira linha, segunda linha, terceira linha. E se deixarmos, por exemplo, este vazio, isso significaria que a parte do meio do,
do crafting, a mesa está realmente vazia. Naquele ponto. Na verdade, vamos fazer XXX por toda parte. E agora precisamos especificar o que é isso. Então nós realmente precisamos especificar uma chave, mais
uma vez aqui com colchetes. E então queremos especificar, ok, o que é X, o, o que é x? E x é um item. E no nosso caso, este é o curso MC. Pior. Lingote Hopper, certo? Porque isso realmente faz sentido ter nove lingotes de cobre fazendo um bloco de cobre. Mas onde especificamos o bloco de cobre? Nós vamos, nós vamos especificar isso no resultado aqui em baixo. E isso vai ser outro item. E isso vai ser Mc, pior. Então este é o nosso MOD ID novamente, e então o nome deste item. E isso já tem. Quando se trata de criar uma receita em forma. Vamos dar uma olhada nisso. Vamos realmente dar uma olhada na receita sem forma também. Então vamos criar um novo arquivo e que vai ser o ponto de lingote de cobre JSON. Então, basicamente, o, exatamente o contrário. Então aqui nós realmente digitamos, mais uma
vez um tipo e que vai ser rafting Minecraft, sem forma desta vez. E então podemos especificar grupo, mas não precisamos, então vamos manter isso vazio agora. E então ele realmente puxou em ingredientes. E aqui, temos uma coisa dessas. E agora eu não sei, Nueve formatou tão estranhamente, mas tudo bem. E então eles vão ter itens nele. Então item e, em seguida, MC, curso, bloco de cobre. Outra razão pela qual queremos que isso seja sem forma é basicamente porque queremos que ele seja capaz de colocá-lo em qualquer lugar na mesa de fabricação. Em um quatro por quatro, em um três por três, qualquer que seja uma mesa de artesanato que temos e ainda temos, devolva isso. E isso vai ser um resultado
do item MC curso Copper nele, certo? E então podemos realmente especificar quantos. Então podemos especificar a contagem nove neste caso, certo? Porque precisamos de um nove para criar um par de quarteirões. E então podemos usar nove. E então usamos um bloco de cobre para recuperar o nove. Então isso, você pode, a propósito, toda vez que você faz um resultado, você pode fazê-lo assim também. Então você poderia, em teoria, dizer “contar dez “e você obteria dez blocos de cobre dele. Claro, isso não faz muito sentido. Então isso realmente deve funcionar. Agora, totalmente bem. Vamos tentar. Vamos correr e vamos nos ver no microondas uma vez que tenha carregado. Então, sim. Tudo bem. Agora estamos no Minecraft e eu já coloquei uma mesa de artesanato e vamos ver se isso funcionou. Então, se nós enchermos isso, você pode realmente fazer um bloco de cobre. E também podemos colocar o bloco de cobertura dentro e tirar os nove lingotes. E isso é, a propósito, também adicionado aqui. Então isso funciona totalmente bem. E o sem forma na verdade significa que, como eu disse, podemos colocá-lo onde quisermos. E nós também podemos, se estamos em não, desculpe. Desta forma, se estivermos em sobrevivência e pudermos colocá-la aqui e também tirar as nove peças, não há problema algum. Então sim, é basicamente assim que você pode criar novas receitas. E mais uma vez, depois disso, há uma tarefa muito curta que não deve ser
tão complicada onde você realmente tem que criar duas receitas próprias. Como eu disse, não deve ser tão louco ou tão difícil. E sim.
46. (Minecraft) gotas com telas de loot: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos falar sobre tabelas de saque e o que acontece quando blocos são destruídos e eles devem soltar itens. Então, em nossos blocos simulados, temos dois blocos agora, o bloco de cobre e o cobre ou bloco. E o que queremos criar basicamente é algum tipo de sistema onde quando quebramos o bloco de cobre, o cobre ou o bloco, então ele realmente derruba o item. Agora como fazemos isso é com tabelas de saque, e isso não é tão difícil. Vamos criar uma nova pasta aqui sob os núcleos MC de dados. E esta pasta, este diretório vai ser chamado de tabelas de sublinhado de saque. E então dentro desse diretório, vamos criar outro diretório, e isso vai ser chamado de blocos. E dentro de lá, vamos criar um novo arquivo, e isso vai ser sublinhado de cobre ou assim. Mais uma vez, o nosso nome aqui, Jason. E eu vou rapidamente copiar sobre algo que já preparou e então vamos falar rapidamente sobre isso. Então, a primeira coisa que especificamos como basicamente o tipo que queremos retornar. E então nós temos que criar uma espécie de ou melhor, o tipo que é que tem sido saqueado tabela, por assim dizer. Então destruímos um bloco, certo? E depois devolvemos outra coisa. Agora. Então temos que especificar um pool. E esta piscina é basicamente, em certo sentido, nós rolamos, neste caso uma vez. E então você pode, por exemplo, um lugar certo trans para ter algo ser deixado cair. E neste caso, vamos apenas rolar 1s e vamos dizer,
bem, aconteça o que acontecer, sempre vai deixar cair um tipo de cobre ou item, certo? Então aqui nós especificamos, hey item. Então este é um item, guerra de cobre. Isso é basicamente a magia agora fora do bloco cai. Vamos apenas olhar para isto por um segundo e eu vou ver o que isso traz. Isto vai começar o microscópio. E aqui estamos nós em nosso mundo. Agora, vamos realmente mudar para o modo criativo e dar-nos alguns blocos de cobre acoplados ou blocos. E também obter um belo porco atos com o qual podemos minerar isso. Então vamos apenas estabelecer essas fechaduras e então realmente mudado de volta para o modo de sobrevivência, não, modo de sobrevivência, um ego. E então podemos irracional e colocar todos os 0s ou realmente cai comparável ou blocos. Então, podemos apenas cuidar disso. E lá vamos nós. Agora, com os blocos de cobre em si, eles não deixam cair nada porque eles não têm uma tabela LU associada a eles. E isso também é algo que deve ser feito como uma tarefa. É uma missão muito, muito pequena. É basicamente apenas alterar uma variável no arquivo JSON e adicionar isso. No entanto, acrescentarei também. Isto é muito importante. Toda vez. Permitam-me que feche rapidamente isto. Toda vez que adicionamos um novo item nos blocos MOD ou um novo bloco na classe blocos. No futuro. Eu não vou especificar como eu não vou especificar especificamente como adicionar uma nova tabela Lu. Eu vou deixar isso basicamente fazer é entre palestras. Porque para os nossos propósitos, as tabelas LU para os blocos não são tão difíceis. E é basicamente apenas copiando o arquivo, mudando de como basicamente apenas o nome. E então é isso. É por isso que cada vez que vamos adicionar outro bloco, eu não vou gravar por que como eu adicionar a tabela LU. Talvez eu diga rapidamente que você precisa adicionar essa nova mesa você mesmo. No entanto, eu vou. Quando você baixar as alterações para
que quando você pode olhar para as mudanças para cada uma das palestras, você pode realmente ver que eu forneci as tabelas LU para todos os blocos também. No entanto, eu não vou gravado especificamente porque eu não sinto que isso vai obter qualquer valor fora dele. Me veja copiar e colar algo, e depois mudar um nome. Não parece ser grande coisa, certo? Sim, isso é basicamente tudo o que há para adicionar uma mesa de banheiro agora e adicionar uma queda de bloco. Então, sim.
47. (Minecraft) crie um novo Item de alimentos: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar nosso próprio item de comida. Então, para fazer isso, vamos criar uma nova classe dentro do nosso pacote de itens. E isso vai ser uma nova classe Java resfriado cobre Apple. Foi a melhor coisa que inventei, se for absolutamente honesto com isso. E isso vai estender o item. E então nós vamos criar um novo construtor aqui sem nada nele. E nós vamos simplesmente devolver o nosso realmente vamos fazer super, é ainda, ainda melhor. E dentro daqui, vamos fazer novas propriedades. Então, esta é basicamente as mesmas propriedades do item que fizemos dentro de nossos itens mod aqui. Mas vamos fazer isso aqui porque também queremos especificar algumas outras coisas. Porque isso é, bem, isso será considerado um item alimentar e, portanto, nós realmente queremos fazer este ano. Então, vamos primeiro fazer algo como se fôssemos fazer grupo de pontos, sem grupo. E este vai ser apenas curso MC, guia curso novamente. E agora queremos adicionar a propriedade da comida aqui. Dentro daqui vamos criar um novo construtor de dados alimentares. E há a construção de alimentos são basicamente permite que você junte um monte de propriedades também. É o mesmo com propriedades, mas neste caso, nós realmente queremos criar propriedades alimentares. Então, por exemplo, talvez fome cinco. E então vamos formatar um pouco diferente. Lá vai você. E então vamos fazer a saturação 1.5. E depois vamos fazer um efeito. Então isso vai ser interessante. O efeito é basicamente qualquer efeito de poção que podemos colocar em qualquer efeito de poção para que precisamos de um fornecedor de um, de uma instância de efeito. Então vamos fazer uma nova instância de efeito. Em vez de aqui, acho que soprar pode ser o melhor. Esta é a duração e este é o amplificador. Então, só vamos fazer um. Vamos diminuir um pouco e ser um pouco pequeno, provavelmente, mas espero que ainda seja legível. E depois da instância do efeito, aqui vamos criar, vamos escrever em uma probabilidade flutuante. E depois do efeito pato faturado, eu também vou colocar a próxima linha. E então tão perto, e é isso. Lá vamos nós. Apple corporativa. Isso é basicamente tudo o que precisávamos fazer para que isto fosse um alimento. Agora, é claro, também precisamos registrar isso em nossa classe de itens mod. Então vamos fazer final,
estático, final do que registro, objeto de
registro, você sabe o item de perfuração. E esta vai ser a maçã de cobre. E isso vai ser itens de registro ponto, registro DOT. E agora vamos fazer o cobre,
cobre , cobre na Apple. E então isso é em vez de devolver um novo item, nós vamos realmente devolver uma nova Apple corporativa, e é isso. Então não vamos passar nada porque já fizemos isso aqui. Agora, é claro, o que poderíamos fazer é também dar ao construtor um perímetro de propriedades e, em seguida, passá-lo para dentro e, em seguida, fazê-lo assim. Tenho que ser honesto, isso funciona muito bem também. Você pode, no entanto, alterá-lo se quiser ou você também pode experimentar um pouco. Isto é também algo que tenho de mencionar que é extremamente importante. Eu só experimento com algumas coisas. Se você pensa por quê, por que isso é feito assim? Então talvez tente de outra maneira e talvez vá funcionar ou talvez jogue uma flecha que, espero, então, diga o porquê. Talvez a abordagem que você pensou
não funcionou, ou talvez você tenha que mudar alguma coisa. É muito importante apenas experimentar de vez em quando. Está bem? Mas há algumas outras coisas, é claro, que precisamos acrescentar. Então precisamos adicionar, é
claro, a nossa textura agradável. Então vamos adicionar textura, mas aqui vamos copiar isso rapidamente. Sim. E, em seguida, vamos também adicionar o JSON para o modelo. Este vai ser um novo arquivo. Este vai ser o ponto de maçã de cobre JSON. E então eu vou copiar isso rapidamente porque nós vimos isso algumas vezes agora. Olha, não deveria ser uma surpresa. E então nós, e então nós só precisamos adicionar isso aqui. E nós vamos realmente fazer isso. E então eu tenho este aqui. Item.Name pontuações ponto cobre. A Apple vai ser copiada. Maçã. Certo? Agora. Também podemos adicionar imediatamente a receita, mas não precisamos disso agora. Vamos, antes de tudo, começar o Minecraft e ver o que temos lá dentro. E como outra nota para esta experimentação, ou realmente, eu realmente acho que isso é uma coisa importante a se fazer. Bem, o Minecraft começa aqui. Eu só vou mencionar isso. Apenas experimente um pouco. Tipo, eu acho que é bom se você passar pelo curso uma vez, que experiência. E há algumas outras palestras onde eu vou falar sobre isso um pouco, em um pouco mais de detalhes, especialmente no final. Mas a experimentação, isso é como você realmente gosta,
realmente aprendeu os prós e contras absolutos no final. Porque às vezes há coisas especiais que você quer fazer que não são cobertas aqui. E eles vão para a Apple corporativa. E agora o que podemos fazer,
podemos, na verdade, voltar à sobrevivência, e depois comer um. Podemos mesmo comê-lo. E isso é provavelmente porque não temos fome. Então, vamos realmente ser fáceis. Caso contrário, você não vai nos construir um pouco, sofrer algum dano e então, e então, vamos ver. Tudo bem, então isso é, isso deve, em algum momento da nossa fome. Indo. Lá vamos nós. Está bem. E agora o que podemos fazer? Se tivéssemos? Agora, na verdade, não temos 50% de chance agora, porque é apenas 50% de chance de chegar ao efeito brilhante. É muito, muito importante porque foi o que especificamos. Vou mostrar isso mais uma vez. E nós realmente conseguimos. E esperemos que consigamos. Vamos ver, lá vamos nós. Agora estão brilhando. Isso não é ótimo? Legal, certo? Então isso é basicamente como você adiciona um item de comida. Agora eu realmente quero voltar rapidamente porque nós, isso estava na Apple corporativa e isso é bem aqui. Anote a probabilidade para baixo. Então isso afeta a instância. E é, então é realmente o efeito em si. Na verdade, temos que especificar uma probabilidade. Isto é 50%, certo? 0,5 foi apenas 50%. Se colocarmos um, então ele vai disparar o tempo todo. Agora, como eu disse, eu coloquei 50%. Poderíamos, por exemplo, imaginar que isso poderia ser alguém que é configurável, certo? Então nós temos um arquivo de configuração, qual também vamos falar em uma palestra posterior. E poderíamos então talvez dizer, bem, por padrão seria 50%, mas talvez alguém queira. Ei, eu realmente queria 100% do tempo. Quero ter o efeito brilhante quando o comeres. Então isso vai ser uma coisa interessante a considerar. E isso é basicamente como você adiciona um item de comida. Não é tão diferente de apenas adicionar um item normal. Neste caso, é apenas adicionar esta propriedade alimentar ao item. E sim.
48. (Minecraft) crie um novo conjunto de ferramentas: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar nossas próprias ferramentas. Então isso vai ser interessante, definitivamente. E também vai ser um pouco tedioso porque nós vamos basicamente
fazer uma coisa muito semelhante cinco vezes mais. No entanto, vou criar uma pá,
uma espada, picareta, Ho, e um machado. Tudo nesta palestra. E bem, acho que vamos começar. Então, nos itens de lama vamos criar um outro objeto de registro. Então, uma notícia pública estática, objeto de registro
final do tipo item. E o primeiro que vamos tentar será a pá de cobre neste caso. Então, e isso vai ser registro pontos itens registrar e, em seguida, dar-lhe o nome pá sublinhado cobre. E este vai ser um novo item de pá neste caso. Agora, nós realmente precisamos fornecer uma camada de item aqui. E antes que possamos continuar com isso, nós realmente precisamos adicionar uma nova camada de item para o nosso modo porque isso não faz nenhum sentido. Então, o que podemos fazer, eu posso mostrar a vocês para que possamos fazer a camada de item. E então temos Woodstock outra gravação, ferro, ouro e diamante. Mas que talvez, você sabe, nós queremos nossos itens completamente próprios aqui porque, bem, quero dizer, por que ficar em dívida com as outras coisas que podemos criar completamente do zero, nossa própria coisa. Então vamos fazer isso em nossos itens de mapa completamente na parte inferior, abaixo da função de registro. Vamos criar uma enumeração pública, e isso vai ser chamado de item do mercado aqui. E isso vai implementar a interface muito agradável de itens aqui. E então vamos implementar métodos. Esses são os métodos que vamos implementar. Essas são também as diferentes coisas que temos de especificar. Então, essa é basicamente a primeira coisa nesta aula que vamos fazer é pegar cobre. Então isso é basicamente o cobre enumeração. E então vamos especificar também que tipo de valores de retorno ele tem para cada uma dessas variáveis diferentes, que agora vamos criar. Então este vai ser o nível de colheita final privado, certo? Então isso é basicamente o que você pode minar no final. Então você vai criar um int max privado final usos. Esta é a frequência com que você pode usá-lo. Então, basicamente, a durabilidade do, da ferramenta. E você vai ter um carro alegórico final. Eficiência. Este é basicamente o modificador de velocidade. Quão rápido podemos realmente nos importar com alguma coisa. O dano do ataque vai ser,
bem, o dano do ataque é engraçado o suficiente. E então temos um int, que é a ensinabilidade de Incheon. Isto é apenas o quão bom de um transmite você pode colocar lá. E então vamos ter um gradiente em que vai ser reparado. Um material de reparo, realmente material. E isso é que especifica que tipo de material podemos usar para reparar esses tipos de itens ou este sim, este item. Então temos um monte de flechas aqui. Não se preocupe, o que podemos fazer é que podemos apenas, agora, depois de termos especificado todos esses, você pode realmente passar o mouse sobre eles e dizer Adicionar parâmetros do construtor. E agora podemos selecionar todos eles. Então nós podemos apenas selecionar um ou Shift e, em seguida, selecionar o outro ,
direita, assim e que ele vai selecionar todos eles. Então nós vamos dizer, ok, e isso está tudo bem. Apenas diga refatorar. E agora nós realmente temos um novo construtor criado aqui que já tem tudo nele, o que é realmente bom. E agora este, é claro, precisamos especificar algumas coisas aqui, mas isso não é para se preocupar. Então essa é a primeira coisa. Então, talvez nível de colheita, vamos fazer dois. Max usa 150. Só vou colocar alguns números. A lista será deficiência para 0,5. Nós não vamos ter nenhum dano de ataque por conta própria. E interpretabilidade vai ser como um 15, então não é tão ruim. E então vamos criar um novo ingrediente, na verdade, desculpe-me, o ego. Isso vai ser ingrediente e isso vai ser a partir de pilhas, nova pilha de itens. E então isso vai fornecer os itens mod
começar a cobrir porque copo e, em seguida, ponto GET muito importante. Apenas para criar uma pilha de itens, nós realmente precisamos ter um provedor de item neste caso. E isso é feito com o uso do método get aqui em nosso item. Sim, isso é basicamente o que precisamos fazer para especificar cobre. Agora, por exemplo, se tivermos um, oops, se tivermos um talvez outro em um futuro, talvez queiramos adicionar, você sabe, minium de alumínio ALU. Bem, isso vai irritar algumas pessoas, alumínio ou alumínio. E então podemos, por exemplo, ter algo novo, muito importante. Então não entramos com um ponto-e-vírgula, mas com uma vírgula. Porque isto ainda é basicamente uma enumeração. Isso é apenas, você sabe, como uma nota lateral basicamente. Mas sim, agora vamos mantê-lo no cobre. E agora, na verdade, também precisamos retornar essas variáveis aqui. Então nós podemos realmente fazer o nível de colheita retornar, então retornar eficiência, retornar o ataque, dano, nível de colheita, a habilidade de encantar, e aqui mesmo o material de reparo, certo? E isso é tudo o que precisamos fazer para o nosso lema aqui. Como eu disse, você pode adicionar quantos anos quiser. Você sabe, você pode adicionar cobre e em seguida, talvez zinco e alumínio e todos os tipos de outras coisas que você pode querer adicionar. Neste tutorial, vamos apenas adicionar palestra de laranjas. Especificamente, vamos apenas adicionar COP. Ok? Então vamos então voltar aqui e, em seguida, realmente dizer item mod tier dot cobre. E essa é a beleza do que fizemos. Em vez de ter que usar o ferro ou outras coisas, podemos realmente usar o nosso próprio. Agora, então nós vamos fazer 00 por isso e então nós vamos rapidamente para novas propriedades de itens? Não, definitivamente não que eu não saiba o que ele está fazendo aqui. Item.Name, propriedades, por favor. Obrigado. E isso vai ser isso sim, na verdade, sim. dano padrão de Macs vai ser um 150. E então vamos adicionar um tipo de ferramenta. Este é o Lake. A coisa mais importante lá vai ser uma pá tipo ferramenta ponto, é
claro, e o nível vai ser dois. E, no final, vamos adicionar um grupo. E esta vai ser a nossa, é claro, a nossa própria conta. E isso já é ID. Agora, este dano de ataque neste modificador de velocidade ou basicamente, você sabe, como, quão rápido você pode acertar algo e quanto dano ele causa. Eu diria que uma pá neste caso não causa tanto dano. E nós estamos realmente indo para completar a pá e então nós vamos adicionar as outras depois. Então só temos isso feito. Então, para adicionar a pá, é claro que também precisamos fazer isso aqui. Tudo bem, então nós realmente sabemos que isso está sob item, mas eu vou quebrar isso fora do grupo principal porque este é como um item especial. Digamos que esta vai ser a pá de cobre, e esta vai ser a taxa de pá de cobre. E, em seguida, dentro de nossos modelos de itens, é claro que precisamos ter isso também. Então o cobre sublinhado pá db.json. E isto vai parecer algo assim. Só um segundo que lá vamos nós. É isso, certo? Como você já viu, este item foi gerado. E, em seguida, na camada 0, nós só vamos ter m pontuações item, flash, pá de cobre. E então, é claro, precisamos fornecer a textura também. Nós vamos fazer isso. Eu só vou copiar rapidamente este sobre 2p. E sim, claro. E então temos a pá de cobre lá dentro também. E então a própria pá já deve funcionar perfeitamente bem. Vamos ver. E vamos ver o que é isso. Agora. A grande coisa definitivamente foi o nível simulado, conseguir isso feito. E então os outros são basicamente um pouco de copiar e colar o mesmo código que já temos, certo? Nós apenas criamos diferentes tipos de objetos. Então vamos criar um item de espada, piquetes, e assim por diante. Portanto, isso é tudo o que realmente é necessário lá. Então vamos ver o que acontece aqui quando entrarmos aqui. Então, antes de tudo, mude para o modo criativo. E vamos ver. Aha, há. Então nós realmente temos isso. Isso não foi Oh, eu
coloquei um item em vez de item? Item MCQs, pá de cobre. Bem, eu esqueci eu no final, então essa é a razão pela qual isso não está funcionando, mas está tudo bem. Então vamos ver e ver se podemos realmente cuidar de alguma sujeira conosco. E sim, podemos. Definitivamente muito mais rápido do que não é muito mais rápido, mas é um pouco Foster. E vamos ver areia. Sim. Sanders definitivamente mais rápido do que com uma mão. E também podemos ver que isso tem um dano de ataque de 100 em velocidade tecnológica de quatro. Então, na verdade, o livro é bastante alto. Consideradas todas as coisas. Ok, então, mas não é muito eficaz
como uma ferramenta para matar pessoas. Matar pessoas. Quero dizer, matar outros jogadores de Minecraft ou máfia neste caso, mas sim, mas está, está funcionando. Então nós podemos realmente usar isso para extrair itens. E como você pode ver, ele também tem uma durabilidade. Então isso vai quebrar assim como os outros também. Mas o que também podemos fazer é olhar rapidamente,
por exemplo, se soubermos que não é isso que eu quero. Na verdade, eu queria uma bigorna. Desculpe. Era isso que eu queria uma bigorna. E eu vou fazer é que podemos olhar para isso, podemos colocá-lo aqui. E se colocarmos nossos lingotes de cobre, podemos realmente reparar isso. Isto é basicamente o que especificamos com o ingrediente lá. E isso é, isso também está funcionando perfeitamente bem. Então isso é muito bom. Vamos guardar isso e sair do jogo aqui. Primeiro de tudo, vamos consertar este porque é só que é embaraçoso. Sim. E então basicamente o resto é um pouco de cópia e colagem. Então nós vamos apenas bobber vai passar por isso juntos porque, por que não? E depois vamos ter uma espada de tremonha. Isto vai ser um item. E então você realmente tem que especificar,
bem, talvez até aqui. E isso é, a propósito, não um flutuador sobre um, um inteiro porque o curto faz muito mais dano. E então este muito importante tem que ser feito. Na verdade, não precisamos de um tipo de ferramenta para a fonte porque a fonte é aquela que não tem um tipo de ferramenta. E então temos um machado de cobre. Certo? Como eu disse, é um pouco de copiar e colar. Neste caso, estamos adicionando uma linha inteira de ferramentas, e este é um item de picareta. Este também é um inteiro para o ataque. E então nós vamos criar um, Que tal um porão de cobre? E quero dizer a ferramenta, por favor, mantenha PG aqui. E isto vai ser um buraco de cobre. E este é um “oh, item”. Este aqui, como você pode ver, algumas das coisas não estão localizadas, mas isso não importa porque nós realmente sabemos o que isso é baseado em outras coisas que nós já criamos. Então os outros construtores, e este é então o machado de cobre. E machado de cobre. Opa. Que tal um cobre axonal 6EI? Não somos filhos de Elon Musk, desculpe. Atos item. Lá vamos nós. E então este é um machado também. Muito bem feito. Ok. Sim, então são basicamente os registros de itens feitos. Agora, é claro, precisamos também de ter os modelos. Vou simplesmente copiá-los e
mostrá-los rapidamente , porque isso é muito mais fácil. Claro, esses arquivos são todos fornecidos onde este é o X de cobre, é tudo o mesmo aqui. Todos os arquivos são fornecidos como sempre, na
verdade, no primeiro download, todas as palestras foram fornecidas lá também. Então vamos realmente fazer as texturas também. E então ainda precisamos adicionar isso. E também vou copiar isso porque mais uma vez, apenas digitando Me, como me ver digitando isso provavelmente não ajuda ninguém. Ok, então agora esses estão dentro daqui. Fizemos o item dos modelos. Nós os localizamos na EN nos. Registámos todos eles. Talvez apenas adicione este também. Então talvez diga algo como os atos. Um pouco mais de dano aqui, mas um pouco menos de velocidade, talvez menos três ou algo assim para que seja um pouco mais lento, que geralmente é como as micro rachaduras funcionam, eu acredito. E então vamos ver o que podemos ver quando realmente entramos e pegamos esses itens. Agora, é claro, esses itens não têm receitas neste momento no tempo. Eu, claro, acho que as receitas são, no nosso caso, não tão importantes porque eles não deveriam ser que É difícil de implementar em poder. Mostra-te um deles agora mesmo. Depois de demonstrarmos que o resto funciona. Então vamos ver, vamos nos livrar dessas coisas. Na verdade, fique com isso. E então vamos ver o que temos. Temos uma espada. Isso é muito bom. Temos um machado, temos um machado, e temos um todo. Então vamos ver se conseguimos aguentar. Podemos, isso é muito bom. E também o tempo definido. Eles, por favor. Obrigado. E veremos que este funciona. Bem, claro que isso funciona porque eu tenho medo da Mode. Lá vamos nós. Ok, sim, este também funciona para que possamos realmente dizer o chão. Vamos ver. Podemos adivinhar agora que não é muito rápido, mas talvez não queiramos que o cobre seja muito rápido. Também podemos minerar com isso porque não é muito rápido. Eu acho que é um pouco mais rápido que pedra, mas mais lento que ferro, eu acredito. E então vamos pegar a espada e rapidamente matar aquele porco ali. Certo? E, claro, o que podemos fazer é sempre especificar as diferenças aqui. Bem, nós também podemos olhar para isso. Então vamos rapidamente ficar como talvez, quero dizer, talvez não para baixo, certo? Talvez como uma espada de íon. E então talvez também uma picareta, apenas como um exemplo. Então o x antrópico na verdade tem muito mais,
muito menos velocidades de imposto, certo? Então a velocidade tecnológica aqui é definitivamente muito alta e um pouco mais danificada. E, em seguida, um seis, bem no nosso livro didático também é muito alto. Mas mais uma vez, talvez isso seja algo especial para os itens de cobre, certo? Que eles são como o forno velocidade de ataque insano, certo? Mas eles não têm talvez tão alto de um, de a. você sabe, durabilidade e também do dano de ataque talvez, certo, para que você possa atacar com eles como muito rápido, mas você não pode realmente fazer tanto dano com eles. E então vamos olhar rapidamente para talvez uma receita, certo? Então nós vamos apenas copiar um desses para agitar rapidamente devido apenas ao controle C e controle V. E então nós
vamos mudar isso para, digamos que os atos de cobre por causa do argumento. E então isso é claro, a forma era uma que
não era a coisa mais inteligente de sempre para realmente tomar o bloco aqui. Então vamos pegar o blog e então vamos dizer C, C, C, C e depois ter este. Sim. Isto, depois X vai ser o Minecraft e isto vai ser vara. Se eu mesmo digo. Eu acredito que é Deixe-me apenas verificar rápido duas vezes porque eu quero acabar sim, claro que é o eu quero dizer, o que eu estava pensando? Claro que vai ficar. O que mais os paus seriam frios, exceto talvez paus, certo? Isso, isso foi culpa minha. Então os núcleos MC e Alice vão cobrir isso. E é claro que é assim que faríamos isso. Claro que também faça isso. Isso também funcionaria. Fazendo assim, também terá o outro lado feito lá também. Então vamos fazer isso rapidamente e vamos ver se realmente funcionou. E então, então eu acho que vamos realmente ser feito com esta palestra, sim, com como adicionar os itens. É como eu disse, um pouco de, você sabe, eu digo trabalho duro. Você tem que digitar um monte de coisas e você tem que copiar um monte de arquivos. Agora, eu forneço tudo e como recurso, claro, então isso não vai ser um problema. Eu espero. Na verdade, vamos voltar aqui. E vamos ver. Então me dê alguns paus também. Paus e pedras podem cobre meus ossos. E vamos ver se isso funcionou. E bem, isso é hilário, não é? O que nos esquecemos? Claro, a única coisa que nós somos que nós realmente esquecemos no eixo de cobre para ter o resultado é o machado de cobre. Então lá vai você. Sim. Mas é claro que isso não é grande coisa. Nós realmente vimos que o, esta receita funcionou. Ele só retorna o item errado. Mas está tudo bem. E o geral, que é basicamente como você adiciona ferramentas para o jogo. A primeira coisa que fizemos, é claro, foi a camada de item que é muito importante. E isso também é uma maneira de olhar basicamente como, como o para, basicamente rasgar seus itens, certo? Então é possível que você poderia cobre, como eu disse, e então talvez obter bronze, que é ainda melhor, e assim por diante e assim por diante. Então, se você já viu ou jogou outros modos populares, então você definitivamente viu a maneira que isso funciona e que esses também são muito interessantes. De qualquer forma, foi basicamente isso. E se desejar, você pode, é
claro, adicionar as receitas você mesmo. Agora não vou adicioná-los porque eles devem ser triviais neste momento para adicioná-los. E também eles são tão importantes neste caso porque, como eu disse, eles devem ser triviais de acrescentar. E nós vamos testar um monte de coisas em criativo neste ponto de qualquer maneira. Então, sim, sim, como eu disse, bem, as texturas e os Jason aqui também são fornecidos. E sim, isso foi basicamente como você adiciona ferramentas à Microsoft. Então, sim.
49. Eventos no Minecraft Modding no Minecraft Modding: Muito bem, bem-vindos de volta ao curso de Minecraft. Nesta palestra, vamos falar sobre eventos. Agora, os eventos variam de um monte de coisas que podem acontecer no Minecraft que podemos, digamos, chamar ouvintes. Então podemos responder a isso e fazer com que as coisas aconteçam. Então a primeira coisa que vamos fazer é em vez do nosso pacote de cursos MC, vamos criar um novo pacote que vamos chamar de eventos. E dentro desse pacote, vamos criar uma nova classe. E vamos chamar isso de eventos lema. Então esta classe de eventos mod vai ser realmente interessante porque lá vamos especificar dois eventos. E estes são exemplos de eventos. E depois vamos falar sobre algumas coisas. Então a primeira coisa que vamos fazer é ser um vazio público. E vamos chamar essa aula de ovelhas descobertas. E agora o que passarmos como parâmetro será
o evento que basicamente desencadeia isso. Então, quando descemos, de repente não podemos vê-los assim, mas você pode ver assim. Então, neste caso, um evento de entidade de ataque acontece sempre que uma entidade é atacada. E então há, como você pode ver, neste caso, não
há nenhum evento de ataque vivo. Existem, existem inúmeros tipos de eventos. Neste caso, vamos usar isto, o evento da entidade de ataque porque queremos saber quando algo é atacado. E agora como você lida com isso? Vamos dizer, bem, primeiro de tudo, precisamos realmente adicionar o evento de assinatura em cima disso. Isto é para que realmente ver se a dica de ferramenta tem alguma coisa. Sim, isso realmente faz. Então, basicamente, a idéia é que esta classe, então pode ser para esta classe e, em seguida, este método nesta classe pode realmente ser frio através deste evento que é disparado. Essa é uma explicação muito básica aqui. E então o que queremos? Bem, descoberto barato, basicamente, temos implementado o fato de que quando você come maçã descoberta, então você começa brilhando. Que tal o que implementamos é que quando você gosta de uma ovelha taka com esta maçã, então eles também têm o efeito brilhante. Isso é algo que pode ser uma coisa interessante de se fazer. E lembre-se desses eventos que você pode, quero dizer, você pode basicamente fazer quase qualquer coisa que sua imaginação, você sabe, chegar a. No entanto, você sabe, como quanto mais complicado o evento que você quer colocar em, mais, quanto mais complexo o código vai ser, mais complexo vai ser para fazer. Mas vamos passar por isso. Então, primeiro de tudo, nós queremos obter o evento e lá nós podemos realmente obter o jogador. E então temos item segurado, ponto-principal GetItems. Escreva isto simplesmente irá devolver o item como um item. E então podemos apenas dizer, hey, se isso é igual a ponto com do item mod ou ponto da Apple fica certo. Então isso basicamente pergunta: “Ei, faz, o jogador
está segurando a maçã do armário na mão? E se sim, então vamos entrar. Ótima. A próxima coisa que queremos falar, ou queremos perguntar, é basicamente o alvo. Então, se o alvo estiver vivo, certo? Este seria o barato neste caso. Então atacamos alguma coisa e então a ovelha, a ovelha ainda está viva. Isso é ótimo. Teremos então de usar a entidade viva aqui. Então este seria o Target. Destino é igual a ponto de evento de entidade viva, destino de ponto de evento. Então o que está acontecendo aqui é basicamente eu estou apenas custando o alvo, que é uma, uma entidade em uma entidade viva, certo? E estou guardando isso porque neste caso precisamos da entidade viva. Então nós realmente perguntar se instância alvo de entidade ovelhas. E isso é basicamente apenas perguntando, OK, se é este alvo,
uma ovelha, isso é tudo o que esta pedindo porque a ovelha, como você pode ver, realmente estende a entidade
animal e entidades animais entidade elegível e sua entidade criatura e que é entidade esfregona e que é entidade viva. Há um monte de, como você pode ver, muita herança acontecendo aqui. Mas basicamente uma entidade viva é também uma entidade ovelha ou melhor, o contrário. Eu não tenho certeza agora, mas isso não é o que é muito importante, mas eles estão no entanto relacionados em, em herança. E se for esse o caso, então o que atingimos agora, quando chegarmos aqui é uma ovelha. Agora, o que queremos é o jogador. Vamos pegar o jogador rapidamente. Porque não o evento pontuar o seu jogador? E então o que vamos dizer é jogador ponto, pegar item, mão principal. E então vamos encolher isso por um. Então o que isso faz é que vai,
digamos, apagar um dos itens retidos, certo? Então, neste caso, nós vamos realmente usar uma das maçãs
do armário para isso porque, você sabe,
apenas batendo nele e, em seguida, tendo este adicionar, este efeito provavelmente não seria que,
você sabe, qualquer coisa e eu balanceei Idéia. Mas nesse sentido, não estamos falando de equilíbrio. E então nós vamos fazer alvo e nós podemos realmente fazer efeito de poção
ADD e nós podemos adicionar um, outro. Por exemplo, aqui, isso é basicamente a mesma coisa que fizemos com quando comemos a maçã, onde tivemos afeta ponto brilhante. E então nós temos a duração que nós tínhamos que realmente especificar. Vamos fazer 600 só por causa da discussão agora. E sim, e foi basicamente isso. E então eu também vou acrescentar, só porque vai ser interessante ver, nós vamos fazer é remoto. Então isso basicamente verifica se estamos ou não em um servidor ou não. E eu tenho que dizer logo depois de termos feito isso, eu realmente tenho que dizer outra coisa para isso. Então nós vamos ter apenas uma saída de uma mensagem dentro do, dentro do nosso chat no jogo, certo? Então este vai ser o ponto de formatação de texto. Vamos fazer outra coisa, quer saber, vamos fazer algo como amarelo, sim, assim. E então nós vamos fazer ovelhas agora é brilhante, brilhante, ácido legal como esse. E então vamos jogar R dot, enviar a mensagem. E, em seguida, vamos fazer um novo componente texto string. E em vez disso, podemos colocar a mensagem. E então nós realmente precisamos fornecê-lo com o ID exclusivo, o UE, o UID, o UUID do jogador. E isso é basicamente um evento que vai disparar agora. Então vamos disparar este método cada vez que uma entidade for atacada. E vai perguntar, bem, temos um armário Apple na mão? Se sim, então perguntamos se o alvo está vivo? Então perguntamos, bem, é a ovelha alvo. E se for esse o caso, então nós vamos passar por aqui e realmente o efeito de poção de soprar através do barato ou a duração de 600. E também precisamos adicionar algo aqui dentro da nossa classe mod mod. Então, o modo de curso MC, e que vai ser Minecraft ou ônibus de eventos, que registra. E então nós queremos realmente criar uma nova instância de eventos mod bem aqui. E nós podemos realmente passar o mouse sobre isso, eu acredito que é a taxa registradora. Então, podemos ter a instância de um objeto assim criado com novo ou podemos apenas fazer uma instância de classe. E então teríamos que fazer isso em estática. Então este teria que ser um método estático. Neste caso, vamos fazer um novo. Acho que está tudo bem. Isso vai funcionar bem. E isto já deve ser tudo o que temos de fazer para este evento em particular. Como eu disse, vamos adicionar outro evento, um segundo depois de verificarmos se isso funciona. E então eu também tenho algo a dizer sobre o lado do servidor e, em seguida, também algo a dizer sobre a próxima tarefa, que vai ser um pouco mais criativo, mas eu estou me adiantando. Primeiro de tudo, vamos ver. Opa, muito. Sim, é isso que queremos. Vamos ver o que podemos ver aqui com o evento. Então A-LC e vai primeiro mudar aqui e então nós vamos, ou uma ovelha. - Ele. E agora não importa se estamos ou não em um criativo ou, ou não. Então este é um barato e agora se eu bater com a Apple coberta, nós vamos ficar mais barato brilho. Agora isso, ele, ela passou o efeito brilhante e nós realmente perdemos uma maçã. A maçã foi consumida. Você pode realmente ver isso de novo, certo? Eu sei que tenho 605958. Então, cada vez que eu acerto uma ovelha com ela, uma maçã é realmente consumida. Sim, e também recebemos a mensagem de que as ovelhas estão brilhando. Isso é muito bom. Então isso funciona sem problemas. E como você pode ver, isso é como, é um evento muito simples. Digamos, bem, você já pode imaginar que há um monte de coisas que podemos fazer com isso. Sabe, você poderia fazer todo tipo de coisas. Você pode alterar a posição de uma entidade. Você poderia matá-lo imediatamente. Talvez você possa até curá-lo. Você poderia fazer todos os tipos de coisas com itens e, e eventos diferentes acontecendo. Agora a segunda coisa que eu quero fazer é basicamente cada vez que nós, quando temos um, quando temos uma ovelha que está brilhando, certo? Então o que eu realmente quero que aconteça é que queremos uma gota,
um lingote de cobre, certo? Isso é só umaidéia fofa, idéia fofa acho que mais uma vez, é provavelmente quando você lançaria um modelo como este, provavelmente não seria tão bom. E vamos chamar isso de gotas de ovelhas. E isso vai ser um evento de gotas vivas em algum lugar. Acredito que não tenho 100% de certeza. Há uma lista dos eventos que você pode chamar aqui. E isso, por sinal, também detalha algumas coisas desse evento. Isso é muito bom. Mas há uma lista em algum lugar. Vou ver se o encontro ou não. Se eu encontrá-lo, então eu provavelmente vou ligá-lo ou não provavelmente eu definitivamente vou ligar ele tem recursos nesta palestra porque é,
você sabe, você não pode saber quais eventos estão acontecendo aqui, certo? Então também há um evento undef. Então, quando o jogador morre ou você pode ter um evento quando um, uma entidade dietas. Então há tantas coisas que podem acontecer. E como viver cai evento quando nós realmente passar o mouse sobre ele, podemos realmente ver que isso é disparado quando uma entidade é morte faz com que itens descartados apareçam. Então isso basicamente, antes que esses itens apareçam, então o evento é acionado e
então, então podemos realmente mudar algumas coisas. Então o que vamos fazer é fazer uma entidade viva. Essa vai ser a nossa entidade. E então nós vamos fazer evento ponto obter entidade viva, entidade vivendo lá. Yo. E então, em primeiro lugar, perguntamos se esta é ou não uma ovelha, simplesmente pelo fato de que
neste momento só estamos preocupados com as ovelhas que estão brilhando e não com qualquer outra coisa. E nós vamos para uma entidade World,
World II, desculpe, dados de
entidade, mundo DT. E precisamos importar a perda mundial aqui. E então nós vamos realmente salvar o, não vai ser um pouco complicado e então essas são as gotas recebe esfregaços. Então, basicamente, dizemos, ok, que gotas teriam caído das ovelhas, certo? Por exemplo, lã e o que é, a carne de ovelhas na verdade, agora, não sei como é chamado. Vou verificar agora é o mais quente no jogo. Na verdade, não sei, seja lá o que for. Para que caíssem. E então nós vamos realmente salvar aqueles e gotas e então comprar adicionando às gotas, nós podemos realmente ter algo mais adicionado também. Então isso vai fazer isso. Agora. Eu vou realmente fazer algo só para que possamos simplesmente, agora é isso que eu quero. Gerente ponto obter logger. E então vamos depurar. E isso vai ser ponto de entidade, obter efeitos oceânicos ativos só para que você saiba, qual é o problema aqui? Por que isso não funciona com o Gerenciador de logs? Método não-estático não pode ser referenciado a partir de um contexto estático. Oh, bem, quero dizer, eu não sabia que estávamos apenas não faz nenhum sentido. Tenho a certeza de que fazemos exactamente a mesma coisa aqui em cima. Tão bem, isso não faz absolutamente nenhum sentido. Mas lá vai você. Às vezes, aquelas coisas
que não faziam qualquer sentido que nada mudasse aqui. Bem, seja lá o que for. Agora nós podemos realmente ter um log c. Isto às vezes, às vezes essas coisas loucas. É por isso que não vou cortar isso agora. Porque às vezes isso é algo contaminante louco. Eu estou tipo, ok. Ninguém sabe o que aconteceu lá. Bem, alguém neste planeta provavelmente sabe, mas neste caso, isso foi apenas um inseto estranho. Bem, e então nós queremos realmente perguntar é se um certo efeito, então neste caso afeta escuro, brilho é ativo, certo? Então eu tenho este logger aqui para que possamos realmente ver no no quando é, quando o microfone está rodando que podemos realmente ver no log o que acontece. Então, cada vez que
atingimos uma ovelha, vamos imprimir isso e então podemos realmente ver que parte ativa afeta a ovelha tem. É só uma maneira interessante de fazer isso. E enquanto for depuração, isso é ótimo. Também é uma coisa muito importante de se fazer. Às vezes, mete o madeireiro lá dentro e então, você sabe, tranque algo para fora e então nós vamos fazer gotas ponto adicionar. Isso vai ser novo item entidade e item, entidade. Na verdade, entidade do item. Isto vai acontecer no mundo. Nós vamos fazer um, ele vai estar em posição. Este é um pouco t é mais uma vez porque então nós realmente temos que especificar cada uma das três coordenadas. Então nós realmente temos que fazer como y e também Entity dot z, onde z. E então nós vamos fazer uma nova pilha de item de ponto do item mod cobrindo-o. Não, não é um policial de classe. Cobre em bom ponto obter. Claro que mais uma vez, porque estamos criando uma nova pilha de itens, agora já deve ser ela. No entanto, isso é tudo o que precisamos realmente acrescentar. Para adicionar isso muito interessante, mas na verdade bastante específico. Desculpe-me. Na verdade, isso é tudo o que precisamos acrescentar. Este comportamento interessante e realmente bastante específico neste momento, certo? Não é assim. Você veria isso em todos os lugares, em todos os modos. E isso é basicamente, você sabe, como você pode pensar sobre esses eventos. Então você tem a idéia do Ahmad e você está tipo, oh, eu quero esse anúncio e talvez eu não fosse assim tão louco. Talvez o fim, o fim da picareta Isso é muito bom no começo, mas talvez ele te teletransporta cada vez que você quebra um bloco e você pode fazer isso. Você pode realmente fazer isso. Então é por isso que estou dizendo que, você sabe, sua imaginação é realmente o limite aqui. E agora o que vamos ver é se criamos uma nova nave, certo? Nada acontece agora. Se o matarmos, vamos conseguir isto agora, na verdade, quero saber como se chama isto. Chama-se carneiro. Oh, eu não tinha certeza sobre isso. Na verdade, aqui para a areia e depois vamos cabê-la aqui. Agora ela estava carregando e então vamos matá-lo. E olha para isso. Nós realmente começamos a incorporá-lo fora disso. Agora, é claro, a coisa que poderíamos fazer é provavelmente algo como ter a, ter a, ter uma probabilidade de um lingote de cobre cair, você sabe, talvez 1% ou algo assim. E então, claro, o equilíbrio seria restaurado, por assim dizer. Agora, se realmente voltarmos e pudermos realmente, oh, bem, tanto por isso. Bem, na verdade, podemos vê-lo aqui. Lá, nós realmente temos a depuração aqui de nossos eventos MOD como você pode ver. E lá está, efeito ponto minecraft brilhando. E então temos a duração também. E aqui, quando atingimos o barato de antemão e matamos as ovelhas de antemão, não tínhamos nada aqui, certo? Então isto estava completamente vazio. E depois que batemos aqui, tivemos um ou matámo-lo. Nós realmente tivemos a obter efeitos ativos e um dos mais efeito minecraft ponto soprando. Então isso também é muito importante. Sabe, às vezes você quer depurar algo e, em seguida, você apenas usa o Gerenciador de log. Agora esta não é necessariamente a melhor maneira de,
para referenciar um lote gerente orçamentos recebendo a alocação de logger ciática, mas vai ser bom para os nossos propósitos neste caso. Mais uma coisa que alguns eventos têm de ser feitos no lado do servidor e alguns eventos têm de ser feitos no lado do cliente. Neste ponto, isso vai funcionar no servidor e no cliente. Mas há algumas, digamos, coisas muito específicas. Mas mais uma vez, há tantos eventos que podem
ser realmente referenciados que é difícil fazer como um breve resumo ou, você sabe, para, resumi-los. E quaisquer recursos adicionais que eu ache interessantes para isso ou aquilo vão ajudá-lo com isso. Vou colocar os recursos aqui. E também, você sabe, pode ser às vezes um pouco complicado. Mas, mais uma vez, o importante quando você não faz, como quando algo não acontece, use o gerenciador de depuração ou o gerenciador de depuração, o AlarmManager, e depure algumas coisas. E também, eu acredito que isso seria tudo em sua totalidade. Então eu tenho uma pequena tarefa adicional depois desta. E quero tocar rapidamente nisso antes que esta palestra acabe. E é aqui que você realmente tem que criar seu próprio evento. E isso é liberdade total. Você pode criar o que quiser. Você pode fazer coisas loucas, você pode fazer tudo, o que quiser. Mas deve ser um método, certo? Então um, basicamente um evento aqui. E pode ser qualquer coisa. Pode ser você saltar para cima e, de repente, um 1000 GoldieBlox caiu do céu. E não importa nada que você queira fazer. Mas tem que ser, você sabe, quanto mais criativo, melhor. Não é necessariamente classificado, digamos, mas vou olhar para eles. E eu estou realmente animado com o que você inventou, certo? Como se eu estivesse, na verdade sou um pouco animado porque eu realmente espero que alguns eventos loucos seriam muito legais se os eventos fossem,
você sabe, como este comprimento, você sabe, ou até mesmo mais, mas não como não como duas linhas. Eu gostaria que eu seria um pouco não triste, mas não seria a melhor coisa se nós somos apenas duas linhas, mas é claro que você pode fazer o que quiser. A tarefa é muito aberta. É por isso que não
há solução para isso. Enquanto o evento funcionar, você já fez a tarefa. Então, estou muito interessado no que você pode inventar. E isso foi basicamente para a palestra do evento. Espero que tenha conseguido algo com isso. E também, se houver alguma dúvida, mais
uma vez, sinta-se livre para perguntar a qualquer momento. E também, se você tiver, se você sentir que realmente conseguiu algo e foi mais longe no desenvolvimento de um modelo. Eu realmente agradeceria se você pudesse me deixar uma crítica. E sim, isso é basicamente todo nosso para dizer. Obrigado por ouvir. E sim. Ou, ou apenas um pequeno adendo curto aqui neste mod eventos um. E eu tenho uma maneira mais fácil de descobrir quais eventos existem. Você pode realmente passar o mouse sobre, por exemplo, este evento de entidade de ataque. E então você só passa pela árvore estendida basicamente até encontrar eventos, certo? E então você simplesmente vai em sua fonte bem aqui. E, em seguida, o evento de arquivo Java vamos realmente abrir. Isso está em algum lugar no, em
algum lugar nos outros arquivos, como nas bibliotecas externas. Não se preocupe com isso. Bem, o que podemos então fazer, e isso é como realmente nota, nós podemos realmente apenas controlar a idade. E então toda a hierarquia será aberta. Agora, você pode ser como, oh meu Deus, isso é um monte de eventos. Sim, é ainda mais porque há eventos de bloqueio que podemos fazer referência, certo? E, em seguida, sem eventos de pistão, eventos de local de
entidade, você pode ter cortado eventos de crescimento. Podemos ter eventos mundiais onde Shang, Você sabe, e então aqueles que realmente usamos onde uma entidade eventos e usamos os eventos de entidade viva, como você pode ver alguns aqui. E, em seguida, há também eventos Player. E como você pode ver, muitos eventos que você pode fazer referência. Então, e em teoria, quando você tem os eventos que você procura, você realmente não está limitado por nada aqui. Como você pode ver, há
tantas coisas que podemos fazer, e especialmente você pode fazer para a tarefa. Então sim, isso é apenas rápido que eu queria mencionar. E sim.
50. (Minecraft) adicione dicas aos itens: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar uma dica de ferramenta para um item. Agora, isso não é assim tão complicado. E o que vamos fazer é criar uma dica para a nossa Apple corporativa, porque já temos um arquivo corporativo da Apple. Então, uma classe que é dedicada a este item. E nós realmente precisamos de uma classe ou para este método que vamos adicionar. Então não podemos simplesmente fazê-lo em itens de mod R. Na verdade, temos que ter uma aula específica. E eu geralmente também, isso é algo que pode ser pensado. Às vezes queremos que nossos itens tenham uma classe separada, e às vezes não temos. Agora, no curso do nosso aplicativo, no caso da nossa Apple, desculpe, nós realmente tê-lo porque nós queríamos ter um item de comida. E às vezes, se queremos um comportamento mais especializado em itens,
então, é claro, faz sentido ter uma classe adequada para eles. Mas ainda assim, vamos usar a maçã de cobre como cobaia mais uma vez para isso. E o que vamos fazer é ter um vazio público. E isso pode ser adicionar informações. Vai levar uma pilha de itens. Voltar, vai ter um mundo,
mundo, uma lista de componente de texto TIC, que vai ser a dica de ferramenta e também uma bandeira de dica de ferramenta AI, bandeira antiga, certo? Então, primeiro de tudo, precisamos importar algumas classes, classe de importação
e, em seguida, a classe mundial e, claro, a classe de componente de texto TIC. Lá vamos nós. E já era isso. Agora nós também precisamos ter uma espécie de, oh desculpe, a lista também. Desculpe, há um tempo atrás. Java.util Sim, lá vamos nós. Agora funciona. E isso vai ser uma sobregravação também. Sobre a direita? Agora, nós realmente queremos ter uma espécie de classe auxiliar e nós vamos criar isso em nosso Util. E este vai ser os teclados, ajudante de teclado. Vou chamar-lhe “ajudante de teclado”. Você pode chamá-lo de teclado util. Você também pode chamá-lo de teclado. Ajudante da placa do utilitário do teclado. Ajudante de entrada, talvez. Mas isso vai ficar bem. Sim, e este também terá duas coisas. E isso vai ter um booleano estático público. E isso vai ser é segurar o turno. A idéia é que você provavelmente já viu se você já jogou alguns Manpacks antes, que, às vezes ele diz, hey, você pode segurar o turno para mais informações ou você pode segurar, você pode segurar Controle para mais informações. E isso é basicamente o que vamos implementar aqui. Então, na verdade,
vai, bem, não vai ser tão diferente. Então vamos voltar e depois vamos ter um monte de coisas. Então isso vai ser mapeamentos de entrada. Dot é a chave para baixo. Então isso basicamente apenas detecta se uma chave está ou não desativada. E agora o que queremos é que queremos ter minecraft dot getInstance, ponto obter janela principal que são manipulados. Então isso vai retornar o tipo de, o endereço, vamos dizer. E então este vai ser a tecla shift esquerda. Sim. Certo? Infelizmente, isso não é, isso não está mapeado neste caso. Mas sim, e muito importante que isso seja insanamente importante. Isso vai ser apenas neste ponto cliente dist ponto alinhado. E isso tem que ser importado. Isso é realmente importante porque isso é algo que só acontece para o cliente porque um servidor pode realmente manter Shift pressionado, certo? Isso é muito importante e isso vai ser manter o controle. E isso vai ser, nós simplesmente temos que mudar isso para controle. Isso é tudo o que temos que fazer aqui. Sim, e isso é basicamente o nosso ajudante de teclado. Agora isto vai ajudar-nos para que não tenhamos de o fazer. Cada vez que queremos dizer, hey, se, você sabe, segurando o turno, este aqui, é um pouco mais fácil de fazer. Os cidadãos também serão brancos na classe util. Sabe, é só uma coisinha que nos ajuda com utilidades. Basicamente, é uma utilidade. - Sim. - Sim. E então aqui nós vamos realmente pedir o ajudante de teclado. Então, o ajudante de teclado do que aqui. Lá vamos nós, vai estar segurando o turno. Essa é a pergunta. E se formos, então vamos fazer uma coisa. E se você não estiver, então nós vamos realmente exibir outra coisa que basicamente interessante é uma maneira muito interessante de formatar isso mais uma vez. Então vamos primeiro de tudo adicionar aquele quando estamos realmente segurando o turno. Então essa é a coisa que vamos ver quando segurarmos o Shift, certo? Então este vai ser um novo componente texto string. E dentro podemos apenas adicionar uma string, isso basicamente o que vamos adicionar. Então digamos que quando seguramos o turno sobre a bomba, o resit, a maçã, então nós realmente queremos dizer, transforma ovelhas em lingotes de cobre. Que tal isso? Assim, certo? E o outro, eu realmente não sei por que ele então nós estamos na formatação neste momento, Hurd. Está bem. E quando ele não tem isso, podemos ter algo genérico. Que quando você pensa sobre isso, como se isso fosse algo que você também poderia ter como um bebê nos itens mod. Você pode ter nos itens mod uma string estática que sempre tem isso, certo? Porque isto é para cada item que vai ser o mesmo. Mas isto vai ser um pouco estranho. Então isso está usando sete e. E então nós queremos manter o turno. Desculpe. Bem, assim que formos, vou explicar em breve. Eu só vou ter que repetir. Copie isto. E este é 77. E então vai ser ou mais formação. - Claro. Em quatro grandes. Está bem. É isso. - Sim. Está bem. E esta é simplesmente uma cor que é adicionada para o componente de texto, certo? Então estas são, estas são cores. Eu vou fornecer um como um recurso aqui, Eu vou realmente fornecer um, a cor. Como eu acho que é uma imagem onde você pode realmente ver as cores que você pode fazer. É quase o mesmo que o, eu acho que é realmente o mesmo que as cores que você pode ter no chat. Sim, exatamente. Certo. E então nós também queremos fazer super informação ponto-ponto e eles só querem adicionar tudo isso. Então a dica de ferramenta do mundo e também a bandeira, eles iriam, certo. Isso é tudo para a adição do total. Deve ser isto. Então é apenas o ajudante de teclado e a Apple de cobre. E vamos ver se você realmente vê isso. Como eu disse, alguém como este, o turno inteiro, que é provavelmente algo que deve ser também como uma cadeia estática de string estática pública e os itens mod, por exemplo. Ou você pode imaginar talvez ter uma, outra classe ou classe util onde você realmente tem essas cordas todas guardadas. Então isso pode referenciá-los sempre que você precisar. Porque adicionar essa corda toda vez que não faz sentido. Ok, então estamos, agora, vamos ver. Então, primeiro de tudo, você sabe, isso é tudo normal e então aqui, oh, segure o turno para mais informações. E quando seguramos Shift transforma ovelhas em coberturas. E isso é muito legal, não é? - É? Adiciona, eu gosto disso. Isso é muito bom. Podemos realmente segurar Shift e então obtemos novas informações. Agora, vamos na verdade também você que agora não vai ser tão perto da, para a outra frase. Basicamente, só o ajudante de teclado e a Apple corporativa. Mas no geral, eu acho que isso ainda é bastante simples. E sim, isso foi basicamente para adicionar a dica de ferramenta. E sim.
51. (Minecraft) crie um novo conjunto de Armor: Muito bem, bem-vindos de volta ao curso de microondas. E nesta palestra vamos adicionar nossa própria armadura, certo? Então, o que podemos fazer com a nossa armadura? E nós já vimos isso com os itens, as tuplas, foi, você sabe, bastante simples. Sabe, havia algumas coisas, mas nada muito louco. A única coisa que era um pouco entediante foi o nível mais item. No entanto, isso é algo que realmente temos que fazer novamente. Então nós realmente temos que criar nosso próprio material de armadura mod. Então este vai ser um material de armadura mod público enum. Mas é real. E isso vai implementar um material de armadura. E nós vamos obter rapidamente os métodos aqui mais uma vez. E isso é basicamente o, quase a mesma coisa que tivemos com os que tínhamos nos itens Mott aqui. Agora com a armadura. Ok, há, mais uma vez, algumas coisas que realmente temos que especificar aqui. Então, primeiro, vamos fazer cobre de novo. Então vamos criar algumas variáveis privadas. Novamente. Esta vai ser uma durabilidade total final privada. E então nós vamos ter uma matriz inteira final, que vai ser a matriz de redução de dano quantidade. Isso é um bocado de dizer isso três vezes rápido depois de outra coruja. E charme para a habilidade como o terceiro, que vamos ter um evento sonoro final privado, que vai ser um evento sonoro. E então temos um ingrediente final privado, que é o material de reparo. E nós teremos um nome particular phi o privado final string. Este é muito importante. E, em seguida, um flutuador final
privado, dureza, que deve ser conhecido, mas isso é então um flutuador final privado derrubou resistência. Está bem. Como você pode ver, um monte de coisas mais uma vez, mas não se preocupe, seremos capazes de descobrir isso. Então, primeiro de tudo, é claro, vamos passar o mouse sobre ele novamente e vamos
realmente criar um novo construtor com todos esses, com todas essas variáveis imediatamente. E dessa forma nós realmente economizamos um pouco de tempo escrevendo este construtor. E então também podemos fazer algo assim. Sim, isso é bom, certo. Então, a durabilidade, eu só vou colocar algumas coisas em seu, então este vai ser um novo array inteiro. E eu vou imediatamente colocar algo lá dentro. Então isto é, nós realmente vamos ter
a redução do dano é diferente para cada peça de roupa, assim dizer, lutar pelo capacete, o peitoral, as leggings e as botas. Vai ser um número diferente. Então vamos apenas dizer que alguém gosta de flecha, digamos 75. E pode haver um três ou algo assim. Sabe, você pode,
claro, escolher o que quiser. E tratabilidade vai ser um dez. O evento de som vai ser eventos sonoros que este vai ser item armadura equipar. Vamos fazer a armadura. Este é o item armadura equipar ferro. Bem ali vamos nós. Reparar material de reparo que está imediatamente indo para obter da pilha novamente e apenas fazer nova pilha de item de mais uma vez, o ponto do item mod, cobrindo-o obter. Então é o que sempre fizemos. E então o último será nomeado. Agora este aqui é importante, porque aqui nós realmente temos que fazer curso mc dot naught ID. E então temos que fazer um cólon e depois chamar este pequeno cobre. E isso é porque, caso contrário, ele vai procurar, isso é basicamente para especificar o lugar para o lugar e nome para o modelo. Então, o modelo 3d para a armadura tem um padrão de textura muito específico, que mostrarei em breve. E isso tem que ter um nome específico. E se nós não especificá-lo assim, então nós vamos realmente olhar em um diretório diferente. E este também precisa ser o caso do cobre em tudo em resistência minúscula, vamos apenas fazer um 0 e bater resistência BEC. Na verdade, vamos colocar um pouco de resistência lá, e isso vai ficar bem. E também temos que devolver essas coisas. Então vamos para a durabilidade. Na redução de danos. Nós realmente vamos ter alguns dos diferentes, este vai ser o array de demonstração. E então nós vamos apenas pegar qualquer slot que temos o índice do slot, certo? Então o slot é simplesmente, você sabe, é 0 para o capacete e três para as botas. E isso é basicamente como acessamos a área de redução de danos neste caso, certo? Encantar a habilidade. Vamos ter os eventos
sonoros, o material de reparação, o nome como um conjunto de incrivelmente importante a resistência. E neste caso, este Funk que não está mapeado aqui, é simplesmente o, isso pede a resistência knock BEC. E então podemos fazer cursos de Nochlin. Mas tem que de repente ser mantido isso, caso contrário não vai funcionar. Então você não pode mudar o nome desta função ou este método em vez disso, desculpe, sim. Então este é o nosso MOD, material de armadura criado. E agora podemos realmente criar nossa primeira peça de armadura. Mas neste caso, nós realmente vamos criar todos eles
ao mesmo tempo em vez de com as ferramentas. Isto é mais uma vez vai ser um, um item onde n, que vai ser o capacete de cobre. Este é o ponto de registro itens que registram os capacetes de cobre O E. E quero dizer, você já viu isso um monte de vezes agora. Este agora é um novo item de armadura onde fornecemos o material de armadura mod ponto de cobre. Em seguida, ele pede um slot de equipamento. Isto é, naturalmente, cabeça de lote de equipamentos. E então também precisamos fornecer algumas novas propriedades. Neste caso, nós estamos indo apenas para fazer MCMC dot Course tab. É isso, certo. E isso já é para a cabeça e então podemos copiar isso. E agora, é claro, mais uma vez, precisamos ter algumas coisas onde mudamos algumas coisas aqui. Este é o ponto, ponto peito. E isso é bom. Como eu disse, às vezes pode se tornar um pouco entediante porque você tem que fazer muitas das mesmas coisas. No entanto, realmente não há como contornar isso. Então vamos fazer isso são pernas. E o último vai ser as botas. E isso vai ser botas de cobre sublinhado. E esses são para o lá que vamos. Lindo. Ok, então já estão registrados aqui. Agora, precisamos adicionar a localização. Então vamos para o IIT e nós. E nós vamos adicionar o IO, meu lambda, que não é MC, capacete de cobre mais pobre. Vamos começar pelo topo. E então este vai ser o capacete de cobre. E eu vou copiar isso rapidamente também. E apenas mude isso. A placa torácica. Sem fim. A placa torácica. Esta vai ser a leggings. Oh, desculpe-me. Capaz as leggings. Esta vai ser a leggings. E o último vai ser botas pequenas e aqui botas grandes. Lindo. Ok, isso vai ser tudo isso. Agora, é claro, nós também precisamos adicionar outra coisa, e isso vai ser os modelos de itens, certo? Então vamos para modelos e vamos criar um novo arquivo. Este vai ser o capacete de cobre. Lá vamos nós. Oh, ab.js. E, claro, muito importante. E então eu vou copiar isso rapidamente mais uma vez, isso é como a coisa padrão que já vimos nos modelos também. E vamos copiar isso novamente de forma semelhante com o Controle C e , em seguida, controlar V para colá-lo no mesmo diretório. E vou mudar isto para a placa do peito. E depois mude isto para a placa do peito, placa de uma viúva. E então podemos fazer a mesma coisa de novo. Onde estão os links? Leggings, leggings eles iriam e, em seguida, uma última vez ou botas. Botas e aqui a mesma coisa. Muito bom. Certo, então os modelos estão prontos e precisamos das texturas. Então agora o, agora eu vou fornecer as texturas do item bem aqui, certo? E isso vai ser você refatorar. Esta é a placa do peito, as botas, as leggings e o capacete. Lindo. Agora, a próxima coisa que eu vou precisar é que agora vamos colocar as texturas para a aparência quando a usarmos. Então essa vai ser a próxima coisa e nós realmente realmente nova pasta em texturas para isso. Isto vai ser modelos. E em vez disso, vamos criar um novo diretório chamado armadura. E dentro de lá, dois outros arquivos vão que vai ser aqueles dois realmente vão para sim, lá vai você. Isto é para as leggings e isto é basicamente para o torso e o capacete. E eu acredito nas botas também. - Sim. Algo assim. Eu não tenho 100% de certeza, mas isso parece que faz sentido e isso também tem que ser nomeado desta forma. Então lembre-se do nome que especificamos. Isso não tem sido cobre e, em seguida, ele tem que ser camada sublinhado, sublinhar um PNG. E sim, esses arquivos também sempre serão fornecidos são em primeiro lugar, fornecidos no início, nas fontes e também como um recurso, sua taxa. Então, se não estou enganado, acredito que isso já é tudo o que devemos fazer. Então vamos apenas executar isso e ver se você realmente criou com sucesso alguma armadura de cobre, o que seria muito legal. Consideradas todas as coisas. Certo, então vamos ver o que podemos ver. Lá vamos nós. - É. E, claro, mais uma vez, não
há receitas para isso. Como eu disse, vou omitir as receitas para isso simplesmente porque eles devem ser triviais o suficiente para adicionar. Tudo bem, vamos ver. Então, primeiro de tudo, vamos para o nosso passo central. Bem, eles estão todos lá. Isso é muito bom. Vamos pegar todos eles. Ok? E agora a grande questão é, quando trocamos de aderência, sobrevivência, se pudermos colocar, podemos. Bem, lá vamos nós. Eu sou muito legal. Nega. Agora isso realmente tem um monte de defesa. Eu sinto muito. Lá vamos nós. Na verdade, diz muita diferença. Como se fosse, toda a armadura tem um pouco de defesa. Mas isso é algo com que você pode, claro, brincar, certo? - Sim. Como se houvesse muitas coisas que podemos acrescentar mais uma vez. E há um monte de parâmetros com os quais você pode brincar e dizer, bem, na verdade talvez um pouco menos aqui e um pouco mais aqui. E sim, mas ao mesmo tempo isso funciona. Isso é realmente apenas bem, isso é bem, vamos apenas mudar rapidamente novamente e então realmente apenas pulou para baixo de um pouco de altura. Na verdade, não estraguei bem, tanto por isso. Tão monossomia. Que tal aquele? Alguns zumbis. Imediatamente vai queimar? Sim, bem, importa. Mas eu quero diminuir um pouco isso porque meu Deus, eles vão fazer barulho? Certo? E então a armadura se machuca tão bem quanto você pode ver. Então isso é muito bom, certo? Então, em suma, é basicamente assim
que você adiciona a armadura ao Minecraft. Com ou não, não acho que tenha sido tão difícil. No entanto, há poucas coisas a considerar e que são principalmente os modelos, o nome aqui. Então esta é uma das maiores flechas que eu poderia prever. Você realmente tem que fazer isso, o nome aqui corretamente, caso contrário, não funcionará. Tem que ser o mesmo, escrito da mesma forma que a primeira palavra aqui. E, em seguida, tem que ser sublinhado camada sublinhado um PNG, certo? Sim, foi isso. Se você tiver alguma dúvida, se você tiver alguma flecha ou, você sabe, alguma sugestão, talvez de tópicos que você também queira ver. Sinta-se à vontade para me contatar, me fazer uma pergunta e sim, entraremos em contato assim que puder. E sim.
52. (Minecraft) criando escadas, botões: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos criar escadas, cercas, portões de
vedação, botões, uma placa de pressão, e também uma laje. Agora, estes são uma espécie de blocos não-bloco, eu diria. E eu também vou mostrar a vocês como basicamente criar os outros. Mas tem que ser um pouco de engenhosidade veio de você mesmo. Mas antes de tudo, vamos fazer os que eu disse. Em primeiro lugar, vamos criar os objetos de registro de todos eles. Então vamos completar as escadas. E então eu vou basicamente copiar algumas outras coisas porque no final, um monte de cópias vai acontecer aqui. Mas antes de tudo, vamos fazer os objetos de registro aqui. Então, primeiro de tudo, isso vai ser mais uma vez um objeto de registro. Observe um objeto de registro do bloco de tipo. E em primeiro lugar, vamos fazer as escadas de cobre. Então vamos apenas dizer que para o nosso bloco de cobre, nós realmente queremos séries de cobre para ir com ele. Mas então nós vamos apenas ligar registradora e então isso vai
ser cobre sublinhado escadas como, como sempre. E, e nós vamos fazer suprimentos com novos blocos de olhar. bloco deles. E um bloco de escadas realmente quer um fornecedor de um determinado bloco. Então isso basicamente significa que queremos uma espécie de referência bloqueada. Neste caso, nós estamos indo apenas para tomar o ponto de bloco de cobre,
ponto obter estado padrão porque o fornecedor aqui realmente uma vez um estado padrão. E então também queremos as propriedades do bloco. Vamos fazer apenas 3h. E, em seguida, com ferro material, mais
uma vez, um ponto e vírgula. E, em teoria, as séries de cobre são feitas. Agora é que aprendemos antes, não
é tão fácil como sempre, mas vamos ver. Então a próxima coisa que vamos fazer é fazer um súbito objeto de registro final estático público. Mais uma vez do tipo bloco sempre vai ser do tipo sorte. Claro que estamos nos blocos de lama e haverá barbatanas de cobre. E nós vamos realmente fazer isso uma vez e então nós vamos copiar essa função específica ou específica, digamos que a inicialização aqui nós vamos realmente copiar porque isso vai tornar nossa vida um pouco mais fácil. vedação, bloco abstrato ,
ponto, não, propriedades de ponto, criar um AM quer obter e eu vou dizer material que ferro, parece-me ser o mais sensato aqui. E eu estou realmente indo para copiar este porque, exceto para a, a placa de pressão, os outros são bastante simples como desperdício também. Então o portão é simplesmente isso, que em vez de uma cerca, nós vamos realmente ter um bloco de portão de vedação. É isso. Oh, essa é estranha. Vai lá, está bem. E certifique-se também de mudar o nome aqui. É muito importante que não se esqueça disso. E então aqui vamos ter o cobre sublinhado pressão sublinhar pregas. E o mesmo, claro, aqui, apenas dentro. Uma minúscula em vez de maiúsculas. E então vamos ter um novo bloco de placas de pressão. E isso vai ser que vai realmente ter algo diferente aqui. E vamos começar com uma placa de pressão. Vamos ter placa de pressão, loc, ponto, ponto de sensibilidade. E depois vamos dizer tudo. Então tudo significa simplesmente que tudo o que jogamos nos toques, a placa de cobre vai realmente ativá-la. E então aqui vamos ter laje de cobre. E isso vai ser uma laje de cobre e também um bloco de laje. Eles vão. E isso é todo o registro necessário para o, para os blocos. Claro que nunca é tão fácil. Porque agora nós vamos realmente ter que criar um monte de modelos diferentes e, e coisas para as escadas, em primeiro lugar, e isso, nós vamos simplesmente entrar em nossos estados negros aqui. E vamos copiar esse arquivo JSON. Vamos dar um nome a esta escada de cobre porque eu, como eu disse, vamos fazer as escadas primeiro. E eu vou, você sabe, nós estamos nós sabemos disso, certo? É como um modelo variante. Sim. Bem, amor duro. É
assim que parece para as escadas. Então o, o, a essência disso é basicamente, isso define como as escadas são, certo? O modelo das escadas basicamente é definido por isso. Sim, é, é um pouco exagerado. Então é por isso que eu disse que vai ser um monte de cópias no final do dia, vai ser um pouco mais do que você imagina. Mas é claro que ainda não terminamos porque isto é apenas os estados Bloch. Na verdade, temos que copiar algumas coisas em blocos também. Então a primeira coisa que vamos ter são as escadas de cobre. E certifique-se de que está escrito corretamente. Esquivar Jason. Sim. E vai ser isto. E, na verdade, isso não é tão ruim. É basicamente apenas olhando para quais texturas são mostradas na parte inferior, na parte superior, nas laterais. Isso não é tão ruim. E então nós realmente precisamos de mais dois neste bloco. Então, nos modelos um, precisamos de escadas, entre. E isso vai ser basicamente a única mudança vai ser que isso vai, isso vai ter escadas sublinhadas internas em vez de escadas. E então nós vamos ter, mais uma vez também as esferas externas. E isso é necessário, é claro, quando você tem algo se conectando a outra coisa também. Agora, a última coisa que vamos precisar é a definição do item aqui. E isso é Felizmente como vamos realmente copiar deste. Isso vai ser o mais fácil de todos. Eu vou fazer Sears cobre é o único 11 acima, que eu não vou copiar porque isso é tão fácil. E depois vou fazer o bloqueio e depois os bois da tremonha. Então são basicamente apenas referências, mais uma vez, volta ao modelo deste, que basicamente faz referência às texturas. E para as escadas, é isso. Agora isso é, é claro, um termos relativos, certo? Porque isso é, isso é um pouco. E então nós realmente temos 12345 diferentes, cinco arquivos diferentes que precisamos apenas para as escadas. E para muitos dos outros, também
haverá pelo menos quatro, talvez até cinco arquivos JSON diferentes que realmente precisamos criar. Mas antes de tudo, vamos olhar para as escadas. E depois o que vou fazer é mostrar-vos a cerca porque é uma das outras que é um pouco mais difícil. E então os outros, os arquivos são todos, é
claro, mais uma vez, como recursos disponíveis. E então você deve tentar fazê-los você mesmo. Porque, como eu disse, muitos deles estão simplesmente copiando. Então não há muito, tanto na magia. Certo, vamos criar mais e fugir dos zumbis. E vamos ver, lá vamos nós. Então os outros estão a caminho, certo? Temos a laje de cobre, a placa de pressão, o portão da cerca e a cerca. E, mas apenas as escadas têm o como ambos um um modelo de um item, como vemos e parece bom. Você pode realmente colocá-los e ele funciona sem um problema. Eles também se conectam. E podemos colocá-los assim. Não, você vai assim. E assim, vamos. Certo. Então eles funcionam como escadas completamente normais, como você gostaria de qualquer outra Sears. Agora, mais uma vez, é claro, no final, se nós os tivermos,
eles não vão deixar cair nada porque nenhuma mesa Lu que vai acontecer em nós. Então isso é muito, muito importante acrescentar também, é claro. E também não há receita de elaboração para eles ainda. Portanto, isso também precisaria ser adicionado. Se isso é algo que é importante. Quando você realmente lançou o modo, então você consciente gosta, como eu faria nossa receita, certo? Então as escadas, como você pode ver, não é a coisa mais louca. Então vamos fechar tudo
isso e depois vamos fazer o ataque de cobre e o portão de defesa. E eu vou fazer um pouco mais fácil para mim. Eu só vou copiar aqueles completamente supervisionados. Este vai ser o estado do bloco. Desculpe. Vamos encostar-nos. Vou mostrar-lhes. Então vai haver cópias. Sim, por favor. Então a cerca parece assim. Mais uma vez, todos os arquivos estão disponíveis como um recurso. E então nós também temos o portão da cerca, que é um pouco mais parecido, um pouco mais complicado. Digamos que esta é na verdade uma multiparte neste caso. Claro, também pode certificar-se de que este é o seu ID do MIT, certo? Então, se você não usou o curso MC doença, é claro, mudar isso e certifique-se de que o, esses nomes estão realmente corretos. Agora, o então também precisamos para a cerca. Agora você vai dizer, isso é loucura, certo? Então, nos blocos para a cerca, precisamos. A cerca Gate Defense se abrir. A cerca fica a parede e a parede da cerca aberta. Então, esses são os que vamos precisar aqui. Esses são apenas para este, este, este e este. Certo. Então portão aberto, portão parede e parede aberta. E então, para a cerca, vamos precisar de mais três. Nós vamos precisar do inventário de cerca, postes de
vedação e lado Fen, como eu disse, em e por si só só os estados Bloch são realmente os loucos com o conteúdo deles é louco. Os outros são, são muito fáceis de, você sabe, entender e esse sentido apenas o pai realmente muda. Então este é o inventário de Fence, então é assim que a cerca ficaria no inventário. É assim que o poste de vedação se parece. É assim que o lado da cerca se parece. E agora para a cerca, nós realmente precisamos bem, primeiro lugar, nós precisamos dos itens também. Isso é mais uma vez, não isso. Quero dizer, um muito importante para a cerca Ka'apor, você usa o inventário um e para o portão de SO no inventário você usa sublinhado de cobre normal, sublinhado oito para referência como pai. Agora, há mais uma coisa que realmente precisamos adicionar neste caso, que nossas cercas realmente se unam. E isto é, vamos precisar de uma nova pasta no lado da nossa pasta de dados bem aqui. E isso vai ser um diretório chamado Minecraft. Talvez já tenha ouvido falar. Não tenho certeza sobre isso, mas sabemos que é um joguinho que você joga por 120 milhões de pessoas são fígado grave. Dentro dessa pasta, vamos criar outra pasta chamada tags. E dentro da última pasta, vamos chamar blocos. E neste, desta vez ele realmente precisa ser plural. Então ele precisa ter o S nos blocos finais. E lá dentro, vou criar um novo arquivo chamado “Fancies dot JSON”. E aqui nós simplesmente precisamos adicionar o, esta linha onde o valor dentro dos valores são cerca de cobre é realmente adicionado em. E então, se todos os arquivos foram adicionados, e se eu não perdi nada, então devemos ser capazes de ver as cercas em ação dentro do Minecraft. Agora, como eu disse, esses são muitos arquivos que precisam ser criados e adicionados. É por isso que vou ter todos eles como recursos. E é melhor para você simplesmente pegá-los, copiá-los, provavelmente olhá-los. E depois de vermos nossa cerca dentro do jogo, eu vou realmente mostrar onde você também pode obtê-los se, por exemplo, eles estão perdidos ou, você sabe,
se você não pode encontrá-los ou o que quer que aconteça, eu irá mostrar-lhe onde realmente encontrá-los. Vamos ver. Então isso é muito bom. Já. Na verdade, vamos ver isto e isto. Agora, é claro, os nomes podem ser alterados muito facilmente com dentro de nossa pasta Lang, eles en nós arquivo adjacente onde nós adicionamos os nomes. Toda vez. Acabei de pular esse passo agora. Então vamos adicionar isso, em seguida, levou para o portão e deixar outro. Então isso funciona perfeitamente bem. E é claro que o portão é aberto,
impossível , como você esperaria. E agora vamos colocar outra cerca e eles se conectam. Isso não é ótimo? Então eles se conectam a ambos os 12 blocos, como é habitual com ofensas. E eles se conectaram às cercas. Agora eles não se conectariam a outras cercas de madeira? Eu acredito. Então. Vamos colocar uma cerca aqui. Temos uma ofensa. Eles não devem estar conectados. Sim, não sabem. Certo? Para que eles não se conectassem. É uma coisa muito importante de se notar, certo? Então, onde você consegue as outras coisas que você precisa, certo? Fluxo em primeiro lugar, para os outros aqui. Então, para a placa de pressão na laje, você realmente vai pegar o botão final? Sim, o botão, eu realmente adicionei um botão aqui. Inacreditável. Isso é C, isso é isso. Quero dizer, mas o botão é realmente bastante fácil, bem, está indo para este silenciosamente aqui e quer ver botão NAT. Agora vamos fazer o botão de cobre bem aqui. Quero dizer, neste momento, ainda bloqueia botões e é isso. Quero dizer, não deveria ser, não
deveria ser muito louco para adicionar qualquer dois sombreadores, você sabe, qualquer uma dessas coisas. De qualquer forma. Então esses são alguns dos que são esses blocos não-bloco. E onde você encontra, por exemplo, esses estados Bloch? Bem, você pode realmente ir até aqui para bibliotecas externas. E então quando você abre a pasta 1.8em bem dentro de lá, nós realmente vamos para baixo para realmente, isso não está certo. Essa nem é a pasta 18. Na verdade, vamos descer ainda mais, mas temos que passar pela pasta 18. E nós vamos procurar um cliente Minecraft líquido extra
um e, em seguida, é claro, a versão Minecraft. E dentro de lá há um frasco extra de cliente, que é a raiz, e então há ativos e então este Minecraft, e depois há estados Bloch. E então você tem todos os conjuntos de blocos de todas as coisas diferentes, certo? Então esses são todos os arquivos adjacentes que são realmente para Minecraft, baunilha. Tudo bem. Então você pode apenas ir para os de acácia. Por exemplo, você pode dizer ver a porta de acácia. E então você pode simplesmente copiar isso. Agora, como você pode ver, a porta, complicada também, porque também há dobradiças e eles precisam
saber onde girar e, e todos os tipos de coisas. Então, você sabe, copiar tudo isso. Devíamos mudar o Minecraft para o teu MOD ID. E também, é claro, então o nome da acácia, provavelmente dois, por exemplo, cobre. Se você quiser ter uma porta de cobre ou o que quiser adicionar ao jogo. Então todas essas coisas podem simplesmente ser adicionadas. Certifique-se, claro, para isso, por exemplo, se você quiser adicionar uma taxa de alçapão, então também vá para os dados. Não, isso não está certo. Não, não, está certo. Para o modelo. Desculpe, é claro, eu agência genuína, o bloco de vários modelos. E então também procurar a Acácia. E então vamos ver acácia presa no fundo, topo aberto, certo. Então essas são algumas coisas que você precisa cuidar. Cada um desses, qualquer um desses arquivos foi adicionado ao seu próprio diretório, certo? Então isso é apenas algo muito bom de notar que você pode realmente olhar para os arquivos originais, simplesmente copiar e colar. Realmente não há outra maneira neste caso de fazê-lo. Porque eu tomei direito, como agarrar tudo o que está aqui. Isso vai levar mais um curso de 20 horas, certo? Porque é claro que é assim que algo lida neste caso. Não vamos nos preocupar com isso. O que vamos fazer é saber como adicionar essas coisas. Agora, como eu disse, nós adicionamos as escadas, ofensa e porta de defesa. Agora, o botão de bloqueio pressionado e laje. Eu acho que você provavelmente pode fazer isso sozinho. Mais uma vez, se houver algum problema que você encontrar, você pode se sentir livre para entrar em contato comigo ou me fazer uma pergunta. Muito importante para as lajes. O que eu simplesmente quero mencionar, você também precisa adicioná-los na pasta de blocos para as tags. Mas isso é felizmente também algo que dentro da rede Minecraft um, você pode realmente ver o que eles se adicionaram em suas tags blocos. Então você pode realmente ver que há um monte de coisas que eles
adicionaram e algumas coisas precisam ser adicionadas, algumas não. E sim, então, no geral, Esses são os, digamos, blocos não-bloco. E como sempre, sinta-se à vontade para perguntar se há alguma dúvida. E sim.
53. (Minecraft) Modos Config: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar nossos próprios arquivos de configuração. Possivelmente você irá adicionar algo em seu mod, que você realmente quer que o usuário tenha controle sobre, certo? Então, por exemplo, a velocidade na qual talvez uma colheita cresce ou um item cheira ou algo assim. E o que podemos realmente fazer é que podemos realmente criar seu arquivo de configuração que, em seguida, o usuário final pode alterar r modificar. Você provavelmente já viu isso. E para isso vamos criar uma nova classe Java dentro do nosso pacote util, que vamos chamar config. E agora há cláusula de conflito vai parecer um pouco instável, mas não se preocupe, nós podemos realmente, nós podemos realmente passar pelo, então primeiro de tudo, vamos fazer uma estática pública e, em seguida, vamos ter um Forjar especificações de conflito em especificações fixas, certo? E isso vai ser o conflito do servidor porque vamos precisar de um conflito separado para o servidor e o cliente. Neste caso, ele realmente não tocou em nenhuma das coisas do servidor ainda. No entanto, não se preocupe com isso. É melhor que isso seja feito neste caso, para tudo para que seja mais fácil ser adicionado mais tarde, certo? E então nós vamos ter o valor do ponto de especificação. Este é um, este é o exemplo que eu vou dar. Então o que vamos fazer é ter uma, a palavra duração do brilho. Então, se você se lembrar de volta, nós adicionamos o evento de que quando você realmente
acertar uma ovelha com e com a Apple corporativa, eles vão ter um efeito de brilho. E este efeito, tivemos um conjunto de duração. E também quando você come a maçã, você também tem 50% de chance de obter esse efeito. E neste caso, o que vamos fazer é ter essa duração de brilho de cobre como um conflito que pode ser mudado, certo? Então vamos criar um bloco estático aqui. E dentro disso vamos fazer, vamos criar um,
um quarto construtor de especificações de conflito, que vai ser o construtor de servidores. Vai ser o novo construtor. E depois copiaremos isto. E este vai ser o cliente construído IN Builder. E nós vamos ter um novo, Novo Método abaixo, que pode ser privado, estático, vazio, brilhante, duração. É assim que vou chamá-lo. Você pode, em teoria, chamá-lo onde quiser. E isso vai ter construtoras de especificações de conflitos de fusão. Então isso vai precisar de um construtor de servidores. E também um construtor. Não construtor de conflitos, mas um cliente, um construtor, um ego Bilder? Sim, senhor. Ei, nós vamos. E dentro de lá, nós vamos agora especificar isso. Então esta vai ser a duração de carga conquistada igual a. E agora vamos usar o cliente builder.com. E agora isso é muito importante. O que nós realmente vamos fazer aqui é que nós não vamos ler em, bem, nós vamos ler em um arquivo de configuração, entanto, nós também vamos escrever um arquivo de conflito, certo? Então isso é muito importante porque o arquivo de conflito não existe. Na verdade, estamos certos. Se existir, vamos ler. Então este é basicamente o comentário
acima do valor ou a variável que vamos definir. Então isto é, por exemplo, quanto tempo dura o brilho para quatro maçãs de cobre, certo? E eu vou dizer entradas porque esta é a quantidade de tempo que leva. E então nós também vamos fazer definir em alcance. Então isso é muito importante, ou não é importante, mas é uma boa idéia fazer isso. Então, abaixo, duração vai ser o nome do, o que o usuário. Basicamente vai ver, vamos ver isso em breve. E temos um valor padrão de uma folha. Nosso valor padrão era 600, se não estou enganado. Bem, aqui estão 300. Dentro de nossos eventos, são provavelmente 600, só sim, aqui estão 600. Então vamos ficar com 600. Vamos dizer que o mínimo tem que ser 100. E, em seguida, o máximo é simplesmente vai ser inteiro que o valor máximo. Então é basicamente, você sabe, nós realmente vemos o que é. Sim, sim, 2 bilhões e mais um pouco. Então, sim, em teoria que este seria o valor máximo. Você também poderia dizer, bem, quero dizer, se não faz sentido ter algo assim, mas, você sabe, para nossos propósitos nós vamos fazer valor máximo dependendo da maneira que você, qual variável você quer definir. Dois é o sensato. E o próximo método que implementamos é um vazio estático público. E nós vamos chamar isso de arquivo de configuração de carga. Aqui vamos passar uma especificação de conflito, que vai ser conflito e uma mola que SNP com um caminho para o arquivo. Agora, esta vai ser uma configuração de arquivo comentada, que vai ser o arquivo. Vamos a todo o ano do construtor com um novo arquivo. Com o caminho dado. Faremos uma sincronização, salvamento automático e depois um modo de escrita, modo escrita, ponto Substituir. E depois vamos construir isto. Na verdade, eu também tenho que implementar a classe de java.io, então java.io arquivo. E então uma vez que isso é escrito, nós realmente temos que escrever por carga. E então o arquivo de configuração do conjunto de pontos de conflito. Eles, nós vamos, certo. Vamos chamar isso da nossa aula de MC CourseMart, mas ainda não terminamos 100%. Então, em um resumo muito curto, o que isso basicamente faz é como, hey, se o arquivo existe, substitua, se o arquivo existe, leia, se ele não o escreve. Essa é a forma mais básica que tomamos aqui ou que posso explicar. Vamos chamar a duração
do globo com o construtor de servidores e, em seguida, o construtor de clientes que tecem. Estou implementado aqui. E então, no final, nós também vamos dizer o conflito do servidor de configuração, não o servidor. A configuração do servidor será igual à compilação do construtor de servidores. E então a mesma coisa vai acontecer com o conflito de clientes aqui em cima. Então este vai ser o ponto do construtor de clientes. Certo. Agora o arquivo de configuração realmente completamente feito. Se você quiser adicionar uma nova variável, é
claro que você tem que primeiro adicioná-la aqui como um estático público, forge, especificação de conflito e, em seguida, int valor ou um valor duplo ou qualquer tipo de valor que você deseja. E, em seguida, você também tem que fazê-lo aqui para que ele realmente é adicionado ao. O que você quiser. Agora, ou o que você pode fazer é criar um método aqui e não chamar essa duração brilhante. Na verdade, chamá-lo, por exemplo, sem int, talvez inicialização IntValue ou algo assim. Ou, no entanto, você pode criar um novo método para
cada uma das suas variáveis
configuráveis, que depende de você. Isto é, você sabe, não há, não
há nenhuma maneira definida nesse sentido. Tudo o que você preferir e no entanto você pode ler este melhor seria melhor para você agora para o MC, pior MOD plus. Em primeiro lugar, no início, vamos carregar para isso. Nós vamos fazer o modelo de carregamento de ponto de contexto get. E depois vamos registar conflitos, conflitos lama, esse tipo. Na verdade, precisamos especificar o tipo de cliente ou servidor. Agora há outro tipo que é, que vamos ver aqui. Então, se eu mudar isso, nós realmente também temos em comum. Isso é algo que seria configurado no servidor e no cliente. No entanto, no entanto, os que são, eu argumentaria coisas um pouco mais avançadas também. Então temos que fazer algo entre esses dois. E este vai ser o arquivo de conflito de carregamento do ponto de configuração. Eu vou dizer conflito estranho, conflito clientes, caminhos FLM. Então este é basicamente o caminho config dear simplesmente especifica o diretório em que os conflitos são dot get, e então vamos resolver. E dentro daqui podemos simplesmente escrever um, o nome do nosso arquivo de configuração do cliente. Então, por exemplo, MC curso traço cliente ponto Tamil. Mas isso deve ser um diatomáceo, um arquivo. E depois vamos fazer duas cordas. Sim, lá vamos nós. E então vamos copiar isso e fazer o mesmo para o servidor mais uma vez com o seu, e então vamos chamar isso de servidores EMC humilhados. E agora, se nós realmente fizemos alguma coisa, tudo certo? E eu acredito que nós
temos, nós vamos executar o jogo. E então eu vou mostrar a vocês onde o FEC Hmmm é gerado e como também, como também podemos implementar em, por exemplo, o armário nos eventos corporativos da Apple MD. Vamos apenas deixar esta carga para apenas classificar. Então temos o menu principal aqui. E depois vamos desistir imediatamente. E agora dentro da pasta run aqui em cima, em vez da pasta config aqui nós realmente vemos que temos AMC force client e MC4 servidor. E dentro daqui, exatamente o que fizemos. Quanto tempo a perda brilhante para o nível de copo e carrapatos varia mais de um 100. E então nós podemos realmente mudar isso também. Agora, nós também queremos mudar isso aqui, certo? Então essa duração, e isso é tão fácil como digitar ponto de conflito cobriu a duração da carga. Agora este é um valor int e nós queríamos em, é por isso que temos que fazer. E lá vamos nós. É isso. É tudo o que precisamos fazer. Mais eventos. Podemos fazer exatamente o mesmo. Então temos ponto de conflito Hubbard baixa em duração, ponto get. E depois vamos. E isso é tudo o que precisamos fazer. E agora o, agora o efeito realmente tem uma duração variável que podemos definir aqui, certo? Então podemos dizer, bem, são 600 ou podemos dizer
que são 50 mil ou 500 mil não importa. Podemos fazer o que quisermos. E nesse caso, o usuário também pode fazer o que quiser. O que é muito legal, na verdade, para muitas coisas. E é tão fácil como simplesmente entrar em conflito. E, em seguida, o nome da variável que você especificou. E é isso. A coisa boa para isso também é porque estes são como partes totalmente diferentes de código. Neste caso, podemos ter certeza de que eles sempre têm o mesmo valor. Podias pensar que talvez tivéssemos esse brilho no armário. Duração talvez seja referência em 18 lugares diferentes. Bem, se você tem o número real escrito lá todas as vezes, certo? Como um número de 300 ou 600. Bem, então mudar isso seria bom, um pouco de trabalho simplesmente por causa do fato de que talvez você nem sabe onde, em que lugares você realmente, você sabe, cometeu esse número. Então é muito útil para isso também, e também para ter conflitos, certo? Sim, então isso é basicamente tudo para o arquivo de configuração que eu queria cobrir aqui. E mais uma vez, sinta-se à vontade para perguntar se há alguma pergunta. E sim.
54. (Minecraft) Exportando seu Mod: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, eu realmente vou mostrar a vocês como
exportar seu MOD adicionar em um arquivo jar, que você pode então usar em basicamente um pacote MOD ou em, ou uma versão normal do Minecraft. E isso vai ser bem fácil. Você só vai até aqui para o terminal e você vai digitar Gradle w, construir. É isso. Entrar. E então vamos esperar um pouco. Então ele vai fazer todo o tipo de coisas em segundo plano que vai compilar. E isto é, é basicamente tudo o que precisava acontecer. E agora nós realmente temos que navegar para o diretório aqui. E se fizermos isso, podemos realmente ver isso. Então nós vamos apenas rapidamente, eu estou indo para ir rapidamente do outro dia nós vamos lá estamos, certo, então este é o diretório. E dentro daqui, podemos ir para a pasta Build. Em vez da conta para Rho, vamos para as vidas e em vez de aqui temos MC pior e, em seguida, inversão um frasco. Agora, como podemos realmente usar isso, bem, o que eu vou fazer é ir para o lançamento do Twitch. Vou criar um perfil personalizado. Vou mostrar-te isto. Então este é o lançamento do Twitch onde,
por exemplo, temos mais alguns pacotes que eu já joguei . E então dentro daqui nós vamos realmente criar um novo perfil com a versão três lá. E nós realmente usamos o, nós realmente usamos 3410 porque essa foi a versão que baixamos no início do curso. E o perfil será apenas Mc. Pior, teste, crie essa carga de poucas coisas. E então aqui podemos realmente abrir pasta e, em seguida, obter uma nova pasta aqui. E em vez de mods, você pode simplesmente fazer o seguinte. Você pode simplesmente pegar este frasco, copiá-lo, colá-lo em modelos, e é isso. E depois jogue. Agora vamos ver se isso realmente funciona. Então aqui em baixo podemos ver que este é o perfil que queremos fazer. Na verdade, já estou logado. Você pode ter que entrar primeiro, e depois vamos jogar. E vamos ver o que realmente acontece aqui. Então algo vai carregar e alguém vai abrir. Mas era o que queríamos? Vamos ver isso. Vamos ver isso muito em breve. Então, em primeiro lugar, é claro, nós vamos ter mais uma vez música que desliga para os propósitos desta demonstração aqui. E enquanto temos três Maslow fez e olhar para o modo MC, isso é loucura. Vamos simplesmente criar um novo mundo. Criativo como bom. Sim, vamos apenas criar um novo mundo e vamos ver se isso realmente funciona. Então você poderia imaginar que isso também poderia ser, naturalmente, uma taxa MEDPAC com 120 meses, todos os modos ou o que quer que seja. E então podemos nos encontrar em algum lugar enquanto respondemos em uma ilha que é, que é de Hilary. Ok. Bem, vamos ver. Claro, o degrau principal está lá dentro. E todas as coisas que realmente fizemos ou não fizemos, como os botões nas lajes. Espero que tenha feito isso. Eles estão realmente em jogo sem qualquer problema. Podemos colocá-los. Você tem os blocos bióticos da tremonha e nós temos um 0, o capacete, por exemplo. O capacete, espere, aqui vamos nós. É realmente colocar isso. Lá vamos nós. Bem, isso não é ótimo? E isso é muito bom, na verdade. Quero dizer, é
assim que se exporta o modelo. Como eu disse, não é uma coisa difícil ou bastante complicada. É um, basicamente um comando que você tem que colocar. E, e se você quiser adicionar isso a um determinado mods, pacote
louco, ou um perfil, ou você quer dar isso a outra pessoa. Você pode dar, basta dar-lhes o frasco. E então eles podem usar isso simplesmente como eles fariam em qualquer outro modelo, basicamente. Escrever. Isso também resume a maior parte do curso. Tenho mais uma palestra depois disto. Vamos falar um pouco sobre uma dica que tenho para muitos de vocês. E então também vai haver basicamente a palestra onde eu vou dizer como você, como este curso vai concluir e tudo isso. Então, sim, espero que tudo aqui tenha sido de valor para você. Espero que tenha gostado. Gostaria, naturalmente, de uma crítica. E sim.
55. Use Github para exemplos de código-fonte: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, eu realmente não estou dentro do IDE. Na verdade, estou no GitHub. E a razão pela qual eu estou no GitHub é realmente porque eu quero mostrar algumas dicas que podem ajudá-lo no desenvolvimento futuro do seu modo. Quando você realmente usar fazer um modo sério com coisas reais e você realmente quer criá-lo para que ele possa ser liberado para o público e dizer certo. Então o que você deve fazer é ir para o GitHub, você pode obter, você deve obter uma conta, é gratuito. E então você pode realmente procurar por basicamente suas matemáticas favoritas, certo? Escolhi três das minhas contas favoritas. Portanto, há engenharia imersiva, mecanismo e agricultura mítica. E esses três são realmente todos atualizados para a versão mais recente no nosso caso, onde 1.16, três agora. E neste caso podemos realmente olhar para o código-fonte que eles escreveram, certo? Que as pessoas daqueles casamenteiros de lá escreveram. Então podemos ir para a fonte aqui mesmo. Então, em engenharia imersiva, e você pode ir para principal e, em seguida, Java. E isso é basicamente todas as mesmas coisas que fizemos por conta própria, certo? Este era, este era Java e este para nós era calmo Copan Joe e uma engenharia imersiva foi curso MC para nós. E então não tínhamos a API, o cliente e a diferença comum aqui ou as pastas, mas tínhamos nosso próprio arquivo Java, certo? E podemos dar uma olhada nisso. Então podemos ver como eles fizeram alguma coisa, certo? Então foi isso que fizemos também. Tínhamos uma identificação pública da Primavera Mar. Não tínhamos o nome do MOD, não
tínhamos a versão simulada. Isso é, por exemplo, algo que você poderia fazer. E então havia um monte de coisas aqui que nós
nem sequer tocamos porque outras coisas são loucamente complicadas que precisam de muito mais conhecimento sobre os fundamentos e aqui. Mas a melhor maneira de aprender é tentar algo novo. Você também pode tentar e bifurcar isso. Então você pode simplesmente baixar o deforest, o código-fonte de um desses modos e, em seguida, iniciá-lo por conta própria, certo? Então você tem um, você basicamente tem o código-fonte
dos smarts então baixado e você pode simplesmente brincar com ele, certo? Então você tem uma cópia local disso. Você pode brincar com ele. Você pode realmente mudar o código, ver o que acontece. Então isso é uma coisa real sobre, você sabe, em oito horas, você não vai criar,
digamos, a próxima engenharia imersiva ou o próximo mecanismo ou a próxima agricultura mística. Simplesmente não vai funcionar assim. Você vai ter que trabalhar um pouco mais em todos vocês que você aprendeu e você tem que construir sobre esta taxa. E esta é, eu acho que uma das melhores maneiras de fazer isso. Passe por esses arquivos, pense na sua massa favorita que você tem. Olhe para eles, veja como eles fizeram isso. Você também pode voltar ao passado basicamente, certo? Assim, você também pode ir para uma taxa
anterior, versões anteriores aqui, por exemplo. Ou você pode voltar ao passado com este botão histórico basicamente. Então você pode olhar o que mudou, em que versão e tudo isso é você pode simplesmente passar e ver, ok, como isso foi trabalho de Harris e vai ser difícil às vezes, certo? Vai ser talvez ou eu não entendo isso, eu não entendo isso. Sabe, tudo vem com o tempo. Isso também é, é claro, por isso que eu disse que Java é simplesmente um requisito. Caso contrário, você estará perdido neste. Definitivamente. Certo, então vamos apenas para o mecanismo, apenas para o bem da discussão também. Então mecanismo e este é eu acredito no cliente que eu não tenho certeza. Não, na verdade é em comum. Bem, eles vão. Carmen e o mecanismo de ponto Java. E então também podemos ver algumas coisas que ele tem. Então manipuladores de pacotes, o registrador, nós, nós, nós já vimos o logaritmo antes. E ele também tem gerente de radiação porque ele realmente adicionou irradiação
pronta e mecanismo e tipo de coisas lá vamos nós. Então nós temos esses ouvintes, nós temos três, você viu algo muito parecido com isso. Há eventos que estão registrados. Então você, oh, você sempre verá algum tipo de semelhanças de coisas que você já viu. Mas também é claro que você vai ver Tudo o que eu vi, que eu não vi isso, isso é interessante. E neste caso você também pode, isso é muito legal porque o que você pode fazer é que você pode realmente passar o mouse sobre eles e, em seguida, clicar sobre eles. E então, por exemplo, se você quiser saber, bem como os dados de vários blocos de tanque funcionam? Sabe, você poderia entrar lá e agora você está nos dados do tanque multi bloco, java, o arquivo java. E então você poderia apenas olhar para ele, certo? Você pode olhar para todos os tipos de coisas. Agora, mais uma vez, isso não vai ser uma coisa onde você olha para ele. E em um caso, você vai entender tudo certo. Você vai realmente ter que trabalhar através disso e, e olhar para ele um pouco e também tentar algo, certo? Porque você não pode aprender algo se você não tentar, e se você não adaptar algo e se você trabalhar nisso, certo, isso é basicamente um impulso que eu quero dar a você também. Apenas para, apenas tentar, apenas experimentar coisas para ser criativo com isso e para não ser desencorajado mesmo que às vezes não funcione. E se você realmente quer criar um modelo, eu altamente,
altamente recomendo olhar para isso, olhando para os modos que você gosta. Talvez mesmo isso, talvez você queira ter este mod e você quer mudar um pouco ou apenas a sua criatividade realmente o estranho quaisquer limites para isso além de sua criatividade, o que você pode pensar. Então vá lá fora, você sabe, criar um modelo assassino. Eu adoraria. E, claro, a coisa mais importante se você realmente criou um genuinamente, genuinamente janeiro, por favor me envie um link ou uma prévia ou até mesmo um repo do GitHub para isso porque eu adoraria vê-lo. Eu adoraria vê-lo. Então, e sim, acho que é isso por enquanto. Espero que o curso foi de interesse para você e realmente pegou você. Talvez tenha começado um incêndio. E que você realmente quer criar algo e que você aprende algo aqui. E sim.
56. Use o GitHub como um sistema de controle de versões: Muito bem, bem-vindos de volta ao curso de microondas. E nesta palestra vamos dar uma olhada rápida em como você pode importar ou carregar seu repositório Git. Então, seu mod Minecraft para um repositório GitHub. Agora, há duas coisas que são muito importantes. Como eu não vou te dar um, digamos uma compreensão teórica do GitHub. Isso não é bom em geral. Esse não é o objetivo desta palestra. O objetivo desta palestra é mostrar como você pode adicioná-la ao GitHub. E eu vou dar-lhe no entanto, três links como um recurso. Um, claro, é github.com. Eu diria que isso faz mais sentido. Você vai precisar de um, uma conta lá, mas é completamente gratuito, então não se preocupe lá. Eu também lhe darei este link para o Jetbrains.com. Então esta é uma ideia inteligente, basicamente como configurar um repositório Git. Ali. É explicado basicamente exatamente o que estou explicando aqui é explicado lá em muito mais detalhes, na verdade. E então eu também vou dar-lhe o link de download. Esqueça, agora eu não tenho 100% de certeza que você precisa disso porque eu acho que até j vem com Git em si, mas eu não tenho 100% de certeza. Então, se algo não funcionar, você pode precisar baixar isso, mas passar por isso. Estamos provavelmente com este, com o, este tutorial ou com a minha palestra aqui primeiro. E então se, por exemplo, diz, hey, você não tem o Git instalado, então você pode instalar o Git. Caso contrário, eu não me preocuparia com isso. Certo. Então esse é basicamente o preâmbulo aqui. E então vamos, vamos, vamos fazer isso. Então, antes de tudo, queremos criar um novo repositório. Então, no GitHub, vemos este novo botão aqui. Vamos clicar nisto. E nós vamos dizer curso MC repositório. Claro que sim. Isso faz sentido. Vamos deixar a descrição vazia e vamos tornar isto privado. Então você pode optar por fazer um público ou privado apenas para ter certeza de que um público, qualquer um pode vê-lo. E em particular você pode escolher quem pode vê-lo, certo? Qualquer outra coisa que não precisamos. Então vamos apenas criar repositório. E lá vamos nós. Então configuração rápida, isso simplesmente significa que não há nada aqui agora. Então não temos uma filial, não
temos nada lá, e isso é basicamente o que queremos. Então o que vamos fazer é copiar este aqui, certo? Então, podemos apenas clicar neste botão de cópia e, em seguida, ele vai copiar este HTML. Há o URL em vez disso. E então vamos para o nosso projeto MC curso MOD. Dentro daqui queremos, primeiro vá para Configurações de Arquivo. E, em seguida, sob controle de versão no GitHub, você deseja adicionar sua conta GitHub.com. Basta clicar no botão de adição. E então, quando você for, eu acho que você poderia fazer qualquer um desses pedidos de token via GitHub e, em seguida, ele vai pedir que você faça login no GitHub. Portanto, tudo funciona é medicamente, você não precisa digitar sua senha em nenhum lugar, exceto para o próprio GitHub. E isso deve funcionar e então você deve ter sua conta lá, certo? E uma vez que isso está lá, você pode ir até aqui para VCS tal que para o sistema de controle de versão. E, em seguida, quando você entra no controle de versão de importação, você diz criar um repositório Git. E o que você pode fazer é selecionar o
seu diretório onde você tem seu mod I_n. Então deve ser selecionado por padrão. Clique em OK. E então o que vai acontecer é que muita coisa aqui vai ficar vermelha. Não se preocupe com isso. Isso é tudo normal. E então aqui em cima onde você realmente vai ver em alguns novos botões aparecer. Esses botões são bons. E no canto inferior direito você vai ver este mestre. Então esta é a sua filial que você vai ter. Muitas coisas vão aparecer. Não se preocupe com isso. Isto é, está tudo bem. Agora o vermelho não significa que há flechas. Isso simplesmente significa que você não os comprometeu. E vamos fazer isso agora mesmo. Então o que nós vamos fazer é ir até este aqui, para o, para a marca de seleção e dizer cometer. E nós vamos apenas clicar nisso. E então ele vai dizer que temos um 182 arquivos de inversão. Nós só vamos selecionar esses. E então vamos dizer que este é o nosso compromisso inicial. Aqui em baixo você pode ver que mestres disso vai estar dentro do ramo mestre. Isso é totalmente bom. Podemos deixar isto. E, em seguida, vamos clicar em Confirmar. Agora é que ele vai adicionar os arquivos ao sistema de controle de versão. Agora ele está olhando para a análise vai dizer,
oh, aqui está o código, Fine. Tem alguma flecha aí? São os avisos lá dentro. Vai dizer-nos que há alguns avisos neste momento. Não se preocupe com isso. Nós só vamos nos comprometer. Avisos são principalmente as coisas que ignoramos. Porque às vezes há avisos que temos de ignorar. E às vezes eu não estou apenas suprimindo os avisos com um, com uma anotação. Devíamos fazer isso, mas não é necessário, certo? E agora, como você pode ver, nada mais é lido. Mas se voltarmos para o, se voltarmos para o GitHub, se recarregarmos isso, não há nada aqui. Então, e nós tivemos um nem sequer colocar o,
colocar o URL em qualquer lugar, certo, então, por que? O que está acontecendo? Bem, precisamos adicionar o URL, então temos agora um controle de versão local, mas não temos o controle remoto de versão. E remoto basicamente significa em outro lugar, certo? Então este é o que está no GitHub e precisamos adicionar isso também. Agora, como adicionamos isso? Bem, podemos adicionar isso dizendo “empurre”. E então ele vai dizer, bem, primeiro de tudo, você precisava encontrar um controle remoto. Não sei para onde empurrá-lo. E nós vamos apenas clicar nisso e, em seguida, colar
no URL que copiamos do GitHub e dizer, OK, ele vai verificar se tudo está bem ou não e, claro, tudo está bem. E depois vamos dizer “empurre”. Agora ele está carregando todos os arquivos para se levantar. Então você pode ver aqui em baixo ele está empurrando e então ele diz empurrar mestre para novo ramo origem cortar músculo. E se você for para o curso MC agora sobre isso, no GitHub ou no nosso repositório GitHub e recarregar. Como você pode ver agora tudo está aqui e tudo está bem, certo? Agora. A grande coisa aqui é que uma vez que você altere algo em seu código, então digamos ,
por exemplo, apenas como um exemplo, vamos adicionar um comentário muito importante, certo? E nós vamos salvar isso, como você pode ver, agora, este arquivo é azul. Isso ocorre porque houve uma modificação nesse arquivo. E então vamos dizer que vamos adicionar uma raiva. Lee, um comentário muito importante também, só por uma questão de argumento. Então vamos ter dois arquivos. Veja que eles vão ficar azuis quando você modificá-los. E a maneira como você pode fazer upload disso agora é simplesmente se comprometendo novamente, certo? E então você pode dizer comentários importantes adicionados, certo? E então você pode dizer commit ou você pode clicar nesta pequena seta e dizer commit e push, e então ele vai empurrá-lo imediatamente para dentro. Vamos dizer que não me importo com os avisos. Como eu disse, não vamos nos importar com isso. Você pode sobrepor. Você também pode apenas rever o que mudou e inconstante. Tudo bem, empurre-o e, e empurre-o, vai dizer que você, tudo vai ficar bem. Agora, agora, se
recarregarmos aqui, podemos ver isso. Commons Importantes. Agora, o importante é que atualmente só estamos trabalhando em um ramo. Mas como eu disse, eu não quero que isso, digamos devolve em um tutorial completo do GitHub. Só queria te mostrar como você pode salvá-lo. E é uma boa idéia talvez olhar para o repositório do GitHub aqui. Este é realmente um bom recurso para ter também. E então verei se consigo encontrar um bom recurso. Eu acho que no GitHub deve haver alguns exemplos de como você
sabe como ramificar algumas coisas e assim sim. Certo. Sim. E isso foi basicamente tudo o que eu queria mostrar a vocês como você pode enviar seu MOD para o GitHub e vamos garantir que ele salva corretamente que você tem um sistema de controle de versão adequado. E sim, então, se houver alguma pergunta, claro 3-3 perguntar, eu quero lembrá-lo que esta foi apenas uma pequena introdução ou visão geral. Eu duvido que eu vou ir muito mais em qualquer coisa relacionada a, para obter, porque realmente não deve ser o foco principal aqui neste curso. Mas sim, não, mas como eu disse, espero que esteja funcionando para você. Se houver algum problema, é claro, sinta-se à vontade para perguntar e eu responderei. E sim.
57. (Minecraft Forge e Minecraft Version (1.16.4): Muito bem, bem-vindos a esta palestra especial no curso de Minecraft. E aqui vamos realmente atualizar para a versão mais recente do Minecraft. Então 1.16.4. E eu já localizei o site da falsificação do Minecraft. Há apenas no site de microformas normais e, em seguida, certificando-se de que você está no 1164. Como podemos ver, a versão mais recente é 1164 e depois 30, 5.0.2. E não precisamos baixar nada. Podemos alterar isso em nosso arquivo de compilação Gradle. Agora, note muito importante que esta é apenas a versão mais recente e tem este pequeno bug aqui, que
significa que esta é uma espécie de versão beta e uma versão de depuração. E no entanto, vamos usá-lo para o futuro e ele não deve quebrar nada e tudo o que vamos fazer deve funcionar para ambas as versões. Pode haver alguns mapeamentos que são alterados no futuro, mas isso é feito em um diferente, em uma palestra diferente também. Então vamos trocar por aqui. E como podemos ver, esta era a versão antiga. E então nós vamos apenas mudar isso para 4350 e, em seguida, a2. E depois vamos salvar isto. E vamos carregar as mudanças do Gradle. Agora isso vai demorar um pouco porque ele tem que baixar tudo. E nós vamos realmente abrir isso na construção. E então ele vai baixar um monte de coisas, baixar o instantâneo e todo aquele jazz. E uma vez feito isso, nós atualizamos. Tudo bem, então tudo parece ter sido feito e levou cerca de dois minutos, como você pode ver aqui. Então, dependendo da velocidade do seu computador, pode
demorar um pouco mais ou talvez seja mais rápido. E podemos apenas executar isso e ver se tudo funcionou ou não. Se houver alguma coisa, então eles devem aparecer como setas e o cliente não deve nem correr. Mas acredito que tudo vai correr bem. Então, vamos ver se já está aberto aqui. Então eu acredito que tudo vai funcionar e nós vamos
ver as primeiras coisas primeiro que aqui em cima, forja de advertência, beta. Então, como eu disse, é a versão beta das palavras. No entanto, geralmente não há muitos erros e loucura. E se houver, você sempre pode atualizar. Então, especialmente enquanto você está no Veda, é bom para pura periodicamente verificar o site para atualizações e talvez até mesmo para uma versão estável. Então eu definitivamente aconselho a fazer isso. E uma vez que uma versão estável é nossa, então você deve usar essa versão estável. De qualquer forma. Então vamos entrar, certo. Então isso é porque nós jogamos este mundo e 1163 e agora nós atualizamos. Só vamos dizer que sei o que estou fazendo. Se o mundo quebrar, duvido muito que sejam quebras porque não
temos nada louco nele que possa quebrar. Acho que não. Sim. Então tudo isso funciona. E tudo ainda aqui? Tudo ainda parece estar funcionando totalmente bem. Sim. Então tudo parece estar funcionando bastante bem. E é basicamente assim que você atualiza, como eu disse, do 16º, três para um, dezesseis por nada realmente mudou muito para nós neste momento. E tudo o resto vai ser feito em 116 para então sim.
58. (Minecraft) Maps atuais: Muito bem, bem-vindos de volta ao curso de Minecraft, a esta palestra especial para atualizar os mapeamentos. E esta vai ser uma palestra muito curta. E aqui eu só vou atualizar o mapeamento. Então eu vou mostrar isso uma vez com este vídeo. E então, como um recurso aqui, eu vou realmente ter os mapeamentos atualizados que você pode usar, que serão os mais atualizados. Basicamente, esses devem ser atualizados. Não sei quantas vezes eles são atualizados,
em termos de forja. No entanto, eu provavelmente vou atualizar isso cerca de uma vez por semana. Então, na pior das hipóteses, você está fora por cerca de uma semana. Mas tenho certeza que vai ficar tudo bem. De qualquer maneira ou você pode, você pode procurá-los você mesmo. Não é a coisa mais importante atualizar os mapeamentos com frequência. No entanto, pode ser útil. Então, vamos reexecutar isso rapidamente. Então eu colei isso. Como eu disse, isso está disponível como um recurso. E ou você pode simplesmente digitar o tipo a partir da tela. Quero dizer, isso não vai ser, eu vou ser
o sofrimento mais louco se formos absolutamente honestos, vamos ver. Então ele vai baixar o mapeado. Os mapeamentos mais uma vez. E o que eles basicamente são é apenas para que nós não temos esses métodos
Fung sublinhado 2869 sublinhado BY, mas eles realmente têm nomes. E eu acredito que nós temos um exemplo que nós realmente temos que mudar se eu não estiver enganado, e isso vai ser nos mais itens, eu tenho certeza que eles são. Nós temos a resistência knock BEC e isso foi um, que era um método funk sem nome próprio. E podemos consertar isso. Mas veremos que uma vez o, uma vez que os mapeamentos tenham para baixo. E como nota, não importa que este seja 1163. Isso também vai funcionar em 1164. E agora se nós realmente vamos para os itens mod, eu acredito que sim, nós temos uma seta aqui porque este fundo foi realmente atualizado e isso está agora recebendo resistência rebatido. E eles dizem: Sim, e isso é basicamente tudo que você precisa saber. Outro recurso que eu também forneci é o mapeamento oficial da forja. A folha oficial de mapeamento ex excel, onde você pode, por exemplo, se você não sabia que isso não era grande resistência, você pode pegar isso, copiá-lo e encontrá-lo lá. E então ele vai realmente dizer o que é isso. Então sim, então tudo é tudo o resto vai funcionar totalmente bem. Eu acredito nisso como nada mais. Vamos apenas eu vou começar apenas para o só para que possamos ver que tudo vai funcionar. Mas acredito que seja. Caso contrário, nós sim. Está bem. Tudo vai funcionar. Está bem. Tudo funciona. Eu apenas parei. Portanto, nenhum outro mapeamento realmente tem que ser atualizado. E sim, isso é basicamente um pequeno vídeo. Apenas trocando rapidamente esta string aqui. E sim.
59. Tabelas avançadas de loot avançado: Muito bem, bem-vindos de volta ao curso de microondas. E nesta palestra vamos olhar para alguns tipos avançados de tabela de saque. Então a primeira coisa que vamos olhar é como podemos,
por exemplo, ter uma queda de um bloco que é semelhante ao Redstone, certo? Então, quando você quebra um Redstone ou bloco, você pode ter talvez dois ou até cinco ou seis pedaços de Redstone realmente cair. E então isso também é modificado pela estatística da sorte. No entanto, vamos olhar para apenas como podemos definir uma contagem. Então, quantos itens vão cair de um quarteirão? E eu só vou copiar isso e passar por isso. Então, como você pode ver, não é assim tão semelhante. Muito semelhante, na verdade, não é tão complicado e diferente da queda normal. O que mudamos aqui é que adicionamos esta lista de Funções. E aqui podemos definir várias funções. No nosso caso, temos apenas uma função definida. E esta é a função setCount. Eu vou, no final da palestra aqui, eu vou mostrar a vocês quaisquer funções que existam. E eu vou te dar um recurso que é muito,
muito bom para você aprofundar o conhecimento sobre como as mesas Lou funcionam. Sim, e isso significa que o contador mínimo é dois. Então, cada vez que eu quebrar o bloco de cobre, duas a cinco caixas de copos caem. É claro que, neste caso, isso não faz sentido. Isto é, no entanto, apenas uma demonstração basicamente, certo? Eu não vou mostrar isso agora, então eu não vou entrar no jogo. Mas, no entanto, isto funciona e também importante, esta é uma distribuição uniforme. Se isso diz algo para você, então você sabe o que isso significa. Se você não tem ideia do que
isso significa, não importa. Você pode procurar isso. Eu só queria te contar. Está bem. Esta é uma das coisas. Então, vários itens ou como você sabe o hot definindo quantos itens cair? Mas que tal várias gotas então também funciona. Então podemos imaginar que talvez queiramos um bloco de cobre caia 20%
do tempo e 80% do tempo que realmente queremos que o fio de cobre caia. E isso é tudo o que fizemos aqui. Então, dentro das entradas, nós acabamos de adicionar uma nova entrada. E demos pesos a ambos, certo? Então eles agora dependem um do outro no sentido de que 20%
das vezes um bloco de cobre cai e 80% do tempo o fio de cobre cai. Agora, neste caso, com a função próxima, podemos manter isso lá dentro. Então isso é muito modular. Digamos que com uma função aqui, podemos realmente fazer isso ser exatamente o mesmo. Então 80% das vezes o fio de cobre cai e 20% do tempo entre 25 blocos de cobre caem. Então esta é a grande coisa aqui. Agora, pode ser que talvez nós realmente não queiramos ou largar o que queremos que ambos cair e ter uma chance independente, digamos. Por isso, também vamos analisar isso. Então isso é um pouco mais, como você pode ver. Então, fica um pouco mais complexo quanto mais adiante vamos aqui. E o que acontece aqui é que nós realmente temos vários pools desta vez. Então, antes de termos várias entradas, certo? Agora só temos uma entrada. Agora temos várias piscinas, certo? Então cada um desses pools, nós podemos realmente especificar dentro de uma entrada aqui. Ei, essa é uma chance aleatória de, por exemplo, uma condição de chance aleatória 0,5. Então aqui embaixo, a capa, por que sempre vai cair? Isso sempre vai acontecer. E aqui, o bloco de cobre, então entre 35 cairá 50% do tempo com esta condição aleatória. E a grande coisa que eu tenho como um recurso é realmente aqui no jogo PDR Lu tabelas, ou seja. Eu admito que isso é como os recursos de alto nível para como olhar para como as fitas de loop funcionavam basicamente. E aqui você tem todo o imposto e vai demorar talvez um pouco, então alguns momentos para realmente entender como isso é definido. Mas uma vez que você aprendeu a ler isso,
é realmente, realmente não só interessante, mas também muito útil. Então, ele, por exemplo, existem funções que podem ser usadas aplicar bônus é para encantamentos. Por exemplo, temos, o que temos encantar aleatoriamente. Então, é quando nós, como você pode ver, quando temos itens que são descartados que gostaríamos de encantar isso. Então, quando os itens caíram, certo, podemos limitar as contagens para que possamos dizer, hey, isso é talvez o especificar quantas, quantas gotas realmente caem. Há tantas coisas aqui, como pode ver. Também temos condições no predicado aqui onde temos coisas diferentes que podemos usar. Podemos ver as propriedades. Podemos ver se algo foi ou não morto pelo jogador. Temos a chance aleatória de que já te mostrei pelas condições. Então, há um monte de coisas aqui. E eu recomendo muito se você quiser tabelas Lu
muito específicas que não são do tipo que eu mostrei. Então isso, você tem que passar por isso e usar isso. Claro, mais uma vez, você também pode passar pelo GitHub de mods que podem ter funcionalidade semelhante que você está querendo usar. Mas este é um recurso muito bom para coisas gerais se você não encontrar nada lá. Sim, isso foi algo para mesas avançadas de Lu. E sim.
60. Crops personalizadas (Minecraft): Muito bem, bem-vindos de volta ao curso da Microsoft e
nesta palestra vamos criar as nossas próprias colheitas. Então preparei uma nova colheita. Então isso vai ser uma colheita de abobrinha. Agora, a primeira coisa que vou dizer é que as texturas foram feitas por si mesmo, mas eu não sou um artista. Então eles não vão ficar ótimos. Mas isso vai ser algo para mais tarde na palestra. Primeiro de tudo, vamos ao nosso pacote de blog e vamos
criar nossa aula de colheita de abobrinha. Isso vai se estender a partir do bloco de colheitas. E nós vamos simplesmente obter a correspondência, o construtor correspondente. E vamos substituir os dois métodos. Um vai ser o provedor de itens, que vai ser o item get seats. Isso basicamente só vai devolver a semente. Agora é claro que não temos isso em nossos itens MOD ainda. Então vamos fazer isso daqui a pouco. E então também vamos querer uma forma de voxel. E isso vai ser bom. Com um estado de bloqueio. Não, sim, isso realmente foi o bloqueio direito estado salvo. Um leitor de bloqueio, que vai ser o mundo. Uma posição de bloco, posição e um contexto de seleção de olho. Este, que vai ser contexto, posição
robô realmente tem que ser importado. Vamos fazer isso com o velho e entrar. E isso vai retornar algo e nós realmente precisamos das formas e importá-los. Você pode simplesmente fazer Controle e, em seguida, clicar com o botão esquerdo no bloco de colheitas. E bem aqui, nós realmente temos essa forma de H. E isso vai ser algo que vamos usar essa atração, essas formas, formas. E isso basicamente define como o, como o bloco parece. É basicamente o mesmo que trigo. E isto vai ser formas. E então isso vai estar dentro dele. Nós vamos fazer o estado ainda este ponto obter propriedade H. E o que isso basicamente faz é obter a forma que é correspondente a cada uma das idades do, do, neste caso a colheita de abobrinha. Então ele vai crescer cada vez
maior como você provavelmente já viu com o bloco de trigo também. Certo? E então vamos para os itens modelo e vamos criar nossa abobrinha. E vamos fazer isso abaixo da armadura. Isso vai ser um objeto de registro final estático público do tipo item. Vamos ser a semente de abobrinha. E então você ia fazer o registro. Registrar esses itens. Agora isso estava correto. Itens. O registo vai ser o bloco de abobrinha. Não, é um assento insignificante, claro. Desculpe. E este vai ser um novo item de bloqueio, na verdade. E então nós realmente temos que fornecer os blocos MOD, colheita de
abobrinha também. Então isso vai ser um pequeno salto para frente e para trás, mas não vamos nos preocupar. Então, nos blocos do mapa, nós também temos que especificar isso também. Nós realmente vamos saber que vamos fazer isso abaixo das escadas velhas e tal. Então, será um objeto de registro final estático público do tipo bloco, que é emitido cultura de abobrinha. E isso vai ser lido apenas ração. Então, neste caso, não
vamos fazer isso. Isso vai ser, então nós não vamos usar este método de registro aqui porque nós realmente
não queremos um bloco que corresponde
ao corte ou um item que corresponde ao corte. Nós realmente queremos ter um item diferente e isso vai ser as sementes. Basicamente. Este vai ser um registo normal de colheita de abobrinha. E isso vai fazer uma nova colheita de abobrinha com o nó abstrato, com propriedades de ponto de bloco abstrato de. Vai ser um pouco diferente e não vai apenas salvar o trigo loc dot. Então vamos pegar exatamente as mesmas propriedades que tínhamos. Isso faz mais sentido neste caso. E, em seguida, nos itens, nós podemos realmente fornecer este item bloco com um bloco agora, que vai ser Mott blogs, dot abobrinha, Rob dot, get. E então aqui nós realmente queremos propriedades do item, como já vimos muitas vezes. E vamos apenas definir o grupo EMC. Somos espertos. Primeira conta, leia, certo? Assim, a semente de abobrinha já está implementada. Nos blocos do mapa temos a colheita implementada. E aqui dentro, nós podemos realmente simplesmente retornar os itens mod ou itens começar o selo abobrinha. Isso é lido. Certo? Agora você pensaria que já seria isso. Claro que ainda precisamos fazer os estados Bloch e os arquivos JSON. Agora esses são, bem, como posso dizer isso delicadamente? Um belo pedaço de trabalho, digamos assim. Então, os estados Bloch não são tão ruins assim. Mas o e as texturas e o modelo, modelos para o bloco vão ser uma espécie de obras liberais organizadas. Fazer colheita de abobrinha, o ponto JSON nos estados Bloch, sim. Então é um bloqueio renal, é ponto de cultura de opinião JSON. E nós vamos apenas copiar isso e certamente explicar. Então isso simplesmente vai para o, exatamente
para esta idade. Então, dentro deste peso, esta propriedade H, certo? Então, claro, isso se estende a partir do bloco de colheitas. E o bloco de culturas tem uma propriedade inteira que é chamada idade. E... Neste, os estados Bloch podem, naturalmente, olhar para esta idade e, em seguida, modificar o modelo que está sendo usado. E neste caso, nós vamos ter apenas oito idades, então 0 a sete. E, portanto, também precisamos de todos esses modelos de oito blocos nele, nos modelos. E eu vou copiá-los. Aquelas. Estes são, naturalmente, fornecidos mais uma vez. E também vou repassar um exemplo. Então, vamos apenas copiar isso por um segundo. Desculpe. Sim. Então você vai. Tudo bem. E agora todos eles estão em como eu disse, todos eles têm que ser feitos. Como você pode ver, eles não são muito complicados também. Eles são um pouco tediosos para fazer tudo sozinho. É por isso que é melhor copiá-lo porque não há magia real aqui. O pai vai ser bloqueado corte corte. E então dentro daqui nós vamos realmente ter texturas de corte. E então nós dizemos, bem, nós queremos a abobrinha sublinhar a cultura, sublinhar o estágio. E, dependendo do que JSON
somos, vamos adicionar um 012 ou até sete. E isso vai ser o mesmo em todos eles. Nós também queremos adicionar o item. Então a semente de abobrinha JSON para o item, a
maioria vai copiar rapidamente isso e olhar para ele. Mais uma vez, este é apenas um item normal. Não há nada particularmente louco nisso. O fato de que podemos plantar tudo já é feito dentro da cultura de abobrinha. Basicamente. Isso já está definido. E então as texturas que tenho medo de olhar, se eu for absolutamente honesto. E isso vai ser que vai estar no bloco primeiro. Isso vai ser o palco. Vou copiá-los rapidamente e ver este estágio de 0 a 7. E eu vou olhar para eles, vamos olhar para eles quando estivermos no jogo. E então, é claro, também precisamos de uma abobrinha, uma textura de semente de abobrinha. Então eu vou colocar isso também. E uma vez que fizemos isso, há mais uma coisa que precisamos fazer, claro, que é, bem, na verdade, há mais duas coisas para eu fazer. Primeiro de tudo, vamos definir isso rapidamente. Então nós vamos ter o item dot AMC, coagir ponto abobrinha, rap. Vamos ser sementes de abobrinha. E depois uma vírgula aqui. Oh, bem, assim é claro. E então a última coisa que nós também vamos precisar, ou que pode ser,
pode ser interessante aqui mesmo seria outra mesa de saque para a colheita de abobrinha, na verdade. E eu também vou copiar isso e eu vou passar por isso por apenas um segundo. Então isso vai ser abobrinha cortada e Jason,
e como você pode ver, isso é. Um grande. E o que, o que está acontecendo aqui é basicamente, então em vez de uma abobrinha caindo, neste caso, nós realmente vamos apenas soltar um bloco de ouro para o bem da demonstração agora. E a outra coisa é basicamente dizer, ok, vamos ter um blog de ouro e vamos ter uma semente. E então há uma chance, uma probabilidade associada a conseguir alguns lugares extras. Isto é, e isto é apenas copiado do JSON de trigo. Então podemos realmente ir aqui. Bibliotecas externas, Eu acredito que eu já mostrei isso antes, a net Minecraft cliente extra e
nos ativos Minecraft e, em seguida, em Não, não está lá. É realmente em dados Minecraft é claro, mais
uma vez, ele Lew tabelas e, em seguida, temos blocos. E em algum lugar aqui temos trigo. E como você pode ver, isso é quase básico. Basicamente, exatamente a mesma batida é a troca com MCQ, colheita de abobrinha. E sim, então isso, você sempre pode usar aqueles muito
mais fáceis do que o Google do seu jeito mesmo nós estamos fazendo perguntas porque isso é muito acessível aqui e você sempre pode ver um exemplo aqui de algo que você pode querer implementar, certo? Creio que deve ser este. Vamos ver o que acontece, certo? Na pior das hipóteses, vamos ter 100 flechas. Mas acredito que esse não é o caso. Acho que não vamos conseguir 100 flechas. Talvez tivéssemos uma flecha, mas não 100. Ok, então parece bom. Esperemos que tudo comece e tudo comece, certo? Vamos voltar ao mundo e esperar pelo melhor. Mas eu acredito que tudo deve estar funcionando bem. Então vamos pegar um balde de água e então vamos olhar bem. Então, a semente está definitivamente dentro. Não levou o oh, é porque é um bloco e adicionar um item. Bem, isso não faz sentido na verdade, mas justo o suficiente. Certo, então vamos ver se conseguimos plantar isso. Bem, não podemos fazer qual é o problema aqui? Isso não vai ser um problema por muito tempo. Você pode consertar isso na verdade, muito, muito rápido. Mas não podemos aterrissar. No entanto, há mais uma coisa que precisamos fazer antes que isso pareça apropriado, digamos. E isso vai estar dentro do nosso normal. Em vez do nosso MC Courses Mart. Na verdade, temos que entrar nas coisas do cliente uma vez, uma vez aqui. E nós vamos adicionar a seguinte declaração. Nós vamos adicionar tipo de renderização, HLOOKUP ponto definir camada de renderização. E então para a colheita de abobrinha Matlock stat e obter, vamos definir o tipo de renderização para ser cortado, certo? E isso simplesmente garante que, bem, não se parece com o que vemos. E então nós também podemos entrar aqui atrás. E isso não vai ser item, mas sim bloquear para as sementes. Isso é um pouco estranho, mas é,
é a maneira como isso funciona porque este é um, nós realmente temos que especificar a colheita de abobrinha em vez das sementes como o item de bloqueio. É um pouco estranho, mas acho que vai funcionar. Quero dizer, não é assim tão louco. Então, como realmente ver, eu acredito que a renderização deve ser ladrão. Agora, vamos, Aqui está esperando. Mas eu acredito que isso deveria estar funcionando agora. Vamos ver. E sim, funciona. Eles vão agora sempre que tudo onde está bem, se isso é realmente muito bom. Então, como podem ver, está
tudo bem. E o que vamos fazer é que vamos rapidamente, o que é, velocidade de ticks
aleatória, eu só vou colocar o tick acelerado como 22 mil só para que possamos ver crescer. E lá podemos ver crescer. Olhe para essa beleza. Não é lindo? E, em seguida, deu regra tiques aleatórios velocidade 20. Então agora está tudo totalmente crescido. E então vamos também mudar para a sobrevivência rapidamente e então quebra-gelo e como você pode ver, algumas sementes caem e um, e um bloco de ouro aqui. E sim, para que tudo funcione. Agora, é claro, mais uma vez, você não iria querer muito ouro para cair de seus adereços. Comprei um item, talvez, ou algo que você especificar. Bem, sim, isso é basicamente como você adiciona suas próprias colheitas no Minecraft. Então, sim.
61. (Minecraft) fluido personalizado: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos criar nosso próprio fluido personalizado. E para fazer isso, primeiro
precisamos de uma nova classe dentro do nosso pacote de blocos, que será chamado de fluidos. Então lá dentro, todos os nossos fluidos vão. E isso é muito semelhante aos blocos MOD e a classe Items modo. E também precisamos registrar um novo registro padrão. E isso vai ser uma estática pública. Final diferem, não um registro diferido, que vai ser frio ou tipo de fluido, é claro. E vai ser fluidos frios. Como se poderia ter adivinhado. B, registrar ponto criar, palavra, registros, fluidos. E então mais uma vez MC dot id. E então nós vamos apenas importar isso rapidamente. E também muito importante adicionado aqui. Caso contrário, não vai funcionar, não registrar um ônibus de eventos. Certo? Esse é o registro tratado. E então vem os fluidos do mapa, que vai estar um pouco por todo o lado. Mas nós vamos começar e então vamos descobrir isso. Então, primeiro de tudo, precisamos de três locais de recursos. Precisamos especificar os locais de recursos. Um para o imóvel. Então, em primeiro lugar, vamos criar um fluido que vai ser óleo. Eu só vou criar óleo. E eu acho que vai bem com o, com um tipo de cobre de estilo, digamos. E a primeira coisa que precisaremos é de um local de recursos para o petróleo, certo? Então este vai ser basicamente o nome do seu sublinhado fluido. Ainda sublinhar Errol, É claro, você pode renomear que como quiser. Isto seria apenas petróleo ainda e, em seguida, localização de recursos. E isso vai ser um novo local de recursos. E vamos colocar o nosso MOD ID, Match ID. E então nós vamos colocar em um caminho e isso vai ser bloqueado. Slash óleo sublinhado, sublinhado ainda. E isso é basicamente, nós podemos simplesmente copiar isso duas vezes e fazer este ser óleo fluindo. Então temos que criar dois blocos. Meio que, não é assim tão simples. É uma espécie de dois quarteirões, um bloco ainda. Isso é basicamente o bloco de água que, você sabe, não está fluindo e então há um bloco fluindo. E eles também são dois. Nós também precisamos texturizar para que, e isso é basicamente o que estamos definindo aqui nos locais de recursos. E então também precisamos de uma sobreposição. E isso vai ser sobreposição de óleo sublinhado RL, certo? E esses são os três locais de recursos que precisamos especificar. E então podemos realmente começar e olhar para alguns objetos de registro. E esses serão objetos de registro do tipo fluido fluído. Porque é claro que este é um fluido que queremos fluir. E a primeira coisa que vamos ter é o fluido de óleo. E este é o bloco de petróleo em si. Como eu disse, é um pouco, é um pouco por todo o lado, os fluidos, mas tenho certeza que podemos lidar. Então este é o registro de fluidos de registro. Este é o fluido de óleo. Então aqui estamos definindo a fonte do fluido de óleo. Esta vai ser uma nova fonte de dados fluidos de forja. E aqui precisamos especificar as propriedades que ainda não especificamos. Porque como eu disse, precisamos passar por isso. É um pouco, é um pouco, eu diria que é redondo, uma espécie de soma. Porque quando especificamos as propriedades após este, então nós realmente temos que colocar os fluidos fluidos fluidos também. É definitivamente um pouco estranho, mas como eu disse, não é um problema. Este vai ser um outro objeto de registro de fluidos fluidos. E desta vez não é fluido de óleo, mas óleo fluindo. Então esta é basicamente a parte fluida do fluido. Isto é registo, registo, registo de fluidos de pontos. E isso é óleo fluindo. E isso vai ter um fornecedor de um novo fluido de forja, não fontes montadas, fluindo. E em vez de medo, também as propriedades
vão desaparecer e essas serão tratadas a seguir. E essas são as propriedades que fluem pontos. E essas são a rampa de óleo ou provocação, novas propriedades. E esses também vão ser loucos. Então, a primeira coisa é, como você pode ver, uma vez que um pouco deste fluido. Então vamos fornecer-lhe o fluido de sublinhado de óleo, certo? Então isso vai ser fornecido. E aqui em cima agora você pode realmente colocar no ponto de fluidos mod ou as propriedades. E o mesmo com seus fluidos MOD, propriedades de óleo. Agora é importante que você realmente faça isso um poste estático com a classe na frente. Se fizer isso, não vai funcionar. Referência ilegal. Tão importante que você realmente colocar em fluidos de lama, propriedades
de óleo, apenas como uma coisa rápida. E isso precisa ser um sucesso. E então precisamos fornecer ou para o fluxo de óleo. Também ponto obter. E precisamos de atributos fluidos e isso vai ser a coisa muito interessante. Então os atributos fluidos são construtores. Primeiro vamos colocar na textura imóvel que vai ser óleo ainda RL. E então vamos ter óleo fluindo RL. E então podemos definir as propriedades. E como podem ver, há algumas coisas que podemos realmente fazer. Eu definitivamente sugiro também, com estes quatro um pouco, eu vou apenas colocar em alguns valores. Eu olhei para a luminosidade para, e eu vou ter uma raridade de raridade ponto raro, digamos. E vamos ter um evento sonoro. Eventos sonoros, ponto, item, mel, garrafa, bebida. Eu gosto disso. Isso parece muito interessante. E soa um pouco como petróleo. E então vamos ter viscosidade que é um número arbitrário. E então, e isso é interessante. Então vamos realmente fechar o parêntese Propriedades. E então temos algumas outras coisas que podemos especificar. E os dois que são muito interessantes é inclinação encontrar distância, que nós vamos fazer três. E, em seguida, uma diminuição de nível por bloco três. E o que esses são basicamente é a diminuição do nível por bloco apenas significa que quando você coloca o fluido, ele vai viajar por tantos blocos. E a distância de inclinação é basicamente a distância para onde ela viaja. Duas palavras, uma inclinação para baixo. Como eu disse, é melhor brincar com esses números e ter um, ter uma idéia para eles. E espero que quando você brincar com eles um pouco, então você obtenha o resultado desejado de qualquer fluido que você está tentando implementar. Também precisamos especificar um bloco. Este é um bloco que, na verdade, ainda não implementámos. Então, não vamos colocar nada. E então isso vai ser um balde de pontos também. E isso é algo que também não implementamos. Como eu disse, é branco. O, bastante o desafio aqui para fazer isso em um, porque não é realmente uma coisa linear, certo? Porque não podíamos primeiro fazer as propriedades porque então não tínhamos os objetos de registro aqui. Então, sim, é um pouco, um pouco áspero. Mas como sempre o tudo, todo
o código aqui está disponível como um recurso. E ou o objeto de registro agora é um fluido fluído e isso vai ser um bloco de óleo. E nós realmente queremos fazer um registro dot blocos desta vez DOT registro. E mais uma vez, não estamos indo com o método Register blocos mapa. Mas outro porque não queremos uma tradução, digamos um-para-um entre um bloco de petróleo e é, é,
é item porque o item é claro que vai ser um balde em vez de um poço, eu vou apenas um item de bloco. Certo. Os fluidos vão fluir. Este é o fluido normal. E então nós vamos adicionar algumas propriedades de bloco abstrato. Então isso é apenas propriedades normais que vamos criar a partir do material. Água, água de verdade. E então nós vamos fazer, nós vamos fazer um não bloqueia o movimento, dureza e resistência. Isso vai ser como um 100100 g, mas um 100 e nenhuma gota porque o bloco não tem gotas. Então nós podemos realmente já especificar isso no primeiro aqui. Isto é mais uma vez com o nome da classe na frente enquanto fluidos. Fluido de óleo. Não, isso não está certo. Bloco de petróleo é claro, ponto get. E então também precisamos de um método de registro vazio estático público, que já vimos nos blocos de modo e nos fluidos de modo. Este nós vamos apenas adicionar depois disso,
depois que os blocos registra um pouco fluidos DOT registrador. E então ainda precisamos adicionar o item. E isso é, creio eu, quase tudo o que temos que fazer. Temos também de acrescentar as texturas e seria isso. Então vamos adicionar isso depois dessas opiniões, semear o item. É um item normal, objetos de
registro do tipo item. E isso vai ser um balde de óleo. Com itens de ponto de registro. Cadastre-se. Isto não deve estar bem, alguma coisa maluca? Vai ser um novo item de balde. E um item de balde é realmente definido com um fluido também. Então os fluidos mod pontuam o peso do fluido. E então vamos usar a expressão lambda aqui. Novas propriedades de ponto de item, e estamos fora. Então vamos colocar isso mais uma vez dentro da nossa conta. E vamos adicionar outro. Outra propriedade que vai ser maxed acesso um porque é normalmente como eles como você definiria um bucket. Baldes geralmente não se acumulam com fluidos neles, certo? E então nós podemos aqui realmente muito simplesmente colocar no modo itens, pontos, bem balde, que bom. E sim, isso é, eu acredito em tudo. Agora, é claro, também precisamos adicionar as texturas. E eu também, sim, e também precisamos adicionar uma etiqueta também. Então vamos primeiro fazer as texturas. Isso vai ser nas texturas do bloco. E mais uma vez, vou copiá-los. Isso vai ser em blocos de texturas. Isso vai ser cinco arquivos copiados. Sim. Isso vai ser óleo fluindo. Vamos ter o petróleo a fluir. Mc Mehta e outro MC Mehta. Isto é apenas para animação. E a sobreposição de óleo. Como eu disse, todas as texturas são como sempre fornecidas como um recurso ou ele vai obter balde. E ainda há dois arquivos JSON que precisamos fazer nos modelos. Então o primeiro vai ser o balde de óleo. Isso não é um problema. Vamos encher o JSON. Isso não é nada. Este é apenas um arquivo JSON normal para o para um item, certo? Isso não é nada que não tenhamos visto antes. E, em seguida, para o bloco, nós realmente precisamos especificar o bloco deste modelo. E isso só vai ser o velho ponto de óleo JSON. E isso também será simplesmente um arquivo JSON muito fácil de ver. E nós também precisamos de um Bloch estados porque nós adicionamos um bloco. Isso vai ser lubrificado JSON mais uma vez, oh, Jason, ego e surpresa, surpresa. É tudo muito parecido com todas as outras coisas. Assim, a maioria das definições dos fluidos estão na verdade dentro dos fluidos da forja. E eu acredito que isso deve ser tudo. As texturas foram adicionadas, o modelo foi adicionado, registro. Então vamos ver no jogo se nosso fluido foi ou não adicionado corretamente. Mas tudo deve funcionar bem. Bem, quero dizer, eu já vi um erro de digitação aqui. Então, aí está você. No entanto, penso que deveria ser isso. Sim. Agora, o nome aqui, petróleo, isso, é claro, precisa ser o mesmo que os estados Bloch aqui e o mesmo que este modelo de bloco. E então o balde de óleo, é claro, é o item que corresponde ao bloco de óleo. É por isso que adicionamos um item modelo, o arquivo JSON do balde de óleo em vez de um arquivo que vamos arquivar, por exemplo, não
há item de óleo nesse sentido. Então vamos ver se tudo foi adicionado corretamente e bem, em primeiro lugar, vamos definir o tempo hoje para que possamos realmente ver algo. Vou mudar para o modo reativo. E assim o balde de óleo foi adicionado. Claro que não está localizada. Isso é algo que deve ser feito com muita facilidade, afinal de
contas, depois de todas as coisas que localizamos. E vamos ver se consigo colocar o fluido. Eu posso. Lindo. Ok, então nós vamos ver que eu acabei colocá-lo aqui. Você realmente vê isso. Então ele viaja três quarteirões. O bloco fonte é sempre algo que é contado. Agora, eu posso apenas passar por ele. Isso ocorre porque ele ainda não foi adicionado ao para o tanque de água. Então foi isso que eu disse. Então precisamos adicionar uma tag em tags do Minecraft e, em vez de blocos, nós realmente queremos ter outro diretório chamado fluids. E dentro de lá temos um arquivo JSON ou ponto de água JSON. E eu vou copiar isso rapidamente. Nada de louco excitante. É só que isso adiciona uma etiqueta. - Sim. E então ele vai realmente ter alguma resistência e vai, bem se comportar um pouco como água, pelo
menos quando você entrar nela. Assim, ele também carregaria entidades e itens. Mas vamos ver isso em breve. E nós vamos lá, nós vamos. Ok. E sim. E agora ele realmente tem alguma resistência a ele. E se entrarmos, é muito parecido com estar debaixo d'água, certo? Isso é ótimo. - Sim. E isso já é tudo o que precisamos fazer para adicionar um novo fluido ao Minecraft. Então, sim, espero que isso tenha sido do seu interesse. E se houver alguma pergunta como sempre, sinta-se à vontade para perguntar. E também se o curso tem sido um valor para você, eu realmente apreciaria uma revisão ou classificação. E sim.
62. (Minecraft) Limite e refatoração: Certo, vamos continuar com o curso de Minecraft. E nesta palestra nós realmente vamos refatorar o código um pouco porque há algumas coisas do que realmente precisamos adicionar e talvez mudar para que, daqui em frente, os tópicos mais complexos serão bem viáveis e um pouco mais fácil de seguir e entender. Então a primeira coisa que vamos fazer é ir
para a aula de registro Java. Na verdade, vou refatorar esse método e renomeá-lo para apenas inicializar. Simplesmente porque eu sinto que o vermelho chamando este registro é branco, como ele faz registrar os registros diferidos no com o barramento de eventos. No entanto, eu acredito que o init tem um melhor é um nome melhor para ele. Creio que é esse o caso. A próxima coisa que vamos fazer, vamos para o nosso modelo de curso de MC e vamos apagar os, estes dois. Assim, o Enqueue IMC e processo IMC. Isto, estes métodos são seria para comunicações intermediárias. Então é isso que eu sou. C significa. E também você pode ver evento de enfileiramento intermodal. Então, essas são comunicações interligadas. Neste momento, não estamos, não queremos nos comunicar com outros modelos. Então também podemos excluir isso,
essa coisa de declínio que vamos descobrir em breve e a configuração que realmente queremos manter. Então, na configuração, podemos realmente limpar a configuração. E em vez da configuração, queremos colocar algumas coisas, principalmente a configuração, então queremos copiá-las para a configuração. E então nós também queremos colocar, mas nós primeiro, é claro, desta forma, sim, primeiro queremos carregar as configurações. Do outro lado. Primeiro queremos registrá-los e depois carregá-los. E agora essa é a primeira coisa que podemos fazer é também, bem, quero dizer, isso é bom. Mas se você ler isso que você gosta, eu não tenho 100% de certeza. É por isso que nós realmente vamos
retirar este método e vamos criar dois novos métodos. Então isso vai ser conflitos de registro. Então isso é algo que é muito onde eu acho que é muito difícil de explicar e, ou mesmo saber que você provavelmente poderia escrever muitos livros de conhecimento sobre isso. Mas é muito difícil de conseguir. Entenda o que, por que isso é uma coisa boa ou como isso é uma coisa boa. Então, desta forma, se você agora ler o método de configuração, você pode realmente ver OK, então primeiro vamos
registrar um conflito e então você pode fazer outra coisa aqui. E depois vamos carregar os conflitos. E se tivermos isso, o esforço mental para entender o que está acontecendo aqui é um pouco mais. E você pode dizer, bem, quero dizer, não importa, esse é o pequeno esforço aqui não importa. Bem, quando tiver, digamos 200 aulas. E em cada uma dessas aulas há um pequeno esforço para realmente lê-lo. E depois vai importar, certo? Então isso é basicamente o que é. Algo que deveria ser, deve ser notado. Nós também vamos adicionar outro método privado, e eu vou chamar isso de adições de modo de registro. Isto é basicamente, mais uma vez, isso, esses nomes são todos, diria. São todas tarifas personalizadas. Então você pode, se você acha que eu quero nomear isso de forma diferente ou algo assim,
isso é tudo, você tem a liberdade para fazer isso. O mais importante é que você pode ler o código-fonte. E espero que outras pessoas também possam ler a fonte de que é, essa é a coisa que queremos que aconteça. E nós realmente vamos levar tudo isso. Então, o registro nele e todos os nossos métodos registrados, e até mesmo o ônibus de eventos mod. E vamos colocar isso aqui. E eu vou separar isso um pouquinho. E vamos adicionar alguns comentários. E é o registro de nossas adições. Adições, eles vão. E isso é então registros, itens, blocos, ETC. Adicionado pelo nosso modo. E este vai registrar eventos MOD, certo? Isso também e, em seguida, é claro, precisa ser adicionado ao instrutor aqui. Depois, vamos apagar as coisas do Duke Client. Vou liderar este comentário. E, na verdade, vamos registrar isso após a configuração. E há mais uma coisa a fazer isso é que também
podemos excluir esse comentário. Não precisamos disso. E nós vamos realmente criar algumas novas classes também. Então, dentro do nosso pacote de curso MC, vamos primeiro criar um novo pacote chamado setup. Mais uma vez, você poderia, você poderia também colocar isso em util. Esta é uma questão de como você quer organizar seus pacotes para que você se sinta confortável. Vamos criar uma nova classe Java, que vai ser uma interface, e isso vai ser chamado de proxy IP. E então vamos criar uma segunda classe que vai ser o proxy do cliente. E depois um terço mais puxou o servidor. A Roxy. Certo, então eu, um proxy na verdade não é uma interface maluca. Então lá vamos nós. Isto vai ter um método que vai ser chamado de vazio nele. E, em seguida, outro método obter mundo pliant ou seja, para importar este. E então ambos, é claro, implementam o proxy ocular, implementam métodos. E agora não temos nada no arrependimento. No ano, podemos apenas retornar minecraft ponto instância ponto ponto mundo. E então aqui no init realmente podemos adicionar algo. E esse será o tipo de renderização para a colheita de abobrinha. E também podemos excluir esse método aqui. Então podemos adicionar este direito. Aqui vamos nós. E então o proxy do servidor, isso também implementa o proxy I. E o, bem, em primeiro lugar, implementar métodos de curso. E aqui nós vamos realmente lançar uma nova exceção. E no servidor de execução, porque não devemos colocar o cliente World no lado do servidor. E o init só vai ser mantido vazio
agora porque não há nada no que estamos fazendo no servidor neste momento no tempo. Também vamos adicionar o assinante do barramento de eventos. Então isso vai ser assinante de ônibus de evento MOD, id
mod, dot mod ID plus. Este é o ponto ponto do assinante do barramento de evento Math.pi. E esta é a coisa mais importante, apenas ponto, ponto dependente. E nós vamos, eu vou copiar isso sobre ou o proxy do servidor. E a única diferença aqui é que este vai ser um servidor dedicado, certo? Certo. Então é tudo o que precisamos fazer aqui. E então dentro da aula de MC, novamente, nós vamos criar um, eu acredito que demitir deve ser público. Sim, este é um proxy IP estático público irá proxy. E vamos inicializar isto aqui mesmo. E isso vai parecer um pouco louco. Mas não se preocupe com isso. Dist executor, ponto seguro, correr para lista. E então nós vamos criar esses clientes Roxy novo e proxy de servidor,
novo proxy de servidor, New Evil. Sim, assim. E também importar esses dois. E eu acredito que isso deveria ser tudo. Queremos tricotar isto aqui. Portanto, o ponto proxy nele
no método de configuração entre os conflitos de registro e os conflitos de carga. Sim, acho que já deveria ser tudo. Agora nós realmente arrumamos um pouco aqui. Então o, o, esta classe parece um pouco diferente. E para ter certeza de que tudo funciona quando eu executar isso, só para que tenhamos certeza de que tudo está funcionando bem e que não quebramos nada. É sempre uma ótima ideia, especialmente quando você refatora seu código para garantir que tudo ainda funcione. Se você tem testes escritos, o que é claro que faria. Eu não acho que isso faz sentido escrever testes, especialmente para algo deste tamanho. Mas se você escrever testes,
em seguida, certificar-se de que os testes ainda funcionam e o programa ainda funciona, é quando importante. Então, por exemplo, uma das coisas que podemos querer ver é se
o tipo de renderização foi ou não provavelmente ativado e tem, então isso é muito bom. Ou os itens pareciam estar todos no lugar da coisa dorme, estar funcionando totalmente bem. Então, sim, isso é ótimo. Isso é muito bom. E isso era basicamente tudo o que precisávamos fazer para a limpeza. Então, apenas limpando um pouco e tendo isso ser um pouco mais legível, certo? Então, sim.
63. (Minecraft) Modelos de blocos personalizado (incluindo Blockbench): Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos olhar para as formas do cliente Brock e como podemos fazer um bloco que não está na forma ou forma de um bloco. Então o que vamos precisar para isso é o, outro programa que é chamado de banco de blocos. Alguns de vocês já devem ter ouvido falar. O link para o programa está disponível como um recurso. E se você abrir, algo assim deve aparecer. E o que queremos é um novo item de barra de bloco Java. Então, vamos clicar nisso. E então podemos dar-lhe um novo arquivo. Vou ligar para este teste. Já preparei tudo. E então nós vamos dizer, ok, e então nós nos encontramos aqui. Então podemos ampliar com o mouse, mouse, podemos. Então, segurando a direita, o botão direito do mouse vai transformar nossa visão aqui. E então, se mantivermos pressionado o botão esquerdo e podemos girar ao redor. E este é, na verdade, um dos programas 3D mais fáceis de usar. E isso se traduz muito bem para Minecraft. Então nós podemos apenas adicionar um cubo aqui e então nós temos um cubo. Agora este seria o, então todo o t desta grade aqui é um bloco e um cubo é 16º de um bloco basicamente. Então, por exemplo, poderíamos dizer aqui o tamanho x, e então podemos dizer 16. E agora isso seria o comprimento de um bloco. E então poderíamos dizer, bem, eu realmente também quero ter isso nessa direção. E agora a camada inferior, então o pixel inferior da textura do bloco, por assim dizer, está agora preenchido com este modelo 3D. E sim, e então podemos, por exemplo, dizer, bem, então vamos bombear aqui também. E agora teríamos um bloco cheio, 16 por 16 por 16. E sim, então com isso, podemos basicamente construir coisas. Então nós podemos dizer, bem, nós fomos um aqui, um aqui, e então nós podemos construí-lo com esses blocos individuais ou nós podemos ter blocos maiores e, e, você sabe, construir algo. Então, a criatividade realmente não tem limites aqui. Você também pode girá-lo, certo? Depende se o pivô é. Então este pivô é basicamente o ponto em que gira ao redor. Então, se nós centralizamos o pivô, então ele vai para o centro dentro daqui. E então nós podemos realmente girá-lo assim. Então nós podemos realmente fazer as formas que são nano tubos que são não-blocos relacionados. E realmente fazer isso neste caso. Mas agora podemos fazer isso, por exemplo, certo? Então podemos fazer coisas muito loucas aqui. No entanto, eu já preparei um modelo para mostrar a vocês. E parece algo assim. Não é nada espetacular. No entanto,
é uma forma de bloco irregular, digamos. Eu também coloquei em três texturas, essas são apenas cores neste caso. Claro, se você quisesse ter um verdadeiro bloqueado e você precisaria importar o vidente de textura. No entanto, isso é muito fácil. Como você pode ver se eu, por exemplo, entrar aqui e eu selecionar, digamos este cubo aqui. Você pode ver que há lados diferentes, certo? Então o lado norte seria deste lado. E eu posso mover isso agora se este fosse para ser um arquivo de textura que eu criei, e você poderia basicamente dizer, ok, esta parte do PNG deve agora ser exibida lá. - É. Eu acho, muito simples de usar este programa e você deve ser, tipo, eu diria que em cerca de uma hora, você deve ser capaz de criar bastante bem, modelos agradáveis aqui. E sim, então isso é realmente muito bom e muito bem feito. No entanto, há mais algumas coisas que precisamos de fazer para que isto funcione. Então, digamos que você tenha criado seu modelo ainda que você queira. Na verdade, precisamos olhar para algumas outras coisas. E isso vai ser feito em exibição até o canto superior direito. E é assim que ele vai olhar nas mãos dos jogadores e em terceira pessoa e assim por diante. Então, há algumas coisas que realmente temos que colocar aqui. Então, por exemplo, essas escalas, por padrão, são, bem, muito grandes. Então você provavelmente precisará ajustar a escala de muitas maneiras. E você precisa passar por todas as vagas aqui. Então a terceira pessoa, e você pode ver na primeira pessoa esquerda passeio em primeira pessoa, você pode olhar para ele, como ele fica na cabeça, como ele olha no chão. Então a referência aqui é um bloco. Então você pode dizer, bem na verdade eu sou talvez, eu quero ter isso realmente grande ou não tão grande. E podemos olhar para ele em um quadro. Você pode alterá-lo em um, um quadro de ilha e também na GUI. Então, como fica no inventário, todos
vocês podem mudar isso. E tudo isso vai funcionar facilmente. E sim, assim também, para exportar isso, você precisa ir para Exportação de Arquivo e um modelo de item de bloco de exportação. Isso irá então gerar um arquivo JSON e arquivo adjacente pode então ser usado como um modelo de bloco. No entanto, há mais algumas coisas que também precisamos de analisar. E isso é dentro da classe que vamos criar. E no entanto, nós vamos terminar isso, o que você precisa é que você precisa de um plug-in que vai ser chamado Mott utils. Então você pode simplesmente ir para mod utils disponíveis e, em seguida, instalá-lo. Eu já estou em sólido, é claro. Isso então permite que você exporte isso como uma forma de voxel e você vai precisar disso. Então forma voxel, isto é, este é também um arquivo JSON. Ele cria a forma para o bloco de modo que o, que você basicamente tem os limites do bloco exatamente neste padrão, certo? Então você pode imaginar, por exemplo, um bloco que talvez tenhamos. Por exemplo, você pode, você sabe, uma laje. E uma laje, é claro, não tem seu limite em todo o quarteirão, mas é apenas meio quarteirão. E isso é exatamente a mesma coisa que queremos ter acontecido com isso. Então, para isso, nós realmente precisamos criar um grupo aqui chamado formas de voxel. E então colocamos todos os cubos ou partes que fizemos abaixo disso. E depois podemos exportá-la. E nós realmente precisamos exportar isso quatro vezes. Nós, porque queremos explorar este está virado para o norte. É por isso que eu criei este tipo de com esta parte maior aqui, virada para o norte. Então nós realmente sabemos o que o enfrentamento onde C. E então nós sempre queremos saber, nós queremos trabalhar com tudo e nós queremos girar isso em torno de e, em seguida, exportar isso como uma forma de voxel. Exporte isso como uma forma de voxel, exporte isso como uma forma de voxel. E depois voltamos para aqui. Portanto, podemos realmente, pois, mais uma vez, para este exemplo particular, tudo é fornecido como um recurso. Para esta palestra. No entanto, se você quiser o seu próprio, então você precisará exportar essas coisas. E eu vou mostrar os arquivos, como eles ficam e o que fazer com eles. E só um segundo. Então vamos voltar para o nosso inteligente aqui. E então vamos rapidamente dar uma olhada,
por exemplo, na forma de voxel que você vai ter. Isso vai ser o arquivo a.java e ele vai se parecer com isso. Então isso vai ser apenas um fluxo de forma de voxel. E vamos implementar isso bem em breve. E eu vou te mostrar como fazer isso. Mas primeiro precisamos criar um novo bloco. Então, para isso, vamos criar um bloco. Vou chamar isso de fogo elétrico eletrizante. Sim. E esta também é a base de algumas outras coisas que vamos fazer, que podem ser entidades de mosaico em futuras palestras. Mas agora, isto vai ser um falido com uma forma nova e personalizada. Vai estender o bloco. Mas também vai estender o bloco certo. Isso é muito importante. Porque às vezes ele pega o bloco errado. Isso é um pouco irritante. Mas lá vai você. Tudo bem. Então isso já é bonito, muito bom. Já fizemos isto lá dentro. E então nós vamos imediatamente sim, nós vamos imediatamente colocar todas as coisas aqui. Então, a primeira coisa que precisamos adicionar é uma propriedade de direção final estática privada vai enfrentar. E isso vai ser igual ao ponto de bloco horizontal horizontal virado. Como a primeira coisa que vamos fazer, oh, lá vai você. E então podemos adicionar algumas substituições. Então a primeira coisa que vamos substituir é a forma pública de voxel. Públicos. voxel público ganha forma. Este. Eu não me preocupo com isso. A flecha aqui. Nós também podemos fazer uma suprimir avisos. Isso é depreciação, certo? Sim. Deprecação como essa, certo? - Sim. Está bem. - Sim. Não é o grande problema aqui é que ele simplesmente não deve ser chamado, mas você pode substituí-lo. Então essa não é a pior coisa. E então nós também queremos substituir o estado bloqueado, estado bloco
público, obter estado para colocação. E isso tem como um item de parâmetro, use contextos. Contexto já retornou algo e que vai
retornar este ponto obter estado padrão com enfrentamento. E, em seguida, o posicionamento ponto-ponto de contexto, horizontal e, em seguida, o oposto. E nós vamos substituir aqui. Não, isso não é bem o que eu queria fazer. Isto é o que eu queria fazer, o ego. E então há mais dois, na verdade mais três métodos que precisamos implementar. Um deles é um estágio de blocos. Nós só vamos girar. Vai levar em um estado de bloco,
estado e uma rotação. Mas este também vai ser um outro substituto. E você rapidamente começa a rotação aqui. Mais uma vez, isto diz uma depreciação. Vamos suprimir esse aviso porque
não vai ser a pior coisa. Agora mesmo. Vamos retornar o estado com o revestimento e, em seguida, a rotação na direção de frente. Então, todos esses métodos que implementamos
agora neste momento são basicamente para saber em que direção estamos colocando o bloco. É muito semelhante ao quando você coloca um forno, por exemplo, O lado de se queimaduras forno sempre está de frente para você. Isso é basicamente muito parecido com o que estamos fazendo agora. Isto vai ser a mesma coisa aqui, o espelho. E então vamos retornar o estado DOT girar e, em seguida, espelhar na rotação DO2. E isso vai ser o state.gov enfrentando mais uma vez. E é isso. E então o último, último método que realmente precisamos implementar é um recipiente de preenchimento vazio
protegido e protegido. Vai ser um contentor estatal. E um contentor, não. Um construtor de ponto O do estado de bloqueio e bloco. E isso vai ser um pouco mais complicado aqui. Mas, na verdade, não é isso. Bem, parece complicado, mas na verdade vamos dizer ponto construtor adicionar, basear-se. É tudo o que precisamos fazer. E eu quero importar essa classe. Digamos que isso é uma sobregravação também para que saibamos. E é isso. Agora, vamos precisar mudar este também. Porque agora vamos pegar as facings que temos. Então isso seria para arquivos e que obtemos quando exportamos as formas de voxel da rocha dobrada, como eu disse, básico norte, leste, sul e oeste. E eu vou tomar conta de um deles. Então isso é algo como seria. Claro, isso para nós agora faz pouco sentido. Mas não se preocupe, vamos resolver isso. Isso é apenas algo que você precisa de uma cópia. Eu já preparei isso para todos os lados e vou explicar rapidamente uma vez copiado. Ok? Assim, as formas de voxel precisam ser importadas. Booleano, função e fluxo também. E então isso funciona muito bem. Ok. Então, o que está acontecendo aqui? Bem, nós definimos uma forma particular de voxel final estática. E então queremos definir o voxel moldado para o norte, leste, sul e oeste. E depois copiamos o córrego. Muito importante. O fluxo é sem o ponto chegar aqui no final. Então você precisa adicionar isso para que ele funcione. E então também precisamos adicionar isso à forma do gueto bem aqui. E nós vamos fazer isso com fazendo uma declaração de mudança. Então vamos trocar e depois dizer que fica virado. Então estamos basicamente dependendo do revestimento, vamos dar-lhe uma forma de voxel diferente. Então o primeiro que vamos ter é caso norte, que vai retornar forma sublinhado n. Vou copiar isso rapidamente algumas vezes. E o movimento diz que o leste vai então virar forma, ou seja. Sul vai voltar a forma S e Oeste vai voltar. Você pode adivinhar? Em forma de W? E então nós também vamos adicionar um padrão, que vai retornar forma. E ele vai dizer: “Ei, podemos deixar isso de fora.” Vamos deixar isso assim. Isso vai ficar bem. E isso define a forma do bloco. Agora também precisamos adicionar os estados Bloch e o modelo. Mas isso não vai ser tão terrível. Primeiro de tudo, vamos registrar isso aqui. Isso vai ser estático público, objeto de registro
final do tipo bloco. E isso vai ser o fogo elétrico. - Sim. Que vai ser que vai ser registrar fogo elétrico. Neste caso, podemos usar o método de registro normal novamente. E isso vai ser um novo eletrificado com propriedades abstratas bloqueadas. Propriedades. E então nós vamos dizer, material
claro, material que ferro. Vamos levar aquele. E então vamos fazer Parceiros em resistência ou formatar isso um pouco mais agradável. E o que mais? Que tal uma ferramenta de colheita? - Sim. Acho que isso faz sentido. Vai ser eu diria, escolher X faz sentido. E mais alguma coisa que precisamos? Sim, precisamos do grupo onde eu quero o grupo. Eu não sei se o grupo vai ser definido automaticamente porque nós
fizemos isso aqui em baixo. Então, sim, eu acho que isso é bom para o registro. E então queremos adicionar o estado do bloco. Então, agora os estados Bloch
é, não é difícil nem nada. No entanto, vou copiar isto e explicar mais uma vez. Então este será o ponto de fogo elétrico JSON. E aqui nós realmente temos diferentes variantes agora porque queremos mudar
a rotação deste modelo dependendo de onde ele está enfrentando. Então esse rosto aqui está se referindo a esse rosto aqui, certo? Então, quando isso for o norte, então nós vamos apenas exibir o modelo normal. E quando em si, vamos girá-lo em 180 graus e assim por diante e assim por diante. Mas esta é basicamente uma breve explicação disso. Isto não é nada muito louco. E então precisamos do modelo do bloco. E este vai ser o mais louco. Este é o que eu vou mudar para o outro, este. E este vai ser o que você vai exportar aqui. Então o exploit quebrou o modelo de item. E esse vai ser o arquivo JSON que você vai ver lá. E isso vai ser uma loucura, porque este vai ficar parecido com isto. Vou copiar isso e vocês vão cair de suas cadeiras. Vou copiar. E é assim que vai parecer. Isso é um pouco certo. Isso é, isso é um pouco de coisas. Isso basicamente define o, cada elemento, certo? Então cada elemento que você
é, é simplesmente um bloco, basicamente que definimos no banco de blocos. E então diz que textura cada rosto tem. E sim, então isso é apenas algo que você copia. Muito importante que o interior das texturas Aqui tudo está OK. Isso também pode ter um problema. Então os nomes de textura são os mesmos nomes que estão aqui. Então agora o, aqui, eles seriam chamados Texture um e textura para ele x três. Eu renomeei este ano para eletrificar o nosso sublinhado 123 porque é textural 123 não são realmente tão bom de um nome simplesmente porque, então, bem, o que é isso e também o que você precisa adicionar é você vai precisar adicionar curso MC ou seu ID mod na frente aqui. Isso é muito importante. E eu acredito que a partir do padrão que banco de bloco cria é Brooks e não bloquear para a textura é muito importante. Nós nomeamos nossa textura em nosso texto ou palavras. Em outras palavras, nossa textura, texturas, pastas, bloco e item, singular, não plural. Muito importante. E então vamos também obter o JSON eletrificado para o item que é um item normal que se refere de volta ao bloco, que é isso. Então nós também, mais uma vez, cada arquivo, mesmo que eu também tenha o arquivo de banco de blocos, o JSON, e todas as quatro formas de voxel, bem
como as texturas, estão todos disponíveis como um recurso mais uma vez. E também queremos adicionar as texturas em bloco aqui mesmo. Copiar. Sim. Também temos os carros elétricos. São apenas quadrados vermelhos, verdes e azuis. Então não é uma textura real nesse sentido,
mas sim, sim, e eu acredito que, isso é tudo. Agora, é um pouco mais claro. No entanto, para blocos especiais, digamos que não seja tão complicado. Considerando tudo, vamos começar e ver se tudo funciona. Esse será o melhor caso. Claro, ainda não adicionamos uma localização. Mas, mais uma vez, a localização deve ser bastante fácil de adicionar se você quiser adicionar isso mais tarde, isso é trivial neste ponto, eu acredito que sim. Certo, vamos olhar aqui e ver como fica no jogo. Com. Quanto mais complexos forem os tópicos, mais propensos a erros, certo? É por isso que é sempre bom verificar se tudo funcionou e vamos ver. Então, em primeiro lugar, isso é muito bom. Então, já podemos ver que o modelo foi implementado. Também podemos segurá-lo em nossas mãos. Isso é muito bom. E agora a grande questão é, podemos colocá-la? Sim, podemos. E como você pode ver, as bordas negras quando eu passar por cima disso são exatamente a forma do bloco. O mesmo com, por exemplo, o envelope como você pode ver. E então aqui seria o quarteirão inteiro. Então esta é a linha muito, muito parecida com a linha preta, basicamente as linhas pretas. E é exatamente isso. Então, se pisarmos nisso, acho que vamos afundar se entrarmos aqui um pouco. É que quase não é perceptível que lá. Está bem. Por isso, é perceptível. E outra grande questão é se o rosto está sempre correto, então nós sempre queremos essa parte maior aqui, nós nos enfrentamos. E isso também funciona. Então vamos apenas olhar para isso assim. Lá vamos nós. Por isso, está de frente para o caminho correto. A forma de voxel se mantém. , oh, há um, há um URL minúsculo, eu acredito. Olhe para isso. Então isso é que eu acho que um pixel errado. Isso provavelmente tem algo a ver com isso. Este está correto. Então, provavelmente há algum erro nos revestimentos. No entanto, é quase imperceptível. E acredito que isso não é a pior coisa a acontecer. De qualquer forma. Então, estes são os modelos de blocos personalizados estão muito interessados em quais modelos de blocos personalizados você vir acima com. Então, essas poderiam ser, claro, coisas
loucas ou, você sabe, ou máquinas normais possivelmente, ou aparelhos mágicos, quem sabe? E sim, isso é basicamente como você cria os modelos de blocos personalizados com a ajuda de banco de blocos. E sim, se houver alguma pergunta,
por favor, sinta-se à vontade para perguntar. E se você gostou deste curso até agora, então é claro que eu realmente apreciaria uma revisão de comentários. E sim.
64. (Minecraft) criando uma nova entidade de telha: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos adicionar uma entidade de azulejos ao nosso MOD e especificamente ao fogo elétrico aqui. Portanto, a primeira coisa de que precisamos é de um novo pacote. Mais uma vez, podemos chamar esse bloco ou entidade de mosaico. Realmente não importa muito, mas bloco ou entidade de mosaico é uma espécie de onde você deve ir com isso. E então precisamos de duas novas aulas. Um vai ser as entidades de mosaico MOD,
entidades que vamos. E o outro vai ser o eletrificar ou azulejo. Então, basicamente, o electro dispara o bloco. O eletrificar ou bloco é a entidade de mosaico associada a ele. Também poderia, algo que poderíamos fazer é, por exemplo, chamar isso de eletrificar nosso bloco para que tenhamos certeza disso. Ok, este é o bloco e o outro é a entidade de mosaico. Isso é algo que poderia ser feito. Vamos mantê-lo assim, mas isso é algo que você pode querer pensar. Então, antes de tudo, queremos dentro de nosso registro um novo registro padrão. E isso vai ser público, estático, registro adiado
final do tipo, tipo de entidade de bloco. E então vamos colocar um ponto de interrogação no lado de lá. E então isso vai ser tipos de entidade lado a lado. Isso é igual ao ponto de registro diferente criar. A Ford registra que as entidades ladrilhadas. Mc mod, mod OD. Lindo. E, em seguida, aqui em baixo, nós estamos apenas indo para adicionar este para o nosso registro para o método init. E isso é que as entidades Mott que vamos olhar agora estão lá dentro. Nós, é claro, simplesmente precisamos adicionar um objeto de registro final. Novamente, isso é muito semelhante a todas as outras coisas que adicionamos, os itens, os blocos e o fluido. Isto vai ser do tipo. E então, em uma espécie de ponto de interrogação aqui, nós vamos realmente especificar o tipo de fogo elétrico. Isso vai ser eleito fogo elétrico em T. Deixe-me diminuir um pouco. Isso é igual ao registro de entidades de bloco de ponto de registro. E vai ser como fogo elétrico, entidade Tyler. Isso vai ser um tipo de entidade Tyler dot builder dot create. E então precisamos de fornecedor para uma nova eletrificar nossa telha. E então aqui mod blocks, dot ou nós realmente não temos um blog ainda. Não sei. Temos múltiplos, claro, temos a eletrificação já está cheia. E, em seguida, dentro daqui queremos especificar um nulo e que pode então ser excluído aqui. Mais um não. Em algum lugar. Qual é o problema? Eu, claro, o eletrificar nosso título ainda não é um azulejo. No entanto, isso deve ser bom. Então também precisamos do nosso registo anulado público como esse. E podemos registrar isso em vez de aqui, onde não apenas dizemos entidades de mosaico mod que se registram. E isso é ótimo. E, em seguida, dentro do eletrificar nossa telha. E, claro, queremos que isso estenda entidade de mosaico. Entidade de bloco Enquanto entidade a nós vamos, sim, este. E isso vai criar um instrutor. Isso é bom. Você também precisa de um segundo instrutor que vai ser eletrificado ou azulejo sem parâmetro. E aqui dentro queremos tomar as entidades mortais, eletrificadas style.css. Então este, este construtor chama este construtor com o, com esta entidade de mosaico. E então a seta aqui é caminho e, em seguida, o erro aqui também é uma maneira. E então podemos continuar a preencher isso. Então agora, o que vamos
criar dentro do nosso fogo elétrico é simplesmente um manipulador de pilha de itens. Então eu vou criar um manipulador de pilha de item final privado e este é quatro. Durante o manuseio de itens. Loucamente, vou chamar isso de manipulador de criação. E este é um método que vamos ler aqui. Itens Stan, item, pilha, manipulador. E isso vai ser puxado criar alça é e ele. Então entidade de mosaico é basicamente apenas um bloco ou seus, seus dados associados com o bloco que pode armazenar dados dinâmicos, certo? Então não é, ele não tem que ter um, não tem que ter uma GUI. Isso é algo que vamos olhar também. No entanto, não precisa. Então, neste caso, nós estamos realmente apenas indo para fazê-lo para que possamos passar itens para o fogo elétrico e tirá-los de lá novamente. E vamos fazer isso com Hoppers, mas vamos ver isso em breve. Então aqui vai realmente criar um novo manipulador de pilha de itens com suspiros Um e insight. Precisamos anular algumas coisas. Nulo protegido no conteúdo, no conteúdo alterado no slot. Vamos marcar sujo. Então isso é apenas para ter certeza de que o isso é algo a ver com o, com os troncos e certificando-se de que isso é seguro corretamente. Booleano é válido, é item válido, que é r1. Eu deixo. Então isso simplesmente define se podemos ou não colocar um item. Em um slot específico. Neste ponto, nós simplesmente vamos voltar verdadeiro. E então o último é realmente o método onde inserimos o item em um slot específico. Mais uma vez, uma pilha de itens não-nulos,
pilha e um booleano simulam. E a simulação booleana é apenas para que nós, se isso for verdade, então nós realmente apenas simulamos colocar o item dentro. Na verdade, não colocamos o item. Normalmente, isso seria falso se chegasse, mas ainda tem que estar lá. Isto não é nulo e uma sobreposição. Lá vamos nós. E então aqui podemos terminar isso. E isso já parece muito bom. Também precisamos ter certeza de que especificamos o isso como um opcional preguiçoso porque precisamos especificar as capacidades. Assim, as entidades de mosaico trabalham com capacidades. E neste caso, queremos um manipulador de itens. E aqui este manipulador, e este é um preguiçoso opcional de e, em seguida, fornecemos-lhe o manipulador de itens Evo. Sim. E depois queremos devolver isto. Estou com outro dispositivo aqui em baixo que vai ser público. Preguiçoso, opcional. E vamos conseguir capacidade. Capacidade. Sim, acho que é isso mesmo. E ser uma capacidade não nula, capacidade
t e um lado de direção anulável. Então você pode imaginar que sites diferentes podem ter capacidades diferentes. Isto é mais uma vez uma anulação. E isso simplesmente vai ser caverna, habilidade é igual a um manipulador de itens de probabilidade. Então, estamos verificando se o que está segurando para é o item manipular uma capacidade. E se for esse o caso, vamos devolver o ponto do manipulador. E se nada mais for o caso, vamos apenas retornar super ponto git capacidade, capacidade e lado ele irá. Isso é tudo o que precisamos fazer aqui. Assim, as capacidades e você também pode, Eu acredito olhar para eles ano i armazenamento. E deixe-me ver rapidamente a capacidade, manipulador de itens. Bem, esses são específicos, na verdade. Sim, então há capacidades diferentes, como eu disse. E neste caso, o manipulador de itens é aquele que é, eu acho o mais interessante agora. E um que vamos olhar, há no entanto, mais duas coisas que precisamos adicionar. Isso vai ser uma função de escrita e leitura. Então ele vai tomar o estado do bloco, estado. E um composto NB T. Talvez já tenha ouvido falar disso antes. Estes são os dados nvt que muitas pessoas falam ao olhar para itens e assim por diante. E nós vamos ter este ponto manipulador de item de-serializar MVT. Isso já funciona perfeitamente bem. No entanto, composto com um inventário de cordas. Nós vamos escrever isso rapidamente, algo lá dentro. Então leia e essa é a etiqueta do estado. Então isso é basicamente uma leitura. Então ele vai ler o inventário ou o, o,
o, o que nós dizemos. Vai ler algo com o nome suficiente. Então, inventário no nosso caso. E também precisamos de um MPT público de Humboldt. Nós só vamos estar certos, isso vai ser compilado e tag B t. E isso é o contrário. Então aqui nós vamos realmente colocar o lá dentro. Isso vai ser o manipulador de itens de ponto de-serializar. Desculpe, serializado, realmente serializado. E então vamos retornar Super.onCreate com um nome de tag. Também vamos sobrescrever esse só para sabermos. E eu acredito que esta é a entidade de mosaico criada com a capacidade de lidar com itens de modo que nós realmente temos que podemos realmente colocar itens lá. E tem um slot, quatro itens agora não podemos ver esse slot. E nós podemos, nós só podemos interagir com ele tipo de fora. Há mais uma coisa ou duas coisas que precisamos adicionar aqui ao fogo elétrico. E isso é dois métodos para substituir métodos. Um deles é, vamos ver se consigo encontrá-lo aqui. É um monte de métodos, a propósito, que você pode implementar. Então, há muitas coisas que podemos fazer. Esta vai ser uma entidade de mosaico pública, ler, ler entidade de mosaico, bloco ,
estado, estado, e um leitor de iBook que vai ser o mundo. E isso vai retornar, retornar, entidade de mosaico
mod, entidades de mosaico, talentos
eletrificados ponto github, V8. Isso é um excesso de peso também. Então, temos certeza de que e, em seguida, a melhor substituição em todos eles é tem entidade ladrilhada. Bem sabe se ele tem uma entidade título, nós sabemos e isso é claro, que ele tem um. E lá vamos nós. Tudo bem. Feito. Então eu acredito que isso deveria ser tudo. Acrescentámos isto. Acredito que foi tudo isso. Vamos tentar ver se isso já funciona ou não. Nós o registramos. Nós adicionamos as identidades aqui. Bem, mais uma vez, a pior coisa que pode acontecer é pegar uma flecha, mas acho que não vamos conseguir uma. Eu acho que isso deve ser bom. E sim, então há,
as capacidades são interessantes. Mas vamos ver se a capacidade do item foi adicionada a isso. Então, do lado de fora, o bloco não terá mudado. E enquanto isso acontecer, teremos mudado por dentro. Como podem ver, o quarteirão ainda está aqui. Vamos apenas destruí-los porque às vezes quando você muda o bloco, então ele, ele, então às vezes tem algumas coisas estranhas que podem acontecer. Então vamos colocar isso para baixo e então vamos realmente tentar e pegar o funil ou dois funilhos na verdade. Primeiro de tudo, vamos colocar este ano. Isso é muito bom, certo? Então podemos realmente ver que ele quer colocar algo lá dentro. E também vamos colocar um abaixo. E então vamos colocar os tremonhos e nós podemos realmente ver que eles estão inseridos em seu laboratório. Clicar com o botão direito não funciona. E também há ser que eu puxei para lá. Então, clicar com o botão direito do mouse nele não funciona porque ele não tem uma GUI e ele não tem a capacidade de ser clicado com o botão direito do mouse. E nós podemos adicionar isso, claro ,
mas, e nós vamos adicionar isso na próxima palestra. Mas agora, como podemos ver, os blocos são, ou os itens estão passando por este quarteirão aqui embaixo. E isso é basicamente o que queríamos demonstrar que, sim, fato o, isso tem uma capacidade de manipulador de bloco de itens agora. E é uma entidade de mosaico e salva os itens lá. E olha para isso. O coelho também vai aparecer. Isso não é legal? Isso é ótimo. Certo? Então, isso é basicamente como você cria uma entidade de mosaico. Claro, isso ainda não está feito. No entanto, esses seriam uma espécie de semelhante a coisas como tubos que podemos ver ou um item pode larguras ou algo assim em diferentes modos. Onde essas também podem ser entidades de mosaico, mas sem um Gy específico, porque eles só, eles só precisam salvar algum tipo de dados. E eles não precisam necessariamente ter uma GUI, certo? Então é assim que criar uma entidade de mosaico. Mais uma vez, se houver alguma pergunta, sinta-se à vontade para perguntar. E sim.
65. (Minecraft) crie um GUI personalizado: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos criar nossa própria
GUI personalizada para nosso fogo elétrico que criamos para nossa entidade de mosaico. E há poucas coisas que precisamos. Precisamos de mais dois pacotes aqui. O primeiro pacote que vamos criar será um contentor frio. E o segundo pacote vai ser telas resfriadas. Agora, esta tela
pode-se argumentar se queríamos ou não ter isso em outro lugar e o contêiner também. Mais uma vez, isso é algo que é personalizável, digamos dois, no entanto você quer quebrar isso, mesmo com os fluidos de lama. Algumas palestras de volta. Talvez você queira seu próprio pacote personalizado, personalizado para os fluidos e assim por diante e assim por diante. É, é realmente um estilo em vez de algo que tem que ser neste caso. Vou fazer assim. Mas você é claro, livre para fazer quase do jeito que quiser. Então isso vai criar, isso vai ter uma nova classe Java chamada contêineres MAD. Recipientes um ego. Muito bem. E esta é mais uma vez uma dessas classes como os blocos de lama e os eventos do fosso. Não é algo que não tenhamos visto antes. Primeiro, é claro, precisamos entrar em nosso registro e registro e obter um registro final estático público diferido mais uma vez do tipo recipiente. E isso vai ser realmente não é de contêiner,
mas é do tipo de contêiner com um ponto de interrogação aqui, contêineres. E isso vai ser diferente. Register dot criar quatro registros. Já vimos isso muitas vezes antes. E isso vai ser contêineres, pontuações mod, mod ID, certo? Isso não deveria ser mais um mistério. E, em seguida, claro, adicionado aqui, muito importante. Como sempre. Esses são, esses são os tipos de erros que você, que se comete para conseguir adicionar aqui. E então leva uma hora para realmente descobrir por que não funciona em um novo CEO. Esqueci-me de registrá-lo. E isso é sempre, isso é sempre algo que pode acontecer. E esses são os piores erros. Ok, então primeiro de tudo, nós vamos realmente colocar isso imediatamente em sua final estática pública. E isso vai ser um objeto de registro. Objeto de registro na verdade não registrando, registrando objeto do tipo, tipo de contêiner. E então precisamos do contêiner de fogo elétrico da perna. Isso obviamente não existe ainda, mas vamos criar aquele contêiner de fogo eleito e certificar-nos de que estou escrevendo isso corretamente porque. Eu não sei por que eu escolhi eletrificar ou como um nome, mas eu quero dizer, quero dizer, eu sei por que eu escolhi, mas às vezes pode haver um erro de digitação lá, mas sim, isso vai ser do tipo II forge container type dot create. E que já podemos criar algumas coisas aqui. E bloco, bloco poss, pos é igual a data.frame, Blog. Mundo, Mundo é igual jogador ponto de inventário, ponto obter mundo Entidade,
e, em seguida, retornar um novo recipiente de fogo eleger com janela IID mundo. Pausa no jogador ponto-ponto-ponto. Mais uma vez, isto ainda não existe. Bem, também precisamos de um método de registro vazio estático público. Mais uma vez, como sempre. Além disso, precisamos importar algumas coisas. É claro que isso pode ser importado que ainda não existe. Então vamos adicionar isto aqui em baixo. Estes vão ser os contêineres mod. Recipientes registram, escrevem o, certo? Então dentro de nosso contêiner, agora
vamos criar isso, eletrificar nosso contêiner. Então será o contêiner de incêndio elétrico. Vamos esperar que eu tenha escrito corretamente. Caso contrário, vamos acabar em sérios problemas. Agora, é claro, podemos sempre refatorar se este nome estiver errado. Muito importante que este seja o recipiente correto que vamos levar. O contêiner de inventário Minecraft líquido e não o do Java pode interagir com. Sim. Vamos fazer isso e depois precisamos de um construtor. Está bem. Quero dizer, eu não me desculpo. - Não. Não quero que nada faça assim. Por que não funciona assim? Isso é estranho. Está bem. Bem, vamos então nós nem precisamos disso, na verdade. Isso é, isso é uma coisa maluca. Nós realmente não precisamos daquele construtor de qualquer maneira. Vamos criar o nosso próprio construtor que vai ser eletrificado ou contentor com as coisas que fizemos antes. Então vamos precisar de um ID de janela. Vamos ter um mundo, mundo. Vai haver uma pausa bloqueada, pausa. Ele, inventário do jogador, jogador, inventário do
jogador, e um jogador, entidade do jogador, jogador. E então isso precisa ser importado. Isso precisa ser importado. E o que mais precisa ser feito? Algumas coisas em que acredito. Precisamos inserir super Sim, com ponto recipiente esfregado eletrificado ponto get e o ID da janela. E então tudo vai ficar bem, como as crianças dizem. Oh, tipo de recipiente tem que ser tem que ser importado e então eu acredito que isso não tem mais sim, isso não tem mais taxa de setas e, e isso não tem mais erros. E então todo mundo está bem. Isso é ótimo. Então, no contêiner, vamos passar pelo contêiner primeiro. Nós vamos obter a entidade título ou bem, isso é algo que realmente precisamos especificar aqui. Então, há três coisas que vamos ter. A entidade de bloco privado, entidade de título. Vamos ter uma entidade de jogador privado, entidade de camada. E nós vamos ter ummanipulador particular de itens de olho
particular, manipulador particular de itens de olho
particular, que vai ser o inventário de jogadores. E essas são as três coisas que vamos colocar imediatamente aqui. Portanto, essa entidade de mosaico de ponto é igual à entidade de mosaico
do WorldCat na posição que especificamos no, neste construtor. E esta entidade jogador ponto é igual a um jogador. Na verdade, isso é muito fácil. E a menos que o inventário do jogador vai ser igual a um novo invólucro de inventário do jogador. Ok, isso é ótimo. A próxima coisa, e isso é algo que nós estávamos indo fazer e então eu vou explicar como nós seguimos como sempre. Então, se a entidade título não é nulo, então isso só garante que nós realmente temos uma entidade título. Então o que vamos fazer é dizer, hey, então o ponto da entidade do bloco obtém capacidade. Isso é o que definimos antes. E se o item de ponto manipulador de itens de capacidade e a capacidade se isso estiver presente, então um que vamos fazer é criar algumas coisas. E isso realmente tem alguns consumidores. E o que vamos fazer é adicionar slots. Estas são as ranhuras em que vemos. Então, por exemplo, o inventário onde você coloca os itens, cada um deles é um slot. E vamos criar esses slots agora dentro da própria GUI. E eu vou colocar alguns ratos, coisas que eu já preparei aqui. Vou explicar rapidamente depois. E a melhor coisa para isso também seria para já iniciar o Photoshop, só para que eu tenha esperança de que ele comece na tela certa. Certo, porque isso é algo que precisamos olhar. Então precisamos olhar para a GUI. E como você sabe quais são essas posições? E não se preocupe, você não precisa necessariamente ter o Photoshop para isso. Você também pode usar, por exemplo, GIMP ou algo como pinted.net. Eu não iria eu não sugeriria pintura porque a pintura não é o melhor por essa razão, mais funções auxiliares e métodos em vez. Então, primeiro de tudo, precisamos de um espaço de anúncios organizado. Mais uma vez, todo esse código está disponível como um recurso também. Se não quiser datilografar. No entanto, eu acho que faz sentido passar por isso comigo em seu e digitando,
porque às vezes digitando realmente solidifica. Então aqui nós realmente adicionar um intervalo de slot. Esta é uma função auxiliar para adicionar vários slots ao mesmo tempo. Então isso é necessário para que tenhamos o, podemos adicionar o inventário um pouco mais rápido. E então temos slot de anúncio, o novo item de slot e advogado. Handler indexar o x, y. E isso vai ser então x é mais igual a dx. Dx é claro apenas a mudança, o índice vai aumentar. E nós só vamos retornar o índice. Esse é o intervalo de anúncios. Agora não seríamos privados na caixa de anúncios. Mais uma vez com um manipulador de itens, vai manipulador, eu acho. E, na verdade, este aqui. E a única coisa que precisa mudar é que isso é realmente o porquê, e esta é a quantidade vertical. Precisamos de outro, outro inteiro, velho. Bem, isso é depois, meu senhor, minha terra. Vou copiar isto do outro. Desculpe. Lá vamos nós. Então nós precisamos no índice x, y, então a montagem horizontal na mudança de x, em
seguida, o modo vertical, e então a mudança de y, então dx em d y. E em vez de aqui, nós vamos realmente ter um int i, j 0, j é menor do que a quantidade vertical. Então vamos passar por como,
quantas, bem, basicamente, quantas linhas existem. E índice vai ser para adicionar faixa de ranhura. Então agora vamos ligar para este. E a idéia aqui é que uma vez que eu tenha digitado isso, que y é n é igual a dois d, d y é claro. Então a mudança lá, e então nós vamos retornar índice. Então a idéia aqui é que isso basicamente adiciona o, a linha. Então, isto está tudo bem. Isto é chamado para cada linha, certo? Então faixas de slot de anúncio basicamente chamado para cada linha e adicionar caixas de
slot chamado Em quantas linhas existem. E isso é necessário para o layout do vazio privado. Layout, ranhuras de inventário jogador. Então isso simplesmente torna mais fácil apenas imediatamente no,
no inventário do jogador, certo? Então vamos fazer o inventário deles e, em seguida, nove e, em seguida, esquerda col, e então nós vamos dizer top row e então nós vamos dizer nove. E depois, e depois vamos dizer 18. E então vamos dizer 318. E isso é mais porque este não é um slot, mas caixa S LAB. Lá vamos nós. - Legal. E então nós também queremos adicionar a barra quente. Então vamos fazer a primeira fila mais igual a 58. E, em seguida, vamos adicionar outro intervalo de slot com inventário jogador é 0 esquerda linha superior chamada, 9180, não 1980. Muito obrigado, Diego. Certo? Então, isso basicamente é apenas para o fato de que queremos
colocar para fora o inventário do jogador e torna isso muito mais fácil. E eu não diria que não é necessário entender como ele não poderia. Você pode, claro, passar e entender isso pouco a pouco. No entanto, é muito importante saber que isso é, isso é apenas algumas funções auxiliares têm saúde. Novamente, métodos auxiliares. Eles vão embora. - Sim. E mais uma coisa, bem dentro de nossa cabeça, interagir com eles estão realmente indo para retornar está dentro de uma distância utilizável. E nós vamos dizer que eu vou passar chamável de entidade de azulejo,
entidade , ponto, obter mundo. Então vamos especificar a posição. E, em seguida, vamos especificar a entidade jogador. E então nós vamos dizer que isso está nos blocos mod ponto ar eletrificado. Lá vamos nós. Lá vamos nós. Isso é apenas dentro desta distância utilizável que nós vamos apenas dizer, hey, nós podemos interagir com isso se isso estiver dentro da distância que é especificado dentro deste método que está dentro da própria classe container. E isso, isso faz sentido, que isso é bom de usar. Ok, então neste, nós realmente especificamos aqui, então o layout do inventário do jogador, nós também adicionamos os slots do próprio contêiner. E há mais uma coisa que precisamos fazer, e eu vou realmente copiar isso porque este é um método muito grande. E isso vai ser adicionado entre esses dois. Como eu disse, muito longa. E neste caso, a essência disso é simplesmente que este método é chamado quando transferimos um deck para um slot de índice em O de índice, índice basicamente. E isso garante que, bem, se já houver uma pilha lá, então se já houver um item lá, claro que não podemos simplesmente colocar outro item lá. Isso não funciona. Não podemos nunca mesclar a pilha se o se for o mesmo. E sim, e isso é agora. Aqui dentro. Nós também temos o item especificado no índice um para que este, que apenas os itens podem ser diamantes, itens de história. Os diamantes podem ser colocados no índice um. No entanto, vamos ver que isso também é algo que
temos que especificar no lado do em vez
do eu acredito que é a entidade de mosaico. Se não estou enganado. Ideia dentro daqui, é um item válido, é algo que também podemos usar para isso. Então, a próxima coisa, este é o recipiente, e o recipiente está pronto. A próxima coisa que precisamos fazer é realmente registrar o contêiner. No entanto, não podemos fazer isso ainda porque precisamos da tela. Então, a tela é o, é, Eu quero criar uma nova classe Java resfriado a tela de fogo viagem. E isso vai se estender, estender de. Tela de contêineres do tipo. Electrifique o nosso contentor. Como pode ver, fica um pouco mais complicado do que antes. O único método que realmente precisamos implementar aqui é a droga que recipiente camada de fundo. E então, é claro, também precisamos de um construtor. Vamos fazer sozinhos. Isto vai ser d eletrifica tela. E isso leva em um contêiner eletrificado, contêiner antigo, um inventário de jogadores, velho o suficiente. E eu componente de texto iria nomear. Certo? E então vamos chamar o zelador sobre isso. E vai ser isso. Também precisamos de um local de recursos para o nosso arquivo GUI. Teremos um recurso final privado, localização de recursos. Deixe-me segurar GUI. Novo recurso, localização do recurso. Nós MC, mod mar ID e texturas. Gui, fogo elétrico, GUI, PNG. Vou mostrar isso em breve, a GUI. No entanto, agora, vamos terminar esta tela que eu vou entrar
na GUI e então também explicar onde eu peguei esses números e como isso funciona. Então a primeira coisa dentro daqui não é nada, porque também
precisamos de mais dois métodos que precisamos ser substituídos. E isso vai ser realmente, vamos fazer isso assim. Vamos fazer, vamos chamá-lo ou renderizar. E essa será a primeira renderização aqui. E, em seguida, vamos também dizer desenhar GUI, camada de primeiro plano recipiente. Sim, creio que é esse o caso. Ok, aqui, nós queremos fazer este ponto render lanche matriz de fundo. E aqui nós queríamos ter renderização hover, tooltip matrix saco, mouse x, mouse y. Isso basicamente apenas renderiza
o, a própria tela. E, em seguida, na camada de fundo desenha uma camada de fundo. Em primeiro lugar, queremos a cor do sistema de renderização, cor 4F. Então essa cor é isso, importa. Também diz que não precisa estar lá. Eu aconselharia a colocá-lo lá. Vamos apenas fazer este, então temos este ponto minecraft e obter o gerenciador de textura. Com isso, estamos realmente definindo a textura. Então este é o, nós fornecemos o local de recursos de nossa, de nossa textura. E eu vou dizer int i, isso. Nós saímos. Temos este int j, este top GUI. E então vamos apenas dizer este duvidoso. E este doublet basicamente corta uma parte da imagem e a exibe com o, esses offsets e com o tamanho. Agora, isso pode ser um pouco complicado agora, mas não se preocupe, nós vamos passar por isso, ok? Portanto, isso é tudo, exceto para nós também queremos e rótulo energético. Vou simplesmente copiar isto rapidamente. Isso vai ser em primeiro plano e na verdade não precisamos chamar super. Claro que ainda não temos isso. Então nós vamos apenas dizer, vamos dizer energia 0, bem, no momento. E então vamos adicionar isso quando apropriado. E agora, isso já deve funcionar. Então vamos rapidamente, eu vou copiar rapidamente sobre a textura GUI. Então isso precisa estar dentro das texturas. E então nós realmente precisamos de um novo,
um novo diretório chamado GY. E tipo de lá vamos colocar este, vamos copiá-lo. E eu vou rapidamente puxar isso
para o Photoshop e mostrar a você esta loja de informações como isso parece. É assim que o, como a GUI olha para este momento no tempo. E eu vou explicar o amarelo e o cinza aqui depois que passamos pelas ranhuras. Então basicamente o slot, como podemos ver dentro do nosso contêiner, mais
uma vez, nós realmente especificamos o primeiro slot com índice 0 em 3057, certo? Então 0-0 está aqui em cima, certo? Então, no canto superior esquerdo. E então, quando vamos com isso, a primeira parte do slot é 13. Podemos ver. E então aqui em cima, podemos realmente ver que isso tem 57 de altura, certo? Então isso define a inclinação está nesta posição. E os outros dois são exatamente iguais, certo? Mais uma vez, isso também é fornecido ou seja. A barra amarela e cinza são para os níveis de energia. Isto é o que vamos fazer isso em breve também. Mas antes de tudo, vamos verificar se tudo funciona com slots. Porque ainda precisamos fazer algumas coisas para que isso funcione. No entanto, é assim que se obtém essas posições. Como eu disse, você também pode usar tinta na rede. Funciona exatamente a mesma coisa. E, claro, você também pode fazer seu próprio tipo de interface, certo? Não tem que se parecer com isso. Pode parecer diferente. Ele pode ter uma cor diferente ou símbolos no meio. Ou você pode,
você sabe, desenhar nele. Tudo funciona. É só um arquivo PNG. Agora, o que precisamos adicionar agora está dentro do nosso,
então, em primeiro lugar, dentro do nosso proxy de cliente, essa é a primeira coisa que precisamos adicionar. Dentro do arquivo init. Método de init. Queremos adicionar o gerenciador de tela, registrador de pontos do gerenciador de
tela, contêineres de mod de
fábrica, eletrificar ponto de contêiner get. E então queremos dizer elétrica primeira tela. E então você estava indo apenas para usar a construção Lambda lá, certo? Era uma das coisas que precisamos acrescentar. E então dentro da nossa telha, bem, em primeiro lugar, dentro do bloco, nós realmente precisamos adicionar a capacidade de clicar com o botão direito do mouse. Isso é muito importante. Então, dentro do próprio eletrifica, nós queremos acrescentar, eu acredito, apenas um método, mas ele vai ser um doozy novamente. Então isso vai ser um bloco ativado. Mais uma vez, não importa que isso diga, Oh, está obsoleto. Podemos apenas adicionar este aplicativo novamente porque para nossos propósitos, isso não é tão importante. E vamos dizer, se o mundo é remoto. Então, se o mundo não for remoto, vamos fazer isso. E isso vai ser entidade de bloco, título, entidade, entidade bloco ponto-ponto
mundo na posição que foi especificada. E então nós vamos dizer, hey, se esta entidade azulejo é uma instância da entidade de fogo elétrico e azulejo, então nós vamos fazer alguma coisa. E o que vamos fazer é dizer que nomeei o fornecedor de contentores. O provedor tenor é igual a um novo IE chamado provedor de pré-impressão. E então vai enlouquecer e ler algo aqui, o que é realmente ótimo porque isso é exatamente o que precisamos. Aqui. Queremos criar um novo componente de textos de tradução. E então este é o ponto de tela MC, pior fogo elétrico ponto. Então isso é basicamente o, isso é a coisa que usamos dentro do nosso arquivo de localização EN us. E mais uma vez, você não precisa fazer isso, o anulável necessariamente. E nós vamos realmente ler, renomear aqueles porque não precisa ser. Lá vamos nós. Ok, então também não vamos retornar nulo, mas um novo recipiente de ar
eletrificado e eletrificado com um monte de coisas. Eu mundo, oh, este sou eu, a propósito. I mundo POS, inventário jogador e entidade jogador que vamos. E então o mundo não está aqui porque é nisso que estamos. Bem, isso não é a pior coisa de sempre. Lá vamos nós. E então precisa também fazer algo muito interessante. E isso vai ser uma rede de livros ponto aberto GUI. E nós vamos dizer entidade jogador servidor,
jogador, provedor de contêiner e pontos de entidade de bloco. No entanto, SO. Se isto não for um caso de incêndio elétrico, vamos lançar uma exceção. No entanto, eles fazem às vezes. Questiona a minha sanidade com isto. Vamos, vamos apenas retornar o tipo de resultado real de sucesso. E eu vou embora então ele vai saber que ainda não vai fazer isso. Bem, às vezes eu não sei por que ele não faz do jeito que eu queria, mas tudo bem. Lançar nova exceção de estado ilegal. E este é basicamente nosso contêiner está faltando. Bem, é o fornecedor de contentores, mas sim. Rho vita. Ok, em teoria, isso deve ser tudo. Neste apenas se certifica de que isso é aberto no lado do cliente também. Para que haja esta, mais uma vez, a diferença do cliente do servidor. De qualquer forma. Então o desbloqueio ativado é frio quando você clica com o botão direito do mouse em bloquear. E eu só vou verificar se tudo está feito. E eu acredito que tudo é feito para, pelo menos, torná-lo para que possamos abrir a GUI. Penso que isto deveria funcionar neste momento. Só vamos tentar. Na verdade. Nós receberíamos um erro. Porque uma coisa que precisamos fazer é colocar isso em três. Porque, claro, temos três slots que especificamos dentro do nosso recipiente aqui. E isso precisa corresponder a esses três slots. Vamos ver se funciona ou não. E como podem ver, quanto mais complicado fica, mais precisamos olhar. E lá vamos nós, na verdade temos um erro. Tudo bem, eu consertei com sucesso a seta e tinha algo a ver como dono desta palestra ou da palestra antes, onde a anotação estranha estava, ele queria adicionar algo. E ele adicionou isso no arquivo de compilação do Gradle. E isso, quero dizer, eu não diria que corrompeu, mas então não funcionou mais. Então eu corrigi-lo apenas excluindo isso do arquivo de compilação Gradle. E sim, foi uma flecha que não teve nada a ver com que fizemos ou que fizemos. Então, sim. Vamos apenas verificar se a tela funciona ou não agora. E se pudermos realmente ver EEG UI aqui, vamos ver. Então, primeiro de tudo, é melhor,
se você ainda tem escuta, se você ainda tem o bloco em algum lugar excluído e colocá-lo novamente. Porque caso contrário, pode haver alguma estranheza. Então vamos ver se clique com o botão direito se vai ou não falhar ou se funciona. Funciona, isso é muito bom. Gostamos de ver isso. Isso é muito bom, na verdade. E agora podemos colocar as coisas em tudo. Então podemos jogar todos os tipos de blocos em cada uma dessas coisas. Vamos mudar isso muito em breve. Primeiro de tudo, nós vamos, eu realmente tinha algo em mente onde o que eu quero fazer isso também faz este rótulo energético aqui. Ele cria isso automaticamente. Então isso é feito com o, com o com este desenho GUI recipiente primeiro plano aqui. E a primeira coisa que vamos fazer é realmente adicionar à entidade de azulejos
de fogo elétrico. E vamos adicionar duas coisas. Então número um, vamos acrescentar. É que vamos realmente implementar, oh, nós vamos implementar a entidade de mosaico clicável, que vai fazer. E então precisamos implementar o tick método. E isso é, vamos, vamos colocar isso um pouco mais alto. Na verdade. Vamos colocar isso aqui em cima. E isso é chamado basicamente de cada carrapato. E também vamos levar duas coisas. Eu estou indo apenas para copiar sobre s2, dois inteiros, um tick e um nível de energia. Então nível de energia neste caso, eu não chamaria isso, eu não diria que este é o nível de energia, como nas máquinas necessariamente. Isto é apenas algo como um exemplo aqui. E nós também vamos descer aqui e vamos dizer,
ok, o item é válido? E agora nós realmente queremos dizer, bem, depende de qual slot estamos. Então, nós estamos realmente indo para criar uma mudança de slot. E isso vai ter um caso 0. Mais uma vez, começamos com começar a contar em 0. E eles são, nós realmente temos um item get. Stack dot GetItems é igual a Adams dot diamantes. Então eu só quero voltar, então eu quero devolver isso. Então, isso retorna verdadeiro se o item for diamante. Então só diamantes podem ser colocados nessa ranhura. E depois vamos dizer 12. E aqui vamos dizer padrão. E, neste caso, vamos retornar falso. E neste caso, vamos dizer fio de cobre ponto do item mod, Não, não cobrir x copo wire.begin. E aqui o Adão vai ser uma esmeralda. Então a idéia aqui é que nós queremos criar é uma máquina que pode,
que pode diamantes um fio de cobre e transformá-los em esmeraldas. Claro, talvez não haja a coisa mais lógica, mas ainda é, é claro, apenas um exemplo de como isso poderia parecer. E aqui no item de inserção, nós vamos realmente dizer se e então é item válido e então nós, e então nós realmente queremos que isso não aconteça. Então, se o item não for válido, vamos devolver a pilha. Então nada muda. E então nós vamos retornar o super inserir um item se o item é realmente válido para esse slot. Então isso é algo que precisamos fazer. E então nós também, creio eu,
uma possibilidade de colar de ler os níveis de energia. Então vamos fazer aquele int público, obter nível de energia. E isso vai retornar o nível de energia. E então precisamos adicionar isso no lado do método Ártico também. Então, cada vez que isso é resfriado, nós realmente vamos aumentar o tick em um. E então dizemos, por exemplo, se tick é dez, então isso seria a cada 2,5. Queremos que algo aconteça. E então nos perguntamos, o que queremos que aconteça? E isso é claro, algo que precisamos pensar sobre nós mesmos. Então, por exemplo, eu poderia dizer, bem, se A pilha no slot 0. Então é aqui que colocamos os itens se isso realmente é um item lá, certo? Então, diamante. E, por exemplo, o nível de energia desta máquina é menor que 64. Digamos que queremos dizer, bem, 64 é o nível de energia mais alto que queremos ter. Então o que podemos fazer é dizer, bem extrair o item do slot 0 pela quantidade de um e nós não queremos simular, nós realmente queremos excluí-lo. Então isso é o que, isso basicamente exclui o item, certo? E então queremos ter nível de energia. Então o nível de energia sobe por cada diamante que está sendo destruído. E então podemos salvar também para cada tick. Se tivermos um slot, se tivermos um item no slot um, que pode ser, por exemplo, os fios de cobre, certo? Então itens MOD, fio de cobre, ponto get. E, e isso é muito importante e o nível de energia, o nível energia é maior do que 0. E também se o outro, isso também é muito importante. Se item tratado droga fica preso no slot para obter contagem e não obter item, mas se contagem não é igual a 64,
bem, na verdade podemos dizer que é menor do que 64. Sim. - Sim. E isso basicamente diz, bem, você sabe, nós queremos que o nível de energia, a energia realmente tenha algum nível, a fim de criar novas esmeraldas neste caso. No entanto, isso é algo que precisa ser pensado. E o, isso basicamente é a lógica desta, desta máquina, digamos. E vamos dizer que é, extrai um item aqui. E então ele vai inserir um novo item neste. E isso vai ser uma nova pilha de itens. Novos itens empilhados com esmeralda de ponto do item. Isso vai se tornar um. Nós não queremos apenas simulá-lo, nós realmente queremos que isso aconteça. E então o nível de energia deve diminuir também, sabe, menos menos, e então o tick é redefinido para 0. Agora este aqui deve ser configurável, certo? Então você deve se referir de volta para a palestra de conflitos onde nós realmente colocamos em configuração. Isso deve ser algo que deve ser configurável. mesmo com o nível de energia, acredito que sim. Isto deve ser algo como o nível máximo de energia. E você também pode pensar sobre, você sabe, ter a quantidade ser configurável do que você precisaria para mudar algumas coisas aqui, mas ainda seria semelhante. Então, basicamente, para dizer, neste momento em nível de energia é basicamente exatamente equivalente a um diamante. Neste caso. Talvez queiras mudar isso. Nós também precisamos ir para o recipiente e adicionar um outro método de Milão função, bem na parte inferior. E isso vai ser um público int obter nível de energia. E isso simplesmente vai devolver um título infalível, this.title e t porque ele não sabe o que é Tailândia Este é esse bom nível de energia. Sem esse ainda, e isso é apenas no cliente desktop. By the way, isso só deve ser feito no cliente porque só precisamos atualizar este ou o cliente. Qual é a questão? E o contêiner? Bem, foi um para muitos. Ok, eles vão. E dentro da tela, agora podemos realmente adicionar isso. Então podemos realmente dizer ponto contêiner obter nível de energia. E então o nível de energia vai para lá como uma atualização lá também. E, e então nós também vamos adicionar este outro, outro tarugo. Vou colocar isso rapidamente aqui. Então a idéia aqui é que se voltarmos para a GUI, a GUI, como você pode ver, ela está sempre cheia. Então, se a barra amarela está até o topo, então está basicamente cheia. E o que vamos fazer é que esta coisa vai ser colocada em cima dela. Então eu vou fazer rapidamente algo assim. Então isso vai ser colocado em cima dele, e ele vai ser excluído para cada um. Então cada pixel será excluído para cada nível de energia que temos. Então, isto é exatamente 64 pixels de altura, a propósito. E esta é uma maneira de você fazer isso, por exemplo. E sim, vamos ver como isso,
e isso realmente parece dentro do jogo e se isso funciona ou não. Então esta é basicamente a idéia no deslocamento. Mais uma vez, aqui está, essas são algumas matemática simples. Eu diria que o x e y é o canto superior esquerdo do, do onde isso deve ser colocado, este, este recorte. E o recorte é definido pelo deslocamento você e deslocamento V. E então como uma certa largura e altura associadas a ele. E a altura é claro, é dinâmica com o nível de energia, porque queremos que
o, a barra cinza seja maior ou menor dependendo do nível de energia. Mas essa é a ideia. Nós vamos destruir isso mais uma vez e realmente conseguir um novo só para que fique claro com,
você sabe, uma espécie de estranheza. Então vamos pegar diamantes, vamos pegar alguns fios de cobre, e vamos ver se isso funciona. Então, em primeiro lugar, isso funcionou antes de ser um amarelo. E agora nós realmente vemos que o que a sobreposição funcionou. Vamos colocar o primeiro de uma mulher que tentou colocar outra coisa lá. Está bem. Isso não funciona. Isso não funciona. Isso não funciona. Isso é muito bom. E eu vou colocar os diamantes aqui e ver o que acontece. Bem, a energia aumenta e os diamantes morrem. E parece que o, isso está aumentando. Isso não é legal? E então o que vamos fazer é colocar os fios de cobre aqui. E então eles se transformaram em diamantes e, claro, duas esmeraldas. E então a energia não está aumentando mais porque esta é uma relação um-para-um basicamente. Então, se tirarmos os diamantes e a energia estiver diminuindo neste momento. E os fios do copo estão sendo transformados em esmeraldas aqui. E uma vez que isso é feito, a energia está esgotada e não mais animais são criados porque, claro, nós especificamos que a energia tem que ser maior do que 0 para isso funcionar. Certo? Lá vamos nós. Sim, esta é uma máquina simples. Então não é uma máquina louca e complicada. Não, máquinas loucas e complicadas podem ser. Os exemplos, é claro, mais uma vez, estão no GitHub e nos modos populares estão. Eu sempre encorajaria a olhar para isso. Mas é assim que você cria um Gy, como você cria algum tipo de entidade de bloco com um pouco de funcionalidade. Como eu disse, a funcionalidade está dentro da função tick basicamente. E também há outras coisas. Capacidades que você pode adicionar, claro ainda. E você pode deixar essas capacidades de lado. Mas esta é apenas uma introdução geral a isso. E sim, mais uma vez, areia, este é um tópico um pouco mais complicado e mais complexo e também um palestrante mais complicado. Então, se houver alguma pergunta, sinta-se à vontade para perguntar. Mais uma vez, todo o gy e também o código-fonte estão disponíveis como um recurso. E se isso foi útil para você e você gostou, eu apreciaria muito uma revisão do curso até agora. E sim, foi assim que você cria uma GUIs personalizada. E sim.
66. (Minecraft) Ore Geração no mundo: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos falar sobre ou gerar. Então vamos gerar o minério de cobre que criamos muitas, muitas palestras atrás. E nós vamos realmente gerar isso no mundo. Então, para isso, vamos, em
primeiro lugar, criar um novo nó, não um pacote intelectualmente. Queremos criar um novo pacote. E isso vai ser um mundo. E dentro desse pacote vamos criar outro pacote que vai ser a Jen. Mais uma vez, isto é, digamos um estilo ou personalizável. Faz sentido tê-lo num mundo. Então, pelo menos o pacote mundial deve ser feito. O generoso, tipo opcional. E nós vamos criar um enum, na verdade, que vai ser do tipo Guerra Fria. Agora isso é algo que vai ser muito parecido o que fizemos com a armadura,
as armas e o material. Mas vamos passar por isso, então vamos ter um bloqueio aqui. Nós também vamos ter um, um inteiro que vai ser chamado tamanho máximo Sylvain, um final em altura min trabalho. Esta é a altura mínima em que o e que é gerado. E o lado do Mac, basicamente a altura máxima do bloco onde isso geraria o bloco correto, sim. E vamos ter um bloco tipo minério,
bloco ind, máximo, tamanho da veia. Queríamos int min-height e um inteiro i, max H. E então este bloco, então este é apenas um normal, mais uma vez, uma declaração normal e um construtor normal. Maxwell incisa este ponto. Min-altura é igual a min-altura. E esta altura máxima de ponto é igual a máximo tem bonito. Ok? E então nós, é claro, também precisamos de alguns getters para esses. Eu acredito que eu posso criar estes aqui novamente, criar um getter para bloco, ler, gueto para Max Vein, e um getter aqui. E eu sei que isso não está certo. Eu queria ter um “getter”. Lá vai você. Ok. Então, enche-se de nós e então vamos ter uma estática pública ou tipo, que é, nós vamos chegar com o bloco. E vamos passar por isso. Então, para cada tipo de palavra ou em valores, se o bloco for igual a word.lower, OK. Então vamos devolver isso ou se não for esse o caso, vamos voltar nulo. Também podemos lançar uma flecha, mas fomos uma exceção, mas tudo bem. Certo? E então aqui, aqui em cima, nós vamos criar o de cobre, e este vai ser múltiplos pontos de boi. Bloco de cobre fica, e então nós vamos, eu só vou colocar em alguns números agora. Então o tamanho máximo da veia vai ser oito. Ele gera no nível Y 25 até Y nível 50. E a grande coisa sobre isso é que nós só precisamos
adicionar um novo enum aqui se quisermos adicionar outro. Então, por exemplo, podemos simplesmente fazer algo assim e, em seguida, dizer, por exemplo, bloco de cobre. E então também isso é cobre ou, a propósito, não bloco de cobre, certo? E então podemos dizer, Bem nós, na verdade, então a adição de um novo ou é literalmente apenas adicionando isso. É isso. É por isso que acho que esta é uma ideia interessante para fazê-lo. E então nós vamos criar uma nova classe na verdade, porque isso está feito agora, o que nós vamos chamar de lama ou geração. E sua geração vai realmente ser ter um assinante MOD Dot evento bus, importar MOD imediatamente. Que vai ser um pouco mais fácil. Mod ID, deixe-me MC curso id. E então o ônibus vai ser ponto se foi assinante MOD. E então nós vamos ter um grande método aqui que vai ser regenerado pior com um FMLA, FML load evento completo, não ganho longe para outros parênteses de corredor que não é necessário. E isso vai ser um evento de assinatura. E dentro daqui, acredito que o que vamos ter é um método chamado adicionar recurso ao bioma. Então eu vou apenas copiar isso porque este é um,
este é um método que simplesmente quebra as, as características
do bioma e, em seguida, adiciona algo a ele. E podemos usar isso a nosso favor. E isso vai ser, nós vamos passar por cada ou digitar os valores de ponto do tipo de palavra, certo? Então, neste caso, vamos passar por todos os minérios e vamos passar por algumas coisas. Então a primeira coisa é que vamos criar uma configuração ou recurso, que terá um novo conflito Orfeo. Isso vai valer a pena recurso Conflito tipo de bloco de preenchimento ponto. Então aqui, que dizem,
qual é o bloco de enchimento? Então, se você tem, é possível. Nós vamos, nós queremos criar oito. Nós definimos o máximo de veias tem que comer neste caso. Mas talvez tenhamos, você poderia imaginar que então é um cubo de dois por dois. Mas talvez seja o tamanho máximo da veia, então é possível que apenas seis ou sete gerem. E então a questão é, bem, com
o que queremos preencher o resto? E isso é basicamente feito com este bloco de enchimento. Queremos obter o recurso realmente ordenado. Recurso não possui seu realmente ficar bloqueado. Sim, você está certo. Obter estado padrão. E então temos o tamanho da veia DOT GetMax. Este é o recurso onde. Então queremos um posicionamento configurado e posicionamento de figuras, que serão posicionamentos. Não, na verdade vai ser apenas colocação. Colocação, profundidade de ponto, média, configuração de ponto. E aqui vamos criar uma nova configuração média surda. E isso vai simplesmente levar min-height e ou lado Mac assim. E a última coisa, os dois, bem, não completamente perdidos, mas quase perdidos. Vamos fazer um registro que registre um mundo. Jen, registra que recurso configurado ou ponto get bloco, registro
ponto-ponto, ele nome de registro. E então vamos ter ponto de recurso ou com configuração. E para implementar o CS, o ego, ou configuração de largura de ponto ou conflito de recursos, já
configuramos isso. Essa é a grande coisa com a colocação que nós também configuramos essa. E depois temos um ponto. Ele vai ponto quadrado, pontos. Creio que isto ainda não é como mapeado. Isto vai ser isto. E isso é mais uma vez ou ponto máximo tamanho bin mais uma vez. E é isso. Lá vamos nós. E o melhor é que agora o que podemos fazer é passar por cada bioma e carvão em uma forja registra que biomas. E dentro de lá, cada bioma é basicamente escrito. Acabamos de ler isso. E nós, por exemplo, não queremos biomas também. Não queremos que isso seja gerado,
por exemplo, category.net, certo? Porque isso não faz sentido. E também não queremos que isso seja resfriado e obtenha
categoria igual e , em seguida, categoria de ponto bioma. E esse seria o fim, certo? Então só vamos gerar isso. Então só vamos adicionar recurso ao bioma de bioma e fase de geração. Isto é decoração subterrânea bem aqui. E, em seguida, o último vai ser mundo Jen registros, ponto configurado recurso, get default ou none, ou dot get block, get nome registrado. Então é isso que basicamente registramos aqui. E isso vai ser adicionado como uma característica para o bioma. Você pode, claro, também em vez de, digamos este negativo aqui onde nós não fazemos isso se é o inferior ou o fim. Você também pode especificar biomas específicos. Então talvez você queira remos específicos apenas para gerar biomas específicos. Você pode, claro, todos fazer isso com algumas afirmações sobre isso já é realmente tudo o que é necessário para a geração aqui. O, isso está sendo chamado automaticamente. Então vamos apenas executar isso e ver em um, em um novo mundo o que isso traz. E se pudermos encontrar, bem, no nosso caso, tanto o minério de cobre quanto o bloco de cobre. Eu tenho, claro, por exemplo, também gerou alguns blocos de cobre. Só para mostrar como nós realmente fácil é adicionar novos ores neste caso. Então, é claro que o sangue precisa ser adicionado, mas se você adicionou todos os blocos, então você pode apenas fazer este fim. Isto é super fácil. Então vamos criar um novo bloco. Newton conhecia o bloco, o novo mundo, é
claro, no modo criativo por enquanto. Então está gerando, o que é um bom sinal, é claro. E o fato de que nada caiu ainda é também um bom sinal. Também algo que é sempre algo que, você sabe, pode acontecer. E nós vamos entrar no modo espectador e voar para baixo. E talvez possamos descobrir que eu coloquei o, lá vamos nós. Na verdade, já encontramos os dois. Isso é ótimo. Vamos à direita. Então aqui temos alguns blocos de cobre, 123, que era uma veia pequena. E aqui temos outro de cobre ou 1-2-3, 4-5-6, certo? Isso é ótimo. E assim você pode, é
claro, brincar com os números um pouco, certo? Isso é sempre algo a ser feito. Bem, então eu poderia escrever isso. Isso provavelmente ajudaria. Vamos ver se consigo encontrar uns L's. Há outro 11234. Isso é quatro. O Vane. E sim, como você pode ver, há, é claro, algumas coisas. Também é dependente, claro, do, da altura. E lá vamos nós. Há alguns outros. Então, neste ponto estamos altura 2020 a este mal chegou em 12. Eu, aqui estão mais três. Então este é realmente um grande comido. A geração é bastante fácil de entender e isso é realmente uma grande veia. Isso é legal. E, claro, você pode brincar com os números. É a melhor coisa que pode fazer. Vamos circular para trás. E essa é a melhor coisa que pode fazer, certo? Então brinque com os números um pouco e veja o que você pode fazer taxa. Então esta é a dica aqui para a ração de origem, mas isso é basicamente já não é
isso, não é tão complicado, especialmente em comparação com a GUI ou a outra coisa da entidade de mosaico. Então, sim, é basicamente isso. Se houver alguma dúvida, sinta-se à vontade para perguntar. E sim.
67. (Minecraft) criando uma árvore personalizada: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos criar nossa própria árvore personalizada. Agora o que precisamos para uma árvore personalizada é claro, tábuas, troncos, folhas e uma muda. E esta é a primeira coisa que vamos fazer. Vamos entrar em nossos blocos mod, a classe e criar exatamente esses objetos. Objeto de registro do tipo bloco. Eles são todos de tipo bloco. E decidi criar uma sequoia. E vai ser disco prancha é igual para registrar as tábuas de madeira vermelha. E então aqui vamos fazer novo bloco com algumas propriedades de bloco abstrato, que vão ser do ponto de Locke, OK. Tábuas. Muito fácil. Vamos pegar as propriedades da prancha de O porque não faz nada de especial neste caso sobre elas. E também tem o registro de sequoias aqui. E eu registro aqui. E este vai ser um bloco de pilares girado. E as propriedades vão ser,
claro, de OK. Ok, você poderia ir? E aqui vamos ter folhas de Redwood. E não se esqueça de alterar o nome dentro do método register também. Mas aqui, porque caso contrário você vai ter erros, deixa também. E isso vai ser um bloco de folhas. E depois um último, que vai ser um pouco diferente porque faz sentido copiar isto. Sim, ainda não faz sentido copiar isto
e isto vai ser a muda de sequoia. E esse é o que vai ser o mais interessante, digamos, ou aquele com mais trabalho associado a ele. Digamos, vamos realmente nos livrar disso. E este vai ser um novo mudo de madeira vermelha, que é claro que ainda não existe. Mas já podemos preencher isso porque eu já sei como vai parecer. E esta vai ser uma nova árvore de madeira vermelha, que também não existe ainda. Então, há algumas coisas das quais precisamos criar algumas propriedades. E aqui nós vamos pegar fechaduras de madeira de carvalho. De repente você vai, e é isso. E é claro que eles precisam ser criados. Primeiro, vamos criar a amostra de sequoias. Isto está dentro do pacote de blocos novamente, a amostragem de madeira vermelha. E a muda de sequoia vai estender o bloco Bush e vai implementar um rolo de olhos. Ok, vamos primeiro,
ter os métodos implementados. Pode crescer, pode usar osso, refeição e crescer. E depois o próximo. E também, claro, um construtor com o super aqui dentro. Na verdade, também queremos um fornecedor de árvore, que vai ser árvore em. E isso também é algo que precisamos ter como campo final aqui, um fornecedor de três, fornecedor de árvore, que vamos chamar de árvore. Ou temos que pegar três, reimportar isso. Muito importante que é árvore, net Minecraft bloco árvores e não o outro. E este vai ser o fornecedor normal. E isto é então esta árvore é igual a três. E nós também pré responder à UE. E então também precisamos de uma propriedade inteira. Propriedade inteira chamada stage. Isso simplesmente é o estado de bloqueio propriedades dot state, dot stage 01. Então, isso basicamente significa que ele tem uma propriedade inteira se ou não é cultivado ou não. E dentro da lata crescer, nós apenas vamos voltar verdadeiro porque este bloco pode corda, pode usar farinha de ossos. Nós vamos criar um número aleatório basicamente. Então vamos fazer um duplo e vai ser mundo em ponto aleatório. Próxima carga é esta. Quero dizer, nós também poderíamos usar um carro alegórico, mas isso importa muito pouco. Então isso basicamente tem 50% de chance de uma refeição de ossos funcionar, certo? Então este basicamente diz isso. E então temos um método de crescimento que precisa ser, algumas coisas precisam ser feitas. Então aqui nós realmente precisamos de um estado, estado ponto get stage é igual a 0. E aqui vamos dizer mundo em estado de bloco de set. E eu não sei meu acrescenta esses parênteses que não são necessários. Estado, e então precisamos usar a função 235. Este, sim, este eu acredito que é o correto. Está desmapeado. E neste seria realmente ciclo DOT estado, só para que você saiba. E eu vou fazer outra coisa. Mais uma vez, o, a luta com uma formatação de formulário. E então aqui nós vamos realmente dizer, perdoado planta de ponto, crescer árvore, mundo em posição aleatória. Oh, não, isso não é posição. Obrigado. E se for esse o caso, então vamos voltar. E esse não é o caso. E nós vamos ver este ponto três, ponto obter tentativa rho mundo árvore em, mundo no entanto provedor pedaço obter gerador tronco,
passar, estado e aleatório. Eles vão. Parece loucura, mas não é assim tão louco. Nós também queremos substituir o recipiente de preenchimento, que nós vamos apenas salvar ponto construtor adicionar estágio. E nós vamos. E também precisamos substituir o método tick. E nós vamos adicionar estes suprimir, mais
uma vez suprimir avisos porque a realocação, porque isso não é tão importante. Então vamos dizer se o mundo nesta área carregou a posição um. Então, se a posição ao redor da árvore é realmente carregada, não é carregada. Em vez disso, ganhamos, negamos o SIR e não vamos fazer nada. No entanto, se isso é carregado e se, em seguida, a luz nessa posição,
por isso, se a luz acima desta posição está acima de um nível de luz nove. E então também colocamos um número aleatório. Nós vamos pegar um inteiro na verdade, próximo int com ligado sete. Se for 0, então vamos fazer essa estrela crescer com a posição aleatória do mundo e o estado, certo? Isso é errado porque o teste era assim. Se a posição acima da coisa está acima de nove e se o número inteiro aleatório é igual a 0,
Então, basicamente, como cerca de um, o que é aquele sobre 7% de chance de crescer cada vez que
o, o, o tick entra, certo? Algo assim. Bom. Agora isso não é, a propósito, isso não acontece apenas em sete carrapatos ou algo assim, então isso significaria que basicamente cresce cada segundo ou tenta crescer a cada segundo. Não é o que acontece, mas sim, tudo bem. Vamos então olhar para a árvore. Então este funciona, mas ainda não implementamos uma sequoia. Agora, onde colocar a sequoia é uma espécie de coisa, que eu não tenho certeza de onde isso faz mais sentido porque na verdade é algo a ver com o mundo, mas também é uma espécie de bloco. E se você tem, se você sabe, você está fazendo um mod com um monte de árvores, por exemplo, agindo faz sentido talvez até ter um pacote extra para isso. No entanto, se você tem como uma ou duas árvores extras, então também faz sentido apenas colocá-las no pacote de blocos. Esta seria a sequoia. E esta aula vai estender a árvore. Isso é quase um choque, eu sei. E primeiro de tudo, eu vou copiar sobre algumas variáveis estáticas, as mesmas estáticas aqui porque elas vão ser realmente úteis para ou fazer. Queremos a característica da árvore do gueto como uma sobregravação? E isso vai retornar algo com uma configuração. E isso vai ser a configuração de recurso de base final pública de três,
que também é chamado de configuração de árvore de sequoias. E isto vai ser uma verdadeira peça de trabalho. Mas não se preocupe, nós vamos ser capazes de fazer isso é para ser configuração de árvore base, config. Construidor de pontos. E então começamos, e agora fica louco. Então este é um novo bloco simples, provedor de estado. Blocos de leitura de ponto iria registrar. Então, primeiro de tudo, precisamos dar a ele a fechadura de sequoias e precisamos dar a eles o estado padrão. Então temos outro provedor de estado bloco simples, que vai ser os blocos Mott. Folhas de sequoia. Isso recebe, que recebe o estado padrão. Então vamos ter uma nova bolha de folhagem, por favor. Então, com isso, nós realmente vamos colocar as folhas. Este vai ser um recurso spread funk 2.4.2 para HIV2 AES está correto. E este vai ser o raio da folha que vamos tomar. Agora realmente colocar estes em para que é muito mais
fácil ter um bem coerente a configuração de w1. E em vez de apenas colocar em números aleatórios, digamos que este vai ser o deslocamento de folhas. Em seguida, vírgula folhas altura. Então temos um novo laser de tronco reto. Então este é basicamente o lugar onde a colocação dos troncos em uma linha reta para cima. Vamos ver uma altura de base. Então vamos ter uma primeira altura aleatória e uma segunda altura aleatória. De modo que, se as árvores são aleatoriamente alta ou baixa, onde dois recurso para recurso posterior, que vai ser apenas 101. E depois adicioná-los de volta aqui nós vamos dizer Construir. E de repente tudo funciona. Usamos tudo aqui e todos estão felizes. Isso também é algo que vamos devolver. Então vamos retornar ponto de feição, configuração de largura de
ponto, iteração. E, claro, recurso tem implementado ou melhor importante. E, em seguida, configuração de árvore de madeira vermelha, bam, é isso. Essa é a árvore inteira. Já está feito. E eu acredito que isso está correto. Sim, tudo deve ficar bem aqui. Certo? Isso é tudo para as aulas. Agora, é claro, também queremos uma geração. Eu vou chegar à geração em breve, mas primeiro nós vamos realmente implementar o ou importar, digamos os modelos e estados do bloco. Então, mais uma vez, vou copiar esses arquivos em todos os arquivos, mais
uma vez, disponíveis como um recurso. Então vamos copiar os estados Bloch. E os estados Bloch são, na maior parte, eles são muito facilmente compreendidos e acham que o log é um pouco mais complicado, é claro, porque temos um log horizontal e vertical que podemos colocá-lo de maneiras diferentes. E a muda, como para os estados do bloco, fácil. Mas, claro, quando se trata do modelo, então vamos ter uma coisa diferente. Então nós vamos entrar, eu vou copiar sobre os modelos do bloco. Então lá você está realmente indo para precisar do bloqueio de folhas de sequoia,
bloqueio sublinhado horizontal e, em seguida, tábuas e mudas. Como você pode ver, se eu for para o log e o log horizontal, não
é muito louco. Eu também quero dizer mais uma vez que você sempre pode ir para baixo aqui para net cliente Minecraft extra em espécie de bibliotecas externas. E olhe para todos os estados Bloch e modelos de coisas que já foram feitas. Assim, o log de acácia, por exemplo, folhas de
acácia, tábuas, amostragem de férias. Então isso também está disponível para você. Então este é basicamente o lugar onde você pode obter como fazê-lo corretamente, digamos. E a amostra de sequoias, mais
uma vez só diz, “Ei, vá para a cruz extra de mudas, claro porque estamos, quando eu tenho isso em vários padrões, por assim dizer. E os modelos de itens, nós também vamos acabar com eles. E esses estão aqui. Folhas de sequoia, apenas coisas normais, normais. Nada muito fora do comum. Certo? E então também precisamos adicionar as novas tags. E eu vou copiá-los também. Vou colocá-los aqui. Então isso vai ser basicamente folhas,
troncos, troncos que queimam tábuas e os troncos de sequoia. E eles se parecem com isso. Então, dentro dos troncos e dos troncos que queimam, nós realmente temos. Isso se refere a Minecraft é porque, claro, as tags de dados Minecraft estão aqui
e, em seguida, os logs de sequoias se referiram de volta para o item em si. É um pouco louco, mas mais uma vez, tudo é fornecido. E então também colocamos as texturas dentro do bloco. Eu quero mencionar mais uma vez que eu não sou um artista, então essas não são a melhor coisa, mas eu acho que eles são decentemente o suficiente para que funcione. E agora eu acredito que tudo foi adicionado exceto a geração, mas vamos olhar para a geração em apenas um segundo. Primeiro de tudo, vamos ver se a banana foi adicionada. Agora, mais uma vez, como eu fiz em palestras anteriores, Eu não adicionei
o, a localização para o idioma. Isto, no entanto, nem deveria ser um problema. É literalmente uma linha adicionada. Eu normalmente omito isso fora daqui porque não muda muito para os propósitos da palestra, pelo menos. Então vamos ver se tudo foi adicionado e se podemos realmente ver tudo. Então isso é muito bom. Então, todas as coisas foram adicionadas. Então esse é um bom primeiro sinal. Vamos, na verdade, também comer um pouco de farinha de ossos. Então este é o Planck. Temos os troncos que também podemos colocar horizontalmente. Temos as folhas. Isso é muito bom, e depois temos a muda. E essa é, naturalmente, a grande questão se a muda realmente cresce ou não. Então vamos colocá-lo para baixo. No entanto, faz outra coisa que precisamos acrescentar, mas isso vai ser muito fácil mais uma vez. E vamos ver se podemos fazer crescer com farinha de ossos. E cresce. Isso é menor do que eu esperava que na verdade eu acho que eles deveriam ser um pouco maiores. Bem, é uma árvore muito pequena. Uau. Este crescimento é aquele tipo de que é tipo do tamanho que eu esperava. Você vai. Isso é muito bom. Ok. Quero dizer, são dois papéis muito baixos. Deve ser a altura normal que eu queria ter. Metade. Certo. Ótimo. Sim, então isso realmente funciona. Mais uma vez, o isso é o mesmo, digamos seta ou problema que tivemos com aqueles. Nós só temos que adicionar isso em declínio de procuração. Então vamos fazer isso primeiro e depois vamos olhar para a geração também. Isso está dentro do proxy do cliente. Lá só precisamos adicionar o tipo de renderização HLOOKUP conjunto camada de renderização. Este vai ser o modelo de blocos, pontos, Redwood, mudas, ponto get. E este é renderizado tipo ser cortado. Mais uma vez, o mesmo que as culturas de abobrinha. Certo? E agora nós podemos realmente adicionar a geração também. E isso vai ser muito,
muito parecido com a geração Mordor. Vamos criar uma nova classe refrigerada mod três gerações. Isso mais uma vez vai de assinante mod Dot evento bus. Em seguida, basta colocar o ID mod e pronto. Eu sou pontuações mod, mod IID. E aqui vamos ter um, um evento é um vazio estático público na carga do bioma. E este leva um bioma a carregar impotente. Evento legal. Este é, naturalmente, um evento de assinatura. O evento da palavra já soa estranho para você? Ok, vamos ver. Então vamos ter uma chave de registro do tipo de bioma. Então isso é quase a mesma coisa que estamos, que estamos fazendo neste método. Um pouco diferente. Digamos assim. É quase a mesma coisa. Mas vamos fazer manualmente. Vamos dizer registro qi dot get ou criar chave da chave do bioma do ponto do registro. Então estamos procurando um bioma e vamos procurar o bioma que tem esse nome. Eles iriam definir, nós também vamos ter um conjunto de bioma, tipo de dicionário biomado. Vamos antes de tudo obter bioma importado. Vamos também definir importado. Agora vamos, vamos manter isso em uma linha na verdade e apenas diminuir um pouco. Acho que seria bom. Sim, vai ser o tipo. Então isso vai ser tudo biomas, basicamente. Bioma, vai ser bioma dicionário ponto recebe tipos com a chave. E então vamos passar por tipos de ponto contém bioma, dicionário de biomas. E só por causa da discussão agora, vamos pegar aviões. Então eu só quero que minhas árvores desovem em aviões por causa da discussão agora. Claro, normalmente aviões não têm tantas árvores. Caso contrário, eles não seriam aviões, é claro, levantar. No entanto, esta é uma espécie de, uma espécie de idéia ou suficiente. Esta vai ser uma lista do fornecedor do recurso configurado. E isso pode ser ponto de interrogação, ponto interrogação, na verdade, um ego. Vai haver a base. E esse é o evento ponto recebe geração. Agora. Oh Senhor, não, boa geração. Dot obter recursos de geração de tipo. Declaração, duração, declaração de estágio, decoração vegetal. Então este é o estágio de geração onde você adiciona o fornecedor não fornecido. Este é o ponto de geração onde a vegetação é adicionada basicamente. E depois vamos precisar de uma lista como uma. E, em seguida, para essa lista nós vamos realmente adicionar algo. E vamos adicionar a isso a configuração de largura de três pontos do recurso. E isso vai ser a configuração da árvore de sequoias com um posicionamento específico. E agora nós vamos apenas fazer colocação em outra configuração de carvalho escuro, nenhuma instância de configuração de posicionamento. Então, basicamente, estamos apenas copiando sobre qualquer configuração de colocação que o carvalho de carvalho escuro tem. É que eu aconselharia você a simplesmente pegar este e brincar com ele um pouco, certo? Então, dentro deste lugar. Então você pode tomar a posição certa? Há muitas coisas aqui que você pode configurar. E também há colocações. Colocações, que você também pode tomar os posicionamentos já feitos basicamente, e apenas brincar com isso um pouco. É até que você basicamente obtenha o resultado desejado. Mais uma vez, isso já deve ser feito. Eu acredito que é isso. Também adicionamos isso em proxy de declínio, então tudo deve funcionar. Sim, tudo deve funcionar bem. Então vamos ver se isso funciona ou não. E ver o que podemos ver quando geramos um novo mundo. Isso definitivamente deve gerar algumas das árvores dentro de biomas de aviões, como eu disse. Agora vamos ver se isso funciona. Então nós realmente temos que criar um novo mais uma vez feito de. E vamos ver. Se isso realmente funcionar. Seria meio legal. Porque a geração de nota não há erros. Até agora. Então isso é muito bom. E lá vamos nós. Estamos em aviões, e isso agora está cheio dessas árvores. Agora, mais uma vez, é importante mencionar que, é claro, os aviões que realmente não teríamos, em primeiro lugar, que muitas árvores e em segundo lugar, não realmente quaisquer árvores, se formos absolutamente honestos. Então isto é, é claro, isto é tudo aviões. Esta é, naturalmente, uma maneira louca, muitas árvores ou aviões. Como eu disse, a coisa sobre isso é que é melhor apenas brincar um pouco com o posicionamento e ver o que você pode ver sobre isso é como você pode gerar algumas árvores do seu tipo. E sim, esta é a árvore personalizada, a muda personalizada e também como
virar e, em seguida , na verdade, também gerar aqueles e gerar aqueles dentro do mundo. Sim, então isso é muito bom. Se houver alguma pergunta como sempre, sinta-se à vontade para perguntar. E sim.
68. (Minecraft) criando uma Mob personalizada: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos criar nossa própria multidão, ou também conhecida como uma entidade dentro do jogo. E a primeira coisa que vamos precisar para isso é que vamos criar um outro pacote. Isto vai ser chamado de entidade. E dentro do pacote vamos preparar já para dois outros pacotes que precisamos e que vai ser o modelo. E, em seguida, dentro do pacote de entidade, novamente, renderizar a UTIN, não empurrado para cima, mas renderizar um ego. Tudo bem? E a primeira coisa que vamos fazer, no entanto, é ir para o registro e declarar outro registro diferido. E isso vai ser é público estático final diferir registro do tipo, este tipo de entidade. E depois um ponto de interrogação novamente. E vamos ligar para essas entidades. Você também pode chamar isso de mobs se isso é algo que você preferir, mas importa muito pouco como ele é chamado de registros forjados e depois entidades. Porque em espécie de código de jogos, eles são chamados entidades e não mobs, mas geralmente as pessoas que jogam Minecraft, mas realmente não olhar para o código. Eles os conhecem como mafiosos. Esses seriam esfregões passivos e ativos. Em seguida, é claro, também adicionar o
registro DOT entidades com o barramento de eventos aqui no método init. E então o registro está completo. Certo, então precisamos criar nossa entidade. E isso vai estar dentro de nosso pacote de entidade ou uma nova classe Java, e vamos criar uma entidade búfalo. Então, o esquema de nomeação é o nome da entidade e, em seguida, acabou com entidade. E isso estende a classe de entidade animal. Vamos implementar os métodos. Só precisamos de implementar um método. Aparentemente. Esse não é o caso agora. Eu, claro, e também o construtor. E isso vai ser que vai ficar como está. E esta é uma entidade elegível. Vamos ver isso em breve. Mas a principal coisa com uma entidade é o método de metas de registro. E esse é o que é basicamente o cérebro da entidade, certo? Então, dentro daqui, estamos definindo metas para a entidade realmente fazer alguma coisa, certo? Então isso tem muitos objetivos. Nós só vamos criar alguns agora. Então, o interior dele é que você vai escrever este ponto objetivo,
seletor, ponto adicionar gol,
e, em seguida, uma prioridade e inteiro. Portanto, isto é apenas uma prioridade. Quando você compara dois objetivos, o que seria, o que seria feito primeiro e menor estaria em uma prioridade mais alta. Então, digamos, por exemplo, um gol de natação e depois isso, e este é o primeiro gol agora. Simplesmente nadaria. Agora você pode realmente entrar na sua direita quando você mantém o controle pressionado e, em seguida, clique com o botão esquerdo do mouse. Então você pode realmente olhar o que está, o que está acontecendo e o que eu realmente aconselho. Então eu vou construir um, apenas um exemplo, búfalo aqui. A entidade com alguns objetivos. No entanto, se você quiser realmente entrar lá, você pode ir para a própria classe de gol e, em seguida, pressionar Control H e olhar para todos os diferentes objetivos que eles são. Como você pode ver, apenas com os eventos, há muitos objetivos aqui que você pode usar. E isso é mais uma vez, uma
espécie de coisa em que você só tem que brincar com alguns desses objetivos. E se você talvez dizer, bem, eu meio que quero algo assim e deve ser assim. Então você pode passar por isso e olhar para o que temos. Evite metas da entidade. Então, por exemplo, isso é algo que acontece à direita, o oscilado, por exemplo, ele foge quando você chega a ele. E há tantas coisas que estão aqui que já são metas definidas que
é, na verdade, impressionante, como se fossem muitos objetivos. E isso é definitivamente, se você quiser construir um tipo de entidade mais complicado e mais complexo, os objetivos são incríveis e, claro, você também pode adicionar seus próprios objetivos mais tarde. Se isso é algo que você queria fazer, certo, vamos fazer um objetivo de raça disso. E então a velocidade é um, d um, este é o modificador de velocidade. Neste caso. Nós também vamos criar uma meta de modelo. Este é o objetivo. Isso é algo que você adiciona. Por exemplo, quando você tem um porco, eu acredito que você pode tentá-los com cenouras, eu acredito. Sim, acredito que sim. E galinhas com sementes, essa é a tentativa de golo. Então eles, mais uma vez, você especifica a criatura. Em seguida, você especifica a velocidade em que ele se move. Vamos tomar mais velocidade. E, em seguida, dentro daqui nós vamos ter um ingrediente e vai ser ingrediente de itens,
mais itens de modo item, mais itens, por favor. Lá vai você. Itens de modificação. Tenho três ativos cobrindo isso. Vamos pegar a cobertura e o que L dot ganha. E então aqui temos falso. Então a força está assustada com os movimentos dos jogadores. Isso seria, uma vez que começou a ser algo onde o, onde se você não tem o item TMD, então eles estão com medo de seu movimento. Neste caso, não queremos que o búfalo fique assustado. Vamos também dar o búfalo um
gol add com prioridade livre sabia seguir objetivo pai, seguir objetivo pai. Isto. E depois vamos ter um pouco mais de velocidade. Então isso é basicamente modificador de velocidade para a velocidade original do animal. Então ele vai se mover 10% mais rápido. E então nós vamos adicionar um outro que vai ser
entregue água evitado andar objetivo? Sim. Caminhada aleatória também, quando está balançando aleatoriamente ao redor, então ele tenta não entrar na água. E essas são, digamos algumas das coisas que podemos acrescentar. Nós também podemos adicionar. Vamos com o olhar para o gol. Olhe para golo ou saque bem, quero dizer, isso seria um objetivo interessante, definitivamente. E dentro daqui podemos, então, por exemplo, dizer, hey, olhar para a classe de ponto de entidade jogador. Então podemos especificar o que ele está olhando. E esta é, na verdade, a distância máxima é um flutuador. Digamos, por exemplo, oito F. Então ele vai olhar para nós mesmo que seja oito quarteirões de distância. E, em seguida, dentro daqui nós também podemos adicionar um olhar aleatoriamente objetivo. E isso só leva a si mesmo. Lá vamos nós, certo? Mas por que este oito? Quem sabe? Vai ser seis. Ok, então estas são algumas das coisas que a entidade faz agora. Estes são alguns dos objetivos, como eu disse, melhor coisa se você quiser olhar para os objetivos é passar por aqui e realmente olhar para alguns deles. Experimente alguns deles se, se eles são ou não o que você quer. E também, o que eu também posso dizer é que você também pode ir para a entidade animal e pressionar Control H aqui e realmente ver as outras entidades. Então o B, o porco B, o Raposa, e o que você quiser. Então, digamos, por exemplo, a galinha, você pode realmente ver o que a galinha tem como objetivo, certo? Tem quase a mesma coisa que temos agora. Acabamos de adicionar o objetivo do pânico. Porque eu argumentaria agora que talvez o, talvez o búfalo fosse não entrar em pânico quando você atacá-los. E é assim que você pode realmente muito bem construir uma nova entidade. Por isso, só posso aconselhar a fazer isso. Vamos também adicionar os sons que esta entidade tem. Então o primeiro é obter som ambiente. E nós vamos apenas retornar o som para a vaca porque este,
neste caso, os eventos sonoros ponto entidade, ambiente. Porque esta entidade é realmente muito semelhante a uma vaca. Eu vou representar, eu vou mostrar a vocês minha entidade em
breve no banco do bloco e vocês vão ficar espantados com
a criatividade inacreditável que eu inventei. Mas eu acho que na verdade, não
é tão ruim assim. Na verdade, não é assim tão mau. Mas sim, então vamos ter um som ambiente. Nós vamos colocar o som da morte dentro, ficar ferido som também é algo que nós vamos colocar dentro Estes serão os eventos sonoros que a vaca machucou. E então eu acredito que mais um sim, o som do passo e que vai ser perto. Isso é colocado som passo. Nós realmente vamos dizer este ponto, este ponto tocar som. Quero o som normal. Sim, este, vou dizer eventos sonoros, passo de vaca. E então vamos dizer que o volume é um pouco maior, talvez. Então você pode imaginar que, você sabe, um búfalo é um animal considerável, bastante considerável. Então talvez os passos sejam um pouco mais altos, algo assim. E então uma outra coisa importante vai ser um modificador de atributo estático público, mapa, atributo mutável ponto-ponto. Isso vai ser causa definir um atributo personalizado. Eu diria que é definir atributos personalizados, eu diria que faz mais sentido. Acredito que seja esse o caso, mas sim. Escreva-o aqui dentro, podemos realmente colocar em algum retorno, alguns atributos que esta entidade tem uma entidade mop dot funk. Sim. E então vamos dizer criar um atributo mutável. E, em seguida, dentro do anúncio tributos ponto, e então podemos ver realmente que tipo de coisas nós temos. Então, máxima saúde, podemos definir, por exemplo, algo como 20 d. E então, oops, como aquele e depois outro, por exemplo, a velocidade de movimento seria uma boa idéia. Atributos, atributos, atributos, velocidade de movimento dos pontos. Lá vamos nós. E isso vai ser, digamos, ponto zero 3D 35, certo? Algo assim. Podemos realmente ter isso. Isso é um não, eu acho que não. Acho que está tudo bem. Está bem. E então sim, e aqui, como eu disse quando entramos em peso, este aqui, belos atributos. Não, isso não está certo no atributo, desculpe, este, é claro, e que podemos realmente ver os diferentes atributos que estão presentes no jogo em si. Então velocidade de vôo, ataque, dano, e todo tipo de coisas que você pode definir para esta entidade. E sim, eu acredito que é basicamente isso. Agora nós realmente precisamos especificar isso em uma classe de entidades MOD. Então nós vamos ter um monte de tipos de entidade. Então, isso é mais uma vez muito parecido com o nosso, com as aulas que fizemos antes. O mod, blocos mod e tudo isso, vamos dizer um objeto de registro
final estático público do tipo, tipo de entidade. E então no final que nenhum tipo, um tipo de entidade vai ser uma entidade búfalo que vai ser o búfalo. S é igual a registro. As entidades do Dod registram com o nome Buffalo. E então um fornecedor de construtor de tipo de entidade. Na verdade, vamos criar um novo búfalo. Vamos usar o é uma expressão lambda aqui, entidade, criatura de classificação. E então nós podemos realmente definir algumas outras coisas também. Então podemos definir o tamanho. Então este vai ser o tamanho da caixa de correio. Vamos torná-lo um pouco maior. E isso vai ser um agitado e construir mais algumas coisas do que podemos fazer. Então alguns deles são infelizmente um não mapeado aqui. Mas há outras coisas que podemos fazer. Por exemplo, há um imune ao fogo. Podemos definir isto para ser imune ao fogo. Então isso é, por exemplo, algo que uma vara de chamas seria, certo? É imune ao fogo. Recurso de um novo recurso. Não, isso não está certo. Um local de recurso, na verdade. E isso vai ser Mc Courts Mod, Mod ID mais o Buffalo. Então,
isso só mais uma vez diz: “Onde está o recurso para isso? E isso vai ser duas cordas, na verdade. Ler isso já é tudo. Temos também de acrescentar, evidentemente, nosso vazio estático público, um registo. Método e que precisa ser chamado dentro do nosso método aqui, entidades
Mott, tipos de entidade, três se três pontos e esses pontos demais. E isso está registrado, certo? Então isso mais uma vez simplesmente registra o búfalo e então nós podemos realmente colocar este aqui. Então esta é a idade misturada t. Isto é o que é criado quando 22 búfalos acasalam ou uma raça. E isso, podemos simplesmente recuperar um desses. Então este mundo de pontos, então isso simplesmente retorna um novo búfalo e cria um novo búfalo. O que faria sentido. E sim, seria isso. E então nós também agora precisamos nos preocupar com como a entidade se parece e bem,
sim, como ela se parece e qual é a sua textura? Agora? Primeiro de tudo, quando você vai para o banco de blocos, então eu tenho preparado algo, mas quando você vai para bloquear, quando ela pode realmente entrar aqui e ter essa entidade modelada, um, você pode criar uma nova entidade. Nosso conselho para primeiro testar isso, tentar novamente
e, em seguida, olhar para a textura mais tarde, porque isso é exatamente a mesma coisa. Mas o mais importante, você definitivamente deve definir os grupos como algo que faz sentido. Então os grupos devem ser cabeça, e então há corpo, perna,
frente, perna direita, perna esquerda para trás, direita e perna esquerda saco. Porque é nisso que o modelo de entidade é baseado. Vou mostrar-te o que inventei para o Buffalo. Agora você provavelmente vai rir, mas ao mesmo tempo, estou muito feliz com isso. Na verdade. Na verdade, eu meio que gosto. Então não é isso, não é loucura. Mas adicionei estes pequenos chifres e fiz o corpo também. Quando um pouco maior, QPR e, em seguida, uma outra extremidade, o seu detector final. Eu peguei a fase da vaca e modifiquei um pouco e depois dei uma textura. Não é tão ruim em amino diria que antes que eu vou lançar isso para um jogo, Eu provavelmente mudá-lo um pouco, mas eu realmente não acho que é tão ruim. Uma coisa que é muito importante na verdade são os pontos de pivô dos contêineres aqui, os grupos. Então eles devem estar onde você quer que isso gire ao redor. Assim, o ponto de pivô está sempre localizado em que ponto o, o grupo gira em torno. Então, se eu girar esta cabeça agora, girar basicamente de onde eles tinham lê o corpo. E é claro que isso é exatamente o que você quer que aconteça. É por isso que você tem que realmente especificar isso em, digamos, o ponto correto. mesmo com a perna da frente. Mais uma vez, o grupo é a coisa mais importante. E este, se eu fosse girar, ele também o traria aqui. Então, vai parecer um pouco pior assim. Em seguida, a coisa sobre como exportá-lo, você realmente exportou apenas indo exportar e exportar entidade Java. Então qual é a exportação em algum lugar? E então vamos ver como isso realmente parece. Se exportarmos isto. Isto seria dentro daqui e depois a exportação de búfalos. Então este é um Buffalo Export dot Java. E o que você basicamente quer é tudo dentro daqui. Queremos copiar isto. E nós vamos criar uma nova classe para isso embora. Então vamos criar a classe média de búfalos. E vamos criar isso em vez da entidade e, em seguida, modelar. Vai ser o novo modelo de búfalo da classe. Então vamos e isso vai ser com um T que estende entidade ou entidade búfalo. E então isso estende o modelo de entidade com um t. Lá vamos nós. E vamos levar tudo dentro daqui, copiar isto e colá-lo aqui. E precisamos importar algumas coisas. Entidade de microondas, você importa a renderização do shopping, o renderizador, a pilha de matriz, o vértice um construtor. E este método pode realmente ser excluído. E vamos comprar um novo. Nós vamos pegar isso de. Na verdade, precisamos deletar isso. Quero dizer, nós definitivamente precisamos deletar isso. Na verdade, acho que vai ser só um T, certo? Não é o suficiente. Sim, tem o suficiente. Está bem. Nós temos que mudar isso de um modelo, o que era uma entidade modelo, entidade para t. E então dentro daqui, podemos realmente fazer um truque muito bom. Podemos ir para o modelo de entidade e, em seguida, podemos realmente olhar
para, por exemplo, o modelo elegível. A, esta é uma citação, modelo quadrupedes. E dentro daqui nós realmente temos os ângulos de rotação definidos e nós podemos apenas copiar este. Pegamos o livro e depois podemos dizer: “ Aí está, esse não é o certo. Este direito pode dizer que você vai. E isso seria então cabeça e meio que tinha modelo. Isto seria tido. E depois vamos. E dentro daqui, qual é o problema aqui? Queremos construtores para isso. E isso não é realmente o caso outros, porque o construtor não foi nomeado corretamente. E vou nomear isto para o modelo Buffalo do que realmente funciona, certo? Então agora isso é importante para o jogo. Mas primeiro nós também, é claro, precisa escrever um renderizador para isso. Agora o renderizador não é realmente tão complicado. O renderizador basicamente define onde as texturas. Então vamos dizer que esta é uma nova classe, renderizador de búfalo, e que está dentro do pacote de renderização de ponto de entidade. Isso estende o renderizador mop do tipo entidade búfalo e, em seguida, búfalo, modelo búfalo. E então eu digitei entidade búfalo porque nós não, nós não especificamos que é um búfalo o suficiente ainda. Sim, e dentro daqui nós simplesmente temos o local do recurso para a textura da entidade. E também precisamos adicionar um construtor com o super. E aqui vamos apenas retornar um novo local de recursos com o modelo do EMC Corps Ahmad ID, oop, não meu ID. E, em seguida, o caminho vai ser dentro de texturas barra, barra de
entidade, búfalo, P e G. Vamos certificar-se de fechar isso. Lá vai você, certo? Então isso é simplesmente especificado, ok, enquanto isso onde está a textura? E eu acredito que eu tenho a textura aqui, sim, quatro, então nós vamos rapidamente mover isso para que isso seja feito. Isso vai estar em um diretório chamado entidade. E então vamos copiar sobre a textura. Sim, por favor. E há mais algumas coisas que precisamos fazer, mas estamos quase terminando. E então vamos ver se a mesma coisa aconteceu ou não, acontece quando eu uso isso como aconteceu. Para mim, isto é uma coisa importante. Então houve um pequeno, digamos, que não era uma flecha, mas foi uma espécie de erro que aconteceu. E não tenho 100% de certeza do porquê, mas vamos resolver isso. Nós realmente precisa adicionar dentro de nosso proxy cliente um registro de renderização, ponto registro entidade prestação auxiliar. E então queremos adicionar o tipo de entidade mod, Buffalo dot get, e então o búfalo retro. Então isso só garante que nós realmente,
o jogo realmente sabe sobre os tipos de entidade modo de renderização de búfalo, ponto de búfalo obter. Turner sabia, eu perdi alguma coisa aqui? Há outra coisa que temos de acrescentar, mas eu ficaria realmente espantado que seja isso. Então, nós realmente queremos adicionar uma fila de trabalho adiada executado mais tarde aqui. E isso vai ser algo que vai ser uma saída de atributos de tipo de entidade
global. E em vez de aqui, nós realmente especificamos os atributos que
queremos que este búfalo tenha ponto get. E isso vai ser entidade búfalo, ponto definir atributos personalizados, ponto criar. E aí vamos nós. Lá vamos nós. Tudo bem, eu realmente descobri qual é o problema. Não houve um grande negócio, na verdade. Foi simplesmente o construtor aqui estava um pouco errado. Na verdade, podemos nos livrar disso. E podemos apenas dizer, bem, sabemos qual é o modelo. Este vai ser um novo modelo de búfalo. E o tamanho da sombra que podemos simplesmente definir digitando o flutuador aqui e então não haverá mais erro aqui. Foi só uma coisinha. Mas mais uma vez, vou deixar pelo menos
a coisa curta porque mais uma vez, no final do dia, essas coisas acontecem e às vezes os erros, quero dizer, eu posso te dizer um pouco anedótico dizer, quando eu fiz pela primeira vez Isso, na
verdade foi insano. Esqueceu-se do gelo. Então isso foi, como você deve ter visto, esta foi retornada taxa nula, retornando um nulo. E eu esqueci de colocar no local de recursos aqui. Mas o problema era que eu tinha uma seta não especificada. Bem, isso é que foi terrível porque então. Você realmente tem que passar por tudo até que eu descobri que bem, que era, havia algum. Então é por isso que eu às vezes acho que algumas flechas realmente devem ser guardadas. Porque mais uma vez, conhecido como infalível e número dois, pode realmente ajudar com algumas das coisas que você vai fazer e com as flechas que você encontrar. Mas, mais uma vez, se houver erros ou perguntas ou erros ao longo do caminho, você sempre pode se sentir livre para perguntar e eu responderei o mais rápido possível. Vamos ver se podemos ou não ver o búfalo no jogo. Porque como eu já mencionei, o modelo tinha uma coisa estranha com ele depois de exportá-lo, depois exportado do banco de blocos. Então vamos ver se esse
é ou não também o caso ou se ele realmente funciona imediatamente. Então vamos antes de tudo fazer a data definida. E então vamos ver se podemos realmente resumir sobre isso. Então alguém M marca Buffalo, assim como Swan. E como você pode ver, por qualquer razão, isso definitivamente não é o que tínhamos em mente, certo? E então isso é definitivamente, digamos, um pouco estranho para dizer o mínimo. Então, é no jogo, podemos acertá-lo. Então isso é muito bom, certo? Mas bem, o corpo definitivamente não deveria estar. O que você fez? Diga-me o que você fez. Ok. Então, na verdade, vou olhar para isto. Então isso é, naturalmente, um problema com a garrafa, com o tipo de modelo do corpo. Então, as texturas aqui, as caixas que são contratadas definitivamente não estão no lugar certo. Agora, eu realmente consertei isso aqui, então nós podemos simplesmente acabar com isso rapidamente. Então eu vou copiar isso e nós vamos olhar para isso. Então, número um, estes estão loucamente errados, certo? Então o, então o, como você pode ver isso, estas são as posições versus a posição y e a posição Z do corpo da caixa. Definitivamente não estão onde deveriam estar. E também, eu também rodou em torno de porque ele foi girado 90 graus e este é um, em seguida, girar em torno de 90 graus. Então, na verdade, vamos olhar para este agora mesmo. Assim, o fixo e também a altura e a profundidade foram alteradas. Eu não tenho certeza pelo modelo do bloco fez isso. No entanto, a coisa boa sobre isso é que os parâmetros aqui não são realmente tão difíceis de entender. Esta é apenas a coordenada x, y e z da caixa específica. E então você tem a largura, a altura e a profundidade da caixa adicionados. Então, em teoria, mesmo que haja uma pequena flecha ou um pouco de estranheza acontecendo com isso, você sempre pode corrigi-lo e você também pode sempre ir para o banco do bloco e ver, por exemplo, quando você pega o Bollinger de vez em quando, por exemplo, Vamos girá-lo assim, como estava no fim do jogo. E você gira assim e exporta. Você pode realmente ver o que essa rotação faria. Então eu faria mais uma vez, se há algo estranho, que pode ser uma das coisas que acontecem lá. E vamos executar isso realmente e ver se isso realmente corrigiu ou não. Porque como eu disse, é meio estranho. Então, do banco do bloco para isso, há alguma estranheza que eu sinto ao exportar. Mas como eu disse, você pode consertar. Na verdade, deve ser bastante fácil de consertar. E então vamos realmente ver se
o modelo foi ou não corrigido ou se ele ainda parece estranho. Eles vão, ok, o modelo foi consertado. Como eu disse, às vezes é um pouco estranho. Então também há uma pequena falha de textura lá em baixo. Então, como você pode ver nos convites, digamos que não está realmente pegando a textura. Posso mostrar-lhe a textura rapidamente. A textura está aqui. E o búfalo. E o que fiz foi cercar esta largura. A largura apenas como um rosa brilhante ou magenta, em algum lugar entre rosa, imagem vermelha suave. E um posto está lá apenas para significar. Certo, onde estão as texturas? Porque dentro do banco do bloco, vou voltar mais uma vez. Você pode, claro, especificado este ano. E cada bloco em que você clica, você pode realmente especificar OK, onde está essa textura? E então esses setores simplesmente têm que ser feitos, especialmente para isso. Mas não é tão difícil ou complicado, eu diria. Porque se o, se a cabeça, por exemplo, isso é 666. Então basicamente você tem seis lados e cada um deles tem seis pixels em cada lado. Então você pode realmente calcular, ok, qual é o, qual é o tamanho da textura que eu preciso? Mas a melhor coisa aqui é quando você realmente quer texto ou algo é muito pouco, fazer taxa de tentativa e erro porque você pode, como você pode ver, você pode simplesmente mover esta rodada e, em seguida, a textura muda. É um pouco estranho fazer isso, mas realmente funciona. Então, meu conselho, mais uma vez, é só experimentar algumas coisas. Só tentei até o que você quer fazer funcionar. E então você também pode cortar a textura em tamanho, certo? Então isso, é claro, poderia ser um pouco mais eficiente em termos de espaço. Mas eu acredito que isso vai ficar bem. Certo? Então, tudo em tudo. E é isso. Como eu disse, a adição de mobs ou entidades é definitivamente um pouco mais complicada e complexa do que algumas das outras coisas. Porque nós realmente fazemos, nós realmente escrevemos um renderizador personalizado. Agora, é claro, isso realmente não é, não
há realmente um cliente e real, vamos ser honestos. Ele só facilita colocar onde as texturas. Mas sim, essas são as entidades de modo. Mais uma vez, se houver alguma dúvida ou se você tiver alguma flecha, sinta-se livre para perguntar. E eu vou ter certeza de responder. E sim.
69. (Minecraft) tornando nosso Mob personalizado Spawn no mundo: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos realmente ter nossas entidades geradas. Então o búfalo vai gerar ambos dentro do mundo. E nós também vamos criar um item para o,
então o ovo de desova para o búfalo. Então a primeira coisa que vamos fazer é criar o ovo. E esse ovo vai simplesmente entrar nos itens aqui. Então, em vez de nosso pacote de itens, vamos criar o item mod spawn egg. Agora isso é realmente uma grande coisa, porque isso vai ser todos eles de uma vez. Então, se temos vários, isso pode realmente servir como vários, ovos
diferentes para múltiplos, dizemos várias entidades. Então, na verdade, só temos que criar esses. E então podemos reutilizar essa classe para diferentes entidades. E a maneira como vamos usar isso é fazendo um protegido,
protegido realmente fez lista estática e final deste item de geração de modelo. Vamos chamar esses ovos MOD. Isso vai ser um novo ArrayList. Exatamente assim. E então nós também precisamos importar classe lista, e é isso. Agora dentro deste aqui vai ser um pouco diferente. Então nós vamos realmente fazer isso diferente. O que vamos fazer é ter um objeto de registro final. E vamos colocar aqui com uma classe que estende o tipo de entidade. Ponto de interrogação. Este vai ser o fornecedor das entidades. E então a cor primária vai ficar na bobina secundária e as propriedades vão permanecer dentro. Nós vamos chamar isso com um nulo e não dispostos a corrigir isso, essa entidade
. Tab, tipos de entidade de jogador i, nós realmente precisamos colocar isso em. Claro, haverá um privado,
privado final preguiçoso de um tipo de ponto de interrogação e, em seguida, estende o tipo de entidade. Vamos observar que vai ser chamado de fornecedor tipo de entidade. E também precisamos conseguir uma Entidade preguiçosa. E, em seguida, este fornecedor tipo de entidade ponto vai ser igual ao fornecedor de entidade. E nós vamos, oh, claro que vai ser preguiçoso fora do fornecedor da entidade. Lá vamos nós. E ainda assim, acredito que essa é a melhor coisa a fazer. E então o ponto de ovos mod adiciona isso. Isso simplesmente adiciona o, a classe que acabou de ser criada com o construtor em nossa lista estática que temos aqui. E então precisamos de um método estático. Vamos usar a lista de ovos para inicializar o x basicamente. E o que vai acontecer aqui é que vamos realmente pegar um mapa, mapa final, tipo de
entidade e item de geração. Então é um pouco, é um, é apenas o mapa. Isso vai ser feito com o ajudante de reflexão ofuscação, obter valor privado. Então isso basicamente nos permite obter um valor privado de uma classe. Não vai ter instância nula que o nome do campo vai ser x. vamos importar mapa rapidamente e então eu vou falar rapidamente sobre isso. Então, dentro do item de ovo de geração, nós, Como podemos ver, há um mapa final estático privado, exatamente o que nós especificamos, que é chamado x. Agora isso é, naturalmente, privado. É por isso que não conseguimos sair. Mas com a associação ofuscação, reflexão, ajudante pode realmente obter essa variável privada e, neste caso, o valor deste. E então podemos usá-lo para adicionar coisas de volta lá. E então ele só vai adicionar isso para nós automaticamente. Então, a primeira coisa que vamos fazer aqui em baixo,
na verdade, vamos digitar o tipo de entidade pública, interrogação, ele fica tipo, modo que é feito fora do caminho. Isso requer um composto NVT e BT, e ele vai simplesmente retornar este paradoxo de entidades ponto. No entanto, isto é, a propósito, uma sobreposição também. Então, isso está feito. Então só precisamos adicionar algo aos ovos gerados pela entrada, certo? E agora vamos especificar o comportamento que vai acontecer para o dispensador. Então, vamos criar um padrão no comportamento do item spins. Em breve, chame esse comportamento de item de dispensa. Então, seja um novo item de despesa, dispense o comportamento do item, padrão, certo? E em vez de aqui temos que substituir um novo método e que vai ser a pilha de dispensa. Sim, exatamente este. E o que queremos fazer é devolver a pilha. No entanto, há poucas coisas que precisam acontecer primeiro, a primeira coisa que fazemos é que queremos obter a direção. Bem, essa não é a direção certa e a direção de leitura é a direção. E isso vai ser originado ponto-ponto-ponto getter,
bloco, ponto de estado, get. Não, não pegue essa direção,
mas coloque o bloco do dispensador virado para o ponto. Então, aqui é apenas nós queremos saber em que direção o dispensador está enfrentando. Em seguida, queremos especificar o tipo de entidade. Então nós apenas obter o tipo de entidade que está dentro do item de ovo de geração. Então este ponto de pilha obter item, o, item, eles iriam ponto obter tipo, ponto de
pilha, obter, bruxa. Lá vamos nós. E isso, isso, isso então simplesmente me dá o tipo de entidade que queremos gerar e, em seguida, queremos gerar
essa entidade desse tipo gerar visão do mundo que precisamos especificar a especificação, bem a desova, nenhum jogador. A posição em que esta é a razão de geração que é dispensador, é claro. E então vamos dizer que a direção é desigual para direcionar calar a boca e não para baixo, mas para cima. E o último é falso. Então isso simplesmente garante que isso não desova para cima quando o, quando o Spitzer está apontado para cima. Stack dot encolhe por um, certo? Então o ovo é realmente consumido, digamos. E queremos, uma vez que isso seja feito, você realmente quer adicionar isso aqui. Então este vai ser o item de geração, ovo de
geração em todos, todos os tipos de entidade. Mas queríamos modificar o item de desova, os ovos mod. E para cada um deles queremos adicionar o, então x-dot. Coloque. Este vai ser o daguerreótipo de ovo de desova com não e BT e a desova. E também queremos o dispensador bloqueado ao registrar o comportamento. E lá nós dissemos que geram EG e o comportamento de dispensa que nós especificamos aqui em cima. E então, no final, quando nós fizemos tudo isso e inicializamos tudo, então nós só queremos limpar o mod x. Então, basicamente, isso precisa ser chamado, vamos nos livrar de algumas coisas aqui. Isso precisa ser resfriado no proxy do cliente da placa. Na verdade, já podemos colocar isso aqui. Então este é simplesmente mod item de desova nele, esporo próximo. Então, isso agora é chamado no proxy do cliente. E nós, no entanto, precisamos ler um novo item primeiro. Então esta vai ser a verdadeira desova, por exemplo. E como eu disse, quando temos um, outro exemplo, se você quiser criar outra entidade em vez de um búfalo, eu não conheço uma hiena, por exemplo, ou algo assim. Então você pode simplesmente adicionar quase a mesma coisa que vamos adicionar aqui agora. E vai funcionar imediatamente. Então este vai ser o objeto de registro do tipo model spawn egg. Eu peguei algum tipo de item. Vai ser um item monotônico. Este é o ovo de desossagem de búfalo. Oh, não, não é uma edição. O ovo. E isso vai estar nos itens de registro. Então vai ser uma ilha normal, digamos que a cria de búfalos, por exemplo. E isso vai ser um novo modo,
um ato de tipo,
modo, tipos de entidade, Buffalo. E então nós especificamos as cores e nós temos que realmente especificar essas cores em código hexadecimal. Então vamos fazer um 0 x e, em seguida, o código hexadecimal, eu só vou pegar algumas cores que podem não ser a melhor coisa que você pode. Se você pode realmente brincar com ele um pouco e tentar algumas cores diferentes. E estes são apenas o código hexadecimal para a cor por trás do Xerox. E, em seguida, as propriedades do item são simplesmente vai ser mais uma vez, o grupo, que é claro é mc núcleos metadados guia curso. E isso concluiria o ovo. No entanto, antes de
entrarmos no jogo, vamos rapidamente fazer a desova dentro do mundo. Dentro da nossa pasta gen ou de um pacote, vamos criar uma entidade simulada geradora plus. Isto, mais uma vez vai ser um assinante MOD DOD evento bus com MOD ID MC curso que já. Lá vamos nós. E isso é tudo o que precisaremos. E então nós vamos ter um vazio take na carga de bioma por OMA nob em carga de bioma eles oh, este é um evento de carregamento de bioma. Evento. E este é um evento de assinatura. E eu vou rapidamente copiar isso porque isso é basicamente vai ser exatamente o mesmo. Como eu sou importante que eles vão, vai acontecer quase exatamente o mesmo que aconteceu com a árvore, eu acredito, sim. Mas isso é quase o mesmo que aconteceu com a árvore vai acontecer aqui. Apenas em vez de uma lista de recursos configurados, nós vamos ter uma lista de mob info dot spawners. Então vamos pegar os geradores com a criatura classificadora de entidades. Este é o classificador que colocamos o tubo de búfalo. E então vamos criar um novo gerador aqui. Podemos entrar aqui e ver o que há lá dentro. Então vamos apenas especificar o tipo, o peso, o mínimo e a contagem máxima. O peso aqui significa a frequência com que isto vai ser gerado. E eu acredito que o que era era uma ovelha e coisas assim são dez. Eu só coloquei para 30 para termos certeza,
ok, na verdade, em algum lugar que eles desovem. Isto é mais uma vez algo que você precisa para brincar com um pouco com os números. E também ano muito importante, eu realmente especifiquei que eles não surgem no bioma oceânico, caso contrário eles provavelmente se afogariam muito rapidamente. E então a contagem mínima simplesmente ok, qual é o tamanho do rebanho, digamos, neste caso, e sim, vamos ver se isso realmente funciona. E o item de desova, maioria de um item de ovo também funciona, mas ambos devem funcionar. A coisa boa aqui é que você também pode especificar, é
claro, digamos talvez um, o búfalo apenas para desovar em aviões. Já podemos fazer isso especificando aqui que os tipos contêm apenas o tipo de planos orbitais. Sim, exatamente. Então isso é algo que é muito fácil de fazer na verdade. Vamos ver. Então vamos criar um novo mundo e vamos ver se ambos podemos ver os já gerados. E então também o item que preparamos, o ovo. Isso não seria legal? Bem, seria muito bom. Sim. Vamos ver. Oh, nós desovamos em uma selva. Isso é fascinante. Temos o ovo sem textura. Bem, isso definitivamente não é o que você quer ver. No entanto, não podemos criar o búfalo que, isso é bom. Então vamos voar pelo lado de fora da selva. Eu não tenho certeza. Podemos até vê-los se estiverem na selva. Vamos lá ver se conseguimos ver alguns deles. Eu acredito que eles são, eles são deixados ir. Alguns deles são gerados dentro do mundo. Mas não se preocupe, eles não andam daqui até lá mais rápido do que eu posso voar. Como se fosse, seria uma loucura. Eles estão gerando um assassino ou em algum lugar onde você vai até mesmo tartaruga, vamos e exercícios. Tudo bem. Mas eles desovam no mundo. Agora o ovo realmente não tem um, não tem uma textura adequada porque é claro que não adicionamos o modelo para ele ainda. Então, como pode ter uma textura? Se não tiver um modelo? Essa é uma boa ideia para uma pergunta, na verdade. Então vamos adicionar o modelo para isso. Eu só vou copiar isso e olhar de novo. Bem, não é assim tão complicado. Mas, mais uma vez, às vezes, a linha é suficiente para que ela não funcione corretamente. Acredito que quando o item for adicionado, vai funcionar. Nós realmente não precisamos fornecer uma textura porque nós, naturalmente, fornecemos a textura, por assim dizer, com esta. Então este é o ovo de geração de modelo simplesmente tem que NO2 dois números que ele associa com cores e, em seguida, ele vai irradiar isso por conta própria. E lá vamos nós. Agora ele realmente tem essas duas cores nele. Claro, você provavelmente escolheria algumas outras cores. Mas, mais uma vez, as cores que você pode brincar com eles se você quiser ou precisa. E então você pode adicionar sua própria hélice personalizada. Então estamos, mas eu gosto, na verdade. Quando eles correm por aí. Sim, isso é muito legal. Sim. E é assim que você adiciona algumas novas entidades. É assim que você faz com que eles sejam gerados em seu mundo e como você pode adicionar os itens de geração. Mais uma vez, a localização é a coisa mais fácil de sempre, simplesmente dentro do arquivo de localização como sempre. No entanto, o que você também deve fazer com a própria entidade é que você definitivamente
deve adicionar a entidade. Então você definitivamente deve adicionar este. Então isto deve ser uma entidade no MC, pior, Buffalo e depois um búfalo, certo? E, claro, o pescoço pequeno. Vai ser bastante trivial acrescentar isso, certo? É assim que você cria os mobs e como você pode criar um esperma e óvulo. Eu acredito que é isso. Se houver alguma dúvida, sinta-se à vontade para perguntar. E se você encontrou algo útil aqui e realmente criou algo, então eu apreciaria muito uma crítica de você. Caso contrário. Foi isso por enquanto. E sim.
70. (Minecraft) criando um bioma personalizado: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos falar sobre criar nosso próprio bioma personalizado. Então tivemos um aluno que perguntou: Como posso criar meu próprio bioma?” E esta é uma forma de tópicos avançados. Então isso é muito mais complicado do que algumas das outras coisas que fizemos. Mas não se preocupe com isso. Vamos passar por isso uma por 11 peças de cada vez. E então acho que podemos lidar com isso. Primeiro de tudo, dentro do nosso pacote mundial, vamos criar um novo pacote, que vamos chamar de bioma. E logo depois disso, um segundo pacote também em um pacote mundial. E isso vai ser ou característica. Agora começamos com o pacote do bioma. E lá dentro vamos criar uma nova classe Java chamada construtor de superfície de registro. E certificando-se de que o o é pequeno dia ir registrando construtor de superfície. Isso parece bom. Então esta é basicamente uma espécie de classe auxiliar para que quando nosso bioma surgir, nós podemos realmente ver, ok, este é o lugar onde ele gerou. Então isso é basicamente tudo o que isso é. Então vamos, primeiro de tudo, isso vai ser um monte de genéricos lá também. Então isso vai ser C, estende o conflito construtor da superfície do olho. E também como o que se estende um construtor de
superfície, superfície construir histórias construtor de superfície Veja, lá vai você. E depois também voltando. E esta classe estende os pilares de superfície também, certo? Então, em primeiro lugar, vamos ter algumas flechas aqui. Basta implementar os métodos como vemos aqui. Nós realmente estendeu o construtor de superfície plus. Então, é claro que precisamos do, precisamos de um método e que vai ser o método de superfície construído. Isso é basicamente chamado quando o derramamento de superfície real, podemos apenas clique do meio do mouse ou Controle e, em seguida, clique na superfície. E podemos realmente ver isso em vez da superfície. Mas quando descemos, temos essa superfície construída. Este é um método abstrato e abstrato. E isso é, como eu disse, segure quando a coisa real é gerada, digamos. Agora, o que queremos dentro daqui é que na verdade estávamos apenas fazendo essa classe como uma espécie de, não
é uma classe de wrapper mais ampla em uma classe que apenas funciona para que
possamos realmente bloquear algo de uma maneira eficiente e fácil. Então vamos trazer um madeireiro aqui. Este é o log para j logger, will logger, e que vai ser o gerenciador de log. Não é o gerente de registro certo. Gerente de registros, este ponto fica mais longo, eles vão. Então também teremos uma final privada e, em seguida, um preguiçoso do tipo S. Então este é o tipo que é dado aqui, que tem que estender a superfície abaixo. E isso vai ser apenas o construtor de superfície delegado. E então também um booleano privado chamado logado, modo que na verdade só registramos como uns e não toda vez que continuamos a construir coisas. E sim, então vamos fazer um bom, um bom construtor aqui. Então vamos conseguir um fornecedor do tipo S que vai ser o construtor de superfície delegado de borrão de superfície. E também um Kodak final com codec C. E vamos ligar para o super construtor. Então, para a cláusula do construtor de superfície em si, e nós vamos dar-lhe o codec aqui. E, em seguida, este ponto delegado pilar de superfície é igual a desfoque de superfície delegativa. Nós também precisamos importar o codec mais isso é e vir Mo Geng serialização, muito importante. E isso é, claro, porque
este é um ponto preguiçoso e preguiçoso. O que quer que passemos no seu ego. Ou então, este é o construtor ou montado. E só precisamos terminar isso. E isso basicamente sobe ao longo do caminho de Hayward. Pegue o construtor de superfície delegado. Nós só vamos conseguir isso. E então vamos chamar a superfície de construção. E então nós vamos colocar em todos os parâmetros lá. Na verdade, já podemos autocompletar isso. Isso é muito bom. E isso então basicamente simplesmente chama o construtor de superfície normal que será resfriado de qualquer maneira. Mas como eu disse, há muitas partes móveis aqui. Então não se preocupe se há algo que não está claro. Vamos passar por isso. Primeiro de tudo, classe por classe, e depois vamos ver como eles se encaixam. Então nós vamos apenas dizer, hey, se logado não é verdade como quando a superfície é construída, primeiro lugar, vamos defini-lo como verdadeiro. E então nós vamos simplesmente para a pausa fragmentada do caminho do tronco. E este vai ser apenas o pedaço em ponto passar. Então este é apenas o pedaço que está indo atualmente, que está sendo construído atualmente. E depois vamos dizer informações do logger dot. E, em seguida, apenas vai ser como atualmente gerando em. E então eu posso fazer este, sim, exatamente. Entrando neste ato. E, em seguida, duas ordenadas aqui. E vamos dizer ponto do bioma, obter o nome do registro. E depois uma pausa. Vou começar x. É que não existe porque não temos os caminhos de bloco lá e passado ponto get X armazenado. E então caminhos de bloco não obter y estrela, y, Eu recebo z, desculpe, z armazenado porque y é claro o topo, enquanto o eixo que vai de baixo para cima do mundo. E esse é o construtor de serviços de registro. Como eu disse, é uma espécie de classe auxiliar na medida em que é apenas mais fácil que nós podemos realmente verificar o terminal e o console para ser como, OK, este é o lugar onde realmente um bioma nosso gerou. E então a próxima parte, o que realmente
queremos, agora queremos que o construtor de superfície, bem,
temos, nós realmente queremos um licitante de superfície adequado 42 que vamos criar uma nova classe. Mais uma vez, seremos apenas os construtores de superfície Mott. Importante. Isto é plural, certo? Então, vários. E dentro daqui, isso é algo que já vimos muitas vezes antes. Na verdade, vamos criar um novo objeto de registro. E este vai ser o registro final. Leia o histórico. Cheque. O ego do construtor de superfície tipo com um conflito de construtor de superfície. E este vai ser o padrão de registro. Então isso é porque, como eu disse, vamos apenas criar isso como uma espécie de pilar de superfície padrão que vamos
usar para que ele sempre cospe as ordenadas. E eu vou, claro, também precisa fazer, nós também precisamos ir para o nosso registro e realmente adicionar o novo registro padrão aqui. Na verdade, temos que adicionar dois novos registros. Podemos fazer isso imediatamente. Então o primeiro que vamos adicionar é, na verdade, vamos adicionar o Registro do tipo um bioma. Então este é o tipo em que temos, bem, nossos biomas, é claro, certo? Então biomas, e isso vai ser fazer a palavra-chave def Register dot, criar e, em seguida, forjar registros. Já vimos isso muitas, muitas vezes. Então isso, é claro, não
deveria ser mais um enigma. Vamos com este bioma. E, em seguida, também, oops,
e, em seguida, também um registro final estático público adiado do tipo construtor de superfície. E, em seguida, um ponto de interrogação porque queremos realmente especificar a configuração nós mesmos. Agora só vamos usar um específico, mas como eu disse, vamos chegar a isso em nenhum momento adiado ponto do Registro. E isso vai ser quatro registros que construtores de superfície. E mais uma vez com o modelo Ahmad, mal, certo? Então esses já estão aqui. Sempre certifique-se de colocá-los na unidade. Isso é como uma das coisas que podem acontecer que você esquece isso e então,
bem, todos ficam meio perplexos. Bem, por que isso não funciona? Você sabe, certifique-se de colocar o lobo, o método
do construtor de superfície de biomassa Register no índice, no registro interno. E agora podemos realmente já entrar aqui e dizer registro,
pontos, construtor de superfície, construtores de superfície DOT registro. E queremos um nome. Mais uma vez, isso vai ser o padrão de registro, como eu disse, ele vai ser apenas o nosso padrão. E então você precisa de um fornecedor de um novo construtor de superfície. E então vamos fazer o pilar do serviço de registro que acabamos de criar. Sem datilografia aqui. Em vez de aqui, precisamos de um fornecedor também. Isso vai ser. Ponto Spiller padrão e, em seguida, uma superfície abaixo ou conflito. E nós vamos escolher este campo aqui. Deixe-me ver. Este vai ser o rendimento 37 para o o. Isso não existe na verdade. Acho que isso significa que temos um padrão aqui. Eu sei por que, porque esta não é a superfície fotorresiste, conflitos
superficiais, desculpe Diego. E há o campo, é claro. Certo? E, em seguida, também certifique-se dentro do nosso, dos construtores de superfície MOD mais para adicionar nossa confiança o antigo método de registro
estático vazio que podemos então chamar dentro daqui. Vamos fazer isso depois que os fluidos tiverem sido feitos. Este é um registro de construtores de superfície de maud DOT. E então isso também é bom. Certo? E depois que este foi criado, agora
podemos olhar para outra coisa. E isso vai ser outra aula em vez de bioma aqui. E isso vai ser o MOD construtores de superfície maiores. Agora eu, você pode ser como, o que diabos está acontecendo aqui. E não se preocupe com isso. Vamos ultrapassar isto. Então esta é uma chave de registro na verdade, certo? Portanto, esta é uma chave de registro do tipo configurado construtor de superfície com um ponto de interrogação. E isto é, vamos chamar isto de superfície do óleo. Isto vai ficar claro muito em breve. E isso vai ser igual ao Registro e ponto e ou criar chave com chave de construtor de superfície configurada do ponto de registro. E, em seguida, um novo local de recursos com o nosso MC Smart MOD ID e, em seguida, vamos à superfície. Então, e como eu disse, há vários passos e caminhos para percorrer isso. Vamos passar por isso e depois verificar cada um
dos componentes individualmente. Sim. Então, há agora eu acredito, mais
duas coisas que precisamos fazer. Uma coisa está dentro do nosso recurso. Características. Então esta é a garantia que podemos querer adicionar e nós realmente não precisamos disso ainda. Podemos realmente, em primeiro lugar, o microbioma. Então vamos entrar em nossos biomas e criar a classe de biomas modernos. E isso vai ser como uma aula de mestrado onde todos os nossos biomas estão bem. Então nós realmente começar com o objeto de registro final estático. Então este é agora o registro biomas apropriados. Então este é o seu, nós estamos realmente definindo nossos biomas agora. E este vai ser o bioma do petróleo. Então, é claro que criamos petróleo e eu disse: “Bem, por que não fazer um bioma como uma vibração de terras mortas que tem como petróleo Petrus. Eu pensei que essa era uma idéia interessante é apenas para mostrar como isso funciona. E depois vou mostrar-te como personalizar estas coisas à medida que avançamos. Então, é claro que vamos mais uma vez, todos os biomas de registro ou registro e, em seguida, os biomas diferidos registro. E isso vai ser. O bioma do petróleo. E então vamos ter uma chamada de método, vamos esfriar, fazer bioma de óleo. Agora, este é um método que ainda não criamos, mas eu vou terminar rapidamente o, o, o que queremos para isso e então nós vamos ver, então este vai ser registros gentis do mundo, ponto configurado, construtor de superfície. Lá vamos nós. E então valha a pena Rho. Então isso basicamente agora vai para o construtor de superfície configurado. Vamos tentar formatar. Isso é um pouco mais agradável para que seja realmente legível. São declarações muito longas. Na verdade, não é tão fácil colocar tudo aqui. Este vai ser o mod configurado filtros de superfície. Então é isso que acabamos de fazer com a superfície do óleo. E podemos fechar isto. E então, na verdade, apenas um. Sim. E então temos a profundidade e depois a escala. Como eu disse, vamos criar o,
o método logo após este,
importar, o objeto de registro. E então, é claro, vamos ter um erro porque o grande bioma de petróleo ainda não existe. Então vamos fazer uma nova estática privada. Biofilme fará bioma de óleo com um fornecedor final de construtor de superfície configurado com um ponto de interrogação uma vez contra este construtor de superfície. E depois um carro alegórico. E um flutuador, não altura, mas eles vão. E, em seguida, precisamos obter fornecedor em como uma função util Java classe. E então em algum lugar há provavelmente um, sim, lá vamos nós. Certo, agora isso já funciona. Agora é claro que não estamos devolvendo um bioma ainda. E este é também um método que é definitivamente o que você deve olhar para outra pessoa para isso. Então eu vou colocar isso aqui. Então criador de biologia. E se mais uma vez Control clique ou botão do meio do mouse, nós realmente chegar à classe biomarcador do Minecraft. E dentro daqui nós realmente temos esses métodos estáticos que têm, que estão disponíveis para nós ou são, eles são usados para fazer certos biomas, certo? Então aqui fazer bioma
gigante, gigante, tigre gigante, certo? E como podem ver, há muita coisa aqui. E nós estamos realmente apenas indo para copiar o que está em um desses e, em seguida, mudá-lo um pouco para cima. Então vamos pegar o pântano e vamos tomar isso como um, bem como um básico, digamos. E vamos copiar tudo o que está dentro dele. E então nós vamos apenas colá-lo. E vamos ter alguns erros. Provavelmente. A primeira coisa que queremos fazer aqui, a variante da colina. No nosso caso, decidi não ter a variante Hill no nosso bioma. Mas é claro que você pode, você também pode mudar isso. Mas como eu disse, esta é apenas
uma breve introdução aos biomas para torná-los
realmente específicos e torná-los realmente clientes. Você tem que brincar com todas as ferramentas que são dadas a você. Mas antes de tudo, vamos criar a biografia continental. Vamos ver o que acontece aqui. Então. No topo, nós estamos realmente indo para fazer uma geração final de bioma configurações lá, yo construtor de pontos. E este vai ser o nosso criador de configuração de geração de biomas. E vamos criar um novo. Tão novo e nós realmente temos que sugerido aqui, aquele construtor de superfície de largura, e esse é o construtor de superfície. Vamos entregá-lo aqui, certo? Que nós fornecemos lá dentro. Então esta é a superfície agora. E isso vai ser usado em vez das configurações de geração biológica aqui. Então este é basicamente este. Você também pode simplesmente mudar isso. Na verdade, isso é um pouco mais fácil. Então, apenas mude este. E isso também funciona com ego. Então estas são as configurações de geração de biomas. Sim. Ok, mas como, e como você pode ver, há algumas coisas que já aconteceram aqui, certo? Então, recursos de bioma padrão com mobs passivos. Isso é muito interessante em tudo. Bem, primeiro vamos descer aqui. Então este é um muito longo, como você pode ver, um muito longo, uma declaração de retorno aqui. Então vamos tentar configurar isso um pouco para que você possa realmente vê-lo um pouco melhor. Então há uma coisa, como você pode ver, que realmente tem uma, uma flecha aqui. E isso vai ser a cor do céu get com modificador de temperatura. Agora, há várias coisas que você pode fazer. Tenho que ser honesto. A coisa mais fácil pessoalmente é simplesmente tomar este método privado que na verdade calcula a cor do céu com base
na temperatura e apenas colocá-lo em seus biomas da boca. Para mim, é a maneira mais fácil de fazer isso. Claro, há maneiras mais inteligentes e você pode usar
a reflexão para ofuscar isso e tudo aquilo. Realmente não importa. Eu acho que isso é totalmente bom e isso é,
bem, bem, bem, bem, tudo bem. Ok. Vamos olhar para isso fazer bioma de óleo agora e ver o que realmente está acontecendo. Antes de fazermos isso, na verdade, por favor, adicione outro método que vai ser este método de registro estático público aqui sem nada nele. Para que possamos realmente registrar os biomas também. E eles devem ser registrados antes deste registro de biomas DOT. Só por precaução. E agora o biomarcador, vamos nos livrar desse e vamos ver. Então, os biomas do mapa. momento, isso simplesmente adicionaria um novo bioma chamado bioma de óleo com esta superfície de óleo bem aqui. Mas há mais uma coisa que
é, não está faltando, mas é, bem, ele realmente não faz nada neste momento no tempo, certo? Então, não há nada realmente excitante acontecendo é basicamente apenas para criar um novo,
um novo bioma do pântano. Porque isso é basicamente o que temos, o que copiamos aqui, certo? E então a verdadeira questão é, bem, onde podemos obter a próxima coisa que podemos mudar? E isso vai estar dentro das feições. Então vamos primeiro adicionar um novo recurso, uma nova classe. Então esta vai ser a marcha sobre feições acionadas. É assim que a classe vai ser resfriada e dentro de seu trabalho realmente vai ter alguns recursos de configuração. Vamos começar com um, depois adicionar outro, e depois vamos ver isto. Então esta é uma estática pública. O recurso de configuração final foi marca marca ocidental registrada. E então vamos chamar isso de Lago Euler. Agora o que eu fiz e como eu realmente, bem, realmente isso digamos é que eu basicamente apenas
peguei os e esses recursos padrão do bioma, certo? Então, eles também são todos os recursos configurados. E mais uma vez, clique do meio do mouse, você pode realmente entrar aqui. E você pode ver que esta é uma classe onde há muitos métodos estáticos. Em vez de aqui temos ponto construtor com comedor. E isso é sempre o que, o que está sendo resfriado. E se olharmos, por exemplo, para a madeira, isso não está bem no Construtor. E vemos que há algumas coisas que acontecem aqui. Então, por exemplo, podemos dizer que realmente queremos lagos, certo? Então, com lagos de lava e água, certo, amante modal x, você, você provavelmente já viu esses. Diga OK. Isso simplesmente significa que temos que chamar com lagos de
recurso e professores água do lago. E essa é uma característica que realmente temos uma nova característica de braço. Então é interessante saber isso e é assim que fazemos isso. Então vamos fazer registro, registro ponto. Este vai ser um mundo de registros de gênero que configurar o recurso, certo? Vamos chamar isso de petróleo tardio. E isso vai ser um recurso. Já vimos esse recurso com a geração. E isso vai ser lago, certo? Isso é tão fácil quanto acontece com a configuração. Agora recurso realmente tem que ser importado uma configuração de largura de ponto Eagle Lake. E em vez de aqui precisamos de um novo bloco. Estado, um provedor, um conflito de recurso de site de bloqueio, na verdade. E isso vai acabar. Então dentro daqui, nós vamos realmente especificar OK, que tipo de que tipo de bloco ou queremos. Então nós podemos realmente ir para o lago aqui. E veremos que esse método de registro é exatamente o mesmo, exatamente a mesma coisa, mas é uma coisa muito semelhante. Pode ver as suas novas funcionalidades do Lago. Você pode então entrar em recursos Lake. E agora isso é, isso é um monte de coisas que nós realmente não estamos interessados necessariamente. No entanto, você pode realmente ver, Não há uma característica do lago é semelhante à água. Aqui estamos nós. Então, é nos recursos, não no recurso que, esse era o problema. E aqui você realmente tem o absoluto. Então, o método register que acabamos de chamar, você tem exatamente o mesmo método aqui. Então podemos basicamente dizer, quer saber? Vamos copiar isto, certo? Então vamos tirar isso do lago. Copie o método do lodo e diga, tudo bem, vamos copiar isso. Então vamos ver, nós realmente temos que obter este registro de pontos de registro que você vai, certo, e então o resto já está feito. Então nós leiloamos na verdade também quer mudar o nome Lake Oil, certo? E então aqui temos interesses pontos estados, bloco de água. Este é, naturalmente, o bloco que queremos colocar lá. Então este será mod fluidos dot oil block neste caso, dot get ainda estado padrão porque precisamos de um estado padrão nela. E então o que parece ser o problema problemas que nós não resolvemos isso, não se preocupe com isso. Cadastre-se. E isso é porque nós temos o nosso, nós realmente também precisamos do governado, desculpe, o mundo registra ponto este é configurado recursos ou eles são maus? Esquentador imaginado E então o vazamento de óleo, óleo, eles vão. Como você pode ver, nós podemos realmente tipo de apenas copiar o e isso é um-para-muitos, isso é bom. E nós podemos simplesmente copiar a partir dos recursos. E se há coisas semelhantes que você quer fazer, bem, você pode simplesmente retirá-los dos recursos aqui e modificá-los como quiser. Agora isso é um recurso trans. Vamos colocar isso em dez, só por causa da discussão agora. E isso é algo que agora podemos usar e colocar em nosso modelo. Agora, como podemos fazer isso? Vamos entrar aqui, em nosso microbioma e em qualquer lugar realmente. Mas vamos colocá-lo aqui para que você saiba onde isso está,
digamos, o construtor de configurações de duração do bioma. Então isso é uma coisa que sempre passamos para esses métodos estáticos aqui. O que queremos é que queremos este recurso de largura. E então podemos apenas dizer, bem, em primeiro lugar, em que fase, então dizemos geração e depois lagos, declaração, lagos, certo? Este é o palco em um. Isto é adicionado. E isso vai estar dentro de nossos recursos configurados mod, porque este é um recurso que queremos adicionar e este vai ser o oleoso. Agora mesmo. O que é importante aqui é que, claro, provavelmente faria sentido também fazer outra classe chamada de
recursos de bioma de modo e, em seguida, ter os métodos estáticos ser legal lá e ter isso lá também. No entanto, agora, eu quero mostrar a vocês como realmente fazer o, o bioma funcionar e qualquer, digamos refatoração, talvez até algumas coisas mais eficientes são, nem sempre
é o melhor estar preocupado em fazer tudo se ineficiente no início. Agora, aqui no construtor de biomas, também
temos muitas coisas que podemos fazer. Então, por exemplo, temos aqui a categoria de bioma que podemos escolher, certo? Então podemos dizer, oh, que categorias ele. E então digamos, por exemplo,
bem, na verdade, você sabe o que, vamos manter a categoria em Swan. Isso é bom. E então temos o tipo de precipitação. Então, se chover, se seu nariz ou se não há nada lá, para que você possa mudar aqui, então você pode mudar a queda. Agora, a maioria deles não são comentados, então você tem que brincar um pouco com isso, mas essas são muitas coisas que você pode mudar aqui em cima, o que é muito legal. E sim, agora nós realmente sofremos muito. E isso é mais uma classe que precisamos fazer. E então podemos realmente ver esse bioma em ação dentro do nosso jogo. E essa é, claro, a geração porque agora ela nem geraria. Agora criamos o bioma MOD. Geração, eu disse que era um pouco mais do que, digamos que estamos acostumados. E nesta classe realmente vai obter o assinante móvel novamente. E nós vamos ter que eventos como para assinar eventos. O primeiro vai ser um vazio estático público, registrar, registrar, sem ego com um evento de registro final, ler,
história, evento, registrar, um peregrino superfície. Então isso vai registrar um construtor de superfície chamado evento. Isso é bom. E então nós vamos dizer, eu vou dizer que eu vou acompanhar isso de novo. Portanto, isso é apenas para que nós tornemos isso uma prioridade baixa para que a ordem em que nós fazemos essas etapas seja bem propícia para realmente o que nós queremos. E então temos outro evento de assinatura, que vai ser uma cidade. Nós criamos bioma FML final, configuração
comum, evento. E aqui estamos realmente indo para enfileirar trabalho. Então isso é simplesmente feito para que ele dispare mais uma vez de uma forma que funcione. O que você diria? Para que ele dispare na ordem correta, digamos, assinar evento, certo? E agora precisamos de métodos mais privados que são uma espécie de métodos auxiliares. E vão ser os biomas registradores. Então isso vai registrar o bioma com um local de recurso, bioma RL com um estado de bloco. Então esses são três blocos que nós realmente especificamos. Então esses são os blocos que serão usados dentro deste myo. Então, temos uma lei de topo. Vamos ter um bloco de enchimento e vamos ter um bloco subaquático. Este é o estado do bloco debaixo de água. O ego e a maneira como isso funciona, status de
sorte já importante, isso é ótimo. Que você vá. E a maneira como isso funciona é que vamos entrar no registro de pontos. Mais uma vez a palavra registra. E isso vai ser configurado superfície um construtor. Então vamos passar-lhe a localização de recursos que vamos passá-lo, os construtores de superfície mod ponto lobbing, padrão, ponto get. E então vamos chamar esse método aqui Funk vinte e quatro,
vinte e nove, vinte e nove. E dentro daqui, fazemos um novo conflito de construtor de superfície. Então, o conflito brutal de prata Xenu, neste momento, vai ser o bloco superior, o bloco inferior, e o bloco subaquático. E então nós também podemos, oops, isso não é o que eu queria fazer. E então nós também podemos obter isso realmente aparecem leis terminadas. Este é o método do bioma de registro necessário para registrar o bioma. E então há outro método privado e esse é o método chamado adicionar bioma. E isso basicamente adiciona o bioma ao dicionário e aos gerentes. Então nós temos o bioma, nós temos o gerente do bioma, pioneiros de
pontos, MY implementado primeiro gerenciador biológico. Ok. Meu OEM. Gerente. Este por tipo M. Não que essa não seja a certa, eu acho. Tipo de bioma. Vamos digitar. Certo, então não é o gerente biológico certo. Nós realmente queremos esse gerente de biografia então. Sim, essa é a certa. Queremos o gerente de biografia. Onde é que ele foi? Lá é do Minecraft, que tipo de gerenciador de spam comum. Temos um peso integral. Nós temos o tipo de ponto dicionário do bioma, e então nós fazemos tipos ponto-ponto para que possamos, então cada coisa que é adicionada depois é simplesmente. E assim cada parâmetro que é adicionado após o peso é então simplesmente tomado como um tipo com a chave de registro, bioma. Então chave, então isso é muito parecido com o que fizemos na geração de palavras, essa geração de árvores já. Só isso. Agora, em vez de apenas obter as chaves, estão realmente criando um novo, que registra chaves biomas ponto. Então isso é simplesmente para que possamos criar um bioma e, em seguida, objetos. Nós vamos realmente fazer isso corretamente exigir não nulo. Então isso só garante que não há exceção lançada, algo assim, que registra em biomas ponto obter calor por L. Então este é o bioma que passa por ele. E então isso é ótimo. E, em seguida, aqui nós realmente só precisamos adicionar dicionário no tipo com a chave e tipos. Para que agora os tipos estejam associados com o bioma que escolhemos. E depois o gerente de biografia. Esperemos que o certo tenha adicionar bioma que adicionamos o tipo de bioma e, em seguida, uma nova entrada de bioma com a chave e o salário. Certo? E esses são os métodos que precisávamos. Agora dentro do trabalho Enqueue, este é o lugar onde nós adicionamos o bioma e que vai ser em biomas mod, óleo de
ponto, ponto de bioma get. Então aqui nós realmente temos que especificar o bioma que queremos. Então precisamos do tipo bioma para que possamos ter um deserto quente. Há um IC legado. Vamos fazer um bioma quente. Vamos escolher o peso de um 100 e, em seguida, adicionar o tipo. Então tipo, Quente, Morto, morto e seco. Agora, o que nós também podemos fazer, em vez de sempre ter que digitar isso para fora, nós podemos realmente importar isso como um estático nós podemos realmente dizer importação estática, que Minecraft ou nenhum microfone, diretório bioma comum. E então, e depois apenas digitar e, em seguida, uma estrela, eles vão para a loja. E então o que podemos fazer aqui é escrever quente, morto e seco assim. Isso é um pouco mais fácil. Em vez de nosso método Registrar, queremos chamar o bioma de registro. E lá temos que dizer mais uma vez um construtor de superfície de óleo de superfície ponto-ponto GetLocation porque há um local de recurso, certo? E o que vamos fazer é que vamos pertencer à areia da alma parada. Só por uma questão de discussão agora, vamos criar algo bloqueado. Parem a areia, digamos. E também bloqueia ponto. Esse é o subaquático também areia. Vamos, vamos encontrar sandálias. Obter iguais dizer muito importante, que é o estado padrão porque queremos os estados Brock e não os blocos reais lá, certo? E agora, se não estou enganado, tudo deve ser feito. Agora, há, é claro, muitas partes móveis. Então o que vamos fazer é executar isso,
tentar, e vamos ver o que acontece. Na verdade, estou bastante confiante de que isso vai funcionar. Mas ainda assim, também pode haver, você sabe, alguma coisa pequena. Porque, como eu disse antes, na verdade
é um tópico muito mais avançado do que, eu acho que quase tudo o que já cobrimos antes. Acho que as árvores estavam ao longo da linha, mas sim. Então nós realmente temos algo aqui. É um bom começo. Agora vamos ver se o jogo realmente começa também. Parece que sim. Bem, isso é um bom primeiro começo, e então vamos criar um novo mundo. Então vamos chamar isso de 1-2-3 criativo e apenas, sim, bem, vamos ver se ele também cria um novo mundo. E, claro, seria tão fascinante e também ótimo. Tudo o que funciona na primeira tentativa é sempre um bom sinal. Tudo bem? Ok, então nós realmente começamos e lá vamos nós. Eles já podem ver a coisa que criamos. Então este é o, quando nós vamos para aqui, certo, este é aviões de microondas, como você pode ver aqui, taxa de rio microondas. Então vamos até aqui e este é um bioma de petróleo. Lá vamos nós. E se passarmos por isso, espero que o ar seja, nós realmente já temos
esses lagos de petróleo que geram dentro da bio, por exemplo. Certo? Então esta é a ideia básica de como fazer uma biografia. Agora, vamos sair e realmente criar um segundo recurso apenas para fins de demonstração por causa dos recursos. Então isso seria no lado de, vamos apenas fechar tudo agora são intermináveis aqui. Isso seria dentro do recurso MOD configurar recursos. Porque as características vão ser a única coisa que vai ser realmente poderosa. Como eu disse, você pode entrar em recursos, certo? Então micro recursos aqui e realmente ver um monte de recursos que estão presentes. E você pode adicionar isso ao bioma mais então, certo? Então, em vez de ano, por exemplo, há algumas coisas que talvez não queiramos, certo? Então talvez não queiramos, não queremos nenhum modo passivo. Talvez digamos, você sabe, na verdade eu não quero sobrecarregado ou está aqui, ou eu não quero a geração de cogumelos, eu não quero pântano. Você pode tirar tudo isso daqui e usar apenas seus próprios recursos. Isso, claro, funciona. Mas sim, isso é definitivamente algo com que você tem que brincar um pouco. E há tantas, digamos, camadas que você pode descobrir com isso e tantas coisas que você pode fazer com isso que é, quero dizer, é quase, quase inesgotável. Agora, vamos criar um novo, um novo. A coisa aqui que eu acabei de pensar que vai ser como uma caixa de cobre espalhada. Então isso vai ser apenas alguns, alguns quarteirões, como o trono em algum lugar no, no bioma. E isso vai ser um conflito de recurso de cluster de bloco. Agora, do jeito que descobri isso, vou te mostrar em um momento. Mas isto vai ser um conflito de cobre. Conflito. Lá vai você. Este será um novo conflito de cluster de blocos. Cada conflito de Builder, novo bloco simples StateProvider. E lá estávamos indo dizer bloco mon Sadat, bloco
de cobre, ponto, ponto, obter estado padrão. E então aqui temos um novo placer de bloco simples. E isso vai ser algo que você não é. Este. Aumente, sim, tenta 25 e depois constrói. Lindo. E então aqui nós realmente temos o recurso configurado porque precisamos de um conflito ou que este vai ser um configure Fisher. Mais uma vez, ponto de interrogação, ponto de interrogação. Isto vai ser o bloco de cobre espalhado. E isso é mais uma vez o registro de pontos de registro com um mundo registros configurados. Este é legal, cobre espalhado. E então vamos ter um ponto de recurso, patch aleatório. Então, há muitas características aqui também. Então, no recurso, existem diferentes tipos de recurso configurado. As opções que temos, temos a mesma coisa que vimos com a colocação das árvores, que também você tem que brincar com um pouco. E, em seguida, dentro daqui, você realmente deseja o recurso de cluster de bloco. É por isso que o conflito, é por isso que eu já fiz o conflito. E, em seguida, colocação de largura, nós só vamos economizar colocação. Posicionamento dot chance com uma nova configuração chance de, digamos, 200. E nós também vamos trazer isso aqui para baixo apenas para um pouco melhor legibilidade. E não se esqueça do ponto-e-vírgula agora, é claro que ainda não chegou. Precisamos entrar aqui. Podemos copiar isto, digamos, e depois dizer ponto de declaração. Digamos que se trata de estruturas de superfície. Pode ser atendido, apressado, pode ser outra coisa. E, em seguida, dizer que o bloco de cobre espalhado e, portanto, já é tudo que você precisa adicionar. Digamos que outro recurso de configuração. A maneira como eu descobri isso é basicamente tão dentro do recurso e, claro tem os diferentes tipos de coisas, como eles geram. Então, por exemplo, você sabe, você sabe como os blocos de pedra brilhante surgem lá dentro, dentro de uma extremidade em vez de abaixo. E depois vês o que mais? Há alguns, por exemplo, o bambu Wow, que gera a superfície do tórax ossos pior. Então, há um monte de recursos que como eles geram. E na colocação, você tem algo semelhante a isso também. Então lá você pode brincar com a forma como o, como você foi configurado recursos geram. É realmente um monte de tentativa e erro aqui. E experimentando. Mais uma vez, aconselhe olhar para exemplos
em, no GitHub, certo, de como outras pessoas fizeram coisas semelhantes. Porque isso vai ser, é apenas uma idéia muito inteligente olhar para como outras pessoas fizeram isso. E tentar brincar um pouco com ele,
digamos, ok, como é que isso funciona? Não tenho certeza de como isso funciona. Sim. E isso deve, então, essa é uma idéia muito inteligente para brincar com isso um pouco. E então vamos ver se realmente quando carregamos um novo mundo. Então vamos criar um novo mundo. Será que um? Por agora? Radiativo? Sim. E ver quando o novo, quando os biomas surgem novamente, se realmente o cobre se espalhou lá existe. Haverá uma espécie de agradável. Ok, vamos ver. Oh, aí está. Ok, há um bioma e a propósito, nós também podemos descer aqui e ver a corrida. Você realmente vê este aqui que você está preso com,
desculpe, isso não é o íon da entidade. E eu realmente queria a geração. Eu só vi o tipo de coordenadas e eu estava tipo, oh, lá está. Agora, é muito antes disso. Atualmente está gerando bioma de óleo MCT em menos 28 e menos 272. Assim você pode realmente ver e dizer, bem, isso é exatamente onde estamos. E vamos jogar, passar por isso e ver se há algum cobre espalhado. Estão lá, eles estão lá é o primeiro. Portanto, há realmente bastante raro todas as coisas consideradas. E você pode fazer um ainda mais raro ou não, ou mais comum. E isso é simplesmente basicamente a coisa que eu inventei como um, como outro exemplo do recurso configurado que você pode adicionar. Como eu disse, eles são, há tantas coisas que você pode fazer com isso. E há tantos, bem, digamos que você pode girar em todos os tipos de direções que são que você só tem que passar um pouco. Experimente os recursos padrão. Experimente seus próprios recursos. Jogue com todos os números que você pode brincar com e apenas, apenas continue experimentando. Mas geralmente isso, pelo menos, te dá uma estimativa aproximada de como criar um bioma. Agora, vamos também, apenas para resumir, vamos passar por cada uma das etapas que fizemos. Então a idéia do construtor de superfície de madeira era apenas para que pudéssemos realmente sair e onde o, onde nosso bioma é realmente gerado. Esta é a idéia desta classe simplesmente para que tenhamos uma maneira de saber. Certo, aí está o bioma, vamos voar até lá. É muito mais fácil para ambos os fins de depuração e, você sabe, provavelmente, você sabe, daqui para frente, se eu fosse realmente publicar este mod, eu provavelmente colocaria isso para depurar ou talvez até mesmo. Eu realmente quero publicar isso, talvez até mesmo desativar o login aqui, simplesmente por causa do fato de que talvez eu não queira que as pessoas olhem
para o console e então digam, Oh, lá está o bioma. Mas é claro, isso não faz muita diferença. Não, não realmente. Agora, Nós, em seguida, tinha um construtor de superfície configurado. Agora este é o isso é basicamente uma chave para isso para a superfície do óleo. Então temos um construtor de superfície configurado e, em seguida, temos o nosso construtor de superfície aqui. Então a diferença simplesmente é que há um, um deles é basicamente com configurações sem configuração. Isso é uma espécie de taxa que o nome implica. E eles são usados de maneiras diferentes. Então, quando entramos, por exemplo, quando podemos ver direito, podemos clicar com o botão direito do mouse nisso e dizer, hey, encontrar usos. Então nós podemos ver hey, onde isso é usado? Por exemplo, ele é usado aqui dentro do make o bioma de óleo make. E então podemos dizer, ok, o que isso, o que isso significa? E dizemos, bem, este é um construtor de superfície configurado e este é um construtor de superfície de figura. E aqui é exatamente onde essa superfície de óleo entra e diz: “
Ok, mas é meio que eu consigo entender isso. Isso faz sentido. Então perguntamos, bem, onde esse padrão de registro entrou? E está parecendo padrão. E então também podemos fazer isso. Podemos fazer e usar, usos. E isso também veio. Esta pode ser uma geração inteira que provavelmente deveria ser renomeada porque o que estamos fazendo aqui, claro, é que não estamos registrando o bioma, registrando o construtor de serviços configurado. Portanto, há padrão de registro é realmente o que estamos registrando aqui. Então, na verdade, diria que no final aqui, eu iria refatorar isso para ser puxado registro configurar, construtor de superfície. E então este também não é o local de recurso do bioma. Isso é realmente o, isso seria o, vamos apenas chamá-lo C. Agora, vamos fazer construtor de superfície configurado RL, alocação de recursos. Porque, é claro, isso registra o construtor de superfície configurar como nós demos. O primeiro a superfície do óleo. E isto é, se voltarmos para a superfície do óleo mais uma vez,
71. (Minecraft) som e sons personalizados: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos falar sobre eventos sonoros e como fazer nossos próprios sons personalizados, certo? Então, a primeira coisa que precisamos para entrar
no arquivo de registro onde temos todos os nossos registros diferidos e criar um novo registro diferido. Desta vez para o tipo de eventos sonoros ou algum evento melhor. E vamos chamar isso de eventos sonoros. E isso será igual a um ponto Register diferido criar registros ponto eventos sonoros, MC, Smart MOD ID, certo? Mais uma vez, não se esqueça de realmente registrado aqui com o evento foi. Caso contrário, não vai funcionar. E a próxima coisa, vamos precisar de um novo pacote. E isto vai estar dentro das pontuações MC, um novo pacote, sons antigos. Agora vamos chamá-lo de Som singular. E nós vamos criar uma nova classe lá chamada Ahmad eventos sonoros, eventos
sonoros , esse ego. E isso, é claro que já vimos muitas vezes. Vamos, em primeiro lugar, criar um método de registro estático vazio público. E isso vai ser chamado dentro do nosso lema de registro edições aqui realmente não importa onde ele está. Sim, eu acho que aqui em baixo como bons eventos de som registro DOT. E, em seguida, podemos criar nosso objeto de registro. Então isso vai ser um pouco diferente, mas não completamente, não, não tão diferente como talvez algumas das outras coisas. Então, em primeiro lugar, é claro, estático público, final, objeto de
registro do tipo, evento de som. Vamos chamar isso de sons de teste. Ou, na verdade, vamos chamá-lo, vamos chamá-lo de pequena explosão, porque foi isso que eu preparei. E isso é claro, igual a eventos de som de ponto de registro, registro DOT. E agora o que vamos colocar, em primeiro lugar, é claro, o, vamos chamá-lo de pequena explosão novamente. E outra orelha fornecedor é um pouco diferente do que estamos acostumados. Este vai ser um novo evento sonoro e este tem que ser net Minecraft util, muito importante. E para fazer isso, precisamos de um novo local de recursos. Então isso é um pouco diferente do que estamos acostumados. E esse local de recurso, é claro, começa com o ID do MOD e termina com o nome, que será apenas uma pequena explosão novamente. Então o nome aqui e o nome aqui devem ser os mesmos. Você pode fazer uma cadeia privada em teoria e fazer isso também. Sabe, há um, há um ponto a ser dito. Talvez, você também pode fazer um método para isso. Mas vamos fazer assim. É muito bom assim. E, no entanto, já é assim que o som está realmente dentro. Então nós o registramos,
ele está agora no jogo, no entanto, não
temos um arquivo naquele lugar. Então essa é a próxima coisa que precisamos fazer. E para isso precisamos ir para os recursos, ativos. Ou pior, ou seu ID e criar um novo diretório chamado Sons, desta vez plural. Muito importante. E lá dentro temos que colocar o arquivo. Agora eu forneci o pequeno ponto de explosão OGG como um arquivo. Nós vamos simplesmente colocar isso lá dentro. Tem que ser um arquivo OGG,
então, caso contrário, não funcionará. E nós também precisamos, e isso é basicamente no nível do curso MC aqui, precisamos de um novo arquivo JSON e isso vai ser sons ponto JSON. E eu vou copiar algo rapidamente. Na verdade, não precisamos de uma cópia. Na verdade, não é tão complicado. Começamos o arquivo JSON e temos o nome da chave. Então isso seria uma pequena explosão de sublinhado, em
seguida, dois pontos e, em seguida, colchetes. Em vez disso, temos uma categoria. Para nossos propósitos, estamos usando blocos. Vou te mostrar depois que terminarmos o arquivo JSON, vou te mostrar quais são as categorias. E vamos ter uma legenda. Este é o som de teste de poros mc. Então isso seria algo que você colocaria na coisa da linguagem. O subtítulo é o que é exibido se você tiver legendas ativadas e exibidas em um bate-papo. E, em seguida, soa, esta é uma lista. Impressionantemente colocá-lo em uma coisa e isso vai ser Mc coagir ou isso é realmente o nosso teste de alguém maneira. Na verdade, seria uma pequena explosão. E dentro daqui também temos uma pequena explosão. Então é importante que o nome aqui e o nome aqui é claro o mesmo. Pessoalmente. Quero dizer, isto não tem de ser o mesmo. Pessoalmente. Acho que faz mais sentido ter a chave e o nome do som. E tudo tem o mesmo nome. Só para você ter um pouco de consistência aqui. Sim, e se você quiser, por exemplo, adicionar novos, basta adicionar outro. E então, por exemplo, você sabe, uma grande explosão e então satélite, e então por diante e assim por diante. Você pode simplesmente copiar este aqui. E sim, isso já é tudo o que precisa ser feito. Agora, é claro, precisamos de alguma forma ter esta explosão ou o som ser ouvido. E o que vamos simplesmente fazer, vamos criar um bloco de cobre. Então a idéia é que,
digamos, por exemplo, vamos criar um novo bloco, uma classe aqui dentro do nosso pacote de blocos. Vamos chamar isso de calções de cobre. E isso vai estender o bloco. Então isso é algo que não é o bloco certo. Mais uma vez, vai ser o bloco Minecraft net. Eles vão. E então vamos apenas passar o mouse sobre ele e criar o construtor aqui. E então em nossos blocos de modelo, em vez de fazer um novo bloco aqui, vamos fazer um novo papel ou então isso é basicamente a mesma coisa que vimos com o item mod onde fizemos a maçã corporativa. A, bem, temos uma aula extra aqui. E nós vamos conseguir que quando o bloco for destruído, então um lugar de som. Então este é um método que podemos substituir, que está no jogador destruir. E dentro dele, vamos tocar este som. Então, primeiro de tudo, o que queremos verificar é se este mundo que entra lá é ou não remoto. Isso basicamente só verifica, ei, é servidor? Onde ele não é servidor? E nós queremos jogar isso, neste caso, se não for do lado do servidor, porque queremos que apenas o jogador que quebrou o bloco realmente ouça o som. Caso contrário, cada, pode ser que cada jogador dentro do servidor ouviu, ouve o som em uma certa distância ou raio. Claro, isso é algo que pode funcionar. Mas isto não é o que fazemos e vou mostrar-te isto rapidamente. Então o mundo neste mundo, neste caso, e lá temos um método de som de reprodução. E nós, como você pode ver, o jogador aqui é anulado se nulo o jogador e simplesmente vai jogar nessa posição. E então ele vai jogar se o mundo é um mundo servidor, ele vai jogar para todos e um certo raio. Se o jogador está realmente lá, e então ele vai jogar para todos, exceto o jogador. Eu tenho um grande recurso nisso. A documentação oficial para o som é realmente muito boa. Então eu vou, é claro, ter isso como um recurso disponível. Mas esta peça, não vamos usar o mundo aqui. Nós estamos realmente indo para usar um ponto minecraft e GetInstance. E então vamos pegar o jogador. E nós vamos tocar o som assim. Então isso vai ser colocado som e este vai ser o som dentro. Então precisamos do evento semeado que será simplesmente eventos de som mod. Pequena explosão, ponto, pegue. E então precisamos de um volume que vai ser um e o tom também vai ser um. E ele vai dizer,
ooh, vamos verificar se isso é nulo ou não. Podemos fazer isso, não precisamos necessariamente. Então você pode, é claro, para a superfície, não
é necessariamente tudo o que importante. Sim, vamos manter assim por enquanto. E, em teoria, se tudo funcionou corretamente e eu não esqueci nada e eu não acredito que eu tenha. Devemos ouvir uma pequena explosão quando destruirmos o cobre ou a fechadura. Sim. Portanto, estou muito interessado em saber se isto já funcionou ou não, mas acho que deveria. Eu acredito que tudo está lá dentro. Então, não é assim tão complicado. Então, no geral, eu acho que adicionar novos é, quero dizer, eu argumentaria quase mais fácil do que adicionar novos itens ou blocos. Como apenas ir para este mundo aqui. E vamos ver o que vai acontecer. Espero que não seja muito alto. Caso contrário, se estiver muito alto para mim, vou abaixar um pouco para você. Vamos pegar um funil ou um bloco, certo? Então, aqueles se afastam deles. A maioria dos búfalos E vamos ver. Então vamos quebrar e ver o que acontece. Bem, eu certamente ouvi e definitivamente não é muito alto. Na verdade, é um bom volume. Certo? E isso é basicamente tudo o que há para ele. Eu nem sequer respondi. Eu estou OK. E lá vai você. Então, sim, isso é tudo o que há para ele. Então é assim que pode ser fácil adicionar novos sons ao Minecraft e também reproduzi-los basicamente quando algo, hábitos particulares. Então, sim, foi basicamente isso. Espero que tenha sido informativo para você. Se houver alguma pergunta, é claro, sinta-se à vontade para perguntar. Eu, é claro, sempre aprecio uma revisão ou uma classificação. E, uh, sim.
72. (Minecraft) criando encantos personalizados: Muito bem, bem-vindos de volta ao Minecraft. Pior. E nesta palestra vamos olhar para criar nosso próprio encantamento. Então isso foi realmente uma, algo que um aluno perguntou e eu achei que era um tópico interessante. E é por isso que estamos fazendo essa palestra agora. Então este vai ser um encantamento muito específico neste caso. Então, nós também vamos criar um novo, digamos, grupo de itens para ele. Mas a maneira geral que fazemos essa medição é na verdade como você faria qualquer IN afiado. Então ele pode, Você deve ser capaz de apenas abstraí-lo ou digamos generalizar para ambientes normais, se você quiser. Então, a primeira coisa que vamos criar aqui é um novo pacote como tantas vezes. E vamos chamar isso de Incheon de hortelã, certificando-se de que lemos corretamente. Essa não é a palavra mais fácil, certo? E depois queremos ter duas novas aulas. Um deles é o próprio encantamento. Isto vai igualar o encantamento contundente. E a idéia disso é simplesmente que, bem, nós temos um, nós teremos um clube em breve, certo? Então, como uma arma contundente. E em vez de ter nitidez nele, queremos franqueza nele. Isso é, isso é basicamente o velho tudo que você precisa saber como a realização disso. E depois queremos outra aula que vai ser encantamentos Mott. E isso também está no pacote de encantamento, certo? Primeiro, o encantamento sem corte precisa ser estendido. E precisamos estender isso com encantamento. Há, claro, faz sentido, pois isso é um encantamento. E o que vamos fazer é ler o, ler o construtor. E então o que vamos fazer é clicar no meio do mouse no encantamento. Então vamos ao encantamento, e esta é a aula básica de Charlton. E eu já mostrei esse truque antes, mas mais uma vez, se você segurar o Controle H, podemos ver todos os Campeões que estão presentes no jogo, incluindo o nosso, mas estes são todos os que são adicionados pelo minecraft. E estamos procurando o encantamento danificado. Porque o que vamos fazer é que vamos ser muito sorrateiros. Vamos copiar tudo neste encantamento de dano. E vamos colá-lo aqui porque precisamos ter certeza de que não
temos e não temos dois construtores aqui. E nós vamos pegar os membros e colocá-los para cima. E esse tipo precisará ser adicionado ao construtor. E há mais uma coisa que precisamos fazer. Nós realmente precisamos embaralhar em torno dos perímetros no construtor um pouco. Então, o tipo danificado deve ser após o tipo de encantamento. E então os slots devem realmente ser em vez de um puro, um puro. Nós dizemos “array”. Nós realmente fazer três pontos para que tudo o que é dado após o tipo de dano contaria como um slot. Então a grande coisa é que nós também podemos dar apenas uma vaga nesse tipo de idéia. E agora o resto disto. Claro que pode ser mudado. Por exemplo, nível Mx, você sabe, isso é basicamente como nitidez. Você tem Chartreuse 12345. Poderíamos fazer dez ou onze. E essas instabilidades, como você pode ver, existem essas funções bem, bastante pequenas. Matemático, matemático. O que você diria cálculos, essa é a palavra, certo? Então cálculos, você também pode dizer calcular o dano por criatura. Então, há algumas coisas que você pode fazer. E nós também temos isso pode se aplicar, e isso pode se aplicar a um item de machado ou qualquer outra coisa. Agora vamos ver isso em breve. E também temos um pouco de brincar juntos. Isso simplesmente retorna. Então é dado um encantamento e depois diz, bem pode desencantar. E assim a mistura e Troutman e, em seguida, pouco dado aqui ser aplicado juntos. Essa é basicamente a idéia desse método. E aqui em baixo, podemos limpar isso um pouco e continuar. Entidade danificada simplesmente tem um, como você pode ver, frio sempre que eu sou dano opus com um item que tem isso em comum sobre ele. E então nós poderíamos, em teoria, também fazer outra coisa aqui. Portanto, há realmente um monte de coisas que podemos fazer com este instrumento. Não precisamos desses nomes de danos porque não é usado. E sim, então esta é a maneira que podemos, a propósito, eu encorajaria também a apenas algumas vezes quando você não sabe para onde ir, basta copiar uma aula do Minecraft e, em seguida, mudá-la em torno de um pouco, porque enquanto ele funciona, tudo bem. - Sim. Então isso é bom e o London Chatman está quase completamente pronto. O que precisamos agora é acrescentar isso aos nossos xamãs modernos. Mas primeiro, precisamos criar o novo item. E o novo item que vamos entrar no item e, em seguida, vamos criar um novo pacote lá dentro. Vamos chamar esta arma. Agora, esta é realmente uma escolha estilística. Você realmente não tem que fazer isso, mas eu pessoalmente acho que faz sentido e vamos chamar isso de item contundente. Agora, o item de mistura vai ser muito parecido com o item de espada. E nós podemos apenas olhar para isso pressionando Shift, Shift Control F. Então nós podemos realmente procurar em todos os lugares. E então, se formos para o escopo e, por exemplo, procurar por item de classificação, então nós vamos chegar, bem, então nós vamos chegar, bem,em
primeiro lugar, nossas coisas, mas em algum momento nós também vamos encontrar o item de espada. Bem, Por exemplo aqui, para que possamos apenas clique do meio do mouse e, em seguida, estamos no item de classificação. Então, desde que cheguemos à classe de item de classificação, então está tudo bem. E como você pode ver, isso estende o item hierárquico e implementa o IV punível. Agora eu desapareço problemas é claro que é só isso. Quando você balançá-lo de repente ele se foi. Isso é eu desaparecer bolha e o item em camadas, podemos olhar para os nossos itens mod e pensar em volta, isso é muito tempo atrás, mas nós realmente criamos uma camada de item simulado. Bem, isso era cobre. Temos um material de blindagem e também tínhamos esse nível de item de modo. Nós somos, nós tivemos diferentes. Então criamos cobre, certo, com níveis de colheita e usos Max e tudo isso. E podemos criar um novo tipo de item, certo? Então, em vez de uma espécie, vamos fazer um item contundente. E nós vamos estender ambos os itens hierárquicos e também implementar os problemas de desaparecimento. Então, vamos estender I Nível I, seu item em camadas. Oh, não é gelo. Apenas item hierárquico. Bem, lá vai você. Claro que sim. Estou estendendo-a. Eles vão implementos. Eu tenho punível um ir. Depois passamos o mouse sobre ele e vamos criar um construtor correspondente super. E isso deve, bem, nós vamos mudar isso de qualquer maneira, porque mais uma vez, nós vamos apenas copiar todo o item de classificação mais. E então nós vamos realmente substituir tudo. Nós só vamos mudar isso para ser um item em massa. E nós vamos salvar isso e então nós realmente não devemos pegar nenhuma flecha. Há, no entanto, algumas coisas que temos de analisar. E assim, por exemplo aqui, você sabe, obter velocidade de destruição. Então, se não quisermos que as teias de
aranha sejam rápidas para este tipo de item que podemos mudar isso. E o que mais há lá? Há alguns construtor, dano de
ataque e modificadores de livros didáticos tecnológicos que são realidade ou podemos simplesmente deixá-lo assim porque no final do dia isso é totalmente bom. E eu acredito que, sim, na verdade, isso é tudo o que precisamos fazer. Agora só precisamos criar um novo item em nossa classe de itens mod. E então nós vamos apenas colocar isso dentro Vamos subir, digamos que entre a espada e a picareta, vamos copiar a espada por enquanto. Vamos chamar isso de Clube de Cobre. Eu criei, a propósito, uma nova, o que dizemos, uma nova textura para ela. E eu tenho que ser honesto, todas as texturas que eu criei até agora, eu realmente achei isso muito bom. Achei isso muito legal. Está bem? Claro, o clube de cobre ainda não foi criado como um, como uma classe. Mas isso vai ser quase como as outras classes de item só aumentarão o custo. Lub de cobre. Você poderia, naturalmente, também torná-lo um novo item encanado que também iria funcionar. Mas eu acho que neste caso, faz sentido torná-lo, digamos explícito. Nós só vamos igualar isso. E isso é tudo o que precisamos fazer. Salve isso. E lá vamos nós. E, de repente, funciona. E isso é entre lá e ali. E agora nós simplesmente precisamos voltar para onde ele está misturado, evitado. E aqui em baixo, tivemos o primeiro de tudo pode aplicar juntos. Então isso é claro, uma, mais uma vez, uma escolha que você tem que fazer. Está bem? O que pode acontecer? Então, em teoria, se você tem um encantamento de nitidez, você não pode colocar outra falta e Chapman nisso. Isso é basicamente o que isso diz porque anteriormente este era um encantamento danificado. E podemos dizer, bem, quero dizer, nós realmente não queremos ter isso lá também. Então o que podemos fazer é, bem, você sabe, nós não queremos que isso seja aplicado com um encantamento danificado e nós não queremos isso. Então, se outro encantamento é colocado lá, nós não queremos que isso seja encantado com pedaços. Item não planejado, é contundente e Chapman. Certo. Então, se é um dano no chocolate ou um encantamento brusco, então não podemos aplicar isso junto com outra loira e Shannon. Essa é basicamente a ideia aqui. E aqui na mão aplicar, vamos colocar o item de erro agora,
nosso próprio criado para item hierárquico. Certo. E acredito que isso é tudo no ano que precisávamos mudar. Claro, mais uma vez, se você quiser ter mais níveis ou menos níveis, agora você quer ir e dizer fazer dez ou algo assim. E, claro, sinta-se livre para fazer isso. Mas vamos ficar com cinco agora. E agora estamos finalmente chegando à aula de Encantamentos de Modo. E antes que possamos fazer isso, é claro, precisamos ir ao nosso registro e criar um novo registro diferido ao nosso bom e velho amigo. Como sem um registro diferente, não
seria um bom vídeo. Eu sinto que, você sabe, é um bom vídeo quando criamos o registro quatro, desta vez de loops apertados de encantamento tipo, é
claro, no canto Mint, aí está. Vamos fazer este encantamento com um “S” no final. E então vamos fazer um ponto de registro diferente V8. Ou registra esses encantamentos. Mc, coagir mod, mod ID. Bons velhos favoritos. E nós vamos apenas adicionar isso na parte inferior do
registro DOT de Chopin com ainda mais a taxa. E agora podemos criar nosso objeto de registro. Então vamos ter um público estático, objetos de registro
final do tipo encantamento e minutos. E isso vai ser chamado de nece irregular. Vai ser igual a pontos de registro no registro de Chopin. E vamos dar-lhe o nome de franqueza. Claro que sim. Você está bem misturado hoje. Em um novo encantamento de franqueza. Isso não é ótimo? E então precisamos especificar algumas coisas. Então, uma das coisas é a raridade. Vamos apenas torná-lo comum. Então esta é apenas a frequência com que ele apareceria. No lado da mesa. Vamos ter pontas modernas,
desculpe, isso é o, isso ainda não existe. Certo, vamos ignorar isso agora mesmo. Em seguida, temos o tipo danificado, e depois temos slot de equipamento E. E este vai ser o chapéu principal. Agora, como podem ver, nós realmente deixamos um desses aberto aqui. E este seria o tipo de encantamento porque nós também vamos criar um Sharman para digitar aqui. E haverá um encantamento final estático privado, almoço, tipo NAS. Agora a idéia do tipo, e nós vamos rapidamente ele também entrou para importar o tipo de encantamento. O tipo provisório não é suficiente. E ele basicamente diz Então vamos olhar, por exemplo, o Considerando que não há uma arma de dano, certo? Retornar verdadeiro se isso pode ser passado, desencantamento não pode ser inacreditável. Se um item dado, este encantamento
pode estar em Charlotte neste item? E a idéia é que, bem, uma arma, um pode ser carregado para um item de espada e um escavador pode ser o item de ferramenta e assim por diante e assim por diante. Agora. E isso é basicamente o que estamos fazendo com seu tipo de franqueza. Estamos apenas dizendo tipo encantamento, ponto-ponto criar. Então estamos criando um novo. Agora, o nome aqui, não
tenho 100% de certeza se precisamos ou não fornecer o corpo MC. Foram os, digamos que a doença aqui antes. Ou se pudermos esfriar, franqueza. Não tenho 100% de certeza sobre isso. Funcionou em ambos os sentidos, mas eu pessoalmente acho que isso faz mais sentido porque caso contrário no tipo Sharma não tem idéia de onde isso está vindo. E então precisamos fornecer um, este é um predicado, Sim, um item. Vamos fazer item e, em seguida, item, instância de item contundente. Então a idéia aqui é que o método de criação leva em um nome e, em seguida, um predicado é delegado, é basicamente exatamente este item de tiro de canhão bem aqui. E isto é o que lemos aqui. E então o que podemos fazer é fazer mais nos meses do Sean. Tipo de claudicação. Agora é muito importante que você escreva o nome da classe aqui porque se você só fizer tipo de
franqueza e você obter
a seta referência ilegal para a frente. E isso não é o que queremos. Queremos ter certeza de que você tem o nome de uma classe na frente dela como uma chamada estática. Então, é claro, também adicionar o nosso público favorito estático, vazio, registrar, registrar, registrar um ego. E isso está tudo dentro do nosso MC. Pior mod, encantamentos mod não registrar. Certo? Sei que parece loucura, mas só isso. Acho que é bastante simples. Tudo considerado, ou o fato de que acabamos criar um novo encantamento com um novo tipo de item. Vamos dizer. É claro que o que também precisamos são os diferentes arquivos. Então nós vamos apenas ainda, nós vamos apenas obter o lang Na verdade, eu vou copiar rapidamente isso sobre porque isso é algo que é, então para o nome do encantamento, nós temos encantamento dot mod ID, então núcleos MC e, em seguida, o nome que demos, o encantamento aqui. Então, este aqui. E então isso vai ser só claudicação. E para o clube, que eu criei é apenas item em SQL, há clube de cobre. E nós, é claro, também precisamos do modelo de item para isso. Vamos apenas copiar isto. Sim, por favor escreva, não deve ser nada louco. O item de uma vez é interessante e agora você vai ver minha criação absolutamente incrível do clube de cobre. E eu tenho que ser honesto com você, eu realmente gosto disso. Oh, nós vemos permitir ou devemos olhar para ele no jogo? Vamos olhar para ele no jogo. Eu realmente gosto disso, mas este é em primeiro lugar, eu acho que é uma das minhas melhores criações, ou digamos minhas melhores criações. E acredito que isso é tudo o que precisamos fazer para que tudo esteja no jogo. Deixe-me passar rapidamente por não, deve ser tudo. Então vamos começar e ver o que acontece. E claro, mais uma vez, o que eu queria mencionar é que a coisa com o item contundente não é necessariamente necessária. Porque, claro, o isso é apenas um, digamos um exemplo primo ou um não um exemplo primo. Um exemplo específico que um aluno tinha. Você queria que eles queriam um item específico, um objeto contundente. Eu quero um balão. Eu não quero, eu quero que ele seja responsável com Londres, com falta, mas sim com franqueza. E eu estava tipo, ok, isso realmente soa uma idéia interessante. E é por isso que fizemos isso. Então vamos criar um novo mundo com o modo criativo. E depois ver o que podemos ver. Muito bem, vamos preparar isto rapidamente. Então, em primeiro lugar, o clube olha para isto. Isto não é lindo? Esse clube não é a coisa mais linda que você já viu? Embora talvez não, mas ainda assim, eu gosto. Mas eu gosto. Vamos fazer um enjambment, um MOOC. Vamos pegar garrafas de encantador. E agora você pode ver os livros encantados aqui. E se descermos, podemos realmente ver a franqueza 12345 porque eles são adicionados automaticamente. E se agora tivéssemos aumentado o nível, isso também aumentaria o número de livros que temos. Vamos apenas tomar a franqueza S1 e S2. E vamos também tomar a OSU. O Nolan. Eu queria nitidez, certo? Isso é só tomar NO2 shortlist, três livros. E também vamos pegar uma espada. Vai para o tipo normal. E precisamos de mais alguma coisa? Talvez uma estante, Omar mímico. Você também precisa de um animal. Um monte de coisas que vamos precisar. Lá vai você. Vamos preparar isto rapidamente. Só te mostrar que realmente funciona. E então podemos mudar para o modo de sobrevivência foi alguns níveis. As primeiras coisas primeiro, se colocarmos isso. Então você pode fazer uma travagem, como você pode ver. Porque isso é, isso funciona em quebrar e quebrar. Força seria bom se também tivéssemos um pouco de treliça A. Se você está no modo criativo, então há algum funkiness. Isso pode ser, pode não ser bom porque E e quebrar por escrito e escrito. E vamos ver. Então, se entrarmos aqui, que possamos encantar isso com franqueza, como podem ver sob a espada, não
podemos canalizar a franqueza. Podemos fazer isso com nitidez. Isso funciona. E a nitidez neste não funciona. Então isso é um bom teste para, primeiro lugar, que isso, que isso funciona. E se nos dermos alguns livros, talvez possamos, bem, podemos fazer isso. E então vamos ver, flatness, que eram franqueza. Isso é meio legal. Agora a grande questão é, podemos pegar esse outro? É agora que finalmente temos um pouco de franqueza aqui. Lá vamos nós. Lameness um, certo? E isso já é tudo o que precisamos fazer para colocar isso no chocolate lá e realmente tê-lo específico para algo, algo assim porque é como nosso próprio item. E se olharmos para isto, certo, um normal atacou a imagem três, isto agora atacou danos ou porque tem cegueira. Certo? Isso não é ótimo? - Sim. E isso foi tudo por adicionar um encantamento. E também, digamos que simultaneamente são uma classe de item, nossa própria marca única de item, digamos. E sim, foi basicamente isso. Se houver alguma pergunta, é claro, sinta-se
sempre à vontade para perguntar. E sim.
73. (Minecraft) Geradores de dados para itens e blocos: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos dar uma olhada nisso, geradores de dados. Agora, geradores de dados são basicamente uma maneira fácil de gerar a totalidade de todos os nossos arquivos adjacentes que temos feito manualmente todo esse tempo. E esta é basicamente uma maneira automática de gerá-los. E isso torna a vida sobre, eu diria aproximadamente um 120% mais fácil. Especialmente se você tem um monte de blocos, um monte de itens. Torna incrivelmente fácil gerar tudo. E então a primeira coisa que vamos fazer aqui é realmente vamos
renomear a guia do curso dois núcleos, tabu, pequeno t. Nós vamos salvar isso. E, em seguida, apenas para ter certeza de que em vez de nossa pasta de idioma, nós também vamos mudar isso. Então, em vez de ativos, núcleos MC, Lang, e, em seguida, dentro de EN sublinham nós funciona. Vamos mudar isso para curso, toque com um pequeno T porque caso contrário vamos ter um erro dentro das próximas palestras. E é claro que não é o que queremos. O que queremos, no entanto, é,
bem, basicamente, descobrir tudo. Na verdade, nem precisaríamos mudar isso. Porque o que vamos fazer agora é que vamos apenas liderar, vamos apagar tudo. Então Bloch afirma, Lang, modelos. Todos os três. Apague, Sim, longe de mim. Mc curso saquear mesas, receitas, tudo isso inteiramente. Fora daqui. Não te quero nem uma hora, nem quero ver-te mais. Então agora não temos texturas, não temos, não temos nada quando se trata de nossos blocos. E precisamos descobrir como podemos basicamente restaurar isso. Agora, a propósito, há algumas coisas em que isto, é
claro, antes de tudo, não basta apagá-lo. Isso é mais dobrável. Não apenas apague. Na verdade, certifica-se de confirmar isso porque você fez aqueles do Jason. Então isso é meio importante. Também quando você tem, especialmente dentro de nossos dados de blocos personalizados. Então, a nossa entidade título que fizemos a eletrificar ou certifique-se de que você não jogar que Jason maneira porque isso é bem basicamente gerado assim a partir de workbench. Então isso não vai ser facilmente reproduzido, digamos como alguns outros podem ser, certo? Mas agora vamos começar com o gerador de dados. Isto é, é claro, a exclusão aqui é, naturalmente, apenas para, digamos, algum lugar entre propósitos cômicos e valor de choque. E nós vamos criar um novo pacote em nosso curso MC, pacote
MB chamado Data. E dentro disso, tudo o que vamos fazer vai agora. Então a primeira coisa vai ser a taxa de
Jenna degenerada de dados para a classe ego. Vou acrescentar isto, é claro. E então nós vamos simplesmente ter este ser um, adicionar um ponto mod, até mesmo um assinante. Isso é claro, mais
uma vez algo que já vimos. Este é mc curso MOD id, e então o ônibus vai ser mod,
mod Dot evento barramento assinante, ponto de ônibus. Nós, então, também precisamos de um geradores de dados privados com nada nele, o construtor. E então queremos sequestrar basicamente. Agora isso é, isso está correto. Estou, tenho quase certeza. Bem, que tal este? Se é o nome certo, então vai funcionar. E então vamos ter um vazio estático público coletado dados. Então este é o evento que vamos sequestrar. Este é o evento ou evento de dados coletados neste caso. E este aqui é, naturalmente, um assiná-lo. Agora isso é tudo algo que vimos com os eventos mod. Na verdade, vamos precisar disto. Então, obrigado que lá dentro, dentro daqui, o que queremos é um gerador de dados. Este vai ser o gerador igual ao evento ponto get gerador. Então isso simplesmente nos dá o gerador de dados. Em vez deste evento de dados reunidos juntos evento de dados. Vamos ver se ele não tem nenhuma explicação para onde ele está. A idéia é que, bem, ele reúne dados. Quero dizer, dificilmente é difícil de descobrir, mas o ego, e este é o ajudante de arquivos existente. Você também pode perceber que isso é apenas algo que nós vamos precisar porque nós queremos basicamente verificar se alguns arquivos já existem ou não. Essa é uma espécie de essência. Mas vamos nos certificar de que isso é basicamente o que temos, certo? Então vamos começar com, se você acha que a primeira coisa que vamos fazer é o provedor de um estado de bloco. E isso basicamente é, faz com que tenhamos estados de Brock. Então vamos fazer uma nova classe chamada mod block state provider. Claro, os nomes aqui r podem ser escolhidos por conta própria. No entanto, ter um claro que é uma nomenclatura para eles faz um monte de diversão. Isso irá estender o provedor de estado do bloco. Certifique-se de que é o certo e o certo está no cliente. Então, minhas microformas de rede, nós queremos este, geradores de modelo
cliente é muito importante que você escolha o caminho certo. Caso contrário, vamos ter um monte de problemas. E como você pode ver, ele quer que nós implementemos um método específico, que é o método de conjuntos de registros e modals. Vamos fazer isso e ainda temos um erro. E isso é claro porque não temos um construtor. Agora o que podemos fazer aqui no construtor é que podemos simplesmente nos
livrar deste mod ID como sabemos qual é o nosso lema. E podemos acessá-lo indo para o curso MC Dartmouth. Fácil o suficiente. Agora, em vez de aqui, podemos agora registrar nossos blocos. Agora. A coisa é que esses blocos, um provedor, é claro, tem algumas coisas boas. Então, se eu colocar em bloco, por exemplo, como você pode ver, veja quantas coisas existem que nós podemos realmente registrar facilmente aqui. Temos bloco de acesso, blocos
direcionais, blocos de portas, cercas. Temos blogs de quatro vias, horizontal, horizontal, bloqueio de
fase, dor, lajes. Há alçapões, paredes. Todos aqueles muito fáceis de registrar com simplesmente usando essas chamadas de método. Claro que vamos usar o bloco de símbolos aqui. E o que vamos fazer é dizer mais blocos de ponto. Vamos fazer o ponto do bloco de cobre. E depois vamos copiar isto. E então vamos pegar o fio de cobre também. Então, vamos levar isto. Eles vão, bem e já é isso. Ou basicamente como fazer os modelos de bloco. Quero dizer, nós só precisamos adicioná-lo aqui e depois, e então nós basicamente terminamos. E isso é muito fácil de adicionar. Então nós simplesmente precisamos dizer que ponto gerador no Provider. Agora nós acabamos de criar um provedor, então nós vamos apenas dizer novo mod, provedor de estado de bloco. E, em seguida, o provedor. O provedor precisa de um gerador e um ajudante comestível de arquivo existente. É isso. É tudo o que precisamos fazer. E então ele vai gerar para nós os estados mod Bloch. Sim, isso é basicamente todo o negócio. E vamos continuar, em primeiro lugar, com o e qual item modelo, porque isso é algo que é muito interessante também. Porque, claro, com os modelos de itens, o que precisamos é que precisamos do, precisamos disso para ambos os itens normais e, em seguida, também para itens de bloco, certo? E isso é tão simples quanto isso. Nós só vamos dizer, Ei, que fornecedor de modelo de item. E nós vamos dizer, pegue este provedor de modelo de item mais uma vez a partir de geradores modais cliente de microformas net, muito importante. Eu realmente quero enfatizar isso porque caso contrário, se você pegar o errado e sim, isso não é bom. Claro que isso nunca aconteceu comigo. Claro que não. Talvez, possivelmente, possivelmente no começo. Vamos acontecer às vezes é por isso que eu quero enfatizar isso aqui mais uma vez, o mesmo, mesmo negócio. Basta fazer o curso MC ponto-ponto ID para o MOD ID. E então todo mundo está realmente feliz com isso. Agora os modelos de registro. Queremos algumas coisas aqui. Então, primeiro de tudo, queremos chamar a largura pai existente. E nós queremos usar isso porque isso é basicamente cria nosso modelo de bloco. Desculpe, não. Bem, sim. Use o modelo de bloco. Faz o item para o bloco. Então este é o item de bloco. Basicamente. Este vai ser o bloco de cobre. E então nós vamos usar o bloqueio de modo aqui, que vai ser apenas bloco barra de cobre bloco. E depois vamos copiar isto. Então ou também porque isso é o que criamos dentro de nosso bloco, estadista bloqueia seu provedor. E então o que você quer é basicamente algumas maneiras diferentes de fazer isso. E eu vou fazer um novo método aqui. Isso não é necessariamente necessário, mas está tudo bem. Então vamos retornar um construtor ModelBuilder item. E então isso precisa de um item de arquivo mono gerado
e, em seguida, uma string com o nome. E nós vamos retornar obter construtor com o nome do caminho. E, em seguida, o pai vai ser item gerado. E então a textura vai ser a camada 0. E, em seguida, a textura está localizada na barra do item. E depois o nome. Ego. Vamos diminuir um pouco. E isso é um pouco mais fácil de preencher isso. Há várias maneiras diferentes de fazer isso. Então, por exemplo, agora aqui vamos fazer o arquivo modelo, o item gerado. Um. Isto é apenas quando você tem no topo do arquivo JSON onde dizemos lodo item gerado. Isso é basicamente quase todos os nossos itens eram isso. E sim, isso é simplesmente o que estamos fazendo aqui. E então o que vamos dizer é um construtor e um item gerado. E então o nome aqui seria, por exemplo, lingotes de cobre. Então vamos criar nossos lingotes de cobre. É modelos de item mod, certo? E isso é claro, também precisa ser adicionado à nossa classe de geradores de dados aqui. E isso simplesmente chega aqui em baixo. Então vamos apenas copiar isso e dizer itens mod. Qual provedor de modelo de item. E, claro, também leva um gerador, leva auxiliar arquivo existente. E no geral, essas são as duas primeiras coisas que eu queria mostrar de qualquer maneira. Então, que tal o que vamos fazer é correr isto e ver o que acontece. Agora estamos no jogo e olha para isto. O que é isto? O que nada tem nada, nem mesmo o nosso passo central. Nada tem textura. Bem, isso não é exatamente o que queríamos. Porque o que precisamos fazer é que não podemos administrar o cliente aqui. Bem, nós realmente queremos é que nós queremos executar outra coisa. E esses são os dados de execução. Então nós só precisamos ir para Gradle no lado direito aqui, tarefas de
microondas, se ela executar e, em seguida, executar esses dados e, em seguida, clicar duas vezes naquele. E agora temos essa aparição. E assim que isto passar, vamos ver algo muito interessante. Nós vamos ver um novo diretório sendo formado dentro do nosso diretório fonte. Como você pode ver, geralmente, esta era é normal. Agora, esse erro realmente não é normal. Então podemos realmente ver o que está acontecendo aqui. Então, há algo lá. Assim, os blocos de curso MC textura, bloco de
cobre não existe em nenhum pacote de pesquisa conhecido. Agora podemos realmente verificar, verificar isso, e ir para recursos, ativos, história, que são texturas. Não, isso definitivamente está lá. Também está no bloco Hopper, ponto PNG. Então isso definitivamente está lá dentro. Então deve haver algo mais que esteja um pouco errado aqui. Deixe-me ver o que está acontecendo. É claro, eu realmente sei qual é o problema aqui e é realmente muito bom. Isso é algo que eu realmente ao testar isso também esqueceu, mas é muito importante que isso é realmente feito. E é por isso que é muito bom que seja como no meio aqui, talvez. Então o erro aqui é que dentro da nossa acumulação Gradle, nós realmente precisamos adicionar algumas coisas. E esta é a visão número um. Quando descermos aqui para nossos arcos, precisamos adicionar isso para que possamos basicamente substituir esses arcos por isso. Basicamente, apenas certifique-se de que há também. Então, basicamente quando executamos os dados. Então, esses dados de execução que temos uma saída na fonte gerada recursos, mas que há também uma fonte de recursos principais e os
recursos gerados de origem ambos contam basicamente como um conjunto de recursos. Temos também de acrescentar entre o fim desta questão. Então, entre o fim deste Minecraft aberto aqui, aqui embaixo, e então antes das dependências, vamos adicionar a isso,
essas coisas, é claro, disponíveis como recursos, bem como para download e todo aquele jazz. E sim, exatamente. E então podemos basicamente deixar a compilação funcionar novamente. Então basta clicar no pequeno elefante com um botão de recarga e isso basicamente
deve funcionar muito rápido para construí-lo. Sim, lá vai você. E se agora executarmos esses dados novamente, podemos apenas apertar o botão Executar, o botão Play aqui, então tudo deve funcionar totalmente bem. Agora ainda vamos obter um erro de aspas. Isso não é realmente um erro real, então isso não é realmente arrogante. Quero dizer, claramente foi gerado. Não rodaria isso de novo. Porque é muito estranho que não faça sentido nenhum. Por que esse seria o caso. Claro que agora funciona porque é assim que fazemos. Certo. Ok, isso é ótimo. Então, se você entender isso, isso é uma espécie de flecha aqui. Então, basicamente, se você, se isso é um erro e, em seguida, é apenas como host remoto foi fechado, que isso é provavelmente algo que é melhor para você. Então, se você olhar para isso, desde que a execução da tarefa terminou executar dados é definido aqui e você tem todos os provedores tomaram o que quer, quantos milissegundos, então tudo está bem. E isso é muito estranho. Provavelmente foi porque o arquivo JSON ainda não foi gerado. Então, algumas estranhas são, se você entender isso também, não se preocupe com isso. Isso provavelmente não vai ser um problema. Mas de qualquer maneira, então agora temos um gerado, como você pode ver, gerado Maine. E se descermos aqui, recursos, recursos, curso
MC Bloch, estados e modais, e modelos de itens e modelos de blocos. E eles são basicamente apenas gerados para nós. Agora. Nós realmente temos que mudar aqui para executar o cliente, e então nós temos que executar o cliente. Então agora o jogo vai começar. É muito importante que você tenha em mente onde você está sobre isso. E que uma vez que você altera algo dentro de sua estrutura de dados, você apenas deixa os dados executar uma vez e, em seguida, começar. Então isso é como se eu não pudesse enfatizar isso o suficiente. Execute os dados primeiro e, em seguida, observe as alterações. Caso contrário, as alterações não serão vistas. E se olharmos para isso, por exemplo, você pode ver que o cobre em bom, o bloco de cobre e o cobre ou bloco todos têm texturas. Agora eles só, eles têm textura falada. Bem, isso não é o que eles querem. Eles vão, ambos arquiteturas como um bloco e também como um item. Então isso funciona perfeitamente bem sem nos ter que
fazer os arquivos JSON manualmente porque eles são todos aqui gerados como você pode ver. Então isto é só um bloco de cobre, certo? Gerado automaticamente. O, vamos olhar para a Inglaterra corporativa, por exemplo. Gerado automaticamente. Então esta é a grande coisa sobre os dados gera basicamente apenas gerar tudo automaticamente. Nós também vamos adicionar rapidamente as tags de bloco e os itens modais,
tags, geradores para provedores. Então vamos criar uma nova classe dentro do nosso pacote de dados, que vai ser bloqueado. Tags modais, rho vita. Agora, na verdade, não usamos muito o imposto. Isso vai estender provedor de tags de bloco. Esta é uma, esta é uma vez. Este é o realmente redes Minecraft os dados um. Neste caso, o construtor. Vamos pegar o segundo construtor, não o que está riscado. Mais uma vez, o ID do modo, podemos apenas pegar EMC, somos Smart ID. E então também queremos, ou queremos substituir o método ou registrar o imposto. Então, se colocarmos no registro e acertarmos Tab, então podemos apenas fazer isso. E então nós vamos apenas fazer um fácil para obter ou criar construtor. E vou dar-lhe uma etiqueta. Então nós podemos ir para blocos de tags, e nós vamos tomar ors. X precisa ser importado seu ego. E nós vamos adicionar os blocos de minério de cobre a ele ainda. E é isso, certo? Então, vamos apenas adicionar o trabalho corporativo para o ou tags porque é um ou. E então nós também vamos criar um mais tags de item. Não vamos colocar nada lá, mas vamos criá-lo para o Dia das Bruxas. Então mod item tags provedor neste também, e isso vai estender seu mais próximo de distância. Estendido o provedor de tags de item mais uma vez, que a rede de dados do Minecraft. Desta vez, vamos criar uma desconstrução. Ou mais uma vez, com o mais que eu tinha aqui, apenas fora disso. Mc, pior, AID, oops. Mc, identificação inteligente, o ego. E também é registrado textos sobrescrever. E nós apenas não vamos preencher este caso porque nós realmente não,
eu não acho que nós usamos mais tags de item ou as tags para os itens ainda. Nós usamos algumas etiquetas para os blocos, eu acredito. Mas nada muito louco, No entanto, ele está lá se você precisava. Então isso é muito bom. E isto vai ser feito aqui depois de tudo o resto. Então este gerador ponto gerado provedor ponto-ponto. Este é o novo. Vamos fazer as tags de item mod. Um provedor. Isso precisa de um gerador e agora, como você pode ver, isso realmente precisa de um provedor de tags de bloco, bem como, o que é muito importante. Então nós realmente precisamos fazer um pouco desajeitado, mas tudo bem. Precisamos fazer uma nova variável. Então modo Bloquear provedor de imposto, você só vai chamar isso algo como tags de bloco é igual a novas tags de bloco, gerador de
provedor e o auxiliar de arquivo existente aqui. E então isso pode ser feito duas vezes. Então podemos fazer o provedor de anúncios com os tanques de bloco aqui porque é claro que precisamos
das tags de bloco e, em seguida, nós também precisamos fornecer as tags de bloco em vez de nossas tags de item. E então também o porto de arquivo existente, e é isso. Essas são as coisas que eu queria basicamente acrescentar aqui. Então o que podemos fazer é executar os dados novamente. Bem aqui. Ele vai querer enfatizar muito importante, se você mudar alguma coisa dentro de seus geradores de dados, você adiciona mais tags. Ou se você adicionar um modelo de item, eles são sempre dados de execução. Quero dizer, eu sei que a pergunta vai aparecer, ei, eu, eu adicionei algo e não aparece. Executar dados. Isto é, eu só vou responder com dados de execução em perguntas como essa. E como você pode ver, lá vai você. Então, em vez de gerar o recurso principal, agora
temos uma pasta de dados também. E dentro disso temos as etiquetas do Minecraft. Agora ele realmente irá adicionar cada Jason para cada tag, apenas basicamente com os principais valores que já estão lá. E então se formos para os remos, por exemplo, então nós vamos ver, bem, não
vai estar aqui na verdade que está dentro do interior do previsível VSA você, então esta é a sobreposição basicamente, então as órbitas e então, como você pode ver, MC coagir, cobre ou que está lá dentro. Então ele diz, isso é uma espécie de,
uma maneira interessante e bem, muito fácil e eficiente de gerar novos arquivos JSON para seus itens. Para o seu, se você quiser adicionar tags ou se você quiser adicionar os estados Bloch ou blocos, é muito fácil de fazer. Acho que é incrivelmente útil e salvou-a. Especialmente se você tem, são como um 100 itens. Quer dizer, em algum momento você vai ficar bravo com a cópia e colagem que teremos que fazer só por causa das falhas do JSON. E aí, esta é uma maneira fácil de gerá-los automaticamente. Espero que isso tenha sido útil para você. Se houver alguma dúvida, é claro, sempre se sentir pré-tarefa e eu vou ter certeza de responder. E sim.
74. Gerador de dados para tabelas de Loot e linguagem: Muito bem, bem-vindos de volta ao curso de microondas. E nesta palestra vamos dar uma olhada em outro gerador de dados, na
verdade dois desses, verdade dois desses, e vamos fazer as tabelas de alaúde e seguida, também o arquivo de idioma gerar automaticamente. Então, vamos realmente apenas criar uma nova classe em vez de pacote R que já criamos última palestra. E este vai ser o provedor de tabela de saque MOD. Mais uma vez, o nome é, não tem, você tem que ser exatamente o mesmo? Mas faz sentido manter tudo pelo menos no mesmo bairro. Então isso vai estender o provedor de tabela de saque a partir de dados de Minecraft net. Então vamos criar um construtor que tenha isso. E agora vai haver algo que é um pouco estranho aqui, porque nós realmente vamos ter algo. Então, se entrarmos na tabela de saques, mouse do
meio, clique no botão. E como você pode ver, tem esta lista final, que é uma lista de pares de fornecedores, de consumidores, de bicicleta, consumidores de localização de recursos, construtor de mesa de
saque, quero dizer, isso é uma construção Isso é absolutamente ridículo na minha mente. Tenho que ser honesto com você, mas tudo bem. E se nós, então, vamos aqui, como você pode ver que há mesas de saque de pesca. Há, por exemplo, tabela de saque, Lu, Lu tabela, entidade Lu tabela e assim por diante e assim por diante. E isso também é algo que vamos precisar. Porque o que temos é que vamos ter um, Então, primeiro de tudo, vamos ter outra coisa aqui, que vai ser e mod bloco loot tabelas. Então, uma nova classe em vez de nosso pacote de dados. Legal MCH Block saque tabelas. E isso estende as mesas barrocas de alaúde. Tudo bem, agora não há nada aqui. Vou colocar algo lá dentro em breve. Primeiro de tudo, nós vamos, eu vou copiar isso porque isso é absolutamente loucura. Então esta é a lista de um par de um fornecedor, de um consumidor de uma bicicleta, consumidor de loops de localização de recursos, construtor de mesa. E aqui tem perímetros de mesa de saque. É chamado de tabelas de sublinhado de saque e é uma lista mutável de exatamente o par da máfia quebrou tabelas soltas que acabamos de criar aqui, esta classe e um conjunto de parâmetros de alaúde. Agora, o que tudo isso é, tenho que ser honesto com você. Eu realmente não me preocuparia com isso. É só uma maneira maluca de ter certeza que é um exemplo louco de ok, talvez poderia ter sido o Sul melhor feito aqui. Mas funciona. Só realmente, quero dizer, você sabe, eu provavelmente poderia explicar isso no final, mas neste momento no tempo, eu realmente diria, apenas, apenas pegue, apenas diga ok, apenas uma espécie de estranheza que nós não temos para entrar. Agora o que queremos é pegar isso. Então, se colocarmos “get”, vemos isso protegido e então tudo isso pegue as mesas”. Isto é o que queremos anular. E o que queremos devolver é basicamente esta mesa de ponto lou. Não, isso não é o que queremos fazer. Nós queremos fazer isso totalmente levou eles ir. E então a outra coisa que queremos substituir é validar. Este é o método de validação e nós não queremos chamar super, nós realmente não queremos chamar nada aqui. Como tudo o que fica como, ei, isso é uma coisa válida? Sim, é uma coisa válida. Não tenho 100% de certeza do que precisamos para substituí-lo sem nada. Eu acredito que tem algo a ver com algum tipo de estranheza
de microondas onde se não estiver dentro de um diretório de microondas, então ele não valida ou algo próximo a isso. Apenas certifique-se de que isso também está lá. E isso é basicamente o provedor de tabela de saque modo. Agora isso já podemos adicionar aqui. Isso será adicionado. Deixe-me ver, isso será adicionado aqui. Então este é o gerador dot-dot-dot provedor, novo provedor de mesa de saque com um gerador? Não, um gerador e um arquivo existente até este momento, nós realmente não precisamos do auxiliar de arquivo existente, mas precisamos de outro, precisamos de um parênteses finais o. E agora temos onde nós realmente adicionamos as tabelas LU está dentro do nosso bloco de lema tabelas LU, coisa
muito importante mais uma vez, também, se olharmos para trás para o provedor de tabela LU, agora só temos este bloco mod tabelas LU. Se, naturalmente, queremos adicionar um loop tabelas para,
por exemplo, mobs ou peito ou o que quer que seja. Eu aconselho você a ir para a classe provedor de tabela de saque aqui que nós estendemos e olhar para este campo, certo? Então, este par louco, loucura de fornecedor. E como você pode ver, você pode ir para as mesas de loop torácico. Nós temos as tabelas Lu entidade e você pode olhar para eles. Então, se você clicar no botão do meio do mouse sobre ele, em
seguida, ele vai abrir o, a classe real. E como você pode ver, há, por exemplo, aqui, eu aconselharia você a olhar para isso. E esta é basicamente uma maneira de fazer mesas Lu para outras coisas. Como, você sabe, outras coisas, não só blocos. Então, se você entrar lá, você será capaz de ver isso. E então é basicamente apenas estendendo essa classe e, em seguida, adicionando algumas coisas aqui. E nós vamos adicionar o método add tables. Vamos sobrescrever isso. E nós também vamos sobrescrever o método get known blocks. Agora isso vai retornar a caixa de ponto de registro, ponto obter entradas, stream dot dot dot map. Eu vou rápido e o que isso faz. E depois vamos fazer com o iterador do Colin. Então este é um tipo de bloco iterável. Agora temos todos os blocos dentro do registro Brooks adiado registro. E isso basicamente tem a lista, por assim dizer, de blocos. Agora, quando recebermos as entradas, nós vamos apenas obter uma, como você pode ver, uma coleção disso é basicamente uma lista. Então nós convertemos isso em um fluxo e, em seguida, tela que podemos mapear. E o mapa basicamente, como você pode ver, retorna um fluxo que consiste no resultado da aplicação de uma determinada função ao elemento do fluxo. Então, basicamente, para cada um dos elementos aqui, então estes são, naturalmente, agora. E quarteirões. Em vez de nosso registro diferido, aqui
mesmo, há uma coleção de objetos de registro. Então temos os objetos de registro em um fluxo. E então o que nós vamos dizer, ok, para cada um deles nós realmente vamos fazer ponto obter. E como sabemos, já
vimos várias vezes, se fizermos nossos blocos MOD, ponto fica, tão impraticável, Brock ponto começa e nós pegamos o bloco real. E então vamos transformar tudo isso em um iterador. E depois funciona. Esta é a essência disto. Mais uma vez, isso é algo onde não é necessariamente importante que você entenda tudo o que acontece aqui. Basta saber que os blocos conhecidos são basicamente todos os blocos que temos registrado. Isso é basicamente tudo o que precisamos. Agora, vou mostrar-vos isto com dois ou mais blocos e eles, vou copiar isto porque este muito importante, na verdade, cada bloco que vocês têm aqui, você precisa de um bloco como uma mesa de saque. Caso contrário, o jogo não vai começar. Isto é um pouco irritante. Não vou mentir, mas é assim que é. Então, as primeiras coisas primeiro, você pode apenas fazer esta tabela de saque de registro. Então, o bloco cai sozinho. Blocos bloco de cobre ponto, por exemplo. E, claro, não é bom, certo? Então isso significa simplesmente que o bloco de cobre na travagem, nós vamos cair sozinho. Essa é a coisa toda aqui. Então temos, por exemplo, se fizermos esta tabela de saque de registo, podemos levar esta. Então podemos, por exemplo, dizer se temos, digamos E, Vamos fazer blocos mod, laje, cooper, laje ponto get. E então podemos ter uma função aqui que é um bloco. E depois vamos abrir isto. Isto vai, então, devolver uma laje de queda. Não soltando sementes, apoiando laje com exatamente isso. Então, os blocos Ma'at, não o ponto de tapa de cobre. E precisamos fazer isso, é claro, porque isso é uma laje e não um, bem, não é um bloco normal, certo? Então ele precisa funcionar como uma laje. É quando precisamos fazer isso, é muito importante que basicamente coloquemos isso nesta tabela de saque um. E esta é quase basicamente toda a ideia ainda. Vou copiar o resto agora mesmo. Espero que esteja tudo aqui, mas tenho certeza que está. Está bem. Então, se há algumas coisas que realmente não temos em sua matriz. E depois a laje de Cooper, não fizemos literalmente isso? Oh, bem, oh, isso é três peças. Lá vai você. Isso é bem, isso é meio embaraçoso. Bem, que seja. Então isto é, isto deve ser cada bloco. Vamos ver se é ou não uma vez que funcione ou não. Mas sim, essa é a ideia. Você tem que adicionar tabela para cada bloco. Pelo menos isso foi uma coisa que não aconteceu. Como se não funcionasse para mim se eu não adicionasse nenhum, cada bloco que estava basicamente nos não-blocos. Então vamos apenas executar os dados e ver o que acontece que nós já adicionamos o provedor de tabela de saque
Mott aqui. E isso é claro, as tabelas de bloco LU são, naturalmente,
basicamente, nesta lista aqui. Então vamos ver o que acontece aqui. E nós realmente vamos receber um erro. Muito provavelmente há um bloco que eu perdi. Essa é a coisa mais provável. Então, é definitivamente as tabelas LU, bem como você pode ver quando você tem uma seta neste dados de execução, você pode sempre ver ok, tags de
item terminou e, em seguida, começando provedor Lu tabelas. E então você sabe, tudo bem, tem algo a ver com as mesas do Lou. E geralmente isso não vai gerar muitas idéias sobre o que aconteceu. Você realmente vai ter que subir um pouco. Na verdade, isso foi alguns dos desaparecidos e essa é a placa de pressão. Eu não sei pelo meu teste meu repositório de testes, basicamente, meu projeto de pré-teste. Provavelmente houve um erro de digitação lá também. Vamos ver. Então, provavelmente está faltando algo de novo. E isso vai ser, vamos ver. Nós também podemos MC, Não, nós temos que ir para este e então eu sou pontuação. E então vamos ver, este seria MC. Ok. Lá vai você. Então faltando mesa de loops para as tábuas de madeira vermelha. Também é só um nome que estava errado. Prancha. Ok, isso é interessante. Então eu chamo a prancha aqui. Isso é bom. Isso não é um problema. Pelo menos lá. Então isso é um pouco de descuido, provavelmente. Mas se fizermos isso agora, acho que agora deve funcionar. Se não houver mais bloqueio faltando. E também não devemos ter nenhum erro. Parece bom. E então, oh, provedores tomaram qualquer milissegundos. E então, é claro, como sabemos, quando temos a era entre aspas, a conexão do host remoto foi fechada. Isso é bom. E então, se você olhar aqui para baixo em nossos núcleos MC de dados, tabelas de loop, nós podemos realmente ver que tudo, cada tabela de loop aqui foi adicionado corretamente. Bem, isso é muito bom. E, em seguida, vamos também para o provedor de idioma. Isso é algo que é muito interessante. Então, vamos apenas adicionar uma nova classe ao nosso pacote de dados, resfriado o provedor de linguagem mod mod. Esta classe estende o provedor de idioma desta vez por dados comunistas Minecraft net, muito importante. Isto vai implementar as traduções EPS, o método aqui. E então nós também, é claro, precisávamos de um construtor. Não precisamos da AIDS mais uma vez. Então isso é muito parecido com muitas das outras coisas que usamos. Curso MC, ponto-ponto-ponto. E dentro daqui, o que realmente vamos fazer é fazer uma string chamada locale, this.name substituir por linguagens de sagas
Lang, Lang Guan. E depois substituído por nada. E então vamos fazer uma mudança de localidade. E então aqui nós realmente temos um caso. Então nós vamos fazer o iene US, então assim. E então eles quebram aqui. E então um caso padrão com basicamente nada porque eu me desculpo, eu não tenho idéia por que ele mudou, mas eles vão, isso é o que acontece. E, dentro daqui, usamos a adição. Vamos usar o método de adição para adicionar coisas, certo? Então, como você, eu vi, você pode ou você também pode colocar em blocos ou outra pessoa, ou você pode colocar em chaves. Então, por exemplo, nossas chaves seriam algo assim. Então nossas chaves são algo como, por exemplo, item MOOC curso, lingote de cobre. E isso seria traduzido para operá-lo. Quer dizer, que sinto que faz sentido. Agora também precisamos fazer duas coisas em nosso gerador de dados. Então vamos adicionar isto e ver se funciona. Mas tenho quase a certeza de que vai. Precisamos adicionar algo aqui. Esta é uma matriz de cadeia de caracteres final estática privada chamada códigos locais. Agora estes são os códigos de localizações que somos basicamente, bem, vamos querer apoiar. No nosso caso, vamos apenas fazer EN nós. Você pode, claro, também adicionar o seu próprio uma vez. Então, por exemplo, eu acredito que a Alemanha seria algo como d, d, eu acredito, eu não tenho certeza na verdade. Certifica-te de que procuras isso, que é facilmente encontrado. Ou se você tem, eu não tenho certeza se é EN GB para a Grã-Bretanha. Eu não tenho certeza. Mas sim, aqui é basicamente onde você adicionaria todos os códigos locais. Este é apenas basicamente o mesmo nome que tínhamos em nosso site sobre ativos pasta Lang, certo? E então nós também vamos adicionar um vazio estático privado em provedores de linguagem com um gerador de dados, o gerador como um parâmetro. E dentro daqui vamos usar um locale for-loop string definido sobre códigos locais. Então isso basicamente garante que passemos por cada um dos códigos locais que temos. E então vamos gerar nosso provedor ponto-ponto,
novo provedor de linguagem mod, o gerador e o vigia. Agora, é claro, nós só temos a EN nós, mas tudo bem. Como eu disse, você pode adicionar suas próprias línguas ou até mais línguas como muito facilmente, na verdade, neste caso. E então vamos apenas executar isso e ver se ele gera o, bem, ele não vai gerar isso. Na verdade. Pare com isso porque nós realmente precisamos adicionar isso aqui também. Claro, adicione provedores de idiomas com o gerador. E então ele vai, então nós vamos correr e ver se funciona. Agora, isso é uma parte importante disso. E então nós vamos realmente também olhar
dentro, no jogo se tudo o que nós adicionamos aqui vai ou não funcionar. Então, todos os provedores tomaram qualquer milissegundos. Isso é ótimo. Então isso significa que tudo pelo menos parecia funcionar importante. Na verdade, temos que deixar isto correr até aqui,
até que esta mensagem chegue. Caso contrário, nada aqui é gerado. Então vamos ver. Isto foi gerado dentro de ativos, MC curso Lang, Mas não é agora. Mas vamos ver se isso ou não, a localidade ainda ocorreu. Então vamos executar o cliente e então vamos executá-lo. Tudo bem, vamos ver, vamos começar o jogo. E antes de tudo, vamos ver se isso ou não, então o lingote de cobre não tomou seu nome, mas tudo bem. Porque eu realmente acho que eu sei por que ele também não gerou a coisa esquerda, que, que, essa é uma das coisas. E vamos adicionar uma picareta e vamos ver se consigo extrair isto,
claro, ir para a sobrevivência. E, em seguida, se nós minado isto é, claro, ainda são som que nós adicionamos. E como podem ver, estamos conseguindo as coisas que queremos. E se voltarmos para as lajes, por exemplo, que é claro, agora não têm laje. Lá vai você. Isso é realmente como pilha de, Isso mesmo. Então, claro, ótimo. Parece incrível. Mas como você pode ver, derruba dois desses. E podemos, é claro, fazer isso e depois soltar um. Então, funciona. Agora, claro, sem nenhum, sem os modelos, não
faz muito sentido. Agora aqueles, é claro, precisam ser adicionados ao lado de nossos modelos, ou melhor, o bloco, estados de bloco. E depois, claro, sim, o estadista do bloco. E, claro, dentro de nossos modelos de itens também. Então é aí que isso seria adicionado também. E agora de volta ao idioma. Foi um erro muito estúpido. Na verdade, isso precisa ser um grande L. Então, um “L “maiúsculo e acredito que isso já conserta tudo. O problema é muito estúpido. Às vezes, quando você está usando strings codificadas, elas nem sempre são. Lá, muitas vezes pode levar a coisas ruins. E como podem ver, a linguagem E, N, U, S terminou em dez milissegundos. E depois que isto acabar, eles vão. Em seguida, uma pasta de idioma aqui é criada. Dentro dele temos a EN sublinhado US item curso MC cobrindo-o para lingote de cobre. E então só para que fique claro e vamos ver esse trabalho dentro do nosso jogo. Nós vamos ver isso aqui, e isso é realmente fácil como este também é muito fácil de adicionar, certo? Podemos ir e adicionar tudo aqui. Você sabe, ter vários idiomas suportados muito fácil, basta criar um novo caso em todos os itens. E sim, e então só funciona. Então é muito fácil e muito agradável. E então vamos ver. Então, se formos para o item aqui, eles vão pairando e é isso. Isso é tudo o que há para ele. É muito fácil. Muito fácil também. Adicione os idiomas neste caso. E sim, sim, foi isso para o provedor de idiomas Mod e também para as tabelas azuis. E na próxima palestra, vamos basicamente terminar o gerador de dados 4k, por assim dizer. Nós vamos dar uma olhada nas receitas e também os avanços é que eles estão meio que ligados entre si. Eles são um pouco de uma sobreposição. E sim, então foi isso para esta palestra. Espero que tenha achado útil. Se houver alguma pergunta, é claro, sinta-se
sempre à vontade para perguntar e eu vou ter certeza de responder. E sim.
75. (Minecraft) Gerador de dados para receitas e avanços: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos dar uma olhada
nas receitas de modo e também nos avanços para gerá-las dentro de nossos geradores de dados. Então, primeiro as coisas vamos criar uma nova classe. Mais uma vez, este vai ser o provedor mais receita. E isso vai estender o realmente um pouco mais complexo desta vez. Então isso vai ser estende o provedor de receita de dados net Minecraft. E também irá implementar o construtor de condições. E vamos ver o que tem a ver com isso em breve. Em primeiro lugar, é claro, basta importar o provedor de receita. E então vamos sobrescrever o método de receitas de registro aqui. E nós vamos criar a, digamos, uma receita em forma para o nosso bloco de cobre. Então isso vai ser muito fácil. E você vai dizer, isso é incrível, exatamente. Construtor de receita em forma, não receita em forma. E então o que queremos é o resultado. Então isso é blocos mod, esse bloco de cobre, ponto get. E depois fazemos uma nova linha sem fechar isto. E depois vamos fazer ponto. E depois diremos a chave. Ou a chave é o que somos, o que damos insights sobre receitas, bem como sobre as chaves. Então isso é, por exemplo, vamos dizer que vamos fazer um grande C. E isso vai ser o que item é lingotes de cobre ponto. Alguém gosta de outra leggings, o lingote, na verdade, eles vão ponto pegar. E então vamos dizer que o padrão,
luz e linha padrão é uma corda e este é o padrão que temos que fazer. Então, neste caso, esta seria uma mesa cheia e uma mesa de artesanato, certo? Se fôssemos fazer isso, o meio estaria vazio. Então isso deve ser realmente muito facilmente entendido com a mesma idéia com as receitas que fizemos com arquivos adjacentes. Então o que precisamos é de um critério de aplicativo. E um critério é basicamente uma maneira de especificar quando você tem essa receita desbloqueada dentro do seu livro, certo? Então você tem este livro e lá você tem esses critérios. Podemos dar esses nomes. Então, por exemplo, poderíamos dizer que cooperar é um nome teórico, certo? E então precisamos ter uma instância de critério. É por isso que o construtor de condições também é bom. Tem item é um, algo que podemos fazer. E tem item literalmente é exatamente isso. Ele verifica, hey, nós temos este item? E se tivermos este item, então esta receita é adicionada ao nosso inventário ou sim, basicamente assim. E depois, no final. Bateado com o consumidor que temos aqui em cima. E é isso. Isso é basicamente como adicionamos uma receita em forma para o bloco de cobre neste caso. E isso vai aparecer dentro do livro. Então, numa espécie de livro de receitas, assim que tivermos um lingote de cobre dentro do nosso inventário. É isso. Agora vamos verificar quando entramos nos geradores de dados e vamos adicionar isso. Então vamos adicionar isso entre as tags de item e as tabelas de loop bem aqui. Provedor de aplicativo Generator dot, um novo provedor de receita de modo com o gerador que você usa. E então vamos executar os dados e ver se ele gera uma receita aqui ou se ou não, mais
uma vez houve algo perdido. Não é improvável, mas acho que desta vez, você pode ter sorte. E tivemos sorte. Talvez tenha sido sorte ou talvez tenha sido experiência. Quem sabe? Seja o que for, funcionou. Então vamos ver. Uma vez que isso se foi, eles vão receitas de curso MC e também avanços. Porque o avanço é sempre parte da receita basicamente. Então, se você entrar aqui, como você pode ver, isso é exatamente o mesmo que nós já vimos. Esta é uma receita em forma com tudo sendo o lingote de cobre e o resultado é o bloco de cobre. E esse avanço faz parte das receitas. E é por isso que precisávamos mudar o nome da guia do curso. Se você não mudou o curso apontou para este momento você terá um erro. Você simplesmente precisa mudar isso para um cavalo e uma pequena guia. Você também pode fazê-lo colocar em um, um sublinhado entre essas duas palavras. Mas seja o que
for, ele precisa ser basicamente compatível com a convenção de nomenclatura do poço, como IDs. - Sim. Essa é a palavra que eu estava procurando. Eles vão, certo. Então isso é uma coisa que podemos acrescentar. E então, claro, há muitas outras coisas, certo? Então nós podemos, é claro, também, se nós apenas colocar em construtor, se nós podemos obtê-los, mais fácil, há um monte de construtores, como você pode ver muito claramente. Ok, que tal uma receita, provavelmente mais fácil de obter essa receita de forma. Certo, vamos fazer receita de ovelhas de novo. Nós também podemos ir
que, na verdade, é onde eu queria ir, construtor de receitas sem forma. E então também podemos fazer uma receita sem forma, por exemplo, é claro, mas muito facilmente feita. Mas uma coisa interessante é copiarmos isso e digamos,
bem, você sabe, podemos usar todos os lingotes de cobre para isso. Mas se me permite, você sabe, roubo como fios de cobre aqui, que também funciona para um par de livros. Não sei porquê, mas talvez seja esse o caso. Podemos, por exemplo, copiar esta chave. Podemos ter, eu acho que tantas chaves como 31, mas mais de nove não faz sentido neste caso porque esse é o número de possíveis blocos de fabricação que podemos realmente ter. Então vamos adicionar um fio de cobre aqui. E então, por exemplo, poderíamos adicionar outro critério para ter,
hey, você tem que obter fio de cobre. Isto é tudo muito, é por isso que é um construtor, certo? É um construtor. E a grande coisa sobre o construtor é que é muito fácil apenas adicionar, certo? Nós podemos apenas adicionar coisas e dizer hey você, isso é outro critério e assim por diante e assim por diante. Agora, neste caso, o que vai acontecer é que isso não vai funcionar porque agora temos um bloco de cobre adjacente e outro casal, Dr. Jason, por causa do nome, é sempre o nome do resultado. Portanto, o que precisamos, precisamos realmente adicionar um novo local de recursos aqui. Então, nova localização de recursos. Este vai ser Mc curso AID, AID. E então vamos chamar isso, por exemplo, bloco de cobre, antigo, alternativo ou algo assim. E outros parênteses. Lá vão eles. Sabe, algo assim. Não é o mesmo nome porque, de outra forma ,
como eu disse, não vai funcionar. Vamos apenas executar isso novamente e, em seguida, ele vai criar uma nova receita mais uma vez. E também em novos avanços, mesmo sendo ambos,
ambos acontecem
no mesmo momento em que você tem um lingote de cobre dentro de seu inventário, ainda
é, eu acredito, vai adicionar um novo anúncio se declaração. Então vamos ver se funciona ou não. Mas tenho quase a certeza de que sim. Ele faz. E como você pode ver, cobre sublinhado Block, velho. Um. muito importante. Se você quiser que suas receitas tenham o mesmo,
Então, para ocupar o mesmo espaço, por exemplo, se você adicionar algo como colorido, algo colorido, certo? Então você quer que cada uma das receitas para estar no mesmo grupo, então você pode apenas fazer set group e ter o mesmo nome aqui, certo? Então set group, eu não sei fff. Eu aconselharia você a pegar sua identidade, colocar isso antes de alguns dois pontos e então você pode fazer o grupo que quiser. Neste caso, vamos deixar que fique assim. E vamos apenas, vamos apenas começar e ver se as receitas que você trabalhou ou não. Mas tenho quase a certeza de que o fizeram. Eles geraram completamente bem e eu acredito que , em seguida, as receitas vão funcionar muito bem. E essa é a razão, é claro, os avanços virão depois disso nesta palestra também é porque, como você viu, os avanços estão muito relacionados a isso. E vamos ver se isso é coisa. Então agora eu não tenho o pairar, eu acho. Eu acredito que não, eu não acredito. Então vamos pegar a cobertura e jogá-los no chão. E depois mudo de volta para a sobrevivência. E assim que eu recebê-los, vamos ver
novas receitas disponíveis. Como pode ver, vamos voltar aqui e ficar longe desse cara. Então novas receitas estão disponíveis. E à medida que abrimos isto e entramos na nossa direita,
sim, não está realmente em lugar algum porque é claro que podemos criar isto. Queremos ir para o funcionamento da mesa de trabalho hoje, eles vão. E então se olharmos para isso, eles vão para o bloco de porto, ou com os fios de cobre aqui ou os ingleses ou apenas os lingotes. E nós podemos realmente fazer isso. Então podemos fazer isso, BAM. E aí vai você. Sim, isso é, é assim, como você adiciona as receitas realmente fáceis de usar aqui. A melhor coisa, mais uma vez, é brincar com ele um pouco, ter uma sensação para isso. E sim, então vamos dar uma olhada em como os avanços, uma pele, eles são um pouco mais complicados. Talvez até quando deveriam estar, mas tudo bem. Então a primeira coisa que vamos precisar é que vamos precisar de uma classe chamada mod it Vance meses fornecedor avanço. Agora, isso vai implementar na interface. Eu fiz um provedor. Este é o provedor correto deve tomar porque eu não tenho 100% de certeza. Na verdade, é o Minecraft para data.frame provedor implementar métodos. Isto é quando temos o método act
eo método getName que precisamos implementar aqui. E há algumas outras coisas que queremos também. Então, por exemplo, queremos um construtor de provedor de avanço de modo público com o gerador de dados. E o gerador. E nós vamos apenas dizer este gerador de nome, que na verdade ainda não existe. Então precisamos adicionar o gerador de dados final privado do pântano,
gerador , gerar rasgos, desculpe, o ego. E este gerador é igual a gerador. Então precisamos ainda vamos adicionar isso também. Então vamos apenas adicionar o mais baixo também. Então, certo, logger final estático, Este vai ser o log org Apache. Procure por J logger, gerenciador de
bloqueio ponto get logger. Normalmente temos o que temos feito é que
temos apenas gerenciador de fechadura, ponto, obter logger e, em seguida, colocar algo para fora. Claro que também faça isso. Ambos funcionam. Isto é provavelmente um pouco mais limpo. Não só provavelmente é um pouco mais limpo, mas tudo bem. E então o que é uma estática particular, último filho homossexual. Então este é um G SON do Google. E depois há um G, alguns não adjacentes, mas um JSON. Tão pouco confuso é igual a um novo construtor JSON. Conjunto de pontos, ponto de impressão bonito criar. Vamos precisar disto para alguma coisa. Vamos ver isso em um segundo. Então, as primeiras coisas primeiro, dentro do nome. Nós vamos voltar em avanços de var. Certifique-se de que isso está correto, avançar os avanços do ego e fazê-lo. E também queremos uma metade privada cética. Agora este caminho vai ser o caminho para o novo arquivo Java. Isso está correto. Este é o caminho, caminho com Puffin. Nós temos, e então você também tem conosco ainda não feito, mas tudo bem. Então, temos o acabado. Avanço, que é apenas um caminho de retorno avanço nessa determinação. Não, não resolva. Resolver o ego, que são dados, e depois o avanço, obter ID. Agora, tudo isso ainda não está feito, mas nós vamos apenas para namespace. E, em seguida, um corte mais em, em cimento. Avanços, muito importantes. Avanço Plural Plus, ponto GetID. O que obter PAF, ponto mais ponto JSON. Parece loucura. Claro, disponível para você como um recurso. Mais uma vez, também, isso seria Avanço. Eles vão, bem, esta é uma aula que nós também vamos fazer. Eu não posso acreditar que é sempre o E depois do C, isso é um desaparecido lá. Então não é muito bom, mas tudo bem. E então eu acredito que nós precisamos do cimento acabado também. Sim. Então vamos criar isso agora mesmo. Então este é um final inacreditável. O “E “é engolido sempre. E isso realmente vai ser, nós vamos apenas copiar isso apenas para o Dia das Bruxas
agora porque é muito mais fácil. E eu vou explicar em breve o que está acontecendo aqui. Então isso basicamente nos permite ter uma localização de recursos e como você pode ver, um construtor de avanço. Então podemos construir um avanço com isso. E como você também pode ver, temos um objeto JSON. E isso basicamente serializa. Isso retorna o construtor,
que, em seguida, por sua vez, torna para que possamos
usá-lo dentro de nossa classe provedor de avanço. Na verdade, temos uma lista de, não são listas muito loucas. Então, se olharmos para nosso provedor de dados, há algumas, algumas coisas aqui ,
mas se usarmos isso, acredito que podemos realmente ver os avanços também, certo? Então provedor Avanço, então este é o provedor de tempo de execução do Minecraft. Poderíamos,
evidentemente, apenas pegar isso e fazer com que nos estendamos a partir disso. Em vez de implementar o provedor de dados. Ambos funcionam como se não fosse. Uma coisa não é certa e uma coisa é errada funciona em ambos os sentidos. Mas a grande razão pela qual fazemos isso basicamente por conta própria, porque o provedor de avanço tem algumas coisas que não estão abertas para nós. Se a estendermos. Deixa que a essência básica disso, vamos deixar assim. No entanto, o que queremos é esta lista aqui, então vamos apenas copiar isto. Então vamos copiar esta lista. E então vamos ver o que é. Portanto, é uma lista imutável de alguns tipos de avanços aqui. Nós só vamos fazer uma nova história avanços. Basicamente guia ou não uma nova guia que vamos adicionar lá. Então nós vamos fazer é nós vamos agora também criar uma nova classe. Mais uma vez, esta vai ser a história do Mod na Van Cements. E esses vão ser, isso vai implementar algo louco também. Isso vai implementar o consumidor com o consumidor com o avanço acabado. Não, isso não é nada. O que eu quero. Este é o que eu quero terminar avanço a ir e implementar métodos. Vamos implementar o método de aceitação. E isso é tudo o que precisamos. E eu vou perguntar, eu vou copiar isso também. Na verdade, quer saber, não, vamos, vamos fazer isso. Então isso vai ser, vamos chamar isso de consumidor, um pouco mais fácil. Então o que queremos é basicamente nós queremos ir para terminar avanços ponto construtor. Então este é o construtor que acabamos de criar dentro daqui. E este construtor, podemos dizer construtor de pontos. E então podemos avançar e, em seguida, avanços, construtor, construtor de pontos. E então criamos um básico. Então, com o ID pai
, não, isso não está certo com o ID pai. Este é o local do recurso. Basicamente. Isto está sob o quê? Sob o quê? Avanço é falso. Então, basicamente, cada avanço tem um avanço que vem antes. Caso contrário, é o primeiro avanço do grupo. E isso especifica o que o Avanço está antes. Então, neste caso, digamos, por exemplo, História, ferramentas de ferro. Vamos apenas tomar isso como um exemplo aqui. Então temos com exibição. Agora as informações de exibição podem ser todos os tipos de coisas. Em primeiro lugar,
é claro, vai ser um item específico. Então nós vamos apenas pegar os blocos mod, blocos mod, ponto, bloco de cobre, ponto recebe. Então vamos pegar o bloco de cobre e então podemos ter um, um nome e uma descrição. Então vamos apenas fazer um novo componente de texto de tradução. E em vez disso, precisamos especificar uma chave de tradução. Eu só vou fazer no avanço,
avanço, história, cobre, título de bloco de pontos, algo assim. E então podemos copiar isso de novo. Então outro mais calmo do que apenas copiar isso. Cara, não é assim. E isto vai ser isto. E isso agora podemos adicionar dentro do nosso provedor de idiomas aqui. Vamos copiar isto duas vezes. Certifique-se de que isso está correto. Há algo a ser dito sobre colocar o, colocar o, ele está aqui,
em como variáveis de string. Mas vamos chamar isso de cobertura. E então isso vai ser algo como blocos de tremonha de coro. - Claro. Por que não? E então nós também vamos fazer, há também mais algumas coisas que estão vindo aqui. Isto vai ser tipo de quadro nulo. Então, neste caso, podemos especificar um tempo de quadro. Vamos fazer desta freira outra tarefa do Goldman. E então é verdade, este é um brinde. Então esta é a coisa que aparece no canto superior direito. Quando você tem isso, você quer anunciar isso para o chat. E, em seguida, também se dobra para se ou não isso vai ser também isso é como um mais para baixo. A edição EO é falsa e, em seguida, temos critério de largura. Este é, mais uma vez, o critério que queremos. Vamos chamar isso de bloco de cobre. E então queremos ter o gatilho de mudança de inventário. Eu sei que isto é uma quantidade de coisas malucas. Eu apenas aconselharia a mais uma vez brincar com ele por algum tempo, porque este é apenas um exemplo. Então queremos que isto aconteça se tivermos um par de quarteirões dentro do nosso inventário. E então uma vez que tudo é feito aqui, então podemos construir com o consumidor e, em seguida, um novo local de recursos. Curso MC. Mc foram Smart MOD ID. E também dentro do bloco de lodo da história. Agora não escrevem mais ninguém. Não é bem assim. Novo local de recurso construir realmente apenas um parênteses em algum lugar, muitos ou muito poucos. Encontrado. Dois. Você tem certeza sobre essa? Não construir. Tenho quase a certeza de que isto está correcto. Provavelmente sou o construtor errado para o construtor errado. Mais um parêntese? Sim, mais um parênteses e um a menos aqui. Como eu disse, é por isso que eu queria copiá-lo porque sim, isso é um monte de “Que diabos”. Mas sim, isso basicamente agora cria um novo avanço dentro da história. Avanços. E vamos ver o que podemos ver. Temos também de acrescentar isto aos geradores de dados. Isto vai ser adicionado na parte inferior aqui. Então nós vamos apenas dizer coisas gerador e provedor, e então novo avanço mod, provedor e gerador. E vamos salvar isso. E acredito que isso é tudo o que precisamos fazer. Não, isso não é bem o que você precisa fazer. Nós também precisamos ir para R. Podemos realmente ir para os provedores de dados e procurar o provedor de avanço. E basicamente apenas copie todo o método de ato aqui. E depois cola-o aqui. Eu acredito que isso deve funcionar totalmente bom avanço. Então isso é provavelmente apenas o deixe-me apenas verificar. Eu, isso não é avanço, mas acabado, avançado, mas no nosso caso, o ego. E então isso é em vez de apenas, em vez de copiar, nós vamos apenas serializar. E então, no final aqui, nós também temos um consumidor de avanço não terminado, mas do mesmo com este. Estou avançando, mas terminei o avanço. E então aqui queríamos imagem, desculpe, avanços. Então nomeie os avanços finais. Talvez, talvez os avanços de modo realmente façam mais sentido neste caso. Mas vamos encontrar, vamos ver. Posso ver. Sim. E então uma vez que isso foi feito bem, mais uma vez, todas as perdas ou para download, às vezes um pouco mais fácil. E então, apenas passando por isso, vamos executar os dados. Então, execute dados e veja se isso funciona ou não. Estou hesitante em dizer que vai funcionar imediatamente porque tivemos problemas nas duas últimas vezes. Mas eu sou muito um lá você vai. Então, todos os provedores levaram 136 milissegundos. Isso é meio legal. E então nós também vamos ver que novos avanços, que vão ser gerados dentro daqui, eu acredito. Lá vai você. Então este é um avanço da receita e, em seguida, avanço da loja, comércio de blocos de cobre, e é assim que o avanço parece neste caso. Sim, então vamos apenas comandar o cliente e eu acredito que devemos obter esse avanço imediatamente. Bem, vamos começar um novo, vamos começar um novo mundo onde não temos esse avanço e então vamos realmente ser capazes de ver isso. E então o gerador de dados, digamos que Odyssey está realmente feito. Finalmente, o que é importante que eu, especialmente como os avanços, possa ser um pouco complicado para o momento. O que eu realmente posso dizer é que mais uma vez , é apenas uma questão de experimentar as coisas e dizer, ok, eu quero fazer isso. Tentar não funciona. Ok, deixe-me tentar de uma maneira diferente. De repente, funciona e então é entendido. Então vamos ficar tipo, eu não sei, vamos apenas pegar um pouco de ferro. E eu acredito que assim que eu pegar ferro, eu tenho algum avanço necessário, é claro. E então olhamos para os avanços, eles vão, então não são essas as ferramentas de ferro? E como você pode ver, o que essa cobertura adquire blocos de copo. E assim que eu pegar meu bloco de cobre, eles vão avançar cobrindo e descobrindo aqui em baixo,
trazendo, adquirem alguns quarteirões. Nós olhamos para os avanços. Agora está cheio. Então isso é tão fácil quanto fazer isso. Agora, como eu disse no início, pode
ser um pouco assustador,
mas no geral, mais uma vez, tudo está disponível como um recurso. E isso faz com que seja um pouco mais fácil. Se quiser mais. Se você quiser adicionar essas categorias indiferentes, digamos então é claro que você precisa adicionar esses elementos indiferentes aqui, assim Story e assim por diante. Então isso é importante notar. E além disso, acredito que todos os anos o gerador de dados foi coberto neste caso. - Sim. Então é isso que é basicamente isso. E, claro, no nosso caso, é por
isso que eu disse, não apague tudo o que você fez aqui, que todos os arquivos adjacentes. Porque é claro que acabamos de adicionar basicamente o bloco de cobre e o cobre ou bloco e a cópia e foi isso. Então o resto, ou você precisa adicionar ou você pode apenas manter seus recursos lá dentro. Caso contrário, teremos um pouco de preto e roxo no seu jogo. Também é muito importante para o seu, para o seu próprio bloco. Então, para um blocos personalizados, por exemplo, para nós, foi o fogo elétrico. Muito importante que você não exclua isso dentro de sua pasta de ativos também porque isso é algo especial. E normalmente você quer que essas coisas estejam lá. Eles não são substituídos, então não há problema. Se você tiver algumas coisas em seus ativos e
as tiver feito manualmente e algo estiver sendo gerado automaticamente. Isso não é um tipo, isso não é um problema. O jogo só funciona. Qual é o que faz mais sentido pegar alguém assim? E sim, então foi isso para os geradores de dados. Espero que tenha sido útil para você. Talvez para especialmente no final aqui é um pouco mais complicado, mas eu acho que nós passamos por isso bastante bem. Se houver alguma pergunta, é claro, sinta-se à vontade para perguntar e eu responderei. E sim.
76. (Minecraft) Entidade e habilidades: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos dar uma olhada em nossa entidade de azulejos. E nós estamos realmente indo para corrigi-lo um pouco porque há algumas coisas que não foram definitivamente que não funcionaram corretamente e bem, uma das coisas é antes de tudo, o nível de energia. Então eu não tenho 100% de certeza que eu tentei ser inteligente sendo como um e vamos apenas adicionar este inteiro e nível inicial para ele e isso vai ficar bem. Realmente não funciona. A questão é que o nível de energia no momento atual só está ligado no cliente. Então o servidor meio que não sabe sobre isso. Ele meio que sabe sobre isso, mas também não é muito estranho, apenas não é uma boa idéia. Então a primeira coisa que vamos fazer é excluir o nível de energia i. Vamos pegar um monte de erros. Isso vai acontecer algumas vezes durante esta palestra, mas tudo bem. Porque o que queremos é que realmente queremos usar um, um, outro recurso. Isso também é uma espécie de palestra de capacidade, olhando um pouco mais em capacidades. Pessoalmente, eu tenho que ser honesto, eu acho-os um pouco confusos e muitas maneiras porque eu não sei, eu provavelmente teria feito um pouco diferente. Talvez haja algo que não compreendo, mas não sei. Acho-os um pouco confusos. Seja o que for, vamos criar dentro de nossa pasta de entidade título, ou um pacote ou uma nova classe chamada de armazenamento de energia personalizado. Agora, o armazenamento de energia personalizado vai fazer duas coisas. Em primeiro lugar, ele vai estender a partir
do armazenamento de energia mais em vez de energia de microfone de rede. Agora esta é basicamente a forma como o sistema de energia de fluxo Redstone funciona. E então ele também vai implementar I nb t serializable de composto nb t. Então vamos apenas ter certeza de que podemos, nós podemos basicamente serializar e de-serializá-lo. Então vamos implementar métodos s. Este é o serializado. Então, em vez de aqui temos um composto NVT tag frio, novo componente Vt. E dentro dessa etiqueta nós vamos colocar um inteiro. E isto vai ser chamado de energia. Energia armazenada. Não é algo que possamos realmente sim, tudo bem. E, em seguida, de-serializar vai ser definido energia, que é na verdade algo que nós não fizemos ainda. E BET dot GetInt energia. Loucamente o suficiente. Vou ajustar a energia. Podemos ver o que está aqui. Tudo o que precisamos para devolver a etiqueta aqui. E em vez de aqui, precisamos criar um novo vazio público. Definir energia, definir energia, energia inteira. Esta energia armazenada, energia. E então a energia mudou. Isso é apenas algo que acontece que fica frio quando a energia muda o objetivo. Então isso está protegido. O vazio de energia mudou sem nada nele. A propósito, agora mesmo. Porque vamos sobrescrever isto. Que quando caímos, quando continuamos com isso. E então nós também vamos criar um construtor com isso, eu acredito. Sim, capacidade e depois transferência máxima. Vamos chamar o zelador. E então nós também vamos dizer que este recebimento máximo é igual a 0. E agora, na verdade, são quatro. Também produzindo algo. Então, quando nós produzimos algo de um gerador,
então, por exemplo, gerador, é claro, você nunca receberia nada. Você sempre foi transferido. Neste caso, temos realmente um sistema contido onde vamos usar isso. E se olharmos para o sistema de energia, então você pode realmente ver, por exemplo, receber energia. Se não pudermos receber, então vamos apenas devolver um 0 aqui. Se pudermos receber, então vamos dizer, hey, nós temos a capacidade e também um máximo de recebimento. Isso só, basicamente, uma maneira de, ok, o que estamos fazendo aqui? Isso é basicamente um monte de matemática, certificando-se de que tudo funciona bem. Agora vamos realmente substituir quase todos os métodos que temos. Então vamos ver é, então daqui para basicamente aqui, eu vou copiar esta soma. Então vamos ter alguns métodos aqui. Assim, por exemplo, pode gerar energia e consumir energia. Gerar energia faz sentido é apenas aumenta o poder e, em seguida, consumir energia apenas diminui o poder. Agora é claro que não podemos ir abaixo de 01 coisa que é importante. E não podemos ultrapassar a nossa energia máxima armazenada. E eu acredito que é basicamente isso. Também temos algumas substituições aqui. Nossas contas minúsculas aqui, mas só um pouquinho. E, em seguida, dentro de nossa entidade de mosaico, vamos criar um novo armazenamento de energia personalizado privado e
final. Armazenamento de energia. Isto vai chamar o método de criação de armazenamento de energia que ainda temos de criar. Também queremos um soldado. Final preguiçoso opcional é o de armazenamento de alta energia. Esta é a energia, vamos chamá-lo de manipulador de energia. Claro. Este é um preguiçoso opcional do armazenamento de energia. Agora esta é, naturalmente, a capacidade que temos, que temos de entregá-la aqui em baixo. Então, dentro da capacidade Get, agora
adicionamos uma declaração else if, que vai estar em capacidade igual a esta, a energia de capacidade, energia para facilmente. E se for esse o caso, então devolveremos as redes de lançamento de pontos do manipulador de energia. Não é bem o que eu quero. Eles, isso é o que eu quero. Certo? Então, se for esse o caso, então vamos devolver a conta de energia que um custo. E então também queremos o método onde criamos isso. Portanto, queremos o custo do armazenamento de energia um. Então este vai ser um cliente privado. Armazenamento de energia, criar armazenamento de energia. Não temos nada aqui. Vamos devolver um novo armazenamento de energia personalizado com, digamos, uma capacidade de 100 e, e o mex de um, a transferência realmente não importa. Mas também vamos fazer é que vamos sobrepor a energia alterada. E vamos dizer “Mark sujo”. A idéia aqui é que nós vamos marcar a marca suja basicamente marca
o boi realmente eles vão interesses que são Chung continuamente dizer MC que você salvar em disco mais tarde
para que nós temos certeza de que isso é realmente salvo. Esta é a idéia áspera do que Mark Dirty faz na remoção. Temos o método remove aqui na verdade? Bem, eu nunca adicionei isso aparentemente. Então vamos apenas sobrescrever o método remove bem e apenas
certificando-se de que nós invalidamos ambos o laser e opcionais aqui. Em vez de um tick, este é o primeiro ponto do mundo é remoto. Voltar. Por que esse é o caso que não queremos enfrentar o cliente? Assim é remoto significa que estamos no cliente e
não queremos levar para acontecer no cliente. Portanto, vamos retornar se estamos no cliente, no servidor, o resto vai funcionar. Então precisamos de um nível de energia. Vamos dizer armazenamento de energia, energia armazenada. Então, armazenamento de energia, energia armazenada. E então isso, neste caso, também
deve ser tratado. Então a idéia de, bem, nós só podemos armazenar 64 já é realmente tratada pela capacidade. Vamos mantê-lo aqui por enquanto, por enquanto. Mas isso não deveria, de fato, ser necessário. Vamos mantê-lo aqui. No entanto. Armazenamento de energia, ponto-ponto gerar energia um. Então, para cada um diamante onde gerar um poder neste caso. Aqui, mais uma vez, isto vai ser armazenamento de energia, energia armazenada. E eu, é claro, o arquivo alterado aqui está disponível como um recurso mais uma vez, para
que você não precise digitar tudo. E eu também,
sabe, cometerei um erro em algum lugar. Não é isso que queremos. Então extraia energia um. E então importante que nós realmente dizemos falso aqui esta é a simulação. Então isso simularia o mesmo com o item de extração. Há também um booleano para simulação lá. Então, sim, o nível de energia que realmente não precisamos mais. E acredito que a única coisa que precisamos fazer é ler e escrever e armazenar energia. A outra coisa que era uma coisa foi que alguém percebeu que quando eles saíram, então eles salvaram e saíram de seu jogo e voltaram para que o armazenamento de energia não economizasse. É claro que isso é verdade. É por isso que agora vamos nos certificar de que isso salve. Então isso vai ser energia. Nós também vamos colocar o carrapato aqui também. Então Tic Tac Toe, contador
GetInt Eu acredito que é o nome ou eu puxei taxa take. Sim. Camisa e vamos chamá-lo, vamos mantê-lo como balcão. Acho que está tudo bem. Só para que tenhamos o também. Normalmente não faz questão, mas seria muito estúpido se tivéssemos o carrapato definido como dez mil, vinte mil ou algo assim. Então precisamos esperar um monte de tempo. E então só porque começamos o jogo novamente, nós realmente reiniciamos o tic. Isso seria meio idiota. E é por isso que provavelmente queremos colocar o tick atual lá também. Isto é genuinamente apenas quatro coisas quando você tem um pouco, uma vantagem mais tarde ou mais longo. Isso é o que eu quis dizer. Um pouco mais. Então vamos também fazer a energia de saída marcada. E o armazenamento de energia serializa nb t, e então é isso. E acredito que a outra coisa que
queremos é marcá-la suja aqui, caso isso não
deva ser tecnicamente necessário, porque
comercializamos 30 cada vez que extraímos energia ou regeneramos energia, apenas em caso, vamos marcar 30 aqui também. Não há nenhuma razão real para não chamar isso de fato. Agora, está tudo bem. Mas isso deveria ter feito com que a tela e o contêiner ficassem um pouco confusos sobre algumas coisas. Então, as telas não confusas em tudo. O recipiente, no entanto, deve ser confundido. Sim. Sim, o recipiente está confuso porque ele não tem mais o nível de energia aqui. E há também algumas outras coisas que realmente precisamos fazer
no contêiner que vão ser muito interessantes na verdade. Agora, a primeira coisa é que nós vamos realmente adicionar um novo método dentro daqui. Vou copiá-lo e depois vou explicar o melhor que puder. Porque na verdade é um pouco louco se eu disser isso. Então vamos colocar isso aqui. Vamos copiá-lo. Obter energia é outro método que nós também sim, obter energia. Claro, há também um novo método que precisamos e este é basicamente o substituto
para este é o substituto para o nível de energia aqui em baixo. Vamos apagar isto. Vamos ficar com isto e depois tudo funciona. Então, e, em seguida, atrair energia vai ser chamado bem aqui, faixa de energia, frio dentro do nosso construtor para ele. Agora, a idéia de poder pista é a seguinte. Isto também é algo novo para mim. Mas como você pode ver, nós temos este método de referência Holder, que é, você sabe, tem algum estranho como get integer e, em seguida, com estes códigos aqui, e então nós temos uma grande mudança de 16 bits. O que diabos está acontecendo? Bem, a idéia é que, e isso geralmente é algo que eu não sabia bem. Aparentemente, servidores dedicados no local, inteiros são realmente convertidos em shorts. O que isso significa? Bem, um inteiro é um 32 bits. Número, um curto é um número de 16 bits. E é por isso que aparentemente precisamos separá-los em dois inteiros de 16 bits. É por isso que um pouco deslocado aqui para que possamos basicamente pegar os primeiros 16 dígitos e, em seguida, colocar os primeiros 16 bits do número, colocá-los no primeiro. E, em seguida, o segundo, deslocamos 16 bits para a direita, eu acho, e depois pegamos os outros 16. Essa é a ideia aqui. Tenho que ser honesto com você. Eu não pensaria muito sobre isso. É apenas algo que precisamos fazer. E se ele realmente aparecer, eu aconselharia você a apenas olhar para algumas coisas de como isso funciona. O poder de rastreamento é necessário, o método para que o cliente saiba sobre o que está acontecendo no servidor. Então, neste caso, estamos fazendo tudo no servidor. E o servidor tem uns oito. Aí está, cliente. Isso é o que está acontecendo. Parece um pouco estranho para mim termos que fazer isso, mas parece que é isso que precisamos fazer. Então ok. Quando olhamos para obter energia, nós apenas obter a capacidade da telha em T. Então, a energia um. E nós vamos ser, e nós devolvemos isso, o armazenamento de energia. Então eles têm energia armazenada. E se isso não existir, então vamos devolver um 0. Mas é claro que existe, então vai ficar tudo bem. Agora dentro da nossa tela, agora temos o nível de energia que não funciona. Mas o bom é que isso não é um problema porque agora temos a energia get. Então nós realmente obtemos energia. Obter energia. E eu acredito, se não estou enganado, que isso é tudo o que precisamos fazer, e então funciona. Agora, vamos esperar que esse seja o caso. Mas, na verdade, não, acho que isso é tudo o que precisamos. E o mais importante, eu acredito que é este método de potência de pista, o que é um pouco estranho. Não vou mentir, mas vamos tentar. Vamos apenas começar. Vamos ver se funciona ou não. Mas na verdade, acho que vai funcionar bem. E você, eu não tenho 100% de certeza por que eu tive a idéia do nível de energia apenas ser um inteiro aqui. Isso não vai funcionar de qualquer maneira. Mas você sabe, às vezes,
às vezes, às vezes você tem uma idéia e depois você fica tipo, isso é meio estranho que definitivamente
não deveria ter sido feito assim. Mas está tudo bem. É por isso que estamos aqui, é isso que vamos consertar isso enquanto vamos dar uma olhada nisso. Então eu basicamente também adicionei de
volta todos os arquivos JSON para cada uma das coisas, exceto para a linguagem. E vamos definir o eletrificado e vamos olhar para ele para que tudo funcione. Vamos pegar um diamante onde vamos pegar duas pilhas de diamantes. Vamos também tomar como uma pilha de fios de cobre e vamos apenas ver se
colocamos isso em se vamos ou não obter energia. Estamos recebendo energia, então isso é muito bom. Os diamantes estão diminuindo. Então, antes. Essa era a questão de que às vezes você era
capaz de dobrar seus diamantes, tirando-os para fora. E se o tick estava no momento certo, então o servidor e o cliente, o DD de Deus sincronizaram. E então basicamente você foi
capaz de basicamente dobrar sua pilha. Isso não funciona mais. Se colocarmos na água do armário, como você pode ver, as esmeraldas estão sendo tratadas, mas a energia não diminui. Então isso é interessante. Agora, eu acredito que a única coisa que não diminui é a energia porque ela não gosta que ela não mostra. Então eu acredito que se nós estamos em 32, então isso realmente vai parar. Não pára. Muito interessante. Então vamos ver por que é esse o caso. Fora desta soma são uma espécie de jogo. Tudo bem, eu consegui consertar isso. Então, como podem ver
, aumenta a energia aqui. E então quando eu coloco nos fios de cobre, eles realmente diminuem. E então ele pára em 0 e não gera mais esmeraldas. Agora, a razão pela qual não funcionou, eu posso mostrar a vocês foi que eu não usei energia consumida aqui. Então eu uso o poder de extração. Acho que se chama extrair energia. Era isso que era. Não tenho 100% de certeza por que não funcionou. Porque eu uso o método de extração de energia no meu cenário de testador porque eu sempre testei isso tudo. E lá funcionou. Mas neste caso, não aconteceu. Não sei por quê. Só sei que consumir energia está em algum lugar como se estivesse frio em algum lugar dentro do meu cenário de teste. Mas não estava frio dentro do, em vez deste projeto aqui. E não tenho 100% de certeza do porquê. Agora, pode haver algum lugar onde ter supervisionado
ou, ou eu não vi isso. Então, como em algum lugar onde eu, você sabe, não chamei isso. Meio estranho. Meio estranho. Se eu encontrar onde estava,
vou, claro, adicionar um pouco mais em algum lugar. Mas sim, agora funciona com energia consumida. Mais uma vez, é apenas algo como muito menor, mas também deve ser, também deve funcionar. Neste caso, é que ele realmente irá armazenar a energia de uma vez que você abrir Minecraft para outro. Então o que podemos fazer é verificar isso também. Porque isso era algo que era um problema com um aluno que perguntou, bem, você sabe, há, eu tenho energia lá, mas se eu fechar o mundo, então minha energia se foi de repente, o
que é claro, bem que você não quer isso. Então vamos ver. Então, se colocarmos um pouco de energia estão certos. Então vamos dizer algo como, quero dizer, vamos apenas fazer isso assim e então vamos apenas sair do seu salvar o mundo. E então vamos voltar para isso e ver se tudo foi salvo ou não. Mas foi salvo. E também os diamantes foram salvos e a energia também. Mas não o destruiu acidentalmente lá. Mas sim, então você pode entrar, colocar os lingotes de cobre ou fio de cobre aqui e esmeraldas. Sim, é basicamente isso. Para o fixo para o eletrificar estão aqui. E Yan também é como uma pequena exploração de um pouco das capacidades aqui. Neste caso, a energia. No geral. As capacidades são um pouco mais complexas do que pensei inicialmente, especialmente de mim, pessoalmente. Então sim, essa é a visão geral aqui para isso e também como corrigir a entidade de mosaico. Havia alguns bem, quero dizer, literalmente coisas que não estavam sincronizadas corretamente. Então sim, espero que isso tenha sido útil para você. Espero que isso corrija o poço, as questões relativas ao poder lá. Eu também aconselharia você a dar uma olhada, uma boa olhada na classe de armazenamento de energia aqui e também no armazenamento de alta energia. Isto é basicamente o que
acontece, o que a implementação deste muito útil olhar para. E vai gostar muito de fazer parecer que algumas coisas estão mais claras, certo? Por isso, fica muito mais claro. E você provavelmente será capaz de supor muito do que está acontecendo com isso também. Então, sim, espero que isso tenha sido útil para você. Se houver alguma dúvida sobre qualquer coisa que foi feito aqui, é
claro, sempre sinta-se livre para perguntar e eu vou ter certeza de responder. Além disso, lembre-se sempre que a totalidade
do código-fonte está disponível como um download, como um recurso. E sim, foi isso para esta palestra. E sim.
77. (Minecraft) criando comandos personalizados: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra, vamos dar uma olhada em como criar seus próprios comandos personalizados. Isso foi basicamente sugerido, ou foi um pedido no Q e uma seção deste curso. E alguém disse: “Ei, eu quero basicamente ter um comando home set e um retorno ao home command. Para que eu possa basicamente saltar de uma seção do mundo para outra seção do mundo. E sim, vamos implementar isso. E isso é basicamente também como fazer seus próprios comandos personalizados. Vamos começar com isto. Então vamos ler em nossa visão do nosso MC pior, um novo pacote, que vai ser o pacote de comando. Agora isso é claro mais uma vez, apenas a estrutura aqui pode ser alterada e alterada ao redor. Mas acho que um pacote de comando aqui faz sentido. E em vez disso, faremos duas novas aulas. Um é o comando set home, e o outro será o comando return home. Então esses serão dois comandos diferentes que vamos implementar. Agora, há, eu vou mostrar a vocês basicamente como eu descobri como isso funciona. Porque no começo eu pensei que isso seria realmente complicado porque micróbios mudaram como os comandos funcionam e como você pode realmente registrá-los. Mas depois de cavar um pouco, eu realmente encontrei uma maneira
muito, muito fácil de fazer isso. E eu descobri isso, vamos fazer o seguinte. Então, se pressionarmos Control Shift F, então nós vamos e basicamente temos este caminho encontrar, encontrar caminhos. E se formos para o escopo, então podemos procurar por algo em todo o escopo. E eles são o comando da forja, é a coisa que nós realmente queremos olhar. E isso vai ser ouvir palavras comando se clicar duas vezes sobre isso. E como você pode ver, estes são todos os comandos que você pode basicamente fazer com a barra de barras. E então você tem coisas diferentes para isso. Então, por exemplo, duas barras TPS e, em seguida, você obtém a saída TPS. E se nós, em seguida, botão do mouse do meio clique em qualquer um desses comandos. Então, por exemplo, o comando TPS, e você pode ver como isso é construído. Agora vamos construí-lo de um modo um pouco diferente, mas quase igual. E como você pode ver, o comando real em si é simplesmente registrado com o despachador de comando. Portanto, este comando simplesmente tem em seu construtor um despachador de comando. Então isso é exatamente o que nós também vamos ter. E, em seguida, ele chama o método register. Agora vamos fazer isso um pouco diferente. Então, em vez de realmente chamar esses métodos de registro que estão dentro daqui, por exemplo, este seria o que está dando de volta uma espécie de construtor de argumentos. Nós vamos fazer o construtor de argumentos nós mesmos. Por agora. Isso parece um pouco,
oh, o que está acontecendo aqui? O que aconteceu aqui? Não se preocupe com isso. Vamos passar por isso. Eu acho que no final depende do que você, claro, quer fazer. Pode ficar mais ou menos complicado. Mas posso te dizer isso no geral, fazendo um novo comando, não tão complicado, dependendo do que você quer fazer com ele. Quero dizer, se você não sei se de repente você não gostaria que uma aldeia inteira aparecesse. Isso pode ser um pouco mais complicado. No entanto, se você, como eu disse, queria apenas cortar casa barra casa casa casa casa casa casa casa casa casa, isso vai ser muito fácil e nós vamos dar uma olhada nisso. E agora a minha primeira edição e é por isso que estou a dizer-te que isto é que eu não sabia. Está bem. Onde eu realmente registaria esses comandos? Porque eu não sabia, onde está esse frio agora, se pensarmos bem, isso é um construtor. E é claro que este construtor tem que ser chamado em algum lugar. E podemos realmente descobrir isso pressionando Alt F7. E então podemos ver que dentro do manipulador interno forte em um pequeno evento subscrito chamado em comandos registrar evento. Com o evento de comandos register. Isso é basicamente inicializado com o Despachante de Eventos aqui. Então este é o, este é o construtor que é chamado. E então nós basicamente dizemos config command register e, em seguida, bam, é isso. Então essa é a coisa muito legal. Agora é basicamente assim que eu descobri como isso realmente funciona. Eu só queria mencionar isso rapidamente no início do vídeo para que você saiba onde veio porque eu realmente não consegui encontrar nada em outro lugar. E sim, então vamos primeiro fazer um construtor aqui. Então public set home comando com, como já dissemos, o despachador de comando do tipo uma fonte de comando. E este vai ser o despachante. E em vez de aqui, então o que poderíamos, por exemplo, fazer é copiar algo. Nós vamos construí-lo por conta própria e bem, vamos ver como isso parece. Então, primeiro de tudo, temos o despachante, este registo de pontos. E dentro daqui nós agora basicamente construir nosso, nosso comando e então nós temos comandos ponto literal. Então esta é a primavera, então este é o nome da string que temos que digitá-la, então barra, e então o que temos que digitar? Vamos ficar em casa, por exemplo. E então, no final dos comandos literal, vamos fazer outro ponto e então vamos dizê-los. E teremos outro literal. Então, basicamente, vai ser para casa e, em seguida, definir. E isso é basicamente define a posição do jogador atualmente. E então nós vamos, e então nós vamos ter um comando diferente que vai ser voltar para casa, e então nós vamos voltar para casa. Basicamente, é assim que vamos fazer isto. Então o, oh, desculpe, não então, mas nós realmente precisamos definir um novo comando aqui, desculpe. Então este é também o ponto de comando literal, e isso é então definido. E então, mais uma vez no literal aqui, nós vamos executar algo e que vai ser apenas os executores. Um método, digamos que vamos chamar o método executar. E dentro daqui precisamos, se passarmos por cima disso, precisamos de um comando. Então, como você pode ver, este é o construtor de argumentos que será retornado nos comandos forragem aqui. E estamos apenas construindo dentro da nossa estrutura aqui. Então isso pode tomar um Comando acreditava que este Omã, eles ego. E então podemos fazer um novo. Como eu disse, é um pouco mais complicado. Vamos verificar isso rapidamente. Então este é o comando. E então nós vamos conseguir um aqui. E então dentro daqui vamos devolver algo e que vai ser o método privado e novo, interesses
privados em casa. E isso vai estar frio aqui. E também precisamos da fonte de comando. Fonte. E isso vai ser a fonte do Comando. Lá vai você. Tudo bem, então isso é basicamente o que queremos para o despachante, o registro aqui, como eu disse, você pode olhar para os comandos nos comandos forge para ver tipo de como isso funciona. Assim, você também pode exigir certas coisas como o nível de permissão e, e executar onde ele é executado. Então há algumas coisas que você pode realmente fazer aqui. Não vamos enlouquecer demais nisso. Se você quiser descobrir outra coisa, então você terá que fazê-lo sozinho. Eu vou. Só estou aqui para te dizer que é
assim que vamos fazer um novo comando. E qualquer funcionalidade além
disso, será a sua coisa a descobrir, certo? Então este é o comando set. Agora. E em primeiro lugar, podemos basicamente devolver um aqui, e então vai ficar tudo bem. Então nós vamos basicamente apenas retornar um 1 e então nós vamos construir,
ok, como podemos definir a posição real de casa? Bem, a grande coisa é que esta fonte de comando, se abrirmos isso com o botão do meio do mouse, isso realmente tem um monte de coisas. Por exemplo, o mundo. Nós também temos o, devemos ter o jogador em algum lugar. Eu acredito, jogador, jogador, jogador, entidade separada como jogador. Para que possamos trazer algumas coisas aqui. Então, por exemplo, podemos chegar ao jogador servidor em t, que vai ser o jogador. E quando dizemos fonte como jogador, lá vai você. Então basicamente converte o não converge, certo? Sim, eu vou, vamos fazer isso em breve. Então ele basicamente converte a fonte em um player, porque a fonte do comando pode ser o jogador ou poderia, naturalmente, também ser um bloco de comando. Agora, neste caso, vamos apenas dizer como jogador. Agora, se passarmos o mouse sobre isso, você pode ver que temos uma exceção não tratada. Se adicionarmos isso à assinatura do método e ele vai salvar lança uma suposição de sintaxe de comando. E agora eu acredito, e eu realmente não tenho um 100 por cento testes disso, mas eu acredito que isso seria lançado se a fonte de comando, então se o comando está realmente sendo chamado por um bloco de comentários, e isso conversão não funcionaria, certo? Então, se fonte como jogador não iria funcionar, e, claro, isso é uma exceção. Uma exceção será lançada. Mas isso é algo para ser cauteloso. E então nós realmente precisamos da posição do jogador, que podemos simplesmente fazer por bloco Pausa. Seria uma pausa do jogador, jogar ou pausar é igual ao ponto do jogador. Chegar à posição, nova posição, na verdade, posição. Lá vai você. Agora nós realmente precisamos também importar passagem de sangue. Basta colocar a sobreposição de cenoura e, em seguida, pressione Alt e Enter. E então eu quero construir uma corda que nós também vamos colocar para fora. Então vamos produzir isso no chat. E é basicamente dizer algo como um conjunto de posição de casa ou definir casa em. E isso vai ser feito com o não tão forte, mas uma corda Pausa, que vai ser este mais o bloco. Na verdade, este é o jogador, POS, jogador pos ponto getx perda. Portanto, isso não é estritamente necessário. No entanto, penso que é uma boa ideia apresentar também este aspecto. Estão desmaiados, percebes porquê? Porque é também por isso que eu fiz isso enquanto eu estava testando apenas para ter certeza. Está bem. É a posição do bloco realmente como ele está recebendo a posição real do jogador, obter z. e então nós vamos fechá-lo com um parênteses aqui. Isso é bom. E então como vamos salvar os dados? Bem, vamos primeiro de tudo, saída da casa real, assim como, a posição. E então vamos ver, então isso vai ser fonte. Enviar Feedback é basicamente o que queremos. E dentro daqui temos um novo componente de texto string definido em casa em. E depois vamos dizer “pausa”. E então vamos dizer verdadeiro ou permitir o registro em log. Então agora com o que construímos, você deve ser capaz de, depois de termos registrado este comando, nós devemos ser capazes de fazer o seguinte. Devemos ser capazes de cortar casa, barra casa,
e, em seguida, um conjunto de barra de espaço,
e, em seguida, terminar a mensagem deve aparecer basicamente com a posição do jogador atual. E agora vem a pergunta, bem, como podemos salvar esses dados? E a maneira que vamos salvar esses dados é basicamente se entrarmos no player, desculpe, a entidade do jogador do servidor aqui, nós estamos realmente usando algo que é chamado de dados persistentes. Agora isso é realmente nós realmente temos que ir para a árvore aqui. Então temos que ir para a entidade jogador. E eu posso fechar isso, e podemos ir para a entidade viva e fechar isso e então entramos na entidade. Porque a entidade tem algo que é os dados persistentes, certo? Então está bem aqui. Este é um composto privado NVT. Então, esses dados MPT, nós temos apenas tipo de ter como colocar um olhar superficial sobre os dados NVT. Mas era basicamente uma maneira de armazenar dados. E nesses dados da entidade jogador, vamos armazenar nossa posição. Agora, como podemos fazer isso? Vamos ser, vamos salvar jogador, obter dados persistentes. Como você pode ver, lá vamos nós lá pegamos o composto MBT a partir disso. E podemos fazer as mesmas coisas que fizemos com os MBTs antes. Podemos, por exemplo, colocar uma matriz int. E isso é exatamente o que queremos fazer porque temos três posições diferentes ou três partes do vetor XYZ que queremos salvar. Então este seria o caminho de casa, por exemplo, poderia também chamar esta posição de casa ou outra coisa. E então precisamos de uma nova matriz int com as seguintes três coisas. E isso será o jogador pos dot obter X, o bilayer pars dot y. e nos caminhos da camada. Seu ponto passado fica z, na verdade não é o que Zed. E desta forma, a posição agora é salvo dentro do gueto, dados
persistentes do jogador real. E podemos ler isto mais tarde no comando de regresso a casa aqui. Uma vez que estamos escrevendo isso, agora é tudo o que precisamos para esta coisa em particular que queremos. Então, isso já é para o comando set home. Como eu disse, não é assim tão difícil. Depende realmente do que você colocar em basicamente este método aqui, certo? Então, se você quer algo que é mais louco e mais complicado, ele meio que volta para os eventos que tivemos. Eventos em si. Muito, muito legal e muito poderoso. mesmo com os comandos, é claro. Basicamente uma coisa muito semelhante a um evento, apenas que o jogador pode, enquanto basicamente executar que um evento em um capricho digitando no chat. É só que dependendo do seu caso de uso e do que você quer fazer. Sim, isso é que pode haver muito Else,
outra coisa para descobrir aqui, mas é claro que depende de você agora, como
podemos , na verdade, algum comando enviado para casa registrado? Bem, nós simplesmente vamos para os eventos, eventos de
modo, e então vamos realmente fazer algo assim. Então vamos fazer um novo evento. E esse evento vai ser o vazio público público ou não, isso não é. O que eu quero é que eu quero o registro de comandos on e, em seguida, este tem o evento de comandos register, que evento. E em vez de aqui, nós vamos realmente fazer exatamente o que o comando faz aqui, que é aqui no registro de comandos bem aqui. Então, vamos apenas dizer novo set home command. Permitam-me que feche rapidamente algumas coisas. Então eventos do MOD. Lá vai você. Novo. Defina o comando home com o Despachante de Eventos. E, em seguida, no final aqui podemos dizer o comando config, comando que você vai registrar. E então dizemos Eventos ponto get despachante. Então isso é tudo o que precisamos fazer. E agora vamos fazer o comando de regresso a casa. E então, basicamente, já terminamos. Então essa é a coisa legal. Agora, para o comando de retorno para casa, o legal é que podemos basicamente quase copiar isso porque a coisa aqui é muito, muito semelhante. Então isso vai simplesmente ser devolvido ao comando de casa. E em vez de um set home, vamos ter um novo int privado. E isso vai ser devolvido para casa com basicamente também uma fonte de
comando, comando ou a fonte triste, é
claro o ego e isso assim. E depois vamos chamar isto em vez de voltar para casa. E aqui, em vez de definir, vamos dizer retorno, porque é isso que queremos voltar para casa agora. E então a coisa que vamos fazer é primeiro colocar o jogador uma vez contra. Isto é mais uma vez a camada de entidade jogador servidor é igual a ponto de origem como jogador. O que mais uma vez nos pede para adicionar a exceção
ao, ao comando aqui ou ao método. Vamos salvar. E agora o que vamos verificar, é na verdade porque... Nós poderíamos fazer é dizer, hey, obter a matriz int de dados persistentes e, em seguida, vamos simplesmente ir. Mas a coisa sobre isso é que nós realmente vamos
verificar se isto está ou não vazio ou não. Então nós vamos dizer se jogador ponto obter dados persistentes,
obter dados persistentes, obter array int. Então vamos dizer entrar na área e sabemos que a chave aqui é o PaaS em casa. E se o comprimento dessa matriz não for 0, certo? Então isso significa que neste caso, então não 0 significa que contém algo, certo? Então, por enquanto, não queremos saber, não queremos salvar isso. Na verdade, só queremos saber que está bem, não contém nada. O que nós descobrimos, eu acredito e se eu me lembro corretamente, a idéia é que se você receber um erro aqui, ele sempre vai retornar um novo array, mesmo que algo não exista. Então é por isso que verificamos o comprimento e não se ele tem nulo ou não. E então nós também temos um outro, apenas para que possamos basicamente dizer ponto fonte, enviar feedback. E então podemos dizer um novo componente de texto string e dizer Nenhuma posição inicial foi definida. E então também dizemos verdadeiro aqui. E então vamos voltar, Vamos, deixe-me diminuir um pouco. Devolva um negativo, negativo. Lá vai você. Isso é porque temos o dobro disso para, você sabe, entender o feedback. Eu sou louco? Sim, eu sou louco. Lá vai você. Isso é o que é. E então temos um para muitos. Lá vai você. Está bem. Enviar feedback, componente texto primavera, nenhuma posição inicial foi definida. Porque, é claro, se não há dados na matriz, então nós realmente não estabelecemos a casa lá. E agora o que queremos é que queremos uma nova matriz int. Esta é a posição do jogador mais uma vez. E nós podemos basicamente ler isso dizendo camada ponto-ponto dados persistentes. Dot, obter array int, obter int array com a chave home pause. E então nós realmente temos isso dentro desta variável. E então podemos usar o conjunto de pontos do jogador e a posição e atualização do conjunto. Muito parecido, coisa boa que realmente podemos usar. E então podemos simplesmente dizer jogador Pos 0, camada um e camada dois. Lá vai você. E agora a posição do jogador será definida para, bem, exatamente o que está escrito dentro dos dados persistentes. E então podemos dizer uma fonte, Enviar feedback pode dizer nova string, camada de componente de
texto, voltou para casa, voltou para casa, eles ego. E então também diga verdade aqui. E no final, a única coisa que precisamos fazer é devolver um 1 e todos ficam felizes, certo? E agora, como eu disse, esta é uma maneira de fazê-lo. Há provavelmente uma infinidade de
maneiras de realmente teletransportar um jogador para uma posição diferente. Nesse caso, isso vai ser bom usando a posição definida e o método de atualização. E, na verdade, acho que vai ser muito, muito bom. E sim, isso é basicamente tudo o que realmente precisamos fazer. E nós próprios também só precisa definir este ano. Então, novo evento de comando de retorno para casa. Você vai ao Event Dispatcher. E é isso. Bem, muito importante no evento de assinatura, eles vão agora, deve ser divertido, certo? Isso é realmente tudo o que realmente precisamos fazer
para adicionar nosso set home e voltar para casa evento. E acho que vamos começar e ver o que podemos ver. Essa é provavelmente a coisa mais interessante. Se isso realmente voltar, bem, nos
leve para casa e podemos definir nossa casa aquilo. Então esse vai ser realmente o teste. Agora, no geral, eu realmente acho que os comandos são bastante fáceis de implementar, realmente depende do que você quer fazer com eles. Como eu disse, isso é muito, muito parecido com os eventos que tivemos antes, onde se você tem uma idéia interessante para um evento, isso é muito bom. Mas eles podem ficar muito complexos dependendo do que realmente quer fazer com eles. Mas sim, isso é basicamente todas as ferramentas que você realmente precisa para fazer seus próprios comandos. Então, isso é muito bom. E vamos ver o que podemos ver. Então, primeiro de tudo, nós desovamos aqui em algum tipo de floresta de sequoias. Então vamos apenas mover um pouco da luz e vamos para esta colina aqui. E, em primeiro lugar, o que vamos dizer é que vamos cortar para casa. Então, como você pode ver, isso já está aqui como uma sugestão. Então, podemos basicamente auto concluído. E como você pode ver, nós também temos os dois literais. Então, vamos primeiro dizer “Slash Home Return”. Mas como podem ver, nenhuma posição de casa foi definida porque não estabelecemos nenhuma posição de casa. Então nossa declaração se, se olharmos para trás simplesmente aqui, nossa declaração se funcionou exatamente como queríamos que fosse. Então isso é muito, muito bom. E agora o que queremos é definir nossa posição aqui. Então nós queremos dizer casa slash, slash casa resolvido, eles vão e agora ele
tem, estabeleceu casa na posição negativa 718200120. Agora vamos ver se pressionamos F3, você pode ver negativo 2, 34, 91 e 120. Então, é exatamente onde estamos. Então, isso é muito bom. Agora vamos voar para longe. Vou olhar para isto. Uma bela, agradável e pacífica vila bem aqui com alguns búfalos também. Isso é muito bom. E então, sim,
vamos, na verdade, voar até aqui. Agora devemos voltar para lá se chamarmos o regresso ao lar. Vamos ver se isso funciona. Então, podemos, naturalmente, também pressionar a tecla Tab para completar automaticamente isso. E se fizermos isso, como você pode ver, camada voltou para casa. É assim que é fácil. Isso é tudo o que há para fazer para que você faça seus próprios comandos. Nesse caso, o comando set home e o comando return home. E sim, isso é basicamente tudo o que eu queria te mostrar. Mais uma coisa que quero deixar com vocês são os outros comandos que existem. Então, se nós apenas realmente, se nós pudermos fazer isso assim. Então eu acredito que há um comando de tempo que é como o mais fácil de chegar lá. Sim, exatamente. Então, se nós, por exemplo, colocar no comando do tempo aqui. Então, mais uma vez, Control Shift F e, em seguida, abra o comando time. Como pode ver, é um pouco mais complicado aqui. Mas isso é uma coisa que você pode dar uma olhada com os comandos, basicamente o que eles podem fazer. E então você também pode seguir esse método de registro. Este é um método de registro estático neste caso. E se olharmos para isso, então dentro do, dentro da classe de comandos, há todos os comandos normais ou os comandos baunilha, digamos. E você pode abrir cada uma delas mais uma vez com o botão do meio do mouse. Então, por exemplo, algo como o Modo de Jogo. E então você pode olhar para tudo o que está acontecendo aqui. E você pode basicamente apenas, bem ou copiar ou expandir sobre isso, o que é realmente bom e muito bom. Vamos dar uma olhada nelas. Então, sim, era com isso que eu queria te deixar. Uma coisa muito agradável e comandos. Tenho que ser honesta. Muito mais fácil do que eu esperava pessoalmente. Mas sim, mais uma vez, foi isso. Mas se houver alguma pergunta, é
claro, sinta-se à vontade para perguntar e eu responderei. E sim.
78. (Minecraft) tornando a própria dimensão: Muito bem, bem-vindos de volta ao curso de Minecraft. E nesta palestra vamos dar uma olhada
no tópico mais solicitado que recebi desde provavelmente o primeiro dia. E é assim que você pode criar sua própria dimensão personalizada. Sim, finalmente estamos aqui, finalmente está acontecendo. E mais uma vez, como a última palestra com os comandos, ele foi muito mais fácil do que eu esperava. Há muitas mudanças entre as versões do Minecraft com o mundo, a geração mundial e a geração de dimensões também. Agora, felizmente, o que aconteceu é que a geração de dimensão mudou para basicamente ter apenas o, então você pode basicamente fazer quase tudo dentro de arquivos JSON. Isso é muito legal. Se você quer ter pacotes de dados feitos Para nós, na verdade também
é muito fácil porque só temos que ter dois arquivos JSON que definem o tipo de dimensão que é. E, em seguida, também como parece. O, Eu não diria que há algumas desvantagens lá, mas bem, vamos apenas ver como isso funciona. A única coisa que vou mencionar isso no início, porque algumas pessoas podem ficar um pouco desapontadas. Não vamos dar uma olhada em como fazer seu próprio portal. Isso não vai ser uma palestra. Neste caso. A maneira como vamos nos teleportar é clicando com o botão direito do mouse. Nós provavelmente vamos fazer o cobre só porque eu acho esse tipo de, uh, meio engraçado. Mas vamos clicar com o botão direito do mouse em um bloco e, em seguida, teleportar para o outro mundo, basicamente para a outra dimensão. Sim, se você fosse um portal, então agora para dizer isso, mas então você terá que descobrir isso por conta própria. Mas eu acredito que isso deve ser viável porque o teletransporte em si acontece dentro do bloco quando clicamos com o botão direito do mouse. E também não é tão complicado. Bem, sim, vamos ver o que podemos ver e armazenar fazendo um novo pacote em uma espécie de pacote mundial chamado Dimension Diamond Xian. Eles vão. E então dentro daqui, vamos fazer uma nova classe que contém a classe mod di menciona. Agora isso vai ser um pouco diferente do nosso outro bem MOD e, em seguida, algo cláusulas. Isso vai ser ter uma estática pública e, em seguida, uma chave de registro realmente do tipo mundo. E nós vamos chamar isso de “Que tal como KJ “? Dim? Claro, isso é ótimo. Aj. Como isso. Sim, adoro as dimensões de contagem e desenho. Por que não? E então vamos também importar tudo isso pressionando Alt e Enter sobre isso. Então também precisamos de um método de registro vazio estático público. Um método de registo. E este vai realmente fazer o seguinte. Nós diremos. A j Dim é igual a chave de registro pontilhada passarela 38. E isso vai ter o registro lido apenas re, não uma chave mundial. E eu vou ter um novo local de recursos com, claro, o nosso MC force.html sexta-feira. E então este é o caminho em é basicamente o nome, que seria camisa KJ. Agora, isto é tudo o que precisamos para registar aqui a nossa dimensão. E em vez de curso MC, é claro que vamos adicionar na parte inferior, o registro de dimensões mod. Então a grande coisa aqui, ou a outra coisa que estamos, a maneira que vamos criar isso é sem um registro diferente neste caso, mas isso é totalmente bom porque isso realmente funciona tão bem. E então o que vamos precisar dentro de nossa dimensão aqui é basicamente a. E isso seria, eu vou chamar isso de teleportadores KJ. Rasgo de teletransporte. Lá vai você. Sim, esse é um. E isso irá implementar o AI dizer uma interface trimestre. E esses teletransportadores são basicamente enquanto o que nos teletransportará. Esta é a coisa que vamos chamar quando clicarmos com o botão direito do mouse em nosso bloco mais tarde. E isso vai ter algumas coisas. Agora, eu adaptei isso de um repositório muito, muito bonito do GitHub, que era a dimensão da luz do dia. Se eu não estou enganado, este será definitivamente
este seria definitivamente ser vinculado ou post blog. Isso não está muito certo. Lá vai você. E isso será ligado como um recurso porque foi inestimável. Porque normalmente eu tentei dar uma olhada nas dimensões. E a questão é que, por exemplo, com ferramentas de RF, ótimo mod, absolutamente ótimo,
incrível, até mesmo base de código, certo? É muito bom. Eu só quero a dimensão. Há cerca de 180 classes diferentes que são para a dimensão porque o pacote MOD real ou o outro modo é tão vasto como grande. É tão grande que é sim, é um pouco demais. E é por isso que a dimensão da luz do dia, porque essa é a única coisa que o modo adiciona é uma nova dimensão. E isso é muito bom. Então, estático público, Booleano, isso vai estar dentro de uma dimensão. Mencionei regra. Vamos deixá-lo. Isso é o que queremos. Sim. E então temos um público K, J teleportadores. Então este é um e novo em um novo enredo aqui. Desculpe. Este é um novo construtor com o Booleano aqui. Então isso é simplesmente dentro das dimensões. E então nós podemos basicamente definir este ponto, esta posição é igual ao passado, e então também este ponto dentro. Desculpe, isso é estática. Isso não funciona. Claro que não podemos fazer isso, mas não seja louco. A dimensão interna é igual a nos assentamentos que eles têm. E então teremos a única coisa que substituiremos. E isso vai ser um, nós realmente temos que renomear isso dentro da camisa. Talvez não. Algo assim. É por isso que eles vão. E então a única coisa que precisamos ter aqui, esta é uma entidade pública, colocará entidade. E isso vai ter uma entidade. Entidade. Ele tem um mundo de servidores, que é o mundo de aprendizagem profunda. Vamos ter um mundo de servidores. Apenas o mundo do destino. Nós vamos ter o flutuador vocês. Vamos ter uma função booleana e um tipo de entidade de retorno. E, em seguida, esta é a entidade reposicionada. E este vai ser o fim. Sim. Ok. Em primeiro lugar, entidade, sim. As funções de servidor antigas e e, em seguida, a função Java util que você vai. Então este é o método de substituição ou o método que precisamos substituir aqui. E isso é basicamente a coisa que é responsável pelo nosso teletransporte. E agora temos um monte de coisas para fazer. Então, primeiro de tudo, que a entidade que nos é dada aqui vai cair ou reposicionar ponto entidade aplicar com uma falha aqui. E depois vamos ter um duplo. Então este duplo é, se eu não estou enganado,
o y, desculpe-me, por que eu me perguntei por que eles vão. A posição y onde a camada superior está. Basicamente disponível para teletransporte. Essa é a ideia aqui. Então nós vamos dizer, se sim, não é dentro da dimensão que o que vamos fazer é dizer que y é igual a este ponto, obter y. e então vamos continuar o seguinte. Nós vamos ter o, nós vamos ter um cargo que vai ser o médico da nação de mesa. Pausa, assim é melhor. Que é um novo passe de bloco, que vai ser o x e y desta posição. Tão bom. E este ponto obter z história. Eles vão e então o y será apenas o Y que calculamos de antemão. E então há algumas coisas que precisamos fazer, e isso é o número um e inteiro com tentativas. Agora isso está lá, eu acredito, que
possamos basicamente tentar dizer para cima e às vezes pode não funcionar. E se não funcionar, então vamos pará-lo basicamente. Então nós temos um loop while e isso vai ser um loop selvagem louco, como a coisa lá dentro. Então vamos ter um mundo de destino,
desculpe, o destino onde o bagel. E nós vamos dizer, ok, obter os seguintes blocos, seu estado de bloco na seguinte posição, e que vai ser a posição de destino. Então esta é a posição em que queremos, basicamente, vai aparecer. E então dizemos material git. E se isso não for igual a material.ai, então teremos que mudar algumas coisas. E isso vai ser, nós basicamente vamos subir. Então não só vai ser ar é também podemos, então não queremos desovar de outra forma. Queremos desovar no ar. Mas também não deve ser água, por isso não pode ser destinado. Vamos realmente fazer algo assim. E então vamos movê-lo para cá. Desculpe, o mundo do destino fica trancado. Estado na posição de destino. Mais uma vez, eu vou dizer, isso vai dizer é substituível com o fluido ponto de água. E este não deve ser o caso. Então vamos ter outro fim, que vai ser o mundo do destino e obter posição negra, uma história de estado de bloco. E então vamos ter a posição de destino, que está subindo. Então esta é uma posição acima. Então isso é yets off offsets. Este bloco foi por um, e isso está na direção ascendente. E vai ser, desculpe, isso é aqui embaixo, que também vai receber material. E eu vou dizer isso, se isso não for igual ao ar. E então a última coisa que você poderia ter adivinhado, provavelmente é basicamente esta aqui. Copie de novo, apenas negue. E isso vai ser, é substituível. E então não há fim aqui. E depois este, e depois o ego 0. E então também há outro fim e isso vai ser batatas fritas é menos 25. O que ele está fazendo é basicamente dizer, “Ok, ouça, nós precisamos chegar ao destino onde podemos gerar dentro deste mundo. E nós vamos basicamente subir. E é isso que fazemos aqui. Então dizemos que a posição de destilação é igual à posição de destino disparada por dois. Então vamos subir dois quarteirões de cada vez. E vamos tentar isso por 25 vezes. E dois foram tipo, dane-se, isso é bom. Então, a idéia é que estamos tentando encontrar uma posição em que os dois blocos onde o jogador iria gerar é ar. Isso é basicamente o que estamos tentando fazer aqui. Essa é a maneira mais fácil de explicar rapidamente. Digamos que isso é tudo o que isso faz, é basicamente verificar se uma determinada posição é válida ou não. Sim, isso é muito bom. E então o que podemos fazer é dizer entidade,
definir, posicionar e atualizar. E esta vai ser a posição de destino, ydx, posição de
destino get y e posição de destino get é o E ou Z. isso é exatamente nós vimos isso na palestra de comando personalizado também. Então isso é muito, muito bom. E agora precisamos fazer uma última coisa. E isso vai ser, nós vamos dizer se dentro da dimensão, então nós queremos fazer algumas coisas e isso vai ser um booleano para definir bloco. Agora a idéia é que nós vamos, é claro, se nós é basicamente o teletransporte de volta. Então nós queríamos definir um bloco onde nós desovamos, porque caso contrário nós vamos ter um mau momento. Então isso vai ser para um loop for. Isto vai ser um loop foreach basicamente. Então estamos bloqueados depois da casa de cheques. Isto vai ser bloqueado. Pausa, entra na loucura mutável do Mark. Nem se preocupe com isso. Vou explicar isto o que é isto. Isto não é para baixo que oeste e este é 10. Então nós vamos fazer isso em um dez por 1010 por dez por dez, eu acho que raio. Isso é depois, depois disso ou no ego. Então, depois disso, a vírgula Oeste e, em seguida, outro caminho
de destino de até 10 e, em seguida, leste por 10. E então uma vez que temos isso, então nós podemos ir e ter um loop for. Então, basicamente vamos verificar cada posição de bloco em um cubo de dez por dez. E então vamos dizer o seguinte. Se a posição de destino ponto-ponto ainda, desculpe, mundo de destino, que distinção muito importante lá, ficar bloqueado estado na posição, verificar posição. Então esta é a posição que estamos basicamente passando pelo loop for que estamos iterando. Se o teorema de Bloch for bloqueado é uma instância de cobre ou porque o que vamos fazer é ter o trabalho corporativo. Isto é muito importante. E você vai dizer substituir o cobre ou com o seu bloco de pedidos Taleb, certo? Agora isso é muito importante. O cobre ou, neste caso, só estamos colocando isso porque temos uma instância deste bloco de mapa aqui como uma classe. E podemos facilmente acessar este vai ser o seu bloco teletransportado. Este é o botão direito do mouse que basicamente tem a capacidade de teleportar. Então nós vamos então também quebrar. Então, basicamente, uma vez que encontramos um bloco de cobre, receita como Ok, Ok, não
precisamos definir um bloqueio. Agora, se não encontrarmos isso, então vamos dizer se você fechou, desculpe, lá vai você. Vamos dizer mundo do destino, aquela fechadura, estado da posição de destino. E isso vai ser blocos de lama, ponto ou ponto obter. Isso obtém o estado padrão. Oh, olhe para isso. Ele já fez isso por mim. Isso é muito bom. E, no final, vamos devolver a entidade. Nenhuma entidade. Lá vai você. Então, o que fizemos aqui? Se formos teletransportados para a nossa dimensão? Queríamos definir um bloco de cobre porque este é o bloco que nos leva à dimensão e precisamos de algo para recuperar. E isso é exatamente o que estamos fazendo aqui. Se encontrarmos esse cobre bloqueá-los, não
precisamos fazer nada. Se não encontrarmos o bloco, então exatamente para onde nos
teletransportamos, vamos colocar este bloco. É tudo o que fazemos com isto. Agora os teletransportadores KJ, como eu disse um pouco. Na verdade, está tudo bem. Não é muito louco. Se nós se ele tomou primeiro dar uma olhada nele, pode ser um pouco louco, mas no geral, espero que não foi muito louco. Este é apenas verificar se podemos realmente desovar. E este nós simplesmente definimos
um bloco particular para o nosso bloco de cobre para que possamos nos teleportar de volta. E agora o que precisamos fazer é entrar nesse bloco de cobre e modificar isso. Agora, o copo, o que precisamos? Precisamos de um tipo de resultado de ação pública. Isto está no bloqueio ou desbloqueio ativado. Sim. Isso é demais. Demasiado. Vamos apenas anular isso e vamos lá eles vão. Porque datilografar isso seria absolutamente ridículo. Eles atrás, então, ok, no registro ativado, isso significa que nós clicamos com o botão direito do mouse no bloco. Do que precisamos? Precisamos que a primeira coisa que queremos mundo é remoto não deve ser o caso. Então se não, se não for remoto, vamos. Próxima coisa. Se o jogador está agachado, forma
redonda está agachando um ego. Se não for esse o caso. Assim, o jogador só pode clicar no bloco de capa. Se não for. Se eles não estão agachados, então temos o servidor. Você precisa do servidor Minecraft Server, que é o servidor, é igual a Berlin dot Git servidor. Curiosamente. E agora precisamos olhar para isso. E então dizemos, ok, se o servidor não é nulo, então podemos prosseguir. E então vamos olhar para isso. Vamos dizer, ok, vamos ver, o que é este mundo agora, estamos ficando interessantes. Então, se este mundo ponto-ponto-ponto dimensionalmente. Então agora estamos basicamente verificando em qual dimensão onde se este é o mod di multi-dimensões menciona que KG mergulho, certo? Se estamos dentro de nossa dimensão personalizada, então o que queremos fazer, bem, queremos dizer isso, queremos manter o mundo do servidor sobrecarregado é igual ao servidor dot get world. Vamos passar por isto um por um depois de terminarmos o teu World.org. Mas nós estamos indo para rapidamente, rapidamente, nós vamos semiquinone fazer isso. Então vamos ter o mundo dos servidores. Isso vai ser a sobrecarga. E agora o grande problema é que se esse excesso de trabalho não for nulo, que
possamos realmente nos teleportar para isso. E nós vamos dizer, ok, jogador ponto mudou. Mencionei um comando muito bom. Nosso método. Tenho que ser honesto. Vamos para o excesso de trabalho e
vamos fazer um novo KJ teleporters com o seguinte. A posição em que este bloco está. E com um falso, um falso porque nós não somos, basicamente, ele teletransporta dentro de nossas dimensões. Ok? Ok, Se, e agora vamos pensar sobre isso. Sim, tudo bem. Agora, precisamos é que queremos este, desculpe. Isso é um pouco demais. E depois temos outra coisa. E isso é muito importante. A formatação aqui é sempre a mesma. Então isso vai acontecer se estivermos dentro de nossas dimensões. Se não estivermos dentro de nossa dimensão e clicarmos com o botão direito do mouse em um bloco de cobre. Bem, então provavelmente deveria nos levar a essa dimensão. Então, vamos dizer mundo dos servidores. E esta vai ser a dimensão K-J chave. Dim, claro, tudo bem. Ele não fez. E então vamos dizer servidor, aquele mundo. E isto é uma grande coisa. Muitas dimensões ponto KJ dim, não é bom? Então, em vez de usar o mundo que esmagou fraqueza, diga multi-dimensões que AJ escurece. Isso é muito bom. Tenho que ser honesto. E então nós também verificamos se isso é nulo ou não, apenas no caso de você nunca saber. Então isso é inigualável nulo. E se esse for o caso, então nós vamos dizer jogador ponto-ponto mudança dimensão. Eu vou dizer que este é o KJ Dim. Nova ordem de telefone KJ. Posição. E então vamos dizer verdade porque somos teletransportados para dentro da dimensão agora. E uma vez que isso é feito, na verdade uma vez tudo isso feito, então isso está bem aqui. Vamos retornar o resultado do tipo de ação do sucesso porque somos bem-sucedidos. Agora, depois de tudo, na verdade. Sim, depois de tudo, sim, queremos devolver o ativador de superbugs. Isso é bom. E é isso. Sei louco o que está acontecendo. Certo, vamos passar por isso. Primeiro de tudo, estamos verificando se não estamos ou não no controle remoto. Então estamos basicamente em executar isso no servidor. A próxima coisa que não estamos agachados deve ser os dois. Fácil o suficiente. Em seguida, estamos recebendo o servidor e certifique-se de que ele é realmente existe. Se o servidor existir, estamos a verificar, está bem? Estamos dentro de nossa dimensão predefinida? Onde estamos em outra dimensão? Se estamos dentro de nossa dimensão, então o, então o destino que queremos será o esmagador. Portanto, estamos pegando o submundo, verificando se isso é nulo ou não e, basicamente, teletransportado para o mar. Se, no entanto, não estamos na nossa dimensão, então queremos teleportar-nos para essa dimensão. E então nós vamos basicamente fazer exatamente a mesma coisa aqui. Agora algo como isto provavelmente poderia ser extraído em seu próprio método. Provavelmente com alguns utils. Neste caso, totalmente bem. Deixarei isso com você, especialmente se você tiver várias dimensões. E agora a última coisa que precisamos é da dimensão real. Bem, tipo de como, como ele gera. E nós vamos ter isso dentro de nossa pasta de dados. Então dados m pontuações. E então teremos um novo diretório chamado Diamond. E então teremos outro diretório que será resfriado. Die tipo de sublinhado de menção. Muito importante. Agora, a primeira coisa aqui vai ser um novo arquivo, KJ db.json. Mais uma vez, muito importante que o adjacente segue. E eu vou copiar algumas coisas, que sim, eu vou copiar e então nós vamos rapidamente olhar para isso. Então, em primeiro lugar, nós temos um tipo. Este é simplesmente o nosso MC, então a nossa melodia. E então o nome que nós especificamos aqui, Oh, caminho
Stella bem aqui tem que ser o mesmo ali. E depois temos o gerador. E o gerador é realmente a coisa que é muito louca. Então, neste caso, o que vamos fazer aqui é simplesmente uma terra plana basicamente com a, em altura, um terá rocha e, em seguida, da altura um a 60 terá arenito. É isso. Tudo vai ser aviões, uh, sem estruturas, sem características, nada, certo? Se você quer sua própria dimensão e você quer algo chique, eu vou ter um recurso lá que vai estar no, mais
uma vez no Minecraft fandom.com, que tem a dimensão personalizada, como um JSON e tem toda a sintaxe destacada. É incrivelmente útil. E se você realmente quer mais controle e nós queremos realmente especificar o que está acontecendo lá. Então você pode dar uma olhada nisso. Para esta palestra, vamos deixar assim. Vamos fazer uma nova dimensão. O jeito que você constrói. Que mais uma vez, você tem que dar uma olhada nisso em seu tempo livre, mas tenho certeza que você será capaz de fazer isso. Eu tenho todo o, Eu tenho total confiança que você tipo dimensão. Precisamos de mais uma coisa e que vai ser um novo arquivo, uma vez, também chamado KJ db.json. E eu vou copiar isso rapidamente também. E isso é apenas algumas variáveis básicas ou parâmetros que o mundo aqui basicamente tem. E como o tempo. Se as apostas funcionam, esse tipo de coisas. Mais uma vez, aqui com o nome de muito importante que este é o ID MOD e você foi especificado nome. E é isso. Claro, tudo o que fizemos, tanto os novos arquivos JSON quanto as classes estão disponíveis como um recurso como sempre. E agora, vamos dar uma olhada se isso realmente funcionou, se nosso trabalho duro valeu a pena. Então vamos começar este cliente e vamos ver se podemos
entrar em nossa nova dimensão clicando com o botão direito do mouse em um funil ou é meio engraçado, mas isso é de se esperar. Tudo bem. Vamos ver. Vamos, na verdade, vamos que eles devam, tudo bem. E agora eu estou muito interessado em saber se nós
fizemos ou não tudo agora parece meio que
achar que realmente precisamos criar um novo mundo para isso. Então vamos criar um novo mundo aqui no modo criativo. E então vamos criar um novo mundo. A primeira coisa que vai acontecer é que você vai conseguir esse tipo de mundo usando configurações de experimento não são suportadas. Isto é porque temos uma nova dimensão. E Minecraft é tipo, você tem certeza que quer fazer isso? Agora? Nós temos certeza. Então podemos prosseguir. Enquanto você está testando isso, você provavelmente vai ter que lidar com esta seta quando você criar um novo mundo. E também acredito que quando você entra em um mundo, é assim
que vai ser. Você pode clicar em Continuar e tudo vai funcionar bem. Se você é modesto, todo demótico, há um mapa que diz, que é como nenhum erro experimental de geração mundial ou aviso. Isso é definitivamente algo que você deve incluir em uma simulação de volta, se você quiser, se você usar o seu amorfo moderno. Mas sim, é basicamente isso. E vamos ver, vamos pegar o cobre ou bloco. Isto vai ser muito interessante. Então, vamos deixar isso para baixo. E agora o... Está pronto, gato? Você está pronto? Botão direito. Todos. E aqui estamos nós. E lá estamos nós. Um mundo plano com um monte de arenito, assim como fizemos. E então se dermos uma olhada nisso, então se pressionarmos F3, então você pode realmente ver aqui mesmo MC curso KJ dim. Então esta é a nossa dimensão. Isto são aviões como nós basicamente colocamos como um arquivo JSON. E sim, é basicamente isso. E agora nós gostaríamos de clicar com o botão direito neste. Na verdade, vamos ser retidos, teletransportados de volta exatamente para onde este bloco. Então, podemos basicamente teleportar de um outro e
também terá sempre o efeito sonoro agradável. Sim, isso é basicamente como eu, eu acho que no geral, a dimensão é mais fácil do que eu teria previsto se eu fosse absolutamente honesto, porque havia muitas coisas em torno dela. Mas no geral, agora eu realmente acho que é bastante simples. Espero que isso tenha sido útil para você e você aprenda algo novo. Mas sim, mais uma vez, tudo está disponível como um recurso, bem
como o link para o GitHub da dimensão da luz, o que é absolutamente incrível, a dimensão da luz do dia. E assim como o vinculado o fandom do Minecraft para as dimensões personalizadas para que você possa basicamente personalizar seus arquivos JSON como você gostaria. Sim, eu espero que isso tenha sido útil para, como eu disse, se houver alguma pergunta, é claro, sempre sinta-se livre para perguntar e eu vou ter certeza de responder. E sim.
79. (Minecraft) criando uma entidade de telha grande: Muito bem, bem-vindos de volta ao curso de microondas. E nesta palestra vamos adicionar um novo grande xadrez. Agora, eu vou avisá-los que esta palestra, sem dúvida, vai ser 40 em todo o lugar um pouco mais rápido. E você pode não entender tudo o que está acontecendo. Agora. Isso é porque a adição de um novo baú é realmente eu não diria necessariamente difícil, mas é muito envolvido porque há muito, muito, um monte de componentes diferentes que basicamente precisamos obter. Precisamos acertá-los para que tudo funcione. E então uma das coisas, infelizmente, que vai ser a abertura e fechamento da tampa. Isso não funciona. Na verdade, não sei por que verifiquei novamente e verifiquei tudo novamente. E eu não consigo fazê-lo funcionar. Se há alguém por aí que depois de ver isto, sabe porquê. Estou muito feliz em adicionar um adendo a esta palestra ou como uma próxima palestra para basicamente dizer, ok, é assim que podemos corrigir isso. Mas por agora, só teremos, apenas entre aspas, um baú que podemos abrir e que exibirá uma GUI, e que será na semana seguinte. Na verdade, já preparei isso. É este. Então é um baú maior. E sim, vamos ver o que podemos ver e como podemos construir um baú maior. Então, primeiro de tudo, é claro, o que vamos precisar é que vamos precisar de um novo T. Tailândia e haverá as entidades férteis. Você é uma nova turma chamada “Peito Grande”. Eu adoro isso. Agora isso vai herdar ou ele vai estender o seguinte estende entidade telha peito. E ele vai implementar as duas interfaces a seguir. Ihs, tampa e o, IT, o piloto idêntico. E nós podemos realmente verificar as entidades da telha do tórax. Então, se nós botão do mouse do meio clique sobre isso, então vamos realmente entrar neste. E agora começa a coisa divertida. Podemos levar tudo aqui e copiá-lo. Vamos mudar algumas coisas, mas a maior parte vai ficar exatamente a mesma. Então é isso que você vai fazer. Você vai descer até a entidade do tórax para a linha 277, qual é o seu cursor lá. E então você vai subir e basicamente ir até aqui,
pressione a tecla Shift e pressione o botão esquerdo do mouse, e então pressione Control C. Entre aqui, controle V, e tudo está aqui. Isto é lindo. Agora, nós vamos ter um número de setas aqui, que nós vamos consertar. Não se preocupe com isso. Tudo isso vai ser consertado ao longo do caminho. A primeira coisa, é claro, é o nome do real, o nome do construtor real está errado. Então podemos simplesmente copiar este e colocá-lo em ambos aqui. E então isso é algo que precisamos mudar um pouco, cintura abaixo da linha. Além disso, a única coisa que queremos mudar é o número de itens que são armazenados. Isto vai ser 66. Agora eu sei disso porque mais uma vez, se eu reabrir nossa interface do peito, podemos realmente ver que temos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. Em uma fileira e 123456 linhas. Portanto, isso nos dá 66 itens que este teste pode armazenar esta imagem. E isso é basicamente isso. E então, como eu disse, nós vamos também, este estoque de tamanho também vai ser 66. Então, não sei por que precisamos disso em dois lugares. É aparentemente como o baú real é construído e geral, e isso é quase bom. Agora é a coisa que provavelmente vai ser um pouco estranho é porque geralmente quando temos baús ao lado do outro, os baús combinados a um em um novo peito. Na verdade, não queremos esse ano, mas isso é ótimo porque isso vai ficar bem, basicamente, você sabe, não vai acontecer de qualquer maneira. Então, em qualquer lugar que tenhamos, por exemplo, seu contêiner de peito, precisamos, depois de termos feito nosso grande contêiner de xadrez e nossa tela grande no peito, nós realmente precisamos mudar isso, mas agora nós podemos realmente apenas mantê-lo como É. Isto é realmente bom. Quase basicamente copiando tudo da entidade confiável. Em seguida, a próxima coisa será 1 dentro de nossas telas e, em seguida, saber e dentro de nosso recipiente, nós queremos um recipiente em primeiro lugar, como vai ser o novo recipiente classe, o ego, o grande recipiente de estresse. Isto não deve ser muito louco. Isso não deve ser nada que é fora do comum é simplesmente estende a classe container. Contentor. Este não é o recipiente certo. E o contentor que queremos é o contentor líquido do Minecraft. Muito importante. Pode acontecer a qualquer momento. Às vezes também pode acontecer com a felicidade com um bloco que é realmente estúpido, mas um ir. Ok, vamos mover a lata, pode interagir com, nós só vamos realmente retornar o seguinte. Nós vamos voltar, nós realmente precisamos de um, ok? Em primeiro lugar, precisaremos do seguinte. Vamos precisar de um int final privado, que vai ser um amigo. E nós vamos ser necessários se int final privado, número de papéis. Também precisamos de uma entidade privada de mosaico, entidade mosaico, entidade de mosaico de tribunais e um manipulador de item de olho privado, que é a camada de inventário do jogador em. Isso é bom. Nós vamos, sim, vamos na verdade apenas parâmetros do construtor então vamos ter certeza de que tudo aqui é selecionado e vamos dizer, ok, e então nós realmente teremos que mudar o construtor um pouco. Nós também precisamos de um int id, um mundo, um mundo, e um bloco OS, OS. E depois quero isto ao contrário. Então eu quero primeiro a entidade cauda e , em seguida, o inventário da camada e, em seguida, o número de colunas e linhas. Sim. E, em seguida, o passe de bloqueio está escrito errado. Lá vai você. E depois temos. Ok, então isso é bom. Isto é, na verdade, o arquivo. O que queremos é
que o outro ainda não pode fazer. Bem, podemos fazer no entanto é que podemos definir a entidade azulejo já
obtendo mundo que fica ilha na posição dada aqui. E que o inventário do jogador. Curiosamente, não queremos um manipulador de itens aqui. O que realmente queremos é o inventário de jogadores real, porque é assim que conseguimos. E para convertê-lo, nós realmente queremos um novo invólucro de inventário com o inventário de camada. Como eu disse, algumas dessas coisas são meio loucas. Mas sim. E então o que eu vou fazer é, hum, sim. Então, basicamente, nós vamos verificar, ok, se há mesmo uma entidade de mosaico lá. Então, se o talento é desigual a nulo, então vamos para talentosos t dot get capacidades. Vimos as capacidades e esta é a velocidade do manipulador de itens. E se isso estiver presente, então o que vamos fazer é fazer o seguinte. Vamos dizer “manipulador”. E então nós vamos realmente fazer dois novos métodos. Porque se dermos uma olhada em uma família, voltando para o grande título e
vamos para o botão do meio do mouse clique para o recipiente desajustar. Então, primeiro de tudo, vamos ver se há, há um monte de estática como desejos. E, em seguida, também o construtor de contêiner de confiança tem o seguinte. Isso constrói as ranhuras do baú. Isso é tipo, quero dizer, é um pouco difícil criticar o código de outras pessoas, mas isso é tipo, eu não sei o que diabos está acontecendo aqui. O mesmo com isto e o mesmo com isto. Agora o que isso faz é simplesmente isso cria o inventário do peito, e isso cria o inventário do jogador. E então essa última coisa cria os slots para a barra, a barra de inventário. Não sei porquê. Isso não está bem embalado em alguns métodos privados porque é exatamente o que vamos fazer, é que vamos ter que métodos privados. Nós vamos ser apenas o vazio privado, gerar slots de inventário de peito com o manipulador de itens, manipulador de
itens, manipulador antigo. E então nós vamos ter basicamente exatamente a mesma coisa. Essa é a coisa engraçada. Como se pudéssemos aguentar isso, certo? E podemos copiar o controle C e colocá-lo em nosso contêiner aqui, bem aqui. E só precisamos mudar muito,
muito, muito poucas coisas. Não tenho 100% de certeza de que está tudo bem. E então este vai ser o número de chamadas. E em vez de fazer um novo slot, vamos fazer um novo manipulador de itens de slot. E então aqui nós simplesmente colocamos a alça. E é basicamente isso. Agora precisamos fazer algumas coisas aqui. E isso é principalmente o índice é realmente k mais j vezes this.com chamadas. E então a posição, esta posição é realmente correta e esta posição não está correta. Isto vai ser 14. Agora, vou explicar como chego a esta posição daqui a pouco. Nós queremos dizer ligando 0, 1, Vamos realmente manter isso atualmente como ele é. E então vamos explicar como consegui a posição de que precisamos. E então podemos ter um novo vazio privado, que vai ser o gerar mais tarde, inventar slots de inventário. Isso vai ter um manipulador de itens chamado manipulador e um inventário de camada. Inventário de camadas E depois. Faça o mesmo que fizemos antes. Você pode simplesmente pegar isso e copiar isso e colocá-lo aqui. E então precisamos fazer algumas coisas. A primeira coisa é que precisamos ter o int I é igual a este ponto número linhas menos 4 vezes 18. Primeiro queremos subtrair o 4 aqui e depois fazer isso. Agora esta é basicamente a idéia é que nós temos as últimas quatro linhas ou o inventário. Eu tirei isso exatamente daqui. Como eu disse, isto está em todo o lado. Eu diria que provavelmente poderia usar alguma refatoração. Mas ele vai encontrar, então isso vai agora ter o inventário do jogador em vez do manipulador dentro daqui. Porque o jogador, o inventário de jogadores que recebemos aqui. Por favor. Porque, na verdade, por que não? Eu acho que não. Você vai, acho que eu estava enganado. Não. Na verdade, não precisamos disso. Não precisamos de nenhum desses. Tanta coisa para essa. E então vamos manter as posições aqui também. E as posições serão metade para mudar também. No entanto, como eu disse, vamos dar uma olhada nisso daqui a pouco. Então, vamos chamar isso com o manipulador e, em seguida, vamos gerar slots de inventário de camada. E isso é bom. E sim, depois de termos feito isso, que são os slots que são gerados em, qual é o problema aqui? Sim, precisamos inserir super que está tudo bem. O resto, Curiosamente o suficiente, podemos simplesmente tomar para que não sabemos, Nós realmente, nós não queremos o este. Nós não queremos isso. Queremos a transferência e slot, no entanto, você quer o recipiente fechado. E também queremos o número de linhas que realmente não precisamos. No entanto, precisamos do inventário do peito. Então vamos pegar isso para que possamos basicamente copiar tudo o resto e colocá-lo em. E nós também podemos nos livrar disso. E então precisamos do inventário, que será o seguinte. Este é o, isso vai ser a entidade de mosaico mais tarde abaixo da linha. Então esta vai ser basicamente a grande telha do tórax, esta entidade de azulejo. Eles vão. Então há o inventário, eu diria, ou podemos renomear isso para obter inventário de peito porque obter inventário mais baixo. Não sei por que esse é o nome, mas sim. Ok. Peito desculpa, isto parece bom. Inventário do peito Podemos realmente saber. É mais fácil dizer, mais
uma vez, para dizer entidade de mosaico. Sim, talentoso T, desculpe, aí está. Tile entidade dot cast e, em seguida, ele vai lançar isso para entidade, desculpe, grande cadeia e grande peito apertado. Eles vão. E depois vamos fechar o inventário. É tudo o que precisamos aqui. Quando se trata do mínimo, também
podemos nos livrar desse comentário. E então o slot de transferrina, tudo bem. Isso lida com o clique de deslocamento. Isso é totalmente bom. Essa soma, podemos basicamente manter este ano, exceto por este. Isso precisa ser feito com este ponto numero chamadas. E então este é este. Chamadas de nome. Sim. E então isso é o quê? Este. Name porque o número de colunas neste caso. Mais de nove. Então não está codificado lá dentro. Pode interagir com é a última coisa que precisamos basicamente fazer. E isso vai ser o seguinte. Este vai ser um grande título de peito, esta entidade. Title. E então vamos cercar ambos desta largura com alguns parênteses. Desculpe, eu sou o ego. E então dizemos que ponto é utilizável pelo jogador. Jogador. Acredito que seria isso para o contêiner, a única coisa que precisamos acrescentar é o super-herói. Mas ainda não podemos fazer isso porque ainda não definimos
no recipiente de marca de hora dentro de nossos recipientes de boca. Mas podemos fazer isso agora. Podemos fazer isso agora? Sim, na verdade não podemos. Devemos ser capazes de fazer isso. Então podemos dizer final estática pública. Na verdade, quer saber, vamos copiar isso. Vamos ser honestos. É mais fácil copiar isto. Este vai ser o grande recipiente de peito do tipo, grande recipiente de peito com o nome grande recipiente de peito. E então vamos criar um novo grande contêiner de xisto com uma janela do mundo IDA, uma posição no inventário. E em vez do interatrial, o jogador, vamos dizer um seis, 11. Isto é, desculpe. Sim, temos mais uma coisa. Interessante. O que temos nós? Temos a entidade telha. Não precisamos da entidade de mosaico. Isso é ridículo. Um número legal de “ok”. Nada disso. Seis, certo? Número de colunas é 11 e número de linhas. Sim, espero que sim. Vamos ver porque houve alguma estranheza com as colunas e filas. Não tenho 100% de certeza. Vamos mantê-lo assim. Sim. Acho que está tudo bem. Sim. E então isso já funcionará bem. Então, isso é muito bom. O contêiner está pronto. E então também podemos voltar para o baú bem aqui. E depois temos o recipiente do peito. Agora nós podemos realmente apenas selecionar isso,
copiá-lo e, em seguida, pressionar Control R. E então em todos os lugares com isso, é apenas contêiner. Podemos simplesmente dizer grande recipiente de peito e, em seguida, substituir todos. Primeiro de tudo, vamos pegar uma flecha, mas isso é simplesmente porque o grande contêiner de xadrez para a Itália não é como se não estivesse lá. Desculpe-me. Por favor. Escrevi isto errado? Eu tenho que eu perdi tipos. Tom e eu não escrevemos algo errado. Então eu não tenho 100% de certeza por que ele tem um problema com o “ok”. Por alguma razão, isso é verdade. Quero dizer, tudo bem. Eu acho que a substituição não funcionou muito, mas eles vão. Então você pode simplesmente em todos os lugares se houver recipiente de estresse climático, você simplesmente substitui isso com grande recipiente. Sim. Para sempre, ele não funcionou. Interessante. Bem, tudo bem. Claro. Sim. Além disso, vamos nos preocupar com isso daqui a pouco. Então, o recipiente do peito foi bem alimentado. Aqui em baixo. Sim, aqui em baixo. Nós também precisamos mudar algo então,
como você pode ver, o genérico está sendo puxado aqui e isso não é o que queremos. O que queremos é devolver os contêineres MOD, docker, contêiner, que seja feito. E depois com a identificação e o jogador a, Oh, isso é bom. Na verdade, não precisa dessa troca, o método de conteúdo. Também não precisamos que os bons jogadores usem isso. Também podemos liderar isto. E agora, eis que, na verdade, já temos uma classe de entidade de bloco bem livre de erros. Agora isso não vai funcionar ainda, mas que você está agora dentro, volta para dentro do nosso grande recipiente de peito, chamamos o super. E este vai ser o MOT MOT contentores, docker, contentor, NÃO portão com um id. É isso. Isso é tudo para o recipiente terminou a Tailândia T. Agora vamos precisar mudar essas posições aqui mais tarde abaixo da linha e depois ter implementado a tela também. Bem, basicamente o doce, sim, é isso. Certo, então vamos fazer a tela. E essa vai ser a grande tela do peito. Grande tela de baús em vez de sua tela grande do peito vai se estender. E isso vai ser uma tela de contêiner. Para entrar na tela com tipo, grande, grande recipiente de peito. Adoro isso. Isto vai ter métodos implementados,
este e, em seguida, foi implementado o construtor, sim, é claro. E há algumas coisas que precisamos fazer. E as coisas que precisamos fazer em primeiro lugar é porque temos um, então eu vou abrir os briefers eletrificados. Então esta era a GUI. Este é o tamanho normal de uma GUI que estamos acostumados no Minecraft. E este é o tamanho da GUI no grande xadrez. Obviamente, isto é maior. Portanto, se dermos uma olhada na tela do recipiente, se nós botão do meio do mouse, clique sobre isso. Você pode realmente ver que o tamanho aqui é, é o predefinido dentro dos contêineres. Então, se nós temos algo que é maior, nós realmente apenas especificá-lo aqui. Então temos este ponto x tamanho é igual a 212. Este ponto y tamanho é igual a 221 porque esses são os pixels que o, a GUI é grande, certo? Então, o grande teste é 212 pixels na direção x e 221 pixels na direção y. E então nós também podemos adicionar isso já para que possamos ir para pássaros de texto GUI e adicionar a isso aqui mesmo. Certifique-se de copiá-lo lá, não apenas movê-lo. E então isso é algo que também podemos colocar em como um recurso, privado, local de recurso
final para GUI, novo local de recurso. Mc curso Math.min DID, como estamos muito bem cientes de. E então isso é dentro de texturas barra peito e nós ponto PNG. Que bela, que coisa linda. Ok, tudo bem. E a direita, isso é, tudo bem por enquanto. Então precisamos do método de renderização. E isso, é claro, podemos olhar para trás em nossa tela de eletrofilo e podemos basicamente tirar algumas coisas dessa. Então, por exemplo, o método aleatório é exatamente o mesmo. Então poderíamos, por exemplo, copiar isso. Totalmente bem, porque isso é quase sempre a mesma coisa, o método aleatório. E, neste caso, só precisamos do recipiente Mac fundo redondo aqui. E o que queremos fazer é basicamente também. Copie também os insights desta tela de eletrofilo. Às vezes é mais fácil, não precisamos disso, só
queremos um blip. E esta divisão aqui é simplesmente, bem basicamente a própria GUI. E, na verdade, é isso. Como se isso fosse tudo o que precisamos. Teremos de definir outra coisa aqui também. Mas não vamos fazer isso ainda porque eu quero realmente mostrar a vocês porque precisamos mudar se você tem outras coisas. E basicamente como descobrir como mudar isso. Agora, podemos pensar, bem, quero dizer, isso é ótimo, terminamos. E devo dizer-lhe que infelizmente ainda não terminamos porque vamos realmente precisar de um renderer nós mesmos. Então precisamos, número um,
fazer um novo renderizador de entidade de mosaico. E também precisamos fazer uma nova renderização de entidade tátil itens. É por isso que eu disse que vamos estar por todo o lado, mas não se preocupe, vamos superar isso. Então, entidade de mosaico, vamos adicionar uma nova classe. Esta vai ser a entidade do título do peito grande e tornar o nosso ego. Esta vai ser uma classe genérica que se estende entidade azulejo, fim I, peito, tampa. E, em seguida, também esta classe estende o renderizador de entidade de mosaico do peito da criança. Como você pode ver, muito bom. Crie um construtor. Isso vai ser realmente o que podemos fazer é botão do meio do mouse neste. E então, mais uma vez, chegar no topo aqui e ir para o fundo, Controle C. E voltar aqui e basicamente apenas colá-lo. E só teremos mais algumas coisas lá dentro. E isso é apenas porque o nome do construtor está errado novamente. E então nós realmente não teremos nenhum erro. Agora vamos precisar mudar, eu acredito que apenas uma coisa se eu não estou enganado. E isso é apenas verificar rapidamente porque isso é, como eu disse, isso é loucura aqui. Na verdade, acho que não precisamos mudar nada. E no momento, bem aqui. Sim. Acho que não precisamos mudar nada no momento. Vamos manter assim. E se houver um erro, então vamos verificar isso. Sim, porque nós somos exatamente porque nós realmente temos o 0. Ainda não temos um bloco. É por isso que precisamos fazer um bloco que tenha o bloco de estresse extra estendido. Então essa é a próxima coisa que vamos fazer. Então este é o renderizador. E então vamos precisar de um bloqueio, que vai ser um grande bloqueio no peito. O baú, por favor, eles vão. E o bloco de blogues de peito grande, não blog, vai estender xisto abstrato, bloco de xisto. E isso vai ser do tipo peito, baú grande, azulejo. Bom método de implementação, uma nova entidade? Sim, fácil o suficiente. E isso vai ser as entidades de mosaico Mode. Nós realmente não fizemos as entidades de mosaico. Então, se não me engano, desculpe, não o eletrófilo. As múltiplas entidades. Sim. Lá vamos nós. Nós ainda não fizemos isso, como eu disse, um pouco por todo o lado, porque há tantas coisas. Só posso implorar para baixar os arquivos e, provavelmente, dar uma olhada neles. Sabe, em vez de V, programamos isso,
mas talvez seja um exercício divertido. Vamos realmente copiar isso novamente porque às vezes isso é mais fácil. Este vai ser um grande baú, grande telha no peito. E esta vai ser a grande entidade sublinhado do título sublinhado do tórax. E esta vai ser a entidade sublinhado sublinhado. E esta vai ser uma nova telha de peito grande com um novo bloco. Ainda não definimos isso em nossos blocos de mapa. Inacreditável. Então, isso vai ser as entidades de mosaico Mode. A entidade minúscula do peito recebe V8. Sim. Muito bom. E é um pouco mais de blocos que podemos simplesmente adicionar para o cobre ou vamos apenas fazer um público realmente tem que verificar novamente isso porque eu não sou um 100% Ciara. Nós fazemos isto. Este era o grande xadrez. Sim. Pior registro final estático público. Registro, objeto do tipo sorte, claro, baú grande. O grande justo, eu gosto. E agora a próxima coisa, registre-se, vamos fazer isso assim. Vamos copiar a caixa registradora aqui. Grande teste de sublinhado. E então vamos ter um grande bloqueio torácico aqui, um grande bloqueio de chance. E isso, claro, tem mais uma coisa. Sim, Incrível. Vamos ter esta multa. Vamos nos livrar disso. E eu também vou ter as entidades de mosaico MOD, desculpe, entidades minúsculas. Pick peito talentoso p dot, obter o esperado 0 argumentos, mas encontrado para ,
bem, isso é provavelmente porque o que não temos um construtor aqui ainda. Bem, isso é sim, eu vou me defender o dia todo. É uma coisa muito complicada. Então vamos acreditar que devemos ser capazes de criar um construtor sim, o IPO. E, em seguida, este construtor, ele também irá corrigir imediatamente esse erro. Muito agradável. E vamos precisar alterar esse método de registro em um pouco de tempo porque caso contrário, não teremos o item renderizado. Mas não vamos nos preocupar com isso agora. Como você pode ver, nós já temos uma quantidade insana de lugares diferentes abertos. Então, a próxima coisa que precisamos fazer é o bloco. Na verdade, podemos ir para o abstrato bloqueado pelo clique do meio do mouse e, em seguida, pressione Controle H. Podemos ver a hierarquia superior. Agora também podemos ver o, ver o livro de teste. Se clicar duas vezes no bloco de estresse, vamos abri-lo. E este é outro daqueles onde basicamente vai levar tudo dentro daqui. Vamos copiá-lo e sim, qualquer coisa que
precisarmos, vamos mudar. Então, qualquer coisa que
precisemos mudar, vamos mudar e tudo o que não mudamos, não mudaremos. Bem, vamos copiar isto. Então controle C Mais uma vez, e então controle V aqui mesmo. Nós também vamos tomar nossos métodos de cadeia que temos predefinido, incluindo o construtor instrutor. E vamos mover isto para cima depois deste aqui. Então podemos excluir o construtor do bloco torácico. E então temos métodos ys, um doublet, mas já definimos um desses. Não precisamos deste criativo, talentoso t. Onde estamos? Pegue aquele. Fora disso. Nós também podemos basicamente nos livrar de algumas dessas coisas. Você está sim, tudo bem. Isso é bom. Isso é bom. Então o encher seu recipiente, isso é na verdade uma das coisas mais importantes. A apreensão, comparador, impulso, substituição de entrada. Podemos simplesmente excluir isso por enquanto porque não precisamos necessariamente do mesmo com este, depois o mesmo recipiente. Então este é o contêiner GET. Nós vamos realmente também apenas excluir o método combine. Temos duas vezes, acredito agora. É por isso que isso acontece. O inventário de peito, também podemos excluir o OpenStack. Podemos deletar isso também. O desbloqueio amplo ativado, este é o método de clique com o botão direito do mouse. Vamos dar uma olhada nisso daqui a pouco. Mas há algumas coisas que podemos basicamente nos livrar em Substituído. Nós podemos nos livrar de on lays por eu acho que isso é realmente algo que nós precisamos. Eu sei que não precisamos. Não precisamos dessa direção
para anexar a nós não precisamos disso, porque nós não queremos que isso anexe neste caso. E isso também é por nós temos colocação um. Vai parecer um pouco diferente. Na verdade, vamos ter e tudo mais depois disto. Acho que vamos apagar. Sim, este. Então basicamente tudo depois do estado fluido. Opa, o que eu fiz agora, eu abri o bloco. Tudo depois do estado fluido aqui podemos excluir para que o bom estado para colocação só tem o retorno do estado padrão com as coisas diferentes aqui. Para que o tipo de peito permaneça sempre solteiro. Direção muito ligada. Também se livrar dessa forma? Não, na verdade, desculpe, não é que nós realmente não queremos nos livrar disso porque nós queremos ser moldados para ser capaz de ter uma forma adequada exibida. Atualizar licença pós-colocação é algo que também não precisamos, mas eu não tenho 100% de certeza. Não precisamos disto. Bem, eles vão obter o tipo de renderizador. Tenho que ser honesto. Acredito que esta é a razão pela qual eles não envelheceram. Mas eu não tenho certeza. Eu realmente não acho que seja, mas sim, como eu disse, é um pouco, é um pouco louco. Um tipo de fusão. Na verdade, também não precisamos disso. E então a única coisa que um é o método combinado, que vai ser a seguinte coisa. E não tenho 100% de certeza de onde tiramos isso. Tira isto daqui, creio eu. Então. Combine, o método de combinação é exatamente isso. Então isso realmente precisa ser copiado novamente. Vamos copiar isto outra vez. E então tivemos esse nulo aqui. E nós realmente vamos pegar isso porque caso contrário vai haver uma flecha. E como eu já disse, isso é um pouco, bem não diria muito trapaça. Eu diria apenas que é muito. Isso definitivamente precisará ser limpo um pouco. E criá-lo assim é isso. Definitivamente está por todo o lado. Como se eu tivesse que ser honesto. Estou um pouco envergonhado,
mas a forma como o bloqueio do peito é feito é como uma loucura absoluta. Eu acho que poderia ser feito um pouco mais fácil. Mas de qualquer maneira, vamos ver rapidamente, então o major de contêineres, não
precisamos disso, bem como da fusão de estoque. Também não precisamos disso. E agora acredito que finalmente estamos aqui. Podemos nos livrar de tudo dentro de seu octeto desbloquear ativado. Porque a forma como vamos fazer isto é mais uma vez, a forma como fizemos isto. Se fecharmos isto e isto, como fizemos isto no electrófilo. Não, não o fluxo molar, mas o eletrófilo. Então, se formos até aqui dentro deste, e podemos copiar todo o interior da lista. E então também podemos fazer isso e isso. E então podemos salvar isso seria, por exemplo, tela MC, pior, talvez peito grande. E então, em vez do contêiner eletrofilado que somos, vamos dizer grande contêiner de peito. E em vez da entidade de camada, vamos dizer seis e 11, sabe 116, certo? Sim. Espero que sim. Eu nunca tenho 100% de certeza aqui, mas eu acho que isso é certo. Certo. Ok. Agora, vamos pensar sobre isso. Acredito que estamos quase terminando, e eu sei disso, mas ainda não terminamos. Então vamos pensar sobre isso. Temos os testes aqui, tudo bem. Precisamos especificar isso aqui. Então mod Blog.config peito. Ok, isso é bom, isso é bom. Isso agora está feito. Sim, 100%, isso está feito. Não precisamos mais da renderização da entidade de mosaico. Já fizemos isso. Isto é bom. E eu realmente acho que estamos bem com isso. Podemos fechá-lo também. Isso é muito bom. Isso é uma coisa importante que fizemos. Não tenho certeza se acabamos com isso. Não, não estamos. Estas entidades de telha do tórax aqui. E eu não acho que nós queremos aqueles realmente dentro deste aqui. Nós queremos eles. Quantos nós temos? Só temos seis. Isso está tudo bem. Isso é permitido. Sticks é a quantidade certa. E tudo bem. Ok. Ok. Deixe-me apenas olhar rapidamente para isto. Então nós temos, vamos reabrir a tela por um momento. Certo, agora precisamos adicionar os modelos. Bloquear um item. Sim. Assim como os estados do bloco. Agora parece que os Estados são realmente fáceis. Então, o bloco declara novo arquivo. Isto vai ser grande. Peito, o tórax ponto-ponto JSON. Se eu tivesse feito isso nos quarteirões, desculpe, alguém tem, alguém não tem sido grande pedaço neste baú sublinhado. Vamos realmente fazer isso. Ela tem certeza. Por que não? Vamos mantê-lo assim. Isso é bom. Refatore Renomear xadrez grande sublinhado. E isto vai ser o seguinte. E isso vai ser muito interessante. Xadrez de blocos de modelos e barras. Isso não está muito certo. Isso vai ser grande, só o ego. Agora isso eu tirei dos arquivos JSON de microfones novamente. Então aqui em baixo, em vez de extra, então podemos ir para Assets, Minecraft, blocos, datas, e assim por diante e assim por diante. E podemos basicamente procurar por isso. Então, se apenas digitarmos o peito, então um pouco abaixo podemos ver o teste, e é exatamente isso. Então, também é assim que a Microsoft EMC piora. Bem. Agora é um pouco estranho. Eles são ego. E um modal. Modals é, desculpe, eu estou na metade do caminho feito isso no modelo. Eu sou. Isso é muito, isso é muito como eu disse, isso é claro não vai para o bloco de modelos. Isto vai para os Estados Negros. Desculpe. Sim, podemos copiar isto. Sim, por favor. Ok. Agora, um bloco em vez dos modelos e bloco, queremos o seguinte. Queremos um pouco, como eu disse, é um pouco mais, isso é um pouco mais do que você provavelmente está acostumado. Isso é um pouco mais, isso simplesmente vai ser a coisa mais fácil. Isto vai ser simplesmente texturas, partículas, Minecraft, bloco o. Obrigado. Então, quando destruirmos o bloco, queremos que as partículas sejam 0 pranchas. Fácil o suficiente. E agora o modelo do item vai bater completamente suas meias. Porque é assim Chris, eu
fiz isso com um sublinhado? Você disse isso. Isto vai ser o arquivo sublinhar o peito ponto-ponto Jason. E eu vou copiar isso mais uma vez, isso é, isso é construído em entidade. Agora isto é mais uma vez das modelos aqui em baixo. Então você pode verificar isso novamente. Então isso é exatamente a mesma coisa. E para usar isso, nós realmente precisamos de nosso próprio renderizador de pilha de itens, como eu disse, isso é sempre um muito bom. E, e isso vai ser, eu vou criar isso em vez dos itens aqui. No entanto, eu acredito que isso, você sabe, como mais tarde na linha, isso provavelmente deve ser em outro lugar, especialmente se você tem vários desses itens grandes do peito, pilha, título, entidade, renderizador. Eu só vou dizer, você pediu por isso. Mas para ser honesto, isso não é tão difícil de entender. Então este é um título extenso, que item, pilha, renderizador de entidade de mosaico, eles vão. E se entrarmos nisso, isso só tem um método aqui seria realmente chamado de método de renderização. No entanto, seja qual for o motivo ou ainda não foi mapeado. E nós vamos apenas copiar a assinatura do método real aqui. E então vamos adicionar um, outro colchete. E a única coisa que precisamos chamar aqui dentro é o título. E para o seu despachador de renderização, essa instância, esse item de renderização, desculpe, nó de
renderização, é o item de renderização na verdade renderizar item. E depois com a nova telha do peito grande, depois o lanche da matriz. Queremos o buffer, queríamos a luz combinada, e queremos combinar sobreposição e, e é isso. É tudo o que precisamos fazer aqui. Vamos apenas para o inferno, adicione a sobreposição também. Porque o meu e sim, isso é tudo o que precisamos fazer. Nós ouvimos, é claro que precisamos manter isso e o onde precisamos chamar isso dentro de nossos blogs modelo. E que blocos. Eu não sei por que eu estou chamando isso de meus blogs como se nós, nós
estamos, nós estamos, nós estamos blogando fora. Na verdade, não estamos. Blogs mod, blocos. Sim. Aha, sim, exatamente. Isso ocorre porque o método register
não vai funcionar porque nós realmente precisamos adicionar uma nova propriedade item. E nós fizemos há algo semelhante aqui, mas nós realmente queremos um novo bem aqui. Isso vai ser telha registradora. E T. E depois da guia do curso, vamos chamar o set de Páscoa. Este é o, este é exatamente o renderizador de entidade tátil de itens. E então nós vamos dizer ter um divisor de grande item no peito empilhado além do cólon, cólon novo. E então este vai ficar frio aqui em vez do método de registro. Sim. Agora, estamos quase terminando. Temos que checar tudo de novo, mas acho que estamos quase terminando. Claro, nós adicionamos algo, algo, algo que alguém posiciona. Isto vai acontecer. Mas tirando isso, acredito que devemos começar e não entendê-lo. Não teremos terra nenhuma. Vamos tentar isto. Não tenho certeza porque, como eu disse, isso é loucura. Mas acho que isso pode funcionar. Vamos ver. Acho que já havia uma flecha lá dentro. Não estamos carregando nenhum celular. Então isso é meio legal. Estamos carregando. Até temos uma tela de carregamento. Ok. Então menu principal, isso é muito bom. Vamos para o nosso mundo. Sim, nós vamos. Eu sei o que estou fazendo. Isto é mais uma vez, as configurações de trabalho experimental por causa de nossa dimensão personalizada. Ok, nós nos encontramos no mundo. Agora vamos ver. Se tivermos um baú. E parece mesmo um baú. Se o colocarmos para baixo, não parece um xadrez, mas tudo bem, porque eu realmente sei como consertar isso. Isto deve-se ao facto de não termos acrescentado isto. Se eu clicar com o botão direito, nada acontece. Certo, essa é a coisa que estamos bem. Vamos ver. Qual é o problema que nossos fornecedores de contêineres estão faltando? Bem, isso não está bem. Isso não é bom. Oh, nós não chamamos de super? Chamamos o zelador. Bem, oh, isso é o que acontece. E isso acontece se exatamente, bem, se nosso talento não é uma instância de eletrofilo, não é? Sei disso, claro que não seria. É do tipo. Peito grande, apertado. Lá vai você. Então esta é a questão aqui. E então vamos também imediatamente porque eu me lembro disso, consertar o oh, eu realmente consegui qualquer outra coisa de qualquer maneira. E isso vai ser o seguinte dentro do nosso cliente. Rochas. Bem aqui, precisamos adicionar o seguinte. Gerenciador de tela, gerenciador de tela, registrar contêineres mod de fábrica. Não só contentor não consegue. Este é o grande recipiente do peito. Novo. Lindo. Isso não funciona porque ele não gosta que eu não tenha 100% de certeza. Branco é. Por que peso que eu faço tela Container Instances. Bem, bem, essa seria a razão pela qual tela, tela, tela, não, não,
não, não, não, não, isso é doce. Agora também, é claro, importante esta aula é você, você está louco? E então precisamos. Também tem a entidade que você renderiza, e isso vai colocar no modo de renderizador de entidade de mosaico de ligação de ponto de registro, entidades de
mosaico, não obtenções de pontos de entidade de mosaico grande
e renderizador de entidade de mosaico de peito grande, dois-pontos, número de dois-pontos. Isso e isso também precisam ser adicionados ao Proxy do cliente. Este irá simplesmente garantir que a tela seja mostrada. Então, quando, uma vez que clicar com o botão direito e este irá garantir que o bloco é realmente renderizado dentro do mundo. Isso é muito bom. E eu acho que isso deve funcionar agora. Como eu disse, mais uma vez, é um pouco, isso é um pouco mais solto de um episódio, eu diria, de uma palestra. Porque não diríamos descobrir ao mesmo tempo porque teria sido como uma, sei lá, sete horas como uma palestra de sete horas. Provavelmente até mais. Mas eles vão, Então vamos voltar para o nosso mundo e vamos ver se o, se isso funciona agora. Então a primeira coisa que vamos fazer é destruí-la antes porque às vezes este rapaz,
isto, porque às vezes fica um pouco estranho. Ok, então ele não é ainda não renderizado. Tenho certeza de que há uma razão para isso, mas se clicarmos com o botão direito do mouse, então ele abre e quero dizer, isso já é muito legal. Isso é muito bom. Mas como desculpa. Cat, poderia, por favor? Espera, onde é o meu quarteirão? Há. Há. Ok, então funciona, mas como você pode ver, o alinhamento aqui não está muito correto. E isso é exatamente o que eu estava dizendo com a compensação que precisamos fazer. Então isso é algo que precisamos fazer dentro do nosso contêiner. Temos de compensar isto. E acredito que foi por isso. São quatro pixels que precisamos para mover isso para cima. E isso nós realmente precisamos mover uma linha inteira ou um campo inteiro para a direita. E a maneira como descobri esses números é a seguinte. Então geralmente o os recipientes são bem, sim, dentro do recipiente, os slots geram aqui mesmo. E então, se formos para passar para este, como você pode ver, os slots de contêineres geram um pouco mais para a direita. E você pode basicamente calcular isso com um, com um Photoshop ou GIMP ou pintado dotnet. Por exemplo, alguns programas nos quais você pode abrir isso. Deixe-me ir rapidamente para o recipiente, grande recipiente de peito. E, em seguida, o real este é apenas um recipiente que você vai. E então o que você precisa fazer, isso é exposição. Isto é história. Este é 26. E a posição um ou três está realmente correta. Fascinante é, e então este é