Transcrições
1. Skillsahre à: Olá, sou Nico me pegou
no aluno de mestrado em ciência da
computação e um
ávido jogador do Minecraft. Talvez você me conheça
de my YouTube channel tutorials by Cotton joe, where I am making microwave
modeling tutorials. Bem, agora vamos ficar
ainda maiores porque esta é minha classe de modelagem do Minecraft
118 com forge. Aqui você aprenderá tudo o que
precisa fazer para criar um incrível e incrível mod
Minecraft com a API
matinal de Minecraft mais usada, forja. Iniciantes absolutos
podem começar
passando pela introdução do
Java do provedor, que realmente
ajudará você a entender alguns
dos fundamentos. No início,
aprenderemos alguns conceitos simples como adicionar um item, adicionar blocos, receitas
e até ferramentas personalizadas. Em seguida, continuaremos
analisando modelos de blocos
personalizados, culturas personalizadas e tantos outros recursos interessantes e
interessantes. No final, vamos até
abordar tópicos avançados,
como entidades de bloco e geração
mundial. Então, o que você está esperando? Inscreva-se para esta aula agora, e quem sabe que talvez seu MOD seja o
próximo grande sucesso. Vejo você na
primeira lição.
2. (Java) Instalação e Download: Bem-vindo ao
curso fabric 118 e aqui para a introdução do
Java. Então, estamos basicamente começando com um pouco de
uma introdução em Java. Ou se você não
usou Java,
isso será
muito útil para você. Caso contrário, se você
já trabalhou com outra linguagem de programação
ou com o próprio Java, então essa é uma ideia muito
inteligente ter isso como uma boa atualização
aqui no começo. Por isso, recomendo passar por toda a introdução do
Java. Haverá algumas tarefas
ao longo do caminho também, que você pode fazer para basicamente solidificar
ainda mais os conceitos que
vamos discutir nesta
introdução aqui. E haverá alguns pré-requisitos que
vamos precisar. O primeiro
será um JDK. Jdk é um Java Development Kit, e eles vêm em diferentes
sabores, por assim dizer. Mas o que vamos usar é o de adotá-lo aqui, e vamos
precisar usar 16. Então JDK 16 neste caso, isso é chamado de tamarin 16. E eu vinculei isso
nos recursos basicamente
que você pode baixar isso. Isso garante que você selecione seu sistema operacional
e sua arquitetura. Então, para mim, isso seria arquitetura Windows
e 64 bits. Eu recomendo
baixar o MSI aqui porque isso é
basicamente apenas instalador, que então instala o JDK em sua máquina como basicamente
qualquer outro programa, na verdade. Bem, basta instalar isso normalmente como você faria com
qualquer outro programa, e então podemos prosseguir. Depois de instalar o JDK, também
precisaremos de um IDE. E o IDE é um ambiente de
desenvolvimento integrado, que no nosso caso usaremos
a ideia do IntelliJ. Isto é, eu encontrei absolutamente uma ótima ferramenta
para usar para isso, podemos usar a
versão da comunidade que é gratuita e construída em código aberto, que é praticamente
inclui tudo o que nós
jamais poderia querer ou precisar. Então, definitivamente, certifique-se escolher a
versão da comunidade aqui. Mais uma vez, também basta baixar o EXE se você estiver no Windows, e como talvez tenha visto aqui, você também pode verificar Trick aqui
se você estiver no Mac ou Linux, basicamente mudar e
instalá-los também. E também basta instalar isso como você faria com qualquer outro
programa também. E então, uma vez instalado iniciamos e, em seguida, podemos prosseguir. Quando você abre inteligência
pela primeira vez, uma janela semelhante a essa também
aparecerá para você. Agora vai parecer um
pouco diferente, mas terá
esses três botões, o botão The New Project com o botão Abrir e o botão
get from VCS. Ao clicar no botão
Novo projeto, você pode ver uma nova
janela aparecerá. O importante é que
queremos selecionar o novo projeto aqui. Aqui podemos apenas nomear o
que quisermos. Por exemplo, introdução ao
Java, você pode escolher um local
aqui usando a linguagem Java Build
System intelligence e o JDK sendo 16 para nossos propósitos aqui para
a introdução do Java, o código de amostra
deve ser verificado por eles. Com isso feito, podemos clicar
no botão Criar e, em seguida,
uma nova janela aparecerá. Agora, primeiro, o que
realmente temos que fazer nas versões mais recentes
para inteligência, eles mudaram algumas coisas. Não sei por que esse é o caso, porque eles
realmente tendem a mudar muitas coisas, o que
é meio irritante. Mas nossa classe principal aqui, para que você possa ver esse principal, se eu clicar duas vezes sobre
isso, ele será aberto. Você já pode ter aberto
para você. Tudo bem também. Agora, daqui para frente, na
verdade vai
estar em alguns pacotes. Então, na verdade, temos
que fazer isso manualmente para nosso caso aqui neste caso,
mas isso vai ficar bem. Mas basta clicar com o botão direito do mouse na pasta de
origem para que você possa ver o botão direito
do mouse na fonte E então vamos,
vou chamar essa rede. E então, nesta
rede, vou
clicar com o botão direito do mouse em novo pacote e
vou chamar essa ajuda. E Joe, agora você só vai chamá-lo de qualquer que seja o seu nome. Basicamente você vai ter rede e, em seguida, seu
nome, por exemplo, eu vou arrastar a classe
principal para ela, digamos Refactor, e então ficaremos bem. Então você tem este
pacote aqui também. Isso é muito importante porque há as próximas palestras. Nós vamos
ter isso também. Agora, se isso for exibido de
forma diferente para você, pode ser o caso de que realmente se
pareça com isso. Vou mostrar
apenas por um segundo que meio
que compacta aqui, contagem de pontos
líquidos Joe,
tudo em uma linha. Se for esse o caso, você pode
ir para este equipamento aqui. Para a aparência da árvore, altura,
MT, pacotes do meio, você pode desmarcar isso e também os pacotes achatados
também desmarcados. E então você
terá exatamente a
mesma coisa que temos lá também. Agora vamos
continuar com Pascal e
Joe para o resto
das palestras. Então, neste caso, o que vamos ter é o, vamos ter
algo chamado principal aqui e outro principal aqui. E então isso é
comum onde
diz escrever seu código aqui. Agora não vamos
escrever código nesta primeira palestra In aqui. Vamos começar basicamente imediatamente na próxima palestra. Esta é realmente apenas a configuração. Então, no geral, isso é
praticamente tudo o que precisamos fazer. Todo o código
sempre estará disponível em cada palestra. Então, em cada palestra,
você encontrará um link de recurso
ou
encontrará isso basicamente vinculado a
algum encontrará isso basicamente vinculado lugar onde você pode ter o repositório do
GitHub. Então, tudo isso
será salvo em um repositório do GitHub. E cada palestra será um indivíduo, basicamente um
ramo individual lá. Ou você também tem juristas
individuais onde
cada um dos diferentes, cada um do código,
tudo do código
desta palestra também está
vinculado lá também. Portanto, não se preocupe lá. Tudo pode ser acessado antes que você possa dar uma olhada nisso
porque, claro ,
algumas pessoas
preferem ter o código na frente delas e depois mudá-lo um pouco. Algumas pessoas só
querem codificá-lo, como enquanto eu estou codificando.
E isso é totalmente bom. Ambas as abordagens
são absolutamente válidas neste caso. Mas, por enquanto, é basicamente isso. Então, todo o código
estará disponível e espero que você tenha
chegado a este ponto. E então veja se uma vez que a
próxima palestra começa, você pode ver se
tudo funcionou ou não lá. Mas isso seria vencido para
esta palestra aqui. E te vejo
na próxima palestra. Então, sim.
3. (Java) Datatypes Java: Bem-vindo de volta à introdução do
Java para uma modelagem do Minecraft. E nesta palestra, vamos
falar sobre tipos de dados. Então, estamos começando
muito, muito devagar. A ideia é que, na programação, podemos salvar coisas em variáveis. Agora, o que são essas
coisas, certo? Existem diferentes tipos de dados. E, basicamente, nesta
palestra, vamos
passar por quais tipos
de dados eles são, basicamente significando os tipos de dados. Portanto, existem alguns tipos
diferentes
de tipos de dados, como ir
mais longe. E o primeiro
seria os tipos numéricos, basicamente como salvar números. Há um monte de tipos de dados
diferentes aqui. Então, há um número inteiro, há um flutuador e o duplo. Então, esses são os
que são usados principalmente. Vou falar
sobre isso daqui a pouco. Assim, você pode ver antes de tudo, quando você cria uma espécie
de nova variável, seja, você pode
pensar nisso como um contêiner que contém
um determinado valor. E o tipo de valor é determinado por,
neste caso aqui, a primeira palavra, você
pode ver que ele está realmente marcado em laranja. Isso nem sempre
será o caso. Esse só será
o caso dos tipos
de dados primitivos. Mas o que esses
vamos ver em um pouco em uma
palestra posterior basicamente. E você pode ver que
isso é chamado de número. Este é o nome da variável e, em seguida, o valor é 42. Agora, um número inteiro, como eu disse, é o
tipo de dados específico de A, um tipo de dados numérico, que é um número inteiro. Portanto, isso só pode salvar números
inteiros ou números inteiros. E o alcance real
que ele pode economizar, vai de menos 2 bilhões para mais 2
bilhões, como você pode ver. Portanto, esses são basicamente os
números que você pode salvar que podem ser armazenados em
um inteiro. Essa é a ideia. E depois há flutuador,
ou quando você precisa de uma vírgula. Agora, o que é muito
interessante com carros alegóricos e duplas que são
quase a mesma coisa, não exatamente, mas quase
a mesma coisa. Ambos são números de
ponto flutuante. E a ideia é que isso
realmente não é armazenado assim, é realmente armazenado como notação
científica. Você pode ter visto
isso antes de algum lugar. E isso é algo como 1,412 vezes dez para os
quatro seria 14.120. E basicamente
nesta notação aqui, os
números de ponto flutuante são armazenados. E o que é importante com
um flutuador ao usá-los, eles têm precisão de sete
pontos decimais, o que significa que você pode
ter sete números. Não importa se
eles são ou não à esquerda ou à direita
do ponto decimal, mas sete números e depois
serão precisos, e depois disso ele
será arredondado. É também por isso que geralmente você
não quer salvar
coisas muito, muito precisas em carros alegóricos. Então, por exemplo, se você tem dez mil ou 100 milhares de Bitcoin, algo assim. Isso definitivamente
não deve ser salvo em um flutuador porque isso pode ser muito
facilmente obter um erro de arredondamento. Portanto, esses são erros de
arredondamento de ponto flutuante. Esses são muito comuns. Agora, um duplo é um
pouco melhor porque tem precisão de 15 pontos decimais. No entanto, ainda assim eles podem ser, isso ainda pode levar a
alguns problemas de arredondamento. Então, isso é algo
para estar ciente. Normalmente, na maioria
dos casos, por exemplo, no nosso caso, isso
realmente não importa. Então, se você tem um flutuador, geralmente que pode
representar, por exemplo, você tem certas posições de
bloco
no mundo escrito isso
algo entre essas posições de bloco
porque é claro que um bloco é não como um único
ponto no espaço, tem como um pouco
de um gradiente lá. E depois há um pouco de arredondamento que
vai ficar totalmente bem. E essa também é provavelmente uma
das razões pelas quais se você
for como milhões de
milhões de blocos em uma direção em algum momento, o mundo fica realmente
confuso porque erros de ponto
flutuante
e coisas como isso. Então, esse provavelmente também é
um dos motivos. Agora, existem alguns
outros tipos numéricos que não são usados com tanta frequência, pelo
menos pessoalmente, eu
não o vi com tanta frequência. Muitas pessoas podem dizer,
Bem, quero dizer, isso
não está certo. Claro, você
precisa estar ciente disso. Mas geralmente não vi mais
aqueles usados com tanta frequência. Portanto, um byte é de oito bits
e pode armazenar números de menos 128 a 127. Então, eu chamaria isso de um
pequeno número porque
basicamente só pode armazenar uma
certa quantidade de valores. Basicamente aqui, neste caso, um pequeno número é um pequeno
número que pode armazenar entre menos
32000 e mais 32000. E então, por outro lado, é um longo que, como você
pode ver, pode armazenar de menos
nove quadrilhões para quadrilhões positivos
nove quadrilhões, o que é
bonito, isso é bastante impressionante. Isso é muito parecido
com um número muito grande, geralmente, muito raramente usado. Como eu disse, pelo
que posso dizer, um número inteiro é o
número mais comum para um número inteiro. E então carros alegóricos ou
duplos são usados para, bem, basicamente números decimais ou algo assim, certo? O próximo tipo de dados de suporte será os booleanos. Essa é uma espécie de lógica. Então, o que você pode pensar é, bem, temos um booleano. Um booleano pode
ser verdadeiro ou falso,
portanto, pode ser um ou 0. Isso pode ser representado
em um bit porque um pouco, se você sabe ou não sabe, pode ser 0 ou um, são os dois únicos
valores possíveis que ele pode assumir. Então, isso é praticamente o mesmo. Pode ser verdadeiro ou falso. Então são esses ótimos vídeos, espero que sim.
Então isso é verdade. E é esse HTML. Bem, isto é,
espero que você não tenha pensado isso porque
isso é falso na verdade. Então isso é uma espécie
de coisa booleana. E a lógica é
incrivelmente poderosa como todo
o campo lógico. Por causa, é claro, a totalidade de todos os nossos computadores e sistemas
operacionais e
tudo isso é baseado em código binário. E, em teoria, os booleanos
não são nada além de código binário, certo? Porque um verdadeiro é um
e uma força é 0. Então, as mesmas leis
se aplicam nesse sentido. Você pode pensar
nisso assim, mas em geral booleanos, mesma forma com números inteiros,
vamos dar uma
olhada naqueles com um pouco
mais de detalhes no futuro. Mas eu definitivamente queria
apresentá-lo a eles. No terceiro e último
tipo de grande parêntese aqui, nossos personagens e
cordas para um personagem, como você pode ver, marcam um char. E este é um único caractere, então isso é marcado
com essas aspas
simples e simples aqui. E isso pode armazenar
um único
caractere e caracteres especiais, vírgula
regular. Então eu posso colocar uma vírgula
aqui, tudo bem. Posso colocar um traço
aqui, como uma hashtag, a estrela de símbolo mais,
tudo bem. Oh, bem, eu posso até colocar
em um espaço e funciona. No entanto, o que não
posso fazer é colocar dois caracteres aqui, então não funcionará
porque dois caracteres ou vários caracteres próximos um do
outro são chamados de string. Para uma string, como eu disse, é basicamente apenas uma
sequência de caracteres. E isso é marcado com aspas
normais. Então aspas duplas aqui e aspas duplas aqui. E como você provavelmente já viu, o fim de cada linha
sempre tem os ponto-e-vírgula. Esses também são muito
importantes aqui. E essa é uma espécie de ideia. Então você tem caracteres
que são caracteres singulares e
singulares e um, a,
uma cadeia de caracteres
é uma string. Então essa é uma espécie de ideia aqui. E então, no final, eu queria mencionar algo
que
definitivamente veremos no futuro também, que é nulo, a palavra-chave nula. Então você pode ver que
esse teste de string é igual ao valor de null. E o que é muito importante
é que nulo não é 0. Está literalmente vazio,
como se não tivesse valor. No entanto. Isso às vezes é
no começo, especialmente um pouco difícil de realmente
atravessar a distinção entre o que eu não entendo, sem valor. O que isso significa?
Bem, ele simplesmente não tem valor indefinido,
por assim dizer. É inexistente. Escreva este teste como enquanto
ele está definido aqui, não é, ele não
tem um valor, é nulo. E definitivamente vamos olhar
para isso e ver isso em uma palestra posterior também. Portanto, não se preocupe se isso
for um pouco
confuso, não se preocupe. O resto deve ser pelo menos bastante compreensível
no sentido de que, ok, temos alguns baldes,
podemos pensar nisso, alguns contêineres nos quais
podemos salvar alguns valores. E dependendo do
tipo de valor que eles são, temos que escrever
coisas diferentes na frente. Então essa é
a ideia geral eu queria passar por aqui, mas os tipos de dados, caso contrário, espero que isso tenha sido útil para você e você aprenda algo novo e eu
te vejo no próxima palestra. Então, sim.
4. (Java) Syntax Java: Tudo bem, bem-vindo de volta à introdução
Java para
Minecraft Martin. E nesta palestra
vamos
dar uma olhada em como ler o código. Ou também vou chamar
isso talvez de sintaxe Java. Então, a ideia é antes de tudo, e isso pode, alguns de vocês já terem
sido como esperar um segundo. Ele tem ignorado
tudo isso aqui em cima. O que é isso? Primeiro de tudo,
vamos nos acalmar pois teremos que começar
a construir mais
alguns fundamentos antes falarmos sobre tudo o
que acontece aqui em cima. Por enquanto, o que eu recomendo é que você
simplesmente ignore isso. A única coisa que realmente
nos preocupamos é que esse suporte inicial aqui. E então, se eu realmente
colocar meu cursor lá, você pode ver que este
acende tudo. Primeiro de tudo, certo, agora tem que acontecer entre
esses dois suportes encaracolados. Isso é tudo o que
vamos nos preocupar. Não nos importamos com o que isso significa. Nós não nos importamos com o
que isso é, o que todos aqueles públicos, estáticos, vazios, principais, cordas ,
tudo isso, não se preocupe. Vamos descobrir
tudo isso nas futuras palestras que estão por
vir por enquanto. Vamos descobrir isso
basicamente aqui dentro. Essa é a nossa principal prerrogativa
no momento, embora, primeiro lugar, o código seja
lido de cima para baixo. E isso é interessante. Bem, sim. Então é também por isso que
temos essas linhas aqui, o que é muito
útil, pode ser muito, muito útil na
determinação das setas. Podemos dizer, Ei, você
tem um problema lá na linha 18. Você olha para ele online. 18, Aí está. Certo. Justo o suficiente. Isso é muito útil. E geralmente há, é
claro, exceções
à regra. Mas, em geral, você lê
de cima para baixo. Agora, se você tiver
duas barras aqui, então você tem um comentário de linha
única. E se você tiver essa barra, barra estrela e estrela, e você pode ter comentários em
várias linhas. Então, isso também é algo
para estar ciente. E O, Há algumas coisas diferentes que você pode fazer quando você
tem uma variável, certo? Então, estamos de volta às variáveis. E nós vimos isso, é
claro, certo? Tipos de dados diferentes. E a variável era como um bucket ou um
contêiner no qual
poderíamos armazenar um valor de um determinado tipo e
temos que especificar isso. Portanto, quando você declara uma variável
, declarar uma variável
significa que você
declara o tipo de dados dessa variável e o nome da variável. E note mais uma vez que todas as
linhas terminam com um ponto e vírgula. Isso é normal. Então, cada linha, cada instrução
termina com um ponto e vírgula. Isso é, a propósito,
também muito interessante porque eu poderia, em teoria,
certo? Outro. Então, em x e eu
poderia fazer isso. Bem, isso não funciona
bem porque estamos todos usando este dia 0. Então, por exemplo, eu poderia fazer isso também. Isso também funciona porque esta
é uma única instrução, por isso não
precisa necessariamente ser cada linha. E basicamente fazer isso também funcionaria mesmo que
haja duas linhas. E, a propósito, isso é
como uma coisa horrenda. Isso é como formatação
que é do diabo. Nunca faça
algo assim. Mas seja qual for o caso. Portanto, não é necessariamente
linhas sempre, mas está em instruções únicas.
Isso é um tipo de ideia. E você costuma dizer que cada linha tem que terminar com um ponto e vírgula é um bom começo. Basicamente, esse é um bom começo. Nem sempre é o caso, mas geralmente é o caso. Agora, isso está declarando uma
variável e
também podemos atribuir a uma variável
um determinado valor. E isso é o que
estamos fazendo aqui. Já declaramos isso. Então, se eu agora existe
em algum lugar no éter do programa, digamos, e agora
dizemos que eu sou igual a 30. Então, agora atribuímos um
valor a essa variável, ok? Agora podemos fazer os dois ao
mesmo tempo, declarando e atribuindo um valor, que é então índice igual a 10. E isso seria chamado de
inicialização ou
inicialização dessa
variável nesse caso. E isso é muito interessante. Normalmente, as pessoas não
jogam esses termos necessariamente. É apenas algo para estar
ciente um pouco. Ok, eu declarei
essa variável, agora eu
inicializei aqui, atribuí essa variável, então é apenas algo que os
termos aqui devem ser, pelo
menos armazená-lo
no fundo da sua mente. Essa é a parte mais
importante aqui. E depois existe a possibilidade de acessar
variáveis ou métodos. Falamos sobre
métodos ainda de certas variáveis ou objetos. Também não sabemos bem
quais objetos ainda são, mas vamos
descobrir isso no futuro também. Mas, por exemplo, se
tivermos uma string, podemos realmente obter o
comprimento da string. Então, quantos caracteres
estão nessa string
fazendo ponto e, em seguida,
algo depois dela. Então, se eu colocar isso, você pode realmente ver
que uma enorme quantidade de coisas é jogada em
mim como uma sugestão, conhecedores na parede,
vamos olhar para essas coisas em uma palestra
futura também. Por enquanto, só
sabemos que o operador ponto também
nos permite acessar certas variáveis ou métodos
de uma, outra variável. Isso é o que devemos
armazenar por enquanto. E então a
aplicação real disso
veremos em uma
palestra posterior até muito,
longe, por maior extensão e
em muito mais detalhes do que isso. Mas, por enquanto, essa é uma espécie de essência geral sobre como ler o código aqui. Como eu disse, isso é
claro que não é exaustivo. Isso não é tudo, mas essas
são as principais coisas que
eu queria passar
por enquanto. Então você tem a ideia de declarar uma variável,
atribuir uma variável
e, em seguida, fazer as duas duas
ao mesmo tempo e, em seguida, acessar algo
com o operador ponto. E o mais importante, que este ano a escola deve
ser ignorada e tudo isso deve ser ignorado e
tudo entre esses colchetes encaracolados
deve realmente ser prestado atenção
para o tempo ser. Mas, como eu disse, vamos nos
aventurar fora disso, esses colchetes encaracolados vingaram, mas será isso para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo na
próxima palestra. Então, sim.
5. (Java) de saída e entrada: Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem de microondas. E nesta palestra, vamos dar uma
olhada em produzir coisas e
inserir coisas. Portanto, isso
está produzindo algo para o console, bem como ler algo
do usuário. Então, estamos basicamente armazenando para sobrecarregar nossa capacidade de realmente
fazer algo. E a primeira coisa
que vamos
fazer é que vamos gerar o Hello world porque
isso é algo que todo programador aprende
na primeira vez. E isso é o que vamos fazer. Então, vamos
digitar um sistema. E você pode ver que algumas coisas estão sendo
sugeridas para nós. Nós vamos
escrever este sistema com um S maiúsculo, muito importante, todos minúsculos e, em seguida,
imprimir LN. E então vamos fazer
um primeiro parêntese aberto. Os parênteses de fechamento devem ser
gerados automaticamente. E então podemos ir aqui
e colocar um ponto e vírgula. Agora este é o Oregon. Vamos ficar bem aqui. No entanto, agora
queremos colocar
algo entre parênteses e isso
será produzido. Agora temos que fazer
disso uma string. Portanto,
vamos digitar
as aspas basicamente aqui. E, em seguida, as segundas
aspas também
devem gerar
automaticamente. E então podemos digitar
hello world. Tão simples quanto isso. E agora, para realmente
iniciar este programa, vamos até aqui, asseguramos
que tudo esteja bem. Isso deve parecer
exatamente o mesmo. E vamos
clicar neste botão Executar. E depois de alguns momentos,
você tem helloworld. Se esta foi a primeira vez que
você executa um programa onde você tem primeiro
literário começando a programar neste momento. E esta é a primeira
vez que você executa isso. E tudo aqui diz hello world e isso diz que o processo
terminou com o código de saída 0. Parabéns. Eu nem estou sendo
como se não estivesse sendo, não
quero ser
condescendente aqui porque este é realmente um passo que todo
programador passa. Em algum momento, eles
vão escrever um programa helloworld e eles vão ser
como esperar um segundo, eu posso fazer com que as coisas
exibam isso I1. Então eu poderia, por exemplo,
dizer olá alunos. E você vai ser como,
como isso não pode ser o caso. Eu posso fazer isso. Sim, eu posso apenas executar isso. Se eu realmente executar isso
corretamente, lá vai você. Tudo bem, então execute
este Olá alunos, e agora diz Olá
alunos, não se preocupe. Então, como você pode ver, isso
é
realmente muito, muito legal e isso vai ser sobrecarregado ainda mais porque agora vamos dizer que
temos uma variável inteira x, que é igual a 10. Bem, por que não produzimos apenas mais
uma vez sistema e
eu posso começar a escrever isso e você pode ver que
isso é como
se a taxa selecionada está meio que destacada,
por assim dizer. E quando pressiono a tecla tab,
ela realmente é concluída automaticamente. Então eu posso escrever
isso muito rapidamente. Assim, você pode ver
como também já, basicamente é uma
linha de impressão aqui e , em seguida, também. E eu posso simplesmente colocar o
x e olhar para isso. Tudo funciona e
às vezes vai muito rápido. Então você pode olhar para
isso assim, bem, isso é muito
para isso, certo? Então, uma linha de impressão do sistema, você pode ver o quão rápido
isso às vezes funciona. No entanto, não se preocupe. Vou tentar tornar isso, especialmente no
começo aqui, um pouco mais lento para que todos possam
basicamente acompanhar. E bem, podemos simplesmente
colocar o x aqui, então a variável dentro
desses parênteses e seguida, o valor está sendo emitido. Isso é muito legal, não é? Onde você tem a capacidade realmente produzir algo
que está em uma variável. E agora vamos
ficar ainda mais loucos. Então, mais uma vez,
System.Out, linha de impressão. Mais uma vez, basta
preenchê-lo automaticamente com a tecla Tab. E agora posso dizer algo
como gerar algum valor. E agora olhe para isso. Posso ir além da corda. Faça um plus x. sem erros. Tudo parece bem. O que vai acontecer agora? Bem, olhe para isso agora. saída de algum valor e, em seguida o valor da variável será emitido lá. Então isso é bastante frequente, doente se eu mesmo digo isso. Isso é realmente muito legal. Outra pergunta vem, bem, como podemos ler algo
do usuário? Agora isso é um
pouco mais complicado. Normalmente, isso é
algo, você sabe, é uma espécie de, eu diria,
semi-limitação de Java. É meio chato
que seja complicado, mas não se preocupe com o que vamos
escrever é o seguinte. Vamos escrever um
scanner e, em seguida, apenas espaço tudo quando algo ficar vermelho aqui, não
se preocupe. Vamos manter a calma. Está tudo bem. Em seguida, Scanner em é igual a um novo. E, mais uma vez,
digitalize com um grande S com um S maiúsculo dentro
dos parênteses. Então, vamos
fazer um
sistema de parênteses.E terminando
isso com um ponto e vírgula. Agora, tanto o scanner aqui quanto o scanner aqui
devem estar prontos. Isso é totalmente bom. O que você
precisa fazer é clicar nisso e pressionar Alt e Enter para
importar isso aqui. Então, como eu disse, geralmente
queremos ignorar tudo isso, mas podemos fazer um
pequeno pico aqui em cima. Assim, você pode ver importar o scanner
Java util. Isso é basicamente importado. Então, isso não é nada preocupante. Você pode, se isso for importante
enquanto você está escrevendo isso, porque quando você
pressiona a tecla Tab, quando você escreve o
scanner, isso pode ser importante automaticamente,
sem preocupações. Apenas certificando-se de que
esta é a frase correta, bem, por assim dizer aqui. E que isso está
escrito assim. Não vamos nos
preocupar com o que isso significa. O que estamos fazendo aqui? Nada disso, nós só
vamos saber, ok, precisamos disso
para ler algo. Então, vamos dizer que a linha de impressão de pontos
do sistema, digite seu nome de usuário,
algo assim. E então o que vamos
dizer, vamos fazer uma nova variável de string
chamada input. E vamos fazer isso
igual ao scanner aquilo. Em seguida. Lá vai você. Ok, então em seguida, como você pode ver, tem que ser escrito
assim o suficiente para colocar em seguida e, em seguida, abrir e
fechar parênteses. E então está tudo bem. Então isso agora salvará
o que vamos digitar no console
nesta variável aqui, e então podemos fazer
algo com ela. Por exemplo, vamos
sair imediatamente novamente. Portanto, a linha de impressão do sistema, seu nome de usuário é, e então
vamos apenas dizer entrada. Então, apenas para o, para
testar isso basicamente, então vamos armazenar isso. E o que devemos
ver é que muitos alunos tendem
a gerar algum valor. E você pode ver
que antes de tudo, o programa não termina automaticamente porque está
aguardando nossa entrada. Então, vamos apenas dizer isso. Bem, meu nome de usuário
é o Conde Andrew. Vou pressionar
Enter e, em seguida, você pode ver que seu nome de usuário é verdadeiro. Então isso é muito legal como
quando você pensa sobre isso. E isso
também começa onde você pode brincar um pouco
com isso. Você sabe, você tem alguma
intratabilidade com o PC. Agora você pode realmente
falar com o PC, por assim dizer, o que é
muito legal. Portanto, este é um
dos primeiros passos. Eu muito,
basicamente, apenas aconselharia você a experimentar um monte
de coisas aqui, apenas digitando algumas coisas, digitando algumas coisas. Na verdade, pode ser muito divertido. Mas, é claro,
vamos usar isso em futuras palestras e nas
próximas tarefas também, onde basicamente
vamos ler as coisas
avaliadas e depois fazer as coisas dependendo do
que a entrada é. Então isso é tudo bem legal. Mas isso, por enquanto, é para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver
na próxima palestra. Então, sim.
6. (Java) Erros e como não entrar em contato com a (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra, veremos alguns erros e como você pode pedir ajuda ao
receber esses erros. Então, antes de tudo, estamos
basicamente começando com algum código pré-feito
novamente aqui. Mas não se preocupe. É claro, tudo
disponível para você
no repositório do GitHub ou como
indivíduo também. E isso é muito interessante. Então, antes de tudo, basicamente
podemos descomentar algumas linhas
para encontrar alguns erros. O primeiro erro que
teremos é que o java não consegue
encontrar o erro de símbolo. E isso basicamente como você
vai ver isso é hey, algo está vermelho
dentro do código. Por exemplo,
vou apenas descomentar isso e você verá que a2 31, basicamente uma variável que
estamos tentando acessar ou referenciar
não existe na verdade. Então isso vai ser vermelho. Agora, isso pode ser algo
que você não notou. Então o vermelho também
será como sublinhado aqui e na classe principal
aparece e você terá um
símbolo de problema e um problema lá. Então, haverá muitos sinais aqui, mas você pode não notar isso, o que é totalmente bom. Então, se você ainda
executar seu programa, o que você será
recebido é isso. Então, a primeira coisa a dizer
é quando você recebe um erro, não se preocupe. Honestamente, receber um erro
no início pode parecer muito assustador e você
pode estar ficando nervoso. Digamos, não
fique nervoso. Obter erros é,
na verdade, algo que é esperado quando você está
programando para que
algo funcione na primeira vez realmente
deixa você muito suspeito. Porque é muito raro que,
quando você está trabalhando em algum código, ele funcione na primeira vez que
o executa. Então, por favor, antes de tudo, sempre permaneceu calmo
quando você recebe um erro. Não é nada assim. Não há vergonha nisso. Você não fez nada de errado e sempre
será capaz de corrigi-lo. Então essa seta, neste caso, diz, como eu disse, java não consegue encontrar símbolo. Na verdade, ele nos diz qual é
a variável aqui e
onde ela está localizada. E se você der uma
olhada no topo aqui, você pode realmente ver este 1128. E isso realmente significa que
isso está na linha 28, no caractere ou em outra
linha 11, caractere oito. Então, isso é
realmente muito legal. Assim, podemos descobrir imediatamente
onde esta flecha está. Posso dizer: Ok,
fiz um erro de digitação lá ou esqueci de fazer uma variável,
algo assim. Esta seria essa
flecha aqui. A segunda coisa que você pode
encontrar em algum momento é exceção no thread main, Java, Lang,
NullPointerException. Então isso significa que
algo é nulo, o que significa que ele
não tem um valor. Por exemplo, temos uma variável de
string aqui. E definimos o valor como null, o que eu já
lhe falei é faz, significa que ele
não tem valor. Não existe praticamente. Agora, se tentássemos agora
tentar chamar o comprimento sobre
isso, é claro, não
faz sentido, porque o comprimento do nada
também não é nada como se você não possa chamar um comprimento em algo
que não existe, o que significa que vamos obter
um NullPointerException. Então isso se parece com isso. E isso seria
chamado de rastreamento de pilha. Então, um rastreamento de pilha em termos como
leigos apenas em geral. Então você sabe, o que se trata é basicamente o código que foi
chamado até este ponto, até que o erro tenha ocorrido. E você pode ver
que isso aconteceu no cotton domain
main e depois 16. Então, podemos realmente clicar
nisso e isso nos dará a linha exata e, às vezes até mesmo a parte exata do código em
que isso aconteceu. Portanto, este é o
NullPointerException. Isso é algo que acontece rotineiramente, mesmo com desenvolvedores
avançados, que às vezes você esquece de
inicializar algo. Às vezes você simplesmente chama
algo na ordem errada, esquece de chamar
um método que é algo que acontece
com muita frequência. Mais uma vez, nada com que
se preocupar, mas essa é a exceção nula. Normalmente, você pode corrigir isso atribuindo corretamente
uma variável. E então a última
coisa que não é realmente como uma exceção, mas também vimos
isso aqui. Portanto, este é o processo
terminado com o código de saída um, ou às vezes
também pode dizer que terminou com um valor de saída
diferente de zero,
algo assim. Ou também pode ser
algo diferente de 1,
13042, o que quer que seja. Portanto, pode ser algum
número que não seja 0. Essa é a coisa mais importante. Isso significa que
há um erro. Você nunca deve postar apenas isso. Se você postar apenas, ei, eu recebi um erro e você
pós-processo terminou com código de
saída 0 ou terminou
com valor de saída diferente de zero. Todo mundo sabe que
você não conhece Java. Agora isso não é um
problema, é claro, porque você tem que
começar em algum lugar. Mas isso só se alguém
quiser ajudá-lo, certo? Então, por exemplo,
se você fosse para o Q e um
e você está tipo,
Ei, meu você sabe, eu tenho uma flecha
e ela diz isso. Se você postar isso, antes de tudo, vou saber
que você provavelmente não assistiu a esta introdução do
Java, que é claro que encontra
sua própria decisão. No entanto, o que também vou
notar que isso não é, isso não me dá
nenhum valor. Isso só me diz que
houve um erro. É isso. Isso é tudo o que isso diz. Se o valor de saída não for 0, isso significa apenas que
houve um erro em algum lugar. Não sei qual
é o erro. Não sei qual foi
a exceção. Não
sei de nada. O que significa que eu
realmente terei que perguntar novamente. Pode ser um
pouco frustrante porque então você
tem que perguntar novamente,
Ei, você pode
me mostrar o log de erros é que há alguma saída lá. Basta colocar a flecha
lá também. Normalmente, quando você tem um erro, é melhor dar muita informação
em vez de muito pouco. Então, esse geralmente é o caso.
Nem sempre é o caso. Como não solte apenas
80 arquivos diferentes em alguém que queira
ajudá-lo ou nas perguntas e respostas,
algo assim. Mas geralmente você deve ter
algo assim, certo? E exceção e erro, algum tipo de log algo que diz uma coisa em particular
como essa exceção. Você pode ter uma exceção em algum lugar, algo assim. Então, isso deve ser como a coisa
que você quer cuidar. Vamos apenas algo que
eu queria te dar, o que pode ser muito
importante, certo? Mas isso já é isso. Portanto, isso é uma espécie de, apenas uma visão geral
desses erros. E, claro, não
hesite em perguntar se há erros. Se você receber erros ao longo do caminho e pedir ajuda,
tudo bem. Eu só queria
mencionar especialmente este ano porque
pode ser frustrante, não só às vezes para
mim porque, é claro, então tenho que fazer uma pergunta de
acompanhamento. E então, dependendo de
quanto tempo isso vai funcionar e talvez você
apenas procure por isso. E outra resposta não
veio em 20 minutos, então você tem que fazer outra
coisa e, em seguida,
leva muito tempo. Então isso às vezes pode ser
um pouco frustrante. Bem, seja qual for o caso, é
isso para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver na
próxima palestra. Sim.
7. (Java) Inteiros e métodos de a (Java) e math (de mata de at a (a (de: Ou voltarei à introdução
do Java aqui para o curso de modelagem do Minecraft. E nesta palestra, vamos
olhar para números inteiros. Vamos
olhar para matemática, e vamos
olhar para operadores aritméticos. Agora essas são palavras
muito grandes. No entanto, tenho certeza de
que vamos gerenciar. A primeira coisa que
vamos fazer é inicializar dois inteiros. Isso será int x
igual a 100 e int y igual a 20. Então, até este ponto, tudo deve
ser bastante claro. No geral, isso é apenas, essas são duas
variáveis, x e y. Eles têm o valor
120 respectivamente. Ambos são inteiros. Então começamos com
a placa int. Então isso deve ser
bastante simples. E também teremos um
número inteiro chamado resultado. Agora vamos apenas declarar essa variável sem realmente
atribuir nenhum valor a ela, porque vamos
usá-la das seguintes maneiras. A primeira coisa
que vamos
dar uma olhada é adição. Então, esses são basicamente operadores
aritméticos, adição, subtração,
multiplicação ,
divisão, e então
há um quinto tipo, que vamos
dar uma
olhada em apenas um momento. Portanto, o resultado aqui da adição é claro
que será x mais y. Então isso não deve ser muito louco. Vamos
apenas em x aqui. E esse operador,
x na esquerda. A, um inteiro
também pode ser um flutuador. Então isso também funcionaria. Então ambos, ambos,
se X e Y, quando ambos os
carros alegóricos também funcionariam totalmente. Agora, é claro que
o resultado também
teria que estar à
tona. Muito importante. Pense nisso.
Veremos um exemplo em uma futura
palestra disso também. Como se você começar a misturá-los, mas isso deve
ser razoavelmente sensato. Simplesmente colocamos
o símbolo de mais e
, em seguida, basicamente, vamos
adicionar x mais y. então vamos fazer o sistema,
imprimir linha e depois imprimir o resultado apenas para
que vamos ver, bem, isso deve ser um 120. Vamos ver. E, claro, é um 120. Tudo funcionando
perfeitamente bem. É claro que também podemos
usar uma subtração por n. O que vou fazer
é realmente deixar tudo isso certo? Então eu vou
arrastar meu
mouse aqui e, em seguida, pressionar controle C para copiar tudo
isso para o meu mouse aqui, controle V para colá-lo. Eu costumo fazer algo
assim apenas para que, você sabe, é um pouco mais fácil,
porque isso é
claro muito
duplicado neste caso. Agora, para subtração, você
provavelmente adivinhou. Só temos que colocar um sinal de
menos aqui. E então, de repente,
estamos subtraindo y de x, o que significa que isso deve ser 80. E é claro que é
AD totalmente bom. E vamos realmente copiar isso como completamente. Mais uma vez,
selecione este controle C e depois Control V aqui. E então também
vamos dar uma olhada na multiplicação e, claro, a visão também. Então a multiplicação será uma estrela aqui. E então
a divisão é apenas uma barra. Então isso deve ser
razoavelmente sensato, nada para ser louco demais. No geral. Essas são apenas as maneiras
normais pelas quais você basicamente
calcularia as coisas. Então é praticamente isso. Vamos passar pelo C 2005. Na verdade, está tudo bem. E agora a questão
se torna, bem, qual é o quinto tipo? Bem, o quinto tipo é,
na verdade, o restante. Então, isso também às vezes é
chamado de operador de módulo. Isso é em termos
matemáticos reais. Mas para nós, é o operador
restante e isso parece
um sinal de porcentagem. Então, por exemplo, poderíamos
dizer 20 restantes dois,
o que, naturalmente, seria 0. Então,
se vamos apenas copiar isso mais uma vez, Controle C, controle V, Isso será 0 porque
quando dividirmos 20 por dois, então não resta restante. Portanto, esta é uma maneira muito
boa de dar uma olhada se um
número específico é ou não par ou ímpar. Então, isso é realmente muito legal. E esses são os cinco operadores
aritméticos. Uma maneira bastante simples,
todas as coisas consideradas. que frequência eles são usados? Bem, quero dizer,
você vai usar alguma matemática dentro de
toda a programação. Seja ou não na modelagem ou na
programação em geral, há alguma matemática
associada a ela, é claro. Portanto, essas coisas são definitivamente importantes
de ter visto antes. E então a última coisa que
vamos ver aqui
será os métodos matemáticos. Agora, antes de tudo, não
vamos nos
preocupar com muitos problemas. Bem, é um método.
Bem, você pode pensar nisso como uma função específica. Então, por exemplo, vamos
fazer uma chamada dessa matemática. Então você pode ver se
eu digito matemática, você pode ver o Java Lang e
obter isso sugere isso. E então, se eu colocar
um ponto,
tenho, me sugeri um monte
de coisas que posso chamar. E há
coisas, por exemplo, como o método máximo
aqui, onde absoluto, certo. Então eu posso chamar max aqui
e posso dizer x, y. E então ele vai me devolver o valor máximo
de cada um deles,
o que, claro, neste caso
, será um 100. Então, devemos ver no final aqui um pop-out 100 eles atrás. Então, na verdade, bastante
simples. E então vamos apenas
duplicar isso por questão de argumentos ou
Control D para duplicar isso. E vamos obter o
valor absoluto de, por exemplo, digamos menos 500,
que seria 500. Então, em matemática, como uma matemática, está escrito assim. Então talvez você já tenha visto algo
assim antes com essas
linhas absolutas, por assim dizer. E isso então se transforma em
500 porque realmente não nos
importamos com o sinal
que está na frente dele. Então, vamos
ver como 500 também. E como eu disse, há
muito mais coisas aqui, como você pode ver, este selo. Então você pode basicamente
arredondar, arredondar para baixo. Você pode pegar o cosseno, você tem alguns expoentes. Então você pode colocar algo
no poder do logaritmo 10. Como se houvesse algumas coisas
loucas aqui, arredondando aleatoriamente
Mesmo, mesmo aleatoriamente, há até
constantes como e e pi. Então, há um monte
de coisas aqui. Normalmente, é muito raramente
que você precisa usar. Muitos deles são especialmente
algo como o máximo e o método Min e o método absoluto às vezes são realmente
bastante úteis. E é bom ter
visto isso antes,
isso para que você não goste
quando se depara com isso, quando você pode estar olhando para
alguns repositórios do GitHub de outros modos ou apenas frio em
geral de outras pessoas. E eles usam
algo assim, então você não é completamente
pego desprevenido. Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
8. Operadores de atribuição (Java) Tarefas (UT: Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra,
vamos
olhar para os operadores de atribuição. Agora vimos o operador de
atribuição normal, que é o símbolo igual. E há realmente uma coisa muito
interessante para isso, porque isso é realmente uma espécie
de operador lateral, certo? Então, vamos atribuir o valor certo que
a variável esquerda. Então, não poderíamos simplesmente
digitar algo como, por exemplo, 30 igual a y. Isso não funciona, certo? Na verdade, temos que tê-lo em uma ordem específica nesse caso. Agora que bem, essa
será a palestra? É isso? Não, claro que não. Existem alguns operadores de
atribuição específicos e
muito interessantes que, bem, você sabe, você precisa os operadores
aritméticos entendam. Mas o que podemos fazer é
claro que podemos dizer x, por
exemplo, é igual a
x mais y, certo? Então, estamos apenas adicionando
y a x neste caso. E depois escrevendo isso de
volta na variável x,
que funciona totalmente. Isso não vai ser uma
flecha, tudo bem. No entanto, também poderíamos escrever isso de uma maneira um
pouco mais agradável, e isso
será x mais igual a y. Então isso também funciona aqui. E isso é
realmente muito legal. Então é aqui que
isso é incrível. Oh, isso é muito
mais fácil do que isso. E geralmente também é um
pouco mais fácil de entender. Agora, se isso realmente confunde você mais do que
isso, tudo bem. No entanto, você terá que dar uma olhada nos operadores de
atribuição, especialmente se, por exemplo, se você der uma olhada no código de
outras pessoas, eles podem usar
apenas estes e não por muito tempo maneira de escrevê-lo para
que você tenha que
estar ciente disso. Então, mesmo que você não
esteja usando algumas ferramentas das quais estamos
falando aqui, tudo isso
é basicamente
ferramentas, direitos de programa. Você ainda precisa
saber sobre eles para ler o código que outras
pessoas possam, certo? Então, vamos realmente
apenas imprimir
a variável x aqui, e então vamos passar
pelo resto também, certo? Então, vamos selecionar isso, copiá-lo e, em seguida, vamos apenas, você sabe, apenas
colá-lo em cinco vezes. Então, o que pode, é claro,
fazer um minuss igual. É claro
que também podemos fazer tempos iguais. É claro que também podemos fazer como
Ned, como dividir iguais. E então, no final, podemos
até fazer iguais restantes. E que eu nunca vi
antes assim é realmente algo que
provavelmente é um momento muito, muito específico em
que isso é, tem que ser frio. Mas vamos ver
se isso funciona. Claro que funciona
muito bem para começar com um 140 porque
adicionamos 20 aqui, certo? Então, estamos começando aqui com 120. Um adequado novamente é um 140, e depois subtraindo
é um 120 e, em seguida, vezes 20 é 2400 e depois dividido
por 20 é 100120 novamente, e depois dividir ou
permanecer, é claro 0 porque podemos dividir um
120 por Wendy perfeitamente, o que, claro, é
preciso exatamente. Isso é muito bom,
muito bem feito. Então, se eu, no entanto, agora só queria
adicionar um a ele, certo? Então talvez eu só queira
fazer algo assim. X é igual a x mais 1, certo? Mas só quero adicioná-lo por um. Isso seria
chamado de incremento ou incremento x por um. Bem, quero dizer, é claro que
poderíamos escrever isso também, certo? Podemos apenas fazer isso. Sim, claro, isso
também funcionaria muito bem. Mas há ainda uma
maneira mais fácil de fazer isso. E isso será x plus plus. Olhe para isso. Isso é muito louco. Então vamos daqui para cá, mas isso é realmente o
quão louco isso pode ser. E vamos apenas imprimir isso. E então, claro, você sabe, x menos menos,
é claro que também funciona. Isso seria decrementá-lo. Então, isso é, vamos
mantê-lo um pouco aqui. As plaquetas, então incrementam,
incrementando
e, em seguida, também isso
seria decrementando. Então, basicamente, estamos apenas adicionando um ou estamos subtraindo um. Vamos dar uma olhada. Começamos em 0 aqui. Adicionar um, adicionar dois é dois ou adicionar
outro, certo é 23. E então estamos
imprimindo e depois decrementando-o, e
então voltamos às 2. Então essa é uma espécie de ideia
geral aqui. Esses são os
operadores de atribuição e, em seguida também
incrementam e decrementam a Europa, o que também é
importante. Mas esses dois vão
ver muito, especialmente esses X
plus e x menos menos. Essas são coisas que definitivamente
são usadas com
muita frequência em
certas capacidades, digamos dentro do código. Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e ele aprendeu com o Novo. E eu vou te ver
na próxima palestra. Então, sim.
9. (Java) booleans e operadores de comparação (de Booleans (Java) operação): Tudo bem, bem-vindo de volta à introdução
do Java aqui
para a manhã do Minecraft. E nesta palestra, vamos olhar para um booleano e operadores de
comparação. Da última vez que olhamos para números inteiros, e agora vamos seguir
em frente e olhar para os booleanos. Assim, os booleanos em geral, podemos lembrar disso
da segunda palestra, são basicamente um
tipo de dados que pode salvar um verdadeiro ou um falso. Bem, por exemplo,
vamos
fazer um novo booleano aqui. Por exemplo, gosta das palestras. Palestras, certifique-se de que
isso esteja escrito corretamente e isso é claro
verdade, vamos esperar que sim. E vamos também fazer um booleano, que é, por exemplo,
questionado. E vamos apenas fazer isso
falso por enquanto, talvez isso se torne verdade mais tarde, mas por
enquanto, isso é falso. Então, lembramos de
booleanos, como eu disse, um verdadeiro ou falso, 1 ou 0, essa é a ideia. E podemos até imprimir
isso, certo? Por exemplo,
podemos dizer que você tem, ou você gosta dessas palestras. Digamos que você goste
dessas palestras. Quem gosta dessas palestras? E então eu posso pressionar Control
D para duplicar isso. E, por exemplo, você pode dizer, você fez uma
pergunta no Q e a. Então eu poderia, por
exemplo, pegar isso. E então, em vez de
gostar das palestras, posso dizer fazer perguntas. Se eu fosse fazer isso, então
o que vamos ver é apenas verdadeiro e falso, basicamente como uma saída de
string,
eles estão totalmente bem. Certo, então esse é o tipo de
ideia dos booleanos, certo? Verdadeiro ou falso, justo o suficiente. Mas agora, o que são operadores de
comparação? Bem, vamos pensar sobre esses operadores de
comparação, certo? Bem, há alguns deles. E a ideia de
operadores de comparação que, claro,
bem, vamos comparar dois valores
diferentes entre si. E isso vai retornar
um booleano porque, claro, se compararmos algo, por
exemplo, poderíamos
dizer maior do que o certo? Então, temos algo que é
maior do que outra coisa, então, é claro, ou será
verdade ou falso, certo? Se eu vou dizer, ei, eu tenho uma maçã que é
do tamanho de um beisebol. Como tudo bem, justo o suficiente.
E então eu tenho uma maçã considerável
como uma bola de futebol. Bem, obviamente, o tamanho
de um futebol é maior, então
haverá como um verdadeiro sob isso também é maior ou igual. Há também iguais, não
há iguais. Eles são menores e
menores ou iguais a. Então, esses são os operadores de
comparação. Não vamos olhar para cada um deles individualmente. E vamos dar
uma olhada um pouco. Então, o exemplo real que
vamos
analisar é, por exemplo, você tem uma pontuação, ou talvez tenha feito
um exame, certo? Você escreveu um exame e
sua pontuação é 98. Bem, muito obrigado. Essa é uma
pontuação muito boa e na
verdade é o seu
dia de pontuação, você entra. Então você pode dizer, bem, nós poderíamos escrever em um booleano que é chamado de classe
passada, certo? E você passa essa
aula quando exatamente. Podemos pensar sobre isso. Bem, é claro que você precisa de pelo
menos 50 pontos. Digamos apenas, por uma
questão de discussão aqui, você precisa de 50 pontos
para passar nesta classe. Bem, é muito fácil. Você pode apenas dizer que
sua pontuação tem que ser maior ou igual, 50. Isso faz sentido? Então isso deve fazer sentido
intuitivo. Todas as coisas consideraram
isso, isso seria verdade no nosso caso, é
claro, mas se
sua pontuação mudar, então a resposta aqui
muda, certo? Porque assim que isso
não for mais como se for 49, você não passa mais
na aula, certo? Então isso deve ser pensado
em bastante autoexplicativo. Então, podemos até
imprimir isso. Então, basta sair do sistema, imprimir a linha,
digamos, por exemplo ,
você perguntou, vamos apenas colocar isso e depois
passar a aula, certo? Então, vamos ter
um verdadeiro se for
verdade e um falso, se não for. E podemos até dizer
algo como com sua pontuação mais pontos,
algo assim. Podemos dizer isso.
E se eu agora correr isso e ver você passar
realidade com 98 pontos. Se eu fosse colocar isso em 49, o que, claro, neste
caso agora não é mais verdade. Portanto, nenhum 49 não é mais
maior ou igual a 50. Bem, isso agora
retornará um falso. Você verá, lá vai
você. Você passou falso com 49 pontos. Vamos manter isso como DOE de 1998. E vamos pensar
sobre isso também. Então, vamos ter outra ideia aqui. Então também podemos ter um booleano, por exemplo, tem pontuação
perfeita, certo? E isso pode ser
igual à sua pontuação é igual a 100. Este é o operador igual. Muito importante que esses
sejam dois sinais iguais. E isso é algo
que às vezes as pessoas ficam
confusas com conhecedores. Um sinal de igual é o operador de
atribuição ao qual estamos atribuindo um
valor a uma variável. E dois sinais de igual é o operador de comparação onde
estamos comparando se esse valor dessa variável
aqui é ou não igual ao
valor dessa. Isso é muito importante. E aqui, claro,
isso é falso. Como é claro, 98
não é igual a 100. Isso também deve ser bastante
simples em geral. E podemos até fazer algo assim
que seja muito interessante. Podemos até negar alguma coisa. Então esta é basicamente esta
a marca de declamação aqui. No entanto. Também podemos dizer
algo como, ei, passamos a aula aqui, e então podemos fazer
outro booleano chamado classe falhada, falhou conosco. E isso pode ser igual a, bem, não passar a aula, certo? Então, nós apenas negamos se passamos
ou não na aula. E, claro, isso faz sentido. Então, se isso é um
pouco confuso, você está escrevendo, como realmente escrever
um texto de escritor. Se a classe falhada for verdadeira, pois a classe é falsa, é claro. Então, esses sempre precisam ser
opostos um do outro. Então, podemos sempre
negar isso. Isso também pode ser uma ideia. Então, anular é claro, negar basicamente significando que os dois colocam o ponto de exclamação
na frente, significa que verdadeiro se transforma em falso. E então, se for falso,
ele se transforma em verdade. Onde ele retorna
verdadeiro, certo? Essa é uma espécie de ideia. Operadores de comparação. Você também pode pensar nisso. Eles retornam operadores de
comparação. Você pode pensar nisso assim. Quando tínhamos uma classificação mais, pegamos um
número inteiro à esquerda, mais um inteiro à direita
e retornamos um número inteiro. Novamente, faz sentido
intuitivo absoluto. Você nem pensa
nisso quando está,
quando está trabalhando em matemática
e calculando coisas. Quando você faz 5 mais
5, como é claro que ele vai devolvê-lo
para 10, que é um número. Bem, o operador de comparação
é praticamente o mesmo. Você acabou de colocar, por exemplo aqui um inteiro e um inteiro, e você retorna um booleano. Isso é, isso é tudo o que
há para isso. Mas a única coisa
que realmente muda é o tipo de retorno, por assim dizer. Pensando nisso
e é isso, algo a ter em mente aqui. E esses seriam os operadores de
comparação. Eu recomendo apenas
brincar um pouco com isso. Não deve ser muito louco. Na verdade, é apenas comparar dois valores
diferentes entre si. E isso é então
expresso como um booleano, o que deve realmente fazer
sentido
é que há apenas uma resposta certa
neste caso, certo? Se a pontuação for maior ou igual a 150 ou
não, implica isso. Mas seja qual for o caso, é
isso para esta
palestra aqui. Espero que você tenha achado isso útil e aprenda
algo novo. E te vejo
na próxima palestra. Então, sim.
10. (Java) Booleans e operadores lógicos (Java).: Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem de microondas. E nesta palestra,
vamos
olhar para operadores lógicos. Então eu preparei alguns
booleanos aqui, assisto a palestras, fiz perguntas, terminei tarefas
e revisão engajada. Esses são, naturalmente, relacionados a um
cenário como um curso, digamos. E agora vamos
dar uma
olhada nos operadores lógicos. E há três deles, basicamente nos quais
vamos dar uma olhada. Há o fim, há
o OR e o não. Então, vimos anteriormente
onde fomos
capazes de negar algo e o E, e o OR também são
muito interessantes. Então, os operadores lógicos recebem dois booleanos e
lhe dão um novo booleano. Então, por exemplo, para o
fim dos booleanos, você tem que dar,
tem que ser verdade, e então ele retorna verdadeiro. Caso contrário, ele retorna false. E para o, ou qualquer
um deles tem que ser verdade e então ele retorna um verdadeiro. Portanto, isso só retorna falso
se ambos forem falsos. Então, por exemplo, você poderia
pensar nisso assim. Então booleano terminou o
curso, certo? Então, se você quiser
terminar o curso, você precisa ter
assistido às palestras e terminar as tarefas. Isso deve fazer
sentido. Esse tipo de um bom exemplo concreto aqui. E então você também poderia
dizer, bem, um fã, certo? Então, digamos que
seja fã, certo? Então, alguém que é fã
terminaria o curso. Então, núcleos acabados
e revisão de Eva, que também devem
fazer sentido geral. E agora alguém que
pode estar aprendendo, como talvez aprendendo muito, assistiu às palestras
ou fez a pergunta. Então isso é algo
que está aprendendo, certo? Assistindo às
palestras ou faça uma pergunta. Então, qualquer um deles poderia ser verdade e, em seguida, aprender também
seria verdade. Vamos uma espécie de ideia
geral aqui. E há mais uma
coisa que eu tenho e isso vai ser
isso aqui. Portanto, esta é apenas uma visão
geral do que basicamente acontece. Você também pode baixar
isso como uma folha de truques. Isso está disponível
nos recursos. E a ideia aqui
é que ele apenas mostra quais são os
diferentes tipos de resultados, isso é basicamente
o que são os resultados. Então você tem um e B. E então,
dependendo do que eles são, este é o retorno
que é dado, como eu disse, ambos
têm ser verdadeiros para que as respostas
retornem um verdadeiro. E aqui, se algum
deles for verdadeiro, isso retorna um verdadeiro. Caso contrário, é falso. Você também pode pensar nisso,
escrever um ou B para meio que, é meio que realmente
assado na linguagem quando você pensa sobre a
negação, como eu disse, nós já falamos
sobre isso é uma espécie de geral ajuste quando se trata dos operadores lógicos. Há, claro,
um pouco mais lá também sobre isso, isso
é realmente um bom
começo para isso? E então, é claro, a coisa real que
você pode pensar é que quando você tem um
daqueles que retorna um booleano,
você pode, é claro, então
encadeá-los juntos. Então você também pode dizer, por exemplo, terminar fazer
pergunta, certo? Então você pode ver que, como isso, é claro,
retorna um booleano, agora
podemos usar o operador
AND novamente. Então, isso funciona muito parecido com o que os operadores
aritméticos eram. Claro que você também pode
mais, mais, mais. Você pode ter 5 mais 8
mais 7 mais 9 mais 15. Isso funciona totalmente bem. De forma semelhante, você também pode encadear os operadores
lógicos juntos, certo? Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra. Então, sim.
11. (Java) SE (Java) MEDIse e declarações de else: Tudo bem, bem-vindo de volta
à introdução do Java
para Minecraft manhã. E nesta palestra, vamos olhar para
as declarações if e else. Agora, nesta palestra, basicamente vamos começar
a
ter alguma interação
com o computador. Muitas das palestras anteriores
eram muito teóricas, é meio que mostrando
alguns conceitos. Mas nesta palestra, vamos estar muito bem interagindo
com o computador. Vamos começar
fazendo dois números inteiros. Exame 1, digamos, por
exemplo, 65 e exame 2, que será
51 por enquanto. E poderíamos imaginar
que, vamos ver, temos que escrever um programa que avalie esses valores
desses dois exames. E basicamente diz: Ei, você sofreu ou passou o exame 1, você falhou ou passou no exame 2. E então, no final, talvez quando as pessoas passaram nos dois exames, talvez algo seja impresso
Como se você tivesse passado na
aula ou algo assim. Então, como podemos fazer isso? Bem, o que podemos fazer é fazer uma declaração if. E para isso, literalmente, apenas
gostamos se, bem aqui. E então podemos
fazer o seguinte. Podemos colocar parênteses. E se você colocá-lo em
um parêntese aberto, os parênteses de fechamento devem gerar
automaticamente. E dentro desses
parênteses temos que
colocar um valor booleano. Então, lembramos de volta às duas
palestras anteriores onde tínhamos operadores de
comparação. Então o que podemos dizer
é que, bem, se o exame 1 for maior
ou igual a 50, então
sabemos que passamos no exame. E então, quando colocamos escondido aqui é depois dos
parênteses de fechamento, colocamos um colchete encaracolado. E se eu colocar o
suporte encaracolado aberto e pressionar Enter, o suporte curly de fechamento deve ser
gerado automaticamente para você. E agora o que podemos fazer é que
podemos escrever como outra coisa. Então podemos dizer sistema
fora, linha de impressão. E então, por exemplo, você
tem um exame anterior. No entanto, esse todo o código entre esses dois colchetes curly aqui acontecerá
quando o que estiver dentro da instrução if. Então, dentro desses
parênteses, é verdade. Então, se isso for verdade, isso vai acontecer. Então, isso é muito legal, na verdade. E então podemos
sobrecarregar isso adicionando uma
LLC ou no final, e também colocando
um suporte encaracolado. E mais uma vez, colocamos o
suporte encaracolado aberto em qualquer pressão Digite um suporte curly de fechamento deve
gerar automaticamente aqui. E então, por exemplo,
podemos selecionar esse controle C controle
V para colá-lo. E então podemos dizer que
você falhou no Exame 1. Então, este ano, certo? Pois o resto realmente
acontece quando isso é falso. Isso realmente
funciona muito bem para nós. Então, podemos basicamente
usar isso para, bem, dar uma olhada
se o Exame
1 foi ou não aprovado ou não. Então, vamos realmente
executar isso e
devemos fazer um exame anterior. E é claro que
estamos recebendo isso porque neste caso o
exame 1 é maior que, maior ou igual que 50. Então isso está sendo chamado.
Então isso é muito legal. Agora podemos basicamente fazer exatamente a mesma coisa
para o segundo exame. Então, vamos apenas copiar todo esse Controle
C selecionado, Controle V. E então aqui
vamos dizer Exame 2. Aqui vamos dizer Exame 2, e aqui também
vamos dizer Exame 2. Isso é realmente muito legal. Todas as coisas consideradas. E então a pergunta
se torna, bem, quero dizer, agora
queremos sair quando você realmente
passou nos dois exames. Então, como podemos fazer isso? Bem, agora estamos
ficando muito loucos. Então, as duas últimas
palestras parecerão um pouco mais coerentes,
por assim dizer. Vamos dizer o exame 2. exame 1 é maior ou
igual a 50, certo? Então isso ainda está passando
neste Exame Final 2, 0, certo? Este exame 2 aqui
é maior ou igual a 50. E então, se isso, se ambos forem verdadeiros, então sabemos que você passou
na classe para que possamos copiar o sistema aqui
e então podemos simplesmente dizer, você passou, digamos que a classe apenas por uma
questão de argumento aqui. Então isso é
muito legal, certo? Temos agora declarações if
e if else, e o que você
também pode fazer a propósito, quando você tem uma
declaração else que você pode colocar outra declaração
if aqui, certo? Então você pode simplesmente colocar
este aqui. Basicamente, se isso for falso, então então então
coloque outra
declaração if é basicamente apenas
por uma questão de argumento, basta dizer verdadeiro aqui. É claro que isso também
funcionaria, mas, você sabe, e então podemos dizer
outra coisa e basicamente encaderná-los para que
você possa fazer
se mais, se mais, se mais, e então o último
sempre será caso contrário, você também não
pode
ter outro aqui também. Isso também funciona. Eu queria mencionar
isso também. Mas agora o mais
legal é, bem, vamos pensar nisso. Digamos que este seja,
na verdade, um programa que
o professor entra em
que
o professor entra e realmente escreve nos resultados do exame. Oh, o quê? Bem, lembramos
como podemos ler algo em que temos que
escrever em scanner, scanner, scanner
é igual a um novo scanner. E depois system.out.print. E então esse tipo de funciona
apenas para nós. Lembramos que não queremos nos preocupar
muito com o que isso significa. Então podemos dizer algo como linha de impressão
do sistema e dizer resultados ou exame um. Certo? E então vamos
apenas duplicar isso. Faça resultados para um exame 2. E então podemos dizer que o
Exame 1 é realmente igual ao ponto do
scanner next int
aqui, certo? Então, vamos ler
em um número inteiro e depois salvá-lo no
exame uma variável. E a mesma coisa que
vamos fazer para ir. Agora, o que vai
acontecer é muito legal. Agora começamos isso e
agora está realmente esperando que façamos um exame. Bem, infelizmente, 32, na verdade
não 320, mas 32. Bem, e então os
resultados para o exame dois, eles foram realmente
muito melhores. Eles eram 68, infelizmente, só um pouco, não o
suficiente para 69. E então você pode ver que você
falhou no exame 1 e no exame 2. Então, agora estamos realmente começando
a entrar em uma espécie de parte dessa
introdução java, onde você é capaz de realmente fazer
algo com o computador. E você realmente
vai ver isso
na primeira tarefa também para a próxima palestra será uma espécie de
versão alternativa da declaração if, o que também pode ser
muito importante. E, em seguida, a primeira tarefa, eu recomendo fazer as atribuições aqui para
a introdução do Java, especialmente quando você é
apenas um iniciante ,
porque elas podem ser
realmente úteis. E com isso, é claro, o núcleo está disponível
no repositório ou apenas também. Mas dê uma olhada
naqueles que estão nos recursos. E eu recomendo
brincar um pouco com
isso, apenas ler alguns números
em compará-los, fazer algumas declarações if, apenas fazer um
monte de coisas legais. Com isso, você já
pode fazer um jogo
muito legal. Então, mas por enquanto, isso seria para
esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. E te vejo
na próxima palestra. Então, sim.
12. (Java) switch: Ou voltarei à introdução
do Java aqui
para modelagem do Minecraft. E nesta palestra muito curta, vamos
olhar para a declaração switch. A instrução switch
é como o primo pequeno da declaração
if, por assim dizer. Por isso, é muito parecido. Vamos dar uma olhada. Então, vamos
fazer um número inteiro chamado de colocação de metal, que é por
enquanto apenas um dentro. Você poderia imaginar este
representando a colocação,
por exemplo, nos Jogos
Olímpicos, certo? Então, uma seria a
medalha de ouro, prata, bronze. Então, dois são prateados e
bronze são três. E então qualquer outra coisa
como discos, sem metal. E poderíamos fazer isso apenas
fazendo algumas declarações if, quem quer que também pudéssemos
fazer uma declaração de troca. Você pode ver se eu
digito o switch aqui, então dentro dos parênteses, coloquei a variável que
quero que avaliemos. Então, mais uma vez, faça
o colchete encaracolado ou o segundo deve
gerar automaticamente. E agora eu tenho que
realmente especificar em cada um, dentro desses colchetes encaracolados, cada um dos casos que
essa variável pode assumir. Então eu posso dizer o caso 1. Então isso significa que ele
assumiu o valor um, linha de impressão
do sistema e, por
exemplo, digamos medalha de ouro. E então posso dizer o caso dois. E então posso dizer linha de
impressão do sistema, prata, metal. E então, mais uma vez, no final aqui posso
dizer o caso três, sistema. A
linha de impressão do sistema. Lá vai você. Medalha de bronze. No entanto, ele está
formatado, tudo bem. E então
também podemos dizer padrão, o que significa que isso será chamado
se não for esse caso,
isso fica mais nesse caso. Então, temos
casos predefinidos aqui. E então, no caso padrão, ele realmente será
chamado se for
qualquer outra coisa que
possamos dizer que não há metal. E a primeira coisa
que você
notará é esperar um segundo. Temos que definir
todos os casos. Sim, aqui, o problema
é que você pode usar algo como
maior ou igual, o que imediatamente torna muito mais fácil restringir algo. Se eu quisesse fazer a avaliação do
exame aqui, eu realmente teria que
passar por cada caso. Então eu tenho que
passar por casos de um 50 ou um a 49
por dizer,
ei, você falhou e,
em seguida, os outros para você tiveram sucesso ou você passou. Portanto, a instrução switch nem
sempre é a melhor escolha. Pode ser, no entanto, às vezes. Então, vamos dar uma
olhada nessa lista. É claro que, na verdade,
imprime medalha de ouro. Mas a primeira coisa que você
vai dizer é esperar um segundo. Na verdade, ele imprimiu
tudo exatamente. Porque há mais uma coisa que realmente precisamos fazer. E é quando
você tem o caso, no final, você tem que
terminar com uma pausa aqui. Temos que colocar essa pausa. Caso contrário,
basicamente, ele será preservado. Ele só vai passar
pela instrução
switch vai continuar e apenas
retirar todos os casos. E se tivermos a pausa aqui, então você verá que
apenas o
relevante realmente será tomado. Vamos apenas colocar em três apenas por uma questão de discussão aqui. Então, como você pode ver,
isso agora funciona. Portanto, isso é muito importante para que a palavra-chave break aqui deve ser usada com a instrução
switch. Isso às vezes pode ser
um pouco irritante. Portanto, o switch deles geralmente para números inteiros é bom, pode ser usado. Geralmente é usado
para enums porque enums têm
valores definidos que eles podem tomar e que geralmente
é mais fácil para os casos
do que é muito raro ou
que é basicamente impossível. Você não deve usar floats
em instruções switch porque aqui, é claro, você
precisa definir o caso exato. E devido ao arredondamento
flutuante ou erros que podem ocorrer, isso pode nunca
funcionar. Portanto, nunca use instruções floats
e switch. Basicamente, isso é uma coisa muito
importante de se lembrar. Caso contrário, uma instrução switch, mesmo que você não
a use você mesmo,
pode, é claro, aparecer
no código de outra pessoa. Você terá, pelo menos, ter que ter visto isso antes, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e os neurônios e o novo, eu te vejo
na próxima palestra. Ah, sim.
13. TARde 1: jogo Trivia: Tudo bem, bem-vindo de volta
à introdução Java para Minecraft modding aqui
com a primeira atribuição. Na primeira tarefa
será uma criação,
um simples jogo de trivia. Vou explicar em breve
o que isso implica. Embora a ideia seja
que você deve definir pelo menos três perguntas. Eu recomendo fazer
três perguntas, três respostas, isso
será suficiente. Caso contrário, o código ficará
muito confuso muito rápido. E o que eu quero que você
faça é que você solicite que o usuário
digite a resposta deles. Você pode usar o
scanner para isso
basicamente para obter o que
eles digitaram e
, em seguida, avaliados com instruções if
e else para verificar
se a resposta que
o usuário digitou estava correta. Então eu recomendo rever a palestra de entrada de saída é que foi muito importante
nesse caso. E a
palestra if else também pode ser muito interessante
olhar para ela mais uma vez. Então, se eles estavam corretos, faça a
saída que estavam, e se eles estavam errados, então diga ao usuário
que eles estavam
incorretos e também
exiba a resposta correta. Outra coisa que você
deve fazer é basicamente apenas incrementar um total de pontos, o que
significa que quando o usuário tem uma resposta correta que
nomeia aumentada em um, então, no final, você só tem um saída exclusiva para cada um dos
diferentes totais de pontos. Então basicamente três,
basicamente dizendo, ei, você fez tudo correto para algo como 0 minutos, ok, um erro, um
e assim por diante e assim por diante. Então basicamente de 0 a três, tendo algumas
declarações if else if no final, há duas coisas
a ter em mente. Portanto, essas são algumas dicas que
você terá que ter em
mente quando estiver lendo
em uma string do usuário,
use o ponto do scanner
próximo e não o ponto do scanner
na próxima linha. Porque se você estiver usando a próxima linha do ponto do
scanner, isso às vezes estraga a
maneira como isso é lido. Mas eu
recomendo fazer isso. E então, quando você está lendo
em uma resposta disso, acabou em seguida, temos uma string e você quer
compará-la com uma string. Não use iguais, iguais, mas use o ponto de entrada igual
e, em seguida, coloque a resposta, a resposta correta dentro
dos parênteses aqui. Isso também retornará
um valor booleano e tornará isso
um pouco mais fácil. Então, caso contrário, porque às vezes não funciona e
isso definitivamente funcionará. Então isso é ter isso em mente. E essa é praticamente
a tarefa aqui. Isso também está escrito
como texto aqui também. E eu suspeito que
para um iniciante, isso é algo em
torno de 45 a 60 minutos. Eu definitivamente recomendaria
tomar seu tempo com isso. Provavelmente voltando
para as palestras antigas, dando uma olhada na palestra de entrada de
saída, if e else declara palestra. E com isso, você deve estar
quase completamente pronto. Basicamente, isso é
praticamente o que você precisa. E depois de terminar, você terá acesso
à solução, é claro, e também vou passar
pela solução em outro vídeo. Então, seria isso. N, Boa sorte.
14. SOLUÇÃO 1: jogo Trivia: Tudo bem, então você
passou
pela primeira tarefa e aqui
está o passo pela solução. Então você provavelmente
já viu como
parece que uma hora só
vai passar. Então, é claro, as perguntas
aqui neste caso são realmente feitas como strings. Isso, claro, faz
muito sentido, certo? Caso contrário, você pode realmente salvar
as perguntas de qualquer forma. E a única resposta é,
na verdade , em um número inteiro, que funciona. No entanto, também vejo
o ponto em tornar isso uma string normal também. As respostas excessivas seriam
corretas. Portanto, não se preocupe. Lá. Temos
pontos inteiros e, em seguida, um scanner, e depois começamos,
produzimos a primeira pergunta. Em seguida, dizemos que a
entrada do usuário número 1. Vamos
colocar isso aqui. Vamos ver se isso é
igual à primeira resposta. Se for, vamos
incrementar os pontos, mostrar que estava correto e
você tem tantos pontos. E então, caso contrário,
vamos dizer incorreto e produzir a resposta correta. Depois disso, estamos praticamente fazendo exatamente a mesma coisa. Vou colocar a
segunda pergunta, obter a entrada do usuário novamente e
igualá-la ou dizer: Ei, isso
é igual
à resposta aqui, incrementando os pontos
se estiver correto, produzindo isso e,
em seguida, dizer não, está incorreto, esta é
na verdade a resposta correta. E depois pela terceira vez novamente. E então, no final
aqui, você pode ver que basicamente passa por uma
espécie de cascata aqui. Então, pontos
passando por três a 0. Então eu também tenho uma espécie
de ovo de Páscoa aqui. Quando você tem
menos de 0 pontos que você ganha, como você consegue pontos
negativos? Porque não há
como obtê-los. É claro que você poderia também
algo em que você obtém alguns pontos negativos
se você fizer uma resposta
particularmente estúpida ou algo assim,
que também funcionaria. Mas eu não implementei
nada aqui. Foi apenas um exemplo. Então, é
assim que isso pode funcionar. Portanto, esse é um exemplo. Mais uma vez, se o
programa real funcionar certo? Então, se isso funcionar para
você e você pode jogar este
jogo e funcionar, mas parece diferente disso. Isso é absolutamente bom. Como não se preocupe em tudo. Então essa é a beleza aqui. Há várias
maneiras de fazer isso, e veremos isso
nas próximas tarefas, bem
como
basicamente sempre usaremos esse jogo
de curiosidades também, uma espécie de modelo. E vamos redesenhar essas próximas tarefas
basicamente de uma maneira diferente. E isso é, espero que
você consiga ver
que fica mais fácil e diferente, digamos nas futuras palestras e nas tarefas
futuras. Mas isso será para
essa solução aqui. Espero que você tenha achado essa tarefa útil e aprenda
algo novo. E te vejo
na próxima palestra. Então, sim.
15. (Java) de corças e métodos de string (de a de corda: Ou voltarei à introdução
do Java aqui
para modelagem do Minecraft. E nesta palestra, vamos
olhar para strings e alguns métodos de string. Bem, basicamente ao redor
da corda, por assim dizer. E vamos antes de tudo, começar criando uma nova
variável de string chamada frase. E isso vai ser igual
a,
é uma maravilhosa introdução ao
Dava. Bem, vamos esperar que
isso também seja verdade. Mas seja qual for o caso, é
isso que o valor da
nossa variável string aqui é. E nós só vamos
imprimir isso. Então, frase aqui, frase de linha de saída
do sistema. E agora a questão é o que mais podemos fazer aqui? Bem, a primeira coisa
que vamos fazer é,
na verdade, duplicá-lo. Vamos alinhar. E
o que vamos dizer isso é feito pelo
Controle D a propósito. E o que vamos fazer é
dizer que o comprimento é, vamos dizer
algo como mais. E então podemos dizer o comprimento do ponto da
frase. Então, como você pode ver, posso chamar o comprimento do ponto com
os parênteses aqui, que significa que esta é uma chamada de método. Ainda não temos 100% de
certeza do que é isso, mas já vimos isso
antes algumas vezes, e isso é basicamente apenas nos
devolve a duração. E se eu passar o
mouse sobre isso, você pode ver em um inteiro retorna o comprimento
da string, o
comprimento é igual ao número de caracteres nessa string. Então, isso é basicamente unidades
Unicode. Não vamos nos preocupar com isso. É basicamente igual
aos caracteres nessa string. Vamos ver. O comprimento é 35. Então isso é
interessante aqui. E também, é claro, também
produzimos a
string real também. Mas o que mais podemos fazer? Temos que ser capazes de fazer
algumas coisas interessantes. Claro, podemos. Vamos realmente obter
essa saída aqui. Na verdade, vamos
duplicá-lo três vezes. Por que não? E a primeira coisa
vai ser gritar. Então isso vai significar
que tudo aqui, eu vou me transformar em
maiúsculas. Como fazemos isso? Bem, podemos fazer frase dat
para maiúsculas aqui. Isso, na verdade, já sugeriu. E então, claro,
a
mesma coisa seria sussurrar, certo? E então vamos
sentenciar
isso para minúsculas aqui. Então, isso só vai para a primeira das letras maiúsculas
e minúsculas
alternativas. E então, apenas por
causa do meio, isso também é apenas produzir a
frase mais uma vez. Vamos também adicionar um
comentário, certo? Então isso é maiúsculo e minúsculo. Tão bastante simples. Podemos simplesmente transformar a
string inteira para maiúsculas, uma string inteira para minúsculas. E então aqui, bem,
devemos apenas pegar a
corda minúscula também, certo? Então, se acabarmos de colocar isso, você pode ver gritando
tudo em letras grandes, então tudo em maiúsculas,
depois tudo em minúsculas. E então aqui está,
é a corda normal. Isso é estranho, não é? Bem, aqui está a parte muito
interessante sobre isso. Esses métodos realmente retornam uma cópia dessa variável de
frase. Eles não alteram a
variável em si mesmos. Então, quando tínhamos coisas
como x igual a x mais 1, na verdade
mudamos x é
0 ou x mais igual a 1. Isso mudou a variável x. Nesse caso, estamos
retornando uma cópia. Então isso é muito importante e você tem que realmente
ter isso em mente. Mas para a próxima
coisa, digamos, estou dizendo,
Ei, que posição é que Java encontrou
a palavra Java. Você vai ser como, eu não
sei, é exatamente como. Então, o que vamos fazer
é simplesmente copiar sobre a linha de impressão novamente. E vamos
dizer o seguinte. Vamos dizer que a
palavra Java ou algo assim é encontrado na posição. Agora poderíamos contar,
não vamos ligar ainda. Vamos contar
em apenas um momento. Vamos dizer índice de pontos de
frase de, podemos ver que há alguns tipos
diferentes
de índice aqui, mas queremos essa string 1. Na verdade, não
importa, a propósito, qual você escolhe
aqui você pode ver que assim que o cursor estiver dentro dos
parênteses
vai realmente sugerir
quais você quer fazer. Nós vamos tomar basicamente, e eu vou dizer Java aqui. Então Java, vamos
ver quando é isso? Como onde isso acontece? 17, ok, vamos contar. Então, vou começar por aqui. Então meu cursor
sempre estará no lado esquerdo
do personagem com o
qual estou contando, 123456789, 10, 11, 12,
13, 14, 15, 16, 17, 18. E todos vão
ficar como Espere um segundo. Mas isso dizia 70, não foi? Sim. Ele disse 17. Agora, por que esse 18 é? Aha, veja, isso é uma coisa muito
interessante porque em Java ou na maioria das linguagens de
programação, estamos realmente contando a
partir de 0. Agora isso pode ser
absolutamente louco para você, especialmente se
você fosse um iniciante. Isso é totalmente bom. Não se preocupe com isso.
A coisa sobre isso é que você se acostuma com isso
muito rapidamente acaba. Há alguns outros lugares
onde temos que usar isso. Mas se começarmos a contar em 0, você pode ver que é 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17. De repente, o j é
exatamente o 17º caractere, ou melhor, é o personagem
com índice 17, certo? Então, porque é
claro que esse é
o índice, o índice disso, o índice dessa palavra. E estamos basicamente
procurando o primeiro personagem aqui. Isso é realmente muito interessante, quando realmente pensamos sobre isso. E bem, e
se realmente estamos, nós somos, não estamos,
isso não está correto. Onde estamos é, na verdade,
queremos substituir alguma coisa. Então, saia da
linha de impressão do sistema e queremos dizer uma frase que substitua, e queremos substituir Java
por, digamos C Sharp. Mas por que não? Certo? Assim, você pode ver o destino que queremos substituir como Java, e o que vamos
substituí-lo é C nítido. Então, se eu fosse executar isso agora. Nós veríamos que é uma introdução maravilhosa
C-sharp como não está certo, isso não está bem. Mas neste exemplo, é
claro, isso é totalmente bom. Então esse é o método de substituição e isso também é
muito interessante. Mais uma vez, isso não é
substituído na frase. Ele retornou uma nova string, uma cópia disso que
basicamente substitui isso. Muito importante. Talvez
queiramos ver se
uma determinada frase
começa ou termina com alguma coisa. Isso é muito fácil, na verdade, vamos duplicar
o substituto mais uma vez com o Control D. E o que podemos
dizer que começa com, você pode ver, e
eu poderia apenas dizer, hey, Eu escrevo e isso
seria verdade neste caso. E então também podemos, você
pode adivinhar
o que o outro é, é claro, termina com,
o que seria, digamos uma maiúscula a, o que é claro
falso neste caso, isso seria verdade,
isso deve ser falso. Então, vamos ver por
uma questão de argumento. E lá você pode
ver verdadeiro e falso. Muito fácil de fazer. Agora, o que é se tivermos uma string e vamos chamar isso de
S por enquanto, e será apenas
uma string vazia, certo? Então, uma corda sem nada nele. Como podemos verificar se
isso está vazio? Bem, podemos deixar
um booleano vazio. Por exemplo, apenas
dizemos que S está vazio. E lá vai você. Isso é praticamente
tudo o que precisamos. E se fôssemos sistema, a linha de
impressão que está vazia,
poderíamos, é claro, também colocar o
ponto S está vazio dentro do seu, por que incomodar, isso é totalmente bom. E eles vão, isso é
realmente onde é verdade? É verdade. Claro
que é verdade. Desculpe. Lá vai você, certo? Claro que é verdade
porque isso está vazio. E há mais uma coisa que é realmente
interessante quando
se trata de
métodos booleanos para as cordas. E esse é o contém, um. Isso é muito interessante. Portanto, a frase
da linha de impressão do sistema que contém, digamos Java. E isso é
claro verdade, certo? Como isso contém Java, devemos ver r2 aqui
também. Lindo. E o contrário? Quando pensamos em sobrecarga de
índice? E quanto a um determinado personagem
em uma determinada posição? Absolutamente nenhum problema. System out print line, frase, char em que posição? Digamos que 17. Então sabemos
que vai ser a. Então eles sabem que
vai ser um j. Isso vai ser muito
importante e há um J. Fácil o suficiente. Mais uma vez, começamos
a contar em 0. Portanto, enquanto este
é o 18º personagem, é o personagem com
índice 70, muito importante. Ou seja, pode ser difícil, mas depois de um pouco de
tempo usá-lo, tenho certeza de que você
vai se acostumar com isso. E vamos fazer
uma outra coisa. E essa
será a substring. Substring interessante.
O que faz isso? Bem, vamos fazer a linha de impressão do sistema
, e vamos apenas dizer substring de pontos de
frase. E por onde começamos? Bem, vamos começar no índice 17. Mas o que isso agora
vai acontecer
é que vai levar
tudo a
partir do tipo 17 e só vai devolver
tudo depois. Então, agora, a substring 17 anos deve dizer
introdução Java, ponto de exclamação. E, claro, isso
também acontece. Isso é muito bom. Então, se
tomarmos outra frase que você
pode ver que há é
claro, mais métodos
que você poderia chamar não, essa não é uma
lista exaustiva que eu mostrei. Acabei de mostrar alguns que
podem ser interessantes aqui. Eu sempre recomendo
experimentar um pouco. Você está experimentando
um monte de coisas. Esta grande coisa aqui é que ele realmente é apenas
digitar um monte de coisas, clicar no botão Executar e
apenas ver o que acontece. E se algo acontecer, isso é legal, ainda melhor. E se não, se
houver uma seta pelo, trabalhe com ela e veja
se você não pode consertá-la. Mas isso seria
basicamente para palestras do método de
cordas e essas cordas. Espero que você tenha achado
útil e
aprenda algo novo se você
agradeceu muito uma avaliação sua. Caso contrário, verei você
na próxima palestra. Sim.
16. (Java) Casting (Java): Ou eu sou bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra, vamos
olhar para o elenco. Você também pode pensar nisso como converter tipos de dados
entre si. O que isso realmente significa?
Bem, vamos dar uma olhada. Por exemplo, queremos ter um empréstimo inteiro, ou seja, digamos US $750 Euros, seja qual for o caso. E então temos
uma taxa de juros, que é claro
em flutuação, certo? E isso vai
ser 0,0525, digamos. Portanto, isso seria igual a 5,25% de taxa de juros neste
momento, todos
devem fazer sentido. Então, agora queremos realmente
calcular os juros. Agora, o interesse, devemos calcular isso como um flutuador
por enquanto. E vou
te mostrar o porquê em um segundo. Portanto, os juros são iguais
à taxa de empréstimo vezes
a taxa de juros. Isso também deve fazer sentido. Você pode ver que,
mesmo que eu esteja pegando
um número inteiro vezes um flutuador, tudo funciona porque estamos
salvando isso em um
flutuador. Interessante. Ok, vamos fazer sistema,
imprimir linha e apenas
imprimir os interesses, o mar. E deve ser algo
como 39, tudo bem. Então, é claro,
se você sentir aqui também, isso é totalmente bom. Agora a questão é: como
podemos simplesmente fazer como multiplicar um número inteiro e um flutuador e tirar um
flutuador dele. Isso é muito louco, não é? Bem, o que acontece
é basicamente que esse número inteiro em segundo plano
é convertido em um flutuador. Podemos tornar isso
explícito digitando o modo entre parênteses na frente
da variável real. E então temos
isso explicitamente. Portanto, este é um elenco explícito antes de ser um elenco implícito. Agora, a coisa sobre
isso é que
vamos aqui de um
número inteiro para um flutuador. O que acontece se fizermos os interesses
reais em inteiro? Primeiro de tudo, o que
vai acontecer é que isso vai mostrar um erro porque
assim que tivermos um flutuador em um, em uma
expressão matemática aqui, tudo
será transformado em um flutuador porque os fluxos têm mais
informações, certo? Porque tudo depois do ponto decimal é
mais informação, portanto, tudo é
convertido em uma carga. Agora, vamos realmente
expressar isso explicitamente para um número inteiro. Agora vamos saber Mori,
o fundo aqui sendo amarelo
significa que isso é um, é basicamente um aviso. Não vamos nos preocupar com isso porque eu realmente
quero mostrar basicamente
qual é o
aviso, avisando-nos porque, de
repente , é um grande 0 e
você vai ser como, espere, como eles se
transformaram em 0? Bem, quando lançamos um
flutuador para um número inteiro, o que vai acontecer
é que tudo depois do
ponto decimal é cortado. Então, basicamente, é assim. Então, de repente, a
taxa de juros será
0 quando a lançarmos
em um número inteiro, o que significa que você
só vai dizer que os tempos de empréstimo 0 são, naturalmente, 0. E você pode ver que isso
também é o que o aviso aqui diz. É por isso que queremos voltar
para o carro alegórico
aqui. Então eles vão. E então, em vez de
tornar isso um número inteiro, vamos manter isso
na taxa de juros e normal. E isso vai
ficar bem, no entanto. Essa é uma espécie
de ideia quando você vai de um número inteiro para um flutuador. Então, de um, basicamente, de menos informações a
mais informações, isso geralmente é bom. Vá de fluxos para inteiro. Então,
para obter mais informações sobre menos informações, isso pode ter algumas
consequências, digamos. Então é sempre isso que
você tem que ter em mente. E isso também é uma coisa. Então, basicamente, essa
ideia de escrever um tipo de dados diferente na
frente de uma variável para transformá-lo em um tipo de dados diferente é algo que veremos um pouco mais tarde
em uma palestra posterior também. Então isso é algo para
basicamente também ter em mente. Bem, mas isso
já seria para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo na
próxima palestra. Então, sim.
17. (Java) de ternary Operator (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra
vamos
olhar para o operador ternário. Agora, o operador ternário à primeira vista soa como
algo completamente louco, muito complicado, mas na
verdade, não é. Então, vamos
fazer dois números inteiros. Um deles será
o exame. Este será
apenas o
resultado do exame como exemplo aqui. E então um inteiro
chamado dom para isso é, digamos que nosso Pai queira nos
dar um presente de X valor. Vamos especificar isso quando realmente
passarmos neste exame, no entanto, como poderíamos fazer
isso da seguinte maneira. Podemos dizer se o exame é
maior ou igual a 50. Então, basicamente, estamos
passando no exame, então vamos
dizer que o presente é igual a 10 e então o
presente é igual a 0. Agora não
precisaríamos necessariamente disso aqui, mas vou
adicionar isso apenas lá. E então
vamos para o sistema linha
de impressão, se dois. Portanto, não se preocupe lá. Isso tudo deve fazer sentido. Mas agora o que podemos
fazer é que podemos realmente escrever todo este
ano em uma linha. E o que podemos fazer é dizer que o presente é igual a. E então a primeira coisa
que temos que fazer é escrever uma expressão booleana. Por exemplo, o exame
é maior ou igual a 50. Então vamos
escrever um ponto de interrogação. E então o que
queremos retornar se a expressão booleana
aqui for verdadeira. Então 10, depois dois pontos
e, em seguida, o que
quiséssemos retornar se a expressão booleana
for falsa, então era 0. E este é o
operador ternário, ponto de interrogação dois pontos. E isso praticamente é
exatamente a mesma coisa que isso. Então, o que podemos fazer é basicamente copiar isso. Vamos apenas
comentar os dois
para que , independentemente do
que aconteça aqui, isso não seja atribuído. Vamos primeiro ter
uma saída 0 e depois um 10. Vamos ver. Lá vai você. Portanto, o 0 é claro que esse 0 aqui que
atribuímos aqui. E então o 10 aqui é
o operador ternário. Então, isso é realmente muito legal. Agora, geralmente, o
operador ternário é usado. Eu não recomendaria
usá-lo muito basicamente, mas às vezes com coisas bem
simples como essa. Você também poderia pensar pegar essa expressão booleana, fazer um booleano fora dela
dizendo como pedido exame. E então isso lê um pouco
melhor no exame passado, que é 10,
caso contrário, é 0. Então você pode
pensar nisso também. Então eu provavelmente não o
manteria assim porque
isso é algo
assim para não redobrar a taxa. Há muito poder
cerebral que vai para olhar para o exame igual, um pouco maior é igual a 50. Certo? Certo. Oh, eu entendo. Se você tem algo
como um is, passa no exame ou
algo assim como um booleano que faz
sentido neste caso. Mas seja qual for o caso, este é o operador ternário e basicamente a mesma
coisa em declarações if. Agora, só porque isso
está tudo em uma linha não significa que seja
necessariamente melhor também. A contagem de linhas não é nenhuma indicação
de código de qualidade, ok? E eu quero que você, eu quero que
isso seja muito, muito claro. Isso não importa. Um ótimo
programa pode ser de 1000 linhas. Se tiver que ter 1000 pés de comprimento, tem
que ter 1000 noites de duração. Só porque você pode
fazer esse programa 800 linhas não
significa necessariamente que seja melhor.
Isso é muito importante. Porque a
coisa mais importante ao escrever código é que você pode lê-lo e
outra pessoa pode lê-lo, o que inclui você
daqui a seis meses. Porque você está em seis meses será
uma pessoa diferente porque você esquecerá tudo o que
escreveu em seu código. Portanto, você
precisa tornar seu código legível ou outras pessoas, essa é a parte mais importante. E se um operador ternário faz sentido nesse
caso, isso é ótimo. Eu nunca, eu
definitivamente aconselharia você a nunca colocar vários
operadores de terminal na mesma linha. Porque é claro
que você poderia colocar outro operador ternário
no verdadeiro ou falso aqui. Definitivamente não faça isso
porque fica muito,
muito complicado, muito rápido. Atenha-se às declarações if. Nesse caso, seja qual for
o caso, isso já seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver
na próxima palestra. Então, sim.
18. (Java) de (Java) Java (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem de microondas. E nesta palestra, vamos
olhar para matrizes. arrays são definitivamente
o tópico, digamos, mais complicado
que vamos analisar, você sabe, até este ponto. No entanto, o que primeiro
quero dizer é que, se você luta com isso, não se preocupe. Isso é totalmente normal. Eu também luto com o é, quando aprendemos isso. E no final da palestra, vou
contar um pouco de uma história sobre isso. Mas, por enquanto, vamos lembrar de volta
que tínhamos cordas E3, certo? Estamos na pergunta
1, pergunta 2, pergunta 3 e resposta um,
resposta para responder três. Agora, certo, a primeira resposta
era na verdade um número inteiro, mas neste caso é uma string. Isso é totalmente bom
porque isso é para fins de demonstração. É um pouco
mais fácil de mostrar. E o que tínhamos aqui
era a ideia de que, bem, tínhamos essas perguntas. Vamos apenas dizer, eu digo,
você sabe o que, seu jogo de trivia que estava
na primeira tarefa, você deve realmente fazer
isso ter 150 perguntas. Agora você vai estar
sentado lá vai
ser como, desculpe-me. Sim. Uma pergunta de 150. Bem, tudo bem. Então você começa a duplicar isso e depois
mudar cada um deles. Agora, então talvez, você sabe, eu, eu sei coisa que você pode manter tudo
pressionado e, você sabe, mudar várias coisas ao
mesmo tempo, mas então todas elas mudam
para o mesmo número e é todo tipo
de apenas ferrou tudo. Não é muito bom. Então isso não funciona
muito bem. Certo. De que outra forma
poderemos fazer isso? Bem, o que podemos
usar é uma matriz. Agora, uma matriz, você pode
pensar nisso como uma lista. Não é 100%
da lista, certo? É um pouco
diferente porque,
na verdade, há algo chamado
de lista em Java também. No entanto, vamos
pensar nisso como uma lista. E você iria
fazer uma série de perguntas e uma
área de respostas de string. E vamos dar uma
olhada no que isso basicamente implica. Então, como fazemos uma matriz? Bem, nós apenas digitamos
o tipo que queremos. Então, o tipo de dados que queremos, e então esses colchetes aqui, e isso vai ser perguntas
e é igual a novo. Então, temos que pegar a
nova palavra-chave e você pode ver que isso já está
sendo sugerido para nós. Vou digitar esta
string e, mais uma vez, o ângulo dos colchetes aqui e depois terminando
com um ponto e vírgula. Agora isso ainda não foi feito porque dentro desses colchetes, nós realmente temos que fornecer
o comprimento dessa matriz. Então, quantos
elementos estarão lá? No nosso caso? Bem,
é praticamente isso. Então isso é muito legal. Agora. É isso. É como sim, é
praticamente isso. E agora, claro, precisamos
atribuir algo. Então, o que podemos dizer são perguntas. Você pode ver que eu basicamente preencho isso automaticamente com
a tecla Tab, certo? Os colchetes novamente
e, em seguida, atribuem, por exemplo, um é igual a dois. E então vamos levar
isso aqui, certo? Então, algo assim. E eu posso continuar
com isso, certo? 23. E então vamos apenas, bem, como posso
produzir isso certo? Como, como isso é possível? Bem, sistema de linha de impressão, e então podemos
apenas dizer perguntas, sem perguntas, lá vai você. E então, por exemplo, três anos agora, na minha média, é
tudo o mesmo, certo? Agora, vamos mudar isso,
na verdade, copiar isso. Então selecione este
controle C controle V, como este Control C Control V. E vamos apenas
trazer os três aqui. Isso é só C e O sabem o
que aconteceu aqui? Bem, o que aconteceu aqui
é que talvez nos esquecemos. Agora, eu não esqueci, eu realmente
queria te mostrar isso. Mas o que aconteceu aqui é que
temos que começar a contar em 0. Então é aqui que
voltamos quando
vimos as cordas onde
começamos a contar em 0 ano, contamos 0 também. Mas isso significa que quando temos três elementos
nesta matriz de perguntas, o primeiro elemento é do índice 0, o segundo é do índice um e o terceiro é do índice 2, que
significa que três
não existe aqui, e então obtemos uma exceção. Vamos ver isso no final
da palestra novamente, porque eu quero que você goste de ver
a exceção e eu quero que você entenda
o que isso significa. Mas, por enquanto, é
assim que você atribui strings
diferentes, neste caso,
valores diferentes à matriz. E você também pode lê-lo
praticamente assim. Mas isso é realmente
o que é preciso. E vamos também
copiar isso
por uma questão de
argumento e chamar isso de respostas, certo? E então vamos copiar
o swell. Então vou selecionar este RP
aqui, aqui e aqui. E então
vamos mudar isso
para as respostas aqui. Então, isso vai ser 50. Isso é claro
que vai ser Londres. E então o
último será F e. Muito interessante realmente. E então o que podemos
fazer é, por exemplo, podemos produzir as respostas aqui. Então, vamos ver
respostas uma nas perguntas 1. E então, de
repente, diz algo como, bem, qual é a capital
do Reino Unido? Londres? Muito fácil. E vamos realmente
mudar isso para, na verdade, não precisamos
mudar isso para 0. Isso é totalmente bom. Tudo o que podemos fazer é
agora, bem, ok, então podemos apenas reatribuir isso para ela
para que possamos aceitar isso. Só vou pegar isso. Na verdade, vou escrever
essas perguntas. Mais uma vez, o colchete 0 é igual, por exemplo, quantos anos tem Ian? Msc, Gregor, em 2020. Isso é só vamos
namorar a nós mesmos. Por que não? Isso é totalmente bom. E então acabamos
de produzir isso novamente. Agora o 0,
digamos, e o 0 aqui. A pergunta. Nós reatribuímos aqui e, em seguida a resposta ainda
estará correta. A propósito, isso é
algo que verifiquei. A propósito, como eu
queria que isso estivesse correto. Isso é muito legal. Todas as coisas consideradas. O realmente legal é que aqui tudo está meio que
em um tipo de dados, certo? Então, as perguntas agora têm
todas as perguntas. Em vez de ter três strings
diferentes, na verdade
temos tudo
nesta matriz de string de perguntas. Isso é muito legal. Também podemos obter o tamanho
do comprimento dessa matriz, desta lista,
por assim dizer, fazendo perguntas desse
tamanho como você pode ver aqui. E podemos dar
uma olhada nisso. Isso é claro
3 porque isso é o que
fornecemos aqui, certo? Então, nisto, tivemos que
fornecer o comprimento. Portanto, isso é
praticamente isso. E você também pode ter visto
muitas sugestões aqui. Não vamos nos preocupar com
nenhum desses no momento porque todos eles
são muito, muito complicados. E nós também
temos é que eu realmente
vou copiar sobre
a menor parte aqui. Portanto, esta é a exceção do índice
de matriz fora dos limites aqui. É praticamente o que já
vimos, mas vou mostrar
isso mais uma vez. Portanto, se colocarmos um número
no colchete que
realmente não existe, vamos obter
uma exceção de índice de matriz fora dos limites. Então você pode
pensar nisso assim. Bem, este é um array e
tem um certo limite,
ok, justo o suficiente. Como um índice. Então, o índice
que estamos passando, esta é a taxa de índice três. Quero a pergunta
com o índice três. Certo, justo o suficiente. Mas isso
está fora dos limites porque essa área tem apenas três elementos e
começamos a contar em 0. Portanto, o índice ou o elemento com índice
três não existe. E mais uma vez, você obtém o
rastreamento de pilha realmente bom aqui para que você possa obter o local exato
onde o problema ocorreu. Então isso também é algo que
eu queria mencionar aqui. Caso contrário, essa
seria praticamente a essência geral das matrizes. E agora, claro, o tipo de coisa que eu
te disse no início. Então, quando aprendi
áreas na universidade, o interessante era que eu não as entendi completamente. Então eu disse, você sabe, eu não preciso de áreas. Nunca vou usar áreas, nunca. Isso não importa. Só vou
ficar com isso. Vou criar variáveis
individuais. Mas é claro, você
vai ter problemas
muito difíceis assim que
alguém disser , bem, então faça como 20
diferentes e
então, assim como
me dê tirá-los, coloque-os em uma ordem aleatória. Não vai funcionar porque essas coisas
definitivamente precisam ser aprendidas. Essa também não é a abordagem
certa, branca. Oh, eu não entendo isso. Portanto, não
preciso aprender isso. Portanto, não é
importante, nenhum. E, claro, se
existir, tem algum mérito nisso nesse sentido na
programação aqui. Então eu definitivamente
recomendo dar
outra olhada nisso. Apenas fique calmo, tentando algumas coisas para entender isso. E também mais uma vez, se você receber algum erro, não se preocupe. Erros são totalmente normais
ao programar. Não há nada como se não
houvesse vergonha, não gosta que seja
totalmente normal, genuinamente todo programador, recebe várias setas
todos os dias quando eles programam. Mesmo programadores veteranos
ainda recebem flechas todos os dias. Então nunca se sinta
mal com isso. E sim, então essa é uma espécie
de ideia geral de áreas aqui. Espero ter conseguido passar
a ideia
de que isso é realmente
muito parecido com uma lista, certo? Não é uma elipse de 100%, mas você pode pensar nisso
como uma lista. Você coloca elementos diferentes, basicamente com
índices ou índices diferentes, você sabe, algo
assim, certo? Mas, de outra forma, isso seria para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
19. (Java) loops (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra
vamos falar sobre loops. O que vamos
precisar para esta palestra são ambas as matrizes de
string que fizemos anteriormente para as perguntas e
as respostas de qualquer maneira. Mas antes de fazermos
qualquer coisa com as áreas, antes de tudo, quero que você
faça o seguinte. Saída. Todos os números de
0 a 99, certo? Você vai ser como, Ok, sistema de saída, linha de impressão 0, então você pode ser como
duplicar um, duplicar dois. Agora você vai
ficar sentado lá o tempo
todo assim. Vamos ser honestos, isso
vai levar muito tempo. Bem, e depois vem loops. Portanto, loops são algo
em que você pode executar um pedaço de
código várias vezes. E o primeiro tipo de loop que
vamos ver
é o for-loop. Para isso, vamos digitar quatro e depois parênteses. Mais uma vez, os parênteses de
fechamento devem ser gerados automaticamente. E então vamos
digitar int I igual a 0 ponto e vírgula I é
menor que um ponto e vírgula 100 I
plus, além de fechar parênteses e,
em seguida, um colchete aberto. Em seguida, o colchete de fechamento deve gerar
quando você pressionar Enter, quando você
retirar a linha de impressão do sistema e colocá-la dentro dos colchetes
encaracolados aqui. E vou mudar
o 0 para um olho e agora ver as maravilhas
da programação. Como você pode ver claramente, tudo é produzido de
0 até 99. Mas o que está acontecendo
aqui? Bem, em um loop for-loop, a ideia é que o que estamos fazendo é que estamos definindo,
como você pode ver, estamos inicializando a, um
inteiro i e para o 0. E então estamos dizendo que
estamos tendo algum tipo de expressão booleana aqui
e depois um incremento. O que acontece é
que eu estou definido como 0. O que está sendo verificado
é se eu sou ou não menor que 100. Se isso for verdade, continuaremos
com esse loop. Então, se isso for verdade, tudo dentro
de você acontece, então vamos aumentar eu e então isso
será verificado novamente. E então estamos fazendo isso de
novo, aumentando eu, cheque aumentando eu e
assim por diante e assim por diante. Então isso é basicamente feito
para sempre até este ano. Essa
expressão booleana é falsa. E uma vez que é falso, o que significa que eu não sou
mais menor que um 100, o que acontece quando eu é um 100, então isso não é mais executado e
tudo depois,
depois do colchete encaracolado
aqui começa a acontecer. É por isso que ele pára
em 99 e não um 100, porque quando eu tenho 99,
isso ainda é verdade. 99 é menor que 100. Todos concordam, sim. Mas assim que for 100100 não
é menor que 100. Na verdade, é igual a 100. Portanto, isso não é mais
basicamente verdade. Portanto, isso não é
mais executado por um 100. E essa é uma espécie de ideia. E isso é muito
legal, não é? Como se pudéssemos fazer isso facilmente? E agora vou
explodir sua mente. Agora vou lhe
dizer, bem, produzir todas as
perguntas e respostas
e você só vai
ocupar a linha de impressão do sistema. Agora pergunta 0, resposta 0, assim como tínhamos antes. Bem, isso vai ser
mais fácil para int I igual a 0. Eu sou menor que o comprimento do
ponto das perguntas I plus, mais. E então o que
vou fazer é copiar este duas vezes. E então, em vez
disso, vou fazer perguntas eu oh, isso é interessante,
não é? E responde I. Agora isso, isso é muito legal. Então, você pode basicamente
passar o número inteiro aqui para os
colchetes e acessar, bem, qualquer índice que você quiser e qualquer índice que
esse inteiro assumir. Outra
coisa realmente louca é porque estamos realmente olhando para o
comprimento aqui, certo? Como temos o comprimento, isso imediatamente
nos salva de quaisquer erros. Agora, o único erro
que pode ocorrer é se de repente,
fizermos
isso quatro aqui, certo? Porque estamos tirando
o comprimento
das perguntas enquanto as
respostas não são as mesmas. Então, podemos
encontrar um erro. Mais uma vez, a exceção de área fora dos limites ou
a exceção de índice
de matriz fora dos limites. Mas, por enquanto, quando usarmos o mais longo, isso vai ser totalmente bom. E se eu apenas executar isso, você pode ver isso
imprime tudo. Harmony fica na capital
US AIR 50 do Reino Unido, Londres. E então o
símbolo químico para ferro é Fe. Para que tudo funcione. Então isso é bonito, isso é muito louco, certo?
Isso é muito legal. Ou loops insanamente valiosos e podem ser usados para todos os
tipos de coisas. Há outro
tipo de loop que é muito semelhante ao for-loop, que é o para cada loop. Agora você pode ver se eu consigo
digitar isso e eu poderia pressionar a tecla Tab
para preencher isso automaticamente. No entanto, não vou, porque a formatação é
um pouco estranha para mim. Não sei, sei bem
qual é esse o caso. Nós só vamos escrever
para que eu posso dizer perguntas sobre a Polônia Ocidental. E a maneira de ler isso é para cada pergunta de string em perguntas, é assim
que você leria. E então você pode simplesmente fazer um sistema fora, imprimir
linha, pergunta. E posso simplesmente imprimir cada pergunta
individual aqui. Mais uma vez, isso
só vai funcionar. Então, como você pode ver,
lá vai você, uh, basicamente agora tem acesso ao que os elementos individuais dentro dessa lista ou
matriz neste caso, e eu não preciso
especificá-lo através do índice aqui. Na verdade, estou recebendo todos
eles bem individualmente. Então este é o para cada loop
e isso para cada um
que você for, Esse é outro tipo de
loop que é interessante. E então o último
tipo de loop que eu quero mostrar
é o loop while. Agora, eu tenho uma
preferência pessoal de
usar muito raramente o loop while
simplesmente por causa
do fato de que ele pode ser, bem, pode
te causar problemas. Então, podemos dizer
algo como embora verdadeiro e depois colchetes encaracolados. Então, o
que acontece é que tudo dentro daqui vai
acontecer enquanto isso for verdade. Agora, obviamente, quando você pensa sobre isso por um
segundo, espere um segundo. Se eu for verdade, então isso sempre será verdade exatamente. Isso agora é um loop while e um loop while e sem fim, certo? Portanto, este é um
loop sem fim e esse é o perigo que você pode encontrar com um loop while. Você pode encontrar o problema com loops for
também na teoria, mas é muito raro que
realmente aconteça. Mas em loops while, muitas vezes
é o caso ou pode ser o caso de você
ter um loop sem fim. Agora todo mundo tem que
passar por isso em algum momento. Só estou dizendo que meu viés é que eu realmente não
gosto de loops. Mas o que podemos fazer é, bem, vamos fazer o seguinte. Na verdade, vamos adicionar uma
entrada para a pessoa. Então o scanner aqui, o scanner é igual novo sistema de scanner
e, em seguida, pronto. Mas o que vamos fazer é dizer algo
como
a seguinte linha de impressão
do sistema. Você quer continuar? Mas então
vamos apenas dizer: Ei, a pessoa quer
continuar a usar? Queremos continuar. E então vamos dizer, ei, se o
ponto do scanner em seguida, certo? Se isso for igual a sim. Então o que vamos
fazer é
continuar , certo? Então continue a palavra-chave real,
outra pessoa que vamos quebrar. Este é um exemplo aqui
da palavra-chave Continue e
da quebra. A palavra-chave continue basicamente ignora tudo o que
vem depois dela dentro do loop e salta de
volta para
o topo do loop onde a
palavra-chave break sai do loop. Então, basicamente, vai
para o final do ano e tudo depois
é executado novamente. Isso seria o mesmo se isso de
repente se tornar falso. Nesse caso, é
claro que este é um loop sem fim, certo? Então, enquanto
eu digitar, sim, isso continuará e assim que eu digitar
qualquer outra coisa, ele vai sair dela. Então essa é uma espécie de ideia
desse loop while aqui. Vamos realmente dar uma
olhada nisso para que eu possa digitar. Sim. E eu posso digitar, sim.
E eu poderia digitar. Sim. E então eu vou cometer
um erro aqui e um OH, não, De repente,
o código está parado. Essa é uma espécie de ideia. Portanto, isso pode ser um loop sem fim com uma espécie de sistema de travagem. Agora, o que
é muito importante é que
a palavra-chave continue e a quebra provavelmente
só
deve ser usada com moderação porque há muitos desenvolvedores
que não gostam disso. Porque se você tiver gostar, digamos que um
loop FOR mais longo ou
loop while mais longo e você tenha muito
Continue e quebra lá. Às vezes pode ser um
pouco confuso. Gosta de lê-lo, certo? Porque você vai ter
mais ramos por assim dizer. Então você pode pensar, se você pode
pensar
em maneira de fazê-lo de uma maneira
um pouco diferente que geralmente é melhor. Seja qual for o caso. Esses são os loops que
eu queria te mostrar. muito legais. E estamos realmente começando
a obter algumas ferramentas muito, muito legais em
nossa caixa de ferramentas para realmente trabalhar com código e apenas
programar algo
que é muito legal. Então, mas por enquanto, é
isso para esta
palestra aqui. Espero que você tenha achado útil e aprenda algo
novo se você o fizesse, eu agradeceria muito
uma revisão sua. Caso contrário, verei
você na próxima palestra. Então, sim.
20. Métodos Java (Java) (Java): Bem-vindo de volta à introdução do
Java para modelagem do Minecraft. E nesta palestra, vamos dar
uma olhada em um método. Então, antes de tudo, mais uma vez
exigimos
as áreas de string aqui. Nós não necessariamente os
exigimos, no entanto, vamos
usá-los nesta palestra. E bem, métodos. Quais são os métodos? Bem, vimos
essa palavra lançada algumas vezes antes
com os métodos de string. E também algo como a linha
de impressão do sistema também é um método. E eu poderia ter dito uma
ou duas vezes antes do método principal. Então, há algo nisso. Também vimos os
métodos matemáticos, então definitivamente
ouvimos essa palavra antes. O que é realmente? Bem, em teoria, um método, você pode pensar nisso como
algumas linhas de código, uma linha de código ou 100
linhas de código em teoria, que são executadas quando
você chama esse método. Então você chama um método
como, por exemplo, quando digitamos um
sistema, a linha de impressão do sistema, certo? E eu digo Olá, leia isso. É algo em segundo
plano, acontece, certo? Então essa linha de impressão,
quando chamamos isso, esse método aqui, algo
em segundo plano acontece. Agora não sabemos, neste caso ,
necessariamente, o que acontece
exatamente. Mas algo acontece com
isso esse olá, certo? Uma vez que eu executo isso, para
que, quando isso acontecer, algo aconteça em
segundo plano que este olá
agora está sendo exibido
nesta janela Executar. Então, não sabemos o quê, mas algo em
segundo plano acontece, então algum código é executado. Então, se tivermos um pedaço de código que podemos
querer reutilizar, digamos 100
vezes em nosso código. Então você pode dizer, bem, podemos apenas fazer um loop for-loop,
você sabe, 100 vezes. Bem, mas e se eu quiser fazer isso em locais diferentes
no meu código, certo? Então talvez eu queira fazer uma
pergunta neste caso, certo? E uma saída e resposta e
, em seguida, verifique a resposta. Então eu quero fazer
perguntas novamente. É como, bem,
quero dizer, você poderia fazer um loop for, mas bem, talvez nós queiramos fazer algumas declarações
if lá. Vai ficar um
pouco complicado. Então, isso nem sempre funciona. Então, digamos, por exemplo, o que eu quero fazer é que eu só quero, eu não seria apenas
algo que eu possa digitar que eu possa dar, digamos uma, uma matriz aqui, vermelha. Portanto, o conjunto
de perguntas de string, uma área de respostas de e que apenas as saídas atendem a
todas as respostas e
todas as perguntas. Então, todas as perguntas,
respostas apenas na inscrição. Então eu poderia, claro, escrever
algo assim. Olho direito para loop
int I é igual a 0. Eu sou menor do que
as perguntas que vinculam, digamos que eu mais, mais. E então eu poderia apenas dizer sistema , perguntas de linha de impressão. Eu escrevo algo assim e dupliquei isso
e depois digo respostas. Eu poderia fazer isso. Bem, digamos
mais uma vez, quero que isso seja feito 100 vezes
em todo o nosso código. Agora, o observador de
vocês pode dizer, bem, por que não colocamos isso em outro loop for. E você estaria
absolutamente correto. Você poderia fazer isso também. No entanto, não vamos
ficar muito inteligentes. Vamos pensar sobre isso
e fazer disso um método. Agora, o que vamos
fazer é que eu te disse antes que só estamos operando entre esses dois suportes
encaracolados. Estamos expandindo nosso mundo agora e nos movendo para fora
desses suportes encaracolados. Porque agora nossos
novos suportes encaracolados são esses dois basicamente. Então agora esta é a nossa nova casa. E isso, você pode
ter pensado sobre isso. Bem, este é o
método principal que está
sendo executado basicamente quando
pressionamos o botão Executar e,
em seguida, o
método principal é executado. Agora vamos
adicionar um novo método. E antes de tudo, vou
escrever isso. E então vou
explicar o que acontece aqui. Então, vamos escrever estática
pública, vazia. E vou chamar isso de perguntas e respostas de
saída. Então vou
digitar um parêntese, os parênteses de fechamento devem
gerar automaticamente. E então eu vou
fazer uma matriz de strings aqui. Então, essas serão
as perguntas e, em seguida, uma outra matriz de string
responde, certo? E então eu vou
fazer um suporte encaracolado. E você vê que o
segundo suporte encaracolado já gerou. Posso pressionar a tecla
Enter e, em seguida, a formatação
também deve estar completa. E com isso, um
método mais novo foi criado. Por enquanto,
ignoraremos isso
público e estático. Ainda não sabemos
o que é isso, mas estamos muito
perto de
descobrir isso em uma palestra futura. Na verdade, vamos
descobrir o que isso significa por enquanto. Só sabemos que isso é
um modificador de acesso. Não sabemos o que ele faz ainda. Só sabemos que
precisamos ter
estática pública escrita aqui e então tudo
vai ficar bem. Há vazio aqui é, na verdade, o tipo de retorno desse método. Então, alguns métodos retornam algo e veremos
isso em apenas um momento. Então, depois de termos feito esse método, faremos
outro que realmente retornará um número inteiro. Em seguida, teremos
o nome do método. Agora isso é algo que
você pode decidir por si mesmo. Normalmente, variáveis de
nomenclatura e métodos de nomenclatura devem
ser muito expressivos. Portanto, mesmo que isso
possa ser muito longo para você não se afastar de métodos
longos ou nomes de variáveis
longas. Se eles descreverem
exatamente o
que estão fazendo, isso
será a melhor coisa. Então, depois do nome, venha, os parênteses aqui. E dentro dos parênteses, basicamente também
definimos
uma variável tipo de fala. E esses são chamados de parâmetros. Portanto, temos dois parâmetros aqui, e ambos são
do tipo string array. E, no geral, essa coisa
toda aqui. Então, tudo isso, à direita, os modificadores de acesso,
o tipo de retorno, o nome do método e os parâmetros é o que é
chamado de assinatura do método. Então, como precisamos saber disso, assinaturas do
método precisam ser. Significado único, não posso
ter a mesma coisa. Então, vou
selecionar tudo isso. E então eu vou dizer
Control C e depois Control V. E você pode ver que
se eu passar o mouse sobre isso agora vamos dizer que
já está definido aqui. Então isso é exatamente
a mesma coisa e já está definido. Isso não funciona, certo? Então isso é muito importante. No entanto, se eu alterar
a assinatura do método, ou seja, por exemplo, eu faço um a menos, coloco um parâmetro
a menos aqui que funciona. Você terá, eles têm
o mesmo nome, eles têm uma assinatura diferente. Então, neste caso, agora
seria chamado de
sobrecarga de método porque
temos o mesmo nome, isso com uma
assinatura diferente desativada. Por exemplo,
número diferente de parâmetros, diferentes tipos de parâmetros,
diferentes tipos de retorno. Essa é uma espécie de maneira que você pode alternar o ano por ter
métodos com o mesmo nome. Isso vai
ficar interessante, talvez mais tarde na
linha por enquanto, vamos excluir
este e
vamos manter o único
método aqui. E o que vamos fazer é, na verdade,
vamos pegar esse Control X para cortá-lo, Control V para colá-lo. E de repente você pode ver que tudo está funcionando totalmente
bem porque, claro, estamos tendo os parâmetros
aqui, Westerns e respostas. E a ideia é que
vamos passar isso. Então, porque agora,
é claro, essas perguntas, essas respostas, essas
não são as mesmas que essas duas. Eu posso chamar isso, digamos Q0, Q, Q u, e, apenas por
uma questão de argumento. E vou chamar isso de E&S só para que
não haja mal-entendidos. Este ano não é o mesmo isso porque eu poderia
chamar isso com, é
claro, uma série diferente de perguntas em uma área de respostas de
string diferente. Então isso vai
ser muito geral. Isso só vai fazer isso para qualquer área
que eu vou colocar. Então essa é a coisa muito legal. Então o que posso fazer é poder
chamar isso, posso dizer saída. E você pode ver
assim que eu digitar, o método real está sendo
reconhecido pelo programa. Na verdade, sugeriu aqui. Então eu posso simplesmente colocar
a tecla tab. Posso pressionar a tecla tab e
ela gera automaticamente o seu e posso apenas
dizer Q0 e ANS. Então, agora eu passei a matriz de string de
perguntas como o perímetro da pergunta e a matriz de string de resposta
como o parâmetro answer. Você pode, o que você também
pode ter visto é que o método passou
de cinza para amarelo. Isso simplesmente significa
que esse método está realmente sendo
usado, então sendo chamado. E isso também é
uma ideia importante. E se eu agora executar isso, você verá que ele realmente funciona. Você
pode ver quantos conjuntos. Os EUA, eles têm 50 capitais, Reino Unido,
Londres, e
símbolo químico para ferro é F, e. Então ele produz isso e basicamente chama todo o
código disso dentro daqui. E agora, é claro,
os métodos podem chamar métodos, e os métodos podem
chamar outros métodos. Então isso, é claro, fica bastante complicado
em algum momento. No entanto, por
enquanto, isso é muito legal. Agora, também vamos
fazer um método que pode ser muito complicado. Então, o que vamos
ter como alguém vai para a estática pública int. Então, agora vamos
retornar um número inteiro e vamos
somar dois números juntos. Então, para isso, do que precisamos? Bem, é claro que um inteiro
x e um inteiro y. Agora, mais uma vez, os
nomes dos parâmetros, a
propósito, também podem ser
o que você escolher. Normalmente, você quer que eles também sejam muito expressivos em geral. Agora temos esse
método de soma aqui. E o que vamos
fazer é
digitar a palavra-chave de retorno x mais y. lá vai você. Então, vamos apenas retornar x mais
y porque é
claro que essa é a soma
desses dois inteiros nesse caso, nada
muito espetacular. No entanto, o que eu
queria mostrar é basicamente a palavra-chave return
e que você também pode retornar diferentes tipos. Então, o método SAM, neste caso, podemos dar uma
olhada nisso, certo? Então, sistema para fora da linha de impressão, e então vamos dizer
uns dez e digamos 12. E então se eu executar isso e ele deve dizer 22, lá vai você. Portanto, não se preocupe,
tudo funciona. E esse tipo
de ideia geral aqui que
você tem com métodos. Assim, ele pode
retornar algo ou pode pegar retornar algo, então você tem que
escrever em um vazio. Mas isso é uma espécie de análise
provisória dos métodos. É claro que, mais uma vez, você realmente precisa
aplicar isso um pouco para realmente entender
aqui. No entanto, isso é um ótimo seguimento para a tarefa que
será a seguir. Eu recomendo
fazer como fazer a próxima tarefa porque isso será
basicamente métodos. E mesmo que você não obtenha Sue basicamente fará
tudo lá dentro, pelo menos
olhando para
a questão e seguida, a solução para
ela espero ilumine também a maneira que você pode use métodos
em seu próprio código. Mas, por
enquanto, isso vai ser
para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra. Então, sim.
21. TARde 2: Jogo Trivia com métodos: Tudo bem, Bem-vindo
à segunda atribuição da introdução
do Java aqui. E neste pequeno vídeo, basicamente
quero
explicar a tarefa. Então, no geral, a tarefa não
é tão complicada quanto eu ainda
quero basicamente
orientá-lo por isso. Então, a ideia é que você recriar o jogo
de curiosidades desde a primeira tarefa. Então, basicamente,
praticamente a mesma coisa. Mas desta vez você deve ter cinco perguntas e cinco respostas. E a maneira como você deve
salvá-los é em duas áreas. Um para as perguntas
e as respostas. E o que você também deve fazer
é criar pelo menos dois métodos para tornar o código mais legível
e fácil de seguir. E basicamente como uma dica, você vai pensar nisso
assim. Quando você tem algum código
duplicado, provavelmente deve transformá-lo
em um método. Vamos pensar sobre isso. Pense em onde você
pode estar ligando para algo duas vezes e então você pode basicamente fazer um
método com isso. E o que você também deve
fazer é fazer um loop sem fim e, em seguida, algumas
declarações if lá
em alguma capacidade. Então, alguma lógica, que faz
com que
o usuário solicite que o usuário continue jogando ou não se ele não
quiser mais. Eu
recomendo dar outra olhada
na palestra de loops
novamente porque eles têm um caso de uso muito
semelhante que eles estão cientes de que
tínhamos um loop while infinito que você pode parar com
eles
Instruções IF e as palavras-chave break e
continue. Então, esses podem ser muito úteis aqui. Caso contrário, no geral, isso deve ser bastante
simples. O jogo
por si só deve jogar de forma muito semelhante, na verdade,
do que o primeiro. Deve parecer um
pouco diferente. Então, no geral, essa
seria toda a ideia. Claro, não se esqueça de coisas
como os pontos também. Além disso, você sabe, adicioná-los também. Caso contrário, isso é
praticamente tudo o que você
realmente precisa fazer. Sugiro arredondar cerca mais uma hora
para esta tarefa,
dependendo, é claro
, do seu nível, você também pode fazê-lo
em 30 minutos, 45 minutos, quem sabe? Mas não se estresse. Leve algum tempo
para realmente se aprofundar nisso. Assista a algumas palestras
novamente, a palestra de loop, eu recomendo
métodos de aula foram áreas
muito boas se você não
entender completamente, eu recomendo isso. E, caso contrário,
é claro, a solução também
estará disponível
para você. Portanto, não se preocupe lá. Caso contrário,
desejo-lhe boa sorte para esta
tarefa, no entanto. Sim.
22. SOLUÇÃO 2: jogo Trivia com métodos: Ou eu dou as boas-vindas de volta à
segunda tarefa e à solução para a atribuição
real aqui. Então, mais uma vez, o código está
, naturalmente, disponível para você. E, como um aviso de
isenção de responsabilidade aqui, se o seu código não corresponder a 100% ao
código que eu tenho, é claro
que é totalmente bom. Não há vergonha nisso porque sempre
há várias
soluções para isso. E eu acho que minha solução pode ser usar alguns,
muitos métodos. Na verdade, curiosamente,
mas, por enquanto, vamos
passar por isso. Então, é claro, as matrizes de string, perguntas e respostas devem ser bastante autoexplicativas aqui. mesmo acontece com o scanner
mais uma vez para ler as coisas
e, em seguida, um total de pontos
aqui, apenas pontos centrais. Então, isso é bastante
simples. Temos um loop while
que é sempre verdadeiro. Então você pode ver que isso é basicamente todo o loop
while aqui. E vamos antes de
tudo dar uma
olhada no fundo aqui. Então esta impressão é reproduzida novamente, método imprime, Ei,
você quer jogar de novo? Se você colocar um y aqui, ele basicamente redefine os pontos e, em seguida, continua
com este loop while novamente. Caso contrário, ele simplesmente
sai do loop while. E então príncipe de adeus aqui. Essa é uma espécie de ideia. Caso contrário, você pode
facilmente seguir isso. Os nomes dos
métodos
descrevem quase inteiramente o que eles estão fazendo e, em seguida,
veem Título impresso, justo o suficiente. E então vamos
passar por cada uma
das perguntas aqui
para este loop, muito, bastante
simples também. E temos a pergunta impressa aqui para a pergunta
que atualmente está sendo feita por, em seguida,
lida na resposta do usuário. E então temos uma declaração if que chama outro método aqui. Então, a resposta
correta desta resposta do usuário. E basicamente
compara isso com a resposta
correta para essa pergunta. Se esse for o caso, portanto, se
esse método retornar true, estamos imprimindo,
você terá uma resposta correta,
onde cada vez mais
pontos totalizam e escrevendo isso volta na variável points. E então aqui
também estamos
imprimindo o
total de pontos atuais basicamente. E se essa não
for
a resposta correta, estamos imprimindo que
você tinha uma resposta incorreta e também estamos
imprimindo a resposta correta real. Isso é praticamente tudo
o que realmente precisamos aqui. E você pode ver, no final aqui, estamos apenas
imprimindo o total do ponto e, em seguida, pedindo ao jogador para basicamente se ele
quer ou não jogar novamente. Então essa é toda a lógica aqui. E então, se
descermos, podemos ver que há
muitos métodos aqui. E todos eles são muito,
muito simples, certo? Quase todos eles
apenas uma luz, basicamente todos eles
apenas uma linha. Agora, você pode fazer um caso
muito bom
que, isso pode ser um pouco bom
demais, também
pode ser uma coisa ruim
neste caso, certo? Ou muitos métodos
podem ser demais. No entanto, isso definitivamente é
muito fácil de seguir aqui. Há também pontos em dizer,
bem, talvez pudéssemos pegar toda
essa declaração IF
e fazer um método. É isso também,
talvez pudéssemos tirar todo o loop for, fazer um
método inteiro com isso. Podemos tomar essa parte e
fazer um método outros. Portanto, existem várias ideias que você pode seguir
e você ainda pode, é
claro, fazer mais métodos
com isso ou menos. Está tudo bem e está
tudo bem. Contanto que funcione, você
tem alguns métodos que você fez, então vai
ficar absolutamente bom. Então, mais uma vez, se esta
não for exatamente a sua solução, não se preocupe com
isso ao menor. Mais uma vez, a coisa
bonita da programação é que sempre
há, quero dizer, há um milhão de maneiras
diferentes de
fazer isso. Claro, alguns
deles serão mais otimizados do que outros. Mas no final do dia, quando realmente pensamos nisso, isso vai
ficar bem normalmente. Então, se isso não é 100% correto como você tem,
tudo bem. Se funcionar, já estou
muito feliz com isso. Caso contrário, esta é
praticamente minha solução. Este código, é claro, também está disponível para você. Caso contrário, espero
que essa tarefa sido útil para você se aprofundar um pouco mais na ideia de métodos e como usá-los. Eu sempre posso, claro, também apenas sugerir
brincar com ele em seu próprio tempo, apenas experimentando um
monte de coisas. Neste ponto, você tem
muitas ferramentas diferentes. Você tem instruções if, você tem loops, você
tem métodos, matrizes. Então, há muitas coisas com as
quais você pode brincar. Você pode ler coisas
do usuário. Você pode escrever
coisas para o console, que neste momento, na verdade apenas abre um
monte de coisas para você. Então, se você quer fazer uma
espécie de escolha
sua própria aventura, apenas uma pequena coisa, certo? Vá em frente, certo, apenas
experimente um monte de coisas. Eu recomendo apenas
ser experimental com ele. Você, você não pode quebrar
nada aqui, certo? Contanto que você escreva seu
código aqui seja apenas para você, tudo vai ficar bem. Como eu já disse na
palestra sobre os erros. Se você receber alguns erros,
não precisa se preocupar, este não é o fim do mundo e todos recebem flechas, certo. Eu recebo flechas a qualquer momento, como quando programo, é claro, haverá flechas
e tudo bem. Contanto que você
trabalhe com eles, você tenta entender
por que eu recebi esse erro? Como isso aconteceu? E meio que algo assim. Mas isso seria para
a solução aqui. Espero que você tenha achado
útil e aprenda algo novo e eu
te vejo na próxima palestra. Então, sim.
23. (Java) Java Colections (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra,
vamos dar uma
olhada nas coleções. Isso incluirá mapas e conjuntos
realistas. Embora especialmente os conjuntos sejam
algo que é usado bastante extensivamente na
modelagem do Minecraft em geral, mas na base de código Minecraft. Portanto, os conjuntos são coisas muito
interessantes, mas primeiro vamos começar com uma ArrayList. No entanto. Vamos
pensar na matriz de string, que conseguimos
definir assim, certo? Então, perguntas, por exemplo, aqui, com uma nova matriz de string, digamos do tamanho dois. E então fomos capazes de atribuir essas perguntas assim. Como algum estado, sem Estados? Faz. A metade dos EUA é
algo assim. E poderíamos
duplicar essa linha. O outro também. Por exemplo, tornando isso um
pouco mais curto capital do Reino Unido. Então isso funciona totalmente bem. Sem problemas qualquer taxa. No entanto, uma das coisas que você pode se perguntar é certa, mas e se eu quiser
alterar o número de perguntas dentro dessa área? Bem, você tem que mudar
esse número aqui. E isso pode ser um
pouco chato, certo? Porque então você tem que entrar
aqui, tem que mudar isso, certifique-se de que, se você
tiver uma área que tenha respostas,
você também tem que mudar o tamanho disso, e
assim por diante e assim por diante. Então, meio que não é a melhor coisa. E para isso vamos
dar uma olhada em uma lista agora. Então, vamos
digitar lst, então listar. E você pode ver que isso já nos sugere
basicamente neste. E vamos apenas pressionar
a tecla Tab, que agora importará
algo no topo aqui. Se isso não acontecer,
vou te mostrar em apenas um momento como
você pode consertar isso. E então você vai colocar o colchete angular aqui. Portanto, o suporte angular e o outro também devem gerar
automaticamente. E então vamos colocar
uma corda aqui. E depois vamos chamar isso
de lista de perguntas. E isso é igual
a uma nova ArrayList. Você pode ver que isso já está sendo basicamente sugerido para nós. Mais uma vez, vou pressionar
a tecla Tab para gerada
automaticamente. E vamos acabar com
isso com um ponto e vírgula. E a primeira coisa que você
vai ver é que nós, não
definimos nenhum
tamanho para esta lista. E isso é exatamente
certo porque não
há necessidade de definir
um comprimento para uma lista, porque uma lista é dinamicamente enquanto
Alongar a fala solar. Então, basicamente, podemos adicionar
coisas a ele, adicionar elementos a ele e a lista que vamos
expandir dinamicamente. Então isso é muito legal. Essa é a primeira coisa
muito legal. Então, podemos dizer lista de perguntas, pontuar, adicionar e depois colocar uma string. Então, por exemplo, qual idioma
é falado na Alemanha? Como pergunta aqui. E então eu posso
duplicar isso. E por exemplo, digamos, qual é a capital do Canadá? E então no final aqui talvez
algo como, você sabe, vamos apenas dizer em
que hemisfério? O hemisfério é o Brasil. Mas só por uma
questão de argumento. Então, esses exemplos de três
perguntas, basta adicioná-lo à lista, e este agora será o
elemento com índice 0. Este será o
elemento com o índice um, e este será o
elemento com o índice dois. Então isso é muito legal. E a primeira coisa
que podemos basicamente dizer é que listas, certo? Eles são basicamente adicionar entradas
ou elementos dinamicamente. Então isso é
muito legal, certo? Assim, podemos adicionar e, bem,
até remover coisas. Como você removeria coisas? Bem, isso também é
bastante fácil. Podemos apenas dizer que o ponto da
lista de perguntas remove, e então eu posso colocar
o índice que quero
remover ou posso colocar o objeto real que
eu quero remover. Então eu também poderia passar
na cadeia de caracteres aqui, ou eu poderia apenas dizer uma. E então ele vai
remover a pergunta, qual é a capital do Canadá? Isso é muito legal.
Agora, a próxima pergunta você pode ter é, bem, como podemos basicamente
obter o comprimento disso? Bem, podemos dizer ponto da lista de
perguntas. Primeiro de tudo, você
receberá muitas coisas sugeridas aqui,
como você pode ver claramente. Muitas coisas, a maioria das quais não
nos interessa no momento. Na verdade, temos que usar o método de
tamanho aqui. Então, tamanho com os parênteses,
o que significa, é claro, que
esta é uma chamada de método. E isso retorna como o tamanho
ou o tamanho dessa lista. E como posso obter
um elemento dessa lista? Bem, podemos apenas
digitar o sistema fora, imprimir linha para imprimir isso. E então podemos dizer lista de
perguntas que GET. E então aqui temos
que passar no índice. Então, neste caso, 0, por exemplo. E se eu apenas executar isso, você verá que
vamos ter dois para o tamanho
porque é claro que
removemos a primeira pergunta ou a string com o índice um. E então o elemento
com índice 0 ainda será qual
idioma é falado na Alemanha. Então isso é muito legal. Todas as coisas consideradas. Agora, vamos dar uma
olhada em outra coisa. E isso vai ser uma lista de números inteiros, por exemplo, certo? Portanto, os números são iguais
a uma nova lista de matrizes. E o que você vai ver é que esse problema aqui. Então, ArrayLists classifica
algo assim. E então você pode ver
que é uma espécie de, você sabe, não se
comporta bem. Há como um
sublinhado vermelho aqui. O que está acontecendo? Bem, se passarmos o mouse sobre isso, você pode ver que o argumento de tipo
não pode ser do tipo primitivo. Isso significa que na verdade não
podemos usar em booleano e
coisas assim. No entanto, antes de você. Isso pode dizer, Oh meu Deus, essa é a pior coisa de sempre. Não se preocupe. Existem classes de wrapper
que você pode usar para que você possa realmente
ver
substituí-las pelo inteiro Java Lang. Bem, eu posso clicar nisso ou posso simplesmente digitar um
número inteiro aqui. Então este, neste caso. E se você usar isso, então tudo funciona bem. Então, essas são esta lista e esses colchetes angulares são
o que é chamado de genéricos. E a ideia é que você possa
colocar qualquer tipo de dados aqui, exceto os primitivos. Isso é muito importante para aqueles que precisamos dessas aulas de invólucro. Então, há
aulas de invólucro, certo? Podemos usar, pode usar
em vez do primitivo, um datatype primitivo o u. Então isso é muito importante
lembrar aqui que existem classes de
wrapper e elas devem existir para cada um
dos primitivos tipos de dados. Portanto, não se preocupe lá. E aqui podemos facilmente
dizer números em,
você sabe, eram 20, por exemplo. E os números adicionam
algo como 42. Não se preocupe. Como você pode ver, podemos
apenas adicionar esses números aqui e eles são inteiros normais e podemos basicamente usar o. Isso é totalmente bom. Mas eu queria mencionar
isso que você não pode usar os tipos de dados primitivos
nesses genéricos como
eles são chamados. Como eu disse, os genéricos são esses tour desses suportes
angulares, certo? Esses suportes angulares. E tudo o que está
dentro dele é chamado de genérico porque, bem, é genérico no
sentido de que podemos colocar em qualquer outra classe
ou qualquer outro objeto, qualquer tipo de dados que
queremos aqui. E isso só funcionará. Isso, a propósito, inclui
uma lista também, certo? Assim, podemos ter uma lista de uma lista. Claro, por que não? Certo? Nós várias listas
que também funcionariam. Mas, por enquanto,
será isso para as listas. Vamos dar uma olhada nos mapas. Então, os mapas são muito interessantes. Leia, um mapa é a
seguinte coisa. Um mapa contém uma
chave e um valor. E a chave, a
chave realmente mapeia, chave
correta mapeia para um certo valor que
todos devem fazer sentido. Isso é chamado de par de valores-chave. Certo, justo o suficiente. O que podemos ver? Bem como basta digitar isso no
mapa como você pode ver, e temos duas coisas diferentes nos colchetes angulares desta vez. Então, vamos importar isso, certo? Então você pode ver que isso também
é importado aqui. Se isso não for
importante automaticamente, você pode ver que as coisas ficam vermelhas e você pode facilmente
fazer isso sozinho. Você pode clicar nisso
e pressionar Alt e Enter, e ele importará essa classe. Você pode ver que eu
também tive que fazer o mesmo com o ArrayList. E então aqui em baixo para o mapa, na verdade não preciso
fazer isso ainda porque ainda não terminei, mas veremos isso
em apenas um momento. Vamos ter
um mapa que mapeia uma string para outra string. E vamos chamar isso de país para
o mapa da capital, que será igual a
um novo HashMap neste caso. E então o que
podemos fazer é simplesmente pressionar Alt e Enter. E então também será
importante aqui. Mas essas são muito importantes,
essas importações basicamente, para que o programa saiba que estamos usando esses
tipos de dados, certo? Então, a lista, a ArrayList, o mapa e coisas assim. E o que podemos fazer
agora é que podemos adicionar a este país à
capital MAB também. Então podemos simplesmente dizer put e
isso coloca novos valores. Então, por exemplo,
a Alemanha seria Berlim. Espero que você soubesse disso. Vamos fazer outro. Então, vamos apenas duplicar
isso algumas vezes. E vamos dizer França. Você sabe que um que
é Paris, é claro, cedo direto, Itália, Wu agora fica interessante
Roma, é claro. E então vamos
ter um EUA, e isso vai
ser Washington DC. Tão muito simples. Todas as coisas consideradas aqui, como você pode ver, eu posso colocar
duas cordas, certo? Porque isso é o que
eu defini aqui. Esses não
precisam ser os mesmos. Eu poderia colocar em um
ano inteiro, um flutuador aqui, eu poderia colocar uma string aqui, uma lista aqui.
Qualquer coisa funcionaria. Isso não precisa
ser o mesmo. Isso é muito importante. Eu também queria mencionar isso. E como agora obtemos
um valor de um mapa? Bem, digamos que a linha
de impressão do sistema. E então vamos dizer “
country to capital dot get”. E você pode ver que eu tenho
que fornecer uma string. E o que eu vou tirar
é, claro, uma string aqui, mas isso é o que
eu tenho que fornecer. E então é isso que
eu ganho com isso. Então, o tipo de retorno
e eu coloco na Alemanha, e então Berlim
será produzido, já que a
Alemanha é
a chave para o par chave-valor, Alemanha, Berlim deve ser
bastante simples. Também posso perguntar se o mapa
contém
ou não uma determinada chave ou
contém um determinado valor. Então posso dizer que a linha
de impressão do sistema. E então só para
que todos saibam o que estamos pedindo aqui
contém a Alemanha chave. E então vamos
dizer, ponto de país para capital contém chave, Alemanha, o que, claro
, será verdade. Então vamos
duplicar isso. Então vamos
dizer que contém um valor. Assim, também podemos pedir
valores, Londres, por exemplo. E então podemos chamar o método
contém um valor aqui, passar e Londres aqui. E então, se nós apenas executarmos
isso, devemos ver. Primeiro de tudo, aqui mesmo, taxa de
Berlim é a capital da Alemanha e
depois contém a chave. O alemão será verdadeiro porque ele contém essa
chave e depois contém valor. Londres vai ser
falsa porque é claro que não temos
urina de Londres aqui como valor. Também podemos remover
coisas de um mapa. Então, mais uma vez, sistema de saída, imprima linha e conecte-se para dizer, posso dizer país para
capitalizar, remover pontos. E o mais legal sobre
o Remover que você pode ver é que eu posso passar a chave ou também posso passar a chave e
o objeto também. E então ele retornará um verdadeiro se isso tiver
sido removido porque talvez esses não
correspondam e você
queira uma
funcionalidade específica aqui. Caso contrário, você pode simplesmente passar a chave e,
em seguida, você também receberá
o retorno. Então você receberá uma última,
última loja de ano de valor. Então isso agora deve dizer Paris. E depois disso, as marcas são,
na verdade, como você pode ver, e depois que isso é basicamente
removido deste mapa, essa é uma
ideia muito interessante de mapas. Eles podem ser incrivelmente úteis. No entanto, é
claro que às vezes difícil desse tipo
abstrato de maneiras quando eu apenas mostro aqueles onde você pode realmente usá-los. Usando esses tipos de dados, às vezes pode ser, bem, não
é uma
ciência exata, certo? Então, às vezes você
quer usar algo. Não tenho certeza se isso se encaixa. Mais uma vez, apenas experimente. Steve trabalha e então
você vai ficar bem. E então, por último, mas não menos importante, o que vamos
dar uma olhada nos sets. Quais conjuntos, como mencionei, são coisas que são
muito usadas na
base de código do Minecraft. E um conjunto é apenas uma coleção, uma coleção que não
contém duplicatas. Bem, essa é a definição
mais simples de um conjunto. É apenas uma lista ou
uma coleção que
não contém duplicatas. Então, um conjunto, por
exemplo, de string, poderíamos ter isso como
nomes de usuário, por exemplo, com cada problema que é igual a um novo
HashSet neste caso, então você pode ver que isso
também foi importado
e agora isso se transformou em uma história aqui
porque todos eles estão dentro, sob o pacote util. Então, na verdade, não tem
muitas importações aqui. É meio
que faz isso por conta própria. Isso é muito bom. Então agora temos um
conjunto e,
é claro, podemos adicionar a esses nomes de
usuário adicionar pontos, por
exemplo, trabalho de algodão. Ou poderíamos dizer que
nomes de usuário dot add, nano tech aqui. E então podemos dizer, bem, ok, justo o suficiente, isso
é muito legal, mas o que mais um conjunto faz? Bem, mais uma vez,
se agora quisermos
adicionar algo duas vezes, então você pode, por exemplo, dizer algo
como nomes de usuário adicionar, digamos FV, certo? E então eu dupliquei isso, e quero adicioná-lo o
mesmo nome duas vezes, certo? Na verdade, vamos
receber oito falhas devolvidas. Aqui obtemos um verdadeiro,
aqui temos um falso porque isso
já está lá, a string já está
dentro da coleção. E como
não contém duplicatas, só
podemos tê-lo uma vez. Se eu realmente tudo isso, você verá que o
primeiro é verdadeiro porque claro que F ou V ainda não
foi adicionado. E depois que ele for
adicionado e
tentarmos adicioná-lo novamente, teremos
um retorno falso. Então isso é muito interessante. Em todos os conjuntos, você não pode realmente chamar coisas
individuais
dentro do conjunto. O conjunto é realmente uma coleção que deve ser
usada em conjunto. E eu só queria
apresentar gentilmente os sets aqui apenas para que você tenha
ouvido falar sobre eles. Então, uma vez que os vemos dentro
do jogo basicamente, ou dentro do código do Minecraft, você não será
completamente pego desprevenido. Então, a última seção aqui, setas que você pode se
deparar, certo? Então, isso é sempre uma coisa
importante. Você pode apenas, vamos
fazer isso. O descomentário eram setas. Acabei de ver onde os erros, por favor, não para terroristas
isso, isso não seria bom. Vamos realmente copiar isso por uma questão de
argumento e
vamos mudar esse C para um pequeno c e n
vai ficar bem. Portanto, o primeiro é o índice
fora da exceção. Então, vamos fazer o seguinte. Vamos descomentar isso. E antes de tudo, esta
é a lista de perguntas. Lá vai você. Não se preocupe. E se fizermos isso, você
verá que obtemos uma exceção aqui, a exceção de índice fora dos
limites. Portanto, esta é uma exceção
muito, muito semelhante
ao índice de matriz fora dos limites, a exceção
é apenas com uma lista. Isso é praticamente tudo o que existe. Então, tentamos passar um índice o GetMethod que
não existe para listas. Então, é claro, quando temos
apenas dois elementos, o primeiro é do índice 0, o segundo é do índice um. Tão muito importante
aqui que, claro, passar dois
não funcionaria, certo? Então essa é a primeira exceção. E então, bem, a outra coisa não é
realmente uma exceção, mas vai
retornar um nulo. Então, se passarmos uma chave para
um mapa que não existe, teremos um
nulo retornado, certo? E isso pode levar a
uma seta para baixo na linha. Então, se eu fizer isso, então você
verá que se eu fizer isso, teremos um nulo
na parte inferior aqui. E isso é basicamente
certo, é claro, Malta, nós não temos isso em nosso
país para a capital Mab. Isso realmente vai nos
fazer retornar um nulo. Portanto, pode ser
muito valioso ver se ela contém uma chave antes de
realmente
tentar obtê-la foi ótimo. Receber um nulo
não é o fim do mundo. Claro que não acabou se você então, se você não espera que
isso seja nulo ou você não lidar com isso como
nulo possivelmente, então você pode ter alguns problemas. Bem, esses são alguns dos
erros que eu definitivamente queria mencionar aqui também. Então, essas seriam, bem, a soma das coleções. Claro, há muito mais, há muitos mais tipos de dados
que você poderia usar. Você sabe,
não há apenas mapas
e conjuntos da lista , há muito mais,
mas, por
enquanto, será suficiente para basicamente você
começar. Então, isso seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Se você o fizesse, eu
agradeceria muito uma revisão sua. Caso contrário, verei
você na próxima palestra. Então, sim.
24. (Java) de programação orientada a objeto explicada: Ou eu sou bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra, vamos falar sobre
programação orientada a objetos. E como você pode ver, estamos
realmente no PowerPoint. Neste caso.
Na verdade, vamos ter um pouco de uma
apresentação em PowerPoint aqui. Então,
vamos realmente começar com a ideia do que é essa programação
orientada a objetos? Bem, nesta palestra,
vamos passar por um pouco da
teoria e alguns
dos termos que você
precisará basicamente se
familiarizar para saber o que é continuando e
entendendo a linguagem ao conversar com
pessoas que conhecem programação e quando eu
continuo junto com isso, então especialmente
na parte
do Minecraft desta palestra ou neste curso, você está vou ver que
basicamente sempre usarei os termos que
são necessários para usar. Então classes, métodos, objetos, coisas assim, e você
deve saber quais são essas. Então, a primeira coisa que
podemos pensar é que tudo é um objeto. Ok, vamos armazenar
isso como uma informação, como uma informação
e podemos criar objetos
personalizados com funcionalidade
personalizada. Interessante, ok, e essas
seriam chamadas de aulas. Então, uma classe é, podemos criar um objeto a partir de
uma classe, ok, Interessante. E nas classes pode
herdar a funcionalidade, que seriam métodos,
variáveis de outras classes. E vamos ver dois exemplos
basicamente da Teoria disso. E então, em palestras posteriores, vamos dar uma olhada em alguns exemplos práticos também. Bem, em primeiro lugar, vamos
passar pelos termos muito
importantes aqui. Portanto, uma classe ou classes são tipos de dados personalizados ou
definidos pelo usuário. Mas agora chegamos
ao ponto em que você pode criar seus próprios tipos de dados. E essas classes, então, basicamente,
podem ser usadas como modelos para criar objetos. E essas classes incluem métodos e campos que
são chamados de membros. Vamos dar isso um
passo de cada vez. Portanto, uma classe é um tipo de dados personalizado ou definido pelo usuário
que é muito legal. E isso inclui
métodos e campos, sobre os quais vamos
falar aqui. Esses são membros e como eles podem ser usados para criar objetos. Agora, o que é um objeto? Um objeto nada mais é do que uma instância de uma
classe específica com dados definidos. Vamos ver um exemplo
disso em apenas um momento. Então, isso ficará muito mais claro. Mas antes de tudo, vamos
falar sobre os membros. Esses devem ser bastante
autoexplicativos ou muito mais fáceis do que os objetos. Portanto, os membros de uma classe são
um método ou um campo, e você também pode chamar funções de
métodos. Agora, pessoas que estão um
pouco mais em Java podem saber que isso não
é estritamente necessário. Portanto, as funções são um pouco
diferentes dos métodos. Para nossos propósitos,
está totalmente bom. Algumas pessoas ainda dizem funções, mesmo que existam métodos, vai ficar bem
e ninguém vai
ficar louco com isso. Não precisamos ser muito
pedantes nisso, certo? Portanto, métodos ou
funções
definem basicamente um
comportamento específico para um objeto, e métodos podem ser chamados
para objetos específicos. Então, um exemplo disso, que já
vimos é algo como o método de tamanho de
uma determinada lista. Claro, cada
lista
terá o mesmo método de tamanho. O que será retornado é específico para uma lista específica. Então, para esse objeto, mas essa é uma espécie de
ideia geral, campos ou atributos, como eles também são chamados de nossas
variáveis que são definidas na classe que armazenam alguns dados relacionados a essa classe. Então, por exemplo, se
tivéssemos uma classe de pessoa que pudesse
salvar uma string chamada name, isso também deveria fazer
sentido e deveria ser bastante autoexplicativo
como este exemplo aqui. E mais uma vez, tudo
isso, é claro,
também veremos ao vivo em ação, acredito que na próxima palestra
vamos
começar imediatamente a pular para
aulas e objetos. Portanto, não se preocupe lá. Então, vamos antes de
tudo dar uma
olhada na ideia de herdar coisas. Então isso, eu quero, antes de tudo, prefácio
com a ideia de que se você não conseguir isso completamente,
está absolutamente bom. herança é muito complicada. Eu só queria mencionar
isso para que você tenha
ouvido isso uma vez antes. Mas a ideia é
que possamos ter uma aula de animais, certo? E isso, na verdade,
basicamente herda toda a
sua funcionalidade e todas as
suas variáveis
até duas classes. Então, o animal de duas
patas e a classe de animais de quatro patas, e estes estão relacionados
da seguinte maneira. A classe animal é
a superclasse
do animal de duas
patas e a superclasse para o animal de
quatro patas. Enquanto o animal de quatro
patas e as classes de
animais de duas patas são subclasses da classe Animal. Você sempre pode
ter apenas uma superclasse,
mas, como você pode ver, você pode
ter várias subclasses. E então aqui podemos
ir mais longe e herdar ainda mais coisas
e adicionar mais funcionalidades. Então você meio que vai
de um muito genérico ou muito abstrato,
muito específico, certo? Animal é uma categoria muito
abstrata. Animal de duas pernas. Estamos começando a realmente
entrar em coisas mais específicas, humanas e uma avestruz. Agora somos muito, muito específicos. Então essa é uma ideia que você
pode pensar, certo? Então, vamos pensar em uma aula de
cães agora, certo? Então, temos uma classe
que é chamada de cachorro, e que pode ter
alguns atributos ou alguns são campos, certo? O que vai ser uma foto, um nome e uma idade. E vamos ficar como,
OK, tudo bem. Tudo bem, que há bom o suficiente para descrever
um cão em particular. E agora queremos
criar um novo cão. Então, queremos criar uma nova
instância da classe de cães. Queremos criar um novo objeto. Bem, vamos fazer isso. Lá nós o temos. Neste momento,
criamos um novo cão. Benji tinha sete anos, e aqui está uma foto muito
fofa dele. Isso não é legal? Sim, se eu mesmo disser isso, acho que esta é uma foto
muito fofa aqui, e este é um cão
em particular, certo? Nós realmente não
mudamos nada aqui. A única coisa que
fizemos é que
basicamente criamos um objeto. Quando voltamos aqui uma vez que cada cão tem uma foto, um nome e uma idade, e esta é uma instância específica ou um objeto particular
da classe de cães. Agora vamos apenas
criar outro. Por exemplo aqui, Gracie com cinco anos de idade e também tem uma foto muito fofa ali mesmo. Há, você pode ver que esses são dois objetos diferentes ou duas instâncias diferentes
da classe Dog. No entanto, ambos são cães. Portanto, esse é o tipo de separação
que eu quero passar quando
se trata de classes e objetos, que a classe é o modelo. E depois que você cria
um objeto específico, isso se torna uma
instância dessa classe. Então isso às vezes
pode ser um pouco estranho, especialmente para iniciantes. Mas não se preocupe de uma só vez. Na verdade, vamos começar a
programar com essa
estranha ou quando
realmente colocamos isso
em uso
prático será muito mais claro. Tenho certeza disso, certo? Qual já seria
o fim da palestra? Na verdade, a
coisa mais importante desta palestra, deixe-me voltar rapidamente aqui é esta aqui, certo? Portanto, esse slide é provavelmente
o mais importante. Na verdade,
os slides também estão disponíveis para você como um recurso para que você
possa baixá-lo também. Portanto, não se preocupe lá. Então você também tem acesso a
essas duas fotos fofas de cachorro. Então, isso realmente vai
ser uma grande vantagem, é claro. Caso contrário, isso seria para esta palestra
aqui, como eu disse, um pouco mais de
teoria e na próxima palestra que vamos colocar
tudo isso em prática. Então, será isso para
esta palestra aqui. Espero que você tenha achado útil
e os neurônios são os novos. E te vejo
na próxima palestra. Então, sim.
25. (Java) Classes e objetos Java: Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra
vamos basicamente
aplicar a teoria que
aprendemos da última vez. Na última palestra, vamos falar
sobre aulas e objetos. Então, antes de tudo, é claro, precisamos criar uma nova classe, uma classe personalizada agora. E para isso,
vamos entrar nessa janela do projeto bem
aqui dentro do nosso pacote. Então este é o pacote, certo? Net ajudou o Monroe foi o pacote que criamos
ou outro que criei. Espero que este seja o seu nome. Em seguida, no pacote names, clique com
o botão direito do mouse em nova classe Java. E então você vai
chamar isso de classe de cachorro, certificando-se de que
a classe aqui está selecionada e pressione Enter. Agora, este ano, essa janela só aparece para
mim porque eu tenho um repositório do GitHub
associado a este projeto. Se você não tem isso,
isso é absolutamente bom. Não se preocupe com isso. Então eu só queria
mencionar isso. E agora, em vez desses colchetes
encaracolados, oh, adicione membros a essa classe. Então, por exemplo, poderíamos
adicionar alguns campos, certo? Então podemos dizer
algo como adicionar, adicionar alguns campos, certo? E então vamos pensar apresentação
do PowerPoint
que vimos, certo? Tínhamos uma imagem de String pública. Estávamos
pensando em uma foto. Vamos apenas
dizer que uma string
que está totalmente bem
por enquanto, um nome de string pública. E então digamos que
um número inteiro público, que é a variável idade. Agora isso está tudo bem
por enquanto. Mais uma vez vamos
ignorar o público aqui. Só temos que definir
isso para público
mais uma vez em um tempo muito,
muito curto. Na verdade, vamos
ver os modificadores de acesso. Então, essa é literalmente a
próxima palestra também. E então vamos entender o que isso significa por
enquanto. Temos que configurá-lo para público. E o que também podemos fazer é, por exemplo, alguém
como um vazio público. E então vamos, por exemplo, que possamos fazer de campos
e também métodos, certo? Então este é um método
aqui, e isso é, é claro que isso era campos aqui. Então eu posso fazer algo
nesse método, que é apenas por uma
questão de argumento. Só vou dizer só
nisso, neste momento. Ok, então agora isso está tudo configurado. Agora, o que estamos fazendo
com a aula de cães dele, certo? Como estamos fazendo um
novo objeto com isso? Bem, podemos fazer o seguinte.
Você poderia dizer cachorro, certo? Logotipo. E agora isso pode, a princípio, podemos dizer algo
assim, por exemplo. Agora isso pode, pela primeira
vez, ser um pouco confuso. Talvez como esperar, mas
eu pensei em você meio que
deveria reconhecer isso, certo? Esta é apenas uma variável normal que declaramos
aqui, certo? É apenas um tipo de cachorro. Agora, como eu disse,
porque agora você está começando a usar classes personalizadas. Então, basicamente, tipos de dados personalizados. Isso pode ser um pouco estranho, mas isso é o mesmo que
se eu fosse fazer isso, certo? Realmente, quando pensamos
nisso, é apenas uma variável. Desta vez do tipo cão. E outra maneira que eu posso realmente inicializar isso é que posso dizer novo cão e você pode ver que ele realmente gera isso
automaticamente para nós. E agora eu
criei um novo cachorro. Portanto, essa é a ideia geral de como você pode
criar um novo objeto. Então você precisa usar
a nova palavra-chave, que já vimos
anteriormente algumas vezes. Por exemplo, com o scanner, tivemos que criar um novo scanner. E agora isso também faz sentido. Scanner é apenas
outro objeto ou outra classe que
podemos instanciar um novo objeto ou uma nova instância de uma polegada
pode basicamente usá-lo. Essa é uma espécie de ideia. Agora, a verdadeira questão
é que tudo bem, como eu tenho esse cachorro aqui, mas como eu os campos, o que são, o que eles são agora? Bem, vamos apenas experimentá-lo. Escreva sistema, linha de impressão, Togo, nome do ponto, por exemplo. Vamos ver, bem, o que esse cachorro foi nomeado como um cachorro? Não, na verdade, o
nome é nulo porque não
atribuímos
nenhum desses valores. Portanto, eles são todos nulos
porque aqui usamos, à direita, usamos o construtor
padrão padrão. Então, o que isso significa? Bem, o construtor
é outra parte de uma classe que
é muito importante, e isso
não é classificado como membro neste caso,
isso é outra coisa. Então, o construtor,
como o nome sugere, é algo que constrói um objeto desse modelo, dessa classe, certo? Mas o construtor padrão, cada classe que você cria
tem algo assim. Então, ele é escrito assim
com um modificador de acesso. E então o nome da classe imediatamente seguido por parênteses, que não têm nada neles. E, basicamente,
quase como um método normal, apenas sem um tipo de retorno ou melhor, o tipo de retorno
é o mesmo que o nome. Você também pode
pensar nisso assim. E este ano é o construtor
padrão. E isso é o que
estamos usando para este médico aqui, certo? Portanto, este é o
construtor padrão agora. E o verdadeiro problema aqui é
claro que você pode ver que
nada acontece nele. Portanto, nenhuma dessas coisas tem
nenhum valor atribuído a ela. No entanto, também podemos criar
nossos próprios construtores. Agora, podemos criar
um construtor personalizado. Então, por exemplo,
cão público,
string, imagem, nome da string e idade, escreva algo assim e
então podemos atribuí-los. Portanto, essa imagem é igual a imagem, this.name é igual a nome, e
essa idade do ponto é igual a idade. E você verá,
de repente, tudo ainda
funciona totalmente bem. Agora, a primeira coisa
que você pode perguntar, o que é isso, essa palavra-chave? Bem, isso se refere ao objeto
que estamos criando taxa. Então, por exemplo, você pode pensar nisso quando
chamamos esse método Wolf. Se chamássemos isso, teríamos que chamar isso
em um objeto específico. Então, toda vez que eu uso isso
dentro desse método, esse objeto específico está
basicamente sendo referido. Então você pode
pensar nisso assim. Da mesma forma com o construtor. Quando eu uso isso, esse
objeto específico que estamos criando
agora está sendo referido porque o nome do parâmetro aqui tem
o mesmo nome que o campo. Eles não precisam necessariamente, mas neste caso eles têm. Então, queremos usar essa
ferramenta muito especificar, ei, este é o campo
e como parâmetro. E agora o que eu posso
fazer é em vez de criar um com o construtor
padrão aqui, eu posso realmente fazer algo
como, por exemplo, cachorro e Benji, digamos que é
igual a novo cão, certo? E então você pode ver se
eu espero um segundo aqui, basicamente
posso dar
uma olhada nisso. Aí está ele. Então, agora, na verdade, recebemos
uma sugestão aqui, sem parâmetros ou string, string de
imagem, nome,
string ou int age. Então, na verdade, recebemos
a sugestão aqui. Digamos Benji dot PNG, certo? Digamos Benji pelo nome
e depois sete para a idade. E você pode ver que isso é
praticamente o mesmo que apenas uma chamada de método
normal, mas neste caso ele realmente
cria um novo objeto. E então podemos fazer a linha de impressão
do sistema. Agora o nome do ponto Benji, e então digamos Benji ponto h. E agora isso
vai produzir Benji e um sete
como você pode ver. Então, isso é
realmente muito legal. Há mais uma coisa. Vamos apenas dizer, por uma
questão de discussão aqui, quando temos
muitos campos, certo? Às vezes, pode ser um
pouco tedioso colocar todos eles aqui
no construtor. Então, o que podemos fazer é
também podemos clicar com o botão direito do mouse em
gerar construtor. Então você pode selecionar todos
os campos que
deseja inicializar, você veria pelo construtor
e dizemos, ok, e isso gera
exatamente a mesma coisa que fizemos anteriormente. Eu queria mencionar
isso porque às vezes isso pode ser muito útil, certo? Portanto, há
muitas coisas aqui que podem ser geradas
automaticamente. Portanto, tenha isso em mente também. Mas também vamos
deixar outro escuro. Então, só para ilustrar isso, então o cachorro Gracie é igual
a um novo cão, certo? Este é o
ponto gorduroso PNG, Gracie, e acredito que Gracie tinha
cinco ou cinco é bom. Agora, vamos realmente
produzir isso também. Então eu estou selecionando este Controle C, Controle V para colá-lo e,
em seguida, alterando a variável aqui e
tipo de Benji para Gracie. E isso, claro, agora também funciona e
terá valores diferentes. Então, mais uma vez, esses dois
são invasões de cães, mas são dois cães
diferentes. Portanto, existem dois objetos
diferentes. E espero que a teoria
da última palestra muito fácil para este
exemplo ilustrativo aqui, uma vez que estamos realmente usando-a, espero
que fique muito claro. E também faremos
é mudar esse
lobo que você está realmente para esse nome de ponto, apenas waft. Então o que podemos ver também é que quando chamamos esse método, mais
uma vez, esse
método em particular, nós realmente temos que chamar
um objeto específico, certo? Então, na verdade, temos que
salvar Benji dot, WAF ou ponto atrevido. Todos devem fazer sentido. E agora o que vai
acontecer é que não será o mesmo para cada
um deles, certo? Então Benji acabou de se mudar
ou Gracie apenas Swift. Então, isso mais uma vez se refere
ao objeto real
em que isso está sendo chamado por assim dizer. Então essa é a ideia. E então uma última
coisa que pode ser um pouco diferente
ou um pouco estranha. É como, bem, espere um segundo. Benji dot age, certo? Certo. Posso apenas gostar de atribuir isso a alguma coisa? Sim, eu posso. Bem, isso é muito
interessante, certo? De repente, certo? Benji se tornou 10
anos e você pode ser como, Espere, isso não é, isso não
faz nenhum sentido, certo? São apenas sete eles. Isso não está certo, é sim, isso agora foi salvo. E isso é algo que
vamos ver
a próxima palestra quando
se trata de modificadores de acesso. Porque tudo isso ser público basicamente
significa que, bem, você pode alterar isso e acessá-lo de
qualquer lugar no código. E isso às vezes
não é o que queremos. Às vezes você quer restringir o acesso a certos campos, variáveis, métodos, todo
esse jazz basicamente. E como eu disse, vamos dar uma olhada
nisso na próxima palestra. No entanto, isso seria
para esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. E te vejo
na próxima palestra. Então, sim.
26. (Java) modificadores de acesso (Java) (de acesso: Tudo bem, bem-vindo de volta
à introdução do Java aqui para a manhã do Minecraft
e nesta palestra, vamos analisar
modificadores de acesso. Então você precisará de todo o
código da última palestra. Não se preocupe, é claro, isso está disponível para
você como um recurso. Então, definitivamente,
dê uma olhada nisso e então, bem, vamos apenas pular direto para dentro. Então a ideia era que, bem, tínhamos todos os nossos campos
aqui como público, certo? Então, tudo aqui era público. E estávamos pensando,
bem, ok, então como vamos usar isso? Ou como poderemos não
tornar alguns campos mutáveis ou como modificáveis
aqui fora desta classe. Bem, vamos
passar por todos os modificadores de
acesso. Portanto, há público, há protegido, e há privado. Depois, há mais duas coisas
que também veremos quais são estáticas e
finais, bem, não são realmente modificadores de
acesso, mas também são um tipo de
modificadores que você pode colocar na frente dos campos e, ou métodos. Então, quando se trata de tornar
o nome, por exemplo, protegido aqui, isso
realmente não fará nada. Agora, a razão pela qual não
faz nada é que um campo protegido ou um método protegido pode ser
chamado no mesmo pacote. E porque o cão e a classe principal ou
no mesmo pacote, ainda
podemos nos referir a este campo aqui
na palavra-chave protegida também funciona ou classes
que se estendem a partir disso. Então, basicamente, os ácidos
que herdam da classe dog agora também
seriam capazes de
usar a variável name. E a variável idade? Bem, vamos fazer o seguinte. Vamos tornar isso
privado. E, de repente, podemos ver problemas
relacionados, certo? Tudo está ficando louco. Todos estão
surtando porque, de repente, podemos
realmente acessar isso porque uma variável privada e só ser acessada
na mesma classe, o que
significa que não podemos acessar isso
diretamente. No entanto, podemos fazer
algo que
será um método, retorna esse valor. Então isso é o que se
chama guitarra. E o que podemos fazer é que
podemos clicar com o botão direito Gerar e você
pode ver que podemos realmente gerar
getters e setters. Setters são praticamente a mesma coisa em que você
define a taxa variável. Então, onde você pode
basicamente definir isso e um getter é muito
a coisa em que você obtém isso. Então eu posso selecionar a
variável idade e dizer, ok, e ver que ela gera
um método para nós inteiro
público porque é claro que esse é o
tipo de retorno aqui, obter idade. Então, essa é a maneira
que você
expressaria isso ou o
nome disso
geralmente era get e
, em seguida, apenas o nome da variável ou do campo. E então retornamos a
idade nesse método. E então, em vez de
chamá-lo diretamente, podemos dizer ter idade na idade, idade. E agora aqui está a coisa muito
interessante. Claro que isso não funciona. Não podemos atribuir
algo a um método. Portanto, isso
não funciona, certo? Então podemos dizer que não funciona. Portanto, não podemos atribuir um novo
valor a essa variável de idade. Então essa é realmente a coisa legal. E então também podemos ter uma palavra-chave
estática e final. Certo, o que é isso? Bem, a estática vai ser muito interessante. Então, quando eu tiver um int estático
público, e vou
chamar isso de cão para multiplicador de ouvido humano. Multiplicador, que é igual a sete
se não me engano aqui. E isso é o que podemos
pensar disso assim. Todo cão tem que ter
um campo específico para eles, que é esse multiplicador. Quero dizer, se somos realmente honestos, não realmente, certo, quando
pensamos nisso. O médico aqui, dr. multiplicador do ano humano realmente é algo que funciona
para todos os cães. Exatamente. É por isso que é estático. É variável estática ou um
método estático e, na verdade
, é chamado apenas de
classe e não requer que objetos específicos sejam criados. Então o que eu posso fazer é, por exemplo, em vez de
chamar Benji que ELE, eu posso dizer cão, ponto, ponto, humano, médico, multiplicador do
ano humano. Você pode ver que eu
chamo isso na classe real
e não no objeto. Então isso é uma coisa muito
interessante. E isso pode estar quebrando
seu cérebro um pouco aqui, porque antes de tudo, entrar na estática é um
pouco estranho e parece muito contra-intuitivo
à primeira vista, talvez, mas não se preocupe. Quando estamos realmente usando
isso, vai ficar tudo bem. E a essência geral
é que, você sabe, se algo estático
geralmente é algo que é o mesmo para todos
os objetos, certo? Porque mais uma vez,
o Dr.
multiplicador do ano humano não
muda de cão para cão. Agora, vamos ignorar o
fato de que talvez isso mude se houver
raças diferentes e coisas assim. Vamos ignorar isso. É só um exemplo
aqui, claro, certo? E então a questão também
é, bem, esperar um segundo. Isso realmente não
precisa mudá-lo, porque agora temos o mesmo problema mais
uma vez avalie para que cães, seu multiplicador e,
de repente, seja igual a dez. Podemos simplesmente mudar isso
e é como se isso não fosse realmente inteligente, certo? Isso não precisa acontecer. Bem, felizmente, há a palavra-chave
final também. E
isso faz com que se eu realmente pressionar Control Z para voltar, você pode ver que não pode atribuir um valor a
uma variável final. Como quando é uma variável
final, o valor nunca poderá ser alterado depois de ter
sido atribuído. Isso também é muito interessante. No entanto, há, é claro, uma diferença distinta entre uma taxa
variável
privada e uma final. Porque uma variável final poderíamos, na teoria,
mudar, certo? Poderíamos dizer algo
como, por exemplo, vamos apenas tornar um
público e público vazio. Aniversário público vazio, certo? Para um cão, onde
dizemos idade mais mais. Mas isso ainda funciona
mesmo sendo privado, podemos alterar essa variável. Nunca poderíamos alterar essa
variável quando for final. Então essa é a diferença lá, o que é esperançosamente compreensível
nesse sentido, certo? Então, vamos dar outra olhada no
seguinte, certo? Então também podemos dizer
algo como, Bem, quero dizer, vamos apenas adicionar um, vamos
adicionar mais uma coisa, algo como um int público. Então, GetAge em anos humanos, certo? Onde podemos usar o multiplicador
aqui que vamos
retornar a variável idade
vezes o médico aqui, médico humano,
multiplicador do ano humano ali mesmo. Agora podemos simplesmente chamar isso geralmente você pode, claro,
também dizer cão pontilhar isso. Não temos que fazer isso porque estamos dentro
da aula de cães, então podemos simplesmente
chamá-lo sem isso. Isso é muita preferência
pessoal, apenas se
você quer ou não fazer isso. Mas o que podemos
dizer, por exemplo, é que podemos dizer Benji
dot ter idade em anos humanos, e isso
será então, o que é isso? 49? Sim, 49. Lá vai você. Tão fácil o suficiente. Essa é uma espécie de essência geral. Temos público, protegido e privado para os modificadores de
acesso. E depois também há
estática e final. E definitivamente
seremos, vamos encontrar todos
aqueles em palestras futuras, especialmente quando
entrarmos em modelagem de microondas, isso será
muito relevante aqui, especialmente algo
como a palavra-chave final e a palavra-chave estática, essas serão muito usadas. Mais uma vez, se eles não estão um
pouco claros,
tudo bem. Não se preocupe. Quando você começar a
trabalhar com eles, ele ficará muito mais claro. E mais uma vez,
posso apenas aconselhá-lo a experimentar
um monte de coisas. Apenas acenda a inteligência. Faça um monte de aulas e experimente
um monte de coisas. Faça algumas aulas, faça alguns campos, um
monte de coisas. Você não pode quebrar
nada. Na verdade, não. Portanto, é apenas uma questão de estar aberto a
experimentar basicamente. Então esse é um
conselho que eu posso te dar. Mas, de outra forma, isso seria para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
27. (Java) Insuficiência e Inheritance (Java) (a de (Java) (de (a de que de de: Tudo bem, bem-vindo de volta
à introdução do Java aqui para modelagem do Minecraft. E nesta palestra
vamos falar sobre herança
e polimorfismo. Bem, em primeiro lugar,
um polimorfismo e herança para palavras muito
grandes, certo? Mas, no geral, eles
são conceitos são bastante simples, especialmente o polimorfismo
não é tão louco de um conceito na verdade? Agora, outra isenção de responsabilidade que
eu quero dizer logo fora do portão é que
, como este é um exemplo, o tipo real de conceito pode não ser
100% transparente, o que é absolutamente bom. A propósito, isso é
algo que mais uma vez, tem que ser construído apenas experimentando um
monte de coisas, certo? Normalmente tenho o
mesmo aqui. Esqueci. Eu vejo. Eu me lembro. Eu faço. Eu entendo. Então sempre tem que haver alguma coisa que acompanhe isso. Seja qual for o caso. Digamos que, por uma questão de
argumento de que alguém
diz: Quer saber, eu realmente quero uma aula de
gatos também porque eu não sou uma
pessoa de cachorro, tudo bem. Está tudo bem. Bem, vamos adicionar uma
aula de gato aqui também. Então, uma nova classe, gato. E lá vai você. Agora, o que você
perceberá rapidamente é que, bem, como sejamos
honestos, o gato renal também
deve ter uma foto
, um nome e uma idade. E você pode ser como,
bem, quero dizer, vamos apenas copiar esses campos. E então você pode ser como,
bem, eu também preciso ter idade que o getter
e depois o lobo, talvez o bebê e Mimi
Chao e você chegue a um ponto em que você está
copiando sobre um monte de código e geralmente
abar muito código é um sinal de que você
pode otimizar algo. Agora, a otimização prematura é o caminho para o inferno.
Eu entendo isso. No entanto, às vezes isso só faz muito sentido em que você tem como
isso copiado, copiado,
copiado, e é como, vamos apenas fazer um método ou uma classe fora dele
ou outra coisa. E essa
outra coisa realmente será uma superclasse para o gato e um cachorro
sendo a classe de animais. Então, vamos fazer uma
nova classe chamada animal, e isso agora
vai guardar isso. Então, vou
cortar isso com o Control X e o Control V para
colar isso aqui. E agora, de repente, o que podemos fazer é estender a classe de cães
pela classe Animal, o que
significa que,
vamos fazer certo? Então, vamos herdar
tudo do animal aqui. Vamos dizer que
estende animal, e isso agora é herança. Então, a classe de cães agora é
a subclasse do animal, e o animal agora é
a superclasse do cão, o que significa que tudo
aqui foi herdado. Agora eu posso realmente excluir isso
literalmente. A única coisa que
vai ficar vermelha será a idade, porque eu realmente tenho que tornar isso protegido
aqui
para que ele possa ser
acessado na subclasse. Mas nós vimos isso
na última palestra em que eu disse isso quando é
uma variável protegida, e então você pode
realmente acessá-la da subclasse também. Então essa é uma espécie de ideia. Vamos nos
livrar de alguns
desses comentários aqui também. Também podemos nos livrar
do construtor padrão que também não é
mais necessário. Então agora temos essa classe de
animais, certo? E isso é muito legal. Agora você pode ver que b-a, esta classe Dog, tudo
aqui está sendo definido. No entanto, queremos
garantir que todos,
que todas as classes que realmente herdam da
classe Animal também funcionem. Então, vamos fazer
um novo construtor também. Então clique com o botão direito do mouse,
gere um instrutor, certificando-se de que
tudo aqui esteja selecionado e pressione OK. E então seremos
imediatamente
recebidos com uma
flecha aqui. Porque se passarmos o mouse sobre isso, você pode ver que
não há construtor padrão disponível em um animal net
com zoo. O que isso significa? Bem, quando você realmente adiciona
um construtor específico aqui, esse não é o construtor
padrão. O construtor padrão
não funciona mais. Então, uma vez que você tenha um
construtor ou
seja, não é o construtor padrão, você terá
que adicioná-lo manualmente novamente. Então eu poderia, por exemplo, dizer animal público, certo, sem nada nele, certo? Então, algo assim. No entanto, é
claro que isso não acontece. Agora, você sabe, que mais uma vez, nós
realmente não queremos isso. Portanto, isso será
excluído e , em seguida, o construtor padrão
não funciona mais. E agora o que
temos que fazer aqui? Bem, o que podemos fazer é que
podemos chamar o super-herói, e isso basicamente
chama o construtor. Então, podemos realmente
colocar em PI como você pode ver, na
verdade, apenas para dizer, vamos apenas pegar todos os
parâmetros aqui e colocá-los em ano. E agora esse super agora está chamando o
construtor Animal aqui. Então, isso é realmente
perfeito neste caso. Então, outra coisa,
talvez por exemplo, tanto a idade get quanto
o aniversário
também poderia estar na
aula de animais, por exemplo. Isso também
funcionaria totalmente bem. E o resto aqui está
realmente totalmente bem. Vou me ajustar, fazer
isso um pouco diferente. Então eu geralmente quero
os construtores no topo da classe, certo? Então, primeiro vêm os campos e depois os construtores e depois todos os métodos e
coisas assim. Embora a ordem, é
claro, seja algo que depende completamente de você, mas esta geralmente é
a convenção 0. Agora, o que aconteceria se
eu agora dissesse, bem, o gato agora também estende
a classe de animais. Vamos, vamos
receber um erro aqui, que é que não há
construtor padrão disponível em animal. E então temos essa
solução possível, que é o
construtor de criação combinando super, que é algo que
vamos ver muitas vezes. Porque se você clicar nisso, você simplesmente receberá um novo
construtor aqui com todos
os parâmetros necessários para chamar o construtor
de sua superclasse. E isso é praticamente isso. Isso é muito legal. E agora podemos realmente
criar uma nova classe. Você pode ver tudo
aqui funciona. Então podemos dizer que bigodes de gato
é novo gato, certo? Tão novo gato aqui. E isso é, por exemplo, então bigodes ponto PNG. E então o nome vai
ser bigodes, certo? E então talvez, talvez houvesse 12 anos ou
algo assim. E então podemos simplesmente
chamar, por exemplo, bigodes ponto e você pode ver que eu
posso chamar tudo para ganhar idade. Agora eu realmente tenho acesso
à variável idade aqui. Este é simplesmente o caso porque estamos
no mesmo pacote. Isso geralmente
não deve ser o caso. Eu só queria
mencionar isso porque geralmente quando você realmente está estendendo uma
classe em particular é muito improvável que você esteja
no mesmo pacote. Então só queria mencionar isso. E isso é, bem, eu não diria uma limitação, é apenas uma realidade basicamente. Mas agora a verdadeira
questão, comunicando, mas agora o que é tão
interessante em ter isso? Bem, vamos pensar
sobre isso, certo? Então, temos o
método lobo aqui, certo? Vamos apenas excluir
isso ou, na verdade vamos ser uma taxa ainda mais inteligente. Vamos apenas copiar isso
ou recortá-lo, certo? E depois adicione isso ao animal. Agora, primeiro de tudo, você
vai dizer, espere um segundo, nem todos os animais, Wolf está certo.
Sim, isso é justo o suficiente. Então, vamos chamar
isso faz som. E então podemos dizer esse nome, apenas, digamos que
acabou de fazer um som, mas não podemos fazer isso. E outra coisa realmente
interessante é que isso é definir
a classe de animais. No entanto, ainda posso
dizer algo como bigodes, som adâmico, certo? Então, como bigodes é um
gato e um gato é um animal, ainda
posso chamar todos os métodos
públicos aqui. E se eu chamar isso, você pode ver bigodes apenas fazendo um som. Então isso é muito legal. Mas agora vamos
sobrecarregar isso porque enquanto cada
animal faz um som, um gato faz um
som diferente de um cachorro, certo? Então, o que
podemos fazer é, na verdade, substituir a implementação desse
método nas subclasses. Então isso é bastante frequente, legal. Mas o que podemos fazer é começar a digitar o nome real do
método como você pode ver, ou podemos escrever uma
substituição, certo? Podemos começar a escrever isso. E então você pode ver todos os métodos possíveis que
podemos substituir. Vamos, é claro,
escolher o método de som de mixagem aqui e ele receberá
essa anotação adicionada. Isso não é estritamente
necessário, no entanto, é muito valioso
para você se você tiver isso e eu definitivamente
recomendo mantê-lo, porque se você passar
pelas aulas reais, você pode ver muito claramente, Certo, então isso foi substituído de uma de suas superclasses. Então isso é muito importante. Então, na verdade, vou
pegar este. Então, eu realmente vou
pegar isso e apenas modifiquei um pouquinho, certo? Então eu vou dizer
isso, só eu fora. Digamos que vou fazer o mesmo. Copie isso para o cachorro aqui. E eu vou dizer esse nome, apenas devagar, temos algo
diferente aqui. E o que você
verá se eu realmente chamar, por exemplo Benji
dot fazer som. E eu também vou para
Gracie, não faça som. O que acontecerá agora? Bem, muito interessante o suficiente. Miau, woof, woof. Então, como você pode ver, os métodos substituídos agora
estão sendo chamados em vez daquele
pela superclasse real. Então isso é muito frequente, legal. E agora isso é uma espécie de
ideia de herança, certo? Podemos herdar ambos os
métodos e campos Europa só faz com que
seja tão antes de
tudo, tudo é um pouco
mais agradável separado, e então também não
temos código duplicado. Agora, a verdadeira questão é:
o que é polimorfismo? Polimorfismo é uma palavra
grande para um conceito
muito, muito fácil de entender. Na verdade, no conceito muito fácil de
entender é que um cão é simultaneamente um cão e um animal
deve fazer sentido, certo? Então você tem uma aula de cachorro é um cão ou um objeto do tipo? O cão é tanto o cão
quanto o animal são suficientes. Certo. O que isso significa? Bem, eu posso salvar isso
em um animal, certo? Então eu posso salvar animais, animal
é igual a um novo cão. Vamos salvar Jenny dot PNG. Jenny, talvez a Guiné seja como 15, toda escura, mas tudo bem. E agora o que
aconteceria se eu
fizesse isso em um ponto mole fazer som. O que vai acontecer agora? Bem, quero dizer, é um animal. Então, obviamente, deveria dizer que Jenny acabou de fazer um som, certo? Porque essa é a coisa
mais lógica. Espere um segundo no fundo,
é um cachorro. Exatamente. Então ele se mudou. Porque apesar de
salvarmos isso em um animal, polimorfismo faz com que o objeto do cão possa
assumir várias formas, ou qualquer objeto realmente possa
assumir várias formas. Isso é o que basicamente significa
polimorfismo. Vários fóruns em uma tradução muito
solta, digamos. E a grande coisa
que eu também posso fazer é fazer uma
lista de animais, por
exemplo, raiva, animais legais. E posso fazer disso
uma nova ArrayList apenas por uma questão de discussão.
Vamos importar isso. E então eu posso
dizer animais, não adicionar. E eu não preciso apenas adicionar animais porque é
claro que Benji é um cachorro, mas o cão também é um animal. E então também posso adicionar Gracie, e então
também posso adicionar bigodes. Então, como você pode ver, mesmo que todos
sejam salvos
como animais, certo? Se eu quiser
recuperá-los, animais, ponto pegue um, por
exemplo, faça som. Então, isso faz
deles o trabalho deles, certo? E o método get aqui
leva você de volta um animal. Mas, mais uma vez, vimos que chamar um método sobre isso
realmente causou, digamos, o
método mais específico que ele pode. Então, mesmo que isso esteja
sendo salvo como um animal, Gracie está sendo salvo
como animal aqui, o som do microfone fará com que
Gracie se mova. Então isso é muito legal. Mais uma vez, se você não
vir claramente o aplicativo para
isso, tudo bem. Esta é uma introdução
justa muito abstrata para isso, é claro. No entanto, isso seria,
por enquanto, para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
28. (Java) Interfaces e cursos abstratos (Java) (de atama): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra
vamos dar
uma olhada em interfaces
e aulas abstratas. Então, na verdade, vamos começar com a aula abstrata primeiro porque esse é um exemplo muito
ilustrativo, na verdade. Então, o que podemos
pensar é o seguinte. O que é um cachorro? Bem, quero dizer, você
já viu que viu um cachorro antes? Sim, claro. Quer dizer, seja como uma foto ou
em algum lugar do mundo você pode
ter visto um cachorro. Você já viu um animal antes? Agora você pode dizer que é bem, quero dizer, eu vi um cachorro
antes dele, mas não, não. Você já viu um animal antes? E você vai se
encontrar e se fundir, certo? Porque é como, o que é
um animal no momento, o que podemos fazer é que
podemos dizer animal, digamos que um é igual
a um novo animal, certo? Com, por exemplo, exatamente como x, p e g x e isso como 10 anos ou
algo assim. E então você pode ser como, como
é um animal? O que isso representa
realmente taxa em animal é um conceito muito, muito
abstrato. E aulas abstratas, certo? Veja a congruência lá, certo? Então, na verdade, não devemos
ser capazes de criar novos objetos
da classe Animal porque o que realmente
é um animal? As coisas podem ser classificadas
como um animal, mas o animal objeto
não existe, certo? Então o que vamos fazer
é fazer uma
aula abstrata pública com isso. E você imediatamente
vai ver que temos um problema relacionado, o
que, claro, é
exatamente esse aqui, porque não podemos criar um
novo animal se for abstrato, você pode ver que animal é abstrato, não pode ser instanciado,
o que significa que não podemos criar objetos na classe
abstrata
no gato e no cachorro. Literalmente, nada
mudou porque, claro, o animal ainda está em
tudo aqui, então funciona. Agora, o que também podemos fazer e
isso é muito legal para uma aula abstrata é que podemos tornar certos métodos abstratos. Por exemplo, o método de
som do microfone aqui. Então, podemos basicamente
apenas, vamos excluir isso. E então o que
vai acontecer é que podemos dizer público, abstrato, vazio,
fazer som, certo? E agora olhe para
isso, acabamos de terminar. Então, ainda temos que ter um ano de assinatura de método
normal. No entanto, a
implementação real é deixada para as subclasses. E se
não substituíssemos isso, o que você pode ver é
também acharia que cão de
classe deve
ter declarado abstrato. Então, ou isso
também tem que ser uma classe abstrata ou temos que implementar
os métodos abstratos do animal que podem passar
o
mouse sobre isso nos métodos de implementação e , em seguida, isso também será
adicionado. Então eu vou
voltar com o Control Z aqui e depois
tudo funciona bem. Então essa é uma espécie de ideia
de uma aula abstrata. E uma interface é amina, algo muito
relacionado a isso também. Então, o que
vamos fazer é apenas adicionar uma interface,
então uma nova classe aqui, e então podemos
selecionar a interface. Vamos chamar isso de interface de
pétala
e a interface comestível IP. Você está em interfaces. Também definimos assinaturas de
um método. Então vazio, animal de estimação Por exemplo, taxas de símbolos como
este, e é isso. Portanto, nenhum
modificador de acesso, apenas isso. E se essa interface for
implementada agora, por exemplo, nos implementos certos do gato, temos o direito,
então eu palatável do que o que você verá é um erro muito
semelhante ao anterior. Implemente métodos, o
método e o ego. E agora eu tenho que
ter algum tipo de implementação
nesta classe de gatos. Por que temos
interfaces e classes, você sabe, eu não poderia
simplesmente fazer outra aula? Animal comestível e
coisas assim? Sim, claro,
isso também funciona. Mas a limitação
aqui é que você sempre
pode se estender apenas
de uma classe. No entanto, você não pode implementar várias interfaces diferentes. Então essa é realmente a coisa
interessante aqui. E então também a interface é
basicamente o que
o nome sugere. É um permite que você faça interface com algo
de uma maneira particular. Então, quando algo
implementa uma interface, você meio que tem um, quero dizer, você poderia pensar nisso
como um contrato não escrito que tudo dentro
dessa interface é definitivamente tem um
certo implementação. Então, por exemplo, eu poderia dizer
algo como, você sabe, apenas esse nome era animal de estimação,
algo assim, certo? E então eu posso simplesmente copiar isso apenas por
uma questão de argumento. Eu também vou implementar
isso no cachorro aqui. Então eu pedal e vou acrescentar isso
e então vamos dizer algo como
foi arranhado e
arranhado atrás das
orelhas, por exemplo, certo? E agora o que posso fazer é
em vez de, por exemplo, fazer uma lista de
animais, agora eu poderia, por exemplo, também fazer uma
lista de iptable, certo? Então agora temos esses animais de estimação
avaliam nova ArrayList disso, e podemos adicioná-los
também, certo? Adicionar pontos de animais de estimação. E então vamos apenas dizer Benji, e então vamos apenas
dizer bigodes, certo? E agora podemos fazer um
zoológico se quisermos. Isso é muito legal. E isso não importa. Mais uma vez, com polimorfismo, não
importa se
eles são salvos como eu pétalas. Mais uma vez, sua implementação
real real está sendo chamada Quando
deveríamos ligar, por
exemplo, Pets dot obter um. Então o que
aconteceria é que,
claro , a
implementação real está sendo chamada de bigodes foi
remendada em vez de bigodes foram arranhados
atrás das orelhas. Essa é uma espécie de ideia
geral aqui. Mais uma vez, interage classes
abstratas. Uma espécie de na mesma veia que a herança e o
polimorfismo em geral. Onde pode ser um pouco estranho, porque nesses exemplos, às vezes é difícil
realmente passar pela ideia. Mais uma vez,
experimentar um monte de coisas realmente pode ajudar ou
seguir as tarefas, também um esforço que vale a pena. Mas, de outra forma, por
enquanto, isso vai ser para
esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. E te vejo na
próxima palestra. Então, sim.
29. TARde 3: Jogo com trivia com cursos: Tudo bem, Bem-vindo
à terceira atribuição aqui para a introdução do Java. E esta é, na verdade, uma tarefa bastante
simples. Como você pode ver, não
é tão longo. Mais uma vez,
o tempo que leva e faz isso
pode ser redondo cerca uma hora ou mais, como geralmente uma
estimativa muito conservadora também. Então, há um pouco
de espaço de manobra que eles são, você pode ser capaz de
fazê-lo em 30 minutos, certo? Não se preocupe nada. Mas, por enquanto, vamos passar por aqui. Então jogo trivia com
classes e objetos. Então, mais uma vez, queríamos o
mesmo jogo de trivia que temos feito nas
duas últimas atribuições também. Eu basicamente quero que você modifique os jogos de trivia que ele
usa as aulas também. Agora, isso pode ser de qualquer
forma, forma ou forma que
possa ser o caso. Pense em
como você pode fazer algumas aulas personalizadas que, você sabe, salva as respostas e as perguntas
podem estar juntas. Talvez você possa usar uma lista,
algo assim. Depende realmente de você como
você quer estruturar isso. Mas pense em
como você pode tornar isso mais fácil com
classes e objetos
e, em seguida, tente isso. É claro que, mais uma vez,
a solução estará disponível para você
assim que você terminar, eu sugiro realmente pegar uma rachadura e
realmente experimentar isso. E acho que
te verei na solução.
30. SOLUÇÃO 3: jogo trivia com cursos com: Tudo bem, bem-vindo
à solução para a terceira
tarefa aqui. E bem, quero dizer, acho que vamos dar uma olhada. Você pode ver que eu tenho
apenas duas classes, uma aula de jogo de trivia
e uma aula de trivia. E a
classe de jogo trivia basicamente contém toda a
lógica e o loop do jogo. E a classe trivia contém as perguntas e as respostas. Então, vamos dar uma
olhada na classe trivial. Primeiro de tudo, deixe-me
ampliar um pouco aqui para que possamos ver
que tenho uma pergunta de string, uma resposta de string e apenas um construtor que passa em ambas as
variáveis de encolhimento aqui. E então eu tenho um
monte de métodos aqui, certo é a resposta
correta basicamente coloca um booleano e também garante que tudo esteja em letras minúsculas. Portanto, a entrada é realmente
colocada em minúsculas, no entanto, que você pode basicamente colocar letras
maiúsculas e ainda conta como a resposta
correta. Aqui temos a
pergunta impressa, a resposta de impressão. Também validamos a resposta
que, em seguida,
traz uma resposta correta, ou essa foi uma
resposta incorreta também. E esta é
praticamente a classe trivia. Mais uma vez, se isso
não se
parecer exatamente com o seu,
tudo bem. Este é apenas um exemplo
de como fazer isso. E, em seguida,
o mesmo com a taxa de jogo trivia. Temos uma lista de curiosidades aqui. Então essas são todas
as perguntas basicamente que estão sendo
preenchidas aqui. Então, isso é chamado, desculpe, no método de início do
jogo, certo? Então esta é a primeira
coisa que acontece, lista de curiosidades
preenchidas. E este é o donut
aqui , onde acabamos de ter
um novo ArrayList e , em seguida, adicionamos um monte daqueles triviais ali mesmo a
esta lista real aqui. E isso é muito legal
porque isso agora também pode ser feito através de uma leitura, de um arquivo ou, você sabe, baixando
coisas da internet. Portanto, esse método aqui pode ser
facilmente substituído por outra coisa. E esse é realmente
o poder quando você faz isso separadamente
nessas classes, logo antes de termos essas variáveis de string
individuais, não
havia como
mudar isso com muita facilidade. Nesse caso, poderíamos mudar esse banco de dados de madeira para isso. Você poderia colocar, como eu disse,
algo na internet. Você poderia fazer quase qualquer coisa, lê-lo de um arquivo. E isso é realmente o que você quer fazer com as aulas. Você quer tornar esse tipo de genérico no sentido de que você pode facilmente adicionar e
subtrair coisas dele. Normalmente, adicione, claro, certo? E depois há um monte de outras coisas aqui também, certo? Então, o loop do jogo é a
principal coisa em que temos esse
loop while infinito
aqui, exatamente onde passamos por
cada uma das perguntas,
validando as respostas obtendo a entrada
do usuário e,
em seguida, a pontuação se a resposta
estiver realmente correta. E então vamos apenas imprimir a pontuação após cada uma
das perguntas. Então, no final aqui, perguntamos Ei, devemos abortar o jogo? E se o usuário disser que sim, acabamos de
sair dele e imprimir a pontuação final no
final do jogo também. Isso é muito legal.
Todas as coisas consideradas, isso é praticamente
tudo o que você realmente precisa. Mais uma vez, se sua
resposta for diferente, não se preocupe. Mas espero que você tenha
essa resposta que você pode percorrer e
tentar entender, ok, bem, como eu faria isso? Por que isso foi feito? Você sabe, métodos, ok, são aulas muito interessantes. Então essa é uma espécie de ideia aqui. Mas para essa solução,
seria isso. E espero que você tenha achado isso útil e aprenda
algo novo. E te vejo na
próxima palestra. Então, sim.
31. TARde 4: sistema de gestão do banco: Tudo bem, Bem-vindo à
quarta tarefa aqui para a introdução do Java. E nesta tarefa, você deve criar
um sistema de gerenciamento bancário. Agora, no geral, isso
pode antes de tudo parecer muito complicado,
mas não se preocupe. Vou orientá-lo pela
ideia que tive aqui. Portanto, o
sistema de gerenciamento bancário deve ter algo como
esses componentes, uma pessoa, um banco e
uma conta corrente. E, em seguida, para abrir uma
conta corrente, você deve ir através de um banco, bem nele pode exigir um
certo depósito inicial aqui. E os componentes individuais ou classes que você tem direitos de que uma pessoa
pode ter primeiro, meio e sobrenome e idade. Talvez seja algo como
um número de previdência social não
é necessariamente necessário, mas você sabe,
algo assim. Um banco pode ter uma
lista de clientes. Suas contas correntes podem ser uma montagem de excesso máximo,
algo assim. E então uma conta pode ter o valor atual e os métodos para retirar
e depositar dinheiro em geral. Essa é uma espécie de ideia geral. Há várias maneiras pelas quais
você pode abordar isso. Então, estou muito interessado em
ver o que você inventou. E, claro, a solução estará mais
uma vez disponível para você. Acho que isso provavelmente é
um pouco mais difícil. Eu imagino que algo como 1,5 horas é provavelmente
melhor reservar para isso, para que você
possa realmente cavar e tentar entender e fazer
algo bem legal. Então, boa sorte.
32. SOLUÇÃO 4: sistema de gestão do banco: Tudo bem, bem-vindo
à solução para a quarta tarefa. E como você pode ver, temos três classes diferentes, praticamente como eu disse
na tarefa real. E bem, vamos passar. Portanto, temos uma classe pessoal que é bastante simples, leia primeiro, meio
e sobrenome, e uma idade ou privada desta vez, e basicamente acessível
via guetos aqui. E então também temos
um booleano aqui, que basicamente
retorna se
uma pessoa é ou não mais velha do
que o fornecido aqui, que é muito interessante. E a conta aqui
também é interessante, certo? Temos um balanceado,
temos o ID da conta. Neste ponto não é
realmente usado tanto,
mas é muito possível
que você possa fazer algo com isso
também e, em seguida, um titular da conta também. E isso é usado no banco para basicamente obter uma conta
específica aqui. Então podemos ver alguma vez ter uma
lista de contas, certo? E a maneira como
podemos obter uma conta é obter conta por pessoa. Mas é assim que
eu pessoalmente
agora para obter as contas aqui. E o resto é
praticamente a conta bancária, certo? Então, basicamente, se você pode abrir essa conta, é esse o caso? E basicamente valida
se alguém tem ou não 16 anos ou mais de 16 anos, e também se o depósito mínimo
foi realmente atingido. Na verdade, há um
pequeno bug aqui, certo? Nesse método, isso é
muito interessante. Você pode tentar encontrar
isso sozinho. Apenas um pequeno exercício
interessante também. Mas, caso contrário, você
sabe, no geral, isso é mais uma vez apenas
um exemplo disso. Podemos dar uma
olhada nisso, certo? Então o que vamos ter
é que eu tenho algum código aqui, então nano tech
não tem idade suficiente para abrir uma conta bancária
e, em seguida, dez, digamos euros ou dólares não
são suficientes. Precisamos de pelo menos um 150
e, na verdade, obtemos o saldo da
conta de Maria, que é 2000. Então, tentar retirar
3000 não funciona porque o
valor da retirada é, na verdade 500 ou o excesso basicamente. E é por isso que
isso não funciona. Então essa é uma espécie de ideia
geral aqui. Mais uma vez, há
muitas maneiras de fazer isso se parecer
completamente diferente do seu, mas você ainda funciona,
tudo bem. Independentemente disso,
espero que este tenha sido um exercício
útil ou tarefa útil dois, você termina e eu te vejo
na próxima palestra. Então, sim.
33. Cursos (Java) (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem do Minecraft. E nesta palestra,
vamos
olhar para a aula anônima. Então, o que é uma aula anônima? Bem, quando herdamos
de alguma coisa, então pensamos na aula de
cães, certo? Isso tinha um nome, certo, e herdado
da classe animal. E agora o que podemos
fazer é, por exemplo, podemos fazer uma
pessoa aqui, certo? Então, eu ainda tenho a classe pessoal da última tarefa. Por exemplo, o pessoal
é igual a uma nova pessoa, mas é tão nano ataque
e oito anos de idade, digamos apenas por uma
questão de discussão aqui. Agora, isso está tudo bem. Se agora eu quisesse uma aula que ampliasse essa classe de pessoa,
que é um gerente. Agora, a única coisa que
vamos fazer é, na verdade apenas fazê-lo para que, quando
você receber o nome completo, você também vai ter o nome como Gerente impresso
. Certo, então, como
faríamos isso? Vamos fazer uma nova aula, certo? E tudo isso. Bem, vamos apenas dizer que na
verdade só precisamos desse. Então, o que podemos fazer é
fazer uma aula anônima. Então podemos dizer que o gerente de pessoas
é igual a uma nova pessoa. Mas vamos apenas dizer
John Smith, certo? Digamos 42. E então acabamos com isso. Agora, o que poderíamos fazer
em vez de terminar isso com um ponto-e-vírgula,
depois de
terminarmos, vamos realmente
fazer um colchete sagrado e
acabar com o colchete encaracolado
final com um ponto e vírgula. Você pode ver que não
há flechas aqui. Porque dentro daqui
agora criamos essa
classe anônima porque é uma classe que estende
a classe pessoa. No entanto, ele não
tem nome, portanto,
é anônimo. E quando podemos fazer
é, você pode ver se eu começar a escrever
uma substituição aqui, eu posso realmente substituir
tudo o que está dentro da classe de pessoas
que é sobregravável. Prefiro exemplo, posso dizer fullname e, em seguida, posso dizer
algo como Gerente
e, em seguida, obter o nome completo. Então, agora é isso que essa classe anônima
em particular faz. E então eu posso, se eu usar o
sistema da linha de impressão, por exemplo, nano
dot obter o nome completo. E então eu também posso
fazer o mesmo para o ponto gerenciador getName. Você verá que o nano
só vai ser nano ataque. E então ele vai
ser o gerente John Smith porque adicionamos esse
gerente aqui. Este exemplo pode não ser
o mais ilustrativo. Acho muito difícil
mostrar a vocês um exemplo muito
ilustrativo de aulas anônimas. Geralmente é o mais longe
em você, você sabe, com interfaces e herança
e coisas assim, torna-se muito difícil se
você não estiver em um ambiente muito, em um
ambiente real onde você realmente tem alguns classes
e algumas funcionalidades. Mas isso é definitivamente
algo que veremos na seção
de modelagem do curso também. Porque há muitas coisas aqui que
serão necessárias para isso. Mas seja qual for o caso, pelo
menos você já viu
isso, mesmo que não vamos entrar em
muito mais detalhes aqui, espero que você tenha achado isso útil e aprenda algo novo. E te vejo na
próxima palestra. Então, sim.
34. (Java) de barras e de idiomas avançados (de de novo..: Tudo bem, bem-vindo de volta
à introdução do Java aqui para modelagem do Minecraft. E nesta breve palestra, vamos dar
uma olhada em enums e
também enums avançados, em
geral, enums, você pode pensar neles como
certos tipos de dados que
têm valores predefinidos, e você só pode atribuir esses valores a essa variável
real. Então, vamos apenas
criar, por exemplo, uma dificuldade enum, certo? Assim, podemos fazer dela uma aula e depois mudar isso
para enum aqui. E então a forma como um enum
basicamente é estruturado é que ele tem os valores reais que ele pode levá-lo
apenas dentro dele. Por exemplo, fácil,
médio e difícil, por
exemplo, como as dificuldades
de um jogo poderiam ser. E então, para criar uma
nova variável para
isso, é praticamente mais
uma vez dificuldade. Então vamos chamar isso de dificuldade do
jogo, certo? Sob assim. E então isso é igual a 2. Atribua isso, você pode
ver o ponto de dificuldade
e, em seguida, temos
esses três valores como opções possíveis. Então, vamos apenas dizer
dificuldade média aqui. E normalmente podemos
reatribuir isso certo? Novamente, a dificuldade é igual a 2. Dificuldade, dificuldade
difícil, por exemplo. E depois dois. Por exemplo, também podemos
fazer declarações IF de um jogo retro, dificuldade
igual, igual a. Agora isso é igual a algo, por exemplo, dificuldade fácil. E então fazemos algo aqui. Então isso é praticamente tudo o que
realmente é para enums normais. E há
algo interessante para o que eu chamo de enums avançados. Então, para isso, vamos
criar uma nova classe Java. Novamente, esse é o nível da ferramenta, e isso também será
renomeado para um enum aqui, eu realmente vou
copiar algumas coisas do outro
monitor aqui. Portanto, isso também é
claro que também está disponível para você, um repositório do GitHub
ou ajuste também. Você pode ver que, embora
este seja um enum, ele tem um construtor aqui e
temos uma taxa de campos. Isso é muito estranho.
Sim. Então, a ideia é que você pode
ter enums definidos. Então, é claro que isso
é um diamante enum. E apenas para
exemplos gerais aqui. E o mais legal é que esses funcionam exatamente da
mesma forma que os outros. Então posso dizer que um
nível de dois níveis é igual, digamos, por exemplo, o diamante de
dica de ferramenta, certo? E o que eu posso fazer
com muita facilidade é dizer nível da linha de impressão
do sistema, por exemplo, multiplicador de tag
git,
que então me faz o multiplicador
de ataque seja qual for o nível atribuído. Então eu posso basicamente ter um, eu não quero
chamá-lo de lista necessariamente porque uma lista é um
pouco diferente, mas você pode ter
valores predefinidos neste enum aqui,
nesta enumeração. Então essa é a enumeração e você também pode
acessá-las. Então, isso
realmente vai acabar, pode ser realmente útil. E definitivamente veremos esse exemplo quando
estivermos criando ferramentas, ferramentas
personalizadas ou Minecraft. Isso é definitivamente algo
que vamos ver. Mas, de outra forma, é
praticamente isso para as enums. Eu só queria
te mostrar isso e mencionar que você
pelo menos já viu isso antes. Caso contrário, isso seria
para esta palestra aqui. Espero que você tenha achado útil
nos neurônios do novo, e eu o vejo na
próxima palestra. Então, sim.
35. (Java) Exposições: Tudo bem, bem-vindo de volta
à introdução do Java aqui para modelagem de microondas. E nesta palestra, vamos dar uma
olhada nas exceções e na declaração try
and catch. Então, no geral, esse não é
o tópico mais interessante, ou o que você diria, o tópico mais emocionante? No entanto, é, pode ser bastante importante
. No entanto. Embora exceções,
vimos algumas dessas. Por exemplo, algo como o IndexOutOfBoundsException e o NullPointerException. Então, houve algumas
exceções que
vimos antes que foram
lançadas pelo código real. E o que vamos fazer
é agora
lançar nossa própria exceção personalizada. Então, em nosso pacote,
vamos criar uma nova classe, que é a exceção de teste, porque ela
realmente exige tenhamos uma exceção de teste aqui. Vamos estender
a classe de exceção aqui. E eu realmente
vou copiar sobre os dois construtores que
vamos precisar aqui para isso. Portanto, isso é claro,
tudo disponível para você no repositório do GitHub
ou energizado também. Vamos ter
um scanner onde
podemos um scanner onde
podemos escanear rapidamente em algum sistema de
coisas aqui. E então vamos
salvar o seguinte. Então, vamos dizer next int, e
vamos basicamente
salvar algo em
um número inteiro aqui. E só por uma
questão de argumento, o que vamos fazer é
lançar essa exceção quando passarmos um número 0 em um método
específico aqui. Portanto, verificação privada, estática e
vazia para 0. Isso é muito simples
no número. E o que vamos fazer é dizer se o número, se o número estiver
passando qualquer resíduo, então o que vamos fazer
é lançar uma nova exceção.
Como fazemos isso? Vamos escrever uma
nova exceção de testes, e então vamos dizer que
o número é 0. Por exemplo,
algo assim. E isso é
praticamente tudo o que
realmente precisamos fazer aqui. O que você vê é que isso
realmente gera um erro aqui porque Adicionar exceção
à assinatura do método. Então, na verdade, temos que ter
isso neste método aqui. Portanto, temos que adicionar a exceção de
teste de lançamentos à assinatura do
método,
caso contrário, ela não funcionará. E se eu chamar isso agora, certo? Então, se eu verificar 0, eu, o que você verá é que
isso também precisa ser adicionado
ao método principal também porque isso não é
tratado corretamente, então não estamos lidando com
essa exceção. Então, o que você pode fazer é que
vamos executar isso. E se eu, por exemplo, digitar um aqui,
nada acontece. O programa termina normalmente
se eu colocar um 0, você pode ver exceção e contagem de threads
principal e
sua exceção de teste, números
muito interessantes 0. E então você pode até ver onde isso foi chamado, certo? Então aqui primeiro e depois aqui estava a exceção
que foi lançada. Então isso é muito interessante. Vamos antes de tudo,
comentar isso e livrar-se da
seção artística lá em cima. E o que podemos fazer agora é que
podemos dizer, por exemplo, digamos que z é igual ao ponto
do scanner next int. Ou, na verdade,
pule o I aqui para isso. Tudo bem. Agora podemos fazer uma declaração try. Então, isso vai ser uma tentativa
com os colchetes encaracolados. E então aqui ele vai ter uma captura com uma
exceção e dentro dela. E isso é basicamente
lidar com um erro, certo? Portanto, a instrução try and catch está lá para lidar com um erro. Então, vamos
tentar isso aqui. Escreva um cheque para 0 I. E se uma exceção for
capturada ou lançada, certo? E podemos pegá-lo aqui. E então podemos fazer
algo com ele. Por exemplo, podemos basicamente fazer
algo assim. Então, mensagem GET,
então, apenas por enquanto,
basicamente, basta imprimir o que realmente está
acontecendo aqui, certo? Portanto, a exceção real, é claro que
há outras coisas
que você pode querer fazer ou ter que fazer se uma
exceção for capturada. E então você também tem
isso finalmente aqui, o que vamos
fazer o seguinte. Nós vamos
basicamente imprimir finalmente, só para ver que
isso está impresso e , em seguida,
vamos realmente copiar a saída. E isso vai ser,
isso acontece sempre. Mas agora o interessante
é quando você realmente lida exceções corretamente com uma declaração
try and catch aqui, então o
que acontece é que o programa
não apenas quebra ou
não acaba, na verdade, continua junto. Então, o que você pode ver
é que antes de tudo, quando eu ligo, quando coloco
um 1, por exemplo, certo? Então, um dia você vai finalmente, e isso acontece sempre. Então, finalmente, como você pode ver, é sempre frio e então isso é sempre chamado também, certo? E então o
interessante é que quando a exceção é lançada, você pode ver que estamos
imprimindo a mensagem. Mas finalmente ainda acontece. E o, você sabe, isso acontece sempre,
também ainda acontece. Então, o resto do
programa continua. O que é muito importante
é que, em geral, você quer que seu código falhe o mais alto
possível simplesmente por causa do
fato de que você quer os erros sejam vistos
muito, muito cedo. É por isso que lançar
exceções pode ser útil. Agora, concedido na modelagem por
microondas, é muito improvável que
você precise, especialmente no
começo, certo? Quero dizer, a maior parte disso, estou assumindo para
iniciantes, certo? Isso não será muito
importante para iniciantes. Isso é algo muito
mais para pessoas avançadas. Quando você está realmente sentado
lá, você está tipo, Ok, eu vou fazer como um modo
gigante agora, certo? Quero torná-lo como a
próxima expansão térmica, digamos nesse nível
algo assim, depois fazendo algumas exceções
personalizadas. Ideia muito inteligente, definitivamente. Mas seja qual for o caso, é
isso para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
36. (Java) LambDA Exposições: Tudo bem, bem-vindo de volta
à introdução do Java aqui para modelagem do Minecraft. E nesta palestra, vamos dar
uma
olhada em expressões lambda. Então, expressões lambda
podem ser muito complicadas. Eu só quero dar uma breve visão geral
das que temos e
quais são as expressões lamda. Então, em geral, e as pessoas veteranas
vão para três métodos. Eles são basicamente funções
ou métodos como variáveis. Agora isso é muito legal
quando você pensa sobre isso. E vamos dar uma
olhada nestes cinco apenas em detalhes muito, muito esparsos. Então, não vamos
entrar em nenhum detalhe. Eu só quero que você
tenha visto esses n basicamente
armazená-lo no futuro. Porque especialmente
na modelagem 4D, isso é algo que é muito importante na verdade em tecido, nem tanto, bem, seja qual for o caso. Então, um fornecedor, por exemplo,
aqui, à direita, é algo que não tem
parâmetros além de um valor de retorno. E poderia ser escrito
algo assim, certo? Portanto, nenhum parâmetro entre parênteses e seta e
, em seguida, o x pode ser o que
está sendo retornado. Você pode ver o fornecedor do tipo inteiro significa que
um número inteiro é retornado. E então é
assim que parece. O mais legal sobre
isso é que isso também significa porque quando podemos
fazer uma variável a partir dela, também
podemos
passá-la para um método, o que significa que poderíamos, poderíamos passar esses
fornecedores lá dentro, que podem ter funcionalidades
diferentes. Então isso é bastante legal, na verdade, isso também é usado na programação muito ou modelagem
forçada, especialmente porque
quando o fornecedor, quando você tem algo
dentro dele, isso é chamado apenas quando o
GetMethod aqui é chamado. Assim, você pode atrasar carregamento de determinadas variáveis
e coisas assim. Essa é praticamente a extensão do meu conhecimento
nessa área também. Então, não
vamos entrar muito nisso. E depois de corrigirmos esse erro aqui por
metro, é claro, certo? Portanto, o consumidor tipo
de nome realmente consome um parâmetro, mas
não retorna um valor. Aqui está um exemplo para o
consumidor de uma string, que simplesmente
é basicamente onde você passa em uma string e, em seguida, ele faz
algo com essa string. Um chamável não é perímetro
e nenhum valor de retorno. Então, muito semelhante a um fornecedor, no entanto, ele lança uma exceção, então um chamável, é
possível que isso chame uma derrubada de
uma exceção também. Essa é a ideia geral. Você também pode sempre passar o mouse sobre isso e você pode realmente encontrar um resumo muito bom do que
eles realmente são, certo? Então, aqui estamos chamando o
chamável neste caso, então um executável é
algo que
não tem parâmetros e
nenhum valor de retorno. Então, uma função basicamente é literalmente como uma
função que mapeia uma determinada entrada para
uma determinada saída é apenas a função
para o círculo, basicamente onde eu só
tenho o pi aqui. Mas isso é praticamente tudo
o que realmente há nisso. Então, no geral, como
eu disse, eu realmente queria
que você passasse por isso uma vez que eu já vi isso antes, quando eu digo, Ei,
nós vamos fazer um fornecedor que você não
senta lá e você está tipo, oh, eu não tenho ideia do que é isso. Não. Um fornecedor basicamente é
um tipo de dados que tem, esse tipo de mais ou menos salva em uma função ou método. Não é bem isso, mas é muito próximo
disso para que, você sabe, especialmente para iniciantes, basta
pensar nisso assim. Seja qual for o caso, isso é realmente para esta palestra aqui. Eu sei que isso foi muito
curto, mas como eu disse, é realmente apenas uma visão geral
muito breve em vez de realmente explicar
cada detalhe disso. Mas ainda espero
que você tenha achado isso útil e tenha aprendido
algo novo. Vejo você na
próxima palestra. Então, sim.
37. (Java) (Java): Tudo bem, bem-vindo de volta
à introdução do Java aqui para modelagem do Minecraft e para esta última palestra da seção de introdução do
Java, vamos dar uma olhada
provisória em genéricos. Genéricos, é claro que já os
vimos antes, certo? Uma lista era genérica, por
exemplo, onde poderíamos colocar em um inteiro como qualquer classe basicamente,
e basicamente ter os números, por
exemplo, com um
novo ArrayList aqui. Então tudo funcionou com
muita facilidade e muito bom. Isso foi bem, bastante
simples. Mas e se tivermos genéricos
que queremos usar
para isso
, na verdade vamos criar uma
nova classe aqui. Nós só vamos
ser a classe de par. E você poderá salvar
dois valores diferentes nele. Então, vamos fazer esses colchetes
angulares e, em seguida, x, y. e a ideia é que X e Y
agora são e a ideia é que X e Y
agora são espaços reservados para
determinados tipos de dados. Então vamos ter um x ao quadrado
privado primeiro e uma mentira privada
chamada segundo, certo? E esta é, a ideia é que agora você tem que
pensar nisso como, ok, esses são genéricos, o que significa que esses são apenas espaços reservados,
como eu disse, certo? E vamos apenas gerar
um construtor para isso. Então clique com o botão direito em
gerar construtor E então, para ambos, vamos apenas ler o construtor. E, na verdade, também
vamos fazer o
botão direito do mouse em Gerar
getters e setters para ambos. E lá vai você. Isso é basicamente
toda a classe já terminada. E você pode ver que ele
sempre usa o x e o y porque esses
são basicamente apenas espaços reservados para
os valores de dados reais ou tipos de dados que
estão sendo usados. Agora, o que é muito
interessante, o que você
também pode fazer é dizer que um determinado tipo de dados se
estende de um diferente. Assim, podemos, por exemplo,
dizer estende float, o que
significa que o y agora
tem que estender o flutuador, que
significa que ele pode
ser um flutuador ou qualquer outra subclasse dessa
classe que tenha sido definida aqui. Isso também é muito interessante. É algo que
você pode fazer e isso é feito na modelagem do Minecraft
extensivamente também. E o que você também pode fazer, vamos fazer um novo
par aqui, certo? Então, parem, digamos que
sejam como
inteiro, flutuador inteiro por
enquanto, como este termo igual
a um novo par deles. Vamos dizer
alguns como 2250.55. Claro, está tudo bem. Certificando-se de que este é um
f aqui, então ele deve funcionar. Lá vai você. Isso agora está funcionando
totalmente bem. E o que você também pode fazer, em
vez de passar um determinado valor real
ou um determinado tipo de dados, você também pode tornar
isso um ponto de interrogação. E então o genérico vai
apenas descobrir isso. Isso é o que é chamado
de genérico curinga. Não vamos entrar
em detalhes demais sobre isso. Isso é algo que
você também verá na modelagem do Minecraft
um pouco também. No entanto, isso é,
não há necessidade real de entender isso. É inteiramente porque os genéricos definitivamente são algo
que é muito avançado, como
um
tópico muito avançado que, mesmo como programadores
qualificados, não gostam programadores
qualificados, não gostam de muitos deles
nem entendem isso. Como se eu não me incluísse nessa descrição a
propósito,
eu conheço genéricos bons o suficiente para que eu possa basicamente
lidar com eles. No entanto, fazendo como uma classe genérica
real eu mesmo, eu serei honesto, isso é muito, muito difícil, certo? Então, este é um tópico muito
complicado, então não se preocupe. Eu só queria mencionar isso
e queria que você visse que isso existe e que você
também pode fazer seus próprios genéricos. Mas isso seria para a introdução do Java
nesta seção do curso. Espero que você tenha achado
útil e aprenda algo novo se for
um iniciante completo, espero que agora
você tenha a base
Java que você
precisará para continuar junto com o microondas modelagem. Então, boa sorte para você, e espero que você aproveite a seção
de microbióticos deste curso.
38. (Noções básicas de Minecraft) Instalação e configuração e GitHub: Tudo bem, bem-vindo
à porção de micróbio para o curso forge 118. E nesta palestra vamos baixar tudo e
configurar o ambiente de desenvolvimento
para configurar o ambiente de desenvolvimento que ele
possa iniciar o modelo de
micróbios. Bem,
independentemente de você
ter assistido ou não à introdução do
Java, precisaremos
baixar o JDK 17 desta vez. Porque, porque o
Minecraft 118 e acima provavelmente usaria caverna
pronta e adolescente aqui. Então, mais uma vez,
vinculei adotá-lo aqui. Basta baixar
a versão mais recente, certificando-se de que você está no
tamarin está 17 aqui. Se você estiver em
um diferente, ele deve, em teoria, detectar seu sistema
operacional e tudo isso. Caso contrário, você
ainda pode sempre ir para as outras versões e, em seguida escolher seu sistema operacional e sua arquitetura, e
você deve ficar bem. Eu recomendo no Windows que você baixe o MSI e então você basicamente instala isso no seu PC como qualquer outro programa. Uma coisa que eu recomendo
é dizer, ei, sim, queremos que
a variável home Java seja definida aqui, porque isso vai salvar muitos problemas
mais abaixo. Porque quando a
variável home Java é definida uma vez, elas basicamente facilitam a nossa vida um
pouco depois
que ela é instalada, também
precisamos de um ambiente de
desenvolvimento integrado IDE e vamos
para
usar a ideia IntelliJ. Eu recomendo usar isso
também porque, caso contrário, pode
haver algumas diferenças nas
bandas que elas precisam
pressionar como atalhos. Também estamos onde você
encontra certas coisas dentro de seu ambiente de
desenvolvimento. Você escolherá a versão
da comunidade porque ela é gratuita e construída
em código aberto. Então, é perfeito para nós. Você não terá que pagar
nada por isso. É totalmente gratuito. Basta baixar isso
e, mais uma vez, instalar qualquer outro
programa no seu PC antes de
abrirmos até
hoje pela primeira vez, agora temos que
baixar micro Forge, neste caso para um
micróbio 1800. Então, se você estiver assistindo
isso no futuro, talvez já
estejamos na versão cento, oitocentos e dois
ou até mais alto. Quem sabe? O que definitivamente será maior é esta versão aqui, agora estamos em 39,5
agora, tudo bem. O que vamos fazer é
baixar o NDK. Mas antes de fazermos isso,
um
aviso muito importante aqui do futuro. Por favor, use cento e
oitocentos um ao iniciar o curso. Eu recomendo isso. Se você não fizer isso
e usar 1800 dois, algumas coisas não
funcionarão como as tags, o item avançado que
basicamente usaremos com as tags, bem como com
a geração mundial. Agora, quando eu chegar a ele, quero chegar a ele muito em breve. Mas espero que no futuro no final do curso, haveria uma
seção que é 1820, se você realmente ver isso. Então, dê uma olhada em
todas as palestras. E se você vir uma
seção no final Isso é como 1182 atualizações, então você pode ir lá e realmente passar por todo
o curso. E então toda vez
que há um certo, um tópico que
não funciona como tags. Serão as tags lecture e todas as palestras de
geração do mundo. Então você pode basicamente
pular tudo o resto, ir até o final do curso, fazer isso e depois
continuar de volta. Eu recomendo que a melhor
escolha seja ficar com um 1800 por enquanto e, em seguida, apenas passar por todo
o curso uma vez, então mudá-lo para
182 também será uma palestra que eu farei em o futuro no
final do curso. Portanto, não se preocupe lá. Vamos
apenas uma ideia muito inteligente. Caso contrário, é claro que
você é livre para escolhê-lo, mas esteja ciente
de que algumas coisas não funcionam da mesma forma em 1800
como fazem em 181. Eu só queria dizer isso. Agora, vamos voltar a
configurar tudo. No futuro. Você provavelmente terá
duas janelas aqui, uma das que é a
mais recente e depois recomendada, sempre escolha a compilação
recomendada atualmente, que ainda não foi atualizada para
uma versão suficiente. Então eles basicamente dizem: Ei, esta é a versão recomendada, vai ficar bem,
mas sempre será o M-Cdk que queremos. E então aqui só temos que
esperar cinco segundos até que possamos baixar
o arquivo zip. E, em seguida, clicamos
no botão Ignorar
na parte superior e, em seguida, no download do firewall
zip. Já o preparei, então tenho meu
arquivo zip aqui. Então, vou clicar com o botão direito do mouse
e depois extrair para forjar um nome louco aqui. E eu também vou
renomear isso, é claro, um 1800, eles atrás. Em seguida, podemos excluir o arquivo
zip aqui. Este é o conteúdo da pasta do
projeto ou que
você terá. E o que podemos fazer é excluir todos esses, os créditos,
o
bloqueio de alteração, a licença
e o Redmi porque
existem específicos para forjar foram, na verdade,
ou eu pessoalmente, eu vou ter o meu próprio
arquivo de licença e tudo isso em apenas um pouco
sobre depois que isso é configurado, agora
podemos iniciar a inteligência
pela primeira vez. Agora, a janela com a qual você
será recebido provavelmente parecerá um
pouco diferente para você. No entanto, o que você definitivamente
terá são três botões, o botão The New Project, o botão Abrir, e eles
recebem do botão VCS. Queremos clicar no botão Abrir e queremos navegar
até este diretório. Então eu também posso simplesmente copiá-lo, colocá-lo aqui, e então
escolher esta pasta aqui, onde as pastas de origem dentro desta aqui dizem tudo bem, vamos, vamos
dizer que confiamos no projeto, em seguida, uma nova janela será aberta. Agora as coisas começarão a
acontecer em segundo plano. Você pode ter erros, você pode obter
algo vermelho aqui. Não se preocupe com isso.
Vamos consertar todos eles passo a passo, mesmo com um aviso
aqui você pode ver vermelho, este aviso aqui. Está tudo bem. Apenas deixe isso passar. Ou vamos ser construídos com falha ou uma compilação bem-sucedida. Qualquer um no momento
está totalmente bom para nós. Tudo bem, olhe para isso. Na verdade, consegui uma construção bem sucedida aqui,
tudo bem. Como eu disse, se você
receber uma conta falhada, vamos passar por isso e ver o que podemos
basicamente mudar. Existem alguns passos
que precisamos
tomar basicamente, independentemente
do que está acontecendo. Então, o que queremos
fazer é o número um, você quer ir para Arquivo e,
em seguida, para a estrutura do projeto, queremos ter certeza de
que no
SDK do projeto aqui diz 17º. Então, basicamente queremos escolher o JDK que
acabamos de instalar. mesmo com o projeto de
linguagem. Isso deve ser 17. Vamos clicar em
aplicar e dizer, ok, também
iremos para
configurações para criar implantação de
execução, ferramentas
incorporadas Gradle
e garantir que ele
diga o SDK do projeto
aqui com 17. Essas etapas são
extremamente importantes. Por favor, certifique-se de que
tudo aqui está correto. Depois disso, há mais uma modificação
que precisamos fazer. Você vê se eu abrir a pasta
java aqui, você pode ver que tudo
aqui está meio espalhado. Se a inteligência estiver aberta
pela primeira
vez, pode parecer
algo assim para você simplesmente
entrar no equipamento aqui. que os pacotes
achatados e os
pacotes intermediários compactos estejam desativados. E então ele vai
parecer exatamente o mesmo aqui que
para mim agora. Tudo aqui correu
corretamente, isso é ótimo. Então o que vamos fazer
é abrir o terminal aqui e
vamos colocar na barra de pontos Gradle w Gen Intel
J corre bem ali. E então vamos
apertar Enter e deixá-lo passar por
isso basicamente, basta baixar um monte de mais
coisas e apenas certificar de que tudo é
basicamente feito corretamente. E então vamos construir com sucesso. Se você tiver uma primeira
pílula bem-sucedida, isso pode nem
sempre ser necessário. No entanto, é ótimo
fazer isso, no entanto. E agora vamos
mudar algumas coisas. Mas antes de tudo,
vamos abrir o arquivo DOD Gradle integrado. E então aqui você vê que há uma versão do grupo e
uma base de nomes de arquivo. Mas a versão, bem, vamos colocar
algo como 0.01. E então, geralmente, o que
é aconselhável é colocar algo que diga a versão
micro também. Então eu vou dizer
minha versão de 0.01 e depois traço 100.801 porque é
claro que estamos em 181 agora, o grupo aqui é o mesmo que os nomes da nossa estrutura de
pacotes. Então, para mim, isso vai ser
líquido e curso de Joe Mc. Para você, isso seria
líquido ou acalmar seu nome. E então, por exemplo, você também
pode escolher o curso MC, ou se você tiver outro modelo, você também pode
escolher uma melodia diferente. Aqui nós apenas pegamos nossa ideia de
modelo também, e isso praticamente
resume tudo o que precisamos aqui. Realmente não precisa
mudar muito. O que não podemos mudar o dele
aqui , você pode ver o modo de exemplo. Diz aqui, podemos selecionar esta tecla Control R e depois
mudar isso para o curso MC. Você pode ver que uma nova janela
aparecerá na parte superior. E então podemos basicamente colocar exemplo Mater no primeiro
curso mc aqui e, em seguida, apenas dizer substituir tudo isso basicamente em todos os lugares onde ele
diz mod de exemplo neste arquivo, ele
substituirá pelo curso EMC. E o que podemos fazer
então é que podemos carregar as maiores mudanças pressionando o pequeno elefante no canto
superior direito como você viu. E então,
basicamente, será executado novamente. Isso não deve demorar
tanto quanto a primeira vez que eles vão Bem sucedido em nove
segundos, isso é ótimo. E então vamos mudar mais
algumas coisas e mudar mais algumas coisas que vamos
na classe mod de exemplo. Porque o que acontece
aqui é que, basicamente, nós não
temos um modo de exemplo. O que temos é que
temos corda de algodão líquido, curso
MC ou rede seu
nome, curso MC. Então o que vamos fazer é
no topo aqui no pacote, vamos dizer net out
e curso Joe dot MC. Claro que isso está marcado com um sublinhado vermelho e
vamos passar o mouse sobre isso e dizer
Move to package net Cotton joe MC curso
Eu vou dizer sim. E então você pode ver uma nova estrutura de
pacotes
aqui surgirá. Então, agora podemos excluir
o resto que está vazio. Então queremos
renomear essa classe. Então, o que podemos fazer é
clicar nele, pressionar Shift F6
e, em seguida, vamos nomear isso como mod
do curso MC dia atrás. Agora, é muito importante
é que esta classe,
a classe simulada do curso MC, ela se referirá mais tarde como uma
espécie de classe principal
ou sua classe mod principal. Então, se eu disser que
isso é o que quero dizer, então chegamos ao MOD ID. O ID é algo
que é muito importante. Então, por favor, ouça cuidadosamente. O ID MOD só pode conter caracteres
minúsculos. O ID do formato é basicamente um
identificador exclusivo para o seu MOD. E isso virá
muitas vezes no futuro. Neste topo
aqui na AdMob, você pode ver que
temos uma string aqui. Então, o que vamos fazer
é selecionar
a string inteira com
as aspas. Vamos clicar com o botão direito do mouse. Vamos refatorar. Vamos dizer
introduzir constante. Vou chamar isso
de ID de sublinhado mod. Na verdade, vou
copiar isso para
o topo aqui. Este será usado muitas vezes no futuro. E isso é para o curso US MC. Eu recomendo
ficar com isso e colocar a
mesma coisa aqui. Este é um curso MC muito importante tudo escrito em
minúsculas. Isso aqui também tem que corresponder
na pasta de recursos, meta enésimo modo Stato Mo. E você pode ver aqui mod ID, isso também tem que corresponder. Isso é incrivelmente importante,
muito importante aqui. Nome de exibição,
digamos, por exemplo, o mod de curso moderno do Minecraft. Algo assim oferece que
tal linha de algodão? Esses não são todos necessários, mas isso é apenas um Idealmente, você não
precisa necessariamente colocar isso. Vamos também, deixe-me
mudar a licença para o MIT apenas no caso e para o ego. Então essa é a ideia geral de basicamente configurar
tudo. Você terá que mudar essa estrela
íntima Tom o arquivo. E aqui em cima isso é
muito importante. E geralmente isso deve resolver quase tudo o
que você tem. Mais uma vez,
verifique a
estrutura do projeto nas configurações. E depois que você
mudou tudo isso, execute,
a barra de pontos Gradle,
Jen inteligente é executado. E depois que você fez isso, estamos praticamente preparados. Isso é praticamente tudo o que
precisamos fazer para a configuração. Ou agora podemos fazer é ir
para o canto superior direito para
a guia Gradle aqui, expandir as tarefas e
o forge rail é executado e seguida, clicar duas vezes
nele, executar um cliente. Vamos ver se o Minecraft
começa pela primeira vez. Esse é o passo mais importante. Basicamente, o que tenho muita certeza de
que isso funcionará bem. Lá vai você. A janela já
abriu e vamos ver provavelmente vai
ouvir o som muito em breve. E lá estamos nós. Ok, deixe-me antes de tudo, desligue
imediatamente a música e o volume um
pouco. Eles atrás. Em nossos modos, você pode ver o modelo de curso moderno micróbio. Existe a
versão do curso MC no momento 0 porque não definimos isso corretamente no arquivo HTML
mos dot. Mas isso é praticamente
tudo o que você precisa fazer. Se você chegar a este ponto
e o Minecraft abriu. Bem, bem-vindo a forjar de manhã. Vai ser uma ótima
e incrível jornada, tenho certeza disso. E a próxima coisa
que vamos fazer é configurar o repositório do GitHub
para este projeto. Eu recomendo não
pular a etapa, pois o repositório do GitHub me
ajudará a ajudá-lo nas perguntas e respostas. Por exemplo, se você apenas me
fornecer, seu
repositório do GitHub
poderá ajudá-lo com mais rapidez do que basicamente se você
disser, Ei, eu tenho essa flecha. Então, isso só torna toda a nossa
vida um pouco mais fácil. Por isso, recomendo também configurar um repositório do GitHub. Vamos passar pelos
passos agora mesmo. O que você precisará para
isso é uma conta do GitHub, mas isso é totalmente gratuito e eu
recomendo fazer isso. Esta é uma ferramenta usada por, quero dizer, quase todos os programadores. Existem alguns sites diferentes, mas o GitHub em si é altamente respeitável e eu
recomendo usá-lo também. Então, depois de termos feito
uma conta lá, o que podemos fazer de forma
inteligente é que podemos ir para o VCS aqui e podemos
dizer compartilhar projeto no GitHub. E então você pode ver
que vou chamar isso curso de forja no 18. Tudo bem. Eu vou, pessoalmente,
tornar isso privado. Se você quiser compartilhá-lo, é claro que você não pode
torná-lo privado. E agora, se eu clicar
no botão Compartilhar, você pode ver, ei, a
conta está vazia. Vamos adicionar
uma nova conta. E o que vou dizer é que
vou fazer login via GitHub. Posso clicar nisso e, em seguida,
esta janela aqui abrirá, basta dizer autorizar o GitHub. E como já estou logado
no GitHub aqui, isso agora foi
autorizado e você pode ver chair by github.com
slash coulomb joule. Agora vamos dizer Compartilhar
e, em seguida, um monte de coisas
novas serão abertas aqui, você pode ver Adicionar arquivos,
móveis, confirmar. Vamos dizer, é claro
que isso é totalmente bom. E então você pode
ver que ele é realmente compartilhado no GitHub e isso é realmente tudo o que
você precisa fazer. Agora posso clicar
nisso e ele deve abrir o repositório do GitHub. E lá está ele. Este repositório do GitHub também
estará disponível para você. A propósito, isso
é muito importante. Terei todas as palestras separadas em diferentes
ramos para que você possa basicamente facilmente ver e comparar com
o que escreveu. Também terei
gists individuais para cada palestra. Portanto, não se preocupe. Todo o código estará disponível de alguma forma que será
muito útil para você se você fizer uma alteração aqui. Por exemplo,
vou dizer algo como um comentário muito importante. Você verá que o arquivo onde a alteração
ocorre fica azul. E então o que eu tenho que
fazer é ter que ir para esta guia de commit aqui, terei que selecionar todas as alterações que
eu quero confirmar. Então eu digo que adicionou elemento
importante. Então isso é apenas um nome
do que aconteceu. E eu clicarei em Confirmar. Agora geralmente você também
pode receber, ei, eu recebi 63 avisos. Tem certeza de que deseja se comprometer? Normalmente você quer se comprometer. Agora isso acabou de passar,
foi muito importante, é que só porque
cometemos algo não
significa que
ele está online ainda, porque para torná-lo online, nós realmente temos que empurrá-lo. Então, no topo aqui, a seta verde que
aponta para o canto superior direito, temos que clicar nisso. Em seguida, você pode ver adicionado
o comentário importante. Podemos ver as
mudanças basicamente, quem, quem fez essas
mudanças e tudo isso. E então podemos
clicar no botão de pressão. E então diz que empurrou um
commit para o origin master. Então, se eu reabrir isso
e recarregar esse lado, você poderá ver um comentário
importante adicionado. Não quero que isso
se transforme em um GitHub ou receba um
tutorial aqui. Mas, por enquanto,
é praticamente isso. Isso é praticamente
tudo o que você precisa. E agora você pode embarcar
na jornada louca e legal do Minecraft
moderno com 4241801. Mas é isso para esta
palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Vejo você
na próxima palestra.
39. (Noções básicas de (Minecraft usando mapeamentos de pergaminho: Tudo bem, bem-vindo de volta
ao quarto curso para 118. Nesta breve palestra, vamos mudar nossos mapeamentos para serem mapeamentos de
pergaminho. Agora, apenas uma pequena
explicação aqui. A ideia é que, se usarmos
os mapeamentos normais fornecidos pela mesclagem do servidor
oficial entre no arquivo Gradle de compilação do RI. Veja eu tenho os
mapeamentos oficiais para 180 um aqui. E embora isso seja totalmente bom, o que acontece é que todos
os métodos não
têm parâmetros de mapa. Isso significa que cada método que podemos substituir
ou algo assim,
o nome do parâmetro
sempre será algum, como P sublinha alguns números
e, em seguida, sublinha um ou o que quer que seja. E isso é realmente
atrito, irritante, especialmente se você tiver
métodos que podem ter 56, 57 parâmetros. E todos eles têm
esses nomes estranhos , pois são fremitus. É por isso que eu recomendo
ir com pergaminho. Agora tenho dois links
nos recursos. Um deles é o repositório bibliotecário do
GitHub
aqui do pergaminho, e um é o repositório de
pergaminho. E o que você encontrará
é que atualmente a versão 118 X
não existe. Portanto, não se descobriu
que não é estritamente verdade que há um instantâneo
noturno. Agora, um instantâneo noturno
neste caso significa que definitivamente
ainda não é uma versão completa. É, uh, ele funciona e você já
pode trabalhar com ele, mas não é altamente
recomendável, você sabe, ainda não está feito, por assim dizer agora, ainda
vamos usá-lo. E o que vou dizer é que
vou atualizar esta palestra. Ou, à medida que avançamos
pelo cavalo, posso lançar um ou dois guias de atualização de
pergaminho em seu geral, geralmente atualizá-lo
praticamente só está mudando. Uma coisa que vou
te mostrar em apenas um momento. Agora o que podemos fazer é que
no bibliotecário aqui você pode vê-lo basicamente diz
tudo o que você precisa fazer. Portanto, é muito simples. Por exemplo, a primeira
coisa que precisamos
fazer é adicionar
isso aqui. Então, o pergaminho do repositório de pergaminho
Maven. Deixe-me copiar isso. Vá para o
curso de forragem aqui. E então, no topo, abaixo disso,
queremos colar isso. Você pode ver agora que temos
o pergaminho lá. E então queremos
verificar o segundo. E esse será o bibliotecário, no entanto, o teorema do caminho de classe. Então, mais uma vez copiou o
Control C e cole-o abaixo do Gradle aqui. Então, aqui
nas dependências, então queremos pegar o
plug-in aqui, e isso tem que estar
exatamente abaixo disso. Então, aqui mesmo,
muito importante. Não cole aqui, mas abaixo da rede
Minecraft Gradle,
caso contrário, não funcionará. Muito importante. E então, por último, mas não menos importante, você precisa alterar os mapeamentos. Na verdade, vou copiar isso
da outra tela que
tenho aqui porque já tenho a versão noturna
basicamente feita. Vamos vê-los atrás. Então esta seria a versão noturna de 13 de
dezembro, instantâneo
noturno neste caso,
como eu disse, se
versões mais novas saírem, vou vinculá-las aqui
em algum lugar ou
terei futuras palestras ou
mudanças esta palestra. E vamos, só
veremos, vamos fazer isso, não se preocupe. E, no geral, isso agora deve estar bem se tivermos
essas quatro coisas. Então, o maven, a dependência do
caminho da classe aqui, depois o plugin e alterando o
vidente de mapeamento, você ficará bem. Então, o que podemos fazer agora é que
podemos carregar as mudanças do Graal. Agora, isso realmente
não deve demorar muito. Mais uma vez,
depende do seu PC, depende da velocidade de
conexão com a Internet que você tem. Há alguns fatores
que podem, estou nisso, mas mais uma vez, não deve ser mais do que talvez um minuto ou dois. Mas vamos ser pacientes e deixar isso passar, certo? Então, como você pode ver,
construa com sucesso em 55 segundos, isso é ótimo. E agora está
basicamente feito. Agora, estamos usando
os mapeamentos de pergaminho. E isso vai ser ótimo. Isso vai ser muito melhor. Eu recomendo
fazer isso também. Ele realmente só altera
os nomes dos parâmetros. Então, agora estão mapeados é praticamente
tudo o que ele faz, os nomes dos métodos
e os nomes das classes e tudo o que deve permanecer
completamente o mesmo. Mas isso já é para
esta palestra aqui. Espero que você tenha achado isso
útil no novo, e eu o vejo
na próxima palestra. Então, sim.
40. (Noções básicas de minecraft basics) crie um item personalizado: Ou voltarei ao curso de
forragem por 118. Nesta palestra,
vamos adicionar nosso primeiro
item de cliente à mente por enquanto, isso vai ser uma coisa muito interessante
que vamos fazer. E o que faremos é,
na verdade, adicionaremos dois itens. Vamos adicionar
um, vamos
basicamente passar por cada etapa. E então
mostrarei imediatamente depois de termos visto
o item no jogo. Ou você pode adicionar um
segundo porque às vezes é um pouco
confuso para as pessoas. Espere, como eu
adiciono agora um segundo? Tenho que passar por
cada passo novamente? E não, existem alguns atalhos que você
pode basicamente tomar. Bem, a primeira
coisa que
faremos e isso é muito importante é no nosso MOD do curso MC
ou em nossa principal classe mod, vamos selecionar
isso aqui. Então, tudo, incluindo o barramento de eventos GetMethod
com os parênteses, e vamos clicar com o botão direito do
mouse sobre esse re-fator e, em seguida, introduzir uma variável. E então vamos dizer que
substitua todas as três ocorrências. E vamos chamar
isso de Evento Bus. Então, basta clicar duas vezes
no barramento de eventos. E então vamos ficar bem. Também faremos é que basicamente
excluiremos tudo aqui, exceto
pelo método de configuração. Não queremos os eventos
do registro, não
queremos a
classificação do servidor, nada disso. Precisamos? E então teremos que ler as coisas
aqui
para que possamos excluir
ambas também, que nosso construtor basicamente tenha saído
apenas com o ônibus de eventos. Você é o ouvinte aqui, a parte inferior do registro do
barramento de eventos aqui e o método de configuração, porque esse é um
método que
definitivamente terá que usar no futuro. Há outro
método que irá, que terá que adicionar em
uma palestra futura também. Mas vamos fazer isso
assim que tivermos dois. Então, agora em diante, para adicionar o item. Então, no nosso pacote de cursos MC, vamos
clicar com o botão direito do mouse em novo pacote, que é chamado de item. Em seguida, em vez de lá,
vamos clicar com o botão direito do mouse novamente nova classe Java chamada
classe mod items. Agora, a
classe de itens de modo
seguirá um tipo de esquema ou um determinado modelo que muitas
classes diferentes seguirão. E isso
será o seguinte. Portanto, teremos um registro
diferido. Então, vou
digitar isso deles e ver o que é isso. Esta será uma final estática
pública, o terceiro registro, muito
importante, F2, nosso. Mas este aqui da net microforms
registra verificar novamente se você escreve isso corretamente
porque houve
algumas pessoas que
escreveram errado,
e então isso, é claro, leva
a que ele não funcione você possa digitá-lo e, em seguida, basta pressionar Tab para completar automaticamente. E então precisamos desses
colchetes angulares se você digitá-lo no primeiro e no
segundo para gerar automaticamente. E então precisamos de item aqui. Muito importante que tenhamos itens mundiais
líquidos do Minecraft. Tomamos este mais uma vez, preenchemos automaticamente e,
em seguida, ele imediatamente importará a classe aqui. Isso é chamado de
itens todos em maiúsculas, muito importante, assim como
este é um campo final,
portanto, tem que
ser escrito em maiúsculas. Essa é apenas uma
convenção Java neste caso, isso será igual a
um registro diferente. Mais uma vez, certificando-se de que
você o escreve corretamente, você pode ser preenchido automaticamente com
uma guia quando realmente vir o congestionamento
que cria. E então, mais uma vez, podemos
simplesmente preenchê-lo entre parênteses
que gerará. Em seguida, podemos salvar registros
forge esses itens no meu modelo de curso
MC, esse ID do modelo e, em seguida, terminando tudo
com um ponto e vírgula. Então você pode ver que
já estamos usando o ID do modelo. Aqui estão os diferentes registros. Nos termos mais simples,
o registro diferido. Você pode pensar nisso como
apenas uma lista de todos os seus itens que você
com seu átomo MOD. É por isso que precisamos fornecer
a melodia para que a forja saiba, ok, todos esses
itens são deste modelo ID,
deste modo. Essa é a ideia geral. Claro que é um pouco
mais complicado do que isso. Mas apenas para sua compreensão
geral, você pode pensar nisso
como uma lista de todos os seus itens e
basicamente temos que
nos registrar quando você tem
um registro diferido basicamente para cada coisa que forjou registros aqui, posso dar uma olhada nisso. Para todas essas coisas. Basicamente, podemos ter uma outra classe e
outro registro diferido. E toda vez que tivermos
um registro diferente, o que teremos
é que teremos um vazio estático público ou o método de registro
com um Evento Bus. Evento Bus como perímetro. Vamos dizer que itens
ponto registram o ônibus de eventos. Agora, se em algum momento
algo aqui pode ser vermelho. Por exemplo, é possível que o item aqui fique vermelho. O que acontece é
simplesmente clicar nele e pressionar Alt e Enter
para importar a classe, certificando-se de escolher item mundial de microondas
líquido aqui, e então tudo deve funcionar. Certifique-se de que as
importações estão corretas. Isso também é muito importante. E agora temos o
método de registro e precisamos
chamar isso de volta em nossa classe de mod de curso
MC, nossa principal classe mod dentro
do construtor aqui, temos que dizer mais itens registro de
pontos com o Evento Bus. Então, temos que passar
neste ônibus de evento para o
método de registro aqui. E então o registro
diferente real também
será registrado. Então, temos que registrar, bem, nossas listas, por assim dizer, de todos os nossos itens. E agora, como nós, como
estamos começando a adicionar um item? Bem, precisamos de um objeto do Registro
final estático público. Mais uma vez com os
colchetes angulares do tipo item. E este vai ser o lingote sublinhado de
cobalto. Agora você pode ver mais uma vez, tenho
algo marcado no objeto Registro
vermelho. Eu
posso simplesmente clicar nele. E insira e, em seguida,
importará a classe correta
que vamos precisar. E isso será igual a
dois itens de registro de pontos. O primeiro parâmetro será uma string. E este barramento, ou como
você verá em breve, nome gera automaticamente, você não
precisa digitar isso. Muito importante para o lingote de
sublinhado Walt é o nome. Isso segue as mesmas
regras que o ID do mod. Apenas
letras minúsculas, sublinhados ou traços e números,
nada mais. E você pode ver
depois que eu adicionei o comum agora ele diz nome. Mais uma vez, isso
gera automaticamente, isso é feito pelo IDE, isso é feito por inteligente. Você não
precisa digitar isso. E o segundo parâmetro
será um fornecedor. Portanto, temos parênteses abertos e
fechados, por
essa seta
e, em seguida, um novo item. Então, novo item com as
outras coisas aqui. Assim, novas propriedades de item que você pode ver dentro
do construtor de itens, vou preencher automaticamente
isso e depois dizer a guia ponto. E então precisamos
fornecer em uma guia. Então, essa é a
mortalidade criativa que é necessária. E você pode ver onde é
apenas a guia diversos. Vamos apenas
clicar duas vezes nisso e, em seguida, ficaremos
bem com isso. Podemos ver que isso agora é tudo o que precisamos para
registrar o item. O item
já estaria no Jogo. Claro, ele ainda não
tem textura e também não
tem funcionalidade. Não vamos
adicionar funcionalidade nesta palestra aqui,
mas nas palestras
a seguir, é claro que vão ver, pode basicamente acrescentar isso. Agora, uma coisa importante é que as propriedades
deste item aqui são
realmente um painel do construtor, então você pode dar um tapa
em um ponto depois, depois da guia, você pode
ver que eu também posso chamar algumas outras coisas como
Reparo de sentinela , resistência ao
fogo, talvez
restante, coisas assim. Então, há algumas coisas legais que eu basicamente posso chamar aqui, e isso mudou o item
dessa maneira também. Vamos nos manter
por enquanto apenas ter a guia e apenas usar a aba variada para isso, e isso
vai ser cinco. Agora. Bem, o que isso significa? Bem, ainda não
tem textura. Como vamos definir isso? Não se preocupe. Agora vem a estrutura de pastas, o que é muito importante. Portanto, certifique-se de que você cuide e olhe para
isso de perto. Há algum
erro ortográfico aqui. Na verdade, vai fazer com que algo
não funcione. Em vez da pasta de recursos, vamos clicar com o botão direito do mouse em
novo diretório chamado ativos. E então, dentro de lá,
vamos clicar com o botão direito novo diretório chamado curso MC. Este tem que ser seu ID de
MOD, exatamente. Muito importante. Dentro de lá, vamos criar um novo
diretório, modelos antigos. Também vamos criar um novo
diretório chamado lang LNG. Também vamos fazer
um novo diretório dentro
do curso MOOC
sobre texturas frias. E, mais uma vez, observe que eles precisam ser
escritos corretamente. Então, na pasta de modelos, vamos criar um novo
diretório chamado item. E então, dentro da pasta de
modelos, novamente, vamos criar um novo
diretório chamado bloco. Agora, o que eu posso fazer é porque vamos
precisar de ambos. Posso selecionar ambos e
arrastá-los
para a pasta de texturas
enquanto mantém o controle, o que duplicará
essas pastas. E porque, basicamente,
eu preciso do bloco e da pasta de itens dentro
da pasta de texturas também. Agora vamos começar pela parte superior
com a pasta de comprimento. Na pasta de comprimento,
as traduções serão localizadas. Então, vamos clicar com o botão direito do
mouse em novo arquivo. E esta vai ser a
EN nos sublinha db.json. Muito importante que
você adicione o ponto Jason,
caso contrário, ele não
será reconhecido corretamente. Isso é muito importante.
Além disso, e sublinha-nos para também sermos
escritos corretamente, pressione Enter e, em seguida,
o arquivo aparecerá. Essa janela aparecerá. Se você tiver um repositório do GitHub, se você não tiver isso,
não verá isso. Isso é totalmente bom. Se você tiver um repositório do
GitHub, você basicamente quer dizer add, porque então ele o adiciona ao repositório
do GitHub para o
seu próximo commit basicamente, e o EN sublinha o
arquivo JSON será construído da seguinte forma. Vou começar
com um suporte encaracolado, que imediatamente
gerará o segundo suporte
encaracolado para nós. Aqui queremos
traduzir o item. Então, o problema é que vamos
apenas digitar isso. Ponto do item AMC curso ponto
o bola, sublinhado, lingote, dois pontos e, em
seguida, inglês antigo. Então, a ideia geral
é que esse é o nome localizado desconhecido
do item porque
este aqui, certo. O lingote de sublinhado de cobalto é o nome que
demos a este item. É um item, e
é, este é o nosso Motet. Tudo isso deve fazer sentido
lógico, certo? Não deveria ser como, por que isso
está acontecendo aqui? Não, não, isso deve fazer sentido. Este é o nome localizado. Por que temos isso? Por que precisamos definir isso como um arquivo JSON? Bem, existem idiomas
diferentes. E se você quiser
traduzir para cada
um
desses idiomas do que ter o nome localizado e, seguida, um nome localizado aqui faz
muito sentido. Na verdade. É por isso que temos que
fazer assim. Mais uma vez, certifique-se de que os nomes
das pastas estejam destruídos e também o
nome de um arquivo aqui. Caso contrário, isso parece bom. Em seguida, vamos passar para
o arquivo de modelo de item. E o modelo do item
é, bem interessante. Vou digitar esses. Então, o que vamos fazer é
na pasta de itens de modelos,
clique com o botão direito do mouse em novo arquivo chamado ponto de
lingote sublinhado de cobalto JSON. O nome desse arquivo tem que
corresponder exatamente ao nome
dado aqui. Isso também é muito importante
e depois termina com o JSON. Agora, como eu disse,
vou digitar isso uma vez. Vamos fazer isso
rapidamente e depois vou
explicar cada parte dele. Então, vamos
ter um pai
aqui , dois pontos, barra de item, texturas de munição
geradas, caído aberto, colchete
encaracolado, camada 0. Tudo um curso MC, item
caído, barra
ou parafuso sublinhado. Posso estar dizendo o que o
FREC está acontecendo aqui. Não se preocupe. Vamos
passar por isso. O pai aqui determina como essa textura específica é
exibida em sua mão. E também em tridimensional. Adam gerado
basicamente é, ele vai fazer a textura extrudida um pouco para que
ela tenha uma espécie de aparência 3D. E isso vai
ser basicamente isso. Então é assim que qualquer item
normal é exibido. Então, temos que definir
todas as texturas. E isso tem que ser
texturas muito importantes. Certifique-se de que
tudo isso esteja escrito corretamente. Camada 0, também importante. E então isso aqui
é basicamente define o diretório onde a
textura está localizada. Então, isso vai olhar para
a pasta Ativos do curso MC. Então ativos MC curso dentro
da pasta de texturas, aqui mesmo sob a barra do item cobalto Inglês ponto PNG, então item. E então não temos
nada lá dentro. Vou copiar
o extra agora, borbulhado no Git dot PNG. E eles vão, e isso
é basicamente agora a textura que ele
exibirá no jogo. Um. Um detalhe muito importante aqui para as texturas é que observe o
arquivo de créditos aqui. Então, todas as texturas são feitas
por nano ataque e elas são distribuídas sob
esta licença aqui. Então, se você quiser usá-los em um repositório público
de alguns tipos, siga a licença, basta adicionar esse arquivo ao seu
projeto ou repositório
e, em seguida, você
ficará bem. Eu só queria mencionar que isso
é muito importante no entanto. Você pode usar as texturas. Apenas tenha isso em mente agora para um item com tudo realmente
feito, registramos o item. Adicionamos uma tradução, adicionamos o
arquivo JSON do modelo de item e a textura por enquanto, pela primeira vez que podemos
ver para trabalhos, a propósito, qualquer uma dessas setas vermelhas que você possa ser obter
são totalmente bons. Isso às vezes pode acontecer
depois que você basicamente adicionou arranjo
pela primeira vez, mas
isso é totalmente bom. Você deve ser capaz de ignorar
isso, desde que
continue e o Minecraft
realmente comece, isso não deve ser preocupação. E isso também só aconteceu uma vez ou na frente dele, Minecraft. Então, vamos ver, vamos
para a aba diversos e vamos para o fundo. E lá está ele.
O lingote de cobalto foi
adicionado com sucesso ao jogo. Isso é muito legal Todas as
coisas consideradas, certo? E então só que você já viu, vamos adicionar a pepita também. Então, a ideia básica
aqui é que
não precisamos de
mais uma segunda classe de itens. Às vezes, é onde
as pessoas ficam um pouco confusas. A única coisa que
precisamos fazer é que precisamos copiar sobre esse objeto de
registro. Vou fazer o Control
C depois
de selecionar tudo e depois Control
V, cole-o aqui. Então, só temos
que renomear isso para pepita e renomear
a sinagoga também. Para cada item
registrado
terá um objeto de registro
associado a ele. Essa é a ideia geral. E é claro que
também tem um nome. Então, precisamos de um novo modelo de
item, JSON, embora vamos primeiro
entrar em nosso ouvido e
nos sublinhar o arquivo JSON aqui. E o que faremos é duplicar essa linha
pressionando Control D adicionando uma vírgula aqui. E então, mais uma vez,
vamos renomear isso para pepita. Essa pepita também. E agora, em nossos modelos de itens, o que podemos fazer é simplesmente
pegar esse arquivo JSON e arrastá-lo para a mesma
pasta enquanto seguramos o Control, e então o duplicaremos. E então podemos mudar o
nome aqui, navegar também. Então, dentro daqui, é claro, também mudando essa pepita. E então copiarei sobre
a textura do item mais uma vez. E esse é basicamente o processo
de adicionar um segundo item. Então isso é basicamente sempre
o que você vai fazer. Haverá algumas diferenças, especialmente quando
se trata dos arquivos do modelo. Talvez eles pareçam um
pouco diferentes. Mas, no geral, isso é praticamente sempre o que
você terá que
passar em um objeto de registro na tradução para o E e nos
sublinha o arquivo JSON
em um modelo de item JSON. E então a textura, isso é praticamente
tudo o que há para ela. Eles vão apenas por causa de
conclusão, vamos ver se funciona ou
se eu sou um Minecraft. Como você pode ver, o cobalto também foi adicionado
com sucesso. O jogo, no entanto,
como você pode ver, na verdade
é bastante simples quando
você sabe como é feito. E isso é apenas uma coisa que você só precisa se
familiarizar e apenas rotinizar
basicamente adicionando itens. E isso vai se tornar basicamente uma segunda
natureza para você, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Todo o código está, a propósito, disponível para você no repositório
do GitHub ou para um
indivíduo, que você basicamente nunca precisa digitar tudo sozinho. Você também pode copiar algumas
coisas se isso for mais propício para aprender
para sua ideia em particular. Caso contrário, te vejo
na próxima palestra. Então, sim.
41. (Noções básicas de minecraft basics) crie um bloco personalizado: Tudo bem, bem-vindo de volta
ao quarto curso para 118. E nesta palestra, vamos adicionar blocos
personalizados ao Minecraft. Os blocos personalizados estão
um pouco mais envolvidos. Mas como vimos basicamente uma parte
de como adicionar itens, os blocos são semelhantes,
mas como eu disse, um pouco mais envolvidos
como um pouco diferente, mas não muito. Então, no nosso pacote de cursos MC, vamos clicar com o botão direito do mouse em
novo pacote chamado livro. E lá dentro,
vamos clicar com o botão direito nova classe Java chamada
classe mode locks. Agora esta classe
será um pouco diferente,
mas antes de tudo, teremos o registro diferido
final estático público do tipo de bloco, certificando-se de que escolhemos o nível mundial net Minecraft bloco. Muito importante, não a unidade
OpenJDK jurada eterna, mas o bloco de nível, bloco que é muito importante. E então dizemos que
blocos é igual
ao terceiro ponto de registro
criar registros, essa caixa com nosso modelo de
curso MC que MID. E se é um registro
diferente, também
precisaremos de
um público que seja um
método de registro de chamadas nulas com o Evento Bus. Evento Bus. E isso chamaremos Box dot register
com o ônibus do evento. E antes de
esquecermos, chamaremos imediatamente em nossa
aula de mod de curso MC aqui, mod blocks dot register com
o ônibus do evento. Lá vai você. Então, agora o registro diferido está
registrado. E agora o que
realmente precisamos é que faremos dois métodos auxiliares. Vou
digitar tudo e depois
explicarei depois de fazer isso, o código para você está disponível no repositório
do GitHub ou em um
indivíduo também. Você não precisa
digitar tudo aqui. Você pode basicamente
copiá-lo também. Então, quando eu tenho uma estática privada
e, em seguida, o colchete angular T estende o vazio do bloco. Na verdade, vamos fazer
este item, desculpe, vamos fazer esse
objeto de registro de itens. Em seguida, o nome do método
é o bloco de registro Atum, que terá um parâmetro de nome de
string e um objeto de registro do tipo T, que será o bloco. Então esse é o segundo parâmetro. E isso
retornará mais itens,
itens que se registram
com o nome. E, em seguida,
um fornecedor de um novo item de livro com a guia Propriedades do
Novo Item de ponto ponto do bloco. E vamos colocar
na guia criativa, MRTK por enquanto. Mas, na verdade, vamos
mudar isso. Então, um dos problemas aqui é que agora estamos basicamente
codificando, ok, isso sempre estará
na guia diversos, na verdade
adicionará
um terceiro parâmetro, que será o modo
reativo guia, guia. E então vamos
colocar isso
aqui , que podemos
basicamente significar, Ei, vamos tornar o criativo
específico mais guia. E então eu vou apenas formatar isso de forma um pouco
diferente. Lá vai você. E então teremos
outro método que é uma estática privada. Mais uma vez, o colchete angular
T estende um bloco, que também retornará um objeto de registro
desta vez do tipo T, o método do bloco de registro. E isso levará uma string,
vamos nomear o tipo de fornecedor T
e, em seguida, um bloco chamado Brock,
e depois oito e, em seguida,
um terceiro parâmetro, mais
uma vez, sendo esta a guia modo
criativo. Guia. Agora este
fará o seguinte. Em primeiro lugar, ele
criará um objeto
de registro do tipo T ou para retornar, que é igual ao registro de pontos de
blocos, o nome com o bloco. Em seguida, ele vai esfriar no método do item do bloco de
registro com o nome a ser
devolvido e a guia. E então aqui vamos voltar
para retornar. Agora esses métodos parecem
absolutamente loucos. No entanto, eles não são
realmente tão loucos. Então, esses são apenas alguns métodos
auxiliares para nós porque quando registramos
um bloco como este, certo? Quando apenas chamamos
blocos que registram, o que acontece é que
ele cria o bloco, mas ele não cria
um item para o bloco. E isso é um
problema porque precisamos de itens de
bloco para
cada um dos nossos blocos. Agora, fazer isso assim, na minha mente faz muito sentido. Se alguma vez encontrarmos um bloco que não precisa de um
item de bloco, o que faremos, faremos apenas
outro método que
não chame esse método de item de
bloco de registro. E então, basicamente,
ficaremos bem. Querido é isso o que
isso significa, por exemplo? Bem, isso significa que T é apenas um genérico e
significa apenas que o que
for colocado no T aqui tem estar estendendo a classe de bloco. Basicamente, sempre vamos
usar a classe block de qualquer maneira, porque
isso é tudo o que realmente
vamos precisar neste caso. Mas sim, isso só garante que este seja o tipo correto. Puxar o método do item do
blog de registro também
deve fazer sentido. Isso basicamente apenas
registra o item que está associado a este bloco aqui que estamos basicamente criando um Tem o mesmo nome basicamente, e isso deve ser
praticamente tudo
que você precisa saber que vai colocar isso na
guia que passamos aqui. Então, tudo deve estar bem. Vamos ver isso em
ação e vamos ver. Então, vamos criar um
objeto Registry final estático público do tipo bloco. Será que o bloco de
sublinhado de cobalto, que será igual
ao bloco de registro com mais
uma vez no
nome bloco de cobalto, o bloco sublinhado
duplo
foi importante este ano, gera automaticamente a placa de
identificação 2, por assim dizer. E, em seguida, um fornecedor
de um novo bloco. E isso vai ter propriedades de comportamento em
bloco, esse material.me. E então, se eu colocar um ponto, você pode ver que existem mais
algumas propriedades que
podemos adicionar dois blocos aqui. Quais são as
que eu quero adicionar são as propriedades de força. Então esse é basicamente o tempo necessário para quebrar esse bloco. E também muito
importante que
chamamos requer
ferramenta correta para gotas, o que basicamente fará
exatamente o que eu queria. Além disso, isso não é
copiar essas coisas. Oh, eu sinto muito. O ego. E então o terceiro
parâmetro será o ponto da guia
do modo criativo. Vamos fazer mais uma vez
diversos. Mas este faz exatamente o
que diz no estanho requer ferramenta
correta para quedas porque temos que definir ferramentas de
TI mais tarde,
basicamente para que o
bloco de cobalto realmente caia sozinho. Isso é algo que
veremos em uma palestra posterior. Na verdade, o bloco cai
, isso é feito com mesas
Lou, conhecedores. Vamos chegar a isso. Mas isso, mais uma vez,
é o bloco e o item de bloco associado
registrados com isso. Eu recomendo
também apenas
brincar com algumas
das propriedades que você pode adicionar aqui,
você pode ver que
existem algumas aqui que
você pode basicamente adicionar. Normalmente, veremos alguns
deles passando pelas palestras. Mas vamos agora examinar os arquivos JSON porque esses são muito interessantes porque na verdade
precisamos, na
pasta do curso MC aqui, precisamos adicionar um novo
diretório ou estados de bloqueio. Também é muito importante
que esteja escrito corretamente. E eu vou mais
uma vez digitar isso. Então, vamos criar um
novo arquivo aqui chamado bloco de sublinhado de cobalto Jason, mais
uma vez, certifique-se de que isso esteja escrito corretamente e tenha
o JSON final. Portanto, esse é o nome
que ele precisa ter. E então vou
digitar isso. Então R1 segundo
colchetes encaracolados, variância, cólon, colchete
inicial,
aspas vazias, colchetes de
cólon encaracolado. E então modele dois pontos, curso MC, bloco de
cólon, cílios,
cobalto, bloco de sublinhado. O que está acontecendo aqui? Bem, o estado do bloco
basicamente define variantes
diferentes
do mesmo bloco. No nosso caso aqui, não temos nenhuma variação porque isso vai
ser apenas um bloco normal. E isso aqui agora
aponta para um modelo de bloco JSON. Então, em nossos modelos de
arquivo quebrado, ele procura um arquivo
Block JSON de sublinhado de cobalto. Então, vamos clicar com o
botão direito do mouse neste novo arquivo, sublinhado de
cobalto blog.js. E isso realmente
se parece com o modelo de item que
vimos antes. Colchetes encaracolados,
pai, caído, bloco, cubo de
barra, todas as
texturas de vírgula caídas. Registro somente. Todos os cólon, curso
MC, bloco de cólon,
cobalto, bloco de sublinhado. O modelo de bloco
determina como o bloco parece dentro do mundo.
O que isso significa? Bem, enquanto os
estados de bloco apontam para macacos com modelo de bloco
específico, o modelo de bloco determina
as texturas
desse bloco e, em seguida,
basicamente, se refere a essa
textura aqui. E também precisamos de um
modelo de item para nossos blocos. Isso é muito importante. Oh, isso realmente
vai ser um novo sublinhado de cobalto blog.js. Isso, no entanto, parece um
pouco diferente. Isso terá colchetes
encaracolados e seguida,
curso MC caído dos pais , tudo no bloco de sublinhado de
cobalto de barra Brock. Então, isso se refere a esse modelo de bloco
e faz com que
ele apareça de uma forma 3D que os blocos aparecem dentro do inventário t0. Vamos copiar sobre a textura do bloco de
cobalto aqui no suporte do livro. E, em seguida, também deixe
adicionar a tradução. Também é muito importante. Vamos copiar esses. E então vamos
chamar isso de bloco de cobalto do curso
MC bloco. E isso é, claro,
um bloco que eles atrás. Agora isso é tudo o que precisamos para uma espécie de
força de recapitulação mais uma vez, precisamos criar
o objeto de registro para esse bloco específico aqui. Em seguida, precisamos de um arquivo JSON de
estados de bloco,
um arquivo JSON de modelo em massa,
um arquivo JSON
de modelo de item e a textura. Essa é uma ideia geral. E depois de vermos
se ele funciona ou não, também
veremos um
segundo bloco B adicionado apenas basicamente para que
você tenha outro exemplo. Mas, por enquanto, vamos ver se funciona ou
nos encontramos em mente para isso. Como você pode ver, o
bloco cobol foi adicionado, então vamos
defini-lo e eles vão, parece incrível, e tudo funciona bem. Então, se houver algum problema
com esse bloco, certo? Portanto, se houver alguma
textura faltando, podemos basicamente passar por uma lista de verificação que você pode verificar. Portanto, se o bloco só não tiver uma textura dentro
do inventário, é o modelo do item
Jason, que é o culpado. A textura não
funciona no mundo, mas funciona
no inventário. Tem que ser o bloco Estados
Jason, que é o culpado. E se não funcionar em
nenhum deles, bem, então é o
modelo de bloco JSON ou todos eles. Então essa é uma
lista de verificação geral que você pode passar e basicamente verificar. Mas agora, só para, você sabe que você
tem outro exemplo, vamos adicionar outro bloco, certo? Então, mais uma vez,
isso realmente envolve
muita cópia aqui. Então, vamos copiar isso,
vou colá-lo. Este vai ser o cobalto ou bloco e então
este será o sublinhado de cobalto
ou em vez de metal, isso vai ser não. E isso vai ser em vez de cinco forças,
apenas força, certo? Isso vai ficar bem.
Agora o resto aqui está bom. Isso agora
registrou o bloco. É claro que agora
precisamos do livro diz que Reason trouxe o modelo Jason
e o item antigo Jason. Vamos apenas copiar isso arrastando-o para
a mesma pasta
enquanto mantém o controle e
altere o nome aqui para bloquear, para cobalto ou tema aqui. Isso agora aponta para um modelo de bloco Jason na pasta aqui, que é chamado de
sublinhado de cobalto ou ponto JSON. Vamos
criar isso também no ano do nome para a
textura que ele aponta, que adicionaremos
em apenas um momento. Vamos também adicionar a
tradução imediatamente. Mas o que OR e,
claro, o nome aqui que
ressaltará o ego. Copie também sobre o modelo de cobalto ou
item e renomeie-o. Ou, em seguida, sublinhado
ou aqui também. E então só precisamos
da textura para isso. Vou copiar
isso também. E aí você tem isso. Agora, o próximo bloco é feito. E sim, mais uma vez, esta é apenas a maneira normal
de fazer isso. Você só terá que passar por isso na próxima palestra. Basicamente, você terá uma tarefa de adicionar
dois blocos próprios. Isso basicamente
vai para o
bloco de cobalto rock e o
cobol ou bloco de estado profundo também. Então, isso é apenas algo
para ter em mente. Além disso, vamos
ver se a busca de conclusão, se o
bloco ou também foi adicionado ou não. Tudo bem, encontramos essas
costas e microvesículas. Veja o cobalto ou bloco também foi
adicionado com sucesso ao jogo. Então, tudo funciona
muito bem aqui. Isso é realmente o quão
fácil é adicionar um segundo bloco também, certo? Como eu
disse anteriormente, a próxima palestra incluirá
algumas tarefas. Eu recomendo
que você passe por isso porque pode ser
muito, muito positivo e apenas
uma boa ideia
basicamente fazer basicamente fazer isso
apenas para que você tenha um
pouco de sensação. Mais uma vez, todo o código para as palestras
aqui está disponível no repositório do GitHub ou em
um indivíduo também. Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
quando você aprende algo novo e eu o vejo
na próxima palestra. Ah, sim.
42. TARde 5: Block e item: Ou virei aqui para
a primeira tarefa para o quarto curso
na seção Minecraft. E como eu
já disse, aqui, você basicamente fará
dois blocos e um item. Isso
não deve ser muito louco. Então, espero que você encontre a tarefa em um lugar
escrito. Então, basicamente, você
tem a tarefa como uma pergunta escrita também. E a ideia é que
você terá que adicionar o bloco rock cobol, bem
como o
cobalto ou bloco de ardósia profunda. Agora, as texturas para esses
blocos estão disponíveis. O mesmo com o item. Observe que o arquivo de
créditos aqui para que as texturas sigam
uma licença específica. Então, se você quiser usá-los em um repositório público
ou algo parecido, e observe que os
credores arquivam, como eu disse. E para o item, você adicionará o item de cobalto
bruto basicamente, e isso seria
basicamente. Todos os outros não deveriam
ser loucos demais para você. Espero que se você já viu
as poucas palestras anteriores do que deveria ser bastante,
bastante fácil de fazer. Bem, boa sorte e divirta-se
na tarefa. Então, sim.
43. SOLUÇÃO 5: bloco e item: Tudo bem, vamos dar uma olhada
na solução para a
primeira tarefa aqui. E, claro, espero que
tenha sido bastante simples. Você acabou de adicionar os dois objetos de
registro para os dois bloqueios que
queríamos adicionar. mesmo com o item
aqui, o cobalto cru. E então só precisávamos dos
blocos, esses arquivos JSON, que simplesmente apontam para dois arquivos JSON de
modelo de bloco diferentes, que por sua vez apontam
basicamente as texturas aqui. E então a tradução
que deveria ser
neste momento espero
se tornar rotina. E então nós só precisávamos das bacias
do modelo do item também. E isso também inclui
o cobalto de rocha, que então apenas aponta
para uma textura aqui. No geral, espero que
isso tenha sido feito facilmente. E isso é praticamente
tudo o que você precisa fazer para ter isso em seu jogo. E usaremos basicamente o cobalto cru e todas as outras coisas
também no futuro. Oh, definitivamente é uma boa ideia ter isso
em seu jogo também. Todo o código é claro, também disponível no repositório do
GitHub ou
em, em, em um indivíduo
também. E te vejo
na próxima palestra. Então, sim.
44. (Noções básicas de tela) tab criativa personalizadas: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra,
vamos adicionar nosso próprio tablet de
modos criativos personalizados ao jogo. Este é, na verdade, um
processo bastante fácil e direto. Portanto, em nosso pacote de itens, vamos clicar com o botão direito do mouse em
nova classe Java chamada modo criativo
modelo, guias ou guia. Isso
implementará o seguinte. Isso terá uma leitura final estática
pública da guia Modo chamada guia sublinhado do
corpo, que é igual a uma nova. E você pode ver Norris apenas
a guia do modo criativo. E se pressionarmos a tecla tab, ela gerará o,
gerará uma
classe anônima para nós. Na verdade, teremos
que inserir isso com um ponto e vírgula aqui. E então, em vez de
retornar null aqui, e vamos passar para a rotatividade
é uma nova pilha de itens. Mais itens pontuam cobalto,
lingote, ponto get. E então dentro daqui, vamos adicionar uma string. Esse rótulo aqui gera
automaticamente mais uma vez. E esta
será apenas a guia do modelo do curso. Seja qual for o item que você colocar aqui, também qualquer bloco que você
colocar aqui será
a imagem
de exibição da guia real, e isso é necessário
para a tradução. Então, na verdade, vou
copiar isso. E vamos ao
nosso E e nos sublinha arquivo
JSON para o
fundo aqui. E vamos apenas adicionar o,
adicionar os pontos do grupo de itens
CourseMatch tab dois pontos. E vamos chamar
isso de curso MC. Não. Tudo bem. Agora este é um outlier
nos termos de tradução aqui temos um grande G para o G maiúsculo para
o grupo de itens. E então, claro, mod
tab com ideia mais externa. Mas isso é praticamente tudo
o que precisamos fazer para adicioná-lo. Agora, vamos também adicionar nossos
itens e nossos blocos a ele. Em vez de dizer o modo criativo, toque aqui vamos
dizer mais criativo, mais guia, ponto guia Curso. Basta copiar isso sobre a tecla Control C
selecionada
e, em seguida, Control
V para colá-lo aqui e fazer a mesma
coisa aqui. Basicamente em todos os lugares onde você tem a guia variada. Agora vamos colocar
na guia Curso. E agora todos os nossos itens
e nossos blocos
estarão em quatro etapas. Vamos ver se funciona, ou nos
encontramos de
volta ao Minecraft. E um sinal muito bom
é que temos uma segunda página aqui
pode ver MC núcleos MOD e tudo está aqui exatamente como você
esperaria que ele fosse. Isso é perfeito. E
tudo funciona exatamente como você gostaria de escrever isso que já
é para esta
palestra aqui. Espero que você tenha achado
útil em yurts do novo, se ele fez nossa crítica muito
apreciada de você. Caso contrário, verei você
na próxima palestra. Então, sim.
45. (Noções básicas de minecraft basics) novas Receitas: Tudo bem, bem-vindo de volta
esse curso de forragem para 180. E nesta palestra, vamos adicionar receitas
personalizadas ao Minecraft,
ou receitas personalizadas são
feitas por meio de arquivos adjacentes. Eles não são feitos
na pasta de ativos, mas sim em uma nova pasta. Então, nos recursos, clique com o botão direito do mouse em
novo diretório chamado dados ou dados dentro
do curso MC
e, em seguida, dentro
de suas receitas. Agora, o que é muito
importante é mais uma vez, esse diretório
precisa estar completo, escrito completamente corretamente,
caso contrário, ele não funcionará. E basicamente vou mostrar um
exemplo de cada ano de receita. Como eu disse, eles estão no formato
JSON mais uma vez. E o que podemos fazer na verdade é que podemos ir para as bibliotecas
externas aqui embaixo. Podemos expandir isso. E então você encontrará
em algum lugar abaixo aqui, você sabe, descendo. Mas Minecraft finito
nove 180 extras, um ou qualquer que seja a versão
atual. Se você expandir isso e
entrar na pasta de dados, verá o Minecraft e, em seguida, todos os arquivos JSON
que estão no Minecraft. Por exemplo,
podemos dar uma
olhada em cada um desses arquivos JSON. Estas são basicamente todas as receitas
de baunilha como pagar.
Como isso funciona? Você pode ver o carvão do
jateamento legal ou interessante, mas há, você já pode ver que
existem diferentes
tipos de receitas. Como o compostor,
como é feito o combustor? Você pode ver isso. Você vê A tag, interessante. Ok, estamos usando tags aqui. tempo de cozimento pode ser desgastado. Temos coisas como o biscoito. Então você pode basicamente encontrar
exemplos de coisas aqui. Eu recomendo
passar por isso, entrar aqui. Se você já tiver
uma receita que
basicamente deseja recriar,
você pode encontrá-la. Você pode então dizer, por exemplo, para o bloqueio ósseo aqui, certo? Oh, isso é como uma
coisa realmente que eu quero fazer. Você pode basicamente pressionar o
controle C para copiá-lo. Volte para suas pastas, vá aqui, controle
V para colá-lo. E então, por exemplo, eu
poderia dizer bloco de cobalto de lingotes para onde eles vão
e então eu vou
abrir isso e então você pode ver agora que eu posso, claro, mudá-lo. E as ideias gerais que bem, você tem diferentes
tipos de aqui, certo? Neste caso, temos
uma receita de forma. O padrão está preenchido.
Qual é o padrão? Será que o pai terá três
cadeias de comprimento três. Portanto, isso representa
a grade de fabricação. Este é o slot superior esquerdo e, em seguida, o slot superior direito
e assim por diante e assim por diante. Portanto, isso não deve ser
muito louco para entender. Podemos colocar as chaves aqui. Assim, você pode ver que
esse símbolo de hashtag basicamente representa um
novo item de tigela neste caso, bem, vamos mudar isso
para os itens de nossos clientes. Então vamos
dizer dois pontos do curso MC ou comprar lingote sublinhado. E então o resultado aqui, é
claro, será dois pontos do curso MC ou bloco sublinhado em negrito. Mas tudo isso
deve realmente fazer sentido no momento e não
deve ser muito louco. Mas esta é uma receita em forma, como eu disse, porque
tem uma forma particular. Agora, o que também funcionaria
é algo assim. Então você teria
que
cobrar as duas linhas superiores ou
as duas linhas inferiores
no banco de artesanato. Então eles nem sempre
precisam ter três ou três cordas de
comprimento. Também há trabalhos. Então, algo assim, que seria o
barco, por exemplo, também
funcionaria porque você
pode colocar o barco no topo ou
também na parte inferior. Então isso é muito importante. E, na verdade,
copiarei sobre tudo estar disponível para você
no repositório do GitHub ou em um indivíduo também. Você pode ver antes
de tudo, esta é
uma receita sem forma,
porque podemos basicamente colocar o ingrediente em
qualquer lugar no banco de
artesanato. E isso é basicamente
um bloco de cobalto, certo? E então teremos
lingotes de robôs e depois nove deles. Então, basicamente, isso é a mesma coisa que esta
só em troca, certo? Então, ao contrário, você pode obter os nove
lingotes de volta de um bloco. E então temos
esses dois que são lingotes ou fundição. Então você pode ver que posso sentir
o cheiro do cobalto ou em
um lingote aqui. mesmo com isso, mas
vamos apenas fundir ou explodir será bastante autoexplicativo,
tudo considerado. E então, apenas como exemplo, você também pode usar,
vamos várias chaves. É assim
que você os usa. E você também pode usar itens do
Minecraft como resultado ou como um
item de fabricação que funciona totalmente bem. Como se não houvesse nenhum problema
com isso. Então esta é
uma espécie de ideia geral, final de
ano, bem, não
bem na próxima palestra, mas na palestra depois
disso, se eu não me engano, você vai fazer
suas próprias receitas personalizadas e basicamente tenha algumas
idéias do que você faz. Mas todos eles são bastante
diretos. entanto, no geral, é
isso. Muito importante. As bibliotecas externas realmente recomendam
passar por isso porque também
existe a pasta Assets onde todos os estados de bloqueio, o Lang, as texturas
também terminam aqui, as texturas estão aqui. Então você pode basicamente dar
uma olhada em tudo, os arquivos do modelo também. Então eu recomendo
passar pelas
bibliotecas externas aqui porque essa é
a melhor coisa que você pode gostar de ver. Se você não sabe,
Ei, como posso fazer uma receita exatamente
como x em baunilha? Basta entrar aqui,
dar uma olhada nisso. Muito fácil, não se preocupe. Mas esse é um processo muito
simples. Mas, por enquanto, vamos ver se funciona ou por que nos encontramos de
volta ao Minecraft. Então, vamos tentar o interior do
cobalto primeiro e eles vão e
blocos de cobalto e vamos ver, eu posso pegar os nove
lingotes de volta também. E o que você encontrará
também é que ele será automaticamente como esses, como receitas no livro de
receitas também. Então isso é muito bom. E vamos ver se
também conseguimos sentir o cheiro do cobalto ou, claro
que podemos, tudo bem. Isso também funciona. Embora
tudo aqui funcione muito bem. E também apenas por uma
questão de argumento, por que não tentar fazer a pilha de
diamantes aqui, o ego 64 diamantes
funcionando também. Belo invólucro, isso
já seria para esta
palestra aqui. Espero que você tenha achado útil
e ignorância do novo. Mais uma vez, todos os
arquivos JSON estão disponíveis
no repositório do GitHub
ou onde um indivíduo também. E eu vou te ver na
próxima palestra, no entanto. Sim.
46. (Noções de basics de troves com as tabulações de loots: Tudo bem, bem-vindo de volta
ao quarto curso para 118. Nesta palestra, vamos
dar uma olhada na adição de
tabelas de rotas personalizadas ao Minecraft. Ou uma tabela solta basicamente define o que uma
queda de um bloco. Esta também é uma das
razões pelas quais adicionamos as
ferramentas corretas necessárias para quedas aqui, tudo bem ali. Porque se não tivermos isso, basicamente qualquer ferramenta com a qual
você possa este bloco,
então soltaria a tabela Lu real ou as gotas de rocha, por assim dizer. Mais uma vez em nossa pasta de dados,
na pasta do curso MC, clique com o botão direito do mouse em novo diretório
chamado tabelas de sublinhado de saque. Mais uma vez, certifique-se de que
ele esteja escrito corretamente. Então, dentro de lá, um novo
diretório chamado blocos. E então eu realmente copiarei sobre a tabela de saque para o bloco de
cobalto é ver isso. Então é assim que se parece. É do tipo bloco. Há um pool e, em seguida, você basicamente tem
entradas diferentes neste pool. Podemos ver esta haste uma vez
que há a entrada aqui, uma entrada do tipo item. E então basicamente soltamos um bloco de cobalto ou tudo isso às vezes
pode ficar um
pouco confuso, especialmente quando agora vou
copiar sobre a tabela de saque para o cobalto ou
bloqueado por causa de curso que funciona um
pouco diferente. Veremos que isso é
mais complicado do que seria primeiro estranho. Mas é claro que o que temos
é que só temos uma entrada. O que é uma
entrada alternativa, por assim dizer. E a ideia aqui é que, bem, ou vai deixar
cair isso e vai cair
isso se a condição aqui for atendida,
o que significa que o encantamento em nossa ferramenta tem que ser
o toque de seda. E então ele derruba o
cobalto ou de outra forma, ele cairá entre 25 Ra. Essa é a ideia geral aqui. E você pode ver que
ele também aplica um bônus quando se trata dos
encantamentos da fortuna também. Isso é algo que também é feito neste caso
com uma função. Eu recomendo mais uma vez, indo para a unidade de bibliotecas
externas, cliente de
microondas extra um 1801, em vez da pasta de dados, você também descobrirá que
a pasta de tabelas aludidas. E então, dentro de lá, você pode dar uma olhada em todos os loops, mesas de todos os blocos de
baunilha. Eu recomendo vivamente. Não posso recomendar o suficiente
ir aqui e apenas
dar uma olhada nisso. Também lhe darei a outros recursos que
são realmente importantes. Um deles é a entrada do wiki da tabela
luge aqui do micro fã e wiki porque
aqui você verá realmente todas as coisas
diferentes, todas as coisas diferentes que você pode basicamente colocado. Você pode ver que há
muitas coisas aqui, recomendo dar uma
olhada nisso, basicamente como ele funciona. E depois há
outro e isso será desalinhado ponto GitHub
IO tabela de saque. E este é um gerador de
mesa luge. Apenas certifique-se de que você está
no 118 no topo bem aqui. E então, quando você tiver isso, você pode basicamente mudar
todas as coisas aqui. Você pode dizer, Ei, eu quero
algumas funções específicas. Você pode ver que essas são todas
as funções, certo? Você vai perguntar a eles condições
específicas como uma chance aleatória. Você pode ser como, Ei,
eu me pergunto se, se a entidade for
morta por um jogador, tudo isso, tudo isso, tudo
isso, tudo isso. Portanto, há uma quantidade insana de coisas que você
basicamente pode adicionar aqui. Eu recomendo estar
aberto à experimentação, experimentando um monte de coisas. Essa é a melhor coisa que
você pode fazer para tabelas de loop. E tenho certeza de que, nesse
ponto, você conseguirá
obter algo realmente
Lu tabela que é exatamente o que você
gostaria que fosse. Mas isso
não é tudo o que temos que
fazer porque
teremos que adicionar outra coisa. E isso é mais uma vez
em nossa pasta de dados, clique com o botão direito do mouse em novo diretório
chamado Minecraft, o jogo que você pode
ter ouvido falar sobre isso. E dentro de lá
precisamos adicionar um novo diretório, tags antigas. E então, dentro de lá, precisamos adicionar um novo
diretório chamado blocos. E então, dentro de lá, precisamos adicionar um novo
diretório chamado mineable. Agora, por que precisamos disso? Bem, precisamos definir quais são
nossos blocos, nossa largura da mente. E para isso, na verdade,
vamos até a pasta de dados, Minecraft, ovos, blocos, e então veremos as
mandíbulas aqui. O que vou fazer é selecionar todos eles, pressionar o controle C para copiá-los. Então eu vou aqui, pressione Control V para colá-lo. Tenha todos esses arquivos JSON com todos os blocos de
baunilha aqui. O que posso fazer é
apenas selecionar tudo isso e
apenas me selecionar tudo isso e
apenas livrar dele ou de
todos esses arquivos JSON. Mas essas são tags. Agora, as tags no momento,
você pode basicamente pensar nelas como uma coleção de blocos ou itens
diferentes que têm alguma
funcionalidade semelhante a eles. Vamos passar por quais blocos estão em uma palestra posterior também. Mas, por
enquanto, o que
faremos é adicionar todos
os blocos que
temos ao Pic X Jason. Então este seria bloco de sublinhado de cobalto de
cólon do curso MC. E então eu vou
duplicar isso quatro vezes. Esta é então uma parede de bloco de rock
cobol ou, em seguida, também a ardósia IEP. Mas muito importante
é que você
só pode definir blocos que
existem dentro do seu MOD. Embora se eu não tivesse a camada profunda de cobalto
ou se eu adicionasse aqui, receberei um
erro quando tentei me
juntar a um mundo que é
muito importante. E depois há
mais três coisas que eu preciso. E esses são, bem, o nível de ferramenta que eu preciso
para esse nível diferente. Então eu posso basicamente
procurar por isso. Então você pode ver o bom diamante 200 precisa de
ferro para precisar de ferramenta de pedra. Mais uma vez, vou copiar
todos os três. Recomendo fazer o mesmo. É claro, também
todos disponíveis para você no repositório
do GitHub ou em um
indivíduo também. E então eu vou fazer isso e vamos apenas
dizer isso e, em seguida, a ferramenta de pedra também
se livra. E por exemplo,
digamos, você sabe, eu acho que cobol e
são ferramentas de ferro pelo menos. Então, o que vamos fazer
é eu vou dizer MSE curso dois pontos o
parafuso sublinhado bloco. E então você percebe,
sabe o quê? Vamos apenas pegá-los, copiá-los,
colocá-los aqui. Isso é um pouco mais fácil. Eles vão. Então, só poderemos minerar aqueles com
pelo menos uma ferramenta de ferro. E para cima, essa é a ideia. Então, ferramenta de ferro e acima, poderemos minerá-los agora, cada novo bloco que adicionarmos, você terá que
adicionar a essas tags. Provavelmente não farei
isso à medida que avançarmos. Eu definitivamente
não vou mostrar isso porque neste
momento, você sabe, se você já viu uma vez, você provavelmente deve
ser facilmente capaz de adicioná-los você mesmo. Deve ser bastante
simples, mas isso deve ser tudo o
que você precisa fazer. E agora depois de ter
adicionado as tags e as tabelas de alaúde, vamos
ver se funciona. Ou encontramos palavras em Minecraft. Então, vamos ver se eu posso minerar isso e eles vão o bloco cai. E aqui devemos pegar um pouco
cru para Walt e nós fizemos. Para que tudo
funcione totalmente bem. Vamos também tentar isso com
uma picareta de pedra e você
já pode ver que
leva muito tempo, então provavelmente não funciona. E você pode ver que não faz o
mesmo com o diamante AX. Demora tanto tempo para
mesmo como começar a ver que a animação de ruptura nem
vale a pena tentar. Claro que não
vai funcionar, já haveria isso para esta palestra aqui. Espero que você tenha
achado útil em termos do novo, mais uma vez, todos os arquivos JSON
estão disponíveis
no repositório do GitHub ou em
um indivíduo também. E te vejo
na próxima palestra. Então, sim.
47. TARde 6: de Receita e as tabelas de loots: Tudo bem, bem-vindo de volta
à segunda tarefa aqui para o curso para 118. E nesta tarefa,
você deve adicionar algumas mesas soltas
e algumas receitas. Então, as receitas que você
deve adicionar são o número 1. A receita para as pepitas. Para isso, posso colocar um lingote
e tirar nove pepitas. E então, é claro, o
inverso mais uma vez, onde eu posso basicamente
colocar nove pepitas
no banco de artesanato e
, em seguida, tirar um lingote. Isso é o número um. número dois é, você também
deve adicionar as receitas para o poço da ardósia
profunda, ou para ser fundido, bem como o cobalto cru ou para ser fundido. E então também ser capaz de
criar o bloco de cobalto cru para ele e, em seguida, de volta
novamente, basicamente também. E então mais uma coisa
é que você deve adicionar uma receita que contém
pelo menos dois itens de baunilha. Tão semelhante aos
diamantes de pilha de outra estrela. Com isso que fizemos aqui, só precisa conter dois itens do
Minecraft aqui. E então o resto
você pode basicamente preencher como
quiser. Isso pode resultar em
qualquer coisa que você
gostaria de ser
criativo, eles são, e apenas tentar um monte
de coisas, certo? Então boa sorte e
divirta-se com a tarefa. Então, sim.
48. SOLUÇÃO 6: as tabelas de Receita e loots: Tudo bem, bem-vindo a esta
solução para esta tarefa. E, claro, adicionando
as tabelas de luge, vamos começar com essas
teriam sido bastante
simples. Ano em que basicamente pegamos a tabela de saque do bloco de cobalto e a substituímos
pelo bloco cobol da linha. Então o mesmo vale para o cobalto profundo
ardósia ou mesa de pilhagem, onde em vez de
cobalto ou cai o cobalto tardio ou cobalto de
linha aqui
ainda deve cair normalmente. Então essas são as tabelas de alaúde. E então, quando
se trata das receitas, você pode ver que existem algumas. Agora, no geral, esses também devem ser bastante
simples, certo? A última coisa
do cobalto de ardósia profunda ou
será bastante simples, é a mesma que a normal,
apenas, você sabe, com o estado
profundo lá dentro. E praticamente o mesmo
vale para o resto. Tudo isso deve ser
bastante autoexplicativo. Todas as coisas consideradas.
Se alguma coisa, ainda não está claro ou você tiver
alguma dúvida, é claro, você sempre pode se sentir livre para usar o Q e um que é fornecido. E responderei às
perguntas melhor da minha habilidade. Mas, de outra forma,
isso
seria para esta tarefa aqui. Espero que você tenha achado útil
e os líderes do novo. Vejo você na próxima
palestra. Sim.
49. (Noções básicas de minecraft Basics: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um
item avançado personalizado ao Minecraft. Agora, o que eu chamo de item
avançado é basicamente um item que tem sua própria
classe associada a ele. Isso nem sempre significa que é necessariamente louco avançado, mas você basicamente tem
a capacidade de adicionar muito mais funcionalidade
a esse item. Então, vamos ver
como fazer isso. Em nosso pacote de itens. Vamos clicar com o botão direito do mouse em
novo pacote chamado Personalizado. E então dentro de
lá não faria uma nova classe Java com o botão direito do mouse
chamada item de haste de desvio. Eu recomendo terminar cada item personalizado com a palavra item para que
você saiba o que é. Isso ampliará a classe do
item aqui, passará o mouse sobre este super de criação,
construtor correspondente. E então basicamente daremos
uma olhada no que podemos fazer. Então, se
clicarmos no botão do meio do mouse na classe do
item, na verdade
poderemos ver todos os métodos diferentes que podemos substituir. E você pode ver que
existem muitos métodos que
podemos substituir aqui, o que é muito legal. E há mesmo
na parte de trás aqui, eu forjo item que
também podemos clicar no
botão do meio do mouse, e há ainda mais métodos
que podemos substituir. Você também pode ver os
métodos que podemos substituir se
digitarmos substituir aqui. E então você pode ver
basicamente todos
os diferentes métodos que
são possíveis para substituir. E isso é muitos métodos,
como você pode dizer claramente. Então, realmente muito disso
se resume a mais uma vez, experimentando um monte de coisas, experimentando um monte de coisas. E mais uma vez
experimentando um monte de coisas, sendo aberto à experimentação, provavelmente a melhor coisa que
eu posso basicamente te dizer. Agora vamos fazer
um item de vara de dowsing. E eu quero fazer com
isso é o seguinte. Quero poder clicar com o botão direito mouse com este
item em um bloco. E então, basicamente,
se estenderá até o chão. Basicamente,
dê uma olhada em cada bloco que está abaixo do bloco em
que acabamos de clicar. E se encontrar um bloco
valioso, ele imprimirá
as coordenadas.
Isso é tudo que eu quero fazer. Isso já é
uma ideia bastante interessante. Tudo o que vamos ver o método do
botão direito do mouse quando
você clica com o botão direito do mouse em blocos, porque há
dois métodos diferentes para clicar com o botão direito do mouse em Nanoblock
e clicar com
o botão direito do mouse no ar, por assim dizer Então, podemos simplesmente colocar em uso, e você pode ver esse
uso aqui. Este é o que
seria chamado. Esse método seria
chamado se apenas clicar com o botão direito do mouse no ar para que isso seja o que
você gostaria. O método US on
aqui é o método chamado quando você
clica com o botão direito do
mouse em um bloco específico. Mas este é o que
vamos substituir aqui e ver que ele tem
um uso no contexto. E o que vamos fazer é que
vamos, bem, vou colocar a
funcionalidade e vou tentar explicar melhor à
medida que vou adiante. Então, vamos ter uma declaração if em que
vamos perguntar basicamente o contexto p
que obtém um nível. Então, vamos pegar o mundo. O nível aqui,
vamos dizer é do lado do cliente. Então, nesta rara e rara instância, nós realmente queremos fazer
tudo no cliente
neste caso, porque na verdade
é um pouco
mais interessante para nós. Então vamos dizer
Block Pause, posição. Clicado é igual ao ponto
dos contextos, obter posição, DIA,
ser clicado, pausar aqui. E o módulo
irá importar isso pressionando Alt e Enter. Então queremos o jogador. O jogador vai
ser contextos, jogador
ponto-ponto-ponto que você vai. E então, mais uma vez,
clique no jogador e, em seguida, importe isso com o
Alton também. E então, por último, mas não
menos importante, teremos um livro booleano que será encontrado, que é igual a falso aqui. E então queremos um loop for. Então eu vou colocar isso em loop e
então vamos ver o que isso
basicamente faz. Mas vamos começar por aqui. Vou dizer que eu mais posição
igual cliquei nisso, obter y i plus plus. E então o que eu quero fazer
é basicamente querer obter o bloco que está abaixo do bloco que
acabei de ver. Então, bloqueie abaixo, que é
igual a ponto de contexto p , mais
uma vez obter nível ,
não obter bloqueio, data
na posição específica, que é a posição
clicada ponto abaixo, exatamente quanto
estou contando. E então estamos apenas
obtendo o bloco disso e importamos o bloco pressionando Alt
e Enter mais uma vez. Agora, o que eu
quero é que eu quero
produzir as coordenadas
e eu também tenho que verificar, ok, é esse bloco, você
sabe, algo valioso. Então, para isso, vamos
fazer dois métodos auxiliares. Agora, na verdade,
vou copiar sobre a saída das
coordenadas, certo? Este é o método de saída aqui. Então podemos ver que estamos apenas
recebendo o nome do bloco e depois colocando
as coordenadas dele. Então isso é tudo o que
realmente estamos fazendo aqui. E então também queremos
um booleano privado, antigo é um bloqueio valioso, que só leva
em um bloco aqui. E, em seguida, retornaremos um verdadeiro se este for um livro valioso, o que vamos fazer é
retornar
bloco igual à pesquisa de pontos de blocos ou, por exemplo, ou LOC igual, bloqueios ou, ou. E então vamos apenas duplicar isso terá
outra laranja aqui. Formate isso de forma um
pouco diferente. Aplique isso. Sim, e então
também colocaremos diamante ou talvez apenas
minério de ferro aqui também. E bloco de ferro, mas
ferro ou eles atrás. Então, esses são os quatro
blocos valiosos por enquanto. Se você quiser mais,
é claro que você pode adicionar mais em uma palestra posterior. Também veremos uma maneira mais robusta de fazer isso com tags. Mas, por enquanto,
isso vai ficar bem. Então o que vamos
dizer é que vamos dizer se for valioso, andar um quarteirão abaixo. Vamos exibir as
coordenadas na posição clicada abaixo com eu aqui, porque esta é a posição
real em que acabamos clicar com o jogador
e o bloco abaixo. Em seguida, definiremos o
bloco encontrado como verdadeiro. E então vamos
sair do
loop for aqui porque
encontramos um bloco. E não
precisamos mais basicamente fazer nenhuma verificação porque
só queremos produzir o
primeiro bloco que encontramos. E depois que
terminarmos o for-loop aqui, vamos dizer,
se não forem encontrados blocos. Então isso significa que nenhum
bloco foi encontrado. Vamos dizer dados
do jogador e mensagens com um novo componente de texto
traduzível. Item, dowsing do curso MC, ponto de
haste sem valor de sublinhado. E depois dos parênteses, o segundo parâmetro
será o jogador dot get UUID há um ano. Portanto, é claro que essa é uma maneira de enviar uma mensagem para o bate-papo. Agora, este é um componente de
texto traduzível, então temos que pegar isso
aqui e adicioná-lo ao arquivo JSON un sublinhado
. Então, vamos apenas
adicionar isso e apenas dizer que não há objetos de valor. Eu recomendarei usar componentes
traduzíveis
em todos os lugares que puder, basicamente deixando sua marca apenas um pouco mais robusta ou outros
países falantes também. Então, basicamente, quando
você tem outro idioma que torna um pouco mais agradável de ler
e usar agora. O que é o resto? O que está acontecendo aqui?
Bem, em primeiro lugar, nos
certificamos de que estamos no cliente. Este geralmente não é o caso. Normalmente, queremos estar no
servidor, mas neste caso, porque estamos apenas
produzindo algo
No cliente é bom
porque esse uso será, na verdade, duas vezes
no servidor e aqueles que o o cliente só
criará duas variáveis aqui. Então, a posição em que você
clicou e depois o jogador. E então vamos
do fundo do mundo até a
posição real em que clicamos. Isso vai ser y. E, e vamos começar
quando chegarmos a isso. Agora, o que realmente teremos que fazer é,
na verdade, teremos que
mudar esse pequeno pedaço
aqui no estado do bloco. Porque se eu colocasse um
número negativo aqui abaixo, é claro que
iremos
acima de repente. Então eu posso realmente
entrar nisso também. Vamos ver. Vamos para
a posição de baixo para, nesta distância. Agora, a verdadeira questão é, claro que a distância
aqui é negativa. E é claro que vamos
subir em vez de descer. E nós realmente queremos adicionar um 64 a isso porque, claro, em vez de 0 ser o
limite do mundo, agora
é menos 64. É por isso que basicamente
precisamos também fazer isso por um ano 64 e, em seguida, o resto
deve funcionar totalmente bem, porque o primeiro bloco que literalmente
vamos dar uma
olhada é o bloco em si
que acabamos de clicou. E então, quando eu me tornar um, então vamos descer
um e assim por diante e assim por diante até até
0 quando chegarmos a isso. Mas então a coisa sobre isso
é que então podemos continuar. Para abaixo disso. É por isso que adicionamos um 64 aqui. Então, no geral, isso deve ser
tudo o que precisamos fazer. Vamos para a classe Mais itens e vamos criar os itens. Vamos apenas copiar isso,
fazer desta a vara de dowsing. E então aqui a
mesma vara de dowsing. Agora, em vez de um novo item, este é um novo item de haste de dowsing. Isso é extremamente importante
que você faça isso. Por favor, note que este tem que
ser um novo item de haste de dowsing. Caso contrário, é claro que
não obterá essa funcionalidade. Muito cuidado com. Vamos adicionar a
tradução também. Então, há uma vara de dowsing, e então aqui
está uma vara de dowsing. Vamos copiar sobre o modelo de item da
Inglaterra aqui para a haste de dowsing. E mude o nome
aqui, vara de dowsing. E então também copiaremos a textura
da haste de dowsing para
a pasta de itens aqui. Vara de dowsing eles atrás. E agora isso deve ser tudo o que
vamos precisar. No entanto. Vamos ver se funciona. Tudo bem, nos encontramos no Minecraft e, como você pode ver, o dowsing ou foi
adicionado ao jogo. Vamos ver se eu clique com o botão direito do mouse. Bem, isso é uma
ótima coisa de se ver. Seu, é claro que não é
exatamente o que tínhamos em mente. Você não pode ver objetos de valor encontrados
que funcionem totalmente bem. Esta é apenas a
saída real é, claro, seria um
pouco mais agradável de ler, mas não se preocupe. Podemos ver a
posição real disso. E bem, quero dizer, isso é
absolutamente perfeito. Isso parece estar
funcionando totalmente bem. E tudo está bem. Agora,
na verdade, há duas coisas que também devemos adicionar, e isso está nas propriedades
do item, eu também devo adicionar a
durabilidade aqui. E isso seria,
digamos, por exemplo, 16, para que possamos usá-lo 16 vezes. E então
também devemos nos certificar que realmente
danificamos os itens. Então isso será feito
fora da declaração if. Vamos dizer
contextos P, ponto-ponto-ponto, colocar item na mão
que doem e quebram. Por um. Vamos dizer que contextos P,
ponto-ponto-ponto, pegue o jogador. Então vamos dizer que faça um parênteses onde
colocamos o jogador aqui,
depois uma, uma seta,
e então dizemos transmissão de pontos
do jogador, evento de
quebra com o
ponto da camada ser usado a mão do item. Então, isso basicamente
adicionará ou subtrairá uma durabilidade cada vez
que usarmos esse item. E então
isso basicamente garante que tenhamos alguma durabilidade. Eles são algo
que também
não podemos empilhar a haste de dowsing, o
que, claro,
faz muito sentido. Vamos também, então,
apenas por uma questão de argumento neste, vez de fazer o getName, vamos apenas fazer como item e, em seguida obter o nome do registro e
depois colocá-lo em uma string. Isso também deve funcionar. Isso eu acredito, então, deve
produzir dois pontos do Minecraft, e então qualquer que seja
o bloco real, o que é totalmente bom também. Esses são apenas alguns
ajustes aqui. Todo o código está,
naturalmente, disponível para você em um repositório do GitHub e
individual também. Mas isso seria para
esta palestra aqui. Espero que você tenha achado
útil em euros do novo, e eu te vejo
na próxima palestra. Então, sim.
50. (Noções básicas de minecraft Basics: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um
bloco avançado personalizado ao Minecraft. Semelhante ao item avançado. E o bloco avançado precisa de
sua própria classe separada. Então, no pacote de blocos, clique com o botão direito do mouse em novo
pacote chamado personalizado Mais ou menos,
vamos clicar com o botão direito nova classe Java chamada
bloco SPD. E o bloco de espírito
terá a seguinte
funcionalidade. Se
prosseguirmos,
teremos um efeito aplicado a nós. E esses
são os efeitos de velocidade de
movimento basicamente vão
ficar mais rápidos. Agora isso
amplia a classe de blocos, certificando-se de que escolhemos um
bloco de nível mundial líquido do Minecraft. Muito importante. E então passamos o mouse sobre esse construtor
credo
combinando super. E se o parâmetro
aqui não estiver mapeado, pode fazer é que possamos
clicar nele, pressionar Shift F6 e, em seguida,
escolher Propriedades aqui, apenas para que pareça
um pouco mais agradável. E então o método
que queremos
substituir é o método passo no método. Então, vamos
digitar isso e, em seguida, pressionar Tab dois.
Complete isso. E mais uma vez,
podemos clicar com o botão direito do mouse na classe de bloco e
podemos ver, bem, muitos métodos diferentes
que podemos substituir, provavelmente até
mais do que no item. E é claro que
não é isso porque também
há uma
interface de bloco I4 que tem
ainda mais métodos que você pode substituir isso. Você pode ver que isso
é loucura e
muitos métodos eu recomendo. Mais uma vez, está
aberto à experimentação. Você pode ver se eu comecei a
digitar substituir aqui. Existe o método dos EUA que é usado para
clicar com o botão direito do mouse ou bloquear. Existem métodos como adicionar efeito de aterrissagem
em efeitos de corrida. Isso é uma coisa louca. O bloco de colheita pode colher o bloco. Isso é como para um item
específico, Canvas colhe o bloco. Temos uma quantidade insana de coisas como você pode dizer
claramente tudo. Há o método destruir, Há o método de texto do
mouse da caneta
e, em seguida, alguns deles
estão obsoletos aqui. Agora, geralmente quando você tem um método obsoleto,
como, por exemplo, o método onRemove ou US. O método dos EUA é um
ótimo exemplo disso, nem sempre significa necessariamente que você não deve usá-lo. O que isso significa é que
você não deve chamar esse método, incluindo
o super legal. Mas isso é algo
para ter em mente aqui. Mas para nós, estamos apenas interessados
no método passo a passo. E o que queremos verificar aqui
é basicamente Nós não estamos
no cliente ou que
será necessário digitar é exclamação P
nível é do lado do cliente. Agora, esse ponto de exclamação
aqui é extremamente importante. Ok, não faça isso sem isso porque sem
o ponto de exclamação, estamos verificando um estrangeiro, os clientes que
queremos estar no servidor. Temos que negar
isso muito importante. Em seguida, queremos
verificar se
a entidade que pisou a entidade que pisou nisso é instância
de uma entidade viva. Isso simplesmente significa que podemos
lançá-lo sem problemas. Então, podemos dizer entidade viva. E a entidade é igual
ao elenco de ponto da entidade E. E então, na maioria das vezes,
sugerirá uma entidade viva já. Então isso é ótimo. E então o que podemos fazer é,
se for uma entidade viva, podemos chamar efeito de adição de pontos. E aqui nós só
queríamos
chamar basicamente uma nova instância de efeito mob. Aqui passamos em uma multidão efeitos
que o que quisermos, neste caso é velocidade de
movimento. E então o segundo parâmetro aqui será o comprimento. Então esse é o momento
que esse efeito tem. Se colocarmos um 200, isso seria 200 carrapatos. Então divida isso por 20 para obter a quantidade de tempo
em segundos básico. E você também pode adicionar
um terceiro parâmetro, e esse será o amplificador. Então este basicamente é
um amplificador aditivo, o que significa que se você não
tiver nada aqui, vai ser, você sabe, um, isso vai ser sp2, isso vai ser sp3
e assim por diante e assim por diante. Então essa é a ideia
geral aqui. Vamos colocar um só para
que possamos ver isso também. E bem, isso é
praticamente tudo o que precisamos fazer no reino da funcionalidade para
a força de bloqueio rápido. Agora ainda temos
que registrá-lo. Vamos apenas copiar
sobre o sono profundo cobol ou aqui e
vamos chamar isso de bloco de sublinhado
do SPD. E então o nome é
a mesma coisa, bloco de sublinhado
rápido. Então, muito importante. Mais uma vez, este é um bloco rápido desta
vez e não um bloco normal. As outras coisas com as quais estou
realmente feliz, agora só vem
para os arquivos JSON que vou copiar. Todos eles estão disponíveis
para você, é claro, no repositório do GitHub ou em
um indivíduo também. Veja que este é apenas um modelo de bloco
normal. Jason. Então vamos copiar
sobre este
aqui e dizer bloco de
sublinhado ET. E então o nome
será um bloco rápido como cópia sobre o modelo de
bloco também. Mais uma vez, para algum modelo de bloco
normal que, que aponta para uma textura. E o modelo do item
também não possui nada louco ou espetacular. É apenas um modelo de item normal,
como vimos para muitos outros blocos que simplesmente apontam para o modelo de bloco. Por último, mas não menos importante, é claro, vamos também adicionar
textura e ego. Agora adicionamos tudo o
que precisamos adicionar. No entanto, vamos ver se funciona. Ou ofensas de volta e
enxaquecas podem ver que a SVD quebrou foi
adicionada aos jogos. Vamos apenas configurá-lo para baixo. E o que é muito
importante é
que, enquanto essa seta
aponta para essa direção, ela sempre apontará
para essa direção não importa como eu a coloque. Vamos apenas ter isso em mente. Porque essa textura
basicamente sempre vai apontar
na mesma direção. Vamos ver
em uma palestra posterior como isso pode mudar. Vamos para a escola aqui e
você pode ver que eu já tenho velocidade para me candidatar
enquanto estou lá. Vou fazer isso se aplicar
a mim constantemente. Mas assim que eu sair, você pode ver agora
que eu tenho velocidade também. Este pode ser um bloco muito
legal, por exemplo, para qualquer tipo de mapa de
aventura ou como mapa de
parkour possivelmente borracha que já
seria para
esta palestra aqui. Espero que você tenha achado útil
em termos da nova força. Mais uma vez, todo o código
está disponível para você
no repositório do GitHub ou em um
indivíduo também. Vejo você
na próxima palestra. Então, sim.
51. (Noções de basics de minecraft bass: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra,
vamos adicionar um item de combustível personalizado
ao Minecraft. Adicionar um item de combustível personalizado é, na verdade, bastante
simples. No entanto, na verdade precisamos fazer uma nova
aula para isso. Então, em nosso
pacote personalizado aqui, clique com o botão direito do mouse em nova classe Java
chamada item de carvão. E isso vai
estender a classe do item. Vamos passar o mouse sobre essa criação,
construtor combinando super. E então realmente a única
coisa que precisamos fazer é precisamos substituir
um método específico. E isso é D ter tempo de queima. Bem aqui. clicar duas vezes sobre isso
e, em seguida,
retornaremos o tempo que esse item
real levar para gravar. Agora, para nossos propósitos, vamos fazer por um 100. Mais uma vez, esse é
o tempo que leva, então isso é muito importante. E, por exemplo, o carvão
tem um tempo de queima de 1600, então isso é exatamente 1 quarto, tão bom quanto as feridas. Agora vamos à nossa classe
mais itens e vamos apenas copiar
sobre a haste de dowsing. Esta será a lasca de sublinhado de
carvão. E no mesmo ano o carvão
sublinha lasca, certificando-se de que não
temos durabilidade nisso. Isso é muito importante. E que estamos criando um novo carvão um
item de lasca aqui. Além disso, isso é
tudo o que precisamos fazer. Claro que ainda
precisamos de um modelo de item. Vamos apenas copiar sobre
o modelo do item
do lingote de cobalto e chamaremos isso de “sliver” de sublinhado de carvão. E depois mudando
este ano também. Legal, vamos sublinhar o fígado. Não se esqueça de adicionar a
tradução também. Vamos sublinhar lasca. Pior nomear isso
a força hepática do OLS. E, por último, mas não menos importante, como também copiar sobre
o item também. Aqui mesmo na nossa pasta de
itens para introdução, a
pasta de itens de texturas que eles atrás. E isso é tudo o
que precisávamos fazer. Então, vamos ver se ele funciona ou faz
referência no Minecraft. E vamos ver a
costa do marido adicionada. E é claro que
funciona totalmente bem. E você pode ver que
o fogo basicamente diminui bem, com bastante rapidez. Tudo considerado, deve ser basicamente 20 segundos
que há queimaduras, então deve ser suficiente
para exatamente dois itens. O cheiro completamente,
basicamente exatamente 1 quarto do que o item principal real
é que somos capazes de fundir. Então eu diria que é muito legal. Tudo bem, e isso é realmente
o quão fácil pode ser adicionar o
item de combustível personalizado ao Minecraft. E sim, infelizmente, o que você
terá que fazer é sempre ter que fazer
uma nova classe personalizada aqui, o que você também pode fazer
em teoria é que você pode fazer uma aula anônima
nos mais itens aqui. Mas eu apenas sugiro fazer
isso assim porque isso é
muito mais fácil de fazer. Vamos ser honestos, porque isso não é muito louco para fazer. E também deve estar bem. Você sempre pode
fazer um novo pacote fantasiado como itens
de combustível
e, em seguida, basta colocar todos os seus itens lá dentro se você realmente gosta de
irritado com isso, com essas aulas, Isso também
deve ser possível. Caso contrário, isso seria
para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. E eu vou te ver na
próxima palestra. Sim.
52. (Noções de alimentos) item: Tudo bem, bem-vindo de volta
à sala de curso forrageira 118. E nesta palestra
vamos adicionar um item de comida personalizado ao Minecraft. Para adicionar um item de comida personalizado,
na verdade, não é tão difícil. Você basicamente só precisa
de um novo item normal. Então, só precisamos de um novo item aqui. E isso vai
ser um nabo. E, claro, o mesmo
acontece aqui, nabo. E então, quando precisamos
fazer, precisamos chamar o método de comida de ponto aqui e passar
algumas propriedades alimentares. Agora, em vez de adicionar essas propriedades
alimentares na linha, o que vamos fazer
é fazer uma nova classe e o pacote de itens clicar com o mouse em nova classe Java
chamada “mode woods”. E então lá, você pode
basicamente criar essa comida. O exemplo de baunilha
seria a classe da comida. Então pressione Shift duas vezes
e coloque alimentos aqui. Certifique-se de
marcar a inclusão de itens que
não são do projeto aqui. E então podemos abrir
isso e eles vão, agora você
tem basicamente acesso a todas as propriedades alimentares
que Bonilla também oferece para que você basicamente possa saber o que
você deve adicionar lá. Então, vamos adicionar nossa
própria propriedade de comida aqui, então faremos uma estática pública. As propriedades finais e boas
aparecerão. E então isso é
igual a um novo alimento de festas que construtor. E vamos
adicionar nutrição. Mas esse é o número de AF se encontra basicamente que
você é restaurado. O modo de saturação é basicamente a coisa que
acontece em segundo plano. E então, apenas para
que você o tenha visto, você também pode adicionar um
efeito aqui, como você pode ver se podemos apenas usar aqui um fornecedor de uma nova instância de
efeito mob de, por exemplo, os efeitos móveis, essa velocidade de movimento ou
digamos 200 ticks novamente. E então você também passa em uma probabilidade com que
frequência isso acontece. Então, se você, por exemplo,
disser, sabe o quê? Na verdade, só quero que isso
aconteça 10% do tempo. Então você coloca no ponto 1 f. Então, no final, você
sempre precisa terminar com um ponto construído aqui e o ego. E isso é basicamente
o nabo feito. E agora este ano
será chamado aqui. Vamos apenas dizer
mod de alimentos que aparecem. E eles atrás, isso é
tudo o que precisamos
fazer para adicionar o item alimentar personalizado. Agora, é claro, ainda
precisamos tanto da textura quanto do
modelo de item arquivo JSON ls. Agora esqueça, e a
tradução aqui também. Nabo é, claro, um verbo. E este será
o modelo de item de nabo é
um modelo de item normal, como
vimos muito tempo agora, que simplesmente aponta para essa textura
singular aqui. E bem, depois de ter
adicionado tudo isso, vamos ver se funciona ou
ofensivo no Minecraft. Então, vamos comer o nabo. Como você pode ver,
foi adicionado e reabasteceu exatamente
uma barra de fome. Então a ideia é que, claro, se você colocar duas, isso encheria duas metades, ou
seja, um lago,
uma perna de galinha, uma basicamente encontraria
bar ali mesmo. Certo? Então é assim que pode ser
fácil adicionar comida personalizada ao Minecraft. Certo? E isso se preocuparia pouco com
esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. Vejo você
na próxima palestra. Então, sim.
53. (Noções básicas de ferramentas) personalizadas: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar uma dica de ferramenta personalizada ao Minecraft. E o que é uma ferramenta personalizada? Bem, é exatamente o
que você vê quando passa o mouse sobre
um item específico. Mas antes de tudo,
o que vamos fazer é adicioná-lo ao item
da haste de dowsing porque
geralmente precisamos de uma classe de
item personalizada para isso. No entanto, também
veremos como podemos
fazê-lo e basicamente adicionados
aos blocos também, porque isso é
algo que muitas pessoas têm pedido
no passado. Então eu queria
mostrar isso também. Então, vamos
começar substituindo o
método append Hover Text aqui. Então, vamos apenas digitar uma caneta Hover Text e
,
em seguida, preenchê-lo automaticamente
com a tecla Tab. E então não
precisamos mais disso porque o que queremos
é que queremos passar o mouse sobre a
haste de dowsing real e então ela vai dizer algo como Redshift
para obter mais informações. E então, quando
pressionamos Shift, podemos basicamente ver a dica de ferramenta real.
Mas como fazemos isso? Bem, vamos ver se
tela isso como mudar para baixo, então vamos
fazer outra coisa. Vamos fazer outra coisa. E a única coisa que
vamos fazer é dizer que os componentes da dica de ferramenta adicionar pontos. Vamos usar um
componente
traduzível mais novo aqui. E a chave será ponto
de dica de ferramenta,
ponto, dowsing, rodada de sublinhado. Sobre, basta dizer
dica de ferramenta, esse turno. Mais uma vez, muito importante. Essas chaves são
consistentes com ele. Essa é a coisa mais importante. Neste caso. Acho
que está tudo bem. Podemos simplesmente copiar isso. E então aqui embaixo
vamos dizer sem o turno. Agora, onde definimos
isso, mais uma vez, assim como fizemos aqui, apenas
definimos isso dentro
do arquivo JSON dos ienes. Assim como fizemos aqui em cima. Nós definimos isso no arquivo JSON da pontuação
ENR. Nós só vamos fazer
isso no fundo aqui, este. E então isso vai se
parecer com o seguinte. Então, o turno um é aquele que realmente aparece
quando você segura o turno. E vai clicar com o botão direito do
mouse para encontrar objetos de valor. E vamos
duplicar a linha pressionando Control D e remova
o turno aqui. E então isso basicamente solicita
que o usuário pressione Shift. E a maneira como podemos
fazer isso é que podemos colocar um
símbolo de parágrafo aqui,
E, elevador e símbolo de parágrafo r. E isso fará com que isso seja
uma cor diferente. Vou vincular os recursos, um ótimo recurso para basicamente
ver esses códigos de cores. Eu
recomendo dar uma olhada nisso. Basicamente, eles são
os códigos de formatação que você também pode usar
qualquer livro do Minecraft. Eu
recomendo dar uma olhada neles porque então você pode
basicamente colorir qualquer coisa que
quiser e você pode torná-lo bem legal,
tudo considerado. Mas sim, isso é realmente tudo
o que precisamos para o item. Vamos então passar
para os blocos. Os blocos são um
pouco diferentes, mas também são
bastante simples. Então, não vamos fazer isso
para o bloco rápido, nós realmente vamos fazê-lo. Bem, vamos substituir esses
dois métodos, certo? Então, o que isso significa? Bem, vamos apenas
copiá-los antes de tudo, e depois vamos receber
um erro porque, bem, temos dois métodos que
correspondem a outros métodos. Mas o que podemos
fazer é apenas
adicionar um novo parâmetro aqui. E isso só vai
ser uma corda. E essa será
a chave da dica de ferramenta, então a mesma coisa
vai acontecer. Então, vou copiar isso
para o método do bloco de registro. E então você pode ver
todos os trabalhos novamente. Porque então o que
vamos fazer é também passar isso aqui. Então, a dica de ferramenta, ele será passado aqui. E então aqui, em vez
de apenas criar um item de bloco normal
depois deste, vamos fazer
uma aula anônima. E então aqui podemos apenas
anexar o texto do mouse. Então aqui o que vamos
dizer é que vamos
dizer adicionar pontos de dica de ferramenta. E então vamos dizer um novo componente traduzível com a chave de dica de ferramenta que
passamos lá. E lá vai você. Agora isso só será
chamado se realmente adicionarmos uma dica de ferramenta e ao final
do bloco aqui. Então, se eu não adicioná-lo, então, ele só vai
criar o bloco sem ele. Se eu adicioná-lo,
posso simplesmente fazê-lo. Por exemplo, vamos fazer o bloco SPD porque isso
não faz muito sentido. Então podemos dizer,
por exemplo, ferramenta,
ponta, ponto, fechaduras ou bloco. Isso realmente não importa. Bloqueio rápido,
digamos, por exemplo. E isso
adicionará uma dica de
ferramenta específica com o bloco SPD. Só temos que agora colocar
isso aqui também. Então, algo como ele fica
muito acelerando assim. E isso também será
exibido quando passarmos o mouse sobre
o bloco SPD. Isso é, na verdade
, o quão fácil pode ser adicionar isso também. Bem, blocos específicos também. Agora, não teremos a funcionalidade específica
do turno de espera. Também poderíamos, naturalmente,
acrescentar uma forma particular
que também funciona. Mas qualquer modificação aqui, realmente com um
pouco de conhecimento Java, tenho certeza de que você irá
gerenciá-las também, certo? Então, agora depois de
adicionarmos os dois, vamos ver se eles funcionam ou nos
encontramos de
volta ao Minecraft. Então, vamos ver, lá vai você. Desviando mais pressione
a mudança de mais informações. É claro que funciona
na guia sem criatividade ou
no inventário real. E se eu segurar Shift
clique com o botão direito do mouse para encontrar objetos de valor, exatamente como gostaríamos. E então aqui está o bloco SVD. Ele fica muito rápido,
também mostra isso. Isso é realmente
incrível e é
praticamente o quão
fácil é adicionar as dicas de ferramentas personalizadas
ao Minecraft. Tudo bem, e isso já
seria para esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Se você o fizesse, eu
agradeceria muito uma revisão sua. Caso contrário, eu o verei
na próxima palestra. Sim.
54. (Noções básicas de minecraft Basics sobre tags: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra,
vamos adicionar tags
personalizadas ao Minecraft. Portanto, tags personalizadas, essas não
são as tags de nome. Essas são, na verdade, tags sobre as quais
falamos anteriormente com as etiquetas mineráveis
e as etiquetas de ferramenta de agulha. Basicamente, o que
vamos fazer é agora vamos criar não
apenas nossa própria tag personalizada, mas também
veremos
como você pode adicionar tags ao namespace forge. E isso pode ajudar com a
compatibilidade entre seu pacote de cursos MOD e outros meses
MC, vamos clicar com o
botão direito do mouse em novo pacote chamado
pacote util aqui. E então lá dentro,
vamos criar uma nova classe Java chamada
de tags modelo Veeam. Agora, as etiquetas do motor
terão a seguinte aparência. Então, isso é basicamente
modelado após as tags de laranja aqui. Então eles têm basicamente
duas classes estáticas, quando blocos classe e
quando classe itens. E aqui também é muito interessante ver
basicamente algumas
das tags opcionais que elas
já predefiniram. Basicamente, você também
pode adicionar coisas. Então isso é muito bom. Eu posso recomendar
dar uma olhada nisso. Então o que vamos
fazer é dizer classe estática
pública
chamada blocos. E, abaixo, uma classe
estática pública, itens legais. Eles atrás e agora, na
classe de blocos, vamos precisar um
ponto de tags estáticas privadas opcional nomeado
tag of type block. Vamos chamar a tag
do método com um parâmetro de nome de string. Vamos importar a classe de bloco, certificando-se de que escolhemos
o
bloco de nível mundial correto do
Minecraft, é claro. E então podemos retornar o ponto de etiquetas de bloco lidas opcional com um novo local
de
recurso do nosso mod de curso MC, mod ID e o nome. Isso é tudo o que precisamos fazer. E então
vamos copiar isso. E vamos
chamar o outro, a etiqueta laranja está aqui. Criamos uma tag forjada. Em vez de r mod ID. Vamos passar
no namespace Forge. E então podemos pegar os dois métodos e simplesmente
copiá-los para
a parte inferior aqui e apenas mudar isso para item, o mesmo
com este. E então, em vez de
etiquetas de bloco, temos tags de item. O ego e as classes
são basicamente construídas. Agora a questão é, bem,
o que queremos aqui? Bem, vamos primeiro adicionar nossa própria tag personalizada que
será uma estática pública. As tags finais são tag
nomeada opcional do bloco de tipo. E este
será o
sublinhado da haste de dowsing valioso, igual a um novo para marcar. E então diminuindo sublinhado,
sublinhado batalha. Agora, o que isso faz? Bem, no momento,
não faz nada, mas depois podemos referenciar isso e tudo o
que estiver dentro
dessa tag será
avaliado de alguma forma. Para adicionar coisas à tag, vamos até
núcleos MC e, em seguida,
vamos criar um novo
diretório aqui chamado tags. E então, dentro de lá, vamos apenas criar um novo arquivo. Na verdade, há esse nome, então dowsing, objetos de valor
sublinhados de haste. E é muito JSON, muito importante que
os nomes aqui correspondam. Minha vida um pouco mais fácil. Vou copiar sobre o,
você sabe, a forma como
a coisa está estruturada. E então eu
também
copiarei a totalidade
do conteúdo. Todos eles estão
disponíveis para você
no repositório do GitHub e
individuais também. Isso torna um
pouco mais fácil aqui você pode ver
basicamente eu tenho o cobalto ou assim como um monte de outros minérios aqui também. E você ainda
pode ser como Sim, mas o que isso faz, ok, agora temos uma etiqueta para isso. Como podemos fazer algo com ele? Bem, no item da haste de dowsing, você se lembra que temos esse método de bloco
valioso, onde
tivemos que passar em blocos
manualmente, por assim dizer. E agora o que poderíamos
fazer é dizer mais tags que bloqueiam, esse gaussiano ou objetos de valor
que contém bloco. E isso apenas retornará se o bloco
que passamos
aqui está contido na aqui está contido na etiqueta de objetos de valor
da haste de dowsing, e é isso. Isso é tudo o que precisamos fazer. E agora podemos expandir isso
praticamente infinitamente. Outros modos podem se expandir. Isso só torna nosso mod 10 vezes melhor em
termos de compatibilidade. E enquanto estamos em
compatibilidade nos itens, vamos adicionar também, final estático
público, tags, ponto-ponto-ponto, etiqueta nomeada
opcional, item
ou lingotes de sublinhado de parafuso. E isso é igual
a uma etiqueta forjada. Sob lingotes são ousados. E então vamos
apenas duplicar isso. Eu também vou
colocar as pepitas só para mostrar basicamente, então este seria o veículo dela. Agora, por que iríamos querer fazer isso? Bem, antes de tudo, há duas distinções
que precisamos fazer. Se criarmos uma
tag opcional aqui
neste modo classe fiscal que não
necessariamente faz nada. Isso só nos
permite especificar ou
referenciar certas
tags que
criamos como esta
dentro do nosso código. Isso nem sempre é necessário, mas
às vezes pode ser necessário. Então, para nossos propósitos,
vamos criar uma nova pasta na pasta de dados
chamada Forge. E então, dentro de lá,
vamos criar uma nova pasta chamada tags. E então, dentro de lá, vamos criar uma
nova pasta chamada itens. E então, dentro de lá, vamos criar outra
nova pasta, lingotes antigos. E, finalmente, lá,
clique com o botão direito do mouse em novo arquivo
chamado cobalts JSON. Agora, mais uma vez, vou
realmente copiar o conteúdo deste
aqui para que tenhamos a estrutura tributária básica. E então eu só vou
dizer MC curso, cólon ou parafuso
sublinhado Inglaterra. Agora eu adicionei
meu lingote de cobalto, a etiqueta forjada de lingotes de cobalto. Agora, o que o LSAT
escrever assim não
nos leva a lugar nenhum. Tipo, por que faríamos isso? Vamos dar uma olhada nisso. Se eu tiver uma receita na qual
usei o inglês de cobalto, talvez nosso 1D ou outros modos
que adicionam cobalto também, você sabe,
para que isso também seja usado. Mas agora posso dizer em vez
de item, digo tag
e, em vez disso,
digo forge, um novo namespace. Estamos sob lingotes de cobalto. Agora, qualquer coisa que seja
adicionada a esta tag pode ser usada aqui para
criar esta receita. E isso é insanamente poderoso, especialmente quando, você sabe, você tem um grande mod
pack, você sabe, você quer torná-lo mais
compatível entre si. Isso é uma coisa ótima,
como muito legal. Definitivamente pense
nisso, dê uma olhada nisso. E sim, isso é praticamente
os dois, bem, razões significativas. Eu diria que você pode
querer adicionar tags aqui, certo? Vamos adicionar
mais uma coisa aqui. E isso vai ser um público que evitar chamado de método
de registro. Como só precisamos
registrar
essas duas classes porque elas
são inicializadores estáticos. Há alguns instáveis nos EUA. Eles são, nós
só teremos um bloco de tags de registro com
basicamente nada nele. Tudo bem. E o novo equipamento, e
vamos chamar isso tags
de item de cavalo. E aqui
vamos chamá-lo de blocos, não bloquear tags e itens, registro de
dados item 10. E que esse método de registro será simplesmente
chamado aqui. Então, vamos
dizer mais tags dot, qual é o ego, certo? E há, claro, um
pequeno erro de digitação aqui. Então, na verdade, isso
precisa estar
na categoria de registros. Lá vai você. E então tudo
deve funcionar bem. Então, agora vamos ver Para obras ou finanças ou
pacote e Minecraft. Então, vamos ver se o cobol
Ingrid funciona. E lá vai você. Claro que o
artesanato ainda funciona. Isso é ótimo. Vamos pegar a vara de dowsing e
vamos ver, lá vai você. Posso até encontrar coisas muito cedo e posso até encontrar coisas
que não consegui encontrar antes, como o ouro do
estado profundo ou, ou a profunda guerra de Redstone. Portanto, a tag real também funciona. Isso é ótimo, certo? Mais uma vez, todo o
código está disponível
no repositório do GitHub e
individual também. Mas isso já será
para esta palestra aqui. Espero que você tenha achado isso útil e tenha aprendido algo novo. Vejo você
na próxima palestra. Então, sim.
55. (Noções básicas de tela) escadas e lab: Tudo bem, bem-vindo de volta
ao curso florestal para 118. E nesta palestra,
vamos adicionar escadas e
lajes
personalizadas ao Minecraft. Agora isso começa uma
pequena seção, por assim dizer, de blocos que
não sejam blocos como eu gosto de chamá-los. Isso incluirá, como eu disse, escadas e lajes, bem
como cercas,
cercas, paredes, botões, placas de
pressão, a porta e o alçapão. Então, haverá basicamente
as próximas quatro palestras. E bem, vamos começar. Então, na classe Modocs, o que vamos fazer é
apenas copiar,
digamos que o
sono profundo ou aqui porque isso é um pouco mais fácil
para nós no momento. E então
vamos chamar isso
de escadas sublinhadas de cobalto. E então aqui, é claro, também, sublinhados de
cobalto, deles. Oh, então copie isso e
faça as lajes fora dele. Então lajes, na verdade
laje, muito importante ,
mas escadas, é Laurel e
com a laje, é singular. E então aqui isso
vai ser um bloco de escada, enquanto isso vai
ser um bloco de laje. E o bloco
realmente recebe um, outro primeiro parâmetro
que será um aplicador de blocos ponto cobalto, ponto bloco ponto ponto obtém o estado de bloco padrão
ou padrão. Este é apenas o bloco basicamente do qual as
escadas são feitas. Isso vai ficar bem nisso. Vamos fazer os dois materiais metálicos apenas para que tenhamos isso. E depois, além
disso, estou muito feliz com isso. Agora, a coisa sobre todos
os blocos não bloqueados é que
o registro real? Bem, isso é um ano bastante fácil. O que é realmente o máximo que eu diria, não
necessariamente irritante ,
mas vai ficar chato quando
chegarmos às portas e coisas assim porque
haverá muitos arquivos JSON. Vamos apenas copiar
os arquivos JSON antes do IRS e das lajes. Então, o que você vai antes de tudo, observe apenas abrindo
as escadas de cobalto um, há muitas coisas aqui mais do que havia antes. Então, a primeira coisa que
quero dizer é que todos os arquivos JSON estão
disponíveis para você no repositório do GitHub
ou em um indivíduo. Não digite isso. Isso é loucura, ok, não
faça esse
pior cenário. Se por qualquer motivo você não
puder baixar algo para mim, você sempre pode ir para
o Assets, Minecraft, então basicamente
bibliotecas externas e cliente de microondas extra
181 e depois para o, para os estados de microbloco de ativos. E então você pode simplesmente pegar as
escadas de Keisha, por exemplo. Você pode ver que eles são
basicamente exatamente os mesmos. A única diferença aqui é
o MOD ID e o nome. E vou
te mostrar um truque rápido. O que você pode fazer é selecionar isso e , em seguida, pressionar Control R. E aqui, por exemplo, basta
mudar o lema De. Se você tiver um ID de modelo
diferente Substituir tudo e, em seguida, ele
substituirá todos eles. mesmo com o nome
das escadas reais, à direita, é selecionado pressione Control R e
então você pode alterá-lo. Você tem titânio, por exemplo, Twitter para titânio e ego. Então isso é uma coisa muito
boa de se ter. Eu recomendo fazer
isso se você realmente
quiser mudar alguma coisa, mas definitivamente não
digitar
isso, isso seria loucura. Agora, o que tudo
isso está fazendo, certo? Portanto, temos
variantes específicas aqui, e a variância é definida
por propriedades de estado de bloco. Agora bloqueia as propriedades que
vamos falar em uma palestra posterior
por enquanto, vamos
pensar na ideia de que certos blocos no mundo podem ter propriedades diferentes. Certo, isso não deve
ser muito louco. E então, dependendo
dessas propriedades, à direita, se as
propriedades de revestimento Leste e a meia propriedade forem inferiores e as
propriedades de forma à nossa esquerda, então vamos mostrar um determinado modelo com uma rotação
específica aqui. E, em seguida,
o bloqueio UV,
apenas bloqueia basicamente a rotação da textura para que ela não
gire com o bloco. Isso é que, você sabe, não é muito importante neste caso. Esses são realmente os
mais importantes. E sim, isso é basicamente então aponta para um modelo
diferente. E o que você verá é que
temos as escadas de cobalto no
interior e, repente, temos
as escadas de cobol exterior e aqui temos
apenas as escadas de cobalto. Então, o que você
já deve ter adivinhado é que
haverá vários arquivos de modelo de
bloco para, bem, as escadas
e também as lajes. Mas antes de adicioná-los, vamos realmente adicionar a
tradução primeiro, só para que não a esqueçamos
porque isso às vezes
pode acontecer. Só vou
copiar sobre o pedido vai ser a escada de cobol. E a laje de cobol será
a laje de cobol. E aqui há branco e , em seguida, posso copiar sobre
os arquivos JSON modelo. Então, o modelo de bloco Jason
arquivos, como eu disse, todos eles estão
disponíveis para você
no repositório do GitHub ou em
indivíduos também. Agora, esses só
serão cinco. Na verdade, não é tão ruim. E a coisa sobre isso, eles mesmos são, na verdade,
bastante simples. Como se você olhar para isso, por exemplo,
não há nada muito louco, não é? Então o pai aqui é
diferente, isso é laje. E então temos três texturas
diferentes. Mas, na verdade, o OH aponta para o bloco de cobalto
porque é claro a laje de cobol simplesmente se
parece com metade
de um bloco de cobol. E quando eles estão em cima um do outro, o que é chamado de bloco. Então eles vão e depois o
mesmo com o primeiro. Parece exatamente o mesmo,
exceto para os pais. Vamos também dar uma
olhada nessas escadas apenas por causa da conclusão. E você verá rapidamente
que, de repente, não
é realmente tão louco. É só que os pais
são diferentes. E o pai basicamente determina
apenas a forma do bloco real que
está sendo exibido. Você pode ter escadas
que são escadas normais. Quando você adiciona escadas
em um ângulo de 90 graus, você sabe que elas meio
que têm uma forma diferente. Isso basicamente é literalmente o que os pais aqui fazem. E as texturas permanecem as mesmas. E se trata dos modelos de itens. Eles são, na verdade, bastante chatos. Todas as coisas consideradas, são
apenas modelos de itens normais. As escadas apenas apontam para as escadas e a laje apenas aponta para
a laje normal. Agora, o que é realmente
legal é que não precisamos adicionar texturas
porque todas
as texturas que as escadas e as lajes usam são
o bloco cobol. Portanto, você não precisa
adicionar texturas. E com isso, isso está
realmente bem, basicamente feito. Oh, eu acho que por causa de conclusão, vamos ver se funciona ou se
referir em
microfinanças pode ver tanto as escadas
quanto esses laboratórios foram adicionados
com sucesso ao jogo. E tudo aqui
está funcionando muito bem. Posso colocá-los bem da maneira
que eu quiser. Então, isso não é ótimo? Isso é realmente o quão fácil
é adicioná-los ao Minecraft ou onde quer
que já seja para
esta palestra aqui. Espero que tenha sido útil
no novo, mais uma vez, todo o código no arquivo
JSON esteja disponível no repositório
do GitHub,
onde um indivíduo acaba. E te vejo
na próxima palestra. Então, sim.
56. (Noções de bastimentos personalizadas e chapões de pressão: Tudo bem, bem-vindo de volta
ao curso florestal para 118. Nesta palestra,
vamos adicionar um botão personalizado e uma
placa de pressão ao Minecraft, certo? Então, mais uma vez, as placas de botão e pressão são realmente
bastante simples, ou o registro em si é apenas os arquivos JSON
que são um ano louco. Mas vamos apenas adicionar um botão aqui e, em seguida, todo o botão salvar. Este será um bloco de botão de
pedra porque não
há
bloco de botões de metal neste caso. E então muito importante, o que também precisamos de uma
chamada é que precisamos
chamar a não colisão
aqui. Mas podemos basicamente
percorrer o bloco sem problemas. E então, para a
pressão do cobalto sublinhado tarde. E aqui, o sublinhado móvel, pressão sob o roteiro
atrasado, é claro será um bloco de
placa de pressão 0. E isso, na verdade, leva um outro primeiro
parâmetro, que será a sensibilidade. Só vamos
escolher tudo. No botão do meio do mouse, clique
no bloco da placa de pressão. O
método de intensidade do sinal aqui é basicamente
responsável pela sensibilidade. Como você pode ver,
há um interruptor
aqui , tudo e mobs. E uma ideia geral
é que, se você realmente quer ter uma sensibilidade
diferente, você pode conseguir
esse método sobrepondo basicamente
e, em seguida, mudar um
monte de coisas aqui. Recomendo muito algum
conhecimento Java que definitivamente é necessário para fazer isso e ser, ter algo de trabalho, mas
deve ser viável, certo? Então, agora vamos passar
para os arquivos JSON. Isso primeiro de tudo realmente adicionou a tradução porque
isso vai ser, bem, a coisa mais fácil vai
levar isso rapidamente para que você possa
ver o botão de cobalto e
a placa de pressão cobol e, em seguida, os arquivos JSON loucos. Agora, mais uma vez, todos eles ainda
estão disponíveis para você
no repositório ou em um indivíduo
tão bem quanto sempre. E isso vai ser loucura. Então, a placa de pressão na verdade, quero dizer, isso é como, bem sagrado. Escrevê-lo seja falso,
então, ligue ou não. E então, ou mostramos
a pressão para baixo ou a placa de pressão
normal, há o suficiente. E o botão? Bem, o botão é
um pouco mais louco. Então o botão aqui,
como você pode ver, como mais uma vez em três propriedades de data de
blocos diferentes, e dependendo deles, basicamente
mudamos, em
primeiro lugar, para
que modelo ele aponta e
também a rotação aqui. Então isso é muito
louco. Mas, felizmente, o
botão
tem apenas três modelos de
blocos diferentes, enquanto a placa de pressão, como vimos, só tem dois. Então, mais uma vez, trabalhe às cinco. Vamos copiá-los e vamos dar
uma olhada neles. Mas, no geral, a placa de pressão, como você pode ver, mais uma vez, apenas aponta para a textura
do bloco de cobalto é apenas
um pai diferente. Então o modelo de bloco Jason está
aqui, não é realmente interessante. O mesmo com todos os botões. Não é nada muito louco. Portanto, isso é algo que
vai ser
uma espécie de coisa que acontece para a maioria dos arquivos JSON de modelo de
bloco diferentes reais
para os blocos que não sejam blocos. Eles não são realmente
tão interessantes. Há apenas muitos
deles para que você possa basicamente definir qualquer coisa
que você gostaria. E isso
praticamente também se estende aos arquivos JSON do modelo de item. Você pode ver isso inventário geral
do bloco e isso apenas aponta para
a placa de pressão normal. Mais uma vez, não precisamos adicionar nenhuma textura é porque todas
as texturas para
as quais ela aponta sempre
serão o bloco de cobalto. Portanto,
na verdade já terminamos. Mais uma vez, tudo o que você
pode copiar da essência. Então, o GitHub, eu
recomendo isso. E vamos ver se
funciona ou por que achamos
suspeito em micro. Como você pode ver, tudo
foi adicionado e
também funciona totalmente
bem. Isso não é ótimo? Você pode ver tudo funcionando exatamente como você
esperaria. E isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
57. (Noções de a a carca e correios de cercas e paredes: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos
adicionar cercas ,
cercas, portões e
paredes personalizadas ao Minecraft. Então, isso é mais
uma vez, um
exercício bastante simples. Todas as coisas consideradas. Há, Vamos apenas entrar
na classe mais blocos
e vamos antes de tudo copiar o
botão três vezes aqui. E esta
será a cerca de cobalto. E então, é claro também serão
as canetas promotoras. Isso vai ser uma cerca. Olha, esta vai
ser a cerca em oito. E isso é, claro, também o portão sublinhado da cerca, que é uma cerca de oito blocos. E então o último
será um muro de futebol. Parede aqui também. E isso
é, claro, um livro de parede. Agora vamos tirar
a não colisão aqui. Isso seria bom, não a melhor coisa se as
cercas de repente
não tivessem colisão meio que
derrotariam o propósito delas. E o resto vai
ficar totalmente bem aqui. Agora, mais uma vez,
os arquivos JSON estão onde estão. Vamos antes de tudo, a
tradução só para que tenhamos, então não
precisamos mais nos preocupar com isso. Vou
copiá-lo para a cerca de cobalto que os fãs de desacoplamento entram na parede de cobalto aqui. E, em seguida, vamos adicionar o bloco s3 não está longe,
pois todos eles estão, claro, mais uma vez,
disponíveis para você
no repositório do GitHub ou em um
indivíduo também. E você verá que isso é realmente um
pouco diferente. Então, vamos antes de tudo dar
uma olhada no portão da cerca. Mais uma vez, ele tem
três blocos diferentes. É perímetros ou propriedades
boxy, e apenas aponta para
diferentes modelos de blocos. Nada de novo que
ainda não vimos nas duas
últimas palestras. Mas a cerca no entanto
e a parede. Essas são diferentes porque
são multipartes. Agora com várias partes. A ideia geral é que, bem, como você pode ver
isso aqui, certo? E a primeira multiparte
que aplicamos esse modelo. E esse modelo sempre será aplicado se isso for sentado. Agora, quando uma determinada propriedade
Roxy é verdadeira, neste caso, se
algo for verdadeiro, aplicamos uma
outra propriedade. Você é outro modelo aqui. E neste caso
, será o lado que você sabe
que, se você definir poste
da cerca por
si só e, em seguida,
adicionar um poste de cerca ao norte. Na verdade, adicionamos o
site depois. Mas isso é uma coisa legal muito
frequente que é assim que funciona. E esta é, na verdade, uma
maneira muito simples de fazer isso. No entanto. Isso é definitivamente um
pouco diferente. Vou recomendar apenas
verificar, dar uma olhada nisso. Na verdade, não deve ser muito louco entender
todas as coisas consideradas. Acabamos de adicionar
modelos diferentes, dependendo se algo
é basicamente um vizinho. Basicamente, a ideia. Agora isso tem, no entanto, também a coisa adicionada que, bem, haverá
muitos arquivos Jason agora. Então, vamos apenas copiar
sobre todos eles porque isso vai
ser uma loucura. Nós temos todos eles. Basta copiá-los mais de
11 deles no total. Agora, vamos dar
uma breve
olhada neles porque honestamente eles são
todos muito chatos. Basicamente, sempre será o pai diferente. Você pode ver claramente
o tempo todo que levamos o ponto para a mesma
textura aqui. Você pode ver que só vai
ser o pai que é diferente. E basicamente a mesma coisa
vale para todos os outros. Sempre apontamos
para a mesma textura é apenas o pai
que é diferente. Eu poderia apenas mais uma vez,
recomendo se
houver algum interesse em
outros arquivos JSON. Basta ir até as bibliotecas
externas, unidade, cliente de microondas, dinheiro
extra TIN, e apenas dar uma olhada em
todo o rastreamento e rapidamente aqui na pasta de ativos
Minecraft, você pode ver todos os
arquivos JSON de modelo de bloco. Você veria tudo isso,
o bloco diz arquivos JSON. Então, tudo está basicamente
disponível para você aqui também. Isso recomenda copiar coisas e não digitar
tudo, especialmente se você tiver várias paredes e coisas assim. Isso seria apenas uma
loucura, certo? Vamos também obter o modelo de
três itens Jason sentiu sobre n.
Esses não são todos muito loucos porque temos algum inventário de cerca de cobalto
e inventário de parede legal. Esses são basicamente eles
são referenciados aqui. E então este é apenas o portão
normal da cerca de cobalto. E mais uma vez, como
todas as texturas usam a textura do bloco de footwall, não
precisamos
adicionar texturas. Agora, há mais
uma coisa que
precisamos adicionar para que as cercas e
uma valsa funcionem corretamente. E isso vai ser tags. Então, dentro das tags do Minecraft, tag de
blocos ou pasta de blocos, quero criar um novo arquivo
chamado de ponto de cercas JSON. Mais uma vez,
vou copiar
a estrutura que você acabou. E este vai ser
o curso MC,
booleano, cerca de
sublinhado de cobalto. Então eu vou pegar
isso e vou
arrastá-lo para cá enquanto
segura o Controle. E vou
chamar isso de paredes. E esta
será a parede de cobalto. Se eu não tiver isso,
as cercas e as paredes não
se conectarão umas às outras. Mas isso também é muito importante. Precisamos disso. Mas se adicionamos
isso e o resto, então vamos ver se funciona. Ou se eu estivesse em um asic migrante e veja que tudo
foi adicionado com sucesso e tudo
parece ótimo. Você pode defini-lo
O próximo um do outro. Exatamente como o que
esperaríamos. Então, eles atrás, tudo funciona bem onde quer que
já seja para esta
palestra aqui. Espero que você tenha achado útil
e ele aprenda sobre o novo, e eu te vejo na
próxima palestra. Então, sim.
58. (Noções de (Minecraft portas personalizadas e Trapdoors: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar uma porta personalizada e um
alçapão ao Minecraft. Então, vamos abrir a classe de caixa de correio e vamos pegar
a parede de cobalto. E em vez de cobalto, esta
será a porta
sublinhada da flor de Sherry sublinhado. O mesmo, é claro, no nome. Então, neste caso, na verdade teremos
um material diferente, bem, diferente
aqui porque não
estaremos fazendo
portas de cobalto, mas da madeira que
vamos adicionar em uma palestra futura. E o que é muito importante
aqui é que adicione o carvão sem oclusão
e também que estamos fazendo o material
, porque se fizermos o material de metal esta porta funcionará
como uma porta de ferro. Se fizermos isso,
podemos abri-lo clicando com o botão direito do mouse. mesmo vale para o
alçapão sublinhado de flor de cerejeira. Só vou copiar
o nome aqui e adicionar a armadilha
aqui na frente. E este é então um bloco de porta de
armadilha. Estou aqui certificando-se de que
esse material que iria e, em seguida, adicionando a
não oclusão também. Na oclusão, o frio aqui é
necessário porque temos valores
alfa na textura
real. E por causa
desses valores alfa, na verdade também precisamos
entrar em nossa aula de mod de curso MC. E dentro de lá precisamos
criar um novo método. Então, vamos fazer
um novo vazio privado chamado o
método cliente que up com um
conjunto final de eventos ou eventos do cliente FML. E então dentro daqui,
vamos chamar tipos de renderização
do bloco de itens, que disse renderizar mais tarde. Para os blocos de modo,
ponto, flor de cerejeira, dor dot obter com o tipo de renderização que
adulto, duplique a linha. E então aqui se certifica de
que os alçapões se ajustem. Agora isso
ainda não é chamado porque o que
precisamos fazer é dizer Barramento de Eventos, adicionar ouvinte, esta configuração de dois
pontos e duas linhas. Depois que isso foi feito, agora os clientes FML reais que têm método são chamados aqui,
o método e, em seguida, essas tribos de
renderização estão sendo configurados corretamente antes de adicionarmos
todos os arquivos JSON loucos, vamos antes de tudo, adicione
a tradução aqui. Muito simples,
nada muito louco. E agora vamos
para os arquivos JSON. Então, antes de tudo, é claro, o bloco afirma Jason. Então esta seria apenas a porta
e o alçapão que você vai. Então, mais uma vez, é claro, há muito loucos. Na verdade, a porta tem quatro
propriedades de estado de bloco diferentes, como você pode ver. Então, mais uma vez, todos os arquivos adjacentes e
todo o código estão disponíveis para você no repositório
do GitHub ou em um
indivíduo também. Eu recomendo copiá-los quando se trata
dos modelos de blocos. Bem, estamos em
um deleite porque serão
sete deles novamente. Então isso vai
ser muito louco. Agora, estes são um
pouco diferentes, como um pouco mais complicado
, mas também não tão ruim. Assim, você pode ver mais uma vez, que difere mais como o pai. Agora, porque as portas são
duas partes, por assim dizer, temos uma textura
superior e inferior. Você pode ver uma porta de flor de
cerejeira e um fundo de porta de
flor de cerejeira. E então a dobradiça aqui você pode ver que é apenas um pai
diferente. Mas, no geral, mais uma vez, isso dá uma olhada neles, basta passar por eles um pouco. Você sabe, como eles se parecem, eles não são muito loucos no geral. O item e os modelos
também são interessantes. O alçapão deve ser
apenas um modelo de item normal. Mas podemos ver isso. Isso apenas aponta para
a bacia do modelo de bloco
ao longo deste ano, a porta realmente aponta para
uma textura de item específica. A porta realmente tem uma textura específica
para o item também. Então, vamos, em primeiro lugar, uma cópia da
textura do item aqui. E então, é claro, também precisamos das três diferentes texturas de flor de
cerejeira. Então esta pode ser
a parte inferior da porta, superior
da porta e as texturas do
alçapão. Agora, isso é realmente
tudo o que precisamos fazer. Muito importante é essa configuração
do cliente aqui, que vamos precisar
nas futuras palestras também. Mas toda vez que temos um bloco
que ele não preenche a totalidade do espaço de estado do bloco de
raios X, por assim dizer, basicamente
precisamos adicionar isso também. Então isso é muito importante. Caso contrário, vamos
ver se funciona. Ou se eu suspeitar e os
microRNAs podem ver tanto a porta da cereja quanto a flor de cerejeira presa ou foram adicionados ao jogo. E posso clicar com o botão direito do mouse
e abri-los. Quem disse que eu com qualquer outra porta ou alçapão à base de
madeira? Então isso é muito legal. Borracha, isso já seria para esta palestra aqui. Espero que você tenha achado
útil e alerte o Novo. E te vejo na
próxima palestra. Então, sim.
59. (Sobre sobre ferramentas) criando um novo conjunto de ferramentas: Tudo bem, bem-vindo de volta
ao quarto curso para 118. E nesta palestra,
vamos adicionar um conjunto de ferramentas personalizado ao Minecraft. Então isso incluirá a espada, a picareta, a pá, o machado e o todo. Na verdade, vamos
criar uma nova classe personalizada e o pacote de itens ou
os níveis modernos. Porque o que precisamos
definir é um nível personalizado. Felizmente, a forja
facilita muito para nós. Podemos apenas dizer final estática
pública forjada aqui chamada cobalto, que é igual a
um novo forjado aqui. E então só precisamos
passar muitos parâmetros. O nível reduz a velocidade, o bônus de ataque e
o bônus de dano da etiqueta,
o valor do presidente. Então precisamos
passar etiquetas de bloco. Dot precisa de ferramentas de ferro
e, em seguida, apenas um
fornecedor de um gradiente. E vamos
dizer ingrediente de mais itens, ponto, ponto obter. E vou explicar agora. Então, o que está acontecendo aqui? Isso é loucura, na verdade não
é tão louco. A primeira coisa é,
claro, um nível. Este é apenas o nível que basicamente esse item aqui
representa esse nível. Então podemos realmente
entrar nisso e você pode ver que há um
monte de coisas aqui. E o nível
basicamente representa, você pode ver aqui, basicamente representa
a ideia de, ei, essas ferramentas de pedra, ferramentas ferro ou ferramentas de diamante? Esse é basicamente
o nível geral, a ideia geral
do nível aqui. E temos o número de usuários. Portanto, isso é exatamente
quantos usos esse item tem. No entanto, a
Durabilidade, basicamente, a velocidade deve ser
bastante autoexplicativa. Há apenas a velocidade
do item real. O bônus de dano de ataque é
apenas um bônus para atacar. Isso fica, vamos
realmente colocar isso em 3
e o valor do Chairman
é apenas canal. Estas são as tags de bloco. Você é eu não tenho
100% de certeza, mas acredito que
isso é mais uma vez, se
reduz ao que essa
lágrima forjada real ou esse nível de ferramentas pode
basicamente minerar aqui. E então o
último, o fornecedor do ingrediente aqui, é basicamente apenas o
ingrediente que você pode usar para reparar os itens dessa largura
de camada. Então, agora que temos isso, podemos ir para a classe mais
itens e posso começar a basicamente
dar o turno aparecer. Vamos pegar este aqui e vamos fazer disso a espada
sublinhada de cobalto aqui também. Sublinhado de cobalto armazenado. Vamos nos livrar do ano inteiro. Isso é meio importante. E isso vai
ser um item de tabuleiro. O primeiro parâmetro será mais lágrimas ponto cobalto. O segundo parâmetro é o modificador de dano de
ataque. E o terceiro
parâmetro
será o modificador de velocidade de ataque. E depois vêm as
propriedades reais que
ficarão bem. E vamos duplicar isso cinco vezes e depois
pegar as outras. Então, vamos ter a
picareta de parede ou o parafuso grande
X aqui também. Este é um item de picareta. E temos a viagem que
viajará aqui também. E este é um item de pá. Vai ser o robô atua. E o cobalto também age aqui. Claro, Item. E então, por último e
certamente menos o cobalto OMS. Mas é claro que temos que colocar
a coisa toda aqui, que é o cobalto OMS
e um item inteiro, certo? Então, geralmente você pode, é claro mudar esses números,
certo? Você pode ajustá-los. Então, por exemplo,
o caseiro
não tem modificadores adicionais aqui. O ACS pode ter,
você sabe, este,
mas, portanto, como talvez
um negativo seja modificador ou apenas como
dizer um modificador 0 aqui. E o resto
vai ficar bem. Então isso é algo que
você definitivamente tem que
brincar com altamente
recomendo apenas jogar, estar aberto à experimentação
com os números aqui. Porque isso é apenas equilibrar
basicamente o modelo. E, no geral, isso é
praticamente o, você sabe, o registro feito. Agora só precisamos
da tradução aqui, mas
vamos adicionar a tradução. Só vou
copiar isso. Isso deve ser bastante
autoexplicativo, certo? Assim como vimos um milhão de vezes, já poderia falar. E então os modelos de itens têm uma coisa em particular que é um pouco
diferente com eles, o que eu mostrarei quando eu
copiá-los mais uma vez, tudo isso está
disponível para você em o repositório do GitHub ou
indivíduo também. Você pode ver que o pai
aqui é o item de barra de mão. Isso é muito
importante, caso contrário, o extra não
será exibido em 3D em visualizações de terceira pessoa. Portanto, é muito
importante que você tenha o item pai de mão aqui. E, de outra forma, agora podemos copiar
as texturas também. Todos os cinco
também, eles vão. E isso é praticamente
tudo o que precisamos fazer para adicionar as
ferramentas personalizadas ao Minecraft. Então, vamos ver se funciona. Tudo bem, nos encontramos de
volta em microfinanças e vemos que todas as ferramentas
foram adicionadas com sucesso. Então, vamos ver se eu posso
realmente minerar coisas com ele. Portanto, este ano, é claro, não
funcionará neste
caso porque
definimos isso como nível um. Então isso deve funcionar. No entanto, vamos ver uma chance. Isso funciona totalmente bem. Então isso é um bom
sinal, é claro. O pássaro também deve funcionar. Definitivamente
não há muito rápido, mas isso é totalmente
bom, é claro. E, em seguida, clicar com o botão direito do mouse
aqui também funciona com esse botão direito A remoção dos logs
deve funcionar bem definida, mesmo com o caminho. Tudo aqui
realmente vai ser apenas cinco pela velocidade, é
claro, é definido aqui. Então, isso seria, você
quer aumentar a velocidade
desse sem rasgo real
e o nível aqui, você pode fazê-lo assim. E então o que você também pode
fazer está no forjado aqui, se você pressionar o nível
aqui e depois pressionar Control H e ver as lágrimas
do próprio Minecraft. E você pode basicamente
dar uma olhada em todos os valores de baunilha
das ferramentas aqui. Para isso, você pode
basicamente alterá-los e copiar alguns
deles, certo? Mas eles já seriam
para esta palestra aqui. Espero que você tenha achado
útil e ele aprenda sobre o novo e eu te vejo
na próxima palestra. Então, sim.
60. (Tudo sobre sobre ferramentas) fazendo uma ferramenta de várias (Paxel): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um
item personalizado da Paxil ao Minecraft. Isso é exatamente certo. Vamos adicionar um tipo de multi-ferramenta
de testamento ao Minecraft. E para isso precisamos de
uma nova classe e do
pacote personalizado que será o item Paxil, que vai estender
o item escavador aqui. E isso implementará
a venerável interface. Vamos passar o mouse sobre ele e criar um construtor
combinando super. Agora, na verdade,
teremos que mudar isso um
pouco porque não
precisamos de nenhum desses. Porque esses dois parâmetros
realmente vão bem aqui. Devemos fazer
algo assim. E, em seguida, o marcado para os blocos realmente
vai desaparecer porque
vamos adicionar isso às nossas tags de modelo agora. Então, a maneira como
estamos fazendo isso é que vamos para a
nossa classe de impostos automotivos. Então vamos apenas copiar os objetos de valor
da haste de dowsing. E aqui
vamos tornar isso
o sublinhado de Paxil minável. E então o nome
disso será
a barra minável Paxil. E isso agora será
referenciado aqui. Então mod tags, blocos escuros. E assim,
tudo deve estar totalmente bem, certo? E agora essa aula deve
estar completamente concluída. E o melhor é que definimos
essas tags aqui,
bem, o que podemos fazer
é agora
entrar em nossa pasta de dados do corpo C, para as tags, os blocos
e, em seguida, clicar com o botão direito do mouse em novo
diretório chamado mineable. E então, dentro de lá,
vamos criar um novo arquivo chamado
Paxil, esse JSON. E então o que vamos
fazer é eu apenas copiar este aqui por
uma questão de argumento apenas para que tenhamos a estrutura
básica da tag. E você pode dizer que é, bem, agora
temos que
entrar no item picareta e só temos que
adicionar tudo isso. Saiba, o que podemos fazer é também adicionar tags em tags. Mas o que temos que
fazer é que temos que dizer hashtag Minecraft. Portanto, esse é o namespace
da tag que queremos adicionar. E, em seguida, barra
minável, barra minável, escolha
X, por exemplo. E então
vamos apenas copiar isso. Vamos fazer o ACS, adicionar vírgulas aqui e depois
colocar em pá aqui. Então nosso Paxil será capaz minerar tudo o
que uma picareta pode, um axônio e uma pá. E a melhor coisa aqui é que porque nós o
adicionamos tal forma que estamos
referenciando as outras tags. Se um modo diferente adicionar
coisas a essas tags, bem, o item Paxil também
funcionará para esses blocos também. Então essa é a coisa muito legal. Agora, como criamos
o item Paxil real? Bem, muito fácil. Vamos
apenas copiar o cobalto OMS e vamos
chamar isso de cobalto Paxil ou qual
camada de pacotes também. E então isso só
vai ser um item Axl. E é isso. Lá vai
você. Paxil está pronto. Isso é, na verdade, o quão fácil é. Na verdade, não é tão louco. Então, é claro que você precisa
saber basicamente que você pode usar tags diferentes em suas
próprias tags e coisas assim. Mas, no geral, isso é
bastante simples. Há um particular, bem,
que é uma limitação
que o item de pacotes tem e não tem funcionalidade de clicar com o
botão direito do mouse. Agora você pode adicionar a funcionalidade do
botão direito do mouse. Se clicarmos no
item do escavador e pressionarmos Control H, poderíamos, por exemplo,
entrar em todo o item. E você pode ver aqui os EUA com o
botão direito do
mouse no método. E você poderia anular isso, e você poderia colocar coisas
diferentes lá. Você poderia dizer, ei,
vamos fazer uma ação padrão,
inteira, assim por
diante e assim por diante. E então faça a
mesma coisa para, por exemplo, se você se esgueirar,
então você pode clicar com o botão direito do mouse
e, em seguida, ele faz o caminho, você sabe, alguém assim,
e depois clicar com o botão direito do mouse. E você também pode adicionar
o botão direito do mouse com a funcionalidade AKS. Não vamos fazer isso
neste exemplo aqui. Este será
apenas um item da Paxil,
um item de várias ferramentas que basicamente
será mina L2, vários
tipos diferentes de caminhadas. Vamos também adicionar a
tradução aqui. Isso deve, claro,
não ser muito louco. É só o cobalto
Paxil, claro. E então o mesmo para o
modelo do item, nada muito louco. Só vai ser
o cobol Paxil que aponta para o
cobalto Paxil extra, que eu, claro, também tenho. Esta é uma textura a, B, a,
uma textura legal que
veremos no jogo em apenas um momento. E bem, isso é realmente
tudo o que precisamos para adicionar o
item de barra invertida ao jogo. Então, vamos ver se funciona. Ou inferências de volta
e migrantes podem ver que o item de barra invertida
foi adicionado e
parece absolutamente
ótimo. Então, vamos ver. Lá vai você. Eu posso usá-lo como uma pá, exatamente como você esperaria. Vamos ver se eu posso minerar
esses blocos também. Eles podem demorar um
pouco mais, mas no geral, ainda
posso
minerá-los perfeitamente bem. E então vamos realmente
encontrar algo. Mas este agora deve
funcionar porque, mais uma vez, o nível de cobalto
não é alto o suficiente. Mas se nós apenas
cavarmos um pouco, devemos ser
capazes de encontrar pedra aqui. E então pedra eu
deveria ser capaz de
minerar também e eu
deveria pegar paralelepípedos. Lá vai você. Eu tenho
alguns paralelepípedos. Então, como você pode ver,
tudo está funcionando aqui. Totalmente bem. Item Axl, absolutamente. Incrível, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
61. (Tudo sobre ferramentas) armas que aplicam efeitos: Ou voltarei ao curso de
forragem por 180. E nesta palestra,
vamos adicionar uma ferramenta que
adiciona um efeito ao
mapa que está sendo atingido. O que isso realmente
significa? Bem, vamos passar por isso e ver o que isso realmente significa
no pacote personalizado. Clique com o botão direito do mouse em nova classe Java ou este será o item de espada de
levitação. E isso estenderá
que o item da espada passará sobre este
construtor creed combinando super. E então o que faremos é substituir o método inimigo ferido. E a única coisa que
precisamos fazer aqui é precisamos dizer p efeito de adição de ponto
atacante, nova instância de efeito mob, efeitos de
mob, não levitação, digamos para 200 ticks. E então o, após os primeiros parênteses P atacante como fonte basicamente
do ataque aqui. E isso é
praticamente tudo o que
precisamos fazer para as
ideias que
vamos adicionar um que
realmente será alvo aqui ou há um dia, o alvo no Effect. E então aqui P atacante. Então a ideia é que
quando machucarmos um inimigo, vamos adicionar
os efeitos de levitação a esse inimigo quando o atingirmos
com esse tipo específico. Isso é algo que
muitas pessoas
pediram anteriormente. Mas é por isso que eu mostro isso. Na verdade, é
muito, muito simples fazer isso. Agora, você, é claro, precisará usar essa aula aqui. Por exemplo, aqui
para o nosso tipo de cobol, podemos dizer item de
classificação de levitação aqui. E agora toda vez que
atingimos uma entidade ou um animal com o item de classificação de
cobalto, ele deve ter levitação
por dez segundos. Isso seria muito engraçado, mas vamos ver se funciona. Ou seu farmacêutico de
volta ao Minecraft. Então, vamos ver se eu bati
no animal que eles tinham, ele fica levitação e deve ficar
por dez segundos. Embora eles
estejam flutuando na urina. Então, em algum momento, eles vão cair de volta para a Terra. E isso realmente
resultará na morte também. Então isso é meio engraçado. É um efeito legal da espada de
levitação pode não ser basicamente o mais
interessante, mas há muitas idéias, efeitos
diferentes que
você pode basicamente adicionar ao golpe com sua
arma personalizada, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado
útil e aprenda sobre o novo e eu o vejo
na próxima palestra. Então, sim.
62. (Sobre sobre ferramentas) criando um novo conjunto de Armor (de armor: Ou eu dou as boas-vindas de volta ao curso de
forragem para 118. Nesta palestra,
vamos adicionar um conjunto de armadura personalizado ao Minecraft. Muito semelhante às
ferramentas personalizadas para o conjunto de armaduras, na verdade, precisamos
criar uma nova classe. Isso vai estar
em nosso pacote de itens. Clique com o botão direito
do mouse em nova classe
Java chamada materiais de blindagem de modo E isso implementará a interface do material de armadura e será um enum. O que faremos é clicar no botão do meio do
mouse sobre
isso e, em seguida, pressionar Control H para chegar aos materiais de
blindagem aqui. E o que eu vou fazer é basicamente clicar no
topo aqui, direto para o suporte inicial,
ir até o fundo, segurar Shift e, em seguida,
clique na parte inferior e pressione o controle C
para copie tudo e, em seguida, Controle
V para colá-lo. Agora vamos nos
livrar desse aqui. E, acima de tudo, a única coisa que
precisamos fazer é que precisamos mudar o nome
do construtor aqui. E isso vai ficar bem. Agora, a única coisa que não
temos é que não
teremos os
nomes dos parâmetros aqui mapeados. Agora você pode mapeá-los você mesmo. Basicamente, você pode clicar em Shift F6 e
renomeá-lo direito para nomear. E então você pode passar
continuamente, mas realmente não é
necessariamente necessário. Na verdade, vou copiar sobre o construtor porque, na verdade tenho isso preparado
da maneira mapeada. Materiais eles atrás. E lá vai você. Então, a única coisa que
não funciona é isso porque, em vez de ser
um valor carregado preguiçoso, vamos fazer
disso um ano preguiçoso. E então tudo
aqui deve funcionar bem, mas o resto
deve estar bem. Isso, é claro, tudo
disponível para você
no repositório do GitHub ou em um
indivíduo também. Portanto, não se preocupe lá. E bem, o que isso faz? Bem, primeiro de tudo, podemos ver todos os valores de
baunilha aqui. E porque isso é um enum, é muito legal porque
isso não é avançado. Você sabe, até podemos definir vários valores diferentes aqui. Digamos
que, por exemplo, nosso cobalto vai
estar no nível do ouro. Mas digamos
que você saiba o que, vai ter um pouco mais de durabilidade é, digamos algo como 13. Talvez a interoperabilidade seja
um pouco menor, mas não muito menos, como talvez como 21, algo assim. O eclipse do objetivo está bom. Talvez até tenha um pouco de dureza. Eu não sei, como 0,5, sem resistência a
batidas. E os ingredientes para
consertá-lo serão mais itens ponto, ponto obter. E então o resto
não precisamos mais. Isso vai ser cobalto. E então o nome
aqui, é claro, também tem que ser cobalto. E esses valores
aqui são interessantes porque esses valores você pode ver que é o terceiro parâmetro, é um array inteiro
chamado de proteções de slot. Agora, proteções lentas são
basicamente as proteções de cada peça de armadura diferente. Isso começa na parte inferior. Então, estas são as botas, leggings, a placa do peito
e depois o capacete. Isso é muito importante.
E talvez queiramos mudar isso um pouco,
talvez algo assim. Talvez o Talmud seja, na verdade,
um pouco mais forte. A placa torácica
também e o ego. Mas, mais uma vez, quando
se trata dos números, brinque com eles, esteja
aberto à experimentação. Se você quiser realmente
equilibrar seu modo, vai ser,
você terá que brincar
com isso de qualquer maneira. Portanto, não se preocupe
lá, há, no entanto, mais
uma modificação
que precisamos fazer, e isso está no
método getName aqui. Porque o que queremos
retornar aqui é MC course mod, mod a, D mais dois pontos
mais esse nome. Isso é muito importante
que você faça isso. Caso contrário, a textura não
funcionará da maneira que vamos
configurá-la. Portanto, não se preocupe lá. Mas, além disso, quanto mais materiais de
armadura for feito, se você quiser adicionar
outro material de armadura, o que você precisa
fazer
é basicamente ter todos
esses frascos também. E, basicamente,
separe-os com uma vírgula. Então, vamos chamar esse cobalto dois por uma questão de argumento, você pode ver,
desde que eles sejam nomeados forma diferente, isso
vai dar certo. Eles estão todos separados
com uma vírgula. E então isso termina
com um ponto e vírgula. Isso é muito importante. Só
queria mencionar isso também porque algumas pessoas
se confundiram com isso. Na verdade, não deve
ser tão louco. É apenas um
conhecimento Java muito básico neste caso. Mas seja qual for o caso, vamos para a classe Mais
Itens agora. E vamos criar nossos itens
ou armadura. Vamos pegar o eixo aqui
e vamos fazer isso para o capacete de cobalto e
depois o capacete aqui também. Elemento sublinhado. E este será o item de
armadura, muito importante. O primeiro parâmetro
será
os materiais de armadura de modo, cobalto. E então o nó tem
três parâmetros. Tomado. Uma das ranhuras de equipamento. slot de equipamento
neste caso tinha um objetivo. E então as propriedades do item nos
permitem copiar
isso três vezes e depois vamos
pegar a placa torácica aqui. Este prato. E então a única
coisa que precisamos
mudar é o slot do
equipamento aqui. Isso é muito importante
que mudemos isso. Caso contrário, vamos nos
deparar com alguns problemas. Para que leggings? Leggings aqui também. E então, por último, mas não
menos importante, as botas. E então botas aqui também. Estranho essas duas pernas e , em seguida, este slot de equipamento para comer. E com isso, todos os quatro
itens realmente são adicionados. É assim que pode ser fácil. Agora, o que queremos fazer é,
claro,
antes de adicionar os arquivos JSON, vamos apenas adicionar a tradução. Isso deve ser
neste momento trivial. É que, acabei de copiá-lo para ser bastante autoexplicativo. E quando
se trata dos modelos de itens, eles
serão apenas modelos de
itens normais também. Por causa, claro,
dentro do inventário, bem, eles
se parecem com itens normais. No entanto, há uma coisa
interessante. Então, antes de tudo, você
pode ver apenas pontos para uma textura aqui. E
isso vai ficar bem. Vamos copiar todas
as texturas. Mas então a questão é, bem, como conseguimos isso,
a armadura 3D? Bem, dentro da nossa pasta
Texturas, clique com o botão direito do mouse em novo
diretório chamado modelos
e, em vez de seu novo
diretório chamado armadura. E esta é a
ortografia americana que é muito importante. Então vocês
do Reino Unido, desculpe, mas vai ser, então vamos copiar
esses dois PNGs bem aqui. Esta será a camada de sublinhado de
cobalto
1 e a camada de sublinhado fresco 2. Isso é muito importante. Por favor, preste atenção aqui. Então, quando definimos
mais material de armadura, esse nome aqui, cobalto tem que corresponder a esse nome aqui
exatamente como exatamente a mesma coisa. E, em seguida, camada de
sublinhado, um sublinhado
basicamente
será a representação 3D. Parece assim. Você pode
mudá-lo um pouco, mas não muito. E isso vai ser que você
possa ver a placa do peito, o capacete, um
pouco das outras coisas. E então aqui principalmente, acredito que as leggings
e as botas, isso tem que combinar exatamente. Não pode haver espaços lá, não há parênteses 1 porque você copiou
de algum lugar. Exatamente assim.
Esteja ciente disso, que isso está no nome correto da
pasta corretamente e eles têm todos
os nomes corretos. Muito importante. Se você está se perguntando onde as outras texturas ou
você pode ir para bibliotecas
externas
que microclima extra 118 uma na pasta de
texturas
e, em seguida, na armadura de modelos, você basicamente tem acesso
a todos os baunilha e você pode alterá-los
em teoria, se quiser. Então isso é muito legal. Mas isso é, na verdade, tudo o
que precisamos adicionar. Então, vamos ver se funciona. Tudo bem, nos encontramos de
volta em atenção plena. Pode ver que tudo
aqui foi adicionado
ao jogo e parece
frequente, incrível. Oh, isso é realmente o quão fácil
pode ser adicionar a armadura. Você pode ver os valores iniciais da
armadura,
bem como até mesmo um pouco
de resistência lá. Isso é muito legal, assim como definimos
em nossos materiais de armadura. Isso é muito legal. E faz porcos voarem, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil
e ele aprenda sobre o novo, e eu te vejo
na próxima palestra. Então, sim.
63. (Tudo sobre ferramentas) efeito de armadura completa: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um efeito de blindagem completo personalizado. Agora, o que isso significa? Bem, a ideia é que, se
usarmos nossos conjuntos de armaduras inteiros, todos os materiais de
armadura de cobalto definidos aqui. Então o que queremos
é que queremos adicionar um efeito de poção personalizado ou apenas normal,
basicamente, com o jogador. A maneira como fazemos isso é que
eu realmente vou copiar sobre a classe que
vamos precisar. Isso está disponível para você
no repositório do GitHub ou em um
indivíduo também. Tudo bem, então esta é
toda a turma e, no geral, vamos passar e
eu explicarei à medida que vou adiante. Então, a primeira coisa que
temos é, claro, um mapa. Portanto, este mapa mapeia em material de
blindagem para uma determinada ocorrência de efeito de
modo. Agora, número um coisa muito
importante é que essa instância que
estamos usando
neste mapa
nunca seja usada sozinha. Estamos apenas tirando
os valores dele. Então você pode ver que se eu colocar o material de armadura cobalto, vou ter um efeito de sorte aplicado a mim com
um amplificador de um. Então isso significa que estou
realmente recebendo o bloqueio 2 e, claro,
também 200 ticks. Então, isso seria por 10 segundos. Atualmente, isso só funciona
com materiais de armadura mod,
portanto, apenas seus personalizados
e não com baunilha. Essa é uma
limitação muito importante aqui. Agora, como isso funciona bem no carrapato de
armadura é chamado de
método aqui. Estamos substituindo isso
e isso é chamado toda vez que uma determinada
peça de armadura,
neste caso, o item de armadura de
modo, está dentro de suas ranhuras de armadura. Então isso é chamado, vamos nos certificar de
que estamos no servidor
e, em seguida, estamos avaliando
se
o jogador tem ou não um traje
completo de armadura. Este é um
método personalizado que eu escrevi. Não é nada
muito louco aqui. Estamos basicamente apenas
recebendo a armadura dos slots de 0 a três, mas todos os antebraço
são slots e, em seguida, apenas verificando se
eles não estão vazios ou não. Então, se nenhum deles estiver vazio, então vamos ter uma verdade sobre isso e
continuaremos avaliando os efeitos
da armadura. Para isso, estamos basicamente
passando pela totalidade
do mapa aqui do
material para afetar o mapa. E apenas certificando-se de que ei, o jogador tem
a armadura correta em quatro, basicamente um efeito. E vamos ter certeza de que
vamos ter certeza. E este aqui. Então este só diz, ei, é o material de
todas essas armaduras, basicamente o mesmo
material que este. E se for esse o caso, bem, então podemos continuar
ainda mais com basicamente
adicionando esses satisfatórios. Estamos nos certificando de
que o jogador ainda
não tenha o
efeito. Caso contrário, você basicamente
estaria aplicando o fato de cada carrapato, o que pode ser um
pouco frequente. Então acabei de adicionar essa
verificação de sanidade basicamente aqui. Então também estamos
novamente apenas verificando se a armadura está ligada e
se esse é o caso, então vamos
adicionar o efeito. Então, vamos fazer
uma nova instância de efeito
da instância de efeito
real aqui, obter o amplificador de iteração
de efeito, como eu disse, esse pequeno
efeito aqui, essa instância nunca usou
quando nós definido aqui, isso só é usado como um modelo
para que possamos basicamente também colocar a duração
e o amplificador também. Sim, isso é praticamente
tudo o que há para ele. Não deve ser muito louco. Sabe, se a
pergunta surgir, você está bem, como você
fez isso? Como você fez isso? Bem, é apenas no final
do dia no conhecimento Java que você precisa e provavelmente um pouco de
conhecimento do Minecraft também. E como podemos usar essa classe. Agora vamos em nossos itens mod, eu pessoalmente prefiro usar o capacete de cobalto para fazer
um item de armadura MOD aqui. E o que é muito importante
é que você só precisa fazer um dos seus conjuntos aqui. Então, um item no seu conjunto, o item de blindagem de modo. Como eu disse, geralmente
prefiro o capacete. O jogo de xadrez também pode
fazer sentido, ou as botas, o que você quiser,
mas apenas uma
delas precisa ser um item
mais armadura. E se for esse o caso, então já podemos
ver se
funciona ou não ou se empresas
como no Minecraft. Então, vamos ver, eu já
tenho tudo ligado exceto pelo capacete e vamos colocá-lo e lá está. Tenho sorte agora
por dez segundos. E se eu tirar qualquer um
desses itens de armadura, assim que o efeito desaparecer, ele não será renovado. Como você pode ver, lá vai você. E então não
importa basicamente qual quando eu tenho e qual
quando eu não li. Na verdade, é basicamente
verificar cada uma
das outras peças e elas dão sorte para você mais uma vez, certo? Certamente existem algumas
limitações com essa classe, mas
espero que seja uma boa introdução
para isso para você. Você pode, é claro,
sempre alterar todo o código disponível no repositório do GitHub ou em um indivíduo também. E isso já seria para esta palestra aqui.
Espero que você tenha achado isso útil. E em termos do novo,
verei você na próxima
palestra. Sim.
64. (Tudo sobre ferramentas) Armor personalizadas de cavalo: Ou voltarei aos
núcleos de forragem por 118. Nesta palestra,
vamos adicionar armadura de cavalo
personalizada ao Minecraft. Para
armadura de cavalo personalizada é, na verdade um
processo bastante simples. No entanto, há
uma pequena coisa que você precisa ter em mente. Bem, vamos apenas copiar
as botas de cobalto aqui. E vamos apenas fazê-los
sublinhar cobalto armadura de
sublinhado de cavalo. E o mesmo aqui, cobalto sublinha armadura de
cavalo sublinhado. E isso vai ser um item de armadura de
cavalo, certo? Este aqui. E então o que queremos
é o primeiro parâmetro, digamos algo como 12. E o segundo parâmetro
será uma string para Bolt. Agora, a corda aqui é muito
importante porque isso define o nome da textura da armadura do
cavalo. Então, vamos antes de mais adicionar
a tradução novamente. Vamos sublinhar a armadura de sublinhado de
cavalo. Para
armadura de cavalo de cobalto, é claro. O ego e, em seguida, um modelo de item. Vou copiar
o lingote aqui, e vou
chamar isso de armadura sublinhada do cavalo
cobalto. E então vamos
mudá-lo aqui também. Pior, pior armadura de sublinhado. E então vamos adicionar o, digamos, modelo de item chato, como em, este é apenas
um item normal. E vamos adicionar a textura do
item chato aqui. Tão chato também, esta é apenas a
textura normal, no entanto. E a textura 3D? Bem, isso realmente vai
para a pasta de ativos, mas para o Minecraft para uma nova pasta na
pasta de ativos chamada Minecraft. E então, dentro de
lá, precisamos de texturas. E então, em vez da
urna, precisamos de Entidade. E então, dentro de
lá, precisamos de cavalo. E então, dentro de
lá, precisamos de armadura. Mais uma vez, a ortografia
americana. E então eu vou
copiar isso. Você pode ver
armadura de sublinhado de cavalo, sublinhado cobalto. Este é exatamente o nome
que estamos dando aqui. Então, se clicarmos no
botão do meio
do mouse no item de armadura de cavalo, você pode ver que basicamente leva exatamente isso aqui. Portanto, é preciso detectores, entidade, cavalo, armadura, sublinhado de cavalo, sublinhado onde quer que seja o
identificador que colocamos aqui. E ponto PNG, basicamente, isso é o que aponta
para 43, a armadura. E isso é basicamente tudo
o que você realmente precisa ter em
mente para
a armadura de cavalo. A outra coisa que pode ser
interessante é que se pudermos dar uma olhada
nisso, que por exemplo, ferro como cinco proteção ouro tem sete e o diamante
tem 11 com 12. Na verdade, isso seria um
pouco melhor do que armadura de cavalo de
diamante, mas
isso é totalmente bom. claro que você pode mudar
isso da maneira que quiser. Mas vamos ver se funciona. Ou um fornos de volta ao Minecraft e por
sorte, já
temos um
cavalo domesticado aqui. Vamos dar a ela
a armadura de cavalo frio. E lá está ele. Parece muito parecido
com o diamante, mas ainda parece
um pouco diferente. No entanto. Isso é
realmente incrível e é assim que é
fácil adicionar armadura de
cavalo personalizada ao Minecraft. Escrever isso
já seria para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
65. (Tudo sobre ferramentas) Enchantment personalizado: Tudo bem, bem-vindo de volta
ao curso para 118. E nesta palestra,
vamos dar uma olhada em como você pode adicionar encantamentos personalizados
ao Minecraft. Então Encantamentos em
si mesmos são na verdade, bastante
simples de adicionar. É difícil é a funcionalidade
real dos Encantamentos. Mas no pacote do curso MC, clique com o botão direito do mouse em novo
pacote chamado pacote de
encantamento aqui. Então, dentro de lá,
vamos precisar de duas novas aulas. Um deles é chamado de classe
mod enchant minutes. E o outro
será nosso real e o presidente
que vamos fazer. E esse será o relâmpago em Shenzhen. Há também a classe com a qual
vamos começar. Isso vai estender a classe de
encantamento aqui. E então vamos passar o mouse sobre o construtor
correto
combinando super aqui. Então é muito importante que
mudemos o
slide do equipamento aqui para três pontos em vez de ser
a área real aqui. E então o que eu também posso
recomendar é
clicar nisso e presidente e no pressionado Control
H para basicamente poder ver todos os
encantamentos de baunilha que você tem. Então, por exemplo, há, quero dizer, há tantas coisas
diferentes, certo? Os espinhos do Presidente,
basta dar uma olhada nisso. Você pode ver, Ei,
como isso funciona? Mas como isso é basicamente
possível de ser feito? E você pode basicamente
dar uma
olhada em todos eles aqui. Altamente,
recomendo dar uma olhada nisso, porque esse realmente
é um ótimo recurso para ver a possível
funcionalidade aqui. E para o nosso presidente, o que vamos fazer é, antes de tudo, substituir o método de
nível GetMax. E vamos
retornar a2 porque aqui, isso basicamente determina
quantos livros são gerados. Como os livros, os
livros são
gerados automaticamente para nosso encantamento é muito legal. E isso basicamente determina
quantos níveis existem. Agora, queremos substituir
o método do post attack, que é basicamente chamado depois um tempo o ataque a uma entidade. E vamos
passar por isso. Então, vou tentar explicar. Então, vamos dizer que
não o nível de atacante P não é do lado do cliente. Então, basicamente, certificando-se de
que estamos no servidor. Por favor, note o
ponto de exclamação
na frente que
nega o lado do cliente. Muito importante que queremos
estar no servidor para isso, queremos dizer o nível do servidor, o que é igual a, vamos
chamá-lo de mundo, tudo bem. Então, um pouco acostumado a
chamar o mundo de nível. E sim, ele atacante nível de
ponto, mas
transmitido para o nível do servidor na verdade, não o
nível do cliente, nível de servidor. Eles atrás e depois
terminaram assim. E então vamos criar
uma camada de servidor para o jogador, que será igual
ao ponto do atacante P para
o
player do servidor. Exatamente. E então vamos ter
uma posição fria de passagem de bloco, que é igual
ao ponto alvo, obter. Na verdade, está bloqueado. Posição. Lá vai você. Isso é o que é. Vamos importar a classe de postagens do
blog também. Então, dentro daqui, você pode
ver que obtemos o nível P, que basicamente está obtendo
um nível aqui, certo? Então, vamos obter o
nível dos Encantamentos. Então, vamos dizer que se o nível
P for igual a um, isso significa que não
vamos trocar um raio. Mas a ideia é que queremos
chamar o tipo de entidade ponto-ponto-ponto relâmpago
spawn no mundo. Posição do jogador Nl, tipo de
geração móvel , tipo ponto acionado. E então é verdade e depois verdadeira. Então, esta é basicamente uma maneira de você gerar
um parafuso de iluminação. Muito simples. E a melhor coisa
é que isso não é apenas uma maneira de um pequeno raio de
iluminação, você vai literalmente
gerou qualquer coisa
que você quer com ele, a,
b e Ax que você quer com ele, a, , morcego pequeno, uma área, fato Cloud , aparentemente,
um conjunto de armaduras, o que você realmente quiser. Mas, por enquanto,
vamos mantê-lo assim. Agora
vamos apenas copiar isso,
fazer esse nível dois e, em seguida vamos apenas pequenos para forros. Essa é, na verdade, toda a
funcionalidade que precisamos. Se você quer uma
funcionalidade específica para
o seu encantamento, é apenas uma questão de aprender mais
Java e apenas
experimentar um monte de coisas. Esteja aberto à experimentação. Dê uma olhada no,
os encantamentos da lunula,
altamente recomendados. Você basicamente não pode fazer
nada melhor do que isso. Até agora, ainda precisamos adicionar coisas à nossa classe mod
enchantments. E isso vai
ter algo que você já viu
antes e é um registro
diferido final estático
público do tipo Enchantments. Desta vez, vamos encantar. E isso é igual a d registro
diferente que cria ou registra que
encanta o mod do curso MC, mod ID e se é
um registro diferente. Há também um método de
registro vazio estático público com um ônibus de evento ocular ou um ônibus de
eventos como seu perímetro. Vamos chamar
os Encantamentos que
se registram no ônibus do evento. E seu
método de registro é, claro, ser chamado aqui
agora sob a lei, os blocos simulados se registram, vamos dizer
mod conquistas dot register com o ônibus do evento. Lá vai você. E agora isso está registrado. Agora, o que vamos
precisar é que vamos fazer basicamente o seguinte será realmente muito simples. Nós simplesmente precisamos de um objeto
de registro
estático público do tipo encantamento, é claro, que será o atacante de sublinhado
relâmpago, que é igual a
encantamentos começar registrar relâmpagos
atacante sublinhado. Então, em um fornecedor de novo raio ou
encantamento com a raridade, vamos fazer
incomum no entanto? Incomum, sim. Por raridade e a categoria
Enchantments é arma do que o
slot do equipamento não será alimentação, mas vamos
fazer este equipamento Slashdot sobre mão má. Sim, lá vai você. E, na verdade, é isso. Isso é tudo o que precisamos fazer para registrar esse encantamento. Essa é a funcionalidade, este é o registro feito. Agora, o que precisamos
ainda adicionar é que a tradução em vez
do e e
nos sublinha o arquivo adjacente, estamos acostumados a, você sabe, eu vou colocar isso
na parte inferior aqui. Vamos copiar isso. Isso não é nada louco demais. Este é apenas o encantamento
MCQs, relâmpago Stryker. Portanto, esse nome,
é claro, mais uma vez tem que corresponder com esse
nome aqui. E então isso é apenas
encantamento Vermont ID. E você só precisará
disso mesmo que haja vários níveis
diferentes, isso será traduzido para
cada um desses níveis, certo? Então, depois de ter
adicionado tudo isso, vamos ver se funciona ou por que nós funcionamos de volta
no microfinanciamento pode ver o raio ou foi adicionado
com sucesso ao
jogo, os Encantamentos. Então, vamos adicioná-lo à nossa espada de diamante
aqui neste caso, e vamos usar os
que são o número um. Então, se usarmos o número dois, não
é para notar vontade, mas é algo diferente. Então lá vai você. Na verdade, é assim que é
fácil adicionar um cliente canalizado
para o Minecraft. E isso já será
para esta palestra aqui. Espero que você tenha achado
útil na urina. Então, o novo, e
te vejo na próxima palestra. Então, sim.
66. (Intermediate) (Intermediate): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra
vamos
falar sobre a propriedade do
estado de bloco. Então, o bloco diz que as propriedades são
uma coisa muito interessante. E basicamente estamos, em
primeiro lugar, vamos cobrir uma espécie
de teoria por trás disso. E para isso vamos
tirar os slides do PowerPoint. Vamos dar uma olhada
na distinção entre blocos e estados de bloco. Então, bloqueie, você pode pensar nisso como uma espécie de padrão único. A ideia é que, para nós, em nossa classe mais blocos ou para os blocos Rindler
na classe de blocos, temos campos diferentes
para determinados blocos. Agora, eles são criados quando você se lembra de que eles são finais estáticos
públicos, então eles são atribuídos uma vez. Nunca existe apenas um campo para um bloco
específico. Então você pode pensar neles
como um padrão singleton. Embora os estados de bloco sejam as instâncias que estão dentro
do mundo ou do nível, os estados de bloco salvam
uma posição de bloco, as propriedades do bloco, essas
seriam a força
do bloco. Você sabe como, quanto tempo leva para quebrar coisas assim,
que basicamente atribuímos na classe de caixa de correio e,
em seguida, também nas propriedades do
estado do bloco. Então, esses são os três grandes. É claro que há muito
mais do que isso está por trás lá. Esses seriam os três grandes. E você pode
pensar nisso assim. Os estados de bloco são salvos
pelo mundo e eles só
podem ser alterados
pelo mundo ou pelo nível. Por exemplo, fazendo
protetor solar de nível do que colocar
alguns parâmetros. Essa é a ideia geral. Você tem um bloco que
é um único padrão é apenas a ideia de
um bloco por assim dizer. Porque se eu disser
Redstone ou bloco, você é como, Ok, eu
sei como é Redstone ou bloco, mas se eu tiver três Redstone
ou blocos
diferentes no mundo, eles são todos diferentes, mas
são todos do mesmo tipo. Essa é uma espécie de ideia. Então
você pode pensar em um bloco como uma classe e o estado do
bloco seria o objeto que é
criado a partir dele, digamos em termos de linguagem de programação,
por assim dizer, certo? Então, o que são propriedades de bloqueio
sentado agora? Bem, o pequeno título aqui, ou como armazenar dados em blocos não é
100% correto,
mas é uma espécie
de ideia do mesmo. Então, na
classe de bloqueadores de cálcio neste caso, a questão geral
pode ser, bem, por que eu não
coloco um booleano lá e então
funcionará bem, mais
uma vez, pense nisso. Quando estamos criando um bloco, escreva o, esta classe
aqui é criada uma vez. Então, se você tivesse apenas
um booleano lá para todos os blocos desse tipo,
ele será o mesmo. E então, é claro, não faz nenhum sentido porque
se
este Redstone ou bloco
está aceso ou não está aceso, não tem nada a ver com aquele como dois quarteirões de distância dele. Certo. E isso, claro,
não faz nenhum sentido. É aí que
entra a separação e é
aí que o bloco diz, as propriedades precisam ser usadas. Podemos ver aqui que temos uma propriedade
booleana chamada lit. E o que é muito
importante é que
definimos isso na classe de blocos. E então sempre,
sempre temos que chamar o método de definição de estado de
bloco de criação método de definição de estado de
bloco aqui e basicamente adicionar as
propriedades ao construtor. Isso é muito importante
é que, em geral, as propriedades nunca podem ser nulas. Portanto, eles sempre têm
um valor acima, podem ter várias propriedades
diferentes. E essas propriedades
podem então ser
referidas posteriormente no
arquivo JSON de estados de
bloco para basicamente se referir a diferentes modelos que já
vimos isso, certo? Vimos as escadas dentro
das portas, tudo isso. Eles basicamente têm muitos blocos diferentes,
as propriedades
e, em seguida, o final,
dependendo de seus valores, eles se referem a um modelo de bloco
diferente. E ele era basicamente
um exemplo, certo? Isso seria, LET é igual a falso e isso está aceso,
é igual a verdadeiro. Alterando o estado do bloco. Bem, como isso é feito? Bem, na verdade, é
feito com muita facilidade. Só precisamos de um nível aqui. Então, precisamos de uma
variável de nível em algum lugar, definir o bloco em uma posição
específica. Em seguida, obtemos o estado atual. Definimos o valor de lit exatamente o que está dentro
daqui, certo? Neste caso, true. E então os três são apenas um sinalizador,
basicamente, que determina o comportamento de atualização da configuração
real do bloco. Normalmente, isso é feito
no servidor. Então, se você está apenas fazendo isso no cliente
não vai funcionar. Basicamente, sempre certifique-se que você está em um thread de servidor quando estiver alterando o estado do
bloco era, é claro, se o cliente pudesse simplesmente
alterar os estados de Bach, ou isso poderia levar a algum
interessante problemas que dizem, e sim, essa é
praticamente a ideia, certo? Isso acontece em uma
determinada posição aqui. O segundo parâmetro
é o novo estado nessa posição de bloco. E então o terceiro
parâmetro, como eu disse, ele muda o comportamento de
atualização. Nós basicamente vamos
passar com 3 4 Amin, basicamente a totalidade
deste curso porque
três basicamente apenas atualizam todos os
vizinhos e
atualiza a maneira que parece e
isso está acontecendo para ficar bem. Então, no momento, eu não me preocuparia
muito com isso se você realmente
precisar de outra coisa,
então, nesse ponto, espero
que você seja um avançado o suficiente para basicamente descobrir
isso seu próprio também, certo? Mas isso
seria praticamente para a teoria aqui. Então, vamos entrar na
inteligência e vamos pressionar a tecla Shift duas vezes
e vamos colocar em uma pedra ou bloco vermelho. Na verdade, vamos
dar uma olhada nesta aula. E como você pode ver,
praticamente exatamente o que tínhamos aqui, uma propriedade booleana chamada lit Na parte inferior, temos o método de
definição de estado de bloco credo aqui, que é chamado. Então ambos são basicamente
as coisas importantes. Agora, a razão pela qual escolhi o Redstone ou bloco
aqui é porque esse é o exemplo mais fácil de uma
única propriedade de estado de bloco. E não tem
muitas outras coisas aqui. Mas há, é claro,
algumas outras coisas. Ataque aqui seria se você
apenas clicar com o botão esquerdo no bloco, então ele começa a pesquisar
o método Interact, que basicamente está aqui. E isso é muito interessante. Então, se a propriedade lip for falsa, então vamos defini-la como true. E você pode ver que essa é exatamente
a configuração verdadeira que tínhamos na
apresentação do PowerPoint também. Definimos o blog em uma posição
específica. O estado que estamos definindo
o valor de LET the true
e, em seguida, o sinalizador aqui é três. Então eu acredito que, se
passarmos o mouse sobre isso, você pode ver que as
bandeiras mundiais são as seguintes. Uma é uma atualização de bloco, dois enviarão para o
cliente para evitar que o bloco seja renderizado novamente
e coisas assim. E você pode basicamente adicioná-los. Mas se colocarmos um três, então o que vai
acontecer é que isso causará uma atualização de bloco e enviará as alterações
para o cliente porque colocamos 1 mais 2. Essa é a ideia básica. Se
você precisar de mais alguma coisa e eles são basicamente,
basta dar uma
olhada nisso por enquanto. Não vamos nos
preocupar muito com isso. Bem, isso está tudo
bem e bem, todos
podemos dar uma olhada nisso, mas sejamos honestos, queremos
fazer algo nós mesmos, e isso é
exatamente o que vamos fazer. Criaremos uma nova classe aqui. Então, em nosso pacote personalizado, clique com o botão direito em nova classe Java. E esta será
a lâmpada de cobalto preta. E isso estenderá
a classe de blocos. Claro, aqui mesmo, importe esta imagem
que escolhemos, que escolhemos a
correta sobre o,
o construtor de tela
que combina super. E se isso nos ruir, podemos
clicar nele, pressionar Shift F6 e
escolher Propriedades aqui. Lá vai você. Tudo bem, agora
precisamos, é claro, de um bloco, digamos propriedade. Agora vou
fazer desta uma propriedade booleana final
estática pública propriedade booleana final
estática chamada clicada, que é igual à
propriedade booleana dot create. E é isso. E regulamentos, você criou uma propriedade de ID de blocos personalizados. Isso é tudo o que precisamos fazer. E, claro, ainda
precisamos
substituir o método Criar definição de
conjunto de blocos. E, em seguida, basicamente chamá-lo de
P builder dot add, clicado. Lá vai você. Se você tiver vários
blocos, as propriedades, você pode simplesmente adicioná-los basicamente
separando-os com uma vírgula. Claro, adicionar clicado duas vezes aqui não faz
muito sentido, mas se você tiver vários,
você pode
separá-los com uma vírgula e adicionar
quantos você pode
separá-los com uma vírgula e adicionar quiser
com o código de adição aqui. Agora, o que queremos é que
queremos poder clicar com o botão direito do mouse neste bloco e, basicamente
, ele liga e desliga. Vamos apenas pegar o método
dos EUA aqui. Vamos anular isso. Então deixe-me fazer isso
um pouco diferente. E então, é claro, porque
isso está obsoleto, você pode ver que não
devemos chamar isso. Vamos apenas
retornar o
resultado da interação desse sucesso,
isso vai ficar bem. Agora a pergunta é, ok,
o que vamos fazer? Bem, vamos dizer
se o nível P é do lado do cliente. Então, basicamente,
certificando-se de que temos o, isso é muito importante
que tenhamos o ponto de exclamação
na frente, basicamente negando isso, certo? Então, queremos estar no
servidor, não no cliente. E vou dizer que p-hat é igual a
interação de mãos dadas. Nós só vamos
chamar isso de sempre, essa é a ideia básica. E isso é muito importante. Então ponto de exclamação, por favor, note isso porque já
vi isso várias vezes. As pessoas esqueceram
o ponto de exclamação onde queremos estar no
servidor, não no cliente. E então vamos dizer que o estado atual
booleano é igual ao estado em que
fomos passados. Então, esse seria o estado de bloqueio
real que acabamos de clicar com o botão direito do mouse. E eu vou dizer para
obter um valor de clicado. E então o que vamos
fazer é dizer bloco de
nível definido que parece que vimos nesta posição
específica em que clicamos com o botão direito
com um estado em que clicamos o botão direito e
definimos o valor de clicado para o estado atual, negou os primeiros parênteses, orientando, colocando em três, que são as bandeiras. E, e isso é realmente
tudo o que precisamos
fazer para que esta lâmpada mude. Bem, está estado bloqueado. E vamos ver como
podemos basicamente representar isso ou como vamos ser capazes de
ver isso em apenas um momento. Mas sim, isso é praticamente
tudo o que precisamos fazer. Você pode ver tudo aqui. Isso não deve ser muito
louco neste momento. Sim, então vamos realmente
registrar o bloco também. Então, na nossa classe mais blocos, vou
copiar sobre o alçapão de
flor de cerejeira e
esta será
a lâmpada
sublinhada de cobalto pois é a mesma
aqui, lâmpada Cobalt. E este agora é um bloco de lâmpada de
cobalto, que
definitivamente não vai levar madeira. Vamos pegar
um metal e, em seguida, nenhuma oclusão também não
é o caso. Agora, o que vamos realmente adicionar é algo
muito interessante. Não vamos ser estritamente necessários, mas eu queria mostrar isso. Basicamente, o que eu quero é que, se a propriedade click for verdadeira, então o que eu quero é que
isso seja ativado lá. Como fazemos isso? Bem, você pode ver que temos
este nível de lago aqui, que é uma
função para Int do estado de bloco. O que isso significa? Bem, basicamente leva um estado aqui e então nós o
temos semelhante a a. Você pode ver que isso é semelhante a um fornecedor e então
só precisamos devolvê-lo para que
possamos colocar em 15, por exemplo. Independentemente do estado, você pode ver que ele
só retornará 15. Isso não é bem
o que eu tinha em mente. O que eu tinha em mente é que
vamos dizer ponto de estado, obter um valor de
lâmpada de cobalto ponto preto clicado. Então, estamos basicamente
recebendo o valor e, em seguida, vamos
usar o operador ternário. Se isso for verdade,
vamos retornar 15, que é o nível máximo de luz, e então, caso contrário,
retornaremos 0. Essa é a ideia geral aqui, é apenas um, algo
a acrescentar basicamente. E também então você,
agora você sabe, ei, é
assim que você pode
facilmente adicionar um nível de luz lá a
um bloco, se quiser. E agora, é claro,
para os arquivos JSON. Então, vamos
primeiro adicionar a tradução só porque isso vai ser um
pouco mais rápido. Só vou copiar
sobre a cerca aqui. A lâmpada de cobalto. Eles vão sobre a lâmpada. E então também copiarei
sobre os estados de bloco. Esses são, naturalmente,
todos disponíveis para você
no repositório do GitHub ou
individuais também. E aqui vai você. Então clique neste igual a lâmpada de coorte
falsa desligada. Então, vamos apontar para esse modelo, eles
clicaram é verdade. Então vamos apontar para
a lâmpada sublinhada de cobalto no modelo de bloco. Então, vamos copiar ambos os modelos de
sangue também. Não deveriam ser muito loucos, não é? Não, claro que não. Na verdade, eles não são muito loucos. E veja, nós apenas
apontamos para a lâmpada de cobalto apagada e, em seguida, no
outro, você pode adivinhar? Sim, no geral, cordeiro. Portanto, é muito
simples, na verdade. As texturas que estamos apontando para eles com o
modelo do item, você sabe, ele só vai estar
apontando para o off, vamos realmente apontar
para o unimodal. Bem, na verdade, você sabe, vamos fazer esse ponto para o modelo porque isso é um pouco melhor neste caso. E então, é claro,
basta copiar as texturas como
vimos várias vezes. Agora. Eles vão e bem, isso é praticamente tudo
o que precisamos fazer, certo? A maior parte do trabalho pesado aqui feito pela propriedade booleana, e o resto é, bem, deve ser bastante
autoexplicativo. Então, vamos ver se funciona. Ou nos encontramos de
volta ao Minecraft. Como você pode ver, o
cobol M tem sido um não solicitado
e lá está. Começou na posição ligada. Então, basicamente, começa com uma propriedade booleana t sendo
verdade, tudo bem. Claro,
não há preocupações lá. E o que você pode
realmente ver, como vamos realmente colocar tempo à
noite aqui e ver
se eu clicar com o botão direito do mouse nele. Agora, podemos realmente ver que a luz é o que está sendo
ligado e desligado. Então isso é muito frequente, legal. Mas isso é, na verdade, o quão
fácil isso pode ser também. Mas apenas para que tenhamos,
se você talvez queira uma propriedade padrão
diferente, o que podemos fazer é que podemos chamar
isso no construtor, esse estado padrão de registro de pontos. E então podemos dizer que esse estado de bloco padrão de
ponto, nosso valor definido de
clicado será false. E com isso, basicamente
o que vamos fazer é que estamos definindo
isso como falso. Portanto, a propriedade clipe
agora será falsa por padrão. Mas essa é uma espécie de ideia
geral para uma outra coisa interessante
é que, por exemplo, se entrarmos na propriedade
booleana, então
clique no botão do meio do mouse, você pode ver que esta é uma propriedade do tipo Booleano. Se eu pressionar Control H aqui, você verá que elas também são propriedades
inteiras bem
como propriedades de enum. Uma das mais é
a propriedade direction. Assim, você também pode usar propriedades
inteiras e todas as
outras também. E se realmente dermos uma
olhada na propriedade booleana que
cria, por exemplo, podemos fazer isso, mas também podemos
dar uma olhada, por
exemplo, o estado do bloco. Acho que está bloqueado. Três propriedades. Go block, digamos
propriedades que
a classe tem basicamente todos os blocos de baunilha, as propriedades definidas
aqui, podemos ver, por exemplo, algumas
propriedades inteiras, idades, max, idades. Temos algum nível de
caldeirão nível, capacitor de nível baixo. Então, com basicamente
alguns exemplos aqui, recomendo vivamente dar
uma olhada nisso se você quiser criar seus próprios blocos
personalizados uma propriedade. Caso contrário, isso já
seria para esta palestra aqui. Espero que você tenha achado isso
útil em termos do novo, e eu o vejo
na próxima palestra. Então, sim.
67. (intermediário) como os dados NBT?: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos dar uma olhada dados
NVT ou, como agora é chamado, tags
compostas, basicamente as tags MVT. Então, o que são esses? Bem, é basicamente uma
maneira de salvar dados em, por exemplo, pilhas de itens. Agora, a primeira
pergunta que vem à mente são pilhas de
itens de águas residuais. Bem, assim como os estados do Bloco são as representações de um
bloco dentro de um mundo, pilhas de itens
semelhantes são representações de itens
dentro do seu inventário. Então, se você tem duas espadas de diamante
diferentes, bem elas são ambas o
item, espada de diamante, mas ambas são itens
diferentes, pilhas, Isso é uma ideia geral. E para isso, o que
vamos fazer é salvar o resultado que tivemos
da última vara de dowsing. Clique com o botão direito do mouse
em um poço em dados NVT. E o que vamos
fazer é fazer um novo item para isso. Então, em nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java
chamada item de tablet de dados. E isso estenderá o
item, é claro, sobre tudo isso criar
construtor combinando super. E então o que
vamos fazer é apenas
adicionar um monte de coisas. Então, antes de tudo, não
precisamos
adicionar nada para poder adicionar dados
NVT a isso. Podemos adicionar dados NVT a qualquer
pilha de itens diferente que quisermos. Isso é praticamente isso. O que vamos fazer, no entanto, é que vamos ter
as seguintes coisas. Então, número um, eu realmente
quero que os dados NVT sejam exibidos como uma dica de ferramenta. Vamos fazer é que vamos dizer
anexar texto do mouse. E o que vou fazer é basicamente dizer, Ei, se a pilha real
aqui, certo, tiver tags. Portanto, esse é o método que
verifica se, você sabe, dados NVT ou
ataques estão presentes aqui. Então vamos dizer que as
laranjas são apenas uma corda. E vamos ler
isso da pilha. Dot é marcado, então isso obtém a tag NVT ou
a tag composta. Então você pode ver que existem diferentes tipos de
métodos que
podemos basicamente obter isso
alguns get diferentes. Há também algumas colocações. Bem, o que vamos
fazer é obter
uma string com a seguinte chave, ponto do curso
MC último
sublinhado ou. E então vamos adicionar isso
à dica de ferramenta. Então P componentes de dica de ferramenta, ponto adicionar novo
componente de textos ou um Tudo certo, então vimos agora dois
dos três métodos importantes, bem, de tag basicamente
têm tag e depois são marcados. E então você pode
basicamente obter qualquer tag por meio de um ano chave específico. E também faremos é que
vamos fazer esse membro. Então, vamos basicamente
ter o brilho encantado neste item se
houver uma prisão de etiquetas. Então vamos dizer que é foil e vamos devolver
a pilha, não como tag, mas é
praticamente isso. Assim que ele tiver um
componente de tag p nesta pilha, ele
começará a meio que brilhar como se estivesse encantado. E então também substituiremos
o método dos EUA aqui. E o que vamos fazer é dizer o seguinte. Vamos dizer que se o
jogador não conseguir o item na mão, ele usava a mão que tem tags. Então, mais uma vez, se tivermos uma tag, então vamos
fazer é
dizer que o jogador GetItems e usou a mão dessa tag. Então este é o terceiro
para uma nova tag composta. Porque se estamos
apenas configurando isso para uma nova tag composta que não tem nada
associado a ela, então ela basicamente apagará a tag e a hashtag agora
será falsa. Então, basicamente, se
apenas clicarmos com
o botão direito do mouse no
tablet de dados do item D no ar, ele apenas apagará todos os dados
que estão lá. Essa é a ideia básica aqui. E bem, isso é praticamente
tudo o que há para isso, certo? Temos a hashtag, temos a tag git e temos o ataque definido. Esses são praticamente todos
os três grandes métodos que precisamos pensar. E agora, na verdade, vamos
fazer é que vamos, claro, mudanças
na vara de dowsing. Mas para isso,
vamos precisar uma aula de ajuda util em
nosso pacote do YouTube. Clique com o botão direito em nova classe Java
chamada inventário util. Na verdade, vou copiar
esses dois métodos porque isso só
vai tornar isso um
pouco mais fácil. Então você pode ver que é apenas,
basicamente como um método booleano e
um método inteiro. E o
método booleano apenas diz:
Ei, o jogador,
este jogador tem esse item em
algum lugar em seu inventário? E então o outro apenas diz
basicamente: Ei, tem o, onde está o índice do
item que estamos passando? Mas essa é basicamente
a ideia geral aqui. E o que vamos fazer é
no nosso único item Dao, vamos agora mudar isso. Um dos principais, é
claro, está disponível para você
no repositório do GitHub ou em um
indivíduo também. Mas vou copiar
o método principal aqui, que será o
anúncio em BT para tablet de dados. Agora, como você pode ver,
vamos realmente precisar
definir a guia mais
dados do item também. Portanto, não se preocupe lá.
Nós vamos fazer é apenas imediatamente
registrar isso. Então tablet de dados. E então aqui os dados
sublinham tablet. E isso é, claro,
um item de tablet de dados que eles atrás com apenas as propriedades
normais. E então. Tudo aqui
deve funcionar bem. Isso não deve ser muito louco. Neste ponto,
registramos tantos itens. Registrar um item deve
ser quase uma segunda natureza. Agora, o que estamos fazendo aqui? Bem, estamos basicamente recebendo o item do inventário do
jogador. Mas ao obter o
primeiro índice inteiro, estamos recebendo a
primeira instância
desse item no inventário. Isso é muito importante. Então, é basicamente
assim que vai funcionar. Vou mostrar, é claro, na demonstração
apenas um momento. E então vamos
criar uma nova tag aqui, então dados NVT. E então
vamos colocar uma corda com essa chave. Muito importante que
essa chave esteja correta, porque isso tem que ser
exatamente o mesmo por, quando estamos lendo
isso basicamente. E então nós apenas colocamos, bem, basicamente as mesmas coisas
que colocamos aqui. Então, vamos apenas
imprimir o nome e basicamente a posição
em que o encontramos. E aqui estamos
apenas configurando a tag do tablet de dados para dados MVT. E então dentro
daqui, basicamente logo depois de encontrá-lo, o que vamos fazer é que
vamos dizer no seguinte, vamos dizer se o inventário util dot tem pilha de jogadores e inventário com o jogador e mais itens que
o ponto do tablet de
dados obtém. Se for esse o caso, então o que queremos fazer
é adicionar dados
NVT aqui com o jogador, a posição clique abaixo de I
e, em seguida, bloquear abaixo também. Lá vai você. Isso é praticamente isso.
Agora, isso, é claro, não
é importante para os dados
NVT em geral. Essa é basicamente a
maneira que estamos adicionando. Portanto, isso realmente é como a parte principal
dos dados NVT aqui,
neste caso, fazendo uma
nova tag composta e, em seguida definindo a aderência nessa pilha de itens em
particular. Essa é praticamente
a ideia básica. Agora, para
fins de conclusão, é claro, vamos também adicionar a
tradução aqui. Este será o tablet sublinhado de
dados. Tablet de dados aqui. Muito bom. E, em seguida, adicione também o modelo do item
ali para que você possa
ver que ele aponta para o sublinhado de dados do
tablet sublinhado, textura
extra curiosa e fora. Há também uma
textura própria? Sim, existe. Mas isso é algo que
vamos ver na próxima palestra. Na verdade. Vamos
apenas copiar isso. E isso deve ser praticamente tudo o que precisamos fazer
para adicionar bem o tablet de dados
e alguns dados de entidade personalizados. Então, vamos ver se funciona. Ou farces back e microvesículas veem que a tabela de dados foi adicionada ao jogo. Agora, na verdade,
teremos que mudar o empilhamento máximo aqui
em apenas um momento, mas isso é claro que será uma solução muito fácil. E vamos ver se
consigo encontrar objetos de valor. Então, devemos ver o
primeiro é um tablet. Lá vai você. Então agora podemos ver cobre do Minecraft
encontrado ou
exatamente na posição que
tínhamos lá também. Então, tudo funciona. Se eu
agora clicar com o botão direito com ele. Ele agora foi excluído. E o que é muito importante é
que, se eu encontrar outro, você pode ver que ele o substitui
para o primeiro. Isso é basicamente o que eu disse, mas vai
substituí-lo e não colocar este próximo. É claro que você poderia
fazer outro método comum bem, inventário que é como um achado
sem dados NVT. E então você vai
adicioná-lo ao próximo. Isso também funcionaria,
claro, totalmente bem. Mas, por enquanto,
isso é muito bom. Agora vamos realmente consertar
o empilhamento disso. Então agora você pode ver que eles
não se empilham mais. Há um deles
que tinha dados NVT nele. Mas você pode ver, eu posso comprar novos aqui e
posso empilhá-los, o que é claro que
não é exatamente o que queremos. Então, vamos consertar isso rapidamente. Mas isso é, claro, uma solução
muito fácil, certo? Nas propriedades do item, vamos apenas adicionar o
imposto ao método aqui, e vamos
colocar um 1. Então isso deve ser bastante
autoexplicativo aqui. E com isso, basicamente
todo o tablet de dados está pronto. E isso já seria
para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
68. Propriedades de itens (intermediário) (de mediate): Ou voltarei ao curso de
forragem por 118. Nesta palestra,
vamos adicionar uma propriedade de item personalizada
ao nosso tablet de dados. Agora, alguns de vocês podem dizer: Espere O que diabos é uma propriedade de modelo de item personalizado
ou uma propriedade de item? Nunca ouvi falar disso. Bem, basicamente é muito semelhante a uma propriedade de estado de
bloco. No entanto, ele nos permite 0 para um
arquivo JSON de modelo de item diferente se a propriedade
alterar seu valor. Então, o que podemos fazer
é alterar a textura do item do tablet de
dados se, você sabe, se
tivermos, por exemplo, em dados BT nele. O que vamos fazer é
fazer uma nova classe no pacote util chamado propriedades do item mod. E, em seguida, vamos fazer
um vazio estático público chamado método
adicionar
propriedades de item personalizado. E então vamos
fazer o seguinte. Primeiro de tudo, vamos pressionar shift
duas vezes e
vamos colocar as propriedades do item e, em
seguida, certificar-nos propriedades do item de que o
carrapato aqui esteja marcado basicamente a caixa inclua itens que
não são do produto. E então
vamos entrar nessa classe e você pode ver que essa é basicamente a classe de propriedades
do item. E se descermos, você pode ver isso, por exemplo, a tigela que tem o poste e as
propriedades do item de tração que são usadas para alterar a textura dentro do
inventário da tigela. Então isso é muito legal. E isso é, bem, uma daquelas coisas que, se
você não sabe sobre
isso, é muito difícil
pensar sobre isso. Mas uma vez que saibamos, uma vez que você tenha visto como funciona, na verdade será
bastante simples. Então, vamos dizer as propriedades
do item que
registram os
itens de modo, tablet de dados, ponto get e, em seguida, um
novo local de recurso chamado MC course mod, mod ID e depois em diante. Então, esse é apenas o nome do, da propriedade basicamente. E então o que precisamos é que precisamos
de um método louco Well. E então o que vamos fazer
é colocar entre parênteses e depois API. E você pode ver
que basicamente apenas uma vez gerado para nós
a função de propriedade do item. Então, vamos apenas apertar
a tecla Tab e, em seguida, tudo bem. Agora, esta
função de propriedade do item retorna um float e isso basicamente é
o valor que a propriedade
do item recebe. O que vamos
ver é que vamos dizer P stack dot hashtag, western mark one, f dois pontos 0, F. E estamos basicamente usando
o operador ternário. Mais uma vez, ele
retornará um se o
ataque estiver realmente presente e 0 se o ataque não estiver presente. Bem, então isso é praticamente
tudo o que precisamos fazer. Vou precisar chamar isso
na configuração do nosso cliente. Isso é muito importante,
que é chamado método
direto aqui propriedades
do item,
mais propriedades do item que adicionam propriedades de itens
personalizados.
E isso é praticamente isso. Para cada item adicional. Acabamos de adicionar uma nova chamada de
registro aqui. E então isso
será
praticamente tudo o que precisamos fazer. Agora, onde
usamos isso aqui? Bem, usamos isso dentro
do modelo do item. Então, o que vamos
fazer é antes de tudo, vamos basicamente
ter um novo modelo. Então, o tablet de dados aqui, eu realmente vou
copiar isso. Então, vou arrastá-lo
para a mesma pasta enquanto segura o Control. Vou chamar isso
de tablet de dados. Vou mudar isso para tablet de
dados aqui, não muito cedo, mas no ego. E então vou copiar sobre o outro tablet de dados
ou o conteúdo aqui. Vamos abrir isso. Agora temos um sublinhado
de
tablet de dados apenas normal com base no arquivo. E isso, vou copiar
o conteúdo e
vou explicar bem
como isso funciona basicamente. Portanto, por padrão, essa é a
textura que ele escolhe, o tablet de dados desativado. Agora há uma substituição aqui. Esta é basicamente uma lista de diferentes substituições
que tem um predicado. E o predicado é basicamente você pode pensar nisso como um, se isso for verdade, então
vamos sobrescrevê-lo com
esse modelo aqui. E o predicado é, ei, núcleos
MC na
propriedade do item tem que ser um. E então vamos
substituí-lo este aqui, que é o tablet de dados do item do
curso MOOC no qual acabamos de fazer aqui, que basicamente aponta para o contexto do talento de dados. Isso é praticamente
tudo o que há é que isso não deve
ser muito confuso, isso não deve ser muito louco. Estamos basicamente fazendo isso de uma maneira muito semelhante, pois o bloco diz que as propriedades são
um pouco diferentes. E sim, isso é
praticamente tudo o que há para isso. Então, vou adicionar
o outro tablet de dados na textura também. E então o que estamos basicamente prontos para dar uma olhada nisso. Mais uma vez, recomendo estar aberto à
experimentação, brincando
um pouco com isso porque as propriedades do item são realmente muito
legais e eu realmente adoro isso. Na verdade, é bastante
fácil fazer isso. Então eu
recomendo dar uma olhada nisso. Mas, para fins de conclusão,
vamos ver se funciona. Tudo bem, nos encontramos de
volta ao Minecraft. Então, vamos ver, vamos
tentar encontrar alguns objetos de valor. E então, assim que o
encontrarmos, lá está. E então a textura real também
mudou. Portanto, isso é
realmente muito legal, e posso clicar com o botão direito do mouse para, excluiremos os dados novamente e em seguida, a textura muda de volta. Então, isso é realmente o quão
fácil é, bem, basicamente mudar a
textura disso e apenas algo como
pequeno como este, certo? Alterar a textura
no tablet é um
efeito
tão legal que, com certeza ,
é como, vai
fazer um mod inteiro saber? Mas se você adicionar
algo assim ao seu MOD vai
ser muito frequente
, certo? E isso já é isso para
esta palestra aqui. Todos os códigos
nos arquivos JSON estão, naturalmente,
disponíveis para você
no repositório do GitHub e para
um indivíduo também. E eu vou te ver na
próxima palestra. Sim.
69. TARde 7: Blockstates e NBT: Tudo bem, bem-vindo
a este exercício aqui para o curso de forja. E o que você
basicamente deve
fazer aqui é que faremos um como alguma propriedade de estado de bloco e
, em seguida, um exemplo de dados NVT. Basicamente, sua
criatividade é justa, você pode fazer o que quiser. Basicamente, seja criativo. Não fique muito louco, certo? Não pense que
vou fazer coisas malucas com
seis dados NVT diferentes. Oh, muito lento, muito fácil, certo? Talvez faça outra propriedade
booleana, talvez faça uma propriedade inteira, seja lá o que for, isso para
algo que é realmente legal, mas também não muito louco. Não
exagere muito com isso. Basta pensar nisso e então você gerenciará essa tarefa. Não há solução real
para isso porque, bem, basicamente você pode fazer
o que quiser aqui, o que pode ser um
pouco grande demais, mas tenho certeza de que
você vai gerenciar, mas estou muito interessado em
veja o que você pode inventar e sim.
70. Colagem personalizada (intermediário) (de mediate): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar uma colheita personalizada ao Minecraft. Portanto, o corte personalizado é, na verdade um
processo bastante simples. Todas as coisas consideradas,
há, é claro, algumas coisas muito especiais
que ainda não vimos, mas no geral, vai
ficar totalmente bem. Então, antes de tudo, precisamos um passe personalizado em
nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java
chamada de bloco Rob nabo. E bem, temos duas possibilidades
diferentes aqui. Podemos estendê-lo
do bloco de colheita ou, e isso será mais fácil primeiro, vamos estender isso do bloco de raiz de beterraba. Agora, a razão para
isso
será aparente em apenas um momento. Primeiro de tudo, se o
parâmetro for seu ruído, você muda F6 e,
em seguida, renomeie-o para propriedades e clique no
botão do meio do mouse no bloqueio do
talão aqui. Qualquer um verá que ele tem uma propriedade
inteira chamada age. Agora, essa propriedade inteira
vai de 0 a três, que é exatamente
o mesmo número de idades ou valores de idade que
nosso bloco também possui. É por isso que
basicamente podemos tomar quase a totalidade disso. Só precisamos substituir
o bom método de identificação de semente
aqui em nossa própria classe. E o resto basicamente pode
ficar exatamente como está. Agora, se você tiver uma
idade diferente em sua safra acostumada, dê uma
olhada no bloco de colheita. Você pode ver que a sorte da
colheita realmente tem uma pessoa de
sete anos neste caso. Se você quiser
alterar isso, também, você pode simplesmente alterá-lo usando um diferente a cada ano ou você
pode definir sua própria idade se, você sabe 12357 e 15 ou 25 não
são nenhum dos
agentes que você deseja. Você pode simplesmente criar sua
própria propriedade inteira. Já vimos isso anteriormente. Então isso não deve ser muito louco. A única coisa que pode
ser um pouco louca é essa forma por idade aqui. Então eu posso realmente diminuir
um pouco e depois rolar e continuar
rolando e rolando. Isso está muito mal
formatado em minha mente. Só não gosto disso, que está tudo em uma linha. A ideia geral é que basicamente
temos apenas uma caixa no nível selvagem
dessas mudanças de caixa. A caixa é o contorno preto que um bloco tem quando
você passa o mouse sobre ele. E o esboço muda de acordo com a idade da cultura real aqui. E então o mesmo vale para
basicamente o bloco de raiz de beterraba. Você pode ver na 0ª idade, são 246 e oito. E você pode basicamente mudar
aqueles na vontade também. Então isso é algo
que você também pode fazer. Tudo isso não deve
ser muito louco. Todas as coisas consideradas. Você sabe, se você tem uma cultura
completamente personalizada que deseja implementar com uma idade diferente e tudo isso,
tenho certeza de que você
vai gerenciar porque maior parte disso não é muito louca. Apenas certifique-se de saber, você, você substitui o método de idade
GetMax. Basicamente, basta dar uma
olhada na raiz da beterraba. Aqui, dê uma olhada
no bloco de colheita aqui. Dê uma olhada nas
mudanças que eles fizeram de um para o outro
e depois o resto. Tenho certeza de que você vai
gerenciar e descobrir. E nós realmente precisamos substituir o ID de semente por enquanto, o que vamos fazer é que
vamos fazer isso um, fazer isso um erro. Então, não me esqueço disso. Esta é apenas uma
dica rápida aqui porque eu talvez eu queira esquecer de
mudar isso e então você vai ter que
passar por isso de novo. Então, não vamos fazer isso. E vamos então adicionar um, bem a colheita aqui
em nossa classe box. Então isso vai ser apenas
copiando o alçapão aqui. E vamos chamar isso de safra
de sublinhado de nabo. Agora, o que é muito
interessante é que,
claro, essa
também será
a safra de sublinhado de nabo. Agora isso não é um bloco de registro, este é o registro de pontos de blocos. E a razão pela qual estamos chamando blocos ou registramos em vez de fazer o método do
bloco de registro é porque na verdade
não queremos um item de bloco associado a esse prop
específico aqui. O que queremos é que queremos
fazer uma semente mais tarde. Então, vamos dizer bloco de safra de
nabo. E então isso realmente
vai ser material,
mas vamos
dizer cópia e mono, digamos blocos de trigo ponto, sua
célula que nós realmente, vamos fazer raiz de beterraba, raízes de
beterraba, eles vão
e o resto é tudo bem. Acredito que a única
outra coisa que queremos é não fazer
colisão também. Portanto, sem colisão, sem oclusão. Comprimento 2 que
realmente não deveríamos precisar aqui. E então o resto
deve ser copiado das raízes
da beterraba de qualquer maneira, então não se preocupe lá. Então este é o
bloco realmente feito e ainda precisamos do item. Agora esse item, como eu disse, vai ser apenas as sementes. Então, vamos apenas escolher o tablet de dados e
vamos
dizer transformar sementes de sublinhado de IP. E então o nome
aqui, é claro, também apareceu sementes sublinhadas. E isso vai ser um
item, nome, item de bloco. Isso é interessante, sim. Certificar-se de que isso realmente se
acumula em mais do que apenas um. E então
vamos mudar o nome aqui também. Portanto, essa ordem e, em seguida, o primeiro parâmetro
será o modo de
bloco blocos
dot urllib crop. No entanto, vamos mudar um pouco a
formatação. Quero dizer, isso
vai ficar bem. Isso vai
ser bom em leitura. Mas vamos precisar
fazer disso um item
chamado item de bloco
porque realmente
queremos tomar a vez do nome das sementes
em
vez do nome do BlockName
da porcaria de nabo. Agora, o que podemos fazer
na classe, pois
podemos devolver mais itens, nabo de
ponto, seeds.rb,
bem aqui. E então a classe
realmente fez, como eu disse, se você tem idades
diferentes e
coisas assim, dê uma olhada na classe de colheita,
dê uma olhada na classe de blocos de
beterraba. Eu recomendo que isso deve ser basicamente tudo o que
você realmente precisa fazer. E no
curso MC mod uma classe, também
precisamos adicionar a cultura de
nabo à camada de renderização
específica. Então, vamos apenas duplicar
isso com o Control D. E depois colocar, por sua vez
, uma colheita aqui. E isso também é feito. E, em seguida, os arquivos JSON
são tudo o que restou. Agora vamos realmente fazer
a tradução primeiro porque há uma pequena tendência para esquecer isso. Então, vamos aumentar a safra de
sublinhado. E então esta será
a cultura de nabo aqui. E então o que vamos fazer é apenas acrescentar também, isso vai ser
as sementes, elas vão ser sementes. E então a colheita será
realmente adicionada aqui. Então, vai ser exibido,
sublinhado safra. Vire para cima, Rob. Então você pode querer essa
tradução também, apenas para que você a
tenha quando tiver o, o que estou olhando para o
modelo que basicamente exibe qual o nome real das caixas que
você está olhando. Isso às vezes também pode
ajudar lá. Com a tradução básica. Vamos copiar sobre o bloco Estados Jason e eu vou explicar. Claro, você pode ver que
isso não é nada muito louco, nada que ainda
não vimos. Basicamente, temos
quatro idades diferentes, 0 a três, e estamos apenas apontando para diferentes arquivos JSON de modelo de
bloco. Então, isso é basicamente tudo
o que há para ele. Isso não deve ser
nada completamente novo. Nós só vamos
copiar isso também. Esses são, naturalmente,
todos disponíveis para você
no repositório do GitHub ou em um
indivíduo também. E você verá que isso agora
é apenas colheita aqui. E então as texturas
também apontam para cortar. E então nós apenas apontamos para
diferentes modelos de blocos. Apontamos para
diferentes texturas de blocos. Então isso é praticamente
tudo o que há para ele. E vamos também copiar
as sementes aqui. Também apenas aponta para uma textura. Nada de louco sobre isso. Bem, isso na verdade
não é tão louco. Todas as coisas consideradas. Vamos pegar a
textura do Aedes e, em seguida, vamos obter texturas de chumbo
para os blocos também. Eles apenas 0 a 3 anos. E então mais uma coisa muito
interessante será,
bem, a mesa de saque. Agora, como funciona a mesa Lu? Bem, para isso, vamos
apenas ir para as bibliotecas externas. Mais uma vez, a
pasta de dados aqui, cliente de microondas
direito e
1181 extra para os blocos de tabelas de alaúde. E então vamos
dizer, por exemplo, as raízes da beterraba. Vamos abrir
isso e você pode ver que isso é um pouco mais
complicado neste momento. Mas o que podemos fazer é
simplesmente selecionar todo o controle C, ou também podemos selecionar
o arquivo JSON Control C. E, em seguida, basta ir até o nosso curso MC tabelas Lou blocos
Control V para colá-lo. E então
vamos dizer se Eva aparecer sublinhado, e então só precisamos mudar
um monte de coisas aqui. Agora é muito importante,
como você pode ver, que estamos realmente
procurando por um bloco, digamos, propriedade, velhice, e tem
que ser três. E então esta é
a condição sob a
qual a batida real cai. Isso é muito importante. Então, este
será um
nabo do curso MC para o qual vamos mudar isso. E então isso é claro
que vai ser o curso MC. Ative sementes sublinhadas. Agora muito importante, temos que mudar esse bloco
também, certo? Porque este agora vai ser
o curso MC Olin safra de nabo. Como estamos verificando propriedade
da idade e a
cultura de nabo não mais a batida, bata raízes basicamente. E então a mesma
coisa acontece aqui, certificando-se de que mudamos isso para mais uma vez o termo safra. E então aqui estão
algumas
sementes adicionais onde ela pode cair. Nós só vamos
copiar isso também. Certifique-se de que tanto
o ID do modo quanto os nomes dos itens
e blocos tenham mudado. É muito fácil olhar
sobre o MOD ID aqui. Então, sim, isso,
é claro que o arquivo também está disponível para você, então não se preocupe lá, mas isso é tudo o que
precisamos fazer para adicionar
o corte personalizado. Então, vamos ver se funciona. Ou se Francis voltar
e microvesículas ver os assentos de nabo foram adicionados
com sucesso
aos jogos. Vamos ver. Eu também posso plantá-los. Esse é um começo muito bom. E vamos usar
um pouco de farinha
de ossos neles e eles vão Então eles estão
cultivando laticínios é e vamos
apenas mudar violento. Veja, eu posso até pegar alguns
nabos e alguns assentos de volta. Então isso é
exatamente o que queremos C, e vamos ver se
eles também crescem quando basicamente o tempo é feito
um pouco mais rápido aqui. Então, tiques aleatórios são apenas para gostar 2 mil e lá eles
estão crescendo também. Então, tudo funciona incrivelmente. Claro que quando eu
os quebro em criatividade, é por isso
que mudei
para a sobrevivência. Então, se formos para a sobrevivência, lá vai você, tem
alguns bons nabos aqui. E lá vamos nós. E agora podemos nos tornar o
jardineiro dos nossos sonhos, certo? E isso já é isso para
esta palestra aqui. Espero que você tenha achado útil
e ele aprenda sobre o novo, e eu te vejo
na próxima palestra. Então, sim.
71. (intermediário) adicione itens ao composter: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra muito curta, mostrarei como você pode adicionar seus itens ao compostor. Então você pode basicamente
torná-los compostáveis, muito, muito fáceis no
método de configuração que você tem. Espero que isso seja com o conjunto comum do parâmetro
de evento FML. O que você vai fazer é
dizer
ponto de evento e q viável. E então você vai
colocar entre parênteses,
uma flecha e os colchetes
encaracolados. E dentro disso, queremos chamar
composter loc dot dot, colocar mais itens que as sementes de
nabo que recebem, por
exemplo, 0,5, acredito, é o número correto. Em seguida, duplique isso
com o Controle D
e, em seguida, vamos
colocá-lo em um nabo aqui também. Vou colocar em 65. Então, podemos realmente
dar uma olhada
no mapa compossible aqui. E essas são basicamente
as mudanças que temos. Então você pode ver esses três, então o ligante basicamente vê
aqui típico 3.5 batata VDD. Acho que as sementes
são, na verdade, menos, então existem três. Vamos mudar isso para três. Isso também é totalmente bom. 0,3. Lá vai você. É praticamente isso. Isso é tudo o que você precisava
fazer para adicioná-los
ao compostor, embora, para fins de conclusão, vamos
ver se ele funciona. Oh, bem se amigos, há um Minecraft
e lá vai você. O composter, ambos funcionando exatamente como
você esperaria. E agora temos uma refeição de ossos, ou isso já será
para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo
novo e eu te
vejo na próxima
palestra. Então, sim.
72. Flores personalizadas (intermediário) (de mediate): Ou eu dou as boas-vindas de volta ao
quarto curso para 118. E nesta palestra
vamos adicionar uma flor personalizada ao Minecraft. Mergulhar uma flor personalizada
é realmente bastante fácil. Então, na nossa classe de blocos modelo, vamos fazer é
apenas copiar
a flor de cerejeira, uma armadilha. E essas serão
as linhas de sublinhado rosa. E, claro, para o nome
também, linhas de sublinhado rosa. Agora, este
será um bloco de flores, que na verdade leva
três parâmetros diferentes. O primeiro é
uma multidão efeitos ou efeitos que digamos
cegueira, por exemplo. E então a duração do efeito, que popular para vir
e sair é, na verdade em segundos desta vez, em
vez de carrapatos. Não sei por que
parece muito inconsistente, mas é o que é
e o mapeamento real, o que vamos
fazer é não precisar de nada disso. E então vamos
copiar de blocos aquele
leão dandy aqui para que
basicamente tenhamos todas as
propriedades que vamos precisar. Portanto, as propriedades que
vamos precisar basicamente não
são colisão
na extremidade seborreica. Além disso, acredito que
o material do plano basicamente
lhe dá a não oclusão. Então este aqui, precisamos de ambos, OK, sem oclusão e sem colisão. Mas copiando as propriedades de qualquer linha onde basicamente
já tem isso aqui. O que também vamos precisar
fazer para a flor está em
nosso método de configuração, precisamos chamar isso para
a rosa rosa aqui. Então, precisamos definir a
camada do renderizador corretamente e, em seguida, bem, ela é basicamente
desligada aos arquivos JSON. Esses são, naturalmente,
todos disponíveis para você
no repositório do GitHub ou em um
indivíduo também. Ele Bloc afirma que Jason é
apenas um Bloco normal. Jason também adiciona a
tradução aqui, para
não esquecer isso, as linhas de sublinhado
rosa. E então rosa rosa
aqui. Lá vai você. E, em seguida, vamos adicionar o modelo de
log também. Nada realmente
interessante acontecendo. Temos um padrão cruzado desta vez e uma
textura cruzada também. Você pode ver desta vez
o pai é a cruz aqui e, em seguida, as
texturas também são cruzadas. Isso é realmente a coisa mais
interessante neste caso. E o modelo do item também
é
bastante interessante porque
este aponta para uma,
bem, a mesma textura
de bloco para a qual o bloco aponta, porque embora seja basicamente a mesma coisa que
você tem em sua mão, que também parece
no mundo basicamente, nós vamos apenas
copiar isso também. Então eles vão e isso
é realmente tudo o que precisamos para
uma flor personalizada. Então agora vamos ver se
funciona ou encontramos
aqueles de volta no micro. Como você pode ver,
a rosa rosa
foi adicionada com sucesso ao jogo. E não
parece lindo? Então é assim
que pode ser fácil adicionar uma flor personalizada ao
Minecraft, certo? E então já é para
esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. E eu vou te ver na
próxima palestra. Sim.
73. Põe de flores personalizado (de mediate) (de (Intermediate): Tudo bem, bem-vindo de volta ao curso de
forragem até 118. E nesta palestra,
vamos adicionar um
plano de política personalizado ao Minecraft. Então, depois de ter adicionado
à flor personalizada, agora também vamos
fazer uma parte que irá
variar essa flor. E do jeito que
vamos fazer isso, vamos copiar
isso e vamos dizer parte, rosa rosa. E o mais
importante aqui é que este realmente não chama o método do bloco de
registro, mas isso mais uma vez chama blocos que se registram aqui. Então, o que vamos fazer
é que vamos
tirar a torneira de alívio no final. E então também vamos
fazer desta a parte que sublinha rosa rosa. E este agora é um
bloco de vasos de flores apenas para isso. Isso realmente vai precisar três
parâmetros diferentes também. O primeiro é nulo, o segundo é mod blocks, rosa
escuro, rosa, o
mesmo sem um get. E então isso vai
levar o
leão dândi da auditoria como ele está copiando
as propriedades. Agora, você pode dizer, bem, isso já é isso, não é bem, porque o que ainda
precisamos fazer é que
ainda precisamos adicioná-lo com
uma lista
de possíveis
flores de poço, apenas essencialmente. Então, uma vez
que o método de configuração, o que vamos fazer é
dizer blocos, aquela parte da flor, aquele elenco. E então vamos
lançar isso um bloco de vasos de flores bem aqui. E então podemos fazer é, então,
podemos chamar o método add. Vou dizer modo de bloco, blocos ponto, linhas, ponto GetId. Então o segundo é
apenas
blocos mapeados ponto-produto, rosa, rosa. Então, esta é a maneira de basicamente adicioná-lo que você pode clicar
com o botão direito do mouse com suas linhas aqui
e, em seguida, você
vai tirar esse bloco dele. Agora, este ainda é
um bloco normal, então ainda precisamos de um
bloco States Jason, modelo de
bloco Jason e um arquivo de tradução
para a rosa da tubulação. Só vou
copiar isso. O estado do bloco é, na verdade,
apenas um bloco normal, diz Jason ano, o modelo
é um pouco diferente, mas não muito louco. Vamos antes de tudo
realmente fazer isso. Então, vamos fazer parte em
Gross são linhas épicas. Agora essa tradução só
é necessária se você tiver algo como,
o que estou olhando? O modo que basicamente
você pode, você sabe, que o que você basicamente está
olhando para qual é
o nome do bloco real que
você está olhando. Agora, este ano, esse
modelo de bloco que você pode ver é na verdade,
parceiros de sublinhado de flores. E então especificamos
o anterior. Agora também é importante
depois de adicionarmos isso, não
precisamos de nenhuma outra textura. O que precisamos
é que também precisamos
ter a rosa rosa pública aqui na
camada de renderização cortada. Caso contrário, também
teremos um pouco de exibição será emitido lá. Caso contrário, isso é tudo o
que precisamos fazer, embora você
possa ver que é realmente bastante simples, mas ainda assim, há algumas
coisas interessantes, especialmente com isso, com o lançamento da
flor real pote. Depois de adicionarmos isso,
vamos ver se funciona. Ou fornos de volta em micro. Então, vamos apenas definir a parte
para baixo e lá vai você. Temos as linhas de tinta em
vaso, que está funcionando totalmente bem. Mas isso é
exatamente o que você gostaria. Em vez de apenas um rápido
lado aqui no final, se alguém está se perguntando,
você sabe, oh, como podemos fazer a tabela
LU para isso? Mais uma vez, vem, temos exemplos de baunilha disso ir para as bibliotecas
externas, até o
cliente de microondas líquido extra 181. E então, nas
tabelas de loop, você pode simplesmente procurar por todas as plantas em vasos. Você pode, por exemplo,
dar uma olhada nisso e, basicamente, apenas substituir este allium
aqui por seu próprio. Então, basta copiar sobre o Controle C, Controle V e, em seguida, altere isso. Isso é, na verdade, o quão
fácil isso pode ser. Então você sempre tem todos os exemplos de baunilha
basicamente na ponta dos dedos. Recomendo
olhar para eles também. Se você já está
confuso ou quer algo que já esteja em baunilha, basicamente
apenas replicado. Muitas vezes é muito fácil de seguir,
mas, caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. Vejo você
na próxima palestra. Então, sim.
74. (de (Intermediate) sons personalizados (de (Intermediate): Tudo bem, bem-vindo de volta
ao curso para 118. E nesta palestra,
vamos
adicionar sons personalizados
ao Minecraft. Ou sons personalizados
são, na verdade, bem, eu diria bastante simples,
tudo considerado. Agora, o que
vamos fazer é que precisamos, claro registrá-los. Então, no nosso pacote de cursos MC, clique com o botão direito do mouse em novo
pacote chamado som E então dentro de sua
nova classe Java para cidades, eles atrás agora essa
classe de sons de modo terá um registro
diferido final estático público do tipo evento de som chamado eventos de sublinhado de
som, que será
igual a adiar o registro que cria ou
registra eventos sonoros, MOD do curso
MC, mas modificado. Agora, seja um registro
diferente,
existe um método de registro vazio estático público
com um barramento de evento, um barramento evento
legal ou seu parâmetro
e, em seguida, eventos sonoros que
se registram passando no
perímetro de ônibus de eventos. Então, esse método
aqui é claro chamado logo abaixo dos tratamentos
modernos. Então sons mod, não eventos sonoros, mas registre o
ônibus de eventos. Lá vai você. Agora, como os eventos
sonoros foram? Bem, eles são, na verdade,
bastante simples. Objeto de registro estático público do tipo, evento
sonoro,
dowsing, sublinhado, sublinhado de
haste encontrado sob pontuação ou será
o nome de horas. E para isso,
na verdade, vamos
criar um método personalizado. Bem, deixe-me fazer
isso por um segundo aqui. E vou
criar novos métodos de Registro estático privado. Objeto do tipo encontrado evento
registraria eventos sonoros. E aqui só precisamos
passar um nome de string. E então o que vamos
fazer é
criar um local de recursos. Qual ID? A nova localização do recurso, MOT do curso
MC, mot ID e o nome como o nome do
parâmetro aqui. E depois retornaremos eventos
sonoros que
se registram com o nome
e, em seguida, um fornecedor
de um novo evento sonoro. E aqui nós só temos que passar a
ele a localização do recurso. Este é o
método auxiliar e isso vai tornar
nossas vidas muito mais fáceis. Aqui vamos chamar
esse sublinhado de dosagem. Sublinhado encontrado
na pontuação ou o nome aqui será muito relevante em apenas um momento. Então esse nome aqui
realmente
será o nome de algo que nós, bem, basicamente declaramos
em um arquivo JSON separado. Então, agora o som
foi registrado. Agora, antes de tudo, precisamos, claro, é algum
tipo de arquivo de som. Agora, isso vai para os ativos na pasta do curso MC
ou na ID basicamente. Mas precisamos de duas coisas. Número um, precisamos de um novo
arquivo chamado Sounds data JSON, sons
muito importantes ponto JSON. E está disposta assim. Temos
colchetes encaracolados e, em seguida,
basicamente declaramos sons
diferentes. Então, vou copiar sobre a
declaração do som. E o que você vai descobrir é
que esse nome
aqui é exatamente o
mesmo que esse nome aqui. Então esses dois têm que corresponder. As legendas são basicamente o que você verá dentro de tudo o que você declara dentro do
seu ouvido e nos sublinha arquivo
JSON quando
tiver legendas. Portanto, isso é algo
que você pode adicionar ao arquivo JSON
curios do EMRs. Você também pode chamar isso de
algo como sons de ponto M, C corps, onde quer que
algo assim. Não vou adicionar
a tradução aqui porque no momento ela
não é tão relevante e
também é apenas uma coisa que
você copia. Não deve ser muito louco com a bagunça com a
tradução por um tempo. Agora, isso deve ser
bastante simples. E o que é muito
interessante é que isso soa aqui, isso
é uma lista, certo? Porque temos esses
colchetes,
este ano aponta para o sublinhado de
dowsing, um sublinhado encontrado
na escola ou agora, onde esse arquivo está localizado? Bem, definitivamente sob o namespace do curso
EMT, mas onde exatamente bem, na pasta de
cursos MC de ativos é executada. Novamente, clique com o botão direito do mouse em New
Directory acorde E então, dentro de lá, precisamos um arquivo OGG com esse nome. Então, vou copiar
isso sobre eles atrás. E é muito importante
que esse nome aqui corresponda exatamente a esse nome. É, tem que ser um arquivo OGG. Isso é muito importante
e tem que estar
sob o som mono, o tipo de
som ou o espaço sonoro. Tem que ser um arquivo OGG mono. Caso contrário, você pode encontrar
alguns problemas, muito importantes. E você não pode simplesmente
pegar um arquivo MP3 e renomear o final dele. Mp3 tem que ser
convertido corretamente em um arquivo OGG. Então isso é muito importante. Agora tudo o que você encontrará é porque esta é uma lista que você poderia, em teoria, ter várias
entradas aqui. Então você pode ver agora que eu
poderia ter outro aqui e então ele
escolheria basicamente um desses. Então isso é muito importante. Vamos ficar com
um por enquanto, mas há a oportunidade basicamente aqui de
adicionar vários. Agora a questão é: como
chamamos isso ou janela? Vamos chamar isso, bem,
vamos chamar isso, é claro, no item
da vara de
dowsing, basicamente quando encontramos um valioso ou aqui,
queremos jogar isso. E como jogamos isso? Bem, vamos dizer que os
contextos pontuam o nível do gate-level. Então, precisamos do nível
quando digo tocar som. E então vamos pegar
o jogador, vamos fazer com que
a posição seja clicada. Vamos ter sons modernos. Aquela haste de dowsing para fora ou que obtém fonte
sonora vai ser, digamos blocos, isso
vai ficar bem. E, em seguida, Volume 1, f e pitch um também. E isso é realmente o quão
fácil pode ser adicionar um ou chamar um som
rico em tocar um som. Você só precisa do nível
e, em seguida, tocar um som ótimo. Mas há maneiras diferentes
de você reproduzir sons. Eu acredito que você pode
ter visto essa taxa como se eu tivesse um nível, poderia obter nível. Você pode ver que
eu posso tocar som. Posso até reproduzir som local, o que
seria um som local. Então eu recomendo brincar um
pouco
com isso e ver qual
deles basicamente
funciona melhor. Você também pode fazer isso
no próprio jogador. Então você também pode fazer o
som do player. Você pode ver lá
você vai, no entanto. Eu só recomendo
brincar um
pouco
com isso e ver e qual pode ser a melhor ideia
para você para este fim. Sim, mas isso é
realmente tudo o que precisamos fazer para
adicionar sons personalizados. Então, vamos ver se funciona. Ou eu faço uma fazenda como um microondas
e certifique-se de que seu volume esteja aumentado apenas para que você tenha certeza de
que pode ouvi-lo. E vamos ver, lá está. N Nós ouvimos isso. Anel, anel, anel. Então, tudo
funciona muito bem. E agora o que você
também pode ver é quando eu
coloco os blocos para baixo porque nós fizemos isso blocos de
fonte sonora. E C Agora não podemos
mais ouvi-lo assim que eu virar os blocos de volta em suas costas. Mas isso é realmente muito legal. Deixe-me
baixar o volume um pouco novamente. E vai ser muito silencioso. Talvez, para que fique tão quieto que você nem
consegue ouvi-lo. Mas sim, isso é realmente o
quão fácil pode ser adicionar sons personalizados ao
Minecraft, certo? Isso é realmente
o quão fácil é e acho que realmente é
bastante simples. Agora, uma coisa que
provavelmente está em sua mente, sim, mas eu quero que meu bloco personalizado
tenha sons personalizados também. Bem, felizmente, é
exatamente isso que vamos ver na próxima palestra. Mas é isso para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo, e eu te vejo
na próxima palestra. Então, sim.
75. (de (Intermediate) sons personalizados para blocos: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos
adicionar um tipo de som personalizado. Minecraft. Agora o tipo de som
basicamente inclui cinco sons diferentes e representa o som para
um bloco específico. Mas há um
som quebrando é pisar o som, colocar o som, um
som de sucesso e um som completo. E vamos adicionar
todos os cinco desses. Agora, vou copiar sobre
o registro básico. Isso definitivamente
não é tão interessante. Primeiro de tudo,
isso é muito engraçado que este não seja
o nome correto, mas isso é,
claro, totalmente bom. Eles vão registrar
eventos sonoros neste caso. E você pode ver
que basicamente
temos lâmpada de cobalto quebrar lâmpada de
cobalto passo, vamos bater e cair. Então, esses são os
eventos sonoros, os individuais, precisamos deles e isso também
será necessário é que precisamos um tipo de som de forja personalizado. Então eu também vou copiar
este aqui e você pode ver que é praticamente
apenas os sons de cobol. E isso é então igual
a uma nova
métrica do tipo de som que vai fazer sons de
cordeiro de colega de trabalho para
estudá-lo, é um pouco mais claro ao que
isso se refere basicamente. E aqui,
basicamente precisamos
passar os
sons do modo e
não precisamos fazer isso porque o som da forragem aqui
realmente uma vez um fornecedor. Então, isso vai
ser totalmente bom. Então, basicamente queremos
usar isso em vez
do tipo de som apenas para
ter certeza, porque isso é, tem algo a ver
com o carregamento e basicamente registrar coisas. Neste momento, esses
cinco eventos Sound, na verdade, ainda temos que
registrar esses sons. Arquivo Json aqui. Agora, vou copiar isso de
novo, mas não se preocupe. Tudo isso, é claro,
está disponível para você
no repositório do GitHub ou em um
indivíduo também. E você pode ver que basicamente
temos o passo de quebra da lâmpada de cobalto,
por favor, aperte e caia, que basicamente uma vez que você obtém
as legendas aqui e depois se refere a um arquivo de
som específico. Mais uma vez, eles têm que ser OGG, isso é muito importante, e também eles precisam ser mono. Isso é incrivelmente
importante mais uma vez, caso contrário, pode haver
alguns problemas com os arquivos. E também você não pode simplesmente renomear um arquivo MP3 para
basicamente um arquivo OGG, ele deve ser convertido corretamente. Portanto, certifique-se de que todas
essas coisas sejam o caso. E, claro, em
nosso exemplo aqui,
você pode, naturalmente,
apenas usar aqueles que eu forneço, no entanto. Vamos apenas copiar
esses aqui. Eles vão, cinco deles. E isso deve ser
praticamente Então os sons
são registrados. Tudo bem, mas como
adicionamos isso agora a um bloco? Bem, como realmente
bastante simples, mas no nosso caso queremos
adicionar isso à lâmpada aqui. Então, vamos adicionar uma nova
propriedade de comportamento de bloco e isso vai soar o ego e já
sugere isso. Então isso vai ser
sons mod dot para o que soa, e é isso. Tudo o que precisamos fazer. E agora a lâmpada de cobalto
deve ter todos
os sons associados a
esse tipo de som aqui, que são todos cinco desses. No entanto, quero dizer, parece muito anticlimático, mas
é praticamente isso. Então, vamos ver se funciona. Ou nos encontramos de volta ao Minecraft e um já aqui. Funciona totalmente bem. Então, vamos pisar nisso. Isso é exatamente certo.
E vamos quebrá-lo. Isso é exatamente correto. Agora, a única coisa que
encontrei e isso é
muito interessante é que o som caindo por qualquer motivo,
não funciona bem. Ou funcionou lá. Vamos ver. Agora,
não funcionou bem. Não tenho 100% de certeza. O som caindo,
às vezes parece não querer funcionar. Sinceramente, não tenho 100% de certeza por
que esse pode ser o caso. Mas os grandes,
o som quebrando, o som de colocação, esses são os grandes,
o som batendo, eu acredito que eu também posso ir aqui e então aqui
você pode ouvi-lo,
bem como o batendo som e colocando
som, coisas assim. Esses são realmente os grandes. No entanto. Isso é bem legal, já haveria isso para esta palestra aqui. Espero que você tenha achado útil
e ele aprenda sobre o novo, e eu te vejo
na próxima palestra. Então, sim.
76. (de medium) de música personalizada (de (Intermediate): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um
disco de música personalizado ao Minecraft. Então, para basicamente concluir nosso empreendimento
nos eventos sonoros, agora também vamos
adicionar um disco de música personalizado. Agora, isso é mais uma vez, praticamente apenas no evento
sonoro normal aqui. Vamos apenas copiar isso e eu
vou colocar isso acima dos
tipos de som reais por precaução. Às vezes, pode estar
um pouco separado. Aqui vai
estar a briga de barras
e, em seguida, o evento de som
em si também será chamado de função de sublinhado VAR. Lá vai você. E então, é claro, o evento
sonoro está pronto. É claro que ainda precisamos adicionar isso aos substantivos
, ponto ponto, Jason. Então, mais uma vez,
vou copiar isso. Tudo isso também está disponível para
você, é claro. E você verá que
é só Barbara. Oh, este é o
mesmo nome que demos aqui. E então isso aponta para
uma briga de barra bem, nome, arquivo
nomeado na
pasta Sons aqui, que tem que ser ODD mais uma vez. E desta vez é cada vez mais
importante que seja mono porque, de outra forma será ouvido em todo
o servidor. Isso é muito importante
e você pode ver
que também temos esse fluxo verdadeiro
aqui porque o, bem, em primeiro
lugar, o comprimento
do arquivo é um certo comprimento. E o número dois é
, naturalmente, um fluxo que deve fazer sentido. Vamos apenas copiar essa briga
sublinhada overbar. Lá. Você praticamente vai. Agora, para o disco real, certo? Precisamos entrar em
nossa classe mais itens e criar um novo item aqui, vamos pegar o tablet de dados
e vamos copiar isso. E esse será o registro de
sublinhado da briga de
sublinhado VAR . Digamos que agora, para o nome real, eu vou
chamar isso de fundo são
brigas sublinhadas e o disco de sublinhado de música apenas empilhamento 21 é
realmente bom aqui, e este é um item de gravação. Agora, isso toma um parâmetro
inteiro como seu primeiro parâmetro. E então o segundo
parâmetro será
um modo soa barra de pontos, briga. Você pode ver que o primeiro parâmetro
inteiro é o valor do comparador. Basicamente, bem, o que ele produz quando a força do sinal que ele emite quando você
coloca um comparador
ao lado da jukebox quando você
coloca esse registro. Agora este é um
item normal, no entanto, ele tem uma especialidade,
por assim dizer. E isso vai ser, bem, quando se trata da
tradução que precisamos para a tradução
é uma coisa a seguir. E isso vai
ser exatamente isso. Então, o disco de música
Barbaro acessa o nome dele, certo? E então também precisamos desse
DESC para descrição. E isso geralmente contém com qualquer artista que basicamente fez isso e depois o
nome da música. Também incluí o CC Zero para basicamente significar que isso
está em domínio público, então você está livre para usar isso. Eu só recomendo
sempre creditar ao artista por isso porque
isso é a coisa
certa a se fazer. Mas isso também é um item normal, então ainda precisamos de um modelo de item e vou
copiar isso. Isso não é nada louco demais. Ele apenas aponta para uma textura normal do
item aqui,
o que, claro,
também será uma coisa bastante
simples. Então, vamos apenas
copiar isso também. Eles vão e isso é
praticamente tudo o que precisamos fazer. Então, é praticamente isso
adicionar o registro personalizado aqui. Então, acho que vamos
ouvir se funciona. Tudo bem, nós fazendas
como microondas podemos ver o bar Brahms música, Isso foi adicionado, então
vamos colocá-lo
na jukebox e lá está. E agora que o que é
muito importante é que quando eu voo para longe, você pode ouvi-lo ficando fio e silencioso até que não seja
mais capaz de ser ouvido. E se eu chegar mais perto, vai ficar mais alto novamente. Então, isso é perfeito. E isso faz é
exatamente o que queremos. Essa é uma das razões, ou basicamente você precisa ter esse arquivo
OGG e mono. Caso contrário, ele realmente será ouvido em todo o
servidor quando você jogar isso para se certificar de
que está em mortal, eu cometi o mesmo
erro antes. Então, basicamente, isso é
basicamente
o quão fácil é adicionar um
disco de música personalizado, Minecraft, certo? Isso já é para esta
palestra aqui. Espero que você tenha achado isso
útil na urina. Então, o novo, se ele fez, apreciamos muito
uma crítica sua. Caso contrário, verei
você na próxima palestra. Então, sim.
77. (Intermediate) modelos de bloco personalizados no Minecraft com BlockBench com: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar modelos
de blocos 3D personalizados ao Minecraft. Mas isso é uma coisa muito
excitante, certo? Adicionando um
bloco 3D personalizado, o Minecraft, basicamente isso
não é um bloco inteiro, mas apenas uma
forma diferente basicamente. E há muitas partes
móveis para isso. Então, antes de tudo, o que você vai precisar
é que você vai precisar um programa chamado bancada de blocos. Agora, eu já tenho isso
aberto e também já tenho nosso bloco personalizado
preparado aqui. E você pode ver que é, você sabe, é definitivamente personalizado como você definitivamente pode
dizer isso sobre isso. E a
ideia geral é que, bem, vamos exportar
isso como apenas um bloco. Então, o que você pode fazer é basicamente quando você cria um novo arquivo aqui, você pode simplesmente criar um modelo de item de traço de
blocos Java. Você pode até especificar
o tamanho da textura, apenas um novo nome, e eles podem fazer coisas com ele. Agora isso não vai
ser uma palestra sobre o banco de blocos em si. Se houver muitos
interesses para isso, posso adicionar um aqui também, mas, por enquanto, não será um. Basicamente, você poderia
apenas adicionar cubos aqui. Você pode movê-los, certo? Basicamente construindo Minecraft. Bem, só não no
Minecraft, por assim dizer. Você pode apenas construir
algo a partir de blocos e, em seguida,
adicionaremos isso como um bloco personalizado e
será que você vai fazer no entanto, vamos
basicamente descartar isso. Não precisamos mais disso. Aqui, o que vamos fazer é
ir para Arquivo e, em seguida, Exportar modelo de item de lodo de
bloco. E isso nos levará
a exportar isso basicamente. Vamos salvar isso. Então eu já tenho isso salvo, mas
isso vai ficar bem. E isso será
salvo em um arquivo JSON. Agora vou abrir este arquivo JSON
bem aqui de forma inteligente. E você pode ver que se
parece com isso. Então, isso é muita suavidade que
nos move meio confuso. Não tenho certeza do que isso significa. Bem, os elementos aqui
que listam basicamente apenas definem os objetos 3D que
estão dentro do nosso bloco. E então aqui a
textura que é como a coisa mais importante é
basicamente definida aqui. Agora, precisamos mudar isso. Normalmente este é o caso, então o MC curso dois pontos e então eu vou realmente
colocar isso em Machines slash
comprou um blaster. E então a mesma coisa vale
para este aqui. E vou então API sobre a textura real também. Então deixe-me fazer rapidamente a
textura primeiro e depois podemos falar sobre o que
esse arquivo JSON faz. Faça um novo diretório
aqui chamado máquinas. Então, dentro de lá,
teremos
o ponto blaster de
sublaster de cobalto PNG que você vai. E então para onde
esse arquivo JSON vai? Bem, isso é apenas um normal. Bmi não é normal, mas é apenas um arquivo de modelo de
bloco. É um modelo de bloco, Jason. Eles atrás. E aí você tem isso. E isso é literalmente
tudo o que você realmente precisa para que o modelo de
bloco personalizado funcione. Agora, existem algumas coisas
interessantes que
você pode definir aqui. Então, por exemplo, você tem essa
tela e aqui você pode, por exemplo, definir como isso
parece em 3D? Como seria se
um zumbi o segurasse em terceira pessoa e você pode respirar em
primeira pessoa, pessoa de
Lester
bem na cabeça, o que é meio engraçado. E então há
no chão, você sabe, talvez seja muito grande ou
que talvez seja
pequeno demais para que você possa mudar
tudo isso também. E tudo isso faz parte
do arquivo JSON real que
você estava exportando aqui. Então você pode ver que isso é exatamente
aqui, essa tela, tudo
isso está definido, então tudo funciona
absolutamente ótimo. Agora vamos precisar de
um modelo de item também. Agora isso, é claro, apenas
se refere ao modelo de bloco aqui. Vamos apenas
dizer blaster de cobalto, bem
ali e aqui também. Ou gesso eles atrás. Agora isso, na verdade, tudo
já vai funcionar. Agora, também precisamos de
blocos personalizados Estados, Grayson. Agora, mais uma vez,
basta escolher o bloco um e
vamos copiar isso. E isso só
vai apontar para o arquivo JSON que
acabamos de fazer que
exportamos aqui. Definitivamente vamos
dar uma olhada neste
em apenas um momento novamente, porque o que
temos que
mudar definitivamente talvez uma ou
duas coisas lá. Mas, por enquanto,
o que vamos fazer é fazer um novo bloco. Vamos
registrar um novo bloco. Vamos levar a
rosa rosa aqui porque os outros têm os
blocos registrados. Queremos, é claro,
fazer um item também. Então este será o blaster de sublinhado de
cobalto. Então aqui também, Walt
sublinhou blaster. Isso é por
enquanto vai ser um bloco normal porque você poderia fazer isso
com um bloco normal não, ou é o que for. E isso não vai
copiar nada. Isso vai ser acima. E então vamos dizer algo
como material, metal. E isso é, na verdade, por enquanto, tudo o que precisamos. Agora veremos duas
limitações muito aparentes com isso. Estamos basicamente entrando no jogo, mas, por enquanto, isso
é praticamente o que precisamos. Agora, o que também
precisamos, no entanto, é a camada de renderização real aqui. Então, vamos definir isso
imediatamente para o blaster cobol que você vai, e isso deve ficar bem. Agora, ainda veremos algumas
limitações com isso. Mas, felizmente,
também veremos como corrigi-los. Então, pela primeira vez
nesta palestra, vamos
ver se funciona. Ou eu nos encontramos
em microRNAs podemos ver que o blaster cobol
foi adicionado. Não adicionamos a tradução, mas é claro que é
algo para corrigir facilmente. Agora, se eu defini-lo,
você pode ver que, bem ,
antes de tudo,
vamos ter um problema com o transparente. Então isso é algo
que podemos consertar facilmente o seu e, em seguida, você também
descobrirá que estamos antes de tudo, eu o defino, mas sempre
parece na mesma direção. Então isso é meio irritante. E então também as
fronteiras aqui são, bem, não exatamente o que
deveriam ser. Agora, eles definitivamente
não são o que deveriam ser. Então isso é definitivamente
algo para dar uma olhada. Bem, felizmente, podemos corrigir todos esses três
problemas. Então, vamos enfrentá-los um por um. O primeiro e mais fácil
é, claro, porque o transparente, bem, só
precisamos da
não oclusão
aqui nas propriedades do
bloco, propriedades de comportamento de bloqueio. E se isso for
legal, isso será corrigido imediatamente. Agora para os outros dois. Bem, para obter a
rotação correta, vamos precisar que um cliente nos bloqueie para isso. Então, vamos fazer uma classe de bloco
personalizada chamada o último bloco de cobalto. E isso vai estender
a classe de bloco normal no momento. Vamos apenas criar
construtor correspondente Super Se as propriedades aqui não,
você clica nele, você clica nele, Shift F6 e, em seguida,
alterá-lo para propriedades. E vamos precisar de
uma propriedade personalizada. Agora, isso não é necessariamente
uma propriedade personalizada, será uma propriedade disso será
uma propriedade
de direção final estática pública ou voltada, que é igual a propriedades de
estado de bloco. Esse revestimento
horizontal é muito importante aqui. E então vamos
fazer é
basicamente registrar o padrão aqui. Então esse ponto de
definição GetState perturbou, ponto. Um valor de enfrentar será
a direção do Norte. Então eles vão, essa será
a direção padrão
que vai enfrentar. E então queremos
três métodos que eu
vou realmente quatro métodos
que copiarei. Nada muito louco aqui. Então você verá,
é claro, em primeiro lugar, o método de definição de estado de bloco
decretado, onde vimos
isso anteriormente, apenas
adicionamos a
propriedade de fase ao construtor. Isso não deve ser
novidade para você. Agora, esses três são
definitivamente conhecidos e isso
também adicionou a substituição a ambos apenas
para que nós os tenhamos. No entanto, o bom estado para posicionamento basicamente mais
uma vez garante que, bem, o
posicionamento específico esteja correto. E neste caso,
na verdade, queremos o posicionamento oposto
do jeito que estou procurando. Estou olhando para o norte. Quero que o bloco
esteja de frente para mim. Então, tem que estar olhando para o sul. Então essa é a ideia geral
do que tudo isso faz. E então estes basicamente
giraram e espelharam para estarem bem
no rosto correto. Agora que, na verdade,
tudo o que precisamos
nesta classe aqui por
enquanto, pelo menos. E em nossa classe mais blocos, certifique-se de que você
agora, é claro, criou a nova explosão ou
bloco de cobalto aqui e não mais apenas um bloco normal.
Isso é muito importante. Às vezes, isso é o que as pessoas sentem falta quando fazem
uma nova aula de blocos. Você sabe que não funciona tão bem se você
não o criou. Então, isso é realmente muito
importante. Claro, também precisamos
mudar nossos Estados de bloco. Jason aqui e eu já
preparamos isso. Agora isso não é nada louco demais. O que isso basicamente só faz
é basicamente apenas dizer, hey, se estamos voltados para
uma direção diferente, vamos
girá-lo no eixo y 9080 ou 270 graus. Mas isso é praticamente
tudo o que isso realmente faz, o modelo ainda
será o mesmo. Nós só vamos girar
o bloco inteiro basicamente. Isso, é claro, também
tudo disponível para você
no repositório do GitHub ou em um
indivíduo também. E isso agora deveria ter
corrigido o problema de rotação. E, claro, também
, você sabe, basicamente a
questão transparente, embora,
pela segunda vez, esta
palestra, vamos ver se funciona. Tudo bem, então antes de tudo, você pode ver mais uma vez, o bem
real se foi. E então, se eu colocá-lo
assim, lá vai você. Agora me enfrenta, assim como esperaríamos. Portanto, é apenas a
caixa delimitadora que agora é o problema. E bem, como a sorte teria ou acho que a sorte não o
teria. Isso também é o, não diria necessariamente
a coisa mais complexa, mas pode ficar muito irritante. Mas vamos ver, só para
que eu não me esqueça, eu realmente vou adicionar a
tradução aqui agora, cobol 100 score blaster. Porque, de outra forma, vou
esquecer isso. Então lá vai você, cobol blaster, e isso deve ser bom. Agora vamos precisar
ajustar o
bloqueio da explosão de cobol mais uma vez. A classe que você é, mas o que realmente
vamos precisar é que vamos precisar de coisas
do banco de blocos mais uma vez. Então, vamos reabrir bloco punchier. E o que você vê é que eu tenho todos os meus cubos sob o
grupo chamado voxel shapes. Agora isso é muito importante. Na verdade, preciso disso sob
o grupo de formas voxel. Caso contrário, não
funcionará muito importante aqui. A próxima coisa, o que eu preciso é que
eu preciso de
um plugin específico para um 100 plugins que você possa ficar disponível e você quer
procurar por mais utilitários. Agora, eu já tenho
isso instalado. Parece assim do
JDK 22 e do clima. Agora, isso é muito
importante porque você pode ver a exploração de formas voxel. Isso é exatamente o que eu
quero exportar aqui. Queremos ir para
a forma de voxel. Quero selecionar isso para que tudo
aqui seja selecionado. Vá para Exportação de arquivo
e, em seguida, você pode ver
exportar forma voxel. Agora eu quero exportar
isso como um mapeamento MOOC. Então, mapeamentos oficiais
aqui neste caso. E então eu quero dizer confirme. Agora eu quero chamar isso de sublinhado de forma
voxel n. Agora você pode ser como,
Espere, por que é n? Bem, vamos
ter que exportar isso para todas as
orientações diferentes. Então, vamos ter que
girar isso em 90 graus. Exportado novamente,
gire 90 graus, exporte novamente, gire
90 graus, exporte novamente. E
depois terminamos. Precisamos de quatro
voxels diferentes, formas. Ainda tenho que encontrar uma maneira
melhor de fazer isso. Se você encontrar uma maneira melhor de
fazer isso, por favor me diga. Eu realmente quero saber porque
neste momento está se
tornando muito bem, é muito chato porque
vamos ter que
fazer isso várias vezes. Mas vou mostrar como o Firefox será um arquivo Java. E você pode basicamente, você vai ter este ano. Agora, a primeira coisa
que você
fará é basicamente
limpar isso. Então, se você tiver esses
zeros são usuários ou
simplesmente arredondá-los para cima ou arredondar para
baixo para basicamente
o inteiro mais próximo. Este ano é basicamente um ponto zero e depois
seguido por 14 zeros. E então um três é como ok, isso vai
ser um 0, é claro. Então, basicamente queremos
limpar isso para que
fique bonito e arrumado
que só tenha introduzido aqui. E então podemos
basicamente usá-lo. E o que vamos fazer
é dentro da classe basicamente vai
fazer uma nova estática privada. Forma de voxel
final estática privada, mantenha a forma sublinhada n, que é igual a exatamente
todo esse jazz aqui. Vamos copiar isso e
Control V para colá-lo. Vou importar a forma
do voxel. Vamos
importar o fluxo. Importe as formas voxel. Na verdade, isso é apenas formas. Lá vai você. Há formas. E então o olho booleano
funciona também diferente. Este é, na verdade, o
booleano que eles atrás. Agora isso vai funcionar.
Então, os mapeamentos reais provavelmente ainda não atualizados, bem para o banco de blocos, mas tudo bem porque
isso é basicamente o que precisamos aqui e
bem, isso é ótimo, mas agora só
temos a forma para a direção voltada para o norte
porque, claro a forma seria diferente se eles bloqueassem estivesse voltado para
uma direção diferente. Mas temos que fazer basicamente, mais uma vez,
selecionar as formas de voxel. Muito importante é
que o ponto de pivô onde você pode centralizá-lo, mas você pode ver que agora
não está bem centrado, como se estivesse centrado, mas depois tem esses valores decimais
estranhos. Certifique-se de que isso
seja como definido em um ponto que também é inteiros. Porque se não for, então você vai
encontrar alguns problemas. E o que vamos fazer é
girar isso 90 graus, assim. E agora você verá que isso realmente não se alinha. Agora está tudo bem. O que você precisa fazer
é usar essas setas para movê-lo. E então você pode
basicamente recentrar. Agora isso não vai
ser em C. Agora, o que aconteceu aqui é que
basicamente eu acidentalmente entrei no número e então ele só vai
mover cada cubo. Isso é algo que é muito estranho e tem a
ver com o banco de blocos. Eu simplesmente não tenho certeza se você pode ver se
eu uso as setas, então vai ficar tudo bem que basicamente as mova
como um grupo juntos. Se eu mudar os números lá
dentro e, de
alguma forma, isso vai
movê-los individualmente. Só não tenho 100% de
certeza por que esse é o caso. Esta é apenas a loucura
com o banco de blocos. Infelizmente, não há nenhum outro programa no momento que eu esteja familiarizado com isso, você sabe,
isso também funciona? Então, vamos
ter que ficar com isso. E então você pode ver, bem, nós agora giramos isso e agora o bloco está voltado para o oeste. Então agora temos que exportar
novamente a forma de voxel. E então este é
o sublinhado do Vox W. E isso é muito
importante, certo? Certifique-se de exportá-lo debaixo do tapete, nome
correto, certo. Já vi muitas pessoas. É como se não funcionasse bem, se você confundiu
Leste com o Ocidente, pode acontecer sob o diamante é nordeste, sudoeste, certo? Portanto, certifique-se de que o
siga, a menos que na verdade
, apenas gire novamente aqui. E você pode ver que temos que
movê-lo mais uma vez, certificando-se de que
usamos essas setas aqui. E, na verdade, está na direção
diferente. Lá vai você. E então isso seria Sul. Então isso é exportar uma
forma de voxel sublinhado S. E, em seguida, mais uma vez felizmente. E então, basicamente,
já terminamos aqui. Então, desta forma, uma e então, desta
forma, não,
eu mais uma vez , acidentalmente cliquei
no número real, certifique-se de que você não. Se você fizer isso, basta
pressionar Control Z para basicamente voltar atrás.
Não se preocupe lá. E então vamos
exportar isso novamente,
exportar caixa de forma voxel ou
sublinhado de forma E Desta vez ou leste. E então só para tê-lo de volta, a
posição original aqui, 0, e então isso
será 13. Na verdade. Lá vai você. Vou economizar isso
mais uma vez só para que eu tenha isso de volta nessa posição para
que ela também esteja disponível para você. E agora tenho os quatro arquivos
Java também. Então, vamos
colocá-los aqui. Lá vai você. Então, mais uma vez, vamos tirar esse tipo de imperfeições de
lá. Sabe, essas
às vezes acontecem porque erros de ponto flutuante, é apenas o que é. Mas isso não é muito ruim. É basicamente
apenas remover todos
esses erros de arredondamento do ponto de carregamento. E então vamos
ficar totalmente bem. Então, isso vai
ser um 0 novamente. Deixe-me 14 aqui
e 13 aqui. Salve isso, salve isso, e então vamos
continuar com E. Mas o que vou fazer
é copiar isso ou vezes e vou ter
ovelhas E, S, forma w. E depois de claro,
certificando-se de que elegemos os corretos basicamente
para trabalhar lá em cima. Então isso foi E, é E e então vamos
mudar isso para formas. E então estes dois
booleanos há um ano. E isso vai ser S, e isso também será S. Isso é ótimo. Mais uma vez, isso é apenas
formas e, em seguida, booleano. Eu só vou copiar isso
sobre um controle C controle V. E, por último, mas não menos importante, o lado oeste da forma voxel. Mais uma vez, booleano
, dia booleano atrás. Se você está planejando ter muitos blocos com muitas formas complexas, ou talvez isso seja determinado a
partir disso. Eu recomendo que
não enlouquecesse com isso. E se você tem formas de voxel
insanas como loucas e detalhadas para não construí-las como completamente. Normalmente, isso é
apenas blocos, certo? Isso é apenas blocos normais. Se você tivesse algo
como de
repente e então você o
gira assim,
mas, de repente, isso não
é mais um bloco real. Eu sou como se não fosse
um bloco reto. Se você tem muitos desses estados de bloco
diferentes que seguiram o
bloco perfeitamente, o que pode acontecer é que, bem, ele pode basicamente diminuir o jogo de forma bastante significativa
por causa, claro, as formas de voxel
basicamente determinaram a colisão com o
jogador e as entidades. E isso realmente requer muito
poder de processamento e outras coisas. Então eu recomendo
não ir com formas de voxel
loucas UW apenas por precaução, certo? Então, isso só deve ser bom. Mas eu só queria basicamente
cautelar contra isso. E o que eu realmente
vou basicamente , então o que vamos
fazer aqui é que vamos substituir o método de boa
forma aqui. E, na verdade, vou
copiar todo o conteúdo. Isso não é nada louco demais. É apenas uma
instrução switch que você pode ver que obtém o valor
da propriedade facing. E se for ao sul e
vamos retornar a forma Sul, norte e vamos retornar
a forma ao norte deles,
Sudoeste, Oeste,
Leste, Leste. Nada muito louco aqui deve
ser bastante autoexplicativo. E isso é praticamente
tudo o que precisamos fazer. Agora você viu que isso
é bastante complicado. Como eu disse, se
você tem muitos blogs
diferentes com formas de voxels
diferentes para adultos, bem, é exatamente o que é. Se você realmente tem
uma maneira melhor de fazer isso, por favor me diga
no material de perguntas e respostas, estou muito aberto a ter uma
possibilidade diferente de adicioná-los. Agora, se
mudássemos algo, sim, precisaríamos exportar todas as formas
de voxel novamente. Então é, pode ser
meio tedioso, mas seja qual for o caso, agora finalmente o
fizemos. Então, da última vez que esta palestra, vamos ver se funciona
ou se, por exemplo, volta ao Minecraft e
vamos sentá-lo e eles atrás as
formas voxel funcionam perfeitamente. Vamos ver, ele
deve funcionar perfeitamente em todas as direções diferentes
que eles vão também é uma
das coisas importantes
por que você
definitivamente deve basicamente remover as imperfeições porque, de
outra forma, só poderia ser desligado pela
menor e menor parte. E isso é realmente irritante. E também, na verdade
, provavelmente vai ser melhor se
for um número inteiro, mesmo que eu acredite
que ele é convertido de volta a um flutuador de
qualquer maneira, mas, você sabe, é só que faz os cálculos gerais
um pouco mais rápidos. Mas sim, é
praticamente assim que você pode adicionar um modelo 3D personalizado Minecraft. Mais uma coisa que
vou remover aqui é o pai aqui, porque na verdade não temos um azul, não precisamos desses
pais realmente. Nós só vamos remover isso. Eles são. Então, isso também
deve ser bom. Mas, caso contrário, é
praticamente assim que você pode adicioná-lo. No geral. É, bem, pode
ser muito complexo, especialmente se você tiver
essas formas loucas de voxel, mas, de outra forma, é uma coisa bastante
simples. Tudo considerado,
dependendo quantos modelos de blocos
3D personalizados diferentes você deseja. Mas agora você está equipado com o conhecimento para basicamente,
vamos adicioná-los. Então, espero que você tenha achado útil e aprenda
algo novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
78. (Intermediate) modelos de itens personalizados com BlockBench com BlockBench: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra,
vamos adicionar um modelo de item personalizado, o Minecraft. Da última vez, vimos
um modelo de bloco personalizado. Agora está no modelo do item. Então, antes de tudo,
vamos criar um novo item aqui e uma cópia sobre o tablet de
dados mais uma vez. E esta será a equipe de sublinhado de
cobalto. E então, para o nome, é
claro, também, equipe de sublinhado de
cobalto. E este será um item
normal neste caso. E então pilha para um
, na verdade, vai
ficar totalmente bem neste caso. E vamos
adicionar imediatamente a tradução. Caso contrário,
esquecerei novamente. Então, é claro,
agora queremos morrer. E então todos os funcionários aqui. E mais uma vez abrimos o banco
olhe aqui para ver a equipe de
cobalto muito legal aqui. E você pode ver que acabei de
preparar isso já com alguns extras antigos de baunilha, bem
como uma textura personalizada também. E eu recomendo que
vá exibir aqui
para basicamente ver como ele ficará dentro
da mão do jogador. Terceira pessoa à direita,
terceira pessoa à esquerda. Temos a primeira pessoa, primeira pessoa esquerda, sem cabeça. Isso realmente não
faz nenhum sentido como parece no chão, na verdade realmente assim. E então o quadro também
é muito legal na interface do usuário. Também é muito bom. Então você pode definitivamente
mudar isso e fazer, gostaria de qualquer
exibição que você quisesse? Eu recomendo
brincar com isso. E quando estiver satisfeito
com seu item personalizado, você basicamente vai para o bloco Exportação de
arquivos. Qualquer um dos modelos
o exportará como um arquivo JSON. E depois de substituir porque
eu já tenho um. E então vamos
copiar esse arquivo. E então vamos
copiar esse arquivo para a pasta de itens de modelos
aqui para ambos os funcionários. E há algumas coisas
que precisamos fazer. Então você pode ver que
as texturas aqui vêm sem namespaces,
então precisamos adicionar isso. Então Minecraft tudo e bloqueie o chicote. E então faça o mesmo por
aqui, aqui e aqui. Então podemos simplesmente colocar o mesmo lá para o bloco cobol, mas isso precisa ser, claro, cavalo
MC, isso é
muito importante aqui. Caso contrário, é isso. Se você tem todas as texturas
relevantes aqui, é
exatamente o que você precisa. Você só precisa disso como um
modelo de item e não precisa nenhum outro modelo de item
para ele. Então, quero dizer, isso já é
praticamente. É nós quero dizer, acho que vamos ver se
funciona sobre as finanças no
Minecraft, como você pode ver, a
equipe fria foi adicionada
ao jogo e parece
frequente, incrível. Então você pode basicamente
trocá-lo por aqui. E parece ótimo em
primeira pessoa e terceira pessoa. Eu gosto especialmente
da fila de ouro, basicamente como todo o bloco que está lá em forma minúscula. Eu não sei. Eu realmente gosto
da aparência, então sim, isso é praticamente o
quão fácil é adicionar um modelo de item personalizado
ao Minecraft, certo? Mais uma vez, a criação
do modelo é claro,
bem, o que é difícil? Você só tem que brincar um pouco
com o bloco venture. Você se acostumará com
isso rapidamente. Sinto que este é um programa muito fácil de
obter uma espera e sim, borracha que
já seria para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você na
próxima palestra. Então, sim.
79. (de medium) marks personalizados (de (Intermediate): Ou voltarei ao curso de
forragem por 118. Nesta palestra,
vamos
adicionar um Botha Minecraft personalizado. Então, um cliente era realmente
bastante simples. Vamos para a nossa classe de
mais itens e vamos apenas copiar sobre
a equipe de cobalto. E este vai ser
o antigo arco sublinhado. E então a mesma coisa aqui
e o nome arco de cobalto. E então isso
será um item 0. Agora as pilhas não servidas 2, 1, 0 vão fazer é
que vamos realmente sentar a durabilidade,
digamos 500. Vai ser
um pouco melhor do que o arco normal. E para o cliente, na verdade, precisamos definir as propriedades do item
personalizado novamente. Então, em nossa classe de propriedades de item, faremos uma chamada nula estática
privada, faremos todo o método que
leva em um
item, parâmetro de item aqui. Então, vamos trabalhar a classe do item
também e garantir que escolhemos o item
mundial líquido do Minecraft, item. E então vamos clicar no botão
do meio do mouse na
classe de propriedades do item aqui. Você basicamente entra
e nós vamos
escolher basicamente esses dois, bem chama o registro, o arco e o registro com o bot basicamente quando
um Cabibbo para eles. Então selecione e pressione o controle C para copiar o controle V para colar. E só precisamos adicionar
pontos de propriedades do item na frente
do registro aqui. E então vamos
alterar os itens que se
curvam para o item que
é o parâmetro aqui. Então aqui, lá vai você. E agora podemos basicamente
fazer quantos quisermos. Nós apenas chamamos fazer arco com mais itens para o que a
tigela que recebe. E então, se você tiver
várias bolas, basta ligar para isso
várias vezes. E, em seguida, adicionaremos
todas as propriedades específicas
do item e puxaremos para este item. E para isso, basicamente
precisamos de um modelo de item específico, bem, específico. Vamos antes de tudo
na tradução aqui, só para
que a tenhamos. Bem, sublinhado arco e arco de
cobalto aqui também. E então, quando
se trata dos modelos de itens, nossa cópia sobre tudo aqui está,
naturalmente, disponível para você no repositório do GitHub ou em
um indivíduo também. Você pode ver que realmente
precisamos de quatro deles. Então, a tigela de cobalto, já
vimos isso antes
com as propriedades do item é
esse o modelo padrão
que é preciso, certo? Então, é apenas essa textura
real aqui. E então, se substitui
basicamente se puxar como um só. Então, se estamos puxando atualmente, estamos começando
a obter esse modelo. Então, puxando 0, então, se o poste
estiver em torno de 65%, mudaremos
para puxar um. E se estiver 90 por cento
feito e
vamos mudar para dispostos. E sim, essa é, quero dizer, essa é praticamente
a ideia geral. Uma coisa interessante aqui é
que, na pesquisa, o pai será o próprio robô cobalto. Então você pode ver o item MCQs
cobalt bot é o pai. E então ele apenas aponta para
diferentes texturas novamente. Mas isso é realmente
tudo o que há para isso. Nada muito louco. Então, agora também podemos adicionar
as texturas aqui. Isso também será
quatro deles. Eles atrás, e isso é realmente tudo o que realmente precisamos fazer. A grande coisa é, mais uma vez, a adição real
das propriedades do item. Agora, como já vimos
isso com o tablet de dados, isso não deve ser muito louco ou muito confuso
para você, espero. E isso é praticamente
tudo o que realmente
precisamos fazer para adicionar um papel personalizado. Oh, vamos ver se funciona. Ou phronesis back
e microlensing. Veja se o bot foi adicionado
com sucesso ao jogo. E como você pode ver,
se eu fotografar, então a textura muda também para tudo
funcionando perfeitamente, certo. Isso é realmente o
quão fácil pode ser adicionar um
quadro personalizado ao Minecraft. E isso já é para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
80. (mediário) de produtos personalizados (de (Intermediate): Tudo bem, bem-vindo de volta
ao quarto curso para 118. E nesta palestra,
vamos
adicionar comandos personalizados
ao Minecraft. Escreva comandos personalizados, ou uma coisa muito interessante. Agora vamos começar,
à medida que avançamos. Portanto, esta é uma das
palestras em que começamos a copiar sobre o código. Embora, mais uma vez, tudo
no código esteja disponível
no repositório do GitHub e em
um indivíduo também. Portanto, não se preocupe lá, você deve ser capaz de
encontrar isso. Não se preocupe. Então, em nosso pacote de cursos MC, clique com o botão direito do mouse em novo pacote
chamado comando. E então vamos
criar imediatamente outro evento chamado. E vamos dar
uma olhada no evento um em apenas um momento. Primeiro de tudo, vamos
dar uma olhada no Comando 1, e vamos
copiar mais de duas classes. Na verdade, vou copiar as aulas na íntegra. Então este é o comando set home e o comando return home, e eu explicarei. Então, o comando basicamente é
criado com este despachante. Então, estamos fazendo o registro de pontos do
despachante e, em seguida, temos alguns literais do
Commander. O que isso significa home set, o que estamos fazendo aqui
e depois executa? Bem, isso significa que
basicamente o que precisamos
colocar no console
é conjunto de barra inicial. Em seguida, o comando é executado. Portanto, este é o
comando real, 0 então definido. Essa é a ideia geral. Se dermos uma
olhada no churn Homer, podemos ver sua casa e depois voltar. Então, para casa, set, sua casa disse, seu
retorno para casa é Homer turn. Isso não deve ser muito louco. Isso deve ser bastante
simples. De fato, construir seus
próprios comandos personalizados é uma coisa muito complexa. Então eu diria que
isso é algo que se você tiver uma coisa muito particular que você quer fazer com seu comando, você terá que
tentar e erro
muito através disso. O que eu recomendo esta classe de
comandos aqui, clique no botão do
meio do mouse sobre
isso e você verá todos os comandos de baunilha que
estão disponíveis para você. Portanto, esse é o melhor
recurso realmente, para ver quais são os tipos
de comandos. E eu
recomendo dar uma olhada neles. E vou te dizer de antemão, eles vão ser
muito complicados, certo? Mesmo algo como
o comando de matar, é provavelmente um
dos mais fáceis de
dar uma olhada. Mas se você entrar em algo
como o comando glute, quero dizer, olhe para isso, certo? Como isso é, isso é tantas
coisas que estão aqui. E é tão complicado que você
pode ver até aqui, certo? Isso é, a propósito, o registro
real do despachante de comando. Então você pode ver,
então é como saque de
barra e então
tudo bem, o que você faz? Ter ferramenta de peixe pode
ter alguém como, há tantas coisas
diferentes embora exija aqui. Então você pode perguntar, Ei, essa é a pessoa que está
tentando discriminar, tem o nível certo de
permissão, não tem e assim por diante. Recomendo. Dê uma
olhada nisso com mais detalhes. Se você tem algo que
você particularmente quer. No nosso caso, vamos
fazer é salvar alguns dados nos dados persistentes
do jogador aqui. Basicamente, quando estamos definindo a posição inicial,
estamos apenas dizendo: Ei, isso coloca as três coordenadas x, y e z em uma área
nos dados persistentes. Os dados são apenas uma
tag composta aqui no player. E vou colocar
isso sob o composto
MOD do curso MC . É
praticamente isso. E então vamos enviar
um sucesso com set home em uma posição
específica na qual acabamos de definir. Quando se trata do comando de
retorno para casa é um pouco mais complicado, mas não muito. Temos um booleano tem
pausa em casa, que basicamente apenas diz, hey é o comprimento desta matriz
GetInt aqui, não 0. Porque se for
0, então sabemos, ok, ainda não temos
uma posição. Não é 0, então sabemos, ok, temos uma posição em casa que
está basicamente sendo definida. E então nós apenas
teletransportamos o jogador para essa posição aqui. E basicamente dizendo:
Ei jogador, volte para casa. E aqui estamos enviando uma falha sem que nenhuma posição de casa
tenha sido definida. E isso é praticamente tudo
o que realmente precisamos
fazer aqui para os dois comandos. Você pode ver que
basicamente estou chamando esse comando aqui
com a fonte Git. É necessário uma pilha de
origem de comando. E o que é muito importante
é que ele lança uma exceção de sintaxe de comando, porque você pode ver get
player ou exceção. Então isso é um pouco
importante aqui, certo? Então, isso é basicamente tudo o que
precisamos em termos de comandos. Agora, o que vamos
precisar é de uma aula de eventos. Portanto, vamos clicar com o botão direito do mouse
no pacote de eventos que criamos eventos mod. E
falaremos sobre eventos um pouco mais de detalhes
em uma palestra posterior. Mas eventos são basicamente
algo que você poderia realmente criar um curso
inteiro. Isso é como dez
horas de duração também. Mas não vamos
entrar em muitos detalhes. Vamos apenas dizer
acima da classe add mod, certificando-se de que
este está selecionado. E, em seguida, vamos
excluir os parênteses, assinante do barramento de eventos. E então queremos colocar
entre parênteses com um MOD ID, que é claro MOD do curso
MC. E então queríamos métodos. Vou copiar ambos,
mas também vou
explicar, é claro, foi muito importante é que
sobre eles tem que ser público,
estático, vazio, escrever o nome não
é realmente o que importa. O que importa é o
parâmetro aqui. Portanto, este é o evento de
comandos de registro e este é o evento do jogador que clone tem que ser vazio estático
público, e eles precisam ter a
anotação no evento subscrição. Isso é muito importante. Não se esqueça disso,
caso contrário, não funcionará. É muito importante. O próprio método de registro de
comandos, será bastante
autoexplicativo. Sua triagem de um
novo em casa
sai e um novo comando de retorno para
casa
e, em seguida, basta
registrá-lo neste evento. Este evento é, aliás, também usado no manipulador
interno de forja. Portanto, isso deve ser
aqui onde os comandos forrageiros estão
basicamente sendo definidos. Você pode ver que este é
o comando forrageiro com todo o monte de coisas. Assim, podemos ver que ele
basicamente faz o TPS, a entidade de faixa gera. Dimensões e o comando
mode list. Esses são alguns comandos específicos para forjar
nesse caso. E você também pode ver
o
evento de comandos de registro aqui é
muito interessante. Então, antes de tudo,
diz que o evento foi disparado no ônibus de eventos de
forja Minecraft. Então, vou explicar
brevemente o que
diabos está acontecendo. Bem, temos eventos diferentes. Se eu realmente clicar neste evento e pressionar Control H, você pode ver que esses são
todos os eventos que estão disponíveis
para nós no Forge. E podemos até expandir isso e, em seguida,
teremos ainda mais porque há eventos
que derivam de eventos, que derivam de eventos
e assim por diante e assim por diante. Então você pode ver
que isso é muitos eventos. Este, o que estou dizendo
como se você provavelmente poderia fazer um curso
de dez horas com todos os eventos em si. Não vamos fazer isso. Como eu disse, isso foi só, você sabe, ter em mente. E a ideia é que alguns eventos sejam disparados pela forja Minecraft, alguns eventos são
disparados por ônibus de eventos. Vamos apenas mantê-lo
nisso por enquanto. Não há nada muito
louco acontecendo lá. Vamos ver
um exemplo disso em uma palestra posterior também. Por enquanto, vamos
dizer, ok,
eventos muito loucos, mas também muito legais podem
ser muito interessantes. Agora, qual é o
segundo evento aqui? Bem, basicamente quando
um personagem morre, o que queremos é que queremos
colocar os dados persistentes
do jogador que
acabou de morrer e copiá-los para o
novo jogador basicamente. Então isso é apenas para garantir
que, bem, após a morte, os dados permaneçam lá
e permaneçam persistentes. Essa é a ideia geral aqui. Mas, caso contrário, isso é
praticamente tudo o que estamos fazendo nesta classe de eventos de
modo. Agora, não precisamos
chamá-lo em nenhum lugar com isso adicionar mais assinante de
ônibus de eventos aqui. Isso basicamente já foi chamado de todos os métodos que têm no evento de assinatura acima
dele basicamente entra, então fica frio também. Então, curiosamente, isso
é realmente tudo o que
realmente precisamos para adicionar o
comando, como eu disse, todo o código está
disponível para você em um repositório do GitHub e um
indivíduo também. Recomendo dar uma olhada nele. Eu recomendo apenas
brincar com ele, estar aberto à experimentação. E por causa de conclusão, vamos recebê-lo funciona. Tudo bem, ele
nos encontra de volta no Minecraft, então vamos começar a
digitar barra para casa. E lá vai você. Já estamos recebendo
isso sugerido. Vamos tentar voltar para casa antes de tudo, o que não
deve funcionar, certo? Nenhuma posição inicial foi
definida. Isso é totalmente bom. Agora vamos sentar em casa. Defina na posição definida
neste local. Vamos ver, só para ter certeza, sim, que soa
bem, isso é muito bom. Agora vamos para
outro lugar aqui. E a menos que diga,
Ohm ,
volte para casa. Isso é muito bom. Agora, na verdade, vamos
cair de uma altura alta. Vamos ver. Isso vai
me matar e depois vou responder e depois
vou dizer, o retorno também funciona totalmente bem. E então também
vamos sair deste
mundo, salvar e sair. E então vamos
voltar a entrar no mundo. E então vamos ver
se isso ainda funciona. E deve, é
claro, porque o que salvamos nos dados persistentes e o composto e BTEs para as entidades são
basicamente salvos nisso. Então, vamos voar
mais uma vez e depois dizer voltar para casa. E, claro, ainda funciona. Então, todos os casos são basicamente feitos e
tudo funciona aqui. Isso é muito legal. Isso é praticamente o quão
fácil pode ser adicionar um comando. Mais uma vez, se você tiver uma coisa muito
particular em mente, você só terá que
brincar com isso. Só ajudarei em circunstâncias
limitadas. Então, se você, por exemplo, disser Ei, eu quero comandar que faz
XYZ e apenas coisas malucas. Provavelmente não apenas faça
todo o comando para você. Você só terá que experimentar um monte de coisas,
brincar com isso. E tenho certeza de que você pode
conseguir que o comando se você realmente
trabalhar nisso, certo? Mas é isso para esta
palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você
na próxima palestra. Então, sim.
81. (de mediate) salva partículas de (Intermediate) (de mediate): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra
vamos dar uma
olhada em como você pode gerar partículas personalizadas
no mundo. Então, em particular,
vamos dar uma
olhada nisso para o bloco rápido, ou basicamente
adicionaremos um método específico. E isso é chamado de método de
tick animado aqui. E então eu realmente
vou copiar o conteúdo disso. Isso vai ser bastante autoexplicativo em
apenas um momento, porém, basicamente
temos uma chance. E então vamos
dizer, Ei, só queremos o flutuador aleatório todas as vezes. E há
ideias gerais que temos. Temos momentos de chance de gerar partículas e toda
vez que,
na verdade, deve ser 65% aqui. Então, porque estamos basicamente
verificando se o menor que o próximo flutuador e um flutuador ficarão
entre 01. Então essa é a ideia geral. E isso é basicamente como você pode gerar
uma partícula, certo? Então você precisa de um nível
e isso precisa estar no cliente desta vez,
isso é muito importante. E esse método inimigo para marcar só
é chamado para o cliente. Então isso é perfeito para nós. E nós apenas dizemos adicionar partículas, o tipo de partícula que
queremos adicionar, a posição, direita, x, y e z, e depois a velocidade
na direção x, a velocidade na direção y e a velocidade no
z direção. E quando os tipos de partículas, você pode ver que há
um monte de coisas aqui que você pode
basicamente gerar. Neste caso,
vamos apenas tomar a fumaça. Na verdade, parece meio legal e vai funcionar
totalmente bem para nós. E você pode ver que eu também tenho a velocidade do vento basicamente
tem, você sabe, um pouco de
aleatoriedade lá
também para que pareça meio desigual e é muito legal
realmente desigual e é muito legal
realmente vai olhar
realmente incrível. E sim, isso é
praticamente o quão fácil é. Então você só precisa de um nível e precisa
estar no cliente. Agora, mais uma vez, isso não é para partículas
personalizadas em
si mesmas. Agora é
assim que você pode gerar
partículas particulares em algum lugar, em todos os lugares onde você
tem acesso a uma
variável de nível e basicamente verificar
se você está no cliente, você deve ser capaz para gerar
as partículas também. Então, isso é
praticamente o quão fácil é. Então, para fins de conclusão,
vamos ver se funciona. Tudo bem, nós fantasiamos
no Minecraft, então vamos definir o bloco SPD
para baixo e lá vai você. A fumaça já está
subindo dela. Então está tudo funcionando
muito bem. Você pode ver. E é claro que isso é
algo que você pode ajustar. Você pode ajustar a velocidade
que surge ao ajustar até onde ele aparece em
relação ao bloco. Em tudo isso é basicamente
só capaz de ser alterado. E é
claro que você também pode alterar o tipo das partículas. Mas isso é muito
legal, no entanto. Tudo bem, e isso já
é para esta breve palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo, e eu te vejo na
próxima palestra. Então, sim.
82. (adiantamentos personalizados (intermediários): Ou voltarei ao curso de
forragem por 118. E nesta palestra,
vamos adicionar avanços
personalizados
ao Minecraft. Portanto, adicionar avanços
acontece apenas em arquivos JSON. Então, isso na pasta de dados, na pasta do curso MC. E vou copiar meus 20 avanços que já
foram preparados aqui. E mostrarei um ótimo
recurso que você pode usar para ler
basicamente bem seus próprios
avanços com bastante facilidade. E você pode ver, então
nós temos dois deles, MC course Jason e
uma vara de dowsing JSON. Agora, a primeira coisa que você
notará é que há uma tela. Este é apenas o item ou
bloco enquanto neste bloco
em algum caso, seja, basicamente,
sendo exibido como o
ícone desse avanço. Agora você tem um título, descrição deve
fazer sentido. Você pode escolher o quadro se ele
aparecer ou não em um brinde. Portanto, isso é se ele mostra
ou não
no canto superior direito
da tela se uma
análise é para conversar. E então este em particular
tem um fundo que é muito peculiar
porque ele realmente aponta para texturas de núcleos MC,
loc, 0,
sublinhado de bola Bloco PNG, mas para toda a estrutura de
pastas semelhantes aqui. E a razão é porque este não tem um pai. E se você estava avançando,
ele não tem um pai, então ele basicamente cria uma nova guia na janela de
avanço. Isso é muito importante se você mudar para o
modo de desvio primeiro, segundo, você pode ver que o pai
aqui é núcleos MC, núcleos
MC e ele não
tem um plano de fundo. Então isso é muito peculiar, foram muito interessantes
neste caso. Então, a ideia é que isso, se você escolher um plano de fundo,
se você não tiver um pai, então você precisa de um plano de fundo
porque esse será o plano de fundo da
sua guia basicamente, então o critério é
realmente coisa interessante. Agora não vamos criar nenhum critério personalizado porque
isso é muito mais complicado. Vamos usar a mudança
de estoque. Então, basicamente, assim que eu tiver pelo
menos um cobalto
Inglaterra no meu inventário, esse avanço
será dado a mim. E então, para a vara de
dowsing, basicamente, eu só preciso de uma vara de dowsing e então também terei
esse avanço. Isso é praticamente tudo o que realmente
há para isso. Então, para fins de conclusão, vamos ver se funciona. Ou ele nos encontra de volta
e Minecraft. Então, vamos ver se eu
consigo um lingote de cobol. Eles vão mod curso MC. E também posso ver que o
poder está nos cobaltos. Isso é muito legal. E agora eu também deveria ser
capaz de encontrar isso aqui. Podemos ver o
mod do curso MC como o avanço. Então, o nome do seu avanço aqui sempre será o primeiro avanço que você tem basicamente sem
aparente em C, também
temos o fundo como o cobalto bloqueia seu e então você pode ver o
segundo, vara de dowsing. Se não funcionar, a
haste não gosta de você. Bem, foi pelo menos
o que me disseram. E se eu conseguir isso
e você puder ver que eu também estou recebendo o
avanço da vara de dowsing ali mesmo. Então isso é muito legal. Todas as coisas consideradas. E isso é realmente o quão fácil
é basicamente adicioná-los. Bem para o Minecraft agora, como eu mencionei, mais uma vez, um ótimo recurso aqui é
Miss antigo GitHub IO
mais uma vez para o avanço do gerador,
altamente recomendado. Você pode basicamente
dar uma olhada em todos os requisitos
que existem. Podemos vê-lo mais uma vez,
aqui estão as condições. Então podemos basicamente mudar
isso para coisas diferentes. Digamos que, por exemplo, tenhamos mais uma vez
no inventário alterado. E então você pode basicamente adicionar condições diferentes a ele. Você pode ver slots de jogadores, itens. Há um monte de
coisas que você pode adicionar. Recomendo
brincar com isso ou dar uma olhada no
avanço da baunilha. Também possibilidade de entrar no GitHub e procurar avanço de
diferentes modos. Isso também funciona totalmente bem. Mas há muitas opções
para você comprar basicamente, mas isso já é para
esta palestra aqui. Espero que você tenha achado
útil e o seguro do novo dos arquivos JSON,
é claro , está disponível
no repositório do GitHub ou em um indivíduo apenas, bem, e eu te vejo
na próxima palestra. Então, sim.
83. (pintores personalizados (intermediários) (de (Intermediate): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos
adicionar pinturas personalizadas
ao Minecraft. Para adicionar motivos de
pintura personalizados é na verdade, um processo bastante
simples. Primeiro de tudo, no pacote do curso
MC, botão direito do mouse em novo pacote
chamado pintura. E lá dentro
vamos criar uma nova classe chamada classe de pinturas
modernas. Agora, a classe mais pinturas
terá, em primeiro lugar, um registro público estático, final
diferido de tipo, motivo ou motivos
sublinhados de pintura, que será igual
a registro diferido que criam ou adicione registros, que tipos de pintura são meu modelo de curso MC,
esse ID do modelo. E mais uma vez,
seja o 80 terceiro registro, há também um método de registro de vazio
estático público com um olho Event Bus, perímetro de ácidos do
Event Bus
e, em seguida, pintando motivos que
se registram passando
no ônibus do evento. O método de registro
é quando frio, você está abaixo dos
sons do modelo, então mais pinturas se registram e depois passam
no ônibus de eventos
ali mesmo. Isso é ótimo. E agora só precisamos
registrar as pinturas. E isso
será feito fazendo objeto de registro final estático
público do tipo motivo. Isso vai
ser chamado de planta, e isso é igual a
motivos de pintura, registro escuro. O nome será planejado. E o segundo parâmetro é
um fornecedor de novo motivo. E
os parâmetros serão 16. 16, e vou
explicar o que são esses. Então, os parâmetros do motivo, eu posso clicar no
botão do meio do mouse e você pode ver que esta é a largura
e esta é a altura. Portanto, o primeiro parâmetro
é a largura, o segundo é a altura. Isso é dado em
pixels basicamente, mas é assim que a sua pintura
é grande. E só por causa da conclusão, vamos
fazer três pinturas aqui. Também vamos
ter o andarilho, será a maravilha. E este
vai ser o pôr do sol. Esse é provavelmente o meu
favorito, a propósito, mas vamos ver
isso em apenas um momento. Todos os pôr do sol eles atrás. E isso também é o pôr do sol. E esta é a única linha com 32 altura e a
sensível tem 32 de largura. Agora a questão é, bem,
onde estão as pinturas deveriam estar matriculadas
em nosso pacote de cursos MC, inserção da pasta de texturas. Vamos ter uma
nova pasta chamada pintura. E, na verdade, vou
copiar isso porque o conteúdo já
está lá. Essa é a planta,
o pôr do sol e a maravilha
São todos disponíveis. No entanto, vou querer que
você direcione a atenção para os créditos porque as pinturas também são
feitas pela platina G7. Apenas certifique-se de que, se você vai usá-los em
um repositório público ou o
que quer que esteja no
Curtis aqui
também e siga a licença que é basicamente
tudo o que há para ele. Caso contrário, você é
basicamente livre para usá-los. E isso é, na verdade,
tudo o que precisamos fazer, desde que os nomes aqui correspondam aos nomes
da pintura real. Fotos aqui, as imagens. Isso é tudo o que
há para ele. Então, acho que vamos
ver se funciona. Ou um farmacêutico em Minecraft. Então, vamos apenas sentar
na pintura e vamos ver,
oh, lá estamos nós. Isso é o pôr do sol. Eu realmente
gosto disso e isso é, acredito na maravilha. E vamos ver se
podemos ser planejados também. Tudo bem, lá vamos nós. todas as três pinturas
que adicionamos. E sim, é basicamente isso. Você basicamente adiciona as pinturas à
rotação da pintura aqui. Então essa é a ideia
geral, certo? Na verdade, é assim que é
fácil adicionar pinturas
personalizadas ao Minecraft. E isso já é para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
84. (de (Intermediate) a modificadores de loot globais (de intermediação) (de mediate): Tudo bem, bem-vindo ao curso de
forja para 118. E nesta palestra, vamos dar uma
olhada nos modificadores globais de Luder. A primeira pergunta
que pode surgir é o que nossos modificadores globais de saque? Bem, eles são uma maneira
de mudarmos, perder tabelas de, por exemplo, tabelas de
baunilha Lu,
adicionar coisas a ela, ou mesmo em teoria, subtrair coisas dela. Então você poderia
tirar um pouco e adicionar coisas. Eu recomendo não ir muito fundo com a
subtração de coisas. Isso pode quebrar o
modo em compatibilidade. Seu modelo pode não funcionar
bem com outros mods, e isso geralmente não é
algo que você gostaria. Agora, o que vamos fazer
é no nosso pacote de eventos, vamos clicar com o botão direito do mouse em
novo pacote chamado glute. E em vez de lá, todos os
nossos modificadores de poço irão. Essas são basicamente aulas. Agora vou copiá-los
e
explicarei à medida que passarmos
pelas aulas. Portanto, este é o número um
é a haste de dowsing no modificador de adição de
iglu e as sementes de nabo do modificador de adição de
grama. Agora, felizmente, as
aulas devem ser quase autoexplicativas
para o que estão fazendo. Mas basicamente vamos
adicionar uma haste de dowsing no peito da estrutura
iglu e uma semente de nabo dentro
da grama. Quando quebramos latão,
temos uma chance neste caso, temos
100% de chance de adicionar
os assentos de nabo ao
alaúde que está sendo descartado. Mas o que é toda essa
provação será antes de tudo, ambos parecerão muito parecidos. Portanto, a única diferença aqui está atualmente no método
do apply. Então, para nossos propósitos, vamos dar
uma olhada na virada dos
assentos do modificador de
edição de grama. E bem, vou
explicar rapidamente a ideia geral. Vemos que a classe se estende da classe modificadora lútea. Vamos apenas entrar nele clicando no botão
do meio do mouse. Ou você também pode pressionar Control, clicar com o botão esquerdo sobre ele para
basicamente entrar lá. E você basicamente
pode ver que temos uma coisa em particular aqui
que é o método do apply, que é basicamente
o importante. Felizmente, também temos
alguns bons comentários aqui. Podemos ver aplica o modificador
ao saque gerado. E então, basicamente, você
pode adicionar coisas a ele. Então isso é muito legal. Portanto, o alaúde gerado é
apenas uma lista de impostos sobre itens, isso é o que cairia
se você não fizesse nada
e, em seguida, você devolve as gotas de saque
modificadas. Então essa é a coisa
muito legal, mas é por isso que, se
voltarmos aqui, você pode ver no método
do apply, mas eu adiciono uma nova
pilha de itens da minha edição. Então este é o item
que eu quero adicionar a esta lista e, em seguida, retornar
a lista com meu item adicionado
e, em seguida, meu item
é adicionado à lista de itens que está
literalmente prestes a soltar. Então isso é uma coisa muito
legal, certo? Se fizéssemos
isso, não mudaríamos nada e nenhuma
carga adicional seria adicionada. Se fizermos isso. No entanto, certo, então minha
adição seria adicionada. Agora, o que também poderíamos fazer, e eu recomendo
não fazer isso, realmente significa isso. Em seguida, leia, jogador de alaúde. E então podemos simplesmente limpar toda
a lista de coisas
que estamos prestes a ser adicionadas e simplesmente
soltar nosso próprio saque. Recomendo não fazer isso, especialmente não exagerar nisso. Porque, mais uma vez,
você pode quebrar sua compatibilidade com
seu MOD e outros modos. Se eles dependem de blocos específicos, deixando cair coisas específicas, então você pode arruinar sua chance de sua
mãe
entrar em um particular mais Peck estará ciente disso.
Tenha isso em mente. Deixe-me ter uma aula de
serializador aqui, o que é basicamente
uma coisa louca. Serializador global de modificadores de saque. Bem, nós apenas temos um método de
leitura e gravação, que basicamente a ideia
geral é apenas que ele lê coisas de um arquivo JSON. E você pode ver o que
ele basicamente faz é que ele obtém o valor
do registro de itens. Então, estamos basicamente passando por nossos itens de registro
e vamos dizer como, ok, temos um, algo no arquivo JSON é
definido sob a adição. Vamos ver
isso em apenas um momento. Vamos
dizer, ok, me dê isso e depois me dê
o valor disso. Então, basicamente, basta obter o
item
associado à adição que
definimos no arquivo JSON. E então
vamos apenas fazer uma nova modificação
adicional aqui. E estamos devolvendo
para o método de leitura. E o método de gravação é
exatamente o oposto, basicamente apenas fazendo
o arquivo JSON real. Agora isso não está realmente feito, mas ainda precisamos fazer isso. Então, apenas tenha isso em mente. E isso é basicamente tudo
o que os modificadores adicionais, isso quase sempre deve ser bastante boilerplate
por si só. Quero dizer, se você tiver
20 adições, bem, e você vai ter
20 itens diferentes aqui. E você provavelmente
passará
20 itens diferentes para o
construtor, coisas assim. Mas esse é apenas um conhecimento Java
normal que não deve ser muito louco. Todas as coisas consideradas. Agora, quando você tiver isso,
você também
precisará de outra classe
no pacote de eventos. Então clique com o botão direito do mouse em nova classe
Java chamada eventos de barramento de eventos
mod E lá dentro,
antes de tudo, vou renomear isso
para mais eventos de ônibus de eventos. Lá vai você. E então lá, em primeiro lugar, vamos
precisar está no topo, vamos precisar
dessa coisa exata. Mais uma vez, precisamos
do assinante do
ônibus do evento ad model.py com a melodia do curso
Armada DMC. E agora precisamos especificar
o barramento para ser o multi-bus, muito importante da última
vez com os comandos, vimos que, bem,
ou padrão, esse é
basicamente o barramento forrageiro. Agora este é o modo de
barramento entrará nos eventos com um
pouco mais de detalhes em uma palestra posterior. Mas, por enquanto,
vou copiar
o método básico que precisamos. E esse é o método serializadores de
modificadores de registro. O nome do método
realmente não importa. É importante
que seja estático, público e tenha uma anotação de
evento de assinatura aqui. E então, basicamente,
o evento aqui é o evento de registro que ADD registra
modificadores globais de saque, serializadores. E aqui nós apenas dizemos, Ei, basta registrar todos
os nossos serializadores. E você pode ver que registramos o serializador definindo
o nome do registro. E esse nome
aqui será o nome do arquivo adjacente do qual ele basicamente lê. Agora, para onde vão nossos arquivos JSON? Precisamos de um para cada um dos diferentes modificadores
que temos. E então também
precisamos de um para forragem, basicamente que a forja sabe, ok, quais modificadores
realmente temos em
nossa pasta de dados? Forge, clique em novo diretório chamado modificadores de
sublinhado de glute. E, na verdade, vou
copiar sobre o arquivo JSON. Isso é chamado de sublinhado
global, modificadores de
sublinhado e
adjacentes muito importantes. Isso tem que ser
escrito corretamente. E então aqui temos que
definir todas as nossas entradas. Mas você pode ver
núcleos MC termo sementes de grama e, em seguida, haste de
dowsing de curso MC e iglu, que também é o mesmo nome que está aqui com o nosso ID mod. Então, essas são basicamente
as entradas lá. E então, em nossa pasta de dados, pasta do curso
MC, novo diretório chamado modificadores de
sublinhado de saque. E vou copiar
os dois arquivos JSON novamente. Eles estão todos disponíveis
para você, é claro, no repositório do GitHub em
um indivíduo também. Você pode ver que eles têm o nome exatamente como definimos aqui. Isso seria um adjacente, o adjacente basicamente termina. E você pode ver que
existem algumas condições. Agora, no geral, os arquivos
modificadores de alaúde são ambos, eles são interessantes
em si mesmos, certo? Então você tem que definir uma condição
específica aqui. Mas neste caso temos um ID de tabela de
saque e diremos que
o ID da tabela Lu é
baús de Minecraft, baú de águia. Então, basicamente, o baú iglu está sendo
carregado, por assim dizer. Então estamos chamando o modificador do tórax
iglu. E então estamos fazendo
o método do apply, mesma largura, por exemplo, do queimador
procede da grama aqui. Então, se gramíneas quebradas, você pode ver que esta é
uma condição diferente, bloquear dizer propriedade, e
então estamos apenas verificando, ei, se
isso é ou não, isso é uma compreensão. Ok. E agora, se um
bloco de grama estiver basicamente quebrado, chamamos o método
do apply. Pouco antes de deixarmos cair
a lasciva gerada, adicionamos nosso alude personalizado a ele, nossa adição que é
lida aqui. E então nós retornamos
isso com basicamente, enquanto essa coisa que é
muito legal é que você pode ver que eu também posso usar o
ponto de contexto getrandom para
basicamente ter certeza de que, você sabe, algo
não sempre caia. Isso. Nesse caso, isso é
basicamente adicionado apenas 95% do tempo, 5% das vezes. Na verdade, não é adicionado. Então isso também é
algo muito legal, mas também
coisas Java muito básicas, básicas, certo? E isso é, na verdade, tudo
o que você realmente precisa. Às vezes, eu
sinto que, em geral, os modificadores globais
são um pouco desajeitados, eu diria
que eles não são que há muita estranheza. Você sabe, você tem
que defini-los aqui e você terá
que defini-los aqui. E você tem um definido aqui e você tem que
dividi-los aqui. Como se houvesse muitas
coisas que você tem que fazer. Eu não sei. Às vezes
é um pouco estranho, mas no geral, tenho certeza de
que ele vai gerenciar. Também vou vincular os
recursos que serão
os modificadores de loop global ou
o forge Docs aqui. Então, basicamente, aqui está um
pequeno resumo também, no
qual você pode basicamente dar uma outra olhada em
como eles podem funcionar. Pode ser útil
às vezes, você sabe, eu vou, eu vou apenas vinculá-lo
basicamente também, ou fantasias no Minecraft. Então, vamos ver se eu
quebrar a grama aqui, ela sempre deve
soltar uma semente de nabo. E lá estamos nós. Basicamente, temos
100% de chance de adicionar uma semente de nabo à tabela de saque
real. E apenas por causa de conclusão, vamos também dar uma
olhada na Águia. Tudo bem, aqui
podemos ver que há uma vara de dowsing no xadrez
legal também. Isso é muito legal, certo? Mais uma coisa que
é muito importante. Também temos que adicionar um tipo
nos arquivos JSON aqui, onde ele nos dá um complemento
no 118. Caso contrário, não funcionará. Este é simplesmente
o seu namespace, então seu ID de MOD e, em seguida, o nome do arquivo
real também. Portanto, não deve haver
nada louco aqui, certo, isso já será para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. Vejo você na
próxima palestra. Então, sim.
85. (Intermediário) Fluidos personalizados (de (Intermediate) (de mediate): Tudo bem, bem-vindo ao
quarto curso para 118. E nesta palestra
vamos dar uma
olhada em fluidos personalizados. Para fluidos personalizados, temos uma restrição importante ou digamos limitação
que existe. E isso será
basicamente que a física
do fluido que você vai
fazer será
a mesma física que a água. E então também não só isso, mas também você só terá
os mesmos artigos água basicamente quando você
mergulhar e coisas assim. Mas essa é uma limitação
que atualmente está bem, não é fácil de dar a volta. Portanto, cuidado com isso. E também copiarei
a maior parte do código. Mais uma vez, tudo
está disponível para você
no repositório do GitHub ou em um
indivíduo também. No entanto,
explicaremos o pacote do curso
MC,
clique com o botão direito do mouse em novo pacote
chamado fluido do que eles. Vou copiar sobre a classe de
fluidos de modo em sua totalidade. Devemos obter uma flecha
aqui nos mais itens, ainda
precisamos fazer um item de balde de mel. Mas em fazer isso com muita facilidade. Então, na classe mais itens agora, basta copiar
sobre a tigela,
o balde de sublinhado de mel. E isso é, claro,
um na parte inferior, no balde sublinhado. E então este é um item de balde. E o primeiro parâmetro
sendo fluidos modelados que um fluido IV. Lá vai você. E isso é basicamente
o que precisamos. Na verdade, adicionamos imediatamente a tradução e
coisas assim, só para que a tenhamos,
que não a esqueçamos. Então, um balde de sublinhado de mel e o balde que eles atrás e, em
seguida, um modelo de item, porque é claro que isso
ainda está no item normal. Isso não muda nada. Então, balde de mel, eles vão apenas
apontar para uma textura normal. E então vamos adicionar
a textura
também, o ego. Então isso é muito bom. Então, agora vamos dar uma
olhada nos fluidos novamente. Na primeira coisa que temos é a localização de três recursos. Então essa é a localização do recurso de água
ainda, o fluxo e a sobreposição. Por que estamos usando isso? Certo? Por que estamos usando os locais de
água ou recursos de Manila? Bem, porque eles são cinza e nós podemos basicamente colori-los. Então, temos essa cor de ponto
aqui nas propriedades, e isso basicamente
nos permite colorir nosso fluido. É por isso que estamos usando isso porque
eles
já são cinza e eles
parecem totalmente bem. Tenha um registro diferente,
bem como um método de registro. Como você pode ver,
esse método de registro,
é claro, deve ser chamado. Vamos chamar isso também. Então,
haverá o modo fluids dot register com o barramento de
eventos aqui. Isso é algo
que já vimos várias vezes agora. E então temos dois fluidos
diferentes. Um deles é um
fluido que flui que fonte, e o outro é um fluido de fluxo
forjado. Esse fluido flui. Isso é incrivelmente importante. Eu vi isso várias
vezes que as pessoas acabaram de copiá-lo
e esqueceram de mudar isso. Esteja ciente
de que um deles tem que ser fonte e um deles
tem que estar fluindo. Muito importante. Então precisamos uma quarta propriedades
fluidas fluidas. Essas são basicamente as
propriedades, porém, como isso está sendo exibido
e coisas assim. Você verá muitas
das sobreposições amarelas aqui e diz, hey, podemos substituir isso
por isso aqui. E então até diz que a, podemos até tornar isso mais fácil apenas chamando assim. Não faça isso. Temos que usar os
fornecedores corretamente aqui. Caso contrário, ele não será
carregado na ordem correta. Portanto, temos que
usar os fornecedores. Isso é muito importante. A maioria das coisas,
densidade, luminosidade, viscosidade, Esses são bem, apenas forjar valores que
não fazem nada. Inclinação, defina a distância
e a diminuição do nível. Esses, no entanto, fazem alguma coisa. Mas eu recomendo
apenas
brincar com os
números mais uma vez, quando se trata da cor. É muito estranho porque,
em vez de ir como você esperaria que um
valor hexadecimal fosse no RGBA. Na verdade, é um RGB, então essa é a cor basicamente. Mas isso deve ser
bastante simples. Basta encontrar um seletor de cores online e então você pode basicamente
definir a cor aqui. Também precisamos de um
bloco líquido aqui. Então eu bloco de mel, isto é, bem, um bloco específico. Neste caso, podemos ver que este é um novo bloco de líquido e passamos
no fluido ali mesmo. Mas essa é a ideia
geral aqui. Nada muito louco. Às vezes penso que os
fluidos e a forja são Will. Pode ser um
pouco mais fácil porque há mais uma coisa
que precisamos adicionar. Na verdade, isso é algumas
coisas que precisamos adicionar. Então, em nossa classe de mod de curso MC, no método de configuração do cliente, nós realmente queríamos definir
a camada do renderizador aqui, e isso será
para os fluidos do modelo pai, e então basicamente o bloco. E isso vai ser
translúcido. Na verdade. Queremos fazer a
mesma coisa pelo lúcido e pelo mel fluindo, então vamos
basicamente tornar isso
transparente para que
possamos ver através dele. E isso basicamente
nos permite usar o
valor Alpha aqui. Então pense nisso assim. E então também
precisamos adicionar uma tag. E essa tag é criptografada de
forma credível para saber que ela realmente
age como um fluido. Então, na pasta de
dados do Minecraft, tags, clique com o botão direito do mouse em novo
diretório chamado fluidos. E dentro de lá um novo
arquivo chamado Water dot JSON. E agora o conteúdo
vai ficar assim. Vamos ter
o
fluido sublinhado do mel e fluindo lá. Esses são os nomes
do mundo, seja a fonte ou o
fluxo. Isso é muito importante. E então,
basicamente, devemos terminar. E então você tem seu fluido
personalizado adicionado ao Minecraft e ele será
registrado corretamente. Então, sim, isso é
praticamente tudo o que precisamos. Então, vamos ver por obras ou se me perguntaram de volta
e micro Tennessee, o balde de mel foi adicionado ao jogo e
vamos colocá-lo para baixo. Aí estamos nós, o mel também
está lá. E agora você pode ver que as partículas são partículas de água
normais. E quando eu entro nisso, você pode ver que o tipo
de sobreposição também é azul pois isso é apenas duas
dessas limitações
que mencionei. É exatamente como vai ser. Às vezes, essa é apenas a
forma como o biscoito se desintegra. Mas ainda assim, fluido
personalizado foi
adicionado aos micróbios. Então isso é muito
legal e isso
já seria para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver na
próxima palestra. Sim.
86. (de (Intermediate) a data de eventos: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra,
vamos analisar
provisoriamente analisar
provisoriamente os eventos que já vimos eventos em palestras anteriores. Temos o modo
eventos de ônibus de eventos, e também temos a classe de eventos
motorizados. Então, se duas classes,
vimos o evento de
comandos de registro, o evento de clone do jogador, bem
como o evento de
registro para os serializadores
modificadores globais aludidos. E eu só queria dar uma breve demonstração do que isso
realmente é como eventos. Então, antes de tudo, se
não tivermos evento ou você
também pode mudar duas vezes e
simplesmente colocar em evento aqui. E, em seguida, inclua itens que
não são produtos E então podemos pegar
este aqui do evento
net microforms foi EPI. E eu posso fazer o seguinte. Posso clicar nisso
e pressionar Control H. E já
mostrei isso, mas vamos mostrá-lo novamente. Mas podemos expandir todos, e esses são todos
os eventos que forjam
anúncios que podemos basicamente conectar e, em seguida, fazer coisas quando
esse evento é acionado. Há coisas realmente
legais aqui. A primeira coisa que
quero mencionar é que você não deveria dizer, eu quero usar esse
evento para fazer isso. Não é assim que funciona. O que você deve fazer
é dizer, eu quero que x aconteça. Eu quero poder fazer
outra pausa e chefiar n entidade oculta com ela
e ela deve pegar fogo. Ok, então você pensa nisso. Bem, posso mudar coisas na classe de itens
para o tijolo nether. Agora, realmente isso é
meio codificado, certo? Você precisa alterar
o código-fonte do Minecraft, realmente
não funciona. Existe um evento para
isso? Eu não sei. Como se houvesse como
um evento de dano, todos os
eventos de dano vivo. Olhe para isso. Isso pode ser útil. Você pode clicar duas vezes
sobre isso e, em seguida, ele geralmente tem uma
descrição muito boa para os eventos. Podemos ver que o evento de
dano vivo é disparado pouco antes de Danos
aplicados à entidade. Portanto, esse evento é
disparado todas as vezes. Pouco antes de uma entidade, uma entidade de mão viva é ferida. Essa é a coisa, certo? Este evento é disparado
sempre que uma entidade é danificada na entidade viva realmente prejudicada ou termina na
camada realmente prejudicada. Embora eu
sugira dar uma
olhada nos eventos que estão
na hierarquia de classes aqui é,
na verdade, é incrivelmente útil apenas estar familiarizado
com alguns desses eventos, especialmente quando
vem para as entidades. Há tantos
deles que você pode ver eventos de Entidade e eles podem simplesmente abri-los eventos vivos
e depois ver isso. Há eventos de jogadores. Há tantos eventos de
jogadores diferentes que você pode se conectar e
fazer coisas com ele. É muito louco. Bem, há uma coisa
interessante e essa é a classificação de ônibus bem. Então, se eu
clicar no botão do meio do mouse neste ônibus aqui, você pode ver que há um
ônibus de forja e há um ônibus MOD. Agora, a essência geral é essa. Existem alguns eventos
que são disparados pelo Forge, em alguns eventos que
são disparados por um mod. Essa é a ideia geral que
você tem que pensar. Não complica demais isso. Sim, é claro,
muito mais nisso. Você pode ver que já
vimos isso antes, onde temos, já
vimos isso antes. Bem, isso é exatamente
aqui, certo? Você pode ver que este é
o ônibus de eventos MOD, mas essa é exatamente
a ideia, certo? Você tem o Mode Event Bus
e o barramento de eventos forge. E quanto mais barramento de eventos
neste caso, por exemplo, sempre
é usado para os
diferentes registros aqui. E você pode ver aqui quando
fazemos microformas dot event bus, este é então o
outro barramento de eventos. Então este é o único
para os eventos da forja. Eu não me
preocuparia muito com isso. No geral, você geralmente pode ver de
que são os eventos. Quando você, por exemplo,
diz o registro, registro de
eventos, se eu botão do
meio do mouse, clique nele e em
seguida, vá para o registro
quando, por exemplo, você pode ver isso agora implementa
o Evento de barramento do modo IE. Então eu posso pressionar
Control H sobre isso e posso realmente ver todos os
eventos que são de lá. Então, isso deve ser
basicamente todos eles. Em teoria, pode haver mais
alguns , mas
acho que não. Acho que eles sempre
precisam implementar isso. Então isso é praticamente
tudo o que há para ele. Então, geralmente você deve ser capaz dizer e o que vamos apenas
por uma questão de argumento, o que eu realmente copiarei é um método que este é, naturalmente tudo disponível para você e esse é o conjunto entidade em chamas quando atingida. E isso vai ser
dentro de outra pausa. Mas só queria mostrar
aqui em um exemplo, você pode ver que estamos escolhendo
o evento de dano vivo. E este evento tem um
par de soft, certo? Já vimos isso. Bem, temos a
fonte danificada e também temos, por exemplo, temos o valor e também a entidade viva. Então, basicamente, todos aqueles que
estamos recebendo aqui, e isso é muito legal porque podemos basicamente obter
a fonte de danos. Podemos dizer, Ei, apenas me dê a
fonte direta, ou seja, o jogador. E então também podemos dizer obter a entidade
viva que foi atingida. E então estamos apenas
incendiando isso. Mas isso é muito legal. Então, isso significa que podemos adicionar funcionalidades
adicionais a, por exemplo, itens de baunilha. Agora, mais uma vez, não exagere. Não seja, não fique louco
Cu2, certo? Ser como um ok. Então, quando eu bater em algo
com outra estrela, o mundo inteiro
vai explodir. Quero dizer, seria
muito legal honestamente, mas não tente calçar
em eventos em que eles não se encaixam. Por exemplo, se
você está dizendo, oh, então eu poderia substituir isso
pelo meu item personalizado. E eu disse: Sim, claro,
como se você ainda pudesse dizer isso. Você pode ver itens mod. Por exemplo, dowsing, rod dot get. E isso também funcionará. Agora, se eu bater em algo
com uma vara de dowsing, certo, eu incendiaria
algo. Mas então eu também ficaria como, Por que
você gostaria de fazer isso? Você não precisa fazer isso
em seus itens personalizados. Você tem acesso
ao código-fonte. Eu poderia simplesmente entrar
na vara de dowsing, certo? Uma substituição de um método aqui. Há o
método inimigo ferido, por exemplo. E eu poderia
fazer isso aqui, assim como vimos com
o tipo de levitação, certo? Então, com a
espada de levitação, se feito, substituímos o terceiro método
inimigo e
adicionamos um efeito. Ou você poderia, em teoria, também
fazer isso aqui, certo? Eu poderia apenas dizer, Ei,
vamos pegar o, você sabe, se este é um item tipo de
levitação, então bam,
Vamos, vamos incendiá-lo
ou vamos levitar a
entidade viva que foi atingida. Claro que posso fazer isso, mas se você tiver acesso
ao código-fonte, não
há motivo para
você fazer isso em um evento. Espero que eu tenha sido uma espécie de introdução
geral aos eventos. Eventos podem ser quase impossíveis de dominar porque
existem muitos deles. E você só terá que ver se para sua
coisa particular que você quer fazer, há um evento
e, se houver, ótimo, experimente. Aberto à experimentação. Eu posso praticamente o que
vou dizer para o
resto do curso, porque é muito importante apenas
experimentar um monte de coisas. Você sempre tem controle Z. Essa é a grande coisa
sobre programação. Você sempre pode voltar
e dizer, sabe o quê? Não, isso não foi uma boa ideia ou, oh meu Deus, essa
funcionalidade é incrível. Não esperava que isso acontecesse. Então isso é muito legal. Mas apenas por causa de conclusão, estamos realmente vendo, bem, isso realmente funciona?
Vamos ver se isso acontece. Ou se me diz um Minecraft, então eu tenho outra
pausa e
vamos ver se eu acertei
uma entidade com ela. Lá vai você. Eles são
incendiados e um outro tijolo está
sendo subtraído aqui. Então isso é insanamente
legal. Como você pode ver. Ele só funciona. E
é, você sabe, isso é quão legal e interessante os eventos personalizados da parede ou conexão em eventos podem
basicamente estar certos, e isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e ele aprenda sobre o novo, e eu te vejo
na próxima palestra. Então, sim.
87. (de (Intermediate) a and e mapes de pergaminho (de trecho): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta breve palestra
vamos atualizar a forja bem
como atualizar
os mapeamentos. Então, ao longo de
algum tempo, você sabe, novas versões forjadas
sairão. Então você pode ver aqui
na página de download, temos 39 e 0,8 neste
momento, e estamos usando,
acredito, 39.05. Mas vamos verificar
isso em apenas um momento, mas podemos atualizá-lo para a versão
mais recente aqui. E então o mesmo vale
para pergaminho. Na verdade, temos uma
versão completa neste ponto, que é 20, 21, 12 e 19. Então, isso é muito legal. O que podemos fazer é basicamente navegar
até o
arquivo build.gradle aqui. E você pode ver que estamos usando 0,5. Então agora podemos simplesmente colocar um 0.8. Não precisamos
baixar nada. Novamente, basicamente
será feito para nós automaticamente. E então podemos mudar
isso para ser o 2021, 12 e 19, e depois
a versão C aqui, e depois 180, um é claro. E então, para a nossa
versão, quero dizer, neste ponto estamos
bem enol, então isso é tudo isso como
0.1.5, tudo bem. E então vamos salvar isso. E então podemos apenas acertar as
alterações do Gradle de carga aqui, e então vamos deixar
isso acontecer para mim. Demorou apenas três segundos, mas isso é
claro porque eu já fiz isso e todos
os itens já
baixaram antes. Então, para você, provavelmente
levará cerca de um minuto ou dois atrapalhando isso e então tudo deve
ser bem atualizado, atualizado e deve ficar bem. Não deve haver erros aqui. O que pode acontecer é que
se você começar o jogo, uma vez
você
receberá muitas flechas ou, melhor, muitos
avisos dizendo como: Ei, isso não funciona,
isso não funciona, mas não se preocupe. Vamos continuar com isso para
que você possa ver que tudo está funcionando, desde
que você não esteja ficando bem, quero dizer, a compilação falhou ou
, desde que você não esteja recebendo microondas não funcione
, tudo bem. E você pode ver
aqui, por exemplo, que o micróbio
já está começando. E então devemos ficar bem. Aqui estamos nós. Lá vamos nós com
microfone 3908, tudo funcionando
na Grã-Bretanha. Isso é tudo o que
eu queria te mostrar para esta palestra aqui. Eu recomendo quando você
tem uma nova versão disponível. Quero dizer, se você está
assistindo isso
no futuro, é claro que você está, então basicamente
esta versão
aqui então basicamente
esta versão
aqui provavelmente não
será a mais atualizada. E então esta versão para o Forge definitivamente não
será a mais atualizada. É por isso que vinculei as páginas para pergaminho e as páginas para o
download mais uma vez, apenas para que você possa
basicamente levar aquelas onde as versões reais que
você vai precisar, onde quer que isso seja para
esta palestra aqui, espero que você tenha achado isso útil e aprendido algo novo. Vejo você
na próxima palestra. Então, sim.
88. (Antecedência) entidade de bloqueio personalizada (de bloqueio: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra
vamos dar uma
olhada em um
bloco. Entidades. Para entidades de bloco em
geral, existem blocos que têm uma
funcionalidade específica associada a ela. Então, dados extras, por assim dizer. E isso poderia, por exemplo, incluir uma GUI e
coisas assim. Agora, antes de saltarmos para
programar algo, eu realmente queria, bem, basicamente passar por um
pouco da teoria. Para isso,
vamos quebrar a ferramenta de poço que é usada com mais frequência e
isso é, claro, nosso ponto aqui. Então, vamos começar. Então, a ideia geral é que
temos algumas coisas. O número 1 é que temos
uma classe de bloco. Agora já fizemos isso. Temos um, bem, o
cobol blaster para nós. Agora, para nós, será
o botão azul. Sob o fundo azul. Não parece tão bom, então nós o temos, lemos aqui mesmo. Mas as ideias gerais, temos uma
classe de bloco e que tem uma referência a uma classe de entidade
bloqueada. Há uma
classe de entidade de bloco que, é claro vamos criar
em apenas um momento. E isso contém dados e funcionalidades para
um bloco específico. Essa é a ideia geral. Neste bloco, a
classe de entidade é criada. Podemos ter um inventário nele, e
esse pode criar um menu. Agora, a classe do menu é muito interessante porque
a classe do menu, certo? Você pode ver que está
meio separado, certo? Temos uma tela
e uma aula de menu. Agora, o que é muito importante é que a classe de menu
pode, por exemplo, valores
sincronizados
para a entidade para um servidor e cliente. Isso vai
ser muito importante, especialmente na próxima palestra. Então eu
recomendo dar uma
olhada nesta palestra e
na próxima
palestra, mais ou menos ao mesmo tempo, porque vamos ter uma entidade de bloco funcional no final desta
palestra sobre bom, vamos torná-lo cerca de
um bilhão de vezes melhor na próxima palestra
e apenas mais robusto. Então, isso é apenas algo
a ter em mente. Na classe de menu também tem
espaços para o inventário. Então você pode ver que isso basicamente visualiza
isso de uma forma que temos esses
retângulos roxos aqui que estão meio que correlacionados com
os slots aqui. E o que é muito
importante é que o menu onde esses slots estão é completamente independente
dessa imagem aqui. Porque o que você tem que
ter em mente é que quando olhamos para a aula de
tela, certo? Somente este cliente, isso é
literalmente apenas essa imagem. Não posso enfatizar isso mais. Basicamente isso, a classe de tela é praticamente apenas essa imagem. Portanto, independentemente do
que seja essa imagem, os slots podem estar em qualquer lugar
onde quisermos. Então, na verdade, definimos a posição
deles dentro
da classe de menu. Embora em vez disso,
você sabe, o ano da
GUI, eu poderia ter uma
foto do meu rosto, eu poderia ter uma
foto do meu cachorro. Você poderia colocar
o que quiser lá. A funcionalidade ainda
funcionaria. Então isso é muito, muito importante. Agora também exibe
coisas como o progresso. Então esta
seta de progresso aqui, ou quanto combustível
resta no slot de combustível. Basicamente, isso é algo
que pode ser feito com os valores do sincronizador que a classe de menu basicamente
sincroniza para nós. Essa é a
visão geral disso. E às vezes isso pode
ser um pouco confuso. Também direi isso, bem, entidades de
bloco são definitivamente
um tópico avançado. Então, chegamos aos tópicos
avançados neste momento. E neste ponto também
é algo como se você não
sabe tanto Java, neste
momento,
é muito bom. Vai ser muito
difícil ajudá-lo com qualquer coisa que eu basicamente vou
assumir que você sabe, pelo
menos
conhecimento intermediário de Java basicamente. Então eu não vou dizer, Ei, este é um método estático. Você sabe o que é um
método estático, coisas assim. Vou presumir
que você sabe tudo isso. Portanto, esteja ciente disso. Número um. Número dois, também
estarei cobrindo muito
do código que está
disponível para você, incluindo esta folha de truques também
está disponível para você no individualista do
repositório do GitHub e para download. Portanto, não se preocupe lá. Mas vamos mudar
para você inteligente novamente e vamos ver
o que podemos ver. Então, número 1, o que precisamos
é que precisamos de uma nova classe. Precisamos de um novo pacote
em R, bloco pacote, clique com o botão direito do mouse em novo
pacote chamado entidade. Agora, esse é o pacote de
entidades de bloco. E lá precisamos de duas aulas. Um deles será a entidade Volokh de blaster de
cobalto. E então o segundo vai
clicar com o botão direito mouse em Nova classe JAR chamada entidades de rocha de lama. Lá vai você. Portanto, essas duas aulas são necessárias. E para as
entidades de bloco, bem, podemos imediatamente preencher isso com
pelo menos um pouco, e isso será
uma final estática pública, o terceiro registro. Já vimos isso, é claro, tipo de entidade de
bloco e,
mais uma vez , colchetes angulares com
um ponto de interrogação nele. E, em seguida, bloqueie entidades
sublinhadas, que é igual a um registro
diferente que cria registros, entidades de bloco de
pontos. Modelo de curso Mc, esse ID do modelo. E então, é claro, enquanto
um registro existe um método de
registro vazio estático público com um ônibus de evento ou ônibus de evento, que resfria as entidades de bloco que se registram e passam
no ônibus de eventos. E
já podemos imediatamente entrar em nossa aula de mod de curso MC e colocá-lo aqui para que
possamos dizer modo de bloqueio, entidades de
bloqueio se registram com
o ônibus de eventos que eles atrás. E teremos que fazer
isso mais uma vez antes que a palestra termine,
mas não se preocupe. Ainda não vamos
definir o real. Entidade porque antes de
tudo precisamos fazer essa classe. Acredito que podemos fazer
essa aula quase em sua totalidade, exceto por uma coisa, mas isso
vai ficar bem. Então, isso vai fazer
com o seguinte. Isso
estenderá a entidade de bloco e
implementará o provedor de menu. Vamos passar o mouse sobre isso,
implementar os métodos. Portanto, isso implementará o método
get display name
e o método de menu Criar. Então, uma coisa que vou fazer
é eu vou propositalmente, bem fazer com que isso tenha
uma seta aqui, porque eu não
quero esquecer de adicionar o menu Criar aqui. Isso é meio
importante às vezes. Quero dizer, eu não sou
que eu esqueça isso, mas é muito importante
que realmente façamos isso porque há muitas partes
móveis para isso, você sabe, não fazer uma
dessas partes
basicamente faça com que a
entidade de bloco não funcione. E aqui podemos simplesmente retornar um novo componente
de textos de quatro volts último termo. Então, esse só será
o nome de exibição basicamente. Em seguida, passe o mouse sobre este
construtor creed combinando super. E isso também
vai ficar bem. No entanto, o que
vamos fazer aqui é que vamos excluir o primeiro parâmetro e então
você obterá um, bem, um erro aqui,
mas não se preocupe. Porque o que podemos
fazer agora é definir isso em nossas entidades de bloco de
modo. E a maneira como definimos
isso , eu realmente vou
digitar isso, talvez não seja um objeto Registry
final estático público. Será bastante autoexplicativo
do tipo de entidade de bloco, esse tipo de entidade de livro de
blaster de cobalto. Bem, o blaster de cobalto, e isso vai ser igual
a entidades de bloqueio que se registram com o nome blaster
sublinhado de cobalto, isso vai dar certo. E, em seguida, um fornecedor do
seguinte tipo de entidade de bloco ponto-ponto construtor
da entidade de
bloco de blaster de cobalto dois pontos, dois pontos novos. Você pode ver que, em seguida, uma vírgula, então temos que fazer blocos, ponto, blaster, ponto get. Então, após o terceiro, após o primeiro parêntese
de pato, e depois passar um nulo. Então é assim que se
parece bem aqui. Portanto, os blocos que
passamos aqui são basicamente os blocos
associados a essa entidade de livro. Essa é a ideia geral. Então, em vez de ter
o parâmetro aqui, o que podemos fazer é dizer entidades de bloco, que ponto de bloco cobalto
blaster dot get. Agora você pode pensar, bem,
isso não é uma referência circular? Na verdade, não é. Eu faço. Não tenho certeza que goste. É muito louco. Como se houvesse
muitas coisas circulares, por assim dizer, nas entidades de
bloco. Portanto, não se preocupe. Agora vamos começar a
copiar as coisas. A primeira coisa que
copiaremos são basicamente os dois
campos que temos. E esses campos estão no manipulador de pilha de
itens chamado manipulador de itens de tamanho quatro. E esta também é
uma aula anônima que você pode ver porque temos que
colocar o conteúdo alterado aqui,
onde basicamente mudamos. Porque, de outra forma,
teremos alguns problemas com o carregamento e o salvamento
basicamente do inventário. E então temos um
preguiçoso opcional disso, e precisamos deste
por causa da capacidade. Vamos copiar
este aqui também. Portanto, esse será o método de capacidade do
Git. E vou
colocar isso abaixo aqui. Então eles obtêm o método de capacidade. Você pode vê-lo
basicamente diz: Ei, se você sabe que alguém ou algo pergunta sobre
essa entidade de bloco, ela não tem a capacidade de
manipulador de itens, então vamos
devolver o manipulador de itens preguiçoso . Então, certo, este aqui. E vamos
dizer, Claro, pegue isso. Agora, é claro, como
você pode ver claramente, o manipulador de itens preguiçoso
no momento em que não
foi definido.
Como configuramos isso? O que o definimos
no método onload. Então, o que vamos fazer é copiar sobre o estande o método onload e
invalidate caps. Eles podiam ver onload deve ser bastante
autoexplicativo, certo? Quando essa entidade de bloco for carregada, vamos definir
o manipulador de itens preguiçoso como um opcional preguiçoso do nosso manipulador de
itens real aqui. Então essa é a ideia geral. E quando invalidamos os limites, isso acontece quando o servidor desliga coisas assim. Então estamos apenas invalidando
os manipuladores de itens preguiçosos para que não tenhamos vazamentos de
recursos, coisas assim. Bem, então surge a pergunta como salvamos os dados? Bem, salvamos os dados fazendo, substituindo dois métodos. Esse é o método save adicional
e o carregamento. Então você pode ver
que basicamente estou levando o manipulador de itens NMC, percebendo isso para o NVT. Então isso basicamente faz todo
o trabalho pesado para nós. Ele salva todos os slots. O que há nesses slots são
muitos itens nesses slots. Então, tudo isso é feito
para nós lindamente e só precisamos desses
dois métodos aqui. O que é muito importante
é que precisamos, mais
uma vez, substituir isso
na classe anônima. Caso contrário, teremos
alguns problemas com o salvamento
dos dados porque o método
adicional save por qualquer
motivo não é chamado. Toda vez que deixamos o mundo por qualquer motivo ele só é chamado para uma atualização. Não tenho certeza sobre isso, mas apenas certifique-se de
que isso seja feito. E então, por último, mas não menos importante, para os métodos não estáticos, também
terei
o método drops. E este basicamente só faz um
contêiner simples aqui, pegue todos os
itens do
manipulador de itens e, em seguida, apenas diz: Ei, basta soltar todo
o seu conteúdo nesta posição em esse nível. E então vamos ficar bem. Isso será chamado quando destruirmos o bloco real. Então todo o conteúdo é
derramado do, deste bloco real, certo? Então, se você, por exemplo, baú
destruidor
e, claro, todo o
conteúdo do baú cairá no chão. E isso é claro
que também queremos em nosso foguete antes de
continuarmos a fazer coisas aqui, na verdade
vamos mudar
para o vidro ou bloco de cobalto, porque agora o bloco
será mudou também. E isso vai
ser muito interessante porque, em vez
de se estender
da classe de bloco, isso
vai se estender a partir
do bloco de entidade base são importantes. E então você pode ver que
imediatamente você precisa implementar o novo método de entidade de
bloco. Isso é claro que
não se preocupe, porque podemos simplesmente
implementar isso. E isso vai ser
muito fácil para nós, porque o que podemos fazer é, em vez
de retornar null, vamos retornar uma nova entidade de bloco de blaster de
cobalto e passar o EPA tem
e o estado p aqui. E isso é praticamente tudo
o que precisamos fazer para isso. Agora, há
mais algumas coisas que
precisamos fazer, certo? É claro que você pode ver que a
maioria das coisas é para a
forma real do bloco. Mas o que você
tem é que precisamos, e isso é incrivelmente
importante, certo? Temos que substituir o método getter render shape bem aqui. E temos que retornar forma de
renderização um modelo. Porque se não fizermos
isso, nosso modelo
ficará invisível porque esse é apenas o padrão
do bloco de entidade base. Não sei por
que esse é o caso disso. Provavelmente será
algum motivo para isso. Portanto, certifique-se de
que você substitua isso. Caso contrário, seu bloco
ficará invisível. E isso é claro que
não é exatamente o que
queremos , pois vou substituir outros métodos e, na verdade, vou
copiá-los. Esse será
o método onRemove. Isso é exatamente o que eu disse, logo quando chamamos o método
drop aqui. Bem, isso só garante que, hey, quando removemos esse bloco, todo o conteúdo da entidade
do bloco
cairá no chão. Mas isso é ótimo e este é apenas um método muito bom
e não muito louco também. E o método dos EUA bem é
semelhante no sentido de que, quando
clicamos com o botão direito do mouse neste bloqueio, simplesmente
queremos que a entidade
real abra seu inventário ou abra
sua GUI basicamente, certo? Você pode ver aqui
ganchos de rede que abrem a Gui. Então, basicamente
queremos abrir a GUI e certificar-se de que, você sabe, ela está meio
sincronizada através do servidor e do cliente. É por isso que os
ganchos da rede basicamente fazem todo o
trabalho pesado lá para nós. Há mais uma
coisa que queremos, e é que queremos que
o método ticker ou queremos que um método
de tick possa ser acessado
na entidade de bloco de blaster de cobalto. E um método de tick basicamente
é apenas um método chamado de cada tick para uma determinada
entidade de bloco neste caso. E isso nos permitirá adicionar funcionalidades
legais a ele. E nós basicamente vamos
artesanato personalizado, por assim dizer. E para isso precisamos
substituir o método getter
ticker. Vou copiar isso novamente e teremos um erro
simples aqui, mas podemos corrigir isso com muita facilidade. Podemos ver que este é
basicamente o, bem, eu recebo o método ticker
e então chamamos o assistente create ticker e retornamos
a isso com o tipo de entidade rock, vamos passar no blaster
global modo de bloco, ano da entidade de bloco. E então aqui podemos ver
que queremos passar o método de tick da
entidade do bloco de
blaster cobol , que ainda não foi criado. Mas vamos
criar isso agora. Então, esses serão todos esses
métodos estáticos. Esses são quatro métodos. Só vou
copiá-los para que possamos ver o que está
acontecendo aqui, certo? Isso é loucura, não se preocupe. Vamos passar por isso. Portanto, o método tick é o único
método que não é personalizado. Portanto, esses três métodos
são completamente personalizados. Eu mesmo os fiz. O método de tick
em si será o mesmo para
cada entidade de bloco. Você sempre terá acesso
ao nível da posição, ao estado e
à própria entidade de
bloco. E você pode ver que
acabei de fazer alguns métodos auxiliares, basicamente criar o
item só falhará. Os itens vão
extrair um item de 0. Vamos
extraí-lo do Slot 1. E então
vamos apenas definir
um item no slot três. Então você pode ver que
vamos colocar lingotes
de cobalto aqui também. Vamos fazer isso
continuamente. Claro, o
método do item de artesanato só é chamado quando
ambos temos uma receita e não atingimos
o limite de pilha. Vamos dar uma
olhada no limite de pilha porque isso é um
pouco mais fácil. Basicamente
vamos dizer, ei, se a contagem das pilhas
reais aqui for menor que o tamanho da pilha
GetMax, ficaremos bem. Então, desde
que não tenhamos atingido 64 itens no slot de saída, podemos criar continuamente itens que devem ser
bastante autoexplicativos. O método de receita tem. Bem, isso apenas verifica se
temos no slot 0 chamado slivers e que temos
no primeiro slot ou na
inclinação com o índice um, temos cobalto bruto. Se tivermos ambos
lá dentro, então isso é verdade. Espero que isso seja verdade e, em seguida, estaremos
criando o item. Vou dizer isso, esta é uma maneira
muito grosseira de fazer isso. Isso é realmente apenas para mostrar uma vez como
o artesanato real e
coisas assim funcionarão ? Eu recomendo que você possa implementar isso e você pode dar uma olhada nisso
e você pode dizer, bem, isso é realmente
legal e é altamente recomendável. Próxima palestra, vamos
fazer uma receita personalizada, Jason. E então podemos basicamente definir
bem as
receitas de criação dentro de arquivos JSON, o que é muito melhor do que
codificá-los assim. Definitivamente não é uma boa
ideia para fazer isso, certo? Isso é apenas uma péssima ideia. É muito desajeitado, não é bom, é, é codificado. Muitas coisas podem dar errado. Então eu recomendo,
embora isso seja apenas para mostrar uma vez aqui, é uma maneira muito grosseira de fazer as coisas e só
queria deixar isso claro. Agora o problema é que isso é praticamente feito, exceto, claro, o método de
menu Criar aqui. E o mesmo com o bloco. O bloco também é feito para
que possamos fechar o bloco, podemos ainda mais fechar este. Vamos manter a classe de entidade de
bloco aberta um pouco porque é claro que
agora precisamos adicionar
na tela. Então, no nosso pacote de cursos MC. Clique com o botão direito em novo
pacote chamado tela E lá dentro
vamos fazer duas novas, na verdade três novas classes,
cobalto, menu pilastro. E então vamos fazer
a tela de pilastro de parede. E vamos
fazer a classe de
tipos de menu de modo também. E então, qualquer pacote de tela, também
precisamos de outro
pacote chamado slot. E em vez de lá, eu
realmente vou copiar para a última estrela feita
será o modo que você vai ranhura
e o slot de resultado do modo. Vou explicar isso em um
momento em que realmente
vamos usá-los. Mas eu recomendo
também copiá-los. Tudo isso, é claro, está
disponível para você mais uma vez, repositório do
GitHub e para um
indivíduo também. Não se preocupe lá, certo, vamos
começar com o menu
ou menu de blaster de cobalto. E eu vou, isso
vai estender
o menu de contêiner abstrato. Muito importante. Lá vai você. Vou
implementar os métodos ainda válidos aqui. E então também criaremos um
construtor combinando super. Agora, o que
vou fazer é, na verdade copiar a totalidade
do conteúdo desta classe. Recomendo
que você faça o mesmo. E explicaremos
à medida que avançarmos. Então, teremos uma
flecha aqui. Poderemos consertar isso em apenas um momento, sem
preocupações. Então você pode ver que temos dois construtores diferentes aqui, o que é realmente muito
importante porque um dos construtores
será chamado
nos menus mod e no outro construtor será
chamado na entidade de bloco. Agora podemos realmente fazer isso
imediatamente. Então, vamos mudar
para a entidade do blog. E então aqui no método de menu
Criar, vamos criar um
novo menu de gesso ou parafuso quando passar o inventário de ID do
contêiner. E então o último é esse. Lá vai você. E isso é praticamente tudo
o que precisamos passar. Mas agora a classe de
entidade de bloco está completamente concluída e
terminamos com isso. Agora vamos dar outra
olhada no menu aqui. Então, o menu, como já
mencionei anteriormente na
folha de truques da teoria, basicamente, Isso é
responsável pelos slots onde eles estão, onde estão
dispostos, coisas assim. E você pode ver isso aqui. Então podemos ter, basicamente
adicionamos o inventário, adicionamos a barra quente do jogador. Então, esses são apenas
dois métodos que criei rapidamente
porque isso aqui. Portanto, os loops for
geralmente são como dentro
do construtor real. Isso é que, quero dizer,
parece que sou um muito ruim não é tão
bem codificado basicamente. Depois, há outra coisa que é muito
interessante e essa é a pilha de movimentos rápidos aqui. Este método é feito pela DZ 07, 08 créditos vão para
eles por fazer isso. Eu basicamente quero dizer isso, isso é para clicar em turnos dentro deste inventário. Não se preocupe com esse método
. Não olhe para ele. Apenas diga muito
obrigado pelo
pelo 07 que eles podem que
isso seja realmente insano. Eu só o método que poderíamos
passar passou meia
hora para explicar isso. Simplesmente não é necessário. Eu realmente não gosto desse método, mas é claro que ele
precisa ser feito de alguma forma. E é assim
que vai ser. Os campos estáticos também
precisam estar lá. Isso é muito importante.
E aqui no TE, contagem de slots de
inventário, basicamente
temos que colocar a contagem real de
slots. Bem, t0 inventário de arquivos
agora é um inventário B. Portanto, antes de ser
nomeada entidade de mosaico, agora ela é nomeada entidade de bloco. Mas tudo aqui ainda
deve funcionar totalmente bem. E você pode ver que estamos adicionando
quatro slots como você pode ver. Então, estamos basicamente perguntando: Ei, temos capacidade de
manipulador de itens? E se for esse o
caso, vamos adicionar alguns slots legais aqui. Você pode ver que eu tenho um
slot de combustível em um slot de resultado. Eu fiz essas
aulas porque bem, quero dizer que só
faz muito sentido. Basicamente, tenha um slot onde
você só pode inserir combustível e, em seguida, os resultados ABR
ranhura onde você
realmente não pode inserir nada. Basicamente, apenas a
própria máquina pode inserir coisas nela. E eu basicamente tirei
esses dos slots reais. Então você pode digitar, eles podem colocar em turno duas vezes
e depois colocar no slot. E então, se eu fizer isso, você poderá ver o inventário
mundial do Minecraft. E se eu pressionar Control H, você pode ver todos
os diferentes poços, slots que estão disponíveis
aqui, por exemplo. E então, basicamente, temos o
slot de resultados do forno, como você pode ver. Vamos dar uma
olhada neste. E bem, quero dizer, basicamente
peguei
a maioria das coisas aqui são os
resultados, certo? O que é muito importante? É só que este
lugar de 1º de maio tem que ser falso. E então o mesmo para o slot de combustível. Nós basicamente só, bem
perguntar ao forno abstrato, Ei, essa pilha é um combustível? E se for, então vamos
dizer,
claro, você está prestes
a colocá-lo lá dentro. Praticamente tudo o que
havia para ele. Quero dizer, isso é um pouco que
existe para isso. Estes dois slots
recomendam usá-los porque eles são um
pouco mais agradáveis de usar basicamente. Mas, além disso, acredito que a maior parte
do resto é, bem, não muito louca. Só temos uma referência
à entidade de bloco, uma referência ao nível. O método ainda válido
basicamente apenas verifica se o jogador
pode ou não acessar este menu. Então isso seria se você
estiver em um carrinho de mina, você clica com o botão direito do mouse em um forno ou algo assim
e você estivesse muito
longe e, de repente,
a GUI real fecha. Acredito que isso é o que
basicamente facilita isso. Então, vamos entrar na classe
mais menus agora, e vamos adicionar nossas
coisas lá também. Na verdade, agora vou copiar isso porque já vimos
isso muitas vezes. Este é um
registro diferido do tipo de menu, mais
uma vez do ponto de interrogação. E então, quando
definimos o tipo de menu, precisamos de um método de tipo de
menu de registro aqui que tenha apenas uma
fábrica de contêineres do tipo T aqui. E estamos basicamente
registrando isso. Normalmente, isso não
seria muito louco. Todas as coisas consideradas
altamente recomendáveis. Mais uma vez, tudo,
claro, disponível, você não precisa digitar
isso sozinho. Repositório do Github e
individual também. Agora, no construtor de
mod de curso MC, vamos chamar
os tipos de menu modernos dot register com o barramento de eventos. E então tudo aqui
está registrado também. Isso é ótimo. E então basicamente
não precisamos
olhar para este nunca mais, pelo
menos por enquanto. Agora este também não é
feito mais erros. Então, tudo é ótimo. Agora, uma coisa que as pessoas
podem perguntar é, bem, o que faz essa exposição, qual é essa posição aqui? Bem, para isso, eu
realmente vou copiar sobre a textura que vamos
usar em apenas um momento. Isso vai acontecer em ativos, texturas grosseiras
MC
e, em seguida, em Gui. Então, vou copiar isso. Nós terminamos. Esta é a
GUI com jateamento de cobol e eu vou abrir isso. Já vimos isso,
claro, já. Uma ideia geral é que,
bem, 850, certo? Então, nós 18 e 50. Por que esse pixel
aqui é 0000. Se formos 18 para a direita, direita, x 18, então 18 para a
direita e 50 para baixo, acabamos exatamente aqui. Então essa é a ideia geral. Você terá que
contar isso em pixels. Embora, se você usar o Photoshop
ou paint.net ou GIMP, geralmente terá uma ferramenta Selecionar que você pode usar. E então você pode
basicamente selecionar isso e ver o quão grande isso é. Você terá que contá-lo em
pixels não é outra maneira. Às vezes é um
pouco desajeitado, mas
é assim que vai ser. E o resto deve
ser bastante autoexplicativo. Mas o resto é seu 66
e depois para baixo 16 do que outro é 50 para baixo e 66
x e assim por diante e assim por diante. Então é basicamente assim que
isso é definido, certo? E então vamos fazer a
tela durar, mas não menos importante. E mais uma vez, sim, vamos realmente copiar isso. Agora. Este é realmente o, eu acho que o que é, bem o menos complicado. Este é o fluxo de
contêiner abstrato do tipo, antigo menu Glassdoor. Então, é muito
importante que você coloque a classe correta aqui, o menu mestre do cobalto, porque então também
teremos acesso a isso
nesta classe. Então isso é muito importante. Você pode ver que eu tenho a localização do
recurso
da textura em
texturas GUI cobalto, blaster sublaster,
sublinhado GUI PNG, o que
acabamos de ver antes. E este ano, como você pode ver, é basicamente
renderizado aqui. E então usamos
esse método doublet sob esse método pode
ser muito complicado. E, na verdade, entraremos em detalhes mais sobre esse método
na próxima palestra
quando estamos adicionando as barras de progresso e outras coisas, é então nós realmente
temos que pensar, ok, como poderíamos configurando
isso, certo? O que é o x? Qual é o porquê? Qual
é o deslocamento aqui? Qual é a largura disso? Vamos descobrir
esta próxima palestra. Como eu disse, por enquanto, isso aqui só garante
que toda a imagem, então tudo isso, certo, sem o material
à direita aqui, seja basicamente exibido
no jogador. Agora, o que ainda precisamos fazer
na classe de mod do curso MC, também método de configuração muito importante e
recusado, telas de
menu, modo de registro de pontos, tipos de
menu que cobol
blaster, menu dot get. Em seguida, uma
tela de blaster de cobalto cólon, dois pontos novos. Agora isso
não deve gerar erros porque a tela de plasma frio é do tipo menu de
blaster de cobalto, certo? Então, a tela de contêineres do
tipo cobol blaster menu. Então, tudo o que devemos ficar bem
aqui e acreditar ou não, deveria ser isso. Agora, como eu disse, isso é um pouco certo? E essa nem é a forma
final, por assim dizer. Isso nem é a coisa
completa ainda,
mas, por enquanto,
isso é tudo o que precisamos acrescentar. Então, vamos ver se funciona ou se
retorna e Minecraft. Então, vamos ver,
vamos definir o
blaster cobol para baixo e vamos
clicar com o botão direito do mouse e ver. Ok, então isso é muito bom. Você pode ver que, é claro, a GUI foi aberta agora. Todos esses slots aqui funcionam. Agora vamos ver se consigo pegar pedra humilhada e colocá-la aqui. Não posso colocar um ano
e posso colocá-lo aqui. Isso é exatamente o que eu quero. Posso colocar aqui, posso pegar o fígado do meu curso e colocá-lo aqui
porque é um combustível. E assim que eu colocar o porão de
rocha no topo aqui, devemos ser capazes de ver que lingotes de cobalto
estão sendo feitos. E lá vai você,
basicamente todos os carrapatos. Então, vamos basicamente fazer 20 lingotes de cobalto a cada segundo. E então, se eu colocar mais
aqui não vai funcionar. O limite de pilha
foi atingido. Portanto, não
criamos mais, mas vou tirar metade deles. Você pode ver que a outra metade basicamente está sendo criada. Agora, uma coisa que podemos
verificar, basicamente, se eu salvar o mundo
e voltar a ele, então deveríamos ter
salvo os dados. Mas isso é muito
importante, é claro, é uma das coisas em
que precisávamos salvar dados
adicionais e
o método de leitura. Então, vamos ver se isso funciona
ou não, mas estou bastante
confiante de que isso funciona. Agora, vamos
ver que todos os nossos itens ainda estão aqui. E então a mesma coisa
acontece quando eu destruo isso, você pode ver todo o
conteúdo cair aqui. Então, tudo está funcionando
exatamente como queremos. Mas esta é definitivamente uma palestra avançada,
bem , como você pode dizer claramente. É, é. Primeiro de tudo, leva muito tempo e
há muitas coisas que você precisa para
conseguir aqui. Mas, no geral, isso é
muito legal, e as entidades de mosaico são coisas
incríveis que eu posso recomendar. Este é um dos
únicos momentos em que olhar para o
código de baunilha não é tão útil, porque na forragem
temos que fazê-lo de
uma forma
rotunda para basicamente registrar nossas coisas. Mas eu posso
recomendar dar uma olhada nos repositórios do GitHub de mods
populares ou eles fazem suas entidades de bloco,
coisas assim. É altamente recomendável que,
porque sempre há, você pode, número 1, obter alguma
inspiração nisso. E o número dois, se você
realmente está preso, geralmente você tem isso também. É claro que você também tem esse repositório do
GitHub. Todo o código aqui, se
você copiar tudo, isso deve funcionar mesmo que haja muitas
partes, é claro, certo? Temos a
tela inteira, o menu, o bloco tem que mudar um
pouco suave assim. Portanto, definitivamente há
muito nisso, mas no geral, é muito legal. Então eu recomendo vivamente depois de
terminar isso
para ir imediatamente para a próxima
palestra e olhá-los como uma palestra
dupla, por
assim dizer, altamente
recomendado fazer isso. Caso contrário, terminamos
esta palestra aqui. Espero genuinamente que você tenha
achado isso útil. Se alguma coisa não estiver clara, sinta-se à vontade para fazer perguntas
nas perguntas fornecidas e uma. Vou tentar respondê-las
melhor da minha capacidade. Caso contrário, eu
agradeceria muito uma revisão para mu e te vejo na
próxima palestra. Então, sim.
89. (Advanced) Criação tipos de receita personalizados: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos
dar uma
olhada em como você pode adicionar serialização de receitas
personalizadas
à sua entidade de bloco. Então, a ideia geral é
que vamos adicionar
a possibilidade de
criar arquivos JSON, arquivos JSON
personalizados que você pode ler e que basicamente tenham,
bem, as receitas para
suas entidades de bloco. Então, mais uma vez,
copiarei muitas coisas nesta
palestra, mas não se preocupe, Tudo está
disponível para você no repositório
do GitHub e
um indivíduo também, altamente recomendo fazer
um
olhe para eles. E a primeira coisa
que vamos fazer é
fazer a receita. Então, no nosso pacote de cursos MC, clique com o botão direito do mouse em novo
pacote chamado receita E então dentro de lá ou copie sobre as explosões de cobalto ou classe de
receitas, bem como
a classe de receitas modelo. E vamos dar uma olhada neles. Então, nenhum deles deve
ter um erro neles? Eu acredito. Então. Ambos
devem funcionar imediatamente. E vamos apenas
passar, vamos começar
com a receita de jateamento frio. Você pode ver que temos
três campos aqui, um ID de localização do recurso
e os itens recebem saída e um não analista
de itens de receita. E você também pode ver
que ele implementa a interface de receita com
o contêiner de símbolos aqui. Agora, deve ser bastante autoexplicativo
que a saída seja apenas o resultado que
você obterá da receita real. O ID será, bem, o local do recurso em que esse arquivo jason real está abaixo. Os itens da receita serão uma lista de ingredientes ou de itens que são usados para
criar o item específico. Agora vamos ignorar o método
match por um segundo porque esse será o método mais
importante em toda essa classe. Então, vamos
passar pelos outros para montar semelhante
ao item de resultado get
apenas lhe dá a saída. Pode fabricar dimensões. Vamos apenas retornar verdadeiros porque não
temos dimensões. Não estamos em uma grade de três por três
ou algo assim. A ideia, mais uma vez, é
apenas o ID da localização do recurso. E temos um
serializador e um tipo. Agora, essas são classes estáticas dentro do
cobalto plus ou copo de receita. E você pode ver que o tipo tem
apenas uma instância e é apenas uma ideia
Jacobo blasting,
e, em seguida, semelhante no serializador, também
temos uma instância
e o ID aqui. É muito importante que
este e este, mas isso basicamente um
tipo aqui determina qual o nome do seu tipo
no arquivo JSON deve ser. Mas veremos isso
em apenas um momento. Agora, os zeros, ele tem mais
alguns métodos. Vamos, em primeiro lugar,
ir para o fundo aqui. E você pode ver isso também, especialmente esses
dois métodos que basicamente retornam a classe
do serializador de receitas. E isso é uma coisa
louca da classe. Não tenho
100% de certeza
do que a loucura
está acontecendo aqui. Só vamos precisar disso. Então, caso contrário, não podemos
devolver a classe corretamente se não tivermos
esse material maluco de invólucro. Como eu disse,
não tenho 100% de certeza do que eles se tratam. Vamos
deixar como está, e vamos ficar
bem com a gente estar aqui. Agora a ideia,
é claro, é apenas mais uma vez, o ID real aqui,
a ocasião do recurso, o nome do registro é apenas
a instância em si, onde basicamente
retornamos a instância em si. E então temos os
três métodos de Jason, da rede e da rede. Agora, esses são
incrivelmente importantes. O método from JSON basicamente determina como o Jason
é ordenado basicamente. Assim, podemos ver que estamos
no começo fazendo
um conjunto de itens chamado saída. E estamos basicamente
lendo isso de um membro chamado
saída no arquivo JSON. Mais uma vez, veremos o arquivo
JSON em apenas um momento, mas isso é apenas algo que
vamos ler. E depois vamos
ler os ingredientes, que será uma lista. Aqui fazemos uma lista não nula. E então basicamente colocando todos os ingredientes
nesta lista. E então criando uma nova receita de
explosão de cobol da rede. E os dois métodos de rede também
são interessantes. Em vez de usar
o objeto JSON, teremos realmente um buffer de
bytes amigável ou por buffer. E isso é basicamente
apenas para que a rede possa comunicar o
cliente e o servidor. O que é importante aqui é
que quando estamos escrevendo coisas na rede e
lendo coisas da rede, ela tem que corresponder exatamente. O que isso significa? Bem, você pode ver
que quando estamos escrevendo coisas, em primeiro lugar, estamos escrevendo o tamanho
da lista de ingredientes. Então estamos escrevendo
cada ingrediente. E então, no final, estamos lendo a pilha
de itens do resultado das receitas, ok? E é exatamente
assim que a lemos. Primeiro, estamos lendo o tamanho aqui com read int. Então estamos
lendo os ingredientes. E então, no
final, estamos lendo a
saída aqui. Isso é muito importante
que isso tenha que corresponder. Caso contrário, você receberá um erro, não no
ambiente de desenvolvimento, mas quando estiver no servidor, como quando você está
tentando se conectar basicamente a um mundo normal fora
do desenvolvimento ambiente, você vai receber um
erro e não
vai funcionar para
garantir que isso corresponda se você quiser
ir para outras coisas. Porque, claro, mais uma vez,
começamos a brincar. Agora é uma espécie de tempo sério de conhecimento
Java. Se você quiser
mudar isso, certo, se você fosse, por exemplo,
dizer, Ei, eu realmente tenho, não apenas duas entradas
terão como quatro entradas mudarão
o tamanho aqui, certo? Para fazer um monte de coisas, eu realmente tenho
diferentes tipos de saída que eu queria
dependendo de certas coisas. Bem, ou você faz
uma nova receita para isso. Ou se você quiser ter tudo
isso em uma receita, você também pode fazer uma lista
de saídas em teoria, escolher entre elas aleatoriamente,
coisas assim. É tudo sobre agora realmente ter um entendimento muito
sólido porque só
vai ser muito difícil, caso contrário, fazer coisas
realmente personalizadas. Agora vamos chegar
ao método de correspondências, que é como eu disse, o
mais importante porque isso basicamente determina
a funcionalidade ou isso a implementação de
como sua receita é avaliado. Assim, o que está dentro
do recipiente corresponde a
uma receita específica? Como isso funciona? Bem, antes de tudo, estamos
perguntando se os itens da 0ª receita, então o primeiro item da nossa lista de
receitas que estamos lendo
do arquivo adjacente, é que isso corresponde
ao item dentro
do contêiner com
índice 1, y índice 1? Bem, lembre-se porque o índice 0 é na verdade uma hora, você vai ranhura. Portanto, temos que
pegar o índice um aqui. E então, se isso corresponder,
então estamos apenas retornando se o
outro ele combina ou não também. E então isso, claro,
retornaria verdade. Caso contrário, ele retornaria
false. Isso é muito importante. Este é basicamente o pedaço
difícil do seu ano de receita personalizado. E mais uma vez, se você tem coisas
mais complicadas, se você tiver mais, se você
tiver mais ingredientes, se você tiver mais slots, você só precisa
adicionar coisas a ele, mudar coisas nele, basicamente
mude-o continuamente. Mais uma vez,
conhecimento, terminologia em Java. Vou continuar dizendo isso. Pesquisa, especialmente
agora
na seção avançada,
estamos basicamente concluídos. Então isso é, isso tem
que ser feito e sim, essa é a ideia geral. Então, toda a lógica de criação, a lógica de correspondência entra aqui, e essa é, na verdade,
a classe de explosão ou receita. E então vamos dar uma
olhada nas receitas do modo. Podemos ver que temos
um registro diferente de serializadores de receitas aqui. E então apenas um serializador de
receitas para o
gesso cobol ali mesmo. E também estamos nos
certificando de que registramos um tipo quando chamamos
esse método de registro. Portanto, esse
método de registro, é claro, tem que ser chamado
mais uma vez em nossa
aula de mod de curso MC aqui mesmo para o modo receitas de ponto
registrar-se com o barramento de eventos. E uma vez que isso seja feito sobre
essas classes estão realmente bem e já pudemos
ler nos arquivos JSON. Mas é claro que agora não
teremos nenhum, não
estamos fazendo nada, certo? Então, na verdade, precisamos
mudar a entidade de cobalto mais três blocos agora para que possamos fechar isso e entrar
na entidade aqui. E, na verdade, vamos fazer algumas grandes mudanças aqui. Então, o que
eu vou fazer é copiar sobre todas as coisas
diferentes que
vamos precisar. E vamos
começar no topo. Porque o que
precisamos é que precisaremos de alguns dados de contêiner. Então, vou copiar isso. Vou fazer algo assim e depois vamos
copiar isso aqui. Assim, você pode ver que temos alguns contêiner finais
protegidos chamados
dados. E então também temos para
campos que são o progresso, o progresso máximo, o tempo de combustível e o tempo máximo de combustível. E antes de tudo, vamos atribuir isso dentro
do construtor, também
copiaremos isso sobre tudo o que aqui está, é
claro, mais uma vez, disponível para você no repositório
do GitHub ou em um
individual também. E você pode ver que
os dados do contêiner também
são, nesse caso um método anônimo com a
substituição do GET o conjunto
e o método getCount. E estamos sempre
retornando o progresso, o tempo máximo de combustível do progresso
e o tempo máximo de combustível aqui. Porque esses quatro campos
diferentes que
queremos realmente
sincronizar por meio do menu. É por isso que ele é chamado de dados
do contêiner. O menu de contêiner
basicamente sincronizará esses quatro campos para nós através do cliente e
do servidor para que ambos
tenham o mesmo valor. Por causa, claro, por
exemplo, Southern, algo como o progresso
e o progresso do Ymax. Bem, se você tiver os dois, podemos de repente
mostrar uma seta de progresso. Se tivermos o tempo de combustível
e o tempo máximo de campo, de repente podemos mostrar
quanto combustível resta dentro do seu inventário,
coisas assim. E é por isso que é tão incrivelmente importante
ter isso. E isso é realmente bastante simples de usar quando
você souber como usá-lo. Então o que vamos
fazer é
entrar na receita de vidro de cobalto. Vamos apenas
adicionar os dados aqui. Então, esses dados, agora isso é claro que vai
lançar um erro, certo? Então, temos que
entrar no
menu do blaster e podemos dizer:
Ok, vamos
mudar algumas coisas aqui. E o que estamos mudando não é o primeiro construtor,
mas o segundo. Vamos adicionar os dados ou dados do
contêiner aqui. E então este
lançará um erro. E vamos dizer que
não se preocupe. Porque o que podemos
fazer é criar novos
dados
de contêiner simples com comprimento 4. Porque mais uma vez, é
claro que este é o comprimento quatro. E então só vamos
fazer é que também vamos fazer um
campo privado para isso. Vamos usar isso
em dois métodos mais tarde ou na verdade, acho que três dados de
métodos, certo? E então vamos
dizer abaixo desse nível, quando você
vai dizer que esses
dados de ponto são iguais aos dados. Bem, basicamente
atribuindo isso e agora a maneira como
vamos fazer isso, que
isso também sincronize é que vamos dizer
adicionar slot de dados. Então slots, na verdade, slots de dados. E então vamos passar
os dados aqui. Mas é literalmente isso. Tudo o que precisamos fazer. Agora
isso está sendo sincronizado. E então vamos ter quatro
novos métodos em que nosso Ele está criando que tem método de
combustível que obtém progresso
dimensionado, e ele é dimensionado,
você vai progredir. Agora, isso é apenas um
monte de matemática basicamente em segundo plano
é garantir que bem, ok, quanto progresso
temos, nosso progresso
máximo, máximo temos qual é a largura da
seta neste caso, certo, que queremos exibir. E então estamos apenas nos
certificando de que
tudo isso seja calculado corretamente. Isso é basicamente tudo
o que isso faz. No entanto. Você não deve se
preocupar muito com isso. Tenho certeza de que você
será capaz descobrir isso se
você der uma olhada nele por um tempo
sem palavras lá. Isso é, na verdade, todas
as coisas que precisamos fazer no menu aqui. Agora, na verdade, precisamos fazer muito mais coisas
na entidade de bloco 4. Estamos passando para a tela. Então, mais uma vez copiarei
sobre um monte de coisas. Número um, precisamos adicionar coisas
aos métodos
de salvamento e carregamento. Porque o que queremos fazer é
salvar o progresso do filtro
Minimax lendo. Então, carregá-lo. Agora isso é, na verdade,
vamos fazer nb t então e VT. VT e
NVT, não se preocupe lá. Então eles vão. Então isso é, bem, coisas que queremos fazer definitivamente. Por causa, claro, quando
carregamos do mundo, como quando salvamos
um mundo, certo? E então, quando você
se juntar de volta, bem, queremos que o
tempo de combustível seja
o mesmo, o progresso seja o
mesmo, coisas assim. É por isso que o salvamos e
depois o lemos novamente. Então essa é basicamente
a ideia geral aqui. Então o que vamos fazer é que eu sou basicamente tudo
, incluindo o método tick. Vou, bem,
quero dizer copiar. Então isso vai
ser muito código, mas vamos
passar por método por método. Agora, eu não acredito que devemos ter flechas
agora não temos. Então, número um, temos um método não estático e esse é o método consumir
menos. Você pode ver que eu estou
basicamente verificando, ei, eu
tenho algo
dentro do nosso slot de combustível? Porque mais uma vez,
lembre-se do slot 0, certo? Como é o slot de combustível para nós? Então, se isso não estiver vazio, então vamos ter
o tempo de queima dele. Estamos extraindo. Então, vamos extrair
exatamente um desses itens. Vamos usar a fundição do tipo de
receita. Porque, bem, para fundir
basicamente todos os tempos de queima são fornecidos,
poupando-o aqui. E então também estamos economizando
o tempo máximo de combustível também. E se isso for feito,
podemos encontrar um método de carrapato. Agora é toda nossa lógica. Agora, o que é toda
essa loucura? Bem, antes de
tudo, estamos perguntando, esta entidade do livro
está
consumindo poucos? Este é um método personalizado
que eu fiz aqui. E isso é basicamente
verifica se
o tempo de combustível está ou não acima de 0 é claro, se o tempo de combustível estiver acima de 0, então sabemos que
ainda estamos tendo algum tempo onde o combustível está
passando. Certo, justo o suficiente. Então, enquanto esse for o caso, então o que vamos fazer
é diminuir o tempo de combustível que
resta lá, certo? Então, basicamente,
vamos diminuir
a chama que está sendo exibida e também quanto
tempo restou basicamente. E mais uma vez, temos o método de
receita
has que agora mudou. Você pode ver este aqui é agora o método de receita tem. E isso funciona um
pouco diferente. Então, basicamente, agora estamos
recebendo a receita ou o tipo de
receita hobo blaster com um inventário. Então, aqui estamos apenas fazendo inventário de
símbolos que podemos facilmente ou mais facilmente basicamente passar, porque
isso é, naturalmente, de tipo, inventário
simples ou
contêiner simples em vez de cima, estamos apenas passando tudo
isso e estamos nos certificando, ei, faz isso, isso é, na verdade, está presente é uma correspondência para o inventário
que passamos. Então, nossas coisas de GUI
que estão lá, que correspondem a qualquer
receita que seja do
tipo receita de explosão de cobalto que é basicamente o que
isso aqui rastreia. Se estiver presente, então
teremos um verdadeiro aqui. E então procuramos outras
duas coisas. Pode
inserir quantidade no slot de saída e pode inserir o item
no slot de saída. São apenas dois muito
fáceis de entender. Métodos são basicamente
apenas dizendo:
Ei, pegue o terceiro item. Se for o mesmo o item de saída,
vamos dizer, ok, ou se estiver vazio, também
ficaremos bem porque podemos simplesmente
colocar a saída. E então também este que
basicamente já vimos , certo, pode
inserir quantidade no slot de saída, basicamente apenas verifica,
o tamanho Max Stack ainda é? Isso é maior do que
a contagem real? É? Se, de repente,
a contagem chegar exatamente ao tamanho da pilha máxima, não
podemos mais inserir. Então, toda essa expressão booleana
inteira
fica falsa. Mas se ele tiver receita é verdade, vamos entrar nesta provação
buraca e todo
esse áudio. Bem, como muitas
coisas que você pode ver tem combustível e combustível
é solicitado antes de tudo, certo, então, se houver algum
combustível no slot de combustível, será bastante
autoexplicativo. E então, se não estamos consumindo combustível, temos que
consumir combustível primeiro. E também definiremos
a alteração aqui. Porque, mais uma vez,
temos que definir alterado,
caso contrário, os dados não o
salvarão. Isso é muito importante.
É por isso que o conjunto foi alterado três
vezes nesse método,
caso contrário, ele
não funcionará corretamente. E então aqui, se
estamos consumindo combustível, então isso mais uma vez,
está apenas verificando, hey, estamos realmente
consumindo combustível? Se estivermos, vamos, então podemos aumentar o progresso do
item que está sendo criado. Mais uma vez, cada
tick que estamos aumentando o progresso que
estamos vendendo muda. Porque, mais uma vez, o
empréstimo da mudança tem que ser o caso
porque toda vez que aumentamos o progresso, queríamos salvar o progresso novamente. Então isso é muito importante. Então. Assim que o progresso estiver acima do
progresso máximo aqui, vamos
criar o item. Então isso é muito parecido. Mais uma vez, estamos apenas agora verificando se o
progresso finalmente lá. E se for, então
vamos criar o item. E você pode ver que a elaboração
do item é muito semelhante. Ainda temos a partida aqui. Estamos vendo este presente? Se for, mais terá
o seguinte. Vamos extrair
o item do primeiro ponto. Vamos extrair
o Adam do slot dois, e vamos definir
a pilha no slot 3 para os resultados reais que
lemos na receita. E então aumentá-lo
basicamente por um neste caso. Então, neste caso, também
o é codificado. É claro que você também pode adicionar sua variável de
contagem de receitas personalizada. E então você poderia levar aquele lá ou
algo assim. Então isso também funcionaria. E então também note aqui que recentemente
foram o
progresso aqui, que recentemente avançaram para 0. Porque, de outra forma,
é claro, vamos continuamente depois de
novo e de novo,
o que, claro, não
queremos. E também estamos recentemente o
progresso se não tivermos nenhuma receita presente simplesmente
por causa do fato de que, bem, mais uma vez, se
tirarmos a receita e então todo o progresso
ficaria lá. Isso não é exatamente o que queremos. E também definindo a mudança
lá também, certo? Então, é bastante. Eu recomendo
passar por isso no seu
próprio tempo também. Dando uma olhada nisso, o método de carrapato
aqui é definitivamente, eu sinto que, pessoalmente, é um método muito bem feito
neste caso, certo? É um código muito, muito limpo. Quero dizer, pelo menos tão alto quanto
eu consegui que fosse quase lida como se você pudesse ler
uma taxa de texto é como Ok. Como receita nesta
entidade tem combustível e sal de combustível e
não está consumindo combustível. Este, você pode
até mesmo estar mudando a nota aqui também e, em seguida, ter um
campo não está consumindo assim. Então é um pouco mais fácil de ler, mas esta é uma boa ideia e um bom
exemplo de como você pode basicamente
configurar algo e que é capaz de
ler foi, claro, todos esses coisas, certo? Eu poderia colocar tudo isso aqui
em vez do
método de receita, eu poderia colocar este, eu poderia colocar isso aqui,
essa expressão booleana. Posso colocar isso aqui. Em vez de ter a quantidade de
pode inserir no slot de saída, eu
poderia colocar isso lá. Mas a questão é que se
você der uma olhada
nisso, vai levar
pelo menos como
uns bons cinco segundos para ser como, como isso está
fazendo? Ok, vamos pegar
o item do slot 3 e certificar-se de
que é exatamente o
mesmo que o externo e ou
certificando-se de que o item está esgoto
vazio basicamente verificando se podemos ou não inserir agora no slot de saída, ok? Mas você pode ver que
faz muito mais sentido
descrevê-lo em um método muito bem nomeado em vez de apenas
colocá-lo lá. Então, isso é apenas um lado rápido para um pouco de material de
programação limpo, coisas código
limpo,
mas isso é
praticamente toda a entidade de
bloco feita. Então isso agora funcionaria. Agora, a última coisa
que
precisamos fazer é adicionar coisas
à tela. Agora, isso eu também vou copiar
e vou explicar, isso vai ser,
bem, suportar comigo aqui. Então você pode ver, eu estou
basicamente perguntando ao menu, Ei, nosso recrafting, este é o método que
tínhamos aqui, certo? E então tem poucos métodos devem ser bastante
autoexplicativos. Esses são os métodos
basicamente obtendo dos dados e, em seguida, apenas
certificando-se de que, ei, o progresso da criação está
aumentando ou é mais de 0? E então aqui o combustível
não é superior a 0 também. Mas essa é a ideia
geral aqui. E então, uma vez que a qualidade
blitz aqui, e então estamos entrando em
algumas coisas loucas porque agora, de repente, temos alguns
valores loucos Bem aqui temos x mais 8422, o deslocamento. O que é, o que é toda
essa loucura? Certo, vamos
passar por esse pedaço por peça. Portanto, temos um valor x e y. Agora, o valor x e y determinaram onde você
começa a desenhar alguma coisa. Então, o que isso
significa? O que quer dizer com onde começamos a
desenhar alguma coisa? Bem, x e y neste caso, basicamente sempre seja
o canto superior esquerdo da GUI. Vá aqui. E então, se pensarmos sobre isso, mas 84 para a direita e 22 para baixo, vamos
84 para a direita e 22 para baixo e depois
acabamos aqui. Agora eu só sei
disso no momento. Mais uma vez, você
precisa pegar photoshop, Paint.NET e
se certificar de que você se alinha. Isso basicamente
contará os pixels. Não há outra maneira de contornar isso, mas começamos a desenhar aqui. Certo, o que
devemos desenhar? Bem, devemos
desenhar essa flecha. Certo, isso é interessante.
Como desenhamos isso? Bem, em primeiro lugar,
o deslocamento agora é o que estamos querendo desenhar? Então, queremos desenhar começando
aqui mal, ok? Fizemos isso.
Qual é o deslocamento? O deslocamento que você pode ver é um 17614 para um 176 é
realmente aqui, e 14 está aqui, no entanto. Agora ele meio que vem
junto, certo? Queremos desenhar essa
seta começando aqui. Certo, isso faz sentido. Agora, quais são os
dois últimos valores para os dois
últimos valores é a altura e a largura da imagem que
queremos desenhar. Outra
coisa realmente legal vem, porque estamos fazendo o progresso da
escala aqui. O que acontece é que,
à medida que isso aumenta o, aumentamos a largura dessa
seta que está sendo desenhada. Então essa é a coisa
muito legal. Então, se eu pudesse
colocar em 2006 e , em seguida, toda a área
estaria sempre presente. Mas como estamos sincronizando com
o progresso da escala aqui, a largura que está
sendo mostrada aumenta. Essa é a ideia geral. Eu recomendo mais uma vez, brincando com os números
aqui, porque caso contrário, os velhos de sangue são muito complicados de realmente
entender em algum momento, eu ainda tenho que brincar
com eles um um pouco. É apenas o que é. E então, para o combustível, admito que
basicamente acabei de tirar o material de combustível
do forno real porque você tem que adicionar o progresso máximo do campo aqui e depois subtrair sua balança
progride três vezes, uma vez para a altura, o que
deve fazer sentido, certo? Porque agora estamos basicamente
subtraindo a altura aqui, estamos basicamente dizendo que
estamos, estamos começando aqui
e depois subtraindo lá em
baixo, coisas assim. É apenas loucura. Eu só recomendo muito. Mais uma vez, dando uma olhada aqui, você pode definitivamente dar uma
olhada em exemplos de baunilha disso. Caso contrário,
trata-se apenas de experimentação. Então, ainda precisamos de uma receita. Então, em nossa pasta de dados, receitas do curso
MC, vou copiar sobre
a picareta cobol do cobalto blaster. E você pode ver
o que isso faz é basicamente nós temos
dois ingredientes, são tipo é MC course
cobol plástico, e temos a picareta de ouro
e o cobalto em boas condições. E temos que colocar,
nesta ordem, e então a saída será um porco de cobalto. Então, isso realmente
soa bem legal. E como eu disse, agora
você pode fazer quantas receitas diferentes quiser. Uma das limitações, digamos que com
isso é que Bem, sempre vai
levar o mesmo tempo. Bem, você pode, é
claro que também fazer é adicionar o progresso máximo
ao arquivo JSON. Você só precisa mudar o
serializador um pouco e , basicamente, adicionar isso
também. Tudo isso funciona. Isso é apenas uma
questão de, basicamente, bem ajustar
as coisas um pouco e mudar algumas
coisas ao redor. Mas agora vamos ver se funciona
ou nos encontra no Minecraft. Então, vamos primeiro definir
o vidro de cobalto real ou para baixo e tudo
parece ainda estar funcionando. Ainda podemos colocar um pouco. Vamos agora ver a escolha de ouro X
no topo e depois um cobalto
Inglaterra na parte inferior. E lá vamos nós. O progresso começou. Agora criamos um
machado picareta que é muito legal. E o que você
será capaz de ver é que se eu colocar outro, nada acontecerá
porque, claro, vamos escolher eixos não empilhar. Portanto, eu tenho que
tirar isso e
só então vamos criar novamente. Você pode ver que o combustível é, vamos constantemente cair. Então, está constantemente
assumindo o combustível. E o que você
também será capaz ver é que se eu, por exemplo, agora sair do mundo
novamente e eu voltar, você verá que o
combustível realmente
permaneceu o mesmo nível como faria com, por exemplo, um bloco ou um
forno ou algo assim. Então isso é muito legal. Então eu posso dar uma olhada
e lá vai você. Um combustível progredirá
é o mesmo. E, mais uma vez, agora
posso simplesmente colocar isso porque
ainda temos combustível sobrando e ainda
seremos capazes de
criá-los o tempo que quisermos. E os fígados do curso também
funcionariam a propósito, tudo aqui funcionando exatamente
como gostaríamos. E agora isso, você tem que
admitir que é muito
legal, não é? Então, mais uma vez, isso começa
a ficar muito avançado. Então eu recomendo, mais
uma vez, tomar
nosso tempo com isso, os dois métodos, certo, com a entidade de bloco e a serialização da receita do cliente
aqui é um pouco. Mas, além de
algumas outras coisas, esta é provavelmente uma das coisas
mais complexas
que realmente podemos fazer. Quero dizer, a geração mundial,
eu diria, provavelmente
é um pouco
mais complicada só porque às vezes
pode ser assim. Mas, no geral, acho que
isso é muito legal. Você tem um bom
exemplo aqui. Leia todo o código
mais uma vez disponível para você
no repositório do GitHub e para
um indivíduo também. Então, dê uma olhada, copia a si mesmo, brinque com os
números um pouco. E espero
que você possa
ter uma ideia de como tudo
isso funciona, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado isso
útil e aprenda algo novo e eu te vejo
na próxima palestra. Então, sim.
90. Madeira personalizada (Advanced) (de madeira: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra,
vamos adicionar madeira
personalizada ao Minecraft. Portanto, mesmo que este
seja um tópico avançado, definitivamente será
um pouco mais fácil do que as entidades de bloco e a serialização de receitas do
cliente. Então pensei que basicamente
vamos
adicionar uma ou duas palestras
pouco mais fáceis aqui antes de saltarmos para a geração mundial,
porque isso a geração mundial,
porque isso
vai ser um todo,
outro animal. Então, para o nosso costume, precisamos de uma classe de
bloco personalizado na verdade,
então, em nosso
pacote personalizado, clique com o botão direito do mouse em
nova classe Java chamada mod lambda irá girar o bloco Hitler, um nome longo, mas isso o que vai ser
e isso vai
estender a classe de bloco de
pilares girados. E vamos passar o mouse sobre esse construtor de concreto que combina super nos irrita. Podemos clicar
nele, pressionar Shift F6
e, em seguida, cujas propriedades
aqui para o nome. E vou copiar
os três métodos que
precisamos substituir. Ou seja, o
método is inflamável é retornado verdadeiro. Eles têm necessidade de inflamabilidade para retornar cinco e eles
se espalham fogo. Ele também precisa retornar cinco. Agora, por que estamos fazendo isso? Bem, porque todos os
blocos de pilares
girados que
temos, basicamente vamos ser
a madeira, a tira seria o
tronco e o tronco da tira. Todos eles estão bem, eles devem ser inflamáveis. No entanto, por padrão,
eles não são. Não tenho 100% de
certeza por que esse é o caso. E também poderíamos fazer aulas
anônimas
para cada uma delas, mas isso só
vai desordenar a totalidade da nossa classe
mais blocos. Então, para esses, eu escolho basicamente, bem, o que isso em uma
classe de bloco ou ambas as tábuas. E depois, em uma
palestra posterior, as folhas, vamos realmente fazer
isso em aulas anônimas. Mas vamos ver
isso em apenas um
momento em que nossa classe de blocos de motor, vamos lá, vamos copiar
sobre o blaster cobol. E vamos
fazer isso o log de
sublinhado de flor de
sublinhado de cereja . E então a mesma coisa, leia seu log de
sublinhado de flor de cerejeira. E então este é um bloco de
pilar girado MOD ou mais inflamável
. Eles atrás, este realmente copiará não um
material, mas um bloco. Então isso vai
ser blocos ponto OK, logs de
sublinhado, então
registre que você vá. E então
teremos oclusão aqui e o resto
vai ficar bem. Então, isso é
praticamente o que precisamos. E então precisamos copiar
isso quatro vezes para que
tenhamos cinco
instâncias diferentes aqui. O segundo será que
a flor de cerejeira iria e, em seguida,
aqui no nome também, é muito importante que
você mude os nomes. E então aqui,
basicamente, copiamos
da madeira de carvalho em vez
do glog. Isso não deveria fazer
muita diferença, mas eu sou só, você sabe,
eu ainda gosto de fazer isso. Então, temos a tira
sublinhada log de flor de cerejeira. Então, esta será a faixa
sob o bloqueio do botão do switcher. E então aqui, isso é claro que também será copiado
do roteiro. Ok, deve aplaudir o ego. E então esta será
a estrita flor de
cerejeira sublinhada, sublinhado madeira. E isso também é claro, despojado Cherry Blossom, eles
fariam atrás. E então, por último, mas não
menos importante aqui, ele copia da madeira de carvalho despojado. Agora este aqui é apenas tábuas de flor de
cerejeira. Agora é importante que sejam
tábuas em liberal. E esse é qual
bloco pode ser esse? Bem, se não houver nenhum bloco
normal na verdade. E então o que
vamos fazer é formatar isso um
pouco diferente. E isso vai
, claro, pegar os blocos de tábuas de aviões. E depois do segundo
parâmetro, na verdade, o que as mulheres fazem é que
queremos colocar
um suporte encaracolado e, em seguida, basta apertar enter. Vou
copiá-lo novamente. Então, esses são apenas
os três métodos que vamos
precisar de um escaneável, obter inflamabilidade
e propagação de fogo. E veja que os números aqui, somos um
pouco diferentes. Portanto, esse também é um
dos motivos pelos quais não
podemos usar esse bloco. Este foi outro que
vamos ver em apenas um momento. Essa é a ideia geral. E então todos os nossos blocos
estão realmente registrados. Então isso é muito legal. Tudo considerado, certo, vamos adicionar
mais um método ao bloco de
pilares girado inflamável
MOD. E isso vai ser
este aqui. Então, eu só vou
carregar isso. Isso é claro, tudo
disponível para você no repositório
do GitHub e para
um indivíduo também. E esta é a boa ferramenta, método de estado
modificado. Então, basicamente, a ideia
é que estamos verificando se isso foi ou não
clicado com o botão direito com um machado. Se fosse, então o que vamos fazer é basicamente
vamos dizer, ei, se este é um registro de flor de cerejeira, vamos transformar
isso em um blog de strip. Caso contrário, se for uma perda, então vamos
transformá-lo em madeira de flor de cerejeira. Essa é a ideia geral aqui. E então estamos apenas nos
certificando de que o eixo permaneça o mesmo neste
momento, não
podemos, não vamos apenas fazer
o estado
de bloco padrão e também enviar o acesso
real também. Essa é a essência geral aqui. Se você tiver muitos
registros diferentes,
então, em teoria,
também sempre teria que adicionar
essas instruções if. Você também pode fazer isso
como no item ACS. Então, se você realmente milimoles
por clique neste acidente, você pode ver que há um bloco
para bloquear o mapa aqui. Eu recomendo que você faça algo
assim também. Se você tem uma
quantidade insana de blocos diferentes, registros e basicamente
você gostaria de ter despojado Isso faz muito sentido. Caso contrário, isso
será totalmente viável
agora para a
parte favorita de todos dos arquivos JSON. Eles estão mais uma vez, é claro, todos disponíveis para você
no repositório de laboratório ou em um
indivíduo também. Só vou
copiá-los. Agora, no geral, eles
não são tão interessantes. Claro, para todos os blocos de filtro
girados, temos um eixo aqui
como você pode ver. E então, basicamente,
apenas aponta para modelos
diferentes e
gira o bloco ao redor. Isso é tudo o que há para isso. Na verdade, são todas as coisas
interessantes ali mesmo. E vamos também adicionar a
tradução porque senão eu
possivelmente esquecerei,
o que, claro,
não queremos aqui. Apenas adicionando esses logs, as tábuas também seriam as
variantes do script. Os modelos para os
blocos são, bem, um pouco, enquanto,
há mais alguns, eles não são muitos. Temos a madeira, a palavra normal, as
despojadas também. Então, vamos copiá-los também para
a pasta de blocos. Sete deles no total. Eles basicamente
têm pais diferentes, mas sempre têm
as mesmas texturas. Então, no final, esta é apenas a parte superior do bloco
real para o log. E então os lados são
basicamente a casca ao redor dele. Para os modelos de itens, temos apenas cinco modelos de
itens, é claro. Eles são e são exatamente como
as coisas mais básicas de todos os tempos. Então, todos eles
se parecem com esse estado, todos apontam o arquivo de modelo de
bloco normal. E então, claro, por
último, mas não menos importante, as texturas
também. Lá vai você. Essas também são cinco texturas. E depois de
adicionarmos tudo isso, há mais uma
coisa interessante que queremos adicionar. E isso será se você na pasta Minecraft, tags, blocos, e então eu
vou simplesmente copiar isso. Estes são os registros e
os registros que gravam. Na verdade, veremos
que teríamos que adicionar outro aqui. Como você pode ver,
isso realmente aponta para
a tag de logs de
flor de cerejeira do curso. E também queremos adicionar uma
tag personalizada aqui. Então, esses serão
os blogs de
flor de cerejeira também
copiam isso. Neste ponto, vimos
isso muitas vezes. E eu só quero adicionar basicamente todos os nossos registros lá. Esta é a palavra e as variantes
descritivas também. Se você adicioná-lo aos
troncos dessa queima, isso basicamente permitirá que
você coloque isso dentro da ranhura de combustível
do forno
também para que eles
possam basicamente queimar. E essa é a ideia
geral aqui. E nos logs, quando
precisamos, se adicionarmos as folhas mais tarde, então o contrato de arrendamento não decairá quando estiverem perto de
qualquer um desses blocos, e isso é praticamente
tudo o que precisamos fazer. Então, vamos ver se funciona. Ou na França como um microondas pode ver toda a madeira foi adicionada
com sucesso
ao jogo e parece absolutamente incrível. Então você pode ver, eu posso
configurá-lo e
vamos ver essas variantes
também. Lá vai você. E, e também os troncos, em vez das tábuas, eu acho. Então, se eu clicar com o botão direito do mouse
nestes, então você pode ver que posso obter
a variação da tira também. Então, tudo está
funcionando exatamente como você pensaria que acabaria
como pretendido, certo? Isso já é para
esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Vejo você
na próxima palestra. Então, sim.
91. (Placa personalizada (avançada) sinal (Advanced): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar sinais
personalizados ao Minecraft. o sinal personalizado é, bem, ele tem algumas peculiaridades
nele que, mas vamos
basicamente
pegar, dar uma olhada agora. Então, para sinais personalizados, mas vamos precisar
, em
primeiro lugar, de uma entidade de bloco de
sinais. Então, em nosso pacote de entidades, clique com o botão direito do mouse em nova
classe Java chamada entidade de bloco de sinal de
modo E isso se estenderá. A entidade de bloco de sinal passará o mouse sobre esse super de correspondência de
construtor de criação
e, em seguida, substituiremos
o método getter. Então aqui podemos colocar
algo ainda. Então, vou cometer um erro
aqui
para que tenhamos isso. Então vamos precisar
dos blocos para isso. Vamos precisar de
dois quarteirões aqui. Além disso, você precisa criar classes de blocos
personalizadas. Isso às vezes pode ser
muito chato para o signo. Não sei por que
é tão bem, complexo de fazer, mas é
exatamente como vai ser. Este vai ser um bloco de sinais
em pé. Então o
lóbulo lateral Mott estende este. Vamos
deixar isso como está. E aqui, na verdade,
só queremos substituir uma coisa
e esse
será o novo método de entidade de bloco. Então aqui o que vamos
fazer é fazer uma nova entidade de bloco de sinal de modo com a posição, o
estado e o estado que eles atrás. Isso vai ficar bem.
E então vamos fazer outra classe que é o bloco MOD ALL IN,
que estende o bloco de placas de
parede. Eles atrás também criam
construtor combinando super. Também
copiaremos esse método. Mais uma vez, é claro, todo o código estará
disponível para você no repositório do GitHub e para
um indivíduo também. Porque agora eu realmente
farei um pecado cardeal e
copiarei sobre a coisa que
precisamos na classe de blocos de lama. E você verá que precisaremos uma classe mod Wood Types
também porque, como eu disse, eu não sei o porquê, mas
é absolutamente louco, mas não se preocupe, vamos
superar isso. Então mod digitaria, e isso
terá um campo estático. Então, tipo estático público
ou flor de cerejeira. E isso é igual a digitar. Essa taxa. Sherry sublinha a flor. O ego. Isso é tudo o que precisamos
colocar aqui e depois aqui. E então, nos blocos de lama, isso também deve funcionar. Então, agora os blocos funcionam. Então, agora o que podemos fazer
nas entidades de bloqueio de modo, eu posso realmente copiar isso. Isso é praticamente
o mesmo que isso. Como você pode ver, temos apenas o ano da entidade bloco de sinal mod após a entidade protetor solar. Se você tiver vários sinais
diferentes, o que você precisa fazer
é que você não
precisa alterar esses blocos. Você só precisa adicionar
para considerar dois blocos aqui e você pode adicionar
quantos quiser. Então, basicamente, basta
adicionar mais blocos aqui e então deve, em teoria, funcionar o mesmo
com este. Então, agora aqui
vamos dizer entidades
mod block,
entidade dot get. E então isso também deve ser
bom para outro
cliente assinar basicamente o novo
tipo de madeira para novos blocos aqui. E o que você verá é
que esses blocos que
se registram em vez do método do bloco de
registro, porque temos que ter um item separado para
que isso seja os itens de sinal. Na verdade, também copiarei
isso mais uma vez, tudo isso está
disponível para você
no repositório do GitHub e um
interatrial também. Isso vai ser
isso aqui. Então, vamos apenas tirar a durabilidade e
vamos realmente empilhar para 16 como qualquer
outra linha seria. Além disso, você pode ver que o item de
sinal aqui realmente exige que você coloque o seno e o sinal da
parede também. Então isso é outra coisa
importante aqui. E além
disso, também temos mais
uma coisa eram mais algumas coisas dentro
do curso MC, massa. Então, na parte inferior aqui, precisamos chamar que tipo
importante registro de pontos de classe, modo tipos
ponto Cherry Blossom. Precisamos registrar esse método de configuração
inclinado. E então, no método de configuração
normal, precisamos fazer duas coisas. Portanto, o número um é o renderizador de entidade de
bloco. Renderizadores muito
importantes. Modo de registro, bloqueie entidades. Agora assine o ponto da entidade do bloco get
e, em seguida, o renderizador de sinal
aqui, dois pontos, dois pontos novos. Então, abaixo disso, queremos chamar folhas dot add iria digitar, mod, mod digitaria estrela, flor de
cerejeira, eles vão. E isso deve finalmente ser tudo o que precisamos em
termos do código. É claro que ainda
precisamos dos arquivos JSON. E quando se trata
dos dias, e para
nós, na verdade, precisávamos
dos arquivos JSON para os estados de bloco também para
garantir que você tenha isso. E então o mesmo
vale para a tradução. Então, vamos apenas adicionar isso. Temos a tradução
para o sinal. E então vamos apenas adicionar
os modelos de blocos também. pilares são, na verdade,
um tipo de interessante. Então, na verdade, há apenas
um modelo de bloco porque ambos apontam para
o mesmo porque esse modelo de bloco só
tem partículas definidas, essas
são as partículas que serão vistas em quando você destrói o sinal real. Enquanto o modelo de
item de sinal de flor de cerejeira se parece com isso. Então, simplesmente aponta para uma textura de
item é claro, mais
uma vez na
textura do item será, bem o mesmo e temos o mesmo item para dois blocos
diferentes. Neste caso,
vamos ter um
sinal normal de flor de cerejeira aqui. Essa é a textura do item. Lá vai você. E isso é tudo o
que vamos precisar. Então, mais uma vez, tudo isso está,
claro , disponível para você,
porque mais uma vez , é um exercício muito circular
e pode ser meio irritante. Então descobri que os sinais eram meio intrigantes em
sua complexidade. Ou o que você pode basicamente
no final fazer com ele. Você realmente vai
precisar de mais uma textura. E essa será a textura
real como a cereja
no fundo. E isso tem que estar sob o namespace
Minecraft novamente, então ativos, texturas do Minecraft. Em seguida, em vez
da pasta da entidade, precisaremos da pasta de sinais. E então, dentro de lá,
a flor de cerejeira PNG. E agora depois de ter
adicionado tudo isso, vamos ver se funciona. Ou na França, como microlente, vemos que o bloco foi adicionado. Agora não temos a tradução
correta, mas é claro que é
muito fácil de corrigir. Vamos defini-lo e
podemos escrever algo. Então, por exemplo, palavra
muito boa, cavalo e feito e
fica lá. E também podemos
colocá-lo em uma parede aqui. Como você pode ver, tudo funciona bem, exatamente como você esperaria. E eu também acabei de corrigir
a tradução aqui. Então agora tudo
deve funcionar para o arquivo que já o possui
para esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Vejo você
na próxima palestra. Então, sim.
92. (Gen) Criação de uma árvore personalizada: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar uma árvore personalizada à
micro árvore acostumada.
Bem, espere um segundo. Já adicionamos o costume escreveria em nossa classe de blocos de
modelo, podemos ver que algumas
tábuas teriam os logs, mas quase tudo o que já
temos. Bem, o que não temos? Não temos um rebento
e não temos folhas. Tudo bem, então o que
vamos fazer é
copiar sobre a flor de cerejeira uma prancha uma vez. E então eu também
vou copiar sobre o script seria aqui. Vamos precisar de um
para as folhas
sublinhadas da flor de cerejeira e depois sair aqui no nome também. Claro, eles atrás, isso
vai ser um bloco de folhas. Eles vão e então isso
vai copiar as folhas de carvalho. E a inflamabilidade
disso na verdade
será 60 e a propagação
do fogo será 30. Porque as folhas são
incrivelmente inflamáveis. E agora vamos dar uma olhada
no rebento Cherry Blossom
na parte inferior aqui. Então isso é amostragem. E então o mesmo com o
nome, claro, também, mudando isso para
flor de cerejeira sublinhado rebento. Este será um bloco de
mudas que
lançará um erro porque precisamos dar a ele,
como você pode ver, um produtor de árvores abstrato e aquela classe que
criaremos agora. E isso entrará em
nosso pacote de cursos MC, clique com o botão direito do mouse em novo
pacote chamado world. E começamos
a nos aventurar
na geração mundial dentro de seu novo pacote chamado eater. E então, dentro de lá,
vamos fazer outro pacote chamado árvore. E lá vou colocar
a árvore crescer
nesta nova classe Java chamada cultivador de
cerejeira, que estenderá
a árvore abstrata. O Grow passará o mouse sobre
esses Métodos porque precisamos implementar o método de recurso get configurado. E quero dizer, isso é
praticamente tudo o que precisamos fazer. Agora,
mais uma vez
cometerei um erro propositalmente aqui para que não me esqueça de passá-lo neste método porque ainda não criamos o
recurso configurado de que precisamos. Mas o que podemos fazer
é que já podemos fazer uma nova linha de
árvore de cerejeira para que aqui tudo esteja bem e a
classe mais blocos esteja praticamente feita. Agora, tanto para o rebento
quanto para as folhas que precisamos dentro da
aula de curso MC no método
do cliente, vou copiar sobre a explosão ou cortar aqui e
vamos
dizer folhas e também vamos dizem o
rebento que eles atrás que nós dois temos as folhas
e o rebento na camada de renderização
recorte, é claro. E, em primeiro lugar
, continuaremos terminando os
blocos aqui. Então, vamos apenas copiar sobre a folha e o
bloco de rebentos, Jason. Agora, é claro,
todos estão disponíveis para você
no repositório do GitHub e para
um indivíduo também. Mas você pode ver, na verdade,
os estados de bloco, muito chatos, apenas estados normais do
Bloco basicamente. E então, quando
se trata da alquilação, praticamente a mesma coisa. Folhas e
folhas pequenas aqui também. Então, claro, atraente
e desconcertante. Lá vai você. Também há
para bloquear arquivos JSON modelo. Claro, as folhas
mais uma vez são bastante chatas, enquanto o rebento é um
pouco mais interessante, tem um pai cruzado e uma
textura cruzada para a qual ele aponta. Praticamente tudo o que há para isso. O modelo do item também é um
pouco mais interessante, pelo
menos para o rebento. Mais uma vez, o rebento, como você pode ver agora,
procura um extra
na pasta de blocos em vez
da pasta do item, mas as folhas são apenas arquivos JSON modais de
item normais, como você os viu
muitas vezes agora para
blocos diferentes basicamente. E então vamos copiar as texturas aqui
também, basta tê-las. E então esses seriam praticamente todos os arquivos JSON que
precisamos fazer e agora podemos
continuar em nosso pacote mundial. Embora a razão pela qual temos um pacote mundial porque
as árvores quando você as gera,
elas são como uma interseção
muito estranha de estarem um pouco
já na geração mundial. Então, quando a árvore surge
do rebento, é um pouco da geração
mundial. É assim
que vai ser. Portanto, no
pacote de recursos desta vez, clique com o botão direito
do mouse em nova classe
Java chamada mod configurada entre si. E este vai
ser nosso bem, são melhores amigos por assim dizer. Como inibidor,
vamos ter a árvore real definida. Agora vou copiar a definição
real
da árvore e
explicarei à medida que avançarmos. Então você pode ver que isso é
um monte de coisas, certo? O número um que quero dizer
é que quando se trata
da geração mundial, pode ser muito complicado. Ok, então há muitas
partes móveis
na coisa toda
da geração mundial. Vou tentar explicar tudo
melhor da minha habilidade. No entanto, se você quer
algo que é muito, muito, muito particular, como você quer que você
goste, eu não sei, como o seu apareça exatamente
aos 35 e você quer
exatamente esses muitos. Vai haver muitas coisas que você tem que
ajustar, mas não se preocupe. Tenho certeza que vamos
passar por isso. Ou agora, a
cerejeira bem aqui. Você pode ver que estamos chamando
recursos utils dot register, registros de
leitura, basicamente
esse recurso configurado. E então estamos passando
uma Árvore de Recursos configurada. Portanto, um recurso configurado do
tipo Configuração de árvore. Estamos passando a configuração de
árvore com um construtor aqui. E então
vem a pergunta: quais são todas essas coisas diferentes? Bem, pense nisso. Bem, um bloco diz
provedor simples. O primeiro é
o provedor de log, o que significa que basicamente
temos que fornecer um log específico que seja o tronco
real dessa árvore. Como esse trunfo é colocado? Bem, estamos imprimindo um novo placer de tronco
reto. Se eu
botão do meio do mouse, clique nisso, você pode ver que isso estende
o lugar do tronco da classe dela. E se eu pressionar
Control H sobre isso, considere diferentes classes de placer de
tronco, o que significa que, em teoria, você também pode criar as suas próprias. É claro que,
mais uma vez, é algo que é definitivamente mais complicado,
mais complexo aqui. Então, é claro, tudo funcionando. Você poderia, claro, fazê-lo. No entanto, lá. Agora estamos apenas, neste
momento,
nem se trata de, oh, você tem que ter
conhecimento Java neste momento. Vamos de Java intermediário para avançado um pouco. A criação de
placers de tronco de primo e
placers de folhagem personalizados envolve basicamente
muita matemática também. Portanto, tenha isso em mente. Em seguida, o segundo
estado de bloco fornecido aqui, o terceiro parâmetro
são as folhas, e essas são colocadas, mas dependendo dos
placers de folhagem, mais uma vez, clique no botão do
meio do mouse
na folhagem placer e você pode ver que existem diferentes
tipos de placers de folhagem. É assim que
o bem real, as folhas são colocadas para baixo. E isso é praticamente
tudo o que há para ele. E bem, então o último aqui é
o tamanho da feição de duas camadas. O que é isso? Bem, eu não tenho
100% de certeza. Então isso basicamente limita
onde isso pode ser colocado. Essa é a ideia geral. No entanto,
no entanto, algumas coisas na totalidade do, digamos que as gerações
ainda me iludem também. Portanto, não se preocupe lá. Seja qual for o caso
, este é agora o recurso que
deve ser devolvido aqui mesmo nos
produtores de Cherry Blossom Tree iam dizer mod configure recurso a
cada flor três, e isso deveria
praticamente seja isso. Agora, por mais louco
que pareça, deveria ser isso, está feito. E agora a árvore já
surgiu de um rebento. Eles são importantes,
não vai surgir no mundo ainda. Nós vamos fazer isso
nesta palestra que ela aparece do
Sapling para que possamos fazer uma identificação de farinha de ossos ou crescer a partir de um
rebento natural. Então eu diria, vamos ver For works, ou nos encontramos
em microvesículas. Veja as mudas de
flor de cerejeira
foram bem adicionadas ao jogo. Então, vamos ver se consigo
gerá-los com um rebento. E aí está, se eu farinha de ossos funciona. Agora, as perguntas reais,
acho que isso é um
pouco colocado um pouco de perto. E também se você ouvir exatamente, Você realmente tem que mudar
o material por um segundo. Isso ainda está usando o material I
acho que a prancha. Então isso, claro, não
está certo . Vamos fazer o seguinte. Vamos fazer uma regra de jogo, velocidade de tick
aleatória, e
vamos apenas aumentá-la. E vamos ver se isso
cresce sozinho. Mas parece que a muda não
está crescendo sozinha. Isso provavelmente tem a ver com o material real que
é esse como cópia. Então, vamos consertar isso rapidamente. Qualquer supervisão aqui, como você pode ver, bloqueie propriedades
comportamentais, copie blocos removidos, OK. Não, isso tem que ser rebento de carvalho. Em seguida, ele toma todas as
propriedades do rebento de carvalho. E a única coisa que ele precisa é desta
aqui, tiques aleatórios. Caso contrário, não
vai demorar aleatoriamente. Então eles vão e, bem, se adicionamos isso do que
apenas por causa da conclusão, vamos ver se cresce ou
se acaba de volta no Minecraft. E vamos ver se podemos
liberar a velocidade do tiquetaque. Vamos ver, o que
cresce, vamos. Então, tudo funciona exatamente
como você esperaria que as mudas cresçam
naturalmente também corram. E o que é muito importante
é que a última palestra ou duas palestras atrás,
quando adicionamos os logs, certo, esses aqui,
os troncos de flor de cerejeira, era muito importante
que adicionássemos para as tags de bloco também. Então as tags para os
logs aqui, e estamos basicamente referenciando
os logs de flor de cerejeira, que é uma tag que temos
em nosso curso MC, Oda. E aqui mesmo os blocos de flor de
cerejeira, muito importante que
isso esteja aqui, porque se você não tiver isso, então as folhas decairão
automaticamente. Mesmo se eles estiverem
ao lado do registro. O registro precisa estar nessa tag. Caso contrário, ele não
funcionará na tag logs. Muito importante. Mas, de outra forma, já seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Ah, sim.
93. (Gen) Geração de árvores personalizadas (de de mundo): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar geração de árvores
personalizadas
ao Minecraft. Então, adicionamos a
árvore do rebento. Agora a questão
é como o FREC, vamos
colocá-lo no mundo? Bem, na verdade, não é tão louco. Primeiro de tudo, vamos
entrar em nossa
classe de recursos
configurados por mod está bem aqui. Vamos precisar de um
novo recurso configurado. Agora, o que é muito importante
é o seguinte. Podemos realmente dar uma olhada em alguns exemplos de
regeneração em baunilha. Altamente,
recomendo dar uma olhada nisso. Mas o que podemos fazer, por
exemplo, na classe de recursos, podemos entrar na classe de recursos e podemos dar uma
olhada em todos os recursos. E os recursos que você
não é tão interessante. O que é interessante
é, por exemplo, onde está o recurso de árvore usado que nosso
botão do meio do mouse clique nisso, então você pode ver que ele é usado
na classe de recursos de árvore. Muito interessante. E você pode ver
lá, há um monte de lugares basicamente onde
isso foi usado. Por exemplo, vamos apenas
ir aqui para o OK, e você pode ver que este é
um registro de recursos utils. Parece muito parecido com
o que fizemos aqui. E isso é praticamente
exatamente o que fizemos. Portanto, este tem um
método especializado aqui neste caso, ou todos os recursos
que ele usa. Mas o que, isso é
exatamente o que temos aqui. Agora, podemos usar isso? Onde isso é usado agora? Bem, eu sou, se eu clicar no meio
do mouse mais uma vez, você pode ver que isso é usado,
por exemplo, nos posicionamentos da
árvore. E esta é a AUC verificada. Isso é exatamente o que
precisamos basicamente implementar agora. Bem, se eu entrar
nisso aqui, o que você pode ver é que
isso é de repente que
é um recurso que é
fascinante, não é? O que foi feito
é que foi, geração
mundial se separou um pouco que agora
você colocou recursos e recursos
configurados. E você pode ver que
esse recurso de lugar
neste caso realmente usa
os recursos da árvore OK, filtrar por sorte, sobrevivência
e, em seguida, o rebento de carvalho. Mas o que isso significa exatamente? A ideia geral aqui é que basicamente, verificar esse recurso de
lugar só pode ser colocado em blocos específicos onde o rebento de carvalho também
poderia sobreviver. Isso é
realmente uma coisa muito frequente e legal de se fazer. E então, onde isso é usado? Bem, isso é mais uma vez usado
nas características vegetais aqui. Portanto, este é muito longo
neste caso. Mas isso é apenas em teoria. Você pode ver que isso é
de repente outro recurso
configurado. Por exemplo, vamos
pegar um que não seja muito longo aqui. São
todos bem longos. Vamos pegar as árvores de prados
e então eu posso clicar no
botão do meio do mouse sobre
isso e então você tem outro recurso policial. Então basicamente de onde
estamos indo é que vamos
das árvores em específico, vamos passar do recurso
configurado para
um recurso de local para configurar o
recurso para um recurso colocado. Porque eu coloquei o
recurso tem que ser, tem que estar no mundo, certo? Não pode ser, você não pode ter
que não seja no mundo. Basicamente, eu fiz isso
um pouco diferente. Eu recortei esse recurso de lugar e basicamente o fiz para
que passássemos desse recurso
configurado para outro recurso configurado, depois indo para o recurso de lugar, isso não é 100% certo, mas está quase certo. Então, nos recursos
configurados por MOD, copiarei mais uma vez isso e explicarei o que
fiz basicamente. Então você pode ver que
esta é a árvore de
cerejeira verificada. E você pode ver que
o que ele faz é também filtrar por um
bloco de sobrevivência. Você pode ver que a ideia geral é que esse recurso
configurado agora, bem, vai levar, você sabe, ele tem 10% de
chance de tomar esse recurso
e tentativa
de lugar e 90 porcentagem de chance de
assumir esse recurso de lugar obviamente, sempre será
o mesmo recurso. Então, isso é um
pouco de um hack. Provavelmente não é a maneira
mais limpa de fazer isso,
mas essa é a maneira que eu
encontrei sem ter que adicionar outro recurso de lugar além de
um recurso Configurar e
outro recurso de lugar
e assim por diante, e assim por diante, porque ele tende a
ficar muito complicado. No entanto, você sempre pode seguir o modelo de baunilha,
também é altamente recomendável. Você tem que dar uma olhada
na geração mundial. Você tem que dar uma
olhada nas aulas, certo? Eles também podem entrar no
pacote do meio do mouse, clicar nisso e
você pode ver todos
os recursos aqui. Podemos ir para o posicionamento, podemos entrar no pacote de
posicionamento. Você pode ver todas as
colocações aqui. Podemos entrar na geração
para as características vegetais. Mais uma vez, nos recursos, podemos ir para as colocações. Isso também deve estar
no posicionamento está certo. Temos tudo isso
disponível para você. Você tem que dar
uma olhada nisso, agora a geração
do mundo
realmente se torna riquenha complicada
em certos pontos. E você só precisa, bem, dar uma olhada nos exemplos de
baunilha. Este é provavelmente um
dos melhores recursos que você tem e está tudo bem lá, seja qual for o caso, agora
temos o recurso
configurado. No entanto, ainda precisamos de um
recurso de lugar, sobrepondo o pacote de recursos botão direito
do mouse em nova classe
Java chamada de menos comedores modais
e adicioná-lo lá. Vamos fazer um novo,
colocamos um ao outro por um
tempo exatamente o que
temos e isso
seguirá um mais uma vez, copiaremos sobre todo o
código disponível para você no repositório
do GitHub e
um indivíduo também. Ou isso não é tão complicado. Você pode ver que chamamos um
registro de pontos de
colocação utils e, em seguida, a flor de
cerejeira colocada, e então estamos pegando
a árvore verificada. Portanto, esse é o
recurso configurado que retornará esse recurso de lugar ou
esse recurso de lugar, certo? Então, o filtro por sobrevivência de bloco. Isso é exatamente certo. Isso é exatamente o que
queremos. Então, só teremos árvores que surgem onde o
rebento de flor de cerejeira poderia ser colocado. Essa é a ideia geral aqui. E então estamos fazendo
disso um recurso de lugar adicionando a colocação de árvores de
decoração vegetal. E então estamos apenas
adicionando contagem extra. Então, é assim que
muitas árvores vão surgir. Mas se não me engano,
o que isso significa é que isso significa que, em média, uma árvore por
pedaço deve surgir com 10%
de chance de ter mais dois esportes. Acredito que é assim que funciona. Não tenho 100% de certeza, mas você também pode dar uma olhada
no método de posicionamento em árvore
aqui e ver que isso leva no modificador de
posicionamento
modificando um lugar ou neste caso. Podemos então entrar no
modificador de posicionamento e podemos ver, bem, ok, isso não
revela nada. Bem, vamos pressionar Control H.
E, de repente, podemos ver vários modificadores de
posicionamento diferentes. Há até filtros de posicionamento, o que eu acho muito legal. Então você pode ter coisas
como filtros de raridade, que basicamente em média a
cada tantos pedaços, acredito que é assim que funciona. E então você pode ter
o posicionamento repetido. Algumas contagens baseadas em ruído. Incrivelmente legal,
absolutamente frequente, incrível. Há um monte de coisas aqui. Mais uma vez, o aberto à experimentação
tenta, sem, dar uma olhada no código de baunilha, como as aulas são usadas, apenas altamente recomendo
fazer isso. Agora, o recurso colocado
foi criado, mas de alguma forma precisamos
gerá-lo Exatamente. Então, em nosso pacote mundial, clique com o botão direito do mouse em novo
pacote chamado Jen. Então, isso forma
o pacote mundial. Sei que falei muito inteligente. E então, lá,
vamos criar uma nova classe Java chamada geração
de árvores modernas. E então isso
ficará o seguinte. 1 segundo, copiarei
todo o método aqui, mas explicarei tudo. Portanto, este é o evento de
carregamento de bioma. Bem, vamos chamar
isso em apenas um momento. Mas o que você pode
ver é que
na verdade não é tão
complicado, certo? Então, isso gera a árvore real. Certo? O que vamos fazer
é obter a chave de recurso desse bioma específico que estamos carregando atualmente, certo? E então
vamos nos certificar, ei, esse bioma
faz, os tipos deste
bioma contêm placas, mas basicamente em todos os diferentes
tipos de bioma planos, eu sou como, Sim, vamos adicionar o flor de cerejeira colocada
recurso ali mesmo. Então, essas duas chamadas, certo? Então, obter a base de listas, recursos do local
do
fornecedor para a decoração vegetal
aqui é o primeiro passo, e então o segundo passo é apenas adicionar nosso
recurso colocado lá. Isso mesmo,
esses dois buracos aqui, estes na verdade adicionam
o recurso de lugar ao bioma específico. Este ano, é claro,
apenas filtros. Neste ponto, isso não deve
ser muito louco para você. Se você tem, você é como, bem, eu realmente quero que minha
árvore apareça em um bioma diferente. Você só precisa filtrar de
forma diferente, certo? Então você pode simplesmente tirar
essa declaração se. Você poderia simplesmente
mudá-lo um pouco. Não deve ser muito louco. Todas as coisas consideradas. E o que vamos fazer
é, então, no nosso exemplo, ele só surgirá
no bioma planícies
ou em
biomas de planos diferentes basicamente. Mas onde chamamos isso agora? Bem, no
pacote mundial clique com o botão direito nova classe Java chamada
de eventos mundiais modernos. E então, dentro de lá,
o que
vamos fazer é primeiro
adicionar o modo de adição. E então diremos que o ID do
assinante do barramento de eventos de ponto é igual ao Smart Touch ID do
núcleo MC. Então vamos ter
um vazio estático público. Evento de carregamento de bioma
com um evento final de carregamento de bioma,
evento legal. E isso terá um evento de assinatura muito
importante no topo aqui para
esta anotação. E então vamos dizer geração de árvores
modelo em nossas árvores de janeiro e
vamos passar no evento. E agora você pode dizer,
não pode ser isso. Mas é tudo o
que precisamos fazer. Agora, é claro, as coisas muito particulares bastante
complicadas, certo? Portanto, você tem diferentes
utilitários de posicionamento, diferentes coisas de posicionamento em árvore com outro recurso configurado. No entanto, há muito nisso. No entanto, quando você
realmente pensa sobre
isso, na verdade não é tão louco.
Todas as coisas consideradas. Como eu disse, se você quer filtragem
diferente basicamente ou quer que suas árvores
gerem biomas diferentes, você só precisa filtrar de
forma diferente aqui. Quero dizer, basicamente você tem
o evento de carregamento de bioma. Então você deve ter, você sabe, você tem a localização do
recurso
do iamb basicamente
disponível para você. Então, em teoria, você deve ser
capaz de alterar facilmente
a filtragem aqui. Então, quando entramos no
Minecraft em apenas um segundo, lembre-se de criar um novo
mundo porque nós mexemos com a geração mundial
apenas no caso, você sabe, ainda deve funcionar
no velho mundo se nós
teletransportar longe o suficiente, mas ainda assim por precaução, vamos criar um novo
mundo e vamos ver se a árvore é gerada. Ou um farmacêutico, um
Minecraft, e lá vai ele, já
estamos desova em
um bioma de aviões de girassol. Então lá vai você. As árvores estão desova e bem, que é praticamente mostrá-las. Sim, está praticamente funcionando exatamente como você
esperaria. Então, eles estão surgindo apenas
em tipos de aviões, biomas como realmente
voam para lá porque a colocação
parecia um pouco estranha, mas na verdade não deveria ser. Então você pode ver, ou eles estão
crescendo alegremente,
bem, nos lugares que
podem, eles podem crescer. Então, esses podem estar um
pouco próximos um do
outro, mas quem sabe? Quero dizer, neste momento,
é muito legal. E mais uma vez, uma coisa
muito importante. Você sempre terá que
brincar com os números quando
se trata da geração mundial. Porque talvez você seja
como não, não, isso é muitas árvores. Você sabe, você só tem que
brincar com a contagem deles, mas no geral, as árvores geram. Então, uma coisa em particular
eu posso dizer quando
se trata basicamente
da geração aqui, o que você poderia fazer se
você, por exemplo, quiser que sua árvore
seja incrivelmente rara, você poderia torná-la 0 e
depois tem algo como uma chance de
0,1% de outra
árvore gerar algo assim. Mas é claro, você sabe, você pode simplesmente brincar com também
é altamente recomendável. Mais uma vez, apenas dando
uma olhada, bem, as diferentes três gerações
da baunilha, certo? Isso é sempre algo que você pode
dar uma olhada. Não posso enfatizar isso o suficiente. Você tem disponível,
todas as coisas de baunilha. Basta dar uma olhada nisso e
você espero ser capaz criar
a
geração de árvores dos seus sonhos. Mas isso será para
esta palestra aqui. Espero que você tenha encontrado esses neurônios
úteis do novo. Se você o fizesse, eu
agradeceria muito uma revisão sua. Caso contrário, verei
você na próxima palestra. Então, sim.
94. (Gen) Geração de flores personalizadas (de mundo): Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra, vamos
dar uma olhada na flores
da geração de
farinha é, na verdade, bem, outra parte da geração
mundial vai
ser muito interessante. Então, vamos para nossa classe de recursos
configurada. E aqui, mais uma vez,
vou copiar, mas tudo como sempre
está disponível para você
no repositório e um
indivíduo também se ajusta. Portanto, não se preocupe lá. Mas o que vamos fazer é
copiar sobre as linhas de tinta. Cada linha aqui. Você pode ver que, na verdade,
é bastante longo. Vamos ver se eu poderia fazer
algo assim. Agora. Bem, lá vai você. Então, algo assim. Veja que estamos usando
a flor de recursos mais
uma vez para criar um recurso
Configurar, desta vez de
configuração de patch aleatória com algumas tentativas, algumas se espalham aqui. Então, o que você pode
ver é basicamente,
bem, se eu simplesmente
entrar na flor, então milimoles por
clique sobre isso e, em seguida, clique no botão
do meio do mouse mais uma vez. Podemos, por exemplo, ver que temos algum padrão de farinha aqui. Podemos ver o que é
isso? Então, esta seria uma
lista ponderada aleatória para patch de grama. Bem, vamos, não podemos realmente
ver o que está acontecendo aqui, mas podemos ver o que está
acontecendo aqui. Uma configuração de patch aleatória, 96 spread 6, 2. E então temos esse bloco simples
insanamente louco configurado aqui e
vemos que fazemos uma configuração de bloco simples. E então dentro daqui,
um provedor de ruído e olhe para essa loucura,
certo? Olhe para esse louco. Então, basicamente, temos blocos
diferentes
que geramos lá. A ideia da
configuração de patch aleatório
geralmente é que você adiciona várias flores
diferentes a ela. Bem, no nosso caso, estou apenas adicionando uma flor a ela. Então você sabe, eu
vou realmente reduzir as tentativas aqui para
digamos 32 apenas no caso. E não tantos deles basicamente
possuirão. Vamos fazer algo assim. Isso vai ficar
bem. Agora, esse ainda é um recurso configurado
e, claro, precisamos fazer um recurso policial com isso. Então, mais uma vez,
vamos voltar para a classe de recursos dando
uma olhada na flor, vamos apenas ir para
o padrão aqui. Onde isso agora é chamado, é
claro, na colocação
vegetal. Então, vamos apenas pegar o, nosso calor aqui e então podemos ver basicamente esta
é uma linha como 71. Na verdade, são 70. Lá vai você. E então podemos basicamente ver que colocamos em gravidade
uma vez a cada x aqui
em colocação quadrada,
propagação, mapa de altura
e, em seguida, filtro de bioma. Então, o que eu costumo fazer para
basicamente preparar isso, eu apenas copie tudo e depois vejo o que
preciso colocar lá. Bem, o que eu tenho é que tenho o seguinte em nossos recursos
colocados no modo, podemos basicamente adicionar
isso aqui. Então, haverá
a rosa rosa colocada. Então você pode ver que eu também tenho
isso e a única coisa que
não tenho do posicionamento
é o filtro de raridade. Bem, vamos apenas por uma questão
de argumento, isso também. Então, vamos adicionar o filtro
derivado. Vou copiar isso. Vou colocar isso aqui. Porque o mais legal
sobre o colocado é que no lugar um, você vê esse ponto ponto-ponto. Isso significa que podemos colocar quantos modificadores
de posicionamento quisermos dentro daqui, essa é a
coisa realmente legal sobre as coisas do lugar. Mas quando você tem um recurso
configurado e coloca pontos, você pode colocar quantos modificadores
de
posicionamento diferentes quiser, o que é realmente legal. E agora temos esse
recurso colocado para a flor, mas como vamos
gerar
em nosso pacote Jenna clique com o botão direito do mouse em nova classe chamada de
flor de modo, geração de flores. Então, mais uma vez, eu
realmente
copiarei o, copiarei sobre o
método aqui. Mas isso é praticamente
o mesmo que a geração de árvores. Por causa, claro, as
flores também são decoração
vegetal e estamos adicionando mais uma vez
no lugar rosa bem ali. Isso deve ser bastante
autoexplicativo. Todas as coisas consideradas
foram mais uma vez, apenas fazendo isso em aviões. E vamos aos eventos mundiais
MOD. E vamos apenas chamar
isso, não importa neste
caso em que ordem nós os
chamamos porque ambos são o mesmo
passo de geração aqui. Assim que estamos
basicamente nos remos, você verá que, porque esta é uma etapa de
geração diferente, terá que realmente, você sabe, manter a
ordem aqui. Mas, na verdade, é isso. Isso é tudo o que
precisamos para a rosa rosa. Mais uma vez,
recomendo dar uma
olhada em todos os exemplos de baunilha. Existem muitos deles. Basta dar uma olhada neles. Coisas felizes acabaram,
experimente um monte de coisas. Experimente vários
valores especialmente. E então veja o que
basicamente acontece lá. Mas, por causa de conclusão, vamos ver se funciona, certo? E também não se esqueça de criar um novo mundo para isso
porque, claro, mais
uma vez, nós mexemos
com a geração mundial. Então, vamos ver se podemos encontrar
nossas flores ou ofensas em um avião é minha casa e
eles estão, eles já estão. Encontramos ou rosas cor-de-rosa
surgindo no bioma das planícies. Há mais alguns aqui. E vamos ver, há
ainda mais lá. Vamos encontrar um pouco mais. Eles são um pouco
mais raros do que eu esperava com 32, mas isso é claro que é
totalmente bom. Mais uma vez, você pode simplesmente
ajustar os números. Acho que há
três aqui também. Sim, lá estão eles também. Isso é muito legal. Então, isso é
realmente incrível e é praticamente como a geração de
flores funciona. Mais uma vez,
recomendo, dar uma olhada em todas as coisas
de baunilha. E você só terá que
brincar com
os números até chegar bem a uma geração
que você gostaria. Mas, caso contrário, isso
seria para esta
palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
95. (Gen) a geração de pneus personalizados: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra,
vamos adicionar costume ou geração ao Minecraft para o que
todos vocês estavam esperando. Eu bem, eu acho que
pelo menos a ordenação é um
deles basicamente sempre o mais solicita um tópico de muitos deles, basicamente aqueles que eu
definitivamente vou basicamente estar fazendo. E enquanto, como
fazemos isso ou geração, para
onde vamos? Bem, em primeiro lugar, o recurso
configurado novamente, e aqui copiarei mais duas coisas e depois
explicarei, é claro, também. Mas, número 1,
precisamos de uma lista ou
configuração de um estado de bloco de
destino. Agora, o que o FREC é esse, bem, precisamos disso porque se tivermos uma ordem
ou configuração específica, realmente precisa desses minérios
porque precisamos saber, ok, em
qual estado de rock
deve ser colocado, pedra, em que blocos deve ser colocada
em um sono profundo. Então, é basicamente por isso que
precisamos dessa lista aqui, tão basicamente tão simples quanto essa. E então temos o
recurso configurado, seu robô. Ou agora, é claro,
ainda precisamos tornar isso um recurso
colocado. Mas isso já como uma coisa interessante
e esse é o tamanho. Então, esse deve ser o lado médio das veias se não me engano. Portanto, tenha isso em mente aqui. E também podemos dar uma olhada
no poço ou no recurso aqui. Então, clique
no botão do meio do mouse sobre isso e, em seguida, meio do mouse,
clique no botão do meio do mouse sobre isso e, em seguida, você poderá
ver que tudo isso é usado
nos recursos da ordem. Mas vamos dar
uma olhada, por exemplo, em algo que é
mais interessante, o ou Redstone, por exemplo. Então, todo o Redstone está
configurado com uma nova lista aqui de minério redstone e Redstone salta tarde
ou bem, justo o suficiente. E agora a questão
é: onde esse uso é? Bem, isso usado no posicionamento
do pedido. Então você pode ver o minério de redstone. E o que você também
encontrará é que
existem duas colocações diferentes para o mesmo ou você tem, ou diamante ou diamante
grande ou diamante pássaro. Portanto, é muito importante que você possa adicionar
vários para o mesmo ou curtir diferentes recursos de lugar que tenham diferentes funcionalidades
associadas a eles. Então, estamos olhando para 41 e 42. Então, vamos entrar aqui. Podemos ver que isso é comum ou posicionamento, comum
ou posicionamento. E então há até um método
raro ou de posicionamento que eles basicamente chamam. Vamos ver algo
assim em apenas um momento. Mas você pode ver isso como um posicionamento de alcance com esse uniforme e um
triângulo como você pode ver. Portanto, existem diferentes tipos de posicionamento basicamente
para a faixa de altura. E então você basicamente
apenas diz, ok, de que intervalo até qual
intervalo deve o escopo. E essa é
praticamente a ideia lá. Então é muito legal e você pode mais
uma vez copiar coisas, experimentar um monte de coisas e depois ver o comum ou posicionamento do botão do meio do
mouse. Clique sobre isso. Você pode ver que é apenas
um método privado. O que realmente temos que fazer
é, na verdade, temos que copiar todos os três métodos que pelo menos é isso
que vou fazer. Vou copiar todos
esses métodos, clicar com o botão direito do mouse em copiar. E então vamos
entrar na classe de
recurso e
vou criar uma classe de modo ou
posicionamento personalizado. E então
vamos apenas copiar os métodos aqui e
vamos fazer com que todos eles sejam públicos para que possamos basicamente usá-los para
nossos próprios minérios porque, bem, eles são apenas tornar nossas
vidas uma um pouco mais fácil,
não 100%,
mas só um pouco. E depois de
copiarmos isso, bem, agora
podemos usar o recurso
Configurar para criar um recurso de lugar. Então, em nossos recursos colocados no modelo, o que
vamos
fazer é copiar isso e
vou explicar, é claro,
novamente. Então lá vai você. Temos um cobalto ou colocado, que mais uma vez
vamos registrar com o cobalto ou colocar aqui. E então vamos
pegar o cobalto ou que
encontramos aqui,
o recurso Configurar. E vamos colocá-lo com o comum ou posicionamento. Este ano devem ser as veias médias por tronco
, como eu entendo agora. E o que você pode
estar dizendo: Espere, como você está levando
para menos 80? Bem, com um triângulo,
mas como isso funciona? Bem, o que você
pode ter visto como você pode ter visto essa imagem, que meio que demonstra em que alturas a
laranja agora gera. E a ideia é que quando
você fizer um triângulo aqui, o ponto inferior será em menos 80 e o ponto no topo
será em 80. E então o
triângulo
chegará a um ponto basicamente 0. Então, em teoria, o que
deveria acontecer é que a maioria do cobalto ou
deve surgir
em, em 0 e, em seguida deve ficar cada vez
menos e menos. Então, você sabe,
basicamente vai ser compensado aqui. Então, isso é basicamente um ponto de fazer o posicionamento da hortênsia
e o botão do meio do mouse. Clique nisso e você pode
realmente ver que
também há adicionar aqui.gov e, em seguida, outros provedores de altura. Agora dê uma olhada
no hipervisor. Então eu vou pressionar Control H. E há o viés para baixo, muito tendencioso para a altura do
trapézio inferior, altura lista ponderada
uniforme e
altura constante. Funcionalidade absolutamente incrível que você tem. Você pode fazer seu spawn de maneiras muito particulares
se você quiser que eles recomendem dar uma
olhada nisso, recomendo brincar
com esta amina basicamente como até que você tenha seus remos exatamente como
você quer que eles façam. Agora vou fazer é
copiar a geração de árvores aqui. Então, vou arrastá-lo para o mesmo pacote enquanto
mantém o controle. E vamos renomear
isso amanhã ou geração. Vamos
renomear isso
também , gerar ors aqui. E então, em vez da decoração
vegetal, isso agora é ors subterrâneo. E nós também
vamos tirar isso
da declaração if porque r ors,
vamos apenas dizer, por
uma questão de argumento, nós realmente queremos em todos os lugares, mas vamos dizer cobalto
ou colocado, e que é isso. Agora, a ração de origem
aqui está praticamente feita. Agora isso vai
colocá-lo em todas as biografias. Agora, isso não deve
colocá-lo na parte inferior ou no final porque o recurso de cobalto ou
configuração tem uma lista bem aqui de pedra
substituível e
substituível em estado profundo e não de rack inferior ou
em pedra substituível. E eu nem acho que
eles existam necessariamente. Outro naufrágio existe
como um teste de regra, outro ou substituível também, o que o resto eu não
acredito que exista lá. Então isso é algo
a ter em mente. Então o material de pedra final
não existe, certo? E agora esse método só
precisa ser chamado aqui. Agora, o que é muito importante
é que ele tenha que ser chamado acima dos outros dois. Porque se realmente dermos uma
olhada
no passo de geração aqui, você pode ver que os ors subterrâneos acontecem antes da decoração
vegetal. Então, basicamente, começa de
cima para baixo. Este pedido tem que ser
bem, basicamente mantido. E aqui nós nem
precisamos dos tipos e na verdade nem precisamos da chave porque vamos
ser como,
Sim, só queria em todos os
biomas que vão ficar bem. Então, quero dizer, isso é
praticamente tudo que precisamos fazer
pelo nosso cliente. Ou, mais uma vez,
brinque com os números. Dê uma olhada no código de
baunilha e dê uma olhada nos
valores de baunilha. Eu recomendo vivamente. Não posso enfatizar isso o suficiente. Você só precisa
brincar com isso e brincar um pouco com
os números. E agora vamos ver, depois de criarmos um novo mundo, a
propósito, se nosso cobol
ou seu lugar no mundo. Ou se respostas no Minecraft
e como você pode ver, algumas ou aqui, já
geraram perfeitamente bem. Isso foi apenas um Eco. Há um pouco
de uma veia maior. Eu tinha, na verdade, oito
deles, no entanto. Tudo aqui
funciona perfeitamente. E isso já concluirá
esta palestra aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra. Então, sim.
96. Como exportar seu Mod: Tudo bem, bem-vindo de volta
ao curso de forragem para a equipe vencedora e
esta palestra muito curta, vou
mostrar rapidamente como você pode exportar seu modelo como um arquivo JAR. Então, vamos abrir o
terminal e vamos colocar na barra de
pontos, Gradle w. build. E isso é praticamente tudo
o que você precisa fazer. Ele entra. E então ele basicamente
cria o, bem, o arquivo JAR. O que você
precisa fazer é ir para a pasta Build, clicar com o mouse em Abrir no Explorer. Então, em uma
janela do explorador, abrirá e mostrarei isso rapidamente. Então, construa. E então, na
pasta libs aqui, curso
MC, esta é a versão definida dentro do seu arquivo
build.gradle. Este é basicamente o
nome que ele levará, e você pode pegar isso, colocá-lo na pasta do seu modelo, você pode colocá-lo em um carregado para amaldiçoar forragem,
coisas assim. E então tudo
aqui deve funcionar. Ótimo. Sim, isso praticamente já
é para esta palestra
aqui e depois. Então, se você estiver assistindo
isso no futuro, você deve ter
outra seção aqui com tópicos adicionais
que
vou adicionar ao longo das próximas
semanas e meses basicamente com
coisas diferentes, como barcos, Definitivamente vou querer
ainda adicionar coisas assim. Então fique de olho
nisso se você estiver assistindo isso bem cedo para quando o curso realmente
saiu e provavelmente nada
estará lá ainda. Bem, não se preocupe. Novas palestras definitivamente
serão adicionadas. Então, espero que você tenha achado útil e tenha aprendido
algo novo. E espero que eu o veja
nas próximas
palestras também. Então, sim.
97. (tópicos adicionais) Atualizando o Forge (1.18.1): Tudo bem, bem-vindo a esta
palestra onde vamos
atualizar o forge para a versão
mais recente. Atualizamos o forjado antes
em uma palestra anterior. Mas faz sentido se
você vai adicionar muitas coisas que faremos nas próximas palestras para
basicamente atualizar a forja novamente. E geralmente
também é bom
manter seu MOD
basicamente atualizado. Muitas vezes não há
muitas mudanças, mas ainda é bom
ter em mente. Para isso. Claro, precisamos alterar
a dependência real aqui em nosso arquivo de notas DOD
Gradle agora para quê? Para ter que mudar
esse bem-estar, vamos
abrir o micro ford.net. E uma nota muito importante
do futuro aqui, recomendo usar uma versão 1181 para os tópicos
adicionais. Enquanto a maior parte disso ainda
funcionará se você atualizar para um 1800 para a geração mundial e algumas das
coisas fiscais não funcionarão. Eu recomendo
aqui realmente atualizar ainda para uma
versão 181, uma 1800. E a atualização e todas
as mudanças serão abordadas
em uma palestra posterior. Isso vai demorar
um pouco porque na verdade há
algumas mudanças significativas. Então é o que é, mas a maioria das coisas funcionará. É apenas geração mundial
e impostos, como eu disse,
por favor, atualize para um 1800 e depois
1182 entrará, vamos esperar que algumas semanas quando tudo tiver sido
resolvido, espero que eu será capaz de fazer uma seção adicional
onde eu passar
pelo processo de atualização, bem como cada uma das
alterações individuais também. Portanto, tenha isso em mente, por favor. Muito obrigado. E
, em seguida, certificando-se de que estamos na versão mais recente e
você pode ver o download mais recente, isso será 39079. E podemos até dar uma olhada, por exemplo, o registro de
alterações aqui. Podemos ver algumas das mudanças que aconteceram
entre as versões. Muito poucos, na verdade, porque ainda estamos muito atrasados na versão real do
curso. Talvez você tenha atualizado
ao longo do caminho também. Isso também pode ser uma
coisa que poderia ser feita. Mas, por enquanto, basicamente
vamos
atualizar agora para um 3979. E se você estiver assistindo
isso no futuro, que é muito
provável do que talvez sua versão seja
um pouco mais alta lá em cima. Totalmente bem. Então você
acabou de atualizar para esse. Normalmente, não deve haver muitas discrepâncias
entre eles. Então, mais uma vez, esta é a versão que
vamos atualizar duas
e, em seguida, basta carregar
a mudança de garota, Gradle muda aqui
no canto superior direito, basicamente clicando no
pequeno elefante é que não aparece
e sempre abre para
a guia Gradle e, em seguida, clique neste botão aqui,
faz a mesma coisa. E, como de costume, deve levar cerca de um minuto ou dois no máximo. Normalmente, se não deve
haver muitas coisas, provavelmente será muito rápido para mim, porque
eu já fiz isso. Claro. Se você já
fez isso na mesma versão
, já baixou todas
essas coisas. Mas então pode ir
um pouco mais rápido, mas não deve demorar
muito tempo. Então, vamos esperar um segundo. Mais uma vez, se você estiver
ficando vermelho aqui, desde que seja
apenas informações e avise, não se preocupe. É apenas um erro que
é uma espécie de problema. E então, claro,
no final do dia, se houver uma compilação falhou, isso também não vai ser bom. Mas se houver um sucesso
construído, qualquer coisa quase pode
ser desconsiderada. Isso está escrito aqui,
que está em vermelho. Aqui somos construídos com sucesso
em dois minutos, 31 segundos. Como eu disse, às vezes
demora um pouco mais, às vezes não demora muito. Agora pulamos
muitas versões, então provavelmente havia muito
o que atualizar lá. Mas, além disso,
isso é
praticamente tudo o que precisamos
fazer para atualizá-lo. Agora, geralmente quando
você atualiza,
se não houver muitas mudanças, tudo deve funcionar. Acredito que aqui
tudo deve funcionar. Então, vamos
deixá-lo funcionar e ver se estamos
recebendo algum erro. Pode haver um sobre, não
tenho 100% de certeza. Não acho que
haja nada se preocupar no momento. Mas é claro que aqui o caso
seria apenas executá-lo, ver se há talvez
uma flecha, talvez, eu não sei algo nos
alimentos, por exemplo, mudança. Você, é claro,
então o veria e então você poderia simplesmente
mudá-lo lá também. Mas neste caso, não acho que nada tenha
mudado drasticamente. Para que, uma vez que tudo
tenha baixado aqui, você pode ver que ele
baixa os ativos novamente, basicamente baixando
alguns dos recursos uma
vez, mais uma ,
basicamente, para que
tudo esteja pronto data. Porque é claro que
atualizamos a primeira execução após atualização também pode levar um pouco de tempo,
mas não se preocupe. Você pode ver agora que o cliente de
execução está realmente passando pela tarefa
agora está basicamente em execução. Você pode ver que estamos
passando por algumas coisas. Bem aqui. Diz normal. E então, na outra tela, a janela do micróbio
já está começando aqui. Nós só vamos virar isso e tudo
deve estar funcionando bem. Portanto, ele deve estar vendo a tela do
menu em apenas um momento. E lá estamos nós. Sim, lá estamos nós. Lá vai você. Então, tudo
ainda está funcionando muito bem. Mods, curso MC ainda
está aqui. Então, tudo está funcionando
muito bem e não se preocupe a atualização da nova versão forrageira. E agora podemos
basicamente passar
pelas palestras adicionais que serão muito,
muito interessantes. Então, há alguns tópicos
interessantes que basicamente
discutiremos nas próximas palestras. Alguns dos quais são definitivamente como, pessoalmente, meus favoritos. Há algumas coisas
realmente, muito legais aqui, mas isso seria praticamente para esta palestra aqui. Um muito curto só
para atualizar basicamente. E então podemos passar pelo
resto das palestras. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo
na próxima palestra.
98. (tópicos adicionais) como adicionar gotas de XP em blocos: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E então esta palestra,
vamos dar uma
olhada em como você pode adicionar gotas experientes
aos seus blocos ou. Agora, você pode se lembrar
que existem alguns
blocos específicos ou como Emerald, por
exemplo, que
quando você minerou, ele realmente
cai depois de minerá-lo. Suponho, por exemplo, ter o
cobalto cru no nosso caso, cair e depois
de sentir o cheiro, você teria a experiência. Agora, esse é, na verdade, um processo bastante
simples. Então, o que
podemos fazer é simplesmente pressionar a tecla Shift duas vezes e
procurar o bloco ou, certificando-se de marcar
esta caixa aqui. E então vamos
verificar este. E você pode ver que
podemos simplesmente para o bloco tem em um
uniforme int aqui. E esse será o intervalo de
experiência
que vai cair. No entanto. Na verdade, é tão fácil quanto
ir ao seu, por exemplo, vamos escolher o cobalto ou mesmo que não
devesse ter, isso é apenas um exemplo. Vamos mudar esse
bloco para ou bloquear, certificando-se de que eu
escrevo isso corretamente. Lá vai você. Vou pressionar a tecla Tab para completar automaticamente. E agora nada deve mudar. Isso ainda deve funcionar, mas precisamos adicionar um
segundo parâmetro aqui. E isso vai ser um trabalho
uniforme que você pode ver. E então vamos
dizer, por exemplo, algo como dois
ou, ou, e então será uma distribuição uniforme
entre 24. Também podemos passar o mouse
sobre a oferta. Eu acredito que isso deveria, na verdade, não nos oferece nenhuma ideia de como isso funciona, bummer, mas tudo bem. Acredito que
ambos são inclusivos. E também podemos, claro, verificar se um botão do meio do mouse
clicar sobre isso novamente
e, em seguida, clique no
botão do meio do mouse sobre isso. Posso ver, por exemplo,
no Emerald ou devemos ser capazes de
ver que o que eles estão
dando lá é, por
exemplo, aqui
entre 37 e o mesmo vale para a esmeralda de sono profundo. E então acredito que
há outra coisa. Então, por exemplo,
no diamante ou sim, é
claro que
também seria o caso. Este também fica entre 37. Então lá você pode basicamente
escolher o que você quer fazer. Então, vamos apenas fazer 37 também. Por que não? E isso é praticamente
tudo o que você precisa fazer. E agora a experiência
cairá depois disso, basicamente esse bloco é extraído. Seja cauteloso, é claro, que se você fizer isso
em blocos ou não. Então, se eu fosse fazer isso
nas escadas, por exemplo,
e, claro, recebendo
o bloco real de volta. Quero dizer, as escadas
seriam muito difíceis, mas talvez vamos
escolher outra. Esse é um mau exemplo. Na verdade, você sabe, qualquer outro bloco que seja apenas
um bloco que
digamos que as tábuas, por exemplo, se eu fizesse isso em nosso
bloco e eu
devolveria certo número
de experiência lá, eu posso basta configurá-lo novamente, ficar mais experiente,
configurá-lo novamente, ficar
mais experiente. Portanto, isso definitivamente
deve ser usado apenas para blocos, ou quatro blocos
que não se soltem. Essa é a ideia geral. Mas porque isso é
tudo o que precisamos
fazer para o bem da conclusão,
vamos ver se funciona. Ou nos encontramos de volta ao Minecraft e vamos apenas
colher algumas das ordens. E como você pode
ver, lá vai você. Na verdade, estou recebendo
experiência ao minerá-los. Como eu disse, este
exemplo é claro, um pouco não muito bom, claro que neste caso
porque quando nós realmente
cheiramos o cobalto ou
seríamos experimentados novamente. Mas talvez isso seja
algo que você queira adicionar. Quem sabe. Mas, como você pode ver,
é assim que pode ser fácil adicionar as
gotas personalizadas experientes ao seu cliente ou que já é isso para
esta palestra estão aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra.
99. (tópicos adicionais) como adicionar uma tela de menu personalizada: Ou eu dou as boas-vindas de volta ao curso de
forragem para 118. E nesta palestra
vamos adicionar uma tela de menu personalizada
ao Minecraft. Agora, é muito importante
que esta palestra e a próxima palestra sejam uma espécie
de parte um e parte dois. Porque na próxima palestra
, na verdade, vamos
adicionar conflitos ao Minecraft. E quando você adiciona uma tela de menu
personalizada, você definitivamente 1, 1000%
precisa configurá-la. Caso contrário, basicamente
seu MOD é imediatamente colocado na lista negra por qualquer pacote de
mapas. Porque, obviamente, um pacote de
marcas geralmente tem sua própria tela de menu e
você quer isso configurável. Vamos apenas passar por
isso no entanto. E, em primeiro lugar, vamos
começar com a tela do menu. Nesta palestra, vamos
substituir os lados
da montanha girando, por assim dizer, na tela do menu com nossa própria
tela de menu, apenas uma imagem. E para isso vamos
entrar em nosso pacote util, mouse em nova classe Java. E esta será a tela do título
da empresa. Lá vai você. E vou copiar
todo o código aqui,
mas tudo aqui está, é claro, mais
uma vez disponível para você no repositório
do GitHub e
individual também. E vamos dar uma
olhada no que tudo isso é. Número um, temos este local de recursos de
tela inicial é exatamente nossa
tela de menu de algodão personalizada que vamos basicamente bem impor lá
ou desenhar na tela do menu. E então também temos uma localização de
recursos para o logotipo da Microsoft, pois isso
tem que ser bem desenhado, mais ou menos acima da tela. É um pouco estranho, mas
basicamente explicarei no método render aqui. Então, o método de renderização,
vamos passar por algumas coisas. Primeiro de tudo,
vamos chamar o super na tela normal do Tidal. O que acontece então
é que eles são completamente normais A tela do
Tidal é desenhada. Então precisamos dessa
largura e altura inteiras. Só precisamos disso para
nossa tela de título personalizada. Deixe-me desenhar nossa tela de título
personalizada, basicamente acima da tela
normal do Tidal. E então também vamos
desenhar o logotipo da Microsoft. Isso é muito importante. Então aqui nós apenas
renderizamos o menu principal. Isso é apenas da Forge para que tudo funcione aqui. Deixe-me desenhar a corda. Esta
é a cadeia de direitos autorais no canto inferior direito. Isso é muito importante. Não exclua isso. Isso é muito importante que isso
realmente tenha que estar lá. Caso contrário, eu não tenho 100% de certeza, mas você pode estar cometendo uma espécie de fraude de direitos autorais
se você não tiver isso. Então, devemos ter
isso definitivamente isso. Os widgets aqui são
apenas os planos de fundo para cada um dos botões
no menu principal. Também podemos dar uma olhada no método de tela de título personalizado de
desenho. Então você pode ver que realmente
não é tão louco. Estamos basicamente apenas
habilitando uma configuração de textura, o tipo de como um
pouco de material habilitador. E estamos definindo a textura
real para a tela inicial aqui e
depois estamos desenhando. Então, o sangue basicamente desenha essa textura que definimos
no sistema Render. E depois disso, depois disso, desenhamos o logotipo do Minecraft. Então, definindo a textura
para o logotipo da Microsoft, estamos no próximo alvejante basicamente desenhando
a microflora. Essa é a ideia geral. E isso é apenas um código retirado
da própria classe de
tela do Tidal normal. Então, isso não é nada louco
demais. Isso é praticamente
tudo o que há para ele. Honestamente, realmente não
deveria haver uma loucura de coisas. Se você quer uma tela de título completamente
personalizada com coisas completamente
loucas, então você só precisa trabalhar em algumas
dessas coisas. Normalmente, o que a maioria das
pessoas só quer é substituir a imagem de fundo e é exatamente isso que
vamos mostrar aqui. Agora, isso vai
na GUI de texturas, no menu
Plano de fundo ou
na pasta em segundo plano. E então ele vai ser
chamado menu Copan dot re pack. E é exatamente isso
que vamos realmente obter isso na GUI e, em seguida, clique com
o botão direito do mouse novo diretório chamado plano de fundo. Então eu vou apenas
copiar a imagem, o
que, claro,
também está disponível para você se você quiser experimentar isso. E não vamos
estragar a aparência, mas não agora,
mas vai parecer
muito legal. Eu poderia te dizer isso. Então, o que fazemos depois disso? Bem, agora precisamos de alguma forma definir esta tela de título
e vamos fazer isso na aula do evento. Então, na classe de eventos de modo, vamos copiar sobre um método que é
muito, muito simples. Isso também não é muito louco, mas é claro que
também está disponível para você. Vamos usar o evento de
abertura de tela como você pode ver. E vamos verificar se
a tela que estamos tentando abrir
atualmente é
a tela de título e ainda não
é a tela de título
da nossa conta. Então, vamos
substituí-lo ou vamos criar uma nova tela de título de algodão
e enviá-la para ela. Isso é praticamente
tudo o que há para ele. Este é todo o
código que precisamos. Então isso talvez seja um
pouco mais complicado,
mas, no geral, espero que seja compreensível o que está acontecendo aqui em uma espécie
de visão geral. E então esse método e esse evento realmente devem
ser muito simples. Isso não é nada louco. E sim, isso é
praticamente o que
precisamos para esta
palestra aqui. Então, acho que vamos
ver se funciona. Mas o sol é,
claro, importante para ver o Minecraft começando. Então, vamos ver se nossa tela de
blocos personalizados está funcionando. Estou muito confiante de
que isso vai. E lá estamos, a
tela de título personalizada está funcionando exatamente como você
esperaria. Ainda temos o aviso de
direitos autorais. Até temos o material da forja
no canto inferior esquerdo. Temos o Minecraft, basicamente tudo aqui, que é exatamente o que você quer. Todos os botões ainda
funcionam totalmente bem. Então, tudo funciona de forma incrível. E eu não vou dizer
nada sobre nada, mas isso pode ser
apenas um pequeno spoiler de espreitadela, o que pode vir mais cedo. Mas de qualquer forma, isso é muito
legal e eu realmente gosto da imagem de fundo que
foi feita pela sua linha. O, é claro que vai
ser vinculado no arquivo de
créditos também. Então isso é
realmente incrível. Mas isso é realmente o
quão fácil é adicionar o
grito de título personalizado, como eu disse, recomendo assistir
a próxima palestra imediatamente depois para ver como podemos
adicionar alguns personalizados não fixos. Como adicionar o conflito
para tornar isso bem, basicamente configurável
é incrivelmente importante. Eu só, não posso
exagerar isso realmente. Por favor, adicione o conflito aqui. Caso contrário, é
basicamente o seu marr nunca será usado
por nenhuma marca nunca. Mas seja qual for o
caso, é
isso para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se você fez,
apreciamos muito uma avaliação sua. Caso contrário, verei
você na próxima palestra.
100. (tópicos adicionais) como adicionar Configs básicos: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra
vamos adicionar conflitos
personalizados ao Minecraft. Agora, este não é apenas um tópico
muito importante para a tela ou para a tela de título
personalizada que implementamos
na última palestra. Mas também é um tópico
muito importante e também altamente solicitado. Então, antes de tudo, precisamos
pensar em duas coisas, e isso é o comum
e os conflitos do cliente. Há também conflitos de servidor,
mas, por enquanto, vamos nos
preocupar com o conflito comum e com o cliente, quando pensarmos em nossa tela de título
personalizada, onde isso existe pois isso existe tanto no
servidor quanto no cliente, ou apenas no cliente. Portanto, a
resposta óbvia é, claro, que isso existe
apenas no cliente. Para aqueles que disseram, é
claro que é apenas
no cliente. Isso é muito bom para
quem disse,
bem, é em ambos. Bem, vamos pensar sobre isso. O servidor, se estivermos
executando um servidor,
o servidor se preocupa a tela de menu de
opções multijogador para um jogador. Agora, é claro que não acontece. Podemos até ver
isso se clicarmos no botão do meio do
mouse
na tela de título aqui, podemos ver que isso é
apenas neste cliente. Isso significa que basicamente
essa classe só
é executada no
thread do cliente, em nenhum outro lugar. Portanto, para basicamente
ativar ou desativar nossa tela de
título personalizada, precisaremos
implementar conflitos de clientes. E então também vou mostrar um ou dois exemplos de
alguns conflitos comuns. Esses seriam
conflitos que são tanto para o cliente quanto para o servidor. Agora, nesse caso, comum é uma
coisa interessante porque às vezes os conflitos comuns são
basicamente para o cliente
e o servidor. E então também há
apenas conflitos de servidor. Mas vamos
deixá-los de fora por enquanto depois de termos
visto como você pode somar o cliente e os conflitos
comuns. Ele também pode adicionar os conflitos do
servidor. Observe também que você não pode configurá-lo ou não pode tornar configurável cada pedaço de código
específico. Por exemplo, algumas
das coisas que não são realmente facilmente
configuráveis são, por
exemplo, a durabilidade
aqui da haste de dowsing. Como exemplo, você pode imaginar por
que podemos substituir isso um número configurável
que não funciona bem. Portanto, pode haver
algumas soluções alternativas, mas geralmente quando você
está registrando coisas, então agora estamos gravando
o método de registro. Em todos os lugares onde você está
registrando algo. Normalmente, você não
quer alterar esses números. Às vezes, é muito difícil dizer onde você pode
ou não pode fazê-lo. Eu só recomendo se você realmente quer
experimentar algumas coisas lá, experimentar, ver se funciona
ou não. Porque às vezes eles
podem ser uma incompatibilidade
do servidor e do cliente se
o cliente tiver um conflito
diferente e
diferente do servidor. E, portanto, isso pode
ficar um pouco estranho. Então, apenas tenha isso em mente. Você não pode necessariamente configurar tudo em nosso pacote de cursos
MC. Vamos clicar com o botão direito do mouse em
novo pacote chamado pacote de conflitos. E então eu realmente copiarei mais de duas das aulas
que vamos precisar. E, na verdade, vou
passar por todo o código, é
claro, está disponível para você no repositório do GitHub em um indivíduo também. Portanto, não se preocupe. E isso também não é tão louco. Vamos começar com os
conflitos do cliente aqui. Podemos ver que o que
você vai precisar é um construtor de especificações de conflito, que é igual
ao novo construtor. E então essa
especificação de conflito aqui. E então você pode ver
que você está listado são basicamente todos os nossos valores de configuração
estáticos. Você pode ver que
é genérico, então vamos
colocar em um tipo de dados
diferentes, basicamente, que são
nesses casos o que queremos
configurá-lo ou configurar. E então você pode ver neste bloco
estático aqui, apenas tendo um construtor para empurrar, é exatamente o que está escrito
na parte superior do arquivo de conflito. E então isso está sendo definido para ver, em primeiro lugar, um comum. Portanto, é se a tela de
título padrão será
ou não substituída. E então vamos
definir isso. Esse é apenas o nome
da variável, por assim dizer, e esse é o valor
padrão nesse caso. E então, olhando para os conflitos
comuns aqui, você pode ver que aqui nós
realmente vamos tornar configuráveis as
veias por pedaço e o tamanho das veias do cobalto. Ou isso é muito interessante
porque isso
também é algo que às vezes
pode ser configurável. Ou você quer que isso seja configurável, o que
é muito interessante. Então, o que vamos
fazer é antes de tudo, vamos usar
os conflitos do cliente, mas precisamos, claro,
também registrá-los. Então, como registramos aqueles
em nossa aula de mod de curso MC, na verdade só
precisamos adicioná-lo às coisas. E isso vai ser depois disso. O que vamos fazer
é dizer,
vamos fazer o mod
carregando no ponto de texto, obter essa configuração de registro. Vamos dizer dados de configuração
do motor. Você pode ver os tipos já lá. Vamos escolher o tipo de
cliente para o primeiro. Vamos dizer MC. Conflitos de clientes essa especificação. E então o nome do arquivo
aqui vai ser, deve ser o seu ID de
MOD, cliente Dash. E então muito
importante que o tâmil, isso tem que ser um arquivo HTML de ponto. Caso contrário, não
vai funcionar. Então podemos duplicar isso
pressionando Control D. E eu vou mudar isso
para o comum aqui. E então vamos
mudar isso para o curso MC, conflitos comuns. E então é muito importante que
mudemos esse nome também. Você pode ver agora
que temos ambos, bem, em cadastrados fixos e
isso é tudo o que
precisamos fazer para registrar
esses conflitos. Então isso é tudo o que há para isso. Agora, como os usamos? Bem, é bastante
simples. Temos esse campo aqui. Então, vamos entrar em nosso código. Na verdade, não é a tela de título da
coluna. Na verdade, queríamos fazer
isso na classe de eventos MOD aqui
mesmo nesta declaração if, basicamente queríamos dizer conflitos de cliente do curso
MC, que o ponto
da tela de título personalizado obtém. E então vai acabar com isso. Então isso precisa ser verdade, e tudo isso também
precisa ser verdade. E então nossa
tela de título será substituída apenas por uma questão de
conclusão, vamos também
usar imediatamente a veia para coisas de tronco. Então, isso vai
ser no mundo. O primeiro vai estar
no lugar características que eles atrás. Estas serão as
veias por tronco. Então este vai ser o curso MC, conflitos
comuns pontuam o ponto de
Paine por pedaço. Vamos apenas ler. Sim, está tudo bem. E, em seguida, o
outro deve estar
nos recursos configurados. Então este vai ser o,
este aqui mesmo. Este é o tamanho da veia
para isso seria o curso MC conflitos comuns tamanho da
veia que obtém, o que vamos fazer é que vamos deixar isso funcionar
uma vez para que os
arquivos aqui gerem, então os arquivos fixos reais se regeneram e, em seguida,
vamos
alterar os valores
dentro deles. Mas vamos executar
isso uma vez e vamos ver
os
arquivos de conflito gerados. Primeiro de tudo, você pode
ver que o Minecraft foi carregado e a tela de título ainda
está lá porque é claro que o valor padrão aqui era verdadeiro. E o mais importante, agora
geramos os arquivos de configuração. Eles estão sob a
configuração da pasta R1 e lá vai você. Cliente do curso
Mc e curso MC comuns. Se os abrirmos, você pode ver que basicamente estamos
recebendo exatamente isso. Você vê conflitos
para MC core smart
e, em seguida, se a tela de
título padrão será substituída. Nós mudamos isso para falso
agora e salvamos. E então aqui, vamos apenas, vamos ficar absolutamente loucos nisso só
para termos isso. Então, vamos. Então, por enquanto, vamos fazer muitas veias por pedaço, muito tamanho de veias, só para que possamos
ver que isso vai funcionar e isso
afetará a geração mundial. E sim, isso é
praticamente tudo o que
precisamos fazer para mudar
os conflitos. Eles, é claro,
também estão disponíveis para os usuários, para os jogadores
e, em seguida, eles podem alterá-los como quiserem. Então, definitivamente, certifique-se de
ter comentários adequados aqui. Haverá
este aqui. Como você pode ver, isso é o que
foi escrito como um comentário lá. Então isso é praticamente
tudo o que você precisa fazer. Então, agora depois de mudarmos
os conflitos, vamos ver se, por
exemplo, antes de tudo,
a tela de título mudou e, em seguida, também a
geração mundial também. Tudo bem, como você
pode ver o número um, a tela de título real mudou de volta para a tela
normal do Tidal. Mas isso é muito interessante. Agora vamos realmente gerar
um novo mundo aqui e ver se Então, na hora
da geração mundial, cobalto ou vai ser exibido de uma forma mais
formas do que antes. Ou se responder no Minecraft. E como você pode ver, eu não
tive que ir muito longe para encontrar uma abundância
do ou, certo. Você pode ver que não só
as veias reais são maciças, mas muitas delas. Como você pode ver, estas
são duas veias diferentes, três veias diferentes, como
bem próximas uma da outra. E então você pode ver
isso continua e continua. Na verdade, posso ir para o modo
espectador novamente. E você vai ver que
há muitas dessas veias. Então você pode ver claramente
que, mesmo que isso
definitivamente não seja algo que você necessariamente queira ter, mas é definitivamente
configurável. E isso é praticamente
exatamente o que
esperaríamos desses ou
conflitos para então fazer. Então isso é muito legal. Mas há outro método que podemos
chamar e que é o definido em uma
lista definida, mas definindo o intervalo, que também é bastante
interessante. Então este aqui
basicamente faz o seguinte. Você também pode definir um valor
mínimo e máximo. Portanto, isso também pode ser
muito interessante e importante para você
basicamente dizer, você sabe, talvez o número de
veias por tronco e o tamanho das veias deveriam ser
mantidos em certos valores. Ou talvez, você sabe,
alguns valores que você queria tornar
configuráveis possam realmente ser quebrados se
não estiverem entre certos números. Portanto, tenha isso em mente também, que você também pode fazer isso. Mas, por enquanto,
vamos manter isso indefinido. Só queria te mostrar isso. Eu também posso sempre
gostar de todas as vezes, apenas aconselhar você a brincar
com isso um pouco. Veja o que você pode mudar
basicamente, que tipos de coisas podem
funcionar e quais não funcionam. Portanto, há
muitas coisas que podem funcionar e talvez não. Portanto, tenha isso em mente. Mas, caso contrário, é
praticamente assim que você pode adicionar
conflitos personalizados ao Minecraft. E o mais importante,
como você pode configurá-lo ou entrar em conflito, criar um conflito para sua tela de título
personalizada, porque isso é
extremamente importante. Se você tem uma tela de título
personalizada que você faz para que
você possa desligá-la porque caso contrário você nunca
será usado para pino de
RMN
incrivelmente importante. Então, por favor, tenha isso em mente. Caso contrário,
isso será para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se você
agradeceu muito a revisão de você. Caso contrário, te vejo
na próxima palestra.
101. (tópicos adicionais) como adicionar blocos transparentes: Ou eu dou as boas-vindas de volta ao curso de
forja por 180. E nesta palestra
vamos adicionar um bloco transparente
ao Minecraft,
esse comércio por
demanda popular, já que algumas pessoas tiveram algumas lutas com a adição um bloco transparente
ao Minecraft. No entanto, na verdade
não é tão louco se você conhece os dois ou três ajustes
muito importantes
que você precisa fazer. Então, na nossa classe de blocos de modo, vamos apenas
no fundo aqui. Só vou copiar
sobre a amostragem. Agora há algumas coisas
que precisamos mudar aqui. Isso vai ser chamado
de janela de inverno. E isso é claro, também a janela de inverno. Então, antes de tudo, em um volume
completamente normal aqui, e então isso será
um bloco de vidro. Isso é muito importante que
este seja um bloco de vidro. Isso exigirá apenas as
propriedades reais do comportamento do bloco aqui. E então o que vamos
fazer é copiar do bloco de vidro
também das propriedades. Você entra no bloco de vidro, clique no botão
do meio do mouse e, em seguida, o botão do meio do mouse clica novamente no bloco de vidro
abstrato. Podemos ver esse número um, o que precisamos é
que propaga clarabóia para baixo e também o brilho da forma.
Temos forma visual. Na verdade, não tenho 100% de certeza do
que isso necessariamente ao anoitecer. Eu só sei que todos eles
são basicamente importantes para conseguir um trabalho de bloco
transparente. É por isso que vamos
usar o bloco de vidro. Isso é basicamente
também um bloco de vidro, então não se preocupe lá. Agora, o que também precisamos em nosso MC para classe inteligente
na configuração do cliente, vamos copiar
sobre a camada de renderização aqui. E isso vai obter a camada de renderização da janela de
inverno, e desta vez translúcida. Então, ele terá
a
mesma camada de renderização que o fluido do bloco de mel, que também é
claro que é translúcido. Isso é muito importante,
caso contrário, não
funcionará. E então, é claro,
todas as coisas de ações como apenas o bloco
Estados Jason aqui. Apenas um palco normal Jason, mesmo com a tradução. Tudo isso é
praticamente apenas padrão. A única diferença
aqui é então, claro, uma vez que
adicionamos isso, a janela de inverno aqui, os arquivos de modelo,
todas as mesmas coisas, então são apenas arquivos de modelo normais. Também poderíamos copiar os outros arquivos de modelo normais e
ver isso
aponta para uma textura. E então o mesmo praticamente
com o arquivo do modelo do item. E, claro, também estão disponíveis se você
quiser copiá-los. Mas, como você pode ver,
existem arquivos normais, nada louco sobre eles. Praticamente a
variação mais fácil desses arquivos. E então, o que é
claro que é importante para a textura que também
copiarei. E você vai ver
isso, isso aqui. Então, todo o tipo
de blocos internos, esses são os que têm um valor alfa que é
um pouco transparente. Portanto, é claro que isso é muito
importante que, se você tiver um PNG que você queria usar e alguns de seus pixels reais precisam
ter valores alfa
que você possa examinar. Caso contrário, é
claro que não funciona bem. Caso contrário, o transparente
não funcionará corretamente. Portanto, tenha isso em mente. Mas, de outra forma, isso é
realmente tudo o que precisamos
fazer passando por tudo. Praticamente o mais
importante é o translúcido. Assim, temos valores alfa
em nosso arquivo PNG real. E também estamos usando o bloco de vidro, o que
é muito importante. Acho que veja por
causa da conclusão, vamos ver se funciona. Tudo bem, somos financeiros no Minecraft e, como você pode ver, a janela de inverno foi adicionada
com sucesso ao jogo. E como você também pode ver, eu posso olhar através dele. Não se preocupe, embora
tudo funcione bem. Quero dizer, é assim que é
fácil adicionar um
bloco transparente personalizado da marca Minecraft que já é para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
102. (tópicos adicionais) como adicionar itens animados: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos adicionar um item animado ao Minecraft. Então isso pode ser como, Uau, isso é uma coisa muito legal. E pode ser, você pode dizer, bem, isso provavelmente vai
ser muito complicado. Na verdade, é bastante
simples. Mas vamos ver um item
animado personalizado nesta palestra. E então mostrarei um exemplo de baunilha
de um bloco animado. E então, se você quer um bloco
animado basicamente, então eu posso
recomendar dar uma
olhada nesse exemplo de baunilha. Na classe mod items, vamos adicionar um novo item. Então, vamos apenas copiar sobre a bola de
cobalto aqui. E esta será
a poeira mágica sublinhada. E então o mesmo aqui
no nome. Este vai ser o pó
mágico sublinhado. E isso vai ser um item
normal,
curiosamente. E nós vamos
fazê-lo para que ele
basicamente não tenha outras
propriedades de itens aqui. Vamos ter
o item normal,
completamente baunilha. Nada de louco sobre isso. E vamos realmente adicionar a tradução antes de
entrarmos no, para as outras coisas reais. Então, o outro item
modela arquivos adjacentes. Então, haverá
a magia da poeira e esta também
será a poeira mágica. Agora, você pode estar dizendo: Bem, isso provavelmente vai ser uma consulta complicada e complicada é um
modelo de item complicado Jason arquivo aqui. Vamos apenas copiá-lo. Claro, tudo
disponível para você
no repositório do GitHub em
indivíduos também. E você pode ver que é um
arquivo JSON completamente normal para o modelo do item. Ou você vai ficar como,
esperar, onde está? Onde está a animação? A animação está toda na textura, bem
como no metarquivo
MC. Aha. Vamos copiar essas informações,
que, naturalmente,
também estão disponíveis. E então você pode ver
que temos o número um, a textura real,
bem como um metarquivo MSE. E se dermos uma
olhada na textura, na
verdade é várias texturas
diferentes. Então você pode ver que
essas são, de fato seis texturas diferentes
para o mesmo, bem, é o mesmo item. No final, saia basicamente 16 vezes,
no entanto, muitas texturas você tem vezes 16. Então essa é a ideia. Portanto, é 16 por, neste caso, 96 é um tamanho aqui, e o metarquivo MC
determina como você
realmente passa por isso. Você pode ver que isso
é uma animação. Pode alterar o tempo de quadro para mudar
basicamente a rapidez com que a animação é. E então aqui você
pode basicamente dizer quais quadros
serão colocados em qual ordem. interpolação
significa simplesmente que quando um quadro mudar para outro é mudar será discreto. Então, ele vai mudar de uma imagem e, em
seguida, na próxima, digamos em segundo lugar,
veja outra imagem. Onde isso vai fazer a
transição por eles? Essa é a ideia geral de
interpolação neste caso. Mas isso é realmente o quão fácil é adicionar um item animado. E então isso
vai animar imediatamente,
desde que você tenha o arquivo
MC Mehta aqui. O que é muito importante
é que essa metáfora do MC tenha que ser escrita
exatamente assim, incluindo o ponto PNG aqui. Certifique-se de que isso
esteja escrito corretamente. E, como a lista de verificação dupla e
tripla, é incrivelmente
importante que este seja o mesmo nome
do arquivo de textura, incluindo o final e o ponto MC Mehta. Por favor, verifique isso. Então, quando se trata do livro, podemos ir para as
bibliotecas externas, é claro, mais
uma vez para o cliente extra 1801 ou qualquer que seja sua
versão, ativos, Minecraft,
texturas, Bullock. E então uma coisa a dar uma
olhada é o bloco magma. Então este também tem um arquivo
MC Mehta e você
pode ver que existem na verdade, três texturas
diferentes que o ID passa. Isso, como você pode ver aqui, com o tempo de quadro de oito, passa por todos esses três
quadros e em seguida, muda a
textura aqui também, mesmo com o outro portal. Então você pode ver que o portal
nether realmente tem muitas
texturas diferentes como você pode ver, ele passa, Bem, quero dizer, aparentemente
passa por tudo. Não tenho 100% de certeza de como a
animação aqui está vazia. Não tenho certeza de
como isso funciona, mas esse também é
outro exemplo. Eu pessoalmente recomendo
o exemplo do magma. E acredito que é
praticamente todo
o tipo de exemplos
muito loucos aqui, repetindo o bloco de comando. Mas há algumas coisas
aqui ainda lá. Mas o macrobloco
é provavelmente o mais fácil de seguir e deve ser. Quero dizer, é como se
fosse bastante sensato, bastante simples,
tudo considerado. É praticamente o
mesmo que o da poeira mágica. Mas sim, isso é praticamente tudo o que queremos
dar uma olhada. E agora acho que, por causa de
conclusão, vamos
ver se funciona. Ou nos encontramos
no Minecraft. Então, veremos que
o pó mágico foi
adicionado com sucesso ao jogo. E como você pode ver, enquanto
eu estou segurando na minha mão, vamos escolhê-lo
Southern só tenho um. Você pode ver que
é um lenta mas seguramente animado e eu posso
até jogá-lo no chão. E você pode ver
que mesmo eles são, a textura real também
é animada. Então, na verdade, é o
quão fácil é. E como eu disse, você pode basicamente alterar a
velocidade da animação alterando o tempo de quadro
dentro do arquivo MC Mehta. É assim que pode ser fácil. Isso já está para
esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo
na próxima palestra.
103. (tópicos adicionais) como adicionar efeitos personalizados: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra,
vamos dar uma
olhada em como você pode adicionar um
efeito personalizado ao Minecraft. Agora, a adição
do efeito do cliente
realmente vem bem, mais ou menos, graças a um aluno que
adicionou seu próprio efeito. E eu meio que cooptei efeito
deles e fiz
uma palestra sobre isso. Então, é claro, você sabe em quem
você está pensando muito. E é um efeito de congelamento. Na verdade, é
realmente interessante. Então, ele vai congelar
uma entidade no lugar. E vamos
ver como isso funciona. Na verdade, é mais
direto do que você imagina em nosso pacote de cursos
MC. Clique com o botão direito em novo
pacote chamado efeito Então, em vez de
lá, vamos
precisar de duas novas aulas. Uma delas é a classe de efeitos do
modelo. E então o outro
será o efeito de congelamento. A classe de efeito de congelamento é onde toda a funcionalidade está inserida. Eu simplesmente copiarei
sobre a classe como, como sempre, é claro, tudo disponível para você
no repositório do GitHub e
individual também, pronto? Então aqui você pode ver o efeito de
congelamento em ação. É bastante simples. Todas as coisas consideradas,
substituímos o método de tick de
efeitos de aplicação, que basicamente será
chamado de cada tick quando uma determinada entidade
tiver esse efeito sobre ele. E então também temos o carrapato de efeito de
duração. É verdade, porque se
não tivermos esse tempo, basicamente isso nunca
seria frio. Então, é isso que precisamos. Aqui. Você pode basicamente ver que se refere a todos verificando
se
estamos ou não no servidor. Se estivermos, então estamos tomando
as coordenadas XYZ
dessa entidade específica que
tem esse efeito sobre a mortalidade, relatando a entidade a ela e também definindo o movimento
Delta como 0. Então isso é necessário para
o jogador basicamente, e isso é necessário para, bem, animais ou qualquer NPC basicamente. Então, qualquer entidade não jogador, simplesmente por causa do fato que o
movimento Delta é, bem, o que basicamente move
o animal real e eles
se teletransportam para, não apenas a primeira
linha dois faz não funciona. Então, essas são as duas
coisas que precisamos. E se adicionarmos esses dois, então a multidão real,
ou, neste caso, a entidade ou o jogador congelará
no lugar. Muito legal,
como uma ideia muito legal. E eu realmente gosto disso. Então, como basicamente, a questão é, como registramos
isso? Bem, você já viu isso antes. Final estático público,
o que precisamos? Claro, um registro diferido, desta vez de um efeito multidão. Isso será chamado de efeitos de sublinhado da
MLB. E isso é claro que é igual ao que é um registro
diferente que cria registros de efeitos de
ponto mlb. E, claro, nosso núcleo MC,
inteligente, mas não ID. E como todas as vezes, como vimos um terceiro
registro, o que precisamos? Precisamos de um
vazio estático público ou
método de registro com um barramento de evento ocular,
ônibus de evento inteiro. E então estamos chamando
os efeitos da MLB ou registramos e passando
no barramento do evento. Nada de novo demais aqui. Isso é praticamente como toda vez que vimos
os efeitos aqui. E então isso será chamado mais uma vez,
é claro aqui. Então, basta explodir nossas receitas mod. Vamos dizer efeitos máfia que
se registram e depois passam
no ônibus do evento. E lá vai você,
Tudo está registrado. Só precisa de um
objeto de registro aqui. Então vamos dizer,
estático público, objeto do Registro final. Claro do tipo de efeito mob. Neste caso, ele vai ser
resfriado congelamento e é igual ao efeito
mob começa
a registrar o nome congelar aqui. E então vamos precisar um fornecedor de um
novo efeito de congelamento. Como você pode ver, a categoria Mob
Effects prejudicial. E então,
basicamente, qualquer número. Este é um, acredito,
um identificador único. Dê uma olhada nisso. Esta é, na verdade,
esta é a cor. Lá vai você. Essa é a cor. Isso é o que é. Mas essa é a
cor de eu acredito, a porção que
estaria associada a ela. Agora não vamos adicionar a
parte nesta palestra. Na verdade, vamos
adicionar a parte na próxima palestra. Mas depois de ter adicionado isso, o efeito de congelamento é
realmente no jogo. Agora, isso é tudo o que
precisamos fazer para adicionar isso. Sei que é uma loucura, mas isso é tudo o que precisamos fazer. Então eu acho que veja se funciona ou nos encontramos de
volta ao Minecraft. Então, vamos ver, vamos me
dar o efeito. Vamos dev. E então você pode ver esse efeito de congelamento
existe, a menos que o adicione. E agora não consigo me mover. Você pode ver que é
meio nervoso. E eu adicionei isso por
trinta segundos neste caso. Então eu não posso realmente
voar um pouquinho, mas se eu tentar me mover, você pode ver que é
muito, muito lento. Neste caso. Sei que se estou no
chão e tentar me mover, estou pressionando a tecla W. Funciona como muito, muito devagar. E até mesmo, você sabe,
dar a volta por aqui é, você pode ver que é definitivamente congelante se encontrar meio no lugar. Agora ainda posso
quebrar blocos que um banco de olhos, mas isso funciona. E você também viu que a textura real não
estava lá. Vamos adicionar
essa textura também. Na verdade, é bastante
simples, mas isso é bem legal. Todas as coisas consideradas. A textura vai para
a pasta de texturas. E aqui precisamos de um novo diretório chamado mob underscore effects. E então a
textura real precisa ter o mesmo nome que o
nome aqui. Portanto, nos efeitos MLB, esse nome tem que ser esse nome. E agora, em vez de uma textura
não descritível, essa textura será
exibida e bem, quero dizer, basicamente
vai funcionar. Agora, como eu disse
na próxima palestra, vamos
adicionar imediatamente uma parte para isso porque faz sentido em minha mente
ter uma parte. Isso é o que basicamente você
pode usar também. Por enquanto,
isso é
praticamente para esta
palestra aqui. Espero que você tenha achado útil
e amarelos e o devido. E te vejo
na próxima palestra.
104. (tópicos adicionais) como adicionar poções personalizadas: Ou eu dou as boas-vindas de volta ao curso de
forragem para 118. E nesta palestra
vamos adicionar uma poção do cliente, incluindo uma
receita personalizada de vassoura ao Minecraft. Agora, a porção real
é muito fácil de adicionar. A receita de fabricação de cerveja,
no entanto, é, bem, digamos que seja um pouco intrigante por que funciona da maneira que funciona, mas não se preocupe,
vamos superar isso. Bem, em primeiro lugar, no pacote do curso MC, clique com
o mouse em novo pacote
chamado porção. E então, dentro de lá, vamos fazer um novo mod oceanos do corpo docente da
classe Java. E isso vai
parecer estranhamente semelhante ao que basicamente muitas outras classes que já
vimos antes. Um registro
diferido final estático público do tipo oceano desta vez. E vai ser
porções,
é claro, será igual
ao registro diferido que cria registros, oceanos
escuros vão. E, claro, MC, claro, ID
moderado ou leve. E então você precisa do método de
registro vazio estático público como sempre, com o olho Event
Bus, Event Bus. E então vamos
fazer poções de
registro de pontos com o ônibus
do evento. E então vamos chamar isso
no construtor de cursos MC aqui, mod poções, eles atrás se registram e depois passam
no ônibus do evento. E então só precisamos
criar a poção. Então, haverá um objeto de registro
estático público , é
claro, do tipo oceano. Vá. E esta será a poção de sublinhado de
congelamento é igual a poções
que se registram. Esta é a poção
sublinhada do friso, novamente, o nome aqui. E então isso está exigindo um
fornecedor de uma nova parcela. Isso vai precisar de uma
nova instância de efeito mob. Lá vai você, de nossos efeitos. Então mod efeitos de congelamento escuro, aquele que adicionamos a
última palestra. Só vou fazer dez
segundos com o lobby. Basicamente, o amplificador é 0 aqui. Então esse será o
número de vezes mais tarde em tiques, e este
será o amplificador. Então, se estamos colocando um 0 aqui, e isso vai
ser um nível um. Isso vai ser
congelamento voador no nível um. E isso é, na verdade,
tudo o que precisamos
fazer para adicionar a porção real. Agora, para a receita de fabricação de cerveja, vamos realmente
fazer uma nova aula. Agora isso é muito interessante
porque na verdade existe uma classe que é chamada
de receita de fabricação de cerveja, acredito que sim, da micro forja. Então você pode ver que esta
é uma receita de fabricação de cerveja que implementa essa interface de receita eu
arruinei. E isso funciona e
podemos usá-lo. O que é realmente interessante
é que, para a entrada, ele realmente não
olha para o que, vamos dizer qual é a
parte real é que você
precisa colocá-lo, mas você sabe como você pode colocar
em um certo ingrediente na parte superior do suporte de
fabricação real
e, em seguida, na parte inferior, você tem três slots para
diferentes porções. E geralmente como
funciona, pois você precisa uma poção estranha para fazer isso e outras
postagens específicas para fazer isso. E ao usar esta receita de fabricação de
cerveja, simplesmente não
importa como é a entrada. Não, não
verifica se
é ou não a parte real. Portanto, essa classe de fabricação de cerveja
é praticamente inútil e não
precisa ser usada. Agora encontrei uma parede, uma alternativa que
chamei de melhor receita de fabricação de
cerveja. Agora vamos
copiar isso. Isso está realmente
no pacote util. E o não exatamente o mesmo, mas o nome é diferente. A classe é exatamente
a mesma do repositório do GitHub
aqui a partir de partes
extras e depois por baixa. Então, isso está sob a licença
GPL três. Portanto, esteja ciente disso quando
você estiver usando essa classe. Só dizendo, mas
no geral, quero dizer é praticamente,
não há outra maneira de fazer isso realmente quando estou
pensando nisso. Então eu passei por isso
e estamos tipo, Ok, sempre vai parecer
exatamente o mesmo praticamente. E esta é a melhor
maneira de fazer essa aula realmente. E então podemos usar isso melhor
nos custos da receita de fabricação de cerveja. Para realmente adicionar a receita, só
precisamos adicionar uma receita. Então, isso vai
funcionar imediatamente para a poção de barra,
a porção normal e
a porção persistente. Então isso é muito legal. Agora, quando adicionamos essas receitas de
porção
no método de configuração em nossa configuração
comum FML aqui. Quando queremos
fazer, você quer dizer registro de receitas de fabricação de cerveja, este aqui, adicione receita. E então
vamos fazer uma nova e melhor receita de cerveja. Lá vai você. E então
temos a paixão, qual parte queremos. Então, isso vai ser empurrando o
começo estranho neste caso. Em seguida, o ingrediente real. Então, isso vai ser um item. Então vamos dizer mais
itens que lingote de cobalto, digamos que isso vai ser a raiva
do cobalto, certo? Lá. Eles vão, pontuam e
depois mod porções. Porque é claro que
o resultado real ou a saída deve
ser a poção de congelamento. E eles vão agora colocando em posições estranhas
na parte inferior e um lingote de
cobalto, pois o gradiente nos dará uma poção de congelamento. Isso é tudo o que precisamos fazer. Isso é, na verdade, o quão fácil é. Agora, para as poções, também
precisamos adicionar
alguma tradução. Isso é muito importante na verdade. Há poucas coisas
que precisamos adicionar. Primeiro de tudo, precisamos
adicionar esses três aqui. Então este vai ser o, você pode ver que esta é poção de congelamento de efeito de
porção, poção para o respingo e
a porção persistente. Incrivelmente importante. Na verdade, isso está sob
o namespace Minecraft. Não tenho 100% de certeza
por que esse é o caso. Quero dizer, tenho 80% de certeza
por que esse é o caso. A ideia é que quando você está registrando uma porção, quando você está fazendo uma nova
poção, por assim dizer. Então o que acontece é que
isso só é adicionado ao. A
lista de porções real no Minecraft e , em seguida, esta está sob o registrado sob o namespace
Minecraft. Não tenho 100% de certeza se isso é uma coisa ruim ou uma coisa boa. Quero dizer, pode ser uma coisa ruim por
enquanto. Vamos mantê-lo assim. Se houver algum
conflito no futuro, vamos resolvê-los
também. Não se preocupe lá. Mas essa é basicamente
a ideia dos oceanos. E agora também precisamos do efeito. O efeito se parece com isso. Vamos adicionar isso
na parte inferior. Este efeito ponto M
C corps congela, e isso é apenas congelamento de código. Essas são as traduções que
são incrivelmente importantes. Agora também o que é
interessante para o item, para os itens de poção gerados automaticamente. E não precisamos fazer
nada por eles. Então, isso é praticamente
tudo o que precisamos fazer. A cor da porção real é retirada dos
efeitos mod aqui. Então essa cor aqui é basicamente o que
vai ser usado. Não tenho 100% de
certeza do que é isso. Pode ser apenas uma cor hexadecimal. Não tenho certeza.
Também pode ser outra coisa, mas isso vai ficar bem. Isso é apenas brincar
com isso também. Se você quiser. Algumas outras cores são
por enquanto, isso é praticamente tudo o que
precisamos para o costume, tanto a porção personalizada
quanto a receita aqui a ser adicionada. Então, acho que vamos
ver se funciona. Ou nos encontramos
no Minecraft. Então, vamos ver, vamos apenas
adicionar as porções de água e em seguida, um lingote de cobalto e
ele deve começar a fermentar. E, de fato,
ele começa a se preparar. E
assim que isso tiver feito, as poções estranhas devem
se transformar em porções congeladas. Então, vamos pegar algumas ovelhas só para ver se elas
serão
ou não basicamente congeladas no final. Vamos ver. Aqui, estamos quase acabando, e depois
teremos algumas poções. Vamos. Então, temos
uma poção de congelamento e outro movimento de congelamento e uma
porção congelante persistente também. Então, tudo funciona
exatamente como você esperaria para uma ovelha ou se mataria. Isso é incrível. Uau, isso é muito engraçado. Vamos ver. E lá vai você. E então você pode ver
que eles não podem mais se mover. Posso até atingi-los e
eles não podem se mover porque a porção de congelamento está literalmente
congelando-os no lugar. Também podemos tentar a mesma
coisa para alguns zumbis, que é muito divertido porque basicamente eles
tentaram persegui-lo e então, oh, bem, quero dizer, eu acredito que estou em paz, então lá vai você. Vamos copiar isso e, em seguida,
vamos mudar
para a sobrevivência e depois
vou tentar pegá-los. E lá vai você. Então,
o pequeno zumbi, como você pode ver,
parou de se mover. Vamos realmente obter algumas porções mais congelantes
splash poses aqui. Só para que você possa
mostrar isso novamente. Mais uma vez,
vamos mudar e eu vou
congelá-los. Congelar. E congele também. Oh
não, eu me congelei. Isso não é bom. Podemos ver que, é claro que
às vezes também pode acontecer, mas é muito legal. E sim, isso é realmente o
quão fácil é
adicionar não apenas porções personalizadas, mas também
receitas de porções personalizadas ao meu ofício. Sempre tem os
trimestres inteiros, é claro, disponíveis para você
no repositório do GitHub ou um
ajuste individual também. Mas isso vai ser para
esta palestra aqui. Espero que você tenha achado
útil e
aprenda algo novo se você o fizesse, eu agradeceria muito
uma revisão sua. Caso contrário, verei
você na próxima palestra.
105. (tópicos adicionais) como adicionar entidades personalizadas com Geckolib: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra, vamos adicionar uma entidade personalizada ou uma multidão
personalizada ao jogo. Este será o
início de uma
série, digamos, algumas partes de palestras em que
basicamente vamos adicionar mais
funcionalidades à nossa entidade. Vamos
, em primeiro lugar, adicionar uma entidade normal ao jogo
do que adicionar
algumas animações. Então, na próxima
palestra depois disso, vamos fazer disso uma mesa. Vamos adicionar variância
diferente dessa entidade em particular. E, no final, também
adicionaremos uma entidade que
será gravável. Então todas essas coisas
basicamente nos aguardam
nas próximas palestras. Agora, o que vou dizer é que cada entidade
que vamos adicionar, vamos adicionar duas entidades e ambas
usarão as bibliotecas da API labial da gecko. Mesmo que não seja estritamente
necessário, isso sugere uma multidão normal
sem animações adicionais. Eu ainda recomendo
basicamente sempre
usar apenas a biblioteca glicolipídica
para adicionar as entidades. Porque isso, definitivamente,
torna muito mais fácil de muitas maneiras. Basicamente, isso só
facilita. E então, antes
de tudo, vamos
configurar o lábio de gecko. Para isso. Nós vamos basicamente copiar
este sobrescrever aqui. Então este é o, como você pode vê-lo no GitHub, o guia de
instalação do wiki gecko lib. Basicamente,
vou copiar isso. E então vamos
voltar para aqui, entrar no nosso arquivo
DOD Gradle criado. E este, o primeiro que
copiamos ele ia para os repositórios
bem aqui. Então, só vou
adicioná-lo bem ali. E então o outro,
este aqui. Nesse caso, vou
deixar esta
já deve ser a versão
mais nova aqui, 3011 neste site. Não tenho certeza se isso é atualizado enquanto toda vez que uma
nova versão for lançada, mas espero que isso
vá abaixo de um
Minecraft aqui. Então, isso deve ser
tudo o que precisamos. E agora podemos carregar
as alterações do Gradle. E basicamente
vai baixar
a versão dos glicolipídios e
irá implementá-la para que
possamos basicamente
usar o
EPI labial gecko em nosso mod também. E depois disso, mais uma
vez, pode levar um minuto, pode levar trinta segundos. Depende de muitos fatores. Basicamente, você pode
ver, na verdade, foi bastante rápido ano 21 segundos. Isso é muito bom. Então a pergunta é, bem, onde estamos tirando
nossas entidades? Bem, para nossas entidades, vamos usar o banco de blocos. Block bench é um programa com o qual você pode
criar modelos genéricos. Você não poderia fazer
modelos de blocos nenhum dos modelos. Já vimos isso, mas
também podemos criar entidades. Agora, o importante
é que você tenha os plugins de arquivo abaixo e você tem o lábio
gecko Animations, Animation utils bem aqui. Então, vamos precisar
desse plugin em particular. Caso contrário, não
vai funcionar. Portanto,
certifique-se de instalar isso. Basicamente, vá para disponível
e, em seguida, procure por ele. Agora não estou recebendo porque
ele já está instalado. Você pode ver instalar isso
e, em seguida, você deve ter a possibilidade de adicionar o
modelo animado labial gecko aqui. Agora já tenho
algumas coisas preparadas, então temos um guaxinim
e um tigre. Em primeiro lugar, vamos usar
os guaxinins. Eu só vou abri-la e
você pode ver, lá vai você. O guaxinim já
feito aqui. E bem, quero dizer, basicamente, este guaxinim também
já está animado, então nós realmente temos três
animações aqui. Vamos dar uma
olhada nas animações na próxima palestra um pouco mais de detalhes
por enquanto, o que vamos fazer é exportar isso. O que vamos
fazer é quando
criarmos uma entidade personalizada. Então, para usar o modelo real de
guaxinim em nosso projeto e nosso MOD, você precisa exportar isso. Então, vamos para a Exportação de Arquivos e depois Exportar modelo labial de gecko. Se isso não aparecer, você pode clicar em Convert
project e
certifique-se de escolher basicamente o modelo animado labial
Kekule. Se este ainda não for o formato atual, então a exportação real
aqui deve aparecer. Podemos então usar isso e
depois salvá-lo no arquivo JSON de ponto GO guaxinim. Só vou substituir. Isso vai ficar bem. E agora eu exportei
o modelo na verdade, e já podemos usar isso
dentro do nosso jogo. Eu também tenho a textura, eu tenho isso realmente separado. Você também pode, em
teoria, salvar isso
do arquivo de
bancada de blocos real também. Mas vamos ficar bem. Como eu disse, as animações que
vamos ignorar completamente
por enquanto. Vamos usá-los
na próxima palestra. Vamos voltar para o IntelliJ. E o que vamos fazer é
fazer imediatamente uma nova pasta no curso MC da pasta de
ativos. E então aqui vamos
fazer a pasta geo. E isso vai obter
o arquivo guaxinim GeoJSON. Eles vão. É basicamente
assim que se parece. Pode haver um erro de digitação aqui
em algum lugar, isso vai ficar bem. Acredito que
seja o que for chamado neste arquivo, na verdade, não importa. E então também precisamos é
que, na verdade, também
precisaremos obter o arquivo de textura. Claro. O arquivo de textura realmente vai
para as texturas, é claro. E então, em vez da
entidade puxada para cima aqui, entidade e, em seguida, o
nome da entidade. No nosso caso, isso vai ser e então eu vou copiar
a textura real aqui. Lá vai você. Esta só será a textura
do guaxinim. Vou basicamente
apontar para aqueles em apenas um momento em
que estamos realmente implementando a entidade por enquanto, essas são as principais coisas
que definitivamente precisamos. O arquivo geo aqui, o GeoJSON e a textura. Então também pode haver
uma pasta de animações, que basicamente contém
as animações que
usaremos na próxima palestra. Agora, vamos
fazer um novo pacote aqui, entidade. Dentro de lá. Vamos criar
uma nova classe Java. O modo em t. Os tipos
de entidade de modo terão uma final estática pública,
o terceiro registro do tipo, tipo de entidade
e, mais uma vez, e, mais uma vez, os colchetes angulares com um ponto de
interrogação dentro deles. Haverá que os tipos de sublinhado da
entidade serão iguais ao terceiro ponto de
registro criar registros,
essa entidade, entidades
na verdade eles atrás e, em seguida, curso de MSC
inteligente nesse mercado. E se é um registro
diferente, claro que há um método de registro vazio
estático público. Então eu Event Pass antigo ônibus de
eventos aqui. E então vamos
chamar os tipos de entidade que se registram passando
no barramento de eventos. Então
vamos imediatamente aqui abaixo das mais porções. E vamos dizer
mais tipos de entidade, não se registrar passando
no ônibus de eventos. E então também temos essa
classe registrada. Agora, aqui
sempre teremos alguns objetos de registro de
nossas diferentes entidades. Mas antes de continuarmos
basicamente com isso, vamos fazer a própria classe de
entidade. Mais uma vez no pacote da
entidade, clique com o botão direito do mouse em novo
pacote cliente Mais uma vez, vou chamar
isso de pacote personalizado. E então, em vez de
fazerem uma nova classe Java, e essa será
a entidade guaxinim. Agora, quando se trata
da entidade guaxinim, isso vai ser
muito interessante porque há
muitas coisas acontecendo. Também copiarei
muitas dessas coisas. Tudo isso está disponível para você
no repositório do GitHub e para
um indivíduo também. Portanto, não se preocupe. O que vamos fazer
é fazer isso se estender por animais. Então estende o animal
e também
implementa a
interface animável para os olhos neste caso. Agora, vamos passar
o mouse sobre isso, a adição desses
métodos diferentes aqui. E vou passar o mouse
sobre esse construtor de grade combinando super também. E se esses nomes o incomodarem,
você pode clicar nele, Shift F6, e então ele deve sugerir algo um
pouco melhor aqui. Isso vai ser mantido nulo, neste caso, a prole vermelha. Então, esta será
apenas a multidão elegível
para ter filhos. Não precisamos disso
no momento. Os controladores são para o material de animação, bem
como para a fábrica de animação. E vamos adicionar
a fábrica de animação imediatamente porque esta é
literalmente apenas uma linha. Como você pode ver. Há apenas uma fábrica de
animação privada. Fábrica de animação. E então
estamos apenas passando isso. Então, basicamente, ele pode
retornar isso aqui. Os controladores, não
vamos devolver nada
no momento. Primeiro de tudo, o que
vamos fazer é dar uma olhada nas outras coisas que
precisamos para a entidade. Porque há pelo
menos um conjunto de métodos que
vamos precisar e que são os atributos definidos. Isso
é algo incrivelmente importante. Na verdade. Se não tivermos isso,
na verdade não vai funcionar. Nós só vamos fazer
o seguinte que eles vão. Estamos basicamente apenas definindo
alguns atributos básicos aqui. A vida máxima, o dano, a velocidade de ataque
da velocidade de movimento. Você sabe, é claro que você
pode brincar com isso no entanto, você não gostaria de
alterá-los basicamente qualquer maneira, se
você quiser. Mas isso é muito
importante que
tenhamos isso porque, caso contrário a entidade real não
terá nenhum atributo. E, claro, isso não é
exatamente o que queremos aqui. É claro que queríamos
ter alguns atributos. Existem também alguns outros
métodos que podemos substituir. Bem, vamos separar
isso um pouco. Então, isso vai ser todo o material
de animação. Isso aqui é
tudo para animações. E há outras coisas que eu vou copiar aqui, mas esses são apenas alguns
sons como você pode ver. Há, vamos
abrir tudo. Lá vai você. Então
, há um som passo. Acabei de escolher
alguns sons aqui. Há um gato direto
soa assim como ambiente. dor do golfinho é quando se
machuca, muitas vezes som surdo. Por que não? No momento, não
tenho nenhum som de guaxinim, mas é claro que eles
também não deveriam importar. Mas esses são basicamente os
sons que você pode definir. E sim, é claro,
você também pode dizer sons
mod e, em seguida, usar um
dos sons do seu modo também. É claro que você pode adicionar sons
personalizados ou suas
entidades também. Isso é muito legal. Todas as coisas consideradas. Quero dizer, isso praticamente
conclui o pedaço disso. A última coisa que também
queremos é que
queremos o método de registro de metas, e esse é um método que também
podemos substituir. Agora acho que
vamos ter duas coisas, exatamente duas coisas
que serão comentadas no momento. Porque são para quando vamos
fazer este T-Mobile. No momento,
não vamos fazer
a mesa de guaxinim
porque eu quero basicamente passar por esse
passo a passo, os objetivos. Essa é basicamente a
IA dessa entidade. Isso é muito, isso pode
ser um tópico muito complexo. Portanto, há muitos
objetivos diferentes que podemos adicionar. Então, o que podemos fazer, por exemplo, é que podemos clicar no
botão do meio do mouse em um objetivo e você pode ver que isso
estende a classe de meta. Se eu agora clicar nisso
e pressionar Control H, esses são todos os objetivos
e agora posso expandi-los. E você pode ver que
existem muitos objetivos diferentes. Você pode ver. E, claro, em teoria, você pode até escrever seus
próprios objetivos também. Então, realmente há
muitas coisas aqui. E mais uma vez, essa
é uma
daquelas coisas em que você terá que brincar um pouco
com isso. Olhe para as entidades de baunilha e veja como elas estão usando metas. A ideia geral é que quanto menor
a prioridade, como quanto menor o número de
prioridade, maior ele realmente
está na lista. Uma seria a prioridade
mais alta e seis é a prioridade mais baixa. Mas se tiver que escolher
entre um ou dois objetivos, basicamente
dá uma
olhada nas prioridades. Então essa é a ideia geral aqui. Portanto, certificando-se de que isso é basicamente sempre
configurado corretamente. E então, como eu disse, você pode simplesmente ir para o
animal, por exemplo, clique
no
meio mais punk nesta imprensa Control H. Você pode ver todos os
animais. Mas, por exemplo, poderíamos
dar uma olhada na raposa aqui. E você pode ver que há
muitas coisas diferentes aqui que
realmente não nos interessa no momento. Só queremos ver as
metas reais. Você pode ver que somos
apenas seus objetivos, mas você já pode ver que
há alguns objetivos
diferentes aqui. Este objetivo de alvo de lâmpada, há um alvo de
ovo de tartaruga, há um objetivo alvo de peixe. Temos alguns seletores de metas onde adicionamos certos
objetivos aqui,
a panícula, o objetivo da raça, evitamos os objetivos da entidade ir. Portanto, esse é um objetivo que evita uma determinada entidade em
uma distância específica. Então, há tantas
coisas que você pode fazer. Agora. Você também pode ver que a
maioria deles específica para a raposa é
em vez da classe fox,
digamos, por exemplo, o objetivo de dormir para o botão do
meio do mouse. Clique nisso. Você verá que o objetivo do sono está realmente no objetivo
do comportamento da raposa
e na verdade está dentro da classe box. Às vezes, alguns
desses objetivos estão realmente dentro de suas respectivas entidades
reais. E é também por isso que,
por exemplo, a raposa, tem como 1600 linhas de código. Há muitas coisas aqui. Quero dizer, eu diria que provavelmente a coisa
mais complicada em termos de entidades personalizadas
para a vida em geral, é apenas o que é. Recomendo. Você tem que passar por algumas
das entidades de baunilha e apenas brincar com ela e, em
seguida, ver o que você pode ver, como eu disse, clique no botão do meio do
mouse neste controle todos os
anos sobre o objetivo, e então você
poderá ver todas as metas disponíveis. E então, na pior das hipóteses, você também pode copiar alguns deles se
você precisar deles. Em seguida, a classe de
entidade de recall real aqui está concluída. Vamos então registrá-lo
na classe mais entidades. Na verdade, também
copiarei isso. Como sempre, tudo
disponível para você
no repositório do GitHub
individual também. Agora esse erro
ocorre porque
isso deve ser protegido. Então, vamos tornar
isso público aqui. E então a flecha
deve desaparecer. Portanto, não se preocupe lá. E você pode ver que há um objeto de
registro do tipo de entidade. Então vamos colocar a aula
que acabamos de fazer aqui, o guaxinim se registrando
sob o nome do guaxinim. E então vamos
dizer que o construtor
do tipo de entidade da entidade de registro sabia. Esta é uma criatura neste caso, esse tamanho é realmente o tamanho da
caixa de heap dessa entidade. E o magnético o constrói sob o local do recurso
ou mais Id sob, uma vez, o namespace
guaxinim. E isso é praticamente o registro é
feito aqui. E agora ainda
precisamos bem, quero dizer, basicamente adicionar isso em
alguns lugares diferentes. O primeiro lugar que queremos
adicionar isso é, na verdade, em nossos eventos e isso
será nos eventos de ônibus de eventos mod. Curiosamente, porque
aqui queremos adicionar um novo evento como o vazio estático
público. E esta é a entidade. Evento de atributo,
vou chamar isso
e, em seguida, vamos dizer atributo de entidade. Este é o
evento de criação, evento de cotação. Quando vamos fazer, vamos
chamar a guia Event put, tipos de entidade
mod que
guaxinim, que GET. Em seguida, a entidade guaxinim,
defina o atributo de entidade. E então
vamos adicionar o evento add subscribe aqui. Muito importante que adicionemos isso. E agora isso basicamente
adicionará os atributos que
definimos
aqui a todos os guaxinim existentes em nosso mundo. Essa é a ideia. Lá. No entanto, há
mais algumas coisas para o guaxinim, para a entidade em geral. Para a entidade, também
precisaremos de um renderizador e um modelo. Portanto, no
pacote de entidade é executado novamente, clique com o botão direito do mouse em novo pacote
e vamos chamar isso de cliente na verdade, por causa do renderizador
e do modelo para ambos ser cliente somente
se eu não estiver enganado, vamos dizer Raccoon. Este será o renderizador. Então vamos fazer
o outro também. Este vai ser o guaxinim. Este vai ser o modelo. Lá vai você. Não se preocupe lá. O, qual deles é mais fácil? O modelo vai ser
um pouco mais fácil. Mas isso vai estender o Geo Model animado da entidade de
registro de tipo que você usa. E então vamos passar o mouse sobre isso, Implementar Métodos. Então, precisamos implementar
esses três métodos. Agora, isso é realmente
bastante simples. Vou copiar a única coisa aqui. Então, isso só vai seguir um novo local de
recurso. E isso está apontando exatamente
para o GEO e, em seguida, guaxinim
que o AOTA Jason, este exatamente esse arquivo
rastreador aqui, que basicamente temos. E então
também vamos simplesmente copiar isso. Na verdade, não tenho 100% de
certeza do que vai acontecer se eu não
tiver esse arquivo, não
tenho certeza. E para a textura, temos isso aqui. Então texturas, guaxinim de entidade
e, em seguida, o guaxinim, um PNG. Agora, este não tenho porcentagem certeza porque na verdade não tentei isso sem
o arquivo de animação ainda. Mas acho que
vai ficar bem. Vamos ver se
estamos recebendo um acidente, então você vai consertar isso em um momento sem preocupações lá. Mas este é o arquivo de
modelo real e, em seguida, também
precisamos da renderização. Claro, o renderizador, neste caso, deve
ser um pouco mais fácil. Portanto, isso vai estender o renderizador de entidade GU, entidade
guaxinim. Mais uma vez, observe nenhum
modelo de registro, exceto entidade guaxinim, mas ele simplesmente passa o mouse sobre isso. E se construirmos
nosso super combinando, agora o que precisamos fazer aqui
é que precisamos nos livrar
desse provedor de modelos e,
na verdade, apenas criar um novo modelo de
guaxinim aqui. Também vou fazer isso
começar isso ou raio 0,3. Acho que vai ficar bem. E então será incrível fazer é que eu
vou embora. Só queríamos substituir o método do tipo de
renderização aqui. Então, isso também aumenta. E também o que queremos
fazer é obter a localização da textura. Em seguida, vamos escolher
o mesmo local de textura. Aqui. Nós só
vamos fornecer também, e isso deve ser
praticamente tudo o que precisamos fazer. Então, o modelo e o renderizador realmente
bastante simples. Todas as coisas consideradas. Não há
muitas coisas aqui. Como você pode ver nos modelos
de baunilha. Na verdade, há muito mais
lá porque, é claro, os modelos de baunilha, na verdade,
todo o modelo é salvo na classe em vez de
nesta geometria, Jason. Então essa é a coisa muito legal. Então, precisamos basicamente adicionar
o renderizador corretamente. Então, como vamos fazer um IVA? Vamos fazer isso indo
à nossa aula de fosso do curso MC. E, em seguida, dentro da
configuração do cliente, muito importante. Vamos dizer que a
entidade nos renderize, renderize-nos este aqui. Modo de registro, tipos de entidade. Vamos dizer que o
guaxinim não fica. Isso é igual
ao guaxinim cólon, renderiza dois pontos, dois pontos novos. E isso deve ser isso. Isso é praticamente
o que precisamos
fazer nessa frente também. Agora também
teremos que adicionar um novo item. E isso vai
ser, claro,
o óvulo de desova, o
esperma e o óvulo. Na verdade, vou copiar este
por uma vez como sempre, claro, o
código real está disponível para você. Isso não é muito louco. Você pode ver esse gargalo
de guaxinim frio. Este é do tipo de item para item
hispânico na verdade. E essas são as cores
basicamente que o Reino Unido tem. E isso é
praticamente tudo o que você precisa fazer lá. Então. É claro que, como este é
realmente um item normal, também
queremos adicionar
a tradução aqui, a pasta lang em
sublinhar-nos arquivo JSON. Então, vamos apenas adicionar
isso aqui também. Há os guaxinins geram, por exemplo. E, na verdade, também
precisamos de um arquivo de modelo de item. Sei que isso é muito
louco, mas é verdade. Ou isso também não é muito louco. Assim, podemos ver que é como o
modelo de item pai gera ovo. Então, isso vai ser colorido com essas duas
cores aqui. Então isso é tudo o que
há para ele. Então o item
também deve funcionar totalmente bem. E bem, se não me engano, acredito que deveria ter chegado a tudo o
que eu precisava. Eu precisava adicionar aqui. Se não, então
definitivamente vamos ver que não funciona, mas
isso vai ficar bem. E também
veremos o que você pode
fazer com uma flecha. Mas, por enquanto, acho que isso é tudo o que precisamos. Então, vamos ver por obras ou o que
nos encontramos no Minecraft. E como você pode ver,
o guaxinim AG foi
adicionado com sucesso ao jogo. E agora vamos ver se eu clicar com o botão direito do mouse
se o guaxinim aparecer. E lá está ele. Em toda a sua glória, está
se movendo. Agora, é claro, como dissemos, não tem animações
interessantes em particular no momento. E eu realmente acredito que
a caixa delimitadora real, se eu pressionar F3,
seja, seja um pouco pequena demais. Então, talvez possamos adicionar um pouco mais de caixa
delimitadora a ela. Por enquanto, isso
é muito legal e sim, é
necessário como é
fácil agora. Oh, na verdade vai
fluir por causa
da ferida flutuante de cobalto. Isso é meio engraçado, mas sim, isso é praticamente o quanto mais
fácil adicionar uma multidão à Microsoft. Só por uma questão de discussão, vamos fazer
isso um pouco maior. Digamos que algo como 0,8
e talvez a altura tenha sido seis. Isso vai ficar bem. que
ficaremos bem conosco. E isso é, na verdade, todas
as coisas que você precisa. Então, para recapitular mais uma vez, vamos precisar da classe de entidade guaxinim
personalizada. Claro, muito importante. A fábrica real aqui,
você não precisa ainda, mas
já adicionamos isso porque por que não? Só faz sentido
neste caso. E então os objetivos e os atributos foram
muito importantes aqui. E então as outras
coisas são muito Ritchie. Não necessariamente, não
é necessário. É bom ter
e ter à base do mar. Em seguida, precisávamos adicionar
isso e registrar-se corretamente na classe de
tipos de entidade de modo aqui. Precisávamos de um renderizador e
um arquivo de modelo para isso, o arquivo do modelo
aponta para o arquivo de modelo. Portanto, isso aponta para o
GeoJSON, bem como para o extra real
e as animações. E então a queda do aluguel também
aponta para a textura. Ele também determina o tamanho
real da sombra e cria um novo modelo. Essa é a ideia geral de
como eles trabalham juntos. Também precisávamos atribuir a
ele os atributos. Isso é incrivelmente importante porque se você não fizer isso, acredito que o jogo realmente falha quando
você não faz isso e você tenta gerar as entidades reais,
isso é realmente importante. Em seguida, também adicionamos o ECG de
spawn aqui. E então, no nosso modo de curso MC, aqui,
registramos o renderizador. E isso é
tudo o que precisávamos fazer. O arquivo geo, é claro, e a textura real aqui também
são muito importantes. Mas, além disso,
isso é
praticamente tudo o que você precisa para uma multidão personalizada muito simples. Ainda feito com
lábio de gecko, como eu disse. E, em seguida, na próxima palestra, vamos imediatamente
entrar e dar uma
olhada nas animações muito legais que estão lá, que estão basicamente
disponíveis para nós. Porque isso é algo que é realmente poderoso e
na verdade é bastante
simples de usar. Definitivamente
comparado às animações de baunilha, porque essas são essas, você não quer
usá-las basicamente. Bem, seja qual for o caso, isso já é isso, então, para
esta palestra aqui, espero que você tenha achado útil e aprenda algo novo. Vejo você
na próxima palestra.
106. (tópicos adicionais) como adicionar animações de entidades com Geckolib e Blockbench: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. E nesta palestra, vamos
adicionar algumas animações à nossa entidade personalizada que
adicionamos a última palestra. E para isso estamos antes de tudo, vamos
entrar no que vamos abrir o banco de blocos mais uma vez. Agora, este guaxinim e o arquivo
real do modelo de pitada de bloco devem ser fornecidos a você, embora seja
baixável
da última palestra ou
nesta palestra, definitivamente
devemos
ser baixados. E o, nós vamos
basicamente
abri-lo e depois ir para a torneira
animada aqui. Agora, já deveríamos ter todas essas três
animações aqui. E vou
basicamente
mostrar rapidamente a ideia geral
de uma animação. Só por uma questão de discussão, vamos apenas
fazer um novo. Então, vamos clicar
no pequeno botão mais. E então você pode fazer uma nova animação aqui, você pode ver isso. Agora. Isso geralmente é que você quer
chamar isso de guaxinins
escuros de animação. Portanto, esse é o nome do item. E então, quaisquer que sejam
as animações, vamos chamar esse teste por uma
questão de argumento. E então você pode saber o que
você pode fazer esse loop. Você pode, como você pode ver, fazer muitas outras coisas aqui. Vamos apenas confirmar,
vou ficar bem conosco? Agora para esta animação? Uma vez que você pode,
basicamente, você tem uma linha do tempo
na parte inferior aqui. E eu posso, ele seleciona
certas partes do corpo. Por exemplo, posso selecionar
o corpo e, de
repente , você pode ver aqui embaixo, tenho a possibilidade
de adicionar quadros-chave. Se você já editou um vídeo, isso é muito parecido com isso. Por exemplo, eu poderia dizer, ok, eu quero enquadrar
a posição, então vou
clicar no sinal de mais aqui. Então você pode ver que nesta posição
no código de tempo 0, agora
tenho um quadro-chave para
essa parte específica. Então, esse corpo, não vai
ser quadro-chave aqui. Então, se eu mover o
tempo, digamos, digamos que 0,52 quadros
onde quer que isso esteja. Clique neste Plus novamente. Você pode ver agora
no momento de 0,52, agora eu tenho um segundo quadro-chave. E se eu tiver feito, por
exemplo, mudar, eu posso mudá-lo
aqui nesta posição. Então eu poderia, por exemplo, dizer que talvez no
corpo real para subir dois, eu posso fazê-lo ou também posso fazê-lo dentro
da coisa real. E você pode ver
que, à esquerda, a posição real
também muda. E foi muito legal,
há alguns métodos de flexibilização. Então você pode ver que eles
representam basicamente como isso acontece. Porque se eu colocar esse slide de volta e
colocar este botão de reprodução, você pode ver que isso sobe. Isso é muito rápido. Então talvez você vai
ser como, quer saber, vamos pausar isso e vamos
realmente mover isso para assim vai
ser um pouco mais lento. E então você pode ver isso certo? Então você pode vê-lo se movendo para cima. E então ele é reiniciado, é claro, porque esta é uma
animação em loop neste caso. Basicamente redefine aqui com
as coisas fáceis que você pode. Há certas coisas. Você pode fazer etapas. Você pode fazer algum tipo de
flexibilização como essa
, onde é lento e
depois vai mais rápido. Você pode até fazer isso assim,
onde é muito rápido
no início e depois diminui ou
diminuindo e diminuindo. Você pode ver que há
muitos tipos diferentes. Isso é mesmo como algum tipo de aparência como um
pouco de aleatoriedade,
tipo de saltar para cima e
para baixo, o que é muito legal. Então, há muitas coisas que você poderia realmente fazer aqui. Há também algumas coisas
muito legais que você pode adicionar aqui. Agora eu não tenho 100% de
certeza de como
todos vocês podem acessar os comandos reais. Mas se eu, por exemplo,
entrar no quadro ocioso aqui, então eu cliquei neste Idle. Agora estou na animação
ociosa real e clico na cauda real e clico na rotação. Você pode ver que eu
tenho pecado de pontos matemáticos. Então esta é apenas a curva senoidal. Basicamente aqui, onde u ponto n m tempo é apenas
o timecode
que estamos fazendo tempo
multiplicaria isso por 150 e depois multiplicando
o resultado por 225. E isso basicamente resulta
no fato de que a
cauda
basicamente irá girar de uma maneira muito, digamos, previsível porque a curva senoidal
é claro assim, certo? Então isso é apenas uma
coisa de matemática geral. Isso é muito legal. Acredito que no site
eles realmente têm a soma dos métodos que estão disponíveis aqui,
basicamente para ver. Mas isso é uma coisa muito legal. E seja qual for o caso, vamos voltar para nossos testes de
animação com nosso corpo aqui. Então podemos ver agora nosso corpo, ele está se movendo para cima e para baixo. E isso é muito legal. Agora, é claro, quando
você está adicionando animações, isso está fazendo com que elas pareçam
muito bonitas e muito boas. Tudo isso. Muito tempo, vai ser,
você sabe, obviamente
demorado. Então você só vai precisar
experimentar um monte de coisas. Vê isso? Espero que funcione
e então vai ficar bem. Mas também tenha uma animação
ambulante. Então você pode ver aqui esta
é a animação ambulante. Então também temos uma animação
sentada, mas isso realmente
não faz nada. É basicamente que os
corpos inteiros se inclinam um pouco. E basicamente o guaxinim está sentado aqui, então
a nação insular, já
vimos isso,
mas basicamente apenas a cabeça e o corpo subindo
e descendo, muito ligeiramente. Você pode ver isso. Este é um movimento muito leve
para cima e para baixo. E então a cauda
basicamente balançando um
pouco para frente e para trás apenas para que tenha um
pouco de movimento. Então você pode ver isso. Mesmo esse pequeno movimento
ocioso é suficiente para dar uma ilusão muito agradável de que
isso realmente esteja vivo. E assim, como você pode ver, não envolve muitos ajustes que você precisa. Coisas que são muito, muito difíceis ou algo como a animação a
pé, animações de
execução,
especialmente para quadrúpedes. Então, para animais com quatro pernas, isso é incrivelmente difícil, existem alguns recursos
que eu realmente encontrei. Se você estiver realmente
interessado nisso, eu os vincularei
também aos recursos. Eles são incrivelmente legais. Então, basicamente, é realmente
um olhar anatômico de como, como, como basicamente
quadrúpedes Animais
andam e como isso é
basicamente feito em animação. Então, animais de quatro patas é um,
bem, algo em animação
que é muito difícil. Então, vai ser algo
bem. Mas porque é Minecraft, você está trabalhando com um
pouco de um bloco que ele animal. Você provavelmente tem um
pouco mais de margem de manobra aqui, seja qual for o caso, se
isso realmente lhe interessa, eu recomendo verificar
aqueles também, se isso é algo
que possa lhe interessar. Mas seja qual for o caso, basicamente
terminamos com
as animações de vontade geral. Na verdade, vou
excluir o teste aqui novamente. E então o resto
ficará bem. O que vou fazer é que
assim que isso for feito, eu posso basicamente
clicar na imprensa Control S para salvar isso
ou também posso ir, acredito para animação aqui. E então posso dizer
exportar animações. E acredito que isso já
deveria fazer isso. Ou podemos salvar
todas as animações. Vamos salvar isso
em guaxinim escrito corretamente, não animação adjacente e
vamos substituir isso. Tudo bem. E então vamos
voltar para a inteligência. Em nosso curso MC de ativos, faremos um novo
diretório chamado animações. São animações? Sim, são animações. E então o que vou
fazer é
copiar sobre a animação real também. Então, a ideia geral
é que essas
serão as animações de
guaxinim corretamente. Lá vai você. Portanto, esses são basicamente todos os dados necessários lá. Não precisamos entrar nisso. Isso é bom. Agora, o que é importante é que
, claro, agora precisamos especificar essas animações
no registro real em uma entidade. Abrindo a entidade guaxinim. O que vamos
fazer é adicionar, em primeiro lugar,
o controlador, bem como
os métodos de predicado. Então, vou copiar sobre
o método GET do produto. Isso será explicado
em apenas um momento. Então, como você pode ver, ainda não
temos a sessão sentada, então vamos excluir
isso por enquanto. E no controlador
vai ter a seguinte aparência. Então, vamos
ter ponto de dados Adicionar Animation Controller com
um novo controlador de animação, controlador de
código. E então estamos passando
esse método de predicado aqui. Isso é praticamente
tudo o que há para ele. E, em seguida, certificando-se de que tudo isso
está escrito corretamente. Então, esses nomes aqui, metade da correspondência com os nomes que estão dentro da animação. Este aqui
é a animação. Você pode ver isso realmente
escrito, correto? Incorretamente. Eu não represento saber o
porquê, mas lá vai você. Vamos
mudar isso rapidamente. Lá vai você. E então é 100%
correto porque então o guaxinim é escrito
assim e aqui também,
então tudo deve
estar funcionando bem. Ele pode ver que a animação de
caminhada é resfriada quando o ponto do evento está se movendo. Eu recomendo vivamente.
Dê uma olhada no evento de animação para
algumas coisas específicas. Você pode, por exemplo,
ver que há algumas coisas aqui que você pode dar uma olhada nisso,
alguns dados extras até. Então, isso também é
realmente interessante. Mas, no geral, o
movimento é provavelmente o que é mais
importante aqui. E então algumas
das outras coisas que você só
terá que
brincar com isso também. Então eu recomendo
apenas estar aberto à experimentação com isso
e experimente muitas coisas. Essa é a melhor
coisa que eu posso, basicamente com certeza que
essa é uma ideia muito inteligente. Agora, você pode dizer, bem, quero dizer, o que mais precisamos? Isso é tudo o que
precisamos porque já configuramos a
animação no meio. Então, aqui, nós
já o configuramos. Animações recrutam dados de
animação Jason, porque esse Jason já
está aqui. E agora temos basicamente
como predicado, esse é o tipo de
cérebro das animações. Isso basicamente determina qual animação está
sendo reproduzida no momento. E bem, quero dizer, isso é, isso é praticamente tudo
o que precisamos para isso. Como eu disse, se você tem
algumas idéias
muito legais, animações muito loucas, tudo se resume a usar bancada de bloco, experimentar muitas coisas lá. Como eu disse, tenho muitos recursos em animação
por aí também. Então, espero que isso o ajude. Mas, por enquanto, eu acho, vamos ver se funciona. Nós nos encontramos de
volta ao Minecraft. Então, vamos ver, vamos gerar alguns guaxinins e vamos
ver, Lá vai você. Já funciona totalmente bem. E até mesmo a animação ambulante, vamos dar uma olhada nessa. Quando começar
a andar, vamos ver. Bem,
às vezes é difícil ver quando isso
está se afastando. Mas acredito que está funcionando para que suas pernas estejam
se movendo enquanto a caminhada, sim. Às vezes, a velocidade de movimento e a animação não
combinam totalmente. É claro que isso é
algo que você só precisa ajustar
e mudará como até
que basicamente funcione. Mas você pode ver que a animação ociosa
real
funciona totalmente bem. E então a
animação ambulante também funciona. Tudo funciona muito bem aqui. Uma nova porção de nitrogênio aqui. Por uma questão de argumento. Lá vai você. Quero dizer, isso é
honestamente muito legal. E isso é realmente o
quão fácil pode ser adicionar algumas animações antigas, quero dizer, básicas
com lábio de gecko às suas entidades do Minecraft, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil e aprenda
algumas das novas. E te vejo
na próxima palestra. Então, sim.
107. (tópicos adicionais) como adicionar variáveis de entidade: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos adicionar uma variação do cliente à nossa
entidade de guaxinim já existente. Qual a nossa variância? Bem, você pode
saber, por exemplo, que os cavalos podem ter redes coloridas
diferentes ou em geral, extras coloridos
diferentes. E isso é feito por variância. Agora, vamos adicionar duas
dessas variantes ao nosso guaxinim. E a forma como isso funciona é basicamente que temos apenas
uma textura diferente. Então, vou apenas
copiá-los. Lá vai você. Temos um guaxinim escuro
e um guaxinim vermelho. Essas são as três
variantes diferentes que temos. Guaxinim, guaxinim escuro
e um disco vermelho. E como agora vamos
implementar isso? Bem, na verdade, é bastante simples,
tudo considerado. Então, isso é algo que você terá que
fazer basicamente, se quiser que todos os
seus animais tenham variantes
diferentes em todas as suas entidades
tenham variância diferente, então você é vai precisar de um, bem, em primeiro lugar, de
uma variante enum, e então vamos basicamente escolher dependendo desse enum,
um local de recurso diferente. Em nosso pacote de entidades, vamos clicar com o botão direito do mouse em novo
pacote chamado variante. Então, dentro de lá,
vou colocar, esta será
a variante guaxinim. Isso vai ser
alterado para um enum. E então eu
realmente copiarei isso porque
o conteúdo real disso
deve ser sempre o mesmo. A única coisa que
deve mudar aqui
são basicamente
seus valores de enum. Essa é a ideia geral. Quando você tem uma variante
diferente, você simplesmente renomeia isso
e renomeia todas as coisas
aqui também, certo? Então, se isso fosse chamado, quero dizer, agora isso
mudaria o nome também, mas seja qual for o caso, então apenas mudou o nome em todos os lugares e então você
ficaria totalmente bem. Todo esse
método estático que vamos precisar, vamos precisar desse fluxo de erro
final. Tudo isso
vai ser necessário. A única coisa que é basicamente a maior parte do costume aqui é que o nome disso e
, em seguida, também o nome da sua variação individual. Onde usamos isso ou onde
começamos a usar isso? Bem, vamos usar isso
no renderizador de guaxinim. E a maneira como
faremos isso é mais uma vez, eu
copiarei isso, mas todo o código está,
naturalmente, disponível para você
no repositório do GitHub e
individual também. E isso é, na verdade, pode parecer um
pouco complicado, mas na verdade é
bastante simples. Então, agora, vamos apenas importar isso. Lá vai você. E então vamos ter um mapa. Você pode ver que este é um
local por mapa variante. Este é apenas um mapa que mapeia uma variante de registro específica
para um local de recurso. Isso é tudo o que ele faz. Embora estejamos dizendo, ei, se
tivermos a variante padrão de
guaxinim, então essa é a textura para a qual
você quer apontar. Se tivermos uma variante escura, então queríamos
apontar para essa textura. E se tivermos a variante vermelha, vamos viajar para essa textura. Parece um pouco
mais complicado, mas quando você pensa sobre
isso, é
realmente tudo o que ele faz. E se você tiver
várias entradas, se você tiver mais entradas aqui, você sabe, basta adicionar
mais entradas aqui. Agora, é claro,
vamos ver um aviso aqui porque já
adicionamos essa chave real, neste caso aqui. Mas sim, isso é tudo o que
você realmente precisa fazer. Então, se você tiver mais,
basta adicionar mais. O mesmo aqui. Se você tiver
mais, basta adicionar mais, certificando-se de
aumentar as ideias aqui, isso também é muito importante. Bem, então, em vez
de apenas fazer isso, o que vamos fazer é que vamos dizer, Ok, hum,
bem, nós só queremos retornar a localização bivariante dot get, e então temos a
entidade guaxinim disponível
aqui. Mas bem, a
entidade de registro agora, ainda não tem uma
variante, não é? Isso não é nenhum problema. Porque agora vamos
basicamente adicionar essas variantes. Então, vamos manter
esta flecha aqui por
enquanto. Não, não preocupado basicamente. E depois vamos adicionar todas
as coisas que precisamos
para a variação. Então, mais
uma vez, haverá muita cópia
porque, mais uma vez, muito desse código
sempre será o mesmo. Quase sempre
será o mesmo. Vai
parecer o mesmo. Vai ser muito parecido. Apenas os detalhes
precisam ser alterados, mas vou tentar o meu melhor para
passar e explicar
tudo o que preciso. Então, antes de tudo,
vamos precisar um acessador de dados da entidade. Portanto, esse é o tipo de
ID de dados da variante. Isso é basicamente uma
sincronização de dados da entidade. Portanto, é do tipo inteiro. Essa é a ideia geral. Então, geralmente eu gosto de
colocar isso no topo
da classe porque é apenas um pouco mais legível mesmo que isso também
pertença à variação. Eu quero manter
isso no topo
da classe e, em seguida,
o resto vai abaixo dos comentários de
variação aqui. Ok, quais são as coisas
que vamos precisar? Bem, a primeira coisa que
vamos precisar é precisaremos de um método de variante
definido. Então, lá vai você com
uma variante de registro. E, em seguida, podemos definir
os dados
da entidade da variante do tipo de
ID de dados de data do tipo, que são exatamente esses dados
sincronizados que criamos aqui. E então vamos
defini-lo para o ID. E, em seguida, usando uma
operação aqui, não
precisamos
entrar nos detalhes. Isso é praticamente o que
o cavalo também faz. Então, a maior parte disso também é tirada
do cavalo. Se realmente mudarmos tecla shift duas vezes
e vamos para o, acredito que é o cavalo
abstrato que tem isso, mas não
tenho 100% de certeza. Acredito que seja
o cavalo absoluto. Isso tem o ID. Bem, vamos dar uma
olhada no cavalo do que talvez seja, na verdade, o
tipo de identificação de dados. Podemos ver que isso
parece muito parecido. E então, se nós clicar no
botão do meio do mouse sobre isso. Você pode ver,
por exemplo, aqui mesmo, definir como variante que apenas
definimos a variante e, em seguida,
definimos variantes e marcações. Então você pode ver que aqui
ele basicamente também faz algumas coisas interessantes
com um pouco de mudança. Então, não vamos nos
preocupar muito com isso. Vamos apenas dizer que
vamos precisar disso. E se tivermos isso
no necrotério, ficaremos totalmente bem. Se tivermos um conjunto de variantes, é claro
que também queremos uma variante get, mas queríamos duas diferentes
que queremos. Um em que obtemos a
variante guaxinim e outra em que
realmente tiramos o
número inteiro disso. E isso é praticamente
também o que vamos
precisar ou o,
este aqui. Então, podemos dizer agora
instância dot get variante. E então este
não tem mais flechas. E agora precisamos fazer
o mesmo no modelo. O que posso fazer é
simplesmente copiar isso aqui. E vamos
dizer aqui, este vai ser o renderizador
de guaxinim que, e então
vamos adicionar isso. Bem, eu deveria ter
o ponto lá dentro. Lá vai você. E então isso
é chamado de objeto em vez disso. Isso é totalmente bom. E, em seguida, terminamos a variação real tanto
no renderizador quanto no modelo. Esses são os dois únicos lugares onde você precisa mudar isso. Caso contrário,
o resto
acontecerá na classe de entidade. O que mais precisamos
para a entidade? Bem, uma vez que o mundo
salve, é claro, ainda
precisamos salvar isso de
alguma forma. Portanto, vamos precisar
de alguns dados NVT. Então, tudo isso
será salvo aqui, leia dados salvos adicionais
e, em seguida, também adicionará dados
salvos adicionais aqui. Então esses dois são muito importantes. E então, por último, mas não menos importante, basicamente acredito
ser a definição de dados de sincronização. Isso é incrivelmente importante
porque isso sempre será necessário se você
tiver qualquer tipo de entidade, acessador de dados, barba, o tipo de ID de dados, ou seja, suponha que veremos
uma sessão também. Então, um
acessador de dados sentado do tipo booleano. Isso também é o que
teremos que adicionar
neste método de dados de sincronização definida é muito importante. Isso é definitivamente
o que vamos precisar. E então, por último, mas não menos importante, basicamente a última
coisa que precisamos é o método de desova finalizado. E isso é muito interessante. Agora, a razão pela qual precisamos
disso
é porque isso é basicamente chamado
quando usamos o, bem, quero dizer, quando essa entidade
realmente é gerada e isso
finaliza o esporte. Então, literalmente
vamos dizer, Ei, apenas me dê um valor aleatório dessa variante
de guaxinim. E então vamos defini-lo exatamente
para essa variância. Isso é tudo o que
estamos fazendo aqui. E com isso, basicamente
a variante está completa. E você pode ver que, no geral, é praticamente só isso, esses métodos, todos
eles serão quase sempre os mesmos. Se você tiver um nome de enum
diferente, o nome muda aqui. Além disso,
provavelmente
é praticamente sempre o mesmo. Ele sempre vai estar lá. Deve ser sempre o mesmo. No geral, isso é praticamente
tudo isso. Há o Twitter. Não é tão complicado. Você só precisa saber
exatamente onde precisa
fazer essas alterações, é
claro, no
renderizador e
no modelo real também. Apenas essas duas alterações, apenas adicionando
o mapa no renderizador também. Então este mapa
aqui, mas no geral, acredito que isso deve
ser bastante autoexplicativo, todas as coisas consideradas,
nada aqui são dois, eu diria fora dos
limites da maior parte disso. Portanto, isso deve ser
bastante simples. E agora eu acho, bem, quero dizer, vamos
ver se funciona. Ou nos encontramos de
volta ao Minecraft. Então, vamos gerar alguns guaxinins e vamos ver se
as variações são adicionadas. E lá vai você. Oh não, nós temos uma variante que não tem
textura, mas não se preocupe, isso deve ser
apenas um erro de digitação na localização real do
recurso. Você pode ver que o vermelho
funciona totalmente bem. Vamos ver o que se
trata e vamos consertar isso. Como eu suspeitava aqui, há um erro de digitação. Não se preocupe em nada. Nós só vamos consertar isso. Então o C estava faltando mais
uma vez, com isso, basicamente
tudo, agora estaria
funcionando totalmente bem. E, na verdade, é
assim que é fácil adicionar alguma variação personalizada
ao seu costume, bem à sua entidade personalizada. Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Se ele o fizesse,
apreciaria muito uma crítica sua. Caso contrário, te vejo
na próxima palestra.
108. (tópicos adicionais) Entidades de Tameable: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos adicionar um recurso de habilidade de equipe
à nossa entidade personalizada, basicamente tornando
possível que possamos domar nosso guaxinim. E isso é mais uma vez, uma daquelas coisas
que na verdade é bastante simples depois
de implementá-lo. E você pode ver quais
métodos temos que substituir aqui na classe de entidade
Guaxinim Custom. Agora, a primeira coisa
que precisamos fazer é que você precisa ir até aqui e realmente mudar
isso para um animal amável. Então, este será um animal
atingível. Lá vai você. Então vamos
pegar isso, vou
selecioná-lo, pressionar Control C, Control V para colá-lo aqui e
aqui também. Acredito que
esses devem ser todos os lugares onde
isso precisa ser feito. Então, é claro, mais
uma vez copiarei sobre
a maior parte disso. Tudo isso é claro,
mais uma vez disponível para você
no repositório do GitHub em um
indivíduo também. Essa será a habilidade
da equipe. Isso vai ficar
no fundo aqui, e podemos ver todas as
coisas e vamos
passar por cada um dos
métodos um por um. Você pode ver antes de tudo, temos esse acessador de
dados sentado. Mais uma vez, vou
realmente mover isso também para que tenhamos dizendo
aos dados no topo aqui, então o que é muito importante é
porque temos outra dessas entradas
de
dados sincronizadas. Precisamos adicionar isso aos dados
de sincronização definidos. Isso é muito importante
que façamos isso. Então, vamos ter que dizer
esses dados de entidade estrela, definir, isso está parado e, em seguida o valor padrão será falso. Portanto, isso é incrivelmente
importante e que isso também é adicionado aqui, caso contrário, isso não funcionará. Então essa é uma das
coisas que precisamos fazer. Agora, a razão pela qual realmente
precisamos dessa coisa em particular,
o acessório aqui, é por causa do fato de que outra forma, o predicado para
a animação não funciona. Porque, em teoria, se
eu realmente entrar no animal
da mesa e eu
acredito que lá está, a ordem booleana de
se sentar já está lá, então isso já existe, o que significa que por que precisaríamos outro
acessório aqui, outro tipo de dados aqui, bem, ele não
sincroniza esse booleano aqui, acredito que só esteja
disponível no servidor. Não tenho 100% de certeza, mas
acredito que isso só está
disponível no servidor. Mas é claro que, no
caso do gecko lip, que na verdade só
funciona no cliente, o que
significa que há
uma incompatibilidade entre este booleano aqui ou
o servidor e o cliente. Portanto, precisamos da
sincronização real dos dados aqui. É por isso que temos isso. E então também podemos agora
descomentar essas duas coisas. Agora, isso é muito importante que seu sentar quando o objetivo ordenado, tenha uma prioridade menor
nesta ou uma prioridade mais alta, acho que tem que
ser um número menor. Então, basicamente, todos os
outros
olham aleatórios em torno de
gols de caminhada aleatórios, coisas assim. Isso é muito importante
porque se isso tiver uma prioridade
menor do que, por exemplo, o objetivo de passeio aleatório, então o guaxinim neste caso, mesmo que seja ordenado a sentar-se, apenas se levantará
e andando e depois sente-se novamente
e depois continue andando. Então, não é realmente o que
você quer que ele faça. Então, também podemos
adicionar imediatamente a animação aqui. Esta é a animação sentada. Então, se isso estiver sentado, então vamos basicamente chamar
a animação de que
guaxinim sentado, nada muito louco, deve
ser bastante autoexplicativo. E com isso, a
animação está feita. E agora podemos realmente
dar uma olhada em todas
as coisas diferentes para a
alcançabilidade de que precisamos. Para a primeira coisa é
basicamente o grande método aqui,
ou seja, o método mob interact,
mas esse é o método que é
chamado quando um
jogador clica com o botão direito do mouse. Então este esfregão, eu
fiz um item aqui, então este é o item para domesticar. Acabei de escolher uma maçã. Você poderia, por
exemplo, substituir isso. Você também pode adicionar vários
itens, se quiser. Claro, o Java normal se aplica. Você é, então não se preocupe. Lá. Basicamente
vamos verificar, ei, é o item com o qual
clicamos com o botão direito do mouse,
na verdade, o item para domesticar. E se este animal ainda não
for atingido, então vamos entrar
aqui, do lado do cliente, vamos consumir,
então vamos
fazê-lo clicar com o botão direito, mas
nada acontece. No entanto, no servidor eles estão, vamos entrar e
fazer algumas coisas. Primeiro de tudo, se a habilidade
aqui for instabilidade. Então a ideia aqui é que,
se este não for o caso, que
significa que, se não
estivermos
no motor criativo , estamos encolhendo ou diminuindo
a pilha de itens por um. E se estivermos no modo
criativo deles, não
estamos fazendo isso. Isso é tudo o que há para ele. Aqui na equipe de animais
é apenas
um evento que basicamente é demitido quando este
animal é domado. E então, mais uma vez, estamos
apenas nos certificando de que
não estamos no cliente basicamente. Eu acho que isso é
basicamente redundante, mas vamos
mantê-lo porque não se preocupe lá. E então vamos
dizer, antes de tudo, vamos chamar o método ETA. Este
jogador em particular dentro de um vai recalcular o caminho
para a navegação. Em seguida, vamos definir as
metas para conhecer essa linha. Este seria o
alvo agressivo basicamente. Em seguida, vamos
chamar o evento de
entidade de transmissões com bytes sete. Portanto, este é um evento
específico aqui. Você pode ver, já que
um pacote específico para todos os jogadores desse evento, é, é uma loucura. Este é basicamente o evento
que precisamos enviar quando um determinado animal
foi alcançado. Acredito que isso é
responsável por gerar os Corações quando você
realmente recebe a equipe, então estamos imediatamente
sentando para verdade. E podemos realmente dar uma
olhada no set sentado aqui. Então você pode ver que não
apenas estamos definindo os dados da entidade levando a tudo o que estamos
passando aqui? Também estamos chamando o conjunto
ordenado para sentar método, que basicamente definiu
essa ordem para sentar
no animal da mesa aqui também para
o que estamos passando. Então, a ideia é que
precisamos que ambos sejam definidos corretamente. E então tivemos isso, sim, essa é basicamente a ideia
geral aqui. E então aqui está este, uma vez que já
tínhamos domado esse animal. E mais uma vez, estamos no servidor, certificando-se de que usamos apenas a mão principal, porque
se não tivermos isso, basicamente
nunca
poderemos fazer com que o animal real se sente porque isso é chamado
para ambas as mãos. Isso é muito importante.
Isso é chamado duas vezes, uma para cada mão
do jogador. Portanto, tenha cuidado com isso. É claro
que isso também é chamado duas vezes, um para o cliente e
outro para o lado do servidor. Então, no total, é
chamado quatro vezes. Portanto, tenha isso em mente. E este aqui, é por
isso que precisamos da mão de
interação aqui. Caso contrário, isso
seria chamado duas vezes. E então, é claro, se você
alternar algo duas vezes, bem, ele simplesmente reverte para
sua posição original. Portanto, o
animal real nunca se sentaria. Então isso é muito importante aqui. Aqui. Estamos
basicamente fazendo um passe quando o item para
domesticar é usado novamente, mesmo que
basicamente já tenha sido nomeado. Mas isso é tudo o que
há
para o método de interação da máfia. Esta é basicamente a
peça central disso, é claro, onde estamos
definindo isso para ser domado. E temos o conjunto conjunto, o método de configuração,
nada muito louco. Também temos o método T definido. Onde está esse frio? Deixe-me realmente dar
uma olhada nisso. Isso é frio. Na verdade, não tenho
100% de certeza
que acredito que isso está frio. Também pode ser chamado através de algumas dessas
coisas aqui, mas basicamente estamos
apenas mudando alguns
dos atributos aqui se
este animal for domado. Então isso é uma coisa normal
que basicamente pode acontecer. E então também precisamos apenas, eu não acho que precisamos
anular isso necessariamente, mas eu sobreescrevi
no menos é a equipe onde basicamente essa é a equipe a que esse
animal pertence. Então temos o
último, mas não menos importante, o método booleano
pode ser lixiviado. Eu defini isso como falso. Agora. Algo que é um bug
atualmente no lábio de gecko. Eu não sei se isso
ainda é uma coisa no momento, mas isso tem sido um
problema há algum tempo, é quando isso é verdade e você
realmente toca essa lesão, uma entidade labial de gecko, então a liderança real é, é invisível.
Ainda está lá. Funciona, mas é invisível. Não sei se
existe uma solução ainda. Vou verificar isso em
uma data posterior também. Mas se for fixo ou se não estiver fixo
e provavelmente teremos uma
correção para
isso em talvez palestras
posteriores ou em algum
momento no futuro também. Mas isso é
praticamente tudo o que precisamos para a habilidade da equipe. Você pode ver que definitivamente fica um pouco mais complicado aqui. Não é apenas como, Oh, vamos colocar um enum
lá, uma espécie de variante. Bata algumas coisas lá
e depois terminamos. Agora, a habilidade da equipe é um
pouco mais complicada, mas todas as coisas
consideradas não foram. Bem, não é tão louco. A capacidade sentada é realmente a coisa que pode ser a mais difícil em algumas circunstâncias, porque todas as peças
precisam estar corretas. Temos que
esfriá-lo da maneira correta, nos momentos corretos. E agora é muito importante, mais
uma vez, é o objetivo. Esta é na maioria
das vezes a coisa que
aconteceu comigo. Por que eles basicamente param sentar ou quando você
ordena que eles se sentem. E, de repente,
o animal simplesmente
sobe e vai para outro lugar
e depois se senta de volta. Mas essa era uma das coisas. Depois de ter adicionado tudo isso, agora
poderemos ver
não apenas a animação sentada,
mas, claro, também como
domar o animal. Então, vamos ver se funciona ou por que nos encontramos de
volta ao Minecraft. Então, vamos ver se consigo
domar o guaxinim. E lá vai você,
melhores amigos para sempre. Agora está sentado. Agora, o que eu costumo
fazer para fazê-lo basicamente
garante que ele permaneça
no mesmo lugar. É que eu não vou trancá-lo na lâmpada basicamente
fazer um pouco
de uma caverna aqui para
que eu saiba que tudo bem, se definitivamente se mudou, se estiver fora da
caverna basicamente. E por enquanto, isso parece totalmente bom, como se realmente parece
estar sentado lá. E você também pode ver
a animação sentada , a
propósito, vamos realmente
dar uma olhada no CEO. E então, se eu clicar com o botão direito do mouse novamente, então o guaxinim deve
começar a andar novamente ou apenas usar outros objetivos basicamente para fazer o que quiser. Basicamente, passeie por aí, ou
sempre que quiser fazer. Lá vai você. Agora ele está
correndo de novo. Então eles vão e sim,
isso é, quero dizer, você pode ver que é
realmente mais rápido por causa do aumento de velocidade que tem, ganhou
através da domesticação. Isso é algo que
aconteceu na domesticação. Vamos dar
uma olhada nisso
em apenas um momento novamente. Mas sim, quero dizer,
isso é praticamente tudo o que realmente precisávamos fazer. E agora você tem um
guaxinim Teams que é
muito legal. Mais uma vez, a
velocidade de movimento aqui é basicamente por isso que é
tão rápido. Estamos basicamente
configurando para 0,5, eu acredito. Vamos ver, na verdade, qual seria o
movimento, 0,3. Então, estamos quase dobrando
a velocidade de movimento. É claro que isso é algo como qualquer outro momento em que
se trata dos atributos, valores de certos
atributos, neste caso, ou certas variáveis, você só precisa
brincar com eles. Você terá que mudá-los provavelmente muitas vezes de qualquer maneira, simplesmente por causa de se
você quiser realmente
desenterrar e se certificar de que seu
mod está devidamente equilibrado, você terá que
mudar os números. Quero dizer, muitas vezes
esta é uma daquelas
coisas em que, mais uma vez, apenas brincar
com os números. Experimente um monte de coisas, esteja aberto à experimentação. E então, enquanto eu quero dizer, nada basicamente
está no seu caminho. Mas isso já é isso então,
para esta palestra aqui, espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
109. (tópicos adicionais) Entidades de rentável: Ou eu dou as boas-vindas de volta ao curso de
forja para quando 18. E nesta palestra,
vamos adicionar uma
entidade personalizada para o Minecraft. Então, depois de passarmos
com a entidade guaxinim, agora
vamos adicionar
as entidades de tigre. Então, é claro, mais uma vez tenha um modelo de banco de blog para
isso. Lá vai você. Isso é claro que também
faça o download de ambos para você, mas basicamente tudo
isso já foi configurado e tudo basicamente vai funcionar muito parecido
com o guaxinim. O que vamos ter é que
teremos uma nova classe, primeiro lugar, e essa
será a entidade tigre. Lá vai você. Agora, a entidade tigre
vai ser muito interessante. Primeiro de tudo, copiarei mais
uma vez sobre a totalidade
praticamente desta classe. Esta vai ser
uma aula muito longa, mas a maior parte disso vai ser
muito semelhante ao guaxinim, número um e número dois, vou explicar
tudo
de melhor que puder, é claro também. Então, o que vamos ver
aqui é que devemos pegar dois. Certo, está tudo bem.
Na verdade, tudo bem porque isso é chamado de tipos de entidade
mod. Na verdade, lá vai você. E então isso vai
ficar bem também. Então uma coisa que temos aqui é ver mais entidades
que vão ficar bem. E depois há algumas
outras coisas das quais podemos realmente nos livrar aqui
também. E lá vai você. Agora, não há mais erros se
você copiar isso do
pastor do GitHub ou dos gists, não
haverá mais erros para você. E tudo aqui deve estar bem ou sim,
deve estar bem. Primeiro de tudo, o que
temos mais uma vez é algumas das coisas das sessões. Então você pode ver que está
sentado, sentado. E mesmo aqui temos
a sessão e quando clicamos com o botão direito do mouse na interação da
máfia aqui, você pode ver desta vez
se estivermos agachados, então nós realmente queremos definir
a fumaça para estar sentada por causa de claro que também
queríamos torná-lo legível. É por isso que temos essa interface
rideable de jogadores aqui. E isso vai ser
o interessante. Então, se eu realmente clicar
nisso e pressionar Control H, então devemos ser
capazes de ver, lá vai você. Eu tenho o
cavalo abstrato, por exemplo. A maior parte disso é tirada
das classes abstrata de
cavalos e entidades de cavalos. Não posso enfatizar isso o suficiente. Dê uma olhada em todos os exemplos de
baunilha. Você tem tantos exemplos de
baunilha aqui. Depois de entender
a estrutura básica
dessa classe como
uma classe de entidade, então dar uma olhada
nas classes
de entidade de em baunilha é bastante
simples. Então, como eu disse, a
maioria dessas coisas é a
mesma que no guaxinim. Temos os controles registrados, o predicado para
as animações. Temos os
dados assíncronos, o sentado
e, em seguida, também temos
esses seletores de spray. Então isso é muito interessante. Então o seletor de spray aqui
é para o seletor de alvo, para o alvo aleatório não manso, isso é uma coisa que é basicamente adicionada onde eu
adicionei isso do lobo. Então, se realmente dermos uma
olhada no lobo aqui, você pode ver no lobo
também tem uma presa detectada, presa selecionada aqui. E isso também tem
este aqui. Então você pode ver que basicamente
caçaria diferentes raios nesta fase
nesta prioridade mais alta neste caso, já que basicamente queríamos que ele fizesse resto
antes de fazer isso. Mas isso é apenas uma coisa adicional. Você não precisa ter
isso necessariamente, mas é meio legal. Você pode ver que também
temos meta de tentativa aqui. Isso é realmente o que, que o tigre
realmente seguirá quando você tiver um
nabo na mão, há também o item da
tabela com ele. Então, se você clicar
com o botão direito do mouse com o nabo, então você tem um, como você
pode ver aqui, nós realmente temos uma chance de vinte e cinco
por cento de que deveria ser realmente domar
essa entidade n sim, isso é praticamente isso. E a maior parte disso você pode ver, na verdade,
não é tão louco. Aqui começamos a escrever. Este é, na verdade, o jogador
que realmente mudou isso. Então clique nisso e
ligue para esse jogador. E então esta será
a mão um pouco mais legível do que podemos ver a estrela do ponto
do jogador escrevendo isso. Vamos basicamente
começar a escrever isso. E como vamos ser
capazes de controlar isso? Bem, a forma como
vamos controlar isso, isso, com esse método aqui, pode ser controlado por um escritor. E então aqui
acabamos de voltar e controlar o passageiro
é de entidade viva. E então aqui, acredito que também
temos que voltar. Isso também é muito importante. E então o método de viagem
também é retirado do cavalo. A maioria das coisas
foi retirada porque a única coisa que
não vamos ter é
a capacidade de
pular com um tigre. Essa é a única coisa que não
vamos ter. Isso é praticamente
tudo o que há para ele. Mais uma vez, também, é muito ,
quero dizer, é, é
bastante simples. Anibal, Você pode apenas dar uma
olhada no jogador rideable jumping interface número um e número dois também o cavalo
abstrato. Como eu disse, tudo isso
está disponível para você nas bibliotecas
externas aqui, certo? Todo o código de baunilha. Eu não posso enfatizar isso
o suficiente como, bem, como é fácil
dar uma olhada nisso e basicamente então ser,
você sabe, pegar
algo a partir daí. Vamos adicionar isso aos mais tipos de
entidades aqui. Vou copiar isso
mais uma vez. Como sempre pagar
tudo disponível
no repositório do GitHub e
individual também. Vá para a entidade aqui. E então
também vamos fazer os dois modelos e
renderizar nossas aulas. Então, vou dizer modelo Tiger. Lá vai você. E então também
vamos dizer que o tigre, renderizador de
tigre também vai. E então, mais uma vez,
vamos copiar isso. Isso é bastante simples e é praticamente parece, deve parecer
exatamente como antes. Só precisamos fazer
o modelo também. Lá vai você. O modelo também. Está apontando mais uma vez
para a localização modal no geo tigre aqui
estão a textura e seguida, a animação
não é novidade aqui. E então, no renderizador,
praticamente a mesma coisa que apenas temos os contextos de
renderização aqui, e então estamos fazendo um
novo modelo aqui. Agora isso, é claro,
mais uma vez precisa ser resfriado
no método de configuração do cliente aqui. Então, vamos dizer
quais tipos de entidade tigre
e, em seguida, aqui o
renderizador de tigre, lá vai você. Então, é claro, não vamos
esquecer o evento que
precisamos chamar e que deve estar bem aqui nos atributos. É claro que queríamos
definir os atributos aqui para os atributos do tigre
que eles atribuem muito importantes. Não se esqueça disso, e isso também
deve ser isso. Vamos também adicionar
o novo spawn preciso aqui. Vamos apenas duplicar isso
e então vamos dizer que um tigre sublinhado
criadores Greg, em seu tigre e
isso correspondem em seu Greg e eu
só precisava obter os códigos de cores reais porque eu realmente os
preparei com antecedência. Claro. Digamos que este
é o código de cores para isso. E então a
cor de destaque é essa, certificando-se de que
mudamos isso para Tiger. E então isso também está bom. O modelo, bem,
vamos realmente copiar sobre os guaxinins Baunach porque isso
vai ser mais fácil porque o conteúdo do nosso não
vai mudar. Então, vamos dizer que este
é o ovo de geração de tigre. Eles atrás e depois adicionando-o
aqui no final sublinhado que ele era arquivo adjacente
também, eu acho que manhã. E então aqui também, sublinhado
tigre desova. Isso é, claro,
praticamente todas as coisas que já
passamos com o guaxinim. Então, nada de novo demais deve ser tudo bastante
autoexplicativo. Vamos também adicionar a
animação de tigre aqui. Lá vai você. Então também vamos
ter o geo. Isso vai estar bem ali. Então, vamos abrir isso e adicionar o modelo de tigre hidro também. E então, por último, mas não
menos importante na entidade, vamos fazer um novo
diretório chamado tiger. E então, em vez de lá, teremos
o verdadeiro tigre PNG. Este é o extra também. E isso é praticamente todas
as coisas que precisamos. Como eu disse, a maioria das coisas acontece na classe de entidade
tigre. E também, como eu disse, maior parte disso é tirada dos exemplos
de baunilha, de alguns
exemplos familiares em que
vimos o seletor de presas aqui, como eu disse, é apenas
uma coisa interessante. Você não precisa necessariamente disso. Isso é apenas algo que
achei interessante e pensei que adicionaria
isso também ao tigre. Então, quero dizer, isso é, como eu disse,
praticamente tudo o que precisamos. Vamos ver se funciona ou
se responde no Minecraft. E como você pode ver, o
tiger AG foi adicionado. Então, vamos ver. Lá vamos nós. Então,
alguns dos tigres aqui são
adicionados com sucesso no jogo. E então vamos pegar alguns nabos. Sierra agora, eles deveriam estar me
seguindo uma vez que eu realmente coloquei isso e eles atrás,
eles estão me seguindo. Então esse é o
objetivo tentador, é claro, certo? Onde isso basicamente significa qual é a coisa real que
eles vão seguir. E então, se eu apenas clicar com o botão direito do mouse, você pode ver que isso não
foi, não foi bem-sucedido,
não foi bem-sucedido. Mais uma vez,
deve ter uma chance de vinte e cinco por cento e eles atrás, agora, eu realmente tenho isso aqui e se eu
clicar com o botão direito do mouse novamente, então eu realmente vou
passar e parece, não parece muito
estranho, mas é bem legal e não consigo pular. Como eu disse, isso é algo que você provavelmente
será capaz adicionar através de alguns exemplos
através do cavalo. Na verdade, deve ser muito louco. E então, se eu mudar
o botão direito do mouse, então você pode ver, então podemos fazer esse
tigre se sentar também. E isso também deve
funcionar bem. Permite que você possa ver que este
é
um exemplo de uma entidade gravável e uma
entidade de tabela ao mesmo tempo, basicamente ao mesmo
tempo e lá vai. Isso é, na verdade, o quão fácil
isso pode ser também. Bem, mas isso
vai ser para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra.
110. (tópicos adicionais) como adicionar um barco personalizado: Ou eu dou as boas-vindas de volta ao curso de
forragem para 118. E nesta palestra
vamos adicionar barcos personalizados ao Minecraft. Agora, essa é uma daquelas
coisas semelhantes ao signo. Isso parece, quero dizer, deve ser muito mais fácil, mas na verdade é incrivelmente
frustrante acrescentar. Então, mais uma vez, alguns, quero dizer, muito disso
vai ser copiado. Mas depois de
configurar isso, uma vez, você deve ser capaz de adicionar
facilmente novos tipos de barcos ao seu MOD e deve ser quase
nenhuma preocupação. Então, a primeira coisa
que vamos fazer é
fazer uma nova entidade. A primeira coisa que você
vai ser como, Espere, precisamos de uma entidade? Exatamente. É por isso que estamos basicamente
fazendo isso depois das entidades. Esta será
a entidade do barco. Eles atrás, no entanto, só
precisarão de um. E então, mais uma vez, copiarei o
conteúdo aqui. Mas, como eu disse, tudo está disponível para você
no repositório do GitHub, um indivíduo também. Vamos apenas adicionar isso e não
devemos obter nenhum, ok, vamos
pegar algumas flechas, mas isso vai ficar bem. Estes serão vendidos
em um pouco. Isso vai ser tipos de entidade
mod realmente ir para a entidade de barco que
vamos adicionar apenas um momento. Agora, mais uma vez, teremos um tipo de ID de tipo de
dados curiosamente oito, certo? Então, vamos,
uma vez que você possa ter variância
diferente de
uma determinada entidade, isso é praticamente a
mesma coisa que fizemos aqui com o tipo de ID de dados. Você pode ver que esta é a
variante TI e esse é o tipo. Então, vamos ter uma configuração muito
semelhante aqui. Nesse caso,
vamos ter o tipo real enum dentro dessa classe de entidade
múltipla real. E você pode ver
que temos a
flor de cerejeira com apenas
o nome Cherry Blossom. E então o resto é basicamente feito em segundo plano. A ideia aqui é basicamente
feita para nós aqui. E honestamente, realmente, realmente, não
precisamos
olhar para todas as outras coisas. Se você quiser adicionar vários como qualquer outro enum,
separe-os por uma
vírgula e, em seguida, apenas nomeie-os se algo diferente e então tudo ficará bem. Isso é algo que você precisa
fazer quando quiser adicionar uma nova variante personalizada ou
um novo tipo de barco personalizado, você também precisa alterar o método do item
drop kit aqui. Você pode ver que esta é
uma instrução switch. E então aqui estamos deixando cair
o tabuleiro de flores de cerejeira. E então, se você
tiver outro, basta adicionar um novo caso aqui e em seguida, basta adicionar esse item lá. Praticamente tão simples quanto isso. O conjunto de tipos get mod board, ambos os tipos devem ser
bastante autoexplicativos. Leia aditivos adicionais
do método de dados salvos. Estamos apenas salvando o tipo
real deste barco. E então aqui estamos apenas
tendo dois construtores. Na verdade, precisamos desses
dois construtores porque este vamos usar em apenas um momento
no tipo de entidade mod. Então, vou realmente
copiar isso por mais de 1 segundo. Claro que tudo
disponível para você. E você pode ver, vamos realmente chamar isso de quadro de
sublinhado mod. E quanto a isso? Isso pode
ser um pouco melhor. E então você pode ver que
esta é a entidade do barco, e isso também está bem. Isso deve funcionar,
isso deve funcionar. E então este
aquecedor se pudermos realmente excluir um dia atrás. Agora, a
entidade de barco real só será
o item que é um problema e , em seguida, o resto vai funcionar. Você pode ver que isso é
uma variedade, claro que é imune ao fogo. O tamanho aqui é
das outras entidades de barco. Então, se você realmente der uma
olhada na aula de barco, esta é, claro,
a classe disponível. Mais uma vez, dê uma olhada nisso. Se você acha que há
algo mais que você queira fazer, se houver algo
especial que você queira fazer, dê uma olhada nisso e então você deve ficar
bem lá também. Agora
também vamos precisar de um renderizador. Este será o renderizador de voto
modelo. Para cima. Lá vai você. Na verdade, isso vai ser bastante simples,
tudo considerado. Há uma
coisa interessante aqui. Mais uma vez, vou copiá-lo. Mas tudo isso está disponível
para você e não recebemos erros. E você pode ver aqui é uma coisa
muito interessante. O que você tem aqui é
seus próprios recursos. Este vai ser um mapa do tipo de placa
mod para um par de modelo de barco de localização de
recursos. Isso é uma loucura. A ideia geral aqui
é que queremos, isso é praticamente quase
exatamente a mesma coisa. Você veria esse local de textura, praticamente o que tínhamos nos
renderizadores aqui, onde temos a
localização da textura e, em seguida, a variante, isso é praticamente tudo, então
o que temos aqui apenas em um muito um método muito mais
complicado. E é o que é porque isso é o
que este está certo. Portanto, o modelo de barco de
localização de recursos pares é o que o modelo com meses de
localização. E se fizermos isso em um mapa, tipos
diferentes e, em
seguida, pares diferentes, e isso basicamente
vai dar certo. Agora isso realmente
curiosamente, só vai fazer
o seguinte, onde basicamente este parece
loucura. Isso parece, oh meu Deus, o que o **** está acontecendo aqui. Literalmente o que estamos fazendo, estamos passando por
todos os valores que todos os tipos
que definimos para nossos barcos ou barcos personalizados e, em seguida, apenas fazendo
novos pares, certo? Então vamos
passar por todos eles, fazer um novo mapa para isso
e dizer: Ei, ok, agora vamos fazer um mapa
com esse tipo específico. Então vamos
passar, digamos que
temos sete tipos diferentes. O primeiro tipo, e depois
vamos
dizer qualquer que seja o nome. É aqui que o
modelo procura. E, em seguida, a localização da
camada do modelo. Então este é o modelo de barco
real sempre será o modelo de barco
AUC. Então, esses são os modelos de barco
reais. Você pode ver que é por isso que não
criamos um modelo de barco personalizado. Então, tudo isso vai
ser o normal. Se você realmente quer modelos de barcos
personalizados, você só vai ter que
descobrir isso por conta própria. Eu recomendo dar
uma olhada no
modelo do barco aqui. Isso deve ser, quero dizer, definitivamente algo
que vai ser um bom lugar para começar basicamente, mas definitivamente vai
ser um pouco mais complicado. E então, quando
criamos isso, a ideia é que então isso
é basicamente retornado
aqui no modelo
com o método de localização, que você pode ver,
estamos verificando se este
barco é ou não do tipo ou de uma instância de uma entidade modelo de
barco mod em vez disso. E então
vamos devolver o recurso real da bola
com o tipo real. Isso é tudo o que
estamos fazendo aqui. Parece um pouco louco
e é como, uau, isso é uma loucura absoluta, mas no geral não
é tão louco. Então, onde precisamos disso? Bem, é claro que vamos
precisar disso mais uma vez no método
do cliente MC aqui
está o MOD comum do curso MC e, em seguida, na
configuração do cliente aqui. Então vamos dizer que esta é a entidade do parafuso
e este
será o renderizador de voto mod.
E lá vai você. Isso já funciona. E essa é essa configuração também. E então só precisamos de
um item para isso. Então, curiosamente,
ainda precisaremos de um
item personalizado para isso também. Este vai ser
um item de voto MOD. E então, na verdade, há
um erro de digitação lá. Nós só vamos
corrigir isso rapidamente. Ir item. E mais uma vez aqui, algumas coisas que
serão copiadas. Este é, na verdade, o
cluster é o menor. Bem, quero dizer, não diria
interessante necessariamente, mas a menor loucura que
temos esse método de uso, basicamente apenas fazendo o
que acontece quando
clicamos com o botão direito do mouse. Isso é praticamente, quero dizer, é quase um para um
do item do barco. Podemos ver isso como o item do
barco aqui. E esse é o método dos EUA. Praticamente parece
quase exatamente o mesmo. Em vez de fazer um novo conselho, fazemos um novo voto mod deve ser bastante
autoexplicativo aqui, e o resto é quase
exatamente o mesmo, praticamente a mesma coisa. Então lá vai você. E bem, depois de
adicionarmos isso, vamos também fazer o item isso para que possamos nos livrar
da última seta lá. Vamos apenas copiar sobre
o crepúsculo mágico. Este vai ser o, agora este é, na verdade,
o barco específico. Então este será
o item do voto da cereja. Para cada um dos seus
diferentes tipos de pranchas, você vai
precisar de barcos diferentes, basicamente item de barco de cereja, vamos realmente desculpar, este
é o item Chevy Bolt. Vamos chamá-lo de Sherry. Na verdade,
placa de flor de cerejeira. Isso é melhor. Lá vai você. Sim, isso
faz com que eles sejam mais sentidos. Barco de flor de cerejeira. E então este é
um item de voto MOD. Agora, isso realmente toma como seu primeiro parâmetro,
o software normal. O segundo parâmetro,
como você pode ver, leva
o tipo de entidade mod
boat, tipo entidade, ponto árido, incrível. Este estava muito
longe do ego. Na verdade, lá vai você. Agora, obviamente, funciona aqui. Então você pode ver agora que criamos o item com marcadores MOD aqui. E então isso
também deve funcionar na entidade aqui, onde vamos voltar
para lá. Agora, todas as flechas
devem ter desaparecido. Agora só precisamos
adicionar os arquivos JSON. Então esta seria a tradução primeiro lugar, é claro ,
para o item, isso
vai ser aqui, então vamos
copiar isso. Este será o barco sublinhado de
flor de sublinhado de
cereja . E então, claro, o mesmo aqui. Barco de flor de cerejeira. Agora, há outra
coisa, é claro, o modelo do item, não
o modelo do item. É apenas um modelo de item normal. Nada muito louco sobre isso, mas ainda assim
vamos copiá-lo sobre n. Vamos
dar uma olhada nisso. Você pode ver apenas pontos para
uma textura de item específica. Nada de louco aqui. mesmo com a textura do item. Essa é apenas a textura
normal do barco. Realmente texturizado
basicamente um
pouco para nossos personalizados. Então podemos ver que eles atrás é
o tabuleiro de flores de cerejeira. Outra questão
é o peso, mas enquanto a textura da entidade lá, bem, isso vai
mais uma vez para a entidade. E vou fazer um novo
diretório chamado barco. E então dentro daqui estava a
flor de pontuação de tom de cereja, esse nome bem aqui. O que é muito importante? Tem que ser o
mesmo que o nome fornecido no tipo desse
nome deve corresponder a esse nome porque é isso
que o renderizador
procura em termos de textura.
Então isso é muito importante. E é assim que parece. Basicamente, mais uma vez,
basta basicamente configurar. Então, isso é todo o quadro. E então você pode, essa é a textura
básica do barco. Essa é a ideia geral. Agora, em teoria,
acredito que isso deveria ser todas as coisas que
precisávamos para um barco acrescentar. Como eu disse, é
só com o sinal. É muito louco. Como todas as coisas consideradas. Há alguns passos muito
importantes, como eu disse, maior parte disso se você simplesmente copiá-lo e então você pode
basicamente alterá-lo. Então, você
precisará de um novo item personalizado para cada um dos novos tipos de barcos. Novo tipo de barco aqui. Então isso é algo que
você precisa e, em seguida, o resto deve estar bem. Acredito que você
deve ser capaz usar esse tipo de entidade
para todos eles. E isso deve ser
praticamente tudo o que você precisa fazer. Mas, para fins de conclusão,
vamos ver se funciona. Ou se voltarmos ao
Minecraft e você pode ver o barco de flor de cerejeira foi
adicionado com sucesso ao jogo. Agora vamos defini-lo. E aí está, a placa de flor de cerejeira. E podemos usá-lo na água. Tudo funcionando totalmente bem, assim como
esperaríamos que ele acontecesse. E então, se eu realmente mudar
para o modo de sobrevivência rapidamente, vamos para o modo sobrevivente
e vamos ver se isso cai e, de fato, deixa cair
uma placa de flor de cerejeira, assim como você
esperaria. Então lá vamos nós, trabalhando
tudo, surpreendentemente. E isso é, na verdade, o
quão fácil é. Como eu disse, há alguns passos que
você tem que passar. Mas uma vez que você passa por eles, então é realmente
bastante simples. Mas será isso para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
111. (tópicos adicionais): Ou eu dou as boas-vindas de volta ao curso de
forja para 100 adolescentes. Nesta palestra,
vamos adicionar geração de entidades
personalizadas
ao Minecraft, mas criamos nossas entidades agora também queremos que elas
apareçam no mundo. Então, para isso,
vamos fazer uma nova aula aqui. Então, no pacote da agenda mundial, vamos fazer uma nova classe de degeneração de
entidades mod. E mais uma vez, este eu
vou copiar
porque eu
basicamente preparei um pouco de uma aula aqui
que você pode usar. Então, é claro que
precisamos mudar isso para mais de dois tipos que eles vão
e, em seguida, este também. Isso não deve ser
preocupação para você. Você deve ser capaz de
simplesmente copiar isso. E você pode ver
toda a classe aqui, temos um
método de esportes de entidade que
vamos chamar aqui, basicamente na parte
inferior aqui. Então, mod entity iteration
no spawn vazio
e, em seguida, estamos passando
o evento de carregamento de mensagens instantâneas aqui. E isso deve ser
praticamente o que precisamos. E então você pode ver que
existem alguns métodos que podemos usar. Por exemplo, adicione entidade
a todos os biomas de anulação. Temos uma entidade para todos os
biomas. Net para nether. Não, nether, desculpe, certo. Então, há em todos os lugares,
menos o nether, cada robô, o fim. E então aqui também, todos os biomas,
inclusive e outros. E geralmente, em teoria, se você tem esses métodos, você deve ser
capaz de facilmente em outros que praticamente fazem a mesma coisa
que você quer fazer. Quero dizer, honestamente, neste momento, algum conhecimento Java
é, claro, muito uma coisa que você
deve ter neste momento. E uma vez que você o tenha, então adicionar um pouco mais aqui não
deve ser muito louco, mesmo que você não
entenda necessariamente tudo
se quiser, ok, isso adiciona a todos os biomas, mas o fim é como, ok, você provavelmente pode descobrir como adicioná-los apenas ao fim, por exemplo, literalmente
isso, é isso agora. De repente, tudo
apenas até o fim dos biomas, isso é praticamente
tudo o que há para ele. Então essa aula, como eu
disse, já usei antes. E, no entanto, aqui tivemos o
exemplo agora de que
vamos adicioná-los a basicamente
todos os biomas sobrecarregados, neste caso, tanto o
guaxinim quanto o tigre. Então, depois de
adicioná-lo aqui, isso é literalmente
tudo o que precisamos fazer. Acho que por causa de conclusão,
vamos ver se funciona. Isso se traduz de volta no Minecraft. Agora, em teoria,
nem precisamos criar um novo mundo para isso
porque as entidades são, elas meio que geram. Quero dizer, eu não diria
necessariamente dinamicamente, mas eles não detectam
imediatamente basicamente o
mundo que está sendo gerado. Então, vamos ver se podemos encontrar
algum de nossos personalizados. Isso já era
tigre lá está. Já existe um tigre
aqui na floresta. Há
outro, outro. Mas isso é, quero dizer, isso é
realmente o quão fácil pode ser. Uh, você viu que isso é
bastante simples. Todas as coisas consideradas,
como eu disse, não mudar é deve
ser totalmente fácil também. Você pode ver que
existem mais tigres. Eu quero talvez possamos encontrar
alguns guaxinins também. Talvez logo por cima
desta colina, comando. Alguns guaxinins. Eles são, vamos embora. Nós realmente os encontramos para ler guaxinins e dois discos escuros.
Então, isso é muito legal. Sim, então é
assim que é mais fácil adicionar alguma
geração de entidade personalizada Minecraft que já o possui para
esta palestra aqui. Como sempre, é claro, todo o código está disponível para você
no repositório do GitHub e
individual também. Mas, de outra forma, verei
você na próxima palestra.
112. (tópicos adicionais) como adicionar negociações personalizadas aos aldeões: Ou eu dou as boas-vindas de volta ao curso de
forja para 118. E nesta palestra
vamos adicionar negócios personalizados a um aldeão. Então, isso vai
ser traços personalizados para os aldeões
já existentes,
muito importantes aqui. Portanto, não vamos adicionar nenhum aldeão
personalizado no momento. Isso pode acontecer no futuro, mas eu não contaria com
isso necessariamente agora. Então, temos que entrar em
nossa aula de Eventos. Há apenas um evento aqui.
Na classe mais avançada. Só vou
copiar o método e é muito, muito
simples. Isso é tudo o que precisamos. Então você pode ver que
vamos usar os negócios aldeões
de n aqui mesmo. E então
vamos apenas dizer, ei, se o tipo for específico, uma profissão que onde
queremos adicionar nossos traços também, então nós apenas adicionamos
nosso comércio a ele. Isso é literalmente
tudo o que estamos fazendo. Você pode ver que é
muito, muito simples. Você pode ver que essa é a
maneira que você filtra. Então, se você quiser adicionar algo
para outra profissão, basta copiar a declaração if e ela mudou o
profissional aqui. Mais alguma coisa que
você queira aqui? Você pode especificar o nível de
aldeão
aqui mesmo quando você faz
negócios isso ainda. E então você passa no nível da
aldeia ou da alavanca aqui, e então você apenas adiciona qualquer oferta de
comerciante que quiser. Então, este aqui, então a esmeralda real aqui é o que você paga.
A oferta do comerciante. Você também pode colocar
dois itens, três itens,
pilhas e, em seguida, essas
seriam as duas coisas pelas quais
você tem que pagar. Nesse caso,
temos uma pilha de itens, a Esmeralda para esmeraldas. Isso é o que pagamos,
e então vamos
conseguir nabos de riqueza para isso. Então você pode ver o Max usa, podemos usar isso dez vezes. A velocidade é de 50. Eu acho que isso é
realmente um pouco
alto demais para as coisas aqui. Então eu acho que isso está
mais no domínio da
experiência de um único dígito geralmente, mas seja qual for o
caso, quero dizer, todos esses números
recomendam apenas brincar com eles de
uma maneira ou o outro. Quero dizer, essa é provavelmente
a coisa mais inteligente de qualquer maneira, mas isso é literalmente
tudo o que você precisa. Você pode simplesmente copiar isso em quantas declarações if
aqui quiser, quantas características quiser, quantas características quiser adicionar. Mas isso é literalmente
tudo o que você precisa fazer é muito fácil,
muito simples. Quero dizer, você não pode tornar isso
mais fácil, honestamente, realmente. Quero dizer, eu acho que só
por causa da conclusão, vamos ver se funciona ou
se nossas respostas de volta no Minecraft e eles podem ver que já temos os
nabos aqui, então eu posso simplesmente colocar em esmeraldas e vou pegar
meus 12º nabos. Isso já funciona,
nosso personalizado. E você pode ver o
quanto
experimenta o agricultor de verdade
novamente a partir disso. E então vamos realmente
ir para a ferramenta Smith e vamos apenas pegar algumas
ferramentas aqui para que
possamos basicamente nivelá-lo
até o nível três porque
precisamos delas para o nível dois, nível três, vamos pegar um
pouco de ferro lingotes vidente, se você trocar também, lingotes de
ferro o objetivo. E então vamos esperar que
isso dê certo. Vamos pegar alguns lingotes de ferro. E então o nível três deve
estar ao virar da esquina. Eles atrás em atualização, atualização. Vá e agora vamos ver. Não temos o
Paxil neste caso, então isso não funcionou bem. Bem, justo o suficiente. Acho que vamos dizer
o outro então. Vamos apenas me deixar
atualizar rapidamente ou essa ferramenta Smith foi um
pouco mais cooperativa. Você pode ver o cobalto
Paxil. Lá vai você. Assim, podemos conseguir isso e
então poderíamos usá-lo. No entanto, gostaríamos. Lá vai você. Então,
assim como esperaríamos que a ferramenta real funcionasse, ela funciona e lá vai você. Ele foi capaz de ser
negociado aqui através da ferramenta real Smith
e aqui mais uma vez, os nabos aqui, podemos apenas pegar alguns
deles e eles vão. Então, o máximo também
funciona totalmente bem, mas como esperamos
que ele seja realmente legal. E isso é realmente o
quão fácil é adicionar alguns traços personalizados aos aldeões. Como eu disse, isso é
claro que os aldeões existentes, mas isso ainda adiciona algumas idéias diferentes ao seu mod, o que
é muito legal. Então eu recomendo
verificar isso, mas caso contrário, isso será para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra.
113. (1.18.2) Atualizando a: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos atualizar nosso projeto para 118 até agora com
o lançamento da década de 1880, chegam algumas mudanças, mas felizmente nada que
possamos consertar bastante crosta na verdade. Nada é louco demais. A única coisa
curiosamente que está realmente completamente
quebrada ou não completamente, mas em grande grau, o título
é curiosamente suficiente? Não sei por que eles
mudaram a tela de título, mas seja qual for o caso, vamos atualizar e então você basicamente verá as mudanças no arquivo DOD Gradle
criado. É claro que há
algumas alterações a serem feitas. Então, o que vamos fazer
é, antes de tudo, dê uma olhada no que é a versão
atual. A versão atual, como você
pode ver, 40012, mais uma vez , é
claro para você, isso
no futuro provavelmente será
uma versão posterior. Então você vai pegar
isso nesse ponto, então, e então vamos ficar bem. Então, vamos fazer isso primeiro. Então, vamos direto aqui
para as dependências 40012. E então isso é apenas
verificar,
verificar duas vezes 40121, 1000th 2. Isso está correto. E
antes de realmente recarregarmos isso, também
queremos obter a versão mais nova
do,
de gecko lip porque acredito que, na verdade, o
antigo não funciona. Então, nós queríamos em 312
também aqui, apenas fomos para a
instalação você mais uma vez, e então estamos
usando isso também. Então, vamos fazer isso
aqui, eles atrás. E isso deve ser
praticamente isso. Além, é claro, de mapeamentos de
pergaminho, isso é incrivelmente importante
para os mapeamentos de pergaminho. Na verdade, queremos mapeamentos de pergaminho muito
específicos e eles serão
os seguintes. Vou copiá-los
e isso estará, é claro, mais e isso estará, é claro, uma vez disponível para você
no repositório do GitHub, um indivíduo também. Você vê, estamos basicamente pegando os mapeamentos de pergaminho de 1800 e depois colocando sobre os mapeamentos oficiais normais dos
anos 1880. Se você não tiver
essa configuração
assim, você vai
realmente encontrar alguns problemas e alguns métodos não
estarão disponíveis. Portanto, tenha isso
em mente se você estiver usando
ímãs pessoais para usar isso, ou se eles forem atualizados para 172, é claro que você também pode atualizá-lo para essa
versão nesse momento. Mas depois vamos clicar
no elefante pequeno. Se isso não aparecer, você
pode abrir a guia Gradle e pressionar
as alterações de recarga
ou Gradle. Agora, isso mais uma vez pode
levar até um minuto ou dois. E porque já
fiz isso, isso deve ser tomado para mim. Normalmente, há
alguns segundos. Vamos ver, basta ser paciente
e deixá-lo passar. E então veremos que depois de
obtermos uma construção bem-sucedida, eles foram construídos com
sucesso, levou bons dois minutos aqui. Mas, mais uma vez, é claro, seja paciente e espere
até obter uma construção bem-sucedida e então
você vai ficar bem. Mas a primeira coisa que
vamos fazer é entrar na nossa aula de mod de curso MC
e vamos fazer uma coisa e isso vai ser puxar o ponto
lib da gecko inicializado. Isso provavelmente deveria ter
sido adicionado de antemão, mas agora é o melhor momento
do que nunca para ser adicionado. E então vamos
ficar bem aqui. Acho que é
estritamente necessário, mas definitivamente é
recomendado, pelo
menos no mínimo. E então quais são as
mudanças enquanto as mudanças aconteceram principalmente nas tags, e também as mudanças acontecendo
nos pacotes mundiais. Vamos dar uma
olhada nisso em um momento. E também há
uma pequena alteração na entidade
do bloco com
a receita personalizada. Em primeiro lugar,
vamos lidar as tags aqui. Você pode ver que o
imposto de nomes opcionais não existe mais. Mas o que existe
é a chave TAC, e vamos
substituir isso por brega. Clique nele, pressione Alt e
Enter importar esta classe. E então vamos
alterar todas as tags opcionais para tack key. Lá vai você. E então, em vez de
criar um opcional aqui, apenas
criamos pontos. Você pode ver que estamos apenas
mudando isso para Criar. E lá vai você. Isso é praticamente tudo o
que precisamos fazer agora, uma coisa que ainda
não funciona como a vara de dowsing valiosa
aqui podemos ver, você pode ver, nós não podemos apenas
todos os Contém aqui. Agora, isso é o que você diria? Quero dizer, um pouco
irritante para ser honesto. É assim que esta
configuração está parecendo muito estranha. Então é isso que você
precisa colocar lá. Veja o bloco de pontos do registro, suporte ou garganta. Então, basicamente, vamos
obter a chave de recurso de registro para esse bloco que
estamos passando aqui. Então estamos dizendo,
ok, este titular está dentro dos objetos de valor da
vara de dowsing? É uma loucura a forma como
isso está configurado agora, não
sei por que as
mudanças ocorreram. Só estou dizendo que
esta é basicamente a maneira que temos que fazer isso. E eu só vou,
vamos ser capazes de encontrar
com ele basicamente. Mas essas são as
mudanças aqui. Então, as tags estão prontas. Vamos, na verdade, entrar
na receita aqui. Qualquer receita mod, esta linha
aqui não pode mais
estar neste método. O que realmente queremos fazer
é no pacote de eventos, no modo eventos passados, queremos adicionar um novo evento. Então, vamos
apenas copiar isso
para o momento aqui. Isso vai
registrar os tipos de receita. Então o que vamos fazer
é pegar este
evento de registro do Registro aqui, e vamos
mudá-lo da seguinte maneira. Então, vamos dizer que isso
realmente não está em realizações globais, mas isso é realmente o serializador de
receitas atrás. Então, é isso que precisamos. É claro que isso, mais uma vez,
está disponível para você
no repositório do GitHub em
indivíduos também. E então vamos
copiar esta linha se você tiver vários tipos
de
receita, é claro que quisesse adicionar
todos eles aqui, todos os métodos de registro de
pontos do registro, e isso seria bom. Agora isso também funcionará. E agora podemos entrar
na loucura que será
a geração mundial. Mas no produtor de árvores abstratos, você pode ver basicamente agora que
não queremos mais o recurso
configurado aqui. O que realmente queremos
é uma retenção, certo? Então vamos dizer Espere e isso vai
ser muito interessante. Haverá pontos de
interrogação estendidos, estende o
recurso configurado aqui. E então vamos fazer isso
e, em seguida, podemos passar para a classe de
recursos configurada para fosso e, basicamente, mudar isso. Consequentemente. Então, isso também será
um detentor. Neste caso de ponto de
interrogação se estende, então ele é configurado
e, em seguida, aqui no final, adicionando o colchete
angular de fechamento. Mais uma vez, é claro que tudo disponível para você
no repositório do GitHub, um indivíduo também. Então o que
vamos ver é isso configurado, não
precisamos mais incluir o ponto. Vamos substituí-lo por uma vírgula e, em seguida, excluir os
parênteses de abertura e fechamento no final. Isso agora não deve ser mais
um erro. Lá vai você. E isso também deve estar bem. Agora, o que temos que fazer
é, na verdade, agora podemos ir do recurso de configuração para configurar o recurso
para colocar o recurso. Agora, na verdade, temos que
adicionar outro
recurso de lugar aqui, e eu copiarei isso
mais uma vez, tudo disponível para você
no repositório do GitHub em
indivíduos também. E você pode ver aqui, basicamente
temos esse recurso de lugar
mais uma vez em vez desse
suporte aqui. E estamos basicamente filtrando por sobrevivência em
bloco da amostragem, assim como estamos fazendo aqui. Em vez de
fazer isso em linha, basicamente
estamos fazendo isso
com um recurso de lugar aqui. E então estamos usando
o recurso de lugar
nesta lista de
configuração de recursos aleatórios, assim como estamos fazendo aqui. Então é muito, muito semelhante, um
pouco
diferente, acho que, quando se trata dos remadores, isso também deve ser
bastante simples. Só temos que mudar
isso aqui. Na verdade, não
queríamos mais chamar isso. Então, o real ficar vazio não
é mais uma coisa. Queremos fazer
algo assim, mas você não
quer nem mesmo devolver algo porque isso
realmente só aceita isso. Vamos fazer
algo assim. E então este
será o utilitário de colocação, o que precisamos quando
a colocação utils, isso é somente quando vazios. E então vamos passar isso aqui e eu vou acabar com isso com um ali mesmo. Deixe-me
reformatar isso rapidamente um
pouco para que eu possa realmente
ver onde estamos aqui. Deixe-me um bloco simples com
uma nova configuração de bloco. Eles bloqueiam o provedor de linhas. Vamos passar o
mouse sobre isso. O que queremos? Isso é claro, também será um detentor. Só precisamos mudar
isso para um detentor que eles atrás, e então isso
também deve funcionar. Lá vai você. Mais uma vez, é claro que você
sempre pode copiá-lo. Você pode ver que as mudanças
aqui ou não tão loucas, elas são apenas realmente sintaxe, o
mesmo aqui com a ordem. O pedido é
provavelmente o mais fácil. Só temos que mudar
isso e depois mudar isso para um titular também. Eles atrás. E então isso também precisa ser de configuração de guerra,
muito importante aqui. Lá vai você. Então, como você pode ver,
praticamente trabalhando também. Então, essas são as mudanças, é
claro, as mudanças em 0,5. Então eu tenho que acontecer
aqui nos recursos mais recentes onde todos eles são detentores
também ou não ou configuração
sobre suportes. Deixe-me copiar sobre
o suporte aqui. Lá vai você. Espere em uma viagem. E eu vou fazer isso para
cada um deles só que já o tenhamos
e o segure aqui também. Lá vai você. Em seguida,
vamos clicar nele, Alt e Enter para importar. E então, em vez de
tê-los, Isso colocado, o que realmente queremos é apenas
remover o lugar novamente, adicionando uma vírgula aqui. Agora isso não vai
ser verificado com, isso realmente vai ressurgir. E agora eles atrás, mesmo aqui em vez de lugar, vamos fazer uma vírgula e depois fazer
algo assim. E então o mesmo aqui
que eu coloquei, substituindo-o por uma vírgula
e, em seguida, também podemos remover isso e isso
deve estar funcionando também. Ainda precisamos entrar
nas aulas Gen porque
aqui também mudou. Agora, este é um detentor
em vez de um fornecedor. Então, em vez de
fazê-lo como fornecedor, vamos
fazer isso assim. Então, vamos remover o fornecedor aqui e
isso também deve funcionar. Então, isso remove o fornecedor,
importe o suporte. E então o mesmo aqui, último. Exclua
isso como isso e eles atrás. E isso deve ser para
a geração mundial. Vamos ver a
regeneração Morrow. Lá vai você. Funciona novamente, sem mais erros e agora tudo
deve estar funcionando. Então, é claro que, mais uma vez, tudo está disponível para
você no repositório do GitHub, um indivíduo
também para copiar. E isso deve ser tudo o
que precisamos fazer. Na verdade, vou mostrar o
que há de errado com a tela de título em apenas um momento em que
entramos na tela de título. Mas agora podemos simplesmente
iniciá-lo, ver se funciona. Vamos criar um novo mundo também. E então vamos ver se tudo funciona em 1000th dois. Ou a tela de título personalizada
está realmente desativada. Vamos ver
isso em apenas um momento. Mas, por enquanto,
vamos fazer novos mundos. Vamos fazer um teste 1234, e vamos ver se
tudo ainda funciona, se tudo ainda aparece, mas estou bastante
confiante de que funciona, ou Francis de volta ao Minecraft. Então eu já basicamente
localizei o bioma de um avião aqui. E você pode ver que temos nossas multidões
personalizadas mesmo surgindo. Temos nossa árvore
gerando nossas flores. Para que tudo funcione totalmente bem. E você pode ver que
vamos entrar aqui. Podemos obter a rota
da explosão de
cobalto como uma receita aqui, apenas por uma questão de
discussão, por que não? Vamos apenas experimentá-lo porque a receita também deve
estar funcionando totalmente bem. Vamos apenas configurá-lo para baixo. Lá vai você com a teoria, você vai e ela ainda está
funcionando totalmente bem. Você pode ver que somos picareta de
cobalto, está funcionando, está lá dentro. E assim como você pode ver, quero dizer, praticamente
tudo ainda está funcionando. Também podemos dar uma olhada
na haste de dowsing aqui com o tablet de dados há
também ainda funcionando. Então, também está funcionando
totalmente bem. Tudo deve estar funcional. E sim, quero
dizer, é praticamente isso. Então, vamos dar uma
olhada rápida na tela de título. Então eu vou
mudar o falsificado e depois vamos
dar uma olhada no que a tela de título e as caudas. Tudo bem, como você pode ver, tanto a tela inicial quanto as
informações adicionais
no canto inferior esquerdo não
estão presentes. Não tenho 100% de certeza
por que esse é o caso. Então eu acho que o melhor curso
de ação é apenas manter seu
padrão de tela de blocos personalizados desligado basicamente
para que ela não seja substituída. E então, uma vez que eu realmente
descobri algo, então eu
farei outra pequena palestra sobre basicamente como consertar isso
por enquanto, eu acho que isso vai ser demitido e não vai ser robô
muito disruptivo que praticamente conclui
esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. E te vejo
nas próximas palestras.
114. (1.18.2) Estruturas personalizadas (como trabalhar através do tutorial): Tudo bem, bem-vindo de volta
ao curso de forja para 118. Nesta palestra,
vamos olhar para uma
geração de estrutura personalizada muito importante é que a
geração de estrutura personalizada aqui é claro, será
para 118 para, se você tiver um atualizado, aconselhamos
muito você a ir à última palestra que tivemos e onde basicamente atualizamos
para 118 para ter isso em mente, o que vamos fazer
nesta palestra em particular
é que vamos ir através do
tutorial de estrutura por grunhido telepático. E isso está bem aqui. Eu já tenho isso aberto
aqui em segundo plano, e esse é provavelmente o melhor recurso para
estruturas que já existem. Quero dizer, como adereços
para corrida telepática porque isso é
absolutamente incrível. E podemos ver que existem
diferentes ramos aqui. Eles podem usar o 1800, forjar um ramo de quebra-cabeça
se você estiver usando 1, 1000th 2, e se não, você pode usar o
ramo 1800s 0, este aqui. Forja. É definitivamente um
pouco diferente. Em 1 1000th 2. O que podemos fazer agora é que podemos realmente fazer estruturas personalizadas, adicioná-las ao mundo sem
nenhum pedaço de código. Só precisamos de arquivos JSON, o que
é realmente incrível. Nesta palestra, o que
vamos fazer é passar por esse tutorial de
estrutura mod
aqui, todo o código,
todos os arquivos adjacentes, copiá-los sobre uma peça por peça
e, em seguida, basicamente, dê uma olhada no que você
precisa mudar. O que você pode então, o que
você tem que fazer? E a ideia geral de adicionar as duas estruturas que são
adicionadas aqui como exemplo. E então, nas próximas
palestras, nós mesmos faremos uma
estrutura de peça única. E então também vamos
criar uma estrutura de quebra-cabeças, o que é realmente muito
mais fácil do que você poderia esperar. Na verdade, não é muito louco. Acho que sim, é claro, se você tem algo
em costume único, claro que vai ser um
pouco mais complicado. Mas, por
enquanto, vamos entrar aqui e vamos
ver o que temos que fazer. Então, vamos no
source main e
temos que realmente
abrir ambas as pastas. Então, vou
para o meio do mouse, clique no Java e,
em seguida, nos recursos também. Vamos antes de
tudo, começar com o código. Você pode ver Há a classe
principal que temos, isso é o que eu
chamaria de estruturas mod. E então, nessas pastas de
estruturas, no
pacote de estruturas, temos a classe sky structures. Mas esta é a primeira
coisa que vamos fazer. Nós vamos basicamente,
vou
reorganizar isso um pouco, mas vamos começar
com as estruturas mod. Este aqui e
entre vai fazer este, e depois vamos fazer isso 1. Primeiro de tudo, precisamos de uma classe de estruturas
mod. Bem, isso é feito facilmente
no pacote mundial na verdade. Então vamos entrar aqui novo pacote chamado estrutura. Então, em vez de todos eles
vão fazer uma nova classe chamada de rupturas dos modelos. Lá vai você. Agora está escrito
corretamente eles,
nesta classe, o que
vamos fazer é que eu
vou copiar
o conteúdo aqui. Isso é, na
verdade, vamos copiar sobre tudo. Isso vai ficar bem. Vou
renomeá-lo aqui novamente. Então, quando eu digo estruturas modernas, eles vão se certificar de que
o nome aqui está correto. E então também podemos excluir
isso e isso. Lá vai você. E apenas reformate
isso um pouco. É claro que
agora será a montagem
do curso MC na AdMob ID. E então porque eu
gosto de fazer isso, vamos fazer é que
vamos fazer um, porque eu gosto de fazer isso. Vamos torná-lo público método de registro vazio
estático com um I of n plus Event Pass. E então vamos chamar a estrutura do registro diferido. Você também pode
chamá-lo diretamente na classe principal
do construtor, mas não vamos fazer
isso nesta classe. Vamos adicionar
em apenas um momento. Então, no
mod do curso MC aqui, vamos descer,
vamos dizer aqui mesmo para modelar estruturas que se
registram e depois passando na tarifa de ônibus
do evento que
você vai, certo? E agora nós realmente fizemos este aqui e
depois este também. Você pode ver que
isso é literalmente a única coisa que
precisamos adicionar. E então aqui temos
as estruturas do céu uma, vamos apenas copiar
sobre a coisa toda. Mais uma vez, este é
o pacote de estrutura. Clique com o botão direito do mouse em nova
classe Java chamada Sky structures, não, sin aqui. O que só queremos
fazer é que não
queríamos dizer gerenciador de registros, certificando-se de que escolhemos ou log do
Apache para
J. Muito importante. E então dizemos
em vez de lager, dizemos ainda lager ou
log. Lá vai você. Esta não é a casa degradada. Na verdade, há estrutura de
céus. Lá vai você em uma posição
específica. E então podemos realmente
dar uma olhada nessa aula, o que é, o que ela faz? Livre-se dessa importação também. E então lá vai você. No geral desta classe, você pode ver o recurso de estrutura da configuração do
quebra-cabeças. Agora, esse é um tipo de código
boilerplate. Você pode ver que há muitos comentários que eu recomendo
em seu próprio tempo. Percorra, leia
todos os comentários. Apenas tente entender um
pouco do que está dizendo. As idéias eternas de que você tem dois métodos diferentes aqui, estes apresentam caminhão com
ele e peças decretadas. O gerador e o gerador de pizza
creed são realmente o que é mais
interessante para nós realmente. Você pode ver no tronco futuro, estamos apenas
verificando, ei, esse pedaço
é o
pedaço real onde isso é colocado? Grosso modo,
recomendo vivamente, como eu disse, leia
todos os comentários. É altamente recomendado. Mas então, no gerador de
peças criativas, você pode ver aqui o que estamos
basicamente fazendo aqui. Isso é interessante,
certo? Então você obtém as coordenadas do tronco
em uma postagem no blog. Então, isso vai
ser o que está fazendo. E então aqui estamos
basicamente colocando 60 blocos acima da terra superior. Então você pode ver isso
fazendo isso assim. Você pode ver no comentário aqui, vamos mostrar que o WG vai parar
na água superior para que não coloquemos acidentalmente nossa
estrutura no oceano. E então isso é basicamente, você obtém a coordenada y do topo da
terra basicamente, e então estamos adicionando 60 a ela. Então, essa é uma maneira de você basicamente mudar o nível y. E então você
também pode ver aqui, temos para cada um
dos diferentes parâmetros
que estamos colocando aqui,
o, o que basicamente acontece
aqui. Está muito bem feito. Eu posso apenas recomendar
se houver alguma coisa complexa
que você queira fazer, leia os
comentários que são adicionados aqui e então
você ficará bem. Agora, isso é, na verdade, todo
o código que precisamos. Isso é muito interessante
porque o
resto é feito com arquivos JSON. Nós vamos basicamente
voltar ao GitHub novamente e vamos
fechar tudo isso e então estamos
aqui nos recursos. Então, o que precisamos
está na pasta de dados, na verdade, vamos
precisar abrir muitas coisas aqui. Precisamos adicionar essas
coisas e essas coisas. Se adicionarmos nossa
estrutura a essa tag, você poderá ver que o micróbio tem
algumas tags de
recursos de estrutura configuradas que estão no comportamento. E então isso basicamente
irá adicioná-lo a um localizador. Vamos estruturar nos
fotógrafos,
aldeões, mapa do oceano, mapas de monumentos. Isso não é estritamente necessário. É apenas uma coisa interessante. Na verdade, não vamos
implementar este. Vamos ignorá-lo
e só estaremos interessados na pasta de dados
para nossa própria personalizada. Este, é claro, sendo um
tutorial de sublinhado de estrutura ou as horas de identificação mod
será o curso Mc. E então vamos abrir
todas essas três pastas. E então você pode ver que as
estruturas aqui são dados NVT. Isso é muito interessante. Portanto, os dados NVT são
basicamente gerados dentro do while
em vez do Minecraft. Então você constrói sua estrutura, você usa certos blocos para
gerá-la por enquanto. Nesta palestra,
vamos pegar esses dados NVT e
vamos copiá-los. E então teremos
que mudar um pouquinho nos dados do NVT,
mas não se preocupe lá. Vamos ver
isso em apenas um momento. Por enquanto,
vamos baixar basicamente
todos os quatro. Então, vamos
entrar aqui, abrir todos eles
e depois baixar, baixar, baixar e baixar. E você pode ver que eles estão em estruturas de ID do
Data Mart
e, em seguida, no arquivo real. Então, o que vamos
fazer é dentro da nossa pasta de dados, curso MC, vamos criar um novo
diretório chamado estruturas, e então eu vou adicionar
todos eles lá. Só vou realmente
fazer isso assim. Lá vai você. Assim como
arrastá-los para esta pasta. Quero dizer, neste momento deve
ser bastante autoexplicativo. Como você pode simplesmente adicionar
coisas segue aqui, apenas arrastando-as para lá. E então temos os dados NVT aqui. Então
isso é muito bom. E essa é a primeira parte. E agora precisamos
voltar aqui. Podemos nos livrar
de tudo isso aqui. Lá vai uma hora aqui
nas tags world gen
bioma tem uma estrutura. Portanto, esta é uma tag muito legal
que vamos adicionar. E isso é sinceramente
muito legal porque você
pode ver antes de tudo,
os biomas dos fãs do céu aqui. E depois há também
a única casa JSON. A única casa JSON, se você se lembrar de volta em nossas
estruturas que
tínhamos, só tínhamos as
estruturas do céu aqui. Não há menção a nenhuma casa. Exatamente. É o que estou dizendo. Você pode realmente adicionar certas estruturas sem
ter nenhum código. Este DJs e só ouve casa. Isso basicamente
nos permitirá fazer isso. Eu vou fazer é que eu só
vou possuir os dois. Então o que
eu faço é copiar
o nome aqui porque isso é
um pouco mais fácil. E essa foi uma tag em nosso curso
MC, tags de holdup. E isso sob este
submundo Jen. E então, em vez de aqui, isso vai estar sob bioma. E depois mais uma estrutura, mais
um diretório que é chamado de estrutura sublinhada. E então podemos adicionar o
arquivo aqui, este 1 primeiro. E então
também vamos obter o segundo, o nome aqui
também, um novo arquivo. Lá vai você, Jason só
abriga biomas e você pode ver o conteúdo do qual se eu vou
copiar este aqui. Portanto, esta é a
estrutura de código Skype e biomas. Você pode ver esse imposto sobre o bioma
especifica quais biomas, isso realmente começa nele. Você pode
iniciá-lo com tanques de bioma, com uma hashtag ou
especificar um
bioma específico como este. É realmente incrível. Então, essa é a maneira
que você pode basicamente especificar em quais biomas essa estrutura em
particular gera, mas também copiará
o conteúdo desta. Eles vão. Sem esse. Claro, lá vai você.
E toda a sacarose também está disponível no repositório do
GitHub no, também.
Não se preocupe lá. No entanto, eu realmente acho
que é o melhor se você trabalhar neste
tutorial de estrutura comigo uma vez e talvez
até uma vez por conta própria, apenas para que você basicamente
conheça cada parte individual. Então você pode basicamente dizer que esta
tag de bioma de geração mundial tem estrutura, é usada para especificar os biomas em que nossas
estruturas surgem. Mas, basicamente,
agora podemos fechar isso também. E então podemos prosseguir para o próximo que
é a geração mundial. Havia essa pasta, então vamos
fechar isso também. E então você pode
ver que existem quatro pastas
diferentes aqui. Mais uma vez,
tudo realmente interessante. Então, vamos
abrir o primeiro e vamos basicamente
lidar com isso. Podemos ver que aqui temos a estrutura do código
sky angariação de fundos e a única casa adjacente para o recurso de
estrutura configurada. Mais uma vez, vou
copiar o nome
aqui e vamos
dar uma olhada nele. Portanto, os dados são o submundo
mais
ideal e, em seguida, o recurso de
estrutura configurado, vamos entrar no coração. Então isso está sob as tags, tão importante que você não acidentalmente coloca
isso aqui. Sob a pasta do curso da EMC. Na verdade, queremos uma nova
pasta chamada world gen, que deve
estar abaixo de suas tags. Portanto, certifique-se de que
isso esteja correto, não dentro dessa pasta. Certifique-se de que isso seja,
você tem dois deles. Você vê X Gen. Este tem ele tem coisas de
estrutura. E então esta
pasta de geração mundial é em vez de seu ID mais para o seu curso
MC cheio de
muito, muito importante que
haja uma diferença lá. Por favor, certifique-se de que
isso está correto. Em vez deste
mundo, podemos realmente dar uma
olhada em todos os quatro diferentes. As coisas que precisamos,
vamos fazer
assim por um momento. Então, vamos dizer que este é o recurso de sublinhado da
estrutura de sublinhado configurado. E então vamos
copiar este aqui. Vamos dizer que este é o
processo ou lista de sublinhados, e então vamos
copiar esta. Este é o conjunto de
sublinhados da estrutura. E, por último, mas não menos importante, também
temos o pool de
sublinhado
do modelo, é claro que garante que todos eles sejam escritos corretamente. E então podemos prosseguir com o
recurso de estrutura configurada aqui. E vamos entrar
mais uma vez lá e
vamos dizer este aqui,
esse nome aqui. Vou fazer
um novo arquivo Drazen. Vamos clicar com o botão direito do mouse em
novo arquivo, chamá-lo assim. Lá vai você. E, em seguida, copie
o conteúdo disso. E então
vamos ver onde são
as primeiras coisas que
realmente precisamos mudar aqui. E como você pode
ver, há
muitos comentários novamente, sem preocupações. A propósito, essas setas, você pode ignorá-las
nos arquivos JSON porque eles
ainda vão funcionar. E, portanto, não se preocupe lá. Você pode ver basicamente aqui que
temos algumas substituições,
o que significa que, ei, esses monstros em particular
podem surgir nesta estrutura, você pode ver o que os monstros podem surgir ao longo do tempo
na estrutura. Isso é muito
interessante também aqui, se a terra verdadeira estiver
ao redor do fundo de uma estrutura baseada
no valor ydas peças. Isso também é algo
que você poderia fazer. Este aqui é a tag. Isso precisamos especificar
essa tag aqui. É claro que isso muda para o
nosso ID do modelo e, em seguida, tem estruturas é a
mesma coisa e então esse nome é a
mesma coisa que isso. Portanto, não precisamos
alterar isso o caminho
para o arquivo JSON ruim do modelo, é
claro, também
precisa ser o curso MC. Isso é adjacente que
vamos adicionar em apenas um momento sob o
pool de modelos aqui. E então aqui também
vamos mudar esse nome
para estruturas do céu do curso MC. Muito importante que
esse nome você possa ver a classe de estrutura base a usada para o comportamento
da estrutura. Assim, podemos ver nas
estruturas mod aqui, este é o nome das estruturas
do céu e então é
disso que ela a baseia. Mas essa é basicamente
a conexão entre esse arquivo JSON e
essa estrutura, principalmente como essa
classe de estrutura aqui. Então tenha isso em
mente também que você escreveu o tipo ano corretamente quando se trata da casa única JSON, certo? Vamos apenas copiar
o nome novamente. Vamos colocar isso
na mesma pasta, um novo arquivo aqui. Vamos e, em seguida, o conteúdo real do qual mais
uma vez foi copiado. Lá vai você. E então aqui também
temos que mudar mais uma vez, pois este
curso para MC deve fazer sentido. E então também mudaremos isso
para o curso MC. Isso
procurará um arquivo JSON no pool de
sublinhado de modelos mais antigo, onde basicamente adicionamos isso em apenas um momento
Além disso, o resto pode ficar. Por exemplo, você pode ver que
há alguma ilusão ou alguns pilhadores e alguns pais
que podem surgir aqui. Isso é realmente interessante. Vamos, então,
continuar em frente. Então, agora gerenciamos o recurso de estrutura configurada e, em seguida, podemos ver
a lista de processadores. Isso também é muito
interessante. Na verdade, podemos apenas obter isso
com base no arquivo aqui. Vamos apenas copiá-lo
e vamos
olhar para ele dentro disso. Esta é a lista de processadores, um novo arquivo chamado
sublinhados de mouses aleatórios não quebra Grayson. E isso é muito interessante. Então, vou colar isso. E você pode ver que isso é um, isso é basicamente uma
regra e o que ela faz é que ela substitui uma determinada coisa. Então você pode ver que o bloco que estamos procurando é o tijolo de pedra. E isso tem 50% de
chance de permitir que o tijolo de pedra encontrado seja substituído por coisas diferentes. Por exemplo. E você pode ver
se encontramos uma quebra de pedra, então há 5% de chance de substituí-la
por uma OU esmeralda, e aqui você pode
ver que há 50% de chance de realmente substituí-la por
um tijolo de pedra infestado. E então, aqui em baixo, você pode ver algumas ardósias profundas
podem ser substituídas valor de 10% ou uma probabilidade com um estado profundo
Redstone ou assim. Esses são alguns exemplos muito
interessantes de basicamente uma
dessas regras interessantes, o que é
realmente interessante, o que pode tornar suas estruturas
tão mais, bem, quero dizer que mais
interessante se você puder substituir certos blocos
sob certas condições, basicamente com uma
certa probabilidade aqui para ser outros blocos. Isso é muito legal
e realmente incrível. Então isso é definitivamente
algo para brincar um pouco
no seu próprio tempo também. Mas isso também foi adicionado
e veremos onde isso é usado em apenas um momento para que possamos fechar isso também. E então vamos
abrir para a estrutura definida no pool de modelos. Ambos você pode ver mais uma vez,
a estrutura está definida. Temos dois arquivos JSON, um para cada uma de nossas diferentes estruturas
que mais uma vez. Então, vamos apenas ler
esses arquivos do Jason também. Leia este. Lá vai você. E então eu vou copiar
o conteúdo aqui. Mais uma vez, lá vai você. Então este é um dos, bem, eu diria que este é um
dos arquivos JSON mais fáceis. Eu diria apenas mudando
o nome aqui. E então isso, é claro, neste caso, a estrutura aqui, ele deve procurar este arquivo JSON aqui
se eu não me engano. E então o posicionamento aqui
é realmente muito importante. Então o sal aqui,
você pode vê-lo. Certifique-se de que isso seja
único e não corresponda a nenhuma outra estrutura de sal. Caso contrário, o que vai
acontecer é que eles serão colocados no mesmo local,
o
que, claro, é
algo que não queremos. E você pode ver o suporte à
distância média em pedaços. E então aqui, esta é a
distância mínima do seu porta-malas. Então, este sempre tem que
ser menor que este. Faz sentido. E então aqui estamos
apenas
escolhendo basicamente um spread aleatório. Isso também é aconselhável
para mantê-lo assim. E isso é
praticamente o que precisamos. Orelha. E então o que precisamos é o
caso normalmente casa também. Nós vamos chegar
a isso também, eles atrás e depois o nome aqui, então novo arquivo e depois apenas
copiando o conteúdo. E você pode ver que isso é mais
uma vez mudar aqui. Eles atrás. E você pode ver esse sal aqui é
diferente desse sal. Mais uma vez,
é altamente recomendável apenas se, quando você adicionar sua própria estrutura
personalizada. Quando adicionarmos as estruturas
personalizadas nas próximas duas
palestras, você verá
que vamos mudar o sal também.
Muito, muito importante. Caso contrário, esse é praticamente um arquivo
JSON bastante simples. Mais uma vez, este aponta para, aponte para o recurso de
estrutura configurada aqui. Agora, a última coisa que
precisamos é o pool de modelos. Então, esses serão os arquivos
JSON aqui. Então, vou fechar
isso, isso e isso. Você pode ver que temos o
único arquivo adjacente aqui e temos dois
arquivos JSON para a casa. Vamos
usar o fã do céu primeiro. Isso vai estar bem
aqui dentro dele. Então, Skype no Jason e
então eu vou copiar isso
também. Lá vai você. E você pode ver o que acontece
aqui é que antes de tudo, no nome aqui eu
vou mudar. Portanto, isso não é estritamente
necessário, porque acredito que
o nome aqui é é
praticamente o nome
do próprio pool de modelos. Eu não acho que
isso realmente precise ser alterado aqui,
não com 100% de certeza, mas você também pode ver que
há um link aqui para o arquivo JSON de
conjuntos de modelos. Recomendo verificar
isso também. É claro que isso
também está ligado aqui , então não se preocupe lá. E então você pode
ver quais são os elementos que estamos procurando? Bem, estamos procurando o oitavo. Mais uma vez, o
tutorial de estrutura tem que mudar para o curso
MC, o fã do céu. Agora, como você pode ver, o caminho final é tutorial de estrutura de dados de
recursos em nossos casos curso MC, É estruturas degradadas, casa
esquerda, lado esquerdo MVT. Agora isso, claro,
não está certo. Isso procura fã de
sublinhado da
Sky, NVT , sky fan, e então
está aqui mesmo, Skype e MET sob o local do curso
EMC. É aqui que ele procura. E então este
também é muito interessante. Você pode ver que estamos adicionando
no processador aqui, que é o curso MC, pedra
aleatória, tijolo. Este é exatamente esse arquivo
JSON aqui, então isso não é necessário. Este é apenas um
bônus adicional, por assim dizer. E você pode ver especifica a lista de processadores
e, em seguida, basicamente a
aplica ao arquivo NVT aqui ao
colocá-lo no mundo. E então está lá. Você pode ver
as listas de processadores são ótimas para aleatorizar blocos e fazer com que as estruturas pareçam mais naturais. Muito
incrível, muito legal
e, no geral, não
muito louco para usar. Mais uma vez, essa é uma
daquelas coisas em que, claro, adicionar exatamente o que você quer pode ser um
pouco complicado. Mas, no geral, ainda é
uma coisa muito legal basicamente
dar uma olhada e mudar e
brincar, certo? Então este vai ser
o fã do céu. E agora vamos fazer é
essa casa degradada. Você pode ver que há um
pool de sites e um pool de armazenamento. Nós vamos basicamente
perto de ambos, vamos chegar
ao pool do site primeiro. E isso está em uma
nova pasta aqui, que será chamada Run underscore down
underscore house. E então
teremos um novo arquivo chamado pool de sublinhado de pontos, Jason. E também
teremos uma base até agora que é chamada de pool de sublinhado do
site, sublinhado ponto ponto js e na verdade, citar o
sublinhado do lado Poole enganado adjacente. Lá vai você. Este é
o pool do site JSON, e então este aqui
é o pool inicial Jason, por que precisamos de dois deles? Bem, a
casa degradada real é uma estrutura de quebra-cabeças, o que significa que ela tem duas partes
diferentes dela. Você tem um
lado esquerdo, bem aqui. Vamos mudar isso mais
uma vez para o curso MC. Este é o lado esquerdo da
casa degradada, que aponta para
este, esses dados NVT aqui, lado esquerdo da casa
degradada e a piscina lateral. Você pode ver que realmente
temos uma lista de elementos que têm pesos
diferentes aqui. E ele aponta para dois
NVT diferentes por outro lado basicamente. E você pode ver que
há 50% de chance de gerar a corrida de ouro
em vez da normal. Essa é a ideia aqui. E vamos ver
um exemplo disso,
a estrutura de quebra-cabeças personalizada
que vou fazer também. Mais uma vez, é claro, mudar
o MOD ID aqui, o que é muito importante. E então aqui podemos simplesmente
mudar a ideia do modo. Não acho que seja
estritamente necessário, mas vamos
fazer isso também, só para que tenhamos. Então você pode ver que há
muitas partes móveis aqui. No entanto, vou resumir mais
uma vez porque na verdade
há mais uma
coisa que precisamos
mudar porque, como
está agora, isso realmente não
vai funcionar 100%. Na verdade, a casa
degradada só vai gerar um
lado esquerdo e lado direito,
porque nesses dados MPT, a monódia errada é salva. Vamos ver como podemos
consertar isso em apenas um momento. Mas antes de tudo,
vamos resumir com todas as coisas
que fizemos. Adicionamos duas estruturas
diferentes. Adicionamos a estrutura do céu
usando algum código também, principalmente a
classe de estruturas do céu aqui, que pode ser usada para o que
em certos outros recursos que não são possíveis de serem adicionados apenas através do Arquivos JSON. Principalmente, você pode ver este
aqui, onde especificamos a posição y real
dessa estrutura específica e
algumas outras coisas também. Mas o que também
fizemos é que também
fizemos uma estrutura puramente
com arquivos JSON. E você pode ver para essa
estrutura que precisávamos. 12345 arquivos Jason diferentes que é claro, precisam estar
nos locais corretos e todos
eles estão relacionados
entre si. Vamos pensar sobre
isso por um segundo. Portanto, é melhor começar
com o
pool de armazenamento aqui, porque o pool de armazenamento
faz referência ao arquivo NVT. Este é o
arquivo NVT aqui, sob suas estruturas de ID de
mod de pasta de dados em VT. E isso é referenciado
aqui na piscina de estrelas. Agora, enquanto o pool de lojas faz referência à estrela
mais referenciada na classe de
recurso de estrutura configurada aqui. Assim, podemos ver que este é o pool de lojas que
está sendo referenciado. Você pode ver que esta é
a configuração
dessa estrutura específica e
isso foi referenciado, enquanto também referenciado
é o bioma Jason, Este é o mundo tributário, o bioma
Jin tem estrutura. Jason only Como estão os biomas, o que basicamente significa rápido em quais biomas
essa estrutura pode gerar? Isso praticamente explica
essa perseguição e seguido aqui, esse arquivo JSON é usado para
realmente adicionar o mundo, basicamente adicionando
a estrutura ao mundo que essa
estrutura está definida. Você pode ver neste comentário aqui basicamente, ele escolherá
uma dessas estruturas. Quero dizer, neste caso,
há apenas uma estrutura. Você poderia, em teoria, em
múltiplas estruturas de um não equivocado, pois isso aqui
se refere como esta. Não tenho 100% de certeza sobre isso,
mas acho que isso
deve se
referir a esse arquivo JSON em particular, que é claro se refere
ao pool de lojas e
também aos biomas. É assim que eles estão
inter-relacionados uns com os outros, agora mesmo para o pool de sites. Mas como essa é uma
daquelas coisas interessantes, o ciclo mais uma vez
é porque estamos usando o bloco de quebra-cabeças. Eu recomendo se isso for um pouco confuso com
uma piscina psiquiátrica para você. Vamos ver isso no, quando falamos
sobre os quebra-cabeças em apenas um pouco
nas próximas palestras. E é isso. Portanto, há algumas partes
móveis para ele. Mais uma vez,
recomendo que você tenha que
assistir a esta palestra duas vezes.
Não há como contornar isso. As estruturas podem ser
bastante complicadas. No entanto, depois de configurá-los, uma vez que adicionar mais estruturas é realmente
muito, muito simples. Aqueles que tudo
aqui está configurado. Eu recomendo não mudar muito
nada, é basicamente mudar
seu ID de MOD, esse ID Ahmad para o ID do modelo, e então deve
ser isso, certo? Então, porque isso é basicamente tudo o
que precisamos
por enquanto, o que
vamos fazer é fazer um novo mundo, ver se as
gerações, e então vamos ver que
precisamos mudar mais uma coisa, o que será bastante
simples de mudar. Mas vamos ver se funciona. Também tenha em mente ao
fazer essas estruturas, você obterá isso que
o mundo usando configurações
experimentais não é suportado.
É apenas o que é. Você pode simplesmente clicar em prosseguir. É meu. Pode parecer um pouco
diferente se você estiver se juntando a um mundo
que já existe. Nesse caso, isso estava
criando um novo mundo. Basicamente,
não há como contornar isso. Isso vai aparecer, mas não se preocupe lá. Você pode basicamente ignorá-lo. Basta dizer prosseguir
e lá vai você. Tudo bem, então nos
encontramos no Minecraft e você pode ver que uma dessas estruturas já foi adicionada com sucesso aqui, e há até outra. Eles podem estar um
pouco próximos demais. Mas antes de tudo, você pode ver a
estrutura real surgindo. Você também pode ver algumas
pessoas já geradas são como mobs aqui. E então, o que também é
realmente interessante, você pode ver as
substituições aqui. Você pode ver que alguns dos tijolos foram substituídos e você pode ver alguns deles também estão
infestados. Isso é muito legal. Portanto, há 50%
de chance, é claro, deles
serem investidos. E então alguns deles também
são
substituídos pelo Emerald OR, e então você pode
ver que parte disso
também é substituída por redstone. Tudo, isso é muito legal. Este foi o
material de substituição que foi feito. E você pode ver que eles
são, eles estão gerando. Então o outro, a casa, nós deveríamos encontrá-la muito, muito rápido porque ela
nasce como cada poucos, na verdade já
existe
uma casa. E o que você vai
descobrir é
que parece
meio casa, não é? Sim. Parece
meia casa porque na
verdade é apenas meia casa. Você pode ver. Primeiro de tudo, também há algumas dicas
úteis aqui. Recomendo verificar
esses também. Mas você pode ver que você é, o bloco de quebra-cabeças foi realmente
substituído aqui e bem, a questão é que o
modal real que ele não combina. Para fazer com
que isso funcione, o que vamos fazer é que vamos conseguir alguma distância
e algum espaço. Basicamente. Vamos realmente
sobrevoar Aqui vamos nós. Espero que isso
seja uma distância suficiente. E então o que precisamos,
precisamos nos dar o bloco estrutural
aqui, este. E então vamos apenas configurá-lo e vamos clicar com
o botão direito do mouse. Agora, o
nome da estrutura aqui vai ser estruturado nome
ano vai ser curso
MC dois pontos, sublinhado
esquerdo, sublinhado
sublinhado para baixo
sublinhado sublinhado da casa, lado sublinhado
esquerdo, acho que então não vai ser deixado
aqui na frente direita. O nome aqui deve ser
esse nome aqui. Vamos apenas clicar com o botão direito Refatorar Renomear, copiar isso. Isso vai ser um
pouco mais fácil. Lá vai você. Na verdade, é isso
e agora, se eu
entrar em carga aqui,
ele deve carregar isso. E então eu poderia carregar novamente, e então ele realmente
gera a casa. Agora você poderá
ver aqui, este é o bloco de quebra-cabeças. E você pode ver aqui
que ele realmente procura esse pool de sites, que
temos que mudar. Eu tenho que mudar isso
para o curso MC, digamos feito. Então também queremos a
outra parte da casa. Na verdade, queremos a outra
parte da casa também. O que vou fazer é copiar isso aqui. Assim como Control a para selecionar
todo o controle C para copiar o
controle V para colá-lo. E então este vai
ser o lado certo. Quando uma carga, e depois
vamos carregar novamente. E aqui você encontra o
outro bloco de quebra-cabeças. Clique com o botão direito do mouse neste. Queremos mudar o nome aqui para o curso MC lado direito feito. Você quer mudar
o nome aqui para o
curso MC lado direito. Feito. E então o que
também queremos fazer, só para que tenhamos tudo. Queremos gerar outra casa. Esse vai ser
o lado direito,
dourado, creio eu, lado direito. Então, haverá certo. Se você escrever sublinhado
do site sublinhado, dourado. Lá vai você. Puxe isso e
carregue-o. E lá vai você. Agora, este é o sítio dourado, só vai ter algumas fechaduras
douradas lá. E então aqui também queremos mudar isso
para o curso MC, então para o nosso ID de modelo, sim, e então
vamos ficar bem. Agora, o que precisamos
fazer é
realmente salvar o NVT aqui. Mais uma vez, isso é um pouco o que o FREC está refazendo.
Não se preocupe com isso. Isso basicamente
o que precisamos fazer para que isso
funcione corretamente. Uma vez que fizermos isso,
nas próximas duas palestras, vamos analisar realmente como fazer isso
completamente personalizado. Então, vamos construir
uma estrutura personalizada. Vamos salvar a estrutura
personalizada. E vou explicar
um pouco mais de detalhes o que estamos basicamente fazendo aqui. Se você não quiser
seguir isso, é claro
que também está bem. Mas, basicamente, há algumas
coisas muito diretas que você precisa fazer. Agora aqui, depois de
mudarmos o bloco de quebra-cabeças, o que vamos fazer
é ir aqui para o modo de segurança. Queremos dizer seguro, então você pode ver que agora
foi salvo e o mesmo vale para os
outros dois são seguros no modo de segurança. Aqui também, vá
para o modo Salvar seguro
e, em seguida, terminamos. Agora podemos fazer é que podemos
sair do Minecraft. Vamos simplesmente
sair daqui. E, em seguida,
os dados NVT serão armazenados na
pasta R1 em salvamentos. Então, onde quer que você tenha, este foi o não se esqueça de
rever o mundo e então isso
deve ser gerado. E você pode ver todos
os três dados NVT aqui. Na verdade, vamos fazer
isso aqui mesmo. E vamos dizer
substituir para todos. Então, agora os
dados NVT aqui foram substituídos por
nossos IDs de MOD nele. E se eu começar de
novo, fazer um novo mundo, então o que vamos ver
é que vamos
encontrar a casa
completa como antes, em vez da casa
esquerda ou
da outra parte da casa. Então, a casa, temos esse bloco de quebra-cabeças que
estava realmente
procurando o pool do site sob a
estrutura tutorial mod ID, o
que, claro, não está correto. Vamos ver, vamos realmente
criar um novo mundo. Aqui. Vai ser o
teste de estrutura. Testes de estrutura. Isso vai ficar bem. Uma taxa mundial. Mais uma vez, vamos obter o, você mudou a geração mundial e as configurações experimentais. Isso vai ficar bem. Vamos apenas
apertar Proceder e depois vamos
esperar até que ele termine. E então vamos ver
se nossa estrutura está ou não completa. Tudo bem,
nos encontramos no Minecraft, então vamos ver que está, e você já pode dizer que a estrutura está completa agora. Bem, vamos entrar
aqui e vamos ver. Eles podem ver se entramos, você encontrará lá você vai. Esta é até a variante
dourada disso. Este é o lado certo
para o objetivo e então não
devemos ter que voar longe para encontrar outro exemplo disso. Então esta é incrível
geração mundial parecia incrível. Embora devêssemos ser capazes de encontrar outra casa muito rápido. Geralmente eles não deveriam aparecer muito longe um do outro. Vamos ver, Há outro, então você pode ver claramente que
eles não são tão raros, mas é claro que isso é
algo que você também
pode mudar facilmente. Então, vamos entrar aqui. Vamos ver,
espero que este seja normal? Este é normal
. Lá vai você. Não, nenhum objetivo aqui. Também temos coisas no
peito aqui, e você pode ver
tudo funcionando bem. Esta é a estrutura básica que
segue o
tutorial ali mesmo. E se você estiver neste momento, adicionar novas estruturas
é muito simples. Então, basicamente
vamos ver
nas próximas duas palestras
sobre como você pode adicionar algumas
estruturas personalizadas também. Primeiro, basicamente uma
peça de estrutura, porque uma estrutura
só pode ser 48 por 48 por 48. E então, se for
maior do que isso, você tem que usar a fonte de gabarito. Mas, como eu disse, na verdade, não
é tão complicado quanto alguns podem ser agora,
ainda não
é muito fácil, mas é mais fácil do que
você poderia esperar, certo? Mas isso conclui a palestra de
estruturas aqui seguindo o tutorial
de estrutura do telepático Grundy, mais
uma vez, incrível repositório. Claro, vou
vincular isso também, é praticamente o
melhor recurso que existe para as estruturas aqui, é incrivelmente útil e não posso recomendar
isso o suficiente. Agora, mais uma vez,
havia muitas coisas aqui. É um episódio longo. Não havia outra maneira de torná-lo mais curto realmente, porque há
muitas coisas lá dentro. Mais uma vez, para a estrutura
personalizada, da próxima vez,
recomendo vivamente que você tenha
passado por isso uma vez. Caso contrário, será um pouco mais complicado
porque
copiaremos os arquivos JSON já
existentes aqui e, em seguida, apenas alterá-los
para nossa própria estrutura personalizada.
115. (1.18.2) Estruturas personalizadas (de uma única peça): Tudo bem, bem-vindo de volta
ao curso de forragem
para 118 e
nos encontramos no Minecraft com uma
estrutura já construída aqui. O que eu recomendo que
você
faça é copiar a estrutura ou simplesmente criar sua
própria estrutura. E então, basicamente, depois que
você os criou, podemos continuar. Então, vou
dar-lhe um pouco de tempo para criar sua
própria estrutura. Mas espero que você faça uma pausa e
crie sua própria estrutura. Porque agora o que vamos fazer é agora eu vou fazer um arquivo
MVT com isso.
Como fazemos isso? Bem, precisamos antes de tudo,
dar a nós mesmos o bloco de
estrutura é executado novamente. Então este aqui. E o que precisamos fazer é
colocá-lo
nos cantos dessa estrutura em
particular. Então, o que precisamos fazer
é colocá-lo fora de toda a estrutura da
vontade real. Então, precisamos colocá-lo
bem ali e aqui mesmo. E também do outro lado, nos mesmos locais
basicamente aqui, e também aqui. Lá vamos nós. Agora, o que queremos
fazer é clicar com o mouse nisso e
, em seguida, precisamos dividir. Primeiro de tudo,
especifique um nome aqui. Este vai ser o cólon do curso
MC. Portanto, sempre pegue o ID do
modelo dois pontos, seja qual for o nome. E neste caso será a casa sublinhada
da alga marinha. E então vamos pressionar
Control a para selecionar tudo, Control X para
cortá-lo e Control V para
colá-lo novamente. Isso é basicamente
o que acabei de fazer. E vou para o modo
proprietário. Muito importante. Vamos dizer que pronto,
e aí está você. Vou fazer o mesmo aqui, colá-lo no modo canto, pronto, um sit-in, mais feito. E então este, na verdade, vamos
colá-lo e
, em seguida,
vamos para o modo Salvar. Em seguida, queremos pressionar este botão de
detecção aqui. E deveria, em teoria, detectar toda a estrutura. Então você pode ver que basicamente
destacamos o exterior
de toda a estrutura, que é exatamente correto. Isto é o que vai
ser salvo seu. Então o que podemos fazer é simplesmente clicar no
botão Salvar aqui. E então esses
dados NVT foram salvos. Então, isso é literalmente
tudo o que precisamos
fazer para salvar alguns dados NVT. E agora temos esta casa. Agora, o que podemos fazer é
realmente divertido, porque isso já está salvo. O que devemos ser capazes de fazer
é ir para outro lugar. Diga, Ei, me dê esta casa. Eu posso apenas colocar isso, dizer carga, e ele deve
detectar esta casa. E então podemos dizer carregá-lo
novamente, e lá vai você. E agora eu posso realmente copiar esta casa de lá para aqui, e então eu realmente
tenho isso já feito. Mas é claro que o que queremos
fazer é que queremos levar esta casa em uma
vista naturalmente no mundo. Então o que vamos fazer
agora vamos sair minecraft
de volta para a Intel J e , basicamente, adicionar alguns
dos arquivos adjacentes para que possamos surgir
nesta casa, o mundo. Tudo bem, então
nos encontramos de uma forma inteligente. E a primeira coisa, é claro, o que precisamos fazer é que
precisamos pegar a casa. Então, isso está mais uma vez
na pasta de execução. Isso deve estar em suas
vendas aqui. Estes são os testes de estrutura
no meu caso, sob gerados. E então aqui temos
a casa de contagem NVT. Então eu vou arrastar isso aqui
para as estruturas, e então temos
isso ali mesmo. Então isso é muito importante. E agora podemos basicamente
alterar o arquivo JSON. Então, o que vamos fazer? O que temos que fazer? Bem, a primeira coisa que
vamos fazer é fazer o arquivo JSON estruturado
para isso, para a tag. Isso
incluirá todos
os diferentes biomas que imaginamos essa
estrutura muito pequena. E então vamos apenas copiar sobre o já
existente aqui. Esta será a casa de
contagem e sublinhado. Honestamente, acho que
isso vai ficar bem. Vamos apenas
tomar esses biomas de nível. É claro que você também pode
alterá-lo como quiser. Mas estou realmente feliz com
isso e ficaremos bem. Mas este é o primeiro. Isso apenas mais uma vez significa quais biomas essa
estrutura pode gerar. E então queremos que o recurso de estrutura
configurada fosse apenas mais uma vez,
vou copiar isso. Eu mudo isso para casa
sublinhada do tapete. Vamos usar esse
nome algumas vezes agora. E aqui queremos mudar o pool inicial para nossa conta
e piscina armazenada na casa. Isso vai ser o
que vamos adicionar aqui em apenas um momento
e o mesmo aqui. Este agora vai ser
o balcão. Esta tag de bioma se
refere a essa que
acabamos de criar aqui. Mas não se preocupe. Eu, pessoalmente, na verdade, não quero que
nenhum monstro apareça aqui. Mas o que eu quero é que eu
realmente quero que alguns
dos tigres do curso MC
apareçam lá. Por que não? Vamos apenas dizer que
haverá um ou dois tigres que
podem detectar lá. Vamos apenas adicioná-lo assim. Isso vai ser muito interessante e ver se isso
também faz isso. Agora isso deve ser
praticamente tudo o que precisamos mudar aqui. Em seguida, na próxima, não
precisamos de nenhuma
lista de processadores em nosso caso, mas precisamos de um conjunto de estrutura. Mais uma vez, copiando
isso ao mudar o nome para lidar
e casa, isso, mudando este para chegar em casa, o que então aponta para este arquivo JSON que
fizemos antes. Muito importante aqui,
mudando o sal, isso tem que ser um
sal único e bastante grande. E então o espaçamento, vamos
dar um pouco mais espaçamento aqui em ambas as partes, e isso vai ficar bem. Então a última coisa que
precisamos fazer é que precisamos
criar uma nova pasta
aqui mesmo diretório. Esta será mais uma vez a casa sublinhada
do CAPM. Em seguida, o nome do
arquivo aqui será o pool inicial de sublinhado adjacente e o conteúdo do qual eu realmente copiarei
mais uma vez, o arquivo JSON já existente. É por isso que eu disse que se
você tiver configurado uma vez, então adicionar novos é
muito simples. Então, o que podemos fazer aqui
é basicamente este tem que mudar para contar
sublinhado casa e depois. Vamos
copiar isso e depois mudá-lo aqui mais uma vez. E é isso. Já fizemos isso agora nossa estrutura real
surgirá no mundo. Isso é tudo o que precisamos fazer. 1234 arquivos JSON neste caso porque é uma
estrutura única e um arquivo NVT, é literalmente isso. Você viu que é bastante simples depois
de configurá-lo, uma vez copiando alguns
dos arquivos JSON,
alterando algumas coisas, ajustando algumas coisas e depois, e então você está
bonito muito feito. Isso é literalmente
como tudo o que precisamos fazer para o bem da conclusão. Vamos ver se funciona. para garantir que
tudo funcione, recomendo fazer
um novo mundo apenas por precaução. E também, é claro, tenha em
mente que você
terá as configurações do
mundo experimental. Só temos que pressionar Proceder. Isso é só gao. Será quando você
adicionar o mundo personalizado Jen, através dos dados baseados em arquivos. Mas isso vai ficar bem. Vamos deixar que ele gere
e veja se podemos encontrar nossa
casa de contabilidade no mundo ou a
casa do seu amigo em Minecraft. E lá você
já deve ser capaz de vê-lo. A casa de carbono foi
adicionada com sucesso ao Minecraft. E veja que está bem
aqui e está no chão perfeitamente,
assim como deixamos de fora. Na verdade,
destruo acidentalmente a porta lá. Isso não foi intencional.
Lá vai você. Mas sim,
praticamente já foi adicionado. Como eu disse, é
muito simples. Uma vez que você tenha feito isso, uma vez. É por isso que eu disse, você definitivamente
deve
passar pelo
tutorial de estrutura uma vez com a palestra, basicamente mostra o
repositório do GitHub dele. E então, uma vez
talvez por conta própria, dê uma olhada em
alguns dos comentários lá. Quero dizer, sim. Quer dizer, eu nem
sei o que mais
dizer como você praticamente viu isso. É muito, muito direto. Há algumas coisas
que você pode mudar. E agora depende de você,
até sua criatividade sobre o que você quer
adicionar ao Minecraft. Vamos ver se consigo encontrar mais
uma das nossas casas de acampamento. Você pode ver muitas
das
casas degradadas apontando aqui. Quero encontrar
mais uma conta House. Vamos ver se podemos encontrá-lo. Não,
há outro, então você pode ver lá você vai. Então, no geral, eu acho
realmente interessante, mas também bastante simples.
Todas as coisas consideradas. Eu não acho que seja tão louco
e tão difícil e bem, quero dizer, sim, isso é
praticamente o quão fácil é adicionar alguma
estrutura personalizada ao Minecraft. Mas como já disse várias vezes agora e
direi mais uma vez. Se você o configurou depois
de ver, é
muito, muito simples adicionar
mais estruturas ao seu jogo, e é muito simples. Agora, mais uma vez, para a fonte de bebida que
vamos ver
na próxima palestra será um pouco
mais complicada. Mas mesmo assim, depois de
ver um exemplo disso, basicamente configurar tudo, você vai dizer
que mesmo isso será justo, muito sensato e
bastante direto, tudo considerado, certo? Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Ou os arquivos JSON estão,
naturalmente, disponíveis para download no repositório do GitHub e em
um indivíduo também. Mas, de outra forma,
te vejo na próxima palestra.
116. (1.18.2) Estruturas personalizadas (estruturas de jigsaw): Tudo bem, bem-vindo de volta
ao curso florestal para 118. E nesta palestra
vamos
olhar para algumas estruturas de quebra-cabeças. Você pode ver que eu já
preparei algo aqui, que será
a plataforma de armazenamento. E a forma como isso
vai funcionar é que isso vai ser duas estruturas
diferentes, mas vai surgir como uma só. Então a ideia é que uma
parte da estrutura, que será basicamente
tudo deixado aqui, será o pool inicial. E então vamos
ter um bloco de quebra-cabeças no meio que irá então
gerar esse
lado direito aqui da estrutura, que vai ser
qualquer um, digamos ferro. E então também vamos
fazer uma variante basicamente que terá
algo como diamante talvez e, em seguida, até mesmo
uma com esmeralda. Então essa é a ideia geral. E então isso vai acabar. Podemos então fazer com que ele apareça com pesos
diferentes para que, quando você vai ao redor do mundo,
precisando encontrar muito com o
ferro, por exemplo, com tipo, eu não sei,
como 80% e depois gosto 10% das vezes você
vai encontrar o diamante. E então 10% das
vezes você vai
encontrar a Esmeralda,
algo assim. Então, o que vamos
fazer é que
precisamos configurar isso corretamente. Então, o que vamos fazer é que vamos tomar, certo. Então agora vamos realmente
fazer o principal 1 primeiro. Então, isso deve estar bem aqui. Então, precisamos do
bloco estrutural aqui. E então aqui também. Isso deve ser bom. E então, deste lado, mostramos que escolhemos o correto É meio
que falar tão bem, vamos descer aqui. Então lá vai você. E então, para a
altura h deve estar ao redor do seu, acredito que sim. Vamos verificar
isso também. Então este deve ser
este. Lá vai você. Vamos excluir os blocos
auxiliares aqui. E isso é realmente maior, então vamos fazer
um abaixo que eles atrás temos os proprietários prontos e
então vamos, e então vamos chamar essa plataforma de armazenamento de cursos MC. Isso vai ficar bem. Mais uma vez,
Control a, Control X ,
Control V, para que tenhamos o nome e este
será o modo trimestre. E então vamos
passar pelo modo de canto para cada um deles, ou modo. Lá vai você. Acompanhar este modo e então este
será o modo de segurança. Então, vamos fazer esse modo de
segurança e depois detectar. E então, mais uma vez,
descobriremos que agora é
isso que
está sendo detectado. Claro, o que você vai
encontrar é, oh não, nós realmente precisávamos mais alto, mas não há nenhuma preocupação. O que podemos fazer é que
podemos apenas construí-lo. Você é, vamos apenas construí-lo até a altura que precisamos. Bem ali. Lá vai você. E então vamos destruir este, que era basicamente
a coisa real vai ficar
por enquanto. Mas uma vez que realmente
o recarregamos, e deve ficar bem. Então isso deve ser sobre essa altura, acredito que
deveria ser. Então, podemos mais
uma vez ser o modo de canto, sim, e depois excluir
este também. Também modo com o mesmo
com o nome certo. E então podemos detectá-lo novamente. E então você
descobrirá que o ego agora está feito e
tudo está dentro dele. Então, basicamente, isso é uma
coisa que você poderia fazer. Você configurou e
então você fica tipo, Oh, isso é realmente alguns
blocos fora dele. Basta substituí-lo
e lá vai você. Agora este é o principal. E o que ainda precisaríamos
fazer é que ainda precisamos colocar o bloco de quebra-cabeças. Então, para isso, vamos
abrir o terminal e o
comando é mais uma vez, claro que eles
deram comando ou o bloco de quebra-cabeças,
este aqui mesmo. E o que queremos fazer é
que queremos estar enfrentando assim. Então, o que queremos
é que isso
ainda esteja dentro
dele. Lá vai você. As setas devem apontar
para o lado de fora dela. Então você pode ver que
isso ainda está dentro
da estrutura e deve um ponto fora
da estrutura. E então aqui, queremos que o outro
bloco de quebra-cabeças aponte em direção a ele. Então, esses são os dois
blocos de quebra-cabeças que queremos. Este lado aqui terá um nome associado a ele. Então isso vai ser dois pontos do curso
MC, digamos, por exemplo, site ,
plataforma, algo assim. E vou dizer que fiz
esse nome aqui. Vamos
copiá-lo e este será
o
nome do alvo aqui. E então o
pool alvo aqui
será o curso MC dois pontos. E esse é o nome
do arquivo JSON que
precisamos colocar. Então este será
o pool de sublinhado de sublinhado do site
de barra da
plataforma de armazenamento . Este é o arquivo JSON
aqui, vamos dizer feito, e agora eles estão mais ou menos
conectados uns com os outros. E o importante
é, claro, este por enquanto, porque isso está nessa
estrutura bem aqui. Então, agora podemos salvar isso. Podemos então dizer Save. E agora a
estrutura de armazenamento foi salva. Agora podemos fazer a coisa semelhante
para as outras estruturas. Então, vamos
fazer isso aqui. E então só precisamos
ir até aqui. Para o outro lado,
vamos fazer
isso, é simultaneamente basicamente para que outro bloco de
estrutura aqui, e então os outros livros de
estrutura devem estar por aqui. Isso parece bom. Então o nome aqui
vamos fazer o curso MC cólon, armazenamento de
ferro, forma de planta. Indo mais uma vez,
vou copiar esse modo de canto ou controle remoto. E então aqui em baixo,
este
terá o modo de segurança mais
uma vez detectado. Vamos ver. Lá vai você. Então agora isso também
é detectado e você pode ver agora que
realmente temos os dois. E eu recomendo
fazer isso assim. Porque agora basicamente
quando você muda este aqui para
outra variação, por assim dizer, e é muito, muito
simples. Os nomes aqui podem
basicamente ficar. Então esta é a
plataforma lateral e a plataforma lateral. Está tudo bem. Então, vamos
guardar isso sob o sublinhado de ferro armazenado na
plataforma de pontuação. Salve isso. E então o que
vou fazer é mudar isso e
então vamos salvá-lo sob a plataforma de armazenamento de diamantes
e depois esmeralda também. Eu substituí o
ferro por algum diamante aqui. E então, claro,
o que queremos
mudar aqui é o nome, certo? Então, esta agora será
a plataforma de armazenamento de diamantes. Mais uma vez, copie isso,
vou dizer feito. E então vamos
mudar isso aqui também. Então, em todos os
cantos, basicamente, seremos capazes de
detectá-lo em apenas um momento também. Vamos fazer isso e
depois voltar para este, detectado mais uma vez. Então, agora a
plataforma de classificação de diamante foi detectada, e agora podemos salvá-la sob a plataforma de armazenamento de diâmetro. E então vamos fazer a mesma
coisa para esmeraldas também. Tudo bem, então agora ele foi
substituído por papéis m. Então, vamos mudar o
nome mais uma vez aqui. Então, esta será a plataforma de armazenamento
Emerald. Mais uma vez, copie-o
e, em seguida, altere
os nomes e todos os cantos aqui. Então, nada muito louco. Lá vai você. E então
vamos pegar isso de novo. Então, vamos
ser a plataforma de armazenamento aqui, Emerald
e depois salvá-la novamente. Mas agora temos
uma plataforma principal e associada a
ela três diferentes, digamos variância
do outro tipo de plataforma
que podemos gerar. Agora vamos mudar para você
inteligente novamente
e, em seguida, vamos configurar
tudo. Tudo bem, então
nos encontramos um inteligente. E antes de tudo, é claro,
vamos obter os dados NVT. Isso deve estar sob
os testes estruturados. Se não me engano,
lá vamos nós. Portanto, temos a plataforma
de armazenamento e as três
plataformas diferentes também. Vamos copiá-los
aqui para as estruturas mais uma vez. Então, o que precisamos é, claro, da estrutura
em sua totalidade. Mais uma vez, precisamos dos cinco arquivos
adjacentes para isso. Vamos apenas
copiá-los. Então, esta será a plataforma
de sublinhado de armazenamento e precisaremos usar esse
nome algumas vezes. Então, basta copiá-lo. Mais uma vez. Vamos
ficar com esses biomas
por enquanto. É claro que isso é muito fácil basicamente mudar aqui. E a
estrutura configurada possui plataforma de
armazenamento
e deseja apontar para o pool
de armazenamento dentro do suporte da plataforma de armazenamento, que vamos
criar um pouco. E então este é o arquivo JSON da plataforma de
armazenamento, que significa
quais
biomas devem ser usados aqui. Agora, na verdade, não
quero nenhum Richards aqui. No entanto, o que eu
descobri é que, se você remover completamente as pequenas
substituições, elas realmente receberão um erro. Então, ainda não tenho 100% de certeza do
que você tem que fazer aqui para não conseguir nada onde possamos
fazer é algo assim. Então vamos ficar bem, então eu acho que não, nada aparece aqui. Então, vamos ficar bem,
o conjunto de estrutura. O que vamos fazer é mais uma
vez copiar sobre
a casa do balcão, mudar o nome aqui, e depois aqui
mais uma vez, é claro, mudar o nome aqui para
que ele aponte para o correto recurso de estrutura. E então muito importante aqui, mudando
a estrutura, o sal aqui , é
claro, e depois o espaçamento
vou fazer um
pouco mais do que a separação
mínima. E eles são como 12,
isso vai ficar bem. E então tudo se resume
à casa modelo, que vamos simplesmente
copiar sobre a casa resumida. Vamos renomear
isso para plataforma de armazenamento. Em seguida, dentro dos arquivos JSON, queremos mudar isso
para a plataforma de armazenamento. Este é o lado direito, então estes serão
os três lados direitos. Então, o que vamos fazer é
apenas excluí-lo, os comentários aqui. E então
o que vai acontecer? Nós dissemos
que realmente queremos mais um desses. E então isso provavelmente vai ser algo como um peso, digamos cinco, peso três, e depois espere
algo assim. E essa será a plataforma de sublinhado de armazenamento de
quatro
sublinhados. Isso vai ter a
autoridade que não é ou é ferro.
Claro, lá vai você. Plataforma de armazenamento de ferro. Então vamos chamá-lo de copiar isso e esta será
a plataforma de armazenamento Emerald. E então digamos que esta seja
a plataforma de armazenamento de diamantes, mas isso deve ter
50% de chance de desova. Esta é uma chance de 30% e
isso é um 2% com 20% de chance. Estes são os diferentes pesos devem ser bastante
autoexplicativos. São basicamente os pesos de
como eles estão sendo gerados. Portanto, esse deve ser o pool do
site e, em seguida, para o pool de armazenamento da plataforma de armazenamento, vamos ao pool de lojas aqui. Isso vai ser, claro, então a plataforma de sublinhado de armazenamento. Mais uma vez, plataforma. Lá vai você. Copie este. E então, é claro, esta é
a plataforma de armazenamento. Este é o nosso ponto de partida basicamente estão iniciando dados NVT, que terão o bloco de
quebra-cabeças dentro dele, que então está
procurando o pool do site, que definimos no bloco de
quebra-cabeças apenas antes. E isso é literalmente
tudo o que precisamos. E agora todos esses três diferentes enquanto a variância também
geraria. Então, como eu disse, é
mais uma vez, uma vez configurado, uma vez muito simples,
Todas as coisas consideradas. Agora vamos criar um novo mundo e vamos
ver se podemos encontrar nossas plataformas de armazenamento ou Francis na Microsoft
em um novo mundo. E vamos ver se não conseguimos
encontrar nossa plataforma de armazenamento. Também podemos localizar
assim para o nosso curso MC. E essa é a
plataforma de armazenamento aqui. Vamos ver. Então, aqui, um deles é, vamos ver, lá vamos nós. Um deles já surgiu aqui com o ferro neste caso. E você pode ver
exatamente como deixamos o basicamente e
o volume nos blocos de serra
também se foram porque eles
foram substituídos por ar. Vamos, na verdade, apenas
HTP em outro lugar e ver se podemos
encontrar outro deles. Vamos apenas gostar,
você sabe, 20 K ou o que quer que seja. E então eles vão e depois
vamos localizá-lo novamente. Vamos apenas ir para um, outro, localizar uma plataforma
e depois vamos ver. Aí está. É outro com ferros. Halley. Bem, quero dizer,
às vezes funciona assim. Vamos por mais um,
vamos tentar mais uma vez. Menos dez k desta vez. Por que não? E então eles vão. E
então vamos localizar novamente. Vamos ver se este
pode ter algo diferente de ferro e
também tem ferro. Bem, quero dizer, é uma
daquelas coisas que é mais prevalente
do que as outras. É apenas o que é. E também acho que apenas nos movendo
e voando, não
vamos
encontrar muitos
deles , pois os tornamos um pouco mais
raros do que as outras
coisas que fizemos. Portanto, a casa de contagem e a casa degradada são muito
mais prevalentes nesse caso. Mas sim, quero dizer, isso é
praticamente a coisa. Na verdade,
tente mais uma vez porque eu realmente quero ver as outras coisas funcionando. Então vamos lá, eu não sei, como um 100 e depois
vamos fazer isso menos dez K aqui. Então vamos fazer outra
plataforma de palavras localizar ou curso
MC. Vamos ver. Oh, bem, quero dizer isso
também é algo que
pode acontecer, certo? Portanto, essa é uma ocorrência muito
rara. Então isso geralmente não é
algo que acontece, mas você pode ver que
ambas as estruturas realmente surgem praticamente no mesmo pedaço. Esse é o mesmo momento. É por isso que você
quer trocar o sal. Agora, no nosso caso aqui, acabamos de ficar incrivelmente azarados. Digamos que eles
basicamente compartilharam a mesma vizinhança geral. Isso não deve
acontecer com muita frequência, mas sim, quero dizer,
isso não pode acontecer. É apenas o que às vezes é. Mas você pode ver que esta é a variante esmeralda
nesse caso, então ela definitivamente funciona. E então isso é apenas,
às vezes isso acontece. Isso não deve acontecer muito. Então, essa deve ser uma ocorrência
bastante rara, mas isso é praticamente o
quão bem ele vai, certo? E é praticamente
assim que você pode adicionar algumas estruturas de quebra-cabeças
ao seu MOD também. Tudo o que é considerado bastante simples é apenas
mais uma vez nos arquivos JSON, configurando a estrutura
corretamente e, em seguida, obtendo
os dados NVT para essa estrutura. Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
117. (1.18.2) Modelos de armadura 3D personalizados: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra,
vamos fazer um modelo de armadura 3D para clientes
ou nossa armadura de cobalto. Então, em vez de usar nossa
armadura que temos antes, então esta nos
modelos aqui, que é então a
coisa que está sendo sobreposta em 3D. Na verdade, vamos criar
um novo modelo ARMA personalizado, que definitivamente não vai
parecer tão bom quanto este. Porque eu basicamente só
quero mostrar os passos que você precisa fazer para realmente fazer isso. Mas vamos ver para isso, vamos usar um
banco de bloco no lábio de gecko novamente, eu já preparei a armadura
real aqui você pode ver que este é o arquivo do banco do
blog. Isso acontece quando você faz
isso seguindo, certo? Então, quando você faz um novo modelo animado de lábio de
gecko, você pode fazer
isso, por exemplo aqui testa armadura, certo? E então o que você pode fazer
é ir para Arquivo para as configurações do modelo ao vivo da gecko
e mudar isso para armadura. Se você clicar em Confirmar, você pode ver que algumas coisas
geram aqui, que é basicamente o, o que, o corpo já preparado. E, em seguida, você pode adicionar coisas a ele onde você deseja
adicioná-lo abaixo desses. Então você tem a cabeça dos bípedes, Não toque na coisa
em particular. É claro que esta é a
cabeça nesse caso. E então suas
coisas personalizadas podem entrar aqui. Então você pode simplesmente adicionar um cubo. E então
você pode usar suas coisas, fazer isso, dimensioná-lo
aqui, certo? Então escale-o um certo ponto e então
eles vão e então você pode simplesmente brincar com isso
basicamente duplicado que, faça um novo cubo mais uma vez, faça um novo cubo aqui,
mova-o novamente. Mas isso é, claro,
tudo o que você precisa fazer. E você pode criar suas
próprias coisas personalizadas aqui. Depois de fazer isso, vamos ter uma, bem, basicamente nenhuma textura
no momento. E então o que você pode fazer
é que eu vou apenas por um momento e apagar
isso e então você pode ver que você vai ter
algo assim. E então o que você pode fazer é
pressionar Control a, e então ele
selecionará tudo aqui. E o que você pode fazer é
criar uma nova textura aqui. Vamos
chamar isso de
armadura Humboldt extra,
vou dizer confirme. E então você pode ver que
se parece com isso. Se salvarmos isso agora, então vamos salvar isso como
a Textura de Armadura de cobalto. Então, se eu realmente der uma
olhada nisso, parece assim. Então, vou abri-la rapidamente
para que você
possa ver
que se parece com isso. E agora vou
abri-lo no Photoshop. Já preparei um
monte de curso suave aqui. Você pode ver, você
também pode abri-lo em paint, dotnet ou GIMP ou o que quer que seja, basicamente pensar que você tem. E o que você pode fazer é
geralmente o que você quer
fazer é que você pode simplesmente gostar
aqui, por exemplo, eu acredito que esta deve
ser a cabeça na verdade, não um 100% verdadeiro,
mas eu acho que é. Então podemos, por exemplo,
apenas pegar qualquer cor aqui. Vou colocá-lo
na mesma camada e depois vamos salvá-lo novamente,
que
a coisa real muda
no próprio bloco bancada. Agora podemos clicar com o botão direito em atualizar. E então você pode ver, por exemplo, que
na verdade era a cabeça. Isso, é claro, não era
a coisa mais interessante, mas você pode basicamente mudar os componentes individuais disso são algo assim. Talvez vamos mudar
algumas coisas como aqui. Por exemplo. Isto é, quero dizer, eu não diria necessariamente um processo
tedioso, mas este é um processo que
definitivamente vai levar algum tempo para você basicamente
fazer essa atualização novamente, podemos ver que eles
passam por isso parte de trás da cabeça nesse caso. Você também pode, é claro,
pegar manualmente cada um desses cubos
e ver o que eles são. Mas essa é basicamente a ideia. Então você vai ter que fazer da armadura a
textura real ou a si mesmo. Agora, eu, claro,
preparei uma textura. Este vai ser
este aqui. E na verdade há
uma pequena coisa que queremos fazer e
isso será basicamente tomar todos os
não toques e depois apenas
movê-los na parte inferior aqui, só para que basicamente
possamos veja a diferença aqui porque os reais não nos tocam não
serão usados de qualquer maneira, mas eles estão
lá apenas para referência. Basicamente, basta levar isso aqui. Achei que essa era
a maneira
mais fácil basicamente mudar
a armadura em torno dela. Então você pode, por
exemplo, ver aqui, essa armadura na verdade é
um pouco baixa demais. Há algumas coisas
que são muito baixas e
também podemos apenas pegá-las e depois
movê-las, certo. Então você pode ver que
mudamos a armadura aqui. Como eu disse,
não será
a armadura mais bonita
ou o momento. O real, digamos que o modelo real
aqui é bem legal, mas a textura definitivamente
poderia usar algum trabalho. Admito totalmente que
estou, concordo absolutamente. Eu só queria
mostrar a vocês basicamente a essência geral
de como isso funciona. Então, o que temos
é essa armadura de cobalto. Então eu vou salvar
isso, esse
arquivo de bancada de bloco , é claro,
estará disponível para você. Vamos fechar
o outro aqui. E então o que você pode fazer
é poder exportar o modelo
ao vivo da gecko aqui. Isso vai ser
sublinhado de cobalto blindado, GO dot JSON. Então, vamos
salvar isso, substituir o outro. E então vamos para o inteligente e
vamos adicioná-lo lá. O que precisamos para um cliente? Na verdade, é
um monte de coisas. Primeiro de tudo, vamos
adicionar o arquivo de modelo na pasta geo aqui. Então, vamos apenas
tocá-lo. Lá vai você. E também precisamos de um arquivo JSON de
animações. Agora isso vai
ser, eu já preparei isso e é
literalmente assim. Não tenho 100% de certeza. Você pode simplesmente
pegar isso e usá-lo. E deve estar
muito bem. Também precisamos dos modelos ARMA
personalizados, assim como a textura. Então, vamos adicionar
isso nos modelos aqui. Como eu disse, este é o
que parece um pouco estranho, mas não se preocupe. E isso vai ser chamado
de Textura de
Armadura de cobalto só
porque eu acho que esse nome é um
pouco melhor. Vá sobre Armor Texture e
, em seguida, os arquivos estão todos configurados. Agora, o que precisamos em termos
de quais renderizadores e outras coisas? Bem, no renderizador de entidade,
vamos fazer
no cliente em um novo
pacote chamado armor. E isso
incluirá duas novas classes. Um deles, o
modelo de armadura de cobalto e o outro será o renderizador de armadura hello
world. Agora, antes de
prosseguirmos com eles, na verdade, precisamos de
uma nova classe de itens, o que é muito interessante. Então, isso vai estar
no pacote personalizado. Este será o item de armadura de
cobalto. E então a primeira
coisa que vamos fazer é pegar tudo do item de armadura mod
e copiá-lo. Então, na verdade, vou
copiar tudo aqui. Então, vamos fazer isso. Lá vai você. E então vamos
ter alguns erros aqui. Não se preocupe, vamos
fazer isso aqui. E então o que podemos
fazer é mudar isso para ser o seguinte. Isso agora estenderá o item de blindagem geográfica e implementará
o AI animatable, que também exige que implementemos
os dois métodos,
o controlador de registro
e eles obtêm fábrica, mas, na verdade, vai
mover isso para cá. Na verdade, vamos
escrevê-lo aqui abaixo. Eles se adequarão abaixo do, o construtor. Isso
vai ficar bem. Então, também
precisamos de um predicado que
eu já preparei. Essa é a mesma coisa bastante
simples que fizemos com o predicado de
entidades, a fábrica animável com a qual também
devemos estar familiarizados. Já vimos isso
anteriormente também. E, claro, todo o código
está sempre disponível no repositório do GitHub em
indivíduos também. O método do
controlador de registro é exatamente a mesma
coisa que a entidade. E então a fábrica
literalmente retorna a fábrica aqui. Então essa fábrica de coisas,
vamos fazer isso. Quero dizer, é um
pouco melhor. Lá vai você. Há uma fábrica,
que é esta. Ainda temos todas as funcionalidades que
fizemos antes. Agora há uma coisa minúscula que eu realmente quero
mudá-los, então é o último método
aqui, a casa correta. Armadura em sugiro que você
faça isso também porque senão você pode um problema se você
tiver uma armadura completa, como se você usar a armadura
completa e também ter um elétron para
que às vezes tenha um problema com o outro,
com as coisas antigas. Portanto, tenha isso em mente também, mas isso não faz parte
do modelo personalizado. Agora, mais um item de armadura
mais classe de itens, e nós realmente queremos que
ele mude todos eles para o
item de armadura de cobalto aqui. Isso é um pouco de
diferença do que anteriormente, mas não se preocupe
lá, também
está totalmente bem e
deve ser isso. Então agora temos
este configurado, podemos fazer agora é entrar
no modelo e realmente
fazer o seguinte. Isso vai estender
o modelo Geo animado do tipo ou ambos os
itens de armadura. Lá vai você. Você passará o mouse sobre
esses métodos implementados. Então, vamos implementar
os três métodos. Vou mais uma vez copiá-lo. Esta é a tensão como
a mesma coisa que tínhamos nos modelos para o
guaxinim e o tigre. Você pode ver
praticamente a mesma coisa. Estamos apenas apontando para o
arquivo GeoJSON da armadura de cobalto aqui. Também estamos apontando para a armadura de
teste neste caso. Agora, na verdade, queremos
mudar o nome aqui. Esta é uma camada de
armadura de sublinhado de cobalto, na verdade textura. Lá vai você. Textura, lá vai você. E então esta é a animação de
armadura. Isso também está bom. Então, essas são todas as coisas
que precisamos fazer aqui. E então, para o renderizador, será muito parecido. Queremos que aqui é mais uma vez, vou apenas ficar com
o renderizador de armadura geo, desta vez do tipo item de
armadura de cobalto também
sobre este
criador combinando super. E então aqui
queremos realmente livrar desse construtor, colocar um novo modelo de armadura de cobalto. Então também queremos ter certeza que selecionamos as coisas corretas,
bem, por assim dizer. Isso vai ser
muito interessante. O que vou fazer
é copiar isso mais uma vez. E isso é, na verdade, deve
ser bastante simples. Então você vê que o fone de ouvido
é a cabeça da armadura. Se voltarmos
para o banco de blocos, você pode ver que
este é aqui. A cabeça de armadura, armadura, armadura
corporal, certo? E assim por diante e assim por diante. O que é muito interessante é
que, por qualquer motivo, o osso da perna é realmente
trocado por uma perna. Não sei por quê.
Então você pode ver que o osso da perna direita
é realmente a perna
esquerda ARMA e, em seguida, a bota madura
é na verdade a bota esquerda. Não sei por que
esse é o caso. É apenas o que é. Não sei por que esse
pode ser o caso, mas apenas tenha isso em mente. Então, se você acha
que isso é meio estranho, há uma incompatibilidade lá. Sim. É basicamente porque, por qualquer motivo
, é apenas o que é. Ainda precisamos
ter esse Renderizador registrado e
fazemos isso no evento R, nos eventos Mode Event Bus. E isso vai
acontecer em um novo método que será este
por enquanto. E esse será
o seguinte evento. Esta será a
entidade renderizar-nos evento, adicionar camadas de
pontos, o escopo, médico e ser frio evento. E então a única
coisa que precisamos
fazer aqui é que precisamos
apenas para fazer aqui é que precisamos
apenas renderizador de armadura geo,
registrar armadura nos renderizar para a classe de
ponto de item de armadura de cobalto e, em seguida, uma nova armadura de prêmio
renderizar há um dia. Coisas muito loucas em geral. Mas em conjunto, não muito louco. Muitas das mesmas
coisas que fizemos nas entidades já, certo, com o modelo de armadura, com o modelo e
o arquivo do renderizador. Não é tão louco. Os arquivos JSON também
são bastante simples. Este, como eu disse, você pode exportar a partir de uma pitada de bloco. Este aqui. Eu só pegaria o
que eu preparei. Quero dizer, também não é
tão complicado, mas você provavelmente deveria
ficar bem com isso, como se não fosse tão complicado. E então a textura, você
só precisa fazer a si mesmo, que é provavelmente
a mais, a
parte mais demorada de tudo isso. E acabei de voltar para o
Photoshop por apenas um segundo. Agora, preencher tudo
como você quer, definitivamente levar a maior parte
do tempo em que você está
para a armadura personalizada. Mas sim, é praticamente
assim que o que você tem que
fazer se quiser um modelo ARMA personalizado muito
legal, é apenas o que é, mas
esses são os passos necessários. Então, mais uma vez, isso é
praticamente tudo o que precisamos. Então, para fins de conclusão,
vamos ver se funciona. Tudo bem, encontramos consolo de
volta no Minecraft, então vamos colocar a armadura
e lá vamos nós. Temos a armadura no LAC
também ainda funciona, é claro. E você pode ver
a armadura funcionando. Quero dizer, praticamente como
você esperaria. Como eu disse, não é a armadura
mais bonita em geral, mas é funcional e
é definitivamente o que
você possa dizer, é definitivamente um costume. Essa é definitivamente a coisa eu recomendo apenas
brincar com ele, estar aberto à experimentação
para a armadura. Como você pode ver, tudo funciona para o balanço dos braços e das pernas e
coisas assim. Mas é muito legal. Sim. Quero dizer, isso é
praticamente o quão fácil é adicionar
a
armadura personalizada ao jogo. Adicionando-o muito direto
e bastante fácil, fazendo com que pareça
muito legal, definitivamente muito mais difícil. Sempre, é claro,
todo o código e os arquivos JSON estão disponíveis para você no repositório do GitHub
e individuais também. Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra. Sim.
118. (1.18.2): Bem-vindo de volta ao
curso forge para 118. E nesta palestra
vamos adicionar um aldeão personalizado ao Minecraft. Então agora é hora da profissão de aldeão do
cliente, porque na verdade é
bastante simples. Todas as coisas consideradas. O que vamos fazer é fazer um novo pacote
em nosso pacote de cursos
MC, velho aldeão. E então
lá dentro faremos uma nova classe Java
chamada MOD aldeões. Agora, neste, vou me
afastar um pouco da minha coisa habitual que faremos e na verdade,
adicionaremos
aos registros adiados. O primeiro
será um registro diferido final
estático público registro diferido final
estático tipo
de jogo. Portanto, esse é o tipo
de ponto de interesse. Vamos
chamar isso de que o tipo de
ponto de ponto permanece atrás é igual a registro adiado que cria ou para tipos de
registros, curso
AMC moderado
e moderado. E então o que vamos
fazer é fazer um segundo ou terceiro
registro que vai ser da profissão de
aldeão tipo. Um aldeão sublinha
profissões. Lá vai você. E haverá
um registro diferente, criação de
pontos, registros, aldeão de
pontos, profissões de ponto. Lá vai você. Modalidade de
monitor de curso Mc. E agora, quando temos registros
diferentes, é claro que temos um método
de registro vazio
estático público com um ônibus de eventos oftalmológicos,
ônibus de eventos legal. E então vamos
chamar os tipos de pontos que se registram perguntando
no ônibus do evento. E depois, em segundo lugar, passamos
na aldeia ou profissões. Eu me
registrei no ônibus do evento, certificando-se de que
chamamos isso aqui. Vamos chamá-lo permite que
as estruturas mod. Então moradores mod
se registram e depois passando no ônibus
do evento, lá vai você. Muito bom. E o que
precisamos é, claro, de objetos de
registro
para o protótipo e as profissões do aldeão. Então vamos fazer
o tipo de ponto primeiro, este será o
objeto Registry do tipo protótipo. Este vai ser
o ponto do blaster. Então, vamos usar
nosso blaster de cobalto aqui. Haverá os
protótipos que se registram. Este vai ser
o ponto de explosão. É quando eu o seguro. E, claro, mais uma vez, um fornecedor de um novo protótipo, ele chamará esse ponto de explosão. Então precisamos digitar
ponto, obter o estado bloqueado, dizer blocos mod, ponto, ponto. Então, depois, dizemos 11. Vamos realmente dar uma
olhada no que isso tudo implica. Parênteses de fechamento. Lá vai você. E então vamos entrar no protótipo
real aqui. Você pode ver que Max tickets é este e esse
é o intervalo válido. Assim, você pode, por exemplo, dar uma olhada nisso onde
isso foi usado. Vamos realmente ver,
acredito aqui e,
em seguida, no método de registro, este é provavelmente o
lugar onde ele foi usado. Lá vai você. Geralmente
eles são todos 11. Há algum outro, geralmente
o protótipo é 11, então é por isso que usamos 11. Lá vai você. Em seguida,
vamos para registro
final estático público, objeto de registro. Esta época da profissão de
aldeão tipo, que será
o mestre da explosão. E isso vai ser igual ao registro
estatístico da aldeia ou profissão
, o mestre da explosão aqui. E então um novo
fornecedor ou fornecedor de uma nova aldeia ou profissão. Isso é mais uma vez, é claro, poderia ser o mestre da
explosão aqui. Deixe-me escrever isso corretamente. Isso vai pegar o ponto do
blaster, e então vai demorar muito interessante, um conjunto mutável. E então vamos
falar sem nada nele. E então vamos
dizer outro
conjunto mutável sem nada
nele, na verdade. E então o
último
será o ponto dos eventos sonoros. E então qualquer aldeão trabalha. Vamos pegar o mito das
ferramentas, por exemplo, e depois terminamos com um ponto e vírgula. E então acabamos na
aldeia de profissionais. Podemos ver que o
primeiro conjunto imutável é os itens solicitados, define itens que o endereço
que pode ser retirado e usado. E então o outro
é o PUI secundário, que é como
bloqueios nas estradas, esse profissional
interage com? No nosso caso,
não teremos nenhum desses é
altamente recomendável. Mais uma vez, estar aberto a
experimentação sobre isso, experimentar algumas coisas e
ver o que você encontrará. Então a última coisa
que vamos fazer é que teremos
outro método que será o vazio estático
público, e este será o método de
registro por favor. E isso é
incrivelmente importante. Vamos ter uma declaração de try and
catch aqui. Não escreva este. O pegador terá
o seguinte. Vai ter uma exceção de
destino de invocação com
esta única exceção de acesso legal em
linha reta
chamada exceção E.
Lá vai você. E então este será
o ponto de exceção impressão, pilha, rastreamento. Lá vai você. E o que tem na
trie é o óbvio. E então aqui na tentativa, vamos dizer método auxiliar de
reflexão de ofuscação. Vamos fazer a classe
ponto tipo ponto. O nome do método
será registrar estados de bloco
e, mais uma vez, passar
uma classe de ponto do tipo ponteiro. Depois,
vamos dizer invocar null e o
ponto do blaster chegar, lá vai você. Agora isso pode parecer absolutamente louco para
você, e é. Agora, a razão pela qual
precisamos fazer isso é basicamente precisamos, bem, precisamos registrar
os estados de bloco. Na verdade, podemos
dar uma olhada nisso como esse método aqui. Você pode ver esse método de estados
de bloco de registro. Como você pode ver, todos os métodos de estados do bloco de
registro são todos privados. É por isso que temos que usar o
ajudante de reflexão de ofuscação neste caso, e então podemos
realmente chamá-lo. Mas se você tiver vários pontos, basta adicionar outro
com o outro ponto aqui. Então, basta adicionar o outro ponto e então você
ficará bem. Esse método
precisa ser resfriado no método de configuração
do curso MC
na configuração comum do FMLA. Então vamos dizer que os aldeões mod começam a registrar equilíbrio
e lá estamos nós. Agora ainda não
terminamos porque ainda precisamos adicionar na tradução algumas características
para este aldeão. E então também é muito importante. O extra, vamos começar com a tradução para
a tradução é bastante simples
todas as coisas consideradas. Vou apenas copiar isso e isso
está, claro, disponível para você no repositório
do GitHub, um
indivíduo também. Você pode ver Entity
micro aldeão, mestre de explosão do curso
MC. E este será o nome
da entidade real
no topo quando você abrir o inventário ou a textura, isso vai
ser muito interessante. Isso está sob entidade
e eu vou fazer um novo diretório
chamado aldeão. E depois vou copiar
o que já
tenho aqui e
mostrarei de onde tirei isso. Então este será o número
um, o aldeão aqui. Não tenho certeza do que precisávamos
do próprio aldeão também, mas aparentemente ainda
precisávamos, a menos que profissionais, é
claro, nomeados exatamente como este
aqui, mestre da explosão. E você pode ver, eu
realmente adiciono uma
profissão
recolorida já existente aqui neste caso, apenas para que tenhamos
algo que parece diferente naquele momento, mas na verdade funciona. E eu consegui isso,
é claro, mais uma vez
das bibliotecas externas indo até o seguinte. Vamos ver, ele deve estar
aqui por um
1182 extra ou qualquer que seja a sua versão
na pasta de ativos, Minecraft, texturas
na pasta
da entidade até o
aldeão aqui mesmo. Então temos o aldeão
aqui . Este é o aldeão
normal. Então aqui esta é
a profissão e eu peguei a armadura, eu acredito.
Sim, lá vai você. Mas apenas gravar a armadura são um pouco tão
recomendadas, pegar isso, usá-la e depois treiná-la
um pouco. Então, a texturizada aqui
definitivamente será
a única coisa que
pode levar um
bom tempo até
você acertar, mas é o que é. E então os tipos,
eu não acho que ele realmente precisava que você fizesse
qualquer coisa com os tipos, mas você faz de alguma forma
por qualquer motivo, precisa do aldeão
e da profissão. Não sei por que
esse é o caso. Pelo menos é isso que meu,
é o que meus testes têm. Economia. Então, quando se trata
dos traços reais, bem, podemos
usar nosso evento novamente. Então, na aula de eventos motorizados na parte inferior,
aqui, podemos simplesmente usar
isso literalmente para o nosso evento também, para nossos profissionais personalizados. Bem, então mais
aldeões que o último ponto
mestre obtém e agora
podemos adicionar coisas a ele também. Então, podemos dizer
algo
assim onde podemos
simplesmente adicionar a lista, basta adicionar algumas coisas
aqui para o nível um. E então, apenas por uma
questão de argumento, vamos adicionar um par
de dois níveis dois aqui. Vamos mudar
isso para o nível dois. Mas isso vai ser,
vamos apenas adicionar
a mesma coisa para
preços diferentes, porque por que não? Vamos fazer isso e
depois vamos
fazer um nível dois. Vamos fazer algo como um 58 como um teste muito aqui apenas para que você possa ver que
você pode adicioná-los também. É tudo o mesmo cobalto
Paxil basicamente que estamos sendo capazes de comprar aqui. Então, não vai ser
tão interessante, mas vamos tentar
isso e você verá que isso adicionará as
negociações a eles também. Então eu acho que vamos
ver se funciona oh, bem na
nossa frente no Minecraft. Então, vamos apenas gerar
um aldeão E então
vamos definir as explosões de
cobalto ou que imediatamente reconhecem como um ponto de interesse e ele deve se mover em direção a ele e então obter
o real ou eu acho que não. Vamos nos aproximar um
pouco aqui. Bem, eu havia um erro de digitação lá. Na verdade, é o bloco de
cobalto que é o ponto de interesse,
mas justo o suficiente, eu acho. Então, vamos apenas configurá-lo e então você pode ver agora
ele está se movendo em direção a ele. Porque você pode ver que temos
uma seta e a textura. Vamos consertar
isso em apenas um momento. Veja o O, na verdade é
o blaster Moscow. Isso é ótimo. Mas você pode ver que o traço aqui foi adicionado. Eu posso pegá-los. E depois,
devemos ser capazes de ver, uma vez que ele realmente subir de nível, deve ser capaz de obter
os outros que eles vão para o nível dois
e lá está. Então isso está definitivamente funcionando. Então, vamos ver apenas para corrigir a textura real
por apenas um momento. Aqui diz o mestre da explosão. É claro, deve
dizer mestres explosivos. Então isso deve praticamente
consertar todo o resto aqui. Também vou mudar isso para o blaster de
cobalto aqui. E então, apenas por uma questão de argumento, vamos ver se funciona. Por exemplo, de volta ao
Minecraft mais uma vez, e vamos apenas
configurá-lo e eles vão Agora tudo está
funcionando bem se eu for aqui e o último
mestre também funciona para que tudo como você
faria espere que sim. Então é assim que é fácil adicionar uma aldeia ou
profissão personalizada, Minecraft, certo? Mais uma vez, é claro que
todo o código estará disponível para você no repositório do GitHub e
individual também, mas isso seria para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
119. (1.18.2): Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos olhar para entidades de bebês. Sim, então vamos adicionar a entidade
bebê ao nosso tigre. E mais uma vez, essa é uma
daquelas coisas que é realmente muito
mais fácil do que você poderia esperar. Eu também fui um pouco
mais complicado, mas na verdade não é nada
complicado. Dentro da nossa
prole, aqui, o que queremos fazer é dizer tipos de entidade mod, não um tigre que obtém essa criação e depois
passa para o nível do servidor. Este é esse
parâmetro aqui. Eu só vou clicar nele, pressionar Shift F6 para
renomeá-lo para o nível do servidor só que
saibamos o que estamos
passando aqui e, em seguida, estamos passando
aqui. Este é o número um
que precisamos fazer. Número dois, precisamos substituir um determinado método e
esse é o método alimentar. Em vez de aqui, estamos basicamente verificando se essa pilha é ou
não o alimento que essa
entidade em particular pode ter largura criada. Neste caso, vamos
dizer p dot obter item, e eu vou dizer que é
igual aos itens dot beef. Eu basicamente quero que você clique com
o botão direito do mouse na entidade tigre com carne bovina
do que ela está pronta para respirar. Essa é a ideia aqui.
Então, precisamos de um novo objetivo. Então eu vou apenas copiar
sobre o assentamento ou meta e esse
será o objetivo da raça, também vai ter um modificador de uma
velocidade aqui. Então, vamos ter
a mesma velocidade e eu apenas coloco aqui sob a
prioridade três. Acho que isso
deve ser uma entropia bastante simples. Agora, essas são, na verdade,
todas as coisas que
precisamos fazer na entidade tigre. Há mais uma coisa que
precisamos fazer no renderizador, e essa
será a escala aqui. Portanto, é claro que essa é a
escala do modelo real. E o que podemos fazer
é que podemos dizer, se animável, que é bebê, e vamos escalar
de forma diferente de apenas pressionar Control X para cortá-lo e depois
colá-lo de volta. E então aqui,
vamos fazer este. Então aqui estamos quando não
é um bebê, e então aqui
estamos se for um bebê, então vamos colocar isso
ao meio e então é isso. E isso deve ser
tudo o que precisamos
fazer para ter
o trabalho do bebê. Existem algumas coisas
interessantes. Por exemplo, uma vez
que realmente tivermos as equipes de tigre e, em seguida,
damos um clique com o botão direito
do mouse com o item alimentar aqui. Então ainda gostamos de
ir para ele para escrevê-lo. Então, há um
pouco de estranheza aqui, mas isso deve
ser bastante trivial para consertar isso aqui,
basicamente para verificar,
ei, como um jogador, clique com o botão direito do mouse
com uma carne e, em seguida, não
devemos nem mesmo comece a escrevê-lo. Isso deve ser bastante
simples de corrigir. Mas, para fins de conclusão, vamos ver se
funciona ou nos encontra em micro. Então, vamos responder aos tigres e vamos ver,
clique com o botão direito, clique com o botão direito do mouse. Lá vamos nós. E então, assim que eles se
encontram, sim, não. Certo. Lá vai você. Havia um lá está o bebê tigre também ou
funcionando absolutamente bem. Agora, na verdade, leva
um bom tempo para eles crescerem. Eu experimentei
e eles crescerão. Só leva muito tempo. Acredito que isso seja codificado
na classe de animais, mas podemos realmente verificar
isso em apenas um momento. Mas sim, é
praticamente assim que você faz isso. E então este,
é claro, não podemos criar. Agora pense que apenas o suficiente
devemos ser capazes de
escrevê-lo. Quero dizer, tudo bem. Isso é como se provavelmente
houvesse
um cheque para isso. Mas, honestamente, são entidades de
bebê. Muito autoexplicativo. Realmente não é tão difícil. Eu realmente pensei que eles
seriam mais difíceis, mas na verdade são bastante
simples, certo? Então, apenas mais uma
vez se você realmente der uma
olhada neste botão do
meio do mouse, clique neste mouse do meio, clique com o
botão direito do mouse sobre isso. Veja, este é o animal, e este tem uma espécie de
todas as coisas diferentes
para a criação nele. Então você pode ver que tem, tem muitas coisas. Você tem a vela e
adorou conjunto e adora isso. Eu adoro tempo ter tempo suficiente, amado curso está apaixonado, redefinir, o amor pode se encontrar. Essas são uma espécie de coisas. Quero dizer, aqui você pode
ver a criança gerada método
de reprodução, que basicamente
patrocinam a criança real. Você pode ver que ele é
habilitado para celular a partir do, ele lê descendentes aqui. Então essa deve ser a coisa
que você precisa dar uma olhada se houver
algo que você quisesse substituir. Então, sim, isso é praticamente o que você precisa talvez
no esfregão de escombros. Sim. Então você pode ver
bebês começar h, Este é o h armazenado aqui. Então você provavelmente
também pode alterar isso dentro da
sua entidade tigre. Nesse caso, se
você quiser, talvez o tigre cresça
um pouco mais rápido, isso também poderia ser feito. Mas sim, isso é
praticamente o quão fácil é adicionar entidades de bebê aos seus monstros. É muito
mais direto do que eu pensava, mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
nas próximas palestras.
120. (1.18.2) geodos personalizados: Tudo bem, bem-vindo de volta
ao curso florestal para 118. E nesta palestra,
vamos dar uma
olhada em como você pode adicionar códigos geográficos personalizados
a um Minecraft. Agora, isso é realmente uma
coisa bastante simples de
acrescentar e vamos
dar uma olhada nisso. Assim, no pacote mundial,
no pacote de recursos, os recursos configurados mod
são onde vamos adicionar o geode e eu copiarei
sobre todo o suporte. E então
vamos basicamente
dar uma olhada em cada uma
dessas linhas e o que elas significam e a
loucura que está associada a
ela porque é uma coisa bastante longa, mas não se preocupe. Eles podem ver que é realmente
fazer uma nova linha aqui também. E você pode ver que é um campo muito longo neste caso, mas não se preocupe. Portanto, é claro que, mais uma vez,
estamos usando o recurso utils dot register para registrar um recurso
geode neste caso. E então temos que fazer uma
nova configuração de geode. Esta também é uma ótima classe
para basicamente dar uma olhada. Então, se nós clicar no
botão do meio do mouse sobre isso, você pode realmente ver o que cada uma dessas
coisas significa, certo? Temos as configurações de bloco, temos a camada,
as configurações corretas, temos chance de
posicionamento potencial e todas essas coisas loucas que podemos basicamente
adicionar aqui. O que é muito interessante
neste caso é, na verdade também serão as configurações do
bloco geode aqui. Então, isso é basicamente tudo
selecionado aqui. E esses são realmente
muito interessantes porque aqui você pode ver do
que as camadas de
riqueza específicas são basicamente feitas. Assim, você pode ver que o
provedor de enchimento
será ar que deve ser
bastante autoexplicativo. Então, o G ou dentro
dele, tudo é ar. Se você não quer que ele seja ar, você também pode mudar outra
coisa, certo? Então você pode mudar esta caixa aqui para
outra pessoa, certo? Se você tiver um
bloco diferente, você quer que este seja preenchido com hindu. Então isso é muito legal e permite
que você basicamente modifique e configure quase
tudo o que você gostaria, o que eu acho muito legal. Então essa é
praticamente a ideia, certo? Então, esta é mais uma vez, uma
daquelas coisas em que eu
recomendo apenas brincar
com os diferentes blocos, os números diferentes,
especialmente também. É a melhor coisa
que você pode fazer. Apenas experimente algumas coisas, veja até que você possa
basicamente encontrar um GO que você gosta em termos
de quão rachado ele está, bem com as
configurações corretas, por exemplo, isso significa apenas se há ou
não alguma lado que está exposto e eles podem imediatamente entrar em
coisas assim. Só
recomendo dar uma olhada nisso, brincar com
os números aqui. E então espero
que você crie um geodo dos seus
sonhos, por assim dizer. Agora o que eu quero fazer é
substituir a ardósia profunda aqui. Vamos substituir isso por sujeira. E vamos dizer aqui, vamos fazer esmeralda. Claro. Por que não? Por precaução, basicamente
quero dar uma
olhada em como isso afeta
as configurações do blog geo. E então você pode
ver onde todos esses blocos diferentes são
basicamente colocados, certo? Então, a mais importante é na verdade, esta lista aqui. Como essa lista geralmente escreve, esta lista é, na verdade,
os posicionamentos internos e os posicionamentos internos ou
os cristais de ametista. Então, essas listas basicamente
incluiriam esses cristais de ametista. Então, o que podemos basicamente
dar uma olhada, por exemplo, é outra
característica, geode. Então, vamos apenas
o botão do meio do mouse, clique neste anúncio do meio
, clique nisso e você pode ver
a ametista GO aqui. Se nós apenas percorremos todo o caminho
até o, lá vai você. Então, lá você pode ver
a ametista em brotamento. E isso também é feito
na lista aqui. Então você pode ver aglomerado de ametista, em que você pode ver aqui que temos o pequeno botão de ametista
médio MF é botões. Portanto, esta é uma lista
dos possíveis botões de ametista
do aglomerado de ametista que podem ser capazes de gerar. Essa é a ideia geral
desta lista aqui. Então eu acabei de usar o bloco de
cobalto neste caso, mas você pode, claro, fazer o seu próprio, agrupar o seu. Mas basicamente e depois
cisne isso também. Agora está tudo bem, mas o que fazemos com
esse recurso configurado? Bem, entramos no mais, entramos na classe de
recursos do mercado mais uma vez, e vamos apenas, e eu vou copiar
sobre o titular mais uma vez, tudo
isso está disponível para você em o repositório do GitHub e o
indivíduo também. E você pode ver que este é
o geodo de cobalto colocado. Claro, estamos tirando
o geodo
de cobalto daquilo que acabamos de
criar basicamente, então estamos fazendo um filtro de
raridade em média cada 50 pedaços. O spread N-quadrado é apenas
algo que eu tirei praticamente do geodo de
baunilha também. E então você pode ver, estamos basicamente esta manhã acima seis e todo o caminho até 50. Mais uma vez, recomendo
brincar com as âncoras verticais
acima da parte inferior, abaixo,
absoluta, tudo isso. Apenas experimente e veja
o que você pode ver basicamente até que ele seja colocado da maneira
que você quer escrever. Então, isso é praticamente isso. E então precisamos apenas
entrar em nosso mais ou geração. Então, em vez de chamar
o cobalto ou colocado, você quer chamar o geodo
cobalto colocado. Essas são, na verdade, todas
as coisas que precisamos para adicionar nosso geode personalizado
aqui neste caso. Então, vamos criar um novo mundo
e ver se ele funciona. Ou nos encontramos
no Minecraft. E como você pode ver,
eu já encontrei um bom geode, para que você possa ver quais são basicamente os
diferentes blocos. Então, antes de tudo, é claro,
o interior dele está bem basicamente cheio de ar,
como especificado no início. E então você pode ver, e
então você pode ver que os blocos aqui seriam basicamente as ametistas
brotantes, certo? Enquanto o cavalo
seria os blocos onde
o MSS cresce. Essa é a ideia geral. Você também pode ver onde
a sujeira é colocada. Uma esmeralda, ou onde está isso? Bem, se nós realmente saímos daqui
do que
deveríamos ser capazes encontrar alguma esmeralda ou possivelmente
no outro é para que eles possam
ver os blocos amro na verdade. Então, este é todo o caminho até
aqui onde o geode
real se localiza. Assim, você pode ver que
o tamanho
real do geóide é bem
maior. E C, lá vai você. Então, recomendo talvez não mudar isso para auras esmeralda, mas blocos de esmeralda neste caso. Então isso é muito louco. Mas sim, essas são
basicamente as idéias do que todos esses blocos
diferentes fazem. E então é só uma questão de brincar com
eles um pouco no seu próprio tempo e
experimentar alguns
valores diferentes, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e os alertas que o Novo, e eu te vejo
na próxima palestra. Então, sim.
121. (1.18.2) bloco que interaja com o Redstone: Tudo bem, bem-vindo de volta
ao curso de forja para 118. Nesta palestra, vamos dar uma pequena olhada em como você pode fazer seus blocos
interagirem com um Redstone. Mas isso era
algo que algumas pessoas realmente queriam
basicamente dar uma
olhada e
não tinham certeza de como. Então. Vamos dar uma olhada na nossa classe de blocos de
clientes,
principalmente o bloco de lâmpada de cobalto. Então, em vez de fazê-lo para
que você possa clicar com o botão direito do mouse para basicamente ativar e desativar
isso. O que vamos fazer é verificar se um sinal Redstone é
aplicado ou não a este bloco. Agora, mais uma vez, é claro, nosso melhor amigo aqui são
as bibliotecas externas, principalmente o
código-fonte do Minecraft. Então, se realmente pressionarmos Shift duas vezes e, em seguida, dar uma
olhada na lâmpada redstone. Esta será
a lâmpada redstone, certificando-se de que incluir
não projetos está marcado. Você pode ver este aqui, seu próprio bloco de lema,
então podemos praticamente, e isso é loucura, na verdade,
copiar sobre a maior parte disso, maior parte que está
escrita aqui. Então, queríamos o método de
tick e
também os métodos de
mudança do vizinho. Então esses dois são basicamente os
únicos métodos que precisamos. Então, vamos
copiar sobre esses dois do bloco de lâmpadas
redstone. Todo o código
também estará disponível no repositório e
no
indivíduo também. E só precisamos
trocar a tampa aqui basicamente para coletar porque
chamamos isso clicado eles atrás. E isso deve ser bom. Mas podemos mudar isso aqui
para este ano também. Este ano também. E então aqui
também, lá vamos nós. Vamos apenas adicionar uma substituição de adição
aqui apenas para que estejamos, sabemos que substituímos esses métodos apenas por precaução,
e isso deve ser bom. Agora, eu realmente quero que nada
mude aqui, então vamos
comentar isso. Isso também deve ser bom. E agora isso é
praticamente tudo o que precisamos
fazer neste caso. Então, o que isso
realmente faz? Certo? Então, porque você pode ser
como, isso é meio estranho. Bem, em primeiro lugar,
o
método alterado do vizinho será bastante
autoexplicativo. Isso é chamado toda
vez que um vizinho desse
bloco específico muda. O que ele faz então
é que diz, ei, assim como qualquer vizinho tem
um sinal aqui, certo? Então, basicamente, vai dizer que vai obter, em primeiro
lugar, o valor de Clicked. Isso é justo, justo
o suficiente. Isso é verdade. Então, estamos no momento, à direita. Então nós basicamente queremos
verificar, ei, é o, nós também, não temos um sinal de
vizinho se estivermos ligados? Porque então o que queremos
fazer é que queremos desligar essa pedra em particular
como a ideia geral. Isso é um pouco
complicado na forma como
isso é basicamente fraseado. Mas essa é a ideia geral. O tick agendado
praticamente apenas,
bem, agenda um carrapato se realmente
entrarmos nisso. E isso é um
pouco difícil de ler com os parâmetros não mapeados. A ideia geral é que
estamos basicamente agendando um tick e, em seguida, o
método tick é chamado aqui. Tick method aqui
neste caso, mais uma vez, ele verifica se o nosso
próprio ou não e se o vizinho
não está
ligado, se não houver sinal
no vizinho, se for
esse o caso, mais definindo
esse bloco como sendo, e estamos realmente pedalando
pelo link aqui. Então podemos realmente
dar uma olhada no que o ciclista da coleção
Nixon, o que isso praticamente faz é reverter os cliques. Então é a mesma coisa que
fizemos aqui com o estado atual e, em seguida negá-lo, é
a mesma coisa. Só estamos pedalando por ele. Então isso é tudo o que estamos fazendo. Nesse caso, quase nenhuma alteração
no código da baunilha. Nesse caso, basta
mudar o aceso basicamente dois clicados
neste caso. E isso é praticamente isso. Também queremos fazer
é que eu queria adicionar a seguinte linha de
impressão do sistema apenas para
que possamos ver isso. Então podemos dizer aqui, vamos apenas dizer isso
para dizer alimentado por. E então vamos dizer, quando eu disser nível P, obter um melhor sinal de vizinho. Veja, estamos apenas passando
na posição. Mas qual é o melhor vizinho? Siegel? Qual é o melhor sinal de vizinho? Bem, o sinal
dos melhores vizinhos é simplesmente
de todos os seus vizinhos, que tem o sinal mais forte. E
basicamente vamos emitir
o sinal real daqueles
vizinhos em particular. Então, este é um número inteiro. Você pode ver onde está 15 é a maior intensidade de sinal
que o redstone pode ter. Então, se algum dos
vizinhos tiver 15, então vamos produzir 15. Se houver um sinal mais fraco, vamos produzir isso. Vamos entrar no jogo e ver o que isso realmente faz. Ou na França ou em Minecraft. E eu já
coloquei uma lâmpada de cobalto. Vamos apenas tentar um nível. Primeiro de tudo, lá vai você. Posso ligá-lo e desligá-lo, então isso funciona. E eu também posso colocar
redstone nisso. E isso também funciona também. Se eu agora clicar com o botão direito do mouse
e mostrar inteligente, você pode ver alimentado por 14. Por que é 14? Bem, é claro,
porque isso seria 15 de força e isso
seria 14 de força. Até agora,
ligue este também, certo? Então, a alavanca então em C, agora é alimentada por. Então isso é praticamente
tudo o que há para ele. É basicamente
assim que você pode alterar uma determinada propriedade de
estado de bloco ao aplicar o Redstone a ela. E isso é praticamente
tudo o que você precisa se quiser alguma
funcionalidade especial para ele,
bem, então você precisa,
é claro, pegar esses blocos, dizer propriedades, por exemplo, que mudam e fazem
algo com eles. Mas isso é
praticamente todo o factível. É assim que é fácil
adicionar um bloco com algumas
funcionalidades redstone do jogo. Como sempre, todo o
código está disponível
no repositório just e no GitHub também. E eu vou ver todos vocês na
próxima palestra. Sim.
122. (1.18.2) Renderer de entidade com bloco personalizado: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra
vamos dar uma
olhada na entidade de bloco renderizar-nos. Bem, este é um tópico muito
interessante que basicamente permite que você renderize algumas coisas
personalizadas em suas
entidades de bloco basicamente, agora o que faremos
é importar um modelo
de bloco personalizado de um banco de blocos. Então eu já preparei isso. É chamado de pedestal. E o que será
capaz de fazer é
poderemos clicar com o
botão direito do mouse com um item e, em seguida, o item flutuará
em cima do pedestal. Essa é a ideia geral
desse exemplo em particular aqui. E vai ser
realmente, muito incrível. O arquivo de bancada de blocos,
é claro, também estará disponível. E quando você tiver isso, o que você quer fazer é ir para o arquivo e exportar o modelo de
item de bloco aqui. Vamos
exportar o pedestal que Jason. Tudo bem, isso vai ficar bem.
E então podemos prosseguir. Portanto, é claro
que haverá nosso arquivo JSON de modelo de
bloco. Mas antes de tudo,
vamos criar um bloco, a entidade do bloco e toda a loucura que isso
implica lá. Vamos começar com a classe de bloco
real. Então, vamos
clicar com o botão direito do mouse em nova classe Java em nosso pacote de blog personalizado. E este vai ser
o bloco de pedestal há um. Agora, isso estenderá a classe de bloco de
entidade base aqui. Ele passará o mouse sobre esses Métodos de
Implementação, o novo método de entidade. E então vamos passar o mouse novamente, criar um construtor
combinando super. Se o parâmetro
aqui o incomodar, Shift F6 para renomeá-lo para propriedades e então
tudo deve ficar bem. Agora, a primeira coisa que
quero fazer é cometer um erro deliberado
aqui para que não nos
esqueçamos de mudar isso
depois de criarmos a entidade de bloco porque
isso às vezes acontece. E o que eu
também farei é copiar o resto
do código aqui. Então isso não é muito louco. Então, pode parecer muito, mas na
verdade não é muito louco. Também recebemos um erro
aqui porque não
temos o
crédito da entidade de bloco, mas tudo bem. A primeira coisa
que é incrivelmente importante, pois eles recebem o método render vergonha e todo o código aqui é,
naturalmente, também valioso. Consiga um pastor
individual também. Portanto, não se preocupe lá. Mas o método em forma de retina
é o mais importante, caso contrário, seu bloco
será invisível. Então isso é muito importante. Eles usaram o método, é claro,
é o método que é,
que é chamado quando você com o botão direito do mouse neste bloco
específico. E o que acontece aqui é que basicamente estamos
apenas verificando, ei, há alguma coisa
dentro deste inventário? Se estiver vazio, então
estamos apenas pegando o item que está
na mão do jogador e estamos adicionando-o ao inventário aqui. Então pedestal para o item do jogador, copiando-o,
decrementando-o. Também estamos recebendo
o
som de coleta do item porque isso é
um pouco melhor aqui. E então, se o
pedestal não estiver vazio, então estamos basicamente
gerando o item
do pedestal e excluindo-o
do pedestal também. Mas esses são apenas três pequenos
métodos auxiliares privados neste caso, e o resto acontece
nos métodos usados. Então, no geral, a funcionalidade
real aqui não é tão louca,
tudo considerado. Agora, é claro, ainda
precisamos da entidade de bloco, então vamos realmente obter
a entidade do livro também. Então, vamos criar uma nova classe
e o pacote de entidades, esta será a entidade de bloqueio de
pedestal. E vamos antes de tudo,
importante aqui. Então lá vai você. Podemos apenas importar isso. E então vamos
ficar bem apenas um segundo. Esse erro desaparecerá assim que
realmente implementarmos tudo aqui. Então, o que precisamos aqui?
Bem, antes de tudo, é
claro que isso precisa estender
a classe de entidade de bloco. Não deveria ser muito louco. E vamos criar o
construtor combinando super. E então a questão é,
bem, o que precisamos? Bem, na verdade, precisamos de
algumas coisas. Mais uma vez,
copiarei isso, mas não se preocupe. Tudo isso está disponível
no repositório do GitHub e
individual também. Agora, esses dois não
devem ser loucos. Vimos isso nas explosões
cordais ou na entidade de
bloqueio também. Apenas o
manipulador de pilha de itens aqui, basicamente nosso inventário
dessa entidade rock específica. E então também precisamos do laser opcional para que o
disponibilizemos através dos
recursos também. Então, vamos copiar alguns métodos
auxiliares aqui pois o que você encontrará é que
também temos uma rotação aqui. Agora, por que temos a
rotação aqui? Bem, porque o que
queremos fazer é queremos cada uma das diferentes entidades de bloco
quando o item estiver lá, basicamente
queremos que ele gire. E a rotação
aqui neste caso é realmente salva
na entidade de bloco. Precisamos salvá-lo aqui, porque se o salvarmos
no renderizador de entidade, isso não funciona porque cada entidade de bloco basicamente
compartilha um renderizador. E então cada entidade de bloco
que você adiciona apenas faz com que o, bem,
basicamente gire mais rápido. Então, cada entidade de bloco precisa sua própria rotação, mas
tudo bem, certo? Não adicionamos
rotação aqui. Nós apenas adicionaríamos uma rotação
quando ela atinge 360, então estamos apenas
redefinindo-a para 0. Se for menor que 0,
estamos apenas adicionando. Então, basicamente, estamos apenas
girando. Essa é a
ideia geral. E então aqui temos um método de rotação get, mas nada muito louco. Em seguida, vamos adicionar o recurso, bem como os métodos de salvar
e carregar. Mas, mais uma vez, esses também não
devem ser loucos. Você também obtém capacidade que vimos
na entidade personalizada, bem
como os métodos
adicionais e baixos seguros para a tag em que acabamos de
salvar o inventário. Então, quando deixamos o
mundo e voltamos, o inventário real ainda
é salvo, certo? E então os últimos métodos
que também precisamos aqui são o
método drops, certo? Então, esses são apenas os métodos
para que as coisas realmente caem. Então, queremos implementar isso
no bloco em apenas um momento. E então também temos o método
invalidate caps,
o método onload
que obtivemos o método pacote de
atualização e
eles recebem o método de tag atualizado. Agora, esses dois são importantes para invalidar
os campos e depois descarregar para que o manipulador de itens
real seja inicializado corretamente
e tudo isso. Agora, esses dois são importantes porque, caso contrário, pode haver um problema de sincronização entre o servidor e o cliente. É por isso que precisamos de
ambos. E basicamente queremos
obter o imposto de atualização. Então, queremos obter uma tag aqui e depois
carregá-la e depois devolvê-la. Então isso Bem, não é muito loucura, mas saiba que precisamos disso. Caso contrário, o cliente
e o servidor não se afundarão corretamente
e, em seguida, o
item real será salvo, mas não será dividido. É por isso que precisamos
desses dois métodos também, certo? Então vamos para o bloco
por um momento e vamos adicionar, você pode ver a seta
aqui desaparecer. E também adicionarei o método
onRemove aqui que chama o método drop que acabamos de
implementar aqui. Então, em teoria, nem precisamos fazer um loop for-loop, mas
isso vai ficar bem. Vai ficar bem. Este é o mesmo
método de gotas que temos na entidade cloroplastos
ou bloco. E isso é, na verdade, tudo o que
precisamos dentro da entidade de bloco. No geral, não é muito louco e não é
muito complicado. Basicamente, apenas algumas
das coisas que precisamos para salvar os dados lá. Então, vamos realmente entrar na classe de entidades mod block
e vamos registrá-la. Mas nós só vamos, vamos
pegar a cooperativa na última linha. Vamos apenas
copiar isso para a
entidade de bloco de armazenamento de cabeçalho aqui. Este também será
o pedestal. Pedestal. Lá vai você. Então, é claro,
mudando o nome aqui, muito importante, de
fato, do que precisamos que esta seja a entidade de bloco de
pedestal. E esse precisa ser o pedestal que
ainda não está implementado,
mas tudo bem. Agora vamos também
entrar na entidade de
bloco de pedestal mais uma vez. Porque é claro que precisamos
mudar o construtor
aqui. Caso contrário, não
vai funcionar. Vamos então querer vê-lo,
mas olhe, entidades
que, isso ainda não é obter o ego e agora as
entidades de bloco devem estar bem. Agora precisamos registrar
o livro real. Tudo bem
que vai estar na nossa aula de blog, mais blocos de classe aqui. Vamos apenas ir para o
fundo aqui. Copie sobre a janela de inverno. Nesse caso, este
será
o pedestal e, claro, o
nome também, pedestal. E este vai
ser o pedestal. Sorte. Agora isso está protegido, então precisamos mudar
isso para um público. Lá vai você. E então podemos fazer isso também. Lá vai você. Totalmente bem. Isso vai copiar. Que tal isso realmente
não vai copiar sobre Que tal isso vai
pegar um material que pedra, eu acho que isso faria a
pedra material mais sentido Há. E ele será adicionado
à nossa guia Criativo personalizada. Tudo bem. Então podemos voltar para o bloco de pedestal
mais uma vez e chamar
entidades mod block que pedestal ponto, ponto criam, passando a posição e o
estado aqui. E o bloco também deve
ser feito. E então as entidades de
bloqueio de modo, esta agora também não é mais um erro e tudo
deve funcionar bem. Isso é absolutamente ótimo, mas ainda não temos
a exibição do nosso mundo. Não temos basicamente um renderizador de
entidade de bloco de clientes. Bem, vamos No nosso pacote de
entidades, faça um novo pacote
chamado cliente. E então, em vez de
lá, faremos uma nova classe Java chamada
bloco de pedestal, bloco armazenamento de
cabeçalho
e renderizador de entidade. E isso vai estender
o renderizador de entidade do livro, este aqui do
tipo entidade em massa de pedestal. Vamos passar o mouse sobre isso,
Implementar Métodos, o método de renderização neste caso. E então também
queremos
mudar isso para implementos
em vez de estender. Na verdade, esse é um bom ponto porque isso é,
na verdade, uma interface. Também precisamos de um
renderizador de entidade de bloco de
pedestal público com um bloco, com um provedor de
renderização de entidade de livro. Este aqui, esse
contexto ou contextos, e este será o nosso
construtor neste caso. Agora, copiarei novamente o conteúdo
do método de
renderização. Mais uma vez, tudo
isso está disponível para você e isso deve ser, isso deve ser bastante simples,
tudo considerado. Então, antes de tudo, estamos
basicamente recebendo o renderizador de itens
aqui do próprio Minecraft. E então vamos
dizer, ok, dê-me a pilha que está
dentro daqui, e então faremos um
monte de loucura. A ideia geral é que
a pilha aqui praticamente apenas faz a
renderização, grosso modo. E o que estamos fazendo
basicamente é que estamos apenas fazendo a pilha real
se mover para cima e para baixo. Então este vai ser R,
este vai ser o item. Vamos fazer isso para cima e para baixo. Vamos escalá-lo
para o tamanho aqui. E então também
teremos uma rotação. Então, isso é apenas girar
o item em torno do eixo y. Isso é praticamente todas
essas três coisas não fazem elas renderizarão
o item real aqui, e então temos que
abrir a pilha novamente, e então
devemos ficar bem. Então, basicamente adicionamos uma
rotação negativa para que toda vez que isso é basicamente
chamado de cada carrapato ou mais, grosso
modo, certo? Então, toda vez que
isso é chamado, basicamente
giramos
em torno de menos um grau para que
seja uma rotação suave. Uma vez que você realmente vê que isso não
deve ser muito louco, você não deve ser
muito complicado. Todas as coisas consideradas são
, na verdade, bastante simples. Agora, o
renderizador de entidade de bloco realmente precisa ser adicionado a um determinado evento. E para isso, na verdade,
precisamos de uma nova classe. Estes serão
os eventos mod do cliente, e copiarei isso
mais uma vez. Mas, mais uma vez, isso é
realmente muito simples. Eles veem que você precisa do assinante do barramento de eventos de
modo de adição na parte superior da classe são importantes que estas
sejam as barras de argamassa bem como o cliente de ponto
dist de valor. Isso é extremamente importante,
caso contrário, não funcionará corretamente. Você então, é claro, precisa de um método estático
público com um
atributo de fornecedor de assinante aqui em cima dele. E precisamos dos renderizadores da
entidade, renderizadores de registro de
eventos. Acabamos de registrar o renderizador de entidade de
bloco com a entidade de bloco de pedestal e o renderizador de
entidade de bloco de pedestal. Isso é tudo o que precisamos fazer. E agora a renderização real também está
registrada corretamente. A última coisa que
agora precisamos é apenas duas. Adicione os arquivos JSON. Você pode ver que
não adicionamos nenhuma tela ou menu porque
neste caso, nossa entidade de livro na verdade
não tem uma tela ou um menu. Vamos apenas copiar
sobre o pedestal Jason aqui, não
deve ser muito louco. O estado do bloco é Jason
bastante autoexplicativo? mesmo acontece com a tradução
deste ponto. Essas coisas devem ser, quero dizer, neste ponto
nem deveria ser uma pergunta aqui. Isso é apenas uma coisa muito
simples. Vamos adicionar isso. Vamos adicionar o arquivo JSON do
modelo de bloco. Então, este
será o que
realmente tiramos de
um banco de blocos. Então, vamos copiar isso também e, em seguida, ver o que
precisamos mudar aqui é a pedra lisa,
porque isso está sob bloco de barra
Minecraft
está sob microbloco. Portanto, certifique-se de alterar
isso em ambos. E, em seguida, o arquivo JSON do
modelo de item também
é bastante simples. Isso é
basicamente mais uma vez, aponta de volta para o arquivo Jason do modelo de
bloco, e é praticamente isso. Nenhuma textura é necessária
neste caso porque
estamos realmente pegando as texturas Minecraft pedra
lisa, pois
isso também deve ser bom. Portanto, essas são todas as
etapas que precisamos
fazer para obter nossa entidade personalizada aqui e tê-la basicamente com um renderizador de entidade de
bloco especial. Então, vamos ao mundo
e ver se ele funciona. Tudo bem, fantasie no Minecraft
novamente e você pode ver o pedestal foi adicionado
com sucesso ao jogo. Então, vamos apenas definir alguns deles e vamos ver
o que podemos ver. Então, se eu clicar com o botão direito do mouse, não
deveríamos ter o cobalto. Cobalto aparece aqui
no pedestal e um deles deve estar desaparecendo
do meu inventário. E isso é exatamente
o que acontece. Vamos fazer a mesma
coisa por todos eles. Eles atrás,
às vezes você pode obter essas flechas de renderização
estranhas aqui. Então isso é algo
que eu não tenho
100% de certeza sobre por
que esse pode ser o caso. Então eu acho que tem algo a ver com
as sombras e outras coisas. Então, vamos ver se isso
pode mudar sozinho. Se eu fizer isso. Mas isso não muda isso. Mas como eu disse, lá, às vezes é um pouco instável ao lado dele
com uma renderização. E serei honesto, não sou outro especialista em renderização. Renderizar é realmente uma
daquelas coisas em que, hum, vamos apenas dizer que, isto é, eu não diria meu
pior pesadelo, mas definitivamente não é uma coisa que eu gosto particularmente. Então, sim, mas no geral, ainda funciona muito
bem e muito legal. E é uma coisa
que está se formando. É muito incrível. É assim
que pode ser fácil adicionar um microfone
renderizador de entidade de bloco. Como sempre, é claro, todo o código está
disponível para você
no repositório do GitHub e
individual também. E vejo todos vocês
na próxima palestra. Então, sim.
123. (1.18.2) Chests loot em estruturas personalizadas: Tudo bem, bem-vindo de volta
ao curso de forja para 118. E nesta palestra,
vamos dar uma
olhada em como você pode adicionar carga
personalizada às estruturas de seus
clientes. Então, o
que eu fiz foi ter gerado na cabine aqui mesmo, só para que tenhamos uma
estrutura e vamos salvá-la em apenas
um momento também. Mas vamos nos mover,
vamos fazer é colocar um baú e vamos
preenchê-lo com algum saque aleatório. Agora a questão é:
como isso funciona? O que você não pode fazer? E isso é o
que algumas pessoas tentam. Eles apenas pegam o
peito e depois colocam para baixo e depois iguais. Por que não há saque aleatório lá? Bem, isso não funciona. O que você tem que fazer é
realmente ter que possuir o baú através de um comando, certo? Então eu
já preparei o comando e o que você pode fazer é basicamente disponibilizar isso e
não vai ser tão louco. Então, o que você pode ver
é que há apenas menos bloco definido na
sua posição atual. Você está de pé do que o peito do
Minecraft virado. Então você só quer
fazê-lo de alguma forma. E vamos realmente
fazer isso mais fácil. Então, vamos apenas fazer
isso voltado para o leste. E então você pode ver
colchetes encaracolados, saque, mesa, Minecraft, baús,
masmorra simples neste caso, vamos apenas executar isso. Agora. Na verdade, aponta para o caminho
errado, mas tudo bem. Isso é apenas uma questão de
mudar o rosto aqui. E se abrirmos isso, você
pode ver que está. Então, alguma elute aleatória. Agora, a verdadeira questão é essa. Se eu salvar isso agora, esse saque aleatório
é? Não, porque quando, uma vez que
você abrir, ele irá eluir. Na verdade, a tabela
gera algum saque. Então, agora cada uma das casas vai
ter esse saque nela. Então, o que
você precisa fazer é não abri-lo. Então, o que você precisa fazer é
ir até aqui. Então, vamos
realmente fazer isso, acreditar que isso deve ser Sul,
na verdade, gerar
este sul. Ok, isso também
não está certo. Então vamos fazer, certo, vamos gerar isso com
o Norte na verdade, acho que então deve ser norte. E eu estava apontando para
a direção certa e não a abri. Caso contrário, você realmente
solidificará o que o
loop está dentro dele. Então isso não funciona. Então você tem que mantê-lo lá e você tem que ser como, eu não sei se
funciona, vai funcionar. Não se preocupe com isso.
Então, podemos salvar isso. E você pode fazer isso
quando tiver carregado ou também pode fazê-lo com
um método de canto e muda. Quando você realmente o constrói, você pode simplesmente adicionar um baú como esse e depois salvá-lo para que
possamos ir ao Salvar. Além disso, aqui vamos
apenas dizer Salvar, e então isso foi salvo. Então, agora podemos
substituí-lo em inteligência. Então, vamos dar
uma olhada ali mesmo. Mas, mais uma vez, queremos
ir para a pasta de execução salva, e essa deve ser
a pasta ridícula dentro da gerada, temos o Calvin, como está o NVT? E queremos alterar
a pasta de dados, as estruturas do
curso MC. Temos o conde minha casa, e só queremos substituir um
pelo outro. Então, vou
copiar isso,
sobrescrevê-lo , e isso é
tudo o que precisamos fazer. Agora, mais uma vez,
não abrimos o baú de saque. Portanto, o loop deve ser gerado
basicamente toda vez que a
casa real gerar também. Portanto, não devemos ter o mesmo loop em duas casas
diferentes. Então, vamos criar um novo
mundo e ver se ele funciona. Tudo bem, somos microfinanças
Novo Mundo e vamos ver, há a primeira
contagem, minha casa, e temos o baú aqui. Então você pode ver que
temos discos de música. Algumas pólvora são. Tudo bem, tudo bem. Então, vamos encontrar uma
nova casa de colunas, e vamos ver se também
podemos encontrar os mesmos discos de música ou se
há algo diferente. Então, há um novo acampamento
milhas e vamos apenas esperar que o loop
lá seja diferente, mas estou bastante certo de
que estará lá vamos, uma carga completamente diferente. Então, exatamente o que você
gostaria que houvesse. Então, o que
é importante é que temos, é
claro , usar o mouse
nocaute MET, mas usamos a masmorra
simples. Então este é o
que realmente
está aqui em um exemplo, certo? Portanto, esse é
o comando real aqui. Você pode ver os baús
simples masmorra e você pode usar qualquer
tipo diferente de tabela de carga. Assim, você também pode fazer suas próprias pequenas tabelas e referências. Eles são, mas isso é,
claro, algo que você pode fazer por
si mesmo também. E isso é praticamente o
quão fácil é adicionar um baú de saque personalizado às
suas estruturas, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo e vejo todos vocês
na próxima palestra. Então, sim.
124. (1.18.2) Como corrigir alguns erros: Tudo bem, bem-vindo de volta
ao curso de forragem para 118. Nesta palestra, vamos
apenas corrigir alguns pequenos erros que eu poderia ter cometido durante o curso deste
curso basicamente. Então, é claro, com a quantidade
de palestras que temos, há alguns
erros aqui e ali. Então, o primeiro
estará no item de armadura mod. Isso vai ser muito
interessante e essa é a armadura correta no método. Porque o que queremos
fazer é substituí-lo pelo seguinte. Então, basicamente
queremos adicionar neste loop
for aqui que percorre a armadura e ele verifica se a
armadura é ou não, na verdade, os itens são itens de
armadura. E se um deles não for, então
vamos retornar imediatamente falso. Agora, a razão pela qual
queremos fazer isso, se formos adicionar um elétron ou uma abóbora aos nossos itens de armadura, basicamente em nosso inventário de
armadura, então o jogo falharia
porque estamos tentando lançá-lo em um item de armadura
e isso não funciona. Então é por isso que
queremos basicamente com isso e então devemos ficar bem. A segunda coisa
que queremos mudar é na aula de mod do curso MC. E o que queremos fazer
é pegar todo
o método de
configuração do cliente e
queremos basicamente
o que está selecionado aqui, segure Shift, clique aqui e pressione Control
X para cortá-lo. Você pode excluir essa linha
aqui e queremos
entrar na aula de eventos,
encontrar mais eventos. Espero que você tenha criado
isso na última
ou segunda a última palestra, vamos colar a
mentalidade dos métodos aqui. Queremos mudar isso
para ser público e estático, e queremos adicionar esses eventos de
assinatura a ele também. Agora, por que precisamos disso?
Bem, apenas no caso de o evento de configuração do cliente
ser chamado apenas no cliente. No entanto, a classe de
mod do curso MC é, na verdade,
uma classe comum. Portanto, isso é chamado tanto
no cliente quanto no servidor. E às vezes pode acontecer que, através de algum jumbo
Java mumbo, basicamente, algumas dessas classes também
são chamadas no servidor, o que fará com que
o servidor falhe. E, claro, isso
não é o que queremos. Então, só para ter certeza, adicione isso aos eventos climáticos. O importante é que este é um chefe da máfia e também com
o cliente desktop de valor, e então ela deve ficar bem. E por último, mas não menos importante, temos algo no item da haste de
dowsing. E, ou seja, a forma como
podemos basicamente dar
uma olhada nas tags. Portanto, essa é uma maneira válida
de basicamente dar uma olhada se
o bloco específico
aqui está ou não nesta tag. No entanto, isso é insanamente complicado e podemos
fazê-lo um pouco mais fácil. Então, em vez de esperar
um bloco aqui, nós realmente queremos um estado de
bloco, certo? Então, bloqueie o estado,
altere isso para state. E quando quisermos fazer é, vamos excluir toda essa loucura e vamos nos preocupar com isso em um momento. Primeiro de tudo, como
obtemos o estado
no método de bloco é valioso? Então, vamos receber um erro aqui porque
temos um bloco. Agora queremos mudar isso
para ser o estado do bloco. E então, em vez de chamar
sangue para obter bloqueio aqui, o que vamos
fazer é que
vamos ter o estado de bloqueio. Vamos mudar isso para ser mantido em bloco e, em seguida, o mesmo
aqui, não ser bloqueado. E isso é todos os requisitos que
precisamos mudar aqui. E então, no método de bloco é
valioso, o que podemos fazer é que
podemos retornar o estado é mais tags
que bloqueiam esses objetos de valor da haste dowsing. Agora isso é muito mais fácil do
que a coisa que adicionamos antes, e isso será
praticamente todas as coisas que eu
queria mostrar a vocês também. Isso também
concluirá praticamente a parte 118 de
todo o curso aqui. Então, haverá uma nona
atualização depois disso também. Então, haverá
basicamente como você
atualiza todas as coisas diferentes
que estão lá com talvez uma ou duas coisas
diferentes, se elas ainda não forem descobertas sobre
a facilidade de fazê-las em 119, mas isso seguirá
depois disso e, em seguida, o curso é
praticamente feito independentemente. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra. Então, sim.
125. 1.18.2 ATUALIZAÇÃO PARA 1.19: Tudo bem, bem-vindo de volta
ao primeiro curso para 118. Nesta última palestra, vamos atualizar nosso
projeto a partir de uma década de 1890. Agora, felizmente, a atualização da
década de 1890 não é a mais louca. Eu vi
atualizações muito piores entre vergência, mas ainda há algumas coisas que
serão completamente alteradas. E acredito que há pelo
menos uma coisa que não funciona, mas
é assim que vai ser. Então, vamos apenas navegar
até o arquivo
construído ou Gradle aqui
até nossas dependências aqui onde temos o
Minecraft Forge. E o que é muito
importante é que faça backup todo o
seu projeto. Porque se você não
tiver isso em
backup , as coisas podem acontecer. Você pode quebrar seu
projeto ao atualizar. Ou tenha um repositório do GitHub, crie uma nova ramificação nele para
que você tenha tudo salvo ou simplesmente copie o projeto inteiro para
que ele tenha backup. Eu recomendo fazer
isso agora com o que precisamos para mudar a
dependência de forragem aqui? Bem, na verdade
não é tão louco. O que queremos fazer é mudá-lo para 41038, claro 119. Portanto, esta é a
versão mais recente para você. Provavelmente vai ser mais avançado aqui, mas
isso vai ficar bem. Sempre, você sempre pode usar a versão mais recente e
isso vai ficar tudo bem. Então, vamos
mudá-lo por lá. Então, vamos voltar
e isso vai ser 119 traço e depois 41038. Lá vai você. E essa é a versão para a qual
queríamos mudar. Também queremos atualizar o lábio de
gecko aqui. Então isso agora vai
ser forjar um traço 193119. Lá vai você. 1313. Lá vai você. Acredito que este deve
ser o mais novo. Neste caso. Ele só pode ser
procurado no lábio de gecko. Você pode encontrar facilmente
a versão aqui
no repositório gecko lip GitHub. Portanto, não se preocupe lá. E depois de
mudarmos esses dois, vamos clicar em
Carregar alterações do Gradle. E então, mais uma vez, vai construir coisas, baixar coisas, todos do mesmo jazz que
fizemos algumas vezes, especialmente no
início de tudo isso. Portanto, recomendo
ficar paciente, basta deixar isso passar por quaisquer
erros que possam surgir, qualquer coisa vermelha, na maioria das
vezes, ser ignorada com segurança. E então veremos,
vamos lá,
construímos com sucesso em dois
minutos e 28 segundos. Agora
ainda não terminamos no
arquivo Gradle de compilação porque também queremos
alterá-lo para os mapeamentos de
pergaminho. Então, temos pergaminho para
este aqui, e queremos
mudá-lo para o seguinte. 1182022 ou seis, ou 5119. Então, isso simplesmente leva os
119 mapeamentos oficiais em sobreposições de 1800 para
mapeamentos de pergaminho em cima dele. E então teremos aproximadamente
mapeamentos de pergaminho para 119. Nem tudo vai
ser perfeitamente mapeado, mas essa é, creio eu, a versão mais nova que temos, que ainda não há nenhuma versão
119. Mais uma vez, é claro
que você pode simplesmente olhar para o repositório de pergaminho
e não deveria, você deve ser capaz de
encontrar algo lá. Então, vamos recarregar isso novamente, mudanças
radiais e isso não
deve demorar muito. Espero que não mais dois
minutos, mas vamos ver. Vamos esperar mais uma vez, esperando
pacientemente aqui. E então ficaremos bem. Tudo bem, lá vamos nós.
Construa com sucesso em um minuto e 37 segundos. Então, agora vamos ficar bem
e tudo está configurado. Mas agora vamos entrar na aula de mod do curso
MC e imediatamente
seremos recebidos com uma pequena flecha aqui. E isso é apenas as importações. Então você pode ver, eu ainda tenho
coisas nas importações aqui, mas não se preocupe se
há algo errado
com as entradas. Você pode ver os três pontos
aqui ficando vermelhos. Basicamente, você pode apenas pressionar Control Alt O e, em seguida ,
tudo nas
importações será, bem basicamente excluído
que não precisamos. E por enquanto,
nada de errado aqui, mas haverá, bem, algumas coisas que estão
erradas em outras classes. Então, geralmente o que fazemos é que
podemos simplesmente ir para as aulas. Acredito que a primeira classe que vamos
ter um problema será, na verdade, no bloco de pilares
girado
da bola de chama. Curiosamente, ou
temos que mudar aqui são apenas os parâmetros aqui. Então eu só vou
copiar isso. Mais uma vez, tudo
aqui está, naturalmente disponível no repositório do
GitHub. E, de fato, tão bem, isso vai estar
agora na pilha. Isso vai
ser uma pilha de contexto. E então
vamos passar
no contexto aqui, e depois também o
Simulate aqui. Eles atrás e isso
deve consertar isso. Agora, este está feito e acredito que o
resto deve estar bem. Na verdade, aldi speedy block, sim, porque o animador marca, porque agora não estamos
mais usando o aleatório, mas estamos usando a classe fonte
aleatória aqui a partir dessa ferramenta de
micro visualização. Basta fazer isso. E então não
passamos nada por aqui. E isso vai
ficar bem também. Portanto, isso deve ser
praticamente tudo o que
precisamos fazer no bloco
SPD também. E acredito que isso deve
consertar todos os blocos. Na verdade. Acredito que
o resto está bem. De fato, eles parecem estar bem quando
se trata das entidades. Eu acredito que eles só devem ser como uma pequena mudança
aqui. Sim. E esse é o componente de texto porque todo o sistema de
textos mudou. Felizmente, a mudança aqui é um componente
incrivelmente fácil que
literal, e lá vamos nós. E é isso. Isso
é tudo o que precisamos fazer. Apenas certificando-se de que
as entradas estão corretas. Controle Alt O e, em seguida,
o resto aqui é uma multa. Vamos apenas ter certeza de
que o resto aqui
também está bem. E, de fato, é. Então, nada de louco acontecendo aqui. E mod blocks, mais uma vez, são apenas os
componentes traduzíveis aqui. Portanto, é apenas um componente
traduzível neste caso. E lá vamos nós. Então, na verdade, é
muito fácil. Então, nada de louco acontecendo. Não
temos mais um bloqueio oral. Isso também está correto
porque agora é na verdade, um bloco
experiente em queda, mas funciona exatamente
da mesma maneira. Mais uma vez, Controle Alt ou
para se livrar das importações. E então vamos ficar
bem e todo o bloco. O pacote está realmente feito. Os comandos também
mudarão um pouco
mais em apenas um momento. Mas antes de tudo, é claro,
os componentes de texto, o primeiro componente é literal
novamente, **** e literal. Lá vai você. Então a mesma coisa aqui. E então eu acredito que também temos isso no conjunto, mas
fazemos Control Alt O para
se livrar das
importações erradas do ano e eles iriam, nós também teremos que mudar o construtor aqui
se eu não estou enganado, mas isso vai ficar bem. Vamos falar sobre
isso em apenas um momento. Os conflitos são,
os conflitos devem estar totalmente bem e nada para
fazer lá também. Os efeitos também não foram alterados. Então, tudo vai ficar bem. E os tratamentos não
mudaram a entidade, que algo é diferente com a entidade e esse
é
o modelo porque os nomes reais dos métodos
mudaram um pouco. Então este agora é o
recurso do modelo GET aqui. Recurso eles atrás, e
agora é obter recurso de textura e isso tem recurso de
animação. Então, o que você pode
fazer é se você tiver vários
desses arquivos de modelo, os arquivos Geo Model, que você pode fazer é
simplesmente pressionar, digamos ir para a Regra Comum ou
o que quer que seja seu nome é pacote, pressione Shift Control R. Procure uma boa localização do modelo e, em seguida, altere-o para
obter o recurso do modelo. Você pode ver que estamos
realmente tendo isso
nos outros dois modelos também. Então, vamos
dizer substituir, sim. Farei a
mesma coisa com o local
da textura
substituindo o recurso. Agora, este às vezes tem um extra que na verdade
não queremos que ele mude. Acredito que seja este,
então vamos
substituí-los um por um, apenas aqueles em que eu
realmente tenho certeza que
acredito que isso não deve
ser alterado. Então lá vai você. E, em seguida, o último,
bom
local do arquivo de
animação agora mudou para obter recurso de animação também, substitua tudo o que
vai ficar bem. E lá vamos nós. Agora
isso deve estar bem. Vamos ver onde estão
as setas aqui. Vai estar bem aqui. Ok, então dentro do renderizador, isso realmente continua
a ser o local da textura. É um pouco estranho
porque isso
também é através do
lábio de gecko, mas lá vai você. Então, isso deve ser bom. Apenas certifique-se de que,
ao substituí-lo, você também não o substitua
na renderização. Acho que o barco não
será salvo tristemente. Tenho que olhar para o parafuso e infelizmente, não
consegui fazê-lo funcionar corretamente. Então, o que
vamos ter que
fazer é que vamos
ter que viver sem o
barco por enquanto. Então você pode simplesmente
excluir tudo, apenas fazer isso assim e, em seguida, livrar-se dele aqui também. Infelizmente, é, é o que é. O problema com a
ousadia, é claro, eles adicionaram os baús no barco e ainda não descobriram como
mudar isso. Desculpe por isso, mas é
assim que vai ser. Às vezes isso acontece quando você muda de uma
versão para outra, que certos recursos,
eles mudaram completamente. Então você não
será capaz de realmente, você não será
capaz de descobrir isso rapidamente. Às vezes, também é por isso que certos moldes demoram
tanto para serem atualizados, certo? Porque através de versões as coisas mudam e é
assim que vai ser. Então acredito que
também podemos nos livrar
da antiga entidade aqui. Podemos estar recebendo
um erro em
outro lugar , mas isso vai ficar bem. Então isso, creio eu, deve ser tudo o que
é realmente mudado aqui. Ok, a entidade múltipla também não funcionaria. Mas, mais uma vez,
vou arrastar todo o caminho baixo para que você possa fazer isso
arrastando enquanto segura Alt. E então você pode
simplesmente selecionar várias
linhas diferentes nesse caso. Em seguida, o mesmo com o
item. Com certeza. Só vou se livrar disso. Então, como eu disse, não acho que
seja muito extenso. As mudanças não são
muito extensas, mas é o que é. Às vezes isso acontece. Então, vamos
nos livrar disso também. E depois o quê? Isso é bom. Isso é
bom. Isso é bom. E então podemos
prosseguir para os eventos. Nos eventos, o
alaúde realmente
mudou para as mesas de loo
mudaram um pouco, mas felizmente não muito louco. Então, a única coisa
que mudou aqui é, na verdade, o método
do apply. Como você pode ver, você não pode mais ser sobrescrito
assim porque
isso agora é em vez de uma
lista é um ArrayList de objeto. Acabamos de colocar um objeto em todas as classes
importantes da lista , e então
você vai ficar bem. O mesmo aqui. Alterando isso para o objeto, cada lista importando essa classe. E então os modificadores de alaúde devem funcionar da mesma forma que antes. Eu fui bem. E então chegamos ao
evento Registry que mudou, eu diria aproximadamente significativamente porque não temos mais o evento Registry, agora
temos um registro de eventos. Então, este agora será um
evento final de registro aqui. E então agora dentro
do método do evento real, temos que procurar por ela. Basicamente,
vamos dizer, oh, isso é claro chamado de evento que é muito
importante aqui. Lá vai você. Agora,
em vez de fazer isso, vamos dizer que o evento
que se registra e, em seguida, dizer que forge
registra essas chaves. Que neste caso
modificador de saque ou serializadores, Hama, ajudante, e isso
é apenas um consumidor. E agora colocamos essas
coisas lá. Então, queremos colocar
isso aqui. E do jeito que queremos fazer, queremos dizer
que ajudante esse registro. Em seguida, primeiro tomando a localização
do
recurso do nome real. E então a segunda
coisa será um novo serializador. Então, vamos levar o
novo serializador aqui. Lá vamos nós. E isso agora deve
funcionar. E então podemos. Duplique isso, altere o nome aqui e, em seguida, altere a alteração do
esterilizador para este. E então vamos ser divertidos. Então, eles atrás, foi assim que
isso mudou e, em seguida a mesma coisa acontece
nas receitas também. Então, se eu não estou enganado, o que queremos fazer é
dizer que evento
um registro de pontos registra que chaves serializadores de receita de ponto porque este é um tipo de
receita, na verdade, desculpe, este é um
tipos de receitas, sim. Então, mais uma vez, ajudante, um, ou assim, nomeando o que basicamente
quisermos. Então podemos dizer tipo
de receita de ajudante, essa receita. E acho que podemos
literalmente copiar isso. Ok, mas não bem. Não é bem. Porque o que queremos
ouvir é uma string ou
um local de recurso ou então não
poderíamos fazer isso? Sim, podemos porque o
id vai ser esse. Agora a questão é, ok, estou realmente me sentindo um
pouco melhor se
eu estiver criando um novo
local de recurso, porque não tenho certeza se isso fica abaixo da
nossa localização de recursos ou não. Nós só vamos fazer
algo assim. Acabando com isso
aqui, lá vai você. Portanto, criar um novo
local de recurso sob nosso
ID de modelo com o jateamento da coluna id. E então ficaremos bem. E então não
precisamos mais deste. E o resto aqui, acredito que
deveria estar totalmente bem. Controle o Alt O para se livrar
das importações e, em seguida,
ficaremos bem. Mais eventos são totalmente bons. Nada mudou,
então os eventos são feitos. E agora chegamos aos
fluidos porque os fluidos, finalmente
a nova
API Fluid foi introduzida. No entanto, ainda não
consegui descobrir exatamente
como funciona. Eles também não são nenhum
tipo de documentação nele. Tão infelizmente, por enquanto, fluidos também seguirão
o caminho do barco. É adequado quando
você pensa sobre isso. Mas sim, o barco são os fluidos neste caso,
infelizmente não vão funcionar. Então fluidos por
enquanto, não funcionam. Mais uma vez, você pode apenas
olhar se você estiver assistindo
isso no futuro, vamos dar uma olhada na forja, veja a documentação. Eles podem ter adicionado algo
lá também. Então você pode tentar
descobrir isso em si mesmo. A nova API Fluid deve ser
muito mais versátil do que isso. Mas, por enquanto, infelizmente, fluidos não vão acontecer, neste caso, itens personalizados. Acredito que só deve
haver algo no tablet de dados. Mais uma vez, o
componente aqui, então componente ponto literal. E então a mesma coisa acontece no item da haste de dowsing também, apenas com o O e
o nome do registro
também, justo o suficiente? Sim. Isso é
traduzível por componente. Não. Que tal
fazermos isso corretamente? Ponto componente traduzível
neste caso. E então aqui também. Em seguida, a mensagem enviada é,
na verdade,
uma mensagem do sistema que não leva mais um UUID no final aqui, mas leva em um
literal de componente que eles vão para o
nome do registro não está mais disponível. Então o que eu vou fazer é
apenas dizer que o
ponto de bloqueio abaixo recebe o nome aqui e depois
o mesmo oblíquo aqui em cima. Isso deve ser bom. Obter nome aqui também, e isso deve
ser isso. Você vai lá. Temos outra mensagem SYN,
enviar mensagem do sistema. Não precisamos mais do UUID. E então esse será
o literal de dados do componente. Na verdade, não, não é. Vai ser traduzível. E isso é tudo, apenas as importações controlam
Alt O como sempre. E lá vamos nós. Isso deve ser praticamente tudo que precisamos para treiná-lo
aqui, eu acredito. Os fluidos mod aqui. Sim, tudo bem. Vamos passar
pela aula normal. Eles estão em apenas
um momento também. Os materiais são bons, modo
criativo. Os alimentos de tabulação são itens mod OK. Este deve ser o
balde de mel absolutamente. Vai se livrar desse
mandado das importações. E então estamos bem
com isso também. As lágrimas também estão boas, então tudo funciona bem. Agora, curiosamente, pinturas realmente mudaram. Sei que é realmente louco
pensar sobre isso. Isso não é mais motivo. Isso agora é chamado de variante de
pintura. E isso também é chamado de variância de
pintura. Lá vai você. Vamos
mudar o motivo
aqui para pintar
variantes em todos os lugares. Então, vamos ser um
bom controle de todos, mais
uma vez, para que as importações
saiam de lá. E isso deve ser isso. Poções estão boas. As receitas realmente mudaram. Então, vamos para a receita. Há duas
coisas importantes que temos que fazer. Exclua todos esses três métodos aqui, e isso
vai dar certo. E então, no método de colchão, temos que adicionar se o nível P
que for do lado do cliente, você só deseja retornar false. Então isso deve ser tudo o que
precisamos fazer aqui também. E isso deve ser praticamente tudo o que
precisamos na receita, na classe de receitas do cliente, na tela, tem
algo alterado aqui. Eu não acredito que tenha. Então, isso é realmente muito bom. E então o som, os sons também
devem estar bem. Agora, no util, acho que
algo mudou em algum lugar, não aqui, mas nas tags. Não. Propriedades do item, util,
na verdade, nenhuma alteração. As telas de título
ainda têm alguns problemas, então vamos
ignorar isso. Agora, a classe dos aldeões realmente
mudou e precisamos fazer algumas
coisas diferentes aqui, certo? Então isso é feito um
pouco diferente. Agora, estamos realmente
fazendo o seguinte. Na verdade, estamos fazendo
um novo protótipo. E o que estamos fazendo
é que estamos fazendo uma API de ponto definida imutável disso permanece
de modo que o ponto do blaster de
cobalto,
ponto get
definição de estado padrão ou ponto de
definição GetState possíveis estados possíveis, depois o primeiro e o aqui. E então aqui, estamos realmente
fazendo isso da seguinte maneira. Estamos fazendo uma nova
aldeia ou profissional. Na verdade, precisamos de dois
predicados aqui. Então, ainda vai ser x-dot. É igual a
ponto último ou ponto também. E então o segundo predicado será exatamente o mesmo. Então, o ponto x obtém igual ponto de
blaster
que obtém e isso também deve corrigir isso. E o resto aqui
deve ser totalmente bom. Na verdade, precisaremos adicionar
tags em um momento também, porque tanto os
aldeões
quanto a pintura são
interessantes o suficiente, têm algumas
tags adicionadas agora também. E então, por último, mas não menos importante, chegamos à geração mundial, o que é claro é sempre
a parte favorita. Então aqui, felizmente, é fácil, apenas uma fonte aleatória no produtor de árvores
abstrato aqui. Mas então chegamos
à loucura Porque agora o que aconteceu nessas aulas,
nada mudou, certo? Para configurar recursos
ou está tudo bem. Mas depois vamos para as classes de
geração e
vemos que o evento de carregamento de bioma não
está mais disponível. E todos, e todos
começam a surtar porque como faço agora
algum mundo personalizado, Jan. Bem, a origem do cliente
mudou completamente, onde agora vamos
usar um biomodificador. Então, em teoria, podemos excluir todas essas quatro
classes aqui, excluí-las e,
em seguida, criar novas. O mesmo vale para
este aqui. Eventos do mundo motor,
não precisamos mais disso porque ele não
faz mais nada. Agora precisamos usar modificadores
biológicos. Então, vamos
dar uma olhada
na classe de modificadores biológicos,
esta aqui. Então você pode ver uma interface
e basicamente temos que criar um codec personalizado que lê em um arquivo JSON que é
praticamente tudo o que o
codec realmente é. Agora, felizmente neste momento, ou na verdade adicionou
alguns exemplos. Então, se você der uma olhada na classe de modificadores biológicos
forge, temos um recurso Adicionar
ao modificador bio, um remove um, e também temos um spawns dois por m um e um
remove spawns do bioma um. Então, isso é realmente tudo o
que vamos precisar. Felizmente, não é muito
loucura e não
precisamos nem mesmo fazer
nenhuma classe personalizada aqui. O que podemos fazer é fazer
isso na pasta de dados. Vamos começar com
os modificadores biológicos. Então, como podemos fazer com que nossas coisas
personalizadas ainda funcionem? Queremos ir para o curso MC da
pasta de dados ,
muito importante. E então, em vez
de uma mulher criar um novo diretório
chamado forge, sim, o diretório forge tem que
entrar no seu curso MC ou qualquer que seja o seu
diretório de ideias mod que tenha
que ser o caso. E então, em vez
do diretório de força, vamos criar um novo
diretório chamado bio modificador. Lá vamos nós. E, em seguida, podemos adicionar
os arquivos JSON. Então, é assim que os arquivos json
vão se parecer. Então, vou
copiar isso e vamos fazer
um novo arquivo JSON. Vamos realmente ver quais são
nossos recursos de lugar neste caso. Então, esta será
a característica do lugar. Na verdade,
precisamos mudar os recursos do lugar em apenas um momento, mas não vamos nos
preocupar com isso no momento. Vamos adicionar o
primeiro modificador bio e, em seguida, veremos os recursos do
local também. Mas este vai
ser um novo arquivo e então
vamos chamar isso flor
de cerejeira ao lado. Vamos apenas
adicionar isso aqui. E então vamos
ver que o primeiro é isso, isso é necessário,
sempre precisaríamos fazer isso. Então queremos dizer oi para o
quê, qual é o namespace do
bioma que essa atitude, vamos
dizer forge yz plane. Então, esta será
uma etiqueta da forja
que basicamente terá todas as bombas
de aviões
dentro dela. Então vamos
ter o curso MC, Polônia. E isso deve ser flor de
cerejeira de ébano colocada aqui. Sim, lá vai você. E então
isso não é subterrâneo. Oris, este é, na verdade,
o outro. Vamos realmente dar uma
olhada nas decorações. Acredito que se chama isso é o passo de decoração ou é. Pode ser isso. Tudo bem, tudo bem. Quer dizer, estou bem com isso. Isso deve ser chamado de decoração
vegetal. Este aqui mesmo.
Vamos adicioná-lo aqui e
então devemos ficar bem. E isso deve, em teoria, adicionar nossa característica
colocada em flor de cerejeira em qualquer bioma de
planos que exista. Tão bastante autoexplicativo. No entanto, os recursos
do lugar também precisam
mudar um pouco. Na verdade, temos que usar um registro
diferente aqui. Então, vamos apenas fazer
um registro diferido do tipo menos característica ou útero colocado. E então isso é igual a
um registro diferido. Eu crio esse registro de recursos com
menos pontos do registro. Muito importante. Então o curso
MC não é ID de modelo
idiota e, claro também
precisaremos de um método de
registro. Vou copiar isso
um pouco mais fácil. Vamos chamar
isso aqui. Isso vai ser chamado, acho que não deve
importar muito mais recursos de lugar que se registrem e depois
passam no ônibus de eventos. E em vez de nos
registrarmos assim, vamos
ter que, vai ser, vai
parecer um
pouco estranho agora,
felizmente, todo o código aqui, é claro,
estará
disponível para você. Então, este agora é um
objeto de registro em vez de segurar, nada muito louco no momento. Eles podem querer alterar
os utilitários de posicionamento registrados em um local
recursos que se registram. Isso não está certo,
desculpe, lá vai você. E então este,
este e este. Está tudo bem. Vou copiar
a linha e isso tem que ser adicionado aqui. Então,
não devemos ter erros, exceto por um parênteses de
fechamento. Você pode ver que queremos
chamá-lo Colocar recursos que se registram e
transmitem o nome, normalmente, como
fizemos em todos os registros antes. E então temos um Fornecedor de um novo recurso de lugar. E então temos que lançar
esse recurso configurado de lama primeiro para um titular do ponto de interrogação do
recurso Configurar,
ponto de interrogação e, em
seguida, um detentor do recurso
Configurar
marca ocidental, ponto de interrogação. É loucura,
mas é assim que repente tem que acontecer por enquanto quando
você está assistindo isso, você pode realmente ter uma maneira
melhor de fazer isso. Você pode ter algo
já descoberto
ou algo assim. Mas, por enquanto, de
repente é assim que isso
vai ter que ir. E então, tanto para as linhas
quanto para o geode, nós realmente temos que ter uma lista de todas as
coisas que temos aqui. Então, lista de n, então só temos que
adicionar todas as coisas
diferentes aqui. Está dizendo que é
irreverente filtrar toda essa loucura entra em uma lista. E, em seguida, apenas dois parênteses de
fechamento. E então o mesmo aqui
se não me engano, lista do objetivo e,
em seguida, apenas fechando parênteses duas vezes n
lá, devemos ficar bem. Então é isso que precisamos fazer, mais louco que pareça. Mas isso
realmente deve fazer todas as coisas que
queríamos fazer. Então, podemos realmente adicionar os outros
modificadores biológicos também. Esta vai ser a rosa rosa
adicionada também. E isso vai
colocar o recurso da rosa rosa colocou um gol. Então vamos adicionar também sob decoração
vegetal
que faz sentido. E então vamos
fazer toda a careca, ou vamos conseguir isso
aqui também. E isso agora não é mais decoração
vegetal. Mas isso é, na verdade, vamos voltar às
declarações aqui. Isso agora é subterrâneo, ou é muito importante
que mudemos isso. Lá vamos nós. Vamos apenas
adicioná-lo a que tal vamos fazer o
cólon do Minecraft estar sobre o mundo, então vamos adicioná-lo a cada bioma que existe no mundo oval,
isso vai ficar bem. E então, por último, mas não menos importante, vamos copiar sobre o cobalto ou, e esse será
o geodo do anúncio ou do parafuso. E então isso está apenas
mudando o nome. Ele colocou um geodo aqui. Vamos também adicioná-lo a todo o mundo e
isso deve ser bom. Mas esta é a nova geração
mundial, muito importante que
tudo aqui esteja correto. E então, por último, mas não menos importante, também
temos essas
estruturas agora, felizmente, terreno
telepático já atualizou que seu repositório, então nada muito louco
está acontecendo aqui. Então, vamos
ter que fazer o seguinte. Então, vamos fazer isso. Vou copiar primeiro
a classe de estruturas de modo. Vamos ver. Lá vamos nós. E então teremos um problema aqui com as estruturas do céu,
mas não se preocupe. Vamos apenas excluir as
importações aqui também. E então, na classe
das estruturas do céu, isso também vai ser,
bem, quero dizer, não muito louco. Deixe-me copiar mais uma vez
sobre a aula aqui. E então vamos ver que só as importações estão erradas. Mais uma vez, Controle Alt O. E você pode ver que há um outro codec aqui também. Isso é apenas, como eu disse, basicamente um determinado campo
que gera leitura em uma corrida e um arquivo, em seguida, gera uma classe que é praticamente a visão geral de alto nível disso. Sim, essas são as
duas mudanças aqui
nessas estruturas
e, em seguida, há também uma mudança na estrutura, corrida e nos arquivos também. Porque, claro, não
poderia haver nada mais louco. Mas antes de tudo, os
mais velhos aqui mudaram seu nome para
ser apenas uma estrutura. Então, vamos
mudá-lo para o nome da estrutura. E então, dentro
do arquivo adjacente, existem algumas mudanças. Primeiro de tudo, esse conflito não
é mais necessário, então vamos
excluir a configuração e seguida, eles começam a
puxar os sites
ainda são necessários, mas não
dentro do conflito. Então o que queremos
fazer é adicionar o passo aqui, e isso será solicitado. E então a próxima coisa é
a distância máxima do centro. Portanto, isso também precisa ser adicionado. E então também precisamos
adicionar três campos diferentes. Esse será o passo, a altura inicial e
o projeto
começarão a caminhar no mapa e
excluir o ruído árabe. Então é isso que
vamos fazer sempre. Agora. Agora isso é para
aquele em que você realmente tem um tipo dentro do código. Se você não tem isso,
não podemos mais usar a aldeia. Agora queremos usar o quebra-cabeça
Minecraft. Então, queremos usar
isso mais uma vez, livrar-se do impróprio aqui, manter a piscina de estrelas e o tamanho a uma
distância máxima do centro. E então, se estivermos
usando o quebra-cabeça, realmente
queremos usar
para diferentes campos. Ainda o líder
do barulho árabe. Mais uma vez, este é o passo, a altura absoluta e o
projeto começa a altura do mapa. Esses permanecerão
basicamente os mesmos, talvez alterando a altura inicial. Mas então, para o quebra-cabeça, você também precisa
usar a expansão. Caramba, vou copiar coisas para as câmeras e a
plataforma de armazenamento também, mas
é praticamente a mesma coisa. Agora você pode realmente
procurar isso também no repositório
do GitHub e em
um indivíduo também. Portanto, não deve haver, mas não se preocupe. Como eu disse,
ficaremos bem. Felizmente, as mudanças
não são tão loucas. Ainda me lembro que
muda de um para 1617. Essas foram mudanças onde sim, isso foi muito louco. Agora isso não é para isso. Agora,
as duas únicas coisas que ainda precisamos é para os aldeões e
as pinturas das etiquetas. Então, eles vão para a
pasta de dados no Minecraft. E então, em vez
da pasta de impostos, queremos criar uma nova pasta chamada variante de
sublinhado de pintura. E então você precisa de pasta de
impostos novamente, queremos fazer um ponto. Sublinhado, sublinhado
interesses, tipo de sublinhado. E então vou clicar com o botão
direito do mouse em novo arquivo. Este será o
fio um trabalho de sublinhado de touro, site
sublinhado que Jason
está no tipo
de ponto de interesse. E isso vai
ser o seguinte. Então, isso deve ser. Em teoria, esse valor Mc
núcleos, explosão ou ponto. Deixe-me verificar rapidamente
se esse é o nome. Na verdade, é um
jogo explosivo. Lá vai você. Coisa que verifiquei duas vezes
aqui na variante de pintura, clique com o botão direito do mouse em novo arquivo
chamado polícia sub bowl que Jason, lá vamos nós. E isso incluirá
todas essas coisas. Deixe-me realmente
copiar isso. E então eu tenho que verificar
os nomes aqui. Então vamos ter planta e depois mais duas e depois
será o Wanderer
e depois pôr do sol também. E espero que isso
seja tudo o que precisamos fazer. Agora, como você viu, na
verdade
há algumas coisas, alguns passos aqui. Não é que na verdade
seja fácil tanto
quanto você pode dizer, Bem, isso tem sido uma
grande provação. Sabe, isso é como realmente muito equipe para como
eu disse, 16th, 117. Isso foi como dez horas de loucura absoluta
passando por tudo,
mudando tudo porque o nome da
classe é alterado, nomes dos métodos
mudam os métodos que estavam disponíveis, não
estavam mais disponível. E felizmente aqui, a maioria
dessas coisas ainda funciona. Então, estou muito feliz
com a atualização aqui. Mas, por enquanto, vamos começar e ver
se alguma coisa pode surgir. Ainda pode haver um erro
em uma dessas classes. Isso vai ficar
bem. Lá vai você. Na verdade, até
fundamos lâmpada de cobalto. Então este é o
método take aqui. Mais uma vez, só
por causa do aleatório, agora
é uma fonte aleatória. Na verdade, eles entram fonte
aleatória e
, em seguida, deve funcionar. Não se preocupe. Vamos continuar mais uma vez, começando e vendo,
lá vamos nós. Também temos isso em modelo
declinado quando realmente
nos livramos
dos fluidos mod. Absolutamente não se preocupe aqui
são os eventos climáticos. Vamos começar isso de novo. Isso também acontece quando você o inicia, você está
recebendo um erro. Você acabou de corrigir o erro
e, em seguida, você começa de novo. Portanto, não se preocupe. E agora
parece estar funcionando. Então, vamos ver se o
Minecraft começa. Isso será um ótimo sinal. E então podemos ver, entrar em nosso mundo e
ver se tudo funciona. Um manguezal está começando. No entanto, estamos recebendo um erro aqui, mas
isso vai ficar tudo bem. Vamos ver antes de tudo, se ele realmente começar ou se não
iniciar uma tempestade de poeira, isso é um ótimo sinal. Vamos apenas criar um novo mundo. Não estamos recebendo
nada porque
temos alguns
elementos desconhecidos aqui. Certo, vamos pensar sobre isso. Podemos ver porque cerejeira
Minecraft
verificada não está disponível. Bem, isso provavelmente é
uma flecha sozinha porque eu não
mudei o ID do modelo. Bem, isso não está certo. Curso Iteris MC, flor de
cerejeira verificada. Então isso é muito estranho
aqui porque, de fato, se eu olhar para isso, estou
sempre usando meu curso MC. Então isso é muito
estranho, tudo bem, então o problema realmente estava
usando os conflitos aqui. Sinceramente, não tenho certeza por que o conflito é não funciona
bem aqui. O ele deve funcionar em teoria. Agora, a única coisa
que eu poderia imaginar, e eu sou como,
estou fazendo isso ao vivo. Eu não tentei isso antes. Colocar os
conflitos de registro antes
que tudo o resto possa
mudar isso. Vamos tentar
isso e ver se os conflitos funcionam corretamente. Então, porém, é só
por causa dos conflitos, que o registro real do recurso local
não funciona. Então, como eu disse, eu
não tentei isso antes. Então, vamos apenas ver se há alguma coisa
e se não acontece, então aparentemente,
infelizmente, os conflitos também não funcionam bem. O que é
muito estranho porque eu não
encontrei isso antes, mas vamos ver. Então, talvez tenhamos o mesmo erro
sobre os conflitos
não
funcionarem novamente. E se não conseguirmos isso, estou realmente me sentindo bastante confiante agora estamos
realmente recebendo isso, o que é muito estranho. De fato. Estou. Sinceramente, não
sei por que esse é o caso. Então, vamos ver. Mas neste momento,
quando isso acontece, estou realmente muito confiante de
que não vai funcionar, mas vamos
ter que viver sem as configurações
por enquanto. Mais uma vez, provavelmente é apenas
uma mudança forjada em algum lugar. Então lá vamos nós, não funciona. Mas se eu, no entanto, mude isso de volta para não
usar conflitos, mas usando apenas um número
normal aqui. E não importa, os
conflitos nunca são realmente carregados aqui e, em seguida, deve
funcionar. Então, mais uma vez, não
sei, não faço ideia por que isso não funciona com os
conflitos aqui. Funcionou antes, mas eles atrás, vamos fazer isso assim
sem os conflitos. E então, se os
conflitos realmente
mudaram e nós temos
que mudá-los, e sempre podemos fazer isso
mais tarde na linha. Normalmente, é mais importante
obter um modelo de trabalho em uma nova versão, em vez ter tudo
funcionando imediatamente. Isso geralmente é melhor
porque então você pode corrigi-lo. E sim, então lá vamos nós. E então podemos criar um mundo para um
jogador, e agora ele deve realmente funcionar. Devemos obter pacotes de dados de
validação. E lá vamos nós, vamos lá, lá vamos nós, novo mundo. Vamos fazer o que quer que seja, algo como aquela raça de n. Sim, queremos isso com
nossas configurações experimentais. Estou bem ciente disso e
então ficaremos bem. Devemos ficar bem aqui. Na verdade, há mais uma coisa que você também pode
dar uma olhada, o que é meio irritante, mas não é a coisa
mais terrível. É só a porta
que não vai funcionar. Você realmente terá que
alterar o bloco Estados, arquivos
JSON e o modelo de bloco
Jason false para a porta. Mas, honestamente, isso deve
ser bastante trivial. Todas as coisas consideradas
irritantes, mas ainda triviais. E vamos ver carregar
o terreno e lá estamos nós. Então, vamos antes de tudo, quero dizer, isso é como o momento perfeito. Estamos nos aviões nevados
e já temos nossas cerejeiras crescendo
aqui. Também temos nossas estruturas
personalizadas também funcionando totalmente bem. Então a questão é, e
encontramos qualquer uma de nossas rosas, rosas vermelhas, e lá estão elas. Também funciona totalmente bem. E então, apenas por uma
questão de argumento, vamos descer e
vamos ver se podemos encontrar algumas de nossas ordens também. E então não
precisávamos nem procurar por aquele longo sono profundo cobalto